diff --git a/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/manifest.json b/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/manifest.json new file mode 100644 index 0000000..b94cf1c --- /dev/null +++ b/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/manifest.json @@ -0,0 +1,5 @@ +{ + "description" : "AutoLaunch Protocols Preregistration", + "name" : "Protocol Preregistration", + "version" : "1.0.0.12" +} \ No newline at end of file diff --git a/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/protocols.json b/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/protocols.json new file mode 100644 index 0000000..53db78b --- /dev/null +++ b/EBWebView/EBWebView/AutoLaunchProtocolsComponent/1.0.0.12/protocols.json @@ -0,0 +1,125 @@ +{ + "allow": [ + { + "origins": [ + "https://.get.microsoft.com", + "https://.apps.microsoft.com" + ], + "protocol": "ms-windows-store" + }, + { + "origins": [ + "https://.onedrive.com", + "https://.onedrive.live.com", + "https://sharepoint.com" + ], + "protocol": "ms-word" + }, + { + "origins": [ + "^https://[a-z0-9-]*word-edit\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*word-view\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*onenote\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*eap\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*shared\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*afhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*vhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*optin\\.online\\.office\\.com/$" + ], + "use_regex": true, + "protocol": "ms-word" + }, + { + "origins": [ + "https://.onedrive.com", + "https://.onedrive.live.com", + "https://sharepoint.com" + ], + "protocol": "ms-excel" + }, + { + "origins": [ + "^https://[a-z0-9-]*excel\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*onenote\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*eap\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*shared\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*afhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*vhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*optin\\.online\\.office\\.com/$" + ], + "use_regex": true, + "protocol": "ms-excel" + }, + { + "origins": [ + "https://.onedrive.com", + "https://.onedrive.live.com", + "https://sharepoint.com" + ], + "protocol": "ms-powerpoint" + }, + { + "origins": [ + "^https://[a-z0-9-]*powerpoint\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*onenote\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*eap\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*shared\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*afhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*vhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*optin\\.online\\.office\\.com/$" + ], + "use_regex": true, + "protocol": "ms-powerpoint" + }, + { + "origins": [ + "https://.onedrive.com", + "https://.onedrive.live.com", + "https://sharepoint.com" + ], + "protocol": "ms-visio" + }, + { + "origins": [ + "^https://[a-z0-9-]*visio\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*onenote\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*eap\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*shared\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*afhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*vhs\\.officeapps\\.live\\.com/$", + "^https://[a-z0-9-]*optin\\.online\\.office\\.com/$" + ], + "use_regex": true, + "protocol": "ms-visio" + }, + { + "origins": [ + "https://www.microsoft.com", + "https://copilot.microsoft.com" + ], + "protocol": "ms-copilot" + } + ], + "warn": [ + { + "origins": [ + "*" + ], + "protocol": "ms-test-warn" + } + ], + "block": [ + { + "origins": [ + "*" + ], + "protocol": "ms-test-block" + }, + { + "origins": [ + "*" + ], + "protocol": "applescript" + } + ] +} diff --git a/EBWebView/EBWebView/BrowserMetrics-spare.pma b/EBWebView/EBWebView/BrowserMetrics-spare.pma new file mode 100644 index 0000000..830bd6c Binary files /dev/null and b/EBWebView/EBWebView/BrowserMetrics-spare.pma differ diff --git a/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/crl-set b/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/crl-set new file mode 100644 index 0000000..54d6ff9 Binary files /dev/null and b/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/crl-set differ diff --git a/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/manifest.json b/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/manifest.json new file mode 100644 index 0000000..548f537 --- /dev/null +++ b/EBWebView/EBWebView/CertificateRevocation/6498.2025.9.4/manifest.json @@ -0,0 +1,5 @@ +{ + "description": "Microsoft CRLSet", + "name": "MicrosoftCRLSet", + "version": "6498.2025.9.4" +} diff --git a/EBWebView/EBWebView/Crashpad/metadata b/EBWebView/EBWebView/Crashpad/metadata new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Crashpad/settings.dat b/EBWebView/EBWebView/Crashpad/settings.dat new file mode 100644 index 0000000..52fe81d Binary files /dev/null and b/EBWebView/EBWebView/Crashpad/settings.dat differ diff --git a/EBWebView/EBWebView/Crashpad/throttle_store.dat b/EBWebView/EBWebView/Crashpad/throttle_store.dat new file mode 100644 index 0000000..9639e1b --- /dev/null +++ b/EBWebView/EBWebView/Crashpad/throttle_store.dat @@ -0,0 +1 @@ +level=none expiry=0 diff --git a/EBWebView/EBWebView/Default/AutofillAiModelCache/LOCK b/EBWebView/EBWebView/Default/AutofillAiModelCache/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/AutofillAiModelCache/LOG b/EBWebView/EBWebView/Default/AutofillAiModelCache/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/AutofillStrikeDatabase/LOCK b/EBWebView/EBWebView/Default/AutofillStrikeDatabase/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/AutofillStrikeDatabase/LOG b/EBWebView/EBWebView/Default/AutofillStrikeDatabase/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/BookmarkMergedSurfaceOrdering b/EBWebView/EBWebView/Default/BookmarkMergedSurfaceOrdering new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/EBWebView/EBWebView/Default/BookmarkMergedSurfaceOrdering @@ -0,0 +1,2 @@ +{ +} diff --git a/EBWebView/EBWebView/Default/BrowsingTopicsSiteData b/EBWebView/EBWebView/Default/BrowsingTopicsSiteData new file mode 100644 index 0000000..e8a6893 Binary files /dev/null and b/EBWebView/EBWebView/Default/BrowsingTopicsSiteData differ diff --git a/EBWebView/EBWebView/Default/BrowsingTopicsSiteData-journal b/EBWebView/EBWebView/Default/BrowsingTopicsSiteData-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/BrowsingTopicsState b/EBWebView/EBWebView/Default/BrowsingTopicsState new file mode 100644 index 0000000..e5441f6 --- /dev/null +++ b/EBWebView/EBWebView/Default/BrowsingTopicsState @@ -0,0 +1,12 @@ +{ + "epochs": [ { + "calculation_time": "13431166270621045", + "config_version": 0, + "model_version": "0", + "padded_top_topics_start_index": 0, + "taxonomy_version": 0, + "top_topics_and_observing_domains": [ ] + } ], + "hex_encoded_hmac_key": "CB70FBE6FEFCCF5D8DE0800D0C77EEFF7A18DD3D57004D63C911493AE980144D", + "next_scheduled_calculation_time": "13431771070621077" +} diff --git a/EBWebView/EBWebView/Default/BudgetDatabase/LOCK b/EBWebView/EBWebView/Default/BudgetDatabase/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/BudgetDatabase/LOG b/EBWebView/EBWebView/Default/BudgetDatabase/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/data_0 b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_0 new file mode 100644 index 0000000..8c26596 Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_0 differ diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/data_1 b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_1 new file mode 100644 index 0000000..243c74a Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_1 differ diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/data_2 b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_2 new file mode 100644 index 0000000..32a0d35 Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_2 differ diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/data_3 b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_3 new file mode 100644 index 0000000..d159514 Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/Cache_Data/data_3 differ diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000001 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000001 new file mode 100644 index 0000000..9d9a3f1 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000001 @@ -0,0 +1 @@ +._boot_9gj4p_6{height:100%;display:grid;place-items:center;background:var(--dsw-alias-bg-base, #f9fafb)}._card_9gj4p_13{display:flex;flex-direction:column;align-items:center;gap:16px}._wordmark_9gj4p_20{font-size:16px;line-height:24px;font-weight:600;letter-spacing:.08em;color:var(--dsw-alias-label-primary, #0f1115)}._hint_9gj4p_28{font-size:12px;line-height:18px;color:var(--dsw-alias-label-tertiary, #81858c)}._spinner_9gj4p_34{width:20px;height:20px;border-radius:50%;border:2px solid var(--dsw-alias-border-l2, rgb(0 0 0 / 10%));border-top-color:var(--dsw-alias-brand-primary, #3964fe);animation:_spin_9gj4p_34 .8s linear infinite}@keyframes _spin_9gj4p_34{to{transform:rotate(360deg)}}._failed_9gj4p_47{max-width:480px;display:flex;flex-direction:column;gap:8px}._failedTitle_9gj4p_54{font-size:14px;line-height:22px;font-weight:600;color:var(--dsw-alias-label-primary, #0f1115)}._failedItem_9gj4p_61{font-family:var(--ds-font-family-code, ui-monospace, "SF Mono", Menlo, Consolas, "Courier New");font-size:12px;line-height:18px;color:var(--dsw-alias-label-secondary, #61666b)}._dot_10orb_3,._matrix_10orb_4{--dsh-state-ongoing: var(--dsw-static-deepseek-450)}._dot_10orb_3{position:relative;display:inline-block;flex:none}._dot_10orb_3:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:currentColor;opacity:.1}._dot_10orb_3:after{content:"";position:absolute;top:20%;right:20%;bottom:20%;left:20%;border-radius:50%;background:currentColor}._dot_10orb_3[data-state=done]{color:var(--dsw-alias-state-success-primary)}._dot_10orb_3[data-state=warning]{color:var(--dsw-alias-state-warn-primary)}._dot_10orb_3[data-state=error]{color:var(--dsw-alias-state-error-primary)}._matrix_10orb_4{flex:none;color:var(--dsh-state-ongoing)}._cell_10orb_54{fill:currentColor;opacity:.15;animation:_dsh-state-dot-chase_10orb_1 1s infinite}@keyframes _dsh-state-dot-chase_10orb_1{0%,12.4%{opacity:1}12.5%,24.9%{opacity:.6}25%,37.4%{opacity:.35}37.5%,to{opacity:.15}}._root_9cl6j_3{display:flex;flex-direction:column;width:100%;min-width:0}._row_9cl6j_10{position:relative;overflow:hidden;display:flex;align-items:center;height:24px;min-width:0}._row_9cl6j_10[data-expandable]{cursor:pointer}._leading_9cl6j_23{position:relative;flex:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;margin-right:6px;padding:0;border:none;background:none;color:var(--dsw-alias-label-tertiary)}button._leading_9cl6j_23{cursor:pointer}._iconIdle_9cl6j_42{display:inline-flex;opacity:1;transition:opacity .1s ease}._chevronHover_9cl6j_48{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;opacity:0;transition:opacity .1s ease}._row_9cl6j_10:hover ._iconIdle_9cl6j_42{opacity:0}._row_9cl6j_10:hover ._chevronHover_9cl6j_48{opacity:1}._title_9cl6j_64{flex:none;font-size:14px;line-height:24px;color:var(--dsw-alias-label-secondary)}._button_kz6gm_4{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:none;border-radius:18px;cursor:pointer;font-size:14px;line-height:22px;color:var(--dsw-alias-label-primary);background:transparent;padding:0 14px}._button_kz6gm_4:disabled{cursor:not-allowed;opacity:.4}._md_kz6gm_24{height:36px}._sm_kz6gm_30{height:28px;font-size:12px;line-height:18px;padding:0 10px;border-radius:14px}._primary_kz6gm_38{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}._primary_kz6gm_38:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}._ghost_kz6gm_47:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._ghost_kz6gm_47:active:not(:disabled){background:var(--dsw-alias-interactive-bg-active)}._outline_kz6gm_56{border:1px solid var(--dsw-alias-border-l2);background:transparent}._outline_kz6gm_56:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._toolbar_kz6gm_65{background:var(--dsw-alias-button-tool-bar-fill)}._toolbar_kz6gm_65:hover:not(:disabled){background:var(--dsw-alias-button-tool-bar-hover)}._icon_kz6gm_73{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center}._pill_e3ygd_1{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:none;border-radius:12px;font-size:12px;line-height:18px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2)}._interactive_e3ygd_15{cursor:pointer}._interactive_e3ygd_15:hover{background:var(--dsw-alias-interactive-bg-hover)}._active_e3ygd_23{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-ghost-active-fill);box-shadow:inset 0 0 0 1px var(--dsw-alias-button-ghost-active-border)}._wrap_1ao1y_1{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 8px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-1)}._wrap_1ao1y_1:focus-within{border-color:var(--dsw-alias-brand-primary)}._icon_1ao1y_16{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;color:var(--dsw-alias-label-tertiary)}._input_1ao1y_25{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;line-height:22px;color:var(--dsw-alias-label-primary)}._input_1ao1y_25::placeholder{color:var(--dsw-alias-label-dimmed)}._root_19372_1{position:relative;display:inline-flex}._list_19372_8,._submenu_19372_9{box-sizing:border-box;padding:4px;display:flex;flex-direction:column;gap:0;border:1px solid var(--dsw-alias-border-inverted);border-radius:12px;background:var(--dsw-specific-menu);box-shadow:var(--dsw-shadow-lv3);--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)}._list_19372_8{position:absolute;top:calc(100% + 4px);left:0;z-index:100;min-width:218px;max-width:360px}._portal_19372_43{position:fixed;top:auto;left:auto;z-index:1100}._sideTop_19372_51{top:auto;bottom:calc(100% + 4px)}._alignEnd_19372_56{left:auto;right:0}._scrollable_19372_21{max-height:calc(100vh - 24px)}._viewport_19372_21{display:flex;flex-direction:column;min-height:0}._scrollable_19372_21 ._viewport_19372_21{overflow-y:auto}._footer_19372_63{flex:none;display:flex;flex-direction:column;margin-top:4px;padding-top:4px;border-top:1px solid var(--dsw-alias-border-l2)}._itemWrap_19372_91{position:relative}._item_19372_91{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:none;border-radius:10px;background:transparent;cursor:pointer;font-size:14px;line-height:22px;color:var(--dsw-alias-label-primary);text-align:left}._item_19372_91:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._denseList_19372_118 ._item_19372_91{min-height:34px;padding-block:5px}._denseList_19372_118 ._label_19372_123{padding-block:4px}._list_19372_8._compactList_19372_127,._submenu_19372_9._compactList_19372_127{min-width:164px;padding:2px;border-radius:7px}._compactList_19372_127 ._item_19372_91{min-height:26px;gap:6px;padding:3px 7px;border-radius:5px;font-size:12px;line-height:18px}._compactList_19372_127 ._itemIcon_19372_143{width:14px;height:14px}._compactList_19372_127 ._separator_19372_81{margin:2px}._compactList_19372_127 ._label_19372_123{padding:4px 7px;font-size:11px;line-height:16px}._item_19372_91:disabled{opacity:.4;cursor:not-allowed}._itemIcon_19372_143{display:inline-flex;flex:none;width:16px;height:16px;align-items:center;justify-content:center;color:var(--dsw-alias-label-tertiary)}._itemLabel_19372_173{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._check_19372_181{flex:none;color:var(--dsw-alias-label-primary)}._selected_19372_188{background:transparent}._danger_19372_193,._danger_19372_193 ._itemIcon_19372_143{color:var(--dsw-alias-state-error-primary)}._danger_19372_193:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}._label_19372_123{padding:8px 10px;font-size:12px;line-height:16px;color:var(--dsw-alias-label-tertiary)}._separator_19372_81{height:1px;margin:4px 2px;background:var(--dsw-alias-border-l1)}._submenu_19372_9{position:absolute;top:auto;bottom:-4px;left:calc(100% + 10px);z-index:101;min-width:163px}._submenu_19372_9:before{content:"";position:absolute;top:0;bottom:0;left:-10px;width:10px}._root_1b2ny_3{position:relative;display:block}._card_1b2ny_13{--dsw-hovercard-bg: #2C2C2E;position:fixed;z-index:100;box-sizing:border-box;width:244px;padding:12px 16px;border-radius:12px;background:var(--dsw-hovercard-bg);box-shadow:var(--dsw-shadow-lv3)}._copyable_1b2ny_25{cursor:pointer}._copyable_1b2ny_25:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}._feedback_1b2ny_34{display:flex;align-items:center;justify-content:center}._copied_1b2ny_40{color:#fff;font-size:14px;line-height:20px;text-align:center}._status_1b2ny_47{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}._root_15u5s_2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}._mask_15u5s_14{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--dsw-alias-bg-mask-1);-webkit-backdrop-filter:var(--dsw-mask-blur);backdrop-filter:var(--dsw-mask-blur)}._dialog_15u5s_22{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px;width:min(380px,100%);padding:0 0 24px;overflow:hidden;border:1px solid var(--dsw-alias-border-inverted);border-radius:24px;background:var(--dsw-alias-bg-layer-2);box-shadow:var(--dsw-shadow-lv3)}._content_15u5s_37{display:flex;flex-direction:column;width:100%}._header_15u5s_45{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:22px 14px 12px 24px}._title_15u5s_53{margin:0;font-size:16px;line-height:24px;font-weight:500;color:var(--dsw-alias-label-primary)}._close_15u5s_61{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:8px;background:transparent;cursor:pointer;color:var(--dsw-alias-label-secondary)}._close_15u5s_61:hover{background:var(--dsw-alias-interactive-bg-hover)}._description_15u5s_80{margin:0;padding:0 24px;font-size:14px;line-height:22px;font-weight:400;color:var(--dsw-alias-label-primary)}._body_15u5s_89{display:flex;flex-direction:column;min-width:0;margin-top:20px;padding:0 24px}._footer_15u5s_97{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 24px}._onboardingOverlay_1cfrq_3{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100}._onboardingMask_1cfrq_10{position:absolute;left:0;right:0;top:80px;bottom:0;background:#0000003d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}._onboardingStage_1cfrq_21{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;overflow:hidden;background:var(--dsw-alias-bg-layer-1)}._confirmation_1nu42_1{width:min(440px,100%);max-height:calc(100vh - 48px);overflow:hidden}._confirmationContent_1nu42_7{min-height:0;overflow-y:auto;overscroll-behavior:contain}@supports (height: 100dvh){._confirmation_1nu42_1{max-height:calc(100dvh - 48px)}}._warning_1nu42_19{display:flex;align-items:flex-start;gap:10px;color:var(--dsw-alias-label-secondary);font-size:14px;line-height:22px}._warning_1nu42_19 p{margin:0}._warningIcon_1nu42_32{flex:none;margin-top:2px;color:var(--dsw-alias-state-error-primary)}._acknowledgement_1nu42_38{display:flex;align-items:flex-start;gap:10px;margin-top:20px;color:var(--dsw-alias-label-primary);font-size:14px;line-height:22px;cursor:pointer}._acknowledgement_1nu42_38 input{flex:none;width:16px;height:16px;margin:3px 0 0;accent-color:var(--dsw-alias-button-primary-fill);cursor:pointer}._acknowledgement_1nu42_38 input:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:2px}._acknowledgement_1nu42_38 input:disabled{cursor:default}._modalAction_1nu42_67{min-width:72px}._confirmAction_1nu42_71{min-width:136px}._banner_ugy7y_1{position:fixed;top:0;left:0;right:0;z-index:100;padding:4px 12px;text-align:center;font-size:12px;line-height:18px;background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}._bubble_owhem_8{position:fixed;z-index:100;width:max-content;max-width:50vw;padding:3px 7px;border-radius:8px;background:var(--dsw-alias-tooltip-bg);color:var(--dsw-static-neutral-bluish-00);font-size:13px;line-height:20px;white-space:pre-line;overflow-wrap:break-word;pointer-events:none;animation:_tooltip-in_owhem_1 .15s var(--ds-ease-in-out)}._bubble_owhem_8[data-side=right]{transform:translateY(-50%)}._bubble_owhem_8[data-side=bottom]{transform:translate(-50%)}._bubble_owhem_8[data-side=top]{transform:translate(-50%,-100%)}@keyframes _tooltip-in_owhem_1{0%{opacity:0}}@media(prefers-reduced-motion:reduce){._bubble_owhem_8{animation:none}}._toast_fvpz7_7{position:fixed;top:120px;left:50%;z-index:1100;pointer-events:none;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100vw - 48px));padding:12px 16px;border-radius:14px;background:var(--dsw-alias-button-contrast-fill);color:var(--dsw-alias-label-primary-inverted);font-size:14px;line-height:22px;box-shadow:var(--dsw-shadow-lv3);transform:translate(-50%);animation:_dsh-toast-in_fvpz7_1 .16s ease-out,_dsh-toast-fade_fvpz7_1 1s ease 3s forwards}._icon_fvpz7_35{display:grid;place-items:center;flex:none;color:var(--dsw-alias-state-warn-label)}._text_fvpz7_42{min-width:0}@keyframes _dsh-toast-in_fvpz7_1{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}@keyframes _dsh-toast-fade_fvpz7_1{to{opacity:0}}@media(prefers-reduced-motion:reduce){._toast_fvpz7_7{animation:_dsh-toast-fade_fvpz7_1 1s ease 3s forwards}}._root_4qrvp_1{--json-tree-property: #881391;--json-tree-string: #c41a16;--json-tree-number: #1c00cf;--json-tree-keyword: #1c00cf;--json-tree-punctuation: #202124;--json-tree-icon: #5f6368;--json-tree-hover: rgb(60 64 67 / 4%);min-width:0;overflow:auto;position:relative;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:12px/16px var(--ds-font-family-code);overscroll-behavior-x:contain;overscroll-behavior-y:auto}body[data-ds-dark-theme] ._root_4qrvp_1{--json-tree-property: #5db0d7;--json-tree-string: #f28b82;--json-tree-number: #99c8ff;--json-tree-keyword: #99c8ff;--json-tree-punctuation: #e8eaed;--json-tree-icon: #9aa0a6;--json-tree-hover: rgb(232 234 237 / 5%)}._container_4qrvp_30{box-sizing:border-box;width:max-content;min-width:100%;margin:0;padding:6px 8px 8px;white-space:pre}._expandedTopLevel_4qrvp_39{box-sizing:border-box;width:max-content;min-width:100%;padding:6px 8px 8px 14px}._expandedTopLevel_4qrvp_39:has(>._topLevelBracket_4qrvp_46[data-json-root-row]:hover),._expandedTopLevel_4qrvp_39:has(>._topLevelBracket_4qrvp_46[data-json-root-row][data-json-copy-active]){background:var(--json-tree-hover)}._expandedTopLevelContainer_4qrvp_51{padding:0}._row_4qrvp_55._topLevelBracket_4qrvp_46{margin-left:0;padding-left:0}._children_4qrvp_60{margin:0;padding:0;list-style:none}._row_4qrvp_55{position:relative;box-sizing:border-box;min-width:100%;min-height:16px;margin:0;padding:0 0 0 10px;list-style:none}._row_4qrvp_55:not(._topLevelBracket_4qrvp_46):hover:not(:has(._row_4qrvp_55:hover)):after,._row_4qrvp_55:not(._topLevelBracket_4qrvp_46)[data-json-copy-active]:after,._row_4qrvp_55:has(>._expander_4qrvp_78:focus-visible):after{position:absolute;z-index:0;top:0;right:0;left:0;height:16px;background:var(--json-tree-hover);content:"";pointer-events:none}._row_4qrvp_55>span:not(._expander_4qrvp_78){position:relative;z-index:1}._label_4qrvp_95{margin-right:3px;color:var(--json-tree-property);font-weight:400}._clickableLabel_4qrvp_101{cursor:pointer}._stringValue_4qrvp_105{color:var(--json-tree-string)}._numberValue_4qrvp_109{color:var(--json-tree-number)}._keywordValue_4qrvp_113{color:var(--json-tree-keyword)}._otherValue_4qrvp_117{color:var(--dsw-alias-label-secondary)}._punctuation_4qrvp_121,._preview_4qrvp_125,._previewProperty_4qrvp_129{color:var(--json-tree-punctuation)}._previewEllipsis_4qrvp_133{color:var(--dsw-alias-label-tertiary)}._copyAnchor_4qrvp_137{position:fixed;z-index:3;display:inline-flex}._copyButton_4qrvp_143{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:20px;height:16px;margin:0;padding:0;border:0;border-radius:3px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);box-shadow:-5px 0 5px var(--dsw-alias-bg-layer-1);cursor:pointer}._copyButton_4qrvp_143:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._copyButton_4qrvp_143:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}._copyButton_4qrvp_143[data-state=failed]{color:var(--dsw-alias-state-error-primary)}._expander_4qrvp_78{position:absolute;z-index:2;top:0;left:0;display:inline-flex;align-items:center;justify-content:flex-start;box-sizing:border-box;width:8px;height:16px;margin:0;color:var(--json-tree-icon);cursor:pointer;-webkit-user-select:none;user-select:none}._expander_4qrvp_78:before{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid currentColor;content:"";transform:scale(.75);transform-origin:33.333% center}._collapseIcon_4qrvp_202:before{transform:rotate(90deg) scale(.75)}._expander_4qrvp_78:hover{color:var(--dsw-alias-label-primary)}._expander_4qrvp_78:focus-visible{outline:none}._collapsedContent_4qrvp_214{margin:0 1px;color:var(--json-tree-punctuation);cursor:pointer}._collapsedContent_4qrvp_214:after{content:"…"}._block_10eou_7{--dsl-terminal-radius: 12px;--dsl-terminal-line-height: 22px;--dsl-terminal-font: var(--dsw-font-markdown-code-block);--dsl-terminal-gutter: 30px;position:relative;margin:16px 0;padding-left:var(--dsl-terminal-gutter);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-terminal-radius);overflow:hidden}._header_10eou_38{display:flex;align-items:flex-start;gap:12px;margin-left:calc(-1 * var(--dsl-terminal-gutter));padding:9px 14px 9px var(--dsl-terminal-gutter);border-top-left-radius:var(--dsl-terminal-radius);border-top-right-radius:var(--dsl-terminal-radius);max-height:150px;overflow-y:auto}._header_10eou_38::-webkit-scrollbar-thumb{border:2px solid transparent;background-clip:padding-box;border-radius:6px}._header_10eou_38::-webkit-scrollbar-track{margin:6px}._block_10eou_7:not([data-running]) ._header_10eou_38{border-bottom:1px solid var(--dsw-alias-border-l2)}._prompt_10eou_76{display:flex;flex-direction:column;min-width:0;flex:1;font:var(--dsl-terminal-font)}._promptLine_10eou_84{position:relative;display:flex;align-items:baseline;gap:8px;min-width:0;line-height:var(--dsl-terminal-line-height)}._runState_10eou_97{position:absolute;left:calc(-1 * var(--dsl-terminal-gutter) + 8px);top:50%;transform:translateY(-50%)}._runStateLabel_10eou_105{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}._cwd_10eou_114{flex:none;color:var(--dsw-alias-label-tertiary)}._command_10eou_122{min-width:0;color:var(--dsw-alias-label-primary);overflow:hidden;text-overflow:ellipsis;white-space:pre}._status_10eou_134{flex:none;position:sticky;top:0;height:var(--dsl-terminal-line-height);color:var(--dsw-alias-state-error-primary)}._copyButton_10eou_142{flex:none;position:sticky;top:0;background-color:var(--dsw-alias-markdown-code-block);border:none;padding:0;margin:0;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xs-13);line-height:var(--dsl-terminal-line-height)}._output_10eou_162{max-height:var(--dsl-terminal-output-max-height, none);padding:12px 14px 12px 0;font:var(--dsl-terminal-font);overflow-x:auto;overflow-y:auto}._output_10eou_162::-webkit-scrollbar-thumb{border:2px solid transparent;background-clip:padding-box;border-radius:6px}._output_10eou_162::-webkit-scrollbar-track{margin:6px}._line_10eou_186{min-height:var(--dsl-terminal-line-height);white-space:pre}._expand_10eou_191{display:block;width:100%;padding:0;border:none;background-color:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;text-align:left}._expand_10eou_191:hover{color:var(--dsw-alias-label-secondary)}._empty_10eou_207{padding:12px 14px 12px 0;font:var(--dsl-terminal-font);color:var(--dsw-alias-label-tertiary)}._block_biesw_7{--dsl-read-radius: 12px;--dsl-read-line-height: 22px;--dsl-read-gutter: 48px;position:relative;margin:16px 0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-read-radius)}._banner_biesw_21{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;background:var(--dsw-alias-markdown-code-block-banner);border-top-left-radius:var(--dsl-read-radius);border-top-right-radius:var(--dsl-read-radius)}._label_biesw_32{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code);font-size:12px;line-height:18px}._action_biesw_43{display:flex;align-items:center;flex-shrink:0;gap:12px}._count_biesw_50{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13)}._lang_biesw_55{color:var(--dsw-alias-label-tertiary);font-family:var(--ds-font-family-code);font-size:12px;line-height:18px}._copyButton_biesw_62{background-color:transparent;border:none;padding:0;margin:0;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xs-13)}._body_biesw_72{padding:12px 0;font:var(--dsw-font-markdown-code-block);overflow-x:auto;overflow-y:hidden}._line_biesw_81{display:flex;min-height:var(--dsl-read-line-height);line-height:var(--dsl-read-line-height);white-space:pre}._gutter_biesw_88{flex:none;width:var(--dsl-read-gutter);padding-right:14px;text-align:right;color:var(--dsw-alias-label-tertiary);-webkit-user-select:none;user-select:none}._content_biesw_99{color:var(--dsw-alias-label-primary)}._expand_biesw_103{display:block;width:100%;padding:0 0 0 var(--dsl-read-gutter);border:none;background-color:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;text-align:left}._expand_biesw_103:hover{color:var(--dsw-alias-label-secondary)}._block_srovd_7{--dsl-diff-radius: 12px;--dsl-diff-line-height: 22px;position:relative;margin:16px 0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-diff-radius)}._copyButton_srovd_22{position:absolute;top:8px;right:12px;z-index:1;background-color:transparent;border:none;padding:0;margin:0;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xs-13)}._body_srovd_36{padding:12px 14px;font:var(--dsw-font-markdown-code-block);overflow-x:auto;overflow-y:hidden}._line_srovd_44{min-height:var(--dsl-diff-line-height);white-space:pre}._path_srovd_53{color:var(--dsw-alias-label-primary);font-weight:600;padding-right:56px}._gap_srovd_60{color:var(--dsw-alias-label-tertiary)}._del_srovd_67:before{content:"- ";color:var(--dsw-alias-state-error-primary)}._del_srovd_67{color:var(--dsw-alias-state-error-primary)}._add_srovd_76:before{content:"+ ";color:var(--dsw-alias-state-success-primary)}._add_srovd_76{color:var(--dsw-alias-state-success-primary)}._expand_srovd_85{display:block;width:100%;padding:0;border:none;background-color:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;text-align:left}._expand_srovd_85:hover{color:var(--dsw-alias-label-secondary)}._footer_srovd_103{padding:0 14px 12px;font:var(--dsw-font-markdown-code-block);color:var(--dsw-alias-label-tertiary)}._block_s66q0_7{--dsl-search-radius: 12px;--dsl-search-line-height: 22px;position:relative;margin:16px 0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-search-radius)}._header_s66q0_20{display:flex;align-items:center;gap:12px;padding:9px 14px;background:var(--dsw-alias-markdown-code-block-banner);border-top-left-radius:var(--dsl-search-radius);border-top-right-radius:var(--dsl-search-radius)}._summary_s66q0_30{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-secondary)}._copyButton_s66q0_40{flex:none;background-color:transparent;border:none;padding:0;margin:0;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xs-13)}._body_s66q0_51{padding:8px 14px 12px 0;font:var(--dsw-font-markdown-code-block);overflow-x:auto;overflow-y:hidden}._line_s66q0_60{min-height:var(--dsl-search-line-height);padding-left:14px;white-space:pre}._lineNumber_s66q0_68{color:var(--dsw-alias-label-tertiary)}._fileHeader_s66q0_74{display:flex;align-items:baseline;gap:8px;width:100%;min-height:var(--dsl-search-line-height);padding:0 14px;border:none;background-color:transparent;cursor:pointer;font:inherit;text-align:left}._filePath_s66q0_88{min-width:0;font-weight:600;color:var(--dsw-alias-label-primary);white-space:pre}._fileCount_s66q0_95{flex:none;color:var(--dsw-alias-label-tertiary)}._expand_s66q0_100{display:block;width:100%;padding:0 14px;border:none;background-color:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;text-align:left}._expand_s66q0_100:hover{color:var(--dsw-alias-label-secondary)}._empty_s66q0_116{padding:12px 14px;font:var(--dsw-font-markdown-code-block);color:var(--dsw-alias-label-tertiary)}._block_178r4_4{--dsl-code-block-banner-background-color: var(--dsw-alias-markdown-code-block-banner);--dsl-code-block-border-radius: 12px;--dsl-code-block-banner-font: var(--dsw-font-xs-13);--dsl-code-block-content-font: var(--dsw-font-markdown-code-block);position:relative;margin:16px 0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-code-block-border-radius)}._block_178r4_4:not(:last-child){margin-bottom:11px}._bannerWrap_178r4_21{position:sticky;top:0;z-index:6;background-color:var(--dsw-alias-bg-base);border-top-left-radius:var(--dsl-code-block-border-radius);border-top-right-radius:var(--dsl-code-block-border-radius)}._banner_178r4_21{background:var(--dsl-code-block-banner-background-color);padding:9px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;font:var(--dsl-code-block-banner-font);border-top-left-radius:var(--dsl-code-block-border-radius);border-top-right-radius:var(--dsl-code-block-border-radius)}._infostring_178r4_42{color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code);font-size:12px;line-height:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._action_178r4_53{display:flex;align-items:center;flex-shrink:0}._copyButton_178r4_59{background-color:#fff0;border:none;padding:0;margin:0;color:inherit;cursor:pointer;font:inherit}._block_178r4_4 :where(pre){font:var(--dsl-code-block-content-font);padding:16px;margin:0!important;overflow-x:auto;white-space:pre-wrap;word-break:break-all;background:var(--dsw-alias-markdown-code-block);border-bottom-left-radius:var(--dsl-code-block-border-radius);border-bottom-right-radius:var(--dsl-code-block-border-radius)}._block_178r4_4 :where(pre._shiki_178r4_84){background:var(--dsw-alias-markdown-code-block)!important}._block_178r4_4 :where(pre) code{font:inherit;background:none;padding:0}._plain_178r4_94{color:var(--dsw-alias-label-primary)}._markdown_1nba0_5{min-width:0;overflow-wrap:anywhere;font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary)}._markdown_1nba0_5 strong{font-weight:600}._markdown_1nba0_5 h1{font:var(--dsw-font-markdown-h1);margin:32px 0 16px}._markdown_1nba0_5 h2{font:var(--dsw-font-markdown-h2);margin:32px 0 16px}._markdown_1nba0_5 h3{font:var(--dsw-font-markdown-h3);margin:32px 0 16px}._markdown_1nba0_5 h4{font:var(--dsw-font-markdown-h4);margin:16px 0}._markdown_1nba0_5 :where(h5,h6){font:var(--dsw-font-markdown-base-strong);margin:16px 0}._markdown_1nba0_5 :where(h1,h2,h3,h4,h5,h6) strong{font-weight:inherit}._markdown_1nba0_5 p{margin:16px 0}._markdown_1nba0_5 :where(h4,h5,h6)+:where(ul,ol){margin-top:8px}._markdown_1nba0_5 :where(h4,h5,h6):has(+:where(ul,ol)){margin-bottom:8px}._markdown_1nba0_5 a{color:var(--dsw-alias-state-business-primary);transition:box-shadow var(--ds-transition-duration) var(--ds-ease-in-out);position:relative;text-decoration:none;border-left:3px solid rgb(255 255 255 / 0);border-right:3px solid rgb(255 255 255 / 0);border-top:2px solid rgb(255 255 255 / 0);border-bottom:2px solid rgb(255 255 255 / 0);margin-left:-3px;margin-right:-3px}._markdown_1nba0_5 a:hover,._markdown_1nba0_5 a:focus{outline:none;text-decoration:underline var(--dsw-alias-state-business-primary)}._markdown_1nba0_5 a:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary)}._markdown_1nba0_5 :where(ul,ol){margin:16px 0;padding-left:18px}._markdown_1nba0_5 li:not(:first-child){margin-top:6px}._markdown_1nba0_5 li>:where(ul,ol){margin-top:4px}._markdown_1nba0_5 li::marker{line-height:28px;color:var(--dsw-alias-label-secondary)}._markdown_1nba0_5 :where(ul,ol) ol{list-style-position:inside;padding-left:0}._markdown_1nba0_5 :where(ul,ol) ol li p{display:inline}._markdown_1nba0_5 li>p{margin:8px 0}._markdown_1nba0_5 li>*:first-child{margin-top:0}._markdown_1nba0_5 li>*:last-child:not(.md-code-block){margin-bottom:0}._markdown_1nba0_5 hr{display:block;border:none;height:1px;margin:32px 0;background:var(--dsw-alias-border-l2)}._markdown_1nba0_5 blockquote{border-left:2px solid var(--dsw-alias-label-caption);margin:16px 0 0;padding-left:14px}._markdown_1nba0_5 pre{margin:16px 0;font-family:var(--ds-font-family-code);overflow:auto}._markdown_1nba0_5 :not(pre)>code{display:inline-flex;align-items:center;box-sizing:border-box;font:var(--dsw-font-markdown-code);font-family:var(--ds-font-family-code);font-size:.875em!important;background-color:var(--dsw-alias-markdown-inline-code);border-radius:6px;padding:0 5px}._markdown_1nba0_5 :where(h1,h2,h3,h4,h5,h6) code{font:inherit;font-family:var(--ds-font-family-code)}._markdown_1nba0_5 .katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden}._markdown_1nba0_5 input[type=checkbox]{margin:0 8px 0 0;accent-color:var(--dsw-alias-label-secondary)}._tableScroll_1nba0_174{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}._tableScroll_1nba0_174 table{border-collapse:collapse;width:max-content;max-width:max-content}._tableScroll_1nba0_174 th{text-align:start;padding:10px 16px;border-bottom:1px solid var(--dsw-alias-border-l3);border-top:none;font:var(--dsw-font-markdown-table-head);max-width:320px;max-width:min(30vw,320px);min-width:100px}._tableScroll_1nba0_174 td{padding:10px 16px;border-bottom:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-markdown-table);max-width:320px;max-width:min(30vw,320px);min-width:100px}._tableScroll_1nba0_174 th:first-child,._tableScroll_1nba0_174 td:first-child{padding-left:0}._tableScroll_1nba0_174 td:last-child{padding-right:0}._tableScroll_1nba0_174 table code{font-size:13px}._markdown_1nba0_5>*:first-child,._markdown_1nba0_5 p:first-child{margin-top:0!important}._markdown_1nba0_5>*:last-child,._markdown_1nba0_5 p:last-child{margin-bottom:0!important}._imageAlt_1nba0_229{color:var(--dsw-alias-label-tertiary);font-style:italic}._image_1nba0_229{display:block;width:auto;max-width:100%;height:auto;margin:0;border-radius:8px;background:var(--dsw-alias-bg-base);object-fit:contain}._fileMention_1nba0_249{margin:0;padding:0;border:none;background:none;font:inherit;color:var(--dsw-alias-state-business-primary);text-decoration:none;cursor:pointer}._fileMention_1nba0_249:hover,._fileMention_1nba0_249:focus{outline:none;text-decoration:underline var(--dsw-alias-state-business-primary);text-underline-offset:3px}._block_d4nqi_7{--dsl-web-radius: 12px;margin:16px 0;padding:12px 14px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border-radius:var(--dsl-web-radius)}._answer_d4nqi_19{margin-bottom:8px}._answer_d4nqi_19>div>:first-child{margin-top:0}._answer_d4nqi_19>div>:last-child{margin-bottom:0}._sources_d4nqi_5{margin:0;padding-left:2.5em;display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto}._source_d4nqi_5{min-width:0}._sourceLink_d4nqi_60{color:var(--dsw-alias-state-business-primary);font-size:14px;line-height:20px;word-break:break-word}._sourceLink_d4nqi_60:hover{text-decoration:underline}._snippet_d4nqi_71{margin-top:2px;color:var(--dsw-alias-label-secondary);font-size:13px;line-height:19px;word-break:break-word}._published_d4nqi_79{margin-top:2px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13)}._truncated_d4nqi_85{margin-top:8px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13)}._empty_d4nqi_91{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13)}._fetch_d4nqi_97{display:flex;flex-direction:column;gap:6px}._fetchUrl_d4nqi_103{color:var(--dsw-alias-state-business-primary);font-family:var(--ds-font-family-code);font-size:13px;line-height:19px;word-break:break-all}._fetchUrl_d4nqi_103:hover{text-decoration:underline}._fetchMeta_d4nqi_115{display:flex;align-items:baseline;gap:12px}._status_d4nqi_121{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13)}._fetch_d4nqi_97 ._truncated_d4nqi_85{margin-top:0}._root_1ye18_1{margin:4px 0}._toggle_1ye18_5{font-size:12px;line-height:18px;color:var(--dsw-alias-label-secondary);padding:2px 6px;border:none;background:transparent;cursor:pointer;border-radius:6px}._toggle_1ye18_5:hover{background:var(--dsw-alias-interactive-bg-hover)}._body_1ye18_20{margin:4px 0 0;padding:8px;max-height:200px;overflow:auto;background:var(--dsw-alias-markdown-code-block);border:1px solid var(--dsw-alias-border-l1);border-radius:6px;font-family:var(--ds-font-family-code);font-size:11px;line-height:16px;color:var(--dsw-alias-label-primary)}._text_1pfhk_1{white-space:pre-wrap;word-break:break-word;font-size:inherit;line-height:inherit}._root_1hk8w_5{position:relative;min-width:0}._rail_1hk8w_10{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)}._rail_1hk8w_10::-webkit-scrollbar{display:none}._item_1hk8w_28{position:relative;flex:0 0 64px;width:64px;height:64px}._thumbnail_1hk8w_35{width:64px;height:64px;padding:0;overflow:hidden;border:1px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:16px;background:var(--dsw-alias-interactive-bg-hover);cursor:zoom-in}._thumbnail_1hk8w_35 img{display:block;width:100%;height:100%;object-fit:cover}._remove_1hk8w_53{position:absolute;top:4px;right:4px;z-index:1;display:grid;place-items:center;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:var(--dsw-alias-button-contrast-fill);color:var(--dsw-alias-label-primary-inverted);cursor:pointer;opacity:0;transition:opacity .2s ease-in-out}._item_1hk8w_28:hover ._remove_1hk8w_53,._remove_1hk8w_53:focus-visible{opacity:1}@media(pointer:coarse){._remove_1hk8w_53{opacity:1}}@media(prefers-reduced-motion:reduce){._remove_1hk8w_53{transition:none}}._arrow_1hk8w_90{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:999px;background:var(--dsw-specific-input-major);color:var(--dsw-alias-label-secondary);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;transform:translateY(-50%)}._arrow_1hk8w_90:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}._arrowLeft_1hk8w_112{left:4px}._arrowRight_1hk8w_116{right:4px}._mask_rcb0a_5{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;pointer-events:none;background-color:var(--dsw-alias-bg-mask-drop);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:_fade-in_rcb0a_1 .16s ease-out}@keyframes _fade-in_rcb0a_1{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){._mask_rcb0a_5{animation:none}}._wrap_rcb0a_29{display:flex;flex-direction:column;align-items:center;margin-top:-3%;padding:0 40px;color:var(--dsw-alias-label-primary);text-align:center}._illustration_rcb0a_39{width:115px;height:84px}._title_rcb0a_44{margin-top:16px;font:var(--dsw-font-l-20)}._desc_rcb0a_49{margin-top:16px;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-tertiary);white-space:pre-wrap}._backdrop_18d3q_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:40px}._mask_18d3q_13{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--dsw-alias-bg-mask-1);-webkit-backdrop-filter:var(--dsw-mask-blur);backdrop-filter:var(--dsw-mask-blur)}._image_18d3q_20{position:relative;max-width:min(100%,1600px);max-height:calc(100vh - 80px);object-fit:contain;border-radius:12px;background:var(--dsw-specific-input-major);box-shadow:var(--dsw-shadow-lv3)}._close_18d3q_30{position:fixed;top:20px;right:20px;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:999px;background:var(--dsw-specific-input-major);color:var(--dsw-alias-label-primary);cursor:pointer}._gallery_nrncx_1{display:flex;flex-wrap:wrap;gap:10px;max-width:100%}._gallery_nrncx_1[data-align=end]{justify-content:flex-end;align-self:flex-end}._gallery_nrncx_1[data-align=start]{justify-content:flex-start;align-self:flex-start}._frame_nrncx_18{display:grid;flex:0 0 auto;place-items:center;min-width:44px;min-height:44px;padding:0;overflow:hidden;border:1px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:16px;background:var(--dsw-alias-interactive-bg-hover);cursor:zoom-in}._frame_nrncx_18[data-variant=tile]{width:64px;height:64px;min-width:64px;min-height:64px}._frame_nrncx_18 img{display:block;width:100%;height:100%;object-fit:cover}._loading_nrncx_46,._error_nrncx_47{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._error_nrncx_47{max-width:240px;padding:10px 12px;border:1px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:10px;background:var(--dsw-alias-interactive-bg-hover-danger);cursor:pointer}._error_nrncx_47[data-variant=tile]{width:64px;height:64px;padding:4px;overflow:hidden;border-radius:16px}:root{--dsw-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--ds-font-family-code: "SF Mono", "JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, "PingFang SC", "Microsoft YaHei";--ds-ease-in-out: cubic-bezier(.4, 0, .2, 1);--ds-transition-duration: .2s;--ds-transition-duration-fast: .1s;--ds-transition-duration-slow: .3s}body{--dsw-static-amber-100: rgb(254, 245, 231);--dsw-static-amber-400: rgb(247, 173, 49);--dsw-static-amber-500: rgb(245, 158, 11);--dsw-static-amber-600: rgb(221, 134, 41);--dsw-static-amber-900: rgb(39, 36, 31);--dsw-static-blue-100: rgb(219, 234, 254);--dsw-static-blue-300: rgb(147, 197, 253);--dsw-static-blue-400: rgb(96, 165, 250);--dsw-static-blue-450: rgb(77, 147, 248);--dsw-static-blue-500: rgb(59, 130, 246);--dsw-static-blue-50: rgb(239, 246, 255);--dsw-static-blue-50p: rgb(234, 243, 255);--dsw-static-blue-600: rgb(37, 99, 235);--dsw-static-blue-75: rgb(229, 240, 255);--dsw-static-blue-800: rgb(30, 64, 175);--dsw-static-blue-900: rgb(14, 48, 116);--dsw-static-blue-950: rgb(23, 37, 84);--dsw-static-deepseek-100: rgb(228, 237, 253);--dsw-static-deepseek-200: rgb(211, 226, 255);--dsw-static-deepseek-300: rgb(183, 200, 254);--dsw-static-deepseek-400: rgb(103, 158, 254);--dsw-static-deepseek-450: rgb(86, 134, 254);--dsw-static-deepseek-500: rgb(65, 118, 230);--dsw-static-deepseek-50: rgb(237, 243, 254);--dsw-static-deepseek-600: rgb(72, 104, 178);--dsw-static-deepseek-700-delete: rgb(47, 76, 143);--dsw-static-deepseek-800: rgb(52, 65, 91);--dsw-static-deepseek-900: rgb(40, 49, 66);--dsw-static-green-100: rgb(230, 250, 237);--dsw-static-green-400: rgb(78, 209, 126);--dsw-static-green-500: rgb(34, 197, 94);--dsw-static-green-900: rgb(35, 60, 44);--dsw-static-neutral-00: rgb(255, 255, 255);--dsw-static-neutral-1000: rgb(0, 0, 0);--dsw-static-neutral-100: rgb(245, 245, 245);--dsw-static-neutral-150: rgb(237, 237, 237);--dsw-static-neutral-200: rgb(229, 229, 229);--dsw-static-neutral-250: rgb(220, 220, 220);--dsw-static-neutral-300: rgb(212, 212, 212);--dsw-static-neutral-400: rgb(162, 164, 166);--dsw-static-neutral-500: rgb(127, 130, 135);--dsw-static-neutral-50: rgb(250, 250, 250);--dsw-static-neutral-550: rgb(101, 103, 107);--dsw-static-neutral-600: rgb(84, 85, 87);--dsw-static-neutral-700: rgb(60, 60, 61);--dsw-static-neutral-800: rgb(41, 41, 41);--dsw-static-neutral-850: rgb(33, 33, 35);--dsw-static-neutral-900: rgb(15, 15, 15);--dsw-static-neutral-bluish-00: rgb(255, 255, 255);--dsw-static-neutral-bluish-1000: rgb(15, 17, 21);--dsw-static-neutral-bluish-100: rgb(235, 238, 242);--dsw-static-neutral-bluish-150: rgb(233, 236, 242);--dsw-static-neutral-bluish-200: rgb(225, 229, 238);--dsw-static-neutral-bluish-300: rgb(207, 211, 214);--dsw-static-neutral-bluish-400: rgb(173, 178, 184);--dsw-static-neutral-bluish-500: rgb(151, 157, 166);--dsw-static-neutral-bluish-50: rgb(249, 250, 251);--dsw-static-neutral-bluish-600: rgb(129, 133, 140);--dsw-static-neutral-bluish-60: rgb(245, 246, 247);--dsw-static-neutral-bluish-700: rgb(97, 102, 107);--dsw-static-neutral-bluish-750: rgb(67, 69, 74);--dsw-static-neutral-bluish-75: rgb(241, 243, 245);--dsw-static-neutral-bluish-800: rgb(53, 54, 56);--dsw-static-neutral-bluish-850: rgb(44, 44, 46);--dsw-static-neutral-bluish-875: rgb(35, 35, 36);--dsw-static-neutral-bluish-900: rgb(27, 27, 28);--dsw-static-neutral-bluish-950: rgb(21, 21, 23);--dsw-static-red-100: rgb(254, 226, 226);--dsw-static-red-400: rgb(242, 90, 90);--dsw-static-red-500: rgb(239, 68, 68);--dsw-static-red-50: rgb(254, 242, 242);--dsw-static-red-600: rgb(236, 19, 19);--dsw-static-red-900: rgb(87, 12, 12)}body[data-ds-dark-theme]{--dsw-static-amber-100: rgb(254, 245, 231);--dsw-static-amber-400: rgb(247, 173, 49);--dsw-static-amber-500: rgb(245, 158, 11);--dsw-static-amber-600: rgb(221, 134, 41);--dsw-static-amber-900: rgb(39, 36, 31);--dsw-static-blue-100: rgb(219, 234, 254);--dsw-static-blue-300: rgb(147, 197, 253);--dsw-static-blue-400: rgb(96, 165, 250);--dsw-static-blue-450: rgb(77, 147, 248);--dsw-static-blue-500: rgb(59, 130, 246);--dsw-static-blue-50: rgb(239, 246, 255);--dsw-static-blue-50p: rgb(234, 243, 255);--dsw-static-blue-600: rgb(37, 99, 235);--dsw-static-blue-75: rgb(229, 240, 255);--dsw-static-blue-800: rgb(30, 64, 175);--dsw-static-blue-900: rgb(14, 48, 116);--dsw-static-blue-950: rgb(23, 37, 84);--dsw-static-deepseek-100: rgb(228, 237, 253);--dsw-static-deepseek-200: rgb(211, 226, 255);--dsw-static-deepseek-300: rgb(183, 200, 254);--dsw-static-deepseek-400: rgb(103, 158, 254);--dsw-static-deepseek-450: rgb(86, 134, 254);--dsw-static-deepseek-500: rgb(65, 118, 230);--dsw-static-deepseek-50: rgb(237, 243, 254);--dsw-static-deepseek-600: rgb(72, 104, 178);--dsw-static-deepseek-700-delete: rgb(47, 76, 143);--dsw-static-deepseek-800: rgb(52, 65, 91);--dsw-static-deepseek-900: rgb(40, 49, 66);--dsw-static-green-100: rgb(230, 250, 237);--dsw-static-green-400: rgb(78, 209, 126);--dsw-static-green-500: rgb(34, 197, 94);--dsw-static-green-900: rgb(35, 60, 44);--dsw-static-neutral-00: rgb(255, 255, 255);--dsw-static-neutral-1000: rgb(0, 0, 0);--dsw-static-neutral-100: rgb(245, 245, 245);--dsw-static-neutral-150: rgb(237, 237, 237);--dsw-static-neutral-200: rgb(229, 229, 229);--dsw-static-neutral-250: rgb(220, 220, 220);--dsw-static-neutral-300: rgb(212, 212, 212);--dsw-static-neutral-400: rgb(162, 164, 166);--dsw-static-neutral-500: rgb(127, 130, 135);--dsw-static-neutral-50: rgb(250, 250, 250);--dsw-static-neutral-550: rgb(101, 103, 107);--dsw-static-neutral-600: rgb(84, 85, 87);--dsw-static-neutral-700: rgb(60, 60, 61);--dsw-static-neutral-800: rgb(41, 41, 41);--dsw-static-neutral-850: rgb(33, 33, 35);--dsw-static-neutral-900: rgb(15, 15, 15);--dsw-static-neutral-bluish-00: rgb(255, 255, 255);--dsw-static-neutral-bluish-1000: rgb(15, 17, 21);--dsw-static-neutral-bluish-100: rgb(235, 238, 242);--dsw-static-neutral-bluish-150: rgb(233, 236, 242);--dsw-static-neutral-bluish-200: rgb(225, 229, 238);--dsw-static-neutral-bluish-300: rgb(207, 211, 214);--dsw-static-neutral-bluish-400: rgb(173, 178, 184);--dsw-static-neutral-bluish-500: rgb(151, 157, 166);--dsw-static-neutral-bluish-50: rgb(249, 250, 251);--dsw-static-neutral-bluish-600: rgb(129, 133, 140);--dsw-static-neutral-bluish-60: rgb(249, 250, 251);--dsw-static-neutral-bluish-700: rgb(97, 102, 107);--dsw-static-neutral-bluish-750: rgb(67, 69, 74);--dsw-static-neutral-bluish-75: rgb(241, 243, 245);--dsw-static-neutral-bluish-800: rgb(53, 54, 56);--dsw-static-neutral-bluish-850: rgb(44, 44, 46);--dsw-static-neutral-bluish-875: rgb(35, 35, 36);--dsw-static-neutral-bluish-900: rgb(27, 27, 28);--dsw-static-neutral-bluish-950: rgb(21, 21, 23);--dsw-static-red-100: rgb(254, 226, 226);--dsw-static-red-400: rgb(242, 90, 90);--dsw-static-red-500: rgb(239, 68, 68);--dsw-static-red-50: rgb(254, 242, 242);--dsw-static-red-600: rgb(236, 19, 19);--dsw-static-red-900: rgb(87, 12, 12)}body{--dsw-alias-bg-base: var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-00);--dsw-alias-bg-mask-1: rgba(0, 0, 0, .24);--dsw-alias-bg-mask-2: rgba(0, 0, 0, .12);--dsw-alias-bg-mask-3: rgba(0, 0, 0, .48);--dsw-alias-bg-mask-photo: rgba(0, 0, 0, .88);--dsw-alias-bg-mask-drop: rgba(255, 255, 255, .7);--dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-60);--dsw-alias-bg-multi-select: var(--dsw-static-neutral-bluish-60);--dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-150);--dsw-alias-bg-skeleton: rgba(0, 0, 0, .04);--dsw-alias-border-inverted2: rgba(0, 0, 0, 0);--dsw-alias-border-inverted: rgba(0, 0, 0, 0);--dsw-alias-border-l1: rgba(0, 0, 0, .04);--dsw-alias-border-l2-darkmode-thin: rgba(0, 0, 0, .1);--dsw-alias-border-l2: rgba(0, 0, 0, .1);--dsw-alias-border-l3: rgba(0, 0, 0, .12);--dsw-alias-border-l4: rgba(0, 0, 0, .16);--dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-1000);--dsw-alias-brand-primary-new-colorprimary-new-color: rgb(65, 118, 230);--dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-1000);--dsw-alias-brand-text: var(--dsw-static-neutral-bluish-1000);--dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-700);--dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-00);--dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-00);--dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-75);--dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-500);--dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-100);--dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-150);--dsw-alias-button-info-fill: var(--dsw-static-deepseek-500);--dsw-alias-button-info-hover: var(--dsw-static-deepseek-400);--dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-100);--dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);--dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-750);--dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, .36);--dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, .5);--dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, .6);--dsw-alias-interactive-bg-active: rgba(38, 49, 72, .1);--dsw-alias-interactive-bg-hover-accent: rgba(38, 49, 72, .14);--dsw-alias-interactive-bg-hover-danger: rgba(236, 19, 19, .05);--dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-75);--dsw-alias-interactive-bg-hover: rgba(38, 49, 72, .06);--dsw-alias-label-caption: var(--dsw-static-neutral-bluish-400);--dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-200);--dsw-alias-label-primary-bluish: var(--dsw-static-blue-900);--dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-950);--dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-00);--dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-00);--dsw-alias-label-primary: var(--dsw-static-neutral-bluish-1000);--dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-700);--dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-600);--dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-100);--dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-50);--dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-50);--dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-00);--dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-75);--dsw-alias-markdown-inline-code: var(--dsw-static-neutral-bluish-100);--dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-60);--dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-75);--dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-200);--dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-200);--dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-300);--dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300);--dsw-alias-state-business-primary: var(--dsw-static-deepseek-500);--dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100);--dsw-alias-state-error-primary: var(--dsw-static-red-600);--dsw-alias-state-error-secondary: var(--dsw-static-red-400);--dsw-alias-state-success-primary: var(--dsw-static-green-500);--dsw-alias-state-success-secondary: var(--dsw-static-green-400);--dsw-alias-state-success-tertiary: var(--dsw-static-green-100);--dsw-alias-state-warn-label: var(--dsw-static-amber-600);--dsw-alias-state-warn-primary: var(--dsw-static-amber-500);--dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);--dsw-alias-state-warn-tertiary: var(--dsw-static-amber-100);--dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-800);--dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-850);--dsw-specific-bubble-highlight: var(--dsw-static-deepseek-200);--dsw-specific-bubble: var(--dsw-static-deepseek-50);--dsw-specific-input-major: var(--dsw-static-neutral-bluish-00);--dsw-specific-login-input: var(--dsw-static-neutral-bluish-50);--dsw-specific-menu: var(--dsw-alias-bg-layer-3);--dsw-specific-selector: var(--dsw-static-neutral-bluish-60);--dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-50);--dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-deepseek-100);--dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-100);--dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-75);--dsw-specific-tip: var(--dsw-static-neutral-bluish-60)}body[data-ds-dark-theme]{--dsw-alias-bg-base: var(--dsw-static-neutral-bluish-950);--dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-875);--dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-850);--dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-800);--dsw-alias-bg-mask-1: rgba(0, 0, 0, .5);--dsw-alias-bg-mask-2: rgba(0, 0, 0, .2);--dsw-alias-bg-mask-3: rgba(0, 0, 0, .48);--dsw-alias-bg-mask-photo: rgba(0, 0, 0, .88);--dsw-alias-bg-mask-drop: rgba(39, 39, 48, .7);--dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-800);--dsw-alias-bg-multi-select: var(--dsw-static-neutral-850);--dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-700);--dsw-alias-bg-skeleton: rgba(255, 255, 255, .08);--dsw-alias-border-inverted2: rgba(255, 255, 255, .08);--dsw-alias-border-inverted: rgba(255, 255, 255, .06);--dsw-alias-border-l1: rgba(255, 255, 255, .06);--dsw-alias-border-l2-darkmode-thin: rgba(255, 255, 255, .06);--dsw-alias-border-l2: rgba(255, 255, 255, .12);--dsw-alias-border-l3: rgba(255, 255, 255, .16);--dsw-alias-border-l4: rgba(255, 255, 255, .2);--dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-50);--dsw-alias-brand-primary-new-colorprimary-new-color: var(--dsw-static-deepseek-450);--dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-50);--dsw-alias-brand-text: var(--dsw-static-neutral-bluish-50);--dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-50);--dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-750);--dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-850);--dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-800);--dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-600);--dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-750);--dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-700);--dsw-alias-button-info-fill: var(--dsw-static-deepseek-400);--dsw-alias-button-info-hover: var(--dsw-static-deepseek-500);--dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-750);--dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);--dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-100);--dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, .36);--dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, .5);--dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, .6);--dsw-alias-interactive-bg-active: rgba(255, 255, 255, .14);--dsw-alias-interactive-bg-hover-accent: rgba(255, 255, 255, .24);--dsw-alias-interactive-bg-hover-danger: rgba(242, 90, 90, .15);--dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-800);--dsw-alias-interactive-bg-hover: rgba(255, 255, 255, .08);--dsw-alias-label-caption: var(--dsw-static-neutral-bluish-600);--dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-750);--dsw-alias-label-primary-bluish: var(--dsw-static-neutral-bluish-50);--dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-100);--dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-1000);--dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-800);--dsw-alias-label-primary: var(--dsw-static-neutral-bluish-50);--dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-300);--dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-400);--dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-800);--dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-900);--dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-800);--dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-900);--dsw-alias-markdown-inline-code: var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-850);--dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-850);--dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-700);--dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-600);--dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-600);--dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550);--dsw-alias-state-business-primary: var(--dsw-static-deepseek-400);--dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800);--dsw-alias-state-error-primary: var(--dsw-static-red-400);--dsw-alias-state-error-secondary: var(--dsw-static-red-400);--dsw-alias-state-success-primary: var(--dsw-static-green-500);--dsw-alias-state-success-secondary: var(--dsw-static-green-400);--dsw-alias-state-success-tertiary: var(--dsw-static-green-900);--dsw-alias-state-warn-label: var(--dsw-static-amber-600);--dsw-alias-state-warn-primary: var(--dsw-static-amber-500);--dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);--dsw-alias-state-warn-tertiary: var(--dsw-static-amber-900);--dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-750);--dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-750);--dsw-specific-bubble-highlight: var(--dsw-static-neutral-bluish-750);--dsw-specific-bubble: var(--dsw-static-neutral-bluish-850);--dsw-specific-input-major: var(--dsw-static-neutral-bluish-850);--dsw-specific-login-input: var(--dsw-static-neutral-bluish-900);--dsw-specific-menu: var(--dsw-alias-bg-layer-3);--dsw-specific-selector: var(--dsw-static-neutral-bluish-800);--dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-900);--dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-neutral-bluish-800);--dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-750);--dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-850);--dsw-specific-tip: var(--dsw-static-neutral-bluish-800)}body{--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l1);--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l1);--dsh-scrollbar-width: 8px}@supports not selector(::-webkit-scrollbar){body,body *{scrollbar-width:thin;scrollbar-color:var(--dsh-scrollbar-thumb) transparent}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:4px;background:var(--dsh-scrollbar-thumb)}::-webkit-scrollbar-thumb:hover{background:var(--dsh-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:transparent}body{--dsw-linear-gradient-think: linear-gradient(180deg, #fff 20.19%, rgba(255, 255, 255, 0) 100%);--dsw-linear-think-select: linear-gradient(180deg, #f5f6f7 20.19%, rgba(245, 246, 247, 0) 100%);--dsw-shadow-lv1: 0 2px 4px 0 rgba(0, 0, 0, .05);--dsw-shadow-lv1-blur: 0 4px 12px 0 rgba(0, 0, 0, .02);--dsw-shadow-lv2: 0 4px 12px 0 rgba(0, 0, 0, .02), 0 2px 8px 0 rgba(0, 0, 0, .04);--dsw-shadow-lv3: 0 0 1px 0 rgba(0, 0, 0, .2), 0 0 4px 0 rgba(0, 0, 0, .02), 0 12px 32px 0 rgba(0, 0, 0, .08);--dsw-mask-blur: blur(2px)}body[data-ds-dark-theme]{--dsw-linear-gradient-think: linear-gradient(180deg, #151517 20.19%, rgba(21, 21, 23, 0) 100%);--dsw-linear-think-select: linear-gradient(180deg, #232325 20.19%, rgba(35, 35, 37, 0) 100%)}body{--dsw-font-markdown-h1: 700 24px/34px var(--dsw-font-family);--dsw-font-markdown-h1-font-family: var(--dsw-font-family);--dsw-font-markdown-h1-font-weight: 700;--dsw-font-markdown-h1-line-height: 34px;--dsw-font-markdown-h1-font-size: 24px;--dsw-font-markdown-h1-font-style: normal;--dsw-font-markdown-h2: 700 22px/32px var(--dsw-font-family);--dsw-font-markdown-h2-font-family: var(--dsw-font-family);--dsw-font-markdown-h2-font-weight: 700;--dsw-font-markdown-h2-line-height: 32px;--dsw-font-markdown-h2-font-size: 22px;--dsw-font-markdown-h2-font-style: normal;--dsw-font-markdown-h3: 700 20px/30px var(--dsw-font-family);--dsw-font-markdown-h3-font-family: var(--dsw-font-family);--dsw-font-markdown-h3-font-weight: 700;--dsw-font-markdown-h3-line-height: 30px;--dsw-font-markdown-h3-font-size: 20px;--dsw-font-markdown-h3-font-style: normal;--dsw-font-markdown-h4: 600 16px/28px var(--dsw-font-family);--dsw-font-markdown-h4-font-family: var(--dsw-font-family);--dsw-font-markdown-h4-font-weight: 600;--dsw-font-markdown-h4-line-height: 28px;--dsw-font-markdown-h4-font-size: 16px;--dsw-font-markdown-h4-font-style: normal;--dsw-font-markdown-base: 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-font-family: var(--dsw-font-family);--dsw-font-markdown-base-font-weight: 400;--dsw-font-markdown-base-line-height: 28px;--dsw-font-markdown-base-font-size: 16px;--dsw-font-markdown-base-font-style: normal;--dsw-font-markdown-base-strong: 600 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-strong-font-family: var(--dsw-font-family);--dsw-font-markdown-base-strong-font-weight: 600;--dsw-font-markdown-base-strong-line-height: 28px;--dsw-font-markdown-base-strong-font-size: 16px;--dsw-font-markdown-base-strong-font-style: normal;--dsw-font-markdown-base-italic: italic 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-italic-font-family: var(--dsw-font-family);--dsw-font-markdown-base-italic-font-weight: 400;--dsw-font-markdown-base-italic-line-height: 28px;--dsw-font-markdown-base-italic-font-size: 16px;--dsw-font-markdown-base-italic-font-style: italic;--dsw-font-markdown-base-strong-italic: italic 600 16px/28px var(--dsw-font-family);--dsw-font-markdown-base-strong-italic-font-family: var(--dsw-font-family);--dsw-font-markdown-base-strong-italic-font-weight: 600;--dsw-font-markdown-base-strong-italic-line-height: 28px;--dsw-font-markdown-base-strong-italic-font-size: 16px;--dsw-font-markdown-base-strong-italic-font-style: italic;--dsw-font-markdown-table: 15px/25px var(--dsw-font-family);--dsw-font-markdown-table-font-family: var(--dsw-font-family);--dsw-font-markdown-table-font-weight: 400;--dsw-font-markdown-table-line-height: 25px;--dsw-font-markdown-table-font-size: 15px;--dsw-font-markdown-table-font-style: normal;--dsw-font-markdown-table-head: 500 15px/25px var(--dsw-font-family);--dsw-font-markdown-table-head-font-family: var(--dsw-font-family);--dsw-font-markdown-table-head-font-weight: 500;--dsw-font-markdown-table-head-line-height: 25px;--dsw-font-markdown-table-head-font-size: 15px;--dsw-font-markdown-table-head-font-style: normal;--dsw-font-markdown-small: 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-font-family: var(--dsw-font-family);--dsw-font-markdown-small-font-weight: 400;--dsw-font-markdown-small-line-height: 24px;--dsw-font-markdown-small-font-size: 14px;--dsw-font-markdown-small-font-style: normal;--dsw-font-markdown-small-strong: 600 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-strong-font-family: var(--dsw-font-family);--dsw-font-markdown-small-strong-font-weight: 600;--dsw-font-markdown-small-strong-line-height: 24px;--dsw-font-markdown-small-strong-font-size: 14px;--dsw-font-markdown-small-strong-font-style: normal;--dsw-font-markdown-small-italic: italic 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-italic-font-family: var(--dsw-font-family);--dsw-font-markdown-small-italic-font-weight: 400;--dsw-font-markdown-small-italic-line-height: 24px;--dsw-font-markdown-small-italic-font-size: 14px;--dsw-font-markdown-small-italic-font-style: italic;--dsw-font-markdown-small-strong-italic: italic 600 14px/24px var(--dsw-font-family);--dsw-font-markdown-small-strong-italic-font-family: var(--dsw-font-family);--dsw-font-markdown-small-strong-italic-font-weight: 600;--dsw-font-markdown-small-strong-italic-line-height: 24px;--dsw-font-markdown-small-strong-italic-font-size: 14px;--dsw-font-markdown-small-strong-italic-font-style: italic;--dsw-font-markdown-code: 14px/22px var(--ds-font-family-code);--dsw-font-markdown-code-font-family: var(--ds-font-family-code);--dsw-font-markdown-code-font-weight: 400;--dsw-font-markdown-code-line-height: 22px;--dsw-font-markdown-code-font-size: 14px;--dsw-font-markdown-code-font-style: normal;--dsw-font-markdown-code-block: 13px/22px var(--ds-font-family-code);--dsw-font-markdown-code-block-font-family: var(--ds-font-family-code);--dsw-font-markdown-code-block-font-weight: 400;--dsw-font-markdown-code-block-line-height: 22px;--dsw-font-markdown-code-block-font-size: 13px;--dsw-font-markdown-code-block-font-style: normal;--dsw-font-markdown-code-block-small: 12px/18px var(--ds-font-family-code);--dsw-font-markdown-code-block-small-font-family: var(--ds-font-family-code);--dsw-font-markdown-code-block-small-font-weight: 400;--dsw-font-markdown-code-block-small-line-height: 18px;--dsw-font-markdown-code-block-small-font-size: 12px;--dsw-font-markdown-code-block-small-font-style: normal;--dsw-font-xl-24: 600 24px/32px var(--dsw-font-family);--dsw-font-xl-24-font-family: var(--dsw-font-family);--dsw-font-xl-24-font-weight: 600;--dsw-font-xl-24-line-height: 32px;--dsw-font-xl-24-font-size: 24px;--dsw-font-xl-24-font-style: normal;--dsw-font-l-20: 500 20px/28px var(--dsw-font-family);--dsw-font-l-20-font-family: var(--dsw-font-family);--dsw-font-l-20-font-weight: 500;--dsw-font-l-20-line-height: 28px;--dsw-font-l-20-font-size: 20px;--dsw-font-l-20-font-style: normal;--dsw-font-m-18: 500 16px/28px var(--dsw-font-family);--dsw-font-m-18-font-family: var(--dsw-font-family);--dsw-font-m-18-font-weight: 500;--dsw-font-m-18-line-height: 28px;--dsw-font-m-18-font-size: 16px;--dsw-font-m-18-font-style: normal;--dsw-font-base-16: 16px/24px var(--dsw-font-family);--dsw-font-base-16-font-family: var(--dsw-font-family);--dsw-font-base-16-font-weight: 400;--dsw-font-base-16-line-height: 24px;--dsw-font-base-16-font-size: 16px;--dsw-font-base-16-font-style: normal;--dsw-font-base-strong-16: 500 16px/24px var(--dsw-font-family);--dsw-font-base-strong-16-font-family: var(--dsw-font-family);--dsw-font-base-strong-16-font-weight: 500;--dsw-font-base-strong-16-line-height: 24px;--dsw-font-base-strong-16-font-size: 16px;--dsw-font-base-strong-16-font-style: normal;--dsw-font-s-14: 14px/22px var(--dsw-font-family);--dsw-font-s-14-font-family: var(--dsw-font-family);--dsw-font-s-14-font-weight: 400;--dsw-font-s-14-line-height: 22px;--dsw-font-s-14-font-size: 14px;--dsw-font-s-14-font-style: normal;--dsw-font-s-strong-14: 500 14px/22px var(--dsw-font-family);--dsw-font-s-strong-14-font-family: var(--dsw-font-family);--dsw-font-s-strong-14-font-weight: 500;--dsw-font-s-strong-14-line-height: 22px;--dsw-font-s-strong-14-font-size: 14px;--dsw-font-s-strong-14-font-style: normal;--dsw-font-xs-13: 13px/20px var(--dsw-font-family);--dsw-font-xs-13-font-family: var(--dsw-font-family);--dsw-font-xs-13-font-weight: 400;--dsw-font-xs-13-line-height: 20px;--dsw-font-xs-13-font-size: 13px;--dsw-font-xs-13-font-style: normal;--dsw-font-xs-strong-13: 500 13px/20px var(--dsw-font-family);--dsw-font-xs-strong-13-font-family: var(--dsw-font-family);--dsw-font-xs-strong-13-font-weight: 500;--dsw-font-xs-strong-13-line-height: 20px;--dsw-font-xs-strong-13-font-size: 13px;--dsw-font-xs-strong-13-font-style: normal;--dsw-font-xxs-12: 12px/18px var(--dsw-font-family);--dsw-font-xxs-12-font-family: var(--dsw-font-family);--dsw-font-xxs-12-font-weight: 400;--dsw-font-xxs-12-line-height: 18px;--dsw-font-xxs-12-font-size: 12px;--dsw-font-xxs-12-font-style: normal;--dsw-font-xxs-strong-12: 500 12px/18px var(--dsw-font-family);--dsw-font-xxs-strong-12-font-family: var(--dsw-font-family);--dsw-font-xxs-strong-12-font-weight: 500;--dsw-font-xxs-strong-12-line-height: 18px;--dsw-font-xxs-strong-12-font-size: 12px;--dsw-font-xxs-strong-12-font-style: normal;--dsw-font-xxxs-11: 11px/14px var(--dsw-font-family);--dsw-font-xxxs-11-font-family: var(--dsw-font-family);--dsw-font-xxxs-11-font-weight: 400;--dsw-font-xxxs-11-line-height: 14px;--dsw-font-xxxs-11-font-size: 11px;--dsw-font-xxxs-11-font-style: normal;--dsw-font-xxxs-strong-11: 500 11px/14px var(--dsw-font-family);--dsw-font-xxxs-strong-11-font-family: var(--dsw-font-family);--dsw-font-xxxs-strong-11-font-weight: 500;--dsw-font-xxxs-strong-11-line-height: 14px;--dsw-font-xxxs-strong-11-font-size: 11px;--dsw-font-xxxs-strong-11-font-style: normal}:root{--shiki-foreground: var(--dsw-alias-label-primary);--shiki-background: var(--dsw-alias-markdown-code-block);--shiki-token-constant: #1c7ed6;--shiki-token-string: #2f9e44;--shiki-token-comment: #868e96;--shiki-token-keyword: #d6336c;--shiki-token-parameter: #e8590c;--shiki-token-function: #6741d9;--shiki-token-string-expression: #2b8a3e;--shiki-token-punctuation: #495057;--shiki-token-link: #1971c2}body[data-ds-dark-theme]{--shiki-token-constant: #4dabf7;--shiki-token-string: #69db7c;--shiki-token-comment: #adb5bd;--shiki-token-keyword: #faa2c1;--shiki-token-parameter: #ffa94d;--shiki-token-function: #b197fc;--shiki-token-string-expression: #8ce99a;--shiki-token-punctuation: #ced4da;--shiki-token-link: #74c0fc}html,body,#root{height:100%;margin:0}body{font-family:var(--dsw-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base)}button,input,select,textarea{font-family:inherit} diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000002 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000002 new file mode 100644 index 0000000..f0a9520 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000002 @@ -0,0 +1,112 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/langs/ruby-DEItuUFs.js","assets/langs/html-CfGypltT.js","assets/langs/css-CLj8gQPS.js","assets/langs/xml-sdJ4AIDG.js","assets/langs/java-CylS5w8V.js","assets/langs/sql-CRqJ_cUM.js","assets/vendor-Cjbwl5VI.js","assets/vendor-CjyC-hUb.css","assets/langs/cpp-DIPi6g--.js","assets/langs/c-BIGW1oBm.js","assets/langs/lua-BaeVxFsk.js","assets/langs/yaml-Buea-lGh.js","assets/langs/php-D-uCvoST.js","assets/langs/scss-D5BDwBP9.js"])))=>i.map(i=>d[i]); +var I5=Object.defineProperty;var $5=(n,r,i)=>r in n?I5(n,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[r]=i;var P=(n,r,i)=>$5(n,typeof r!="symbol"?r+"":r,i);import{c as H5,a as V5,b as A5,d as D5,t as F5,s as B5,j as z5,e as Z5,f as ge,g as c0,h as Pl,u as U5,m as kr,i as wt,k as rl,l as d3,n as h3,o as W5,p as p3,q as q5,r as f0,v as Gl}from"./vendor-Cjbwl5VI.js";function ni(n,r){for(var i=0;is[u]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))s(u);new MutationObserver(u=>{for(const c of u)if(c.type==="childList")for(const h of c.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&s(h)}).observe(document,{childList:!0,subtree:!0});function i(u){const c={};return u.integrity&&(c.integrity=u.integrity),u.referrerPolicy&&(c.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?c.credentials="include":u.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(u){if(u.ep)return;u.ep=!0;const c=i(u);fetch(u.href,c)}})();function j1(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var ol={exports:{}},p1={},il={exports:{}},Ce={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var d0;function Q5(){if(d0)return Ce;d0=1;var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),h=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),C=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),L=Symbol.iterator;function w(j){return j===null||typeof j!="object"?null:(j=L&&j[L]||j["@@iterator"],typeof j=="function"?j:null)}var _={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,E={};function T(j,O,oe){this.props=j,this.context=O,this.refs=E,this.updater=oe||_}T.prototype.isReactComponent={},T.prototype.setState=function(j,O){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,O,"setState")},T.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function B(){}B.prototype=T.prototype;function W(j,O,oe){this.props=j,this.context=O,this.refs=E,this.updater=oe||_}var z=W.prototype=new B;z.constructor=W,k(z,T.prototype),z.isPureReactComponent=!0;var ee=Array.isArray,Q=Object.prototype.hasOwnProperty,V={current:null},Z={key:!0,ref:!0,__self:!0,__source:!0};function ne(j,O,oe){var de,ve={},_e=null,be=null;if(O!=null)for(de in O.ref!==void 0&&(be=O.ref),O.key!==void 0&&(_e=""+O.key),O)Q.call(O,de)&&!Z.hasOwnProperty(de)&&(ve[de]=O[de]);var je=arguments.length-2;if(je===1)ve.children=oe;else if(1r(i,s)))}function on(n,r){return Object.fromEntries(Object.entries(n).map(([i,s])=>[i,r(s,i)]))}function t6(n,r,i){if(!r)return{...n};const s={};for(const u of r)n[u]!==void 0&&(s[u]=n[u]);return s}function qt(n,r,i){return Object.defineProperty(n,r,{writable:!0,value:i,enumerable:!1})}function Qn(n,r){return arguments.length===1?i=>Qn(n,i):n in globalThis&&r instanceof globalThis[n]||Object.prototype.toString.call(r).slice(8,-1)===n}function ri(n){return Qn("ArrayBuffer",n)||Qn("SharedArrayBuffer",n)}function n6(n){return ri(n)||ArrayBuffer.isView(n)}var Wt;(function(n){n.is=ri,n.isSource=n6;function r(h){return ArrayBuffer.isView(h)?h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength):h}n.fromSource=r;function i(h){if(h=r(h),typeof Buffer<"u")return Buffer.from(h).toString("base64");let p="";const g=new Uint8Array(h);for(let C=0;Cp.charCodeAt(0))}n.fromBase64=s;function u(h){return h=r(h),typeof Buffer<"u"?Buffer.from(h).toString("hex"):Array.from(new Uint8Array(h),p=>p.toString(16).padStart(2,"0")).join("")}n.toHex=u;function c(h){if(typeof Buffer<"u")return r(Buffer.from(h,"hex"));const p=h.length%2===0?h:h.slice(0,h.length-1),g=[];for(let C=0;C{u[h]=Reflect.apply(Tl,null,[c,r])}),u}const s=Object.create(Object.getPrototypeOf(n));r.set(n,s);for(const u of Reflect.ownKeys(n)){const c={...Reflect.getOwnPropertyDescriptor(n,u)};"value"in c&&(c.value=Reflect.apply(Tl,null,[c.value,r])),Reflect.defineProperty(s,u,c)}return s}function jr(n,r,i){if(n===r||!i&&ze(n)&&ze(r))return!0;if(typeof n!=typeof r||typeof n!="object"||!n||!r)return!1;function s(u,c){return u(n)?u(r)?c(n,r):!1:u(r)?!1:void 0}return s(Array.isArray,(u,c)=>u.length===c.length&&u.every((h,p)=>jr(h,c[p])))??s(Qn("Date"),(u,c)=>u.valueOf()===c.valueOf())??s(Qn("RegExp"),(u,c)=>u.source===c.source&&u.flags===c.flags)??s(ri,(u,c)=>{if(u.byteLength!==c.byteLength)return!1;const h=new Uint8Array(u),p=new Uint8Array(c);for(let g=0;gjr(n[u],r[u],i))}function r6(n,r,i){const s=[];let u=0;for(let c=0;c=65&&h<=90){if(u===1){const p=n.charCodeAt(c+1);p>=97&&p<=122&&s.push(i),s.push(h+32)}else u!==0&&s.push(i),s.push(h+32);u=1}else h>=97&&h<=122?(s.push(h),u=2):r.includes(h)?(u!==0&&s.push(i),u=0):s.push(h)}return String.fromCharCode(...s)}function o6(n){return r6(n,[45,95],45)}const i6=o6;var C0;(function(n){n.millisecond=1,n.second=1e3,n.minute=n.second*60,n.hour=n.minute*60,n.day=n.hour*24,n.week=n.day*7;let r=new Date().getTimezoneOffset();function i(_){r=_}n.setTimezoneOffset=i;function s(){return r}n.getTimezoneOffset=s;function u(_=new Date,k){return typeof _=="number"&&(_=new Date(_)),k===void 0&&(k=r),Math.floor((_.valueOf()/n.minute-k)/1440)}n.getDateNumber=u;function c(_,k){const E=new Date(_*n.day);return k===void 0&&(k=r),new Date(+E+k*n.minute)}n.fromDateNumber=c;const h=/\d+(?:\.\d+)?/.source,p=new RegExp(`^${["w(?:eek(?:s)?)?","d(?:ay(?:s)?)?","h(?:our(?:s)?)?","m(?:in(?:ute)?(?:s)?)?","s(?:ec(?:ond)?(?:s)?)?"].map(_=>`(${h}${_})?`).join("")}$`);function g(_){const k=p.exec(_);return k?(parseFloat(k[1])*n.week||0)+(parseFloat(k[2])*n.day||0)+(parseFloat(k[3])*n.hour||0)+(parseFloat(k[4])*n.minute||0)+(parseFloat(k[5])*n.second||0):0}n.parseTime=g;function C(_){const k=g(_);return k?_=Date.now()+k:/^\d{1,2}(:\d{1,2}){1,2}$/.test(_)?_=`${new Date().toLocaleDateString()}-${_}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(_)&&(_=`${new Date().getFullYear()}-${_}`),_?new Date(_):new Date}n.parseDate=C;function v(_){const k=Math.abs(_);return k>=n.day-n.hour/2?Math.round(_/n.day)+"d":k>=n.hour-n.minute/2?Math.round(_/n.hour)+"h":k>=n.minute-n.second/2?Math.round(_/n.minute)+"m":k>=n.second?Math.round(_/n.second)+"s":_+"ms"}n.format=v;function L(_,k=2){return _.toString().padStart(k,"0")}n.toDigits=L;function w(_,k=new Date){return _.replace("yyyy",k.getFullYear().toString()).replace("yy",k.getFullYear().toString().slice(2)).replace("MM",L(k.getMonth()+1)).replace("dd",L(k.getDate())).replace("hh",L(k.getHours())).replace("mm",L(k.getMinutes())).replace("ss",L(k.getSeconds())).replace("SSS",L(k.getMilliseconds(),3))}n.template=w})(C0||(C0={}));var oi=class{constructor(){P(this,"sn",0);P(this,"map",new Map);P(this,"weak",new WeakMap)}get length(){return this.map.size}push(n){const r=++this.sn;return this.map.set(r,n),this.weak.set(n,r),()=>this.map.delete(r)}delete(n){const r=this.weak.get(n);return r?this.map.delete(r):!1}clear(){const n=[...this.map.values()];return this.map.clear(),n.reverse()}[Symbol.iterator](){return this.map.values()}[Symbol.for("nodejs.util.inspect.custom")](){return[...this]}};const Y={shadow:Symbol.for("cordis.shadow"),receiver:Symbol.for("cordis.receiver"),original:Symbol.for("cordis.original"),metadata:Symbol.for("cordis.metadata"),initHooks:Symbol.for("cordis.initHooks"),checkProto:Symbol.for("cordis.checkProto"),effect:Symbol.for("cordis.effect"),filter:Symbol.for("cordis.filter"),isolate:Symbol.for("cordis.isolate"),intercept:Symbol.for("cordis.intercept"),init:Symbol.for("cordis.init"),check:Symbol.for("cordis.check"),config:Symbol.for("cordis.config"),invoke:Symbol.for("cordis.invoke"),extend:Symbol.for("cordis.extend"),tracker:Symbol.for("cordis.tracker"),resolveConfig:Symbol.for("cordis.resolveConfig")},s6=(function*(){}).constructor,g0=(async function*(){}).constructor;function m3(n){return!(!n.prototype||n instanceof s6||g0!==Function&&n instanceof g0)}function ii(n,r){if(n===Object.prototype)return r;const i=Object.create(ii(Object.getPrototypeOf(n),r));for(const s of Reflect.ownKeys(n))Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(n,s));return i}function Un(n){return n&&(typeof n=="object"||typeof n=="function")}function C3(n,r){let i=n;for(;i;){const s=Reflect.getOwnPropertyDescriptor(i,r);if(s)return s;i=Object.getPrototypeOf(i)}}function En(n,r){if(!Un(r))return r;if(Object.hasOwn(r,Y.shadow))return Object.getPrototypeOf(r);const i=r[Y.tracker];return i?Xl(n,r,i):r}function x1(n,r){return r?new Proxy(n,{get:(i,s,u)=>s in r&&s!=="constructor"?Reflect.get(r,s,u):Reflect.get(i,s,u),set:(i,s,u,c)=>s in r&&s!=="constructor"?Reflect.set(r,s,u,c):Reflect.set(i,s,u,c)}):n}function Il(n,r,i){return x1(n,Object.defineProperty(Object.create(null),r,{value:i,writable:!1}))}function sl(n,r,i,s){var c;if(!i)return s;const u=(c=Reflect.getOwnPropertyDescriptor(r,i))==null?void 0:c.value;return u?Il(s,i,n.extend({[Y.shadow]:u})):s}function l6(n,r,i,s){return new Proxy(r,{apply:(u,c,h)=>(c===i&&(c=s),En(n,Reflect.apply(u,c,h)))})}function Xl(n,r,i){n[Y.shadow]&&!i.noShadow&&(n=Object.getPrototypeOf(n));const s=new Proxy(r,{get:(u,c,h)=>{if(c===Y.original)return u;if(c===i.property)return n;if(typeof c=="symbol")return Reflect.get(u,c,h);if(i.associate&&n.reflect.props[`${i.associate}.${c}`])return Reflect.get(n,`${i.associate}.${c}`,Il(n,Y.receiver,h));let p,g;const C=C3(u,c);C&&"value"in C?g=C.value:(p=sl(n,u,i.property,h),g=Reflect.get(u,c,p));const v=g==null?void 0:g[Y.tracker];return v?Xl(n,g,v):!i.noShadow&&typeof g=="function"?(p??(p=sl(n,u,i.property,h)),l6(n,g,h,p)):g},set:(u,c,h,p)=>{if(c===Y.original||c===i.property)return!1;if(typeof c=="symbol")return Reflect.set(u,c,h,p);if(i.associate&&n.reflect.props[`${i.associate}.${c}`])return Reflect.set(n,`${i.associate}.${c}`,h,Il(n,Y.receiver,p));const g=sl(n,u,i.property,p);return Reflect.set(u,c,h,g)},apply:(u,c,h)=>g3(s,u,c,h)});return s}function g3(n,r,i,s){return r[Y.invoke]?r[Y.invoke].apply(n,s):Reflect.apply(r,i,s)}function Qo(n,r,i){const s=function(...u){return g3(Xl(s.ctx,s,i),s,this,u)};return qt(s,"name",n),Object.setPrototypeOf(s,r)}function v0(n,r,i){const s=n.error.stack.split(` +`);if(typeof(r==null?void 0:r.stack)!="string"){const h=new Error(r),p=h.stack.split(` +`);throw p.splice(1,1/0,...i()),h.stack=p.join(` +`),h}const u=r.stack.split(` +`);let c=u.indexOf(s[2]);if(c===-1)throw r;for(c-=n.offset;c>0&&u[c-1].endsWith(" ()");)c-=1;throw u.splice(c,1/0,...i()),r.stack=u.join(` +`),r}function Ko(n,r=si()){const i={offset:1,error:new Error};try{const s=n(i);return Un(s)&&"then"in s?s.then(void 0,u=>v0(i,u,r)):s}catch(s){v0(i,s,r)}}function si(n=0){const r=new Error;return()=>r.stack.split(` +`).slice(3+n)}function $l(n){return n!==null&&n!==!1&&n!==void 0}var v3=class{constructor(n){P(this,"ctx");P(this,"_hooks",{});this.ctx=n,qt(this,Y.tracker,{property:"ctx",noShadow:!0}),this.on("internal/listener",function(r,i,s){var u;if(r==="internal/update"&&!s.global)return((u=this.fiber._hooks)["internal/update"]??(u["internal/update"]=new oi))[s.prepend?"unshift":"push"](i)}),this.on("internal/update",function(r,i,s){const u=[...this._hooks["internal/update"]||[]],c=()=>(u.shift()??s).call(this,r,i,c);return c()},{global:!0,prepend:!0})}dispatch(n,r){const i=typeof r[0]=="object"||typeof r[0]=="function"?r.shift():null,s=r.shift();s.startsWith("internal/")||this.emit("internal/dispatch",n,s,r,i);const u=i==null?void 0:i[Be.filter];return(this._hooks[s]||[]).filter(c=>c.global||!u||u.call(i,c.ctx)).map(c=>c.callback.bind(i))}async parallel(...n){const r=(await Promise.allSettled(this.dispatch("emit",n).map(async i=>i(...n)))).filter(i=>i.status==="rejected");if(r.length)throw new AggregateError(r.map(i=>i.reason))}emit(...n){this.dispatch("emit",n).map(r=>r(...n))}async serial(...n){for(const r of this.dispatch("serial",n)){const i=await r(...n);if($l(i))return i}}bail(...n){for(const r of this.dispatch("bail",n)){const i=r(...n);if($l(i))return i}}waterfall(...n){const r=this.dispatch("waterfall",n),i=n.pop(),s=()=>(r.shift()??i)(...n);return n.push(s),s()}register(n,r,i,s){const u=s.prepend?"unshift":"push";return this.ctx.fiber.effect(()=>(r[u]({ctx:this.ctx,callback:i,...s}),()=>this.unregister(r,i)),n)}unregister(n,r){const i=n.findIndex(s=>s.callback===r);if(i>=0)return n.splice(i,1),!0}on(n,r,i){var h;typeof i!="object"&&(i={prepend:i}),this.ctx.fiber.assertActive(),r=this.ctx.reflect.bind(r);const s=this.bail(this.ctx,"internal/listener",n,r,i);if(s)return s;const u=(h=this._hooks)[n]||(h[n]=[]),c=`ctx.on(${typeof n=="string"?JSON.stringify(n):n.toString()})`;return this.register(c,u,r,i)}once(n,r,i){const s=this.on(n,function(...u){return s(),r.apply(this,u)},i);return s}};const Hl={s:n=>String(n),d:n=>Math.trunc(Number(n)),i:n=>Math.trunc(Number(n)),f:n=>Number(n),o:n=>JSON.stringify(n),O:n=>JSON.stringify(n),c:()=>"",C:(n,r,i)=>Jo.color(r,Jo.code(i.name,r.colors),n)};function u6(n){return n instanceof Error&&Array.isArray(n.errors)}var Jo=class{constructor(n,r){P(this,"service");this.service=r,Object.assign(this,n),this.error=this._method("error",0),this.info=this._method("info",1),this.warn=this._method("warn",2),this.debug=this._method("debug",3)}static color(n,r,i,s=""){return n.colors?`\x1B[3${r<8?r:"8;5;"+r}${n.colors>=2?s:""}m${i}\x1B[0m`:""+i}static code(n,r){let i=0;for(let u=0;u=2?w3:y3:[];return s[Math.abs(i)%s.length]}static format(n,r){var h;const i=r.args.slice();i[0]instanceof Error?(i[0]=i[0].stack||i[0].message,i.unshift("%s")):typeof i[0]!="string"&&i.unshift("%o");let s=i.shift();s=s.replace(/%([a-zA-Z%])/g,(p,g)=>{var v;if(p==="%%")return"%";const C=((v=n.formatters)==null?void 0:v[g])??Hl[g];return typeof C=="function"?C(i.shift(),n,r):p});const u=((h=n.formatters)==null?void 0:h.o)??Hl.o;for(let p of i)typeof p=="object"&&p&&(p=u(p,n,r)),s+=" "+p;const{maxLength:c=10240}=n;return s.split(/\r?\n/g).map(p=>p.slice(0,c)+(p.length>c?"...":"")).join(` +`)}_method(n,r){return(...i)=>{var c,h;if(i.length===1&&i[0]instanceof Error){if(i[0].cause)this[n](i[0].cause);else if(u6(i[0])){i[0].errors.forEach(p=>this[n](p));return}}const s=++this.service._snMessage,u=Date.now();for(const p of this.service.exporters.values()){if((((c=p.levels)==null?void 0:c[this.name])??((h=p.levels)==null?void 0:h.default)??this.level??1){s.buffer.push(u),s.buffer.length>s.bufferSize&&(s.buffer=s.buffer.slice(-s.bufferSize))}}),s}exporter(r){return this.ctx.effect(()=>(this.exporters.set(++this._snExporter,r),()=>this.exporters.delete(this._snExporter)),"ctx.logger.exporter()")}_resolveConfig(){let r=this.ctx[Y.intercept];const i=[];for(;"logger"in r;)Object.hasOwn(r,"logger")&&i.unshift(r.logger),r=Object.getPrototypeOf(r);return Object.assign({},...i)}[Y.invoke](r){const i=this._resolveConfig(),s=(this.ctx[Y.shadow]??this.ctx).fiber;return r??(r=i.name),r??(r=i6(s.name)),new Jo({name:r,level:i.level,meta:{fiber:new WeakRef(s)}},this)}},(()=>{for(const r of["error","info","warn","debug"])Sr.prototype[r]=function(...i){return this()[r](...i)}})(),Sr);function ll(n){const r=n.stack.split(` +`);return r.splice(0,2,`Error: ${n.message}`),n.stack=r.join(` +`),n}const a6=["prototype","then"];function ul(n){return typeof n=="symbol"||a6.includes(n)||parseInt(n).toString()===n||n.startsWith("_")}var Nl,y0=(Nl=class{constructor(n){P(this,"ctx");P(this,"store",Object.create(null));P(this,"props",Object.create(null));this.ctx=n,qt(this,Y.tracker,{property:"ctx",noShadow:!0}),this.mixin("reflect",["get","set","provide","accessor","mixin"]),this.mixin("fiber",["runtime","effect"]),this.mixin("registry",["inject","plugin"]),this.mixin("events",["on","once","parallel","emit","serial","bail","waterfall"])}get(n,r=!0){var i;return En(this.ctx,(i=this._getImpl(n,r))==null?void 0:i.value)}_getImpl(n,r=!0){const i=this.ctx[Y.isolate][n],s=i&&this.store[i];if(s&&!(r&&s.fiber.state!==2))return s}set(n,r,i){const s=this.ctx[Y.isolate][n],u=this.store[s];if(!u)throw new Error(`cannot set property "${n}" without provide`);if(u.fiber!==this.ctx.fiber)throw new Error(`cannot set property "${n}" in multiple fibers`);return u.value=r,!0}provide(n,r,i){return this.ctx.fiber.effect(()=>{var c,h;if(!this.props[n])(c=this.props)[n]??(c[n]={type:"service"});else if(this.props[n].type!=="service")throw new Error(`property "${n}" is already declared as ${this.props[n].type}`);this.props[n]={type:"service"},(h=this.ctx.root[Y.isolate])[n]??(h[n]=Symbol(n));const s=this.ctx[Y.isolate][n],u={name:n,value:r,fiber:this.ctx.fiber,check:i};if(this.store[s])throw new Error(`service "${n}" has been registered at <${this.store[s].fiber.name}>`);return this.store[s]=u,this.ctx.fiber.store[n]=u,this.ctx.fiber.state===2&&this.notify([n]),async()=>{delete this.store[s];const p=this.notify([n]);await Promise.allSettled(p.map(g=>g.await())),delete this.ctx.fiber.store[n]}},`ctx.provide(${JSON.stringify(n)})`)}notify(n,r=(i,s)=>i[Y.isolate][s]===this.ctx[Y.isolate][s]){var s;const i=[];for(const u of this.ctx.registry.values())for(const c of u.fibers){let h=!1;for(const p of n)p in c.inject&&r(c.ctx,p)&&(h=!0,c._checkImpl(p));h&&(c._refresh(),i.push(c))}for(const u of n){const c=Object.create(this.ctx);c[Y.filter]=h=>r(h,u),this.ctx.events.emit(c,"internal/service",u,(s=this._getImpl(u,!1))==null?void 0:s.value)}return i}accessor(n,r){return this.ctx.fiber.effect(()=>{if(n in this.props)throw new Error(`property "${n}" is already declared as ${this.props[n].type}`);return this.props[n]={type:"accessor",...r},()=>delete this.props[n]},`ctx.accessor(${JSON.stringify(n)})`)}mixin(n,r){const i=this;return this.ctx.fiber.effect(function*(){const s=Array.isArray(r)?r.map(c=>[c,c]):Object.entries(r),u=(c,h)=>c[n];for(const[c,h]of s)yield i.accessor(h,{get(p,g){const C=u(this);if(ze(C))return C;const v=p?x1(p,C):C,L=Reflect.get(C,c,v);return typeof L!="function"?L:L.bind(v??C)},set(p,g,C){const v=u(this),L=g?x1(g,v):v;return Reflect.set(v,c,p,L)}})},`ctx.mixin(${JSON.stringify(n)})`)}trace(n){return En(this.ctx,n)}bind(n){return new Proxy(n,{apply:(r,i,s)=>Reflect.apply(r,this.trace(i),s.map(u=>this.trace(u))),construct:(r,i,s)=>Reflect.construct(r,i.map(u=>this.trace(u)),s)})}},P(Nl,"handler",{get:(n,r,i)=>{if(ul(r))return Reflect.get(n,r,i);if(Reflect.has(n,r))return En(i,Reflect.get(n,r,i));const s=new Error(`cannot get property "${r}" without inject`);try{const u=n.reflect.props[r];return(u==null?void 0:u.type)==="accessor"?u.get.call(i,i[Y.receiver],s):i.fiber.runtime?i.events.waterfall("internal/get",i,r,s,()=>{var p;const c=n[Y.isolate][r];let h=(i[Y.shadow]??i).fiber;for(;;){const g=(p=h.store)==null?void 0:p[r];if(g)return En(i,g.value);if(r in h.inject)throw s.message=`cannot get required service "${r}" in inactive context`,s;if(!h.runtime||h.parent[Y.isolate][r]!==c)throw s;h=h.parent.fiber}}):i.reflect.get(r,!1)}catch(u){throw u===s?ll(u):u}},set:(n,r,i,s)=>{if(ul(r))return Reflect.set(n,r,i,s);const u=new Error(`cannot set property "${r}" without provide`),c=n.reflect.props[r];if(!c){if(!s.fiber.runtime)return Reflect.set(n,r,i,s);throw ll(u)}try{return c.type==="accessor"?c.set?c.set.call(s,i,s[Y.receiver],u):!1:s.events.waterfall("internal/set",s,r,i,u,()=>s.reflect.set(r,i,u))}catch(h){throw h===u?ll(h):h}},has:(n,r)=>ul(r)?Reflect.has(n,r):Reflect.has(n,r)?!0:!!n.reflect.props[r]}),Nl);const c6=Symbol.for("ValidationError");var eu=class extends TypeError{constructor(i){super(`invalid config: +`+i.map(s=>s.path?` - ${s.message} (at ${s.path.join(".")})`:` - ${s.message}`).join(` +`));P(this,"name","ValidationError")}};Object.defineProperty(eu.prototype,c6,{value:!0});function _3(n,r){if(!n.Config)return r;const i=n.Config["~standard"].validate(r);if("then"in i)throw new TypeError("Async config validation is not supported");if(i.issues)throw new eu(i.issues);return i.value}const L3=new WeakMap;function al(n){var i;const r=n();return((i=L3.get(n))==null?void 0:i())??r}function f6(n,r){const i=["internal/plugin",r];let s;try{s=n.events.dispatch("emit",i)}catch(u){n.logger.error(u);return}for(const u of s)try{const c=u(...i);Promise.resolve(c).catch(h=>n.logger.error(h))}catch(c){n.logger.error(c)}}var _1=class k3 extends Error{constructor(i,s){super(s??k3.Code[i]);P(this,"code");this.code=i}};(function(n){n.Code={INACTIVE_EFFECT:"cannot create effect on inactive context"}})(_1||(_1={}));const zt="__INACTIVE__";var tu=class{constructor(n,r,i,s,u){P(this,"parent");P(this,"inject");P(this,"runtime");P(this,"uid");P(this,"ctx");P(this,"config");P(this,"_config");P(this,"state",0);P(this,"dispose");P(this,"store");P(this,"inertia");P(this,"_hooks",Object.create(null));P(this,"_disposables",new oi);P(this,"context");P(this,"_error");P(this,"_runner");P(this,"_store",Object.create(null));this.parent=n,this.inject=i,this.runtime=s,this._config=r;const c=h=>{this._disposables.push(h)};if(s){this.uid=n.registry.counter,this.ctx=this.context=n.extend({fiber:this});const h=Object.entries(this.inject);if(h.length){this.ctx[Be.intercept]=Object.create(n[Be.intercept]);for(const[p,g]of h)ze(g)||(this.ctx[Be.intercept][p]=g)}this._runner={epoch:zt,getOuterStack:u,execute:function(){var p;if(m3(s.callback)){const g=new s.callback(this.ctx,this.config);for(const C of(g==null?void 0:g[Y.initHooks])??[])C();return(p=g==null?void 0:g[Y.init])==null?void 0:p.call(g)}else return s.callback(this.ctx,this.config)},collect:c},this.dispose=n.fiber.effect(()=>{const p=s.fibers.push(this);return async()=>{for(this.uid=null,f6(this.context,this),this.ctx.registry.has(s.callback)&&(p(),s.fibers.length||this.ctx.registry.delete(s.callback)),this._setEpoch(zt),this.inertia||this._updateState(()=>(this.inertia=this._unload(),5));this.inertia;)await this.inertia}},"ctx.plugin()");try{this.context.emit("internal/plugin",this)}catch(p){throw Promise.resolve(this.dispose()).catch(g=>this.ctx.logger.error(g)),p}if(this.uid!==null&&n.fiber.state!==5){for(const p of Object.keys(this.inject))this._checkImpl(p);this._refresh()}}else this.uid=0,this.ctx=this.context=n,this.state=2,this.store=Object.create(null),this._runner={epoch:"",getOuterStack:u,execute:()=>{},collect:c},this.dispose=()=>this.restart()}get name(){var r;let n=this;do{if((r=n.runtime)!=null&&r.name)return n.runtime.name;n=n.parent.fiber}while(n!==n.parent.fiber);return"root"}assertActive(){if(this.uid===null)throw new _1("INACTIVE_EFFECT")}_execute(n){const r=n.epoch;return Ko(i=>{const s=c=>{if(typeof c=="function")n.collect(c);else if(!ze(c))throw new TypeError("Invalid effect")},u=n.execute.call(this);if(typeof u=="function")return n.collect(u);if(!ze(u))if(Un(u)){if("then"in u)return u.then(s);if(Symbol.iterator in u){i.error=new Error;const c=u[Symbol.iterator]();for(;;){const h=c.next();if(s(h.value),h.done)return}}else if(Symbol.asyncIterator in u){const c=u[Symbol.asyncIterator]();return(async()=>{for(await Promise.resolve(),i.error=new Error;;){if(n.epoch!==r)return;const h=await c.next();if(s(h.value),h.done)return}})()}else throw new TypeError("Invalid effect")}else throw new TypeError("Invalid effect")},n.getOuterStack)}effect(n,r="anonymous"){if(this.assertActive(),this.state===5)throw new _1("INACTIVE_EFFECT");const i=[];let s=!1,u;const c=()=>{if(s)return u;s=!0;let Q;for(const V of i.splice(0).reverse())if(Q)Q=Q.then(()=>al(V));else{const Z=al(V);Un(Z)&&"then"in Z&&(Q=Z)}return u=Q},h={label:r,children:[]},p={execute:n,epoch:!0,collect:Q=>{i.push(Q),this._disposables.delete(Q),Q[Y.effect]&&h.children.push(Q[Y.effect])},getOuterStack:si()};let g,C=!0,v,L,w,_=!1,k,E=()=>!1;const T=()=>(w??(w=new Promise((Q,V)=>{v=Q,L=V})),w),B=Q=>Promise.resolve(Q).then(()=>c(),async V=>{throw await c(),V}),W=Q=>{let V;try{V=Q()}catch(Z){throw E(),Z}if(Un(V)&&"then"in V){const Z=Promise.resolve(V).finally(()=>{E(),k===Z&&(k=void 0)});return k=Z}return E(),V},z=qt(()=>p.epoch?(p.epoch=!1,W(()=>C?B(T()):g?B(g):c())):_?k:void 0,Y.effect,h);L3.set(z,()=>k),E=this._disposables.push(z);try{g=this._execute(p)}catch(Q){C=!1,_=!0,p.epoch=!1;let V;try{V=W(c)}finally{L==null||L(Q)}throw Un(V)&&"then"in V&&V.catch(Z=>this.ctx.logger.error(Z)),Q}C=!1,w&&Promise.resolve(g).then(v,L),g==null||g.catch(()=>p.epoch?W(c):c()).catch(Q=>this.ctx.logger.error(Q));const ee=()=>{if(p.epoch)return p.epoch=!1,W(c)};return z.then=async(Q,V)=>Promise.resolve(g).then(()=>ee).then(Q,V),z}getEffects(){return[...this._disposables].map(n=>n[Y.effect]).filter(Boolean)}_getState(){return this.uid===null?4:this._error?3:this._runner.epoch!==zt?2:0}_updateState(n){const r=this.state;if(this.state=n()??this._getState(),r!==this.state&&(this.context.emit("internal/status",this,r),!(r!==2&&this.state!==2)))for(const i of Reflect.ownKeys(this.ctx.reflect.store)){const s=this.ctx.reflect.store[i];s.fiber===this&&this.ctx.reflect.notify([s.name])}}_checkImpl(n){const r=this.ctx.reflect._getImpl(n,!0);if(!r)return delete this._store[n];try{if(r.check&&!r.check.call(En(this.ctx,r.value)))return delete this._store[n]}catch(i){return r.fiber.ctx.logger.error(i),delete this._store[n]}this._store[n]=r}_refresh(){let n=!1;n="";for(const r of Object.keys(this.inject)){const i=this._store[r];if(!i){n=zt;break}n+=":"+i.fiber.uid}this._setEpoch(n)}_setEpoch(n){const r=this._runner.epoch;n!==r&&(this._runner.epoch=n,!this.inertia&&this._updateState(()=>n!==zt&&r===zt?(this.inertia=this._reload(),1):(this.inertia=this._unload(),5)))}_resolveConfig(n){return n=this.context.waterfall(this,"internal/config",n,()=>n),this.runtime?_3(this.runtime,n):n}async _reload(){this.store={...this._store};const n=this._runner.epoch;try{await Promise.resolve(),this._runner.epoch===n&&(this.config=this._resolveConfig(this._config),await this._execute(this._runner),this._error=void 0)}catch(r){this.ctx.logger.error(r),this._error=r,this._runner.epoch=zt}this._updateState(()=>{if(this._runner.epoch===n)this.inertia=void 0;else return this.inertia=this._unload(),5})}async _unload(){await Promise.all(this._disposables.clear().map(async n=>{try{await Ko(async r=>{await Promise.resolve(),r.error=new Error,await al(n)},this._runner.getOuterStack)}catch(r){this.ctx.logger.error(r)}})),this.store=void 0,this._updateState(()=>{if(this._runner.epoch===zt)this.inertia=void 0;else return this.inertia=this._reload(),1})}async await(){for(;this.inertia;)await this.inertia;if(this._error)throw this._error;return this}async restart(){this.assertActive(),this._setEpoch(zt),this._refresh(),await this.await()}update(n,r=!1){if(this.assertActive(),this._config=n,this.state!==2){this._error=void 0,this._setEpoch(zt),this._refresh();return}return n=this._resolveConfig(n),this.context.waterfall(this,"internal/update",n,r,()=>(this.config=n,this._error=void 0,this.restart()))}};function d6(n){return n&&typeof n=="object"&&typeof n.apply=="function"}function L1(n,r){return function(i,s){var u,c;if(s.kind==="class")Object.hasOwn(i,"inject")||(qt(i,"inject",Object.create(Object.getPrototypeOf(i).inject??null)),qt(i.inject,Y.checkProto,!0)),i.inject[n]=r;else if(s.kind==="method"){const h=(c=i[u=Y.metadata]??(i[u]={})).inject??(c.inject=Object.create(null));h[n]=r,s.addInitializer(function(){var g,C;const p=(g=this[Y.tracker])==null?void 0:g.property;(this[C=Y.initHooks]??(this[C]=[])).push(()=>{this.ctx.inject(h,v=>i.call(p?x1(this,{[p]:v}):this))})})}else throw new Error("@Inject() can only be used on class or class methods")}}(function(n){function r(i,s=Object.create(null)){if(!i)return s;if(Array.isArray(i))for(const u of i)s[u]=null;else if(Reflect.has(i,Y.checkProto)){Object.assign(s,r(Object.getPrototypeOf(i)));for(const u of Object.keys(i))s[u]=i[u]??null}else for(const u of Object.keys(i))s[u]=i[u]??null;return s}n.resolve=r})(L1||(L1={}));var S3=class{constructor(n){P(this,"ctx");P(this,"_counter",0);P(this,"_internal",new Map);this.ctx=n,qt(this,Y.tracker,{property:"ctx",noShadow:!0})}get counter(){return++this._counter}get size(){return this._internal.size}resolve(n){try{if(typeof n=="function")return n;if(d6(n))return n.apply}catch{}}get(n){const r=this.resolve(n);return r&&this._internal.get(r)}has(n){const r=this.resolve(n);return!!r&&this._internal.has(r)}delete(n){const r=this.resolve(n),i=r&&this._internal.get(r);if(i){this._internal.delete(r);for(const s of i.fibers)s.dispose();return i}}keys(){return this._internal.keys()}values(){return this._internal.values()}entries(){return this._internal.entries()}forEach(n){return this._internal.forEach(n)}inject(n,r){return this.plugin({inject:n,apply:r,name:r.name})}plugin(n,r,i=si()){const s=this.resolve(n);if(!s)throw new Error('invalid plugin, expect function or object with an "apply" method, received '+typeof n);this.ctx.fiber.assertActive();let u=this._internal.get(s);if(!u){let p=n.name;p==="apply"&&(p=void 0),u={name:p,callback:s,fibers:new oi,Config:n.Config},this._internal.set(s,u)}const c=new tu(this.ctx,r,L1.resolve(n.inject),u,i),h=Object.create(c);return h.then=(p,g)=>c.await().then(p,g),h}},yt,Be=(yt=class{static is(r){return!!(r!=null&&r[yt.is])}constructor(){this[Y.isolate]=Object.create(null),this[Y.intercept]=Object.create(null);const r=new Proxy(this,y0.handler);return this.root=r,this.baseUrl=void 0,this.fiber=new tu(r,{},Object.create(null),null,()=>[]),this.reflect=new y0(r),this.registry=new S3(r),this.events=new v3(r),this.logger=new x3(r),this.fiber._disposables.clear(),r}[Symbol.for("nodejs.util.inspect.custom")](){return`Context <${this.fiber.name}>`}extend(r={}){var u;const i=(u=Reflect.getOwnPropertyDescriptor(this,Y.shadow))==null?void 0:u.value,s=Object.create(En(this,this));for(const c of Reflect.ownKeys(r))Object.defineProperty(s,c,Reflect.getOwnPropertyDescriptor(r,c));return i?Object.assign(Object.create(s),{[Y.shadow]:i}):s}isolate(r,i){const s=Object.create(this[Y.isolate]);return s[r]=i??Symbol(r),this.extend({[Y.isolate]:s})}intercept(r,i){const s=Object.create(this[Y.intercept]);return s[r]=i,this.extend({[Y.intercept]:s})}},P(yt,"effect",Y.effect),P(yt,"filter",Y.filter),P(yt,"isolate",Y.isolate),P(yt,"intercept",Y.intercept),yt.is[Symbol.toPrimitive]=()=>Symbol.for("cordis.is"),yt.prototype[yt.is]=!0,yt),vt,Zn=(vt=class{constructor(r,i){P(this,"ctx");P(this,"name");this.ctx=r,i??(i=this.constructor.provide);let s=this;const u={associate:i,property:"ctx"};return s[Y.invoke]&&(s=Qo(i,ii(Object.getPrototypeOf(this),Function.prototype),u)),s.ctx=r,s.name=i,qt(s,Y.tracker,u),s.ctx.reflect.provide(i,s,this[Y.check]),s}[Y.filter](r){return r[Y.isolate][this.name]===this.ctx[Y.isolate][this.name]}[Y.extend](r){let i;return this[vt.invoke]?i=Qo(this.name,this,this[Y.tracker]):i=Object.create(this),Object.assign(i,r)}[Y.resolveConfig](r,i){var c;let s=this.ctx[Be.intercept];const u=[];for(;this.name in s;)Object.hasOwn(s,this.name)&&u.unshift(s[this.name]),s=Object.getPrototypeOf(s);return r&&u.unshift(r),i&&u.push(i),(c=this.Config)!=null&&c.merge?this.Config.merge(...u):Object.assign({},...u)}static[Symbol.hasInstance](r){var s;if(!r)return!1;let i=r.constructor;for(;i;){if(i=(s=i.prototype)==null?void 0:s.constructor,i===this)return!0;i&&(i=Object.getPrototypeOf(i))}return!1}},P(vt,"init",Y.init),P(vt,"check",Y.check),P(vt,"config",Y.config),P(vt,"invoke",Y.invoke),P(vt,"extend",Y.extend),P(vt,"tracker",Y.tracker),P(vt,"resolveConfig",Y.resolveConfig),vt);const h6=Object.freeze(Object.defineProperty({__proto__:null,Context:Be,get CordisError(){return _1},DisposableList:oi,EventsService:v3,Fiber:tu,get Inject(){return L1},Logger:Jo,LoggerService:x3,RegistryService:S3,Service:Zn,ValidationError:eu,buildOuterStack:si,c16:y3,c256:w3,composeError:Ko,createCallable:Qo,defaultFormatters:Hl,getPropertyDescriptor:C3,getTraceable:En,isBailed:$l,isConstructor:m3,isObject:Un,joinPrototype:ii,resolveConfig:_3,symbols:Y,withProps:x1},Symbol.toStringTag,{value:"Module"})),p6=()=>{throw new Error("node:module is not available in the browser")};var m6=[],Vl;(function(n){let r;function i(u){const c=p6();if(m6.includes("--expose-internals"))try{return c(u)}catch{}try{return c("node-addon-require-builtin").requireBuiltin(u)}catch{}}function s(){var c,h;if(r)return r;const[u]="0.0.0".split(".").map(Number);if(u>=24){const p=(c=i("internal/modules/esm/loader"))==null?void 0:c.getOrInitializeCascadedLoader();if(p)return r=Object.assign(p,{version:"v2"})}else if(u>=22){const p=(h=i("internal/modules/esm/loader"))==null?void 0:h.getOrInitializeCascadedLoader();if(p)return r=Object.assign(p,{version:"v1"})}}n.fromInternal=s})(Vl||(Vl={}));var Rl,Go=(Rl=class{constructor(n,r){P(this,"ctx");P(this,"tree");P(this,"data",[]);this.ctx=n,this.tree=r;const i=n.fiber.entry;i&&(i.subgroup=this)}get context(){return this.ctx}async create(n){const r=this.tree.ensureId(n),i=this.tree.store[r],s=i??(this.tree.store[r]=new Dl(this.ctx.loader)),u=s.parent;s.parent=this;try{await s.update(n,!0,!0)}catch(c){throw i?s.parent=u:delete this.tree.store[r],c}return s.id}unlink(n){const r=this.data,i=r.indexOf(n);i>=0&&r.splice(i,1)}async remove(n,r=!1){const i=this.tree.store[n];i&&(await i._dispose(),r||this.unlink(i.options),delete this.tree.store[n],this.context.emit("loader/partial-dispose",i,i.options,!1))}async update(n){const r=this.data,i=new Set;for(const c of n){const h=this.tree.ensureId(c);if(i.has(h))throw new TypeError(`duplicate loader entry id: ${h}`);i.add(h)}const s=Object.fromEntries(r.map(c=>[c.id,c])),u=Object.fromEntries(n.map(c=>[c.id,c]));try{const c=await Promise.allSettled(n.map(p=>this.create(p)));if(this.ctx.fiber.uid===null)return;const h=c.filter(p=>p.status==="rejected").map(p=>p.reason);if(h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"loader entries failed to apply");for(const p of Object.keys(s))u[p]||await this.remove(p,!0);this.data=n}catch(c){const h=[];for(const p of Object.keys(u).reverse())if(!s[p])try{await this.remove(p,!0)}catch(g){h.push(g)}for(const p of r)try{await this.create(p)}catch(g){h.push(g)}throw this.data=r,h.length?new AggregateError([c,...h],"loader entry rollback failed"):c}}async stop(){for(const n of this.data)await this.remove(n.id,!0)}},P(Rl,"key",Symbol.for("cordis.group")),Rl),c3,Zo;Zo=class extends Go{constructor(r,i){super(r,r.fiber.entry.parent.tree);P(this,"ctx");P(this,"config");this.ctx=r,this.config=i,r.on("internal/update",s=>this.update(s))}async*[(c3=Go.key,Zn.init)](){yield()=>this.stop(),await this.update(this.config)}},P(Zo,"initial",[]),P(Zo,c3,!0);var w0=function(n,r){return typeof n=="string"&&/^\.\.?\//.test(n)?n.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(i,s,u,c,h){return s?".js":u&&(!c||!h)?i:u+c+"."+h.toLowerCase()+"js"}):n},Wn,j3=(Wn=class{constructor(r){P(this,"ctx");P(this,"enableLogs");P(this,"root");P(this,"store",Object.create(null));this.ctx=r.extend({baseUrl:r.baseUrl}),this.root=new Go(this.ctx,this);const i=this.ctx.fiber.entry;i&&(i.subtree=this)}get context(){return this.ctx}*entries(){for(const r of Object.values(this.store))yield r,r.subtree&&(yield*r.subtree.entries())}getTasks(){return[...this.entries()].map(r=>{var i;return r._initTask||((i=r.fiber)==null?void 0:i.inertia)}).filter(X5)}async await(){for(;;){const r=this.getTasks();if(r.length){await Promise.allSettled(r);continue}const i=(await Promise.allSettled([...this.entries()].map(s=>s._await()))).filter(s=>s.status==="rejected").map(s=>s.reason);if(i.length===1)throw i[0];if(i.length>1)throw new AggregateError(i,"loader fibers failed");if(this.ctx.reflect.notify(["loader"]),!this.getTasks().length)return}}ensureId(r){if(!r.id)do r.id=Math.random().toString(16).slice(2,10);while(this.store[r.id]);return r.id}resolve(r){var h;const i=r.split(Wn.sep);let s=this;const u=i.pop();for(const p of i)if(s=(h=s.store[p])==null?void 0:h.subtree,!s)throw new Error(`cannot resolve entry ${r}`);const c=s.store[u];if(!c)throw new Error(`cannot resolve entry ${r}`);return c}resolveGroup(r){if(!r)return this.root;const i=this.resolve(r);if(!i.subgroup)throw new Error(`entry ${r} is not a group`);return i.subgroup}async create(r,i=null,s=1/0){const u=this.resolveGroup(i),c=await u.create(r),h=this.resolve(c);return u.data.splice(s,0,h.options),u.tree.write(),c}async remove(r){const i=this.resolve(r);await i.parent.remove(r),i.parent.tree.write()}async update(r,i,s,u){const c=this.resolve(r),h=c.parent,p=h.data.indexOf(c.options);let g=h;s!==void 0&&(g=this.resolveGroup(s),h.unlink(c.options),g.data.splice(u??1/0,0,c.options),c.parent=g);try{await c.update(i,!1,!0)}catch(C){if(s!==void 0){g.unlink(c.options),h.data.splice(p<0?h.data.length:p,0,c.options),c.parent=h;try{await c.update({},!1,!0)}catch(v){throw new AggregateError([C,v],`failed to roll back loader entry move ${r}`)}}throw C}h.tree.write(),g!==h&&g.tree.write()}import(r,i){return r.startsWith("cordis:")?this.ctx.loader.builtins[r.slice(7)]:Ko(async s=>(s.offset+=3,this.ctx.loader.internal?await this.ctx.loader.internal.import(r,this.ctx.baseUrl,{}):r.startsWith(".")?await import(w0(new URL(r,this.ctx.baseUrl).href)):await import(w0(r))),i)}},P(Wn,"sep",":"),Wn);const E3=new Function("ctx","expr",` + with (ctx) { + return eval(expr) + } +`);function Al(n,r){return b3(r)?E3(n,r.__jsExpr):!r||typeof r!="object"?r:Array.isArray(r)?r.map(i=>Al(n,i)):on(r,i=>Al(n,i))}function b3(n){return n instanceof Object&&"__jsExpr"in n}function Zt(n,r,i){const s=i instanceof Error?i.message:String(i);return new Error(`failed to ${n} loader entry ${r.id} (${r.name}): ${s}`,{cause:i})}function cl(n,r){const i=[];for(const s of r)s in n&&(i.push([s,n[s]]),delete n[s]);return i}function C6(n,r=["id","name"],i=["config"]){const s=cl(n,r),u=cl(n,i),c=cl(n,Object.keys(n)).sort(([h],[p])=>h.localeCompare(p));return Object.assign(n,Object.fromEntries([...s,...c,...u]))}function g6(n,r){for(const i of Object.keys(n))Reflect.deleteProperty(n,i);return Object.assign(n,r)}var qn,Dl=(qn=class{constructor(r){P(this,"loader");P(this,"ctx");P(this,"fiber");P(this,"parent");P(this,"options",{});P(this,"subgroup");P(this,"subtree");P(this,"_initTask");P(this,"_disposing",0);P(this,"getOuterStack",()=>{let r=this;const i=[];do i.push(` at ${r.parent.tree.ctx.baseUrl}#${r.options.id}`),r=r.parent.ctx.fiber.entry;while(r);return i});this.loader=r,this.ctx=r.ctx.extend({[qn.key]:this}),this.context.emit("loader/entry-init",this)}get context(){return this.ctx}get id(){let r=this.options.id;return this.parent.tree.ctx.fiber.entry&&(r=this.parent.tree.ctx.fiber.entry.id+j3.sep+r),r}get disabled(){return this._disabled(this.options)}_disabled(r){if(r.group)return!1;if(this.disabledOf(r))return!0;let i=this.parent.ctx.fiber.entry;for(;i;){if(this.disabledOf(i.options))return!0;i=i.parent.ctx.fiber.entry}return!1}disabledOf(r){return b3(r.disabled)?!!this.evaluate(r.disabled.__jsExpr):!!r.disabled}evaluate(r){return E3(this.ctx,r)}async _patchContext(r){await this.context.waterfall("loader/patch-context",this,async()=>{var i;Object.setPrototypeOf(this.ctx,this.parent.ctx),(i=this.fiber)!=null&&i.uid&&(r.includes("config")||this.options.group)&&await this.fiber.update(this.options.config,!0)})}async refresh(){this.fiber||this.disabled||await this.init()}async _dispose(r=this.fiber){if(r){this.fiber===r&&(this.fiber=void 0),this._disposing+=1;try{await r.dispose()}finally{this._disposing-=1}}}async update(r,i=!1,s=!1){const u=this.options,c={...u},h=i?r:{...u};if(!i)for(const[w,_]of Object.entries(r))ze(_)?delete h[w]:h[w]=_;C6(h);const p=Object.keys({...h,...c}).filter(w=>!jr(h[w],c[w]));if(!p.length&&!s)return;const g=()=>{i||(this.options=g6(u,h))},C=this.fiber;if(!(C!=null&&C.uid)){this.fiber=void 0,this.options=h;try{this._disabled(h)||await this.init()}catch(w){throw this.options=u,w}g();return}if(this._disabled(h)){this.options=h;try{await this._dispose(C)}catch(w){throw this.options=u,Zt("dispose",h,w)}g(),this.context.emit("loader/partial-dispose",this,c,!0);return}if(!p.some(w=>w==="name"||w==="inject"||w==="group")){this.options=h;try{await this._patchContext(p)}catch(w){this.options=u;try{await this._patchContext(p)}catch(_){throw Zt("rollback",c,new AggregateError([w,_]))}throw this.context.emit("loader/partial-dispose",this,h,!0),Zt("apply",h,w)}g(),this.context.emit("loader/partial-dispose",this,c,!0);return}let v;try{v=p.includes("name")?this.loader.unwrapExports(await this.parent.tree.import(h.name,this.getOuterStack)):C.runtime.callback}catch(w){throw Zt("import",h,w)}const L=C.runtime.callback;this.options=h;try{await this._dispose(C)}catch(w){throw this.options=u,Zt("dispose",h,w)}try{await this._start(v)}catch(w){this.options=u;try{await this._start(L)}catch(_){throw Zt("rollback",c,new AggregateError([w,_]))}throw this.context.emit("loader/partial-dispose",this,h,!0),Zt("apply",h,w)}g(),this.context.emit("loader/partial-dispose",this,c,!0)}async init(){try{await(this._initTask??(this._initTask=this._init()))}finally{this._initTask=void 0,this.loader.getTasks().length||this.ctx.reflect.notify(["loader"])}await this._await()}async _await(){var r;try{await((r=this.fiber)==null?void 0:r.await())}catch(i){throw Zt("apply",this.options,i)}}async _init(){let r;try{r=this.loader.unwrapExports(await this.parent.tree.import(this.options.name,this.getOuterStack))}catch(i){throw Zt("import",this.options,i)}try{await this._start(r)}catch(i){throw Zt("apply",this.options,i)}}async _start(r){let i;try{await this._patchContext([]),this.loader.showLog(this,"apply"),i=this.fiber=this.ctx.registry.plugin(r,this.options.config,this.getOuterStack),await i.await()}catch(s){throw await this._dispose(i),s}}},P(qn,"key",Symbol.for("cordis.entry")),qn);function x0(n,r){for(const i of Reflect.ownKeys(n))Reflect.deleteProperty(n,i);for(const i of Reflect.ownKeys(r||{}))Reflect.defineProperty(n,i,Reflect.getOwnPropertyDescriptor(r,i))}var M3=class{constructor(){P(this,"store",Object.create(null))}access(n,r=!1){var i;return r?(i=this.store)[n]??(i[n]=Symbol(`${n}${this.suffix}`)):this.store[n]??Symbol(`${n}${this.suffix}`)}delete(n){delete this.store[n]}get size(){return Object.keys(this.store).length}},v6=class extends M3{constructor(r){super();P(this,"entry");this.entry=r}get suffix(){return"#"+this.entry.options.id}},y6=class extends M3{constructor(r){super();P(this,"label");this.label=r}get suffix(){return"@"+this.label}};function w6(n){const r=Object.create(null),i=Object.create(null);function s(u,c,h=!1){var C;let p;const g=(C=u.options.isolate)==null?void 0:C[c];if(g)return g===!0?p=u.realm??(u.realm=new v6(u)):h?p=r[g]??(r[g]=new y6(g)):p=r[g],p==null?void 0:p.access(c,h)}n.on("loader/entry-init",u=>{u.ctx[Be.intercept]=Object.create(u.ctx[Be.intercept]),u.ctx[Be.isolate]=Object.create(u.ctx[Be.isolate])}),n.on("loader/patch-context",async(u,c)=>{const h=Object.create(u.parent.ctx[Be.isolate]);for(const C of Object.keys(u.options.isolate??{}))h[C]=s(u,C,!0);const p=Object.create(null),g=u.ctx[Be.isolate];for(const C in{...h,...i}){if(h[C]===g[C])continue;const v=i[C]??(i[C]=Symbol(`delim:${C}`));u.ctx[v]=Symbol(`${C}#${u.id}`);for(const L of[g[C],h[C]]){const w=L&&u.ctx.reflect.store[L];if(w){if(!w.fiber){u.ctx.logger.warn(new Error(`expected service ${C} to be implemented`));continue}if(p[C]=[g[C],h[C],u.ctx[v],w.fiber.ctx[v]],u.ctx[v]!==w.fiber.ctx[v])break}}}Object.setPrototypeOf(u.ctx[Be.isolate],u.parent.ctx[Be.isolate]),Object.setPrototypeOf(u.ctx[Be.intercept],u.parent.ctx[Be.intercept]),x0(u.ctx[Be.isolate],h),x0(u.ctx[Be.intercept],u.options.intercept),await c();for(const[C,v,L,w]of Object.values(p))L===w&&u.ctx.reflect.store[C]&&!u.ctx.reflect.store[v]&&(u.ctx.reflect.store[v]=u.ctx.reflect.store[C],delete u.ctx.reflect.store[C]);n.reflect.notify(Object.keys(p),(C,v)=>{const[L,w,_,k]=p[v],E=C[Be.isolate][v],T=C[i[v]];return(L===E||w===E)&&_===T!=(_===k)});for(const C in i)Reflect.ownKeys(h).includes(C)||delete u.ctx[i[C]]}),n.on("loader/partial-dispose",(u,c,h)=>{var p,g;for(const[C,v]of Object.entries(c.isolate??{})){if(v===!0||h&&((p=u.options.isolate)==null?void 0:p[C])===v)continue;const L=r[v];if(L){for(const w of n.loader.entries())if(((g=w.options.isolate)==null?void 0:g[C])===L.label)return;L.delete(C),L.size||delete r[L.label]}}})}var x6=class extends j3{constructor(r,i={}){super(r);P(this,"config");P(this,"envData",{startTime:Date.now()});P(this,"name","loader");P(this,"internal",Vl.fromInternal());P(this,"builtins",Object.create(null));this.config=i,i.baseUrl&&(this.ctx.baseUrl=i.baseUrl);const s=this;qt(this,Zn.tracker,{associate:"loader",property:"ctx",noShadow:!0}),r.reflect.provide("loader",this,this[Zn.check]),r.on("internal/config",function(u,c){var p,g,C;const h=c();return!this.entry||((p=this.parent.fiber)==null?void 0:p.entry)===this.entry||(C=(g=this.runtime)==null?void 0:g.callback)!=null&&C[Go.key]?h:Al(this.ctx,h)},{global:!0}),r.on("internal/update",async function(u,c,h){var g,C,v;if(!this.entry||c||((g=this.parent.fiber)==null?void 0:g.entry)===this.entry)return h();await h();const p=(v=(C=this.runtime)==null?void 0:C.Config)==null?void 0:v.simplify;this.entry.options.config=p?p(u):u,this.entry.parent.tree.write()},{global:!0,prepend:!0}),r.on("internal/update",function(u,c,h){var p;return!this.entry||((p=this.parent.fiber)==null?void 0:p.entry)===this.entry||s.showLog(this.entry,"reload"),h()},{global:!0}),r.on("internal/plugin",u=>{var h;if(u.parent[Dl.key]&&!u.entry&&(u.entry=u.parent[Dl.key],L1.resolve(u.entry.options.inject,u.inject)),u.uid||!u.entry||((h=u.parent.fiber)==null?void 0:h.entry)===u.entry||!r.registry.has(u.runtime.callback))return;const c=u.entry.parent.tree.ctx.fiber;!c.uid||c.state===5||u.entry._disposing||(this.showLog(u.entry,"unload"),!u.entry.disabled&&(u.entry.options.disabled=!0,u.entry.parent.tree.write()))}),r.plugin(w6)}write(){}[Zn.check](){return!(Zn.prototype[Zn.resolveConfig].call(this).await&&this.getTasks().length)}showLog(r,i){var s,u;r.options.group||!r.parent.tree.enableLogs||(u=(s=this.ctx.root).logger)==null||u.call(s,"loader").info("%s plugin %C",i,r.options.name)}locate(r=this.ctx.fiber){for(;;){if(r.entry)return r.entry.id;const i=r.parent.fiber;if(r===i)return;r=i}}exit(){}unwrapExports(r){return ze(r)||(r=r.default??r,!r.__esModule)?r:r.default??r}},Ao={},fl={exports:{}},ft={},dl={exports:{}},hl={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _0;function _6(){return _0||(_0=1,(function(n){function r(U,ie){var K=U.length;U.push(ie);e:for(;0>>1,O=U[j];if(0>>1;ju(ve,K))_eu(be,ve)?(U[j]=be,U[_e]=K,j=_e):(U[j]=ve,U[de]=K,j=de);else if(_eu(be,K))U[j]=be,U[_e]=K,j=_e;else break e}}return ie}function u(U,ie){var K=U.sortIndex-ie.sortIndex;return K!==0?K:U.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;n.unstable_now=function(){return c.now()}}else{var h=Date,p=h.now();n.unstable_now=function(){return h.now()-p}}var g=[],C=[],v=1,L=null,w=3,_=!1,k=!1,E=!1,T=typeof setTimeout=="function"?setTimeout:null,B=typeof clearTimeout=="function"?clearTimeout:null,W=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function z(U){for(var ie=i(C);ie!==null;){if(ie.callback===null)s(C);else if(ie.startTime<=U)s(C),ie.sortIndex=ie.expirationTime,r(g,ie);else break;ie=i(C)}}function ee(U){if(E=!1,z(U),!k)if(i(g)!==null)k=!0,Se(Q);else{var ie=i(C);ie!==null&&we(ee,ie.startTime-U)}}function Q(U,ie){k=!1,E&&(E=!1,B(ne),ne=-1),_=!0;var K=w;try{for(z(ie),L=i(g);L!==null&&(!(L.expirationTime>ie)||U&&!q());){var j=L.callback;if(typeof j=="function"){L.callback=null,w=L.priorityLevel;var O=j(L.expirationTime<=ie);ie=n.unstable_now(),typeof O=="function"?L.callback=O:L===i(g)&&s(g),z(ie)}else s(g);L=i(g)}if(L!==null)var oe=!0;else{var de=i(C);de!==null&&we(ee,de.startTime-ie),oe=!1}return oe}finally{L=null,w=K,_=!1}}var V=!1,Z=null,ne=-1,I=5,J=-1;function q(){return!(n.unstable_now()-JU||125j?(U.sortIndex=K,r(C,U),i(g)===null&&U===i(C)&&(E?(B(ne),ne=-1):E=!0,we(ee,K-j))):(U.sortIndex=O,r(g,U),k||_||(k=!0,Se(Q))),U},n.unstable_shouldYield=q,n.unstable_wrapCallback=function(U){var ie=w;return function(){var K=w;w=ie;try{return U.apply(this,arguments)}finally{w=K}}}})(hl)),hl}var L0;function L6(){return L0||(L0=1,dl.exports=_6()),dl.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var k0;function k6(){if(k0)return ft;k0=1;var n=E1(),r=L6();function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),g=Object.prototype.hasOwnProperty,C=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v={},L={};function w(e){return g.call(L,e)?!0:g.call(v,e)?!1:C.test(e)?L[e]=!0:(v[e]=!0,!1)}function _(e,t,o,l){if(o!==null&&o.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return l?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function k(e,t,o,l){if(t===null||typeof t>"u"||_(e,t,o,l))return!0;if(l)return!1;if(o!==null)switch(o.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function E(e,t,o,l,a,d,m){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=l,this.attributeNamespace=a,this.mustUseProperty=o,this.propertyName=e,this.type=t,this.sanitizeURL=d,this.removeEmptyString=m}var T={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){T[e]=new E(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];T[t]=new E(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){T[e]=new E(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){T[e]=new E(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){T[e]=new E(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){T[e]=new E(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){T[e]=new E(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){T[e]=new E(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){T[e]=new E(e,5,!1,e.toLowerCase(),null,!1,!1)});var B=/[\-:]([a-z])/g;function W(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(B,W);T[t]=new E(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(B,W);T[t]=new E(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(B,W);T[t]=new E(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){T[e]=new E(e,1,!1,e.toLowerCase(),null,!1,!1)}),T.xlinkHref=new E("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){T[e]=new E(e,1,!1,e.toLowerCase(),null,!0,!0)});function z(e,t,o,l){var a=T.hasOwnProperty(t)?T[t]:null;(a!==null?a.type!==0:l||!(2y||a[m]!==d[y]){var x=` +`+a[m].replace(" at new "," at ");return e.displayName&&x.includes("")&&(x=x.replace("",e.displayName)),x}while(1<=m&&0<=y);break}}}finally{oe=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?O(e):""}function ve(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return e=de(e.type,!1),e;case 11:return e=de(e.type.render,!1),e;case 1:return e=de(e.type,!0),e;default:return""}}function _e(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Z:return"Fragment";case V:return"Portal";case I:return"Profiler";case ne:return"StrictMode";case le:return"Suspense";case he:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case q:return(e.displayName||"Context")+".Consumer";case J:return(e._context.displayName||"Context")+".Provider";case ce:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case pe:return t=e.displayName||null,t!==null?t:_e(e.type)||"Memo";case Se:t=e._payload,e=e._init;try{return _e(e(t))}catch{}}return null}function be(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _e(t);case 8:return t===ne?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function je(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Re(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function dt(e){var t=Re(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),l=""+e[t];if(!e.hasOwnProperty(t)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var a=o.get,d=o.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(m){l=""+m,d.call(this,m)}}),Object.defineProperty(e,t,{enumerable:o.enumerable}),{getValue:function(){return l},setValue:function(m){l=""+m},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function b1(e){e._valueTracker||(e._valueTracker=dt(e))}function Cu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var o=t.getValue(),l="";return e&&(l=Re(e)?e.checked?"true":"false":e.value),e=l,e!==o?(t.setValue(e),!0):!1}function M1(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ci(e,t){var o=t.checked;return K({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function gu(e,t){var o=t.defaultValue==null?"":t.defaultValue,l=t.checked!=null?t.checked:t.defaultChecked;o=je(t.value!=null?t.value:o),e._wrapperState={initialChecked:l,initialValue:o,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function vu(e,t){t=t.checked,t!=null&&z(e,"checked",t,!1)}function fi(e,t){vu(e,t);var o=je(t.value),l=t.type;if(o!=null)l==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(l==="submit"||l==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?di(e,t.type,o):t.hasOwnProperty("defaultValue")&&di(e,t.type,je(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function yu(e,t,o){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var l=t.type;if(!(l!=="submit"&&l!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,o||t===e.value||(e.value=t),e.defaultValue=t}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function di(e,t,o){(t!=="number"||M1(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var Mr=Array.isArray;function Jn(e,t,o,l){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=O1.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Or(e,t){if(t){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=t;return}}e.textContent=t}var Nr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ac=["Webkit","ms","Moz","O"];Object.keys(Nr).forEach(function(e){Ac.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Nr[t]=Nr[e]})});function Su(e,t,o){return t==null||typeof t=="boolean"||t===""?"":o||typeof t!="number"||t===0||Nr.hasOwnProperty(e)&&Nr[e]?(""+t).trim():t+"px"}function ju(e,t){e=e.style;for(var o in t)if(t.hasOwnProperty(o)){var l=o.indexOf("--")===0,a=Su(o,t[o],l);o==="float"&&(o="cssFloat"),l?e.setProperty(o,a):e[o]=a}}var Dc=K({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function mi(e,t){if(t){if(Dc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(i(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(t.style!=null&&typeof t.style!="object")throw Error(i(62))}}function Ci(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var gi=null;function vi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yi=null,Gn=null,Yn=null;function Eu(e){if(e=Xr(e)){if(typeof yi!="function")throw Error(i(280));var t=e.stateNode;t&&(t=X1(t),yi(e.stateNode,e.type,t))}}function bu(e){Gn?Yn?Yn.push(e):Yn=[e]:Gn=e}function Mu(){if(Gn){var e=Gn,t=Yn;if(Yn=Gn=null,Eu(e),t)for(e=0;e>>=0,e===0?32:31-(Gc(e)/Yc|0)|0}var I1=64,$1=4194304;function Ir(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function H1(e,t){var o=e.pendingLanes;if(o===0)return 0;var l=0,a=e.suspendedLanes,d=e.pingedLanes,m=o&268435455;if(m!==0){var y=m&~a;y!==0?l=Ir(y):(d&=m,d!==0&&(l=Ir(d)))}else m=o&~a,m!==0?l=Ir(m):d!==0&&(l=Ir(d));if(l===0)return 0;if(t!==0&&t!==l&&(t&a)===0&&(a=l&-l,d=t&-t,a>=d||a===16&&(d&4194240)!==0))return t;if((l&4)!==0&&(l|=o&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=l;0o;o++)t.push(e);return t}function $r(e,t,o){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-bt(t),e[t]=o}function n4(e,t){var o=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var l=e.eventTimes;for(e=e.expirationTimes;0=Zr),ra=" ",oa=!1;function ia(e,t){switch(e){case"keyup":return O4.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sa(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var tr=!1;function R4(e,t){switch(e){case"compositionend":return sa(t);case"keypress":return t.which!==32?null:(oa=!0,ra);case"textInput":return e=t.data,e===ra&&oa?null:e;default:return null}}function P4(e,t){if(tr)return e==="compositionend"||!Hi&&ia(e,t)?(e=Gu(),B1=Ni=dn=null,tr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:o,offset:t-e};e=l}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=ha(o)}}function ma(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ma(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ca(){for(var e=window,t=M1();t instanceof e.HTMLIFrameElement;){try{var o=typeof t.contentWindow.location.href=="string"}catch{o=!1}if(o)e=t.contentWindow;else break;t=M1(e.document)}return t}function Di(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function B4(e){var t=Ca(),o=e.focusedElem,l=e.selectionRange;if(t!==o&&o&&o.ownerDocument&&ma(o.ownerDocument.documentElement,o)){if(l!==null&&Di(o)){if(t=l.start,e=l.end,e===void 0&&(e=t),"selectionStart"in o)o.selectionStart=t,o.selectionEnd=Math.min(e,o.value.length);else if(e=(t=o.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=o.textContent.length,d=Math.min(l.start,a);l=l.end===void 0?d:Math.min(l.end,a),!e.extend&&d>l&&(a=l,l=d,d=a),a=pa(o,d);var m=pa(o,l);a&&m&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==m.node||e.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),d>l?(e.addRange(t),e.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),e.addRange(t)))}}for(t=[],e=o;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,nr=null,Fi=null,Qr=null,Bi=!1;function ga(e,t,o){var l=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Bi||nr==null||nr!==M1(l)||(l=nr,"selectionStart"in l&&Di(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Qr&&qr(Qr,l)||(Qr=l,l=J1(Fi,"onSelect"),0lr||(e.current=es[lr],es[lr]=null,lr--)}function Me(e,t){lr++,es[lr]=e.current,e.current=t}var Cn={},Ge=mn(Cn),st=mn(!1),On=Cn;function ur(e,t){var o=e.type.contextTypes;if(!o)return Cn;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===t)return l.__reactInternalMemoizedMaskedChildContext;var a={},d;for(d in o)a[d]=t[d];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function lt(e){return e=e.childContextTypes,e!=null}function eo(){Ne(st),Ne(Ge)}function Ra(e,t,o){if(Ge.current!==Cn)throw Error(i(168));Me(Ge,t),Me(st,o)}function Pa(e,t,o){var l=e.stateNode;if(t=t.childContextTypes,typeof l.getChildContext!="function")return o;l=l.getChildContext();for(var a in l)if(!(a in t))throw Error(i(108,be(e)||"Unknown",a));return K({},o,l)}function to(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Cn,On=Ge.current,Me(Ge,e),Me(st,st.current),!0}function Ta(e,t,o){var l=e.stateNode;if(!l)throw Error(i(169));o?(e=Pa(e,t,On),l.__reactInternalMemoizedMergedChildContext=e,Ne(st),Ne(Ge),Me(Ge,e)):Ne(st),Me(st,o)}var Kt=null,no=!1,ts=!1;function Ia(e){Kt===null?Kt=[e]:Kt.push(e)}function e5(e){no=!0,Ia(e)}function gn(){if(!ts&&Kt!==null){ts=!0;var e=0,t=Ee;try{var o=Kt;for(Ee=1;e>=m,a-=m,Jt=1<<32-bt(t)+a|o<me?(Qe=ae,ae=null):Qe=ae.sibling;var Le=$(b,ae,M[me],F);if(Le===null){ae===null&&(ae=Qe);break}e&&ae&&Le.alternate===null&&t(b,ae),S=d(Le,S,me),ue===null?se=Le:ue.sibling=Le,ue=Le,ae=Qe}if(me===M.length)return o(b,ae),Pe&&Rn(b,me),se;if(ae===null){for(;meme?(Qe=ae,ae=null):Qe=ae.sibling;var jn=$(b,ae,Le.value,F);if(jn===null){ae===null&&(ae=Qe);break}e&&ae&&jn.alternate===null&&t(b,ae),S=d(jn,S,me),ue===null?se=jn:ue.sibling=jn,ue=jn,ae=Qe}if(Le.done)return o(b,ae),Pe&&Rn(b,me),se;if(ae===null){for(;!Le.done;me++,Le=M.next())Le=A(b,Le.value,F),Le!==null&&(S=d(Le,S,me),ue===null?se=Le:ue.sibling=Le,ue=Le);return Pe&&Rn(b,me),se}for(ae=l(b,ae);!Le.done;me++,Le=M.next())Le=G(ae,b,me,Le.value,F),Le!==null&&(e&&Le.alternate!==null&&ae.delete(Le.key===null?me:Le.key),S=d(Le,S,me),ue===null?se=Le:ue.sibling=Le,ue=Le);return e&&ae.forEach(function(T5){return t(b,T5)}),Pe&&Rn(b,me),se}function De(b,S,M,F){if(typeof M=="object"&&M!==null&&M.type===Z&&M.key===null&&(M=M.props.children),typeof M=="object"&&M!==null){switch(M.$$typeof){case Q:e:{for(var se=M.key,ue=S;ue!==null;){if(ue.key===se){if(se=M.type,se===Z){if(ue.tag===7){o(b,ue.sibling),S=a(ue,M.props.children),S.return=b,b=S;break e}}else if(ue.elementType===se||typeof se=="object"&&se!==null&&se.$$typeof===Se&&Fa(se)===ue.type){o(b,ue.sibling),S=a(ue,M.props),S.ref=e1(b,ue,M),S.return=b,b=S;break e}o(b,ue);break}else t(b,ue);ue=ue.sibling}M.type===Z?(S=Dn(M.props.children,b.mode,F,M.key),S.return=b,b=S):(F=No(M.type,M.key,M.props,null,b.mode,F),F.ref=e1(b,S,M),F.return=b,b=F)}return m(b);case V:e:{for(ue=M.key;S!==null;){if(S.key===ue)if(S.tag===4&&S.stateNode.containerInfo===M.containerInfo&&S.stateNode.implementation===M.implementation){o(b,S.sibling),S=a(S,M.children||[]),S.return=b,b=S;break e}else{o(b,S);break}else t(b,S);S=S.sibling}S=Ys(M,b.mode,F),S.return=b,b=S}return m(b);case Se:return ue=M._init,De(b,S,ue(M._payload),F)}if(Mr(M))return te(b,S,M,F);if(ie(M))return re(b,S,M,F);so(b,M)}return typeof M=="string"&&M!==""||typeof M=="number"?(M=""+M,S!==null&&S.tag===6?(o(b,S.sibling),S=a(S,M),S.return=b,b=S):(o(b,S),S=Gs(M,b.mode,F),S.return=b,b=S),m(b)):o(b,S)}return De}var dr=Ba(!0),za=Ba(!1),lo=mn(null),uo=null,hr=null,ls=null;function us(){ls=hr=uo=null}function as(e){var t=lo.current;Ne(lo),e._currentValue=t}function cs(e,t,o){for(;e!==null;){var l=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,l!==null&&(l.childLanes|=t)):l!==null&&(l.childLanes&t)!==t&&(l.childLanes|=t),e===o)break;e=e.return}}function pr(e,t){uo=e,ls=hr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(ut=!0),e.firstContext=null)}function Lt(e){var t=e._currentValue;if(ls!==e)if(e={context:e,memoizedValue:t,next:null},hr===null){if(uo===null)throw Error(i(308));hr=e,uo.dependencies={lanes:0,firstContext:e}}else hr=hr.next=e;return t}var Pn=null;function fs(e){Pn===null?Pn=[e]:Pn.push(e)}function Za(e,t,o,l){var a=t.interleaved;return a===null?(o.next=o,fs(t)):(o.next=a.next,a.next=o),t.interleaved=o,Yt(e,l)}function Yt(e,t){e.lanes|=t;var o=e.alternate;for(o!==null&&(o.lanes|=t),o=e,e=e.return;e!==null;)e.childLanes|=t,o=e.alternate,o!==null&&(o.childLanes|=t),o=e,e=e.return;return o.tag===3?o.stateNode:null}var vn=!1;function ds(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Xt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function yn(e,t,o){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(xe&2)!==0){var a=l.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t,Yt(e,o)}return a=l.interleaved,a===null?(t.next=t,fs(l)):(t.next=a.next,a.next=t),l.interleaved=t,Yt(e,o)}function ao(e,t,o){if(t=t.updateQueue,t!==null&&(t=t.shared,(o&4194240)!==0)){var l=t.lanes;l&=e.pendingLanes,o|=l,t.lanes=o,ji(e,o)}}function Wa(e,t){var o=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,o===l)){var a=null,d=null;if(o=o.firstBaseUpdate,o!==null){do{var m={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};d===null?a=d=m:d=d.next=m,o=o.next}while(o!==null);d===null?a=d=t:d=d.next=t}else a=d=t;o={baseState:l.baseState,firstBaseUpdate:a,lastBaseUpdate:d,shared:l.shared,effects:l.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=t:e.next=t,o.lastBaseUpdate=t}function co(e,t,o,l){var a=e.updateQueue;vn=!1;var d=a.firstBaseUpdate,m=a.lastBaseUpdate,y=a.shared.pending;if(y!==null){a.shared.pending=null;var x=y,N=x.next;x.next=null,m===null?d=N:m.next=N,m=x;var H=e.alternate;H!==null&&(H=H.updateQueue,y=H.lastBaseUpdate,y!==m&&(y===null?H.firstBaseUpdate=N:y.next=N,H.lastBaseUpdate=x))}if(d!==null){var A=a.baseState;m=0,H=N=x=null,y=d;do{var $=y.lane,G=y.eventTime;if((l&$)===$){H!==null&&(H=H.next={eventTime:G,lane:0,tag:y.tag,payload:y.payload,callback:y.callback,next:null});e:{var te=e,re=y;switch($=t,G=o,re.tag){case 1:if(te=re.payload,typeof te=="function"){A=te.call(G,A,$);break e}A=te;break e;case 3:te.flags=te.flags&-65537|128;case 0:if(te=re.payload,$=typeof te=="function"?te.call(G,A,$):te,$==null)break e;A=K({},A,$);break e;case 2:vn=!0}}y.callback!==null&&y.lane!==0&&(e.flags|=64,$=a.effects,$===null?a.effects=[y]:$.push(y))}else G={eventTime:G,lane:$,tag:y.tag,payload:y.payload,callback:y.callback,next:null},H===null?(N=H=G,x=A):H=H.next=G,m|=$;if(y=y.next,y===null){if(y=a.shared.pending,y===null)break;$=y,y=$.next,$.next=null,a.lastBaseUpdate=$,a.shared.pending=null}}while(!0);if(H===null&&(x=A),a.baseState=x,a.firstBaseUpdate=N,a.lastBaseUpdate=H,t=a.shared.interleaved,t!==null){a=t;do m|=a.lane,a=a.next;while(a!==t)}else d===null&&(a.shared.lanes=0);$n|=m,e.lanes=m,e.memoizedState=A}}function qa(e,t,o){if(e=t.effects,t.effects=null,e!==null)for(t=0;to?o:4,e(!0);var l=gs.transition;gs.transition={};try{e(!1),t()}finally{Ee=o,gs.transition=l}}function d2(){return kt().memoizedState}function o5(e,t,o){var l=Ln(e);if(o={lane:l,action:o,hasEagerState:!1,eagerState:null,next:null},h2(e))p2(t,o);else if(o=Za(e,t,o,l),o!==null){var a=rt();Tt(o,e,l,a),m2(o,t,l)}}function i5(e,t,o){var l=Ln(e),a={lane:l,action:o,hasEagerState:!1,eagerState:null,next:null};if(h2(e))p2(t,a);else{var d=e.alternate;if(e.lanes===0&&(d===null||d.lanes===0)&&(d=t.lastRenderedReducer,d!==null))try{var m=t.lastRenderedState,y=d(m,o);if(a.hasEagerState=!0,a.eagerState=y,Mt(y,m)){var x=t.interleaved;x===null?(a.next=a,fs(t)):(a.next=x.next,x.next=a),t.interleaved=a;return}}catch{}finally{}o=Za(e,t,a,l),o!==null&&(a=rt(),Tt(o,e,l,a),m2(o,t,l))}}function h2(e){var t=e.alternate;return e===$e||t!==null&&t===$e}function p2(e,t){o1=po=!0;var o=e.pending;o===null?t.next=t:(t.next=o.next,o.next=t),e.pending=t}function m2(e,t,o){if((o&4194240)!==0){var l=t.lanes;l&=e.pendingLanes,o|=l,t.lanes=o,ji(e,o)}}var go={readContext:Lt,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useInsertionEffect:Ye,useLayoutEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useMutableSource:Ye,useSyncExternalStore:Ye,useId:Ye,unstable_isNewReconciler:!1},s5={readContext:Lt,useCallback:function(e,t){return Ft().memoizedState=[e,t===void 0?null:t],e},useContext:Lt,useEffect:o2,useImperativeHandle:function(e,t,o){return o=o!=null?o.concat([e]):null,mo(4194308,4,l2.bind(null,t,e),o)},useLayoutEffect:function(e,t){return mo(4194308,4,e,t)},useInsertionEffect:function(e,t){return mo(4,2,e,t)},useMemo:function(e,t){var o=Ft();return t=t===void 0?null:t,e=e(),o.memoizedState=[e,t],e},useReducer:function(e,t,o){var l=Ft();return t=o!==void 0?o(t):t,l.memoizedState=l.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},l.queue=e,e=e.dispatch=o5.bind(null,$e,e),[l.memoizedState,e]},useRef:function(e){var t=Ft();return e={current:e},t.memoizedState=e},useState:n2,useDebugValue:ks,useDeferredValue:function(e){return Ft().memoizedState=e},useTransition:function(){var e=n2(!1),t=e[0];return e=r5.bind(null,e[1]),Ft().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,o){var l=$e,a=Ft();if(Pe){if(o===void 0)throw Error(i(407));o=o()}else{if(o=t(),qe===null)throw Error(i(349));(In&30)!==0||Ga(l,t,o)}a.memoizedState=o;var d={value:o,getSnapshot:t};return a.queue=d,o2(Xa.bind(null,l,d,e),[e]),l.flags|=2048,l1(9,Ya.bind(null,l,d,o,t),void 0,null),o},useId:function(){var e=Ft(),t=qe.identifierPrefix;if(Pe){var o=Gt,l=Jt;o=(l&~(1<<32-bt(l)-1)).toString(32)+o,t=":"+t+"R"+o,o=i1++,0<\/script>",e=e.removeChild(e.firstChild)):typeof l.is=="string"?e=m.createElement(o,{is:l.is}):(e=m.createElement(o),o==="select"&&(m=e,l.multiple?m.multiple=!0:l.size&&(m.size=l.size))):e=m.createElementNS(e,o),e[At]=t,e[Yr]=l,I2(e,t,!1,!1),t.stateNode=e;e:{switch(m=Ci(o,l),o){case"dialog":Oe("cancel",e),Oe("close",e),a=l;break;case"iframe":case"object":case"embed":Oe("load",e),a=l;break;case"video":case"audio":for(a=0;ayr&&(t.flags|=128,l=!0,u1(d,!1),t.lanes=4194304)}else{if(!l)if(e=fo(m),e!==null){if(t.flags|=128,l=!0,o=e.updateQueue,o!==null&&(t.updateQueue=o,t.flags|=4),u1(d,!0),d.tail===null&&d.tailMode==="hidden"&&!m.alternate&&!Pe)return Xe(t),null}else 2*Ae()-d.renderingStartTime>yr&&o!==1073741824&&(t.flags|=128,l=!0,u1(d,!1),t.lanes=4194304);d.isBackwards?(m.sibling=t.child,t.child=m):(o=d.last,o!==null?o.sibling=m:t.child=m,d.last=m)}return d.tail!==null?(t=d.tail,d.rendering=t,d.tail=t.sibling,d.renderingStartTime=Ae(),t.sibling=null,o=Ie.current,Me(Ie,l?o&1|2:o&1),t):(Xe(t),null);case 22:case 23:return Qs(),l=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==l&&(t.flags|=8192),l&&(t.mode&1)!==0?(Ct&1073741824)!==0&&(Xe(t),t.subtreeFlags&6&&(t.flags|=8192)):Xe(t),null;case 24:return null;case 25:return null}throw Error(i(156,t.tag))}function p5(e,t){switch(rs(t),t.tag){case 1:return lt(t.type)&&eo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mr(),Ne(st),Ne(Ge),Cs(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ps(t),null;case 13:if(Ne(Ie),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));fr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ne(Ie),null;case 4:return mr(),null;case 10:return as(t.type._context),null;case 22:case 23:return Qs(),null;case 24:return null;default:return null}}var xo=!1,et=!1,m5=typeof WeakSet=="function"?WeakSet:Set,X=null;function gr(e,t){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(l){Ve(e,t,l)}else o.current=null}function $s(e,t,o){try{o()}catch(l){Ve(e,t,l)}}var V2=!1;function C5(e,t){if(Qi=D1,e=Ca(),Di(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var l=o.getSelection&&o.getSelection();if(l&&l.rangeCount!==0){o=l.anchorNode;var a=l.anchorOffset,d=l.focusNode;l=l.focusOffset;try{o.nodeType,d.nodeType}catch{o=null;break e}var m=0,y=-1,x=-1,N=0,H=0,A=e,$=null;t:for(;;){for(var G;A!==o||a!==0&&A.nodeType!==3||(y=m+a),A!==d||l!==0&&A.nodeType!==3||(x=m+l),A.nodeType===3&&(m+=A.nodeValue.length),(G=A.firstChild)!==null;)$=A,A=G;for(;;){if(A===e)break t;if($===o&&++N===a&&(y=m),$===d&&++H===l&&(x=m),(G=A.nextSibling)!==null)break;A=$,$=A.parentNode}A=G}o=y===-1||x===-1?null:{start:y,end:x}}else o=null}o=o||{start:0,end:0}}else o=null;for(Ki={focusedElem:e,selectionRange:o},D1=!1,X=t;X!==null;)if(t=X,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,X=e;else for(;X!==null;){t=X;try{var te=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(te!==null){var re=te.memoizedProps,De=te.memoizedState,b=t.stateNode,S=b.getSnapshotBeforeUpdate(t.elementType===t.type?re:Nt(t.type,re),De);b.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var M=t.stateNode.containerInfo;M.nodeType===1?M.textContent="":M.nodeType===9&&M.documentElement&&M.removeChild(M.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(F){Ve(t,t.return,F)}if(e=t.sibling,e!==null){e.return=t.return,X=e;break}X=t.return}return te=V2,V2=!1,te}function a1(e,t,o){var l=t.updateQueue;if(l=l!==null?l.lastEffect:null,l!==null){var a=l=l.next;do{if((a.tag&e)===e){var d=a.destroy;a.destroy=void 0,d!==void 0&&$s(t,o,d)}a=a.next}while(a!==l)}}function _o(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var o=t=t.next;do{if((o.tag&e)===e){var l=o.create;o.destroy=l()}o=o.next}while(o!==t)}}function Hs(e){var t=e.ref;if(t!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof t=="function"?t(e):t.current=e}}function A2(e){var t=e.alternate;t!==null&&(e.alternate=null,A2(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[At],delete t[Yr],delete t[Xi],delete t[Y4],delete t[X4])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function D2(e){return e.tag===5||e.tag===3||e.tag===4}function F2(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||D2(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vs(e,t,o){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?o.nodeType===8?o.parentNode.insertBefore(e,t):o.insertBefore(e,t):(o.nodeType===8?(t=o.parentNode,t.insertBefore(e,o)):(t=o,t.appendChild(e)),o=o._reactRootContainer,o!=null||t.onclick!==null||(t.onclick=Y1));else if(l!==4&&(e=e.child,e!==null))for(Vs(e,t,o),e=e.sibling;e!==null;)Vs(e,t,o),e=e.sibling}function As(e,t,o){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?o.insertBefore(e,t):o.appendChild(e);else if(l!==4&&(e=e.child,e!==null))for(As(e,t,o),e=e.sibling;e!==null;)As(e,t,o),e=e.sibling}var Ke=null,Rt=!1;function wn(e,t,o){for(o=o.child;o!==null;)B2(e,t,o),o=o.sibling}function B2(e,t,o){if(Vt&&typeof Vt.onCommitFiberUnmount=="function")try{Vt.onCommitFiberUnmount(T1,o)}catch{}switch(o.tag){case 5:et||gr(o,t);case 6:var l=Ke,a=Rt;Ke=null,wn(e,t,o),Ke=l,Rt=a,Ke!==null&&(Rt?(e=Ke,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):Ke.removeChild(o.stateNode));break;case 18:Ke!==null&&(Rt?(e=Ke,o=o.stateNode,e.nodeType===8?Yi(e.parentNode,o):e.nodeType===1&&Yi(e,o),Fr(e)):Yi(Ke,o.stateNode));break;case 4:l=Ke,a=Rt,Ke=o.stateNode.containerInfo,Rt=!0,wn(e,t,o),Ke=l,Rt=a;break;case 0:case 11:case 14:case 15:if(!et&&(l=o.updateQueue,l!==null&&(l=l.lastEffect,l!==null))){a=l=l.next;do{var d=a,m=d.destroy;d=d.tag,m!==void 0&&((d&2)!==0||(d&4)!==0)&&$s(o,t,m),a=a.next}while(a!==l)}wn(e,t,o);break;case 1:if(!et&&(gr(o,t),l=o.stateNode,typeof l.componentWillUnmount=="function"))try{l.props=o.memoizedProps,l.state=o.memoizedState,l.componentWillUnmount()}catch(y){Ve(o,t,y)}wn(e,t,o);break;case 21:wn(e,t,o);break;case 22:o.mode&1?(et=(l=et)||o.memoizedState!==null,wn(e,t,o),et=l):wn(e,t,o);break;default:wn(e,t,o)}}function z2(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new m5),t.forEach(function(l){var a=S5.bind(null,e,l);o.has(l)||(o.add(l),l.then(a,a))})}}function Pt(e,t){var o=t.deletions;if(o!==null)for(var l=0;la&&(a=m),l&=~d}if(l=a,l=Ae()-l,l=(120>l?120:480>l?480:1080>l?1080:1920>l?1920:3e3>l?3e3:4320>l?4320:1960*v5(l/1960))-l,10e?16:e,_n===null)var l=!1;else{if(e=_n,_n=null,Eo=0,(xe&6)!==0)throw Error(i(331));var a=xe;for(xe|=4,X=e.current;X!==null;){var d=X,m=d.child;if((X.flags&16)!==0){var y=d.deletions;if(y!==null){for(var x=0;xAe()-Bs?Vn(e,0):Fs|=o),ct(e,t)}function n0(e,t){t===0&&((e.mode&1)===0?t=1:(t=$1,$1<<=1,($1&130023424)===0&&($1=4194304)));var o=rt();e=Yt(e,t),e!==null&&($r(e,t,o),ct(e,o))}function k5(e){var t=e.memoizedState,o=0;t!==null&&(o=t.retryLane),n0(e,o)}function S5(e,t){var o=0;switch(e.tag){case 13:var l=e.stateNode,a=e.memoizedState;a!==null&&(o=a.retryLane);break;case 19:l=e.stateNode;break;default:throw Error(i(314))}l!==null&&l.delete(t),n0(e,o)}var r0;r0=function(e,t,o){if(e!==null)if(e.memoizedProps!==t.pendingProps||st.current)ut=!0;else{if((e.lanes&o)===0&&(t.flags&128)===0)return ut=!1,d5(e,t,o);ut=(e.flags&131072)!==0}else ut=!1,Pe&&(t.flags&1048576)!==0&&$a(t,oo,t.index);switch(t.lanes=0,t.tag){case 2:var l=t.type;wo(e,t),e=t.pendingProps;var a=ur(t,Ge.current);pr(t,o),a=ys(null,t,l,e,a,o);var d=ws();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,lt(l)?(d=!0,to(t)):d=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,ds(t),a.updater=vo,t.stateNode=a,a._reactInternals=t,js(t,l,e,o),t=Os(null,t,l,!0,d,o)):(t.tag=0,Pe&&d&&ns(t),nt(null,t,a,o),t=t.child),t;case 16:l=t.elementType;e:{switch(wo(e,t),e=t.pendingProps,a=l._init,l=a(l._payload),t.type=l,a=t.tag=E5(l),e=Nt(l,e),a){case 0:t=Ms(null,t,l,e,o);break e;case 1:t=M2(null,t,l,e,o);break e;case 11:t=k2(null,t,l,e,o);break e;case 14:t=S2(null,t,l,Nt(l.type,e),o);break e}throw Error(i(306,l,""))}return t;case 0:return l=t.type,a=t.pendingProps,a=t.elementType===l?a:Nt(l,a),Ms(e,t,l,a,o);case 1:return l=t.type,a=t.pendingProps,a=t.elementType===l?a:Nt(l,a),M2(e,t,l,a,o);case 3:e:{if(O2(t),e===null)throw Error(i(387));l=t.pendingProps,d=t.memoizedState,a=d.element,Ua(e,t),co(t,l,null,o);var m=t.memoizedState;if(l=m.element,d.isDehydrated)if(d={element:l,isDehydrated:!1,cache:m.cache,pendingSuspenseBoundaries:m.pendingSuspenseBoundaries,transitions:m.transitions},t.updateQueue.baseState=d,t.memoizedState=d,t.flags&256){a=Cr(Error(i(423)),t),t=N2(e,t,l,o,a);break e}else if(l!==a){a=Cr(Error(i(424)),t),t=N2(e,t,l,o,a);break e}else for(mt=pn(t.stateNode.containerInfo.firstChild),pt=t,Pe=!0,Ot=null,o=za(t,null,l,o),t.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(fr(),l===a){t=en(e,t,o);break e}nt(e,t,l,o)}t=t.child}return t;case 5:return Qa(t),e===null&&is(t),l=t.type,a=t.pendingProps,d=e!==null?e.memoizedProps:null,m=a.children,Ji(l,a)?m=null:d!==null&&Ji(l,d)&&(t.flags|=32),b2(e,t),nt(e,t,m,o),t.child;case 6:return e===null&&is(t),null;case 13:return R2(e,t,o);case 4:return hs(t,t.stateNode.containerInfo),l=t.pendingProps,e===null?t.child=dr(t,null,l,o):nt(e,t,l,o),t.child;case 11:return l=t.type,a=t.pendingProps,a=t.elementType===l?a:Nt(l,a),k2(e,t,l,a,o);case 7:return nt(e,t,t.pendingProps,o),t.child;case 8:return nt(e,t,t.pendingProps.children,o),t.child;case 12:return nt(e,t,t.pendingProps.children,o),t.child;case 10:e:{if(l=t.type._context,a=t.pendingProps,d=t.memoizedProps,m=a.value,Me(lo,l._currentValue),l._currentValue=m,d!==null)if(Mt(d.value,m)){if(d.children===a.children&&!st.current){t=en(e,t,o);break e}}else for(d=t.child,d!==null&&(d.return=t);d!==null;){var y=d.dependencies;if(y!==null){m=d.child;for(var x=y.firstContext;x!==null;){if(x.context===l){if(d.tag===1){x=Xt(-1,o&-o),x.tag=2;var N=d.updateQueue;if(N!==null){N=N.shared;var H=N.pending;H===null?x.next=x:(x.next=H.next,H.next=x),N.pending=x}}d.lanes|=o,x=d.alternate,x!==null&&(x.lanes|=o),cs(d.return,o,t),y.lanes|=o;break}x=x.next}}else if(d.tag===10)m=d.type===t.type?null:d.child;else if(d.tag===18){if(m=d.return,m===null)throw Error(i(341));m.lanes|=o,y=m.alternate,y!==null&&(y.lanes|=o),cs(m,o,t),m=d.sibling}else m=d.child;if(m!==null)m.return=d;else for(m=d;m!==null;){if(m===t){m=null;break}if(d=m.sibling,d!==null){d.return=m.return,m=d;break}m=m.return}d=m}nt(e,t,a.children,o),t=t.child}return t;case 9:return a=t.type,l=t.pendingProps.children,pr(t,o),a=Lt(a),l=l(a),t.flags|=1,nt(e,t,l,o),t.child;case 14:return l=t.type,a=Nt(l,t.pendingProps),a=Nt(l.type,a),S2(e,t,l,a,o);case 15:return j2(e,t,t.type,t.pendingProps,o);case 17:return l=t.type,a=t.pendingProps,a=t.elementType===l?a:Nt(l,a),wo(e,t),t.tag=1,lt(l)?(e=!0,to(t)):e=!1,pr(t,o),g2(t,l,a),js(t,l,a,o),Os(null,t,l,!0,e,o);case 19:return T2(e,t,o);case 22:return E2(e,t,o)}throw Error(i(156,t.tag))};function o0(e,t){return Hu(e,t)}function j5(e,t,o,l){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function jt(e,t,o,l){return new j5(e,t,o,l)}function Js(e){return e=e.prototype,!(!e||!e.isReactComponent)}function E5(e){if(typeof e=="function")return Js(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ce)return 11;if(e===pe)return 14}return 2}function Sn(e,t){var o=e.alternate;return o===null?(o=jt(e.tag,t,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=t,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,t=e.dependencies,o.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function No(e,t,o,l,a,d){var m=2;if(l=e,typeof e=="function")Js(e)&&(m=1);else if(typeof e=="string")m=5;else e:switch(e){case Z:return Dn(o.children,a,d,t);case ne:m=8,a|=8;break;case I:return e=jt(12,o,t,a|2),e.elementType=I,e.lanes=d,e;case le:return e=jt(13,o,t,a),e.elementType=le,e.lanes=d,e;case he:return e=jt(19,o,t,a),e.elementType=he,e.lanes=d,e;case we:return Ro(o,a,d,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case J:m=10;break e;case q:m=9;break e;case ce:m=11;break e;case pe:m=14;break e;case Se:m=16,l=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return t=jt(m,o,t,a),t.elementType=e,t.type=l,t.lanes=d,t}function Dn(e,t,o,l){return e=jt(7,e,l,t),e.lanes=o,e}function Ro(e,t,o,l){return e=jt(22,e,l,t),e.elementType=we,e.lanes=o,e.stateNode={isHidden:!1},e}function Gs(e,t,o){return e=jt(6,e,null,t),e.lanes=o,e}function Ys(e,t,o){return t=jt(4,e.children!==null?e.children:[],e.key,t),t.lanes=o,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function b5(e,t,o,l,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Si(0),this.expirationTimes=Si(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Si(0),this.identifierPrefix=l,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Xs(e,t,o,l,a,d,m,y,x){return e=new b5(e,t,o,y,x),t===1?(t=1,d===!0&&(t|=8)):t=0,d=jt(3,null,null,t),e.current=d,d.stateNode=e,d.memoizedState={element:l,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},ds(d),e}function M5(e,t,o){var l=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),fl.exports=k6(),fl.exports}var j0;function S6(){if(j0)return Ao;j0=1;var n=O3();return Ao.createRoot=n.createRoot,Ao.hydrateRoot=n.hydrateRoot,Ao}var nu=S6();const j6=j1(nu),E6=ni({__proto__:null,default:j6},[nu]),b6=n=>new Promise((r,i)=>{const s=document.createElement("script");s.async=!0,s.src=n,s.addEventListener("load",()=>{s.remove(),r()},{once:!0}),s.addEventListener("error",()=>{s.remove(),i(new Error(`client-modules: bundle script ${n} failed to load`))},{once:!0}),document.head.append(s)}),M6=n=>n.endsWith("/client")?n.slice(0,-7):n,O6=n=>{if(typeof document>"u")return[];for(const i of document.querySelectorAll("style:not([data-plugin])"))i.setAttribute("data-plugin",n);const r=[];for(const i of document.querySelectorAll(`style[data-plugin=${JSON.stringify(n)}]`))r.push(i.getAttribute("data-plugin-css")??n);return r};class N3{constructor(r){P(this,"version","client");P(this,"loadCache",new Map);P(this,"seed");P(this,"statics",new Map);P(this,"factories",new Map);P(this,"pendingArrival",new Map);P(this,"materializing",new Set);P(this,"graphRows",new Map);P(this,"loadBundle");this.seed=new Map(Object.entries(r.staticModules)),this.loadBundle=r.loadBundle??b6;for(const s of r.modules){if(this.graphRows.has(s.id))throw new Error(`client-modules: duplicate graph entry "${s.id}"`);this.graphRows.set(s.id,s)}const i=globalThis;if(i.__ModuleLoader__!==void 0)throw new Error("client-modules: window.__ModuleLoader__ already installed (double boot?)");i.__ModuleLoader__={load:s=>{if(this.factories.has(s.id))throw new Error(`client-modules: duplicate factory registration for "${s.id}" (bundle executed twice without invalidate?)`);this.factories.set(s.id,s.factory)}}}arrive(r){const{id:i,url:s}=r,u=this.pendingArrival.get(i);if(u!==void 0)return u;if(this.factories.has(i))return Promise.resolve();const c=this.loadBundle(s).then(()=>{if(!this.factories.has(i))throw new Error(`client-modules: bundle ${s} loaded without registering "${i}" via __ModuleLoader__.load`)}).finally(()=>{this.pendingArrival.delete(i)});return this.pendingArrival.set(i,c),c}materialize(r){const i=this.loadCache.get(r);if(i!==void 0)return i;const s=this.factories.get(r);if(s===void 0)throw new Error(`client-modules: no registered factory for "${r}"`);if(this.materializing.has(r))throw new Error(`client-modules: require cycle through "${r}" (factory-form CJS cannot deliver partial exports)`);this.materializing.add(r);try{const u=new Set,c=s(this.makeRequire(u)),h={id:r,exports:c,styles:O6(r),edges:u};return this.loadCache.set(r,h),h}finally{this.materializing.delete(r)}}makeRequire(r){return i=>{if(r.add(i),this.seed.has(i))return this.seed.get(i);if(this.statics.has(i))return this.statics.get(i);const s=M6(i),u=this.loadCache.get(s);if(u!==void 0)return u.exports;if(this.factories.has(s))return this.materialize(s).exports;throw new Error(`client-modules: require("${i}") missed the module table — not a platform seed word, not a shell-own module, and no registered factory (a build-time externals drift, or a forbidden cross-plugin value import)`)}}async import(r){if(this.seed.has(r))return this.seed.get(r);const i=this.loadCache.get(r);if(i!==void 0)return i.exports;if(this.statics.has(r)){const s=this.statics.get(r);return this.loadCache.set(r,{id:r,exports:s,styles:[],edges:new Set}),s}if(!this.factories.has(r)){const s=this.graphRows.get(r);if(s===void 0)throw new Error(`client-modules: cannot resolve "${r}" — not a seed word, not a shell-own module, and not a row in the boot graph (the runtime mirror of the bundle purity gate)`);await this.arrive(s)}return this.materialize(r).exports}registerStatic(r,i){if(this.statics.has(r))throw new Error(`client-modules: shell-own module "${r}" registered twice`);this.statics.set(r,i)}async prefetch(r){if(this.statics.has(r))return;const i=this.graphRows.get(r);if(i===void 0)throw new Error(`client-modules: prefetch("${r}") — not a graph entry`);await this.arrive(i)}invalidate(r){this.factories.delete(r),this.loadCache.delete(r)}}function R3(n){if(typeof n!="object"||n===null)throw new Error("client-modules: window.__DSH_BOOT__ is missing or not an object");const r=n;if(typeof r.rev!="string")throw new Error("client-modules: boot manifest rev must be a string");if(!Array.isArray(r.entries))throw new Error("client-modules: boot manifest entries must be an array");const i=[],s=[];for(const u of r.entries){if(typeof u!="object"||u===null)throw new Error("client-modules: boot manifest entry is not an object");const c=u,h=typeof c.id=="string"?`"${c.id}"`:JSON.stringify(c);if(typeof c.id!="string"||typeof c.url!="string"||typeof c.rev!="string")throw new Error(`client-modules: boot manifest entry ${h} must carry string id/url/rev`);if(c.inject!==void 0&&(!Array.isArray(c.inject)||c.inject.some(p=>typeof p!="string")))throw new Error(`client-modules: boot manifest entry ${h} inject must be a string array`);if(c.immediately!==void 0&&typeof c.immediately!="boolean")throw new Error(`client-modules: boot manifest entry ${h} immediately must be a boolean`);i.push({id:c.id,url:c.url,rev:c.rev}),s.push({id:c.id,inject:c.inject===void 0?[]:[...c.inject],immediately:c.immediately===!0})}return{rev:r.rev,modules:i,plugins:s}}function N6(n){const r=globalThis.__DSH_MODULES__;if(r===void 0)throw new Error("client-modules: window.__DSH_MODULES__ missing — the shell kernel must construct the module system before plugin boot");n.reflect.provide("modules",r)}const R6=Object.freeze(Object.defineProperty({__proto__:null,ClientModuleSystem:N3,apply:N6,parseBootManifest:R3},Symbol.toStringTag,{value:"Module"}));var pl={exports:{}},ml={},Cl={exports:{}},gl={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var E0;function P6(){if(E0)return gl;E0=1;var n=E1();function r(L,w){return L===w&&(L!==0||1/L===1/w)||L!==L&&w!==w}var i=typeof Object.is=="function"?Object.is:r,s=n.useState,u=n.useEffect,c=n.useLayoutEffect,h=n.useDebugValue;function p(L,w){var _=w(),k=s({inst:{value:_,getSnapshot:w}}),E=k[0].inst,T=k[1];return c(function(){E.value=_,E.getSnapshot=w,g(E)&&T({inst:E})},[L,_,w]),u(function(){return g(E)&&T({inst:E}),L(function(){g(E)&&T({inst:E})})},[L]),h(_),_}function g(L){var w=L.getSnapshot;L=L.value;try{var _=w();return!i(L,_)}catch{return!0}}function C(L,w){return w()}var v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C:p;return gl.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:v,gl}var b0;function T6(){return b0||(b0=1,Cl.exports=P6()),Cl.exports}/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var M0;function I6(){if(M0)return ml;M0=1;var n=E1(),r=T6();function i(C,v){return C===v&&(C!==0||1/C===1/v)||C!==C&&v!==v}var s=typeof Object.is=="function"?Object.is:i,u=r.useSyncExternalStore,c=n.useRef,h=n.useEffect,p=n.useMemo,g=n.useDebugValue;return ml.useSyncExternalStoreWithSelector=function(C,v,L,w,_){var k=c(null);if(k.current===null){var E={hasValue:!1,value:null};k.current=E}else E=k.current;k=p(function(){function B(V){if(!W){if(W=!0,z=V,V=w(V),_!==void 0&&E.hasValue){var Z=E.value;if(_(Z,V))return ee=Z}return ee=V}if(Z=ee,s(z,V))return Z;var ne=w(V);return _!==void 0&&_(Z,ne)?Z:(z=V,ee=ne)}var W=!1,z,ee,Q=L===void 0?null:L;return[function(){return B(v())},Q===null?void 0:function(){return B(Q())}]},[v,L,w,_]);var T=u(C,k[0],k[1]);return h(function(){E.hasValue=!0,E.value=T},[T]),g(T),T},ml}var O0;function $6(){return O0||(O0=1,pl.exports=I6()),pl.exports}var H6=$6();function ru(n){const r=s=>n.subscribe(s),i=()=>n.getSnapshot();return function(u,c){return H6.useSyncExternalStoreWithSelector(r,i,void 0,u,c)}}class li extends Error{}class Er extends Error{}function V6(n){return typeof n=="function"?n():n}const Do=Object.freeze([]);class A6{constructor(){P(this,"records",new Map);P(this,"mutateListeners",new Set);P(this,"handleScopes",new Map);P(this,"dirty",new Set);P(this,"flushScheduled",!1);P(this,"abdicated",new WeakSet);P(this,"entryErrorListeners",new Set);const r=this.record("root");r.spec={kind:"single",scope:"root"},r.declaredBy="(built-in)",r.declarationEpoch=1}register(r,i){const s=this.records.get(r.name);if(!(s!=null&&s.spec))throw new Error(`slot "${r.name}" is not declared (a parent entry's children table must declare it)`);const u=s.spec,c=r.priority??0,h=C=>`at priority ${c}${C.registrant!==void 0?` (registered by ${C.registrant})`:""} — register at a different priority to shadow it (lowest renders)`;switch(u.kind){case"single":{const C=s.entries.find(v=>(v.options.priority??0)===c);if(C)throw new Error(`single slot "${r.name}" already has a registration ${h(C)}`);break}case"keyed":{if(r.key===void 0)throw new Error(`keyed slot "${r.name}" requires options.key`);const C=s.entries.find(v=>v.options.key===r.key&&(v.options.priority??0)===c);if(C)throw new Error(`keyed slot "${r.name}" already has an entry for key "${r.key}" ${h(C)}`);break}case"list":{if(r.id===void 0)throw new Error(`list slot "${r.name}" requires options.id`);const C=s.entries.find(v=>v.options.id===r.id&&(v.options.priority??0)===c);if(C)throw new Error(`list slot "${r.name}" already has an entry with id "${r.id}" ${h(C)}`);break}case"chain":if(r.select===void 0)throw new Error(`chain slot "${r.name}" requires options.select`);break}if(r.children)for(const C of Object.keys(r.children)){const v=this.records.get(C);if(v!=null&&v.spec)throw new Error(`slot "${C}" is already declared (by ${v.declaredBy??"an unknown entry"})`)}if(r.store!==void 0&&typeof r.store!="function"){const C=this.handleScopes.get(r.store);if(C&&C.scope!==u.scope)throw new Error(`store handle mounted under "${r.name}" (scope "${u.scope}") is already mounted under scope "${C.scope}" — one handle, one scope`);C?C.count+=1:this.handleScopes.set(r.store,{scope:u.scope,count:1})}const p={component:i,options:{...r.key!==void 0?{key:r.key}:{},...r.id!==void 0?{id:r.id}:{},...r.order!==void 0?{order:r.order}:{},...r.label!==void 0?{label:r.label}:{},...r.priority!==void 0?{priority:r.priority}:{}},...r.select!==void 0?{select:r.select}:{},...r.inject!==void 0?{inject:r.inject}:{},...r.children!==void 0?{children:r.children}:{},...r.store!==void 0?{store:r.store}:{},...r.locale!==void 0?{locale:r.locale}:{},...r.registrant!==void 0?{registrant:r.registrant}:{}},g=[...s.entries,p];if(g.sort(u.kind==="list"?(C,v)=>(C.options.priority??0)-(v.options.priority??0)||(C.options.order??0)-(v.options.order??0):(C,v)=>(C.options.priority??0)-(v.options.priority??0)),s.entries=g,this.markDirty(r.name,s),r.children){const C=[];for(const[v,L]of Object.entries(r.children)){const w=this.record(v);w.spec=L,w.declaredBy=`an entry in "${r.name}"${r.registrant?` (${r.registrant})`:""}`,w.parent=r.name,w.declarationEpoch+=1,C.push([v,w])}for(const[v,L]of C)this.markDirty(v,L);for(const[,v]of C)this.notifyDeclaration(v)}return()=>{s.entries.includes(p)&&(s.entries=s.entries.filter(C=>C!==p),this.markDirty(r.name,s),this.releaseEntry(p))}}isLive(r){for(const i of this.records.values())if(i.entries.includes(r))return!0;return!1}entries(r){var i;return((i=this.records.get(r))==null?void 0:i.entries)??Do}entriesOfSlot(r){const i=this.records.get(r);if(!(i!=null&&i.spec))return Do;const s=i.spec.kind;if(s==="chain")return i.entries;const u=[],c=new Set;for(const h of i.entries){if(this.abdicated.has(h))continue;const p=s==="keyed"?h.options.key:s==="list"?h.options.id:void 0;c.has(p)||(c.add(p),u.push(h))}return u}spec(r){var i;return(i=this.records.get(r))==null?void 0:i.spec}specDynamic(r){var i;return(i=this.records.get(r))==null?void 0:i.spec}snapshot(r){const i=(s,u)=>{const c=this.records.get(s);if((c==null?void 0:c.spec)===void 0||u.has(s))return;const h=new Set(u);h.add(s);const p=new Set(this.entriesOfSlot(s)),g=[...this.records.entries()].filter(([,C])=>C.spec!==void 0&&C.parent===s).flatMap(([C])=>{const v=i(C,h);return v===void 0?[]:[v]});return{name:s,kind:c.spec.kind,scope:c.spec.scope,...c.declaredBy===void 0?{}:{declaredBy:c.declaredBy},occupants:c.entries.map(C=>({...C.registrant===void 0?{}:{registrant:C.registrant},...C.options.key===void 0?{}:{key:C.options.key},...C.options.id===void 0?{}:{id:C.options.id},...C.options.order===void 0?{}:{order:C.options.order},priority:C.options.priority??0,active:p.has(C)})),children:g}};if(r!==void 0){const s=i(r,new Set);return s===void 0?[]:[s]}return[...this.records.entries()].filter(([,s])=>{var u;return s.spec!==void 0&&(s.parent===void 0||((u=this.records.get(s.parent))==null?void 0:u.spec)===void 0)}).flatMap(([s])=>{const u=i(s,new Set);return u===void 0?[]:[u]})}declarationEpoch(r){var i;return((i=this.records.get(r))==null?void 0:i.declarationEpoch)??0}subscribe(r,i){const s=this.record(r);return s.listeners.add(i),()=>{s.listeners.delete(i)}}subscribeDeclaration(r,i){const s=this.record(r);return s.declarationListeners.add(i),()=>{s.declarationListeners.delete(i)}}getVersion(r){var i;return((i=this.records.get(r))==null?void 0:i.version)??0}onMutate(r){return this.mutateListeners.add(r),()=>{this.mutateListeners.delete(r)}}reportEntryError(r,i,s,u){if(u.abdicate){if(this.abdicated.has(i))return;this.abdicated.add(i);const c=this.records.get(r);c!==void 0&&this.markDirty(r,c)}for(const c of[...this.entryErrorListeners])c(r,i,s,{abdicated:u.abdicate})}onEntryError(r){return this.entryErrorListeners.add(r),()=>{this.entryErrorListeners.delete(r)}}releaseEntry(r){if(r.store!==void 0&&typeof r.store!="function"){const i=this.handleScopes.get(r.store);i&&--i.count===0&&this.handleScopes.delete(r.store)}if(r.children)for(const i of Object.keys(r.children)){const s=this.records.get(i);if(!s)continue;const u=s.entries;s.spec=void 0,s.declaredBy=void 0,s.parent=void 0,s.declarationEpoch+=1,s.entries=Do,this.markDirty(i,s),this.notifyDeclaration(s);for(const c of u)this.releaseEntry(c)}}record(r){let i=this.records.get(r);return i||(i={spec:void 0,declaredBy:void 0,parent:void 0,declarationEpoch:0,entries:Do,version:0,listeners:new Set,declarationListeners:new Set},this.records.set(r,i)),i}markDirty(r,i){i.version+=1;for(const s of[...this.mutateListeners])s(r);this.dirty.add(i),this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>{this.flush()}))}notifyDeclaration(r){for(const i of[...r.declarationListeners])i()}flush(){this.flushScheduled=!1;const r=[...this.dirty];this.dirty.clear();for(const i of r)for(const s of[...i.listeners])s()}}const D6=Object.freeze(Object.defineProperty({__proto__:null,SlotCore:A6,SlotOwnershipError:Er,StaleAuthorizationError:li,resolveSlotLabel:V6},Symbol.toStringTag,{value:"Module"}));var R=E1();const F6=j1(R),B6=ni({__proto__:null,default:F6},[R]);class sn extends Error{}const P3=R.createContext(null);function Kn(){const n=R.useContext(P3);if(!n)throw new sn("slot machinery rendered outside the installed renderer tree");return n}const ou=R.createContext(null);function iu(){const n=R.useContext(ou);if(!n)throw new sn("session-aware slot rendered outside the root binding provider");return n}function Ht(n){let r=N0.get(n);return r===void 0&&(r=ru(n),N0.set(n,r)),r}const N0=new WeakMap,T3={getSnapshot:()=>{},subscribe:()=>()=>{}};function z6(n){return n!==void 0?Ht(n):Z6}function Z6(n,r){Ht(T3)(()=>{})}function U6(n){let r=R0.get(n);return r===void 0&&(r=(i,s,u)=>{var h;return Ht(((h=n.projections)==null?void 0:h.faceOf(i))??T3)(s??(p=>p),u)},R0.set(n,r)),r}const R0=new WeakMap;function W6({children:n}){const r=Kn(),i=Ht(r.sessions.provideInfo)(s=>s);return f.jsx(ou.Provider,{value:i,children:n})}function I3({empty:n,children:r}){const i=Kn(),s=Ht(i.sessions.provideInfo)(c=>c),u=s.sessionId;return u===void 0?f.jsx(f.Fragment,{children:(n==null?void 0:n())??null}):f.jsx(ou.Provider,{value:s,children:r(u)},u)}const P0=new WeakMap;function q6(n,r){let i=P0.get(r);return i||(i=(s,u,c)=>{var p;if(!n.isLive(r))throw new li(`renderSlot('${s}') from a disposed registration`);const h=(p=r.children)==null?void 0:p[s];if(h===void 0)throw new Er(`slot '${s}' is not declared by this entry's children`);if(h.kind==="chain")throw new Er(`slot '${s}' is declared 'chain' — use renderSlotChain`);return f.jsx(F3,{slotKey:s,ownerProps:u,opts:c})},P0.set(r,i)),i}const T0=new WeakMap;function Q6(n,r){let i=T0.get(r);return i||(i=(s,u,c)=>{var p;if(!n.isLive(r))throw new li(`renderSlotChain('${s}') from a disposed registration`);const h=(p=r.children)==null?void 0:p[s];if(h===void 0)throw new Er(`slot '${s}' is not declared by this entry's children`);if(h.kind!=="chain")throw new Er(`slot '${s}' is declared '${h.kind}', not 'chain' — use renderSlot`);return f.jsx(F3,{slotKey:s,ownerProps:u,opts:c})},T0.set(r,i)),i}const I0=new WeakMap,$0=new WeakMap,H0=new WeakMap,$3={};function su(n,r,i){const s=n.inject;if(!s)return $3;const u=[];return r!==void 0&&u.push(r.sessionId),i!==void 0&&u.push(i),K6(s(...u))}function K6(n){var c;const r=n.hooks;if(r===void 0)return n;const{hooks:i,...s}=n,u=s;for(const[h,p]of Object.entries(r)){const g=`use${((c=h[0])==null?void 0:c.toUpperCase())??""}${h.slice(1)}`;u[g]=Ht(p)}return u}const vl=new WeakMap,H3={props:$3};function J6(n){var p;if(n===void 0)return H3;let r=vl.get(n);if(r!==void 0)return r;const i=n.hooks;if(i===void 0)return r={props:n},vl.set(n,r),r;const{hooks:s,...u}=n,c=u;let h;for(const[g,C]of Object.entries(i)){const v=`use${((p=g[0])==null?void 0:p.toUpperCase())??""}${g.slice(1)}`;typeof C=="function"?(h??(h={}),h[g]=C):c[v]=Ht(C)}return r=h===void 0?{props:c}:{props:c,slotHookFactories:h},vl.set(n,r),r}function G6(n,r,i){var u;const s={};for(const[c,h]of Object.entries(n)){const p=`use${((u=c[0])==null?void 0:u.toUpperCase())??""}${c.slice(1)}`;s[p]=h(r,i)}return s}function Y6(n,r){let i=I0.get(n);return i||(i=su(n,void 0,r),I0.set(n,i)),i}function X6(n,r,i){let s=$0.get(n);s||(s=new WeakMap,$0.set(n,s));let u=s.get(r);return u||(u=su(n,r,i),s.set(r,u)),u}function e8(n,r,i){let s=H0.get(n);s||(s=new WeakMap,H0.set(n,s));let u=s.get(r);return u||(u=su(n,r,i),s.set(r,u)),u}const V0=new WeakMap;function t8(n,r){let i=V0.get(n);i||(i=new Map,V0.set(n,i));const s=n.getSnapshot().revision,u=i.get(r);if(u&&u.revision===s)return u.t;const c=n.bind(r),h=(p,g)=>c(p,g);return i.set(r,{revision:s,t:h}),h}const n8=()=>()=>{},r8=()=>0,A0=new WeakMap;function o8(n){let r=A0.get(n);return r||(r={subscribe:i=>n.subscribe(i),getRevision:()=>n.getSnapshot().revision},A0.set(n,r)),r}function V3(n){const r=n!==void 0?o8(n):void 0;return R.useSyncExternalStore((r==null?void 0:r.subscribe)??n8,(r==null?void 0:r.getRevision)??r8)}let i8=0;const D0=new WeakMap;function v1(n){let r=D0.get(n);return r===void 0&&(r=i8++,D0.set(n,r)),r}class lu extends R.Component{constructor(){super(...arguments);P(this,"state",{failed:!1})}static getDerivedStateFromError(i){if(i instanceof sn)throw i;return{failed:!0}}componentDidCatch(i){console.error(`slot entry crashed in '${this.props.slotKey}':`,i),this.props.onEntryError(i)}render(){return this.state.failed?f.jsx("div",{"data-slot-error":this.props.slotKey}):this.props.children}}const F0=new WeakMap;function s8(n,r,i){var h;let s=F0.get(n);if(s===void 0&&(s={root:{useSessions:Ht(n.sessions.list),useWorkspaces:Ht(n.workspaces.list)},session:new WeakMap,sessionMaybe:new WeakMap},F0.set(n,s)),r==="root")return s.root;if(i===void 0)throw new sn(`scope '${r}' rendered without session provide info`);const u=r==="session"?s.session:s.sessionMaybe;let c=u.get(i);if(c!==void 0)return c;c={...s.root};for(const[p,g]of Object.entries(i.hooks)){const C=`use${((h=p[0])==null?void 0:h.toUpperCase())??""}${p.slice(1)}`;if(r==="session-maybe")c[C]=z6(g);else{if(g===void 0)throw new sn(`strict session hook '${p}' has no source`);c[C]=Ht(g)}}return Object.assign(c,i.props),c.sessionId=i.sessionId,c.useProjection=U6(i),u.set(i,c),c}function uu(n,r,i,s){const u=s8(n,i,s),c={...u};if(r.locale!==void 0){const p=n.locale;if(p===void 0)throw new sn(`entry declares locale namespace '${r.locale}' but no locale face is installed (locale plugin missing from the composition?)`);c.t=t8(p,r.locale)}const h=i==="session-maybe"&&(s==null?void 0:s.sessionId)===void 0?void 0:n.storeOf(r,s==null?void 0:s.sessionId);return h!==void 0&&(c.useStore=Ht(h),c.actions=h.actions),r.children!==void 0&&(c.renderSlot=q6(n,r),Object.values(r.children).some(p=>p.kind==="chain")&&(c.renderSlotChain=Q6(n,r)),Object.values(r.children).some(p=>p.scope==="session")&&(c.SessionProvider=I3)),{kit:c,standard:u,actions:h==null?void 0:h.actions}}function l8({slotKey:n,Comp:r,kit:i,standard:s,injected:u,slotInjected:c,ownerProps:h,hookContext:p,hasHookContext:g}){const C=R.useMemo(()=>{if(!g)throw new sn(`slot '${n}' has contextual injected Hooks but no hookContext`);return G6(c.slotHookFactories,s,p)},[g,p,c.slotHookFactories,n,s]);return f.jsx(r,{...i,...u,...c.props,...C,...h})}function au(n,r,i,s,u,c,h,p,g){return c.slotHookFactories===void 0?f.jsx(r,{...i,...u,...c.props,...h}):f.jsx(l8,{slotKey:n,Comp:r,kit:i,standard:s,injected:u,slotInjected:c,ownerProps:h,hookContext:p,hasHookContext:g})}function u8({entry:n,ownerProps:r,info:i,slotKey:s,slotInjected:u,hookContext:c,hasHookContext:h}){const p=Kn(),g=n.component,{kit:C,standard:v,actions:L}=uu(p,n,"session",i),w=X6(n,i,L);return au(s,g,C,v,w,u,r,c,h)}function a8({entry:n,ownerProps:r,info:i,slotKey:s,slotInjected:u,hookContext:c,hasHookContext:h}){const p=Kn(),g=n.component,{kit:C,standard:v,actions:L}=uu(p,n,"session-maybe",i),w=e8(n,i,L);return au(s,g,C,v,w,u,r,c,h)}function c8({entry:n,ownerProps:r,slotKey:i,slotInjected:s,hookContext:u,hasHookContext:c}){const h=iu(),[p,g]=R.useState(f8);let{adopted:C,epoch:v}=p;return h.sessionId!==void 0&&C===void 0?(C=h.sessionId,g({adopted:C,epoch:v})):C!==void 0&&h.sessionId!==void 0&&h.sessionId!==C?(C=h.sessionId,v+=1,g({adopted:C,epoch:v})):C!==void 0&&h.sessionId===void 0&&(C=void 0,v+=1,g({adopted:C,epoch:v})),f.jsx(a8,{entry:n,ownerProps:r,info:h,slotKey:i,slotInjected:s,hookContext:u,hasHookContext:c},v)}const f8={adopted:void 0,epoch:0};function A3({entry:n,ownerProps:r,slotKey:i,slotInjected:s,hookContext:u,hasHookContext:c}){const h=Kn(),p=n.component,{kit:g,standard:C,actions:v}=uu(h,n,"root",void 0),L=Y6(n,v);return au(i,p,g,C,L,s,r,u,c)}function d8({slotKey:n,entry:r,ownerProps:i,slotInjected:s,hookContext:u,hasHookContext:c,onEntryError:h}){const p=iu();return p.sessionId===void 0?null:f.jsx(lu,{slotKey:n,onEntryError:h,children:f.jsx(u8,{entry:r,ownerProps:i,info:p,slotKey:n,slotInjected:s,hookContext:u,hasHookContext:c})},p.sessionId)}const D3={display:"contents"};function F3({slotKey:n,ownerProps:r,opts:i}){const s=Kn();R.useSyncExternalStore(c=>s.subscribe(n,c),()=>s.getVersion(n)),V3(s.locale);const u=iu();return f.jsx("div",{"data-slot":n,style:D3,children:h8(s,n,r,i,u)})}function h8(n,r,i,s,u){const c=n.specOf(r);if(!c)return null;const h=c.scope==="session"&&u.sessionId===void 0;if(h&&(c.kind!=="chain"||!(s!=null&&s.overlay)))return f.jsx(f.Fragment,{children:(s==null?void 0:s.fallback)??null});const p=h?[]:n.entriesOf(r),g=J6(c.inject),C=(E,T,B=i)=>{const W=s!==void 0&&Object.hasOwn(s,"hookContext"),z=s==null?void 0:s.hookContext,ee=Q=>{n.reportEntryError(r,E,Q,{abdicate:c.kind!=="chain"})};return c.scope==="session"?f.jsx(d8,{slotKey:r,entry:E,ownerProps:B,slotInjected:g,hookContext:z,hasHookContext:W,onEntryError:ee},T):f.jsx(lu,{slotKey:r,onEntryError:ee,children:c.scope==="session-maybe"?f.jsx(c8,{entry:E,ownerProps:B,slotKey:r,slotInjected:g,hookContext:z,hasHookContext:W}):f.jsx(A3,{entry:E,ownerProps:B,slotKey:r,slotInjected:g,hookContext:z,hasHookContext:W})},T)},v=()=>f.jsx("div",{"data-slot-error":r});if(c.kind==="single"){const E=n.entriesOfSlot(r)[0];return E?C(E,v1(E)):p.length>0?v():f.jsx(f.Fragment,{children:(s==null?void 0:s.fallback)??null})}if(c.kind==="keyed"){const E=n.entriesOfSlot(r).find(T=>T.options.key===(s==null?void 0:s.entryKey));return E?C(E,v1(E)):p.some(B=>B.options.key===(s==null?void 0:s.entryKey))?v():f.jsx(f.Fragment,{children:(s==null?void 0:s.fallback)??null})}if(c.kind==="chain"){let E=null;for(const T of p){let B;try{B=T.select(i)}catch(W){console.error(`chain selector crashed in '${r}' (${T.registrant??"unknown registrant"}), treating as declined:`,W);continue}if(B!==null){E=C(T,v1(T),{...i,matched:B});break}}return s!=null&&s.overlay?f.jsxs(f.Fragment,{children:[f.jsx("div",{"data-chain-overlay-fallback":r,style:{display:E===null?"contents":"none"},children:s.fallback??null}),E]}):E??f.jsx(f.Fragment,{children:(s==null?void 0:s.fallback)??null})}const w=n.entriesOfSlot(r).map(E=>({entry:E,id:E.options.id,order:E.options.order??0})),_=new Set(w.map(E=>E.id));for(const E of p)_.has(E.options.id)||(_.add(E.options.id),w.push({entry:void 0,id:E.options.id,order:E.options.order??0}));let k=[...w].sort((E,T)=>E.order-T.order);return(s==null?void 0:s.only)!==void 0&&(k=k.filter(E=>E.id===s.only)),k.length===0?f.jsx(f.Fragment,{children:(s==null?void 0:s.fallback)??null}):f.jsx(f.Fragment,{children:k.map((E,T)=>E.entry!==void 0?C(E.entry,`e${v1(E.entry)}`):f.jsx("div",{"data-slot-error":r},`x${E.id??T}`))})}function p8({ownerProps:n}){const r=Kn();R.useSyncExternalStore(s=>r.subscribe("root",s),()=>r.getVersion("root")),V3(r.locale);const i=r.entriesOfSlot("root")[0];if(!i){if(r.entriesOf("root").length>0)return f.jsx("div",{"data-slot-error":"root"});throw new sn("renderSlot('root') before any 'root' registration (boot order)")}return f.jsx("div",{"data-slot":"root",style:D3,children:f.jsx(lu,{slotKey:"root",onEntryError:s=>{r.reportEntryError("root",i,s,{abdicate:!0})},children:f.jsx(A3,{entry:i,ownerProps:n,slotKey:"root",slotInjected:H3,hookContext:void 0,hasHookContext:!1})},v1(i))})}function B3(){return{renderRoot(n,r){return f.jsx(P3.Provider,{value:n,children:f.jsx(W6,{children:f.jsx(p8,{ownerProps:r})})})}}}function m8(n){const r={inflight:0,listeners:new Set,fn:n,invoke:()=>{B0(r,1),r.fn().catch(i=>{console.error("useInvoke action failed:",i)}).finally(()=>{B0(r,-1)})},subscribe:i=>(r.listeners.add(i),()=>{r.listeners.delete(i)}),getPending:()=>r.inflight>0};return r}function B0(n,r){const i=n.inflight>0;if(n.inflight+=r,i!==n.inflight>0)for(const s of[...n.listeners])s()}function C8(n){const r=R.useRef(null);r.current??(r.current=m8(n));const i=r.current;i.fn=n;const s=R.useSyncExternalStore(i.subscribe,i.getPending);return[i.invoke,s]}const g8=Object.freeze(Object.defineProperty({__proto__:null,SessionProvider:I3,SlotAssemblyError:sn,SlotOwnershipError:Er,StaleAuthorizationError:li,bindSnapshotSelector:ru,createSlotRenderer:B3,useInvoke:C8},Symbol.toStringTag,{value:"Module"}));function v8({title:n}){const r=R.useRef(document.title);return R.useEffect(()=>(document.title=n===void 0?r.current:`${n} — ${r.current}`,()=>{document.title=r.current}),[n]),null}function y8(n){const{ctx:r}=n,i=r.get("sessions");if(i===void 0)throw new Error("shell assembly: sessions service unavailable");const s=ru(i.list),u=()=>{const c=s(h=>{var g;const p=h.current;return p===void 0||(g=h.byId[p])==null?void 0:g.title});return f.jsx(v8,{...c===void 0?{}:{title:c}})};return()=>f.jsxs(f.Fragment,{children:[f.jsx(u,{}),r.slots.renderSlot("root",{})]})}const Fl="@deepseek-ai/dsh-client-app-shell",w8="app-shell",x8=["slots","sessions","layout"];function _8(n){n.slots.install(B3());let r;n.reflect.provide("appShell",{renderApp:()=>(r??(r=y8({ctx:n})),r())})}const L8=Object.freeze(Object.defineProperty({__proto__:null,APP_SHELL_ID:Fl,apply:_8,inject:x8,name:w8},Symbol.toStringTag,{value:"Module"})),k8="_boot_9gj4p_6",S8="_card_9gj4p_13",j8="_wordmark_9gj4p_20",E8="_hint_9gj4p_28",b8="_spinner_9gj4p_34",M8="_failed_9gj4p_47",O8="_failedTitle_9gj4p_54",N8="_failedItem_9gj4p_61",nn={boot:k8,card:S8,wordmark:j8,hint:E8,spinner:b8,failed:M8,failedTitle:O8,failedItem:N8};function R8(n){const r=R.useSyncExternalStore(n.settled.subscribe,n.settled.getSnapshot),i=R.useSyncExternalStore(n.status.subscribe,n.status.getSnapshot),s=R.useSyncExternalStore(n.error.subscribe,n.error.getSnapshot),u=Object.entries(i).filter(([,h])=>h==="failed");if(r)return f.jsx(f.Fragment,{children:n.renderApp()});const c=s!==void 0||u.length>0;return f.jsx("div",{className:nn.boot,children:f.jsxs("div",{className:nn.card,children:[f.jsx("div",{className:nn.wordmark,children:"HARNESS"}),c?f.jsxs("div",{className:nn.failed,children:[f.jsx("div",{className:nn.failedTitle,children:"Failed to load plugins"}),u.map(([h])=>f.jsx("div",{className:nn.failedItem,children:h},h)),s!==void 0&&f.jsx("div",{className:nn.failedItem,children:s})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:nn.spinner}),f.jsx("div",{className:nn.hint,children:"Loading plugins…"})]})]})})}var ln=O3();const P8=j1(ln),T8=ni({__proto__:null,default:P8},[ln]);function z3(n){var r,i,s="";if(typeof n=="string"||typeof n=="number")s+=n;else if(typeof n=="object")if(Array.isArray(n)){var u=n.length;for(r=0;rf.jsx("rect",{className:yl.cell,x:s,y:u,width:"2",height:"2",style:{animationDelay:`${(c-z0.length)*125}ms`}},`${s}-${u}`))}):f.jsx("span",{className:ye(yl.dot,i),"data-state":n,style:{width:r,height:r},"aria-hidden":"true"})}const V8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M8.00003 0.3237C3.76075 0.3237 0.32373 3.76072 0.32373 8C0.32373 9.17603 0.589121 10.2922 1.0632 11.2901L1.35291 11.8989L2.5705 11.3205L2.28079 10.7117C1.89079 9.89074 1.67301 8.97167 1.67301 8C1.67301 4.50546 4.50549 1.67298 8.00003 1.67298C11.4946 1.67298 14.3271 4.50546 14.3271 8C14.3271 11.4945 11.4946 14.327 8.00003 14.327C7.28473 14.327 6.76077 14.277 6.29621 14.1487C5.83857 14.0224 5.40441 13.8109 4.88514 13.4488C4.12569 12.919 3.03778 12.7316 2.141 13.2978L2.12682 13.307L2.11264 13.3171L1.34886 13.854L1.79659 15.188L2.86122 14.4384C3.19068 14.2305 3.68325 14.2542 4.11326 14.5539C4.72789 14.9826 5.30042 15.2724 5.93762 15.4484C6.56803 15.6224 7.22776 15.6763 8.00003 15.6763C12.2393 15.6763 15.6763 12.2393 15.6763 8C15.6763 3.76072 12.2393 0.3237 8.00003 0.3237ZM7.32033 4.82535V7.32536H4.82538V8.67464H7.32033V11.1747H8.6696V8.67464H11.1747V7.32536H8.6696V4.82535H7.32033Z",fill:"currentColor"})}),A8=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M11.894845 6.647401C11.894845 3.725463 9.534486 1.356779 6.623219 1.35657C3.711786 1.35657 1.351635 3.725338 1.351635 6.647401C1.351843 9.569296 3.711911 11.938273 6.623219 11.938273C9.534361 11.938064 11.894637 9.569171 11.894845 6.647401ZM13.245462 6.647401C13.245254 10.317935 10.280401 13.293613 6.623219 13.293821C2.965871 13.293821 0.000204 10.31806 0 6.647401C0 2.976574 2.965746 0 6.623219 0C10.280526 0.000205 13.245462 2.9767 13.245462 6.647401Z",fill:"currentColor"}),f.jsx("path",{d:"M16.000417 15.041079L15.044449 16.000433L11.530434 12.473588L12.486298 11.514234L16.000417 15.041079Z",fill:"currentColor"})]}),D8=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.00018 0.353516C10.6708 0.353535 13.6468 3.32958 13.6469 7.00018C13.6468 10.6708 10.6708 13.6468 7.00018 13.6469C3.32957 13.6468 0.353535 10.6708 0.353516 7.00018C0.353535 3.32957 3.32957 0.353531 7.00018 0.353516ZM5.44643 7.59661C5.49463 8.97506 5.70762 10.191 6.02136 11.0793C6.20141 11.5891 6.40328 11.9585 6.59898 12.1889C6.79501 12.4196 6.93213 12.454 7.00018 12.454C7.06822 12.454 7.20533 12.4197 7.40138 12.1889C7.59708 11.9585 7.79895 11.589 7.979 11.0793C8.29274 10.191 8.50574 8.97506 8.55394 7.59661H5.44643ZM1.57861 7.59661C1.80785 9.70467 3.2386 11.4509 5.1715 12.1388C5.07135 11.9317 4.97972 11.7098 4.89746 11.477C4.53084 10.4391 4.30224 9.0828 4.25357 7.59661H1.57861ZM9.74679 7.59661C9.69813 9.0828 9.46952 10.4391 9.1029 11.477C9.0206 11.7099 8.92818 11.9316 8.82797 12.1388C10.7613 11.4511 12.1925 9.70496 12.4218 7.59661H9.74679ZM5.1706 1.8616C3.23814 2.54963 1.80876 4.29604 1.5795 6.40376H4.25357C4.30224 4.91756 4.53083 3.56129 4.89746 2.5234C4.97968 2.29066 5.07051 2.0686 5.1706 1.8616ZM7.00018 1.54637C6.93213 1.54638 6.79503 1.5807 6.59898 1.81145C6.40332 2.04177 6.20139 2.41058 6.02136 2.92012C5.70754 3.80851 5.49461 5.02499 5.44643 6.40376H8.55394C8.50575 5.025 8.29282 3.80851 7.979 2.92012C7.79898 2.41059 7.59705 2.04177 7.40138 1.81145C7.20531 1.58067 7.06823 1.54637 7.00018 1.54637ZM8.82887 1.8616C8.92902 2.0687 9.02064 2.29053 9.1029 2.5234C9.46953 3.56129 9.69812 4.91756 9.74679 6.40376H12.4209C12.1916 4.29575 10.7618 2.54943 8.82887 1.8616Z",fill:"currentColor"})}),F8=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("g",{clipPath:"url(#clip0_2580_121189)",children:[f.jsx("path",{d:"M12.1192 4.91016C11.9392 4.52714 11.7007 4.1292 11.4483 3.78809C11.385 3.70258 11.3517 3.68409 11.2462 3.67383C10.7419 3.6248 10.2318 3.69454 9.72662 3.64551C9.29108 3.60318 8.93739 3.40341 8.67682 3.05176C8.38762 2.66127 8.19217 2.20926 7.90338 1.81934C7.83985 1.73359 7.80848 1.71542 7.70221 1.70508C7.24758 1.6609 6.7511 1.66104 6.29791 1.70508C6.19164 1.71542 6.16027 1.73359 6.09674 1.81934C5.80775 2.20954 5.61248 2.66131 5.3233 3.05176C5.06273 3.40341 4.70904 3.60318 4.2735 3.64551C3.76831 3.69454 3.25825 3.6248 2.75397 3.67383C2.6484 3.68409 2.61509 3.70258 2.55182 3.78809C2.30019 4.12814 2.06125 4.52646 1.88092 4.91016C1.83256 5.01309 1.83242 5.04912 1.88092 5.15235C2.07954 5.57482 2.37449 5.94529 2.5733 6.36817C2.76971 6.78606 2.76964 7.21293 2.5733 7.63086C2.37462 8.05374 2.07947 8.42453 1.88092 8.84668C1.83235 8.95004 1.83257 8.98695 1.88092 9.08985C2.06098 9.47285 2.2994 9.87079 2.55182 10.2119C2.61509 10.2974 2.6484 10.3159 2.75397 10.3262C3.25879 10.3753 3.76834 10.3055 4.2735 10.3545C4.70904 10.3968 5.06273 10.5966 5.3233 10.9482C5.6125 11.3387 5.80795 11.7907 6.09674 12.1807C6.16027 12.2664 6.19164 12.2846 6.29791 12.2949C6.7511 12.339 7.24758 12.3391 7.70221 12.2949C7.80848 12.2846 7.83985 12.2664 7.90338 12.1807C8.19237 11.7905 8.38764 11.3387 8.67682 10.9482C8.93739 10.5966 9.29108 10.3968 9.72662 10.3545C10.2318 10.3055 10.7419 10.3752 11.2462 10.3262C11.3517 10.3159 11.385 10.2974 11.4483 10.2119C11.7007 9.87079 11.9391 9.47285 12.1192 9.08985C12.1675 8.98695 12.1678 8.95004 12.1192 8.84668C11.9205 8.42428 11.6255 8.05377 11.4268 7.63086C11.2305 7.21293 11.2304 6.78606 11.4268 6.36817C11.6256 5.94531 11.9207 5.5746 12.1192 5.15235C12.1677 5.04912 12.1676 5.01309 12.1192 4.91016ZM13.2051 5.66309C13.0064 6.08573 12.7114 6.45579 12.5128 6.87793C12.4642 6.98123 12.4645 7.01829 12.5128 7.1211C12.7112 7.54328 13.0064 7.91405 13.2051 8.33692C13.4015 8.75487 13.4015 9.18169 13.2051 9.59961C12.9911 10.0551 12.7109 10.5221 12.4122 10.9258C12.1522 11.277 11.7974 11.4782 11.3624 11.5205C10.8573 11.5696 10.3477 11.4999 9.84283 11.5488C9.73621 11.5592 9.70429 11.5772 9.64069 11.6631C9.35229 12.0526 9.15705 12.5044 8.86823 12.8945C8.60854 13.2452 8.25275 13.447 7.81842 13.4893C7.28749 13.5409 6.71096 13.5407 6.1817 13.4893C5.74737 13.447 5.39158 13.2452 5.1319 12.8945C4.84312 12.5045 4.64808 12.0529 4.35944 11.6631C4.29583 11.5772 4.26392 11.5592 4.15729 11.5488C3.65283 11.5 3.14295 11.5696 2.63776 11.5205C2.20274 11.4782 1.84796 11.277 1.58795 10.9258C1.28834 10.5209 1.00864 10.0543 0.794982 9.59961C0.598644 9.18169 0.598598 8.75487 0.794982 8.33692C0.993688 7.91405 1.28889 7.54328 1.48737 7.1211C1.53567 7.01829 1.53593 6.98123 1.48737 6.87793C1.28887 6.45603 0.993667 6.08569 0.794982 5.66309C0.598535 5.24516 0.59869 4.81829 0.794982 4.40039C1.00898 3.94492 1.28922 3.47791 1.58795 3.07422C1.84796 2.723 2.20274 2.5218 2.63776 2.47949C3.14295 2.43038 3.65283 2.50003 4.15729 2.45117C4.26391 2.44081 4.29583 2.4228 4.35944 2.33692C4.64783 1.94742 4.84308 1.49557 5.1319 1.10547C5.39158 0.754835 5.74737 0.553005 6.1817 0.510744C6.71263 0.459147 7.28917 0.459309 7.81842 0.510744C8.25275 0.553005 8.60854 0.754835 8.86823 1.10547C9.157 1.49551 9.35204 1.94708 9.64069 2.33692C9.70429 2.4228 9.73621 2.44081 9.84283 2.45117C10.3477 2.50007 10.8573 2.43039 11.3624 2.47949C11.7974 2.5218 12.1522 2.723 12.4122 3.07422C12.7118 3.47909 12.9915 3.94567 13.2051 4.40039C13.4014 4.81829 13.4016 5.24516 13.2051 5.66309Z",fill:"currentColor"}),f.jsx("path",{d:"M7.9317 7C7.9317 6.48569 7.51438 6.06836 7.00006 6.06836C6.48575 6.06836 6.06842 6.48569 6.06842 7C6.06842 7.51432 6.48575 7.93164 7.00006 7.93164C7.51438 7.93164 7.9317 7.51432 7.9317 7ZM9.13092 7C9.13092 8.17706 8.17712 9.13086 7.00006 9.13086C5.823 9.13086 4.8692 8.17706 4.8692 7C4.8692 5.82294 5.823 4.86914 7.00006 4.86914C8.17712 4.86914 9.13092 5.82294 9.13092 7Z",fill:"currentColor"})]}),f.jsx("defs",{children:f.jsx("clipPath",{id:"clip0_2580_121189",children:f.jsx("rect",{width:14,height:14,fill:"currentColor"})})})]}),B8=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("g",{clipPath:"url(#clip0_1450_63327)",children:[f.jsx("path",{d:"M14.0861 5.51366C13.8717 5.0575 13.588 4.58542 13.2889 4.18108C13.208 4.07172 13.1596 4.04373 13.0243 4.03054C12.4277 3.97255 11.8245 4.05527 11.2269 3.9972C10.7224 3.94816 10.3133 3.71661 10.0115 3.30919C9.66986 2.84777 9.43973 2.31343 9.09824 1.85234C9.01771 1.74365 8.96805 1.71589 8.83354 1.70282C8.29432 1.65044 7.70402 1.65061 7.16656 1.70282C7.03205 1.71589 6.98239 1.74365 6.90186 1.85234C6.56067 2.31303 6.33025 2.84774 5.98855 3.30919C5.68681 3.71661 5.27774 3.94816 4.77317 3.9972C4.17564 4.05527 3.57239 3.97255 2.97585 4.03054C2.84046 4.04373 2.79208 4.07172 2.71115 4.18108C2.41212 4.58542 2.12835 5.0575 1.91403 5.51366C1.85299 5.64359 1.85286 5.7018 1.91403 5.8319C2.14865 6.33077 2.49748 6.76892 2.73237 7.26854C2.9594 7.7515 2.96041 8.24717 2.73338 8.73044C2.49837 9.23061 2.14891 9.66837 1.91403 10.1681C1.85291 10.2982 1.85299 10.3564 1.91403 10.4863C2.12856 10.9429 2.41185 11.4142 2.71115 11.8189C2.79208 11.9283 2.84046 11.9563 2.97585 11.9694C3.57239 12.0274 4.17564 11.9447 4.77317 12.0028C5.27774 12.0518 5.68681 12.2834 5.98855 12.6908C6.33024 13.1522 6.56037 13.6866 6.90186 14.1476C6.98239 14.2563 7.03205 14.2841 7.16656 14.2972C7.70402 14.3494 8.29432 14.3495 8.83354 14.2972C8.96805 14.2841 9.01771 14.2563 9.09824 14.1476C9.43944 13.687 9.66985 13.1522 10.0115 12.6908C10.3133 12.2834 10.7224 12.0518 11.2269 12.0028C11.8244 11.9447 12.4271 12.0275 13.0243 11.9694C13.1596 11.9563 13.208 11.9283 13.2889 11.8189C13.5891 11.4131 13.872 10.942 14.0861 10.4863C14.1471 10.3564 14.1472 10.2982 14.0861 10.1681C13.8513 9.66861 13.5017 9.23061 13.2667 8.73044C13.0397 8.24717 13.0407 7.7515 13.2677 7.26854C13.5026 6.7689 13.8513 6.33106 14.0861 5.8319C14.1472 5.7018 14.1471 5.64359 14.0861 5.51366ZM15.3035 6.40373C15.0685 6.90359 14.7188 7.34119 14.4841 7.84037C14.4231 7.97025 14.423 8.02855 14.4841 8.15861C14.7189 8.65833 15.0685 9.09611 15.3035 9.59626C15.5308 10.0801 15.5308 10.5744 15.3035 11.0582C15.052 11.5933 14.7225 12.1426 14.37 12.6191C14.0685 13.0265 13.6581 13.259 13.1536 13.3081C12.5566 13.366 11.9541 13.2835 11.3573 13.3414C11.2228 13.3545 11.1731 13.3823 11.0926 13.491C10.7511 13.9521 10.521 14.4864 10.1793 14.9478C9.87828 15.3542 9.46719 15.5869 8.96387 15.6358C8.34008 15.6964 7.66194 15.6966 7.03623 15.6358C6.53291 15.5869 6.12182 15.3542 5.82084 14.9478C5.47911 14.4863 5.24878 13.9517 4.90753 13.491C4.82701 13.3823 4.77734 13.3545 4.64284 13.3414C4.04647 13.2835 3.44373 13.366 2.84653 13.3081C2.34201 13.259 1.93164 13.0265 1.63013 12.6191C1.27867 12.144 0.948453 11.5941 0.696621 11.0582C0.469315 10.5744 0.469279 10.0801 0.696621 9.59626C0.931628 9.09613 1.2813 8.65807 1.51597 8.15861C1.57708 8.02855 1.57702 7.97025 1.51597 7.84037C1.28117 7.34095 0.931635 6.9036 0.696621 6.40373C0.469213 5.91992 0.469367 5.42562 0.696621 4.94183C0.948441 4.40587 1.27868 3.85598 1.63013 3.38092C1.93164 2.97349 2.34201 2.74095 2.84653 2.6919C3.44353 2.63397 4.04599 2.71649 4.64284 2.65856C4.77734 2.64549 4.82701 2.61774 4.90753 2.50904C5.24905 2.04792 5.47913 1.51362 5.82084 1.05219C6.12182 0.645806 6.53291 0.413119 7.03623 0.364178C7.66002 0.303556 8.33816 0.303369 8.96387 0.364178C9.46719 0.413119 9.87828 0.645806 10.1793 1.05219C10.521 1.51365 10.7513 2.04828 11.0926 2.50904C11.1731 2.61774 11.2228 2.64549 11.3573 2.65856C11.9541 2.71649 12.5566 2.63397 13.1536 2.6919C13.6581 2.74095 14.0685 2.97349 14.37 3.38092C14.7214 3.85598 15.0517 4.40587 15.3035 4.94183C15.5307 5.42562 15.5309 5.91992 15.3035 6.40373Z",fill:"currentColor"}),f.jsx("path",{d:"M9.13764 7.99999C9.13764 7.3715 8.62855 6.8624 8.00005 6.8624C7.37155 6.8624 6.86246 7.3715 6.86246 7.99999C6.86246 8.62849 7.37155 9.13759 8.00005 9.13759C8.62855 9.13759 9.13764 8.62849 9.13764 7.99999ZM10.4834 7.99999C10.4834 9.37126 9.37132 10.4833 8.00005 10.4833C6.62878 10.4833 5.51674 9.37126 5.51674 7.99999C5.51674 6.62873 6.62878 5.51669 8.00005 5.51669C9.37132 5.51669 10.4834 6.62873 10.4834 7.99999Z",fill:"currentColor"})]}),f.jsx("defs",{children:f.jsx("clipPath",{id:"clip0_1450_63327",children:f.jsx("rect",{width:16,height:16,fill:"currentColor"})})})]}),z8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.67272 0.522841C10.8339 0.522841 11.76 0.522714 12.4963 0.602493C13.2453 0.683657 13.8789 0.854248 14.4264 1.25197C14.7504 1.48739 15.0355 1.77247 15.2709 2.0965C15.6686 2.64394 15.8392 3.27758 15.9204 4.02655C16.0002 4.7629 16 5.68895 16 6.85014V9.14986C16 10.3111 16.0002 11.2371 15.9204 11.9735C15.8392 12.7224 15.6686 13.3561 15.2709 13.9035C15.0355 14.2275 14.7504 14.5126 14.4264 14.748C13.8789 15.1458 13.2453 15.3163 12.4963 15.3975C11.76 15.4773 10.8339 15.4772 9.67272 15.4772H6.3273C5.16611 15.4772 4.24006 15.4773 3.50371 15.3975C2.75474 15.3163 2.1211 15.1458 1.57366 14.748C1.24963 14.5126 0.964549 14.2275 0.729131 13.9035C0.331407 13.3561 0.160817 12.7224 0.0796529 11.9735C-0.000126137 11.2371 1.25338e-09 10.3111 1.25338e-09 9.14986V6.85014C1.25329e-09 5.68895 -0.000126137 4.7629 0.0796529 4.02655C0.160817 3.27758 0.331407 2.64394 0.729131 2.0965C0.964549 1.77247 1.24963 1.48739 1.57366 1.25197C2.1211 0.854248 2.75474 0.683657 3.50371 0.602493C4.24006 0.522714 5.16611 0.522841 6.3273 0.522841H9.67272ZM5.54303 1.88715V14.1118C5.78636 14.1128 6.04709 14.1169 6.3273 14.1169H9.67272C10.8639 14.1169 11.7032 14.1164 12.3493 14.0465C12.9824 13.9779 13.3497 13.8494 13.6268 13.6482C13.8354 13.4966 14.0195 13.3125 14.1711 13.1039C14.3723 12.8268 14.5007 12.4595 14.5693 11.8264C14.6393 11.1803 14.6398 10.341 14.6398 9.14986V6.85014C14.6398 5.65896 14.6393 4.81967 14.5693 4.1736C14.5007 3.54048 14.3723 3.17318 14.1711 2.89609C14.0195 2.68747 13.8354 2.50337 13.6268 2.35179C13.3497 2.1506 12.9824 2.02212 12.3493 1.95353C11.7032 1.88358 10.8639 1.88307 9.67272 1.88307H6.3273C6.04709 1.88307 5.78636 1.8862 5.54303 1.88715ZM4.1828 1.91166C3.99125 1.9216 3.8148 1.93577 3.65076 1.95353C3.01764 2.02212 2.65034 2.1506 2.37325 2.35179C2.16463 2.50337 1.98052 2.68747 1.82895 2.89609C1.62776 3.17318 1.49928 3.54048 1.43069 4.1736C1.36074 4.81967 1.36023 5.65896 1.36023 6.85014V9.14986C1.36023 10.341 1.36074 11.1803 1.43069 11.8264C1.49928 12.4595 1.62776 12.8268 1.82895 13.1039C1.98052 13.3125 2.16463 13.4966 2.37325 13.6482C2.65034 13.8494 3.01764 13.9779 3.65076 14.0465C3.81478 14.0642 3.99127 14.0774 4.1828 14.0873V1.91166Z",fill:"currentColor"})}),Z8=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M4.55146 8.00001C4.55146 8.63513 4.03659 9.15001 3.40146 9.15001C2.76634 9.15001 2.25146 8.63513 2.25146 8.00001C2.25146 7.36488 2.76634 6.85001 3.40146 6.85001C4.03659 6.85001 4.55146 7.36488 4.55146 8.00001Z",fill:"currentColor"}),f.jsx("path",{d:"M9.1476 8.00001C9.1476 8.63513 8.63273 9.15001 7.9976 9.15001C7.36248 9.15001 6.8476 8.63513 6.8476 8.00001C6.8476 7.36488 7.36248 6.85001 7.9976 6.85001C8.63273 6.85001 9.1476 7.36488 9.1476 8.00001Z",fill:"currentColor"}),f.jsx("path",{d:"M13.7486 8.00001C13.7486 8.63513 13.2338 9.15001 12.5986 9.15001C11.9635 9.15001 11.4486 8.63513 11.4486 8.00001C11.4486 7.36488 11.9635 6.85001 12.5986 6.85001C13.2338 6.85001 13.7486 7.36488 13.7486 8.00001Z",fill:"currentColor"})]}),U8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M8.64453 1.5V7.34961H14.5V8.65039H8.64453V14.5H7.34473V8.65039H1.5V7.34961H7.34473V1.5H8.64453Z",fill:"currentColor"})}),cu=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M15.0498 3.92579L8.49512 12.3818C8.25774 12.6881 8.04517 12.9645 7.84668 13.1689C7.63957 13.3823 7.38732 13.5841 7.04492 13.6719C6.86373 13.7183 6.6757 13.7346 6.48926 13.7197C6.13666 13.6915 5.8528 13.5355 5.6123 13.3604C5.38201 13.1926 5.12573 12.9567 4.83984 12.6953L1.03125 9.21289L1.96875 8.1875L5.77734 11.6699C6.08684 11.9529 6.27773 12.1249 6.43066 12.2363C6.50183 12.2882 6.54699 12.3135 6.57324 12.3252C6.58525 12.3305 6.59269 12.3322 6.5957 12.333C6.59802 12.3336 6.59961 12.334 6.59961 12.334C6.63317 12.3367 6.66758 12.3335 6.7002 12.3252C6.7002 12.3252 6.70211 12.3251 6.7041 12.3242C6.70698 12.3229 6.71348 12.319 6.72461 12.3115C6.74849 12.2956 6.78843 12.2642 6.84961 12.2012C6.98138 12.0654 7.13957 11.8628 7.39648 11.5313L13.9502 3.07422L15.0498 3.92579Z",fill:"currentColor"})}),W8=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M11.5635 4.58984L7.61426 9.07715C7.35154 9.37561 7.11346 9.64812 6.89453 9.84668C6.66593 10.054 6.38519 10.2506 6.01465 10.3164C5.82079 10.3508 5.62207 10.3529 5.42773 10.3213C5.0561 10.2609 4.77266 10.0674 4.54102 9.86328C4.31926 9.66791 4.07752 9.39911 3.81055 9.10449L2.44531 7.59863L3.55664 6.59082L4.92188 8.09766C5.21256 8.41844 5.38878 8.61191 5.53223 8.73828C5.61022 8.80699 5.65253 8.83192 5.66895 8.83984C5.69648 8.84429 5.72449 8.84467 5.75195 8.83984C5.72657 8.84451 5.75564 8.85422 5.88672 8.73535C6.02833 8.60692 6.20225 8.41088 6.48828 8.08594L10.4385 3.59961L11.5635 4.58984Z",fill:"currentColor"})}),q8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.0762 1.37207C14.0846 1.37228 14.9021 2.19077 14.9023 3.19922C14.9022 4.20772 14.0847 5.02518 13.0762 5.02539C12.2967 5.02539 11.6325 4.53691 11.3701 3.84961H4.35547C4.79397 4.26458 5.15861 4.7644 5.41699 5.33496L7.10645 9.06738C7.88526 10.7875 9.55104 11.9228 11.4189 12.0371C11.7085 11.4109 12.3411 10.9756 13.0762 10.9756C14.0843 10.9759 14.9023 11.7936 14.9023 12.8018C14.9023 13.81 14.0843 14.6277 13.0762 14.6279C12.2534 14.6279 11.5574 14.0832 11.3291 13.335C8.9868 13.1879 6.89981 11.7612 5.92285 9.60352L4.23242 5.87109C3.67503 4.64033 2.44878 3.84961 1.09766 3.84961V2.54883C1.10665 2.54883 1.11601 2.54975 1.125 2.5498L11.3701 2.54883C11.6326 1.86151 12.2969 1.37207 13.0762 1.37207ZM13.0762 12.2764C12.7858 12.2764 12.5508 12.5114 12.5508 12.8018C12.5508 13.0921 12.7858 13.3281 13.0762 13.3281C13.3664 13.3279 13.6025 13.092 13.6025 12.8018C13.6025 12.5115 13.3664 12.2766 13.0762 12.2764ZM13.0762 2.67285C12.7855 2.67285 12.55 2.90861 12.5498 3.19922C12.5499 3.48987 12.7855 3.72559 13.0762 3.72559C13.3667 3.72538 13.6024 3.48975 13.6025 3.19922C13.6023 2.90874 13.3666 2.67306 13.0762 2.67285Z",fill:"currentColor"})}),Bl=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 8.90706 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z",fill:"currentColor"})}),U3=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M8.5 2.15137L8.07617 2.57617L5.34863 5.30273C5.09294 5.55843 4.86618 5.78438 4.70215 5.98828C4.53117 6.20088 4.38244 6.44405 4.33398 6.75C4.30778 6.91565 4.30778 7.08435 4.33398 7.25C4.38244 7.55595 4.53117 7.79912 4.70215 8.01172C4.86618 8.21561 5.09294 8.44157 5.34863 8.69727L8.07617 11.4238L8.5 11.8486L9.34863 11L8.92383 10.5762L6.19727 7.84863C5.92268 7.57405 5.75151 7.40124 5.6377 7.25977C5.53096 7.12709 5.52187 7.07728 5.51953 7.0625C5.51297 7.02105 5.51297 6.97895 5.51953 6.9375C5.52187 6.92272 5.53096 6.87291 5.6377 6.74023C5.75152 6.59876 5.92268 6.42595 6.19727 6.15137L8.92383 3.42383L9.34863 3L8.5 2.15137Z",fill:"currentColor"})}),W3=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M5.5 2.15137L5.92383 2.57617L8.65137 5.30273C8.90706 5.55843 9.13382 5.78438 9.29785 5.98828C9.46883 6.20088 9.61756 6.44405 9.66602 6.75C9.69222 6.91565 9.69222 7.08435 9.66602 7.25C9.61756 7.55595 9.46883 7.79912 9.29785 8.01172C9.13382 8.21561 8.90706 8.44157 8.65137 8.69727L5.92383 11.4238L5.5 11.8486L4.65137 11L5.07617 10.5762L7.80273 7.84863C8.07732 7.57405 8.24849 7.40124 8.3623 7.25977C8.46904 7.12709 8.47813 7.07728 8.48047 7.0625C8.48703 7.02105 8.48703 6.97895 8.48047 6.9375C8.47813 6.92272 8.46904 6.87291 8.3623 6.74023C8.24848 6.59876 8.07732 6.42595 7.80273 6.15137L5.07617 3.42383L4.65137 3L5.5 2.15137Z",fill:"currentColor"})}),Q8=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M4.25 2.82782L4.25 11.1722C4.25 11.6622 4.84243 11.9076 5.18891 11.5611L9.36109 7.38891C9.57588 7.17412 9.57588 6.82588 9.36109 6.61109L5.18891 2.43891C4.84243 2.09243 4.25 2.33782 4.25 2.82782Z",fill:"currentColor"})}),K8=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M2.15137 8.5L2.57617 8.07617L5.30273 5.34863C5.55843 5.09294 5.78438 4.86618 5.98828 4.70215C6.20088 4.53117 6.44405 4.38244 6.75 4.33398C6.91565 4.30778 7.08435 4.30778 7.25 4.33398C7.55595 4.38244 7.79912 4.53117 8.01172 4.70215C8.21561 4.86618 8.44157 5.09294 8.69727 5.34863L11.4238 8.07617L11.8486 8.5L11 9.34863L10.5762 8.92383L7.84863 6.19727C7.57405 5.92269 7.40124 5.75152 7.25977 5.6377C7.12709 5.53096 7.07728 5.52187 7.0625 5.51953C7.02105 5.51297 6.97895 5.51297 6.9375 5.51953C6.92272 5.52187 6.87291 5.53096 6.74023 5.6377C6.59876 5.75152 6.42595 5.92268 6.15137 6.19727L3.42383 8.92383L3 9.34863L2.15137 8.5Z",fill:"currentColor"})}),fu=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M14.1168 13.197L13.197 14.1167L1.8833 2.80303L2.80309 1.88324L14.1168 13.197Z",fill:"currentColor"}),f.jsx("path",{d:"M13.197 1.88326L14.1168 2.80305L2.80309 14.1168L1.8833 13.197L13.197 1.88326Z",fill:"currentColor"})]}),q3=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M10.6074 4.40278L8.00975 6.99973L10.6074 9.59739L9.59736 10.6074L6.9997 8.00978L4.40274 10.6074L3.3927 9.59739L5.98966 6.99973L3.3927 4.40278L4.40274 3.39273L6.9997 5.98969L9.59736 3.39273L10.6074 4.40278Z",fill:"currentColor"})}),Q3=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M6.14929 4.02032C7.11197 4.02032 7.87983 4.02016 8.49597 4.07598C9.12128 4.13269 9.65792 4.25188 10.1415 4.53106C10.7202 4.8653 11.2008 5.3459 11.535 5.92462C11.8142 6.40818 11.9334 6.94481 11.9901 7.57012C12.0459 8.18625 12.0458 8.95419 12.0458 9.9168C12.0458 10.8795 12.0459 11.6473 11.9901 12.2635C11.9334 12.8888 11.8142 13.4254 11.535 13.909C11.2008 14.4877 10.7202 14.9683 10.1415 15.3025C9.65792 15.5817 9.12128 15.7009 8.49597 15.7576C7.87984 15.8134 7.11196 15.8133 6.14929 15.8133C5.18667 15.8133 4.41874 15.8134 3.80261 15.7576C3.1773 15.7009 2.64067 15.5817 2.1571 15.3025C1.5784 14.9683 1.09778 14.4877 0.76355 13.909C0.484366 13.4254 0.365184 12.8888 0.308472 12.2635C0.252649 11.6473 0.252808 10.8795 0.252808 9.9168C0.252808 8.95418 0.252664 8.18625 0.308472 7.57012C0.365184 6.94481 0.484366 6.40818 0.76355 5.92462C1.09777 5.34589 1.57839 4.86529 2.1571 4.53106C2.64067 4.25188 3.1773 4.13269 3.80261 4.07598C4.41874 4.02017 5.18666 4.02032 6.14929 4.02032ZM6.14929 5.37774C5.16181 5.37774 4.46634 5.37761 3.92566 5.42657C3.39434 5.47472 3.07859 5.56574 2.83582 5.70587C2.4632 5.92106 2.15354 6.2307 1.93835 6.60333C1.79823 6.8461 1.70721 7.16185 1.65906 7.69317C1.6101 8.23385 1.61023 8.92933 1.61023 9.9168C1.61023 10.9043 1.61009 11.5998 1.65906 12.1404C1.70721 12.6717 1.79823 12.9875 1.93835 13.2303C2.15356 13.6029 2.46321 13.9126 2.83582 14.1277C3.07859 14.2679 3.39434 14.3589 3.92566 14.407C4.46634 14.456 5.16182 14.4559 6.14929 14.4559C7.13682 14.4559 7.83224 14.456 8.37292 14.407C8.90425 14.3589 9.21999 14.2679 9.46277 14.1277C9.83535 13.9126 10.145 13.6029 10.3602 13.2303C10.5004 12.9875 10.5914 12.6717 10.6395 12.1404C10.6885 11.5998 10.6884 10.9043 10.6884 9.9168C10.6884 8.92934 10.6885 8.23384 10.6395 7.69317C10.5914 7.16185 10.5004 6.8461 10.3602 6.60333C10.1451 6.23071 9.83536 5.92107 9.46277 5.70587C9.21999 5.56574 8.90424 5.47472 8.37292 5.42657C7.83224 5.3776 7.13682 5.37774 6.14929 5.37774ZM9.80164 0.367975C10.7638 0.367975 11.5314 0.36788 12.1473 0.423639C12.7726 0.480307 13.3093 0.598759 13.7928 0.877741C14.3717 1.21192 14.8521 1.69355 15.1864 2.27227C15.4655 2.75574 15.5857 3.29164 15.6425 3.9168C15.6983 4.53301 15.6971 5.3016 15.6971 6.26446V7.82989C15.6971 8.29264 15.6989 8.58993 15.6649 8.84844C15.4668 10.3525 14.401 11.5738 12.9833 11.9988V10.5467C13.6973 10.1903 14.2105 9.49662 14.3192 8.67169C14.3387 8.52347 14.3407 8.3358 14.3407 7.82989V6.26446C14.3407 5.27706 14.3398 4.58149 14.2909 4.04083C14.2428 3.50968 14.1526 3.19372 14.0126 2.95098C13.7974 2.57849 13.4876 2.26869 13.1151 2.05352C12.8724 1.91347 12.5564 1.82237 12.0253 1.77423C11.4847 1.72528 10.7888 1.7254 9.80164 1.7254H7.71472C6.7562 1.72558 5.92665 2.27697 5.52332 3.07891H4.07019C4.54221 1.51132 5.9932 0.368186 7.71472 0.367975H9.80164Z",fill:"currentColor"})}),J8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M7.92136 0.349152C10.3744 0.349234 12.5564 1.5052 13.9557 3.29894L15.1281 2.12759C15.3303 1.92546 15.6767 2.06943 15.6767 2.35538V5.53923C15.6766 5.71626 15.5329 5.85976 15.3559 5.86002H12.171C11.8854 5.8597 11.7426 5.51465 11.9443 5.31249L12.9641 4.29056C11.8237 2.74305 9.98908 1.74106 7.92136 1.74097C4.46436 1.74097 1.66233 4.543 1.66233 8C1.66233 11.457 4.46436 14.259 7.92136 14.259C11.3782 14.2589 14.1804 11.4569 14.1804 8H15.5722C15.5722 12.2251 12.1465 15.6507 7.92136 15.6508C3.69614 15.6508 0.270508 12.2252 0.270508 8C0.270508 3.77478 3.69614 0.349152 7.92136 0.349152Z",fill:"currentColor"})}),G8=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M1.272 6.21348C1.70645 3.08888 4.59169 0.908064 7.71634 1.34239C8.95495 1.51469 10.0438 2.07331 10.8814 2.87755L11.9458 1.81407C12.1347 1.6255 12.4572 1.75911 12.4575 2.02598V5.08751C12.4574 5.25303 12.3233 5.38731 12.1577 5.38731H9.0972C8.82993 5.38731 8.69629 5.06361 8.88528 4.87462L10.0327 3.72618C9.3732 3.09994 8.52006 2.66569 7.5513 2.53087C5.08313 2.18779 2.80376 3.91044 2.46048 6.37852C2.11747 8.84665 3.84009 11.1261 6.30814 11.4693C8.77612 11.8121 11.0557 10.0896 11.399 7.62169L11.9937 7.70372L12.5874 7.78673C12.153 10.9112 9.26756 13.0919 6.1431 12.6578C3.01854 12.2234 0.837738 9.33809 1.272 6.21348Z",fill:"currentColor"})}),Y8=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M8.27868 0.811572C8.81991 0.142194 9.79022 0.0421835 10.4538 0.557601L10.5823 0.669306L10.6066 0.693544L10.6097 0.695652L10.6392 0.725159C11.355 1.44679 11.6337 2.49468 11.3716 3.47669L11.3706 3.48091L11.3611 3.51674L11.3601 3.51885L10.889 5.22604C10.8796 5.25997 10.8707 5.29157 10.8627 5.32088C10.8934 5.32095 10.927 5.32194 10.9628 5.32194H11.9007C12.4264 5.32194 12.7831 5.319 13.0651 5.36725C14.8182 5.66719 15.9851 7.34568 15.6565 9.09357C15.6036 9.37487 15.477 9.7092 15.294 10.2022L14.3371 12.7798C14.1402 13.3104 13.9774 13.7518 13.8102 14.1024C13.6376 14.4645 13.4386 14.7793 13.1442 15.0424C12.9712 15.197 12.7802 15.3303 12.5751 15.4386C12.226 15.6231 11.8608 15.7 11.4612 15.7358C11.0743 15.7705 10.6035 15.7695 10.0375 15.7695H4.87377C4.08053 15.7695 3.42928 15.7702 2.90734 15.7137C2.37212 15.6557 1.88991 15.5311 1.46676 15.2237C1.22415 15.0474 1.01078 14.8339 0.834466 14.5914C0.527021 14.1682 0.401373 13.686 0.343384 13.1508C0.286822 12.6287 0.287531 11.9769 0.287531 11.1833V9.51405C0.287531 8.84778 0.281347 8.36714 0.399237 7.9565C0.671152 7.00935 1.41115 6.26832 2.35829 5.99638C2.76894 5.87849 3.24958 5.88573 3.91585 5.88573C4.11983 5.88573 4.14548 5.88319 4.16244 5.88046C4.23532 5.86863 4.30409 5.83663 4.35845 5.78667C4.3711 5.77504 4.38761 5.75604 4.51442 5.59488L8.25655 0.838972L8.2576 0.837918L8.27868 0.811572ZM1.69122 11.1833C1.69122 12.0082 1.69217 12.5711 1.73865 13.0001C1.78371 13.4157 1.86473 13.6221 1.96943 13.7662C2.0592 13.8898 2.16733 13.9989 2.29085 14.0887C2.43501 14.1934 2.64216 14.2744 3.05803 14.3195C3.45897 14.3629 3.97637 14.3656 4.7157 14.3659C4.30801 13.8053 4.06453 13.1171 4.06444 12.371V8.59406H5.46813V12.371C5.46838 13.4733 6.36166 14.3669 7.46407 14.3669H10.0375C10.6286 14.3669 11.0269 14.3663 11.3369 14.3385C11.6339 14.3118 11.7956 14.2638 11.9196 14.1983C12.0241 14.1431 12.1213 14.0747 12.2094 13.996C12.314 13.9025 12.4151 13.7678 12.5435 13.4986C12.6774 13.2176 12.8162 12.845 13.0219 12.2909L13.9788 9.71322C14.1848 9.15816 14.2531 8.96731 14.2781 8.83433C14.4618 7.85692 13.8093 6.91895 12.8291 6.75092C12.6957 6.7281 12.4928 6.72458 11.9007 6.72458H10.9628C10.7737 6.72458 10.5693 6.72657 10.4 6.70666C10.2211 6.68562 9.96702 6.63024 9.74771 6.43161C9.64454 6.33811 9.55957 6.2261 9.4969 6.10177C9.3639 5.83784 9.37799 5.57899 9.40521 5.40097C9.431 5.23261 9.48672 5.03616 9.53694 4.85404L10.008 3.14579L10.0175 3.11102C10.1488 2.61338 10.0078 2.08338 9.64654 1.71681L9.6086 1.67887L9.55064 1.64304C9.48795 1.62043 9.41425 1.63814 9.36938 1.69362L9.35779 1.70627L9.35884 1.70732L5.61672 6.46217C5.51822 6.58735 5.42237 6.7133 5.30689 6.81942C5.05075 7.05471 4.73126 7.20939 4.38796 7.26519C4.23315 7.29032 4.07513 7.28837 3.91585 7.28837C3.15356 7.28837 2.91916 7.2957 2.7461 7.34528C2.26364 7.48379 1.88564 7.86081 1.74708 8.34325C1.69738 8.51636 1.69122 8.7511 1.69122 9.51405V11.1833Z",fill:"currentColor"})}),X8=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M14.0593 12.922L15.0976 10.1247C15.3087 9.5559 15.4143 9.27138 15.4566 9.04658C15.7349 7.56751 14.7472 6.14737 13.2637 5.89357C13.0382 5.85499 12.7348 5.85499 12.1281 5.85499H11.1099C10.6615 5.85499 10.4372 5.85499 10.3034 5.73376C10.2607 5.69508 10.2255 5.64885 10.1995 5.5974C10.1182 5.43613 10.1778 5.21997 10.297 4.78765L10.8081 2.93419L10.819 2.89456C11.0336 2.09024 10.8051 1.23244 10.2189 0.64139L10.1898 0.612405L10.1692 0.592068C9.77357 0.210076 9.13559 0.249344 8.78983 0.676966L8.77186 0.699678L4.71076 5.86083C4.52965 6.09101 4.38573 6.35138 4.38573 6.64427V12.7431C4.38573 14.3601 5.69654 15.6709 7.31351 15.6709L10.1068 15.6709C11.3628 15.6709 11.9908 15.6709 12.5043 15.3995C12.6723 15.3107 12.8289 15.2018 12.9706 15.0752C13.4037 14.6882 13.6222 14.0995 14.0593 12.922Z",fill:"currentColor"}),f.jsx("path",{d:"M2.91388 13.2113C2.91388 14.6907 4.08499 15.5536 4.08499 15.5536H2.65606C1.46328 15.5536 0.496338 14.5866 0.496338 13.3938V8.34439C0.496338 7.15161 1.46328 6.18467 2.65606 6.18467H2.91388V13.2113Z",fill:"currentColor"})]}),e9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M7.72451 15.1086C7.18929 15.7705 6.22975 15.8694 5.57357 15.3597L5.44643 15.2492L5.42247 15.2253L5.41934 15.2232L5.39016 15.194C4.68239 14.4804 4.40679 13.4441 4.66589 12.473L4.66693 12.4689L4.67631 12.4334L4.67735 12.4314L5.14318 10.7431C5.15243 10.7096 5.1613 10.6783 5.16923 10.6493C5.13878 10.6493 5.10558 10.6483 5.07023 10.6483H4.14274C3.62288 10.6483 3.27015 10.6512 2.9912 10.6035C1.25757 10.3069 0.103662 8.64702 0.42863 6.91854C0.480965 6.64037 0.606164 6.30975 0.787119 5.82223L1.73336 3.27321C1.92812 2.74852 2.08912 2.31209 2.25442 1.96535C2.42515 1.60724 2.62191 1.29594 2.91304 1.03578C3.08408 0.882951 3.273 0.751121 3.47579 0.643944C3.82102 0.461504 4.18214 0.38551 4.57731 0.350066C4.95993 0.315784 5.42553 0.316718 5.98521 0.316718H11.0916C11.876 0.316718 12.52 0.31607 13.0362 0.37195C13.5655 0.429293 14.0423 0.552534 14.4608 0.856536C14.7007 1.03085 14.9117 1.24193 15.086 1.48181C15.3901 1.90027 15.5143 2.37709 15.5717 2.90638C15.6276 3.42269 15.6269 4.06721 15.6269 4.85202V6.50274C15.6269 7.1616 15.633 7.6369 15.5164 8.04299C15.2475 8.97962 14.5158 9.71242 13.5791 9.98133C13.173 10.0979 12.6977 10.0908 12.0389 10.0908C11.8372 10.0908 11.8118 10.0933 11.795 10.096C11.723 10.1077 11.6549 10.1393 11.6012 10.1887C11.5887 10.2002 11.5724 10.219 11.447 10.3784L7.74639 15.0815L7.74535 15.0825L7.72451 15.1086ZM14.2388 4.85202C14.2388 4.03628 14.2379 3.47965 14.1919 3.05541C14.1473 2.64443 14.0672 2.4403 13.9637 2.29779C13.8749 2.17562 13.768 2.06769 13.6458 1.9789C13.5033 1.87532 13.2984 1.79523 12.8872 1.75067C12.4907 1.70773 11.979 1.70511 11.2479 1.70482C11.6511 2.25917 11.8918 2.93968 11.8919 3.67755V7.41251H10.5038V3.67755C10.5036 2.58745 9.62023 1.70378 8.53007 1.70378H5.98521C5.40065 1.70378 5.00679 1.70442 4.70028 1.73192C4.40651 1.7583 4.24662 1.80571 4.12399 1.87052C4.02069 1.92511 3.92452 1.99276 3.8374 2.07061C3.73401 2.16306 3.634 2.2962 3.50705 2.56249C3.37462 2.84027 3.23734 3.20873 3.03393 3.75675L2.08768 6.30578C1.88395 6.85467 1.81646 7.0434 1.79172 7.1749C1.61005 8.14146 2.25533 9.06902 3.22464 9.23517C3.35654 9.25774 3.55717 9.26123 4.14274 9.26123H5.07023C5.25717 9.26123 5.4593 9.25926 5.62672 9.27894C5.80364 9.29975 6.05492 9.35452 6.27179 9.55094C6.37381 9.6434 6.45784 9.75417 6.51982 9.87712C6.65133 10.1381 6.6374 10.3941 6.61048 10.5701C6.58498 10.7366 6.52988 10.9309 6.48022 11.111L6.01439 12.8003L6.00501 12.8347C5.87513 13.3268 6.01464 13.8509 6.37184 14.2134L6.40935 14.2509L6.46667 14.2863C6.52866 14.3087 6.60155 14.2912 6.64591 14.2363L6.65738 14.2238L6.65633 14.2228L10.3569 9.52072C10.4543 9.39693 10.5491 9.27238 10.6633 9.16744C10.9166 8.93476 11.2325 8.7818 11.572 8.72662C11.7251 8.70177 11.8814 8.70369 12.0389 8.70369C12.7927 8.70369 13.0245 8.69645 13.1956 8.64742C13.6727 8.51045 14.0465 8.13761 14.1836 7.66053C14.2327 7.48935 14.2388 7.25721 14.2388 6.50274V4.85202Z",fill:"currentColor"})}),t9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M1.92838 3.06811L0.88799 5.87104C0.676449 6.44097 0.570628 6.72606 0.52825 6.95131C0.249414 8.43336 1.2391 9.85637 2.72555 10.1107C2.95149 10.1493 3.25549 10.1493 3.86348 10.1493H4.88371C5.33306 10.1493 5.55774 10.1493 5.69187 10.2708C5.73467 10.3096 5.76994 10.3559 5.79593 10.4074C5.87738 10.569 5.81766 10.7856 5.69821 11.2188L5.18609 13.076L5.17522 13.1157C4.9602 13.9217 5.1891 14.7812 5.7765 15.3735L5.80568 15.4025L5.82635 15.4229C6.22273 15.8056 6.862 15.7663 7.20846 15.3378L7.22647 15.315L11.2958 10.1435C11.4772 9.91284 11.6214 9.65195 11.6214 9.35847V3.24734C11.6214 1.62711 10.308 0.313655 8.68776 0.313655L5.88886 0.313654C4.63032 0.313654 4.00105 0.313654 3.48649 0.585577C3.31815 0.674536 3.16127 0.783647 3.01929 0.910507C2.58531 1.29828 2.36633 1.88824 1.92838 3.06811Z",fill:"currentColor"}),f.jsx("path",{d:"M13.0963 2.77815C13.0963 1.29585 11.9228 0.431205 11.9228 0.431205H13.3546C14.5498 0.431205 15.5187 1.4001 15.5187 2.59529V7.65491C15.5187 8.8501 14.5498 9.81899 13.3546 9.81899H13.0963V2.77815Z",fill:"currentColor"})]}),n9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M7.95889 1.52285C7.95888 0.826234 8.76055 0.467983 9.27669 0.875208L9.37524 0.967191L15.1317 7.18358C15.5582 7.64419 15.5582 8.35614 15.1317 8.81676L9.37524 15.0331C8.87034 15.578 7.95888 15.2205 7.95889 14.4775V10.8207C7.10614 10.8432 6.31361 10.9316 5.45468 11.2515C4.39484 11.6463 3.18248 12.413 1.64676 13.9425C1.4533 14.135 1.18329 14.1696 0.969086 14.0908C0.74748 14.0091 0.547307 13.7879 0.54859 13.4844L0.55516 13.1315C0.618924 11.3494 1.11153 9.29838 2.27656 7.63787C3.45289 5.96147 5.29554 4.71635 7.95889 4.54797V1.52285ZM9.20911 5.13366C9.20899 5.50567 8.9031 5.77687 8.56523 5.77755C5.99383 5.78282 4.33736 6.8762 3.29964 8.35496C2.54519 9.43014 2.10739 10.7283 1.9152 11.9939C3.04749 11.0323 4.0569 10.4385 5.01917 10.0801C6.29638 9.60449 7.4406 9.56343 8.56429 9.56295C8.9178 9.5628 9.20894 9.84909 9.20911 10.2068L9.20817 13.3737L14.1837 8.00017L9.20817 2.62571L9.20911 5.13366Z",fill:"currentColor"})}),r9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M9.94076 1.34942C10.7047 0.90231 11.6503 0.902415 12.4143 1.34942C12.7061 1.52015 12.9688 1.79118 13.3104 2.13284C13.6521 2.47448 13.9231 2.73721 14.0939 3.02894C14.5408 3.79294 14.5409 4.73856 14.0939 5.50251C13.9231 5.79415 13.652 6.05704 13.3104 6.39861L6.65932 13.0497C6.28068 13.4284 6.00695 13.7108 5.66543 13.9097C5.32391 14.1085 4.94315 14.2074 4.42705 14.3498L3.24394 14.6761C2.77527 14.8054 2.34538 14.9262 2.00131 14.9684C1.65196 15.0112 1.17964 15.0013 0.810764 14.6325C0.441921 14.2637 0.432107 13.7913 0.47486 13.442C0.517035 13.0979 0.6379 12.668 0.767181 12.1993L1.09352 11.0162C1.23588 10.5001 1.33481 10.1193 1.5336 9.77784C1.7325 9.43632 2.0149 9.1626 2.39355 8.78395L9.04466 2.13284C9.38625 1.79126 9.64911 1.52016 9.94076 1.34942ZM15.5427 14.8398H7.55223L8.96707 13.425H15.5427V14.8398ZM3.39382 9.78422C2.965 10.213 2.84244 10.3436 2.75709 10.49C2.67183 10.6366 2.61862 10.8079 2.45733 11.3925L2.13099 12.5756C2.00183 13.0439 1.92194 13.3419 1.88863 13.5536C2.10041 13.5204 2.39872 13.4416 2.86764 13.3123L4.05075 12.9859C4.63544 12.8246 4.80669 12.7715 4.95323 12.6862C5.09968 12.6008 5.23022 12.4783 5.65905 12.0494L10.721 6.98644L8.45577 4.72121L3.39382 9.78422ZM11.7 2.57079C11.3774 2.38198 10.9777 2.38198 10.6551 2.57079C10.5602 2.62647 10.4487 2.72931 10.0449 3.13311L9.45604 3.72094L11.7213 5.98617L12.3102 5.39833C12.7139 4.99457 12.8168 4.88307 12.8725 4.78818C13.0613 4.46561 13.0612 4.06585 12.8725 3.74326C12.8169 3.64827 12.7146 3.53752 12.3102 3.13311C11.9057 2.72863 11.795 2.6264 11.7 2.57079Z",fill:"currentColor"})}),o9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M7.06431 5.93342C7.68763 5.93342 8.19307 6.43904 8.19322 7.06233C8.19322 7.68573 7.68772 8.19123 7.06431 8.19123C6.44099 8.19113 5.9354 7.68567 5.9354 7.06233C5.93555 6.43911 6.44108 5.93353 7.06431 5.93342Z",fill:"currentColor"}),f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.6815 0.963693C10.1169 0.447019 11.6266 0.374829 12.5633 1.31135C13.5 2.24805 13.4277 3.75776 12.911 5.19319C12.7126 5.74431 12.4386 6.31796 12.0965 6.89729C12.4969 7.54638 12.8141 8.19018 13.036 8.80647C13.5527 10.2419 13.6251 11.7516 12.6883 12.6883C11.7516 13.625 10.242 13.5527 8.8065 13.036C8.19022 12.8141 7.54641 12.4969 6.89732 12.0965C6.31797 12.4386 5.74435 12.7125 5.19322 12.911C3.75777 13.4276 2.2481 13.5 1.31138 12.5633C0.374859 11.6266 0.447049 10.1168 0.963724 8.68147C1.17185 8.10338 1.46321 7.50063 1.82896 6.8924C1.52182 6.35711 1.27235 5.82825 1.08872 5.31819C0.572068 3.88278 0.499714 2.37306 1.43638 1.43635C2.37308 0.499655 3.8828 0.572044 5.31822 1.08869C5.82828 1.27232 6.35715 1.5218 6.89243 1.82893C7.50066 1.46318 8.10341 1.17181 8.6815 0.963693ZM11.3573 8.01154C10.9083 8.62253 10.3901 9.22873 9.80943 9.8094C9.22877 10.3901 8.62255 10.9083 8.01158 11.3572C8.4257 11.5841 8.8287 11.7688 9.21275 11.9071C10.5456 12.3868 11.4246 12.2547 11.8397 11.8397C12.2548 11.4246 12.3869 10.5456 11.9071 9.21272C11.7688 8.82866 11.5841 8.42568 11.3573 8.01154ZM2.56529 8.02912C2.37344 8.39322 2.21495 8.74796 2.09263 9.08772C1.61291 10.4204 1.74512 11.2995 2.16001 11.7147C2.57505 12.1297 3.45415 12.2618 4.78697 11.7821C5.11057 11.6656 5.44786 11.5164 5.7938 11.3367C5.249 10.9223 4.70922 10.4533 4.19029 9.9344C3.57578 9.31987 3.03169 8.67633 2.56529 8.02912ZM6.90708 3.2469C6.24065 3.70479 5.5646 4.26321 4.91392 4.91389C4.26325 5.56456 3.70482 6.24063 3.24693 6.90705C3.72674 7.63325 4.32777 8.37459 5.03892 9.08576C5.64943 9.69627 6.28183 10.2265 6.90806 10.6678C7.59368 10.2025 8.2908 9.63076 8.96079 8.96076C9.6308 8.29075 10.2025 7.59366 10.6678 6.90803C10.2265 6.2818 9.69631 5.6494 9.08579 5.03889C8.37462 4.32773 7.63328 3.72672 6.90708 3.2469ZM11.7147 2.15998C11.2996 1.74509 10.4204 1.61288 9.08775 2.0926C8.74835 2.21479 8.39382 2.37271 8.03013 2.56428C8.67728 3.03065 9.31995 3.5758 9.93443 4.19026C10.4534 4.7092 10.9223 5.24896 11.3368 5.79377C11.5164 5.44785 11.6656 5.11052 11.7821 4.78694C12.2618 3.45416 12.1297 2.57502 11.7147 2.15998ZM4.91197 2.2176C3.57922 1.73788 2.70004 1.86995 2.28501 2.28498C1.87001 2.70003 1.73791 3.5792 2.21763 4.91194C2.31709 5.18822 2.44112 5.47427 2.58677 5.7674C3.01931 5.1887 3.51474 4.6158 4.06529 4.06526C4.61584 3.5147 5.18872 3.01928 5.76743 2.58674C5.47431 2.4411 5.18824 2.31706 4.91197 2.2176Z",fill:"currentColor"})]}),i9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M8.00192 6.64454C8.75026 6.64454 9.35732 7.25169 9.35739 8.00001C9.35739 8.74838 8.7503 9.35548 8.00192 9.35548C7.25367 9.35533 6.64743 8.74829 6.64743 8.00001C6.6475 7.25178 7.25371 6.64468 8.00192 6.64454Z",fill:"currentColor"}),f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.97165 1.29981C11.5853 0.718916 13.271 0.642197 14.3144 1.68555C15.3577 2.72902 15.2811 4.41466 14.7002 6.02833C14.4707 6.66561 14.1504 7.32937 13.75 8.00001C14.1504 8.67062 14.4707 9.33444 14.7002 9.97169C15.2811 11.5854 15.3578 13.271 14.3144 14.3145C13.271 15.3579 11.5854 15.2811 9.97165 14.7002C9.3344 14.4708 8.67059 14.1505 7.99997 13.75C7.32933 14.1505 6.66558 14.4708 6.02829 14.7002C4.41461 15.2811 2.72899 15.3578 1.68552 14.3145C0.642155 13.271 0.71887 11.5854 1.29977 9.97169C1.52915 9.33454 1.84865 8.67049 2.24899 8.00001C1.84866 7.32953 1.52915 6.66544 1.29977 6.02833C0.718852 4.41459 0.64207 2.729 1.68552 1.68555C2.72897 0.642112 4.41456 0.718887 6.02829 1.29981C6.66541 1.52918 7.32949 1.8487 7.99997 2.24903C8.67045 1.84869 9.33451 1.52919 9.97165 1.29981ZM12.9404 9.2129C12.4391 9.893 11.8616 10.5681 11.2148 11.2149C10.568 11.8616 9.89296 12.4391 9.21286 12.9404C9.62532 13.1579 10.0271 13.338 10.4121 13.4766C11.9146 14.0174 12.9172 13.8738 13.3955 13.3955C13.8737 12.9173 14.0174 11.9146 13.4765 10.4121C13.3379 10.0271 13.1578 9.62535 12.9404 9.2129ZM3.05856 9.2129C2.84121 9.62523 2.66197 10.0272 2.52341 10.4121C1.98252 11.9146 2.12627 12.9172 2.60446 13.3955C3.08278 13.8737 4.08544 14.0174 5.58786 13.4766C5.97264 13.338 6.37389 13.1577 6.7861 12.9404C6.10624 12.4393 5.43168 11.8614 4.78513 11.2149C4.13823 10.5679 3.55992 9.89313 3.05856 9.2129ZM7.99899 3.792C7.23179 4.31419 6.45306 4.95512 5.70407 5.70411C4.95509 6.45309 4.31415 7.23184 3.79196 7.99903C4.3143 8.76666 4.95471 9.54653 5.70407 10.2959C6.45309 11.0449 7.23271 11.6848 7.99997 12.207C8.76725 11.6848 9.54683 11.0449 10.2959 10.2959C11.0449 9.54686 11.6848 8.76729 12.207 8.00001C11.6848 7.23275 11.0449 6.45312 10.2959 5.70411C9.5465 4.95475 8.76662 4.31434 7.99899 3.792ZM5.58786 2.52344C4.08533 1.98255 3.08272 2.12625 2.60446 2.6045C2.12621 3.08275 1.98252 4.08536 2.52341 5.5879C2.66189 5.97253 2.8414 6.37409 3.05856 6.78614C3.55983 6.10611 4.1384 5.43189 4.78513 4.78516C5.43186 4.13843 6.10606 3.55987 6.7861 3.0586C6.37405 2.84144 5.97249 2.66192 5.58786 2.52344ZM13.3955 2.6045C12.9172 2.12631 11.9146 1.98257 10.4121 2.52344C10.0272 2.66201 9.62519 2.84125 9.21286 3.0586C9.8931 3.55996 10.5679 4.13827 11.2148 4.78516C11.8614 5.43172 12.4392 6.10627 12.9404 6.78614C13.1577 6.37393 13.338 5.97267 13.4765 5.5879C14.0174 4.08549 13.8736 3.08281 13.3955 2.6045Z",fill:"currentColor"})]}),s9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("mask",{id:"mask0_agent_preset_16",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"16",height:"16",children:[f.jsx("rect",{width:"16",height:"16",fill:"white"}),f.jsx("circle",{cx:"7.9995",cy:"3.28319",r:"1.712",fill:"black"}),f.jsx("circle",{cx:"3.51122",cy:"11.3855",r:"1.712",fill:"black"}),f.jsx("circle",{cx:"12.4878",cy:"11.3855",r:"1.712",fill:"black"})]}),f.jsx("path",{mask:"url(#mask0_agent_preset_16)",d:"M12.2881 11.0425C12.6002 11.3723 13.0413 11.5786 13.5312 11.5786L13.5342 11.5776C13.1476 12.3233 12.6119 12.9785 11.9639 13.5005C10.9327 14.3309 9.6199 14.8286 8.19336 14.8286C7.29864 14.8285 6.45056 14.6313 5.6875 14.2808C6.08309 14.0281 6.36707 13.6189 6.45215 13.1392C6.99022 13.3561 7.57767 13.476 8.19336 13.4761C9.30019 13.4761 10.3157 13.0915 11.1152 12.4478C11.5935 12.0626 11.9924 11.5848 12.2881 11.0425ZM4.14746 4.36475C4.25569 4.83228 4.55488 5.2247 4.95898 5.4585C4.07956 6.30639 3.53144 7.49605 3.53125 8.81396C3.53125 9.69534 3.77613 10.5202 4.20117 11.2231C3.74959 11.3817 3.38395 11.7232 3.19531 12.1597C2.5541 11.2032 2.17969 10.052 2.17969 8.81396C2.17989 7.05087 2.93868 5.4646 4.14746 4.36475ZM8.19336 2.80029C8.85717 2.80029 9.49784 2.90834 10.0967 3.10791C12.3237 3.85044 13.9725 5.86061 14.1846 8.28369C13.9832 8.20048 13.7627 8.15382 13.5312 8.15381C13.2802 8.15381 13.042 8.20907 12.8271 8.30615C12.6281 6.47264 11.3666 4.95616 9.66895 4.39014C9.2063 4.236 8.70989 4.15186 8.19336 4.15186C7.96112 4.15189 7.7329 4.16981 7.50977 4.20264C7.51947 4.12886 7.52637 4.05348 7.52637 3.97705C7.52628 3.56604 7.3811 3.18914 7.13965 2.89404C7.48183 2.83352 7.83381 2.80033 8.19336 2.80029Z",fill:"currentColor"}),f.jsx("path",{d:"M9.1123 3.28271C9.11205 2.66858 8.61322 2.17041 7.99902 2.17041C7.38504 2.17067 6.88697 2.66874 6.88672 3.28271C6.88672 3.89691 7.38489 4.39574 7.99902 4.396C8.61338 4.396 9.1123 3.89707 9.1123 3.28271ZM10.3115 3.28271C10.3115 4.55981 9.27612 5.59521 7.99902 5.59521C6.72214 5.59496 5.6875 4.55965 5.6875 3.28271C5.68776 2.00599 6.7223 0.971447 7.99902 0.971191C9.27596 0.971191 10.3113 2.00584 10.3115 3.28271Z",fill:"currentColor"}),f.jsx("path",{d:"M4.62402 11.385C4.62377 10.7709 4.12494 10.2727 3.51074 10.2727C2.89676 10.273 2.39869 10.771 2.39844 11.385C2.39844 11.9992 2.89661 12.498 3.51074 12.4983C4.1251 12.4983 4.62402 11.9994 4.62402 11.385ZM5.82324 11.385C5.82324 12.6621 4.78784 13.6975 3.51074 13.6975C2.23386 13.6973 1.19922 12.6619 1.19922 11.385C1.19947 10.1083 2.23402 9.07374 3.51074 9.07349C4.78768 9.07349 5.82299 10.1081 5.82324 11.385Z",fill:"currentColor"}),f.jsx("path",{d:"M13.6006 11.385C13.6003 10.7709 13.1015 10.2727 12.4873 10.2727C11.8733 10.273 11.3753 10.771 11.375 11.385C11.375 11.9992 11.8732 12.498 12.4873 12.4983C13.1017 12.4983 13.6006 11.9994 13.6006 11.385ZM14.7998 11.385C14.7998 12.6621 13.7644 13.6975 12.4873 13.6975C11.2104 13.6973 10.1758 12.6619 10.1758 11.385C10.176 10.1083 11.2106 9.07374 12.4873 9.07349C13.7642 9.07349 14.7995 10.1081 14.7998 11.385Z",fill:"currentColor"})]}),l9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M11.2426 4.80473V6.10551H4.75819V4.80473H11.2426Z",fill:"currentColor"}),f.jsx("path",{d:"M9.40858 7.84478V9.14557H4.75819V7.84478H9.40858Z",fill:"currentColor"}),f.jsx("path",{d:"M9.23438 0.546389C10.1941 0.546389 10.9683 0.544914 11.5859 0.611819C12.2161 0.680096 12.7634 0.825745 13.2393 1.17139C13.5172 1.3733 13.7619 1.61812 13.9639 1.896C14.3096 2.37183 14.4551 2.91922 14.5234 3.54932C14.5903 4.16686 14.5889 4.94133 14.5889 5.90088V10.0981C14.5889 11.0576 14.5903 11.8321 14.5234 12.4497C14.4552 13.0798 14.3094 13.6272 13.9639 14.103C13.7619 14.381 13.5172 14.6257 13.2393 14.8276C12.7633 15.1734 12.2163 15.3189 11.5859 15.3872C10.9683 15.4541 10.1942 15.4536 9.23438 15.4536H6.76563C5.80591 15.4536 5.03168 15.4541 4.41407 15.3872C3.78385 15.3189 3.23665 15.1734 2.76074 14.8276C2.48291 14.6257 2.23802 14.3809 2.03614 14.103C1.69066 13.6272 1.54483 13.0798 1.47657 12.4497C1.40973 11.8321 1.41114 11.0576 1.41114 10.0981V5.90088C1.41113 4.94132 1.40966 4.16686 1.47657 3.54932C1.54488 2.91921 1.69042 2.37184 2.03614 1.896C2.2381 1.61807 2.4828 1.37333 2.76074 1.17139C3.23665 0.825682 3.78386 0.680109 4.41407 0.611819C5.03168 0.544905 5.80591 0.546389 6.76563 0.546389H9.23438ZM6.76563 1.896C5.77586 1.896 5.0876 1.89738 4.55957 1.95459C4.0443 2.01043 3.76214 2.11349 3.55469 2.26416C3.39135 2.38284 3.24761 2.52662 3.12891 2.68994C2.97821 2.89736 2.8752 3.17967 2.81934 3.69483C2.76214 4.22279 2.76075 4.91131 2.76074 5.90088V10.0981C2.76074 11.0876 2.76221 11.7762 2.81934 12.3042C2.87516 12.8194 2.97829 13.1026 3.12891 13.3101C3.24754 13.4733 3.39147 13.6172 3.55469 13.7358C3.76213 13.8865 4.04438 13.9896 4.55957 14.0454C5.0876 14.1026 5.77586 14.103 6.76563 14.103H9.23438C10.2242 14.103 10.9124 14.1026 11.4404 14.0454C11.9556 13.9896 12.2379 13.8865 12.4453 13.7358C12.6086 13.6172 12.7525 13.4733 12.8711 13.3101C13.0217 13.1026 13.1248 12.8195 13.1807 12.3042C13.2378 11.7762 13.2393 11.0876 13.2393 10.0981V5.90088C13.2393 4.91131 13.2379 4.22279 13.1807 3.69483C13.1248 3.17969 13.0218 2.89736 12.8711 2.68994C12.7524 2.52667 12.6086 2.38281 12.4453 2.26416C12.2379 2.11355 11.9556 2.01041 11.4404 1.95459C10.9124 1.8974 10.2241 1.896 9.23438 1.896H6.76563Z",fill:"currentColor"})]}),u9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M8.19727 5.86969C9.2092 6.90067 9.20969 8.55271 8.19727 9.58338L6.88871 10.8919C5.85801 11.9039 4.20584 11.9037 3.17502 10.8919L3.10873 10.8243C2.09622 9.7934 2.09626 8.14148 3.10873 7.11058L4.36757 5.85174C4.28261 6.33758 4.30355 6.84354 4.44077 7.33362L3.89249 7.88053C3.30043 8.48348 3.30108 9.4507 3.89318 10.0536L3.94566 10.1061C4.54861 10.698 5.51521 10.6981 6.11808 10.1061L7.41283 8.81275C8.00484 8.21002 8.00504 7.24267 7.41352 6.63964L7.35966 6.58716C7.21975 6.44976 7.05995 6.34434 6.89009 6.27089L7.70009 5.4609C7.85176 5.55768 7.99607 5.67091 8.1296 5.80202L8.19727 5.86969Z",fill:"currentColor"}),f.jsx("path",{d:"M5.80913 8.12648C4.79584 7.09547 4.79591 5.44245 5.80913 4.41141C5.81733 4.40304 5.82707 4.39209 5.8409 4.37826L7.07833 3.14082C7.09224 3.12693 7.10311 3.11729 7.11148 3.10906C8.14253 2.09591 9.79557 2.09579 10.8266 3.10906L10.8908 3.17328C11.9041 4.20425 11.9039 5.85727 10.8908 6.88835L9.63193 8.14581C9.70566 7.66581 9.67564 7.16895 9.53456 6.68948L10.1063 6.11772C10.6989 5.51458 10.6992 4.54691 10.1063 3.94391L10.0552 3.8942C9.45215 3.30157 8.48446 3.30151 7.88142 3.8942L6.59358 5.18204C6.00081 5.78507 6.00092 6.75274 6.59358 7.35584L6.6433 7.40694C6.77998 7.54132 6.93555 7.64528 7.10112 7.71837L6.29251 8.52699C6.14446 8.43127 6.00395 8.31906 5.87335 8.1907L5.80913 8.12648Z",fill:"currentColor"})]}),a9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M9.94133 6.50173C11.3218 7.99603 11.3218 10.3011 9.94128 11.7954C9.88691 11.8542 9.82125 11.9196 9.72099 12.0198L7.75707 13.9838C7.65709 14.0838 7.592 14.1491 7.53334 14.2034C6.03906 15.5843 3.7327 15.5854 2.23827 14.2048C2.17933 14.1503 2.11374 14.0844 2.01315 13.9838C1.91318 13.8839 1.84922 13.8188 1.79495 13.7601C0.413857 12.2657 0.413909 9.95948 1.795 8.46503C1.84923 8.4064 1.91335 8.34115 2.01321 8.24129L3.79275 6.46313C3.71814 7.08101 3.75236 7.71445 3.90115 8.33518L3.00344 9.23151C2.89398 9.34097 2.8535 9.38307 2.82251 9.41658C1.93771 10.3744 1.93704 11.8514 2.82179 12.8092C2.85279 12.8427 2.89383 12.884 3.0034 12.9936C3.11272 13.1029 3.15429 13.1442 3.18777 13.1752C4.14561 14.0603 5.62381 14.0608 6.58178 13.1758C6.61532 13.1448 6.65722 13.1032 6.76685 12.9935L8.73077 11.0296C8.83999 10.9204 8.88142 10.8787 8.91238 10.8452C9.79744 9.88728 9.7969 8.40911 8.91173 7.45124C8.88074 7.41775 8.83944 7.3762 8.73011 7.26687C8.62082 7.15757 8.58061 7.11623 8.54712 7.08526C8.37347 6.92477 8.18243 6.79361 7.98088 6.69165L9.00289 5.66964C9.17506 5.78373 9.34035 5.91265 9.49663 6.05703C9.55538 6.11135 9.62026 6.17652 9.72036 6.27662C9.82094 6.3772 9.88686 6.4428 9.94133 6.50173Z",fill:"currentColor"}),f.jsx("path",{d:"M6.06816 9.49196C4.68626 7.99724 4.68667 5.68942 6.06885 4.19487C6.12268 4.13671 6.18789 4.07306 6.28706 3.9739L8.24541 2.01416C8.34478 1.91479 8.41018 1.85055 8.46845 1.79665C9.96301 0.414902 12.2689 0.414922 13.7635 1.79665C13.8217 1.85051 13.8866 1.91559 13.9858 2.01486C14.0849 2.11394 14.1502 2.17769 14.204 2.23583C15.5861 3.7304 15.5866 6.03823 14.2047 7.53291C14.1508 7.59125 14.0854 7.65638 13.9858 7.75595L12.1994 9.54098C12.2614 8.92982 12.2185 8.30587 12.0634 7.69657L12.9956 6.76573C13.1044 6.65692 13.1458 6.61529 13.1765 6.58205C14.0621 5.62404 14.0621 4.1454 13.1765 3.18738C13.1458 3.15419 13.104 3.1135 12.9956 3.00508C12.8877 2.89716 12.8471 2.85551 12.814 2.82485C11.8559 1.9389 10.376 1.93886 9.41794 2.82485C9.38479 2.85554 9.34381 2.89622 9.23564 3.00439L7.27728 4.96413C7.16875 5.07265 7.12708 5.11322 7.09636 5.14643C6.21074 6.10441 6.21153 7.58236 7.09705 8.5404C7.12775 8.57357 7.16826 8.61575 7.27659 8.72408C7.38456 8.83205 7.42647 8.87227 7.45958 8.90293C7.62849 9.0591 7.81309 9.1881 8.00856 9.28894L6.98795 10.3095C6.82111 10.1978 6.66052 10.0715 6.50872 9.93114C6.45057 9.87733 6.38547 9.81341 6.28637 9.71431C6.1871 9.61504 6.12202 9.55018 6.06816 9.49196Z",fill:"currentColor"})]}),c9=({size:n=8,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 8 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M6.54199 8.62824C6.54199 8.44193 6.54146 8.28829 6.53906 8.15851L1.11719 13.5814L0.728516 13.1927L0.339844 12.803L5.76172 7.38019C5.63201 7.3778 5.47812 7.37824 5.29199 7.37824H1.43555V6.27863H5.29199C5.65471 6.27863 5.97167 6.27814 6.22852 6.30597C6.49541 6.33493 6.76232 6.3998 7.00293 6.57452C7.13452 6.67013 7.25108 6.78571 7.34668 6.9173C7.52157 7.15808 7.5863 7.4256 7.61523 7.69269C7.64305 7.94948 7.64258 8.26562 7.64258 8.62824V12.4857H6.54199V8.62824Z",fill:"currentColor"})}),f9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M13.588429 5.147807C13.588429 4.739638 13.587271 4.403003 13.582013 4.118684L1.703098 15.99968L0.85155 15.148178L0 14.294485L11.878915 2.413442C11.594721 2.408199 11.257569 2.409154 10.849776 2.409154H2.400594V0.000001H10.849776C11.644471 0.000001 12.338899 -0.001059 12.901622 0.059909C13.486363 0.123352 14.071136 0.265493 14.598303 0.648292C14.886598 0.857751 15.141981 1.110984 15.351433 1.399281C15.734578 1.926807 15.876362 2.512925 15.939743 3.098105C16.000775 3.660718 15.99968 4.353347 15.99968 5.147807V13.599133H13.588429V5.147807Z",fill:"currentColor"})}),d9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M14.9943 1.92389V3.32428H1.00598V1.92389H14.9943Z",fill:"currentColor"}),f.jsx("path",{d:"M14.9943 5.50784V6.90823H1.00598V5.50784H14.9943Z",fill:"currentColor"}),f.jsx("path",{d:"M14.9943 9.09177V10.4922H1.00598V9.09177H14.9943Z",fill:"currentColor"}),f.jsx("path",{d:"M8.93274 12.6757V14.0761H1.00598V12.6757H8.93274Z",fill:"currentColor"})]}),h9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M14.4782 4.84067L14.2138 10.1152C14.1102 12.1872 14.067 13.0115 13.3866 13.9607C13.1044 14.3546 12.7498 14.6912 12.3424 14.9535C11.8239 15.2872 11.2415 15.4316 10.5585 15.4998C9.88727 15.5668 9.04946 15.5656 7.99998 15.5656C6.95051 15.5656 6.1127 15.5668 5.44142 15.4998C4.75851 15.4316 4.17602 15.2872 3.65753 14.9535C3.25012 14.6912 2.89559 14.3546 2.61332 13.9607C1.93296 13.0115 1.88979 12.1872 1.78619 10.1152L1.52179 4.84067L2.89006 4.77277L3.15343 10.0463C3.26221 12.2218 3.32452 12.6015 3.72646 13.1624C3.90825 13.4161 4.13686 13.6334 4.39927 13.8023C4.66204 13.9714 5.00263 14.0792 5.57825 14.1367C6.16562 14.1953 6.92298 14.1963 7.99998 14.1963C9.07699 14.1963 9.83434 14.1953 10.4217 14.1367C10.9973 14.0792 11.3379 13.9714 11.6007 13.8023C11.8631 13.6334 12.0917 13.4161 12.2735 13.1624C12.6755 12.6015 12.7378 12.2218 12.8465 10.0463L13.1099 4.77277L14.4782 4.84067ZM5.43011 6.22849H6.7994V11.3909H5.43011V6.22849ZM9.20056 6.22849H10.5699V11.3909H9.20056V6.22849ZM8.53597 0.434431C9.17976 0.434431 9.6522 0.426926 10.0966 0.571258C10.2357 0.616451 10.3717 0.672554 10.502 0.738948C10.9182 0.951107 11.2464 1.29099 11.7015 1.74612L12.4978 2.54136H15.3742V3.91169H0.625732V2.54136H3.50218L4.29845 1.74612C4.75358 1.29099 5.08174 0.951107 5.49801 0.738948C5.62831 0.672554 5.76425 0.616451 5.90334 0.571258C6.34776 0.426926 6.82021 0.434431 7.46399 0.434431H8.53597ZM7.46399 1.80476C6.73208 1.80476 6.51641 1.81187 6.32617 1.87369C6.25545 1.89667 6.18668 1.92533 6.12041 1.95907C5.96398 2.03878 5.82348 2.16253 5.44142 2.54136H10.5585C10.1765 2.16253 10.036 2.03878 9.87955 1.95907C9.81329 1.92533 9.74452 1.89667 9.6738 1.87369C9.48356 1.81187 9.26789 1.80476 8.53597 1.80476H7.46399Z",fill:"currentColor"})}),K3=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M6.3002 3.32843L7.69986 3.32843L7.69986 7.79657H6.3002L6.3002 3.32843Z",fill:"currentColor"}),f.jsx("path",{d:"M6.3002 9.01935H7.69986V10.6711H6.3002V9.01935Z",fill:"currentColor"}),f.jsx("path",{d:"M12.6328 6.99976C12.6328 3.88874 10.111 1.36694 7 1.36694C3.88899 1.36695 1.3672 3.88875 1.36719 6.99976C1.36719 10.1108 3.88899 12.6326 7 12.6326C10.111 12.6326 12.6328 10.1108 12.6328 6.99976ZM13.8582 6.99976C13.8582 10.7873 10.7876 13.8579 7 13.8579C3.21244 13.8579 0.141846 10.7873 0.141846 6.99976C0.141857 3.2122 3.21245 0.141612 7 0.141602C10.7876 0.141602 13.8581 3.21219 13.8582 6.99976Z",fill:"currentColor"})]}),p9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M11.0307 5.46369C11.0305 3.78995 9.6734 2.43357 7.99961 2.43357C6.32601 2.43379 4.96972 3.79009 4.96949 5.46369C4.96949 7.13748 6.32587 8.49455 7.99961 8.49477C9.67354 8.49477 11.0307 7.13762 11.0307 5.46369ZM12.3163 5.46369C12.3163 7.84777 10.3837 9.78042 7.99961 9.78042C5.61572 9.7802 3.68288 7.84763 3.68288 5.46369C3.6831 3.07993 5.61586 1.14718 7.99961 1.14695C10.3836 1.14695 12.3161 3.0798 12.3163 5.46369Z",fill:"currentColor"}),f.jsx("path",{d:"M8.00002 10.3316C11.7343 10.3316 14.1864 11.8997 15.0387 14.4445L14.4292 14.6483L13.8197 14.8531C13.1955 12.9893 11.3673 11.6182 8.00002 11.6182C4.63277 11.6182 2.80455 12.9893 2.18031 14.8531L1.5708 14.6483L0.961304 14.4445C1.81368 11.8997 4.26579 10.3316 8.00002 10.3316Z",fill:"currentColor"})]}),m9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M8.3125 0.981587C8.66767 1.0545 8.97902 1.20558 9.2627 1.43374C9.48724 1.61438 9.73029 1.85933 9.97949 2.10854L14.707 6.83608L13.293 8.25014L9 3.95717V15.0431H7V3.95717L2.70703 8.25014L1.29297 6.83608L6.02051 2.10854C6.26971 1.85933 6.51277 1.61438 6.7373 1.43374C6.97662 1.24126 7.28445 1.04542 7.6875 0.981587C7.8973 0.94841 8.1031 0.956564 8.3125 0.981587Z",fill:"currentColor"})}),C9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M2 4.88C2 3.68009 2 3.08013 2.30557 2.65954C2.40426 2.52371 2.52371 2.40426 2.65954 2.30557C3.08013 2 3.68009 2 4.88 2H11.12C12.3199 2 12.9199 2 13.3405 2.30557C13.4763 2.40426 13.5957 2.52371 13.6944 2.65954C14 3.08013 14 3.68009 14 4.88V11.12C14 12.3199 14 12.9199 13.6944 13.3405C13.5957 13.4763 13.4763 13.5957 13.3405 13.6944C12.9199 14 12.3199 14 11.12 14H4.88C3.68009 14 3.08013 14 2.65954 13.6944C2.52371 13.5957 2.40426 13.4763 2.30557 13.3405C2 12.9199 2 12.3199 2 11.12V4.88Z",fill:"currentColor"})}),g9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M5.5498 9.75V5H6.9502V9.75C6.9502 10.3299 7.4201 10.7998 8 10.7998C8.5799 10.7998 9.0498 10.3299 9.0498 9.75V4.5C9.0498 2.9536 7.7964 1.7002 6.25 1.7002C4.7036 1.7002 3.4502 2.9536 3.4502 4.5V9.75C3.4502 12.2629 5.4871 14.2998 8 14.2998C10.5129 14.2998 12.5498 12.2629 12.5498 9.75V4H13.9502V9.75C13.9502 13.0361 11.2861 15.7002 8 15.7002C4.71391 15.7002 2.0498 13.0361 2.0498 9.75V4.5C2.04981 2.1804 3.9304 0.299806 6.25 0.299805C8.5696 0.299805 10.4502 2.1804 10.4502 4.5V9.75C10.4502 11.1031 9.3531 12.2002 8 12.2002C6.6469 12.2002 5.5498 11.1031 5.5498 9.75Z",fill:"currentColor"})}),v9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M2.871 13.1286C0.0387669 10.2962 0.0387669 5.70383 2.871 2.87141C5.70341 0.0390029 10.2957 0.0391154 13.1282 2.87141L12.1387 3.86094C9.85292 1.57538 6.1469 1.57596 3.86123 3.86163C1.57573 6.14732 1.57573 9.85269 3.86123 12.1384C6.1469 14.424 9.85292 14.4246 12.1387 12.1391L13.1282 13.1286C10.2957 15.9609 5.70341 15.961 2.871 13.1286Z",fill:"currentColor"})}),y9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M15.3695 11.411L15.1234 12.8866C14.8869 14.3042 13.6603 15.3436 12.223 15.3436H3.77673C2.33958 15.3434 1.1128 14.3042 0.876343 12.8866L0.630249 11.411L2.05408 11.1747L2.29919 12.6493C2.41973 13.3713 3.04475 13.9001 3.77673 13.9003H12.223C12.9551 13.9002 13.58 13.3713 13.7006 12.6493L13.9457 11.1747L15.3695 11.411ZM8.72205 8.994C8.77717 8.93934 8.83792 8.88106 8.90271 8.81627L12.4828 5.23424L13.5043 6.25572L9.92224 9.8358C9.6395 10.1185 9.38763 10.3732 9.15857 10.5575C8.91892 10.7503 8.63953 10.9224 8.2865 10.9784C8.09711 11.0083 7.90363 11.0083 7.71423 10.9784C7.36106 10.9224 7.0809 10.7503 6.84119 10.5575C6.61215 10.3732 6.36022 10.1185 6.07751 9.8358L2.49646 6.25572L3.51697 5.23424L7.09705 8.81627C7.16219 8.88142 7.22331 8.94006 7.27869 8.99498V1.3065H8.72205V8.994Z",fill:"currentColor"})}),w9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M14.1446 8C14.1446 4.6062 11.3938 1.85539 8 1.85539C4.6062 1.85539 1.85539 4.6062 1.85539 8C1.85539 11.3938 4.6062 14.1446 8 14.1446C11.3938 14.1446 14.1446 11.3938 14.1446 8ZM15.511 8C15.511 12.148 12.148 15.511 8 15.511C3.85202 15.511 0.489014 12.148 0.489014 8C0.489014 3.85202 3.85202 0.489014 8 0.489014C12.148 0.489014 15.511 3.85202 15.511 8Z",fill:"currentColor"}),f.jsx("path",{d:"M10.5617 8.42578C10.852 8.21614 10.852 7.78386 10.5617 7.57422L7.25708 5.18751C6.90974 4.93666 6.42436 5.18484 6.42436 5.61329V10.3867C6.42436 10.8152 6.90974 11.0633 7.25708 10.8125L10.5617 8.42578Z",fill:"currentColor"})]}),x9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M14.1448 8.00024C14.1448 4.60644 11.394 1.85563 8.00024 1.85563C4.60644 1.85563 1.85563 4.60644 1.85563 8.00024C1.85563 11.394 4.60644 14.1448 8.00024 14.1448C11.394 14.1448 14.1448 11.394 14.1448 8.00024ZM15.5112 8.00024C15.5112 12.1482 12.1482 15.5112 8.00024 15.5112C3.85226 15.5112 0.489258 12.1482 0.489258 8.00024C0.489258 3.85226 3.85226 0.489258 8.00024 0.489258C12.1482 0.489258 15.5112 3.85226 15.5112 8.00024Z",fill:"currentColor"}),f.jsx("path",{d:"M7.14244 5.14258V10.8569H5.71387V5.14258H7.14244Z",fill:"currentColor"}),f.jsx("path",{d:"M10.286 5.14258V10.8569H8.85742V5.14258H10.286Z",fill:"currentColor"})]}),_9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M2.58875 12.3407L6.59167 8.33777L7.66296 9.40808L3.66003 13.411H7.99988V14.8065H3.05457C2.02633 14.8065 1.19324 13.9734 1.19324 12.9452V7.99988H2.58875V12.3407Z",fill:"currentColor"}),f.jsx("path",{d:"M12.9452 1.19324C13.9734 1.19324 14.8065 2.02633 14.8065 3.05457V7.99988H13.411V3.66003L9.40808 7.66296L8.33777 6.59167L12.3407 2.58875H7.99988V1.19324H12.9452Z",fill:"currentColor"})]}),L9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.3368 1.53569L11.931 4.43172H14.8086V5.79673H11.7404L11.1962 9.67859H14.2839V11.0436H11.0056L10.4994 14.6529L9.14873 14.4643L9.62731 11.0436H5.75876L5.25252 14.6529L3.90186 14.4643L4.38043 11.0436H1.69141V9.67859H4.57104L5.11417 5.79673H2.21609V4.43172H5.30581L5.73724 1.34713L7.08995 1.53569L6.68414 4.43172H10.5527L10.9841 1.34713L12.3368 1.53569ZM5.94937 9.67859H9.81791L10.361 5.79673H6.49353L5.94937 9.67859Z",fill:"currentColor"})}),k9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("g",{clipPath:"url(#clip0_1840_45990)",children:[f.jsx("path",{d:"M3.03426 5.66661L1.70084 7.00003L3.0315 8.33069L2.14762 9.21457L-0.0669245 7.00003L2.15038 4.78273L3.03426 5.66661ZM7 14.067L4.77924 11.8462L5.66313 10.9623L7 12.2992L8.33342 10.9658L9.2173 11.8496L7 14.067ZM11.8489 9.21803L10.965 8.33414L12.2992 7.00003L10.9623 5.66316L11.8462 4.77927L14.0669 7.00003L11.8489 9.21803ZM8.33066 3.03153L7 1.70087L5.66589 3.03498L4.782 2.1511L7 -0.0668945L9.21454 2.14765L8.33066 3.03153Z",fill:"currentColor"}),f.jsx("rect",{x:"5.98535",y:"5.98535",width:"2.02942",height:"2.02942",fill:"currentColor"})]}),f.jsx("defs",{children:f.jsx("clipPath",{id:"clip0_1840_45990",children:f.jsx("rect",{width:"14",height:"14",fill:"currentColor"})})})]}),S9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",children:[f.jsx("path",{transform:"translate(0.6689 1.073)",d:"M11.4818 5.57813C11.4818 4.45301 11.4807 3.66237 11.4075 3.05908C11.3359 2.46953 11.2024 2.13852 10.9939 1.89441C10.9247 1.81341 10.8493 1.73801 10.7683 1.66882C10.5242 1.46033 10.1932 1.32686 9.60364 1.25525C9.00034 1.18198 8.20974 1.18091 7.0846 1.18091L5.57813 1.18091C4.45301 1.18091 3.66238 1.18198 3.05908 1.25525C2.46953 1.32686 2.13852 1.46033 1.89441 1.66882C1.81341 1.73801 1.73801 1.81341 1.66882 1.89441C1.46033 2.13852 1.32686 2.46953 1.25525 3.05908C1.18198 3.66238 1.18091 4.45301 1.18091 5.57813L1.18091 6.2771C1.18091 7.40218 1.18197 8.19288 1.25525 8.79614C1.32687 9.38553 1.46036 9.71674 1.66882 9.96082C1.73797 10.0417 1.81347 10.1173 1.89441 10.1864C2.13851 10.3948 2.46965 10.5275 3.05908 10.5991C3.66238 10.6724 4.45298 10.6735 5.57813 10.6735L7.0846 10.6735C8.20977 10.6735 9.00033 10.6724 9.60364 10.5991C10.1931 10.5275 10.5242 10.3948 10.7683 10.1864C10.8493 10.1173 10.9247 10.0417 10.9939 9.96082C11.2024 9.71674 11.3358 9.38553 11.4075 8.79614C11.4808 8.19288 11.4818 7.40218 11.4818 6.2771L11.4818 5.57813ZM12.6627 6.2771C12.6627 7.37222 12.6637 8.247 12.5798 8.93799C12.4942 9.64284 12.3133 10.2359 11.8928 10.7282C11.7834 10.8562 11.6637 10.9751 11.5356 11.0845C11.0434 11.5049 10.4511 11.6867 9.74634 11.7723C9.05525 11.8563 8.17999 11.8552 7.0846 11.8552L5.57813 11.8552C4.48273 11.8552 3.60747 11.8563 2.91638 11.7723C2.21157 11.6867 1.61933 11.5049 1.12708 11.0845C0.99901 10.9751 0.879281 10.8562 0.769898 10.7282C0.349454 10.2359 0.168506 9.64284 0.0828864 8.93799C-0.00101964 8.247 4.88512e-07 7.37222 6.47206e-07 6.2771L6.47206e-07 5.57813C6.47206e-07 4.48273 -0.00106163 3.60747 0.0828864 2.91638C0.168502 2.21168 0.349594 1.61928 0.769898 1.12708C0.879302 0.998981 0.998981 0.879302 1.12708 0.769898C1.61928 0.349594 2.21168 0.168502 2.91638 0.0828864C3.60747 -0.00106163 4.48273 6.47206e-07 5.57813 6.47206e-07L7.0846 6.47206e-07C8.17999 6.47206e-07 9.05525 -0.00106163 9.74634 0.0828864C10.451 0.168505 11.0434 0.349587 11.5356 0.769898C11.6637 0.879302 11.7834 0.998981 11.8928 1.12708C12.3131 1.61928 12.4942 2.21169 12.5798 2.91638C12.6638 3.60747 12.6627 4.48273 12.6627 5.57813L12.6627 6.2771Z",fill:"currentColor"}),f.jsx("path",{transform:"translate(0.6689 1.073)",d:"M6.02607 5.50955L6.44306 5.9274L3.84284 8.52762L3.425 8.11063L3.00715 7.69278L4.77253 5.9274L3.00715 4.16202L3.84284 3.32633L6.02607 5.50955Z",fill:"currentColor"}),f.jsx("path",{transform:"translate(0.6689 1.073)",d:"M9.23789 7.35397L9.23789 8.53488L6.96238 8.53488L6.96238 7.35397L9.23789 7.35397Z",fill:"currentColor"})]}),j9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",children:f.jsx("path",{transform:"translate(1.292 1.3)",d:"M10.3232 9.18164C11.2868 9.18164 12.0985 9.82833 12.3506 10.7109L13.415 10.7109L13.415 11.8711L12.3496 11.8711C12.0971 12.7532 11.2864 13.3994 10.3232 13.3994C9.36031 13.3992 8.55012 12.7531 8.29785 11.8711L0 11.8711L0 10.7109L8.29688 10.7109C8.54876 9.82845 9.35988 9.18186 10.3232 9.18164ZM10.3232 10.3418C9.7999 10.3421 9.37534 10.7667 9.375 11.29C9.375 11.8137 9.79969 12.239 10.3232 12.2393C10.847 12.2393 11.2725 11.8138 11.2725 11.29C11.2721 10.7666 10.8468 10.3418 10.3232 10.3418ZM12.4326 11.291C12.4326 11.3549 12.4284 11.418 12.4229 11.4805C12.4287 11.4181 12.4326 11.355 12.4326 11.291ZM8.21484 11.2832C8.21484 11.2856 8.21484 11.2886 8.21484 11.291L8.21484 11.29C8.21484 11.2878 8.21484 11.2855 8.21484 11.2832ZM3.08301 4.59082C4.04605 4.59095 4.85696 5.23717 5.10938 6.11914L13.415 6.11914L13.415 7.2793L5.11035 7.2793C4.85833 8.16202 4.04648 8.80846 3.08301 8.80859C2.11972 8.80843 1.30963 8.16179 1.05762 7.2793L0 7.2793L0 6.11914L1.05762 6.11914C1.30994 5.23728 2.12006 4.59098 3.08301 4.59082ZM3.08301 5.75098C2.55962 5.75117 2.13512 6.17587 2.13477 6.69922C2.13477 7.22287 2.5594 7.64824 3.08301 7.64844C3.60665 7.64828 4.03223 7.2229 4.03223 6.69922C4.03187 6.17585 3.60643 5.75113 3.08301 5.75098ZM5.19238 6.69922C5.19238 6.763 5.18816 6.82633 5.18262 6.88867C5.18846 6.82629 5.19238 6.76313 5.19238 6.69922C5.19236 6.63495 5.18853 6.57152 5.18262 6.50879C5.18826 6.57154 5.19236 6.635 5.19238 6.69922ZM0.982422 6.52344C0.977382 6.58136 0.97463 6.63999 0.974609 6.69922C0.974609 6.75775 0.977496 6.81579 0.982422 6.87305C0.977758 6.81579 0.974609 6.75767 0.974609 6.69922C0.974628 6.64 0.977618 6.58142 0.982422 6.52344ZM10.3232 0C11.2869 0 12.0986 0.646596 12.3506 1.5293L13.415 1.5293L13.415 2.68945L12.3496 2.68945C12.363 2.64266 12.3754 2.59488 12.3857 2.54688C12.1838 3.50118 11.3376 4.21777 10.3232 4.21777C9.36037 4.21756 8.55018 3.57139 8.29785 2.68945L0 2.68945L0 1.5293L8.29688 1.5293C8.5487 0.646717 9.35981 0.00021854 10.3232 0ZM10.3232 1.16016C9.79984 1.16042 9.37524 1.58499 9.375 2.1084C9.375 2.63201 9.79969 3.05735 10.3232 3.05762C10.847 3.05762 11.2725 2.63217 11.2725 2.1084C11.2722 1.58483 10.8469 1.16016 10.3232 1.16016ZM12.4229 2.29883C12.4287 2.23641 12.4326 2.17331 12.4326 2.10938C12.4326 2.17327 12.4284 2.23638 12.4229 2.29883ZM8.21484 2.10938L8.21484 2.1084L8.21484 2.10938ZM8.22266 1.93359C8.21785 1.98897 8.21506 2.04499 8.21484 2.10156C8.21503 2.04501 8.2181 1.98902 8.22266 1.93359ZM8.22266 11.1162C8.2179 11.1713 8.21507 11.227 8.21484 11.2832C8.21504 11.227 8.21814 11.1713 8.22266 11.1162Z",fill:"currentColor"})}),E9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",children:[f.jsx("path",{transform:"translate(9.52 2.52)",d:"M3.55246 0L3.55246 2.44252L6 2.44252L6 3.55748L3.55246 3.55748L3.55246 6L2.43834 6L2.43834 3.55748L0 3.55748L0 2.44252L2.43834 2.44252L2.43834 0L3.55246 0Z",fill:"currentColor"}),f.jsx("path",{transform:"translate(0.3496 2.35)",d:"M4.76367 0C5.36861 1.80598e-05 5.93113 0.310294 6.25488 0.821289L6.78027 1.64941C6.79685 1.67558 6.81791 1.69775 6.83887 1.71973C6.72186 2.15521 6.65702 2.61192 6.65137 3.08301C6.25601 2.96045 5.90909 2.70478 5.68164 2.3457L5.15723 1.5166C5.07183 1.38189 4.92318 1.3008 4.76367 1.30078L2.32422 1.30078C1.7589 1.30078 1.30078 1.7589 1.30078 2.32422L1.30078 10.1338C1.30078 10.6991 1.7589 11.1572 2.32422 11.1572L11.9766 11.1572C12.5419 11.1572 13 10.6991 13 10.1338L13 8.58398C13.4545 8.5135 13.8903 8.38748 14.3008 8.21289L14.3008 10.1338C14.3008 11.4171 13.2598 12.458 11.9766 12.458L2.32422 12.458C1.04093 12.458 0 11.4171 0 10.1338L0 2.32422C0 1.04093 1.04093 0 2.32422 0L4.76367 0Z",fill:"currentColor"})]}),b9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",children:f.jsx("path",{d:"M5.19629 1.57104C5.81144 1.5711 6.38623 1.8786 6.72754 2.39038L7.19922 3.09839C7.28454 3.22635 7.42824 3.30344 7.58203 3.30347H12.1699C13.5039 3.30348 14.5859 4.38548 14.5859 5.71948V6.62671C15.2694 7.02689 15.6605 7.85012 15.4385 8.68726L14.3848 12.658C14.1037 13.7164 13.1449 14.4527 12.0498 14.4529H2.91699C1.51651 14.4529 0.451662 13.2814 0.501954 11.9519V3.98706C0.501954 2.65305 1.58396 1.57104 2.91797 1.57104H5.19629ZM3.7793 7.75562C3.30994 7.75562 2.89883 8.07153 2.77832 8.52515L1.91602 11.7722C1.74167 12.4291 2.23734 13.073 2.91699 13.073H12.0498C12.5191 13.0728 12.9304 12.757 13.0508 12.3035L14.1045 8.33374C14.1819 8.04202 13.9619 7.756 13.6602 7.75562H3.7793ZM2.91797 2.9519C2.34625 2.9519 1.88281 3.41534 1.88281 3.98706V7.2937C2.33068 6.7269 3.02249 6.37476 3.7793 6.37476H13.2051V5.71948C13.2051 5.14777 12.7416 4.68434 12.1699 4.68433H7.58203C6.96675 4.6843 6.39209 4.37595 6.05078 3.86401L5.5791 3.15601C5.49379 3.02821 5.34995 2.95196 5.19629 2.9519H2.91797Z",fill:"currentColor"})}),M9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",children:[f.jsx("path",{d:"M5.19629 1.57104C5.81144 1.5711 6.38623 1.8786 6.72754 2.39038L7.19922 3.09839C7.28454 3.22635 7.42824 3.30344 7.58203 3.30347H12.1699C13.5039 3.30348 14.5859 4.38548 14.5859 5.71948V6.62671C15.2694 7.02689 15.6605 7.85012 15.4385 8.68726L14.3848 12.658C14.1037 13.7164 13.1449 14.4527 12.0498 14.4529H2.91699C1.51651 14.4529 0.451662 13.2814 0.501954 11.9519V3.98706C0.501954 2.65305 1.58396 1.57104 2.91797 1.57104H5.19629ZM3.7793 7.75562C3.30994 7.75562 2.89883 8.07153 2.77832 8.52515L1.91602 11.7722C1.74167 12.4291 2.23734 13.073 2.91699 13.073H12.0498C12.5191 13.0728 12.9304 12.757 13.0508 12.3035L14.1045 8.33374C14.1819 8.04202 13.9619 7.756 13.6602 7.75562H3.7793ZM2.91797 2.9519C2.34625 2.9519 1.88281 3.41534 1.88281 3.98706V7.2937C2.33068 6.7269 3.02249 6.37476 3.7793 6.37476H13.2051V5.71948C13.2051 5.14777 12.7416 4.68434 12.1699 4.68433H7.58203C6.96675 4.6843 6.39209 4.37595 6.05078 3.86401L5.5791 3.15601C5.49379 3.02821 5.34995 2.95196 5.19629 2.9519H2.91797Z",fill:"currentColor"}),f.jsx("path",{opacity:"0.2",d:"M13.6602 7.75525C13.9618 7.7556 14.1815 8.04179 14.1045 8.33337L13.0508 12.3031C12.9304 12.7567 12.5191 13.0725 12.0498 13.0726H2.91701C2.23744 13.0725 1.7417 12.4287 1.91603 11.7719L2.77834 8.52478C2.89898 8.07146 3.31018 7.75532 3.77931 7.75525H13.6602ZM5.1963 2.95154C5.34985 2.95159 5.49377 3.02803 5.57912 3.15564L6.0508 3.86365C6.39205 4.37553 6.96685 4.68385 7.58205 4.68396H12.1699C12.7416 4.68396 13.2049 5.14754 13.2051 5.71912V6.37439H3.77931C3.02267 6.37444 2.33067 6.72671 1.88283 7.29333V3.98669C1.88299 3.4152 2.34649 2.95168 2.91798 2.95154H5.1963Z",fill:"currentColor"})]}),O9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",children:f.jsx("path",{transform:"translate(1.5 2.429)",d:"M5.05582 0.518756L4.50669 0.86654L5.05582 0.518756ZM13 9.4837L13.65 9.4837L13.65 3.53962L13 3.53962L12.35 3.53962L12.35 9.4837L13 9.4837ZM11.3264 1.86603L11.3264 1.21603L6.52313 1.21603L6.52313 1.86603L6.52313 2.51603L11.3264 2.51603L11.3264 1.86603ZM5.58054 1.34727L6.12968 0.999489L5.60495 0.170972L5.05582 0.518756L4.50669 0.86654L5.03141 1.69506L5.58054 1.34727ZM4.11323 1.23058e-13L4.11323 -0.65L1.67359 -0.65L1.67359 5.00699e-14L1.67359 0.65L4.11323 0.65L4.11323 1.23058e-13ZM0 1.67359L-0.65 1.67359L-0.65 9.4837L0 9.4837L0.65 9.4837L0.65 1.67359L0 1.67359ZM11.3264 11.1573L11.3264 10.5073L1.67359 10.5073L1.67359 11.1573L1.67359 11.8073L11.3264 11.8073L11.3264 11.1573ZM0 9.4837L-0.65 9.4837C-0.65 10.767 0.390308 11.8073 1.67359 11.8073L1.67359 11.1573L1.67359 10.5073C1.10828 10.5073 0.65 10.049 0.65 9.4837L0 9.4837ZM1.67359 5.00699e-14L1.67359 -0.65C0.390307 -0.65 -0.65 0.390309 -0.65 1.67359L0 1.67359L0.65 1.67359C0.65 1.10828 1.10828 0.65 1.67359 0.65L1.67359 5.00699e-14ZM5.05582 0.518756L5.60495 0.170972C5.28121 -0.340193 4.71829 -0.65 4.11323 -0.65L4.11323 1.23058e-13L4.11323 0.65C4.27282 0.65 4.4213 0.731715 4.50669 0.86654L5.05582 0.518756ZM6.52313 1.86603L6.52313 1.21603C6.36354 1.21603 6.21507 1.13431 6.12968 0.999489L5.58054 1.34727L5.03141 1.69506C5.35515 2.20622 5.91808 2.51603 6.52313 2.51603L6.52313 1.86603ZM13 3.53962L13.65 3.53962C13.65 2.25634 12.6097 1.21603 11.3264 1.21603L11.3264 1.86603L11.3264 2.51603C11.8917 2.51603 12.35 2.97431 12.35 3.53962L13 3.53962ZM13 9.4837L12.35 9.4837C12.35 10.049 11.8917 10.5073 11.3264 10.5073L11.3264 11.1573L11.3264 11.8073C12.6097 11.8073 13.65 10.767 13.65 9.4837L13 9.4837Z",fill:"currentColor"})}),N9=({size:n=10,className:r})=>f.jsx("svg",{width:n*8/10,height:n,className:r,viewBox:"-0.5 0 8.5 10.5",fill:"none",children:f.jsx("path",{d:"M0 0L-0.5 0L-0.5 7L0 7L0.5 7L0.5 0L0 0ZM3 10L3 10.5L8 10.5L8 10L8 9.5L3 9.5L3 10ZM0 7L-0.5 7C-0.5 8.933 1.067 10.5 3 10.5L3 10L3 9.5C1.61929 9.5 0.5 8.38071 0.5 7L0 7Z",fill:"currentColor"})}),R9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M11.3496 8C11.3496 6.14985 9.85015 4.65039 8 4.65039C6.14985 4.65039 4.65039 6.14985 4.65039 8C4.65039 9.85015 6.14985 11.3496 8 11.3496C9.85015 11.3496 11.3496 9.85015 11.3496 8ZM12.6504 8C12.6504 10.5681 10.5681 12.6504 8 12.6504C5.43188 12.6504 3.34961 10.5681 3.34961 8C3.34961 5.43188 5.43188 3.34961 8 3.34961C10.5681 3.34961 12.6504 5.43188 12.6504 8Z",fill:"currentColor"}),f.jsx("path",{d:"M8.65039 0.5V2.5H7.34961V0.5H8.65039Z",fill:"currentColor"}),f.jsx("path",{d:"M8.65039 13.5V15.5H7.34961V13.5H8.65039Z",fill:"currentColor"}),f.jsx("path",{d:"M3.15808 2.24035L4.57229 3.65456L3.6525 4.57435L2.23829 3.16014L3.15808 2.24035Z",fill:"currentColor"}),f.jsx("path",{d:"M12.3505 11.4327L13.7647 12.8469L12.8449 13.7667L11.4307 12.3525L12.3505 11.4327Z",fill:"currentColor"}),f.jsx("path",{d:"M2.24537 12.8469L3.65958 11.4327L4.57937 12.3525L3.16516 13.7667L2.24537 12.8469Z",fill:"currentColor"}),f.jsx("path",{d:"M11.4377 3.65455L12.852 2.24033L13.7718 3.16012L12.3575 4.57434L11.4377 3.65455Z",fill:"currentColor"}),f.jsx("path",{d:"M0.5 7.35461H2.5V8.6554H0.5L0.5 7.35461Z",fill:"currentColor"}),f.jsx("path",{d:"M13.5 7.35461H15.5V8.6554H13.5V7.35461Z",fill:"currentColor"})]}),P9=({size:n=16,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M13.2764 9.52324C12.5607 9.97754 11.7177 10.242 10.7812 10.242C8.11386 10.2419 5.95042 8.07997 5.9502 5.41289C5.9502 4.48128 6.21453 3.61071 6.67188 2.87285C4.30332 3.4658 2.54992 5.60845 2.5498 8.16093C2.5498 11.1712 4.99103 13.6102 8 13.6102C10.5383 13.6102 12.6709 11.8724 13.2764 9.52324ZM7.05078 5.41289C7.051 7.47224 8.72116 9.1423 10.7812 9.14238C11.9248 9.14238 12.887 8.63397 13.5781 7.8084C13.7266 7.63106 13.9701 7.56547 14.1875 7.64433C14.4049 7.72329 14.5497 7.9297 14.5498 8.16093C14.5498 11.7766 11.6161 14.7098 8 14.7098C4.38402 14.7098 1.4502 11.7792 1.4502 8.16093C1.45033 4.54322 4.3812 1.61015 8 1.61015C8.23027 1.61015 8.43585 1.75352 8.51562 1.96953C8.59536 2.18554 8.53241 2.42829 8.35742 2.57793C7.55573 3.26311 7.05078 4.27876 7.05078 5.41289Z",fill:"currentColor"})}),T9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M12.1665 13.5811V14.7803H3.66651V13.5811H12.1665Z",fill:"currentColor"}),f.jsx("path",{d:"M13.4453 7.02379C13.4453 6.04702 13.4452 5.3616 13.3887 4.83434C13.3333 4.31828 13.2302 4.02378 13.0723 3.80309C12.9446 3.62475 12.7877 3.46883 12.6094 3.34117C12.3887 3.18328 12.0942 3.08007 11.5781 3.02477C11.0508 2.96829 10.3655 2.96715 9.38867 2.96715H6.61035C5.63359 2.96715 4.94816 2.96827 4.4209 3.02477C3.90486 3.0801 3.61034 3.18321 3.38965 3.34117C3.21143 3.46878 3.05534 3.62487 2.92774 3.80309C2.76977 4.02377 2.66667 4.3183 2.61133 4.83434C2.55483 5.3616 2.55371 6.04702 2.55371 7.02379C2.55371 8.0006 2.55485 8.68596 2.61133 9.21324C2.66663 9.72936 2.76983 10.0238 2.92774 10.2445C3.0554 10.4228 3.21131 10.5797 3.38965 10.7074C3.61034 10.8654 3.90484 10.9685 4.4209 11.0238C4.94816 11.0803 5.63359 11.0804 6.61035 11.0804H9.38867C10.3654 11.0804 11.0508 11.0803 11.5781 11.0238C12.0941 10.9685 12.3887 10.8652 12.6094 10.7074C12.7877 10.5797 12.9446 10.4229 13.0723 10.2445C13.2301 10.0238 13.3334 9.72927 13.3887 9.21324C13.4452 8.68596 13.4453 8.00058 13.4453 7.02379ZM14.6455 7.02379C14.6455 7.97428 14.646 8.73509 14.5811 9.34117C14.5149 9.95828 14.3756 10.4858 14.0479 10.9437C13.8436 11.229 13.5938 11.4788 13.3086 11.683C12.8507 12.0108 12.3232 12.15 11.7061 12.2162C11.1 12.2811 10.3391 12.2806 9.38867 12.2806H6.61035C5.66018 12.2806 4.89991 12.2811 4.29395 12.2162C3.67684 12.15 3.14935 12.0108 2.69141 11.683C2.40613 11.4788 2.15639 11.229 1.95215 10.9437C1.62436 10.4858 1.4841 9.95828 1.41797 9.34117C1.35305 8.73511 1.35449 7.97424 1.35449 7.02379C1.35449 6.07366 1.35308 5.31333 1.41797 4.70738C1.4841 4.09028 1.62436 3.56279 1.95215 3.10485C2.15638 2.81956 2.40613 2.56982 2.69141 2.36559C3.14935 2.03779 3.67684 1.89753 4.29395 1.83141C4.8999 1.76652 5.66022 1.76793 6.61035 1.76793H9.38867C10.3391 1.76793 11.1 1.76649 11.7061 1.83141C12.3232 1.89753 12.8507 2.03779 13.3086 2.36559C13.5939 2.56982 13.8436 2.81957 14.0479 3.10485C14.3756 3.56279 14.5149 4.09028 14.5811 4.70738C14.646 5.31335 14.6455 6.07362 14.6455 7.02379Z",fill:"currentColor"})]}),I9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0997 8.54554C12.2905 8.54989 12.3541 8.58056 12.4535 8.74614L12.8849 9.46387C12.9851 9.63071 13.0464 9.66013 13.2388 9.66447H14.1138C14.3417 9.66448 14.3512 9.66937 14.4686 9.86507L14.892 10.5717C14.9942 10.7422 14.9948 10.8247 14.892 10.9961L14.4756 11.6906C14.3741 11.8677 14.3694 11.9379 14.4756 12.115L14.892 12.8096C14.9942 12.9801 14.9947 13.0625 14.892 13.234L14.4686 13.9406C14.3643 14.1028 14.3063 14.1354 14.1138 14.1412H13.2388C13.0465 14.1456 12.985 14.1752 12.8849 14.3418L12.4535 15.0595C12.353 15.2195 12.2895 15.2558 12.0997 15.2601H11.2237C10.9962 15.2601 10.9871 15.2548 10.8699 15.0595L10.4384 14.3418C10.3383 14.175 10.2767 14.1456 10.0846 14.1412H9.2096C9.01854 14.1355 8.95761 14.1006 8.85477 13.9406L8.43139 13.234C8.32562 13.0576 8.33148 12.9862 8.43139 12.8096L8.84771 12.115C8.95165 11.9416 8.94659 11.863 8.84771 11.6906L8.43139 10.9961C8.32767 10.8232 8.33411 10.7437 8.43139 10.5717L8.85477 9.86507C8.95447 9.69891 9.01875 9.67017 9.2096 9.66447H10.0846C10.2741 9.66441 10.3414 9.62547 10.4384 9.46387L10.8699 8.74614C10.987 8.55106 10.9963 8.54554 11.2237 8.54554H12.0997ZM11.6612 10.232C11.3326 10.7798 10.8155 11.0948 10.1743 11.106C10.4443 11.61 10.4425 12.1976 10.1743 12.6987C10.803 12.7096 11.3391 13.0359 11.6612 13.5727C11.9855 13.0323 12.5131 12.7098 13.148 12.6987C12.879 12.196 12.8789 11.6086 13.148 11.106C12.5076 11.0948 11.9894 10.7794 11.6612 10.232Z",fill:"currentColor"}),f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.51205 0.790627C9.19055 0.790649 10.7401 1.0691 11.892 1.54364C12.4664 1.78029 12.9719 2.07885 13.3436 2.4408C13.7171 2.80467 13.9916 3.27253 13.9918 3.82384V7.90442C13.6067 7.69532 13.1907 7.53597 12.7529 7.43366V5.66454C12.4928 5.82898 12.2028 5.97601 11.892 6.10405C10.74 6.57865 9.19071 6.85706 7.51205 6.85706C5.8337 6.85703 4.285 6.57852 3.13309 6.10405C2.82215 5.97593 2.53164 5.8291 2.27121 5.66454V7.4135C2.27134 7.75678 2.6066 8.27106 3.62502 8.73405C4.58641 9.17097 5.95762 9.45591 7.50499 9.45681C7.24582 9.83133 7.03684 10.2434 6.88706 10.6826C5.44388 10.6162 4.12516 10.3216 3.11192 9.86104C2.81708 9.72698 2.53185 9.56866 2.27121 9.38928V11.2542C2.27158 11.5974 2.60697 12.1109 3.62502 12.5737C4.41933 12.9347 5.4937 13.1898 6.71569 13.2693C6.80349 13.7128 6.9513 14.1345 7.14814 14.5273C5.60324 14.4862 4.18593 14.1889 3.11192 13.7007C2.01039 13.1998 1.03366 12.3814 1.03333 11.2542V3.82384C1.03352 3.27273 1.30721 2.80461 1.68049 2.4408C2.05211 2.07893 2.55887 1.78026 3.13309 1.54364C4.28492 1.06926 5.83393 0.790683 7.51205 0.790627ZM7.51205 2.02851C5.95492 2.02857 4.57354 2.29079 3.60486 2.68979C3.11958 2.88977 2.76667 3.11253 2.5454 3.32788C2.32671 3.54101 2.2714 3.7089 2.27121 3.82384C2.27121 3.93882 2.32624 4.10625 2.5454 4.3198C2.76667 4.53527 3.11927 4.75781 3.60486 4.9579C4.5736 5.35699 5.95467 5.61914 7.51205 5.61918C9.06942 5.61918 10.4505 5.35695 11.4192 4.9579C11.9051 4.75773 12.2584 4.53536 12.4797 4.3198C12.6988 4.10627 12.7529 3.93882 12.7529 3.82384C12.7527 3.70889 12.6984 3.54104 12.4797 3.32788C12.2584 3.11239 11.9049 2.88989 11.4192 2.68979C10.4505 2.29079 9.06925 2.02853 7.51205 2.02851Z",fill:"currentColor"})]}),$9=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M7.24707 1.01771C7.52897 1.07653 7.77619 1.19694 8.00391 1.38001C8.19202 1.53136 8.39884 1.73784 8.61914 1.95814L12.6396 5.9806L11.6299 6.99134L7.71484 3.0763V13.0001H6.28516V3.0763L2.36914 6.99134L1.35938 5.9806L5.38086 1.95814C5.60116 1.73784 5.80798 1.53136 5.99609 1.38001C6.19476 1.22027 6.4385 1.06739 6.75195 1.01771C6.91296 0.992304 7.07471 0.997504 7.24707 1.01771Z",fill:"currentColor"})}),H9=({size:n=14,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:f.jsx("path",{d:"M7.00049 0.199829C3.24488 0.199829 0.199952 3.24408 0.199707 6.99963C0.199707 8.0414 0.434087 9.03061 0.854004 9.91467L1.11279 10.4576L2.19775 9.94202L1.94092 9.39905L1.81787 9.12268C1.5498 8.46885 1.40186 7.75171 1.40186 6.99963C1.4021 3.90808 3.90888 1.40198 7.00049 1.40198C10.0919 1.40219 12.5979 3.90821 12.5981 6.99963C12.5981 10.0913 10.0921 12.5981 7.00049 12.5983C6.36734 12.5983 5.90348 12.5535 5.49268 12.4401C5.08803 12.3283 4.7041 12.1414 4.24463 11.8209C3.57111 11.3511 2.60588 11.1855 1.81006 11.6881L1.79736 11.6959L1.78467 11.7047L1.25537 12.0778L1.65381 13.2672L2.46045 12.6989C2.75029 12.5214 3.18004 12.5442 3.55615 12.8063C4.10063 13.1861 4.60863 13.4423 5.17334 13.5983C5.73194 13.7525 6.31665 13.8004 7.00049 13.8004C10.7561 13.8002 13.8003 10.7553 13.8003 6.99963C13.8 3.24421 10.7559 0.200041 7.00049 0.199829ZM3.81201 7.47327V8.67542H7.11572V7.47327H3.81201ZM3.81201 6.34924H10.2173V5.14709H3.81201V6.34924Z",fill:"currentColor"})}),V9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M13.3277 9.69629V10.976H7.28086V9.69629H13.3277Z",fill:"currentColor"}),f.jsx("path",{d:"M13.3277 2.97256V4.25225H7.28086V2.97256H13.3277Z",fill:"currentColor"}),f.jsx("path",{d:"M4.64512 10.336C4.64505 9.62755 4.07081 9.05322 3.3623 9.05322C2.65386 9.05329 2.07956 9.62759 2.07949 10.336C2.07949 11.0445 2.65382 11.6188 3.3623 11.6188C4.07085 11.6188 4.64512 11.0446 4.64512 10.336ZM5.92559 10.336C5.92559 11.7515 4.77777 12.8993 3.3623 12.8993C1.94689 12.8993 0.799805 11.7515 0.799805 10.336C0.799871 8.92066 1.94693 7.7736 3.3623 7.77354C4.77773 7.77354 5.92552 8.92062 5.92559 10.336Z",fill:"currentColor"}),f.jsx("path",{d:"M4.64531 3.6123C4.6453 2.90382 4.07098 2.32949 3.3625 2.32949C2.65403 2.32951 2.0797 2.90383 2.07969 3.6123C2.07969 4.32079 2.65402 4.8951 3.3625 4.89512C4.07099 4.89512 4.64531 4.3208 4.64531 3.6123ZM5.925 3.6123C5.925 5.02772 4.77792 6.1748 3.3625 6.1748C1.9471 6.17479 0.8 5.02771 0.8 3.6123C0.800013 2.19691 1.9471 1.04982 3.3625 1.0498C4.77791 1.0498 5.92499 2.1969 5.925 3.6123Z",fill:"currentColor"})]}),A9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M10.8239 3.54733V4.78443H4.63437V3.54733H10.8239Z",fill:"currentColor"}),f.jsx("path",{d:"M10.8239 6.12629V7.36338H4.63437V6.12629H10.8239Z",fill:"currentColor"}),f.jsx("path",{d:"M9.073 8.70524V9.94234H4.63437V8.70524H9.073Z",fill:"currentColor"}),f.jsx("path",{d:"M9.13321 0.573526C10.0076 0.573525 10.7179 0.572522 11.285 0.63397C11.8645 0.696791 12.3743 0.831648 12.8193 1.1548C13.0776 1.34246 13.3056 1.57047 13.4933 1.82875C13.8164 2.2737 13.9513 2.7836 14.0141 3.36303C14.0755 3.93015 14.0745 4.64049 14.0745 5.51485V6.1757L12.7327 7.5629V5.51485C12.7327 4.61092 12.732 3.9862 12.6803 3.5081C12.6298 3.0427 12.5379 2.79497 12.4083 2.61654C12.3033 2.47211 12.176 2.34472 12.0315 2.23977C11.8531 2.11016 11.6054 2.01823 11.14 1.96777C10.6618 1.91601 10.0372 1.91539 9.13321 1.91539H6.32658C5.42262 1.91539 4.79796 1.91604 4.31983 1.96777C3.85451 2.01819 3.60672 2.11029 3.42827 2.23977C3.28392 2.34465 3.15643 2.47223 3.0515 2.61654C2.9219 2.79496 2.82997 3.04274 2.7795 3.5081C2.72774 3.9862 2.72712 4.61092 2.72712 5.51485V10.023C2.72712 10.9273 2.72773 11.5525 2.7795 12.0307C2.82992 12.4959 2.92205 12.7429 3.0515 12.9213C3.15645 13.0657 3.28384 13.1931 3.42827 13.2981C3.60676 13.4277 3.85408 13.5206 4.31983 13.5711C4.79797 13.6228 5.42259 13.6234 6.32658 13.6234H6.87057L5.57707 14.9593C5.03527 14.9556 4.57031 14.9467 4.17476 14.9039C3.59508 14.841 3.08558 14.7063 2.64048 14.383C2.38215 14.1953 2.15422 13.9684 1.96653 13.7101C1.64319 13.2649 1.50851 12.7546 1.4457 12.1748C1.38432 11.6076 1.38525 10.8974 1.38525 10.023V5.51485C1.38525 4.64049 1.38426 3.93015 1.4457 3.36303C1.50853 2.78363 1.64341 2.27368 1.96653 1.82875C2.15417 1.57059 2.38228 1.34239 2.64048 1.1548C3.08544 0.831805 3.59533 0.696762 4.17476 0.63397C4.74193 0.572552 5.45218 0.573525 6.32658 0.573526H9.13321Z",fill:"currentColor"}),f.jsx("path",{d:"M14.2193 14.9553H10.0124L11.3744 13.6134H14.2193V14.9553Z",fill:"currentColor"}),f.jsx("path",{d:"M8.24493 13.3711L7.49015 14.8806C7.40148 15.058 7.58961 15.2461 7.76695 15.1574L9.27651 14.4027L14.6147 9.09934L13.5832 8.06775L8.24493 13.3711Z",fill:"currentColor"})]}),D9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M8 0C8.31451 0 8.62464 0.019379 8.92969 0.0546875C8.48228 0.403371 8.0952 0.825758 7.78809 1.30469C4.18586 1.41664 1.2998 4.37061 1.2998 8C1.2998 11.7003 4.29969 14.7002 8 14.7002C11.6297 14.7002 14.5829 11.8136 14.6943 8.21094C15.1734 7.90377 15.5956 7.51688 15.9443 7.06934C15.9797 7.37473 16 7.68512 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM7.0166 3.6084C7.00658 3.73765 7 3.86817 7 4C7 4.31845 7.03098 4.62973 7.08789 4.93164C5.76489 5.32438 4.7998 6.54958 4.7998 8C4.7998 9.76731 6.23269 11.2002 8 11.2002C9.45065 11.2002 10.6749 10.2345 11.0674 8.91113C11.3696 8.96818 11.6812 9 12 9C12.1315 9 12.2617 8.99239 12.3906 8.98242C11.9423 10.995 10.1477 12.5 8 12.5C5.51472 12.5 3.5 10.4853 3.5 8C3.5 5.85255 5.00435 4.05702 7.0166 3.6084Z",fill:"currentColor"}),f.jsx("path",{d:"M7.5 8.62109L9.12109 7",stroke:"currentColor",strokeWidth:"1.3"}),f.jsx("path",{d:"M9.08245 3.35798L11.8651 0.575334C11.895 0.545384 11.9463 0.56391 11.9502 0.606086L12.2362 3.69859C12.2384 3.72259 12.2574 3.74159 12.2814 3.74378L15.3697 4.02583C15.4119 4.02968 15.4305 4.08101 15.4005 4.11098L12.618 6.89351C12.6086 6.90289 12.5959 6.90816 12.5826 6.90816L9.11781 6.90815C9.09019 6.90816 9.06781 6.88577 9.06781 6.85816L9.06781 3.39333C9.06781 3.38007 9.07308 3.36735 9.08245 3.35798Z",stroke:"currentColor",strokeWidth:"1.3"})]}),F9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M6.1 3.1Q6.6 7.8 11.3 8.3Q6.6 8.8 6.1 13.5Q5.6 8.8 0.9 8.3Q5.6 7.8 6.1 3.1Z",fill:"currentColor"}),f.jsx("path",{d:"M11.9 1Q12.2 3.7 14.9 4Q12.2 4.3 11.9 7Q11.6 4.3 8.9 4Q11.6 3.7 11.9 1Z",fill:"currentColor"}),f.jsx("path",{d:"M12.5 9.4Q12.7 11.4 14.7 11.6Q12.7 11.8 12.5 13.8Q12.3 11.8 10.3 11.6Q12.3 11.4 12.5 9.4Z",fill:"currentColor"})]}),B9=({size:n=12,className:r})=>f.jsx("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,children:f.jsx("path",{d:"M16 8L10.8571 12V10.552L14.1383 8L10.8571 5.448V4L16 8ZM5.14286 10.552L1.86171 8L5.14286 5.448V4L0 8L5.14286 12V10.552ZM9.02514 4L5.59657 12H6.84057L10.2691 4H9.02514Z",fill:"currentColor"})}),z9=({size:n=16,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M12.5113 15.4067C12.4395 15.6249 12.1308 15.6249 12.059 15.4067L11.643 14.1416C11.454 13.567 11.0033 13.1164 10.4288 12.9274L9.16369 12.5113C8.94544 12.4395 8.94544 12.1308 9.16369 12.059L10.4288 11.643C11.0033 11.454 11.454 11.0033 11.643 10.4288L12.059 9.16369C12.1308 8.94544 12.4395 8.94544 12.5113 9.16369L12.9274 10.4288C13.1164 11.0033 13.567 11.454 14.1416 11.643L15.4067 12.059C15.6249 12.1308 15.6249 12.4395 15.4067 12.5113L14.1416 12.9274C13.567 13.1164 13.1164 13.567 12.9274 14.1416L12.5113 15.4067Z",fill:"currentColor"}),f.jsx("path",{d:"M9.02246 0.546878C9.9822 0.546878 10.7564 0.545403 11.374 0.612307C12.0042 0.680586 12.5515 0.826244 13.0273 1.17188C13.3052 1.37376 13.5501 1.61868 13.752 1.89649C14.0975 2.37225 14.2432 2.91984 14.3115 3.54981C14.3784 4.16727 14.377 4.94206 14.377 5.90137V8.51367C13.9611 8.29533 13.5071 8.13985 13.0273 8.06055V5.90137C13.0273 4.9121 13.0259 4.22322 12.9688 3.69532C12.9129 3.18044 12.8098 2.89782 12.6592 2.69043C12.5406 2.52724 12.3966 2.38326 12.2334 2.26465C12.026 2.11404 11.7437 2.0109 11.2285 1.95508C10.7005 1.89789 10.0122 1.89649 9.02246 1.89649H6.55371C5.56395 1.89649 4.87569 1.89787 4.34766 1.95508C3.83242 2.01092 3.55022 2.11398 3.34278 2.26465C3.17953 2.38329 3.03564 2.52719 2.91699 2.69043C2.76642 2.89782 2.66325 3.18042 2.60742 3.69532C2.55027 4.22322 2.54883 4.9121 2.54883 5.90137V10.0986C2.54883 11.0878 2.55031 11.7768 2.60742 12.3047C2.66326 12.8196 2.76642 13.1032 2.91699 13.3105C3.03558 13.4736 3.17966 13.6178 3.34278 13.7363C3.5502 13.8869 3.83265 13.9901 4.34766 14.0459C4.87568 14.1031 5.56398 14.1035 6.55371 14.1035H8.08399C8.27443 14.6025 8.55077 15.0585 8.89551 15.4541H6.55371C5.59402 15.4541 4.81976 15.4546 4.20215 15.3877C3.57204 15.3194 3.02468 15.1738 2.54883 14.8281C2.27111 14.6263 2.02606 14.3813 1.82422 14.1035C1.47883 13.6278 1.33293 13.08 1.26465 12.4502C1.19783 11.8327 1.19922 11.0579 1.19922 10.0986V5.90137C1.19922 4.94206 1.1978 4.16727 1.26465 3.54981C1.33295 2.91984 1.47867 2.37225 1.82422 1.89649C2.02613 1.61864 2.27098 1.37379 2.54883 1.17188C3.02472 0.826181 3.57197 0.6806 4.20215 0.612307C4.81976 0.545393 5.594 0.546877 6.55371 0.546878H9.02246ZM9.19629 9.14649H4.5459V7.84571H9.19629V9.14649ZM11.0303 6.10645H4.5459V4.80567H11.0303V6.10645Z",fill:"currentColor"})]}),Z9=({size:n=14,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M12.5757 7.00012C12.5757 3.92085 10.0794 1.42463 7.00012 1.42456C3.9208 1.42456 1.42456 3.9208 1.42456 7.00012C1.42463 10.0794 3.92085 12.5757 7.00012 12.5757C10.0793 12.5756 12.5756 10.0793 12.5757 7.00012ZM13.8002 7.00012C13.8001 10.7559 10.7559 13.8001 7.00012 13.8002C3.2443 13.8002 0.199291 10.7559 0.199219 7.00012C0.199219 3.24426 3.24426 0.199219 7.00012 0.199219C10.7559 0.199291 13.8002 3.2443 13.8002 7.00012Z",fill:"currentColor"}),f.jsx("path",{d:"M6.18042 8.68184C6.18043 8.09153 6.32893 7.34655 6.92127 6.8481C7.28566 6.54148 7.76104 6.27318 8.0022 6.10811C8.28964 5.91137 8.42234 5.76562 8.48328 5.58944C8.57774 5.31609 8.53121 5.00904 8.34912 4.76741C8.17409 4.53522 7.83879 4.32222 7.28186 4.32222C5.99668 4.32225 5.46969 5.11832 5.46949 5.78939H4.24414C4.24436 4.39942 5.36327 3.09691 7.28186 3.09688C8.17773 3.09688 8.89489 3.45606 9.32752 4.02999C9.75287 4.59438 9.86938 5.32775 9.64026 5.99019C9.44847 6.5444 9.04722 6.87743 8.69434 7.11898C8.29506 7.39226 8.02318 7.52192 7.70996 7.78548C7.51943 7.94582 7.40577 8.24899 7.40577 8.68184V8.75533H6.18042V8.68184Z",fill:"currentColor"}),f.jsx("path",{d:"M7.39455 9.44026V10.8109H6.16921V9.44026H7.39455Z",fill:"currentColor"})]}),U9=({size:n=20,className:r})=>f.jsxs("svg",{width:n,height:n,className:r,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.8659 2.05975C17.2603 2.05995 18.3913 3.19096 18.3914 4.58527V5.4874C18.3914 6.02747 18.2192 6.52672 17.9303 6.93735C17.9336 6.96524 17.9388 6.99318 17.9388 7.02195V12.8884C17.9388 13.6345 17.9395 14.2379 17.8996 14.7254C17.8642 15.1593 17.7936 15.5499 17.6373 15.9141L17.5654 16.0685C17.278 16.6328 16.8405 17.1046 16.3038 17.434L16.0679 17.5661C15.66 17.7739 15.2196 17.8598 14.7237 17.9003C14.2362 17.9401 13.6327 17.9405 12.8867 17.9405H7.11122C6.36511 17.9405 5.76171 17.9401 5.27418 17.9003C4.84051 17.8649 4.44949 17.7952 4.08545 17.6391L3.93104 17.5661C3.36673 17.2785 2.89392 16.8414 2.56465 16.3044L2.43245 16.0685C2.22473 15.6608 2.13878 15.2211 2.09825 14.7254C2.05841 14.2379 2.05912 13.6345 2.05912 12.8884V7.02195C2.05912 6.99284 2.06422 6.96449 2.06758 6.93629C1.77931 6.52592 1.60858 6.02687 1.60858 5.4874V4.58527C1.60876 3.19084 2.73962 2.05975 4.1341 2.05975H15.8659ZM16.4984 7.92936C16.296 7.98169 16.0847 8.01288 15.8659 8.01291H4.1341C3.91478 8.01291 3.70246 7.98194 3.49955 7.92936V12.8884C3.49955 13.6582 3.50053 14.1927 3.53445 14.608C3.56769 15.0146 3.62923 15.244 3.71635 15.415L3.7925 15.5514C3.98339 15.8627 4.25749 16.1165 4.58464 16.2833L4.72529 16.3435C4.88095 16.3993 5.08638 16.4402 5.39158 16.4651C5.80685 16.4991 6.34138 16.5001 7.11122 16.5001H12.8867C13.6564 16.5001 14.1911 16.499 14.6063 16.4651C15.0128 16.432 15.2423 16.3703 15.4133 16.2833L15.5508 16.2061C15.8618 16.0152 16.116 15.7419 16.2827 15.415L16.3429 15.2732C16.3985 15.1177 16.4396 14.9128 16.4645 14.608C16.4985 14.1927 16.4984 13.6583 16.4984 12.8884V7.92936ZM4.1341 3.50019C3.53511 3.50019 3.0492 3.98631 3.04902 4.58527V5.4874C3.04902 6.08649 3.535 6.57248 4.1341 6.57248H15.8659C16.4648 6.57228 16.951 6.08638 16.951 5.4874V4.58527C16.9509 3.98644 16.4647 3.50038 15.8659 3.50019H4.1341Z",fill:"currentColor"}),f.jsx("path",{d:"M12.7962 12.5661V11.0832H7.20548V12.5661L12.7962 12.5661Z",fill:"currentColor"})]}),W9="_root_9cl6j_3",q9="_row_9cl6j_10",Q9="_leading_9cl6j_23",K9="_iconIdle_9cl6j_42",J9="_chevronHover_9cl6j_48",G9="_title_9cl6j_64",Fn={root:W9,row:q9,leading:Q9,iconIdle:K9,chevronHover:J9,title:G9};function Y9({icon:n,title:r,open:i,expandable:s,onToggle:u,expandOnRowClick:c=!1,previewChevron:h=s,keepContentWhenOpen:p=!1,collapsedContent:g,children:C,className:v,rowClassName:L,leadingClassName:w,chevronClassName:_,titleClassName:k}){const E=s&&c,T=ee=>{ee.stopPropagation(),u()},B=ee=>{!E||ee.key!=="Enter"&&ee.key!==" "||(ee.preventDefault(),u())},W=h?f.jsxs(f.Fragment,{children:[f.jsx("span",{className:Fn.iconIdle,children:n}),f.jsx(Bl,{className:ye(_,Fn.chevronHover)})]}):n,z=i?f.jsx(Bl,{className:_}):W;return f.jsxs("div",{className:ye(Fn.root,v),"data-open":i||void 0,children:[f.jsxs("div",{className:ye(Fn.row,L),"data-disclosure-row":!0,"data-expandable":E||void 0,role:E?"button":void 0,tabIndex:E?0:void 0,"aria-expanded":E?i:void 0,onClick:E?u:void 0,onKeyDown:E?B:void 0,children:[s&&!E?f.jsx("button",{type:"button",className:ye(Fn.leading,w),"aria-expanded":i,onClick:T,children:z}):f.jsx("span",{className:ye(Fn.leading,w),children:z}),f.jsx("span",{className:ye(Fn.title,k),children:r}),(p||!i)&&g]}),i&&C]})}const X9="_button_kz6gm_4",e7="_md_kz6gm_24",t7="_sm_kz6gm_30",n7="_primary_kz6gm_38",r7="_ghost_kz6gm_47",o7="_outline_kz6gm_56",i7="_toolbar_kz6gm_65",s7="_icon_kz6gm_73",Fo={button:X9,md:e7,sm:t7,primary:n7,ghost:r7,outline:o7,toolbar:i7,icon:s7};function zl({variant:n="ghost",size:r="md",icon:i,className:s,children:u,...c}){return f.jsxs("button",{type:"button",className:ye(Fo.button,Fo[n],Fo[r],s),...c,children:[i!=null&&f.jsx("span",{className:Fo.icon,children:i}),u]})}const l7="_pill_e3ygd_1",u7="_interactive_e3ygd_15",a7="_active_e3ygd_23",m1={pill:l7,interactive:u7,active:a7};function J3({active:n=!1,className:r,children:i,onClick:s,...u}){return s?f.jsx("button",{type:"button",className:ye(m1.pill,m1.interactive,n&&m1.active,r),onClick:s,...u,children:i}):f.jsx("span",{className:ye(m1.pill,n&&m1.active,r),children:i})}const c7="_wrap_1ao1y_1",f7="_icon_1ao1y_16",d7="_input_1ao1y_25",wl={wrap:c7,icon:f7,input:d7};function h7({icon:n,className:r,...i}){return f.jsxs("span",{className:ye(wl.wrap,r),children:[n!=null&&f.jsx("span",{className:wl.icon,children:n}),f.jsx("input",{className:wl.input,...i})]})}const p7=200;function G3(n){const r=R.useRef(null),i=R.useRef(n);i.current=n;const s=R.useCallback(()=>{r.current!==null&&(clearTimeout(r.current),r.current=null)},[]),u=R.useCallback(()=>{s(),r.current=setTimeout(()=>{r.current=null,i.current()},p7)},[s]);return R.useEffect(()=>s,[s]),{arm:u,cancel:s}}const m7="_root_19372_1",C7="_list_19372_8",g7="_submenu_19372_9",v7="_portal_19372_43",y7="_sideTop_19372_51",w7="_alignEnd_19372_56",x7="_scrollable_19372_21",_7="_viewport_19372_21",L7="_footer_19372_63",k7="_itemWrap_19372_91",S7="_item_19372_91",j7="_denseList_19372_118",E7="_label_19372_123",b7="_compactList_19372_127",M7="_itemIcon_19372_143",O7="_separator_19372_81",N7="_itemLabel_19372_173",R7="_check_19372_181",P7="_selected_19372_188",T7="_danger_19372_193",Te={root:m7,list:C7,submenu:g7,portal:v7,sideTop:y7,alignEnd:w7,scrollable:x7,viewport:_7,footer:L7,itemWrap:k7,item:S7,denseList:j7,label:E7,compactList:b7,itemIcon:M7,separator:O7,itemLabel:N7,check:R7,selected:P7,danger:T7};function Z0(n){return"type"in n&&n.type==="separator"}function U0(n){return"type"in n&&n.type==="label"}const I7={visibility:"hidden",left:0,top:0};function Y3({open:n,anchor:r,items:i,selectedId:s,selectedIds:u,onSelect:c,onClose:h,align:p="start",side:g="bottom",portal:C=!1,closeOnPointerLeave:v=!1,dense:L=!1,compact:w=!1,getAnchorRect:_,footer:k,className:E}){const T=R.useRef(null),B=R.useRef(null),[W,z]=R.useState(null),[ee,Q]=R.useState(null),{arm:V,cancel:Z}=G3(h);R.useLayoutEffect(()=>{if(!n||!C){Q(null);return}const q=()=>{var j;let ce;if(_!==void 0?ce=_():ce=((j=T.current)==null?void 0:j.getBoundingClientRect())??null,ce===null)return;const le=12,he=window.innerWidth,pe=window.innerHeight,Se=B.current,we=(Se==null?void 0:Se.offsetWidth)??0,U=(Se==null?void 0:Se.offsetHeight)??0;let ie,K;g==="right"?(ie=ce.right+4,K=ce.top):p==="start"?(ie=ce.left,K=g==="bottom"?ce.bottom+4:ce.top-U-4):(ie=ce.right-we,K=g==="bottom"?ce.bottom+4:ce.top-U-4),we>0&&(ie=Math.min(Math.max(ie,le),he-we-le)),U>0&&(K=Math.min(Math.max(K,le),pe-U-le)),Q({left:ie,top:K})};return q(),window.addEventListener("scroll",q,!0),window.addEventListener("resize",q),()=>{window.removeEventListener("scroll",q,!0),window.removeEventListener("resize",q)}},[n,C,p,g,_]),R.useEffect(()=>{if(!n){z(null);return}const q=le=>{var he,pe;le.target instanceof Node&&((he=T.current)==null?void 0:he.contains(le.target))!==!0&&((pe=B.current)==null?void 0:pe.contains(le.target))!==!0&&h()},ce=le=>{le.key==="Escape"&&h()};return document.addEventListener("pointerdown",q),document.addEventListener("keydown",ce),()=>{document.removeEventListener("pointerdown",q),document.removeEventListener("keydown",ce)}},[n,h]),R.useEffect(()=>{n||Z()},[n,Z]);const ne=!i.some(q=>!Z0(q)&&!U0(q)&&q.submenu!==void 0&&q.submenu.length>0),I=q=>{if(Z0(q))return f.jsx("div",{className:Te.separator,role:"separator"},q.id);if(U0(q))return f.jsx("div",{className:Te.label,role:"presentation",children:q.text},q.id);const ce=q.submenu!==void 0&&q.submenu.length>0,le=ce&&W===q.id,he=q.id===s||(u==null?void 0:u.includes(q.id))===!0;return f.jsxs("div",{className:Te.itemWrap,onMouseEnter:()=>{z(ce?q.id:null)},onMouseLeave:()=>{z(null)},children:[f.jsxs("button",{type:"button",role:"menuitem",className:ye(Te.item,he&&Te.selected,q.danger===!0&&Te.danger),disabled:q.disabled,"aria-haspopup":ce?"menu":void 0,"aria-expanded":ce?le:void 0,onFocus:()=>{z(ce?q.id:null)},onClick:()=>{if(ce){z(q.id);return}c(q.id)},children:[q.icon!==void 0&&f.jsx("span",{className:Te.itemIcon,children:q.icon}),f.jsx("span",{className:Te.itemLabel,children:q.label}),he&&f.jsx(cu,{className:Te.check})]}),le&&q.submenu!==void 0&&f.jsx("div",{className:ye(Te.submenu,w&&Te.compactList),role:"menu",children:q.submenu.map(pe=>f.jsxs("button",{type:"button",role:"menuitem",className:Te.item,disabled:pe.disabled,onClick:()=>{c(pe.id)},children:[pe.icon!==void 0&&f.jsx("span",{className:Te.itemIcon,children:pe.icon}),f.jsx("span",{className:Te.itemLabel,children:pe.label})]},pe.id))})]},q.id)},J=n&&f.jsxs("div",{ref:B,className:ye(Te.list,L&&Te.denseList,w&&Te.compactList,ne&&Te.scrollable,C&&Te.portal,g==="top"&&!C&&Te.sideTop,p==="end"&&!C&&Te.alignEnd),style:C?ee??I7:void 0,role:"menu",onClick:q=>{q.stopPropagation()},children:[f.jsx("div",{className:Te.viewport,role:"presentation",children:i.map(I)}),k!==void 0&&k.length>0&&f.jsx("div",{className:Te.footer,role:"presentation",children:k.map(I)})]});return f.jsxs("span",{ref:T,className:ye(Te.root,E),onPointerEnter:v?Z:void 0,onPointerLeave:v?()=>{n&&V()}:void 0,children:[r,C?J!==!1&&ln.createPortal(J,document.body):J]})}const $7=12;function H7(n,r,i){const[s,u]=R.useState(r);return R.useLayoutEffect(()=>{const c=n.current;if(c===null)return;const h=()=>{u(Math.min(r,Math.max(0,c.getBoundingClientRect().bottom-$7)))};return h(),window.addEventListener("resize",h),window.addEventListener("scroll",h,!0),()=>{window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)}},[n,r,i]),s}async function br(n){var s;if((s=navigator.clipboard)!=null&&s.writeText)try{return await navigator.clipboard.writeText(n),!0}catch{return!1}const r=typeof document.execCommand=="function"?document.execCommand.bind(document):void 0;if(r===void 0)return!1;const i=document.createElement("textarea");i.value=n,i.setAttribute("readonly",""),i.style.position="fixed",i.style.left="-9999px",document.body.appendChild(i),i.select();try{return r("copy")}catch{return!1}finally{i.remove()}}const V7="_root_1b2ny_3",A7="_card_1b2ny_13",D7="_copyable_1b2ny_25",F7="_feedback_1b2ny_34",B7="_copied_1b2ny_40",z7="_status_1b2ny_47",xr={root:V7,card:A7,copyable:D7,feedback:F7,copied:B7,status:z7};function Z7({anchor:n,content:r,openDelayMs:i=500,disabled:s=!1,copyText:u,copyLabel:c="�制",copiedLabel:h="�制�功"}){const p=R.useRef(null),g=R.useRef(null),C=R.useRef(null),v=R.useRef(null),L=R.useRef(null),w=R.useRef(0),_=R.useRef(!1),k=R.useRef(!0),[E,T]=R.useState(!1),[B,W]=R.useState(null),[z,ee]=R.useState(!1),Q=R.useCallback(()=>{v.current!==null&&(clearTimeout(v.current),v.current=null),L.current=null,ee(!1)},[]),V=R.useCallback(()=>{w.current+=1,Q(),T(!1)},[Q]),{arm:Z,cancel:ne}=G3(V),I=()=>{C.current!==null&&(clearTimeout(C.current),C.current=null)};R.useEffect(()=>{s&&(I(),ne(),V())},[s,ne,V]),R.useEffect(()=>(k.current=!0,()=>{k.current=!1,w.current+=1,I(),v.current!==null&&(clearTimeout(v.current),v.current=null)}),[]),R.useLayoutEffect(()=>{if(!E){W(null);return}const le=()=>{var U;const he=p.current;if(he===null)return;const pe=he.getBoundingClientRect(),Se=((U=g.current)==null?void 0:U.offsetHeight)??0,we=pe.top+Se>window.innerHeight-8?window.innerHeight-Se-8:pe.top;W({left:pe.right+8,top:we})};return le(),window.addEventListener("scroll",le,!0),window.addEventListener("resize",le),()=>{window.removeEventListener("scroll",le,!0),window.removeEventListener("resize",le)}},[E]),R.useLayoutEffect(()=>{var he;if(!E||B===null)return;const le=((he=g.current)==null?void 0:he.offsetHeight)??0;B.top+le>window.innerHeight-8&&W({left:B.left,top:window.innerHeight-le-8})},[E,B]);const J=async le=>{if(z||_.current)return;_.current=!0;const he=w.current,pe=await br(le);_.current=!1;const Se=g.current;if(!pe||!k.current||he!==w.current||Se===null)return;const we=Se.offsetHeight;L.current=we>0?we:null,ee(!0),v.current=setTimeout(Q,1e3)},q=u!==void 0,ce=E&&B!==null&&f.jsx("div",{ref:g,className:`${xr.card}${q?` ${xr.copyable}`:""}${z?` ${xr.feedback}`:""}`,style:{...B,minHeight:z&&L.current!==null?L.current:void 0},role:q?"button":void 0,tabIndex:q?0:void 0,"aria-label":q?`${c}: ${u}`:void 0,onClick:q?le=>{const he=window.getSelection();if(he!==null&&!he.isCollapsed){for(let pe=0;pe{le.key!=="Enter"&&le.key!==" "||(le.preventDefault(),J(u))}:void 0,children:z?f.jsx("span",{className:xr.copied,"aria-hidden":"true",children:h}):r});return f.jsxs("span",{ref:p,className:xr.root,onPointerEnter:()=>{s||(ne(),!E&&(I(),C.current=setTimeout(()=>{T(!0)},i)))},onPointerLeave:()=>{I(),E&&Z()},onPointerDownCapture:le=>{var he;(he=g.current)!=null&&he.contains(le.target)||(I(),ne(),V())},children:[n,E&&q&&f.jsx("span",{className:xr.status,role:"status",children:z?h:""}),ce!==!1&&ln.createPortal(ce,document.body)]})}const U7="_root_15u5s_2",W7="_mask_15u5s_14",q7="_dialog_15u5s_22",Q7="_content_15u5s_37",K7="_header_15u5s_45",J7="_title_15u5s_53",G7="_close_15u5s_61",Y7="_description_15u5s_80",X7="_body_15u5s_89",ef="_footer_15u5s_97",Ut={root:U7,mask:W7,dialog:q7,content:Q7,header:K7,title:J7,close:G7,description:Y7,body:X7,footer:ef};function X3({open:n,onClose:r,title:i,closeLabel:s="Close",description:u,children:c,footer:h,className:p,contentClassName:g,headless:C=!1}){return R.useEffect(()=>{if(!n)return;const v=L=>{L.key==="Escape"&&r()};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}},[n,r]),n?ln.createPortal(f.jsxs("div",{className:Ut.root,role:"presentation",children:[f.jsx("div",{className:Ut.mask,"aria-hidden":"true",onClick:r}),f.jsx("div",{className:ye(Ut.dialog,p),role:"dialog","aria-modal":"true","aria-label":i,children:C?c:f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:ye(Ut.content,g),children:[f.jsxs("div",{className:Ut.header,children:[f.jsx("h2",{className:Ut.title,children:i}),f.jsx("button",{type:"button",className:Ut.close,"aria-label":s,onClick:r,children:f.jsx(fu,{size:14})})]}),u!==void 0&&u!==""&&f.jsx("p",{className:Ut.description,children:u}),c!==void 0&&f.jsx("div",{className:Ut.body,children:c})]}),h!==void 0&&f.jsx("div",{className:Ut.footer,children:h})]})})]}),document.body):null}const tf="_onboardingOverlay_1cfrq_3",nf="_onboardingMask_1cfrq_10",rf="_onboardingStage_1cfrq_21",xl={onboardingOverlay:tf,onboardingMask:nf,onboardingStage:rf};function of({children:n}){return R.useEffect(()=>{const r=document.getElementById("root");if(r!==null)return r.inert=!0,()=>{r.inert=!1}},[]),ln.createPortal(f.jsxs("div",{className:xl.onboardingOverlay,role:"presentation",children:[f.jsx("div",{className:xl.onboardingMask,"aria-hidden":"true"}),f.jsx("div",{className:xl.onboardingStage,children:n})]}),document.body)}const sf="_confirmation_1nu42_1",lf="_confirmationContent_1nu42_7",uf="_warning_1nu42_19",af="_warningIcon_1nu42_32",cf="_acknowledgement_1nu42_38",ff="_modalAction_1nu42_67",df="_confirmAction_1nu42_71",Bn={confirmation:sf,confirmationContent:lf,warning:uf,warningIcon:af,acknowledgement:cf,modalAction:ff,confirmAction:df};function hf({open:n,title:r,description:i,acknowledgeLabel:s,cancelLabel:u,confirmLabel:c,acknowledged:h,disabled:p=!1,onAcknowledgedChange:g,onCancel:C,onConfirm:v}){return f.jsxs(X3,{open:n,onClose:C,title:r,className:Bn.confirmation,contentClassName:Bn.confirmationContent,footer:f.jsxs(f.Fragment,{children:[f.jsx(zl,{variant:"outline",className:Bn.modalAction,onClick:C,children:u}),f.jsx(zl,{variant:"primary",className:Bn.confirmAction,disabled:p||!h,onClick:v,children:c})]}),children:[f.jsxs("div",{className:Bn.warning,children:[f.jsx(K3,{size:18,className:Bn.warningIcon}),f.jsx("p",{children:i})]}),f.jsxs("label",{className:Bn.acknowledgement,children:[f.jsx("input",{type:"checkbox",checked:h,disabled:p,autoFocus:!0,onChange:L=>{g(L.currentTarget.checked)}}),f.jsx("span",{children:s})]})]})}const pf="_banner_ugy7y_1",mf={banner:pf};function Cf({reconnecting:n,label:r="连接已断开,正在�连…"}){return n?f.jsx("div",{className:mf.banner,children:r}):null}function gf({size:n=24,className:r}){return f.jsx("svg",{width:n,height:n*17.04/23.16,className:r,viewBox:"0 0 23.16 17.04",fill:"none","aria-hidden":"true",children:f.jsx("path",{d:"M22.9168 1.43018C22.6713 1.31018 22.5658 1.53918 22.4223 1.65519C22.3733 1.69269 22.3318 1.74169 22.2903 1.78669C21.9317 2.1697 21.5127 2.42121 20.9657 2.39121C20.1657 2.34621 19.4827 2.59771 18.8787 3.20973C18.7502 2.45521 18.3236 2.0047 17.6746 1.71569C17.3351 1.56568 16.9916 1.41518 16.7536 1.08867C16.5876 0.856163 16.5421 0.597155 16.4591 0.341647C16.4061 0.187643 16.3536 0.0301382 16.1761 0.00363739C15.9836 -0.0263635 15.9081 0.135141 15.8326 0.270145C15.5306 0.822162 15.4136 1.43018 15.4251 2.0462C15.4516 3.43174 16.0366 4.53527 17.1991 5.3203C17.3311 5.4103 17.3651 5.5003 17.3236 5.63181C17.2441 5.90231 17.1501 6.16482 17.0671 6.43533C17.0141 6.60784 16.9351 6.64584 16.7501 6.57033C16.1121 6.30383 15.5611 5.90931 15.074 5.4328C14.2475 4.63328 13.5 3.75075 12.568 3.05973C12.349 2.89822 12.13 2.74822 11.9034 2.60522C10.9524 1.68169 12.028 0.923165 12.277 0.833162C12.5375 0.739159 12.3675 0.41615 11.5259 0.42015C10.6844 0.42365 9.91439 0.705658 8.93286 1.08117C8.78935 1.13767 8.63835 1.17867 8.48384 1.21267C7.59332 1.04367 6.66829 1.00617 5.70226 1.11517C3.88321 1.31768 2.43016 2.1777 1.36213 3.64575C0.0790928 5.4103 -0.222916 7.41536 0.146595 9.50642C0.535106 11.7105 1.66014 13.535 3.38869 14.9616C5.18125 16.4406 7.24581 17.1657 9.60138 17.0266C11.0319 16.9441 12.6245 16.7526 14.421 15.2321C14.874 15.4576 15.3496 15.5476 16.1381 15.6151C16.7456 15.6716 17.3306 15.5851 17.7836 15.4911C18.4931 15.3411 18.4441 14.6841 18.1876 14.5636C16.1081 13.595 16.5646 13.9891 16.1496 13.67C17.2061 12.42 18.8202 10.1979 19.3182 7.17235C19.3672 6.83834 19.4297 6.36783 19.4222 6.09732C19.4182 5.93231 19.4562 5.86831 19.6447 5.84931C20.1657 5.78931 20.6712 5.64681 21.1357 5.3913C22.4833 4.65528 23.0268 3.44624 23.1548 1.9972C23.1738 1.77569 23.1508 1.54668 22.9168 1.43018ZM11.1749 14.4736C9.15936 12.889 8.18184 12.3675 7.77832 12.39C7.40081 12.4125 7.46881 12.8445 7.55182 13.126C7.63882 13.404 7.75182 13.5955 7.91033 13.8396C8.01983 14.0011 8.09533 14.2411 7.80083 14.4216C7.15181 14.8231 6.02327 14.2866 5.97027 14.2601C4.65673 13.4865 3.5587 12.4655 2.78467 11.069C2.03715 9.72493 1.60314 8.28289 1.53164 6.74384C1.51264 6.37233 1.62214 6.24082 1.99215 6.17332C2.47916 6.08332 2.98118 6.06432 3.46769 6.13582C5.52476 6.43633 7.27581 7.35586 8.74385 8.8129C9.58188 9.64243 10.2159 10.634 10.8689 11.6025C11.5634 12.631 12.3105 13.611 13.262 14.4146C13.598 14.6961 13.866 14.9101 14.1225 15.0681C13.349 15.1546 12.058 15.1731 11.1749 14.4746L11.1749 14.4736ZM12.141 8.25988C12.141 8.09488 12.273 7.96338 12.439 7.96338C12.4765 7.96338 12.5105 7.97088 12.541 7.98188C12.5825 7.99688 12.6205 8.01938 12.6505 8.05338C12.7035 8.10588 12.7335 8.18088 12.7335 8.25988C12.7335 8.42489 12.6015 8.55639 12.4355 8.55639C12.2695 8.55639 12.141 8.42489 12.141 8.25988ZM15.1415 9.79893C14.949 9.87793 14.7565 9.94544 14.5715 9.95294C14.2845 9.96794 13.9715 9.85143 13.8015 9.70893C13.5375 9.48742 13.3485 9.36342 13.2695 8.97691C13.2355 8.8119 13.2545 8.55639 13.2845 8.40989C13.3525 8.09438 13.277 7.89187 13.0545 7.70787C12.8735 7.55786 12.643 7.51636 12.39 7.51636C12.2955 7.51636 12.209 7.47486 12.1445 7.44136C12.039 7.38886 11.9519 7.25735 12.035 7.09585C12.0615 7.04335 12.19 6.91584 12.22 6.89334C12.5635 6.69784 12.9595 6.76184 13.326 6.90834C13.6655 7.04735 13.9225 7.30236 14.292 7.66287C14.6695 8.09838 14.7375 8.21838 14.9525 8.54539C15.1225 8.8009 15.277 9.06341 15.3831 9.36392C15.4471 9.55142 15.3641 9.70493 15.1415 9.79893Z",fill:"currentColor"})})}function vf({size:n=24,className:r}){return f.jsxs("svg",{width:n*182/24,height:n,className:r,viewBox:"0 0 182 24",fill:"none","aria-hidden":"true",children:[f.jsx("path",{d:"M68.416 18.2447H67.0501V16.1272H68.416C69.2619 16.1272 70.1166 15.9163 70.6671 15.3304C71.2181 14.7444 71.426 13.8455 71.426 12.9471C71.426 12.0487 71.2268 11.1498 70.6671 10.5643C70.1083 9.97831 69.2619 9.76744 68.416 9.76744C67.5701 9.76744 66.7154 9.97831 66.1639 10.5643C65.6129 11.1503 65.4049 12.0487 65.4049 12.9471V21.6435H63.009V7.6582H65.4049V8.54883H65.8442C65.8918 8.49393 65.9394 8.44728 65.9875 8.40064C66.5871 7.85353 67.5049 7.6582 68.4072 7.6582C69.8212 7.6582 71.2341 8.00998 72.1607 8.98662C73.0868 9.96325 73.4143 11.4632 73.4143 12.9558C73.4143 14.4485 73.0785 15.9406 72.1607 16.925C71.2424 17.9094 69.8212 18.2457 68.416 18.2457V18.2447Z",fill:"currentColor"}),f.jsx("path",{d:"M31.9551 8.03497H33.3204V10.1525H31.9551C31.1087 10.1525 30.2545 10.3633 29.7035 10.9493C29.1525 11.5353 28.945 12.4342 28.945 13.3326C28.945 14.231 29.1447 15.1294 29.7035 15.7154C30.2623 16.3014 31.1087 16.5122 31.9551 16.5122C32.8015 16.5122 33.6562 16.3014 34.2072 15.7154C34.7582 15.1294 34.9657 14.231 34.9657 13.3326V4.62842H37.3611V18.6219H34.9657V17.7313H34.5264C34.4783 17.7857 34.4307 17.8329 34.3826 17.8795C33.7835 18.4261 32.8652 18.6219 31.9629 18.6219C30.5494 18.6219 29.136 18.2707 28.2099 17.294C27.2838 16.3174 26.9563 14.817 26.9563 13.3248C26.9563 11.8327 27.2916 10.34 28.2099 9.35561C29.136 8.37898 30.5494 8.03497 31.9551 8.03497Z",fill:"currentColor"}),f.jsx("path",{d:"M49.3786 13.1431V13.9948H42.9984V12.2996H47.2305C47.1348 11.6825 46.9113 11.1043 46.5119 10.682C45.9371 10.0727 45.0503 9.85409 44.1723 9.85409C43.2943 9.85409 42.4076 10.0727 41.8328 10.682C41.258 11.2913 41.05 12.2213 41.05 13.1435C41.05 14.0658 41.2575 15.003 41.8328 15.6046C42.4076 16.2061 43.2939 16.433 44.1723 16.433C45.0508 16.433 45.9371 16.2143 46.5119 15.6046C46.5916 15.5186 46.6635 15.4248 46.7354 15.331H49.0992C48.8918 16.0657 48.5643 16.7299 48.0691 17.2454C47.111 18.2531 45.6339 18.6205 44.1723 18.6205C42.7108 18.6205 41.2337 18.2609 40.2755 17.2454C39.3174 16.2299 38.9661 14.6828 38.9661 13.1435C38.9661 11.6043 39.3096 10.0494 40.2755 9.04168C41.242 8.03396 42.7108 7.66663 44.1723 7.66663C45.6339 7.66663 47.111 8.02618 48.0691 9.04168C49.0351 10.0572 49.3786 11.6043 49.3786 13.1435V13.1431Z",fill:"currentColor"}),f.jsx("path",{d:"M61.4045 13.1431V13.9948H55.0243V12.2996H59.2564C59.1602 11.6825 58.9372 11.1043 58.5378 10.682C57.963 10.0727 57.0762 9.85409 56.1982 9.85409C55.3202 9.85409 54.4335 10.0727 53.8587 10.682C53.2839 11.2913 53.0759 12.2213 53.0759 13.1435C53.0759 14.0658 53.2834 15.003 53.8587 15.6046C54.4335 16.2061 55.3202 16.433 56.1982 16.433C57.0762 16.433 57.963 16.2143 58.5378 15.6046C58.6179 15.5186 58.6894 15.4248 58.7608 15.331H61.1251C60.9171 16.0657 60.5897 16.7299 60.0945 17.2454C59.1364 18.2531 57.6593 18.6205 56.1982 18.6205C54.7372 18.6205 53.2596 18.2609 52.3014 17.2454C51.3432 16.2299 50.9919 14.6828 50.9919 13.1435C50.9919 11.6043 51.3355 10.0494 52.3014 9.04168C53.2678 8.03396 54.7367 7.66663 56.1982 7.66663C57.6598 7.66663 59.1364 8.02618 60.0945 9.04168C61.061 10.0572 61.4045 11.6043 61.4045 13.1435V13.1431Z",fill:"currentColor"}),f.jsx("path",{d:"M80.242 18.6214C81.7035 18.6214 83.1801 18.4105 84.1383 17.809C85.0965 17.2075 85.4482 16.2931 85.4482 15.3869C85.4482 14.4807 85.1042 13.5585 84.1383 12.9647C83.1801 12.371 81.703 12.1518 80.242 12.1518C79.6186 12.1518 79.0438 12.0658 78.6366 11.8394C78.2294 11.6047 78.0778 11.2534 78.0778 10.9017C78.0778 10.5499 78.2216 10.1908 78.6366 9.9639C79.0438 9.72921 79.6749 9.65147 80.2973 9.65147C80.9198 9.65147 81.5509 9.73747 81.9591 9.9639C82.3663 10.1986 82.5179 10.5499 82.5179 10.9017H84.9531C84.9531 9.99499 84.6421 9.07327 83.7719 8.47951C82.9017 7.88576 81.5679 7.66663 80.2424 7.66663C78.9169 7.66663 77.5837 7.8775 76.713 8.47951C75.8427 9.08104 75.5308 9.99499 75.5308 10.9017C75.5308 11.8083 75.8423 12.73 76.713 13.3238C77.5832 13.9176 78.9165 14.1367 80.2424 14.1367C80.929 14.1367 81.688 14.2227 82.1428 14.4491C82.5985 14.676 82.7579 15.0351 82.7579 15.3869C82.7579 15.7387 82.5985 16.0977 82.1428 16.3246C81.688 16.5511 80.9931 16.6371 80.3066 16.6371C79.62 16.6371 78.9169 16.5511 78.4694 16.3246C78.0224 16.0982 77.8543 15.7387 77.8543 15.3869H75.0435C75.0435 16.2935 75.3865 17.2153 76.3534 17.809C77.3194 18.4028 78.7809 18.6214 80.2424 18.6214H80.242Z",fill:"currentColor"}),f.jsx("path",{d:"M97.4733 13.1431V13.9948H91.0932V12.2996H95.3252C95.23 11.6825 95.006 11.1043 94.6071 10.682C94.0313 10.0727 93.1456 9.85409 92.2666 9.85409C91.3876 9.85409 90.5018 10.0727 89.927 10.682C89.3522 11.2913 89.1452 12.2213 89.1452 13.1435C89.1452 14.0658 89.3522 15.003 89.927 15.6046C90.5018 16.2061 91.3886 16.433 92.2666 16.433C93.1446 16.433 94.0313 16.2143 94.6071 15.6046C94.6863 15.5186 94.7587 15.4248 94.8301 15.331H97.1935C96.9855 16.0657 96.6585 16.7299 96.1639 17.2454C95.2057 18.2531 93.7281 18.6205 92.2666 18.6205C90.805 18.6205 89.3284 18.2609 88.3703 17.2454C87.4121 16.2299 87.0613 14.6828 87.0613 13.1435C87.0613 11.6043 87.4043 10.0494 88.3703 9.04168C89.3367 8.03396 90.806 7.66663 92.2666 7.66663C93.7272 7.66663 95.2057 8.02618 96.1639 9.04168C97.1298 10.0572 97.4729 11.6043 97.4729 13.1435L97.4733 13.1431Z",fill:"currentColor"}),f.jsx("path",{d:"M109.499 13.1431V13.9948H103.119V12.2996H107.351C107.256 11.6825 107.032 11.1043 106.632 10.682C106.057 10.0727 105.172 9.85409 104.293 9.85409C103.414 9.85409 102.528 10.0727 101.953 10.682C101.378 11.2913 101.17 12.2213 101.17 13.1435C101.17 14.0658 101.378 15.003 101.953 15.6046C102.528 16.2061 103.415 16.433 104.293 16.433C105.171 16.433 106.057 16.2143 106.632 15.6046C106.712 15.5186 106.784 15.4248 106.856 15.331H109.22C109.012 16.0657 108.685 16.7299 108.19 17.2454C107.231 18.2531 105.754 18.6205 104.293 18.6205C102.831 18.6205 101.355 18.2609 100.396 17.2454C99.4382 16.2299 99.0864 14.6828 99.0864 13.1435C99.0864 11.6043 99.4295 10.0494 100.396 9.04168C101.362 8.03396 102.832 7.66663 104.293 7.66663C105.754 7.66663 107.231 8.02618 108.19 9.04168C109.156 10.0572 109.499 11.6043 109.499 13.1435V13.1431Z",fill:"currentColor"}),f.jsx("path",{d:"M113.5 4.62817H111.104V18.6217H113.5V4.62817Z",fill:"currentColor"}),f.jsx("path",{d:"M117.589 12.8154L121.517 18.6208H118.554L114.625 12.8154L118.554 8.15088H121.517L117.589 12.8154Z",fill:"currentColor"}),f.jsx("g",{clipPath:"url(#dsh-wordmark-whale-clip)",children:f.jsx("path",{d:"M23.0584 4.95203C22.8129 4.83203 22.7074 5.06103 22.5639 5.17704C22.5149 5.21454 22.4734 5.26354 22.4319 5.30854C22.0734 5.69155 21.6543 5.94306 21.1073 5.91306C20.3073 5.86806 19.6243 6.11957 19.0203 6.73158C18.8918 5.97706 18.4652 5.52655 17.8162 5.23754C17.4767 5.08753 17.1332 4.93703 16.8952 4.61052C16.7292 4.37801 16.6837 4.11901 16.6007 3.8635C16.5477 3.70949 16.4952 3.55199 16.3177 3.52549C16.1252 3.49549 16.0497 3.65699 15.9742 3.792C15.6722 4.34401 15.5552 4.95203 15.5667 5.56805C15.5932 6.95359 16.1782 8.05712 17.3407 8.84215C17.4727 8.93215 17.5067 9.02215 17.4652 9.15366C17.3857 9.42416 17.2917 9.68667 17.2087 9.95718C17.1557 10.1297 17.0767 10.1677 16.8917 10.0922C16.2537 9.82568 15.7027 9.43117 15.2156 8.95465C14.3891 8.15513 13.6416 7.2726 12.7096 6.58158C12.4906 6.42007 12.2716 6.27007 12.045 6.12707C11.094 5.20354 12.1696 4.44502 12.4186 4.35501C12.6791 4.26101 12.5091 3.938 11.6675 3.942C10.826 3.9455 10.056 4.22751 9.07446 4.60302C8.93096 4.65952 8.77995 4.70052 8.62545 4.73452C7.73492 4.56552 6.80989 4.52802 5.84386 4.63702C4.02481 4.83953 2.57177 5.69955 1.50373 7.1676C0.220694 8.93215 -0.0813148 10.9372 0.288196 13.0283C0.676708 15.2323 1.80174 17.0569 3.53029 18.4834C5.32285 19.9625 7.38741 20.6875 9.74298 20.5485C11.1735 20.466 12.7661 20.2745 14.5626 18.7539C15.0156 18.9795 15.4912 19.0695 16.2797 19.137C16.8872 19.1935 17.4722 19.107 17.9252 19.013C18.6347 18.8629 18.5857 18.2059 18.3292 18.0854C16.2497 17.1169 16.7062 17.5109 16.2912 17.1919C17.3477 15.9419 18.9618 13.7198 19.4598 10.6942C19.5088 10.3602 19.5713 9.88968 19.5638 9.61917C19.5598 9.45417 19.5978 9.39016 19.7863 9.37116C20.3073 9.31116 20.8128 9.16866 21.2773 8.91315C22.6249 8.17713 23.1684 6.96809 23.2964 5.51905C23.3154 5.29754 23.2924 5.06853 23.0584 4.95203ZM11.3165 17.9954C9.30097 16.4109 8.32344 15.8894 7.91992 15.9119C7.54241 15.9344 7.61042 16.3664 7.69342 16.6479C7.78042 16.9259 7.89342 17.1174 8.05193 17.3614C8.16143 17.5229 8.23694 17.7629 7.94243 17.9434C7.29341 18.3449 6.16487 17.8084 6.11187 17.7819C4.79833 17.0084 3.7003 15.9874 2.92628 14.5908C2.17875 13.2468 1.74474 11.8047 1.67324 10.2657C1.65424 9.89418 1.76374 9.76267 2.13375 9.69517C2.62077 9.60517 3.12278 9.58617 3.6093 9.65767C5.66636 9.95818 7.41741 10.8777 8.88545 12.3348C9.72348 13.1643 10.3575 14.1558 11.0105 15.1243C11.705 16.1529 12.4521 17.1329 13.4036 17.9364C13.7396 18.2179 14.0076 18.4319 14.2641 18.5899C13.4906 18.6764 12.1996 18.6949 11.3165 17.9964V17.9954ZM12.2826 11.7817C12.2826 11.6167 12.4146 11.4852 12.5806 11.4852C12.6181 11.4852 12.6521 11.4927 12.6826 11.5037C12.7241 11.5187 12.7621 11.5412 12.7921 11.5752C12.8451 11.6277 12.8751 11.7027 12.8751 11.7817C12.8751 11.9467 12.7431 12.0782 12.5771 12.0782C12.4111 12.0782 12.2826 11.9467 12.2826 11.7817ZM15.2831 13.3208C15.0906 13.3998 14.8981 13.4673 14.7131 13.4748C14.4261 13.4898 14.1131 13.3733 13.9431 13.2308C13.6791 13.0093 13.4901 12.8853 13.4111 12.4988C13.3771 12.3338 13.3961 12.0782 13.4261 11.9317C13.4941 11.6162 13.4186 11.4137 13.1961 11.2297C13.0151 11.0797 12.7846 11.0382 12.5316 11.0382C12.4371 11.0382 12.3506 10.9967 12.2861 10.9632C12.1806 10.9107 12.0936 10.7792 12.1766 10.6177C12.2031 10.5652 12.3316 10.4377 12.3616 10.4152C12.7051 10.2197 13.1011 10.2837 13.4676 10.4302C13.8071 10.5692 14.0641 10.8242 14.4336 11.1847C14.8111 11.6202 14.8791 11.7402 15.0941 12.0672C15.2641 12.3228 15.4186 12.5853 15.5247 12.8858C15.5887 13.0733 15.5057 13.2268 15.2831 13.3208Z",fill:"currentColor"})}),f.jsx("rect",{x:"129.348",y:"5.5",width:"52",height:"14",rx:"2",fill:"currentColor"}),f.jsxs("g",{clipPath:"url(#dsh-wordmark-badge-clip)",children:[f.jsx("path",{d:"M132.848 8.93205H134.08V16.137H132.848V8.93205ZM136.5 8.93205H137.732V16.137H136.5V8.93205ZM133.365 13.024V11.99H137.193V13.024H133.365Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M140.397 14.432L140.672 13.453H143.202L143.532 14.432H140.397ZM140.287 16.137H139.055L141.277 8.93205H142.201L142.146 9.74605L140.947 13.915H140.969L140.287 16.137ZM145.039 16.137H143.741L143.07 13.948L143.081 13.937L141.871 9.74605L141.926 8.93205H142.817L145.039 16.137Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M146.846 8.93205H149.068C149.852 8.93205 150.443 9.11538 150.839 9.48205C151.235 9.84138 151.433 10.3327 151.433 10.956C151.433 11.22 151.396 11.4657 151.323 11.693C151.249 11.9204 151.125 12.1257 150.949 12.309C150.773 12.4924 150.531 12.65 150.223 12.782C149.922 12.9067 149.541 13.0057 149.079 13.079V13.321H146.846V12.639L148.023 12.485C148.631 12.4044 149.09 12.298 149.398 12.166C149.706 12.034 149.915 11.8764 150.025 11.693C150.135 11.5024 150.19 11.2934 150.19 11.066C150.19 10.6994 150.083 10.417 149.871 10.219C149.658 10.021 149.324 9.92205 148.87 9.92205H146.846V8.93205ZM146.395 8.93205H147.627V16.137H146.395V8.93205ZM151.917 16.093V16.137H150.366L149.024 14.322C148.87 14.1094 148.73 13.9407 148.606 13.816C148.481 13.684 148.345 13.5887 148.199 13.53C148.052 13.464 147.872 13.42 147.66 13.398C147.447 13.3687 147.176 13.3504 146.846 13.343V13.145H149.079C149.233 13.211 149.368 13.2844 149.486 13.365C149.61 13.4457 149.735 13.5447 149.86 13.662C149.992 13.7794 150.138 13.937 150.3 14.135L151.917 16.093Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M153.58 9.57005L153.591 8.93205H154.46L157.584 15.51V16.137H156.704L153.58 9.57005ZM158.024 16.137H156.968L156.88 8.93205H158.024V16.137ZM154.24 16.137H153.096V8.93205H154.152L154.24 16.137Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M159.963 8.93205H161.206V16.137H159.963V8.93205ZM160.095 9.96605V8.93205H164.858V9.96605H160.095ZM160.095 16.137V15.103H164.902V16.137H160.095ZM160.095 13.013V11.99H164.374V13.013H160.095Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M169.052 15.257C169.543 15.257 169.895 15.1654 170.108 14.982C170.328 14.7987 170.438 14.5457 170.438 14.223C170.438 14.047 170.405 13.8967 170.339 13.772C170.273 13.6474 170.152 13.5337 169.976 13.431C169.807 13.321 169.558 13.2147 169.228 13.112L168.491 12.881C167.846 12.6757 167.38 12.4044 167.094 12.067C166.808 11.7297 166.665 11.3007 166.665 10.78C166.665 10.428 166.76 10.1017 166.951 9.80105C167.142 9.50038 167.428 9.25838 167.809 9.07505C168.19 8.89172 168.663 8.80005 169.228 8.80005C169.631 8.80005 169.998 8.82938 170.328 8.88805C170.665 8.93938 171.039 9.01638 171.45 9.11905L171.274 10.175C170.834 10.0504 170.442 9.96238 170.097 9.91105C169.76 9.85238 169.463 9.82305 169.206 9.82305C168.737 9.82305 168.403 9.90738 168.205 10.076C168.007 10.2374 167.908 10.439 167.908 10.681C167.908 10.857 167.941 11.0147 168.007 11.154C168.073 11.286 168.19 11.407 168.359 11.517C168.535 11.627 168.784 11.7334 169.107 11.836L169.866 12.078C170.526 12.276 170.995 12.5327 171.274 12.848C171.553 13.156 171.692 13.585 171.692 14.135C171.692 14.5604 171.589 14.9344 171.384 15.257C171.179 15.5797 170.878 15.8327 170.482 16.016C170.093 16.1994 169.609 16.291 169.03 16.291C168.627 16.291 168.212 16.247 167.787 16.159C167.362 16.071 166.9 15.9427 166.401 15.774L166.665 14.718C167.156 14.894 167.6 15.0297 167.996 15.125C168.399 15.213 168.751 15.257 169.052 15.257Z",fill:"var(--dsw-alias-label-primary-inverted)"}),f.jsx("path",{d:"M175.809 15.257C176.3 15.257 176.652 15.1654 176.865 14.982C177.085 14.7987 177.195 14.5457 177.195 14.223C177.195 14.047 177.162 13.8967 177.096 13.772C177.03 13.6474 176.909 13.5337 176.733 13.431C176.564 13.321 176.315 13.2147 175.985 13.112L175.248 12.881C174.603 12.6757 174.137 12.4044 173.851 12.067C173.565 11.7297 173.422 11.3007 173.422 10.78C173.422 10.428 173.517 10.1017 173.708 9.80105C173.899 9.50038 174.185 9.25838 174.566 9.07505C174.947 8.89172 175.42 8.80005 175.985 8.80005C176.388 8.80005 176.755 8.82938 177.085 8.88805C177.422 8.93938 177.796 9.01638 178.207 9.11905L178.031 10.175C177.591 10.0504 177.199 9.96238 176.854 9.91105C176.517 9.85238 176.22 9.82305 175.963 9.82305C175.494 9.82305 175.16 9.90738 174.962 10.076C174.764 10.2374 174.665 10.439 174.665 10.681C174.665 10.857 174.698 11.0147 174.764 11.154C174.83 11.286 174.947 11.407 175.116 11.517C175.292 11.627 175.541 11.7334 175.864 11.836L176.623 12.078C177.283 12.276 177.752 12.5327 178.031 12.848C178.31 13.156 178.449 13.585 178.449 14.135C178.449 14.5604 178.346 14.9344 178.141 15.257C177.936 15.5797 177.635 15.8327 177.239 16.016C176.85 16.1994 176.366 16.291 175.787 16.291C175.384 16.291 174.969 16.247 174.544 16.159C174.119 16.071 173.657 15.9427 173.158 15.774L173.422 14.718C173.913 14.894 174.357 15.0297 174.753 15.125C175.156 15.213 175.508 15.257 175.809 15.257Z",fill:"var(--dsw-alias-label-primary-inverted)"})]}),f.jsxs("defs",{children:[f.jsx("clipPath",{id:"dsh-wordmark-whale-clip",children:f.jsx("rect",{width:"23.16",height:"17.0435",fill:"white",transform:"translate(0.141602 3.52185)"})}),f.jsx("clipPath",{id:"dsh-wordmark-badge-clip",children:f.jsx("rect",{width:"46",height:"14",fill:"white",transform:"translate(132.348 5.5)"})})]})]})}const yf="_bubble_owhem_8",wf={bubble:yf};function xf({label:n,side:r="right",delayMs:i=0,disabled:s=!1,maxWidth:u,children:c}){const h=R.useRef(null),p=c.ref,g=R.useCallback(Z=>{h.current=Z,typeof p=="function"?p(Z):p!=null&&(p.current=Z)},[p]),[C,v]=R.useState(null),[L,w]=R.useState(r),_=R.useRef(null),k=C===null?null:typeof n=="function"?n():n,E=C===null?0:L==="right"?C.top+(C.bottom-C.top)/2:L==="top"?C.top-8:C.bottom+8,T=12;R.useLayoutEffect(()=>{if(C===null)return;const Z=()=>{const ne=_.current;if(ne===null)return;ne.style.left=`${C.x}px`;const I=ne.getBoundingClientRect();let J=0;if(I.right>window.innerWidth-T&&(J=window.innerWidth-T-I.right),I.left+J=T;L==="bottom"&&!q&&ce&&w("top"),L==="top"&&!ce&&q&&w("bottom")};return Z(),window.addEventListener("resize",Z),()=>{window.removeEventListener("resize",Z)}},[L,C,k,r]);const B=R.useRef(null),W=R.useRef({hover:!1,focus:!1}),z=R.useCallback(()=>{B.current!==null&&(clearTimeout(B.current),B.current=null)},[]);R.useEffect(()=>(s&&(z(),W.current={hover:!1,focus:!1},v(null)),z),[z,s]);const ee=()=>{if(s)return;const Z=h.current;if(Z===null)return;const ne=Z.getBoundingClientRect();w(r),v({x:r==="right"?ne.right+10:ne.left+ne.width/2,top:ne.top,bottom:ne.bottom})},Q=()=>{if(z(),i<=0){ee();return}B.current=setTimeout(()=>{B.current=null,ee()},i)},V=()=>{z(),!W.current.hover&&!W.current.focus&&v(null)};return f.jsxs(f.Fragment,{children:[R.cloneElement(c,{ref:g,onMouseEnter:Z=>{var ne,I;(I=(ne=c.props).onMouseEnter)==null||I.call(ne,Z),W.current.hover=!0,Q()},onMouseLeave:Z=>{var ne,I;(I=(ne=c.props).onMouseLeave)==null||I.call(ne,Z),W.current.hover=!1,z(),v(null)},onFocus:Z=>{var ne,I;(I=(ne=c.props).onFocus)==null||I.call(ne,Z),W.current.focus=!0,z(),ee()},onBlur:Z=>{var ne,I;(I=(ne=c.props).onBlur)==null||I.call(ne,Z),W.current.focus=!1,V()}}),C!==null&&f.jsx("span",{ref:_,className:wf.bubble,"data-side":L,style:{left:C.x,top:E,...u===void 0?{}:{maxWidth:u}},role:"tooltip",children:k})]})}const _f="_toast_fvpz7_7",Lf="_icon_fvpz7_35",kf="_text_fvpz7_42",_l={toast:_f,icon:Lf,text:kf},Sf=3e3,jf=1e3;function Ef({text:n,icon:r,anchor:i,onDone:s}){R.useEffect(()=>{const h=setTimeout(s,Sf+jf);return()=>{clearTimeout(h)}},[s]);const[u,c]=R.useState(null);return R.useLayoutEffect(()=>{if(i==null)return;const h=()=>{const p=i.getBoundingClientRect();c(p.left+p.width/2)};return h(),window.addEventListener("resize",h),()=>{window.removeEventListener("resize",h)}},[i]),ln.createPortal(f.jsxs("div",{className:_l.toast,role:"alert",style:u===null?void 0:{left:u},children:[r!==void 0&&f.jsx("span",{className:_l.icon,"aria-hidden":!0,children:r}),f.jsx("span",{className:_l.text,children:n})]}),document.body)}const bf="_root_4qrvp_1",Mf="_container_4qrvp_30",Of="_expandedTopLevel_4qrvp_39",Nf="_topLevelBracket_4qrvp_46",Rf="_expandedTopLevelContainer_4qrvp_51",Pf="_row_4qrvp_55",Tf="_children_4qrvp_60",If="_expander_4qrvp_78",$f="_label_4qrvp_95",Hf="_clickableLabel_4qrvp_101",Vf="_stringValue_4qrvp_105",Af="_numberValue_4qrvp_109",Df="_keywordValue_4qrvp_113",Ff="_otherValue_4qrvp_117",Bf="_punctuation_4qrvp_121",zf="_preview_4qrvp_125",Zf="_previewProperty_4qrvp_129",Uf="_previewEllipsis_4qrvp_133",Wf="_copyAnchor_4qrvp_137",qf="_copyButton_4qrvp_143",Qf="_collapseIcon_4qrvp_202",fe={root:bf,container:Mf,expandedTopLevel:Of,topLevelBracket:Nf,expandedTopLevelContainer:Rf,row:Pf,children:Tf,expander:If,label:$f,clickableLabel:Hf,stringValue:Vf,numberValue:Af,keywordValue:Df,otherValue:Ff,punctuation:Bf,preview:zf,previewProperty:Zf,previewEllipsis:Uf,copyAnchor:Wf,copyButton:qf,collapseIcon:Qf},Kf=4,Jf=5,W0=2,q0={copyValue:"Copy value",copyJson:"Copy JSON",copyPath:"Copy property path",copyPrettyJson:"Copy pretty JSON",copyCompactJson:"Copy compact JSON",copied:"Copied",copyFailed:"Copy failed",collapseNode:"Collapse JSON node",expandNode:"Expand JSON node",copyButtonTitle:n=>`${n}; right-click for copy options`};function Gf(n){return[{id:"value",label:n.copyValue},{id:"json",label:n.copyJson},{id:"path",label:n.copyPath}]}function Yf(n){return[{id:"prettyJson",label:n.copyPrettyJson},{id:"json",label:n.copyCompactJson},{id:"path",label:n.copyPath}]}function Yo(n){return typeof n=="object"&&n!==null&&!(n instanceof Date)}function Xo(n){return Array.isArray(n)?n.map((r,i)=>[String(i),r]):Object.keys(n).map(r=>[r,n[r]])}function du(n){return Array.isArray(n)?["[","]"]:["{","}"]}function Xf(n){return n===null?f.jsx("span",{className:fe.keywordValue,children:"null"}):typeof n=="string"?f.jsx("span",{className:fe.stringValue,children:JSON.stringify(n)}):typeof n=="number"?f.jsx("span",{className:fe.numberValue,children:String(n)}):typeof n=="boolean"?f.jsx("span",{className:fe.keywordValue,children:String(n)}):typeof n=="bigint"?f.jsx("span",{className:fe.otherValue,children:n.toString()}):typeof n>"u"?f.jsx("span",{className:fe.otherValue,children:"undefined"}):typeof n=="symbol"?f.jsx("span",{className:fe.otherValue,children:n.description??"Symbol"}):typeof n=="function"?f.jsx("span",{className:fe.otherValue,children:n.name||"Function"}):null}function ec(n,r){if(!Yo(n))return Xf(n);const i=Array.isArray(n),s=Xo(n),u=i?Jf:Kf,c=s.slice(0,u),[h,p]=du(n);return f.jsxs(f.Fragment,{children:[f.jsx("span",{className:fe.punctuation,children:h}),r>=W0?f.jsx("span",{className:fe.previewEllipsis,children:"…"}):c.map(([g,C],v)=>f.jsxs("span",{children:[v>0&&f.jsx("span",{className:fe.punctuation,children:", "}),!i&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:fe.previewProperty,children:g}),f.jsx("span",{className:fe.punctuation,children:": "})]}),ec(C,r+1)]},g)),ru&&f.jsx("span",{className:fe.previewEllipsis,children:", …"}),f.jsx("span",{className:fe.punctuation,children:p})]})}function ed(n){return n===null?f.jsx("span",{className:fe.keywordValue,children:"null"}):typeof n=="string"?f.jsx("span",{className:fe.stringValue,children:JSON.stringify(n)}):typeof n=="boolean"?f.jsx("span",{className:fe.keywordValue,children:String(n)}):typeof n=="number"?f.jsx("span",{className:fe.numberValue,children:String(n)}):typeof n=="bigint"?f.jsx("span",{className:fe.numberValue,children:`${n.toString()}n`}):n instanceof Date?f.jsx("span",{className:fe.otherValue,children:n.toISOString()}):typeof n=="function"?f.jsxs("span",{className:fe.otherValue,children:["function() ","{ }"]}):typeof n>"u"?f.jsx("span",{className:fe.otherValue,children:"undefined"}):f.jsx("span",{className:fe.otherValue,children:n.toString()})}function td(n){return n===""?'""':n}function Zl(n){return n.map(r=>typeof r=="number"?`n${String(r)}`:`s${String(r.length)}:${r}`).join("/")}function tc(n){n.focus()}function nd(n,r){const i=n.closest('[role="tree"]');if(i===null)return;const s=Array.from(i.querySelectorAll("[data-json-expander]")),u=s.indexOf(n);if(u<0||s.length===0)return;const c=(u+r+s.length)%s.length,h=s[c];h!==void 0&&tc(h)}function Ll({field:n,expandable:r,onToggle:i}){return n===void 0?null:f.jsxs("span",{className:ye(fe.label,r&&fe.clickableLabel),onClick:r?i:void 0,children:[td(n),":"]})}function Ul({field:n,initialExpanded:r,labels:i,lastElement:s,onClaimTabStop:u,onRowHover:c,path:h,tabStopId:p,value:g}){const C=R.useId(),v=R.useRef(null),[L,w]=R.useState(r),_=Zl(h),k=Yo(g),E=k?Xo(g):[],T=E.length>0,B=()=>{w(V=>!V),tc(v.current)},W=V=>{if(V.key==="ArrowRight"||V.key==="ArrowLeft"){V.preventDefault(),w(V.key==="ArrowRight");return}(V.key==="ArrowUp"||V.key==="ArrowDown")&&(V.preventDefault(),nd(V.currentTarget,V.key==="ArrowUp"?-1:1))},z=(V,Z)=>f.jsx("div",{className:fe.row,role:"treeitem","aria-expanded":Z,onMouseOver:ne=>{ne.stopPropagation(),c(ne.currentTarget,{path:h,value:g})},children:V});if(!k)return z(f.jsxs(f.Fragment,{children:[f.jsx(Ll,{field:n,expandable:!1,onToggle:B}),ed(g),!s&&f.jsx("span",{className:fe.punctuation,children:","})]}));const[ee,Q]=du(g);return T?z(f.jsxs(f.Fragment,{children:[f.jsx("span",{ref:v,className:ye(fe.expander,L?fe.collapseIcon:fe.expandIcon),"data-json-expander":!0,role:"button","aria-label":L?i.collapseNode:i.expandNode,"aria-expanded":L,"aria-controls":L?C:void 0,tabIndex:p===_?0:-1,onFocus:()=>{u(_)},onClick:B,onKeyDown:W}),f.jsx(Ll,{field:n,expandable:!0,onToggle:B}),f.jsx("span",{className:fe.preview,children:ec(g,0)}),!s&&f.jsx("span",{className:fe.punctuation,children:","}),L&&f.jsx("ul",{id:C,role:"group",className:fe.children,children:E.map(([V,Z],ne)=>f.jsx(Ul,{field:V,value:Z,path:[...h,Array.isArray(g)?ne:V],labels:i,lastElement:ne===E.length-1,initialExpanded:!1,tabStopId:p,onClaimTabStop:u,onRowHover:c},V))})]}),L):z(f.jsxs(f.Fragment,{children:[f.jsx(Ll,{field:n,expandable:!1,onToggle:B}),f.jsx("span",{className:fe.punctuation,children:ee}),f.jsx("span",{className:fe.punctuation,children:Q}),!s&&f.jsx("span",{className:fe.punctuation,children:","})]}))}function rd(n){return n.reduce((r,i)=>typeof i=="number"?`${r}[${String(i)}]`:/^[A-Za-z_$][\w$]*$/.test(i)?`${r}.${i}`:`${r}[${JSON.stringify(i)}]`,"$")}function od(n,r){return r==="path"?rd(n.path):r==="prettyJson"?JSON.stringify(n.value,null,2):r==="json"?JSON.stringify(n.value):typeof n.value=="string"?n.value:typeof n.value>"u"?"undefined":typeof n.value=="bigint"?n.value.toString():typeof n.value=="symbol"?n.value.description??"Symbol":typeof n.value=="function"?n.value.name||"Function":JSON.stringify(n.value)}function id({data:n,label:r="JSON",className:i,copyable:s=!0,expandTopLevel:u=!0,labels:c}){const h=R.useMemo(()=>c===void 0?q0:{...q0,...c},[c]),p=Xo(n),g=p.findIndex(([,O])=>Yo(O)&&Xo(O).length>0),C=p[g],v=u?C===void 0?null:Zl([Array.isArray(n)?g:C[0]]):Yo(n)&&p.length>0?Zl([]):null,L=R.useRef(null),w=R.useRef(),_=R.useRef(null),k=R.useRef(!1),E=R.useRef(),[T,B]=R.useState(),[W,z]=R.useState("idle"),[ee,Q]=R.useState(!1),[V,Z]=R.useState(v),ne=O=>{var oe;(oe=w.current)==null||oe.removeAttribute("data-json-copy-active"),w.current=O,O==null||O.setAttribute("data-json-copy-active","")},I=()=>{ne(void 0),B(void 0),z("idle"),k.current=!1,Q(!1)},J=O=>{const oe=L.current;if(oe===null)throw new Error("JsonTree root is not mounted");const de=oe.getBoundingClientRect(),ve=O.getBoundingClientRect();return{left:de.left+oe.clientWidth-26,side:ve.top-de.top>oe.clientHeight/2?"top":"bottom",top:ve.top}},q=(O,oe)=>{const de=J(O);B({...oe,...de})},ce=O=>{const oe=J(O);B(de=>de===void 0?de:{...de,...oe})};R.useEffect(()=>()=>{var O;E.current!==void 0&&clearTimeout(E.current),(O=w.current)==null||O.removeAttribute("data-json-copy-active")},[]),R.useEffect(()=>{var O;(O=w.current)==null||O.removeAttribute("data-json-copy-active"),w.current=void 0,k.current=!1,B(void 0),z("idle"),Q(!1),Z(v)},[n,u,v]),R.useEffect(()=>{const O=()=>{const oe=w.current;oe!==void 0&&ce(oe)};return window.addEventListener("scroll",O,!0),window.addEventListener("resize",O),()=>{window.removeEventListener("scroll",O,!0),window.removeEventListener("resize",O)}},[]);const le=(O,oe)=>{!s||k.current||w.current!==O&&(ne(O),z("idle"),k.current=!1,Q(!1),q(O,oe))},he=O=>{!s||k.current||O.target instanceof Element&&O.target.closest("[data-json-copy-button]")===null&&I()},pe=O=>{const oe=w.current;oe!==void 0&&ce(oe)},Se=async O=>{if(T!==void 0){try{await navigator.clipboard.writeText(od(T,O)),z("copied")}catch{z("failed")}E.current!==void 0&&clearTimeout(E.current),E.current=setTimeout(()=>{z("idle")},1500)}},[we,U]=du(n),ie=typeof(T==null?void 0:T.value)=="object"&&T.value!==null,K=ie?"prettyJson":"value",j=W==="copied"?h.copied:W==="failed"?h.copyFailed:ie?h.copyPrettyJson:h.copyValue;return f.jsxs("div",{ref:L,className:ye(fe.root,i),onMouseOver:he,onMouseLeave:()=>{k.current||I()},onScroll:pe,children:[u?f.jsxs("div",{className:fe.expandedTopLevel,children:[f.jsx("div",{className:ye(fe.row,fe.topLevelBracket),"data-json-root-row":!0,onMouseOver:O=>{O.stopPropagation(),le(O.currentTarget,{path:[],value:n})},children:f.jsx("span",{className:fe.punctuation,children:we})}),f.jsx("div",{"aria-label":r,className:ye(fe.container,fe.expandedTopLevelContainer),role:"tree",children:p.map(([O,oe],de)=>f.jsx(Ul,{field:O,value:oe,path:[Array.isArray(n)?de:O],labels:h,lastElement:de===p.length-1,initialExpanded:!1,tabStopId:V,onClaimTabStop:Z,onRowHover:le},O))}),f.jsx("div",{className:ye(fe.row,fe.topLevelBracket),children:f.jsx("span",{className:fe.punctuation,children:U})})]}):f.jsx("div",{"aria-label":r,className:fe.container,role:"tree",children:f.jsx(Ul,{value:n,path:[],labels:h,lastElement:!0,initialExpanded:!0,tabStopId:V,onClaimTabStop:Z,onRowHover:le})}),T!==void 0&&f.jsx("span",{className:fe.copyAnchor,style:{left:T.left,top:T.top},children:f.jsx(Y3,{open:ee,compact:!0,portal:!0,align:"end",side:T.side,anchor:f.jsx("button",{ref:_,type:"button",className:fe.copyButton,"data-json-copy-button":!0,"data-state":W,"aria-label":j,title:h.copyButtonTitle(j),onClick:()=>void Se(K),onContextMenu:O=>{O.preventDefault(),O.stopPropagation(),k.current=!0,Q(!0)},children:W==="copied"?f.jsx(cu,{size:12}):f.jsx(Q3,{size:12})}),items:ie?Yf(h):Gf(h),onSelect:O=>{Se(O),k.current=!1,Q(!1)},onClose:I,getAnchorRect:()=>_.current.getBoundingClientRect()})})]})}var kl,Q0;function sd(){if(Q0)return kl;Q0=1;const n=[[{color:"0, 0, 0",class:"ansi-black"},{color:"187, 0, 0",class:"ansi-red"},{color:"0, 187, 0",class:"ansi-green"},{color:"187, 187, 0",class:"ansi-yellow"},{color:"0, 0, 187",class:"ansi-blue"},{color:"187, 0, 187",class:"ansi-magenta"},{color:"0, 187, 187",class:"ansi-cyan"},{color:"255,255,255",class:"ansi-white"}],[{color:"85, 85, 85",class:"ansi-bright-black"},{color:"255, 85, 85",class:"ansi-bright-red"},{color:"0, 255, 0",class:"ansi-bright-green"},{color:"255, 255, 85",class:"ansi-bright-yellow"},{color:"85, 85, 255",class:"ansi-bright-blue"},{color:"255, 85, 255",class:"ansi-bright-magenta"},{color:"85, 255, 255",class:"ansi-bright-cyan"},{color:"255, 255, 255",class:"ansi-bright-white"}]],r=/(https?:\/\/(?:[A-Za-z0-9#;/?:@=+$',_.!~*()[\]-]|&|%[A-Fa-f0-9]{2})+)/gm;class i{static escapeForHtml(u){return new i().escapeForHtml(u)}static linkify(u){return new i().linkify(u)}static ansiToHtml(u,c){return new i().ansiToHtml(u,c)}static ansiToJson(u,c){return new i().ansiToJson(u,c)}static ansiToText(u){return new i().ansiToText(u)}constructor(){this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0,this.decorations=[]}setupPalette(){this.PALETTE_COLORS=[];for(let p=0;p<2;++p)for(let g=0;g<8;++g)this.PALETTE_COLORS.push(n[p][g].color);let u=[0,95,135,175,215,255],c=(p,g,C)=>u[p]+", "+u[g]+", "+u[C];for(let p=0;p<6;++p)for(let g=0;g<6;++g)for(let C=0;C<6;++C)this.PALETTE_COLORS.push(c(p,g,C));let h=8;for(let p=0;p<24;++p,h+=10)this.PALETTE_COLORS.push(h+", "+h+", "+h)}escapeForHtml(u){return u.replace(/[&<>\"]/gm,c=>c=="&"?"&":c=='"'?""":c=="<"?"<":c==">"?">":"")}linkify(u){return u.replace(r,c=>`${c}`)}ansiToHtml(u,c){return this.process(u,c,!0)}ansiToJson(u,c){return c=c||{},c.json=!0,c.clearLine=!1,this.process(u,c,!0)}ansiToText(u){return this.process(u,{},!1)}process(u,c,h){let p=this,g=u.split(/\033\[/),C=g.shift();c==null&&(c={}),c.clearLine=/\r/.test(u);let v=g.map(L=>this.processChunk(L,c,h));if(c&&c.json){let L=p.processChunkJson("");return L.content=C,L.clearLine=c.clearLine,v.unshift(L),c.remove_empty&&(v=v.filter(w=>!w.isEmpty())),v}else v.unshift(C);return v.join("")}processChunkJson(u,c,h){c=typeof c>"u"?{}:c;let p=c.use_classes=typeof c.use_classes<"u"&&c.use_classes,g=c.key=p?"class":"color",C={content:u,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,isInverted:!1,clearLine:c.clearLine,decoration:null,decorations:[],was_processed:!1,isEmpty:()=>!C.content},v=u.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!v)return C;C.content=v[4];let L=v[2].split(";");if(v[1]!==""||v[3]!=="m"||!h)return C;let w=this;for(;L.length>0;){let _=L.shift(),k=parseInt(_);if(isNaN(k)||k===0)w.fg=w.bg=null,w.decorations=[];else if(k===1)w.decorations.push("bold");else if(k===2)w.decorations.push("dim");else if(k===3)w.decorations.push("italic");else if(k===4)w.decorations.push("underline");else if(k===5)w.decorations.push("blink");else if(k===7)w.decorations.push("reverse");else if(k===8)w.decorations.push("hidden");else if(k===9)w.decorations.push("strikethrough");else if(k===21)w.removeDecoration("bold");else if(k===22)w.removeDecoration("bold"),w.removeDecoration("dim");else if(k===23)w.removeDecoration("italic");else if(k===24)w.removeDecoration("underline");else if(k===25)w.removeDecoration("blink");else if(k===27)w.removeDecoration("reverse");else if(k===28)w.removeDecoration("hidden");else if(k===29)w.removeDecoration("strikethrough");else if(k===39)w.fg=null;else if(k===49)w.bg=null;else if(k>=30&&k<38)w.fg=n[0][k%10][g];else if(k>=90&&k<98)w.fg=n[1][k%10][g];else if(k>=40&&k<48)w.bg=n[0][k%10][g];else if(k>=100&&k<108)w.bg=n[1][k%10][g];else if(k===38||k===48){let E=k===38;if(L.length>=1){let T=L.shift();if(T==="5"&&L.length>=1){let B=parseInt(L.shift());if(B>=0&&B<=255)if(!p)this.PALETTE_COLORS||w.setupPalette(),E?w.fg=this.PALETTE_COLORS[B]:w.bg=this.PALETTE_COLORS[B];else{let W=B>=16?"ansi-palette-"+B:n[B>7?1:0][B%8].class;E?w.fg=W:w.bg=W}}else if(T==="2"&&L.length>=3){let B=parseInt(L.shift()),W=parseInt(L.shift()),z=parseInt(L.shift());if(B>=0&&B<=255&&W>=0&&W<=255&&z>=0&&z<=255){let ee=B+", "+W+", "+z;p?E?(w.fg="ansi-truecolor",w.fg_truecolor=ee):(w.bg="ansi-truecolor",w.bg_truecolor=ee):E?w.fg=ee:w.bg=ee}}}}}return w.fg===null&&w.bg===null&&w.decorations.length===0||(C.fg=w.fg,C.bg=w.bg,C.fg_truecolor=w.fg_truecolor,C.bg_truecolor=w.bg_truecolor,C.decorations=w.decorations,C.decoration=w.decorations.slice(-1).pop()||null,C.was_processed=!0),C}processChunk(u,c,h){c=c||{};let p=this.processChunkJson(u,c,h),g=c.use_classes;if(p.decorations=p.decorations.filter(k=>{if(k==="reverse"){p.fg||(p.fg=n[0][7][g?"class":"color"]),p.bg||(p.bg=n[0][0][g?"class":"color"]);let E=p.fg;p.fg=p.bg,p.bg=E;let T=p.fg_truecolor;return p.fg_truecolor=p.bg_truecolor,p.bg_truecolor=T,p.isInverted=!0,!1}return!0}),c.json)return p;if(p.isEmpty())return"";if(!p.was_processed)return p.content;let C=[],v=[],L=[],w={},_=k=>{let E=[],T;for(T in k)k.hasOwnProperty(T)&&E.push("data-"+T+'="'+this.escapeForHtml(k[T])+'"');return E.length>0?" "+E.join(" "):""};return p.isInverted&&(w["ansi-is-inverted"]="true"),p.fg&&(g?(C.push(p.fg+"-fg"),p.fg_truecolor!==null&&(w["ansi-truecolor-fg"]=p.fg_truecolor,p.fg_truecolor=null)):C.push("color:rgb("+p.fg+")")),p.bg&&(g?(C.push(p.bg+"-bg"),p.bg_truecolor!==null&&(w["ansi-truecolor-bg"]=p.bg_truecolor,p.bg_truecolor=null)):C.push("background-color:rgb("+p.bg+")")),p.decorations.forEach(k=>{if(g){v.push("ansi-"+k);return}k==="bold"?v.push("font-weight:bold"):k==="dim"?v.push("opacity:0.5"):k==="italic"?v.push("font-style:italic"):k==="hidden"?v.push("visibility:hidden"):k==="strikethrough"?L.push("line-through"):L.push(k)}),L.length&&v.push("text-decoration:"+L.join(" ")),g?'"+p.content+"":'"+p.content+""}removeDecoration(u){const c=this.decorations.indexOf(u);c>=0&&this.decorations.splice(c,1)}}return kl=i,kl}var ld=sd();const ud=j1(ld),ad={"0,0,0":"var(--dsw-alias-label-primary)","255,255,255":"var(--dsw-alias-label-primary)","85,85,85":"var(--dsw-alias-label-tertiary)","187,0,0":"var(--dsw-alias-state-error-primary)","255,85,85":"var(--dsw-alias-state-error-secondary)","0,187,0":"var(--dsw-alias-state-success-primary)","0,255,0":"var(--dsw-alias-state-success-secondary)","187,187,0":"var(--dsw-alias-state-warn-primary)","255,255,85":"var(--dsw-alias-state-warn-secondary)","0,0,187":"var(--dsw-alias-state-business-primary)","85,85,255":"var(--dsw-static-blue-400)"},cd={bold:{fontWeight:700},dim:{opacity:.7},italic:{fontStyle:"italic"},underline:{textDecoration:"underline"},strikethrough:{textDecoration:"line-through"},hidden:{visibility:"hidden"}},fd=/\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)?/g,dd=/\u001b(?!\[)[\u0020-\u002f]*[\u0030-\u007e]?/g,hd=/[\u0000-\u0007\u000b-\u001a\u001c-\u001f\u007f]/g,pd=/\r|\u0008|\u001b\[[\u0030-\u003f]*[\u0020-\u002f]*K/,md=/\u001b\[([\u0030-\u003f]*)[\u0020-\u002f]*m/g,K0=8,Cd=/^[\p{Mn}\p{Me}\p{Cf}\u200b-\u200f\u2060]$/u,gd=new RegExp("\\p{Script=Han}|\\p{Script=Hiragana}|\\p{Script=Katakana}|\\p{Script=Hangul}|\\p{Emoji_Presentation}|[\\uff01-\\uff60\\u3000-\\u303e]","u");function Sl(n){const r=n.codePointAt(0);return r===void 0||r<4352?!1:gd.test(n)}const y1={fg:"",bg:"",attrs:[]},vd={22:["1","2"],23:["3"],24:["4"],25:["5","6"],27:["7"],28:["8"],29:["9"]};function nc(n,r){const i=r===""?["0"]:r.split(";");let s=n;for(let u=0;u!h.includes(g))};continue}const p=Number(c);if(c==="39"){s={...s,fg:""};continue}if(c==="49"){s={...s,bg:""};continue}if(p>=30&&p<=37||p>=90&&p<=97){s={...s,fg:c};continue}if(p>=40&&p<=47||p>=100&&p<=107){s={...s,bg:c};continue}s.attrs.includes(c)||(s={...s,attrs:[...s.attrs,c]})}return s}function J0(n){const r=[...n.attrs];return n.fg!==""&&r.push(n.fg),n.bg!==""&&r.push(n.bg),r.length===0?"":`\x1B[${r.join(";")}m`}function Bo(n,r){return n.fg===r.fg&&n.bg===r.bg&&n.attrs.length===r.attrs.length&&n.attrs.every((i,s)=>i===r.attrs[s])}function yd(n,r){var L;const i=/\u001b\[([\u0030-\u003f]*)[\u0020-\u002f]*([\u0040-\u007e])/g,s=[];let u=0,c=r,h=0;const p=(w,_)=>{var E;const k=s[w];(k==null?void 0:k.spacer)===!0&&w>0?s[w-1]={sgr:c,char:_}:k!==void 0&&Sl(k.char)&&((E=s[w+1])==null?void 0:E.spacer)===!0&&(s[w+1]={sgr:c,char:_}),s[w]={sgr:c,char:_}},g=w=>{for(const _ of w){if(_==="\r"){u=0;continue}if(_==="\b"){u=Math.max(0,u-1);continue}if(_===" "){const k=u+K0-u%K0;for(;u0?s[u-1]:void 0;k!==void 0&&(s[u-1]={sgr:k.sgr,char:k.char+_});continue}p(u," "),s[u]={sgr:c,char:_},u++,Sl(_)&&(s[u]={sgr:c,char:"",spacer:!0},u++)}};for(const w of n.matchAll(i)){g(n.slice(h,w.index)),h=w.index+w[0].length;const _=String(w[1]),k=String(w[2]);if(k==="K"){const E=String(_.split(";")[0]);if(E==="1")for(let T=0;T<=u;T++)p(T," ");else s.length=E==="2"?0:u;continue}k==="m"&&(c=nc(c,_))}g(n.slice(h));let C="",v=r;for(let w=0;w0&&Sl(((L=s[w-1])==null?void 0:L.char)??"");C+=_.spacer===!0&&!k?" ":_.char}return Bo(v,c)||(Bo(v,y1)||(C+="\x1B[0m"),C+=J0(c)),{text:C,sgr:c}}function wd(n){const r=[];let i=y1;for(const s of n.split(` +`)){const u=s.replace(/\r+$/,"");if(pd.test(u)){const c=yd(u,i);r.push(c.text),i=c.sgr;continue}r.push(u);for(const c of u.matchAll(md))i=nc(i,String(c[1]))}return r.join(` +`)}function xd(n){const r=n.replace(fd,"").replace(dd,"");return wd(r).replace(hd,"")}function _d(n){const r={},i=n.bg===null?void 0:`rgb(${n.bg})`;if(i!==void 0&&(r.backgroundColor=i),n.fg!==null){const s=`rgb(${n.fg})`;r.color=i===void 0?ad[n.fg.replace(/\s+/g,"")]??s:s}for(const s of n.decorations)Object.assign(r,cd[s]);return Object.keys(r).length===0?void 0:r}function Ld(n){let r=[];const i=[r];for(const s of ud.ansiToJson(xd(n),{json:!0,remove_empty:!0})){const u=_d(s);for(const[c,h]of s.content.split(` +`).entries())c>0&&(r=[],i.push(r)),h!==""&&r.push({text:h,style:u})}return i}function rc(n,r,i){const s=n-r,u=Math.ceil(r/2);return{hidden:s,capped:s>0&&!i,headLines:u,tailLines:r-u}}const kd=1e3;function oc(n){const[r,i]=R.useState(!1),s=R.useCallback(()=>{r||br(n).then(u=>{u&&(i(!0),window.setTimeout(()=>{i(!1)},kd))})},[r,n]);return{copied:r,onCopy:s}}const Sd="_block_10eou_7",jd="_header_10eou_38",Ed="_prompt_10eou_76",bd="_promptLine_10eou_84",Md="_runState_10eou_97",Od="_runStateLabel_10eou_105",Nd="_cwd_10eou_114",Rd="_command_10eou_122",Pd="_status_10eou_134",Td="_copyButton_10eou_142",Id="_output_10eou_162",$d="_line_10eou_186",Hd="_expand_10eou_191",Vd="_empty_10eou_207",ot={block:Sd,header:jd,prompt:Ed,promptLine:bd,runState:Md,runStateLabel:Od,cwd:Nd,command:Rd,status:Pd,copyButton:Td,output:Id,line:$d,expand:Hd,empty:Vd},ic=16,G0={signal:n=>`信� ${n}`,exitCode:n=>`退出� ${n}`,running:"�行中",failed:"失败",done:"已完�",copy:"�制",copied:"�制�功",noOutput:"无输出",collapseAria:"收起输出",collapse:"收起",expandAria:n=>`展开其余 ${n} 行输出`,expand:n=>`… 其余 ${n} 行`};function Ad(n,r){const i=n.replace(/[/\\]+$/,"");if(r!==void 0&&i===r.replace(/[/\\]+$/,""))return"~";const s=i.split(/[/\\]/).pop();return s===void 0||s===""?n:s}function sc(n,r,i){if(r!==void 0)return i.signal(r);if(n!==void 0&&n!==0)return i.exitCode(n)}function Dd(n,r,i,s){return n?{state:"ongoing",label:s.running}:sc(r,i,s)!==void 0?{state:"error",label:s.failed}:{state:"done",label:s.done}}function Y0(n){return n.map((r,i)=>r.style===void 0?r.text:f.jsx("span",{style:r.style,children:r.text},i))}function Fd({command:n,cwd:r,home:i,output:s,exitCode:u,signal:c,running:h=!1,maxLines:p=ic,className:g,labels:C}){const v=R.useMemo(()=>C===void 0?G0:{...G0,...C},[C]),L=s??"",w=R.useMemo(()=>{const J=Ld(L),q=J[J.length-1];return J.length>1&&q!==void 0&&q.every(le=>le.text==="")?J.slice(0,-1):J},[L]),[_,k]=R.useState(!1),{copied:E,onCopy:T}=oc(L),B=R.useCallback(()=>{k(J=>!J)},[]),W=sc(u,c,v),z=Dd(h,u,c,v),ee=R.useMemo(()=>(n.endsWith(` +`)?n.slice(0,-1):n).split(` +`),[n]),Q=w.every(J=>J.every(q=>q.text.trim()==="")),{hidden:V,capped:Z,headLines:ne,tailLines:I}=rc(w.length,p,_);return f.jsxs("div",{className:ye(ot.block,g),"data-terminal":"","data-running":h?"":void 0,children:[f.jsxs("div",{className:ot.header,children:[f.jsxs("div",{className:ot.prompt,children:[f.jsx("span",{className:ot.runStateLabel,children:z.label}),ee.map((J,q)=>f.jsxs("div",{className:ot.promptLine,children:[q===0&&f.jsx(Z3,{state:z.state,className:ot.runState}),f.jsx("span",{className:ot.cwd,children:q>0||r===void 0?"$":Ad(r,i)}),f.jsx("span",{className:ot.command,children:J})]},q))]}),W!==void 0&&f.jsx(J3,{className:ot.status,children:W}),!h&&!Q&&f.jsx("button",{type:"button",className:ot.copyButton,onClick:T,children:E?v.copied:v.copy})]}),!h&&(Q?f.jsx("div",{className:ot.empty,children:v.noOutput}):f.jsxs("div",{className:ot.output,children:[(Z?w.slice(0,ne):w).map((J,q)=>f.jsx("div",{className:ot.line,children:Y0(J)},q)),V>0&&f.jsx("button",{type:"button",className:ot.expand,"aria-expanded":_,"aria-label":_?v.collapseAria:v.expandAria(V),onClick:B,children:_?v.collapse:v.expand(V)}),Z&&w.slice(w.length-I).map((J,q)=>f.jsx("div",{className:ot.line,children:Y0(J)},q))]}))]})}const Bd="modulepreload",zd=function(n){return"/"+n},X0={},He=function(r,i,s){let u=Promise.resolve();if(i&&i.length>0){let h=function(C){return Promise.all(C.map(v=>Promise.resolve(v).then(L=>({status:"fulfilled",value:L}),L=>({status:"rejected",reason:L}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),g=(p==null?void 0:p.nonce)||(p==null?void 0:p.getAttribute("nonce"));u=h(i.map(C=>{if(C=zd(C),C in X0)return;X0[C]=!0;const v=C.endsWith(".css"),L=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${C}"]${L}`))return;const w=document.createElement("link");if(w.rel=v?"stylesheet":Bd,v||(w.as="script"),w.crossOrigin="",w.href=C,g&&w.setAttribute("nonce",g),document.head.appendChild(w),v)return new Promise((_,k)=>{w.addEventListener("load",_),w.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${C}`)))})}))}function c(h){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=h,window.dispatchEvent(p),!p.defaultPrevented)throw h}return u.then(h=>{for(const p of h||[])p.status==="rejected"&&c(p.reason);return r().catch(c)})},Zd=[F5,B5,z5],Ud=new Map([["python",()=>He(()=>import("./langs/python-B6aJPvgy.js"),[])],["ruby",()=>He(()=>import("./langs/ruby-DEItuUFs.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))],["go",()=>He(()=>import("./langs/go-C27-OAKa.js"),[])],["rust",()=>He(()=>import("./langs/rust-B1yitclQ.js"),[])],["java",()=>He(()=>import("./langs/java-CylS5w8V.js"),[])],["c",()=>He(()=>import("./langs/c-BIGW1oBm.js"),[])],["cpp",()=>He(()=>import("./langs/cpp-DIPi6g--.js"),__vite__mapDeps([8,9,5]))],["csharp",()=>He(()=>import("./langs/csharp-DSvCPggb.js"),[])],["kotlin",()=>He(()=>import("./langs/kotlin-BdnUsdx6.js"),[])],["swift",()=>He(()=>import("./langs/swift-D82vCrfD.js"),[])],["php",()=>He(()=>import("./langs/php-D-uCvoST.js"),__vite__mapDeps([12,1,2,3,4,5,6,7]))],["yaml",()=>He(()=>import("./langs/yaml-Buea-lGh.js"),[])],["toml",()=>He(()=>import("./langs/toml-vGWfd6FD.js"),[])],["ini",()=>He(()=>import("./langs/ini-BEwlwnbL.js"),[])],["markdown",()=>He(()=>import("./langs/markdown-Cvjx9yec.js"),[])],["mdx",()=>He(()=>import("./langs/mdx-Cmh6b_Ma.js"),[])],["html",()=>He(()=>import("./langs/html-CfGypltT.js").then(n=>n.a),__vite__mapDeps([1,2]))],["css",()=>He(()=>import("./langs/css-CLj8gQPS.js"),[])],["scss",()=>He(()=>import("./langs/scss-D5BDwBP9.js"),__vite__mapDeps([13,2]))],["less",()=>He(()=>import("./langs/less-B1dDrJ26.js"),[])],["sql",()=>He(()=>import("./langs/sql-CRqJ_cUM.js"),[])],["xml",()=>He(()=>import("./langs/xml-sdJ4AIDG.js"),__vite__mapDeps([3,4]))],["lua",()=>He(()=>import("./langs/lua-BaeVxFsk.js"),__vite__mapDeps([10,9]))]]),lc=new Map([["typescript","typescript"],["ts","typescript"],["tsx","typescript"],["javascript","typescript"],["js","typescript"],["jsx","typescript"],["shellscript","shellscript"],["bash","shellscript"],["sh","shellscript"],["shell","shellscript"],["zsh","shellscript"],["json","json"],["jsonc","json"],["py","python"],["python","python"],["rb","ruby"],["ruby","ruby"],["go","go"],["rs","rust"],["rust","rust"],["java","java"],["c","c"],["cpp","cpp"],["cs","csharp"],["csharp","csharp"],["kotlin","kotlin"],["swift","swift"],["php","php"],["yaml","yaml"],["yml","yaml"],["toml","toml"],["ini","ini"],["md","markdown"],["markdown","markdown"],["mdx","mdx"],["html","html"],["css","css"],["scss","scss"],["less","less"],["sql","sql"],["xml","xml"],["lua","lua"]]),Wd=H5({name:"css-variables",variablePrefix:"--shiki-",fontStyle:!0}),qd=V5({forgiving:!0,regexConstructor:n=>D5(n,{lazyCompileLength:Number.POSITIVE_INFINITY})});let e3;const Qd=[{lang:"typescript",code:"const answer: number = 42"},{lang:"shellscript",code:`printf '%s\\n' "$HOME"`},{lang:"json",code:'{"ready":true}'}];function Kd(){const n=A5({themes:[Wd],langs:Zd,engine:qd});for(const r of Qd)n.codeToTokens(r.code,{lang:r.lang,theme:"css-variables",tokenizeTimeLimit:0});return n}function k1(){return e3??(e3=Kd()),e3}const t3=new Set,Wl=new Set;let uc=0;function ac(n){return Wl.add(n),()=>{Wl.delete(n)}}function ei(){return uc}function cc(n){const r=Ud.get(n);return r===void 0||k1().getLoadedLanguages().includes(n)?!0:(t3.has(n)||(t3.add(n),r().then(i=>{k1().loadLanguageSync(i.default),uc+=1;for(const s of Wl)s()})),!1)}const jl=setTimeout(()=>{k1()},0);var f3;(f3=jl.unref)==null||f3.call(jl);function Jd(n,r){const i=r===void 0?void 0:lc.get(r.toLowerCase());if(i!==void 0&&cc(i))return k1().codeToHtml(n,{lang:i,theme:"css-variables"})}function Gd(n,r){const i=r===void 0?void 0:lc.get(r.toLowerCase());if(i===void 0||!cc(i))return;const{tokens:s}=k1().codeToTokens(n,{lang:i,theme:"css-variables"}),u=s[s.length-1];return(s.length>1&&u!==void 0&&u.length===0?s.slice(0,-1):s).map(h=>h.map(p=>({text:p.content,style:{color:p.color}})))}const Yd="_block_biesw_7",Xd="_banner_biesw_21",eh="_label_biesw_32",th="_action_biesw_43",nh="_count_biesw_50",rh="_lang_biesw_55",oh="_copyButton_biesw_62",ih="_body_biesw_72",sh="_line_biesw_81",lh="_gutter_biesw_88",uh="_content_biesw_99",ah="_expand_biesw_103",Et={block:Yd,banner:Xd,label:eh,action:th,count:nh,lang:rh,copyButton:oh,body:ih,line:sh,gutter:lh,content:uh,expand:ah},fc=16;function ch(n){return n.map((r,i)=>f.jsx("span",{style:r.style,children:r.text},i))}function fh({label:n,lines:r,totalLines:i,lang:s,maxLines:u=fc,className:c}){const h=R.useMemo(()=>r.map(V=>V.text).join(` +`),[r]),p=R.useSyncExternalStore(ac,ei,ei),g=R.useMemo(()=>Gd(h,s),[h,s,p]),[C,v]=R.useState(!1),[L,w]=R.useState(!1),_=R.useCallback(()=>{L||br(h).then(V=>{V&&(w(!0),window.setTimeout(()=>{w(!1)},1e3))})},[L,h]),k=R.useCallback(()=>{v(V=>!V)},[]),E=r.length-u,T=E>0&&!C,B=Math.ceil(u/2),W=u-B,z=r.lengthV.map(([Z,ne])=>f.jsxs("div",{className:Et.line,children:[f.jsx("span",{className:Et.gutter,"aria-hidden":!0,children:Z.number}),f.jsx("span",{className:Et.content,children:ne===void 0?Z.text:ch(ne)})]},Z.number)),Q=r.map((V,Z)=>[V,g==null?void 0:g[Z]]);return f.jsxs("div",{className:ye(Et.block,c),"data-read":"",children:[f.jsxs("div",{className:Et.banner,children:[f.jsx("div",{className:Et.label,children:n??""}),f.jsxs("div",{className:Et.action,children:[z&&f.jsx("span",{className:Et.count,children:`显示 ${r.length} / ${i} 行`}),f.jsx("span",{className:Et.lang,children:s??""}),r.length>0&&f.jsx("button",{type:"button",className:Et.copyButton,onClick:_,children:L?"�制�功":"�制"})]})]}),f.jsxs("div",{className:Et.body,children:[ee(T?Q.slice(0,B):Q),E>0&&f.jsx("button",{type:"button",className:Et.expand,"aria-expanded":C,"aria-label":C?"收起内容":`展开其余 ${E} 行`,onClick:k,children:C?"收起":`… 其余 ${E} 行`}),T&&ee(Q.slice(Q.length-W))]})]})}const dh="_block_srovd_7",hh="_copyButton_srovd_22",ph="_body_srovd_36",mh="_line_srovd_44",Ch="_path_srovd_53",gh="_gap_srovd_60",vh="_del_srovd_67",yh="_add_srovd_76",wh="_expand_srovd_85",xh="_footer_srovd_103",It={block:dh,copyButton:hh,body:ph,line:mh,path:Ch,gap:gh,del:vh,add:yh,expand:wh,footer:xh},dc=16;function _h(n){throw new Error(`unreachable diff row kind: ${String(n)}`)}const n3={path:It.path,del:It.del,add:It.add,gap:It.gap};function Lh(n){const r=[],i=new Set;let s=0,u=0,c;for(const h of n){if(i.add(h.path),h.path!==c?r.push({kind:"path",text:h.path}):r.push({kind:"gap",text:"⋯"}),c=h.path,h.oldText!==null)for(const p of r3(h.oldText))r.push({kind:"del",text:p}),u++;for(const p of r3(h.newText))r.push({kind:"add",text:p}),s++}return{rows:r,added:s,removed:u,files:i.size}}function r3(n){return n===""?[]:(n.endsWith(` +`)?n.slice(0,-1):n).split(` +`)}function kh(n){return n.map(r=>{switch(r.kind){case"del":return`- ${r.text}`;case"add":return`+ ${r.text}`;case"path":return r.text;case"gap":return r.text;default:return _h(r.kind)}}).join(` +`)}function Sh({diffs:n,maxLines:r=dc,className:i}){const{rows:s,added:u,removed:c,files:h}=R.useMemo(()=>Lh(n),[n]),[p,g]=R.useState(!1),[C,v]=R.useState(!1),L=R.useCallback(()=>{C||br(kh(s)).then(z=>{z&&(v(!0),window.setTimeout(()=>{v(!1)},1e3))})},[C,s]),w=R.useCallback(()=>{g(z=>!z)},[]);if(s.length===0)return null;const _=s.length-r,k=_>0&&!p,E=Math.ceil(r/2),T=r-E,B=k?s.slice(0,E):s,W=k?s.slice(s.length-T):[];return f.jsxs("div",{className:ye(It.block,i),"data-diff":"",children:[f.jsx("button",{type:"button",className:It.copyButton,onClick:L,children:C?"�制�功":"�制"}),f.jsxs("div",{className:It.body,children:[B.map((z,ee)=>f.jsx("div",{className:ye(It.line,n3[z.kind]),children:z.text},ee)),_>0&&f.jsx("button",{type:"button",className:It.expand,"aria-expanded":p,"aria-label":p?"收起差异":`展开其余 ${_} 行差异`,onClick:w,children:p?"收起":`… 其余 ${_} 行`}),W.map((z,ee)=>f.jsx("div",{className:ye(It.line,n3[z.kind]),children:z.text},ee))]}),f.jsxs("div",{className:It.footer,children:["└ +",u," -",c," · ",h," file",h===1?"":"s"]})]})}const jh="_block_s66q0_7",Eh="_header_s66q0_20",bh="_summary_s66q0_30",Mh="_copyButton_s66q0_40",Oh="_body_s66q0_51",Nh="_line_s66q0_60",Rh="_lineNumber_s66q0_68",Ph="_fileHeader_s66q0_74",Th="_filePath_s66q0_88",Ih="_fileCount_s66q0_95",$h="_expand_s66q0_100",Hh="_empty_s66q0_116",gt={block:jh,header:Eh,summary:bh,copyButton:Mh,body:Oh,line:Nh,lineNumber:Rh,fileHeader:Ph,filePath:Th,fileCount:Ih,expand:$h,empty:Hh},hc=16;function Vh(n){return n.kind==="paths"?n.paths.join(` +`):n.files.map(r=>[r.path,...r.matches.map(i=>`${i.lineNumber}: ${i.line}`)].join(` +`)).join(` + +`)}function Ah(n){return n.kind==="paths"?n.paths.length:n.files.reduce((r,i)=>r+i.matches.length,0)}function Dh(n,r,i,s){const u=i?`显示 ${r} / 共 ${s}`:`${r}`;return n.kind==="paths"?`${u} 个路径`:`${u} 处匹� · ${n.files.length} 个文件`}function Fh(n,r){if(n.kind==="paths")return n.paths.map(s=>({type:"path",path:s}));const i=[];return n.files.forEach((s,u)=>{const c=r.has(u);if(i.push({type:"file",path:s.path,count:s.matches.length,index:u,collapsed:c}),!c)for(const h of s.matches)i.push({type:"match",lineNumber:h.lineNumber,line:h.line,key:`${u}:${h.lineNumber}`,fileIndex:u})}),i}function El(n){switch(n.type){case"match":return`match:${n.key}`;case"file":return`file:${n.index}`;case"path":return`path:${n.path}`}}function Bh(n){const{truncated:r,total:i,maxLines:s=hc,className:u}=n,[c,h]=R.useState(!1),[p,g]=R.useState(()=>new Set),C=Fh(n,p),v=Ah(n),L=C.length===0,{copied:w,onCopy:_}=oc(Vh(n)),k=R.useCallback(()=>{h(J=>!J)},[]),E=R.useCallback(J=>{g(q=>{const ce=new Set(q);return ce.has(J)?ce.delete(J):ce.add(J),ce})},[]),{hidden:T,capped:B,headLines:W,tailLines:z}=rc(C.length,s,c),ee=B?C.slice(0,W):C,Q=B?C.slice(C.length-z):[],V=Q[0],Z=(V==null?void 0:V.type)==="match"&&!ee.some(J=>J.type==="file"&&J.index===V.fileIndex)?C.find(J=>J.type==="file"&&J.index===V.fileIndex):void 0,ne=Z===void 0?Q:Q.slice(1),I=J=>J.type==="path"?f.jsx("div",{className:gt.line,children:J.path}):J.type==="match"?f.jsxs("div",{className:gt.line,children:[f.jsxs("span",{className:gt.lineNumber,children:[J.lineNumber,": "]}),J.line]}):f.jsxs("button",{type:"button",className:gt.fileHeader,"aria-expanded":!J.collapsed,onClick:()=>{E(J.index)},children:[f.jsx("span",{className:gt.filePath,children:J.path}),f.jsx("span",{className:gt.fileCount,children:J.count})]});return f.jsxs("div",{className:ye(gt.block,u),"data-search":n.kind,children:[f.jsxs("div",{className:gt.header,children:[f.jsx("span",{className:gt.summary,children:Dh(n,v,r,i)}),!L&&f.jsx("button",{type:"button",className:gt.copyButton,onClick:_,children:w?"�制�功":"�制"})]}),L?f.jsx("div",{className:gt.empty,children:"无结果"}):f.jsxs("div",{className:gt.body,children:[ee.map(J=>f.jsx("div",{children:I(J)},El(J))),T>0&&f.jsx("button",{type:"button",className:gt.expand,"aria-expanded":c,"aria-label":c?"收起结果":`展开其余 ${T} 行结果`,onClick:k,children:c?"收起":`… 其余 ${T} 行`}),Z!==void 0&&f.jsx("div",{children:I(Z)},`tailHeader:${El(Z)}`),ne.map(J=>f.jsx("div",{children:I(J)},El(J)))]})]})}const zh=2;function o3(n,r,i){var u;const s=(u=n.position)==null?void 0:u.start.offset;return s===void 0?-(i+1):r+s}class Zh{constructor(r){P(this,"prevText","");P(this,"tailStart",0);P(this,"frozen",[]);P(this,"generation",0);P(this,"cached",null);this.parse=r}update(r){var h,p;if(this.cached!==null&&r===this.prevText)return this.cached;r.startsWith(this.prevText)||(this.prevText="",this.tailStart=0,this.frozen=[],this.generation+=1),this.prevText=r;const i=this.tailStart,s=this.parse(r.slice(i)).children;let u=Math.max(0,s.length-zh);if(u>0){const g=(p=(h=s[u-1])==null?void 0:h.position)==null?void 0:p.end.offset;if(g===void 0)u=0;else{for(const C of s.slice(0,u))this.frozen.push({node:C,key:o3(C,i,this.frozen.length)});this.tailStart=i+g}}const c=s.slice(u).map((g,C)=>({node:g,key:o3(g,i,C)}));return this.cached={frozen:[...this.frozen],tail:c,generation:this.generation},this.cached}}const Uh=new RegExp(["\\p{Script_Extensions=Han}","\\p{Script_Extensions=Hiragana}","\\p{Script_Extensions=Katakana}","\\p{Script_Extensions=Hangul}","\\p{Script_Extensions=Bopomofo}"].join("|"),"u");function Wh(n){return n!==null&&n>=0&&Uh.test(String.fromCodePoint(n))}const qh=function(n,r,i){const s=this.parser.constructs.attentionMarkers.null;if(s===void 0)throw new Error("micromark CommonMark attention markers are unavailable");const u=s,c=this.previous,h=c0(c);let p=ge.eof;return g;function g(v){return v!==ge.asterisk?i(v):(p=v,n.enter("attentionSequence"),C(v))}function C(v){if(v===p)return n.consume(v),C;const L=n.exit("attentionSequence"),w=c0(v),_=!w||w===Pl.characterGroupPunctuation&&!!h||u.includes(v),k=!h||h===Pl.characterGroupPunctuation&&!!w||u.includes(c),T=L.end.offset-L.start.offset>=2&&U5(c)&&Wh(v),B=k||T;return L._open=_,L._close=B,r(v)}},Qh={name:"cjkFriendlyAttention",resolveAll:Z5.resolveAll,tokenize:qh},Kh={text:{[ge.asterisk]:Qh}};function pc(){return Kh}const Jh=function(n){if(n!==ge.backslash)return!0;const r=this.events.at(-1);return r===void 0?!1:r[1].type===wt.characterEscape},Gh=function(n,r,i){return s;function s(_){return _!==ge.backslash?i(_):(n.enter("mathText"),n.enter("mathTextSequence"),n.consume(_),u)}function u(_){return _!==ge.leftParenthesis?i(_):(n.consume(_),n.exit("mathTextSequence"),c)}function c(_){return _===ge.eof?i(_):_===ge.backslash?n.attempt({partial:!0,tokenize:L},v,h)(_):kr(_)?(n.enter(wt.lineEnding),n.consume(_),n.exit(wt.lineEnding),c):p(_)}function h(_){return n.check({partial:!0,tokenize:w},i,p)(_)}function p(_){return n.enter("mathTextData"),n.consume(_),_===ge.backslash?g:C}function g(_){return _===ge.backslash?(n.consume(_),C):C(_)}function C(_){return _===ge.eof||_===ge.backslash||kr(_)?(n.exit("mathTextData"),c(_)):(n.consume(_),C)}function v(_){return n.exit("mathText"),r(_)}function L(_,k,E){return T;function T(W){return W!==ge.backslash?E(W):(_.enter("mathTextSequence"),_.consume(W),B)}function B(W){return W!==ge.rightParenthesis?E(W):(_.consume(W),_.exit("mathTextSequence"),k)}}function w(_,k,E){return T;function T(W){return W!==ge.backslash?E(W):(_.enter(wt.chunkString),_.consume(W),B)}function B(W){return W!==ge.leftParenthesis?E(W):(_.consume(W),_.exit(wt.chunkString),k)}}};function mc(n,r,i,s){const u=function(c,h,p){const g=this;let C=!1;const v=g.events.at(-1),L=(v==null?void 0:v[1].type)===wt.linePrefix?v[2].sliceSerialize(v[1],!0).length:0;return w;function w(I){return I!==n?p(I):(c.enter("mathFlow"),c.enter("mathFlowFence"),c.enter("mathFlowFenceSequence"),c.consume(I),_)}function _(I){return I!==r?p(I):(c.consume(I),c.exit("mathFlowFenceSequence"),c.exit("mathFlowFence"),n===ge.dollarSign?k:E)}function k(I){return I===ge.dollarSign?p(I):E(I)}function E(I){return I===ge.eof?p(I):I===n&&(n!==ge.dollarSign||!C)?c.attempt({partial:!0,tokenize:Z},V,T)(I):kr(I)?s?c.attempt(Xh,B,p)(I):p(I):W(I)}function T(I){return n===ge.backslash?c.check({partial:!0,tokenize:ne},p,z)(I):z(I)}function B(I){return c.attempt({partial:!0,tokenize:Z},V,L?rl(c,E,wt.linePrefix,L+1):E)(I)}function W(I){return c.enter("mathFlowValue"),C=I===ge.backslash,c.consume(I),Q}function z(I){return c.enter("mathFlowValue"),C=!1,c.consume(I),ee}function ee(I){return I===n?(c.consume(I),Q):Q(I)}function Q(I){return I===ge.eof||I===n||kr(I)?(c.exit("mathFlowValue"),E(I)):(C=I===ge.backslash?!C:!1,c.consume(I),Q)}function V(I){return c.exit("mathFlow"),h(I)}function Z(I,J,q){return rl(I,ce,wt.linePrefix,Pl.tabSize);function ce(pe){return pe!==n?q(pe):(I.enter("mathFlowFence"),I.enter("mathFlowFenceSequence"),I.consume(pe),le)}function le(pe){return pe!==i?q(pe):(I.consume(pe),I.exit("mathFlowFenceSequence"),rl(I,he,wt.whitespace))}function he(pe){return pe!==ge.eof&&!kr(pe)?q(pe):(I.exit("mathFlowFence"),J(pe))}}function ne(I,J,q){return ce;function ce(he){return he!==n?q(he):(I.enter(wt.chunkString),I.consume(he),le)}function le(he){return he!==r?q(he):(I.consume(he),I.exit(wt.chunkString),J)}}};return{concrete:!0,name:n===ge.dollarSign?"sameLineDollarMathFlow":"backslashMathFlow",tokenize:u}}const Yh=function(n,r,i){const s=this;return u;function u(h){return h===ge.eof?r(h):kr(h)?(n.enter(wt.lineEnding),n.consume(h),n.exit(wt.lineEnding),c):i(h)}function c(h){return s.parser.lazy[s.now().line]?i(h):r(h)}},Xh={partial:!0,tokenize:Yh},ep={name:"backslashMathText",previous:Jh,tokenize:Gh},tp=mc(ge.backslash,ge.leftSquareBracket,ge.rightSquareBracket,!0),np=mc(ge.dollarSign,ge.dollarSign,ge.dollarSign,!1),rp={flow:{[ge.backslash]:tp,[ge.dollarSign]:np},text:{[ge.backslash]:ep}};function op(){return rp}function Cc(n){return d3(n,{extensions:[h3(),pc()],mdastExtensions:[p3()]})}function ip(n){return d3(n,{extensions:[h3(),pc(),op(),W5()],mdastExtensions:[p3(),q5()]})}const sp="_block_178r4_4",lp="_bannerWrap_178r4_21",up="_banner_178r4_21",ap="_infostring_178r4_42",cp="_action_178r4_53",fp="_copyButton_178r4_59",dp="_plain_178r4_94",zn={block:sp,bannerWrap:lp,banner:up,infostring:ap,action:cp,copyButton:fp,plain:dp};function gc({code:n,lang:r,className:i,copyLabel:s="�制",copiedLabel:u="�制�功"}){const c=n.endsWith(` +`)?n.slice(0,-1):n,h=R.useSyncExternalStore(ac,ei,ei),p=R.useMemo(()=>Jd(c,r),[c,r,h]),g=R.useRef(null),[C,v]=R.useState(!1),L=R.useCallback(()=>{var k,E;if(C)return;const _=((E=(k=g.current)==null?void 0:k.querySelector("pre"))==null?void 0:E.textContent)??c;br(_).then(T=>{T&&(v(!0),window.setTimeout(()=>{v(!1)},1e3))})},[C,c]),w=p===void 0?f.jsx("pre",{className:zn.plain,children:f.jsx("code",{children:c})}):f.jsx("div",{dangerouslySetInnerHTML:{__html:p}});return f.jsxs("div",{ref:g,className:ye(zn.block,"md-code-block",i),children:[f.jsx("div",{className:zn.bannerWrap,children:f.jsxs("div",{className:zn.banner,children:[f.jsx("div",{className:zn.infostring,children:r??""}),f.jsx("div",{className:zn.action,children:f.jsx("button",{type:"button",className:zn.copyButton,onClick:L,children:C?u:s})})]})}),w]})}function hp(n){const r={};for(const i of n.split(";")){const s=i.indexOf(":");if(s===-1)continue;const c=i.slice(0,s).trim().replace(/-([a-z])/g,(h,p)=>p.toUpperCase());r[c]=i.slice(s+1).trim()}return r}function vc(n,r){if(n.nodeType===Node.TEXT_NODE)return n.textContent;if(n.nodeType!==Node.ELEMENT_NODE)return null;const i=n,s={key:r};for(const c of i.attributes)c.name==="class"?s.className=c.value:c.name==="style"?s.style=hp(c.value):s[c.name]=c.value;const u=[...i.childNodes].map(vc);return u.length===0?R.createElement(i.localName,s):R.createElement(i.localName,s,...u)}function ql(n,r){let i;try{i=f0.renderToString(n,{displayMode:r,throwOnError:!0})}catch(u){try{i=f0.renderToString(n,{displayMode:r,strict:"ignore",throwOnError:!1})}catch{return f.jsx("span",{className:"katex-error",style:{color:"#cc0000"},title:String(u),children:n})}}return[...new DOMParser().parseFromString(i,"text/html").body.childNodes].map(vc)}const pp="_markdown_1nba0_5",mp="_tableScroll_1nba0_174",Cp="_imageAlt_1nba0_229",gp="_image_1nba0_229",vp="_fileMention_1nba0_249",S1={markdown:pp,tableScroll:mp,imageAlt:Cp,image:gp,fileMention:vp};function yc(n){try{switch(new URL(n).protocol){case"http:":case"https:":case"mailto:":return n;default:return""}}catch{return""}}function yp(n){try{const r=new URL(n).protocol;return r==="http:"||r==="https:"?n:void 0}catch{return}}function Ql(){return{definitions:new Map,footnotes:new Map}}function ti(n,r){for(const i of n){if(i.type==="definition"){const s=i.identifier.toUpperCase();r.definitions.has(s)||r.definitions.set(s,i)}else if(i.type==="footnoteDefinition"){const s=i.identifier.toUpperCase();r.footnotes.has(s)||r.footnotes.set(s,i)}"children"in i&&ti(i.children,r)}}function Kl(n,r){return n.map(i=>pu(i.node,i.key,r)).filter(i=>i!==null)}function hu(n,r){const i=[];for(const s of n)(r||i.length>0)&&i.push(` +`),i.push(s);return r&&n.length>0&&i.push(` +`),i}function wc(n,r){const i=[];for(const[s,u]of n.entries())if(u.type==="paragraph")i.push({paragraph:$t(u.children,r)});else{const c=pu(u,s,r);c!==null&&i.push({element:c})}return i}function $t(n,r){return n.map((i,s)=>pu(i,s,r))}function pu(n,r,i){var s;switch(n.type){case"text":return n.value;case"paragraph":return f.jsx("p",{children:$t(n.children,i)},r);case"heading":return R.createElement(`h${n.depth}`,{key:r},...$t(n.children,i));case"blockquote":return f.jsx("blockquote",{children:hu($t(n.children,i).filter(u=>u!==null),!0)},r);case"thematicBreak":return f.jsx("hr",{},r);case"break":return f.jsxs(R.Fragment,{children:[f.jsx("br",{}),` +`]},r);case"strong":return f.jsx("strong",{children:$t(n.children,i)},r);case"emphasis":return f.jsx("em",{children:$t(n.children,i)},r);case"delete":return f.jsx("del",{children:$t(n.children,i)},r);case"inlineCode":{const u=n.value.replace(/\r?\n|\r/g," "),c=kp(u);if(c!==void 0)return f.jsx("code",{children:Lc(c,[u],"link")},r);const h=i.inLink===!0||(s=i.fileMentions)==null?void 0:s.resolve(u);return h!==void 0?f.jsx("code",{children:f.jsx("button",{type:"button",className:S1.fileMention,title:h.title,"aria-label":h.label,onClick:h.open,children:u})},r):f.jsx("code",{children:u},r)}case"html":return n.value;case"code":return wp(n,r,i);case"math":return f.jsx(R.Fragment,{children:ql(n.value,!0)},r);case"inlineMath":return f.jsx(R.Fragment,{children:ql(n.value,!1)},r);case"list":return _p(n,r,i);case"listItem":return _c(n,xc(n),r,i);case"table":return Lp(n,r,i);case"link":return kc(n.url,$t(n.children,{...i,inLink:!0}),r);case"linkReference":return Sp(n,r,i);case"image":return Sc(n.url,n.alt??"",r);case"imageReference":return jp(n,r,i);case"footnoteReference":return Ep(n,r,i);case"definition":case"footnoteDefinition":return null;default:return null}}function wp(n,r,i){var c,h,p;const s=n.lang??void 0;if(n.value==="")return f.jsx("pre",{children:f.jsx("code",{className:s===void 0?void 0:`language-${s}`})},r);const u=s===void 0||(c=/^[\w-]+/.exec(s))==null?void 0:c[0];return!i.streaming&&u==="math"?f.jsx(R.Fragment,{children:ql(`${n.value} +`,!0)},r):f.jsx(gc,{code:`${n.value} +`,lang:i.streaming?void 0:u,copyLabel:(h=i.codeLabels)==null?void 0:h.copyLabel,copiedLabel:(p=i.codeLabels)==null?void 0:p.copiedLabel},r)}function xp(n){return(n.spread??!1)||n.children.some(xc)}function xc(n){return n.spread??n.children.length>1}function _p(n,r,i){const s=xp(n),u={};return typeof n.start=="number"&&n.start!==1&&(u.start=n.start),n.children.some(c=>typeof c.checked=="boolean")&&(u.className="contains-task-list"),R.createElement(n.ordered===!0?"ol":"ul",{key:r,...u},...n.children.map((c,h)=>_c(c,s,h,i)))}function _c(n,r,i,s){const u=wc(n.children,s),c=typeof n.checked=="boolean";if(c){const g=f.jsx("input",{type:"checkbox",checked:n.checked===!0,disabled:!0},"task-checkbox"),C=u[0];C!==void 0&&"paragraph"in C?C.paragraph=C.paragraph.length>0?[g," ",...C.paragraph]:[g]:u.unshift({paragraph:[g]})}const h=[];for(const[g,C]of u.entries()){const v="paragraph"in C;(r||g!==0||!v)&&h.push(` +`),v?r?h.push(f.jsx("p",{children:C.paragraph},`p-${g}`)):h.push(f.jsx(R.Fragment,{children:C.paragraph},`p-${g}`)):h.push(C.element)}const p=u[u.length-1];return p!==void 0&&(r||!("paragraph"in p))&&h.push(` +`),f.jsx("li",{className:c?"task-list-item":void 0,children:h},i)}function Lp(n,r,i){const s=n.align??null,[u,...c]=n.children;return f.jsx("div",{className:S1.tableScroll,children:f.jsxs("table",{children:[u!==void 0&&f.jsx("thead",{children:i3(u,"th",s,0,i)}),c.length>0&&f.jsx("tbody",{children:c.map((h,p)=>i3(h,"td",s,p+1,i))})]})},r)}function i3(n,r,i,s,u){const c=i===null?n.children.length:i.length,h=[];for(let p=0;p0&&c.push(" "),c.push("↩"),C>1&&c.push(f.jsx("sup",{children:String(C)},`re-${C}`));const h=wc(s.children,n),p=h[h.length-1],g=h.map((C,v)=>"paragraph"in C?f.jsxs("p",{children:[C.paragraph,C===p&&f.jsxs(f.Fragment,{children:[" ",c]})]},`p-${v}`):C.element);(p===void 0||!("paragraph"in p))&&g.push(...c),r.push(f.jsx("li",{id:`user-content-fn-${Gl(i.toLowerCase())}`,children:hu(g,!0)},i))}return r.length===0?null:f.jsxs("section",{"data-footnotes":!0,className:"footnotes",children:[f.jsx("h2",{id:"footnote-label",className:"sr-only",children:"Footnotes"}),f.jsx("ol",{children:r})]},"footnotes")}function bp(n,r,i){const s=ip(n),u=Ql();ti(s.children,u);const c={streaming:!1,codeLabels:r,fileMentions:i,targets:u,footnoteOrder:[],footnoteCounts:new Map},h=hu(Kl(s.children.map((g,C)=>({node:g,key:C})),c),!1),p=Ec(c);return p===null?h:[...h,` +`,p]}class Mp{constructor(r){P(this,"parser",new Zh(Cc));P(this,"generation",-1);P(this,"frozenCount",0);P(this,"frozenElements",[]);P(this,"frozenTargets",Ql());P(this,"frozenFootnoteOrder",[]);P(this,"frozenFootnoteCounts",new Map);P(this,"lastText",null);P(this,"lastRendered",[]);this.codeLabels=r}render(r){if(r===this.lastText)return this.lastRendered;const{frozen:i,tail:s,generation:u}=this.parser.update(r);u!==this.generation&&(this.generation=u,this.frozenCount=0,this.frozenElements=[],this.frozenTargets=Ql(),this.frozenFootnoteOrder=[],this.frozenFootnoteCounts=new Map);const c=i.slice(this.frozenCount);ti(c.map(v=>v.node),this.frozenTargets);const h={definitions:new Map(this.frozenTargets.definitions),footnotes:new Map(this.frozenTargets.footnotes)};if(ti(s.map(v=>v.node),h),c.length>0){const v={streaming:!0,codeLabels:this.codeLabels,fileMentions:void 0,targets:h,footnoteOrder:this.frozenFootnoteOrder,footnoteCounts:this.frozenFootnoteCounts},L=[...this.frozenElements];for(const w of Kl(c,v))L.length>0&&L.push(` +`),L.push(w);this.frozenElements=L,this.frozenCount=i.length}const p={streaming:!0,codeLabels:this.codeLabels,fileMentions:void 0,targets:h,footnoteOrder:[...this.frozenFootnoteOrder],footnoteCounts:new Map(this.frozenFootnoteCounts)},g=[...this.frozenElements];for(const v of Kl(s,p))g.length>0&&g.push(` +`),g.push(v);const C=Ec(p);return C!==null&&g.push(` +`,C),this.lastText=r,this.lastRendered=g,this.lastRendered}}const bc=R.memo(function({text:r,streaming:i=!1,codeLabels:s,fileMentions:u}){const c=R.useRef(null),h=R.useRef(s),p=R.useMemo(()=>i?((c.current===null||h.current!==s)&&(c.current=new Mp(s),h.current=s),c.current.render(r)):(c.current=null,bp(r,s,u)),[r,i,s,u]);return f.jsx("div",{className:S1.markdown,children:p})}),Op="_block_d4nqi_7",Np="_answer_d4nqi_19",Rp="_sources_d4nqi_5",Pp="_source_d4nqi_5",Tp="_sourceLink_d4nqi_60",Ip="_snippet_d4nqi_71",$p="_published_d4nqi_79",Hp="_truncated_d4nqi_85",Vp="_empty_d4nqi_91",Ap="_fetch_d4nqi_97",Dp="_fetchUrl_d4nqi_103",Fp="_fetchMeta_d4nqi_115",Bp="_status_d4nqi_121",it={block:Op,answer:Np,sources:Rp,source:Pp,sourceLink:Tp,snippet:Ip,published:$p,truncated:Hp,empty:Vp,fetch:Ap,fetchUrl:Dp,fetchMeta:Fp,status:Bp};function zp(n){try{const{protocol:r}=new URL(n);return r==="http:"||r==="https:"?n:void 0}catch{return}}function Zp(n,r){if(r!==void 0&&r!=="")return r;try{const{hostname:i}=new URL(n);return i===""?n:i}catch{return n}}function Mc({url:n,label:r,className:i}){const s=zp(n);return s===void 0?f.jsx("span",{className:i,children:r}):f.jsx("a",{className:i,href:s,target:"_blank",rel:"noopener noreferrer",children:r})}function Up({source:n,ordinal:r}){return f.jsxs("li",{className:it.source,value:r,children:[f.jsx(Mc,{url:n.url,label:Zp(n.url,n.title),className:it.sourceLink}),n.snippet!==void 0&&n.snippet!==""&&f.jsx("div",{className:it.snippet,children:n.snippet}),n.publishedAt!==void 0&&n.publishedAt!==""&&f.jsx("div",{className:it.published,children:n.publishedAt})]})}function Wp({answer:n,sources:r,truncated:i,className:s}){const u=(n===void 0||n==="")&&r.length===0;return f.jsxs("div",{className:ye(it.block,s),"data-web":"search",children:[n!==void 0&&n!==""&&f.jsx("div",{className:it.answer,children:f.jsx(bc,{text:n})}),u?f.jsx("div",{className:it.empty,children:"未找到结果"}):f.jsx("ol",{className:it.sources,children:r.map((c,h)=>f.jsx(Up,{source:c,ordinal:h+1},h))}),i&&f.jsx("div",{className:it.truncated,children:"��列表已截断"})]})}function qp({url:n,statusCode:r,truncated:i,className:s}){return f.jsxs("div",{className:ye(it.block,it.fetch,s),"data-web":"fetch",children:[f.jsx(Mc,{url:n,label:n,className:it.fetchUrl}),f.jsxs("div",{className:it.fetchMeta,children:[f.jsxs("span",{className:it.status,children:["HTTP ",r]}),i&&f.jsx("span",{className:it.truncated,children:"内容已截断"})]})]})}function Qp(n){return n.kind==="search"?f.jsx(Wp,{...n}):f.jsx(qp,{...n})}const Kp="_root_1ye18_1",Jp="_toggle_1ye18_5",Gp="_body_1ye18_20",bl={root:Kp,toggle:Jp,body:Gp},s3=2e4;function Yp(n){return`… 已截断,共 ${n} 字符`}function Xp({label:n,payload:r,defaultOpen:i=!1,truncatedLabel:s=Yp}){const[u,c]=R.useState(i),h=R.useMemo(()=>{if(!u)return"";let p;try{p=JSON.stringify(r,null,2)??String(r)}catch{p=String(r)}return p.length>s3?`${p.slice(0,s3)} +${s(p.length)}`:p},[u,r,s]);return f.jsxs("div",{className:bl.root,children:[f.jsxs("button",{type:"button",className:bl.toggle,onClick:()=>{c(p=>!p)},children:[u?"▾":"▸"," ",n]}),u&&f.jsx("pre",{className:bl.body,children:h})]})}const em="_text_1pfhk_1",tm={text:em};function nm({text:n}){return f.jsx("div",{className:tm.text,children:n})}function w1(n){var r;switch(n.type){case"text":case"inlineCode":case"code":return n.value??"";case"image":case"imageReference":return n.alt??"";case"break":return` +`;case"html":return n.value??"";default:return((r=n.children)==null?void 0:r.map(w1).join(""))??""}}function Uo(n){return n.replace(/\s+/g," ").trim()}function Lr(n){var r,i,s,u,c,h;switch(n.type){case"root":case"blockquote":return((r=n.children)==null?void 0:r.map(Lr).filter(Boolean).join(` + +`))??"";case"paragraph":case"heading":return Uo(w1(n));case"code":return((i=n.value)==null?void 0:i.trim())??"";case"list":return((s=n.children)==null?void 0:s.map(Lr).filter(Boolean).join(` +`))??"";case"listItem":return((u=n.children)==null?void 0:u.map(Lr).filter(Boolean).join(" "))??"";case"table":return((c=n.children)==null?void 0:c.map(Lr).filter(Boolean).join(` +`))??"";case"tableRow":return((h=n.children)==null?void 0:h.map(Lr).join(" "))??"";case"tableCell":return Uo(w1(n));case"html":return n.value??"";case"thematicBreak":case"definition":return"";default:return Uo(w1(n))}}function Oc(n){if(n.type==="paragraph"){const r=Uo(w1(n));if(r!=="")return r}for(const r of n.children??[]){const i=Oc(r);if(i!==void 0)return i}}function rm(n){return Lr(n).split(` +`).map(r=>r.trim()).join(` +`).replace(/\n{3,}/g,` + +`).trim()}function om(n,r={}){const{mode:i="all"}=r,s=Cc(n),u=rm(s);switch(i){case"all":return u;case"first-line":return u.split(` +`).find(c=>c!=="")??"";case"first-paragraph":return Oc(s)??u.split(` +`).find(c=>c!=="")??""}}const im=Object.freeze(Object.defineProperty({__proto__:null,BrandWordmark:vf,Button:zl,CodeBlock:gc,ConnectionBanner:Cf,DEFAULT_DIFF_MAX_LINES:dc,DEFAULT_READ_MAX_LINES:fc,DEFAULT_SEARCH_MAX_LINES:hc,DEFAULT_TERMINAL_MAX_LINES:ic,DiffBlock:Sh,DisclosureRow:Y9,FishLogo:gf,HoverCard:Z7,IconAgentPresetOutline16:s9,IconApiOutline14:S9,IconArchiveOutline20:U9,IconBranchOutline16:q8,IconBrowseOutline16:l9,IconCheckOutline14:W8,IconCheckOutline16:cu,IconChecklistOutline14:V9,IconChevronDownOutline14:Bl,IconChevronLeftOutline14:U3,IconChevronRightOutline14:W3,IconChevronUpOutline14:K8,IconCloseFill14:q3,IconCloseOutline16:fu,IconCodeOutline16:L9,IconCopyOutline16:Q3,IconCordisPluginOutline14:k9,IconDarkOutline16:P9,IconDataOutline16:I9,IconDislikeFill16:t9,IconDislikeOutline16:e9,IconDownloadOutline16:y9,IconEditOutline16:r9,IconEllipsisOutline16:Z8,IconEnhanceOutline16:d9,IconFolderClose16:O9,IconFolderOpen16:M9,IconFolderOpenOutline16:b9,IconFollowsystemOutline16:T9,IconFullscreenOutline16:_9,IconGlobeOutline14:D8,IconGoalOutline16:D9,IconInspectOutline12:B9,IconLightOutline16:R9,IconLikeFill16:X8,IconLikeOutline16:Y8,IconLinkOutline14:u9,IconLinkOutline16:a9,IconListPenOutline16:A9,IconLoadingOutline16:v9,IconNewChatOutline16:V8,IconPanelLeftOutline16:z8,IconPaperclipOutline16:g9,IconPauseOutline16:x9,IconPersonalizationOutline16:j9,IconPlayOutline16:w9,IconPlusOutline16:U8,IconProjectAddOutline16:E9,IconQuestionOutline14:Z9,IconQueueOutline14:H9,IconRefreshOutline14:G8,IconRefreshOutline16:J8,IconRightUpOutline14:c9,IconRightUpOutline16:f9,IconSearchOutline16:A8,IconSendOutline14:$9,IconSendOutline16:m9,IconSettingsOutline14:F8,IconSettingsOutline16:B8,IconShareOutline16:n9,IconSkillOutline16:z9,IconSparkle16:F9,IconStopFill16:C9,IconThinkOutline14:o9,IconThinkOutline16:i9,IconTrashOutline16:h9,IconTreeCorner8x10:N9,IconTriangleRightFill14:Q8,IconUserOutline16:p9,IconWarningOutline16:K3,Input:h7,JsonBlock:Xp,JsonTree:id,MarkdownText:bc,Menu:Y3,MessageText:nm,Modal:X3,OnboardingSurface:of,Pill:J3,ReadBlock:fh,RiskConfirmation:hf,SearchBlock:Bh,StateDot:Z3,TerminalBlock:Fd,Toast:Ef,Tooltip:xf,WebBlock:Qp,extractMarkdownPlainText:om,useAnchoredMaxHeight:H7,writeClipboard:br},Symbol.toStringTag,{value:"Module"})),sm="_root_1hk8w_5",lm="_rail_1hk8w_10",um="_item_1hk8w_28",am="_thumbnail_1hk8w_35",cm="_remove_1hk8w_53",fm="_arrow_1hk8w_90",dm="_arrowLeft_1hk8w_112",hm="_arrowRight_1hk8w_116",rn={root:sm,rail:lm,item:um,thumbnail:am,remove:cm,arrow:fm,arrowLeft:dm,arrowRight:hm},pm=16;function mm(){var n;return(n=window.matchMedia)!=null&&n.call(window,"(prefers-reduced-motion: reduce)").matches?"auto":"smooth"}function Cm({items:n,labels:r,onOpen:i,onRemove:s}){const u=R.useRef(null),c=R.useRef(null),[h,p]=R.useState({left:!1,right:!1}),g=R.useCallback(()=>{const v=u.current;if(v===null)return;const L=v.scrollLeft>1,w=v.scrollLeft_.left===L&&_.right===w?_:{left:L,right:w})},[]);R.useLayoutEffect(()=>{const v=c.current!==null&&n.length>c.current;c.current=n.length;const L=u.current;L!==null&&(v&&(L.scrollLeft=L.scrollWidth-L.clientWidth),g())},[n.length,g]),R.useEffect(()=>{const v=u.current;if(v===null)return;let L=()=>{};if(typeof ResizeObserver<"u"){const _=new ResizeObserver(g);_.observe(v),L=()=>{_.disconnect()}}const w=_=>{if(_.deltaY===0)return;const k=_.deltaMode===WheelEvent.DOM_DELTA_LINE?pm:_.deltaMode===WheelEvent.DOM_DELTA_PAGE?v.clientWidth:1;_.preventDefault(),v.scrollBy({left:_.deltaX!==0?_.deltaX*k:Math.sign(_.deltaY)*Math.min(Math.abs(_.deltaY)*k,60),behavior:"auto"})};return v.addEventListener("wheel",w,{passive:!1}),()=>{L(),v.removeEventListener("wheel",w)}},[g]);const C=v=>{const L=u.current;L!==null&&L.scrollBy({left:v*Math.max(L.clientWidth-64,200),behavior:mm()})};return f.jsxs("div",{className:rn.root,children:[h.left&&f.jsx("button",{type:"button",className:ye(rn.arrow,rn.arrowLeft),"aria-label":r.scrollLeft,onClick:()=>{C(-1)},children:f.jsx(U3,{})}),f.jsx("div",{ref:u,className:rn.rail,role:"group","aria-label":r.group,onScroll:g,children:n.map(v=>f.jsxs("div",{className:rn.item,children:[f.jsx("button",{type:"button",className:rn.thumbnail,title:r.open,onClick:()=>{i(v)},children:f.jsx("img",{src:v.previewUrl,alt:v.alt})}),f.jsx("button",{type:"button",className:rn.remove,"aria-label":v.removeLabel,onClick:()=>{s(v)},children:f.jsx(q3,{size:12})})]},v.id))}),h.right&&f.jsx("button",{type:"button",className:ye(rn.arrow,rn.arrowRight),"aria-label":r.scrollRight,onClick:()=>{C(1)},children:f.jsx(W3,{})})]})}const gm="_mask_rcb0a_5",vm="_wrap_rcb0a_29",ym="_illustration_rcb0a_39",wm="_title_rcb0a_44",xm="_desc_rcb0a_49",C1={mask:gm,wrap:vm,illustration:ym,title:wm,desc:xm};function _m({disabled:n,labels:r}){return ln.createPortal(f.jsx("div",{className:C1.mask,role:"status",children:f.jsxs("div",{className:C1.wrap,children:[f.jsx("div",{className:C1.illustration,"aria-hidden":"true",children:n?f.jsx(km,{}):f.jsx(Lm,{})}),f.jsx("div",{className:C1.title,children:r.title}),!n&&r.desc!==void 0&&f.jsx("div",{className:C1.desc,children:r.desc})]})}),document.body)}const Lm=()=>f.jsxs("svg",{width:"115",height:"84",viewBox:"0 0 115 84",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsxs("g",{clipPath:"url(#dshDropOverlayClip)",children:[f.jsx("rect",{y:"17.0742",width:"44.1832",height:"43.6431",rx:"12",transform:"rotate(-22.7338 0 17.0742)",fill:"#9CE5ED"}),f.jsx("rect",{x:"73.4043",y:"8.54297",width:"43.7267",height:"50.5284",rx:"8",transform:"rotate(17.403 73.4043 8.54297)",fill:"#679EFE"}),f.jsx("path",{d:"M30.4917 28.1369L40.8865 33.4564L37.2232 34.9524L29.5302 31.0159L26.7919 39.2122L23.1285 40.7082L26.8287 29.6338L16.8967 24.5516L20.5601 23.0556L27.7902 26.7549L30.3639 19.052L34.0273 17.556L30.4917 28.1369Z",fill:"white"}),f.jsx("path",{d:"M77.5088 26.3047L101.057 33.7966",stroke:"white",strokeWidth:"3"}),f.jsx("path",{d:"M72.2646 42.7871L86.3938 47.2823",stroke:"white",strokeWidth:"3"}),f.jsx("path",{d:"M74.8867 34.5469L98.4353 42.0388",stroke:"white",strokeWidth:"3"}),f.jsx("rect",{x:"31.583",y:"38.6641",width:"44.9157",height:"44.3666",rx:"12",transform:"rotate(-0.134233 31.583 38.6641)",fill:"#3964FE"}),f.jsx("path",{d:"M38.9521 73.0337C39.6129 71.7086 41.7113 66.0937 43.5113 61.1663C44.1607 59.3885 46.7484 59.3923 47.4591 61.1465C48.9728 64.8828 50.7969 68.6922 51.9988 69.1925C54.2946 70.1482 57.9854 59.3573 68.0064 70.1801",stroke:"white",strokeWidth:"3"}),f.jsx("circle",{cx:"60.6157",cy:"52.247",r:"4.38794",transform:"rotate(22.5996 60.6157 52.247)",fill:"white"})]}),f.jsx("defs",{children:f.jsx("clipPath",{id:"dshDropOverlayClip",children:f.jsx("rect",{width:"115",height:"84",fill:"white"})})})]}),km=()=>f.jsxs("svg",{width:"115",height:"84",viewBox:"0 0 115 84",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M29.6829 4.63701L11.0677 12.4368C4.95519 14.998 2.07624 22.0294 4.6374 28.1419L12.2285 46.259C14.7896 52.3715 21.8211 55.2505 27.9336 52.6893L46.5488 44.8895C52.6613 42.3283 55.5403 35.2969 52.9791 29.1844L45.388 11.0673C42.8269 4.9548 35.7954 2.07585 29.6829 4.63701Z",fill:"#979DA6"}),f.jsx("path",{d:"M30.4915 28.1375L40.8863 33.4569L37.223 34.9529L29.53 31.0165L26.7917 39.2128L23.1283 40.7088L26.8285 29.6344L16.8965 24.5522L20.5599 23.0562L27.79 26.7555L30.3637 19.0526L34.0271 17.5566L30.4915 28.1375Z",fill:"white"}),f.jsx("path",{d:"M107.496 19.2285L81.0381 10.9357C76.8221 9.61423 72.333 11.9607 71.0116 16.1768L60.6844 49.1246C59.363 53.3406 61.7095 57.8297 65.9255 59.1511L92.383 67.4439C96.599 68.7654 101.088 66.4189 102.41 62.2029L112.737 29.255C114.058 25.039 111.712 20.55 107.496 19.2285Z",fill:"#979DA6"}),f.jsx("path",{d:"M77.5088 26.3047L101.057 33.7967",stroke:"white",strokeWidth:"3"}),f.jsx("path",{d:"M72.2646 42.7871L86.3938 47.2823",stroke:"white",strokeWidth:"3"}),f.jsx("path",{d:"M74.8867 34.5469L98.4353 42.0388",stroke:"white",strokeWidth:"3"}),f.jsx("path",{d:"M66.5798 30.1418L41.481 30.2006C33.5281 30.2193 27.0962 36.6815 27.1148 44.6343L27.172 69.0742C27.1907 77.0271 33.6529 83.459 41.6057 83.4404L66.7045 83.3816C74.6574 83.363 81.0894 76.9008 81.0707 68.9479L81.0135 44.5081C80.9949 36.5552 74.5327 30.1232 66.5798 30.1418Z",fill:"#F59E0B"}),f.jsx("path",{d:"M54 70.7969C61.732 70.7969 68 64.5289 68 56.7969C68 49.0649 61.732 42.7969 54 42.7969C46.268 42.7969 40 49.0649 40 56.7969C40 64.5289 46.268 70.7969 54 70.7969Z",stroke:"white",strokeWidth:"3.5"}),f.jsx("path",{d:"M44 46.7969L64 66.7969",stroke:"white",strokeWidth:"3.5",strokeLinecap:"round"})]}),Sm="_backdrop_18d3q_1",jm="_mask_18d3q_13",Em="_image_18d3q_20",bm="_close_18d3q_30",zo={backdrop:Sm,mask:jm,image:Em,close:bm};function Nc({src:n,alt:r,labels:i,onClose:s}){const u=R.useRef(null),c=R.useRef(null);return R.useEffect(()=>{var p;c.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(p=u.current)==null||p.focus();const h=g=>{g.key==="Escape"&&s()};return window.addEventListener("keydown",h),()=>{var g;window.removeEventListener("keydown",h),(g=c.current)==null||g.focus()}},[s]),ln.createPortal(f.jsxs("div",{className:zo.backdrop,role:"dialog","aria-modal":"true","aria-label":i.dialog,children:[f.jsx("div",{className:zo.mask,"aria-hidden":"true",onMouseDown:s}),f.jsx("img",{className:zo.image,src:n,alt:r}),f.jsx("button",{ref:u,type:"button",className:zo.close,"aria-label":i.close,onClick:s,children:f.jsx(fu,{size:16})})]}),document.body)}const Mm="_gallery_nrncx_1",Om="_frame_nrncx_18",Nm="_loading_nrncx_46",Rm="_error_nrncx_47",Wo={gallery:Mm,frame:Om,loading:Nm,error:Rm};function Pm(n){const r=n.width/n.height,i=Math.min(4,Math.max(.25,r)),s=i>=1?{width:240,height:240/i}:{width:240*i,height:240},u=Math.min(1,n.width/s.width,n.height/s.height);return{width:Math.max(1,Math.round(s.width*u)),height:Math.max(1,Math.round(s.height*u)),objectPosition:r<.25?"center top":r>4?"left center":"center"}}function Rc({attachment:n,load:r,variant:i,labels:s}){const[u,c]=R.useState(null),[h,p]=R.useState(!1),[g,C]=R.useState(!1),[v,L]=R.useState(0),w=R.useCallback(()=>{L(T=>T+1)},[]),_=R.useCallback(()=>{C(!1)},[]),k=R.useMemo(()=>i==="single"?Pm(n):void 0,[n,i]);R.useEffect(()=>{let T=!0;return p(!1),c(null),r(n).then(B=>{T&&c(B)}).catch(()=>{T&&p(!0)}),()=>{T=!1}},[n,r,v]);const E=n.name??s.image;return h?f.jsx("button",{type:"button",className:Wo.error,"data-variant":i,onClick:w,children:s.loadFailed}):f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:Wo.frame,"data-variant":i,style:k===void 0?void 0:{width:k.width,height:k.height},title:s.open,"aria-label":s.openNamed(E),onClick:()=>{u!==null&&C(!0)},children:u===null?f.jsx("span",{className:Wo.loading,children:s.loading}):f.jsx("img",{src:u,alt:E,style:k===void 0?void 0:{objectPosition:k.objectPosition}})}),g&&u!==null&&f.jsx(Nc,{src:u,alt:E,labels:s.lightbox,onClose:_})]})}function Tm({images:n,load:r,align:i,labels:s}){if(n.length===0)return null;const u=n.length===1?"single":"tile";return f.jsx("div",{className:Wo.gallery,"data-align":i,children:n.map((c,h)=>f.jsx(Rc,{...c,load:r,variant:u,labels:s},`${c.attachment.attachmentId}:${h}`))})}const Im=Object.freeze(Object.defineProperty({__proto__:null,AttachmentRail:Cm,DropOverlay:_m,ImageGallery:Tm,ImageLightbox:Nc,MessageImage:Rc},Symbol.toStringTag,{value:"Module"})),ui=Symbol.for("schemastery"),Pc=Symbol.for("ValidationError");globalThis.__schemastery_index__??(globalThis.__schemastery_index__=0);globalThis.__schemastery_refs__=void 0;var ke=class extends TypeError{constructor(r,i){let s="$";for(const u of i.path||[])typeof u=="string"?s+="."+u:typeof u=="number"?s+="["+u+"]":typeof u=="symbol"&&(s+=`[Symbol(${u.toString()})]`);s.startsWith(".")&&(s=s.slice(1));super((s==="$"?"":`${s} `)+r);P(this,"options");P(this,"name","ValidationError");this.options=i}static is(r){return!!(r!=null&&r[Pc])}};Object.defineProperty(ke.prototype,Pc,{value:!0});const D=function(n){const r=function(i,s={}){return D.resolve(i,r,s)[0]};if(n.refs){const i=on(n.refs,u=>new D(u)),s=u=>i[u];for(const u in i){const c=i[u];c.sKey=s(c.sKey),c.inner=s(c.inner),c.list=c.list&&c.list.map(s),c.dict=c.dict&&on(c.dict,s)}return i[n.uid]}if(Object.assign(r,n),typeof r.callback=="string")try{r.callback=new Function("return "+r.callback)()}catch{}return Object.defineProperty(r,"uid",{value:globalThis.__schemastery_index__++}),Object.setPrototypeOf(r,D.prototype),r.meta||(r.meta={}),r.toString=r.toString.bind(r),r};D.prototype=Object.create(Function.prototype);D.prototype[ui]=!0;Object.defineProperty(D.prototype,"~standard",{get(){return{version:1,vendor:"schemastery",validate:n=>{try{return{value:D.resolve(n,this,{})[0]}}catch(r){if(ke.is(r))return{issues:[{message:r.message,path:r.options.path}]};throw r}}}}});D.ValidationError=ke;D.prototype.toJSON=function(){var i,s;if(globalThis.__schemastery_refs__)return(i=globalThis.__schemastery_refs__)[s=this.uid]??(i[s]=JSON.parse(JSON.stringify({...this}))),this.uid;globalThis.__schemastery_refs__={[this.uid]:{...this}},globalThis.__schemastery_refs__[this.uid]=JSON.parse(JSON.stringify({...this}));const r={uid:this.uid,refs:globalThis.__schemastery_refs__};return globalThis.__schemastery_refs__=void 0,r};D.prototype.set=function(r,i){return this.dict[r]=i,this};D.prototype.push=function(r){return this.list.push(r),this};function $m(n,r){const i=typeof n=="string"?{"":n}:{...n};for(const s in r){const u=r[s];u!=null&&u.$description||u!=null&&u.$desc?i[s]=u.$description||u.$desc:typeof u=="string"&&(i[s]=u)}return i}function g1(n){return(n==null?void 0:n.$value)??(n==null?void 0:n.$inner)}function l3(n){return e6(n??{},r=>!r.startsWith("$"))}D.prototype.i18n=function(r){const i=D(this),s=$m(i.meta.description,r);return Object.keys(s).length&&(i.meta.description=s),i.dict&&(i.dict=on(i.dict,(u,c)=>u.i18n(on(r,h=>{var p;return((p=g1(h))==null?void 0:p[c])??(h==null?void 0:h[c])})))),i.list&&(i.list=i.list.map((u,c)=>u.i18n(on(r,(h={})=>Array.isArray(g1(h))?g1(h)[c]:Array.isArray(h)?h[c]:l3(h))))),i.inner&&(i.inner=i.inner.i18n(on(r,u=>g1(u)?g1(u):l3(u)))),i.sKey&&(i.sKey=i.sKey.i18n(on(r,u=>u==null?void 0:u.$key))),i};D.prototype.extra=function(r,i){const s=D(this);return s.meta={...s.meta,[r]:i},s};for(const n of["required","disabled","collapse","hidden","loose"])Object.assign(D.prototype,{[n](r=!0){const i=D(this);return i.meta={...i.meta,[n]:r},i}});D.prototype.deprecated=function(){var i;const r=D(this);return(i=r.meta).badges||(i.badges=[]),r.meta.badges.push({text:"deprecated",type:"danger"}),r};D.prototype.experimental=function(){var i;const r=D(this);return(i=r.meta).badges||(i.badges=[]),r.meta.badges.push({text:"experimental",type:"warning"}),r};D.prototype.pattern=function(r){const i=D(this),s=t6(r,["source","flags"]);return i.meta={...i.meta,pattern:s},i};D.prototype.simplify=function(r){var i;if(jr(r,this.meta.default,this.type==="dict"))return null;if(ze(r))return r;if(this.type==="object"||this.type==="dict"){const s={};for(const u in r){const c=(i=this.type==="object"?this.dict[u]:this.inner)==null?void 0:i.simplify(r[u]);(this.type==="dict"||!ze(c))&&(s[u]=c)}return jr(s,this.meta.default,this.type==="dict")?null:s}else if(this.type==="array"||this.type==="tuple"){const s=[];return r.forEach((u,c)=>{const h=this.type==="array"?this.inner:this.list[c],p=h?h.simplify(u):u;s.push(p)}),s}else if(this.type==="intersect"){const s={};for(const u of this.list)Object.assign(s,u.simplify(r));return s}else if(this.type==="union")for(const s of this.list)try{return D.resolve(r,s,{}),s.simplify(r)}catch{}return r};D.prototype.toString=function(r){var i;return((i=qo[this.type])==null?void 0:i.call(qo,this,r))??`Schema<${this.type}>`};D.prototype.role=function(n,r){const i=D(this);return i.meta={...i.meta,role:n,extra:r},i};for(const n of["default","link","comment","description","max","min","step"])Object.assign(D.prototype,{[n](r){const i=D(this);return i.meta={...i.meta,[n]:r},i}});const Tc={};D.extend=function(r,i){Tc[r]=i};D.resolve=function(r,i,s={},u=!1){var h;if(!i)return[r];if((h=s.ignore)!=null&&h.call(s,r,i))return[r];if(ze(r)&&i.type!=="lazy"){if(i.meta.required)throw new ke("missing required value",s);let p=i,g=i.meta.default;for(;(p==null?void 0:p.type)==="intersect"&&ze(g);)p=p.list[0],g=p==null?void 0:p.meta.default;if(ze(g))return[r];r=Tl(g)}const c=Tc[i.type];if(!c)throw new ke(`unsupported type "${i.type}"`,s);try{return c(r,i,s,u)}catch(p){if(!i.meta.loose)throw p;return[i.meta.default]}};D.from=function(r){if(ze(r))return D.any();if(["string","number","boolean"].includes(typeof r))return D.const(r).required();if(r[ui])return r;if(typeof r=="function")switch(r){case String:return D.string().required();case Number:return D.number().required();case Boolean:return D.boolean().required();case Function:return D.function().required();default:return D.is(r).required()}else throw new TypeError(`cannot infer schema from ${r}`)};D.lazy=function(r){const i=()=>(s.inner[ui]||(s.inner=s.builder(),s.inner.meta={...s.meta,...s.inner.meta}),s.inner.toJSON()),s=new D({type:"lazy",builder:r,inner:{toJSON:i}});return s};D.natural=function(){return D.number().step(1).min(0)};D.percent=function(){return D.number().step(.01).min(0).max(1).role("slider")};D.date=function(){return D.union([D.is(Date),D.transform(D.string().role("datetime"),(r,i)=>{const s=new Date(r);if(isNaN(+s))throw new ke(`invalid date "${r}"`,i);return s},!0)])};D.regExp=function(r=""){return D.union([D.is(RegExp),D.transform(D.string().role("regexp",{flag:r}),(i,s)=>{try{return new RegExp(i,r)}catch(u){throw new ke(u.message,s)}},!0)])};D.arrayBuffer=function(r){return D.union([D.is(ArrayBuffer),D.is(SharedArrayBuffer),D.transform(D.any(),(i,s)=>{if(Wt.isSource(i))return Wt.fromSource(i);throw new ke(`expected ArrayBufferSource but got ${i}`,s)},!0),...r?[D.transform(D.string(),(i,s)=>{try{return r==="base64"?Wt.fromBase64(i):Wt.fromHex(i)}catch(u){throw new ke(u.message,s)}},!0)]:[]])};D.extend("lazy",(n,r,i,s)=>(r.inner[ui]||(r.inner=r.builder(),r.inner.meta={...r.meta,...r.inner.meta}),D.resolve(n,r.inner,i,s)));D.extend("any",n=>[n]);D.extend("never",(n,r,i)=>{throw new ke(`expected nullable but got ${n}`,i)});D.extend("const",(n,{value:r},i)=>{if(jr(n,r))return[r];throw new ke(`expected ${r} but got ${n}`,i)});function mu(n,r,i,s,u=!1){const{max:c=1/0,min:h=-1/0}=r;if(n>c)throw new ke(`expected ${i} <= ${c} but got ${n}`,s);if(n= ${h} but got ${n}`,s)}D.extend("string",(n,{meta:r},i)=>{if(typeof n!="string")throw new ke(`expected string but got ${n}`,i);if(r.pattern){const s=new RegExp(r.pattern.source,r.pattern.flags);if(!s.test(n))throw new ke(`expect string to match regexp ${s}`,i)}return mu(n.length,r,"string length",i),[n]});function Ml(n,r){const i=n.toString();if(i.includes("e"))return n*Math.pow(10,r);const s=i.indexOf(".");if(s===-1)return n*Math.pow(10,r);const u=i.slice(s+1),c=i.slice(0,s);return u.length<=r?+(c+u.padEnd(r,"0")):+(c+u.slice(0,r)+"."+u.slice(r))}function Hm(n,r,i){if(i=Math.abs(i),!/^\d+\.\d+$/.test(i.toString()))return(n-r)%i===0;const s=i.toString().indexOf("."),u=i.toString().slice(s+1).length;return Math.abs(Ml(n,u)-Ml(r,u))%Ml(i,u)===0}D.extend("number",(n,{meta:r},i)=>{if(typeof n!="number")throw new ke(`expected number but got ${n}`,i);mu(n,r,"number",i);const{step:s}=r;if(s&&!Hm(n,r.min??0,s))throw new ke(`expected number multiple of ${s} but got ${n}`,i);return[n]});D.extend("boolean",(n,r,i)=>{if(typeof n=="boolean")return[n];throw new ke(`expected boolean but got ${n}`,i)});D.extend("bitset",(n,{bits:r,meta:i},s)=>{let u=0,c=[];if(typeof n=="number"){u=n;for(const h in r)n&r[h]&&c.push(h)}else if(Array.isArray(n)){c=n;for(const h of c){if(typeof h!="string")throw new ke(`expected string but got ${h}`,s);h in r&&(u|=r[h])}}else throw new ke(`expected number or array but got ${n}`,s);return u===i.default?[u]:[u,c]});D.extend("function",(n,r,i)=>{if(typeof n=="function")return[n];throw new ke(`expected function but got ${n}`,i)});D.extend("is",(n,{constructor:r},i)=>{var s;if(typeof r=="function"){if(n instanceof r)return[n];throw new ke(`expected ${r.name} but got ${n}`,i)}else{if(ze(n))throw new ke(`expected ${r} but got ${n}`,i);let u=Object.getPrototypeOf(n);for(;u;){if(((s=u.constructor)==null?void 0:s.name)===r)return[n];u=Object.getPrototypeOf(u)}throw new ke(`expected ${r} but got ${n}`,i)}});function ai(n,r,i,s){try{const[u,c]=D.resolve(n[r],i,{...s,path:[...s.path||[],r]});return c!==void 0&&(n[r]=c),u}catch(u){if(!(s!=null&&s.autofix))throw u;return delete n[r],i.meta.default}}D.extend("array",(n,{inner:r,meta:i},s)=>{if(!Array.isArray(n))throw new ke(`expected array but got ${n}`,s);return mu(n.length,i,"array length",s,!ze(r.meta.default)),[n.map((u,c)=>ai(n,c,r,s))]});D.extend("dict",(n,{inner:r,sKey:i},s,u)=>{if(!Yl(n))throw new ke(`expected object but got ${n}`,s);const c={};for(const h in n){let p;try{p=D.resolve(h,i,s)[0]}catch(g){if(u)continue;throw g}c[p]=ai(n,h,r,s),n[p]=n[h],h!==p&&delete n[h]}return[c]});D.extend("tuple",(n,{list:r},i,s)=>{if(!Array.isArray(n))throw new ke(`expected array but got ${n}`,i);const u=r.map((c,h)=>ai(n,h,c,i));return s?[u]:(u.push(...n.slice(r.length)),[u])});function Jl(n,r){for(const i in r)i in n||(n[i]=r[i])}D.extend("object",(n,{dict:r},i,s)=>{if(!Yl(n))throw new ke(`expected object but got ${n}`,i);const u={};for(const c in r){const h=ai(n,c,r[c],i);(!ze(h)||c in n)&&(u[c]=h)}return s||Jl(u,n),[u]});D.extend("union",(n,{list:r,toString:i},s,u)=>{for(const c of r)try{return D.resolve(n,c,s,u)}catch{}throw new ke(`expected ${i()} but got ${JSON.stringify(n)}`,s)});D.extend("intersect",(n,{list:r,toString:i},s,u)=>{if(!r.length)return[n];let c;for(const h of r){const p=D.resolve(n,h,s,!0)[0];if(!ze(p))if(ze(c))c=p;else{if(typeof c!=typeof p)throw new ke(`expected ${i()} but got ${JSON.stringify(n)}`,s);if(typeof p=="object")Jl(c??(c={}),p);else if(c!==p)throw new ke(`expected ${i()} but got ${JSON.stringify(n)}`,s)}}return!u&&Yl(n)&&Jl(c,n),[c]});D.extend("transform",(n,{inner:r,callback:i,preserve:s},u)=>{const[c,h=n]=D.resolve(n,r,u,!0);return s?[i(c)]:[i(c),i(h)]});const qo={};function tt(n,r,i){qo[n]=i,Object.assign(D,{[n](...s){const u=new D({type:n});return r.forEach((c,h)=>{switch(c){case"sKey":u.sKey=s[h]??D.string();break;case"inner":u.inner=D.from(s[h]);break;case"list":u.list=s[h].map(D.from);break;case"dict":u.dict=on(s[h],D.from);break;case"bits":u.bits={};for(const p in s[h])typeof s[h][p]=="number"&&(u.bits[p]=s[h][p]);break;case"callback":{const p=u.callback=s[h];p.toJSON||(p.toJSON=()=>p.toString());break}case"constructor":{const p=u.constructor=s[h];typeof p=="function"&&(p.toJSON||(p.toJSON=()=>p.name));break}default:u[c]=s[h]}}),n==="object"||n==="dict"?u.meta.default={}:n==="array"||n==="tuple"?u.meta.default=[]:n==="bitset"&&(u.meta.default=0),u}})}tt("is",["constructor"],({constructor:n})=>typeof n=="function"?n.name:n);tt("any",[],()=>"any");tt("never",[],()=>"never");tt("const",["value"],({value:n})=>typeof n=="string"?JSON.stringify(n):n);tt("string",[],()=>"string");tt("number",[],()=>"number");tt("boolean",[],()=>"boolean");tt("bitset",["bits"],()=>"bitset");tt("function",[],()=>"function");tt("array",["inner"],({inner:n})=>`${n.toString(!0)}[]`);tt("dict",["inner","sKey"],({inner:n,sKey:r})=>`{ [key: ${r.toString()}]: ${n.toString()} }`);tt("tuple",["list"],({list:n})=>`[${n.map(r=>r.toString()).join(", ")}]`);tt("object",["dict"],({dict:n})=>Object.keys(n).length===0?"{}":`{ ${Object.entries(n).map(([r,i])=>`${r}${i.meta.required?"":"?"}: ${i.toString()}`).join(", ")} }`);tt("union",["list"],({list:n},r)=>{const i=n.map(({toString:s})=>s()).join(" | ");return r?`(${i})`:i});tt("intersect",["list"],({list:n})=>`${n.map(r=>r.toString(!0)).join(" & ")}`);tt("transform",["inner","callback","preserve"],({inner:n},r)=>n.toString(r));function Vm(n){return new D(n)}function Am(n,r){try{n(r);return}catch(i){return i instanceof Error?i.message:String(i)}}function Dm(n,r){var s;let i=n;for(const u of r){if(i===void 0)return;if(i.type==="object")i=(s=i.dict)==null?void 0:s[u];else if(i.type==="dict"||i.type==="array")i=i.inner;else return}return i}function Ic(n,r){let i=n;for(const s of r){if(Array.isArray(i)){i=i[Number(s)];continue}if(typeof i!="object"||i===null)return;i=i[s]}return i}function $c(n,r){if(r.length===0)return n!==void 0;const i=Ic(n,r.slice(0,-1)),s=r[r.length-1];return Array.isArray(i)?Number(s)r,subscribe:s=>(i.add(s),()=>{i.delete(s)}),set:s=>{r=s;for(const u of[...i])u()}}}function Wm(){let n={};const r=new Set;return{getSnapshot:()=>n,subscribe:i=>(r.add(i),()=>{r.delete(i)}),set:(i,s)=>{n={...n,[i]:s};for(const u of[...r])u()}}}const Ol="@deepseek-ai/dsh-client-modules";class qm{constructor(r,i){P(this,"el");P(this,"seams");P(this,"status",Wm());P(this,"settled",a3(!1));P(this,"error",a3(void 0));P(this,"ctx");P(this,"modules");P(this,"manifest");P(this,"root");this.el=r,this.seams=i}async run(){this.manifest=R3(globalThis.__DSH_BOOT__),this.modules=new N3({modules:this.manifest.modules,staticModules:Um(),...this.seams}),this.modules.registerStatic(Fl,L8),this.modules.registerStatic(Ol,R6),globalThis.__DSH_MODULES__=this.modules,this.root=nu.createRoot(this.el),this.root.render(f.jsx(R8,{settled:this.settled,status:this.status,error:this.error,renderApp:()=>{const i=this.ctx.get("appShell");if(i===void 0)throw new Error("web boot: appShell service missing after settled");return i.renderApp()}}));const r=this.prefetchImmediateTier();this.ctx=new Be;try{await this.runPluginBoot(r),this.settled.set(!0)}catch(i){console.error(i),this.error.set(i instanceof Error?i.message:String(i))}}dispose(){var r;(r=this.root)==null||r.unmount()}async prefetchImmediateTier(){await Promise.all(this.manifest.plugins.filter(r=>r.immediately).map(r=>this.modules.prefetch(r.id).catch(()=>{})))}async runPluginBoot(r){const i=this.ctx;await i.plugin(x6);const s=i.loader;s.internal=this.modules,i.on("internal/status",c=>{const h=c.entry;h===void 0||h.fiber===void 0||this.status.set(h.options.name,u3[h.fiber.state])}),await r;const u=[Ol,...this.manifest.plugins.map(c=>c.id).filter(c=>c!==Ol),Fl];await Promise.all(u.map(async c=>{this.status.set(c,"loading");const h=await s.create({name:c});s.resolve(h).fiber===void 0&&this.status.set(c,"failed")})),await s.await(),this.assertEntriesActive()}assertEntriesActive(){const r=this.ctx,i=[];for(const s of r.loader.entries()){const u=s.options.name;if(s.fiber===void 0){i.push(`${u}: import failed (see console for the import error)`);continue}const c=u3[s.fiber.state];if(c!=="active")if(c==="pending"){const h=Object.keys(s.fiber.inject).filter(p=>r.get(p)===void 0);i.push(`${u}: pending (waiting for service${h.length===1?"":"s"}: ${h.join(", ")||"unknown"})`)}else i.push(`${u}: ${c}`)}if(i.length>0)throw new Error(`web boot: ${String(i.length)} entr${i.length===1?"y":"ies"} did not activate +${i.join(` +`)}`)}}const Vc=document.getElementById("root");if(Vc===null)throw new Error("web app: missing #root");new qm(Vc).run(); +//# sourceMappingURL=index-Dqw48FrP.js.map diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000003 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000003 new file mode 100644 index 0000000..aa17411 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000003 @@ -0,0 +1 @@ +@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/fonts/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/fonts/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/fonts/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/fonts/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/fonts/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/fonts/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/fonts/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/fonts/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/fonts/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/fonts/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/fonts/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/fonts/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/fonts/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/fonts/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/fonts/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/fonts/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/fonts/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/fonts/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/fonts/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/fonts/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/fonts/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/fonts/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/fonts/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/fonts/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/fonts/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/fonts/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/fonts/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/fonts/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/fonts/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/fonts/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/fonts/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/fonts/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/fonts/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/fonts/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/fonts/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/fonts/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/fonts/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/fonts/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/fonts/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/fonts/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/fonts/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/fonts/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/fonts/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/fonts/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/fonts/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/fonts/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/fonts/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/fonts/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/fonts/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/fonts/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000004 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000004 new file mode 100644 index 0000000..332539b --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000004 @@ -0,0 +1,411 @@ +var oc=Object.defineProperty;var lc=Object.getPrototypeOf;var uc=Reflect.get;var qs=e=>{throw TypeError(e)};var cc=(e,t,n)=>t in e?oc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var z=(e,t,n)=>cc(e,typeof t!="symbol"?t+"":t,n),qa=(e,t,n)=>t.has(e)||qs("Cannot "+n);var je=(e,t,n)=>(qa(e,t,"read from private field"),n?n.call(e):t.get(e)),cn=(e,t,n)=>t.has(e)?qs("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),gt=(e,t,n,r)=>(qa(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),ja=(e,t,n)=>(qa(e,t,"access private method"),n);var js=(e,t,n)=>uc(lc(e),n,t);var be=class extends Error{constructor(e){super(e),this.name="ShikiError"}};function mc(e){return cs(e)}function cs(e){return Array.isArray(e)?hc(e):e instanceof RegExp?e:typeof e=="object"?pc(e):e}function hc(e){let t=[];for(let n=0,r=e.length;n{for(let r in n)e[r]=n[r]}),e}function Bl(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?Bl(e.substring(0,e.length-1)):e.substr(~t+1)}var Ga=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,Ar=class{static hasCaptures(e){return e===null?!1:(Ga.lastIndex=0,Ga.test(e))}static replaceCaptures(e,t,n){return e.replace(Ga,(r,a,i,s)=>{let o=n[parseInt(a||i,10)];if(o){let l=t.substring(o.start,o.end);for(;l[0]===".";)l=l.substring(1);switch(s){case"downcase":return l.toLowerCase();case"upcase":return l.toUpperCase();default:return l}}else return r})}};function Dl(e,t){return et?1:0}function Ll(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,r=t.length;if(n===r){for(let a=0;athis._root.match(e)));this._colorMap=e,this._defaults=t,this._root=n}static createFromRawTheme(e,t){return this.createFromParsedTheme(gc(e),t)}static createFromParsedTheme(e,t){return yc(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,r=this._cachedMatchRoot.get(t).find(a=>dc(e.parent,a.parentScopes));return r?new Ol(r.fontStyle,r.foreground,r.background):null}},Ha=class jr{constructor(t,n){this.parent=t,this.scopeName=n}static push(t,n){for(const r of n)t=new jr(t,r);return t}static from(...t){let n=null;for(let r=0;r"){if(n===t.length-1)return!1;r=t[++n],a=!0}for(;e&&!fc(e.scopeName,r);){if(a)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function fc(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var Ol=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function gc(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],r=0;for(let a=0,i=t.length;a1&&(A=b.slice(0,b.length-1),A.reverse()),n[r++]=new bc(w,A,a,l,u,h)}}return n}var bc=class{constructor(e,t,n,r,a,i){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=r,this.foreground=a,this.background=i}},Fe=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(Fe||{});function yc(e,t){e.sort((l,u)=>{let h=Dl(l.scope,u.scope);return h!==0||(h=Ll(l.parentScopes,u.parentScopes),h!==0)?h:l.index-u.index});let n=0,r="#000000",a="#ffffff";for(;e.length>=1&&e[0].scope==="";){let l=e.shift();l.fontStyle!==-1&&(n=l.fontStyle),l.foreground!==null&&(r=l.foreground),l.background!==null&&(a=l.background)}let i=new vc(t),s=new Ol(n,i.getId(r),i.getId(a)),o=new xc(new _i(0,null,-1,0,0),[]);for(let l=0,u=e.length;lt?console.log("how did this happen?"):this.scopeDepth=t,n!==-1&&(this.fontStyle=n),r!==0&&(this.foreground=r),a!==0&&(this.background=a)}},xc=class $i{constructor(t,n=[],r={}){z(this,"_rulesWithParentScopes");this._mainRule=t,this._children=r,this._rulesWithParentScopes=n}static _cmpBySpecificity(t,n){if(t.scopeDepth!==n.scopeDepth)return n.scopeDepth-t.scopeDepth;let r=0,a=0;for(;t.parentScopes[r]===">"&&r++,n.parentScopes[a]===">"&&a++,!(r>=t.parentScopes.length||a>=n.parentScopes.length);){const i=n.parentScopes[a].length-t.parentScopes[r].length;if(i!==0)return i;r++,a++}return n.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let r=t.indexOf("."),a,i;if(r===-1?(a=t,i=""):(a=t.substring(0,r),i=t.substring(r+1)),this._children.hasOwnProperty(a))return this._children[a].match(i)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort($i._cmpBySpecificity),n}insert(t,n,r,a,i,s){if(n===""){this._doInsertHere(t,r,a,i,s);return}let o=n.indexOf("."),l,u;o===-1?(l=n,u=""):(l=n.substring(0,o),u=n.substring(o+1));let h;this._children.hasOwnProperty(l)?h=this._children[l]:(h=new $i(this._mainRule.clone(),_i.cloneArr(this._rulesWithParentScopes)),this._children[l]=h),h.insert(t+1,u,r,a,i,s)}_doInsertHere(t,n,r,a,i){if(n===null){this._mainRule.acceptOverwrite(t,r,a,i);return}for(let s=0,o=this._rulesWithParentScopes.length;s>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,n,r,a,i,s,o){let l=ot.getLanguageId(t),u=ot.getTokenType(t),h=ot.containsBalancedBrackets(t)?1:0,c=ot.getFontStyle(t),f=ot.getForeground(t),d=ot.getBackground(t);return n!==0&&(l=n),r!==8&&(u=r),a!==null&&(h=a?1:0),i!==-1&&(c=i),s!==0&&(f=s),o!==0&&(d=o),(l<<0|u<<8|h<<10|c<<11|f<<15|d<<24)>>>0}};function Zr(e,t){const n=[],r=kc(e);let a=r.next();for(;a!==null;){let l=0;if(a.length===2&&a.charAt(1)===":"){switch(a.charAt(0)){case"R":l=1;break;case"L":l=-1;break;default:console.log(`Unknown priority ${a} in scope selector`)}a=r.next()}let u=s();if(n.push({matcher:u,priority:l}),a!==",")break;a=r.next()}return n;function i(){if(a==="-"){a=r.next();const l=i();return u=>!!l&&!l(u)}if(a==="("){a=r.next();const l=o();return a===")"&&(a=r.next()),l}if(Hs(a)){const l=[];do l.push(a),a=r.next();while(Hs(a));return u=>t(l,u)}return null}function s(){const l=[];let u=i();for(;u;)l.push(u),u=i();return h=>l.every(c=>c(h))}function o(){const l=[];let u=s();for(;u&&(l.push(u),a==="|"||a===",");){do a=r.next();while(a==="|"||a===",");u=s()}return h=>l.some(c=>c(h))}}function Hs(e){return!!e&&!!e.match(/[\w\.:]+/)}function kc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;const r=n[0];return n=t.exec(e),r}}}function jl(e){typeof e.dispose=="function"&&e.dispose()}var sr=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},_c=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},$c=class{constructor(){z(this,"_references",[]);z(this,"_seenReferenceKeys",new Set);z(this,"visitedRule",new Set)}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},Cc=class{constructor(e,t){z(this,"seenFullScopeRequests",new Set);z(this,"seenPartialScopeRequests",new Set);z(this,"Q");this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new sr(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new $c;for(const n of e)Sc(n,this.initialScopeName,this.repo,t);for(const n of t.references)if(n instanceof sr){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function Sc(e,t,n,r){const a=n.lookup(e.scopeName);if(!a){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const i=n.lookup(t);e instanceof sr?Gr({baseGrammar:i,selfGrammar:a},r):Ci(e.ruleName,{baseGrammar:i,selfGrammar:a,repository:a.repository},r);const s=n.injections(e.scopeName);if(s)for(const o of s)r.add(new sr(o))}function Ci(e,t,n){if(t.repository&&t.repository[e]){const r=t.repository[e];Kr([r],t,n)}}function Gr(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Kr(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Kr(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Kr(e,t,n){for(const r of e){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);const a=r.repository?Nl({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&Kr(r.patterns,{...t,repository:a},n);const i=r.include;if(!i)continue;const s=Gl(i);switch(s.kind){case 0:Gr({...t,selfGrammar:t.baseGrammar},n);break;case 1:Gr(t,n);break;case 2:Ci(s.ruleName,{...t,repository:a},n);break;case 3:case 4:const o=s.scopeName===t.selfGrammar.scopeName?t.selfGrammar:s.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(o){const l={baseGrammar:t.baseGrammar,selfGrammar:o,repository:a};s.kind===4?Ci(s.ruleName,l,n):Gr(l,n)}else s.kind===4?n.add(new _c(s.scopeName,s.ruleName)):n.add(new sr(s.scopeName));break}}}var Ac=class{constructor(){z(this,"kind",0)}},Tc=class{constructor(){z(this,"kind",1)}},Ec=class{constructor(e){z(this,"kind",2);this.ruleName=e}},Mc=class{constructor(e){z(this,"kind",3);this.scopeName=e}},Ic=class{constructor(e,t){z(this,"kind",4);this.scopeName=e,this.ruleName=t}};function Gl(e){if(e==="$base")return new Ac;if(e==="$self")return new Tc;const t=e.indexOf("#");if(t===-1)return new Mc(e);if(t===0)return new Ec(e.substring(1));{const n=e.substring(0,t),r=e.substring(t+1);return new Ic(n,r)}}var zc=/\\(\d+)/,Us=/\\(\d+)/g,Rc=-1,Hl=-2;var dr=class{constructor(e,t,n,r){z(this,"$location");z(this,"id");z(this,"_nameIsCapturing");z(this,"_name");z(this,"_contentNameIsCapturing");z(this,"_contentName");this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=Ar.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=Ar.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${Bl(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:Ar.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:Ar.replaceCaptures(this._contentName,e,t)}},Nc=class extends dr{constructor(t,n,r,a,i){super(t,n,r,a);z(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(t,n){throw new Error("Not supported!")}compile(t,n){throw new Error("Not supported!")}compileAG(t,n,r,a){throw new Error("Not supported!")}},Bc=class extends dr{constructor(t,n,r,a,i){super(t,n,r,null);z(this,"_match");z(this,"captures");z(this,"_cachedCompiledPatterns");this._match=new or(a,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(t,n){n.push(this._match)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,a){return this._getCachedCompiledPatterns(t).compileAG(t,r,a)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new lr,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ws=class extends dr{constructor(t,n,r,a,i){super(t,n,r,a);z(this,"hasMissingPatterns");z(this,"patterns");z(this,"_cachedCompiledPatterns");this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(t,n){for(const r of this.patterns)t.getRule(r).collectPatterns(t,n)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,a){return this._getCachedCompiledPatterns(t).compileAG(t,r,a)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new lr,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Si=class extends dr{constructor(t,n,r,a,i,s,o,l,u,h){super(t,n,r,a);z(this,"_begin");z(this,"beginCaptures");z(this,"_end");z(this,"endHasBackReferences");z(this,"endCaptures");z(this,"applyEndPatternLast");z(this,"hasMissingPatterns");z(this,"patterns");z(this,"_cachedCompiledPatterns");this._begin=new or(i,this.id),this.beginCaptures=s,this._end=new or(o||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=u||!1,this.patterns=h.patterns,this.hasMissingPatterns=h.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(t,n){return this._end.resolveBackReferences(t,n)}collectPatterns(t,n){n.push(this._begin)}compile(t,n){return this._getCachedCompiledPatterns(t,n).compile(t)}compileAG(t,n,r,a){return this._getCachedCompiledPatterns(t,n).compileAG(t,r,a)}_getCachedCompiledPatterns(t,n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new lr;for(const r of this.patterns)t.getRule(r).collectPatterns(t,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,n):this._cachedCompiledPatterns.setSource(0,n)),this._cachedCompiledPatterns}},Qr=class extends dr{constructor(t,n,r,a,i,s,o,l,u){super(t,n,r,a);z(this,"_begin");z(this,"beginCaptures");z(this,"whileCaptures");z(this,"_while");z(this,"whileHasBackReferences");z(this,"hasMissingPatterns");z(this,"patterns");z(this,"_cachedCompiledPatterns");z(this,"_cachedCompiledWhilePatterns");this._begin=new or(i,this.id),this.beginCaptures=s,this.whileCaptures=l,this._while=new or(o,Hl),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(t,n){return this._while.resolveBackReferences(t,n)}collectPatterns(t,n){n.push(this._begin)}compile(t,n){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,n,r,a){return this._getCachedCompiledPatterns(t).compileAG(t,r,a)}_getCachedCompiledPatterns(t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new lr;for(const n of this.patterns)t.getRule(n).collectPatterns(t,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(t,n){return this._getCachedCompiledWhilePatterns(t,n).compile(t)}compileWhileAG(t,n,r,a){return this._getCachedCompiledWhilePatterns(t,n).compileAG(t,r,a)}_getCachedCompiledWhilePatterns(t,n){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new lr,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,n||"￿"),this._cachedCompiledWhilePatterns}},Ul=class Le{static createCaptureRule(t,n,r,a,i){return t.registerRule(s=>new Nc(n,s,r,a,i))}static getCompiledRuleId(t,n,r){return t.id||n.registerRule(a=>{if(t.id=a,t.match)return new Bc(t.$vscodeTextmateLocation,t.id,t.name,t.match,Le._compileCaptures(t.captures,n,r));if(typeof t.begin>"u"){t.repository&&(r=Nl({},r,t.repository));let i=t.patterns;return typeof i>"u"&&t.include&&(i=[{include:t.include}]),new Ws(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,Le._compilePatterns(i,n,r))}return t.while?new Qr(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Le._compileCaptures(t.beginCaptures||t.captures,n,r),t.while,Le._compileCaptures(t.whileCaptures||t.captures,n,r),Le._compilePatterns(t.patterns,n,r)):new Si(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Le._compileCaptures(t.beginCaptures||t.captures,n,r),t.end,Le._compileCaptures(t.endCaptures||t.captures,n,r),t.applyEndPatternLast,Le._compilePatterns(t.patterns,n,r))}),t.id}static _compileCaptures(t,n,r){let a=[];if(t){let i=0;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const o=parseInt(s,10);o>i&&(i=o)}for(let s=0;s<=i;s++)a[s]=null;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const o=parseInt(s,10);let l=0;t[s].patterns&&(l=Le.getCompiledRuleId(t[s],n,r)),a[o]=Le.createCaptureRule(n,t[s].$vscodeTextmateLocation,t[s].name,t[s].contentName,l)}}return a}static _compilePatterns(t,n,r){let a=[];if(t)for(let i=0,s=t.length;it.substring(a.start,a.end));return Us.lastIndex=0,this.source.replace(Us,(a,i)=>Fl(r[parseInt(i,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],n=[],r=[],a=[],i,s,o,l;for(i=0,s=this.source.length;in.source);this._cached=new Vs(e,t,this._items.map(n=>n.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let r=this._items.map(a=>a.resolveAnchors(t,n));return new Vs(e,r,this._items.map(a=>a.ruleId))}},Vs=class{constructor(e,t,n){z(this,"scanner");this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,n=this.rules.length;t{const n=this._scopeToLanguage(t),r=this._toStandardTokenType(t);return new Ua(n,r)}));this._defaultAttributes=new Ua(t,8),this._embeddedLanguagesMatcher=new Lc(Object.entries(n||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?Dt._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const n=t.match(Dt.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}},z(Dt,"_NULL_SCOPE_METADATA",new Ua(0,0)),z(Dt,"STANDARD_TOKEN_TYPE_REGEXP",/\b(comment|string|regex|meta\.embedded)\b/),Dt),Lc=class{constructor(e){z(this,"values");z(this,"scopesRegExp");if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([n,r])=>Fl(n));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},Xs=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Vl(e,t,n,r,a,i,s,o){const l=t.content.length;let u=!1,h=-1;if(s){const d=Fc(e,t,n,r,a,i);a=d.stack,r=d.linePos,n=d.isFirstLine,h=d.anchorPosition}const c=Date.now();for(;!u;){if(o!==0&&Date.now()-c>o)return new Xs(a,!0);f()}return new Xs(a,!1);function f(){const d=Pc(e,t,n,r,a,h);if(!d){i.produce(a,l),u=!0;return}const b=d.captureIndices,w=d.matchedRuleId,A=b&&b.length>0?b[0].end>r:!1;if(w===Rc){const k=a.getRule(e);i.produce(a,b[0].start),a=a.withContentNameScopesList(a.nameScopesList),er(e,t,n,a,i,k.endCaptures,b),i.produce(a,b[0].end);const C=a;if(a=a.parent,h=C.getAnchorPos(),!A&&C.getEnterPos()===r){a=C,i.produce(a,l),u=!0;return}}else{const k=e.getRule(w);i.produce(a,b[0].start);const C=a,T=k.getName(t.content,b),I=a.contentNameScopesList.pushAttributed(T,e);if(a=a.push(w,r,h,b[0].end===l,null,I,I),k instanceof Si){const N=k;er(e,t,n,a,i,N.beginCaptures,b),i.produce(a,b[0].end),h=b[0].end;const E=N.getContentName(t.content,b),L=I.pushAttributed(E,e);if(a=a.withContentNameScopesList(L),N.endHasBackReferences&&(a=a.withEndRule(N.getEndWithResolvedBackReferences(t.content,b))),!A&&C.hasSameRuleAs(a)){a=a.pop(),i.produce(a,l),u=!0;return}}else if(k instanceof Qr){const N=k;er(e,t,n,a,i,N.beginCaptures,b),i.produce(a,b[0].end),h=b[0].end;const E=N.getContentName(t.content,b),L=I.pushAttributed(E,e);if(a=a.withContentNameScopesList(L),N.whileHasBackReferences&&(a=a.withEndRule(N.getWhileWithResolvedBackReferences(t.content,b))),!A&&C.hasSameRuleAs(a)){a=a.pop(),i.produce(a,l),u=!0;return}}else if(er(e,t,n,a,i,k.captures,b),i.produce(a,b[0].end),a=a.pop(),!A){a=a.safePop(),i.produce(a,l),u=!0;return}}b[0].end>r&&(r=b[0].end,n=!1)}}function Fc(e,t,n,r,a,i){let s=a.beginRuleCapturedEOL?0:-1;const o=[];for(let l=a;l;l=l.pop()){const u=l.getRule(e);u instanceof Qr&&o.push({rule:u,stack:l})}for(let l=o.pop();l;l=o.pop()){const{ruleScanner:u,findOptions:h}=jc(l.rule,e,l.stack.endRule,n,r===s),c=u.findNextMatchSync(t,r,h);if(c){if(c.ruleId!==Hl){a=l.stack.pop();break}c.captureIndices&&c.captureIndices.length&&(i.produce(l.stack,c.captureIndices[0].start),er(e,t,n,l.stack,i,l.rule.whileCaptures,c.captureIndices),i.produce(l.stack,c.captureIndices[0].end),s=c.captureIndices[0].end,c.captureIndices[0].end>r&&(r=c.captureIndices[0].end,n=!1))}else{a=l.stack.pop();break}}return{stack:a,linePos:r,anchorPosition:s,isFirstLine:n}}function Pc(e,t,n,r,a,i){const s=Oc(e,t,n,r,a,i),o=e.getInjections();if(o.length===0)return s;const l=qc(o,e,t,n,r,a,i);if(!l)return s;if(!s)return l;const u=s.captureIndices[0].start,h=l.captureIndices[0].start;return h=o)&&(o=T,l=C.captureIndices,u=C.ruleId,h=b.priority,o===a))break}return l?{priorityMatch:h===-1,captureIndices:l,matchedRuleId:u}:null}function Xl(e,t,n,r,a){return{ruleScanner:e.compileAG(t,n,r,a),findOptions:0}}function jc(e,t,n,r,a){return{ruleScanner:e.compileWhileAG(t,n,r,a),findOptions:0}}function er(e,t,n,r,a,i,s){if(i.length===0)return;const o=t.content,l=Math.min(i.length,s.length),u=[],h=s[0].end;for(let c=0;ch)break;for(;u.length>0&&u[u.length-1].endPos<=d.start;)a.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop();if(u.length>0?a.produceFromScopes(u[u.length-1].scopes,d.start):a.produce(r,d.start),f.retokenizeCapturedWithRuleId){const w=f.getName(o,s),A=r.contentNameScopesList.pushAttributed(w,e),k=f.getContentName(o,s),C=A.pushAttributed(k,e),T=r.push(f.retokenizeCapturedWithRuleId,d.start,-1,!1,null,A,C),I=e.createOnigString(o.substring(0,d.end));Vl(e,I,n&&d.start===0,d.start,T,a,!1,0),jl(I);continue}const b=f.getName(o,s);if(b!==null){const A=(u.length>0?u[u.length-1].scopes:r.contentNameScopesList).pushAttributed(b,e);u.push(new Gc(A,d.end))}}for(;u.length>0;)a.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop()}var Gc=class{constructor(e,t){z(this,"scopes");z(this,"endPos");this.scopes=e,this.endPos=t}};function Hc(e,t,n,r,a,i,s,o){return new Wc(e,t,n,r,a,i,s,o)}function Ys(e,t,n,r,a){const i=Zr(t,Jr),s=Ul.getCompiledRuleId(n,r,a.repository);for(const o of i)e.push({debugSelector:t,matcher:o.matcher,ruleId:s,grammar:a,priority:o.priority})}function Jr(e,t){if(t.length{for(let a=n;an&&e.substr(0,n)===t&&e[n]==="."}var Wc=class{constructor(e,t,n,r,a,i,s,o){z(this,"_rootId");z(this,"_lastRuleId");z(this,"_ruleId2desc");z(this,"_includedGrammars");z(this,"_grammarRepository");z(this,"_grammar");z(this,"_injections");z(this,"_basicScopeAttributesProvider");z(this,"_tokenTypeMatchers");if(this._rootScopeName=e,this.balancedBracketSelectors=i,this._onigLib=o,this._basicScopeAttributesProvider=new Dc(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=s,this._grammar=Zs(t,null),this._injections=null,this._tokenTypeMatchers=[],a)for(const l of Object.keys(a)){const u=Zr(l,Jr);for(const h of u)this._tokenTypeMatchers.push({matcher:h.matcher,type:a[l]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:a=>a===this._rootScopeName?this._grammar:this.getExternalGrammar(a),injections:a=>this._grammarRepository.injections(a)},t=[],n=this._rootScopeName,r=e.lookup(n);if(r){const a=r.injections;if(a)for(let s in a)Ys(t,s,a[s],this,r);const i=this._grammarRepository.injections(n);i&&i.forEach(s=>{const o=this.getExternalGrammar(s);if(o){const l=o.injectionSelector;l&&Ys(t,l,o,this,o)}})}return t.sort((a,i)=>a.priority-i.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=Zs(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const r=this._tokenize(e,t,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,n=0){const r=this._tokenize(e,t,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,n,r){this._rootId===-1&&(this._rootId=Ul.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let a;if(!t||t===Ai.NULL){a=!0;const u=this._basicScopeAttributesProvider.getDefaultAttributes(),h=this.themeProvider.getDefaults(),c=xn.set(0,u.languageId,u.tokenType,null,h.fontStyle,h.foregroundId,h.backgroundId),f=this.getRule(this._rootId).getName(null,null);let d;f?d=nr.createRootAndLookUpScopeName(f,c,this):d=nr.createRoot("unknown",c),t=new Ai(null,this._rootId,-1,-1,!1,null,d,d)}else a=!1,t.reset();e=e+` +`;const i=this.createOnigString(e),s=i.content.length,o=new Xc(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),l=Vl(this,i,a,0,t,o,!0,r);return jl(i),{lineLength:s,lineTokens:o,ruleStack:l.stack,stoppedEarly:l.stoppedEarly}}};function Zs(e,t){return e=mc(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var nr=class xt{constructor(t,n,r){this.parent=t,this.scopePath=n,this.tokenAttributes=r}static fromExtension(t,n){let r=t,a=(t==null?void 0:t.scopePath)??null;for(const i of n)a=Ha.push(a,i.scopeNames),r=new xt(r,a,i.encodedTokenAttributes);return r}static createRoot(t,n){return new xt(null,new Ha(null,t),n)}static createRootAndLookUpScopeName(t,n,r){const a=r.getMetadataForScope(t),i=new Ha(null,t),s=r.themeProvider.themeMatch(i),o=xt.mergeAttributes(n,a,s);return new xt(null,i,o)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return xt.equals(this,t)}static equals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.scopeName!==n.scopeName||t.tokenAttributes!==n.tokenAttributes)return!1;t=t.parent,n=n.parent}while(!0)}static mergeAttributes(t,n,r){let a=-1,i=0,s=0;return r!==null&&(a=r.fontStyle,i=r.foregroundId,s=r.backgroundId),xn.set(t,n.languageId,n.tokenType,null,a,i,s)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(" ")===-1)return xt._pushAttributed(this,t,n);const r=t.split(/ /g);let a=this;for(const i of r)a=xt._pushAttributed(a,i,n);return a}static _pushAttributed(t,n,r){const a=r.getMetadataForScope(n),i=t.scopePath.push(n),s=r.themeProvider.themeMatch(i),o=xt.mergeAttributes(t.tokenAttributes,a,s);return new xt(t,i,o)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){var a;const n=[];let r=this;for(;r&&r!==t;)n.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(((a=r.parent)==null?void 0:a.scopePath)??null)}),r=r.parent;return r===t?n.reverse():void 0}},ut,Ai=(ut=class{constructor(t,n,r,a,i,s,o,l){z(this,"_stackElementBrand");z(this,"_enterPos");z(this,"_anchorPos");z(this,"depth");this.parent=t,this.ruleId=n,this.beginRuleCapturedEOL=i,this.endRule=s,this.nameScopesList=o,this.contentNameScopesList=l,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=a}equals(t){return t===null?!1:ut._equals(this,t)}static _equals(t,n){return t===n?!0:this._structuralEquals(t,n)?nr.equals(t.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.depth!==n.depth||t.ruleId!==n.ruleId||t.endRule!==n.endRule)return!1;t=t.parent,n=n.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){ut._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,r,a,i,s,o){return new ut(this,t,n,r,a,i,s,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){const t=[];return this._writeString(t,0),"["+t.join(",")+"]"}_writeString(t,n){var r,a;return this.parent&&(n=this.parent._writeString(t,n)),t[n++]=`(${this.ruleId}, ${(r=this.nameScopesList)==null?void 0:r.toString()}, ${(a=this.contentNameScopesList)==null?void 0:a.toString()})`,n}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new ut(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let n=this;for(;n&&n._enterPos===t._enterPos;){if(n.ruleId===t.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){var t,n,r;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((n=this.nameScopesList)==null?void 0:n.getExtensionIfDefined(((t=this.parent)==null?void 0:t.nameScopesList)??null))??[],contentNameScopesList:((r=this.contentNameScopesList)==null?void 0:r.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(t,n){const r=nr.fromExtension((t==null?void 0:t.nameScopesList)??null,n.nameScopesList);return new ut(t,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,r,nr.fromExtension(r,n.contentNameScopesList))}},z(ut,"NULL",new ut(null,0,0,0,!1,null,null,null)),ut),Vc=class{constructor(e,t){z(this,"balancedBracketScopes");z(this,"unbalancedBracketScopes");z(this,"allowAny",!1);this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.allowAny=!0,[]):Zr(n,Jr).map(r=>r.matcher)),this.unbalancedBracketScopes=t.flatMap(n=>Zr(n,Jr).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},Xc=class{constructor(e,t,n,r){z(this,"_emitBinaryTokens");z(this,"_lineText");z(this,"_tokens");z(this,"_binaryTokens");z(this,"_lastTokenEndIndex");z(this,"_tokenTypeOverrides");this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){var r;if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let a=(e==null?void 0:e.tokenAttributes)??0,i=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const s=(e==null?void 0:e.getScopeNames())??[];for(const o of this._tokenTypeOverrides)o.matcher(s)&&(a=xn.set(a,0,o.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(s))}if(i&&(a=xn.set(a,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===a){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(a),this._lastTokenEndIndex=t;return}const n=(e==null?void 0:e.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let r=0,a=this._binaryTokens.length;r0;)s.Q.map(o=>this._loadSingleGrammar(o.scopeName)),s.processQueue();return this._grammarForScopeName(t,n,r,a,i)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const n=this._options.loadGrammar(t);if(n){const r=typeof this._options.getInjections=="function"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(n,r)}}addGrammar(t,n=[],r=0,a=null){return this._syncRegistry.addGrammar(t,n),this._grammarForScopeName(t.scopeName,r,a)}_grammarForScopeName(t,n=0,r=null,a=null,i=null){return this._syncRegistry.grammarForScopeName(t,n,r,a,i)}},Ti=Ai.NULL;function ea(e,t){const n=typeof e=="string"?{}:{...e.colorReplacements},r=typeof e=="string"?e:e.name;for(const[a,i]of Object.entries((t==null?void 0:t.colorReplacements)||{}))typeof i=="string"?n[a]=i:a===r&&Object.assign(n,i);return n}function Qt(e,t){return e&&((t==null?void 0:t[e==null?void 0:e.toLowerCase()])||e)}function Kc(e){return Array.isArray(e)?e:[e]}async function Yl(e){return Promise.resolve(typeof e=="function"?e():e).then(t=>t.default||t)}function da(e){return!e||["plaintext","txt","text","plain"].includes(e)}function Qc(e){return e==="ansi"||da(e)}function fa(e){return e==="none"}function Jc(e){return fa(e)}const em=/(\r?\n)/g;function ga(e,t=!1){var i;if(e.length===0)return[["",0]];const n=e.split(em);let r=0;const a=[];for(let s=0;s!d.name&&!d.scope):void 0;(o=f==null?void 0:f.settings)!=null&&o.foreground&&(r=f.settings.foreground),(l=f==null?void 0:f.settings)!=null&&l.background&&(n=f.settings.background),!r&&((u=t==null?void 0:t.colors)!=null&&u["editor.foreground"])&&(r=t.colors["editor.foreground"]),!n&&((h=t==null?void 0:t.colors)!=null&&h["editor.background"])&&(n=t.colors["editor.background"]),r||(r=t.type==="light"?Ks.light:Ks.dark),n||(n=t.type==="light"?Qs.light:Qs.dark),t.fg=r,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let a=0;const i=new Map;function s(f){var b;if(i.has(f))return i.get(f);a+=1;const d=`#${a.toString(16).padStart(8,"0").toLowerCase()}`;return(b=t.colorReplacements)!=null&&b[`#${d}`]?s(f):(i.set(f,d),d)}t.settings=t.settings.map(f=>{var A,k;const d=((A=f.settings)==null?void 0:A.foreground)&&!f.settings.foreground.startsWith("#"),b=((k=f.settings)==null?void 0:k.background)&&!f.settings.background.startsWith("#");if(!d&&!b)return f;const w={...f,settings:{...f.settings}};if(d){const C=s(f.settings.foreground);t.colorReplacements[C]=f.settings.foreground,w.settings.foreground=C}if(b){const C=s(f.settings.background);t.colorReplacements[C]=f.settings.background,w.settings.background=C}return w});for(const f of Object.keys(t.colors||{}))if((f==="editor.foreground"||f==="editor.background"||f.startsWith("terminal.ansi"))&&!((c=t.colors[f])!=null&&c.startsWith("#"))){const d=s(t.colors[f]);t.colorReplacements[d]=t.colors[f],t.colors[f]=d}return Object.defineProperty(t,Js,{enumerable:!1,writable:!1,value:!0}),t}async function tm(e){return[...new Set((await Promise.all(e.filter(t=>!Qc(t)).map(async t=>await Yl(t).then(n=>Array.isArray(n)?n:[n])))).flat())]}async function nm(e){return(await Promise.all(e.map(async t=>Jc(t)?null:ms(await Yl(t))))).filter(t=>!!t)}function Zl(e,t){if(!t)return e;if(t[e]){const n=new Set([e]);for(;t[e];){if(e=t[e],n.has(e))throw new be(`Circular alias \`${[...n].join(" -> ")} -> ${e}\``);n.add(e)}}return e}var rm=class extends Zc{constructor(t,n,r,a={}){super(t);z(this,"_resolver");z(this,"_themes");z(this,"_langs");z(this,"_alias");z(this,"_resolvedThemes",new Map);z(this,"_resolvedGrammars",new Map);z(this,"_langMap",new Map);z(this,"_langGraph",new Map);z(this,"_textmateThemeCache",new WeakMap);z(this,"_loadedThemesCache",null);z(this,"_loadedLanguagesCache",null);this._resolver=t,this._themes=n,this._langs=r,this._alias=a,this._themes.map(i=>this.loadTheme(i)),this.loadLanguages(this._langs)}getTheme(t){return typeof t=="string"?this._resolvedThemes.get(t):this.loadTheme(t)}loadTheme(t){const n=ms(t);return n.name&&(this._resolvedThemes.set(n.name,n),this._loadedThemesCache=null),n}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(t){let n=this._textmateThemeCache.get(t);n||(n=Yr.createFromRawTheme(t),this._textmateThemeCache.set(t,n)),this._syncRegistry.setTheme(n)}getGrammar(t){return t=Zl(t,this._alias),this._resolvedGrammars.get(t)}loadLanguage(t){var i,s,o,l;if(this.getGrammar(t.name))return;const n=new Set([...this._langMap.values()].filter(u=>{var h;return(h=u.embeddedLangsLazy)==null?void 0:h.includes(t.name)}));this._resolver.addLanguage(t);const r={balancedBracketSelectors:t.balancedBracketSelectors||["*"],unbalancedBracketSelectors:t.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(t.scopeName,t);const a=this.loadGrammarWithConfiguration(t.scopeName,1,r);if(a.name=t.name,this._resolvedGrammars.set(t.name,a),t.aliases&&t.aliases.forEach(u=>{this._alias[u]=t.name}),this._loadedLanguagesCache=null,n.size)for(const u of n)this._resolvedGrammars.delete(u.name),this._loadedLanguagesCache=null,(s=(i=this._syncRegistry)==null?void 0:i._injectionGrammars)==null||s.delete(u.scopeName),(l=(o=this._syncRegistry)==null?void 0:o._grammars)==null||l.delete(u.scopeName),this.loadLanguage(this._langMap.get(u.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(t){for(const a of t)this.resolveEmbeddedLanguages(a);const n=[...this._langGraph.entries()],r=n.filter(([a,i])=>!i);if(r.length){const a=n.filter(([i,s])=>{var o;return s?(o=s.embeddedLanguages||s.embeddedLangs)==null?void 0:o.some(l=>r.map(([u])=>u).includes(l)):!1}).filter(i=>!r.includes(i));throw new be(`Missing languages ${r.map(([i])=>`\`${i}\``).join(", ")}, required by ${a.map(([i])=>`\`${i}\``).join(", ")}`)}for(const[a,i]of n)this._resolver.addLanguage(i);for(const[a,i]of n)this.loadLanguage(i)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(t){this._langMap.set(t.name,t),this._langGraph.set(t.name,t);const n=t.embeddedLanguages??t.embeddedLangs;if(n)for(const r of n)this._langGraph.set(r,this._langMap.get(r))}},am=class{constructor(e,t){z(this,"_langs",new Map);z(this,"_scopeToLang",new Map);z(this,"_injections",new Map);z(this,"_onigLib");this._onigLib={createOnigScanner:n=>e.createScanner(n),createOnigString:n=>e.createString(n)},t.forEach(n=>this.addLanguage(n))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){const t=e.split(".");let n=[];for(let r=1;r<=t.length;r++){const a=t.slice(0,r).join(".");n=[...n,...this._injections.get(a)||[]]}return n}};let Qn=0;function im(e){Qn+=1,e.warnings!==!1&&Qn>=10&&Qn%10===0&&console.warn(`[Shiki] ${Qn} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new be("`engine` option is required for synchronous mode");const n=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(ms),a=new rm(new am(e.engine,n),r,n,e.langAlias);let i;function s(C){return Zl(C,e.langAlias)}function o(C){A();const T=a.getGrammar(typeof C=="string"?C:C.name);if(!T)throw new be(`Language \`${C}\` not found, you may need to load it first`);return T}function l(C){if(C==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};A();const T=a.getTheme(C);if(!T)throw new be(`Theme \`${C}\` not found, you may need to load it first`);return T}function u(C){A();const T=l(C);return i!==C&&(a.setTheme(T),i=C),{theme:T,colorMap:a.getColorMap()}}function h(){return A(),a.getLoadedThemes()}function c(){return A(),a.getLoadedLanguages()}function f(...C){A(),a.loadLanguages(C.flat(1))}async function d(...C){return f(await tm(C))}function b(...C){A();for(const T of C.flat(1))a.loadTheme(T)}async function w(...C){return A(),b(await nm(C))}function A(){if(t)throw new be("Shiki instance has been disposed")}function k(){t||(t=!0,a.dispose(),Qn-=1)}return{setTheme:u,getTheme:l,getLanguage:o,getLoadedThemes:h,getLoadedLanguages:c,resolveLangAlias:s,loadLanguage:d,loadLanguageSync:f,loadTheme:w,loadThemeSync:b,dispose:k,[Symbol.dispose]:k}}const Kl=new WeakMap;function ba(e,t){Kl.set(e,t)}function ur(e){return Kl.get(e)}var ya=class Ql{constructor(...t){z(this,"_stacks",{});z(this,"lang");if(t.length===2){const[n,r]=t;this.lang=r,this._stacks=n}else{const[n,r,a]=t;this.lang=r,this._stacks={[a]:n}}}get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new Ql(Object.fromEntries(Kc(n).map(r=>[r,Ti])),t)}getInternalStack(t=this.theme){return this._stacks[t]}getScopes(t=this.theme){return sm(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function sm(e){const t=[],n=new Set;function r(a){var s;if(n.has(a))return;n.add(a);const i=(s=a==null?void 0:a.nameScopesList)==null?void 0:s.scopeName;i&&t.push(i),a.parent&&r(a.parent)}return r(e),t}function om(e,t){if(!(e instanceof ya))throw new be("Invalid grammar state");return e.getInternalStack(t)}const lm=/,/,um=/ /;function Jl(e,t,n={}){const{theme:r=e.getLoadedThemes()[0]}=n;if(da(e.resolveLangAlias(n.lang||"text"))||fa(r))return ga(t).map(o=>[{content:o[0],offset:o[1]}]);const{theme:a,colorMap:i}=e.setTheme(r),s=e.getLanguage(n.lang||"text");if(n.grammarState){if(n.grammarState.lang!==s.name)throw new be(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${s.name}"`);if(!n.grammarState.themes.includes(a.name))throw new be(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${a.name}"`)}return mm(t,s,a,i,n)}function cm(...e){if(e.length===2)return ur(e[1]);const[t,n,r={}]=e,{lang:a="text",theme:i=t.getLoadedThemes()[0]}=r;if(da(a)||fa(i))throw new be("Plain language does not have grammar state");if(a==="ansi")throw new be("ANSI language does not have grammar state");const{theme:s,colorMap:o}=t.setTheme(i),l=t.getLanguage(a);return new ya(hs(n,l,s,o,r).stateStack,l.name,s.name)}function mm(e,t,n,r,a){const i=hs(e,t,n,r,a),s=new ya(i.stateStack,t.name,n.name);return ba(i.tokens,s),i.tokens}function hs(e,t,n,r,a){const i=ea(n,a),{tokenizeMaxLineLength:s=0,tokenizeTimeLimit:o=500,includeExplanation:l=!1}=a,u=ga(e);let h=a.grammarState?om(a.grammarState,n.name)??Ti:a.grammarContextCode!=null?hs(a.grammarContextCode,t,n,r,{...a,grammarState:void 0,grammarContextCode:void 0}).stateStack:Ti,c=[];const f=[];for(let d=0,b=u.length;d0&&w.length>=s){c=[],f.push([{content:w,offset:A,color:"",fontStyle:0}]);continue}let k,C,T;l&&l!=="tokenType"&&(k=t.tokenizeLine(w,h,o),C=k.tokens,T=0);const I=t.tokenizeLine2(w,h,o),N=I.tokens.length/2;for(let E=0;Ehe.trim());break;case"object":ue=Z.scope;break;default:continue}le.push({settings:Z,selectors:ue.map(he=>he.split(um))})}j.explanation=[];let se=0;for(;L+se({scopeName:t}))}function pm(e,t){const n=[];for(let r=0,a=t.length;r=0&&a>=0;)eo(e[r],n[a])&&(r-=1),a-=1;return r===-1}function fm(e,t,n){const r=[];for(const{selectors:a,settings:i}of e)for(const s of a)if(dm(s,t,n)){r.push(i);break}return r}function e0(e,t,n,r=Jl){const a=Object.entries(n.themes).filter(u=>u[1]).map(u=>({color:u[0],theme:u[1]})),i=a.map(u=>{const h=r(e,t,{...n,theme:u.theme});return{tokens:h,state:ur(h),theme:typeof u.theme=="string"?u.theme:u.theme.name}}),s=gm(...i.map(u=>u.tokens)),o=s[0].map((u,h)=>u.map((c,f)=>{const d={content:c.content,variants:{},offset:c.offset};return"includeExplanation"in n&&n.includeExplanation&&(d.explanation=c.explanation),s.forEach((b,w)=>{const{content:A,explanation:k,offset:C,...T}=b[h][f];d.variants[a[w].color]=T}),d})),l=i[0].state?new ya(Object.fromEntries(i.map(u=>{var h;return[u.theme,(h=u.state)==null?void 0:h.getInternalStack(u.theme)]})),i[0].state.lang):void 0;return l&&ba(o,l),o}function gm(...e){const t=e.map(()=>[]),n=e.length;for(let r=0;rl[r]),i=t.map(()=>[]);t.forEach((l,u)=>l.push(i[u]));const s=a.map(()=>0),o=a.map(l=>l[0]);for(;o.every(l=>l);){const l=Math.min(...o.map(u=>u.content.length));for(let u=0;u4&&n.slice(0,4)==="data"&&km.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(no,Cm);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!no.test(i)){let s=i.replace(xm,$m);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}a=ps}return new a(r,t)}function $m(e){return"-"+e.toLowerCase()}function Cm(e){return e.charAt(1).toUpperCase()}const Sm=t0([n0,vm,i0,s0,o0],"html"),l0=t0([n0,wm,i0,s0,o0],"svg"),ro={}.hasOwnProperty;function Am(e,t){const n=t||{};function r(a,...i){let s=r.invalid;const o=r.handlers;if(a&&ro.call(a,e)){const l=String(a[e]);s=ro.call(o,l)?o[l]:r.unknown}if(s)return s.call(this,a,...i)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}const Tm=/["&'<>`]/g,Em=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Mm=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Im=/[|\\{}()[\]^$+*?.]/g,ao=new WeakMap;function zm(e,t){if(e=e.replace(t.subset?Rm(t.subset):Tm,r),t.subset||t.escapeOnly)return e;return e.replace(Em,n).replace(Mm,r);function n(a,i,s){return t.format((a.charCodeAt(0)-55296)*1024+a.charCodeAt(1)-56320+65536,s.charCodeAt(i+2),t)}function r(a,i,s){return t.format(a.charCodeAt(0),s.charCodeAt(i+1),t)}}function Rm(e){let t=ao.get(e);return t||(t=Nm(e),ao.set(e,t)),t}function Nm(e){const t=[];let n=-1;for(;++n",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"�",lrm:"‎",rlm:"�",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"�",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},Om=["cent","copy","divide","gt","lt","not","para","times"],u0={}.hasOwnProperty,zi={};let Tr;for(Tr in Va)u0.call(Va,Tr)&&(zi[Va[Tr]]=Tr);const qm=/[^\dA-Za-z]/;function jm(e,t,n,r){const a=String.fromCharCode(e);if(u0.call(zi,a)){const i=zi[a],s="&"+i;return n&&Pm.includes(i)&&!Om.includes(i)&&(!r||t&&t!==61&&qm.test(String.fromCharCode(t)))?s:s+";"}return""}function Gm(e,t,n){let r=Dm(e,t,n.omitOptionalSemicolons),a;if((n.useNamedReferences||n.useShortestReferences)&&(a=jm(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!a)&&n.useShortestReferences){const i=Fm(e,t,n.omitOptionalSemicolons);i.length|^->||--!>|"],Wm=["<",">"];function Vm(e,t,n,r){return r.settings.bogusComments?"":"";function a(i){return Dn(i,Object.assign({},r.settings.characterReferences,{subset:Wm}))}}function Xm(e,t,n,r){return""}function ta(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,a=n.indexOf(t);for(;a!==-1;)r++,a=n.indexOf(t,a+t.length);return r}function Ym(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function Zm(e){return e.join(" ").trim()}const Km=/[ \t\n\f\r]/g;function ds(e){return typeof e=="object"?e.type==="text"?io(e.value):!1:io(e)}function io(e){return e.replace(Km,"")===""}const Re=m0(1),c0=m0(-1),Qm=[];function m0(e){return t;function t(n,r,a){const i=n?n.children:Qm;let s=(r||0)+e,o=i[s];if(!a)for(;o&&ds(o);)s+=e,o=i[s];return o}}const Jm={}.hasOwnProperty;function h0(e){return t;function t(n,r,a){return Jm.call(e,n.tagName)&&e[n.tagName](n,r,a)}}const fs=h0({body:th,caption:Xa,colgroup:Xa,dd:ih,dt:ah,head:Xa,html:eh,li:rh,optgroup:sh,option:oh,p:nh,rp:so,rt:so,tbody:uh,td:oo,tfoot:ch,th:oo,thead:lh,tr:mh});function Xa(e,t,n){const r=Re(n,t,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&ds(r.value.charAt(0)))}function eh(e,t,n){const r=Re(n,t);return!r||r.type!=="comment"}function th(e,t,n){const r=Re(n,t);return!r||r.type!=="comment"}function nh(e,t,n){const r=Re(n,t);return r?r.type==="element"&&(r.tagName==="address"||r.tagName==="article"||r.tagName==="aside"||r.tagName==="blockquote"||r.tagName==="details"||r.tagName==="div"||r.tagName==="dl"||r.tagName==="fieldset"||r.tagName==="figcaption"||r.tagName==="figure"||r.tagName==="footer"||r.tagName==="form"||r.tagName==="h1"||r.tagName==="h2"||r.tagName==="h3"||r.tagName==="h4"||r.tagName==="h5"||r.tagName==="h6"||r.tagName==="header"||r.tagName==="hgroup"||r.tagName==="hr"||r.tagName==="main"||r.tagName==="menu"||r.tagName==="nav"||r.tagName==="ol"||r.tagName==="p"||r.tagName==="pre"||r.tagName==="section"||r.tagName==="table"||r.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function rh(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&r.tagName==="li"}function ah(e,t,n){const r=Re(n,t);return!!(r&&r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd"))}function ih(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd")}function so(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&(r.tagName==="rp"||r.tagName==="rt")}function sh(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&r.tagName==="optgroup"}function oh(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&(r.tagName==="option"||r.tagName==="optgroup")}function lh(e,t,n){const r=Re(n,t);return!!(r&&r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot"))}function uh(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot")}function ch(e,t,n){return!Re(n,t)}function mh(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&r.tagName==="tr"}function oo(e,t,n){const r=Re(n,t);return!r||r.type==="element"&&(r.tagName==="td"||r.tagName==="th")}const hh=h0({body:fh,colgroup:gh,head:dh,html:ph,tbody:bh});function ph(e){const t=Re(e,-1);return!t||t.type!=="comment"}function dh(e){const t=new Set;for(const r of e.children)if(r.type==="element"&&(r.tagName==="base"||r.tagName==="title")){if(t.has(r.tagName))return!1;t.add(r.tagName)}const n=e.children[0];return!n||n.type==="element"}function fh(e){const t=Re(e,-1,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&ds(t.value.charAt(0)))&&!(t.type==="element"&&(t.tagName==="meta"||t.tagName==="link"||t.tagName==="script"||t.tagName==="style"||t.tagName==="template"))}function gh(e,t,n){const r=c0(n,t),a=Re(e,-1,!0);return n&&r&&r.type==="element"&&r.tagName==="colgroup"&&fs(r,n.children.indexOf(r),n)?!1:!!(a&&a.type==="element"&&a.tagName==="col")}function bh(e,t,n){const r=c0(n,t),a=Re(e,-1);return n&&r&&r.type==="element"&&(r.tagName==="thead"||r.tagName==="tbody")&&fs(r,n.children.indexOf(r),n)?!1:!!(a&&a.type==="element"&&a.tagName==="tr")}const Er={name:[[` +\f\r &/=>`.split(""),` +\f\r "&'/=>\``.split("")],[`\0 +\f\r "&'/<=>`.split(""),`\0 +\f\r "&'/<=>\``.split("")]],unquoted:[[` +\f\r &>`.split(""),`\0 +\f\r "&'<=>\``.split("")],[`\0 +\f\r "&'<=>\``.split(""),`\0 +\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function yh(e,t,n,r){const a=r.schema,i=a.space==="svg"?!1:r.settings.omitOptionalTags;let s=a.space==="svg"?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase());const o=[];let l;a.space==="html"&&e.tagName==="svg"&&(r.schema=l0);const u=vh(r,e.properties),h=r.all(a.space==="html"&&e.tagName==="template"?e.content:e);return r.schema=a,h&&(s=!1),(u||!i||!hh(e,t,n))&&(o.push("<",e.tagName,u?" "+u:""),s&&(a.space==="svg"||r.settings.closeSelfClosing)&&(l=u.charAt(u.length-1),(!r.settings.tightSelfClosing||l==="/"||l&&l!=='"'&&l!=="'")&&o.push(" "),o.push("/")),o.push(">")),o.push(h),!s&&(!i||!fs(e,t,n))&&o.push(""),o.join("")}function vh(e,t){const n=[];let r=-1,a;if(t){for(a in t)if(t[a]!==null&&t[a]!==void 0){const i=wh(e,a,t[a]);i&&n.push(i)}}for(;++rta(n,e.alternative)&&(s=e.alternative),o=s+Dn(n,Object.assign({},e.settings.characterReferences,{subset:(s==="'"?Er.single:Er.double)[a][i],attribute:!0}))+s),l+(o&&"="+o))}const xh=["<","&"];function p0(e,t,n,r){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:Dn(e.value,Object.assign({},r.settings.characterReferences,{subset:xh}))}function kh(e,t,n,r){return r.settings.allowDangerousHtml?e.value:p0(e,t,n,r)}function _h(e,t,n,r){return r.all(e)}const $h=Am("type",{invalid:Ch,unknown:Sh,handlers:{comment:Vm,doctype:Xm,element:yh,raw:kh,root:_h,text:p0}});function Ch(e){throw new Error("Expected node, not `"+e+"`")}function Sh(e){const t=e;throw new Error("Cannot compile unknown node `"+t.type+"`")}const Ah={},Th={},Eh=[];function Mh(e,t){const n=t||Ah,r=n.quote||'"',a=r==='"'?"'":'"';if(r!=='"'&&r!=="'")throw new Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:Ih,all:zh,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||bm,characterReferences:n.characterReferences||Th,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?l0:Sm,quote:r,alternative:a}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function Ih(e,t,n){return $h(e,t,n,this)}function zh(e){const t=[],n=e&&e.children||Eh;let r=-1;for(;++ra);function n(a){if(a===e.length)return{line:t.length-1,character:t.at(-1).length};let i=a,s=0;for(const o of t){if(in&&r.push({...e,content:e.content.slice(n,a),offset:e.offset+n}),n=a;return nr-a);return n.length?e.map(r=>r.flatMap(a=>{const i=n.filter(s=>a.offsets-a.offset).sort((s,o)=>s-o);return i.length?Bh(a,i):a})):e}function Lh(e,t,n,r,a="css-vars"){const i={content:e.content,explanation:e.explanation,offset:e.offset},s=t.map(h=>na(e.variants[h])),o=new Set(s.flatMap(h=>Object.keys(h))),l={},u=(h,c)=>{const f=c==="color"?"":c==="background-color"?"-bg":`-${c}`;return n+t[h]+(c==="color"?"":f)};return s.forEach((h,c)=>{for(const f of o){const d=h[f]||"inherit";if(c===0&&r&&Nh.includes(f))if(r==="light-dark()"&&s.length>1){const b=t.findIndex(A=>A==="light"),w=t.findIndex(A=>A==="dark");if(b===-1||w===-1)throw new be('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');l[f]=`light-dark(${s[b][f]||"inherit"}, ${s[w][f]||"inherit"})`,a==="css-vars"&&(l[u(c,f)]=d)}else l[f]=d;else a==="css-vars"&&(l[u(c,f)]=d)}}),i.htmlStyle=l,i}function na(e){const t={};if(e.color&&(t.color=e.color),e.bgColor&&(t["background-color"]=e.bgColor),e.fontStyle){e.fontStyle&Fe.Italic&&(t["font-style"]="italic"),e.fontStyle&Fe.Bold&&(t["font-weight"]="bold");const n=[];e.fontStyle&Fe.Underline&&n.push("underline"),e.fontStyle&Fe.Strikethrough&&n.push("line-through"),n.length&&(t["text-decoration"]=n.join(" "))}return t}function Ri(e){return typeof e=="string"?e:Object.entries(e).map(([t,n])=>`${t}:${n}`).join(";")}function Fh(){const e=new WeakMap;function t(n){if(!e.has(n.meta)){let a=function(s){if(typeof s=="number"){if(s<0||s>n.source.length)throw new be(`Invalid decoration offset: ${s}. Code length: ${n.source.length}`);return{...r.indexToPos(s),offset:s}}else{const o=r.lines[s.line];if(o===void 0)throw new be(`Invalid decoration position ${JSON.stringify(s)}. Lines length: ${r.lines.length}`);let l=s.character;if(l<0&&(l=o.length+l),l<0||l>o.length)throw new be(`Invalid decoration position ${JSON.stringify(s)}. Line ${s.line} length: ${o.length}`);return{...s,character:l,offset:r.posToIndex(s.line,l)}}};const r=Rh(n.source),i=(n.options.decorations||[]).map(s=>({...s,start:a(s.start),end:a(s.end)}));Ph(i),e.set(n.meta,{decorations:i,converter:r,source:n.source})}return e.get(n.meta)}return{name:"shiki:decorations",tokens(n){var r;if((r=this.options.decorations)!=null&&r.length)return Dh(n,t(this).decorations.flatMap(a=>[a.start.offset,a.end.offset]))},code(n){var h;if(!((h=this.options.decorations)!=null&&h.length))return;const r=t(this),a=[...n.children].filter(c=>c.type==="element"&&c.tagName==="span");if(a.length!==r.converter.lines.length)throw new be(`Number of lines in code element (${a.length}) does not match the number of lines in the source (${r.converter.lines.length}). Failed to apply decorations.`);function i(c,f,d,b){const w=a[c];let A="",k=-1,C=-1;if(f===0&&(k=0),d===0&&(C=0),d===Number.POSITIVE_INFINITY&&(C=w.children.length),k===-1||C===-1)for(let I=0;Ik);return c.tagName=f.tagName||"span",c.properties={...c.properties,...b,class:c.properties.class},(A=f.properties)!=null&&A.class&&d0(c,f.properties.class),c=w(c,d)||c,c}const l=[],u=r.decorations.sort((c,f)=>f.start.offset-c.start.offset||c.end.offset-f.end.offset);for(const c of u){const{start:f,end:d}=c;if(f.line===d.line)i(f.line,f.character,d.character,c);else if(f.lines(b,c));i(d.line,0,d.character,c)}}l.forEach(c=>c())}}}function Ph(e){for(let t=0;tn.end.offset)throw new be(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let r=t+1;rNumber.parseInt(r));return n.length!==3||n.some(r=>Number.isNaN(r))?void 0:{type:"rgb",rgb:n}}else if(t==="5"){const n=e.shift();if(n)return{type:"table",index:Number(n)}}}function Gh(e){const t=[];for(;e.length>0;){const n=e.shift();if(!n)continue;const r=Number.parseInt(n);if(!Number.isNaN(r))if(r===0)t.push({type:"resetAll"});else if(r<=9)Ya[r]&&t.push({type:"setDecoration",value:Ya[r]});else if(r<=29){const a=Ya[r-20];a&&(t.push({type:"resetDecoration",value:a}),a==="dim"&&t.push({type:"resetDecoration",value:"bold"}))}else if(r<=37)t.push({type:"setForegroundColor",value:{type:"named",name:bn[r-30]}});else if(r===38){const a=uo(e);a&&t.push({type:"setForegroundColor",value:a})}else if(r===39)t.push({type:"resetForegroundColor"});else if(r<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:bn[r-40]}});else if(r===48){const a=uo(e);a&&t.push({type:"setBackgroundColor",value:a})}else r===49?t.push({type:"resetBackgroundColor"}):r===53?t.push({type:"setDecoration",value:"overline"}):r===55?t.push({type:"resetDecoration",value:"overline"}):r>=90&&r<=97?t.push({type:"setForegroundColor",value:{type:"named",name:bn[r-90+8]}}):r>=100&&r<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:bn[r-100+8]}})}return t}function Hh(){let e=null,t=null,n=new Set;return{parse(r){const a=[];let i=0;do{const s=jh(r,i),o=s.sequence?r.substring(i,s.startPosition):r.substring(i);if(o.length>0&&a.push({value:o,foreground:e,background:t,decorations:new Set(n)}),s.sequence){const l=Gh(s.sequence);for(const u of l)u.type==="resetAll"?(e=null,t=null,n.clear()):u.type==="resetForegroundColor"?e=null:u.type==="resetBackgroundColor"?t=null:u.type==="resetDecoration"&&n.delete(u.value);for(const u of l)u.type==="setForegroundColor"?e=u.value:u.type==="setBackgroundColor"?t=u.value:u.type==="setDecoration"&&n.add(u.value)}i=s.position}while(iMath.max(0,Math.min(l,255)).toString(16).padStart(2,"0")).join("")}`}let r;function a(){if(r)return r;r=[];for(let u=0;u{var u;const l=`terminal.ansi${o[0].toUpperCase()}${o.substring(1)}`;return[o,((u=e.colors)==null?void 0:u[l])||Yh[o]]}))),s=Hh();return a.map(o=>s.parse(o[0]).map(l=>{let u,h;l.decorations.has("reverse")?(u=l.background?i.value(l.background):e.bg,h=l.foreground?i.value(l.foreground):e.fg):(u=l.foreground?i.value(l.foreground):e.fg,h=l.background?i.value(l.background):void 0),u=Qt(u,r),h=Qt(h,r),l.decorations.has("dim")&&(u=Kh(u));let c=Fe.None;return l.decorations.has("bold")&&(c|=Fe.Bold),l.decorations.has("italic")&&(c|=Fe.Italic),l.decorations.has("underline")&&(c|=Fe.Underline),l.decorations.has("strikethrough")&&(c|=Fe.Strikethrough),{content:l.value,offset:o[1],color:u,bgColor:h,fontStyle:c}}))}function Kh(e){const t=e.match(Vh);if(t){const r=t[1];if(r.length===8){const a=Math.round(Number.parseInt(r.slice(6,8),16)/2).toString(16).padStart(2,"0");return`#${r.slice(0,6)}${a}`}else{if(r.length===6)return`#${r}80`;if(r.length===4){const a=r[0],i=r[1],s=r[2],o=r[3];return`#${a}${a}${i}${i}${s}${s}${Math.round(Number.parseInt(`${o}${o}`,16)/2).toString(16).padStart(2,"0")}`}else if(r.length===3){const a=r[0],i=r[1],s=r[2];return`#${a}${a}${i}${i}${s}${s}80`}}}const n=e.match(Xh);return n?`var(${n[1]}-dim)`:e}function Ni(e,t,n={}){const r=e.resolveLangAlias(n.lang||"text"),{theme:a=e.getLoadedThemes()[0]}=n;if(!da(r)&&!fa(a)&&r==="ansi"){const{theme:i}=e.setTheme(a);return Zh(i,t,n)}return Jl(e,t,n)}function aa(e,t,n){let r,a,i,s,o,l;if("themes"in n){const{defaultColor:u="light",cssVariablePrefix:h="--shiki-",colorsRendering:c="css-vars"}=n,f=Object.entries(n.themes).filter(k=>k[1]).map(k=>({color:k[0],theme:k[1]})).sort((k,C)=>k.color===u?-1:C.color===u?1:0);if(f.length===0)throw new be("`themes` option must not be empty");const d=e0(e,t,n,Ni);if(l=ur(d),u&&u!=="light-dark()"&&!f.some(k=>k.color===u))throw new be(`\`themes\` option must contain the defaultColor key \`${u}\``);const b=f.map(k=>e.getTheme(k.theme)),w=f.map(k=>k.color);i=d.map(k=>k.map(C=>Lh(C,w,h,u,c))),l&&ba(i,l);const A=f.map(k=>ea(k.theme,n));a=co(f,b,A,h,u,"fg",c),r=co(f,b,A,h,u,"bg",c),s=`shiki-themes ${b.map(k=>k.name).join(" ")}`,o=u?void 0:[a,r].join(";")}else if("theme"in n){const u=ea(n.theme,n);i=Ni(e,t,n);const h=e.getTheme(n.theme);r=Qt(h.bg,u),a=Qt(h.fg,u),s=h.name,l=ur(i)}else throw new be("Invalid options, either `theme` or `themes` must be provided");return{tokens:i,fg:a,bg:r,themeName:s,rootStyle:o,grammarState:l}}function co(e,t,n,r,a,i,s){return e.map((o,l)=>{const u=Qt(t[l][i],n[l])||"inherit",h=`${r+o.color}${i==="bg"?"-bg":""}:${u}`;if(l===0&&a){if(a==="light-dark()"&&e.length>1){const c=e.findIndex(d=>d.color==="light"),f=e.findIndex(d=>d.color==="dark");if(c===-1||f===-1)throw new be('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');return`light-dark(${Qt(t[c][i],n[c])||"inherit"}, ${Qt(t[f][i],n[f])||"inherit"});${h}`}return u}return s==="css-vars"?h:null}).filter(o=>!!o).join(";")}const g0=/^\s+$/,Qh=/^(\s*)(.*?)(\s*)$/;function ia(e,t,n,r={meta:{},options:n,codeToHast:(a,i)=>ia(e,a,i),codeToTokens:(a,i)=>aa(e,a,i)}){var b,w;let a=t;for(const A of ra(n))a=((b=A.preprocess)==null?void 0:b.call(r,a,n))||a;let{tokens:i,fg:s,bg:o,themeName:l,rootStyle:u,grammarState:h}=aa(e,a,n);const{mergeWhitespaces:c=!0,mergeSameStyleTokens:f=!1}=n;c===!0?i=ep(i):c==="never"&&(i=tp(i)),f&&(i=np(i));const d={...r,get source(){return a}};for(const A of ra(n))i=((w=A.tokens)==null?void 0:w.call(d,i))||i;return Jh(i,{...n,fg:s,bg:o,themeName:l,rootStyle:n.rootStyle===!1?!1:n.rootStyle??u},d,h)}function Jh(e,t,n,r=ur(e)){var w,A,k,C;const a=ra(t),i=[],s={type:"root",children:[]},{structure:o="classic",tabindex:l="0"}=t,u={class:`shiki ${t.themeName||""}`};t.rootStyle!==!1&&(t.rootStyle!=null?u.style=t.rootStyle:u.style=`background-color:${t.bg};color:${t.fg}`),l!==!1&&l!=null&&(u.tabindex=l.toString());for(const[T,I]of Object.entries(t.meta||{}))T.startsWith("_")||(u[T]=I);let h={type:"element",tagName:"pre",properties:u,children:[],data:t.data},c={type:"element",tagName:"code",properties:{},children:i};const f=[],d={...n,structure:o,addClassToHast:d0,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return s},get pre(){return h},get code(){return c},get lines(){return f}};if(e.forEach((T,I)=>{var L,V;I&&(o==="inline"?s.children.push({type:"element",tagName:"br",properties:{},children:[]}):o==="classic"&&i.push({type:"text",value:` +`}));let N={type:"element",tagName:"span",properties:{class:"line"},children:[]},E=0;for(const q of T){let M={type:"element",tagName:"span",properties:{...q.htmlAttrs},children:[{type:"text",value:q.content}]};const U=Ri(q.htmlStyle||na(q));U&&(M.properties.style=U);for(const j of a)M=((L=j==null?void 0:j.span)==null?void 0:L.call(d,M,I+1,E,N,q))||M;o==="inline"?s.children.push(M):o==="classic"&&N.children.push(M),E+=q.content.length}if(o==="classic"){for(const q of a)N=((V=q==null?void 0:q.line)==null?void 0:V.call(d,N,I+1))||N;f.push(N),i.push(N)}else o==="inline"&&f.push(N)}),o==="classic"){for(const T of a)c=((w=T==null?void 0:T.code)==null?void 0:w.call(d,c))||c;h.children.push(c);for(const T of a)h=((A=T==null?void 0:T.pre)==null?void 0:A.call(d,h))||h;s.children.push(h)}else if(o==="inline"){const T=[];let I={type:"element",tagName:"span",properties:{class:"line"},children:[]};for(const E of s.children)E.type==="element"&&E.tagName==="br"?(T.push(I),I={type:"element",tagName:"span",properties:{class:"line"},children:[]}):(E.type==="element"||E.type==="text")&&I.children.push(E);T.push(I);let N={type:"element",tagName:"code",properties:{},children:T};for(const E of a)N=((k=E==null?void 0:E.code)==null?void 0:k.call(d,N))||N;s.children=[];for(let E=0;E0&&s.children.push({type:"element",tagName:"br",properties:{},children:[]});const L=N.children[E];L.type==="element"&&s.children.push(...L.children)}}let b=s;for(const T of a)b=((C=T==null?void 0:T.root)==null?void 0:C.call(d,b))||b;return r&&ba(b,r),b}function ep(e){return e.map(t=>{const n=[];let r="",a;return t.forEach((i,s)=>{const o=!(i.fontStyle&&(i.fontStyle&Fe.Underline||i.fontStyle&Fe.Strikethrough));o&&g0.test(i.content)&&t[s+1]?(a===void 0&&(a=i.offset),r+=i.content):r?(o?n.push({...i,offset:a,content:r+i.content}):n.push({content:r,offset:a},i),a=void 0,r=""):n.push(i)}),n})}function tp(e){return e.map(t=>t.flatMap(n=>{if(g0.test(n.content))return n;const r=n.content.match(Qh);if(!r)return n;const[,a,i,s]=r;if(!a&&!s)return n;const o=[{...n,offset:n.offset+a.length,content:i}];return a&&o.unshift({content:a,offset:n.offset}),s&&o.push({content:s,offset:n.offset+a.length+i.length}),o}))}function np(e){return e.map(t=>{const n=[];for(const r of t){if(n.length===0){n.push({...r});continue}const a=n.at(-1),i=Ri(a.htmlStyle||na(a)),s=Ri(r.htmlStyle||na(r)),o=a.fontStyle&&(a.fontStyle&Fe.Underline||a.fontStyle&Fe.Strikethrough),l=r.fontStyle&&(r.fontStyle&Fe.Underline||r.fontStyle&Fe.Strikethrough);!o&&!l&&i===s?a.content+=r.content:n.push({...r})}return n})}const rp=Mh;function ap(e,t,n){var i;const r={meta:{},options:n,codeToHast:(s,o)=>ia(e,s,o),codeToTokens:(s,o)=>aa(e,s,o)};let a=rp(ia(e,t,n,r));for(const s of ra(n))a=((i=s.postprocess)==null?void 0:i.call(r,a,n))||a;return a}function k5(e){const t=im(e);return{getLastGrammarState:(...n)=>cm(t,...n),codeToTokensBase:(n,r)=>Ni(t,n,r),codeToTokensWithThemes:(n,r)=>e0(t,n,r),codeToTokens:(n,r)=>aa(t,n,r),codeToHast:(n,r)=>ia(t,n,r),codeToHtml:(n,r)=>ap(t,n,r),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}function _5(e={}){var s;const{name:t="css-variables",variablePrefix:n="--shiki-",fontStyle:r=!0}=e,a=o=>{var l;return(l=e.variableDefaults)!=null&&l[o]?`var(${n}${o}, ${e.variableDefaults[o]})`:`var(${n}${o})`},i={name:t,type:"dark",colors:{"editor.foreground":a("foreground"),"editor.background":a("background"),"terminal.ansiBlack":a("ansi-black"),"terminal.ansiRed":a("ansi-red"),"terminal.ansiGreen":a("ansi-green"),"terminal.ansiYellow":a("ansi-yellow"),"terminal.ansiBlue":a("ansi-blue"),"terminal.ansiMagenta":a("ansi-magenta"),"terminal.ansiCyan":a("ansi-cyan"),"terminal.ansiWhite":a("ansi-white"),"terminal.ansiBrightBlack":a("ansi-bright-black"),"terminal.ansiBrightRed":a("ansi-bright-red"),"terminal.ansiBrightGreen":a("ansi-bright-green"),"terminal.ansiBrightYellow":a("ansi-bright-yellow"),"terminal.ansiBrightBlue":a("ansi-bright-blue"),"terminal.ansiBrightMagenta":a("ansi-bright-magenta"),"terminal.ansiBrightCyan":a("ansi-bright-cyan"),"terminal.ansiBrightWhite":a("ansi-bright-white")},tokenColors:[{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:a("foreground")}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:a("token-link")}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:a("token-string")}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:a("token-comment")}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:a("token-constant")}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:a("token-keyword")}},{scope:"variable.parameter.function",settings:{foreground:a("token-parameter")}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:a("token-function")}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:a("token-string-expression")}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:a("token-punctuation")}},{scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:a("token-link")}},{scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:a("token-string")}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:a("token-keyword")}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{foreground:a("token-inserted")}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{foreground:a("token-deleted")}},{scope:["markup.changed","punctuation.definition.changed"],settings:{foreground:a("token-changed")}}]};return r||(i.tokenColors=(s=i.tokenColors)==null?void 0:s.map(o=>{var l;return(l=o.settings)!=null&&l.fontStyle&&delete o.settings.fontStyle,o})),i}const mo=4294967295;var ip=class{constructor(e,t={}){z(this,"patterns");z(this,"options");z(this,"regexps");this.patterns=e,this.options=t;const{forgiving:n=!1,cache:r,regexConstructor:a}=t;if(!a)throw new Error("Option `regexConstructor` is not provided");this.regexps=e.map(i=>{if(typeof i!="string")return i;const s=r==null?void 0:r.get(i);if(s){if(s instanceof RegExp)return s;if(n)return null;throw s}try{const o=a(i);return r==null||r.set(i,o),o}catch(o){if(r==null||r.set(i,o),n)return null;throw o}})}findNextMatchSync(e,t,n){const r=typeof e=="string"?e:e.content,a=[];function i(s,o,l=0){return{index:s,captureIndices:o.indices.map(u=>u==null?{start:mo,end:mo,length:0}:{start:u[0]+l,end:u[1]+l,length:u[1]-u[0]})}}for(let s=0;so[1].index));for(const[o,l,u]of a)if(l.index===s)return i(o,l,u)}return null}};function jn(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function sp(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const gs=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),Be=String.raw;function Gn(e,t){if(e==null)throw new Error(t??"Value expected");return e}const b0=Be`\[\^?`,y0=`c.? | C(?:-.?)?|${Be`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${Be`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${Be`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${Be`o\{[^\}]*\}?`}|${Be`\d{1,3}`}`,bs=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,Mr=new RegExp(Be` + \\ (?: + ${y0} + | [gk]<[^>]*>? + | [gk]'[^']*'? + | . + ) + | \( (?: + \? (?: + [:=!>({] + | <[=!] + | <[^>]*> + | '[^']*' + | ~\|? + | #(?:[^)\\]|\\.?)* + | [^:)]*[:)] + )? + | \*[^\)]*\)? + )? + | (?:${bs.source})+ + | ${b0} + | . +`.replace(/\s+/g,""),"gsu"),Za=new RegExp(Be` + \\ (?: + ${y0} + | . + ) + | \[:(?:\^?\p{Alpha}+|\^):\] + | ${b0} + | && + | . +`.replace(/\s+/g,""),"gsu");function op(e,t={}){const n={flags:"",...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const r=Sp(n.flags),a=[r.extended],i={captureGroup:n.rules.captureGroup,getCurrentModX(){return a.at(-1)},numOpenGroups:0,popModX(){a.pop()},pushModX(c){a.push(c)},replaceCurrentModX(c){a[a.length-1]=c},singleline:n.rules.singleline};let s=[],o;for(Mr.lastIndex=0;o=Mr.exec(e);){const c=lp(i,e,o[0],Mr.lastIndex);c.tokens?s.push(...c.tokens):c.token&&s.push(c.token),c.lastIndex!==void 0&&(Mr.lastIndex=c.lastIndex)}const l=[];let u=0;s.filter(c=>c.type==="GroupOpen").forEach(c=>{c.kind==="capturing"?c.number=++u:c.raw==="("&&l.push(c)}),u||l.forEach((c,f)=>{c.kind="capturing",c.number=f+1});const h=u||l.length;return{tokens:s.map(c=>c.type==="EscapedNumber"?Tp(c,h):c).flat(),flags:r}}function lp(e,t,n,r){const[a,i]=n;if(n==="["||n==="[^"){const s=up(t,n,r);return{tokens:s.tokens,lastIndex:s.lastIndex}}if(a==="\\"){if("AbBGyYzZ".includes(i))return{token:ho(n,n)};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:vp(n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:w0(n)}}if(i==="K")return{token:x0("keep",n)};if(i==="N"||i==="R")return{token:yn("newline",n,{negate:i==="N"})};if(i==="O")return{token:yn("any",n)};if(i==="X")return{token:yn("text_segment",n)};const s=v0(n,{inCharClass:!1});return Array.isArray(s)?{tokens:s}:{token:s}}if(a==="("){if(i==="*")return{token:_p(n)};if(n==="(?{")throw new Error(`Unsupported callout "${n}"`);if(n.startsWith("(?#")){if(t[r]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:r+1}}if(/^\(\?[-imx]+[:)]$/.test(n))return{token:kp(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n==="("&&!e.captureGroup||n==="(?:")return{token:Rn("group",n)};if(n==="(?>")return{token:Rn("atomic",n)};if(n==="(?="||n==="(?!"||n==="(?<="||n==="(?")||n.startsWith("(?'")&&n.endsWith("'"))return{token:Rn("capturing",n,{...n!=="("&&{name:n.slice(3,-1)}})};if(n.startsWith("(?~")){if(n==="(?~|")throw new Error(`Unsupported absence function kind "${n}"`);return{token:Rn("absence_repeater",n)}}throw n==="(?("?new Error(`Unsupported conditional "${n}"`):new Error(`Invalid or unsupported group option "${n}"`)}if(n===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:gp(n)}}if(e.getCurrentModX()){if(n==="#"){const s=t.indexOf(` +`,r);return{lastIndex:s===-1?t.length:s}}if(/^\s$/.test(n)){const s=/\s+/y;return s.lastIndex=r,{lastIndex:s.exec(t)?s.lastIndex:r}}}if(n===".")return{token:yn("dot",n)};if(n==="^"||n==="$"){const s=e.singleline?{"^":Be`\A`,$:Be`\Z`}[n]:n;return{token:ho(s,n)}}return n==="|"?{token:mp(n)}:bs.test(n)?{tokens:Ep(n)}:{token:Lt(jn(n),n)}}function up(e,t,n){const r=[po(t[1]==="^",t)];let a=1,i;for(Za.lastIndex=n;i=Za.exec(e);){const s=i[0];if(s[0]==="["&&s[1]!==":")a++,r.push(po(s[1]==="^",s));else if(s==="]"){if(r.at(-1).type==="CharacterClassOpen")r.push(Lt(93,s));else if(a--,r.push(hp(s)),!a)break}else{const o=cp(s);Array.isArray(o)?r.push(...o):r.push(o)}}return{tokens:r,lastIndex:Za.lastIndex||e.length}}function cp(e){if(e[0]==="\\")return v0(e,{inCharClass:!0});if(e[0]==="["){const t=/\[:(?\^?)(?[a-z]+):\]/.exec(e);if(!t||!gs.has(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return yn("posix",e,{value:t.groups.name,negate:!!t.groups.negate})}return e==="-"?pp(e):e==="&&"?dp(e):Lt(jn(e),e)}function v0(e,{inCharClass:t}){const n=e[1];if(n==="c"||n==="C")return xp(e);if("dDhHsSwW".includes(n))return $p(e);if(e.startsWith(Be`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return Cp(e)}if(new RegExp("^\\\\x[89A-Fa-f]\\p{AHex}","u").test(e))try{const r=e.split(/\\x/).slice(1).map(s=>parseInt(s,16)),a=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(r)),i=new TextEncoder;return[...a].map(s=>{const o=[...i.encode(s)].map(l=>`\\x${l.toString(16)}`).join("");return Lt(jn(s),o)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(n==="u"||n==="x")return Lt(Ap(e),e);if(fo.has(n))return Lt(fo.get(n),e);if(/\d/.test(n))return fp(t,e);if(e==="\\")throw new Error(Be`Incomplete escape "\"`);if(n==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return Lt(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function mp(e){return{type:"Alternator",raw:e}}function ho(e,t){return{type:"Assertion",kind:e,raw:t}}function w0(e){return{type:"Backreference",raw:e}}function Lt(e,t){return{type:"Character",value:e,raw:t}}function hp(e){return{type:"CharacterClassClose",raw:e}}function pp(e){return{type:"CharacterClassHyphen",raw:e}}function dp(e){return{type:"CharacterClassIntersector",raw:e}}function po(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}function yn(e,t,n={}){return{type:"CharacterSet",kind:e,...n,raw:t}}function x0(e,t,n={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:{type:"Directive",kind:e,flags:Gn(n.flags),raw:t}}function fp(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}function gp(e){return{type:"GroupClose",raw:e}}function Rn(e,t,n={}){return{type:"GroupOpen",kind:e,...n,raw:t}}function bp(e,t,n,r){return{type:"NamedCallout",kind:e,tag:t,arguments:n,raw:r}}function yp(e,t,n,r){return{type:"Quantifier",kind:e,min:t,max:n,raw:r}}function vp(e){return{type:"Subroutine",raw:e}}const wp=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),fo=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function xp(e){const t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return Lt(jn(t.toUpperCase())-64,e)}function kp(e,t){let{on:n,off:r}=/^\(\?(?[imx]*)(?:-(?[-imx]*))?/.exec(e).groups;r??(r="");const a=(t.getCurrentModX()||n.includes("x"))&&!r.includes("x"),i=bo(n),s=bo(r),o={};if(i&&(o.enable=i),s&&(o.disable=s),e.endsWith(")"))return t.replaceCurrentModX(a),x0("flags",e,{flags:o});if(e.endsWith(":"))return t.pushModX(a),t.numOpenGroups++,Rn("group",e,{...(i||s)&&{flags:o}});throw new Error(`Unexpected flag modifier "${e}"`)}function _p(e){const t=/\(\*(?[A-Za-z_]\w*)?(?:\[(?(?:[A-Za-z_]\w*)?)\])?(?:\{(?[^}]*)\})?\)/.exec(e);if(!t)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:n,tag:r,args:a}=t.groups;if(!n)throw new Error(`Invalid named callout "${e}"`);if(r==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const i=a?a.split(",").filter(h=>h!=="").map(h=>/^[+-]?\d+$/.test(h)?+h:h):[],[s,o,l]=i,u=wp.has(n)?n.toLowerCase():"custom";switch(u){case"fail":case"mismatch":case"skip":if(i.length>0)throw new Error(`Named callout arguments not allowed "${i}"`);break;case"error":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(typeof s=="string")throw new Error(`Named callout argument must be a number "${s}"`);break;case"max":if(!i.length||i.length>2)throw new Error(`Named callout must have one or two arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(i.length===2&&(typeof o=="number"||!/^[<>X]$/.test(o)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${o}"`);break;case"count":case"total_count":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(i.length===1&&(typeof s=="number"||!/^[<>X]$/.test(s)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${s}"`);break;case"cmp":if(i.length!==3)throw new Error(`Named callout must have three arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(typeof o=="number"||!/^(?:[<>!=]=|[<>])$/.test(o))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${o}"`);if(typeof l=="string"&&!/^[A-Za-z_]\w*$/.test(l))throw new Error(`Named callout argument three must be a tag or number "${l}"`);break;case"custom":throw new Error(`Undefined callout name "${n}"`);default:throw new Error(`Unexpected named callout kind "${u}"`)}return bp(u,r??null,(a==null?void 0:a.split(","))??null,e)}function go(e){let t=null,n,r;if(e[0]==="{"){const{minStr:a,maxStr:i}=/^\{(?\d*)(?:,(?\d*))?/.exec(e).groups,s=1e5;if(+a>s||i&&+i>s)throw new Error("Quantifier value unsupported in Oniguruma");if(n=+a,r=i===void 0?+a:i===""?1/0:+i,n>r&&(t="possessive",[n,r]=[r,n]),e.endsWith("?")){if(t==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');t="lazy"}else t||(t="greedy")}else n=e[0]==="+"?1:0,r=e[0]==="?"?1:1/0,t=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return yp(t,n,r,e)}function $p(e){const t=e[1].toLowerCase();return yn({d:"digit",h:"hex",s:"space",w:"word"}[t],e,{negate:e[1]!==t})}function Cp(e){const{p:t,neg:n,value:r}=/^\\(?

[pP])\{(?\^?)(?[^}]+)/.exec(e).groups;return yn("property",e,{value:r,negate:t==="P"&&!n||t==="p"&&!!n})}function bo(e){const t={};return e.includes("i")&&(t.ignoreCase=!0),e.includes("m")&&(t.dotAll=!0),e.includes("x")&&(t.extended=!0),Object.keys(t).length?t:null}function Sp(e){const t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let n=0;n\\p{AHex}+)","u").exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function Tp(e,t){const{raw:n,inCharClass:r}=e,a=n.slice(1);if(!r&&(a!=="0"&&a.length===1||a[0]!=="0"&&+a<=t))return[w0(n)];const i=[],s=a.match(/^[0-7]+|\d/g);for(let o=0;o127)throw new Error(Be`Octal encoded byte above 177 unsupported "${n}"`)}else u=jn(l);i.push(Lt(u,(o===0?"\\":"")+l))}return i}function Ep(e){const t=[],n=new RegExp(bs,"gy");let r;for(;r=n.exec(e);){const a=r[0];if(a[0]==="{"){const i=/^\{(?\d+),(?\d+)\}\??$/.exec(a);if(i){const{min:s,max:o}=i.groups;if(+s>+o&&a.endsWith("?")){n.lastIndex--,t.push(go(a.slice(0,-1)));continue}}}t.push(go(a))}return t}function k0(e,t){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;const n=e.body[0];return!t||Object.keys(t).every(r=>t[r]===n[r])}function Mp(e){return Ip.has(e.type)}const Ip=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function _0(e,t={}){const n={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},r=op(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),a=(f,d)=>{const b=r.tokens[i.nextIndex];switch(i.parent=f,i.nextIndex++,b.type){case"Alternator":return _n();case"Assertion":return zp(b);case"Backreference":return Rp(b,i);case"Character":return va(b.value,{useLastValid:!!d.isCheckingRangeEnd});case"CharacterClassHyphen":return Np(b,i,d);case"CharacterClassOpen":return Bp(b,i,d);case"CharacterSet":return Dp(b,i);case"Directive":return jp(b.kind,{flags:b.flags});case"GroupOpen":return Lp(b,i,d);case"NamedCallout":return Hp(b.kind,b.tag,b.arguments);case"Quantifier":return Fp(b,i);case"Subroutine":return Pp(b,i);default:throw new Error(`Unexpected token type "${b.type}"`)}},i={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:r.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:a},s=Wp(Gp(r.flags));let o=s.body[0];for(;i.nextIndexl.length)throw new Error("Subroutine uses a group number that's not defined");f&&(l[f-1].isSubroutined=!0)}else if(h.has(f)){if(h.get(f).length>1)throw new Error(Be`Subroutine uses a duplicate group name "\g<${f}>"`);h.get(f)[0].isSubroutined=!0}else throw new Error(Be`Subroutine uses a group name that's not defined "\g<${f}>"`);return s}function zp({kind:e}){return Bi(Gn({"^":"line_start",$:"line_end","\\A":"string_start","\\b":"word_boundary","\\B":"word_boundary","\\G":"search_start","\\y":"text_segment_boundary","\\Y":"text_segment_boundary","\\z":"string_end","\\Z":"string_end_newline"}[e],`Unexpected assertion kind "${e}"`),{negate:e===Be`\B`||e===Be`\Y`})}function Rp({raw:e},t){const n=/^\\k[<']/.test(e),r=n?e.slice(3,-1):e.slice(1),a=(i,s=!1)=>{const o=t.capturingGroups.length;let l=!1;if(i>o)if(t.skipBackrefValidation)l=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,Di(s?o+1-i:i,{orphan:l})};if(n){const i=/^(?-?)0*(?[1-9]\d*)$/.exec(r);if(i)return a(+i.groups.num,!!i.groups.sign);if(/[-+]/.test(r))throw new Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(r))throw new Error(`Group name not defined to the left "${e}"`);return Di(r)}return a(+r)}function Np(e,t,n){const{tokens:r,walk:a}=t,i=t.parent,s=i.body.at(-1),o=r[t.nextIndex];if(!n.isCheckingRangeEnd&&s&&s.type!=="CharacterClass"&&s.type!=="CharacterClassRange"&&o&&o.type!=="CharacterClassOpen"&&o.type!=="CharacterClassClose"&&o.type!=="CharacterClassIntersector"){const l=a(i,{...n,isCheckingRangeEnd:!0});if(s.type==="Character"&&l.type==="Character")return i.body.pop(),qp(s,l);throw new Error("Invalid character class range")}return va(jn("-"))}function Bp({negate:e},t,n){const{tokens:r,walk:a}=t,i=[Hr()],s=r[t.nextIndex];let o=wo(s);for(;o.type!=="CharacterClassClose";){if(o.type==="CharacterClassIntersector")i.push(Hr()),t.nextIndex++;else{const u=i.at(-1);u.body.push(a(u,n))}o=wo(r[t.nextIndex],s)}const l=Hr({negate:e});return i.length===1?l.body=i[0].body:(l.kind="intersection",l.body=i.map(u=>u.body.length===1?u.body[0]:u)),t.nextIndex++,l}function Dp({kind:e,negate:t,value:n},r){const{normalizeUnknownPropertyNames:a,skipPropertyNameValidation:i,unicodePropertyMap:s}=r;if(e==="property"){const o=wa(n);if(gs.has(o)&&!(s!=null&&s.has(o)))e="posix",n=o;else return Nn(n,{negate:t,normalizeUnknownPropertyNames:a,skipPropertyNameValidation:i,unicodePropertyMap:s})}return e==="posix"?Up(n,{negate:t}):Li(e,{negate:t})}function Lp(e,t,n){const{tokens:r,capturingGroups:a,namedGroupsByName:i,skipLookbehindValidation:s,walk:o}=t,l=Vp(e),u=l.type==="AbsenceFunction",h=vo(l),c=h&&l.negate;if(l.type==="CapturingGroup"&&(a.push(l),l.name&&sp(i,l.name,[]).push(l)),u&&n.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let f=xo(r[t.nextIndex]);for(;f.type!=="GroupClose";){if(f.type==="Alternator")l.body.push(_n()),t.nextIndex++;else{const d=l.body.at(-1),b=o(d,{...n,isInAbsenceFunction:n.isInAbsenceFunction||u,isInLookbehind:n.isInLookbehind||h,isInNegLookbehind:n.isInNegLookbehind||c});if(d.body.push(b),(h||n.isInLookbehind)&&!s){const w="Lookbehind includes a pattern not allowed by Oniguruma";if(c||n.isInNegLookbehind){if(yo(b)||b.type==="CapturingGroup")throw new Error(w)}else if(yo(b)||vo(b)&&b.negate)throw new Error(w)}}f=xo(r[t.nextIndex])}return t.nextIndex++,l}function Fp({kind:e,min:t,max:n},r){const a=r.parent,i=a.body.at(-1);if(!i||!Mp(i))throw new Error("Quantifier requires a repeatable token");const s=C0(e,t,n,i);return a.body.pop(),s}function Pp({raw:e},t){const{capturingGroups:n,subroutines:r}=t;let a=e.slice(3,-1);const i=/^(?[-+]?)0*(?[1-9]\d*)$/.exec(a);if(i){const o=+i.groups.num,l=n.length;if(t.hasNumberedRef=!0,a={"":o,"+":l+o,"-":l+1-o}[i.groups.sign],a<1)throw new Error("Invalid subroutine number")}else a==="0"&&(a=0);const s=S0(a);return r.push(s),s}function Op(e,t){return{type:"AbsenceFunction",kind:e,body:gr(t==null?void 0:t.body)}}function _n(e){return{type:"Alternative",body:A0(e==null?void 0:e.body)}}function Bi(e,t){const n={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(n.negate=!!(t!=null&&t.negate)),n}function Di(e,t){const n=!!(t!=null&&t.orphan);return{type:"Backreference",ref:e,...n&&{orphan:n}}}function $0(e,t){const n={name:void 0,isSubroutined:!1,...t};if(n.name!==void 0&&!Xp(n.name))throw new Error(`Group name "${n.name}" invalid in Oniguruma`);return{type:"CapturingGroup",number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:gr(t==null?void 0:t.body)}}function va(e,t){const n={useLastValid:!1,...t};if(e>1114111){const r=e.toString(16);if(n.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${r}}"`):new Error(`Invalid code point out of range in JS "\\x{${r}}"`)}return{type:"Character",value:e}}function Hr(e){const t={kind:"union",negate:!1,...e};return{type:"CharacterClass",kind:t.kind,negate:t.negate,body:A0(e==null?void 0:e.body)}}function qp(e,t){if(t.valuen)throw new Error("Invalid reversed quantifier range");return{type:"Quantifier",kind:e,min:t,max:n,body:r}}function Wp(e,t){return{type:"Regex",body:gr(t==null?void 0:t.body),flags:e}}function S0(e){return{type:"Subroutine",ref:e}}function Nn(e,t){var a;const n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t};let r=(a=n.unicodePropertyMap)==null?void 0:a.get(wa(e));if(!r){if(n.normalizeUnknownPropertyNames)r=Yp(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw new Error(Be`Invalid Unicode property "\p{${e}}"`)}return{type:"CharacterSet",kind:"property",value:r??e,negate:n.negate}}function Vp({flags:e,kind:t,name:n,negate:r,number:a}){switch(t){case"absence_repeater":return Op("repeater");case"atomic":return bt({atomic:!0});case"capturing":return $0(a,{name:n});case"group":return bt({flags:e});case"lookahead":case"lookbehind":return fn({behind:t==="lookbehind",negate:r});default:throw new Error(`Unexpected group kind "${t}"`)}}function gr(e){if(e===void 0)e=[_n()];else if(!Array.isArray(e)||!e.length||!e.every(t=>t.type==="Alternative"))throw new Error("Invalid body; expected array of one or more Alternative nodes");return e}function A0(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(t=>!!t.type))throw new Error("Invalid body; expected array of nodes");return e}function yo(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}function vo(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehind"}function Xp(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function Yp(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,t=>t[0].toUpperCase()+t.slice(1).toLowerCase())}function wa(e){return e.replace(/[- _]+/g,"").toLowerCase()}function wo(e,t){const n=t;return Gn(e,`Unclosed character class${(n==null?void 0:n.type)==="Character"&&n.value===93&&n.raw==="]"?' (started with "]")':""}`)}function xo(e){return Gn(e,"Unclosed group")}function rr(e,t,n=null){function r(i,s){for(let o=0;oA-Za-z\-]|<[=!]|\(DEFINE\))`;function Kp(e,t){for(let n=0;n=t&&e[n]++}function Qp(e,t,n,r){return e.slice(0,t)+r+e.slice(t+n.length)}const mt=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function ys(e,t,n,r){const a=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),i=[!1];let s=0,o="";for(const l of e.matchAll(a)){const{0:u,groups:{$skip:h}}=l;if(!h&&(!r||r===mt.DEFAULT==!s)){n instanceof Function?o+=n(l,{context:s?mt.CHAR_CLASS:mt.DEFAULT,negated:i[i.length-1]}):o+=n;continue}u[0]==="["?(s++,i.push(u[1]==="^")):u==="]"&&s&&(s--,i.pop()),o+=u}return o}function T0(e,t,n,r){ys(e,t,n,r)}function Jp(e,t,n=0,r){if(!new RegExp(t,"su").test(e))return null;const a=new RegExp(`${t}|(?<$skip>\\\\?.)`,"gsu");a.lastIndex=n;let i=0,s;for(;s=a.exec(e);){const{0:o,groups:{$skip:l}}=s;if(!l&&(!r||r===mt.DEFAULT==!i))return s;o==="["?i++:o==="]"&&i&&i--,a.lastIndex==s.index&&a.lastIndex++}return null}function zr(e,t,n){return!!Jp(e,t,0,n)}function ed(e,t){const n=/\\?./gsu;n.lastIndex=t;let r=e.length,a=0,i=1,s;for(;s=n.exec(e);){const[o]=s;if(o==="[")a++;else if(a)o==="]"&&a--;else if(o==="(")i++;else if(o===")"&&(i--,!i)){r=s.index;break}}return e.slice(t,r)}const ko=new RegExp(String.raw`(?${Zp})|(?\((?:\?<[^>]+>)?)|\\?.`,"gsu");function td(e,t){const n=(t==null?void 0:t.hiddenCaptures)??[];let r=(t==null?void 0:t.captureTransfers)??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:r,hiddenCaptures:n};const a="(?>",i="(?:(?=(",s=[0],o=[];let l=0,u=0,h=NaN,c;do{c=!1;let f=0,d=0,b=!1,w;for(ko.lastIndex=Number.isNaN(h)?0:h+i.length;w=ko.exec(e);){const{0:A,index:k,groups:{capturingStart:C,noncapturingStart:T}}=w;if(A==="[")f++;else if(f)A==="]"&&f--;else if(A===a&&!b)h=k,b=!0;else if(b&&T)d++;else if(C)b?d++:(l++,s.push(l+u));else if(A===")"&&b){if(!d){u++;const I=l+u;if(e=`${e.slice(0,h)}${i}${e.slice(h+a.length,k)}))<$$${I}>)${e.slice(k+1)}`,c=!0,o.push(I),Kp(n,I),r.size){const N=new Map;r.forEach((E,L)=>{N.set(L>=I?L+1:L,E.map(V=>V>=I?V+1:V))}),r=N}break}d--}}}while(c);return n.push(...o),e=ys(e,String.raw`\\(?[1-9]\d*)|<\$\$(?\d+)>`,({0:f,groups:{backrefNum:d,wrappedBackrefNum:b}})=>{if(d){const w=+d;if(w>s.length-1)throw new Error(`Backref "${f}" greater than number of captures`);return`\\${s[w]}`}return`\\${b}`},mt.DEFAULT),{pattern:e,captureTransfers:r,hiddenCaptures:n}}const E0=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Ka=new RegExp(String.raw` +\\(?: \d+ + | c[A-Za-z] + | [gk]<[^>]+> + | [pPu]\{[^\}]+\} + | u[A-Fa-f\d]{4} + | x[A-Fa-f\d]{2} + ) +| \((?: \? (?: [:=!>] + | <(?:[=!]|[^>]+>) + | [A-Za-z\-]+: + | \(DEFINE\) + ))? +| (?${E0})(?[?+]?)(?[?*+\{]?) +| \\?. +`.replace(/\s+/g,""),"gsu");function nd(e){if(!new RegExp(`${E0}\\+`).test(e))return{pattern:e};const t=[];let n=null,r=null,a="",i=0,s;for(Ka.lastIndex=0;s=Ka.exec(e);){const{0:o,index:l,groups:{qBase:u,qMod:h,invalidQ:c}}=s;if(o==="[")i||(r=l),i++;else if(o==="]")i?i--:r=null;else if(!i)if(h==="+"&&a&&!a.startsWith("(")){if(c)throw new Error(`Invalid quantifier "${o}"`);let f=-1;if(/^\{\d+\}$/.test(u))e=Qp(e,l+u.length,h,"");else{if(a===")"||a==="]"){const d=a===")"?n:r;if(d===null)throw new Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,d)}(?>${e.slice(d,l)}${u})${e.slice(l+o.length)}`}else e=`${e.slice(0,l-a.length)}(?>${a}${u})${e.slice(l+o.length)}`;f+=4}Ka.lastIndex+=f}else o[0]==="("?t.push(l):o===")"&&(n=t.length?t.pop():null);a=o}return{pattern:e}}const ct=String.raw,rd=ct`\\g<(?[^>&]+)&R=(?[^>]+)>`,Fi=ct`\(\?R=(?[^\)]+)\)|${rd}`,xa=ct`\(\?<(?![=!])(?[^>]+)>`,M0=ct`${xa}|(?\()(?!\?)`,mn=new RegExp(ct`${xa}|${Fi}|\(\?|\\?.`,"gsu"),Qa="Cannot use multiple overlapping recursions";function ad(e,t){const{hiddenCaptures:n,mode:r}={hiddenCaptures:[],mode:"plugin",...t};let a=(t==null?void 0:t.captureTransfers)??new Map;if(!new RegExp(Fi,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};if(r==="plugin"&&zr(e,ct`\(\?\(DEFINE\)`,mt.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");const i=[],s=zr(e,ct`\\[1-9]`,mt.DEFAULT),o=new Map,l=[];let u=!1,h=0,c=0,f;for(mn.lastIndex=0;f=mn.exec(e);){const{0:d,groups:{captureName:b,rDepth:w,gRNameOrNum:A,gRDepth:k}}=f;if(d==="[")h++;else if(h)d==="]"&&h--;else if(w){if(_o(w),u)throw new Error(Qa);if(s)throw new Error(`${r==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);const C=e.slice(0,f.index),T=e.slice(mn.lastIndex);if(zr(T,Fi,mt.DEFAULT))throw new Error(Qa);const I=+w-1;e=$o(C,T,I,!1,n,i,c),a=So(a,C,I,i.length,0,c);break}else if(A){_o(k);let C=!1;for(const j of l)if(j.name===A||j.num===+A){if(C=!0,j.hasRecursedWithin)throw new Error(Qa);break}if(!C)throw new Error(ct`Recursive \g cannot be used outside the referenced group "${r==="external"?A:ct`\g<${A}&R=${k}>`}"`);const T=o.get(A),I=ed(e,T);if(s&&zr(I,ct`${xa}|\((?!\?)`,mt.DEFAULT))throw new Error(`${r==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);const N=e.slice(T,f.index),E=I.slice(N.length+d.length),L=i.length,V=+k-1,q=$o(N,E,V,!0,n,i,c);a=So(a,N,V,i.length-L,L,c);const M=e.slice(0,T),U=e.slice(T+I.length);e=`${M}${q}${U}`,mn.lastIndex+=q.length-d.length-N.length-E.length,l.forEach(j=>j.hasRecursedWithin=!0),u=!0}else if(b)c++,o.set(String(c),mn.lastIndex),o.set(b,mn.lastIndex),l.push({num:c,name:b});else if(d[0]==="("){const C=d==="(";C&&(c++,o.set(String(c),mn.lastIndex)),l.push(C?{num:c}:{})}else d===")"&&l.pop()}return n.push(...i),{pattern:e,captureTransfers:a,hiddenCaptures:n}}function _o(e){const t=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e))throw new Error(t);if(e=+e,e<2||e>100)throw new Error(t)}function $o(e,t,n,r,a,i,s){const o=new Set;r&&T0(e+t,xa,({groups:{captureName:u}})=>{o.add(u)},mt.DEFAULT);const l=[n,r?o:null,a,i,s];return`${e}${Co(`(?:${e}`,"forward",...l)}(?:)${Co(`${t})`,"backward",...l)}${t}`}function Co(e,t,n,r,a,i,s){const l=h=>t==="forward"?h+2:n-h+2-1;let u="";for(let h=0;h[^>]+)>`,({0:f,groups:{captureName:d,unnamed:b,backref:w}})=>{if(w&&r&&!r.has(w))return f;const A=`_$${c}`;if(b||d){const k=s+i.length+1;return i.push(k),id(a,k),b?f:`(?<${d}${A}>`}return ct`\k<${w}${A}>`},mt.DEFAULT)}return u}function id(e,t){for(let n=0;n=t&&e[n]++}function So(e,t,n,r,a,i){if(e.size&&r){let s=0;T0(t,M0,()=>s++,mt.DEFAULT);const o=i-s+a,l=new Map;return e.forEach((u,h)=>{const c=(r-s*n)/n,f=s*n,d=h>o+s?h+r:h,b=[];for(const w of u)if(w<=o)b.push(w);else if(w>o+s+c)b.push(w+r);else if(w<=o+s)for(let A=0;A<=n;A++)b.push(w+s*A);else for(let A=0;A<=n;A++)b.push(w+f+c*A);l.set(d,b)}),l}return e}var Ie=String.fromCodePoint,ne=String.raw,yt={},ka=globalThis.RegExp;yt.flagGroups=(()=>{try{new ka("(?i:)")}catch{return!1}return!0})();yt.unicodeSets=(()=>{try{new ka("[[]]","v")}catch{return!1}return!0})();yt.bugFlagVLiteralHyphenIsRange=yt.unicodeSets?(()=>{try{new ka(ne`[\d\-a]`,"v")}catch{return!0}return!1})():!1;yt.bugNestedClassIgnoresNegation=yt.unicodeSets&&new ka("[[^a]]","v").test("a");function sa(e,{enable:t,disable:n}){return{dotAll:!(n!=null&&n.dotAll)&&!!(t!=null&&t.dotAll||e.dotAll),ignoreCase:!(n!=null&&n.ignoreCase)&&!!(t!=null&&t.ignoreCase||e.ignoreCase)}}function cr(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}function Pi(e,t){return Ao[e]>=Ao[t]}function sd(e,t){if(e==null)throw new Error(t??"Value expected");return e}var Ao={ES2025:2025,ES2024:2024,ES2018:2018},od={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function I0(e={}){if({}.toString.call(e)!=="[object Object]")throw new Error("Unexpected options");if(e.target!==void 0&&!od[e.target])throw new Error(`Unexpected target "${e.target}"`);const t={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,lazyCompileLength:1/0,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return t.target==="auto"&&(t.target=yt.flagGroups?"ES2025":yt.unicodeSets?"ES2024":"ES2018"),t}var ld="[ -\r ]",ud=new Set([Ie(304),Ie(305)]),It=ne`[\p{L}\p{M}\p{N}\p{Pc}]`;function z0(e){if(ud.has(e))return[e];const t=new Set,n=e.toLowerCase(),r=n.toUpperCase(),a=hd.get(n),i=cd.get(n),s=md.get(n);return[...r].length===1&&t.add(r),s&&t.add(s),a&&t.add(a),t.add(n),i&&t.add(i),[...t]}var vs=new Map(`C Other +Cc Control cntrl +Cf Format +Cn Unassigned +Co Private_Use +Cs Surrogate +L Letter +LC Cased_Letter +Ll Lowercase_Letter +Lm Modifier_Letter +Lo Other_Letter +Lt Titlecase_Letter +Lu Uppercase_Letter +M Mark Combining_Mark +Mc Spacing_Mark +Me Enclosing_Mark +Mn Nonspacing_Mark +N Number +Nd Decimal_Number digit +Nl Letter_Number +No Other_Number +P Punctuation punct +Pc Connector_Punctuation +Pd Dash_Punctuation +Pe Close_Punctuation +Pf Final_Punctuation +Pi Initial_Punctuation +Po Other_Punctuation +Ps Open_Punctuation +S Symbol +Sc Currency_Symbol +Sk Modifier_Symbol +Sm Math_Symbol +So Other_Symbol +Z Separator +Zl Line_Separator +Zp Paragraph_Separator +Zs Space_Separator +ASCII +ASCII_Hex_Digit AHex +Alphabetic Alpha +Any +Assigned +Bidi_Control Bidi_C +Bidi_Mirrored Bidi_M +Case_Ignorable CI +Cased +Changes_When_Casefolded CWCF +Changes_When_Casemapped CWCM +Changes_When_Lowercased CWL +Changes_When_NFKC_Casefolded CWKCF +Changes_When_Titlecased CWT +Changes_When_Uppercased CWU +Dash +Default_Ignorable_Code_Point DI +Deprecated Dep +Diacritic Dia +Emoji +Emoji_Component EComp +Emoji_Modifier EMod +Emoji_Modifier_Base EBase +Emoji_Presentation EPres +Extended_Pictographic ExtPict +Extender Ext +Grapheme_Base Gr_Base +Grapheme_Extend Gr_Ext +Hex_Digit Hex +IDS_Binary_Operator IDSB +IDS_Trinary_Operator IDST +ID_Continue IDC +ID_Start IDS +Ideographic Ideo +Join_Control Join_C +Logical_Order_Exception LOE +Lowercase Lower +Math +Noncharacter_Code_Point NChar +Pattern_Syntax Pat_Syn +Pattern_White_Space Pat_WS +Quotation_Mark QMark +Radical +Regional_Indicator RI +Sentence_Terminal STerm +Soft_Dotted SD +Terminal_Punctuation Term +Unified_Ideograph UIdeo +Uppercase Upper +Variation_Selector VS +White_Space space +XID_Continue XIDC +XID_Start XIDS`.split(/\s/).map(e=>[wa(e),e])),cd=new Map([["s",Ie(383)],[Ie(383),"s"]]),md=new Map([[Ie(223),Ie(7838)],[Ie(107),Ie(8490)],[Ie(229),Ie(8491)],[Ie(969),Ie(8486)]]),hd=new Map([Vt(453),Vt(456),Vt(459),Vt(498),...Ja(8072,8079),...Ja(8088,8095),...Ja(8104,8111),Vt(8124),Vt(8140),Vt(8188)]),pd=new Map([["alnum",ne`[\p{Alpha}\p{Nd}]`],["alpha",ne`\p{Alpha}`],["ascii",ne`\p{ASCII}`],["blank",ne`[\p{Zs}\t]`],["cntrl",ne`\p{Cc}`],["digit",ne`\p{Nd}`],["graph",ne`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",ne`\p{Lower}`],["print",ne`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",ne`[\p{P}\p{S}]`],["space",ne`\p{space}`],["upper",ne`\p{Upper}`],["word",ne`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",ne`\p{AHex}`]]);function dd(e,t){const n=[];for(let r=e;r<=t;r++)n.push(r);return n}function Vt(e){const t=Ie(e);return[t.toLowerCase(),t]}function Ja(e,t){return dd(e,t).map(n=>Vt(n))}var R0=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);function fd(e,t){const n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...t};N0(e);const r={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:Pi(n.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};rr(e,gd,r);const a={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},i={currentFlags:a,prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:r.subroutineRefMap};rr(e,bd,i);const s={groupsByName:i.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:i.reffedNodesByReferencer};return rr(e,yd,s),e._originMap=i.groupOriginByCopy,e._strategy=r.strategy,e}var gd={AbsenceFunction({node:e,parent:t,replaceWith:n}){const{body:r,kind:a}=e;if(a==="repeater"){const i=bt();i.body[0].body.push(fn({negate:!0,body:r}),Nn("Any"));const s=bt();s.body[0].body.push(C0("greedy",0,1/0,i)),n(_e(s,t),{traverse:!0})}else throw new Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:n},{flagDirectivesByAlt:r}){const a=e.body.filter(i=>i.kind==="flags");for(let i=n+1;i\r\n|${a?ne`\p{RGI_Emoji}`:f}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if(l==="hex")n(Xt(Nn("AHex",{negate:u}),t));else if(l==="newline")n(_e(zt(u?`[^ +]`:`(?>\r +?|[ +\v\f…\u2028\u2029])`),t));else if(l==="posix")if(!a&&(h==="graph"||h==="print")){if(r==="strict")throw new Error(`POSIX class "${h}" requires min target ES2024 or non-strict accuracy`);let c={graph:"!-~",print:" -~"}[h];u&&(c=`\0-${Ie(c.codePointAt(0)-1)}${Ie(c.codePointAt(2)+1)}-�`),n(_e(zt(`[${c}]`),t))}else n(_e(ni(zt(pd.get(h)),u),t));else if(l==="property")vs.has(wa(h))||(e.key="sc");else if(l==="space")n(Xt(Nn("space",{negate:u}),t));else if(l==="word")n(_e(ni(zt(It),u),t));else throw new Error(`Unexpected character set kind "${l}"`)},Directive({node:e,parent:t,root:n,remove:r,replaceWith:a,removeAllPrevSiblings:i,removeAllNextSiblings:s}){const{kind:o,flags:l}=e;if(o==="flags")if(!l.enable&&!l.disable)r();else{const u=bt({flags:l});u.body[0].body=s(),a(_e(u,t),{traverse:!0})}else if(o==="keep"){const u=n.body[0],c=n.body.length===1&&k0(u,{type:"Group"})&&u.body[0].body.length===1?u.body[0]:n;if(t.parent!==c||c.body.length>1)throw new Error(ne`Uses "\K" in a way that's unsupported`);const f=fn({behind:!0});f.body[0].body=i(),a(_e(f,t))}else throw new Error(`Unexpected directive kind "${o}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw new Error('Unsupported flag "P"');if(e.textSegmentMode==="word")throw new Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(n=>delete e[n]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;const{enable:t,disable:n}=e.flags;t!=null&&t.extended&&delete t.extended,n!=null&&n.extended&&delete n.extended,t!=null&&t.dotAll&&(n!=null&&n.dotAll)&&delete t.dotAll,t!=null&&t.ignoreCase&&(n!=null&&n.ignoreCase)&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,n&&!Object.keys(n).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},t){const{kind:n}=e;n==="lookbehind"&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:n}){const{kind:r}=e;if(r==="fail")n(_e(fn({negate:!0}),t));else throw new Error(`Unsupported named callout "(*${r.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type==="Quantifier"){const t=bt();t.body[0].body.push(e.body),e.body=_e(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){const n=[];let r=!1,a=!1;for(const i of e.body)if(i.body.length===1&&i.body[0].kind==="search_start")i.body.pop();else{const s=F0(i.body);s?(r=!0,Array.isArray(s)?n.push(...s):n.push(s)):a=!0}r&&!a&&n.forEach(i=>t.add(i))},exit(e,{accuracy:t,passedLookbehind:n,strategy:r}){if(t==="strict"&&n&&r)throw new Error(ne`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n=="string"&&!ti(n)&&(n=ei(n,t),e.ref=n)}},bd={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:n}){const{orphan:r,ref:a}=e;r||n.set(e,[...t.get(a).map(({node:i})=>i)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:n,skip:r},{groupOriginByCopy:a,groupsByName:i,multiplexCapturesToLeftByRef:s,openRefs:o,reffedNodesByReferencer:l}){const u=a.get(e);if(u&&o.has(e.number)){const c=Xt(To(e.number),t);l.set(c,o.get(e.number)),n(c);return}o.set(e.number,e),s.set(e.number,[]),e.name&&cr(s,e.name,[]);const h=s.get(e.name??e.number);for(let c=0;cf.type==="Group"&&!!f.flags)),c=h?sa(r.globalFlags,h):r.globalFlags;vd(c,r.currentFlags)||(u=bt({flags:kd(c)}),u.body[0].body.push(l))}n(_e(u,t),{traverse:!o})}},yd={Backreference({node:e,parent:t,replaceWith:n},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}const i=r.reffedNodesByReferencer.get(e).filter(s=>wd(s,e));if(!i.length)n(_e(fn({negate:!0}),t));else if(i.length>1){const s=bt({atomic:!0,body:i.reverse().map(o=>_n({body:[Di(o.number)]}))});n(_e(s,t))}else e.ref=i[0].number},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){const n=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let r=0;r{t.forEach(a=>{var i,s;(i=r.enable)!=null&&i[a]&&(delete n.disable[a],n.enable[a]=!0),(s=r.disable)!=null&&s[a]&&(n.disable[a]=!0)})}),Object.keys(n.enable).length||delete n.enable,Object.keys(n.disable).length||delete n.disable,n.enable||n.disable?n:null}function kd({dotAll:e,ignoreCase:t}){const n={};return(e||t)&&(n.enable={},e&&(n.enable.dotAll=!0),t&&(n.enable.ignoreCase=!0)),(!e||!t)&&(n.disable={},!e&&(n.disable.dotAll=!0),!t&&(n.disable.ignoreCase=!0)),n}function L0(e){if(!e)throw new Error("Node expected");const{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function F0(e){const t=e.find(n=>n.kind==="search_start"||Cd(n,{negate:!1})||!_d(n));if(!t)return null;if(t.kind==="search_start")return t;if(t.type==="LookaroundAssertion")return t.body[0].body[0];if(t.type==="CapturingGroup"||t.type==="Group"){const n=[];for(const r of t.body){const a=F0(r.body);if(!a)return null;Array.isArray(a)?n.push(...a):n.push(a)}return n}return null}function P0(e,t){const n=L0(e)??[];for(const r of n)if(r===t||P0(r,t))return!0;return!1}function _d({type:e}){return e==="Assertion"||e==="Directive"||e==="LookaroundAssertion"}function $d(e){const t=["Character","CharacterClass","CharacterSet"];return t.includes(e.type)||e.type==="Quantifier"&&e.min&&t.includes(e.body.type)}function Cd(e,t){const n={negate:null,...t};return e.type==="LookaroundAssertion"&&(n.negate===null||e.negate===n.negate)&&e.body.length===1&&k0(e.body[0],{type:"Assertion",kind:"search_start"})}function ti(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function zt(e,t){const r=_0(e,{...t,unicodePropertyMap:vs}).body;return r.length>1||r[0].body.length>1?bt({body:r}):r[0].body[0]}function ni(e,t){return e.negate=t,e}function Xt(e,t){return e.parent=t,e}function _e(e,t){return N0(e),e.parent=t,e}function Sd(e,t){const n=I0(t),r=Pi(n.target,"ES2024"),a=Pi(n.target,"ES2025"),i=n.rules.recursionLimit;if(!Number.isInteger(i)||i<2||i>20)throw new Error("Invalid recursionLimit; use 2-20");let s=null,o=null;if(!a){const d=[e.flags.ignoreCase];rr(e,Ad,{getCurrentModI:()=>d.at(-1),popModI(){d.pop()},pushModI(b){d.push(b)},setHasCasedChar(){d.at(-1)?s=!0:o=!0}})}const l={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!o)};let u=e;const h={accuracy:n.accuracy,appliedGlobalFlags:l,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:i,useAppliedIgnoreCase:!!(!a&&s&&o),useFlagMods:a,useFlagV:r,verbose:n.verbose};function c(d){return h.lastNode=u,u=d,sd(Td[d.type],`Unexpected node type "${d.type}"`)(d,h,c)}const f={pattern:e.body.map(c).join("|"),flags:c(e.flags),options:{...e.options}};return r||(delete f.options.force.v,f.options.disable.v=!0,f.options.unicodeSetsPlugin=null),f._captureTransfers=new Map,f._hiddenCaptures=[],h.captureMap.forEach((d,b)=>{d.hidden&&f._hiddenCaptures.push(b),d.transferTo&&cr(f._captureTransfers,d.transferTo,[]).push(b)}),f}var Ad={"*":{enter({node:e},t){if(Mo(e)){const n=t.getCurrentModI();t.pushModI(e.flags?sa({ignoreCase:n},e.flags).ignoreCase:n)}},exit({node:e},t){Mo(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){ws(Ie(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},n){t(),O0(e,{firstOnly:!0}).length&&n.setHasCasedChar()},CharacterSet({node:e},t){e.kind==="property"&&R0.has(e.value)&&t.setHasCasedChar()}},Td={Alternative({body:e},t,n){return e.map(n).join("")},Assertion({kind:e,negate:t}){if(e==="string_end")return"$";if(e==="string_start")return"^";if(e==="word_boundary")return t?ne`\B`:ne`\b`;throw new Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if(typeof e!="number")throw new Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&t.accuracy==="strict"&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,n){const{body:r,name:a,number:i}=e,s={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(s.hidden=!0,i>o.number&&(s.transferTo=o.number)),t.captureMap.set(i,s),`(${a?`?<${a}>`:""}${r.map(n).join("|")})`},Character({value:e},t){const n=Ie(e),r=In(e,{escDigit:t.lastNode.type==="Backreference",inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(r!==n)return r;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&ws(n)){const a=z0(n);return t.inCharClass?a.join(""):a.length>1?`[${a.join("")}]`:a[0]}return n},CharacterClass(e,t,n){const{kind:r,negate:a,parent:i}=e;let{body:s}=e;if(r==="intersection"&&!t.useFlagV)throw new Error("Use of character class intersection requires min target ES2024");yt.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(Io)&&(s=[va(45),...s.filter(u=>!Io(u))]);const o=()=>`[${a?"^":""}${s.map(n).join(r==="intersection"?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||yt.bugNestedClassIgnoresNegation)&&!a){const h=s.filter(c=>c.type==="CharacterClass"&&c.kind==="union"&&c.negate);if(h.length){const c=bt(),f=c.body[0];return c.parent=i,f.parent=c,s=s.filter(d=>!h.includes(d)),e.body=s,s.length?(e.parent=f,f.body.push(e)):c.body.pop(),h.forEach(d=>{const b=_n({body:[d]});d.parent=b,b.parent=c,c.body.push(b)}),n(c)}}t.inCharClass=!0;const u=o();return t.inCharClass=!1,u}const l=s[0];if(r==="union"&&!a&&l&&((!t.useFlagV||!t.verbose)&&i.kind==="union"&&!(yt.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&i.kind==="intersection"&&s.length===1&&l.type!=="CharacterClassRange"))return s.map(n).join("");if(!t.useFlagV&&i.type==="CharacterClass")throw new Error("Uses nested character class in a way that requires min target ES2024");return o()},CharacterClassRange(e,t){const n=e.min.value,r=e.max.value,a={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},i=In(n,a),s=In(r,a),o=new Set;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){const l=O0(e);Rd(l).forEach(h=>{o.add(Array.isArray(h)?`${In(h[0],a)}-${In(h[1],a)}`:In(h,a))})}return`${i}-${s}${[...o].join("")}`},CharacterSet({kind:e,negate:t,value:n,key:r},a){if(e==="dot")return a.currentFlags.dotAll?a.appliedGlobalFlags.dotAll||a.useFlagMods?".":"[^]":ne`[^\n]`;if(e==="digit")return t?ne`\D`:ne`\d`;if(e==="property"){if(a.useAppliedIgnoreCase&&a.currentFlags.ignoreCase&&R0.has(n))throw new Error(`Unicode property "${n}" can't be case-insensitive when other chars have specific case`);return`${t?ne`\P`:ne`\p`}{${r?`${r}=`:""}${n}}`}if(e==="word")return t?ne`\W`:ne`\w`;throw new Error(`Unexpected character set kind "${e}"`)},Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")},Group({atomic:e,body:t,flags:n,parent:r},a,i){const s=a.currentFlags;n&&(a.currentFlags=sa(s,n));const o=t.map(i).join("|"),l=!a.verbose&&t.length===1&&r.type!=="Quantifier"&&!e&&(!a.useFlagMods||!n)?o:`(?${Nd(e,n,a.useFlagMods)}${o})`;return a.currentFlags=s,l},LookaroundAssertion({body:e,kind:t,negate:n},r,a){return`(?${`${t==="lookahead"?"":"<"}${n?"!":"="}`}${e.map(a).join("|")})`},Quantifier(e,t,n){return n(e.body)+Bd(e)},Subroutine({isRecursive:e,ref:t},n){if(!e)throw new Error("Unexpected non-recursive subroutine in transformed AST");const r=n.recursionLimit;return t===0?`(?R=${r})`:ne`\g<${t}&R=${r}>`}},Ed=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),Md=new Set(["-","\\","]","^","["]),Id=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),Eo=new Map([[9,ne`\t`],[10,ne`\n`],[11,ne`\v`],[12,ne`\f`],[13,ne`\r`],[8232,ne`\u2028`],[8233,ne`\u2029`],[65279,ne`\uFEFF`]]),zd=new RegExp("^\\p{Cased}$","u");function ws(e){return zd.test(e)}function O0(e,t){const n=!!(t!=null&&t.firstOnly),r=e.min.value,a=e.max.value,i=[];if(r<65&&(a===65535||a>=131071)||r===65536&&a>=131071)return i;for(let s=r;s<=a;s++){const o=Ie(s);if(!ws(o))continue;const l=z0(o).filter(u=>{const h=u.codePointAt(0);return ha});if(l.length&&(i.push(...l),n))break}return i}function In(e,{escDigit:t,inCharClass:n,useFlagV:r}){if(Eo.has(e))return Eo.get(e);if(e<32||e>126&&e<160||e>262143||t&&Dd(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;const a=n?r?Id:Md:Ed,i=Ie(e);return(a.has(i)?"\\":"")+i}function Rd(e){const t=e.map(a=>a.codePointAt(0)).sort((a,i)=>a-i),n=[];let r=null;for(let a=0;a";let r="";if(t&&n){const{enable:a,disable:i}=t;r=(a!=null&&a.ignoreCase?"i":"")+(a!=null&&a.dotAll?"s":"")+(i?"-":"")+(i!=null&&i.ignoreCase?"i":"")+(i!=null&&i.dotAll?"s":"")}return`${r}:`}function Bd({kind:e,max:t,min:n}){let r;return!n&&t===1?r="?":!n&&t===1/0?r="*":n===1&&t===1/0?r="+":n===t?r=`{${n}}`:r=`{${n},${t===1/0?"":t}}`,r+{greedy:"",lazy:"?",possessive:"+"}[e]}function Mo({type:e}){return e==="CapturingGroup"||e==="Group"||e==="LookaroundAssertion"}function Dd(e){return e>47&&e<58}function Io({type:e,value:t}){return e==="Character"&&t===45}var Yt,Bt,vn,Zt,wn,pr,Oi,Jt,Ld=(Jt=class extends RegExp{constructor(n,r,a){var t=(...w3)=>(super(...w3),cn(this,pr),cn(this,Yt,new Map),cn(this,Bt,null),cn(this,vn),cn(this,Zt,null),cn(this,wn,null),z(this,"rawOptions",{}),this);const i=!!(a!=null&&a.lazyCompile);if(n instanceof RegExp){if(a)throw new Error("Cannot provide options when copying a regexp");const s=n;t(s,r),gt(this,vn,s.source),s instanceof Jt&&(gt(this,Yt,je(s,Yt)),gt(this,Zt,je(s,Zt)),gt(this,wn,je(s,wn)),this.rawOptions=s.rawOptions)}else{const s={hiddenCaptures:[],strategy:null,transfers:[],...a};t(i?"":n,r),gt(this,vn,n),gt(this,Yt,Pd(s.hiddenCaptures,s.transfers)),gt(this,wn,s.strategy),this.rawOptions=a??{}}i||gt(this,Bt,this)}get source(){return je(this,vn)||"(?:)"}exec(n){if(!je(this,Bt)){const{lazyCompile:i,...s}=this.rawOptions;gt(this,Bt,new Jt(je(this,vn),this.flags,s))}const r=this.global||this.sticky,a=this.lastIndex;if(je(this,wn)==="clip_search"&&r&&a){this.lastIndex=0;const i=ja(this,pr,Oi).call(this,n.slice(a));return i&&(Fd(i,a,n,this.hasIndices),this.lastIndex+=a),i}return ja(this,pr,Oi).call(this,n)}},Yt=new WeakMap,Bt=new WeakMap,vn=new WeakMap,Zt=new WeakMap,wn=new WeakMap,pr=new WeakSet,Oi=function(n){je(this,Bt).lastIndex=this.lastIndex;const r=js(Jt.prototype,this,"exec").call(je(this,Bt),n);if(this.lastIndex=je(this,Bt).lastIndex,!r||!je(this,Yt).size)return r;const a=[...r];r.length=1;let i;this.hasIndices&&(i=[...r.indices],r.indices.length=1);const s=[0];for(let o=1;o{const o=i[s];o&&(i[s]=[o[0]+t,o[1]+t])})}}function Pd(e,t){const n=new Map;for(const r of e)n.set(r,{hidden:!0});for(const[r,a]of t)for(const i of a)cr(n,i,{}).transferTo=r;return n}function Od(e){const t=/(?\((?:\?<(?![=!])(?[^>]+)>|(?!\?)))|\\?./gsu,n=new Map;let r=0,a=0,i;for(;i=t.exec(e);){const{0:s,groups:{capture:o,name:l}}=i;s==="["?r++:r?s==="]"&&r--:o&&(a++,l&&n.set(a,l))}return n}function qd(e,t){const n=jd(e,t);return n.options?new Ld(n.pattern,n.flags,n.options):new RegExp(n.pattern,n.flags)}function jd(e,t){const n=I0(t),r=_0(e,{flags:n.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline},skipBackrefValidation:n.rules.allowOrphanBackrefs,unicodePropertyMap:vs}),a=fd(r,{accuracy:n.accuracy,asciiWordBoundaries:n.rules.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,bestEffortTarget:n.target}),i=Sd(a,n),s=ad(i.pattern,{captureTransfers:i._captureTransfers,hiddenCaptures:i._hiddenCaptures,mode:"external"}),o=nd(s.pattern),l=td(o.pattern,{captureTransfers:s.captureTransfers,hiddenCaptures:s.hiddenCaptures}),u={pattern:l.pattern,flags:`${n.hasIndices?"d":""}${n.global?"g":""}${i.flags}${i.options.disable.v?"u":"v"}`};if(n.avoidSubclass){if(n.lazyCompileLength!==1/0)throw new Error("Lazy compilation requires subclass")}else{const h=l.hiddenCaptures.sort((b,w)=>b-w),c=Array.from(l.captureTransfers),f=a._strategy,d=u.pattern.length>=n.lazyCompileLength;(h.length||c.length||f||d)&&(u.options={...h.length&&{hiddenCaptures:h},...c.length&&{transfers:c},...f&&{strategy:f},...d&&{lazyCompile:d}})}return u}function Gd(e,t){return qd(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...t})}function $5(e={}){const t={target:"auto",cache:new Map,...e};return t.regexConstructor||(t.regexConstructor=n=>Gd(n,{target:t.target})),{createScanner(n){return new ip(n,t)},createString(n){return{content:n}}}}const Hd=Object.freeze(JSON.parse('{"displayName":"TypeScript","name":"typescript","patterns":[{"include":"#directives"},{"include":"#statements"},{"include":"#shebang"}],"repository":{"access-modifier":{"match":"(??\\\\[]|^await|[^$._[:alnum:]]await|^return|[^$._[:alnum:]]return|^yield|[^$._[:alnum:]]yield|^throw|[^$._[:alnum:]]throw|^in|[^$._[:alnum:]]in|^of|[^$._[:alnum:]]of|^typeof|[^$._[:alnum:]]typeof|&&|\\\\|\\\\||\\\\*)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.ts"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"name":"meta.objectliteral.ts","patterns":[{"include":"#object-member"}]},"array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#binding-element"},{"include":"#punctuation-comma"}]},"array-binding-pattern-const":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#binding-element-const"},{"include":"#punctuation-comma"}]},"array-literal":{"begin":"\\\\s*(\\\\[)","beginCaptures":{"1":{"name":"meta.brace.square.ts"}},"end":"]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"name":"meta.array.literal.ts","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"arrow-function":{"patterns":[{"captures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"variable.parameter.ts"}},"match":"(?:(?)","name":"meta.arrow.ts"},{"begin":"(?:(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?==>|\\\\{|^(\\\\s*(export|function|class|interface|let|var|\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b|\\\\bawait\\\\s+\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b\\\\b|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.arrow.ts","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#arrow-return-type"},{"include":"#possibly-arrow-return-type"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.ts"}},"end":"((?<=[}\\\\S])(?)|((?!\\\\{)(?=\\\\S)))(?!/[*/])","name":"meta.arrow.ts","patterns":[{"include":"#single-line-comment-consuming-line-ending"},{"include":"#decl-block"},{"include":"#expression"}]}]},"arrow-return-type":{"begin":"(?<=\\\\))\\\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?==>|\\\\{|^(\\\\s*(export|function|class|interface|let|var|\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b|\\\\bawait\\\\s+\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b\\\\b|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.return.type.arrow.ts","patterns":[{"include":"#arrow-return-type-body"}]},"arrow-return-type-body":{"patterns":[{"begin":"(?<=:)(?=\\\\s*\\\\{)","end":"(?<=})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"async-modifier":{"match":"(?)","name":"cast.expr.ts"},{"begin":"(??^|]|[^$_[:alnum:]](?:\\\\+\\\\+|--)|[^+]\\\\+|[^-]-)\\\\s*(<)(?!)","endCaptures":{"1":{"name":"meta.brace.angle.ts"}},"name":"cast.expr.ts","patterns":[{"include":"#type"}]},{"begin":"(?<=^)\\\\s*(<)(?=[$_[:alpha:]][$_[:alnum:]]*\\\\s*>)","beginCaptures":{"1":{"name":"meta.brace.angle.ts"}},"end":"(>)","endCaptures":{"1":{"name":"meta.brace.angle.ts"}},"name":"cast.expr.ts","patterns":[{"include":"#type"}]}]},"class-declaration":{"begin":"(?\\\\s*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ts"}},"end":"(?=$)","name":"comment.line.triple-slash.directive.ts","patterns":[{"begin":"(<)(reference|amd-dependency|amd-module)","beginCaptures":{"1":{"name":"punctuation.definition.tag.directive.ts"},"2":{"name":"entity.name.tag.directive.ts"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.directive.ts"}},"name":"meta.tag.ts","patterns":[{"match":"path|types|no-default-lib|lib|name|resolution-mode","name":"entity.other.attribute-name.directive.ts"},{"match":"=","name":"keyword.operator.assignment.ts"},{"include":"#string"}]}]},"docblock":{"patterns":[{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.access-type.jsdoc"}},"match":"((@)a(?:ccess|pi))\\\\s+(p(?:rivate|rotected|ublic))\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{"name":"constant.other.email.link.underline.jsdoc"},"6":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"match":"((@)author)\\\\s+([^*/<>@\\\\s](?:[^*/<>@]|\\\\*[^/])*)(?:\\\\s*(<)([^>\\\\s]+)(>))?"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"keyword.operator.control.jsdoc"},"5":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)borrows)\\\\s+((?:[^*/@\\\\s]|\\\\*[^/])+)\\\\s+(as)\\\\s+((?:[^*/@\\\\s]|\\\\*[^/])+)"},{"begin":"((@)example)\\\\s+","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=@|\\\\*/)","name":"meta.example.jsdoc","patterns":[{"match":"^\\\\s\\\\*\\\\s+"},{"begin":"\\\\G(<)caption(>)","beginCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"contentName":"constant.other.description.jsdoc","end":"()|(?=\\\\*/)","endCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"captures":{"0":{"name":"source.embedded.ts"}},"match":"[^*@\\\\s](?:[^*]|\\\\*[^/])*"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.symbol-type.jsdoc"}},"match":"((@)kind)\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.link.underline.jsdoc"},"4":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)see)\\\\s+(?:((?=https?://)(?:[^*\\\\s]|\\\\*[^/])+)|((?!https?://|(?:\\\\[[^]\\\\[]*])?\\\\{@(?:link|linkcode|linkplain|tutorial)\\\\b)(?:[^*/@\\\\s]|\\\\*[^/])+))"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)template)\\\\s+([$A-Z_a-z][]$.\\\\[\\\\w]*(?:\\\\s*,\\\\s*[$A-Z_a-z][]$.\\\\[\\\\w]*)*)"},{"begin":"((@)template)\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"},{"match":"([$A-Z_a-z][]$.\\\\[\\\\w]*)","name":"variable.other.jsdoc"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\s+([$A-Z_a-z][]$.\\\\[\\\\w]*)"},{"begin":"((@)typedef)\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"},{"match":"(?:[^*/@\\\\s]|\\\\*[^/])+","name":"entity.name.type.instance.jsdoc"}]},{"begin":"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"},{"match":"([$A-Z_a-z][]$.\\\\[\\\\w]*)","name":"variable.other.jsdoc"},{"captures":{"1":{"name":"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{"name":"keyword.operator.assignment.jsdoc"},"3":{"name":"source.embedded.ts"},"4":{"name":"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{"name":"invalid.illegal.syntax.jsdoc"}},"match":"(\\\\[)\\\\s*[$\\\\w]+(?:(?:\\\\[])?\\\\.[$\\\\w]+)*(?:\\\\s*(=)\\\\s*((?>\\"(?:\\\\*(?!/)|\\\\\\\\(?!\\")|[^*\\\\\\\\])*?\\"|\'(?:\\\\*(?!/)|\\\\\\\\(?!\')|[^*\\\\\\\\])*?\'|\\\\[(?:\\\\*(?!/)|[^*])*?]|(?:\\\\*(?!/)|\\\\s(?!\\\\s*])|\\\\[.*?(?:]|(?=\\\\*/))|[^]*\\\\[\\\\s])*)*))?\\\\s*(?:(])((?:[^*\\\\s]|\\\\*[^/\\\\s])+)?|(?=\\\\*/))","name":"variable.other.jsdoc"}]},{"begin":"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\s+((?:[^*@{}\\\\s]|\\\\*[^/])+)"},{"begin":"((@)(?:default(?:value)?|license|version))\\\\s+(([\\"\']))","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"},"4":{"name":"punctuation.definition.string.begin.jsdoc"}},"contentName":"variable.other.jsdoc","end":"(\\\\3)|(?=$|\\\\*/)","endCaptures":{"0":{"name":"variable.other.jsdoc"},"1":{"name":"punctuation.definition.string.end.jsdoc"}}},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\s+([^*\\\\s]+)"},{"captures":{"1":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\b","name":"storage.type.class.jsdoc"},{"include":"#inline-tags"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"((@)[$_[:alpha:]][$_[:alnum:]]*)(?=\\\\s+)"}]},"enum-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^(),<=>])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(*<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"variable.parameter.ts variable.language.this.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:(??}]|\\\\|\\\\||&&|!==|$|((?>>??|\\\\|)=","name":"keyword.operator.assignment.compound.bitwise.ts"},{"match":"<<|>>>?","name":"keyword.operator.bitwise.shift.ts"},{"match":"[!=]==?","name":"keyword.operator.comparison.ts"},{"match":"<=|>=|<>|[<>]","name":"keyword.operator.relational.ts"},{"captures":{"1":{"name":"keyword.operator.logical.ts"},"2":{"name":"keyword.operator.assignment.compound.ts"},"3":{"name":"keyword.operator.arithmetic.ts"}},"match":"(?<=[$_[:alnum:]])(!)\\\\s*(?:(/=)|(/)(?![*/]))"},{"match":"!|&&|\\\\|\\\\||\\\\?\\\\?","name":"keyword.operator.logical.ts"},{"match":"[\\\\&^|~]","name":"keyword.operator.bitwise.ts"},{"match":"=","name":"keyword.operator.assignment.ts"},{"match":"--","name":"keyword.operator.decrement.ts"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.ts"},{"match":"[-%*+/]","name":"keyword.operator.arithmetic.ts"},{"begin":"(?<=[]$)_[:alnum:]])\\\\s*(?=(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)+(?:(/=)|(/)(?![*/])))","end":"(/=)|(/)(?!\\\\*([^*]|(\\\\*[^/]))*\\\\*/)","endCaptures":{"1":{"name":"keyword.operator.assignment.compound.ts"},"2":{"name":"keyword.operator.arithmetic.ts"}},"patterns":[{"include":"#comment"}]},{"captures":{"1":{"name":"keyword.operator.assignment.compound.ts"},"2":{"name":"keyword.operator.arithmetic.ts"}},"match":"(?<=[]$)_[:alnum:]])\\\\s*(?:(/=)|(/)(?![*/]))"}]},"expressionPunctuations":{"patterns":[{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#string"},{"include":"#regex"},{"include":"#comment"},{"include":"#function-expression"},{"include":"#class-expression"},{"include":"#arrow-function"},{"include":"#paren-expression-possibly-arrow"},{"include":"#cast"},{"include":"#ternary-expression"},{"include":"#new-expr"},{"include":"#instanceof-expr"},{"include":"#object-literal"},{"include":"#expression-operators"},{"include":"#function-call"},{"include":"#literal"},{"include":"#support-objects"},{"include":"#paren-expression"}]},"field-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^(),<=>])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(*<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>))))))"},{"match":"#?[$_[:alpha:]][$_[:alnum:]]*","name":"meta.definition.property.ts variable.object.property.ts"},{"match":"\\\\?","name":"keyword.operator.optional.ts"},{"match":"!","name":"keyword.operator.definiteassignment.ts"}]},"for-loop":{"begin":"(?\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)?\\\\())","end":"(?<=\\\\))(?!(((([$_[:alpha:]][$_[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*#?[$_[:alpha:]][$_[:alnum:]]*))|(?<=\\\\)))\\\\s*(?:(\\\\?\\\\.\\\\s*)|(!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)?\\\\())","patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*#?[$_[:alpha:]][$_[:alnum:]]*))","end":"(?=\\\\s*(?:(\\\\?\\\\.\\\\s*)|(!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)?\\\\())","name":"meta.function-call.ts","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"},{"include":"#paren-expression"}]},{"begin":"(?=(((([$_[:alpha:]][$_[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*#?[$_[:alpha:]][$_[:alnum:]]*))|(?<=\\\\)))(<\\\\s*[(\\\\[{]\\\\s*)$)","end":"(?<=>)(?!(((([$_[:alpha:]][$_[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*#?[$_[:alpha:]][$_[:alnum:]]*))|(?<=\\\\)))(<\\\\s*[(\\\\[{]\\\\s*)$)","patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*#?[$_[:alpha:]][$_[:alnum:]]*))","end":"(?=(<\\\\s*[(\\\\[{]\\\\s*)$)","name":"meta.function-call.ts","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"}]}]},"function-call-optionals":{"patterns":[{"match":"\\\\?\\\\.","name":"meta.function-call.ts punctuation.accessor.optional.ts"},{"match":"!","name":"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{"patterns":[{"include":"#support-function-call-identifiers"},{"match":"(#?[$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.ts"}]},"function-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"punctuation.accessor.optional.ts"},"3":{"name":"variable.other.constant.property.ts"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*\\\\d)))\\\\s*(#?\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"punctuation.accessor.optional.ts"},"3":{"name":"variable.other.property.ts"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*\\\\d)))\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*)"},{"match":"(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])","name":"variable.other.constant.ts"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"variable.other.readwrite.ts"}]},"if-statement":{"patterns":[{"begin":"(??}]|\\\\|\\\\||&&|!==|$|([!=]==?)|(([\\\\&^|~]\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s+instanceof(?![$_[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.)))|((?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\()","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.modifier.ts"},"4":{"name":"storage.modifier.async.ts"},"5":{"name":"keyword.operator.new.ts"},"6":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=[,;}]|$)|(?<=})","name":"meta.method.declaration.ts","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]},{"begin":"(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\()","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.modifier.ts"},"4":{"name":"storage.modifier.async.ts"},"5":{"name":"storage.type.property.ts"},"6":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=[,;}]|$)|(?<=})","name":"meta.method.declaration.ts","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]}]},"method-declaration-name":{"begin":"(?=(\\\\b((??}]|\\\\|\\\\||&&|!==|$|((?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\()","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"storage.type.property.ts"},"3":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=[,;}])|(?<=})","name":"meta.method.declaration.ts","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"},{"begin":"(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\()","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"storage.type.property.ts"},"3":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=[(<])","patterns":[{"include":"#method-declaration-name"}]}]},"object-member":{"patterns":[{"include":"#comment"},{"include":"#object-literal-method-declaration"},{"begin":"(?=\\\\[)","end":"(?=:)|((?<=])(?=\\\\s*[(<]))","name":"meta.object.member.ts meta.object-literal.key.ts","patterns":[{"include":"#comment"},{"include":"#array-literal"}]},{"begin":"(?=[\\"\'`])","end":"(?=:)|((?<=[\\"\'`])(?=((\\\\s*[(,<}])|(\\\\s+(as|satisifies)\\\\s+))))","name":"meta.object.member.ts meta.object-literal.key.ts","patterns":[{"include":"#comment"},{"include":"#string"}]},{"begin":"(?=\\\\b((?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))","name":"meta.object.member.ts"},{"captures":{"0":{"name":"meta.object-literal.key.ts"}},"match":"[$_[:alpha:]][$_[:alnum:]]*\\\\s*(?=(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*:)","name":"meta.object.member.ts"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.ts"}},"end":"(?=[,}])","name":"meta.object.member.ts","patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"variable.other.readwrite.ts"}},"match":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(?=[,}]|$|//|/\\\\*)","name":"meta.object.member.ts"},{"captures":{"1":{"name":"keyword.control.as.ts"},"2":{"name":"storage.modifier.ts"}},"match":"(??}]|\\\\|\\\\||&&|!==|$|^|((?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?<=\\\\))","patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(\\\\()(?=\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(?=<\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?<=>)","patterns":[{"include":"#type-parameters"}]},{"begin":"(?<=>)\\\\s*(\\\\()(?=\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"include":"#possibly-arrow-return-type"},{"include":"#expression"}]},{"include":"#punctuation-comma"},{"include":"#decl-block"}]},"parameter-array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]},"parameter-binding-element":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric-literal"},{"include":"#regex"},{"include":"#parameter-object-binding-pattern"},{"include":"#parameter-array-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"}]},"parameter-name":{"patterns":[{"captures":{"1":{"name":"storage.modifier.ts"}},"match":"(?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^(),<=>])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(*<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"variable.parameter.ts variable.language.this.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:(?])","name":"meta.type.annotation.ts","patterns":[{"include":"#type"}]}]},"paren-expression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression"}]},"paren-expression-possibly-arrow":{"patterns":[{"begin":"(?<=[(,=])\\\\s*(async)?(?=\\\\s*((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"begin":"(?<=[(,=]|=>|^return|[^$._[:alnum:]]return)\\\\s*(async)?(?=\\\\s*((((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*))?\\\\()|(<)|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)))\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"include":"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{"patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{"begin":"(?<=\\\\)|^)\\\\s*(:)(?=\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*=>)","beginCaptures":{"1":{"name":"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},"contentName":"meta.arrow.ts meta.return.type.arrow.ts","end":"(?==>|\\\\{|^(\\\\s*(export|function|class|interface|let|var|\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b|\\\\bawait\\\\s+\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b\\\\b|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","patterns":[{"include":"#arrow-return-type-body"}]},"property-accessor":{"match":"(?|&&|\\\\|\\\\||\\\\*/)\\\\s*(/)(?![*/])(?=(?:[^()/\\\\[\\\\\\\\]|\\\\\\\\.|\\\\[([^]\\\\\\\\]|\\\\\\\\.)+]|\\\\(([^)\\\\\\\\]|\\\\\\\\.)+\\\\))+/([dgimsuvy]+|(?![*/])|(?=/\\\\*))(?!\\\\s*[$0-9A-Z_a-z]))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ts"}},"end":"(/)([dgimsuvy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"keyword.other.ts"}},"name":"string.regexp.ts","patterns":[{"include":"#regexp"}]},{"begin":"((?)"},{"match":"[*+?]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)}\\\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\\\()((\\\\?=)|(\\\\?!)|(\\\\?<=)|(\\\\?)?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#regexp"}]},{"begin":"(\\\\[)(\\\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}},"match":"(?:.|(\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u\\\\h{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))-(?:[^]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u\\\\h{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))","name":"constant.other.character-class.range.regexp"},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]},"return-type":{"patterns":[{"begin":"(?<=\\\\))\\\\s*(:)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\()|(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\b(?!\\\\$))"},{"captures":{"1":{"name":"support.type.object.module.ts"},"2":{"name":"support.type.object.module.ts"},"3":{"name":"punctuation.accessor.ts"},"4":{"name":"punctuation.accessor.optional.ts"},"5":{"name":"support.type.object.module.ts"}},"match":"(?\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)?`)","end":"(?=`)","patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([$_[:alpha:]][$_[:alnum:]]*))","end":"(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)?`)","patterns":[{"include":"#support-function-call-identifiers"},{"match":"([$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.tagged-template.ts"}]},{"include":"#type-arguments"}]},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?\\\\s*(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?))*(?)*(?\\\\s*)`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"}},"end":"(?=`)","patterns":[{"include":"#type-arguments"}]}]},"template-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ts"}},"contentName":"meta.embedded.line.ts","end":"}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ts"}},"name":"meta.template.expression.ts","patterns":[{"include":"#expression"}]},"template-type":{"patterns":[{"include":"#template-call"},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?(`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"},"2":{"name":"string.template.ts punctuation.definition.string.template.begin.ts"}},"contentName":"string.template.ts","end":"`","endCaptures":{"0":{"name":"string.template.ts punctuation.definition.string.template.end.ts"}},"patterns":[{"include":"#template-type-substitution-element"},{"include":"#string-character-escape"}]}]},"template-type-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ts"}},"contentName":"meta.embedded.line.ts","end":"}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ts"}},"name":"meta.template.expression.ts","patterns":[{"include":"#type"}]},"ternary-expression":{"begin":"(?!\\\\?\\\\.\\\\s*\\\\D)(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"patterns":[{"include":"#expression"}]},"this-literal":{"match":"(?])|((?<=[]$)>_}[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.ts","patterns":[{"include":"#type"}]},{"begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?])|(?=^\\\\s*$)|((?<=[]$)>_}[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.ts","patterns":[{"include":"#type"}]}]},"type-arguments":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#type-arguments-body"}]},"type-arguments-body":{"patterns":[{"captures":{"0":{"name":"keyword.operator.type.ts"}},"match":"(?)","patterns":[{"include":"#comment"},{"include":"#type-parameters"}]},{"begin":"(?))))))","end":"(?<=\\\\))","name":"meta.type.function.ts","patterns":[{"include":"#function-parameters"}]}]},"type-function-return-type":{"patterns":[{"begin":"(=>)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"storage.type.function.arrow.ts"}},"end":"(?)(??{}]|//|$)","name":"meta.type.function.return.ts","patterns":[{"include":"#type-function-return-type-core"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.ts"}},"end":"(?)(??{}]|//|^\\\\s*$)|((?<=\\\\S)(?=\\\\s*$)))","name":"meta.type.function.return.ts","patterns":[{"include":"#type-function-return-type-core"}]}]},"type-function-return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<==>)(?=\\\\s*\\\\{)","end":"(?<=})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-infer":{"patterns":[{"captures":{"1":{"name":"keyword.operator.expression.infer.ts"},"2":{"name":"entity.name.type.ts"},"3":{"name":"keyword.operator.expression.extends.ts"}},"match":"(?)","endCaptures":{"1":{"name":"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},"patterns":[{"include":"#type-arguments-body"}]},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(<)","beginCaptures":{"1":{"name":"entity.name.type.ts"},"2":{"name":"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},"contentName":"meta.type.parameters.ts","end":"(>)","endCaptures":{"1":{"name":"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},"patterns":[{"include":"#type-arguments-body"}]},{"captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"},"3":{"name":"punctuation.accessor.optional.ts"}},"match":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*\\\\d)))"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"entity.name.type.ts"}]},"type-object":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"name":"meta.object.type.ts","patterns":[{"include":"#comment"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#indexer-mapped-type-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.ts"}},"end":"(?=[,;}]|$)|(?<=})","patterns":[{"include":"#type"}]},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#type"}]},"type-operators":{"patterns":[{"include":"#typeof-operator"},{"include":"#type-infer"},{"begin":"([\\\\&|])(?=\\\\s*\\\\{)","beginCaptures":{"0":{"name":"keyword.operator.type.ts"}},"end":"(?<=})","patterns":[{"include":"#type-object"}]},{"begin":"[\\\\&|]","beginCaptures":{"0":{"name":"keyword.operator.type.ts"}},"end":"(?=\\\\S)"},{"match":"(?)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#comment"},{"match":"(?)","name":"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"name":"meta.type.paren.cover.ts","patterns":[{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"entity.name.function.ts variable.language.this.ts"},"4":{"name":"entity.name.function.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:(?)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))))"},{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"variable.parameter.ts variable.language.this.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:(??{|}]|(extends\\\\s+)|$|;|^\\\\s*$|^\\\\s*(?:abstract|async|\\\\bawait\\\\s+\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b\\\\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[$_[:alpha:]])\\\\b|var|while)\\\\b)","patterns":[{"include":"#type-arguments"},{"include":"#expression"}]},"undefined-literal":{"match":"(?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^(),<=>])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(*<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},"end":"(?=$|^|[,;=}]|((?)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>)))))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>)))))))|(:\\\\s*(?]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^(),<=>])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(*<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*)$|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*((([\\\\[{]\\\\s*)?)$|((\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})\\\\s*((:\\\\s*\\\\{?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*)))|((\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])\\\\s*((:\\\\s*\\\\[?)$|((\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*((\\\\)\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s*:)))|((<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<]|<\\\\s*(((const\\\\s+)?[$_[:alpha:]])|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*]))([^<=>]|=[^<])*>)*>)*>\\\\s*)?\\\\(\\\\s*(/\\\\*([^*]|(\\\\*[^/]))*\\\\*/\\\\s*)*(([$_[:alpha:]]|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\\\\.\\\\.\\\\.\\\\s*[$_[:alpha:]]))([^\\"\'()`]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))*)?\\\\)(\\\\s*:\\\\s*([^()<>{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.ts entity.name.function.ts"},"2":{"name":"keyword.operator.definiteassignment.ts"}},"end":"(?=$|^|[,;=}]|((?\\\\s*$)","beginCaptures":{"1":{"name":"keyword.operator.assignment.ts"}},"end":"(?=$|^|[]),;}]|((?\\\\\\\\\`|]+(?!>))"},{"include":"#normal_context"}]},"arithmetic_double":{"patterns":[{"begin":"\\\\(\\\\(","beginCaptures":{"0":{"name":"punctuation.section.arithmetic.double.shell"}},"end":"\\\\)\\\\s*\\\\)","endCaptures":{"0":{"name":"punctuation.section.arithmetic.double.shell"}},"name":"meta.arithmetic.shell","patterns":[{"include":"#math"},{"include":"#string"}]}]},"arithmetic_no_dollar":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.arithmetic.single.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arithmetic.single.shell"}},"name":"meta.arithmetic.shell","patterns":[{"include":"#math"},{"include":"#string"}]}]},"array_access_inline":{"captures":{"1":{"name":"punctuation.section.array.shell"},"2":{"patterns":[{"include":"#special_expansion"},{"include":"#string"},{"include":"#variable"}]},"3":{"name":"punctuation.section.array.shell"}},"match":"(\\\\[)([^]\\\\[]+)(])"},"array_value":{"begin":"[\\\\t ]*+((?\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?:((?<=^|[\\\\t \\\\&;])(?:readonly|declare|typeset|export|local)(?=[\\\\t \\\\&;]|$))|((?![\\"']|\\\\\\\\\\\\n?$)[^\\\\t\\\\n\\\\r !\\"'<>]+?))(?:(?=[\\\\t ])|(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?\`{|]+)"},{"begin":"(?:\\\\G|(?\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\n?$)","beginCaptures":{},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?]|&&|\\\\|\\\\|","name":"keyword.operator.logical.shell"},{"match":"(?[=>]?|==|!=|^|\\\\|{1,2}|&{1,2}|[,:=?]|[-%\\\\&*+/^|]=|<<=|>>=","name":"keyword.operator.arithmetic.shell"},{"match":"0[Xx]\\\\h+","name":"constant.numeric.hex.shell"},{"match":";","name":"punctuation.separator.semicolon.range"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-z]+","name":"constant.numeric.other.shell"},{"match":"\\\\d+","name":"constant.numeric.integer.shell"},{"match":"(?[=>]?|==|!=|^|\\\\|{1,2}|&{1,2}|[,:=?]|[-%\\\\&*+/^|]=|<<=|>>=","name":"keyword.operator.arithmetic.shell"},{"match":"0[Xx]\\\\h+","name":"constant.numeric.hex.shell"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-z]+","name":"constant.numeric.other.shell"},{"match":"\\\\d+","name":"constant.numeric.integer.shell"}]},"misc_ranges":{"patterns":[{"include":"#logical_expression_single"},{"include":"#logical_expression_double"},{"include":"#subshell_dollar"},{"begin":"(?\\\\[{|]|$|[\\\\t ;]))","beginCaptures":{"1":{"name":"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{"name":"string.unquoted.argument.shell constant.other.option.shell"}},"contentName":"string.unquoted.argument constant.other.option","end":"(?=[\\\\t ])|(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?>?)[\\\\t ]*+([^\\\\t\\\\n \\"$\\\\&-);<>\\\\\\\\\`|]+)"},"redirect_number":{"captures":{"1":{"name":"keyword.operator.redirect.stdout.shell"},"2":{"name":"keyword.operator.redirect.stderr.shell"},"3":{"name":"keyword.operator.redirect.$3.shell"}},"match":"(?<=[\\\\t ])(?:(1)|(2)|(\\\\d+))(?=>)"},"redirection":{"patterns":[{"begin":"[<>]\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.interpolated.process-substitution.shell","patterns":[{"include":"#initial_context"}]},{"match":"(?])(&>|\\\\d*>&\\\\d*|\\\\d*(>>|[<>])|\\\\d*<&|\\\\d*<>)(?![<>])","name":"keyword.operator.redirect.shell"}]},"regex_comparison":{"match":"=~","name":"keyword.operator.logical.regex.shell"},"regexp":{"patterns":[{"match":".+"}]},"simple_options":{"captures":{"0":{"patterns":[{"captures":{"1":{"name":"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{"name":"string.unquoted.argument.shell constant.other.option.shell"}},"match":"[\\\\t ]++(-)(\\\\w+)"}]}},"match":"(?:[\\\\t ]++-\\\\w+)*"},"simple_unquoted":{"match":"[^\\\\t\\\\n \\"$\\\\&-);<>\\\\\\\\\`|]","name":"string.unquoted.shell"},"special_expansion":{"match":"!|:[-=?]?|[*@]|##?|%%|[%/]","name":"keyword.operator.expansion.shell"},"start_of_command":{"match":"[\\\\t ]*+(?![\\\\n!#\\\\&()<>\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\n?$)"},"string":{"patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.shell"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.shell"},{"begin":"\\\\$?\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.double.shell","patterns":[{"match":"\\\\\\\\[\\\\n\\"$\\\\\\\\\`]","name":"constant.character.escape.shell"},{"include":"#variable"},{"include":"#interpolation"}]},{"begin":"\\\\$'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.dollar.shell","patterns":[{"match":"\\\\\\\\['\\\\\\\\abefnrtv]","name":"constant.character.escape.ansi-c.shell"},{"match":"\\\\\\\\[0-9]{3}\\"","name":"constant.character.escape.octal.shell"},{"match":"\\\\\\\\x\\\\h{2}\\"","name":"constant.character.escape.hex.shell"},{"match":"\\\\\\\\c.\\"","name":"constant.character.escape.control-char.shell"}]}]},"subshell_dollar":{"patterns":[{"begin":"\\\\$\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.subshell.single.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.subshell.single.shell"}},"name":"meta.scope.subshell","patterns":[{"include":"#parenthese"},{"include":"#initial_context"}]}]},"support":{"patterns":[{"match":"(?<=^|[\\\\&;\\\\s])[.:](?=[\\\\&;\\\\s]|$)","name":"support.function.builtin.shell"}]},"typical_statements":{"patterns":[{"include":"#assignment_statement"},{"include":"#case_statement"},{"include":"#for_statement"},{"include":"#while_statement"},{"include":"#function_definition"},{"include":"#command_statement"},{"include":"#line_continuation"},{"include":"#arithmetic_double"},{"include":"#normal_context"}]},"variable":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},"2":{"name":"variable.parameter.positional.all.shell"}},"match":"(\\\\$)(@(?!\\\\w))"},{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{"name":"variable.parameter.positional.shell"}},"match":"(\\\\$)([0-9](?!\\\\w))"},{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.language.special.shell"},"2":{"name":"variable.language.special.shell"}},"match":"(\\\\$)([-!#$*0?_](?!\\\\w))"},{"begin":"(\\\\$)(\\\\{)[\\\\t ]*+(?=\\\\d)","beginCaptures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{"name":"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},"contentName":"meta.parameter-expansion","end":"}","endCaptures":{"0":{"name":"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},"patterns":[{"include":"#special_expansion"},{"include":"#array_access_inline"},{"match":"[0-9]+","name":"variable.parameter.positional.shell"},{"match":"(?a?0:a+t:t=t>a?a:t,n=n>0?n:0,r.length<1e4)s=Array.from(r),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);i0?(tt(e,e.length,0,t),e):t}const No={}.hasOwnProperty;function j0(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function vt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ue=an(/[A-Za-z]/),Pe=an(/[\dA-Za-z]/),Qd=an(/[#-'*+\--9=?A-Z^-~]/);function oa(e){return e!==null&&(e<32||e===127)}const qi=an(/\d/),Jd=an(/[\dA-Fa-f]/),e1=an(/[!-/:-@[-`{-~]/);function Y(e){return e!==null&&e<-2}function fe(e){return e!==null&&(e<0||e===32)}function oe(e){return e===-2||e===-1||e===32}const _a=an(new RegExp("\\p{P}|\\p{S}","u")),$n=an(/\s/);function an(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function T5(e){const t=[];let n=-1,r=0,a=0;for(;++n55295&&i<57344){const o=e.charCodeAt(n+1);i<56320&&o>56319&&o<57344?(s=String.fromCharCode(i,o),a=1):s="�"}else s=String.fromCharCode(i);s&&(t.push(e.slice(r,n),encodeURIComponent(s)),r=n+a+1,s=""),a&&(n+=a,a=0)}return t.join("")+e.slice(r)}function ie(e,t,n,r){const a=r?r-1:Number.POSITIVE_INFINITY;let i=0;return s;function s(l){return oe(l)?(e.enter(n),o(l)):t(l)}function o(l){return oe(l)&&i++s))return;const L=t.events.length;let V=L,q,M;for(;V--;)if(t.events[V][0]==="exit"&&t.events[V][1].type==="chunkFlow"){if(q){M=t.events[V][1].end;break}q=!0}for(k(r),E=L;ET;){const N=n[I];t.containerState=N[1],N[0].exit.call(t,e)}n.length=T}function C(){a.write([null]),i=void 0,a=void 0,t.containerState._closeFlow=void 0}}function i1(e,t,n){return ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function la(e){if(e===null||fe(e)||$n(e))return 1;if(_a(e))return 2}function $a(e,t,n){const r=[];let a=-1;for(;++a1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const c={...e[r][1].end},f={...e[n][1].start};Do(c,-l),Do(f,l),s={type:l>1?"strongSequence":"emphasisSequence",start:c,end:{...e[r][1].end}},o={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},a={type:l>1?"strong":"emphasis",start:{...s.start},end:{...o.end}},e[r][1].end={...s.start},e[n][1].start={...o.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=lt(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=lt(u,[["enter",a,t],["enter",s,t],["exit",s,t],["enter",i,t]]),u=lt(u,$a(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=lt(u,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",a,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,u=lt(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,tt(e,r-1,n-r+3,u),n=r+u.length-h-2;break}}for(n=-1;++n0&&oe(E)?ie(e,C,"linePrefix",i+1)(E):C(E)}function C(E){return E===null||Y(E)?e.check(Lo,w,I)(E):(e.enter("codeFlowValue"),T(E))}function T(E){return E===null||Y(E)?(e.exit("codeFlowValue"),C(E)):(e.consume(E),T)}function I(E){return e.exit("codeFenced"),t(E)}function N(E,L,V){let q=0;return M;function M(Z){return E.enter("lineEnding"),E.consume(Z),E.exit("lineEnding"),U}function U(Z){return E.enter("codeFencedFence"),oe(Z)?ie(E,j,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Z):j(Z)}function j(Z){return Z===o?(E.enter("codeFencedFenceSequence"),le(Z)):V(Z)}function le(Z){return Z===o?(q++,E.consume(Z),le):q>=s?(E.exit("codeFencedFenceSequence"),oe(Z)?ie(E,se,"whitespace")(Z):se(Z)):V(Z)}function se(Z){return Z===null||Y(Z)?(E.exit("codeFencedFence"),L(Z)):V(Z)}}}function b1(e,t,n){const r=this;return a;function a(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}const ri={name:"codeIndented",tokenize:v1},y1={partial:!0,tokenize:w1};function v1(e,t,n){const r=this;return a;function a(u){return e.enter("codeIndented"),ie(e,i,"linePrefix",5)(u)}function i(u){const h=r.events[r.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?s(u):n(u)}function s(u){return u===null?l(u):Y(u)?e.attempt(y1,s,l)(u):(e.enter("codeFlowValue"),o(u))}function o(u){return u===null||Y(u)?(e.exit("codeFlowValue"),s(u)):(e.consume(u),o)}function l(u){return e.exit("codeIndented"),t(u)}}function w1(e,t,n){const r=this;return a;function a(s){return r.parser.lazy[r.now().line]?n(s):Y(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),a):ie(e,i,"linePrefix",5)(s)}function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(s):Y(s)?a(s):n(s)}}const x1={name:"codeText",previous:_1,resolve:k1,tokenize:$1};function k1(e){let t=e.length-4,n=3,r,a;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const a=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return r&&Jn(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Jn(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Jn(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(s):e.interrupt(r.parser.constructs.flow,n,t)(s)}}function X0(e,t,n,r,a,i,s,o,l){const u=l||Number.POSITIVE_INFINITY;let h=0;return c;function c(k){return k===60?(e.enter(r),e.enter(a),e.enter(i),e.consume(k),e.exit(i),f):k===null||k===32||k===41||oa(k)?n(k):(e.enter(r),e.enter(s),e.enter(o),e.enter("chunkString",{contentType:"string"}),w(k))}function f(k){return k===62?(e.enter(i),e.consume(k),e.exit(i),e.exit(a),e.exit(r),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),d(k))}function d(k){return k===62?(e.exit("chunkString"),e.exit(o),f(k)):k===null||k===60||Y(k)?n(k):(e.consume(k),k===92?b:d)}function b(k){return k===60||k===62||k===92?(e.consume(k),d):d(k)}function w(k){return!h&&(k===null||k===41||fe(k))?(e.exit("chunkString"),e.exit(o),e.exit(s),e.exit(r),t(k)):h999||d===null||d===91||d===93&&!l||d===94&&!o&&"_hiddenFootnoteSupport"in s.parser.constructs?n(d):d===93?(e.exit(i),e.enter(a),e.consume(d),e.exit(a),e.exit(r),t):Y(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(d){return d===null||d===91||d===93||Y(d)||o++>999?(e.exit("chunkString"),h(d)):(e.consume(d),l||(l=!oe(d)),d===92?f:c)}function f(d){return d===91||d===92||d===93?(e.consume(d),o++,c):c(d)}}function Z0(e,t,n,r,a,i){let s;return o;function o(f){return f===34||f===39||f===40?(e.enter(r),e.enter(a),e.consume(f),e.exit(a),s=f===40?41:f,l):n(f)}function l(f){return f===s?(e.enter(a),e.consume(f),e.exit(a),e.exit(r),t):(e.enter(i),u(f))}function u(f){return f===s?(e.exit(i),l(s)):f===null?n(f):Y(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),ie(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(f))}function h(f){return f===s||f===null||Y(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?c:h)}function c(f){return f===s||f===92?(e.consume(f),h):h(f)}}function ar(e,t){let n;return r;function r(a){return Y(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n=!0,r):oe(a)?ie(e,r,n?"linePrefix":"lineSuffix")(a):t(a)}}const z1={name:"definition",tokenize:N1},R1={partial:!0,tokenize:B1};function N1(e,t,n){const r=this;let a;return i;function i(d){return e.enter("definition"),s(d)}function s(d){return Y0.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function o(d){return a=vt(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),l):n(d)}function l(d){return fe(d)?ar(e,u)(d):u(d)}function u(d){return X0(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function h(d){return e.attempt(R1,c,c)(d)}function c(d){return oe(d)?ie(e,f,"whitespace")(d):f(d)}function f(d){return d===null||Y(d)?(e.exit("definition"),r.parser.defined.push(a),t(d)):n(d)}}function B1(e,t,n){return r;function r(o){return fe(o)?ar(e,a)(o):n(o)}function a(o){return Z0(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function i(o){return oe(o)?ie(e,s,"whitespace")(o):s(o)}function s(o){return o===null||Y(o)?t(o):n(o)}}const D1={name:"hardBreakEscape",tokenize:L1};function L1(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return Y(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const F1={name:"headingAtx",resolve:P1,tokenize:O1};function P1(e,t){let n=e.length-2,r=3,a,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(a={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},tt(e,r,n-r+1,[["enter",a,t],["enter",i,t],["exit",i,t],["exit",a,t]])),e}function O1(e,t,n){let r=0;return a;function a(h){return e.enter("atxHeading"),i(h)}function i(h){return e.enter("atxHeadingSequence"),s(h)}function s(h){return h===35&&r++<6?(e.consume(h),s):h===null||fe(h)?(e.exit("atxHeadingSequence"),o(h)):n(h)}function o(h){return h===35?(e.enter("atxHeadingSequence"),l(h)):h===null||Y(h)?(e.exit("atxHeading"),t(h)):oe(h)?ie(e,o,"whitespace")(h):(e.enter("atxHeadingText"),u(h))}function l(h){return h===35?(e.consume(h),l):(e.exit("atxHeadingSequence"),o(h))}function u(h){return h===null||h===35||fe(h)?(e.exit("atxHeadingText"),o(h)):(e.consume(h),u)}}const q1=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Po=["pre","script","style","textarea"],j1={concrete:!0,name:"htmlFlow",resolveTo:U1,tokenize:W1},G1={partial:!0,tokenize:X1},H1={partial:!0,tokenize:V1};function U1(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function W1(e,t,n){const r=this;let a,i,s,o,l;return u;function u($){return h($)}function h($){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume($),c}function c($){return $===33?(e.consume($),f):$===47?(e.consume($),i=!0,w):$===63?(e.consume($),a=3,r.interrupt?t:_):Ue($)?(e.consume($),s=String.fromCharCode($),A):n($)}function f($){return $===45?(e.consume($),a=2,d):$===91?(e.consume($),a=5,o=0,b):Ue($)?(e.consume($),a=4,r.interrupt?t:_):n($)}function d($){return $===45?(e.consume($),r.interrupt?t:_):n($)}function b($){const De="CDATA[";return $===De.charCodeAt(o++)?(e.consume($),o===De.length?r.interrupt?t:j:b):n($)}function w($){return Ue($)?(e.consume($),s=String.fromCharCode($),A):n($)}function A($){if($===null||$===47||$===62||fe($)){const De=$===47,wt=s.toLowerCase();return!De&&!i&&Po.includes(wt)?(a=1,r.interrupt?t($):j($)):q1.includes(s.toLowerCase())?(a=6,De?(e.consume($),k):r.interrupt?t($):j($)):(a=7,r.interrupt&&!r.parser.lazy[r.now().line]?n($):i?C($):T($))}return $===45||Pe($)?(e.consume($),s+=String.fromCharCode($),A):n($)}function k($){return $===62?(e.consume($),r.interrupt?t:j):n($)}function C($){return oe($)?(e.consume($),C):M($)}function T($){return $===47?(e.consume($),M):$===58||$===95||Ue($)?(e.consume($),I):oe($)?(e.consume($),T):M($)}function I($){return $===45||$===46||$===58||$===95||Pe($)?(e.consume($),I):N($)}function N($){return $===61?(e.consume($),E):oe($)?(e.consume($),N):T($)}function E($){return $===null||$===60||$===61||$===62||$===96?n($):$===34||$===39?(e.consume($),l=$,L):oe($)?(e.consume($),E):V($)}function L($){return $===l?(e.consume($),l=null,q):$===null||Y($)?n($):(e.consume($),L)}function V($){return $===null||$===34||$===39||$===47||$===60||$===61||$===62||$===96||fe($)?N($):(e.consume($),V)}function q($){return $===47||$===62||oe($)?T($):n($)}function M($){return $===62?(e.consume($),U):n($)}function U($){return $===null||Y($)?j($):oe($)?(e.consume($),U):n($)}function j($){return $===45&&a===2?(e.consume($),ue):$===60&&a===1?(e.consume($),he):$===62&&a===4?(e.consume($),$e):$===63&&a===3?(e.consume($),_):$===93&&a===5?(e.consume($),Ke):Y($)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(G1,qe,le)($)):$===null||Y($)?(e.exit("htmlFlowData"),le($)):(e.consume($),j)}function le($){return e.check(H1,se,qe)($)}function se($){return e.enter("lineEnding"),e.consume($),e.exit("lineEnding"),Z}function Z($){return $===null||Y($)?le($):(e.enter("htmlFlowData"),j($))}function ue($){return $===45?(e.consume($),_):j($)}function he($){return $===47?(e.consume($),s="",Ne):j($)}function Ne($){if($===62){const De=s.toLowerCase();return Po.includes(De)?(e.consume($),$e):j($)}return Ue($)&&s.length<8?(e.consume($),s+=String.fromCharCode($),Ne):j($)}function Ke($){return $===93?(e.consume($),_):j($)}function _($){return $===62?(e.consume($),$e):$===45&&a===2?(e.consume($),_):j($)}function $e($){return $===null||Y($)?(e.exit("htmlFlowData"),qe($)):(e.consume($),$e)}function qe($){return e.exit("htmlFlow"),t($)}}function V1(e,t,n){const r=this;return a;function a(s){return Y(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):n(s)}function i(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}function X1(e,t,n){return r;function r(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(br,t,n)}}const Y1={name:"htmlText",tokenize:Z1};function Z1(e,t,n){const r=this;let a,i,s;return o;function o(_){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(_),l}function l(_){return _===33?(e.consume(_),u):_===47?(e.consume(_),N):_===63?(e.consume(_),T):Ue(_)?(e.consume(_),V):n(_)}function u(_){return _===45?(e.consume(_),h):_===91?(e.consume(_),i=0,b):Ue(_)?(e.consume(_),C):n(_)}function h(_){return _===45?(e.consume(_),d):n(_)}function c(_){return _===null?n(_):_===45?(e.consume(_),f):Y(_)?(s=c,he(_)):(e.consume(_),c)}function f(_){return _===45?(e.consume(_),d):c(_)}function d(_){return _===62?ue(_):_===45?f(_):c(_)}function b(_){const $e="CDATA[";return _===$e.charCodeAt(i++)?(e.consume(_),i===$e.length?w:b):n(_)}function w(_){return _===null?n(_):_===93?(e.consume(_),A):Y(_)?(s=w,he(_)):(e.consume(_),w)}function A(_){return _===93?(e.consume(_),k):w(_)}function k(_){return _===62?ue(_):_===93?(e.consume(_),k):w(_)}function C(_){return _===null||_===62?ue(_):Y(_)?(s=C,he(_)):(e.consume(_),C)}function T(_){return _===null?n(_):_===63?(e.consume(_),I):Y(_)?(s=T,he(_)):(e.consume(_),T)}function I(_){return _===62?ue(_):T(_)}function N(_){return Ue(_)?(e.consume(_),E):n(_)}function E(_){return _===45||Pe(_)?(e.consume(_),E):L(_)}function L(_){return Y(_)?(s=L,he(_)):oe(_)?(e.consume(_),L):ue(_)}function V(_){return _===45||Pe(_)?(e.consume(_),V):_===47||_===62||fe(_)?q(_):n(_)}function q(_){return _===47?(e.consume(_),ue):_===58||_===95||Ue(_)?(e.consume(_),M):Y(_)?(s=q,he(_)):oe(_)?(e.consume(_),q):ue(_)}function M(_){return _===45||_===46||_===58||_===95||Pe(_)?(e.consume(_),M):U(_)}function U(_){return _===61?(e.consume(_),j):Y(_)?(s=U,he(_)):oe(_)?(e.consume(_),U):q(_)}function j(_){return _===null||_===60||_===61||_===62||_===96?n(_):_===34||_===39?(e.consume(_),a=_,le):Y(_)?(s=j,he(_)):oe(_)?(e.consume(_),j):(e.consume(_),se)}function le(_){return _===a?(e.consume(_),a=void 0,Z):_===null?n(_):Y(_)?(s=le,he(_)):(e.consume(_),le)}function se(_){return _===null||_===34||_===39||_===60||_===61||_===96?n(_):_===47||_===62||fe(_)?q(_):(e.consume(_),se)}function Z(_){return _===47||_===62||fe(_)?q(_):n(_)}function ue(_){return _===62?(e.consume(_),e.exit("htmlTextData"),e.exit("htmlText"),t):n(_)}function he(_){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(_),e.exit("lineEnding"),Ne}function Ne(_){return oe(_)?ie(e,Ke,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(_):Ke(_)}function Ke(_){return e.enter("htmlTextData"),s(_)}}const ks={name:"labelEnd",resolveAll:ef,resolveTo:tf,tokenize:nf},K1={tokenize:rf},Q1={tokenize:af},J1={tokenize:sf};function ef(e){let t=-1;const n=[];for(;++t=3&&(u===null||Y(u))?(e.exit("thematicBreak"),t(u)):n(u)}function l(u){return u===a?(e.consume(u),r++,l):(e.exit("thematicBreakSequence"),oe(u)?ie(e,o,"whitespace")(u):o(u))}}const Xe={continuation:{tokenize:gf},exit:yf,name:"list",tokenize:ff},pf={partial:!0,tokenize:vf},df={partial:!0,tokenize:bf};function ff(e,t,n){const r=this,a=r.events[r.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,s=0;return o;function o(d){const b=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:qi(d)){if(r.containerState.type||(r.containerState.type=b,e.enter(b,{_container:!0})),b==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(Ur,n,u)(d):u(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(d)}return n(d)}function l(d){return qi(d)&&++s<10?(e.consume(d),l):(!r.interrupt||s<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),u(d)):n(d)}function u(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(br,r.interrupt?n:h,e.attempt(pf,f,c))}function h(d){return r.containerState.initialBlankLine=!0,i++,f(d)}function c(d){return oe(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),f):n(d)}function f(d){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function gf(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(br,a,i);function a(o){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ie(e,t,"listItemIndent",r.containerState.size+1)(o)}function i(o){return r.containerState.furtherBlankLines||!oe(o)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,s(o)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(df,t,s)(o))}function s(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,ie(e,e.attempt(Xe,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function bf(e,t,n){const r=this;return ie(e,a,"listItemIndent",r.containerState.size+1);function a(i){const s=r.events[r.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===r.containerState.size?t(i):n(i)}}function yf(e){e.exit(this.containerState.type)}function vf(e,t,n){const r=this;return ie(e,a,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const s=r.events[r.events.length-1];return!oe(i)&&s&&s[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Oo={name:"setextUnderline",resolveTo:wf,tokenize:xf};function wf(e,t){let n=e.length,r,a,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(a=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const s={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type="setextHeadingText",i?(e.splice(a,0,["enter",s,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=s,e.push(["exit",s,t]),e}function xf(e,t,n){const r=this;let a;return i;function i(u){let h=r.events.length,c;for(;h--;)if(r.events[h][1].type!=="lineEnding"&&r.events[h][1].type!=="linePrefix"&&r.events[h][1].type!=="content"){c=r.events[h][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||c)?(e.enter("setextHeadingLine"),a=u,s(u)):n(u)}function s(u){return e.enter("setextHeadingLineSequence"),o(u)}function o(u){return u===a?(e.consume(u),o):(e.exit("setextHeadingLineSequence"),oe(u)?ie(e,l,"lineSuffix")(u):l(u))}function l(u){return u===null||Y(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const kf={tokenize:_f};function _f(e){const t=this,n=e.attempt(br,r,e.attempt(this.parser.constructs.flowInitial,a,ie(e,e.attempt(this.parser.constructs.flow,a,e.attempt(A1,a)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function a(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const $f={resolveAll:Q0()},Cf=K0("string"),Sf=K0("text");function K0(e){return{resolveAll:Q0(e==="text"?Af:void 0),tokenize:t};function t(n){const r=this,a=this.parser.constructs[e],i=n.attempt(a,s,o);return s;function s(h){return u(h)?i(h):o(h)}function o(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),l}function l(h){return u(h)?(n.exit("data"),i(h)):(n.consume(h),l)}function u(h){if(h===null)return!0;const c=a[h];let f=-1;if(c)for(;++f-1){const o=s[0];typeof o=="string"?s[0]=o.slice(r):s.shift()}i>0&&s.push(e[a].slice(0,i))}return s}function Of(e,t){let n=-1;const r=[];let a;for(;++n0){const ft=Q.tokenStack[Q.tokenStack.length-1];(ft[1]||Ho).call(Q,void 0,ft[0])}for(H.position={start:Ht(R.length>0?R[0][1].start:{line:1,column:1,offset:0}),end:Ht(R.length>0?R[R.length-2][1].end:{line:1,column:1,offset:0})},pe=-1;++pe":""))+")"})}return f;function f(){let d=tu,b,w,A;if(i(l,u,h[h.length-1]||void 0)&&(d=ag(n(l,h)),d[0]===Uo))return d;if("children"in l&&l.children){const k=l;if(k.children&&d[0]!==ng)for(w=-1+s,A=h.concat(k);w>-1&&w0?{type:"text",value:E}:void 0),E===!1?f.lastIndex=I+1:(b!==I&&C.push({type:"text",value:u.value.slice(b,I)}),Array.isArray(E)?C.push(...E):E&&C.push(E),b=I+T[0].length,k=!0),!f.global)break;T=f.exec(u.value)}return k?(b?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const a=ta(e,"(");let i=ta(e,")");for(;r!==-1&&a>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function nu(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||$n(n)||_a(n))&&(!t||n!==47)}function wg(){this.buffer()}function xg(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function kg(){this.buffer()}function _g(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function $g(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=vt(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Cg(e){this.exit(e)}function Sg(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=vt(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Ag(e){this.exit(e)}function Tg(){return{enter:{gfmFootnoteCallString:wg,gfmFootnoteCall:xg,gfmFootnoteDefinitionLabelString:kg,gfmFootnoteDefinition:_g},exit:{gfmFootnoteCallString:$g,gfmFootnoteCall:Cg,gfmFootnoteDefinitionLabelString:Sg,gfmFootnoteDefinition:Ag}}}function Eg(){return{canContainEols:["delete"],enter:{strikethrough:Mg},exit:{strikethrough:Ig}}}function Mg(e){this.enter({type:"delete",children:[]},e)}function Ig(e){this.exit(e)}function zg(){return{enter:{table:Rg,tableData:Wo,tableHeader:Wo,tableRow:Bg},exit:{codeText:Dg,table:Ng,tableData:si,tableHeader:si,tableRow:si}}}function Rg(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Ng(e){this.exit(e),this.data.inTable=void 0}function Bg(e){this.enter({type:"tableRow",children:[]},e)}function si(e){this.exit(e)}function Wo(e){this.enter({type:"tableCell",children:[]},e)}function Dg(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Lg));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Lg(e,t){return t==="|"?t:e}function Fg(){return{exit:{taskListCheckValueChecked:Vo,taskListCheckValueUnchecked:Vo,paragraph:Pg}}}function Vo(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function Pg(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const a=t.children;let i=-1,s;for(;++i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Kg={tokenize:i4,partial:!0};function Qg(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:n4,continuation:{tokenize:r4},exit:a4}},text:{91:{name:"gfmFootnoteCall",tokenize:t4},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Jg,resolveTo:e4}}}}function Jg(e,t,n){const r=this;let a=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s;for(;a--;){const l=r.events[a][1];if(l.type==="labelImage"){s=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return o;function o(l){if(!s||!s._balanced)return n(l);const u=vt(r.sliceSerialize({start:s.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function e4(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},o=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",a,t],["exit",a,t],["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...o),e}function t4(e,t,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,s;return o;function o(c){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),l}function l(c){return c!==94?n(c):(e.enter("gfmFootnoteCallMarker"),e.consume(c),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(c){if(i>999||c===93&&!s||c===null||c===91||fe(c))return n(c);if(c===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return a.includes(vt(r.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(c)}return fe(c)||(s=!0),i++,e.consume(c),c===92?h:u}function h(c){return c===91||c===92||c===93?(e.consume(c),i++,u):u(c)}}function n4(e,t,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,s=0,o;return l;function l(b){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(b){return b===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",h):n(b)}function h(b){if(s>999||b===93&&!o||b===null||b===91||fe(b))return n(b);if(b===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return i=vt(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return fe(b)||(o=!0),s++,e.consume(b),b===92?c:h}function c(b){return b===91||b===92||b===93?(e.consume(b),s++,h):h(b)}function f(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),a.includes(i)||a.push(i),ie(e,d,"gfmFootnoteDefinitionWhitespace")):n(b)}function d(b){return t(b)}}function r4(e,t,n){return e.check(br,t,e.attempt(Kg,t,n))}function a4(e){e.exit("gfmFootnoteDefinition")}function i4(e,t,n){const r=this;return ie(e,a,"gfmFootnoteDefinitionIndent",5);function a(i){const s=r.events[r.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(i):n(i)}}function s4(e){let n={}.singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:a};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function a(s,o){let l=-1;for(;++l1?l(b):(s.consume(b),c++,d);if(c<2&&!n)return l(b);const A=s.exit("strikethroughSequenceTemporary"),k=la(b);return A._open=!k||k===2&&!!w,A._close=!w||w===2&&!!k,o(b)}}}class o4{constructor(){this.map=[]}add(t,n,r){l4(this,t,n,r)}consume(t){if(this.map.sort(function(i,s){return i[0]-s[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let a=r.pop();for(;a;){for(const i of a)t.push(i);a=r.pop()}this.map.length=0}}function l4(e,t,n,r){let a=0;if(!(n===0&&r.length===0)){for(;a-1;){const se=r.events[U][1].type;if(se==="lineEnding"||se==="linePrefix")U--;else break}const j=U>-1?r.events[U][1].type:null,le=j==="tableHead"||j==="tableRow"?E:l;return le===E&&r.parser.lazy[r.now().line]?n(M):le(M)}function l(M){return e.enter("tableHead"),e.enter("tableRow"),u(M)}function u(M){return M===124||(s=!0,i+=1),h(M)}function h(M){return M===null?n(M):Y(M)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),d):n(M):oe(M)?ie(e,h,"whitespace")(M):(i+=1,s&&(s=!1,a+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),s=!0,h):(e.enter("data"),c(M)))}function c(M){return M===null||M===124||fe(M)?(e.exit("data"),h(M)):(e.consume(M),M===92?f:c)}function f(M){return M===92||M===124?(e.consume(M),c):c(M)}function d(M){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(M):(e.enter("tableDelimiterRow"),s=!1,oe(M)?ie(e,b,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):b(M))}function b(M){return M===45||M===58?A(M):M===124?(s=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),w):N(M)}function w(M){return oe(M)?ie(e,A,"whitespace")(M):A(M)}function A(M){return M===58?(i+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),k):M===45?(i+=1,k(M)):M===null||Y(M)?I(M):N(M)}function k(M){return M===45?(e.enter("tableDelimiterFiller"),C(M)):N(M)}function C(M){return M===45?(e.consume(M),C):M===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),T):(e.exit("tableDelimiterFiller"),T(M))}function T(M){return oe(M)?ie(e,I,"whitespace")(M):I(M)}function I(M){return M===124?b(M):M===null||Y(M)?!s||a!==i?N(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):N(M)}function N(M){return n(M)}function E(M){return e.enter("tableRow"),L(M)}function L(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),L):M===null||Y(M)?(e.exit("tableRow"),t(M)):oe(M)?ie(e,L,"whitespace")(M):(e.enter("data"),V(M))}function V(M){return M===null||M===124||fe(M)?(e.exit("data"),L(M)):(e.consume(M),M===92?q:V)}function q(M){return M===92||M===124?(e.consume(M),V):V(M)}}function h4(e,t){let n=-1,r=!0,a=0,i=[0,0,0,0],s=[0,0,0,0],o=!1,l=0,u,h,c;const f=new o4;for(;++nn[2]+1){const b=n[2]+1,w=n[3]-n[2]-1;e.add(b,w,[])}}e.add(n[3]+1,0,[["exit",c,t]])}return a!==void 0&&(i.end=Object.assign({},Bn(t.events,a)),e.add(a,0,[["exit",i,t]]),i=void 0),i}function Xo(e,t,n,r,a){const i=[],s=Bn(t.events,n);a&&(a.end=Object.assign({},s),i.push(["exit",a,t])),r.end=Object.assign({},s),i.push(["exit",r,t]),e.add(n+1,0,i)}function Bn(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const p4={name:"tasklistCheck",tokenize:f4};function d4(){return{text:{91:p4}}}function f4(e,t,n){const r=this;return a;function a(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),i)}function i(l){return fe(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),s):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),s):n(l)}function s(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(l)}function o(l){return Y(l)?t(l):oe(l)?e.check({tokenize:g4},t,n)(l):n(l)}}function g4(e,t,n){return ie(e,r,"whitespace");function r(a){return a===null?n(a):t(a)}}function z5(e){return j0([jg(),Qg(),s4(),c4(),d4()])}const b4={tokenize:y4,concrete:!0,name:"mathFlow"},Yo={tokenize:v4,partial:!0};function y4(e,t,n){const r=this,a=r.events[r.events.length-1],i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0;let s=0;return o;function o(C){return e.enter("mathFlow"),e.enter("mathFlowFence"),e.enter("mathFlowFenceSequence"),l(C)}function l(C){return C===36?(e.consume(C),s++,l):s<2?n(C):(e.exit("mathFlowFenceSequence"),ie(e,u,"whitespace")(C))}function u(C){return C===null||Y(C)?c(C):(e.enter("mathFlowFenceMeta"),e.enter("chunkString",{contentType:"string"}),h(C))}function h(C){return C===null||Y(C)?(e.exit("chunkString"),e.exit("mathFlowFenceMeta"),c(C)):C===36?n(C):(e.consume(C),h)}function c(C){return e.exit("mathFlowFence"),r.interrupt?t(C):e.attempt(Yo,f,A)(C)}function f(C){return e.attempt({tokenize:k,partial:!0},A,d)(C)}function d(C){return(i?ie(e,b,"linePrefix",i+1):b)(C)}function b(C){return C===null?A(C):Y(C)?e.attempt(Yo,f,A)(C):(e.enter("mathFlowValue"),w(C))}function w(C){return C===null||Y(C)?(e.exit("mathFlowValue"),b(C)):(e.consume(C),w)}function A(C){return e.exit("mathFlow"),t(C)}function k(C,T,I){let N=0;return ie(C,E,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4);function E(q){return C.enter("mathFlowFence"),C.enter("mathFlowFenceSequence"),L(q)}function L(q){return q===36?(N++,C.consume(q),L):N15?u="…"+o.slice(a-15,a):u=o.slice(0,a);var h;i+15e.replace(_4,"-$1").toLowerCase(),C4={"&":"&",">":">","<":"<",'"':""","'":"'"},S4=/[&><"']/g,Oe=e=>String(e).replace(S4,t=>C4[t]),Vr=e=>e.type==="ordgroup"||e.type==="color"?e.body.length===1?Vr(e.body[0]):e:e.type==="font"?Vr(e.body):e,A4=new Set(["mathord","textord","atom"]),qt=e=>A4.has(Vr(e).type),T4=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},Ui={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function E4(e){if(typeof e!="string")return e.enum[0];switch(e){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{};default:throw new Error("Unexpected schema type; settings must declare an explicit default.")}}function M4(e){if(e.default!==void 0)return e.default;var t=Array.isArray(e.type)?e.type[0]:e.type;return E4(t)}function I4(e,t,n,r){var a=n[t];e[t]=a!==void 0?r.processor?r.processor(a):a:M4(r)}class Cs{constructor(t){t===void 0&&(t={}),this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var n of Object.keys(Ui)){var r=Ui[n];r&&I4(this,n,t,r)}}reportNonstrict(t,n,r){var a=this.strict;if(typeof a=="function"&&(a=a(t,n,r)),!(!a||a==="ignore")){if(a===!0||a==="error")throw new P("LaTeX-incompatible input and strict mode is set to 'error': "+(n+" ["+t+"]"),r);a==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+n+" ["+t+"]"))}}useStrictBehavior(t,n,r){var a=this.strict;if(typeof a=="function")try{a=a(t,n,r)}catch{a="error"}return!a||a==="ignore"?!1:a===!0||a==="error"?!0:a==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+n+" ["+t+"]")),!1)}isTrusted(t){if("url"in t&&t.url&&!t.protocol){var n=T4(t.url);if(n==null)return!1;t.protocol=n}var r=typeof this.trust=="function"?this.trust(t):this.trust;return!!r}}class Ut{constructor(t,n,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=n,this.cramped=r}sup(){return kt[z4[this.id]]}sub(){return kt[R4[this.id]]}fracNum(){return kt[N4[this.id]]}fracDen(){return kt[B4[this.id]]}cramp(){return kt[D4[this.id]]}text(){return kt[L4[this.id]]}isTight(){return this.size>=2}}var Ss=0,ua=1,Ln=2,Ft=3,mr=4,ht=5,Fn=6,We=7,kt=[new Ut(Ss,0,!1),new Ut(ua,0,!0),new Ut(Ln,1,!1),new Ut(Ft,1,!0),new Ut(mr,2,!1),new Ut(ht,2,!0),new Ut(Fn,3,!1),new Ut(We,3,!0)],z4=[mr,ht,mr,ht,Fn,We,Fn,We],R4=[ht,ht,ht,ht,We,We,We,We],N4=[Ln,Ft,mr,ht,Fn,We,Fn,We],B4=[Ft,Ft,ht,ht,We,We,We,We],D4=[ua,ua,Ft,Ft,ht,ht,We,We],L4=[Ss,ua,Ln,Ft,Ln,Ft,Ln,Ft],te={DISPLAY:kt[Ss],TEXT:kt[Ln],SCRIPT:kt[mr],SCRIPTSCRIPT:kt[Fn]},Wi=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function F4(e){for(var t=0;t=a[0]&&e<=a[1])return n.name}return null}var Xr=[];Wi.forEach(e=>e.blocks.forEach(t=>Xr.push(...t)));function mu(e){for(var t=0;t=Xr[t]&&e<=Xr[t+1])return!0;return!1}var Me=e=>e+" "+e,zn=80,P4=function(t,n){return"M95,"+(622+t+n)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+t/2.075+" -"+t+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+t)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},O4=function(t,n){return"M263,"+(601+t+n)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+t/2.084+" -"+t+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+t)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},q4=function(t,n){return"M983 "+(10+t+n)+` +l`+t/3.13+" -"+t+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},j4=function(t,n){return"M424,"+(2398+t+n)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+t)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+n+` +h400000v`+(40+t)+"h-400000z"},G4=function(t,n){return"M473,"+(2713+t+n)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+t)+" "+n+"h400000v"+(40+t)+"H1017.7z"},H4=function(t){var n=t/2;return"M400000 "+t+" H0 L"+n+" 0 l65 45 L145 "+(t-80)+" H400000z"},U4=function(t,n,r){var a=r-54-n-t;return"M702 "+(t+n)+"H400000"+(40+t)+` +H742v`+a+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+n+"H400000v"+(40+t)+"H742z"},W4=function(t,n,r){n=1e3*n;var a="";switch(t){case"sqrtMain":a=P4(n,zn);break;case"sqrtSize1":a=O4(n,zn);break;case"sqrtSize2":a=q4(n,zn);break;case"sqrtSize3":a=j4(n,zn);break;case"sqrtSize4":a=G4(n,zn);break;case"sqrtTall":a=U4(n,zn,r)}return a},V4=function(t,n){switch(t){case"⎜":return Me("M291 0 H417 V"+n+" H291z");case"∣":return Me("M145 0 H188 V"+n+" H145z");case"∥":return Me("M145 0 H188 V"+n+" H145z")+Me("M367 0 H410 V"+n+" H367z");case"⎟":return Me("M457 0 H583 V"+n+" H457z");case"⎢":return Me("M319 0 H403 V"+n+" H319z");case"⎥":return Me("M263 0 H347 V"+n+" H263z");case"⎪":return Me("M384 0 H504 V"+n+" H384z");case"�":return Me("M312 0 H355 V"+n+" H312z");case"‖":return Me("M257 0 H300 V"+n+" H257z")+Me("M478 0 H521 V"+n+" H478z");default:return""}},Zo={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:Me("M40 281 V428 H0 V94 H40 V241 H400000 v40z"),leftbracketunder:Me("M0 0 h120 V290 H399995 v120 H0z"),leftbracketover:Me("M0 440 h120 V150 H399995 v-120 H0z"),leftmapsto:Me("M40 281 V448H0V74H40V241H400000v40z"),leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:Me("M0 50 h400000 v40H0z m0 194h40000v40H0z"),midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:Me("M399960 241 V94 h40 V428 h-40 V281 H0 v-40z"),rightbracketunder:Me("M399995 0 h-120 V290 H0 v120 H400000z"),rightbracketover:Me("M399995 440 h-120 V150 H0 v-120 H399995z"),rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},X4=function(t,n){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v1759 v84 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+n+" v1759 v84 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+n+" v1759 h84z";case"vert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+" v585 h43z";case"doublevert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+` v585 h43z +M367 15 v585 v`+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+n+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+n+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+n+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v602 h84z +M403 1759 V0 H319 V1759 v`+n+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v602 h84z +M347 1759 V0 h-84 V1759 v`+n+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(n+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(n+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(n+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};function Y4(e){return"toText"in e}class Hn{constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return this.classes.includes(t)}toNode(){for(var t=document.createDocumentFragment(),n=0;n{if(Y4(t))return t.toText();throw new Error("Expected MathDomNode with toText, got "+t.constructor.name)}).join("")}}var Vi={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},Z4={ex:!0,em:!0,mu:!0},hu=function(t){return typeof t!="string"&&(t=t.unit),t in Vi||t in Z4||t==="ex"},xe=function(t,n){var r;if(t.unit in Vi)r=Vi[t.unit]/n.fontMetrics().ptPerEm/n.sizeMultiplier;else if(t.unit==="mu")r=n.fontMetrics().cssEmPerMu;else{var a;if(n.style.isTight()?a=n.havingStyle(n.style.text()):a=n,t.unit==="ex")r=a.fontMetrics().xHeight;else if(t.unit==="em")r=a.fontMetrics().quad;else throw new P("Invalid unit: '"+t.unit+"'");a!==n&&(r*=a.sizeMultiplier/n.sizeMultiplier)}return Math.min(t.number*r,n.maxSize)},G=function(t){return+t.toFixed(4)+"em"},en=function(t){return t.filter(n=>n).join(" ")},As=function(t){var n="";for(var r of Object.keys(t)){var a=t[r];a!==void 0&&(n+=$4(r)+":"+a+";")}return n},pu=function(t,n,r){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},n){n.style.isTight()&&this.classes.push("mtight");var a=n.getColor();a&&(this.style.color=a)}},du=function(t){var n=document.createElement(t);n.className=en(this.classes),Object.assign(n.style,this.style);for(var r of Object.keys(this.attributes))n.setAttribute(r,this.attributes[r]);for(var a=0;a/=\x00-\x1f]/,fu=function(t){var n="<"+t;this.classes.length&&(n+=' class="'+Oe(en(this.classes))+'"');var r=As(this.style);r&&(n+=' style="'+Oe(r)+'"');for(var a of Object.keys(this.attributes)){if(K4.test(a))throw new P("Invalid attribute name '"+a+"'");n+=" "+a+'="'+Oe(this.attributes[a])+'"'}n+=">";for(var i=0;i",n};class Un{constructor(t,n,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,this.italic=void 0,pu.call(this,t,r,a),this.children=n||[]}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return this.classes.includes(t)}toNode(){return du.call(this,"span")}toMarkup(){return fu.call(this,"span")}}class Sa{constructor(t,n,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,pu.call(this,n,a),this.children=r||[],this.setAttribute("href",t)}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return this.classes.includes(t)}toNode(){return du.call(this,"a")}toMarkup(){return fu.call(this,"a")}}class Q4{constructor(t,n,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=n,this.src=t,this.classes=["mord"],this.height=0,this.depth=0,this.maxFontSize=0,this.style=r}hasClass(t){return this.classes.includes(t)}toNode(){var t=document.createElement("img");return t.src=this.src,t.alt=this.alt,t.className="mord",Object.assign(t.style,this.style),t}toMarkup(){var t=''+Oe(this.alt)+'0&&(n=document.createElement("span"),n.style.marginRight=G(this.italic)),this.classes.length>0&&(n=n||document.createElement("span"),n.className=en(this.classes)),Object.keys(this.style).length>0&&(n=n||document.createElement("span"),Object.assign(n.style,this.style)),n?(n.appendChild(t),n):t}toMarkup(){var t=!1,n="0&&(r+="margin-right:"+G(this.italic)+";"),r+=As(this.style),r&&(t=!0,n+=' style="'+Oe(r)+'"');var a=Oe(this.text);return t?(n+=">",n+=a,n+="",n):a}}class Pt{constructor(t,n){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=n||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"svg");for(var r of Object.keys(this.attributes))n.setAttribute(r,this.attributes[r]);for(var a=0;a':''}}class Xi{constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"line");for(var r of Object.keys(this.attributes))n.setAttribute(r,this.attributes[r]);return n}toMarkup(){var t=" but got "+String(e)+".")}var n2=e=>e instanceof Un||e instanceof Sa||e instanceof Hn,_t={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Nr={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ko={Å:"A",�:"D",Þ:"o",å:"a",ð:"d",þ:"o",�:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",�:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",�:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",�:"e",ю:"m",�:"r"};function r2(e,t){_t[e]=t}function Ts(e,t,n){if(!_t[t])throw new Error("Font metrics not found for font: "+t+".");var r=e.charCodeAt(0),a=_t[t][r];if(!a&&e[0]in Ko&&(r=Ko[e[0]].charCodeAt(0),a=_t[t][r]),!a&&n==="text"&&mu(r)&&(a=_t[t][77]),a)return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}var oi={};function a2(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!oi[t]){var n=oi[t]={cssEmPerMu:Nr.quad[t]/18};for(var r in Nr)Nr.hasOwnProperty(r)&&(n[r]=Nr[r][t])}return oi[t]}var ye={math:{},text:{}};function m(e,t,n,r,a,i){ye[e][a]={font:t,group:n,replace:r},i&&r&&(ye[e][r]=ye[e][a])}var p="math",B="text",g="main",v="ams",ve="accent-token",X="bin",Ve="close",Wn="inner",K="mathord",Te="op-token",at="open",yr="punct",x="rel",jt="spacing",S="textord";m(p,g,x,"≡","\\equiv",!0);m(p,g,x,"≺","\\prec",!0);m(p,g,x,"≻","\\succ",!0);m(p,g,x,"∼","\\sim",!0);m(p,g,x,"⊥","\\perp");m(p,g,x,"⪯","\\preceq",!0);m(p,g,x,"⪰","\\succeq",!0);m(p,g,x,"≃","\\simeq",!0);m(p,g,x,"∣","\\mid",!0);m(p,g,x,"≪","\\ll",!0);m(p,g,x,"≫","\\gg",!0);m(p,g,x,"�","\\asymp",!0);m(p,g,x,"∥","\\parallel");m(p,g,x,"⋈","\\bowtie",!0);m(p,g,x,"⌣","\\smile",!0);m(p,g,x,"⊑","\\sqsubseteq",!0);m(p,g,x,"⊒","\\sqsupseteq",!0);m(p,g,x,"�","\\doteq",!0);m(p,g,x,"⌢","\\frown",!0);m(p,g,x,"∋","\\ni",!0);m(p,g,x,"�","\\propto",!0);m(p,g,x,"⊢","\\vdash",!0);m(p,g,x,"⊣","\\dashv",!0);m(p,g,x,"∋","\\owns");m(p,g,yr,".","\\ldotp");m(p,g,yr,"⋅","\\cdotp");m(p,g,yr,"⋅","·");m(B,g,S,"⋅","·");m(p,g,S,"#","\\#");m(B,g,S,"#","\\#");m(p,g,S,"&","\\&");m(B,g,S,"&","\\&");m(p,g,S,"ℵ","\\aleph",!0);m(p,g,S,"∀","\\forall",!0);m(p,g,S,"�","\\hbar",!0);m(p,g,S,"∃","\\exists",!0);m(p,g,S,"∇","\\nabla",!0);m(p,g,S,"♭","\\flat",!0);m(p,g,S,"ℓ","\\ell",!0);m(p,g,S,"♮","\\natural",!0);m(p,g,S,"♣","\\clubsuit",!0);m(p,g,S,"℘","\\wp",!0);m(p,g,S,"♯","\\sharp",!0);m(p,g,S,"♢","\\diamondsuit",!0);m(p,g,S,"ℜ","\\Re",!0);m(p,g,S,"♡","\\heartsuit",!0);m(p,g,S,"ℑ","\\Im",!0);m(p,g,S,"♠","\\spadesuit",!0);m(p,g,S,"§","\\S",!0);m(B,g,S,"§","\\S");m(p,g,S,"¶","\\P",!0);m(B,g,S,"¶","\\P");m(p,g,S,"†","\\dag");m(B,g,S,"†","\\dag");m(B,g,S,"†","\\textdagger");m(p,g,S,"‡","\\ddag");m(B,g,S,"‡","\\ddag");m(B,g,S,"‡","\\textdaggerdbl");m(p,g,Ve,"⎱","\\rmoustache",!0);m(p,g,at,"⎰","\\lmoustache",!0);m(p,g,Ve,"⟯","\\rgroup",!0);m(p,g,at,"⟮","\\lgroup",!0);m(p,g,X,"∓","\\mp",!0);m(p,g,X,"⊖","\\ominus",!0);m(p,g,X,"⊎","\\uplus",!0);m(p,g,X,"⊓","\\sqcap",!0);m(p,g,X,"∗","\\ast");m(p,g,X,"⊔","\\sqcup",!0);m(p,g,X,"◯","\\bigcirc",!0);m(p,g,X,"∙","\\bullet",!0);m(p,g,X,"‡","\\ddagger");m(p,g,X,"≀","\\wr",!0);m(p,g,X,"⨿","\\amalg");m(p,g,X,"&","\\And");m(p,g,x,"⟵","\\longleftarrow",!0);m(p,g,x,"�","\\Leftarrow",!0);m(p,g,x,"⟸","\\Longleftarrow",!0);m(p,g,x,"⟶","\\longrightarrow",!0);m(p,g,x,"⇒","\\Rightarrow",!0);m(p,g,x,"⟹","\\Longrightarrow",!0);m(p,g,x,"↔","\\leftrightarrow",!0);m(p,g,x,"⟷","\\longleftrightarrow",!0);m(p,g,x,"⇔","\\Leftrightarrow",!0);m(p,g,x,"⟺","\\Longleftrightarrow",!0);m(p,g,x,"↦","\\mapsto",!0);m(p,g,x,"⟼","\\longmapsto",!0);m(p,g,x,"↗","\\nearrow",!0);m(p,g,x,"↩","\\hookleftarrow",!0);m(p,g,x,"↪","\\hookrightarrow",!0);m(p,g,x,"↘","\\searrow",!0);m(p,g,x,"↼","\\leftharpoonup",!0);m(p,g,x,"⇀","\\rightharpoonup",!0);m(p,g,x,"↙","\\swarrow",!0);m(p,g,x,"↽","\\leftharpoondown",!0);m(p,g,x,"�","\\rightharpoondown",!0);m(p,g,x,"↖","\\nwarrow",!0);m(p,g,x,"⇌","\\rightleftharpoons",!0);m(p,v,x,"≮","\\nless",!0);m(p,v,x,"�","\\@nleqslant");m(p,v,x,"","\\@nleqq");m(p,v,x,"⪇","\\lneq",!0);m(p,v,x,"≨","\\lneqq",!0);m(p,v,x,"","\\@lvertneqq");m(p,v,x,"⋦","\\lnsim",!0);m(p,v,x,"⪉","\\lnapprox",!0);m(p,v,x,"⊀","\\nprec",!0);m(p,v,x,"⋠","\\npreceq",!0);m(p,v,x,"⋨","\\precnsim",!0);m(p,v,x,"⪹","\\precnapprox",!0);m(p,v,x,"�","\\nsim",!0);m(p,v,x,"","\\@nshortmid");m(p,v,x,"∤","\\nmid",!0);m(p,v,x,"⊬","\\nvdash",!0);m(p,v,x,"⊭","\\nvDash",!0);m(p,v,x,"⋪","\\ntriangleleft");m(p,v,x,"⋬","\\ntrianglelefteq",!0);m(p,v,x,"⊊","\\subsetneq",!0);m(p,v,x,"","\\@varsubsetneq");m(p,v,x,"⫋","\\subsetneqq",!0);m(p,v,x,"","\\@varsubsetneqq");m(p,v,x,"≯","\\ngtr",!0);m(p,v,x,"�","\\@ngeqslant");m(p,v,x,"","\\@ngeqq");m(p,v,x,"⪈","\\gneq",!0);m(p,v,x,"≩","\\gneqq",!0);m(p,v,x,"�","\\@gvertneqq");m(p,v,x,"⋧","\\gnsim",!0);m(p,v,x,"⪊","\\gnapprox",!0);m(p,v,x,"�","\\nsucc",!0);m(p,v,x,"⋡","\\nsucceq",!0);m(p,v,x,"⋩","\\succnsim",!0);m(p,v,x,"⪺","\\succnapprox",!0);m(p,v,x,"≆","\\ncong",!0);m(p,v,x,"","\\@nshortparallel");m(p,v,x,"∦","\\nparallel",!0);m(p,v,x,"⊯","\\nVDash",!0);m(p,v,x,"⋫","\\ntriangleright");m(p,v,x,"⋭","\\ntrianglerighteq",!0);m(p,v,x,"","\\@nsupseteqq");m(p,v,x,"⊋","\\supsetneq",!0);m(p,v,x,"","\\@varsupsetneq");m(p,v,x,"⫌","\\supsetneqq",!0);m(p,v,x,"","\\@varsupsetneqq");m(p,v,x,"⊮","\\nVdash",!0);m(p,v,x,"⪵","\\precneqq",!0);m(p,v,x,"⪶","\\succneqq",!0);m(p,v,x,"","\\@nsubseteqq");m(p,v,X,"⊴","\\unlhd");m(p,v,X,"⊵","\\unrhd");m(p,v,x,"↚","\\nleftarrow",!0);m(p,v,x,"↛","\\nrightarrow",!0);m(p,v,x,"�","\\nLeftarrow",!0);m(p,v,x,"�","\\nRightarrow",!0);m(p,v,x,"↮","\\nleftrightarrow",!0);m(p,v,x,"⇎","\\nLeftrightarrow",!0);m(p,v,x,"△","\\vartriangle");m(p,v,S,"�","\\hslash");m(p,v,S,"▽","\\triangledown");m(p,v,S,"◊","\\lozenge");m(p,v,S,"Ⓢ","\\circledS");m(p,v,S,"®","\\circledR");m(B,v,S,"®","\\circledR");m(p,v,S,"∡","\\measuredangle",!0);m(p,v,S,"∄","\\nexists");m(p,v,S,"℧","\\mho");m(p,v,S,"Ⅎ","\\Finv",!0);m(p,v,S,"�","\\Game",!0);m(p,v,S,"‵","\\backprime");m(p,v,S,"▲","\\blacktriangle");m(p,v,S,"▼","\\blacktriangledown");m(p,v,S,"■","\\blacksquare");m(p,v,S,"⧫","\\blacklozenge");m(p,v,S,"★","\\bigstar");m(p,v,S,"∢","\\sphericalangle",!0);m(p,v,S,"�","\\complement",!0);m(p,v,S,"ð","\\eth",!0);m(B,g,S,"ð","ð");m(p,v,S,"╱","\\diagup");m(p,v,S,"╲","\\diagdown");m(p,v,S,"□","\\square");m(p,v,S,"□","\\Box");m(p,v,S,"◊","\\Diamond");m(p,v,S,"¥","\\yen",!0);m(B,v,S,"¥","\\yen",!0);m(p,v,S,"✓","\\checkmark",!0);m(B,v,S,"✓","\\checkmark");m(p,v,S,"ℶ","\\beth",!0);m(p,v,S,"ℸ","\\daleth",!0);m(p,v,S,"ℷ","\\gimel",!0);m(p,v,S,"�","\\digamma",!0);m(p,v,S,"ϰ","\\varkappa");m(p,v,at,"┌","\\@ulcorner",!0);m(p,v,Ve,"�","\\@urcorner",!0);m(p,v,at,"└","\\@llcorner",!0);m(p,v,Ve,"┘","\\@lrcorner",!0);m(p,v,x,"≦","\\leqq",!0);m(p,v,x,"⩽","\\leqslant",!0);m(p,v,x,"⪕","\\eqslantless",!0);m(p,v,x,"≲","\\lesssim",!0);m(p,v,x,"⪅","\\lessapprox",!0);m(p,v,x,"≊","\\approxeq",!0);m(p,v,X,"⋖","\\lessdot");m(p,v,x,"⋘","\\lll",!0);m(p,v,x,"≶","\\lessgtr",!0);m(p,v,x,"⋚","\\lesseqgtr",!0);m(p,v,x,"⪋","\\lesseqqgtr",!0);m(p,v,x,"≑","\\doteqdot");m(p,v,x,"≓","\\risingdotseq",!0);m(p,v,x,"≒","\\fallingdotseq",!0);m(p,v,x,"∽","\\backsim",!0);m(p,v,x,"�","\\backsimeq",!0);m(p,v,x,"⫅","\\subseteqq",!0);m(p,v,x,"�","\\Subset",!0);m(p,v,x,"�","\\sqsubset",!0);m(p,v,x,"≼","\\preccurlyeq",!0);m(p,v,x,"⋞","\\curlyeqprec",!0);m(p,v,x,"≾","\\precsim",!0);m(p,v,x,"⪷","\\precapprox",!0);m(p,v,x,"⊲","\\vartriangleleft");m(p,v,x,"⊴","\\trianglelefteq");m(p,v,x,"⊨","\\vDash",!0);m(p,v,x,"⊪","\\Vvdash",!0);m(p,v,x,"⌣","\\smallsmile");m(p,v,x,"⌢","\\smallfrown");m(p,v,x,"�","\\bumpeq",!0);m(p,v,x,"≎","\\Bumpeq",!0);m(p,v,x,"≧","\\geqq",!0);m(p,v,x,"⩾","\\geqslant",!0);m(p,v,x,"⪖","\\eqslantgtr",!0);m(p,v,x,"≳","\\gtrsim",!0);m(p,v,x,"⪆","\\gtrapprox",!0);m(p,v,X,"⋗","\\gtrdot");m(p,v,x,"⋙","\\ggg",!0);m(p,v,x,"≷","\\gtrless",!0);m(p,v,x,"⋛","\\gtreqless",!0);m(p,v,x,"⪌","\\gtreqqless",!0);m(p,v,x,"≖","\\eqcirc",!0);m(p,v,x,"≗","\\circeq",!0);m(p,v,x,"≜","\\triangleq",!0);m(p,v,x,"∼","\\thicksim");m(p,v,x,"≈","\\thickapprox");m(p,v,x,"⫆","\\supseteqq",!0);m(p,v,x,"⋑","\\Supset",!0);m(p,v,x,"�","\\sqsupset",!0);m(p,v,x,"≽","\\succcurlyeq",!0);m(p,v,x,"⋟","\\curlyeqsucc",!0);m(p,v,x,"≿","\\succsim",!0);m(p,v,x,"⪸","\\succapprox",!0);m(p,v,x,"⊳","\\vartriangleright");m(p,v,x,"⊵","\\trianglerighteq");m(p,v,x,"⊩","\\Vdash",!0);m(p,v,x,"∣","\\shortmid");m(p,v,x,"∥","\\shortparallel");m(p,v,x,"≬","\\between",!0);m(p,v,x,"⋔","\\pitchfork",!0);m(p,v,x,"�","\\varpropto");m(p,v,x,"◀","\\blacktriangleleft");m(p,v,x,"∴","\\therefore",!0);m(p,v,x,"�","\\backepsilon");m(p,v,x,"▶","\\blacktriangleright");m(p,v,x,"∵","\\because",!0);m(p,v,x,"⋘","\\llless");m(p,v,x,"⋙","\\gggtr");m(p,v,X,"⊲","\\lhd");m(p,v,X,"⊳","\\rhd");m(p,v,x,"≂","\\eqsim",!0);m(p,g,x,"⋈","\\Join");m(p,v,x,"≑","\\Doteq",!0);m(p,v,X,"∔","\\dotplus",!0);m(p,v,X,"∖","\\smallsetminus");m(p,v,X,"⋒","\\Cap",!0);m(p,v,X,"⋓","\\Cup",!0);m(p,v,X,"⩞","\\doublebarwedge",!0);m(p,v,X,"⊟","\\boxminus",!0);m(p,v,X,"⊞","\\boxplus",!0);m(p,v,X,"⋇","\\divideontimes",!0);m(p,v,X,"⋉","\\ltimes",!0);m(p,v,X,"⋊","\\rtimes",!0);m(p,v,X,"⋋","\\leftthreetimes",!0);m(p,v,X,"⋌","\\rightthreetimes",!0);m(p,v,X,"�","\\curlywedge",!0);m(p,v,X,"⋎","\\curlyvee",!0);m(p,v,X,"�","\\circleddash",!0);m(p,v,X,"⊛","\\circledast",!0);m(p,v,X,"⋅","\\centerdot");m(p,v,X,"⊺","\\intercal",!0);m(p,v,X,"⋒","\\doublecap");m(p,v,X,"⋓","\\doublecup");m(p,v,X,"⊠","\\boxtimes",!0);m(p,v,x,"⇢","\\dashrightarrow",!0);m(p,v,x,"⇠","\\dashleftarrow",!0);m(p,v,x,"⇇","\\leftleftarrows",!0);m(p,v,x,"⇆","\\leftrightarrows",!0);m(p,v,x,"⇚","\\Lleftarrow",!0);m(p,v,x,"↞","\\twoheadleftarrow",!0);m(p,v,x,"↢","\\leftarrowtail",!0);m(p,v,x,"↫","\\looparrowleft",!0);m(p,v,x,"⇋","\\leftrightharpoons",!0);m(p,v,x,"↶","\\curvearrowleft",!0);m(p,v,x,"↺","\\circlearrowleft",!0);m(p,v,x,"↰","\\Lsh",!0);m(p,v,x,"⇈","\\upuparrows",!0);m(p,v,x,"↿","\\upharpoonleft",!0);m(p,v,x,"⇃","\\downharpoonleft",!0);m(p,g,x,"⊶","\\origof",!0);m(p,g,x,"⊷","\\imageof",!0);m(p,v,x,"⊸","\\multimap",!0);m(p,v,x,"↭","\\leftrightsquigarrow",!0);m(p,v,x,"⇉","\\rightrightarrows",!0);m(p,v,x,"⇄","\\rightleftarrows",!0);m(p,v,x,"↠","\\twoheadrightarrow",!0);m(p,v,x,"↣","\\rightarrowtail",!0);m(p,v,x,"↬","\\looparrowright",!0);m(p,v,x,"↷","\\curvearrowright",!0);m(p,v,x,"↻","\\circlearrowright",!0);m(p,v,x,"↱","\\Rsh",!0);m(p,v,x,"⇊","\\downdownarrows",!0);m(p,v,x,"↾","\\upharpoonright",!0);m(p,v,x,"⇂","\\downharpoonright",!0);m(p,v,x,"�","\\rightsquigarrow",!0);m(p,v,x,"�","\\leadsto");m(p,v,x,"⇛","\\Rrightarrow",!0);m(p,v,x,"↾","\\restriction");m(p,g,S,"‘","`");m(p,g,S,"$","\\$");m(B,g,S,"$","\\$");m(B,g,S,"$","\\textdollar");m(p,g,S,"%","\\%");m(B,g,S,"%","\\%");m(p,g,S,"_","\\_");m(B,g,S,"_","\\_");m(B,g,S,"_","\\textunderscore");m(p,g,S,"∠","\\angle",!0);m(p,g,S,"∞","\\infty",!0);m(p,g,S,"′","\\prime");m(p,g,S,"△","\\triangle");m(p,g,S,"Γ","\\Gamma",!0);m(p,g,S,"Δ","\\Delta",!0);m(p,g,S,"Θ","\\Theta",!0);m(p,g,S,"Λ","\\Lambda",!0);m(p,g,S,"Ξ","\\Xi",!0);m(p,g,S,"Π","\\Pi",!0);m(p,g,S,"Σ","\\Sigma",!0);m(p,g,S,"Υ","\\Upsilon",!0);m(p,g,S,"Φ","\\Phi",!0);m(p,g,S,"Ψ","\\Psi",!0);m(p,g,S,"Ω","\\Omega",!0);m(p,g,S,"A","Α");m(p,g,S,"B","Β");m(p,g,S,"E","Ε");m(p,g,S,"Z","Ζ");m(p,g,S,"H","Η");m(p,g,S,"I","Ι");m(p,g,S,"K","Κ");m(p,g,S,"M","Μ");m(p,g,S,"N","�");m(p,g,S,"O","Ο");m(p,g,S,"P","Ρ");m(p,g,S,"T","Τ");m(p,g,S,"X","Χ");m(p,g,S,"¬","\\neg",!0);m(p,g,S,"¬","\\lnot");m(p,g,S,"⊤","\\top");m(p,g,S,"⊥","\\bot");m(p,g,S,"∅","\\emptyset");m(p,v,S,"∅","\\varnothing");m(p,g,K,"α","\\alpha",!0);m(p,g,K,"β","\\beta",!0);m(p,g,K,"γ","\\gamma",!0);m(p,g,K,"δ","\\delta",!0);m(p,g,K,"ϵ","\\epsilon",!0);m(p,g,K,"ζ","\\zeta",!0);m(p,g,K,"η","\\eta",!0);m(p,g,K,"θ","\\theta",!0);m(p,g,K,"ι","\\iota",!0);m(p,g,K,"κ","\\kappa",!0);m(p,g,K,"λ","\\lambda",!0);m(p,g,K,"μ","\\mu",!0);m(p,g,K,"ν","\\nu",!0);m(p,g,K,"ξ","\\xi",!0);m(p,g,K,"ο","\\omicron",!0);m(p,g,K,"π","\\pi",!0);m(p,g,K,"�","\\rho",!0);m(p,g,K,"σ","\\sigma",!0);m(p,g,K,"τ","\\tau",!0);m(p,g,K,"υ","\\upsilon",!0);m(p,g,K,"ϕ","\\phi",!0);m(p,g,K,"χ","\\chi",!0);m(p,g,K,"ψ","\\psi",!0);m(p,g,K,"ω","\\omega",!0);m(p,g,K,"ε","\\varepsilon",!0);m(p,g,K,"ϑ","\\vartheta",!0);m(p,g,K,"ϖ","\\varpi",!0);m(p,g,K,"ϱ","\\varrho",!0);m(p,g,K,"ς","\\varsigma",!0);m(p,g,K,"φ","\\varphi",!0);m(p,g,X,"∗","*",!0);m(p,g,X,"+","+");m(p,g,X,"−","-",!0);m(p,g,X,"⋅","\\cdot",!0);m(p,g,X,"∘","\\circ",!0);m(p,g,X,"÷","\\div",!0);m(p,g,X,"±","\\pm",!0);m(p,g,X,"×","\\times",!0);m(p,g,X,"∩","\\cap",!0);m(p,g,X,"∪","\\cup",!0);m(p,g,X,"∖","\\setminus",!0);m(p,g,X,"∧","\\land");m(p,g,X,"∨","\\lor");m(p,g,X,"∧","\\wedge",!0);m(p,g,X,"∨","\\vee",!0);m(p,g,S,"√","\\surd");m(p,g,at,"⟨","\\langle",!0);m(p,g,at,"∣","\\lvert");m(p,g,at,"∥","\\lVert");m(p,g,Ve,"?","?");m(p,g,Ve,"!","!");m(p,g,Ve,"⟩","\\rangle",!0);m(p,g,Ve,"∣","\\rvert");m(p,g,Ve,"∥","\\rVert");m(p,g,x,"=","=");m(p,g,x,":",":");m(p,g,x,"≈","\\approx",!0);m(p,g,x,"≅","\\cong",!0);m(p,g,x,"≥","\\ge");m(p,g,x,"≥","\\geq",!0);m(p,g,x,"�","\\gets");m(p,g,x,">","\\gt",!0);m(p,g,x,"∈","\\in",!0);m(p,g,x,"","\\@not");m(p,g,x,"⊂","\\subset",!0);m(p,g,x,"⊃","\\supset",!0);m(p,g,x,"⊆","\\subseteq",!0);m(p,g,x,"⊇","\\supseteq",!0);m(p,v,x,"⊈","\\nsubseteq",!0);m(p,v,x,"⊉","\\nsupseteq",!0);m(p,g,x,"⊨","\\models");m(p,g,x,"�","\\leftarrow",!0);m(p,g,x,"≤","\\le");m(p,g,x,"≤","\\leq",!0);m(p,g,x,"<","\\lt",!0);m(p,g,x,"→","\\rightarrow",!0);m(p,g,x,"→","\\to");m(p,v,x,"≱","\\ngeq",!0);m(p,v,x,"≰","\\nleq",!0);m(p,g,jt," ","\\ ");m(p,g,jt," ","\\space");m(p,g,jt," ","\\nobreakspace");m(B,g,jt," ","\\ ");m(B,g,jt," "," ");m(B,g,jt," ","\\space");m(B,g,jt," ","\\nobreakspace");m(p,g,jt,"","\\nobreak");m(p,g,jt,"","\\allowbreak");m(p,g,yr,",",",");m(p,g,yr,";",";");m(p,v,X,"⊼","\\barwedge",!0);m(p,v,X,"⊻","\\veebar",!0);m(p,g,X,"⊙","\\odot",!0);m(p,g,X,"⊕","\\oplus",!0);m(p,g,X,"⊗","\\otimes",!0);m(p,g,S,"∂","\\partial",!0);m(p,g,X,"⊘","\\oslash",!0);m(p,v,X,"⊚","\\circledcirc",!0);m(p,v,X,"⊡","\\boxdot",!0);m(p,g,X,"△","\\bigtriangleup");m(p,g,X,"▽","\\bigtriangledown");m(p,g,X,"†","\\dagger");m(p,g,X,"⋄","\\diamond");m(p,g,X,"⋆","\\star");m(p,g,X,"◃","\\triangleleft");m(p,g,X,"▹","\\triangleright");m(p,g,at,"{","\\{");m(B,g,S,"{","\\{");m(B,g,S,"{","\\textbraceleft");m(p,g,Ve,"}","\\}");m(B,g,S,"}","\\}");m(B,g,S,"}","\\textbraceright");m(p,g,at,"{","\\lbrace");m(p,g,Ve,"}","\\rbrace");m(p,g,at,"[","\\lbrack",!0);m(B,g,S,"[","\\lbrack",!0);m(p,g,Ve,"]","\\rbrack",!0);m(B,g,S,"]","\\rbrack",!0);m(p,g,at,"(","\\lparen",!0);m(p,g,Ve,")","\\rparen",!0);m(B,g,S,"<","\\textless",!0);m(B,g,S,">","\\textgreater",!0);m(p,g,at,"⌊","\\lfloor",!0);m(p,g,Ve,"⌋","\\rfloor",!0);m(p,g,at,"⌈","\\lceil",!0);m(p,g,Ve,"⌉","\\rceil",!0);m(p,g,S,"\\","\\backslash");m(p,g,S,"∣","|");m(p,g,S,"∣","\\vert");m(B,g,S,"|","\\textbar",!0);m(p,g,S,"∥","\\|");m(p,g,S,"∥","\\Vert");m(B,g,S,"∥","\\textbardbl");m(B,g,S,"~","\\textasciitilde");m(B,g,S,"\\","\\textbackslash");m(B,g,S,"^","\\textasciicircum");m(p,g,x,"↑","\\uparrow",!0);m(p,g,x,"⇑","\\Uparrow",!0);m(p,g,x,"↓","\\downarrow",!0);m(p,g,x,"⇓","\\Downarrow",!0);m(p,g,x,"↕","\\updownarrow",!0);m(p,g,x,"⇕","\\Updownarrow",!0);m(p,g,Te,"�","\\coprod");m(p,g,Te,"�","\\bigvee");m(p,g,Te,"⋀","\\bigwedge");m(p,g,Te,"⨄","\\biguplus");m(p,g,Te,"⋂","\\bigcap");m(p,g,Te,"⋃","\\bigcup");m(p,g,Te,"∫","\\int");m(p,g,Te,"∫","\\intop");m(p,g,Te,"∬","\\iint");m(p,g,Te,"∭","\\iiint");m(p,g,Te,"�","\\prod");m(p,g,Te,"∑","\\sum");m(p,g,Te,"⨂","\\bigotimes");m(p,g,Te,"�","\\bigoplus");m(p,g,Te,"⨀","\\bigodot");m(p,g,Te,"∮","\\oint");m(p,g,Te,"∯","\\oiint");m(p,g,Te,"∰","\\oiiint");m(p,g,Te,"⨆","\\bigsqcup");m(p,g,Te,"∫","\\smallint");m(B,g,Wn,"…","\\textellipsis");m(p,g,Wn,"…","\\mathellipsis");m(B,g,Wn,"…","\\ldots",!0);m(p,g,Wn,"…","\\ldots",!0);m(p,g,Wn,"⋯","\\@cdots",!0);m(p,g,Wn,"⋱","\\ddots",!0);m(p,g,S,"⋮","\\varvdots");m(B,g,S,"⋮","\\varvdots");m(p,g,ve,"ˊ","\\acute");m(p,g,ve,"ˋ","\\grave");m(p,g,ve,"¨","\\ddot");m(p,g,ve,"~","\\tilde");m(p,g,ve,"ˉ","\\bar");m(p,g,ve,"˘","\\breve");m(p,g,ve,"ˇ","\\check");m(p,g,ve,"^","\\hat");m(p,g,ve,"⃗","\\vec");m(p,g,ve,"˙","\\dot");m(p,g,ve,"˚","\\mathring");m(p,g,K,"","\\@imath");m(p,g,K,"","\\@jmath");m(p,g,S,"ı","ı");m(p,g,S,"ȷ","ȷ");m(B,g,S,"ı","\\i",!0);m(B,g,S,"ȷ","\\j",!0);m(B,g,S,"ß","\\ss",!0);m(B,g,S,"æ","\\ae",!0);m(B,g,S,"œ","\\oe",!0);m(B,g,S,"ø","\\o",!0);m(B,g,S,"Æ","\\AE",!0);m(B,g,S,"Œ","\\OE",!0);m(B,g,S,"Ø","\\O",!0);m(B,g,ve,"ˊ","\\'");m(B,g,ve,"ˋ","\\`");m(B,g,ve,"ˆ","\\^");m(B,g,ve,"˜","\\~");m(B,g,ve,"ˉ","\\=");m(B,g,ve,"˘","\\u");m(B,g,ve,"˙","\\.");m(B,g,ve,"¸","\\c");m(B,g,ve,"˚","\\r");m(B,g,ve,"ˇ","\\v");m(B,g,ve,"¨",'\\"');m(B,g,ve,"�","\\H");m(B,g,ve,"◯","\\textcircled");var gu={"--":!0,"---":!0,"``":!0,"''":!0};m(B,g,S,"–","--",!0);m(B,g,S,"–","\\textendash");m(B,g,S,"—","---",!0);m(B,g,S,"—","\\textemdash");m(B,g,S,"‘","`",!0);m(B,g,S,"‘","\\textquoteleft");m(B,g,S,"’","'",!0);m(B,g,S,"’","\\textquoteright");m(B,g,S,"“","``",!0);m(B,g,S,"“","\\textquotedblleft");m(B,g,S,"�","''",!0);m(B,g,S,"�","\\textquotedblright");m(p,g,S,"°","\\degree",!0);m(B,g,S,"°","\\degree");m(B,g,S,"°","\\textdegree",!0);m(p,g,S,"£","\\pounds");m(p,g,S,"£","\\mathsterling",!0);m(B,g,S,"£","\\pounds");m(B,g,S,"£","\\textsterling",!0);m(p,v,S,"✠","\\maltese");m(B,v,S,"✠","\\maltese");var Qo='0123456789/@."';for(var li=0;li{var t=e.charCodeAt(0),n=e.charCodeAt(1),r=(t-55296)*1024+(n-56320)+65536;if(119808<=r&&r<120484){var a=Math.floor((r-119808)/26);return ll[a]}else if(120782<=r&&r<=120831){var i=Math.floor((r-120782)/10);return s2[i]}else{if(r===120485||r===120486)return ll[0];if(120486{if(en(e.classes)!==en(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize||e.italic!==0&&e.hasClass("mathnormal"))return!1;if(e.classes.length===1){var n=e.classes[0];if(n==="mbin"||n==="mord")return!1}for(var r of Object.keys(e.style))if(e.style[r]!==t.style[r])return!1;for(var a of Object.keys(t.style))if(e.style[a]!==t.style[a])return!1;return!0},bu=e=>{for(var t=0;tn&&(n=s.height),s.depth>r&&(r=s.depth),s.maxFontSize>a&&(a=s.maxFontSize)}t.height=n,t.depth=r,t.maxFontSize=a},D=function(t,n,r,a){var i=new Un(t,n,r,a);return Ms(i),i},nn=(e,t,n,r)=>new Un(e,t,n,r),Pn=function(t,n,r){var a=D([t],[],n);return a.height=Math.max(r||n.fontMetrics().defaultRuleThickness,n.minRuleThickness),a.style.borderBottomWidth=G(a.height),a.maxFontSize=1,a},c2=function(t,n,r,a){var i=new Sa(t,n,r,a);return Ms(i),i},Gt=function(t){var n=new Hn(t);return Ms(n),n},On=function(t,n){return t instanceof Hn?D([],[t],n):t},m2=function(t){if(t.positionType==="individualShift"){for(var n=t.children,r=[n[0]],a=-n[0].shift-n[0].elem.depth,i=a,s=1;s{var n=D(["mspace"],[],t),r=xe(e,t);return n.style.marginRight=G(r),n},Lr=(e,t,n)=>{var r,a;switch(e){case"amsrm":r="AMS";break;case"textrm":r="Main";break;case"textsf":r="SansSerif";break;case"texttt":r="Typewriter";break;default:r=e}return t==="textbf"&&n==="textit"?a="BoldItalic":t==="textbf"?a="Bold":n==="textit"?a="Italic":a="Regular",r+"-"+a},es={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},vu={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},wu=function(t,n){var[r,a,i]=vu[t],s=new tn(r),o=new Pt([s],{width:G(a),height:G(i),style:"width:"+G(a),viewBox:"0 0 "+1e3*a+" "+1e3*i,preserveAspectRatio:"xMinYMin"}),l=nn(["overlay"],[o],n);return l.height=i,l.style.height=G(i),l.style.width=G(a),l},we={number:3,unit:"mu"},dn={number:4,unit:"mu"},Rt={number:5,unit:"mu"},h2={mord:{mop:we,mbin:dn,mrel:Rt,minner:we},mop:{mord:we,mop:we,mrel:Rt,minner:we},mbin:{mord:dn,mop:dn,mopen:dn,minner:dn},mrel:{mord:Rt,mop:Rt,mopen:Rt,minner:Rt},mopen:{},mclose:{mop:we,mbin:dn,mrel:Rt,minner:we},mpunct:{mord:we,mop:we,mrel:Rt,mopen:we,mclose:we,mpunct:we,minner:we},minner:{mord:we,mop:we,mbin:dn,mrel:Rt,mopen:we,mpunct:we,minner:we}},p2={mord:{mop:we},mop:{mord:we,mop:we},mbin:{},mrel:{},mopen:{},mclose:{mop:we},mpunct:{},minner:{mop:we}},xu={},ma={},ha={};function W(e){for(var{type:t,names:n,props:r,handler:a,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:a},l=0;l{var A=w.classes[0],k=b.classes[0];A==="mbin"&&f2.has(k)?w.classes[0]="mord":k==="mbin"&&d2.has(A)&&(b.classes[0]="mord")},{node:c},f,d),ts(i,(b,w)=>{var A,k,C=rs(w),T=rs(b),I=C&&T?b.hasClass("mtight")?(A=p2[C])==null?void 0:A[T]:(k=h2[C])==null?void 0:k[T]:null;if(I)return yu(I,u)},{node:c},f,d),i},ts=function(t,n,r,a,i){a&&t.push(a);for(var s=0;sf=>{t.splice(c+1,0,f),s++})(s)}a&&t.pop()},ku=function(t){return t instanceof Hn||t instanceof Sa||t instanceof Un&&t.hasClass("enclosing")?t:null},ns=function(t,n){var r=ku(t);if(r){var a=r.children;if(a.length){if(n==="right")return ns(a[a.length-1],"right");if(n==="left")return ns(a[0],"left")}}return t},rs=function(t,n){if(!t)return null;n&&(t=ns(t,n));var r=t.classes[0];return b2[r]||null},hr=function(t,n){var r=["nulldelimiter"].concat(t.baseSizingClasses());return D(n.concat(r))},me=function(t,n,r){if(!t)return D();if(ma[t.type]){var a=ma[t.type](t,n);if(r&&n.size!==r.size){a=D(n.sizingClasses(r),[a],n);var i=n.sizeMultiplier/r.sizeMultiplier;a.height*=i,a.depth*=i}return a}else throw new P("Got group of unknown type: '"+t.type+"'")};function Fr(e,t){var n=D(["base"],e,t),r=D(["strut"]);return r.style.height=G(n.height+n.depth),n.depth&&(r.style.verticalAlign=G(-n.depth)),n.children.unshift(r),n}function as(e,t){var n=null;e.length===1&&e[0].type==="tag"&&(n=e[0].tag,e=e[0].body);var r=ze(e,t,"root"),a;r.length===2&&r[1].hasClass("tag")&&(a=r.pop());for(var i=[],s=[],o=0;o0&&(i.push(Fr(s,t)),s=[]),i.push(r[o]));s.length>0&&i.push(Fr(s,t));var u;n?(u=Fr(ze(n,t,!0),t),u.classes=["tag"],i.push(u)):a&&i.push(a);var h=D(["katex-html"],i);if(h.setAttribute("aria-hidden","true"),u){var c=u.children[0];c.style.height=G(h.height+h.depth),h.depth&&(c.style.verticalAlign=G(-h.depth))}return h}function _u(e){return new Hn(e)}class O{constructor(t,n,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=n||[],this.classes=r||[]}setAttribute(t,n){this.attributes[t]=n}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&t.setAttribute(n,this.attributes[n]);this.classes.length>0&&(t.className=en(this.classes));for(var r=0;r0&&(t+=' class ="'+Oe(en(this.classes))+'"'),t+=">";for(var r=0;r",t}toText(){return this.children.map(t=>t.toText()).join("")}}class Ae{constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return Oe(this.toText())}toText(){return this.text}}class $u{constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character=" ":t>=.1666&&t<=.1667?this.character=" ":t>=.2222&&t<=.2223?this.character=" ":t>=.2777&&t<=.2778?this.character="  ":t>=-.05556&&t<=-.05555?this.character=" �":t>=-.1667&&t<=-.1666?this.character=" �":t>=-.2223&&t<=-.2222?this.character="��":t>=-.2778&&t<=-.2777?this.character=" �":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",G(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var y2=new Set(["\\imath","\\jmath"]),v2=new Set(["mrow","mtable"]),pt=function(t,n,r){return ye[n][t]&&ye[n][t].replace&&t.charCodeAt(0)!==55349&&!(gu.hasOwnProperty(t)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(t=ye[n][t].replace),new Ae(t)},Is=function(t){return t.length===1?t[0]:new O("mrow",t)},w2={mathit:"italic",boldsymbol:e=>e.type==="textord"?"bold":"bold-italic",mathbf:"bold",mathbb:"double-struck",mathsfit:"sans-serif-italic",mathfrak:"fraktur",mathscr:"script",mathcal:"script",mathsf:"sans-serif",mathtt:"monospace"},zs=(e,t)=>{if(e.mode==="text"){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold"}var n=t.font;if(!n||n==="mathnormal")return null;var r=e.mode,a=w2[n];if(a)return typeof a=="function"?a(e):a;var i=e.text;if(y2.has(i))return null;if(ye[r][i]){var s=ye[r][i].replace;s&&(i=s)}var o=es[n].fontName;return Ts(i,o,r)?es[n].variant:null};function hi(e){if(!e)return!1;if(e.type==="mi"&&e.children.length===1){var t=e.children[0];return t instanceof Ae&&t.text==="."}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){var n=e.children[0];return n instanceof Ae&&n.text===","}else return!1}var it=function(t,n,r){if(t.length===1){var a=ge(t[0],n);return r&&a instanceof O&&a.type==="mo"&&(a.setAttribute("lspace","0em"),a.setAttribute("rspace","0em")),[a]}for(var i=[],s,o=0;o=1&&(s.type==="mn"||hi(s))){var u=l.children[0];u instanceof O&&u.type==="mn"&&(u.children=[...s.children,...u.children],i.pop())}else if(s.type==="mi"&&s.children.length===1){var h=s.children[0];if(h instanceof Ae&&h.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var c=l.children[0];c instanceof Ae&&c.text.length>0&&(c.text=c.text.slice(0,1)+"̸"+c.text.slice(1),i.pop())}}}i.push(l),s=l}return i},rn=function(t,n,r){return Is(it(t,n,r))},ge=function(t,n){if(!t)return new O("mrow");if(ha[t.type])return ha[t.type](t,n);throw new P("Got group of unknown type: '"+t.type+"'")};function ul(e,t,n,r,a){var i=it(e,n),s;i.length===1&&i[0]instanceof O&&v2.has(i[0].type)?s=i[0]:s=new O("mrow",i);var o=new O("annotation",[new Ae(t)]);o.setAttribute("encoding","application/x-tex");var l=new O("semantics",[s,o]),u=new O("math",[l]);u.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&u.setAttribute("display","block");var h=a?"katex":"katex-mathml";return D([h],[u])}var x2=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],cl=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],ml=function(t,n){return n.size<2?t:x2[t-1][n.size-1]};class Nt{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||Nt.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=cl[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};return Object.assign(n,t),new Nt(n)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:ml(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:cl[t-1]})}havingBaseStyle(t){t=t||this.style.text();var n=ml(Nt.BASESIZE,t);return this.size===n&&this.textSize===Nt.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Nt.BASESIZE?["sizing","reset-size"+this.size,"size"+Nt.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=a2(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Nt.BASESIZE=6;var Cu=function(t){return new Nt({style:t.displayMode?te.DISPLAY:te.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},Su=function(t,n){if(n.displayMode){var r=["katex-display"];n.leqno&&r.push("leqno"),n.fleqn&&r.push("fleqn"),t=D(r,[t])}return t},k2=function(t,n,r){var a=Cu(r),i;if(r.output==="mathml")return ul(t,n,a,r.displayMode,!0);if(r.output==="html"){var s=as(t,a);i=D(["katex"],[s])}else{var o=ul(t,n,a,r.displayMode,!1),l=as(t,a);i=D(["katex"],[o,l])}return Su(i,r)},_2=function(t,n,r){var a=Cu(r),i=as(t,a),s=D(["katex"],[i]);return Su(s,r)},$2={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"�",underleftarrow:"�",xleftarrow:"�",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"�",overbrace:"�",underbracket:"⎵",overbracket:"⎴",overgroup:"�",undergroup:"�",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"�",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"�",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"�","\\cdlongequal":"="},Ea=function(t){var n=new O("mo",[new Ae($2[t.replace(/^\\/,"")])]);return n.setAttribute("stretchy","true"),n},C2={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overbracket:[["leftbracketover","rightbracketover"],1.6,440],underbracket:[["leftbracketunder","rightbracketunder"],1.6,410],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},S2=new Set(["widehat","widecheck","widetilde","utilde"]),Ma=function(t,n){function r(){var o=4e5,l=t.label.slice(1);if(S2.has(l)&&"base"in t){var u=t.base.type==="ordgroup"?t.base.body.length:1,h,c,f;if(u>5)l==="widehat"||l==="widecheck"?(h=420,o=2364,f=.42,c=l+"4"):(h=312,o=2340,f=.34,c="tilde4");else{var d=[1,1,2,2,3,3][u];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][d],h=[0,239,300,360,420][d],f=[0,.24,.3,.3,.36,.42][d],c=l+d):(o=[0,600,1033,2339,2340][d],h=[0,260,286,306,312][d],f=[0,.26,.286,.3,.306,.34][d],c="tilde"+d)}var b=new tn(c),w=new Pt([b],{width:"100%",height:G(f),viewBox:"0 0 "+o+" "+h,preserveAspectRatio:"none"});return{span:nn([],[w],n),minWidth:0,height:f}}else{var A=[],k=C2[l];if(!k)throw new Error('No SVG data for "'+l+'".');var[C,T,I]=k,N=I/1e3,E=C.length,L,V;if(E===1){if(k.length!==4)throw new Error('Expected 4-tuple for single-path SVG data "'+l+'".');L=["hide-tail"],V=[k[3]]}else if(E===2)L=["halfarrow-left","halfarrow-right"],V=["xMinYMin","xMaxYMin"];else if(E===3)L=["brace-left","brace-center","brace-right"],V=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+E+" children.");for(var q=0;q0&&(a.style.minWidth=G(i)),a},A2=function(t,n,r,a,i){var s,o=t.height+t.depth+r+a;if(/fbox|color|angl/.test(n)){if(s=D(["stretchy",n],[],i),n==="fbox"){var l=i.color&&i.getColor();l&&(s.style.borderColor=l)}}else{var u=[];/^[bx]cancel$/.test(n)&&u.push(new Xi({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(n)&&u.push(new Xi({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new Pt(u,{width:"100%",height:G(o)});s=nn([],[h],i)}return s.height=o,s.style.height=G(o),s},T2={bin:1,close:1,inner:1,open:1,punct:1,rel:1},E2={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1};function M2(e){return e in T2}function re(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Ia(e){var t=za(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function za(e){return e&&(e.type==="atom"||E2.hasOwnProperty(e.type))?e:null}var Au=e=>{if(e instanceof rt)return e;if(n2(e)&&e.children.length===1)return Au(e.children[0])},Rs=(e,t)=>{var n,r,a;e&&e.type==="supsub"?(r=re(e.base,"accent"),n=r.base,e.base=n,a=t2(me(e,t)),e.base=r):(r=re(e,"accent"),n=r.base);var i=me(n,t.havingCrampedStyle()),s=r.isShifty&&qt(n),o=0;if(s){var l,u;o=(l=(u=Au(i))==null?void 0:u.skew)!=null?l:0}var h=r.label==="\\c",c=h?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight),f;if(r.isStretchy)f=Ma(r,t),f=ce({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:f,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+G(2*o)+")",marginLeft:G(2*o)}:void 0}]});else{var d,b;r.label==="\\vec"?(d=wu("vec",t),b=vu.vec[1]):(d=Ta({mode:r.mode,text:r.label},t,"textord"),d=e2(d),d.italic=0,b=d.width,h&&(c+=d.depth)),f=D(["accent-body"],[d]);var w=r.label==="\\textcircled";w&&(f.classes.push("accent-full"),c=i.height);var A=o;w||(A-=b/2),f.style.left=G(A),r.label==="\\textcircled"&&(f.style.top=".2em"),f=ce({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-c},{type:"elem",elem:f}]})}var k=D(["mord","accent"],[f],t);return a?(a.children[0]=k,a.height=Math.max(k.height,a.height),a.classes[0]="mord",a):k},Tu=(e,t)=>{var n=e.isStretchy?Ea(e.label):new O("mo",[pt(e.label,e.mode)]),r=new O("mover",[ge(e.base,t),n]);return r.setAttribute("accent","true"),r},I2=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));W({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var n=pa(t[0]),r=!I2.test(e.funcName),a=!r||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:a,base:n}},htmlBuilder:Rs,mathmlBuilder:Tu});W({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var n=t[0],r=e.parser.mode;return r==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:Rs,mathmlBuilder:Tu});W({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=t[0];return{type:"accentUnder",mode:n.mode,label:r,base:a}},htmlBuilder:(e,t)=>{var n=me(e.base,t),r=Ma(e,t),a=e.label==="\\utilde"?.12:0,i=ce({positionType:"top",positionData:n.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:n}]});return D(["mord","accentunder"],[i],t)},mathmlBuilder:(e,t)=>{var n=Ea(e.label),r=new O("munder",[ge(e.base,t),n]);return r.setAttribute("accentunder","true"),r}});var Pr=e=>{var t=new O("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};W({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:r,funcName:a}=e;return{type:"xArrow",mode:r.mode,label:a,body:t[0],below:n[0]}},htmlBuilder(e,t){var n=t.style,r=t.havingStyle(n.sup()),a=On(me(e.body,r,t),t),i=e.label.slice(0,2)==="\\x"?"x":"cd";a.classes.push(i+"-arrow-pad");var s;e.below&&(r=t.havingStyle(n.sub()),s=On(me(e.below,r,t),t),s.classes.push(i+"-arrow-pad"));var o=Ma(e,t),l=-t.fontMetrics().axisHeight+.5*o.height,u=-t.fontMetrics().axisHeight-.5*o.height-.111;(a.depth>.25||e.label==="\\xleftequilibrium")&&(u-=a.depth);var h;if(s){var c=-t.fontMetrics().axisHeight+s.height+.5*o.height+.111;h=ce({positionType:"individualShift",children:[{type:"elem",elem:a,shift:u},{type:"elem",elem:o,shift:l,wrapperClasses:["svg-align"]},{type:"elem",elem:s,shift:c}]})}else h=ce({positionType:"individualShift",children:[{type:"elem",elem:a,shift:u},{type:"elem",elem:o,shift:l,wrapperClasses:["svg-align"]}]});return D(["mrel","x-arrow"],[h],t)},mathmlBuilder(e,t){var n=Ea(e.label);n.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var r;if(e.body){var a=Pr(ge(e.body,t));if(e.below){var i=Pr(ge(e.below,t));r=new O("munderover",[n,i,a])}else r=new O("mover",[n,a])}else if(e.below){var s=Pr(ge(e.below,t));r=new O("munder",[n,s])}else r=Pr(),r=new O("mover",[n,r]);return r}});function Eu(e,t){var n=ze(e.body,t,!0);return D([e.mclass],n,t)}function Mu(e,t){var n,r=it(e.body,t);return e.mclass==="minner"?n=new O("mpadded",r):e.mclass==="mord"?e.isCharacterBox?(n=r[0],n.type="mi"):n=new O("mi",r):(e.isCharacterBox?(n=r[0],n.type="mo"):n=new O("mo",r),e.mclass==="mbin"?(n.attributes.lspace="0.22em",n.attributes.rspace="0.22em"):e.mclass==="mpunct"?(n.attributes.lspace="0em",n.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(n.attributes.lspace="0em",n.attributes.rspace="0em"):e.mclass==="minner"&&(n.attributes.lspace="0.0556em",n.attributes.width="+0.1111em")),n}W({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:n,funcName:r}=e,a=t[0];return{type:"mclass",mode:n.mode,mclass:"m"+r.slice(5),body:Se(a),isCharacterBox:qt(a)}},htmlBuilder:Eu,mathmlBuilder:Mu});var Ra=e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"};W({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:n}=e;return{type:"mclass",mode:n.mode,mclass:Ra(t[0]),body:Se(t[1]),isCharacterBox:qt(t[1])}}});W({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:n,funcName:r}=e,a=t[1],i=t[0],s;r!=="\\stackrel"?s=Ra(a):s="mrel";var o={type:"op",mode:a.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!=="\\stackrel",body:Se(a)},l={type:"supsub",mode:i.mode,base:o,sup:r==="\\underset"?null:i,sub:r==="\\underset"?i:null};return{type:"mclass",mode:n.mode,mclass:s,body:[l],isCharacterBox:qt(l)}},htmlBuilder:Eu,mathmlBuilder:Mu});W({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"pmb",mode:n.mode,mclass:Ra(t[0]),body:Se(t[0])}},htmlBuilder(e,t){var n=ze(e.body,t,!0),r=D([e.mclass],n,t);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(e,t){var n=it(e.body,t),r=new O("mstyle",n);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});var z2={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},hl=()=>({type:"styling",body:[],mode:"math",style:"display",resetFont:!0}),pl=e=>e.type==="textord"&&e.text==="@",R2=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function N2(e,t,n){var r=z2[e];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return n.callFunction(r,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var a=n.callFunction("\\\\cdleft",[t[0]],[]),i={type:"atom",text:r,mode:"math",family:"rel"},s=n.callFunction("\\Big",[i],[]),o=n.callFunction("\\\\cdright",[t[1]],[]),l={type:"ordgroup",mode:"math",body:[a,s,o]};return n.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return n.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var u={type:"textord",text:"\\Vert",mode:"math"};return n.callFunction("\\Big",[u],[])}default:return{type:"textord",text:" ",mode:"math"}}}function B2(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var n=e.fetch().text;if(n==="&"||n==="\\\\")e.consume();else if(n==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new P("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var r=[],a=[r],i=0;iAV".includes(u))for(var c=0;c<2;c++){for(var f=!0,d=l+1;dAV=|." after @',s[l]);var b=N2(u,h,e),w={type:"styling",body:[b],mode:"math",style:"display",resetFont:!0};r.push(w),o=hl()}i%2===0?r.push(o):r.shift(),r=[],a.push(r)}e.gullet.endGroup(),e.gullet.endGroup();var A=new Array(a[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:a,arraystretch:1,addJot:!0,rowGaps:[null],cols:A,colSeparationType:"CD",hLinesBeforeRow:new Array(a.length+1).fill([])}}W({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e;return{type:"cdlabel",mode:n.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){var n=t.havingStyle(t.style.sup()),r=On(me(e.label,n,t),t);return r.classes.push("cd-label-"+e.side),r.style.bottom=G(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){var n=new O("mrow",[ge(e.label,t)]);return n=new O("mpadded",[n]),n.setAttribute("width","0"),e.side==="left"&&n.setAttribute("lspace","-1width"),n.setAttribute("voffset","0.7em"),n=new O("mstyle",[n]),n.setAttribute("displaystyle","false"),n.setAttribute("scriptlevel","1"),n}});W({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:n}=e;return{type:"cdlabelparent",mode:n.mode,fragment:t[0]}},htmlBuilder(e,t){var n=On(me(e.fragment,t),t);return n.classes.push("cd-vert-arrow"),n},mathmlBuilder(e,t){return new O("mrow",[ge(e.fragment,t)])}});W({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:n}=e,r=re(t[0],"ordgroup"),a=r.body,i="",s=0;s=1114111)throw new P("\\@char with invalid code point "+i);return l<=65535?u=String.fromCharCode(l):(l-=65536,u=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:n.mode,text:u}}});var Iu=(e,t)=>{var n=ze(e.body,t.withColor(e.color),!1);return Gt(n)},zu=(e,t)=>{var n=it(e.body,t.withColor(e.color)),r=new O("mstyle",n);return r.setAttribute("mathcolor",e.color),r};W({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:n}=e,r=re(t[0],"color-token").color,a=t[1];return{type:"color",mode:n.mode,color:r,body:Se(a)}},htmlBuilder:Iu,mathmlBuilder:zu});W({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:n,breakOnTokenText:r}=e,a=re(t[0],"color-token").color;n.gullet.macros.set("\\current@color",a);var i=n.parseExpression(!0,r);return{type:"color",mode:n.mode,color:a,body:i}},htmlBuilder:Iu,mathmlBuilder:zu});W({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,n){var{parser:r}=e,a=r.gullet.future().text==="["?r.parseSizeGroup(!0):null,i=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:i,size:a&&re(a,"size").value}},htmlBuilder(e,t){var n=D(["mspace"],[],t);return e.newLine&&(n.classes.push("newline"),e.size&&(n.style.marginTop=G(xe(e.size,t)))),n},mathmlBuilder(e,t){var n=new O("mspace");return e.newLine&&(n.setAttribute("linebreak","newline"),e.size&&n.setAttribute("height",G(xe(e.size,t)))),n}});var is={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Ru=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new P("Expected a control sequence",e);return t},D2=e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},Nu=(e,t,n,r)=>{var a=e.gullet.macros.get(n.text);a==null&&(n.noexpand=!0,a={tokens:[n],numArgs:0,unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,a,r)};W({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:n}=e;t.consumeSpaces();var r=t.fetch();if(is[r.text])return(n==="\\global"||n==="\\\\globallong")&&(r.text=is[r.text]),re(t.parseFunction(),"internal");throw new P("Invalid token after macro prefix",r)}});W({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=t.gullet.popToken(),a=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(a))throw new P("Expected a control sequence",r);for(var i=0,s,o=[[]];t.gullet.future().text!=="{";)if(r=t.gullet.popToken(),r.text==="#"){if(t.gullet.future().text==="{"){s=t.gullet.future(),o[i].push("{");break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new P('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==i+1)throw new P('Argument number "'+r.text+'" out of order');i++,o.push([])}else{if(r.text==="EOF")throw new P("Expected a macro definition");o[i].push(r.text)}var{tokens:l}=t.gullet.consumeArg();return s&&l.unshift(s),(n==="\\edef"||n==="\\xdef")&&(l=t.gullet.expandTokens(l),l.reverse()),t.gullet.macros.set(a,{tokens:l,numArgs:i,delimiters:o},n===is[n]),{type:"internal",mode:t.mode}}});W({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=Ru(t.gullet.popToken());t.gullet.consumeSpaces();var a=D2(t);return Nu(t,r,a,n==="\\\\globallet"),{type:"internal",mode:t.mode}}});W({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=Ru(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return Nu(t,r,i,n==="\\\\globalfuture"),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var tr=function(t,n,r){var a=ye.math[t]&&ye.math[t].replace,i=Ts(a||t,n,r);if(!i)throw new Error("Unsupported symbol "+t+" and font size "+n+".");return i},Ns=function(t,n,r,a){var i=r.havingBaseStyle(n),s=D(a.concat(i.sizingClasses(r)),[t],r),o=i.sizeMultiplier/r.sizeMultiplier;return s.height*=o,s.depth*=o,s.maxFontSize=i.sizeMultiplier,s},Bu=function(t,n,r){var a=n.havingBaseStyle(r),i=(1-n.sizeMultiplier/a.sizeMultiplier)*n.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=G(i),t.height-=i,t.depth+=i},L2=function(t,n,r,a,i,s){var o=He(t,"Main-Regular",i,a),l=Ns(o,n,a,s);return Bu(l,a,n),l},F2=function(t,n,r,a){return He(t,"Size"+n+"-Regular",r,a)},Du=function(t,n,r,a,i,s){var o=F2(t,n,i,a),l=Ns(D(["delimsizing","size"+n],[o],a),te.TEXT,a,s);return r&&Bu(l,a,te.TEXT),l},pi=function(t,n,r){var a;n==="Size1-Regular"?a="delim-size1":a="delim-size4";var i=D(["delimsizinginner",a],[D([],[He(t,n,r)])]);return{type:"elem",elem:i}},di=function(t,n,r){var a=_t["Size4-Regular"][t.charCodeAt(0)]?_t["Size4-Regular"][t.charCodeAt(0)][4]:_t["Size1-Regular"][t.charCodeAt(0)][4],i=new tn("inner",V4(t,Math.round(1e3*n))),s=new Pt([i],{width:G(a),height:G(n),style:"width:"+G(a),viewBox:"0 0 "+1e3*a+" "+Math.round(1e3*n),preserveAspectRatio:"xMinYMin"}),o=nn([],[s],r);return o.height=n,o.style.height=G(n),o.style.width=G(a),{type:"elem",elem:o}},ss=.008,Or={type:"kern",size:-1*ss},P2=new Set(["|","\\lvert","\\rvert","\\vert"]),O2=new Set(["\\|","\\lVert","\\rVert","\\Vert"]),Lu=function(t,n,r,a,i,s){var o,l,u,h,c="",f=0;o=u=h=t,l=null;var d="Size1-Regular";t==="\\uparrow"?u=h="�":t==="\\Uparrow"?u=h="‖":t==="\\downarrow"?o=u="�":t==="\\Downarrow"?o=u="‖":t==="\\updownarrow"?(o="\\uparrow",u="�",h="\\downarrow"):t==="\\Updownarrow"?(o="\\Uparrow",u="‖",h="\\Downarrow"):P2.has(t)?(u="∣",c="vert",f=333):O2.has(t)?(u="∥",c="doublevert",f=556):t==="["||t==="\\lbrack"?(o="⎡",u="⎢",h="⎣",d="Size4-Regular",c="lbrack",f=667):t==="]"||t==="\\rbrack"?(o="⎤",u="⎥",h="⎦",d="Size4-Regular",c="rbrack",f=667):t==="\\lfloor"||t==="⌊"?(u=o="⎢",h="⎣",d="Size4-Regular",c="lfloor",f=667):t==="\\lceil"||t==="⌈"?(o="⎡",u=h="⎢",d="Size4-Regular",c="lceil",f=667):t==="\\rfloor"||t==="⌋"?(u=o="⎥",h="⎦",d="Size4-Regular",c="rfloor",f=667):t==="\\rceil"||t==="⌉"?(o="⎤",u=h="⎥",d="Size4-Regular",c="rceil",f=667):t==="("||t==="\\lparen"?(o="⎛",u="⎜",h="�",d="Size4-Regular",c="lparen",f=875):t===")"||t==="\\rparen"?(o="⎞",u="⎟",h="⎠",d="Size4-Regular",c="rparen",f=875):t==="\\{"||t==="\\lbrace"?(o="⎧",l="⎨",h="⎩",u="⎪",d="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(o="⎫",l="⎬",h="⎭",u="⎪",d="Size4-Regular"):t==="\\lgroup"||t==="⟮"?(o="⎧",h="⎩",u="⎪",d="Size4-Regular"):t==="\\rgroup"||t==="⟯"?(o="⎫",h="⎭",u="⎪",d="Size4-Regular"):t==="\\lmoustache"||t==="⎰"?(o="⎧",h="⎭",u="⎪",d="Size4-Regular"):(t==="\\rmoustache"||t==="⎱")&&(o="⎫",h="⎩",u="⎪",d="Size4-Regular");var b=tr(o,d,i),w=b.height+b.depth,A=tr(u,d,i),k=A.height+A.depth,C=tr(h,d,i),T=C.height+C.depth,I=0,N=1;if(l!==null){var E=tr(l,d,i);I=E.height+E.depth,N=2}var L=w+T+I,V=Math.max(0,Math.ceil((n-L)/(N*k))),q=L+V*N*k,M=a.fontMetrics().axisHeight;r&&(M*=a.sizeMultiplier);var U=q/2-M,j=[];if(c.length>0){var le=q-w-T,se=Math.round(q*1e3),Z=X4(c,Math.round(le*1e3)),ue=new tn(c,Z),he=G(f/1e3),Ne=G(se/1e3),Ke=new Pt([ue],{width:he,height:Ne,viewBox:"0 0 "+f+" "+se}),_=nn([],[Ke],a);_.height=se/1e3,_.style.width=he,_.style.height=Ne,j.push({type:"elem",elem:_})}else{if(j.push(pi(h,d,i)),j.push(Or),l===null){var $e=q-w-T+2*ss;j.push(di(u,$e,a))}else{var qe=(q-w-T-I)/2+2*ss;j.push(di(u,qe,a)),j.push(Or),j.push(pi(l,d,i)),j.push(Or),j.push(di(u,qe,a))}j.push(Or),j.push(pi(o,d,i))}var $=a.havingBaseStyle(te.TEXT),De=ce({positionType:"bottom",positionData:U,children:j});return Ns(D(["delimsizing","mult"],[De],$),te.TEXT,a,s)},fi=80,gi=.08,bi=function(t,n,r,a,i){var s=W4(t,a,r),o=new tn(t,s),l=new Pt([o],{width:"400em",height:G(n),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return nn(["hide-tail"],[l],i)},q2=function(t,n){var r=n.havingBaseSizing(),a=ju("\\surd",t*r.sizeMultiplier,qu,r),i=r.sizeMultiplier,s=Math.max(0,n.minRuleThickness-n.fontMetrics().sqrtRuleThickness),o,l,u,h,c;return a.type==="small"?(h=1e3+1e3*s+fi,t<1?i=1:t<1.4&&(i=.7),l=(1+s+gi)/i,u=(1+s)/i,o=bi("sqrtMain",l,h,s,n),o.style.minWidth="0.853em",c=.833/i):a.type==="large"?(h=(1e3+fi)*ir[a.size],u=(ir[a.size]+s)/i,l=(ir[a.size]+s+gi)/i,o=bi("sqrtSize"+a.size,l,h,s,n),o.style.minWidth="1.02em",c=1/i):(l=t+s+gi,u=t+s,h=Math.floor(1e3*t+s)+fi,o=bi("sqrtTall",l,h,s,n),o.style.minWidth="0.742em",c=1.056),o.height=u,o.style.height=G(l),{span:o,advanceWidth:c,ruleWidth:(n.fontMetrics().sqrtRuleThickness+s)*i}},Fu=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"]),j2=new Set(["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"]),Pu=new Set(["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"]),ir=[0,1.2,1.8,2.4,3],Ou=function(t,n,r,a,i){if(t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle"),Fu.has(t)||Pu.has(t))return Du(t,n,!1,r,a,i);if(j2.has(t))return Lu(t,ir[n],!1,r,a,i);throw new P("Illegal delimiter: '"+t+"'")},G2=[{type:"small",style:te.SCRIPTSCRIPT},{type:"small",style:te.SCRIPT},{type:"small",style:te.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],H2=[{type:"small",style:te.SCRIPTSCRIPT},{type:"small",style:te.SCRIPT},{type:"small",style:te.TEXT},{type:"stack"}],qu=[{type:"small",style:te.SCRIPTSCRIPT},{type:"small",style:te.SCRIPT},{type:"small",style:te.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],U2=function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";var n=t.type;throw new Error("Add support for delim type '"+n+"' here.")},ju=function(t,n,r,a){for(var i=Math.min(2,3-a.style.size),s=i;sn)return o}return r[r.length-1]},os=function(t,n,r,a,i,s){t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle");var o;Pu.has(t)?o=G2:Fu.has(t)?o=qu:o=H2;var l=ju(t,n,o,a);return l.type==="small"?L2(t,l.style,r,a,i,s):l.type==="large"?Du(t,l.size,r,a,i,s):Lu(t,n,r,a,i,s)},yi=function(t,n,r,a,i,s){var o=a.fontMetrics().axisHeight*a.sizeMultiplier,l=901,u=5/a.fontMetrics().ptPerEm,h=Math.max(n-o,r+o),c=Math.max(h/500*l,2*h-u);return os(t,c,!0,a,i,s)},dl={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},W2=new Set(["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."]);function fl(e){return"isMiddle"in e}function Na(e,t){var n=za(e);if(n&&W2.has(n.text))return n;throw n?new P("Invalid delimiter '"+n.text+"' after '"+t.funcName+"'",e):new P("Invalid delimiter type '"+e.type+"'",e)}W({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var n=Na(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:dl[e.funcName].size,mclass:dl[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim==="."?D([e.mclass]):Ou(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!=="."&&t.push(pt(e.delim,e.mode));var n=new O("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n.setAttribute("stretchy","true");var r=G(ir[e.size]);return n.setAttribute("minsize",r),n.setAttribute("maxsize",r),n}});function gl(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}W({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=e.parser.gullet.macros.get("\\current@color");if(n&&typeof n!="string")throw new P("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Na(t[0],e).text,color:n}}});W({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=Na(t[0],e),r=e.parser;++r.leftrightDepth;var a=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var i=re(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:a,left:n.text,right:i.delim,rightColor:i.color}},htmlBuilder:(e,t)=>{gl(e);for(var n=ze(e.body,t,!0,["mopen","mclose"]),r=0,a=0,i=!1,s=0;s{gl(e);var n=it(e.body,t);if(e.left!=="."){var r=new O("mo",[pt(e.left,e.mode)]);r.setAttribute("fence","true"),n.unshift(r)}if(e.right!=="."){var a=new O("mo",[pt(e.right,e.mode)]);a.setAttribute("fence","true"),e.rightColor&&a.setAttribute("mathcolor",e.rightColor),n.push(a)}return Is(n)}});W({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=Na(t[0],e);if(!e.parser.leftrightDepth)throw new P("\\middle without preceding \\left",n);return{type:"middle",mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;return e.delim==="."?n=hr(t,[]):(n=Ou(e.delim,1,t,e.mode,[]),n.isMiddle={delim:e.delim,options:t}),n},mathmlBuilder:(e,t)=>{var n=e.delim==="\\vert"||e.delim==="|"?pt("|","text"):pt(e.delim,e.mode),r=new O("mo",[n]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});var Ba=(e,t)=>{var n=On(me(e.body,t),t),r=e.label.slice(1),a=t.sizeMultiplier,i,s,o=qt(e.body);if(r==="sout")i=D(["stretchy","sout"]),i.height=t.fontMetrics().defaultRuleThickness/a,s=-.5*t.fontMetrics().xHeight;else if(r==="phase"){var l=xe({number:.6,unit:"pt"},t),u=xe({number:.35,unit:"ex"},t),h=t.havingBaseSizing();a=a/h.sizeMultiplier;var c=n.height+n.depth+l+u;n.style.paddingLeft=G(c/2+l);var f=Math.floor(1e3*c*a),d=H4(f),b=new Pt([new tn("phase",d)],{width:"400em",height:G(f/1e3),viewBox:"0 0 400000 "+f,preserveAspectRatio:"xMinYMin slice"});i=nn(["hide-tail"],[b],t),i.style.height=G(c),s=n.depth+l+u}else{/cancel/.test(r)?o||n.classes.push("cancel-pad"):r==="angl"?n.classes.push("anglpad"):n.classes.push("boxpad");var w,A,k=0;/box/.test(r)?(k=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),w=t.fontMetrics().fboxsep+(r==="colorbox"?0:k),A=w):r==="angl"?(k=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),w=4*k,A=Math.max(0,.25-n.depth)):(w=o?.2:0,A=w),i=A2(n,r,w,A,t),/fbox|boxed|fcolorbox/.test(r)?(i.style.borderStyle="solid",i.style.borderWidth=G(k)):r==="angl"&&k!==.049&&(i.style.borderTopWidth=G(k),i.style.borderRightWidth=G(k)),s=n.depth+A,e.backgroundColor&&(i.style.backgroundColor=e.backgroundColor,e.borderColor&&(i.style.borderColor=e.borderColor))}var C;if(e.backgroundColor)C=ce({positionType:"individualShift",children:[{type:"elem",elem:i,shift:s},{type:"elem",elem:n,shift:0}]});else{var T=/cancel|phase/.test(r)?["svg-align"]:[];C=ce({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:i,shift:s,wrapperClasses:T}]})}return/cancel/.test(r)&&(C.height=n.height,C.depth=n.depth),/cancel/.test(r)&&!o?D(["mord","cancel-lap"],[C],t):D(["mord"],[C],t)},Da=(e,t)=>{var n,r=new O(e.label.includes("colorbox")?"mpadded":"menclose",[ge(e.body,t)]);switch(e.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),e.label==="\\fcolorbox"){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);r.setAttribute("style","border: "+G(a)+" solid "+e.borderColor)}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r};W({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","hbox"]},handler(e,t,n){var{parser:r,funcName:a}=e,i=re(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:r.mode,label:a,backgroundColor:i,body:s}},htmlBuilder:Ba,mathmlBuilder:Da});W({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","hbox"]},handler(e,t,n){var{parser:r,funcName:a}=e,i=re(t[0],"color-token").color,s=re(t[1],"color-token").color,o=t[2];return{type:"enclose",mode:r.mode,label:a,backgroundColor:s,borderColor:i,body:o}},htmlBuilder:Ba,mathmlBuilder:Da});W({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\fbox",body:t[0]}}});W({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\phase"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e,a=t[0];return{type:"enclose",mode:n.mode,label:r,body:a}},htmlBuilder:Ba,mathmlBuilder:Da});W({type:"enclose",names:["\\sout"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n,funcName:r}=e;n.mode==="math"&&n.settings.reportNonstrict("mathVsSout","LaTeX's \\sout works only in text mode");var a=t[0];return{type:"enclose",mode:n.mode,label:r,body:a}},htmlBuilder:Ba,mathmlBuilder:Da});W({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\angl",body:t[0]}}});var Gu={};function Ct(e){for(var{type:t,names:n,props:r,handler:a,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l{var t=e.parser.settings;if(!t.displayMode)throw new P("{"+e.envName+"} can be used only in display mode.")},V2=new Set(["gather","gather*"]);function Bs(e){if(!e.includes("ed"))return!e.includes("*")}function sn(e,t,n){var{hskipBeforeAndAfter:r,addJot:a,cols:i,arraystretch:s,colSeparationType:o,autoTag:l,singleRow:u,emptySingleRow:h,maxNumCols:c,leqno:f}=t;if(e.gullet.beginGroup(),u||e.gullet.macros.set("\\cr","\\\\\\relax"),!s){var d=e.gullet.expandMacroAsText("\\arraystretch");if(d==null)s=1;else if(s=parseFloat(d),!s||s<0)throw new P("Invalid \\arraystretch: "+d)}e.gullet.beginGroup();var b=[],w=[b],A=[],k=[],C=l!=null?[]:void 0;function T(){l&&e.gullet.macros.set("\\@eqnsw","1",!0)}function I(){C&&(e.gullet.macros.get("\\df@tag")?(C.push(e.subparse([new nt("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):C.push(!!l&&e.gullet.macros.get("\\@eqnsw")==="1"))}for(T(),k.push(bl(e));;){var N=e.parseExpression(!1,u?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup();var E={type:"ordgroup",mode:e.mode,body:N};n&&(E={type:"styling",mode:e.mode,style:n,resetFont:!0,body:[E]}),b.push(E);var L=e.fetch().text;if(L==="&"){if(c&&b.length===c){if(u||o)throw new P("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if(L==="\\end"){I(),b.length===1&&E.type==="styling"&&E.body.length===1&&E.body[0].type==="ordgroup"&&E.body[0].body.length===0&&(w.length>1||!h)&&w.pop(),k.length0&&(T+=.25),u.push({pos:T,isDashed:Q[ae]})}for(I(s[0]),r=0;r0&&(U+=C,LQ))for(r=0;r=o)){var Qe=void 0;if(a>0||t.hskipBeforeAndAfter){var Tt,on;Qe=(Tt=(on=$)==null?void 0:on.pregap)!=null?Tt:f,Qe!==0&&(Z=D(["arraycolsep"],[]),Z.style.width=G(Qe),se.push(Z))}var wr=[];for(r=0;r0){for(var Pa=Pn("hline",n,h),Oa=Pn("hdashline",n,h),Yn=[{type:"elem",elem:ln,shift:0}];u.length>0;){var Cr=u.pop(),Sr=Cr.pos-j;Cr.isDashed?Yn.push({type:"elem",elem:Oa,shift:Sr}):Yn.push({type:"elem",elem:Pa,shift:Sr})}ln=ce({positionType:"individualShift",children:Yn})}if(he.length===0)return D(["mord"],[ln],n);var R=ce({positionType:"individualShift",children:he}),H=D(["tag"],[R],n);return Gt([ln,H])},X2={c:"center ",l:"left ",r:"right "},At=function(t,n){for(var r=[],a=new O("mtd",[],["mtr-glue"]),i=new O("mtd",[],["mml-eqn-num"]),s=0;s0){var b=t.cols,w="",A=!1,k=0,C=b.length;b[0].type==="separator"&&(f+="top ",k=1),b[b.length-1].type==="separator"&&(f+="bottom ",C-=1);for(var T=k;T0?"left ":"",f+=q[q.length-1].length>0?"right ":"";for(var M=1;M0&&d&&(A=1),r[b]={type:"align",align:w,pregap:A,postgap:0}}return s.colSeparationType=d?"align":"alignat",s};Ct({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var n=za(t[0]),r=n?[t[0]]:re(t[0],"ordgroup").body,a=r.map(function(s){var o=Ia(s),l=o.text;if("lcr".includes(l))return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new P("Unknown column alignment: "+l,s)}),i={cols:a,hskipBeforeAndAfter:!0,maxNumCols:a.length};return sn(e.parser,i,Ds(e.envName))},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],n="c",r={hskipBeforeAndAfter:!1,cols:[{type:"align",align:n}]};if(e.envName.charAt(e.envName.length-1)==="*"){var a=e.parser;if(a.consumeSpaces(),a.fetch().text==="["){if(a.consume(),a.consumeSpaces(),n=a.fetch().text,!"lcr".includes(n))throw new P("Expected l or c or r",a.nextToken);a.consume(),a.consumeSpaces(),a.expect("]"),a.consume(),r.cols=[{type:"align",align:n}]}}var i=sn(e.parser,r,Ds(e.envName)),s=Math.max(0,...i.body.map(o=>o.length));return i.cols=new Array(s).fill({type:"align",align:n}),t?{type:"leftright",mode:e.mode,body:[i],left:t[0],right:t[1],rightColor:void 0}:i},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},n=sn(e.parser,t,"script");return n.colSeparationType="small",n},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var n=za(t[0]),r=n?[t[0]]:re(t[0],"ordgroup").body,a=r.map(function(o){var l=Ia(o),u=l.text;if("lc".includes(u))return{type:"align",align:u};throw new P("Unknown column alignment: "+u,o)});if(a.length>1)throw new P("{subarray} can contain only one column");var i={cols:a,hskipBeforeAndAfter:!1,arraystretch:.5},s=sn(e.parser,i,"script");if(s.body.length>0&&s.body[0].length>1)throw new P("{subarray} can contain only one column");return s},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},n=sn(e.parser,t,Ds(e.envName));return{type:"leftright",mode:e.mode,body:[n],left:e.envName.includes("r")?".":"\\{",right:e.envName.includes("r")?"\\}":".",rightColor:void 0}},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Uu,htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){V2.has(e.envName)&&La(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Bs(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return sn(e.parser,t,"display")},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Uu,htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){La(e);var t={autoTag:Bs(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return sn(e.parser,t,"display")},htmlBuilder:St,mathmlBuilder:At});Ct({type:"array",names:["CD"],props:{numArgs:0},handler(e){return La(e),B2(e.parser)},htmlBuilder:St,mathmlBuilder:At});y("\\nonumber","\\gdef\\@eqnsw{0}");y("\\notag","\\nonumber");W({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new P(e.funcName+" valid only within array environment")}});var yl=Gu;W({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:n,funcName:r}=e,a=t[0];if(a.type!=="ordgroup")throw new P("Invalid environment name",a);for(var i="",s=0;s{var n=e.font,r=t.withFont(n);return me(e.body,r)},Vu=(e,t)=>{var n=e.font,r=t.withFont(n);return ge(e.body,r)},vl={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak"};W({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=pa(t[0]),i=r;return i in vl&&(i=vl[i]),{type:"font",mode:n.mode,font:i.slice(1),body:a}},htmlBuilder:Wu,mathmlBuilder:Vu});W({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"mclass",mode:n.mode,mclass:Ra(r),body:[{type:"font",mode:n.mode,font:"boldsymbol",body:r}],isCharacterBox:qt(r)}}});W({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:r,breakOnTokenText:a}=e,{mode:i}=n,s=n.parseExpression(!0,a);return{type:"font",mode:i,font:"math"+r.slice(1),body:{type:"ordgroup",mode:n.mode,body:s}}},htmlBuilder:Wu,mathmlBuilder:Vu});var Y2=(e,t)=>{var n=t.style,r=n.fracNum(),a=n.fracDen(),i;i=t.havingStyle(r);var s=me(e.numer,i,t);if(e.continued){var o=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;s.height=s.height0?b=3*f:b=7*f,w=t.fontMetrics().denom1):(c>0?(d=t.fontMetrics().num2,b=f):(d=t.fontMetrics().num3,b=3*f),w=t.fontMetrics().denom2);var A;if(h){var C=t.fontMetrics().axisHeight;d-s.depth-(C+.5*c){var n=new O("mfrac",[ge(e.numer,t),ge(e.denom,t)]);if(!e.hasBarLine)n.setAttribute("linethickness","0px");else if(e.barSize){var r=xe(e.barSize,t);n.setAttribute("linethickness",G(r))}if(e.leftDelim!=null||e.rightDelim!=null){var a=[];if(e.leftDelim!=null){var i=new O("mo",[new Ae(e.leftDelim.replace("\\",""))]);i.setAttribute("fence","true"),a.push(i)}if(a.push(n),e.rightDelim!=null){var s=new O("mo",[new Ae(e.rightDelim.replace("\\",""))]);s.setAttribute("fence","true"),a.push(s)}return Is(a)}return n},Xu=(e,t)=>{if(!t)return e;var n={type:"styling",mode:e.mode,style:t,body:[e]};return n};W({type:"genfrac",names:["\\cfrac","\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=t[0],i=t[1],s,o=null,l=null;switch(r){case"\\cfrac":case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,o="(",l=")";break;case"\\\\bracefrac":s=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":s=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}var u=r==="\\cfrac",h=null;return u||r.startsWith("\\d")?h="display":r.startsWith("\\t")&&(h="text"),Xu({type:"genfrac",mode:n.mode,numer:a,denom:i,continued:u,hasBarLine:s,leftDelim:o,rightDelim:l,barSize:null},h)},htmlBuilder:Y2,mathmlBuilder:Z2});W({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:n,token:r}=e,a;switch(n){case"\\over":a="\\frac";break;case"\\choose":a="\\binom";break;case"\\atop":a="\\\\atopfrac";break;case"\\brace":a="\\\\bracefrac";break;case"\\brack":a="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:a,token:r}}});var wl=["display","text","script","scriptscript"],xl=function(t){var n=null;return t.length>0&&(n=t,n=n==="."?null:n),n};W({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:n}=e,r=t[4],a=t[5],i=pa(t[0]),s=i.type==="atom"&&i.family==="open"?xl(i.text):null,o=pa(t[1]),l=o.type==="atom"&&o.family==="close"?xl(o.text):null,u=re(t[2],"size"),h,c=null;u.isBlank?h=!0:(c=u.value,h=c.number>0);var f=null,d=t[3];if(d.type==="ordgroup"){if(d.body.length>0){var b=re(d.body[0],"textord");f=wl[Number(b.text)]}}else d=re(d,"textord"),f=wl[Number(d.text)];return Xu({type:"genfrac",mode:n.mode,numer:r,denom:a,continued:!1,hasBarLine:h,barSize:c,leftDelim:s,rightDelim:l},f)}});W({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:n,funcName:r,token:a}=e;return{type:"infix",mode:n.mode,replaceWith:"\\\\abovefrac",size:re(t[0],"size").value,token:a}}});W({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=t[0],i=re(t[1],"infix").size;if(!i)throw new Error("\\\\abovefrac expected size, but got "+String(i));var s=t[2],o=i.number>0;return{type:"genfrac",mode:n.mode,numer:a,denom:s,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null}}});var Yu=(e,t)=>{var n=t.style,r,a;e.type==="supsub"?(r=e.sup?me(e.sup,t.havingStyle(n.sup()),t):me(e.sub,t.havingStyle(n.sub()),t),a=re(e.base,"horizBrace")):a=re(e,"horizBrace");var i=me(a.base,t.havingBaseStyle(te.DISPLAY)),s=Ma(a,t),o;if(a.isOver?o=ce({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:s,wrapperClasses:["svg-align"]}]}):o=ce({positionType:"bottom",positionData:i.depth+.1+s.height,children:[{type:"elem",elem:s,wrapperClasses:["svg-align"]},{type:"kern",size:.1},{type:"elem",elem:i}]}),r){var l=D(["minner",a.isOver?"mover":"munder"],[o],t);a.isOver?o=ce({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]}):o=ce({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]})}return D(["minner",a.isOver?"mover":"munder"],[o],t)},K2=(e,t)=>{var n=Ea(e.label);return new O(e.isOver?"mover":"munder",[ge(e.base,t),n])};W({type:"horizBrace",names:["\\overbrace","\\underbrace","\\overbracket","\\underbracket"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e;return{type:"horizBrace",mode:n.mode,label:r,isOver:r.includes("\\over"),base:t[0]}},htmlBuilder:Yu,mathmlBuilder:K2});W({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[1],a=re(t[0],"url").url;return n.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:n.mode,href:a,body:Se(r)}:n.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var n=ze(e.body,t,!1);return c2(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=rn(e.body,t);return n instanceof O||(n=new O("mrow",[n])),n.setAttribute("href",e.href),n}});W({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=re(t[0],"url").url;if(!n.settings.isTrusted({command:"\\url",url:r}))return n.formatUnsupportedCmd("\\url");for(var a=[],i=0;i{var{parser:n,funcName:r,token:a}=e,i=re(t[0],"raw").string,s=t[1];n.settings.strict&&n.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(r){case"\\htmlClass":l.class=i,o={command:"\\htmlClass",class:i};break;case"\\htmlId":l.id=i,o={command:"\\htmlId",id:i};break;case"\\htmlStyle":l.style=i,o={command:"\\htmlStyle",style:i};break;case"\\htmlData":{for(var u=i.split(","),h=0;h{var n=ze(e.body,t,!1),r=["enclosing"];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));var a=D(r,n,t);for(var i in e.attributes)i!=="class"&&e.attributes.hasOwnProperty(i)&&a.setAttribute(i,e.attributes[i]);return a},mathmlBuilder:(e,t)=>rn(e.body,t)});W({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInArgument:!0,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"htmlmathml",mode:n.mode,html:Se(t[0]),mathml:Se(t[1])}},htmlBuilder:(e,t)=>{var n=ze(e.html,t,!1);return Gt(n)},mathmlBuilder:(e,t)=>rn(e.mathml,t)});var vi=function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!n)throw new P("Invalid size: '"+t+"' in \\includegraphics");var r={number:+(n[1]+n[2]),unit:n[3]};if(!hu(r))throw new P("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};W({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,n)=>{var{parser:r}=e,a={number:0,unit:"em"},i={number:.9,unit:"em"},s={number:0,unit:"em"},o="";if(n[0])for(var l=re(n[0],"raw").string,u=l.split(","),h=0;h{var n=xe(e.height,t),r=0;e.totalheight.number>0&&(r=xe(e.totalheight,t)-n);var a=0;e.width.number>0&&(a=xe(e.width,t));var i={height:G(n+r)};a>0&&(i.width=G(a)),r>0&&(i.verticalAlign=G(-r));var s=new Q4(e.src,e.alt,i);return s.height=n,s.depth=r,s},mathmlBuilder:(e,t)=>{var n=new O("mglyph",[]);n.setAttribute("alt",e.alt);var r=xe(e.height,t),a=0;if(e.totalheight.number>0&&(a=xe(e.totalheight,t)-r,n.setAttribute("valign",G(-a))),n.setAttribute("height",G(r+a)),e.width.number>0){var i=xe(e.width,t);n.setAttribute("width",G(i))}return n.setAttribute("src",e.src),n}});W({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:r}=e,a=re(t[0],"size");if(n.settings.strict){var i=r[1]==="m",s=a.value.unit==="mu";i?(s||n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, "+("not "+a.value.unit+" units")),n.mode!=="math"&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):s&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:n.mode,dimension:a.value}},htmlBuilder(e,t){return yu(e.dimension,t)},mathmlBuilder(e,t){var n=xe(e.dimension,t);return new $u(n)}});W({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=t[0];return{type:"lap",mode:n.mode,alignment:r.slice(5),body:a}},htmlBuilder:(e,t)=>{var n;e.alignment==="clap"?(n=D([],[me(e.body,t)]),n=D(["inner"],[n],t)):n=D(["inner"],[me(e.body,t)]);var r=D(["fix"],[]),a=D([e.alignment],[n,r],t),i=D(["strut"]);return i.style.height=G(a.height+a.depth),a.depth&&(i.style.verticalAlign=G(-a.depth)),a.children.unshift(i),a=D(["thinbox"],[a],t),D(["mord","vbox"],[a],t)},mathmlBuilder:(e,t)=>{var n=new O("mpadded",[ge(e.body,t)]);if(e.alignment!=="rlap"){var r=e.alignment==="llap"?"-1":"-0.5";n.setAttribute("lspace",r+"width")}return n.setAttribute("width","0px"),n}});W({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:n,parser:r}=e,a=r.mode;r.switchMode("math");var i=n==="\\("?"\\)":"$",s=r.parseExpression(!1,i);return r.expect(i),r.switchMode(a),{type:"styling",mode:r.mode,style:"text",resetFont:!0,body:s}}});W({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new P("Mismatched "+e.funcName)}});var kl=(e,t)=>{switch(t.style.size){case te.DISPLAY.size:return e.display;case te.TEXT.size:return e.text;case te.SCRIPT.size:return e.script;case te.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};W({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"mathchoice",mode:n.mode,display:Se(t[0]),text:Se(t[1]),script:Se(t[2]),scriptscript:Se(t[3])}},htmlBuilder:(e,t)=>{var n=kl(e,t),r=ze(n,t,!1);return Gt(r)},mathmlBuilder:(e,t)=>{var n=kl(e,t);return rn(n,t)}});var Zu=(e,t,n,r,a,i,s)=>{e=D([],[e]);var o=n&&qt(n),l,u;if(t){var h=me(t,r.havingStyle(a.sup()),r);u={elem:h,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-h.depth)}}if(n){var c=me(n,r.havingStyle(a.sub()),r);l={elem:c,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-c.height)}}var f;if(u&&l){var d=r.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+e.depth+s;f=ce({positionType:"bottom",positionData:d,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:G(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:G(i)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]})}else if(l){var b=e.height-s;f=ce({positionType:"top",positionData:b,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:G(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e}]})}else if(u){var w=e.depth+s;f=ce({positionType:"bottom",positionData:w,children:[{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:G(i)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]})}else return e;var A=[f];if(l&&i!==0&&!o){var k=D(["mspace"],[],r);k.style.marginRight=G(i),A.unshift(k)}return D(["mop","op-limits"],A,r)},Ku=new Set(["\\smallint"]),Vn=(e,t)=>{var n,r,a=!1,i;e.type==="supsub"?(n=e.sup,r=e.sub,i=re(e.base,"op"),a=!0):i=re(e,"op");var s=t.style,o=!1;s.size===te.DISPLAY.size&&i.symbol&&!Ku.has(i.name)&&(o=!0);var l,u;if(i.symbol){var h=o?"Size2-Regular":"Size1-Regular",c="";if((i.name==="\\oiint"||i.name==="\\oiiint")&&(c=i.name.slice(1),i.name=c==="oiint"?"\\iint":"\\iiint"),l=He(i.name,h,"math",t,["mop","op-symbol",o?"large-op":"small-op"]),u=l.italic,c.length>0){var f=wu(c+"Size"+(o?"2":"1"),t);l=ce({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:f,shift:o?.08:0}]}),i.name="\\"+c,l.classes.unshift("mop"),l.italic=u}}else if(i.body){var d=ze(i.body,t,!0);d.length===1&&d[0]instanceof rt?(l=d[0],l.classes[0]="mop"):l=D(["mop"],d,t)}else{for(var b=[],w=1;w{var n;if(e.symbol)n=new O("mo",[pt(e.name,e.mode)]),Ku.has(e.name)&&n.setAttribute("largeop","false");else if(e.body)n=new O("mo",it(e.body,t));else{n=new O("mi",[new Ae(e.name.slice(1))]);var r=new O("mo",[pt("�","text")]);e.parentIsSupSub?n=new O("mrow",[n,r]):n=_u([n,r])}return n},Q2={"�":"\\prod","�":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","�":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","�":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};W({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","�","�","∑","⋀","�","⋂","⋃","⨀","�","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=r;return a.length===1&&(a=Q2[a]),{type:"op",mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:Vn,mathmlBuilder:vr});W({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"op",mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Se(r)}},htmlBuilder:Vn,mathmlBuilder:vr});var J2={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};W({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:Vn,mathmlBuilder:vr});W({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:Vn,mathmlBuilder:vr});W({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0,allowedInArgument:!0},handler(e){var{parser:t,funcName:n}=e,r=n;return r.length===1&&(r=J2[r]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:Vn,mathmlBuilder:vr});var Qu=(e,t)=>{var n,r,a=!1,i;e.type==="supsub"?(n=e.sup,r=e.sub,i=re(e.base,"operatorname"),a=!0):i=re(e,"operatorname");var s;if(i.body.length>0){for(var o=i.body.map(c=>{var f="text"in c?c.text:void 0;return typeof f=="string"?{type:"textord",mode:c.mode,text:f}:c}),l=ze(o,t.withFont("mathrm"),!0),u=0;u{for(var n=it(e.body,t.withFont("mathrm")),r=!0,a=0;ah.toText()).join("");n=[new Ae(o)]}var l=new O("mi",n);l.setAttribute("mathvariant","normal");var u=new O("mo",[pt("�","text")]);return e.parentIsSupSub?new O("mrow",[l,u]):_u([l,u])};W({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:r}=e,a=t[0];return{type:"operatorname",mode:n.mode,body:Se(a),alwaysHandleSupSub:r==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Qu,mathmlBuilder:e5});y("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Sn({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Gt(ze(e.body,t,!1)):D(["mord"],ze(e.body,t,!0),t)},mathmlBuilder(e,t){return rn(e.body,t,!0)}});W({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:n}=e,r=t[0];return{type:"overline",mode:n.mode,body:r}},htmlBuilder(e,t){var n=me(e.body,t.havingCrampedStyle()),r=Pn("overline-line",t),a=t.fontMetrics().defaultRuleThickness,i=ce({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r},{type:"kern",size:a}]});return D(["mord","overline"],[i],t)},mathmlBuilder(e,t){var n=new O("mo",[new Ae("‾")]);n.setAttribute("stretchy","true");var r=new O("mover",[ge(e.body,t),n]);return r.setAttribute("accent","true"),r}});W({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"phantom",mode:n.mode,body:Se(r)}},htmlBuilder:(e,t)=>{var n=ze(e.body,t.withPhantom(),!1);return Gt(n)},mathmlBuilder:(e,t)=>{var n=it(e.body,t);return new O("mphantom",n)}});y("\\hphantom","\\smash{\\phantom{#1}}");W({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"vphantom",mode:n.mode,body:r}},htmlBuilder:(e,t)=>{var n=D(["inner"],[me(e.body,t.withPhantom())]),r=D(["fix"],[]);return D(["mord","rlap"],[n,r],t)},mathmlBuilder:(e,t)=>{var n=it(Se(e.body),t),r=new O("mphantom",n),a=new O("mpadded",[r]);return a.setAttribute("width","0px"),a}});W({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e,r=re(t[0],"size").value,a=t[1];return{type:"raisebox",mode:n.mode,dy:r,body:a}},htmlBuilder(e,t){var n=me(e.body,t),r=xe(e.dy,t);return ce({positionType:"shift",positionData:-r,children:[{type:"elem",elem:n}]})},mathmlBuilder(e,t){var n=new O("mpadded",[ge(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute("voffset",r),n}});W({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});W({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,n){var{parser:r}=e,a=n[0],i=re(t[0],"size"),s=re(t[1],"size");return{type:"rule",mode:r.mode,shift:a&&re(a,"size").value,width:i.value,height:s.value}},htmlBuilder(e,t){var n=D(["mord","rule"],[],t),r=xe(e.width,t),a=xe(e.height,t),i=e.shift?xe(e.shift,t):0;return n.style.borderRightWidth=G(r),n.style.borderTopWidth=G(a),n.style.bottom=G(i),n.width=r,n.height=a+i,n.depth=-i,n.maxFontSize=a*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=xe(e.width,t),r=xe(e.height,t),a=e.shift?xe(e.shift,t):0,i=t.color&&t.getColor()||"black",s=new O("mspace");s.setAttribute("mathbackground",i),s.setAttribute("width",G(n)),s.setAttribute("height",G(r));var o=new O("mpadded",[s]);return a>=0?o.setAttribute("height",G(a)):(o.setAttribute("height",G(a)),o.setAttribute("depth",G(-a))),o.setAttribute("voffset",G(a)),o}});function Ju(e,t,n){for(var r=ze(e,t,!1),a=t.sizeMultiplier/n.sizeMultiplier,i=0;i{var n=t.havingSize(e.size);return Ju(e.body,n,t)};W({type:"sizing",names:_l,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:n,funcName:r,parser:a}=e,i=a.parseExpression(!1,n);return{type:"sizing",mode:a.mode,size:_l.indexOf(r)+1,body:i}},htmlBuilder:t5,mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),r=it(e.body,n),a=new O("mstyle",r);return a.setAttribute("mathsize",G(n.sizeMultiplier)),a}});W({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,n)=>{var{parser:r}=e,a=!1,i=!1,s=n[0]&&re(n[0],"ordgroup");if(s)for(var o,l=0;l{var n=D([],[me(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0),e.smashDepth&&(n.depth=0),e.smashHeight&&e.smashDepth)return D(["mord","smash"],[n],t);if(n.children)for(var r=0;r{var n=new O("mpadded",[ge(e.body,t)]);return e.smashHeight&&n.setAttribute("height","0px"),e.smashDepth&&n.setAttribute("depth","0px"),n}});W({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:r}=e,a=n[0],i=t[0];return{type:"sqrt",mode:r.mode,body:i,index:a}},htmlBuilder(e,t){var n=me(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=On(n,t);var r=t.fontMetrics(),a=r.defaultRuleThickness,i=a;t.style.idn.height+n.depth+s&&(s=(s+c-n.height-n.depth)/2);var f=l.height-n.height-s-u;n.style.paddingLeft=G(h);var d=ce({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+f)},{type:"elem",elem:l},{type:"kern",size:u}]});if(e.index){var b=t.havingStyle(te.SCRIPTSCRIPT),w=me(e.index,b,t),A=.6*(d.height-d.depth),k=ce({positionType:"shift",positionData:-A,children:[{type:"elem",elem:w}]}),C=D(["root"],[k]);return D(["mord","sqrt"],[C,d],t)}else return D(["mord","sqrt"],[d],t)},mathmlBuilder(e,t){var{body:n,index:r}=e;return r?new O("mroot",[ge(n,t),ge(r,t)]):new O("msqrt",[ge(n,t)])}});var ls={display:te.DISPLAY,text:te.TEXT,script:te.SCRIPT,scriptscript:te.SCRIPTSCRIPT};function n5(e){return e in ls}W({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:n,funcName:r,parser:a}=e,i=a.parseExpression(!0,n),s=r.slice(1,r.length-5);if(!n5(s))throw new Error("Unknown style: "+s);return{type:"styling",mode:a.mode,style:s,body:i}},htmlBuilder(e,t){var n=ls[e.style],r=t.havingStyle(n);return e.resetFont&&(r=r.withFont("")),Ju(e.body,r,t)},mathmlBuilder(e,t){var n=ls[e.style],r=t.havingStyle(n);e.resetFont&&(r=r.withFont(""));var a=it(e.body,r),i=new O("mstyle",a),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=s[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var r5=function(t,n){var r=t.base;if(r)if(r.type==="op"){var a=r.limits&&(n.style.size===te.DISPLAY.size||r.alwaysHandleSupSub);return a?Vn:null}else if(r.type==="operatorname"){var i=r.alwaysHandleSupSub&&(n.style.size===te.DISPLAY.size||r.limits);return i?Qu:null}else{if(r.type==="accent")return qt(r.base)?Rs:null;if(r.type==="horizBrace"){var s=!t.sub;return s===r.isOver?Yu:null}else return null}else return null};Sn({type:"supsub",htmlBuilder(e,t){var n=r5(e,t);if(n)return n(e,t);var{base:r,sup:a,sub:i}=e,s=me(r,t),o,l,u=t.fontMetrics(),h=0,c=0,f=r&&qt(r);if(a){var d=t.havingStyle(t.style.sup());o=me(a,d,t),f||(h=s.height-d.fontMetrics().supDrop*d.sizeMultiplier/t.sizeMultiplier)}if(i){var b=t.havingStyle(t.style.sub());l=me(i,b,t),f||(c=s.depth+b.fontMetrics().subDrop*b.sizeMultiplier/t.sizeMultiplier)}var w;t.style===te.DISPLAY?w=u.sup1:t.style.cramped?w=u.sup3:w=u.sup2;var A=t.sizeMultiplier,k=G(.5/u.ptPerEm/A),C=null;if(l){var T=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");if(s instanceof rt||T){var I;C=G(-((I=s.italic)!=null?I:0))}}var N;if(o&&l){h=Math.max(h,w,o.depth+.25*u.xHeight),c=Math.max(c,u.sub2);var E=u.defaultRuleThickness,L=4*E;if(h-o.depth-(l.height-c)0&&(h+=V,c-=V)}var q=[{type:"elem",elem:l,shift:c,marginRight:k,marginLeft:C},{type:"elem",elem:o,shift:-h,marginRight:k}];N=ce({positionType:"individualShift",children:q})}else if(l){c=Math.max(c,u.sub1,l.height-.8*u.xHeight);var M=[{type:"elem",elem:l,marginLeft:C,marginRight:k}];N=ce({positionType:"shift",positionData:c,children:M})}else if(o)h=Math.max(h,w,o.depth+.25*u.xHeight),N=ce({positionType:"shift",positionData:-h,children:[{type:"elem",elem:o,marginRight:k}]});else throw new Error("supsub must have either sup or sub.");var U=rs(s,"right")||"mord";return D([U],[s,D(["msupsub"],[N])],t)},mathmlBuilder(e,t){var n=!1,r,a;e.base&&e.base.type==="horizBrace"&&(a=!!e.sup,a===e.base.isOver&&(n=!0,r=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var i=[ge(e.base,t)];e.sub&&i.push(ge(e.sub,t)),e.sup&&i.push(ge(e.sup,t));var s;if(n)s=r?"mover":"munder";else if(e.sub)if(e.sup){var u=e.base;u&&u.type==="op"&&u.limits&&t.style===te.DISPLAY||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(t.style===te.DISPLAY||u.limits)?s="munderover":s="msubsup"}else{var l=e.base;l&&l.type==="op"&&l.limits&&(t.style===te.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===te.DISPLAY)?s="munder":s="msub"}else{var o=e.base;o&&o.type==="op"&&o.limits&&(t.style===te.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||t.style===te.DISPLAY)?s="mover":s="msup"}return new O(s,i)}});Sn({type:"atom",htmlBuilder(e,t){return Es(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var n=new O("mo",[pt(e.text,e.mode)]);if(e.family==="bin"){var r=zs(e,t);r==="bold-italic"&&n.setAttribute("mathvariant",r)}else e.family==="punct"?n.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&n.setAttribute("stretchy","false");return n}});var ec={mi:"italic",mn:"normal",mtext:"normal"};Sn({type:"mathord",htmlBuilder(e,t){return Ta(e,t,"mathord")},mathmlBuilder(e,t){var n=new O("mi",[pt(e.text,e.mode,t)]),r=zs(e,t)||"italic";return r!==ec[n.type]&&n.setAttribute("mathvariant",r),n}});Sn({type:"textord",htmlBuilder(e,t){return Ta(e,t,"textord")},mathmlBuilder(e,t){var n=pt(e.text,e.mode,t),r=zs(e,t)||"normal",a;return e.mode==="text"?a=new O("mtext",[n]):/[0-9]/.test(e.text)?a=new O("mn",[n]):e.text==="\\prime"?a=new O("mo",[n]):a=new O("mi",[n]),r!==ec[a.type]&&a.setAttribute("mathvariant",r),a}});var wi={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},xi={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Sn({type:"spacing",htmlBuilder(e,t){if(xi.hasOwnProperty(e.text)){var n=xi[e.text].className||"";if(e.mode==="text"){var r=Ta(e,t,"textord");return r.classes.push(n),r}else return D(["mspace",n],[Es(e.text,e.mode,t)],t)}else{if(wi.hasOwnProperty(e.text))return D(["mspace",wi[e.text]],[],t);throw new P('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var n;if(xi.hasOwnProperty(e.text))n=new O("mtext",[new Ae(" ")]);else{if(wi.hasOwnProperty(e.text))return new O("mspace");throw new P('Unknown type of space "'+e.text+'"')}return n}});var $l=()=>{var e=new O("mtd",[]);return e.setAttribute("width","50%"),e};Sn({type:"tag",mathmlBuilder(e,t){var n=new O("mtable",[new O("mtr",[$l(),new O("mtd",[rn(e.body,t)]),$l(),new O("mtd",[rn(e.tag,t)])])]);return n.setAttribute("width","100%"),n}});var Cl={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Sl={"\\textbf":"textbf","\\textmd":"textmd"},a5={"\\textit":"textit","\\textup":"textup"},Al=(e,t)=>{var n=e.font;if(n){if(Cl[n])return t.withTextFontFamily(Cl[n]);if(Sl[n])return t.withTextFontWeight(Sl[n]);if(n==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(a5[n])};W({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:r}=e,a=t[0];return{type:"text",mode:n.mode,body:Se(a),font:r}},htmlBuilder(e,t){var n=Al(e,t),r=ze(e.body,n,!0);return D(["mord","text"],r,n)},mathmlBuilder(e,t){var n=Al(e,t);return rn(e.body,n)}});W({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"underline",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=me(e.body,t),r=Pn("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=ce({positionType:"top",positionData:n.height,children:[{type:"kern",size:a},{type:"elem",elem:r},{type:"kern",size:3*a},{type:"elem",elem:n}]});return D(["mord","underline"],[i],t)},mathmlBuilder(e,t){var n=new O("mo",[new Ae("‾")]);n.setAttribute("stretchy","true");var r=new O("munder",[ge(e.body,t),n]);return r.setAttribute("accentunder","true"),r}});W({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"vcenter",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=me(e.body,t),r=t.fontMetrics().axisHeight,a=.5*(n.height-r-(n.depth+r));return ce({positionType:"shift",positionData:a,children:[{type:"elem",elem:n}]})},mathmlBuilder(e,t){var n=new O("mpadded",[ge(e.body,t)],["vcenter"]);return new O("mrow",[n])}});W({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,n){throw new P("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var n=Tl(e),r=[],a=t.havingStyle(t.style.text()),i=0;ie.body.replace(/ /g,e.star?"�":" "),Kt=xu,tc=`[ \r + ]`,i5="\\\\[a-zA-Z@]+",s5="\\\\[^\uD800-\uDFFF]",o5="("+i5+")"+tc+"*",l5=`\\\\( +|[ \r ]+ +?)[ \r ]*`,us="[̀-ͯ]",u5=new RegExp(us+"+$"),c5="("+tc+"+)|"+(l5+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(us+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(us+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+o5)+("|"+s5+")");class El{constructor(t,n){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=n,this.tokenRegex=new RegExp(c5,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,n){this.catcodes[t]=n}lex(){var t=this.input,n=this.tokenRegex.lastIndex;if(n===t.length)return new nt("EOF",new Ye(this,n,n));var r=this.tokenRegex.exec(t);if(r===null||r.index!==n)throw new P("Unexpected character: '"+t[n]+"'",new nt(t[n],new Ye(this,n,n+1)));var a=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[a]===14){var i=t.indexOf(` +`,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=i+1,this.lex()}return new nt(a,new Ye(this,n,this.tokenRegex.lastIndex))}}class m5{constructor(t,n){t===void 0&&(t={}),n===void 0&&(n={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=n,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new P("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var n in t)t.hasOwnProperty(n)&&(t[n]==null?delete this.current[n]:this.current[n]=t[n])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,n,r){if(r===void 0&&(r=!1),r){for(var a=0;a0&&(this.undefStack[this.undefStack.length-1][t]=n)}else{var i=this.undefStack[this.undefStack.length-1];i&&!i.hasOwnProperty(t)&&(i[t]=this.current[t])}n==null?delete this.current[t]:this.current[t]=n}}var h5=Hu;y("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});y("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});y("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});y("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});y("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var n=e.future();return t[0].length===1&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});y("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");y("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var Ml={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};y("\\char",function(e){var t=e.popToken(),n,r=0;if(t.text==="'")n=8,t=e.popToken();else if(t.text==='"')n=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")r=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new P("\\char` missing argument");r=t.text.charCodeAt(0)}else n=10;if(n){if(r=Ml[t.text],r==null||r>=n)throw new P("Invalid base-"+n+" digit "+t.text);for(var a;(a=Ml[e.future().text])!=null&&a{var a=e.consumeArg().tokens;if(a.length!==1)throw new P("\\newcommand's first argument must be a macro name");var i=a[0].text,s=e.isDefined(i);if(s&&!t)throw new P("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!s&&!n)throw new P("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var o=0;if(a=e.consumeArg().tokens,a.length===1&&a[0].text==="["){for(var l="",u=e.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new P("Invalid number of arguments: "+l);o=parseInt(l),a=e.consumeArg().tokens}return s&&r||e.macros.set(i,{tokens:a,numArgs:o}),""};y("\\newcommand",e=>Ls(e,!1,!0,!1));y("\\renewcommand",e=>Ls(e,!0,!1,!1));y("\\providecommand",e=>Ls(e,!0,!0,!0));y("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(n=>n.text).join("")),""});y("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(n=>n.text).join("")),""});y("\\show",e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),Kt[n],ye.math[n],ye.text[n]),""});y("\\bgroup","{");y("\\egroup","}");y("~","\\nobreakspace");y("\\lq","`");y("\\rq","'");y("\\aa","\\r a");y("\\AA","\\r A");y("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");y("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");y("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");y("ℬ","\\mathscr{B}");y("ℰ","\\mathscr{E}");y("ℱ","\\mathscr{F}");y("ℋ","\\mathscr{H}");y("�","\\mathscr{I}");y("ℒ","\\mathscr{L}");y("ℳ","\\mathscr{M}");y("ℛ","\\mathscr{R}");y("ℭ","\\mathfrak{C}");y("ℌ","\\mathfrak{H}");y("ℨ","\\mathfrak{Z}");y("\\Bbbk","\\Bbb{k}");y("\\llap","\\mathllap{\\textrm{#1}}");y("\\rlap","\\mathrlap{\\textrm{#1}}");y("\\clap","\\mathclap{\\textrm{#1}}");y("\\mathstrut","\\vphantom{(}");y("\\underbar","\\underline{\\text{#1}}");y("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}\\nobreak}{\\char"338}');y("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");y("\\ne","\\neq");y("≠","\\neq");y("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");y("∉","\\notin");y("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");y("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");y("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");y("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");y("�","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`�}}");y("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");y("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");y("⟂","\\perp");y("‼","\\mathclose{!\\mkern-0.8mu!}");y("∌","\\notni");y("⌜","\\ulcorner");y("�","\\urcorner");y("⌞","\\llcorner");y("⌟","\\lrcorner");y("©","\\copyright");y("®","\\textregistered");y("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');y("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');y("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');y("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');y("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");y("⋮","\\vdots");y("\\varGamma","\\mathit{\\Gamma}");y("\\varDelta","\\mathit{\\Delta}");y("\\varTheta","\\mathit{\\Theta}");y("\\varLambda","\\mathit{\\Lambda}");y("\\varXi","\\mathit{\\Xi}");y("\\varPi","\\mathit{\\Pi}");y("\\varSigma","\\mathit{\\Sigma}");y("\\varUpsilon","\\mathit{\\Upsilon}");y("\\varPhi","\\mathit{\\Phi}");y("\\varPsi","\\mathit{\\Psi}");y("\\varOmega","\\mathit{\\Omega}");y("\\substack","\\begin{subarray}{c}#1\\end{subarray}");y("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");y("\\boxed","\\fbox{$\\displaystyle{#1}$}");y("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");y("\\implies","\\DOTSB\\;\\Longrightarrow\\;");y("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");y("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");y("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Il={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"},p5=new Set(["bin","rel"]);y("\\dots",function(e){var t="\\dotso",n=e.expandAfterFuture().text;return n in Il?t=Il[n]:(n.slice(0,4)==="\\not"||n in ye.math&&p5.has(ye.math[n].group))&&(t="\\dotsb"),t});var Fs={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};y("\\dotso",function(e){var t=e.future().text;return t in Fs?"\\ldots\\,":"\\ldots"});y("\\dotsc",function(e){var t=e.future().text;return t in Fs&&t!==","?"\\ldots\\,":"\\ldots"});y("\\cdots",function(e){var t=e.future().text;return t in Fs?"\\@cdots\\,":"\\@cdots"});y("\\dotsb","\\cdots");y("\\dotsm","\\cdots");y("\\dotsi","\\!\\cdots");y("\\dotsx","\\ldots\\,");y("\\DOTSI","\\relax");y("\\DOTSB","\\relax");y("\\DOTSX","\\relax");y("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");y("\\,","\\tmspace+{3mu}{.1667em}");y("\\thinspace","\\,");y("\\>","\\mskip{4mu}");y("\\:","\\tmspace+{4mu}{.2222em}");y("\\medspace","\\:");y("\\;","\\tmspace+{5mu}{.2777em}");y("\\thickspace","\\;");y("\\!","\\tmspace-{3mu}{.1667em}");y("\\negthinspace","\\!");y("\\negmedspace","\\tmspace-{4mu}{.2222em}");y("\\negthickspace","\\tmspace-{5mu}{.277em}");y("\\enspace","\\kern.5em ");y("\\enskip","\\hskip.5em\\relax");y("\\quad","\\hskip1em\\relax");y("\\qquad","\\hskip2em\\relax");y("\\tag","\\@ifstar\\tag@literal\\tag@paren");y("\\tag@paren","\\tag@literal{({#1})}");y("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new P("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});y("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");y("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");y("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");y("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");y("\\newline","\\\\\\relax");y("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var nc=G(_t["Main-Regular"][84][1]-.7*_t["Main-Regular"][65][1]);y("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+nc+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");y("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+nc+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");y("\\hspace","\\@ifstar\\@hspacer\\@hspace");y("\\@hspace","\\hskip #1\\relax");y("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");y("\\ordinarycolon",":");y("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");y("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');y("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');y("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');y("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');y("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');y("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');y("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');y("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');y("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');y("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');y("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');y("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');y("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');y("∷","\\dblcolon");y("∹","\\eqcolon");y("≔","\\coloneqq");y("≕","\\eqqcolon");y("⩴","\\Coloneqq");y("\\ratio","\\vcentcolon");y("\\coloncolon","\\dblcolon");y("\\colonequals","\\coloneqq");y("\\coloncolonequals","\\Coloneqq");y("\\equalscolon","\\eqqcolon");y("\\equalscoloncolon","\\Eqqcolon");y("\\colonminus","\\coloneq");y("\\coloncolonminus","\\Coloneq");y("\\minuscolon","\\eqcolon");y("\\minuscoloncolon","\\Eqcolon");y("\\coloncolonapprox","\\Colonapprox");y("\\coloncolonsim","\\Colonsim");y("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");y("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");y("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");y("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");y("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");y("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");y("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");y("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");y("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");y("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");y("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");y("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");y("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");y("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");y("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");y("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");y("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");y("\\nleqq","\\html@mathml{\\@nleqq}{≰}");y("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");y("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");y("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");y("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");y("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");y("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");y("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");y("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");y("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");y("\\imath","\\html@mathml{\\@imath}{ı}");y("\\jmath","\\html@mathml{\\@jmath}{ȷ}");y("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");y("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");y("⟦","\\llbracket");y("⟧","\\rrbracket");y("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");y("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");y("⦃","\\lBrace");y("⦄","\\rBrace");y("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");y("⦵","\\minuso");y("\\darr","\\downarrow");y("\\dArr","\\Downarrow");y("\\Darr","\\Downarrow");y("\\lang","\\langle");y("\\rang","\\rangle");y("\\uarr","\\uparrow");y("\\uArr","\\Uparrow");y("\\Uarr","\\Uparrow");y("\\N","\\mathbb{N}");y("\\R","\\mathbb{R}");y("\\Z","\\mathbb{Z}");y("\\alef","\\aleph");y("\\alefsym","\\aleph");y("\\Alpha","\\mathrm{A}");y("\\Beta","\\mathrm{B}");y("\\bull","\\bullet");y("\\Chi","\\mathrm{X}");y("\\clubs","\\clubsuit");y("\\cnums","\\mathbb{C}");y("\\Complex","\\mathbb{C}");y("\\Dagger","\\ddagger");y("\\diamonds","\\diamondsuit");y("\\empty","\\emptyset");y("\\Epsilon","\\mathrm{E}");y("\\Eta","\\mathrm{H}");y("\\exist","\\exists");y("\\harr","\\leftrightarrow");y("\\hArr","\\Leftrightarrow");y("\\Harr","\\Leftrightarrow");y("\\hearts","\\heartsuit");y("\\image","\\Im");y("\\infin","\\infty");y("\\Iota","\\mathrm{I}");y("\\isin","\\in");y("\\Kappa","\\mathrm{K}");y("\\larr","\\leftarrow");y("\\lArr","\\Leftarrow");y("\\Larr","\\Leftarrow");y("\\lrarr","\\leftrightarrow");y("\\lrArr","\\Leftrightarrow");y("\\Lrarr","\\Leftrightarrow");y("\\Mu","\\mathrm{M}");y("\\natnums","\\mathbb{N}");y("\\Nu","\\mathrm{N}");y("\\Omicron","\\mathrm{O}");y("\\plusmn","\\pm");y("\\rarr","\\rightarrow");y("\\rArr","\\Rightarrow");y("\\Rarr","\\Rightarrow");y("\\real","\\Re");y("\\reals","\\mathbb{R}");y("\\Reals","\\mathbb{R}");y("\\Rho","\\mathrm{P}");y("\\sdot","\\cdot");y("\\sect","\\S");y("\\spades","\\spadesuit");y("\\sub","\\subset");y("\\sube","\\subseteq");y("\\supe","\\supseteq");y("\\Tau","\\mathrm{T}");y("\\thetasym","\\vartheta");y("\\weierp","\\wp");y("\\Zeta","\\mathrm{Z}");y("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");y("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");y("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");y("\\bra","\\mathinner{\\langle{#1}|}");y("\\ket","\\mathinner{|{#1}\\rangle}");y("\\braket","\\mathinner{\\langle{#1}\\rangle}");y("\\Bra","\\left\\langle#1\\right|");y("\\Ket","\\left|#1\\right\\rangle");var rc=e=>t=>{var n=t.consumeArg().tokens,r=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,s=t.macros.get("|"),o=t.macros.get("\\|");t.macros.beginGroup();var l=c=>f=>{e&&(f.macros.set("|",s),a.length&&f.macros.set("\\|",o));var d=c;if(!c&&a.length){var b=f.future();b.text==="|"&&(f.popToken(),d=!0)}return{tokens:d?a:r,numArgs:0}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var u=t.consumeArg().tokens,h=t.expandTokens([...i,...u,...n]);return t.macros.endGroup(),{tokens:h.reverse(),numArgs:0}};y("\\bra@ket",rc(!1));y("\\bra@set",rc(!0));y("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");y("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");y("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");y("\\angln","{\\angl n}");y("\\blue","\\textcolor{##6495ed}{#1}");y("\\orange","\\textcolor{##ffa500}{#1}");y("\\pink","\\textcolor{##ff00af}{#1}");y("\\red","\\textcolor{##df0030}{#1}");y("\\green","\\textcolor{##28ae7b}{#1}");y("\\gray","\\textcolor{gray}{#1}");y("\\purple","\\textcolor{##9d38bd}{#1}");y("\\blueA","\\textcolor{##ccfaff}{#1}");y("\\blueB","\\textcolor{##80f6ff}{#1}");y("\\blueC","\\textcolor{##63d9ea}{#1}");y("\\blueD","\\textcolor{##11accd}{#1}");y("\\blueE","\\textcolor{##0c7f99}{#1}");y("\\tealA","\\textcolor{##94fff5}{#1}");y("\\tealB","\\textcolor{##26edd5}{#1}");y("\\tealC","\\textcolor{##01d1c1}{#1}");y("\\tealD","\\textcolor{##01a995}{#1}");y("\\tealE","\\textcolor{##208170}{#1}");y("\\greenA","\\textcolor{##b6ffb0}{#1}");y("\\greenB","\\textcolor{##8af281}{#1}");y("\\greenC","\\textcolor{##74cf70}{#1}");y("\\greenD","\\textcolor{##1fab54}{#1}");y("\\greenE","\\textcolor{##0d923f}{#1}");y("\\goldA","\\textcolor{##ffd0a9}{#1}");y("\\goldB","\\textcolor{##ffbb71}{#1}");y("\\goldC","\\textcolor{##ff9c39}{#1}");y("\\goldD","\\textcolor{##e07d10}{#1}");y("\\goldE","\\textcolor{##a75a05}{#1}");y("\\redA","\\textcolor{##fca9a9}{#1}");y("\\redB","\\textcolor{##ff8482}{#1}");y("\\redC","\\textcolor{##f9685d}{#1}");y("\\redD","\\textcolor{##e84d39}{#1}");y("\\redE","\\textcolor{##bc2612}{#1}");y("\\maroonA","\\textcolor{##ffbde0}{#1}");y("\\maroonB","\\textcolor{##ff92c6}{#1}");y("\\maroonC","\\textcolor{##ed5fa6}{#1}");y("\\maroonD","\\textcolor{##ca337c}{#1}");y("\\maroonE","\\textcolor{##9e034e}{#1}");y("\\purpleA","\\textcolor{##ddd7ff}{#1}");y("\\purpleB","\\textcolor{##c6b9fc}{#1}");y("\\purpleC","\\textcolor{##aa87ff}{#1}");y("\\purpleD","\\textcolor{##7854ab}{#1}");y("\\purpleE","\\textcolor{##543b78}{#1}");y("\\mintA","\\textcolor{##f5f9e8}{#1}");y("\\mintB","\\textcolor{##edf2df}{#1}");y("\\mintC","\\textcolor{##e0e5cc}{#1}");y("\\grayA","\\textcolor{##f6f7f7}{#1}");y("\\grayB","\\textcolor{##f0f1f2}{#1}");y("\\grayC","\\textcolor{##e3e5e6}{#1}");y("\\grayD","\\textcolor{##d6d8da}{#1}");y("\\grayE","\\textcolor{##babec2}{#1}");y("\\grayF","\\textcolor{##888d93}{#1}");y("\\grayG","\\textcolor{##626569}{#1}");y("\\grayH","\\textcolor{##3b3e40}{#1}");y("\\grayI","\\textcolor{##21242c}{#1}");y("\\kaBlue","\\textcolor{##314453}{#1}");y("\\kaGreen","\\textcolor{##71B307}{#1}");var ac={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class d5{constructor(t,n,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=n,this.expansionCount=0,this.feed(t),this.macros=new m5(h5,n.macros),this.mode=r,this.stack=[]}feed(t){this.lexer=new El(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var n,r,a;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;n=this.popToken(),{tokens:a,end:r}=this.consumeArg(["]"])}else({tokens:a,start:n,end:r}=this.consumeArg());return this.pushToken(new nt("EOF",r.loc)),this.pushTokens(a),new nt("",Ye.range(n,r))}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var n=[],r=t&&t.length>0;r||this.consumeSpaces();var a=this.future(),i,s=0,o=0;do{if(i=this.popToken(),n.push(i),i.text==="{")++s;else if(i.text==="}"){if(--s,s===-1)throw new P("Extra }",i)}else if(i.text==="EOF")throw new P("Unexpected end of input in a macro argument, expected '"+(t&&r?t[o]:"}")+"'",i);if(t&&r)if((s===0||s===1&&t[o]==="{")&&i.text===t[o]){if(++o,o===t.length){n.splice(-o,o);break}}else o=0}while(s!==0||r);return a.text==="{"&&n[n.length-1].text==="}"&&(n.pop(),n.shift()),n.reverse(),{tokens:n,start:a,end:i}}consumeArgs(t,n){if(n){if(n.length!==t+1)throw new P("The length of delimiters doesn't match the number of args!");for(var r=n[0],a=0;athis.settings.maxExpand)throw new P("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var n=this.popToken(),r=n.text,a=n.noexpand?null:this._getExpansion(r);if(a==null||t&&a.unexpandable){if(t&&a==null&&r[0]==="\\"&&!this.isDefined(r))throw new P("Undefined control sequence: "+r);return this.pushToken(n),!1}this.countExpansion(1);var i=a.tokens,s=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){i=i.slice();for(var o=i.length-1;o>=0;--o){var l=i[o];if(l.text==="#"){if(o===0)throw new P("Incomplete placeholder at end of macro body",l);if(l=i[--o],l.text==="#")i.splice(o+1,1);else if(/^[1-9]$/.test(l.text))i.splice(o,2,...s[+l.text-1]);else throw new P("Not a valid argument number",l)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}}expandMacro(t){return this.macros.has(t)?this.expandTokens([new nt(t)]):void 0}expandTokens(t){var n=[],r=this.stack.length;for(this.pushTokens(t);this.stack.length>r;)if(this.expandOnce(!0)===!1){var a=this.stack.pop();a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),n.push(a)}return this.countExpansion(n.length),n}expandMacroAsText(t){var n=this.expandMacro(t);return n&&n.map(r=>r.text).join("")}_getExpansion(t){var n=this.macros.get(t);if(n==null)return n;if(t.length===1){var r=this.lexer.catcodes[t];if(r!=null&&r!==13)return}var a=typeof n=="function"?n(this):n;if(typeof a=="string"){var i=0;if(a.includes("#"))for(var s=a.replace(/##/g,"");s.includes("#"+(i+1));)++i;for(var o=new El(a,this.settings),l=[],u=o.lex();u.text!=="EOF";)l.push(u),u=o.lex();l.reverse();var h={tokens:l,numArgs:i};return h}return a}isDefined(t){return this.macros.has(t)||Kt.hasOwnProperty(t)||ye.math.hasOwnProperty(t)||ye.text.hasOwnProperty(t)||ac.hasOwnProperty(t)}isExpandable(t){var n=this.macros.get(t);return n!=null?typeof n=="string"||typeof n=="function"||!n.unexpandable:Kt.hasOwnProperty(t)&&!Kt[t].primitive}}var zl=/^[₊₋₌�₎₀�₂₃₄₅₆₇₈₉�ₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,qr=Object.freeze({"₊":"+","₋":"-","₌":"=","�":"(","₎":")","₀":"0","�":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","�":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"�","ᵩ":"ϕ","ᵪ":"χ","�":"+","�":"-","�":"=","�":"(","�":")","�":"0","¹":"1","²":"2","³":"3","�":"4","�":"5","�":"6","�":"7","�":"8","�":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","�":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","�":"g",ʰ:"h","�":"i",ʲ:"j","�":"k",ˡ:"l","�":"m",�:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","�":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),ki={"�":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Rl={á:"a�",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",�:"ā",ă:"ă",ắ:"ă�",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"â�",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"å�",ḃ:"ḃ",ć:"c�",ḉ:"ç�",�:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",�:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"e�",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ē�",ḕ:"ḕ",ĕ:"ĕ",�:"ḝ",ě:"ě",ê:"ê",ế:"ê�",�:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"g�",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",�:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"i�",ì:"ì",ï:"ï",ḯ:"ï�",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",�:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"k�",ǩ:"ǩ",ķ:"ķ",ĺ:"l�",ľ:"ľ",ļ:"ļ",ḿ:"m�",�:"ṁ",ń:"n�",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"o�",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",�:"õ�",�:"ṏ",ȭ:"ȭ",�:"ō",ṓ:"ō�",ṑ:"ṑ",�:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ô�",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"p�",ṗ:"ṗ",ŕ:"r�",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"s�",ṥ:"s�̇",š:"š",ṧ:"ṧ",�:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"u�",ù:"ù",ü:"ü",ǘ:"ü�",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ũ�",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"w�",�:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",�:"ẍ",ẋ:"ẋ",ý:"y�",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",�:"ẏ",ẙ:"ẙ",ź:"z�",ž:"ž",ẑ:"ẑ",ż:"ż",�:"A�",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ă�",Ằ:"Ằ",Ẵ:"Ẵ",�:"Ǎ",Â:"Â",Ấ:"Â�",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Å�",Ḃ:"Ḃ",Ć:"C�",Ḉ:"Ç�",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",�:"Ḑ",É:"E�",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ē�",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ê�",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"G�",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",�:"I�",Ì:"Ì",�:"Ï",Ḯ:"Ï�",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",�:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"K�",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"L�",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"M�",Ṁ:"Ṁ",Ń:"N�",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"O�",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Õ�",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ō�",�:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",�:"Ô�",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",�:"Ő",Ṕ:"P�",Ṗ:"Ṗ",Ŕ:"R�",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"S�",Ṥ:"S�̇",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"U�",Ù:"Ù",Ü:"Ü",Ǘ:"Ü�",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ũ�",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"W�",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",�:"Y�",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Z�",Ž:"Ž",�:"Ẑ",Ż:"Ż",ά:"α�",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"ε�",ὲ:"ὲ",ή:"η�",ὴ:"ὴ",ί:"ι�",ὶ:"ὶ",ϊ:"ϊ",�:"ϊ�",ῒ:"ῒ",ῑ:"ῑ",�:"ῐ",ό:"ο�",ὸ:"ὸ",�:"υ�",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ϋ�",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ω�",ὼ:"ὼ",Ύ:"Υ�",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",�:"Ω�",Ὼ:"Ὼ"};class Fa{constructor(t,n){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new d5(t,n,this.mode),this.settings=n,this.leftrightDepth=0,this.nextToken=null}expect(t,n){if(n===void 0&&(n=!0),this.fetch().text!==t)throw new P("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());n&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var n=this.nextToken;this.consume(),this.gullet.pushToken(new nt("}")),this.gullet.pushTokens(t);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=n,r}parseExpression(t,n){for(var r=[];;){this.mode==="math"&&this.consumeSpaces();var a=this.fetch();if(Fa.endOfExpression.has(a.text)||n&&a.text===n||t&&Kt[a.text]&&Kt[a.text].infix)break;var i=this.parseAtom(n);if(i){if(i.type==="internal")continue}else break;r.push(i)}return this.mode==="text"&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(t){for(var n=-1,r,a=0;a=128)this.settings.strict&&(mu(n.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+n[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+n[0]+'"'+(" ("+n.charCodeAt(0)+")"),t)),s={type:"textord",mode:"text",loc:Ye.range(t),text:n};else return null;if(this.consume(),i)for(var h=0;h { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + //#region lib/types/client/index.js + /** + * Client projection of generated Typert Remote descriptors. Contributions + * install traced `remote.` services; no JavaScript Proxy + * participates in method lookup, invocation, or type exposure. + */ + /** Required Client services: the Typert registry and the existing Connection carrier. */ + const inject = ["typert", "connection"]; + /** + * Install the typed Client Remote service. + * @param ctx - Client Cordis root. + */ + function apply(ctx) { + new ClientRemoteService(ctx); + } + var ClientRemoteService = class extends _deepseek_ai_cordis.Service { + ownerCtx; + namespaces = /* @__PURE__ */ new Map(); + subscriptions = /* @__PURE__ */ new Map(); + mutations = Promise.resolve(); + constructor(ctx) { + super(ctx, "remote"); + this.ownerCtx = ctx; + ctx.effect(() => () => { + this.subscriptions.clear(); + }, "api-gateway.client.subscriptions"); + } + async $mount(contribution) { + const callerCtx = this.ctx; + const owned = callerCtx.effect(async () => { + const dispose = await this.enqueue(() => this.mountContribution(callerCtx, contribution)); + return () => this.enqueue(dispose); + }, `api-gateway.client.$mount(${JSON.stringify(contribution.package)})`); + await owned; + return async () => { + await owned(); + }; + } + $on(event, listener) { + const subscription = { listener }; + const owned = this.ctx.effect(() => { + const listeners = this.listeners(event); + listeners.push(subscription); + return () => { + const at = listeners.indexOf(subscription); + /* v8 ignore next -- listener */ + if (at >= 0) listeners.splice(at, 1); + }; + }, `api-gateway.client.$on(${JSON.stringify(event)})`); + return () => { + owned(); + }; + } + /** + * Deliver one forwarded event in registration order, isolating a listener + * that fails either synchronously or by rejecting a returned promise; see + * {@link TypertClientRemote.$dispatch} for the caller contract. + */ + $dispatch(event, args) { + const listeners = this.subscriptions.get(event); + if (listeners === void 0) return; + for (const { listener } of [...listeners]) { + const report = (error) => { + console.error(`client api: Remote event ${JSON.stringify(event)} listener threw:`, error); + }; + try { + const settled = listener(...args); + if (settled instanceof Promise) settled.catch(report); + } catch (error) { + report(error); + } + } + } + /** Subscriptions for one event name; empty arrays are retained, bounded by the Host's selection. */ + listeners(event) { + let listeners = this.subscriptions.get(event); + if (listeners === void 0) { + listeners = []; + this.subscriptions.set(event, listeners); + } + return listeners; + } + enqueue(operation) { + const result = this.mutations.then(operation, operation); + this.mutations = result.then(() => void 0, () => void 0); + return result; + } + async mountContribution(callerCtx, contribution) { + this.validateContribution(contribution); + const disposeRemote = callerCtx.typert.remotes.register(contribution); + const installed = []; + try { + for (const descriptor of contribution.descriptors) installed.push(await this.install(descriptor)); + } catch (error) { + for (const dispose of installed.reverse()) await dispose(); + await disposeRemote(); + throw error; + } + return async () => { + for (const dispose of installed.reverse()) await dispose(); + await disposeRemote(); + }; + } + validateContribution(contribution) { + const direct = /* @__PURE__ */ new Map(); + const scoped = /* @__PURE__ */ new Map(); + const add = (table, descriptor, kind) => { + const methods = table.get(descriptor.namespace) ?? /* @__PURE__ */ new Set(); + if (methods.has(descriptor.method)) throw new Error(`client api: contribution repeats ${kind} method ${endpointOf(descriptor)}`); + methods.add(descriptor.method); + table.set(descriptor.namespace, methods); + if ((this.namespaces.get(descriptor.namespace)?.service)?.has(kind, descriptor.method) === true) throw new Error(`client api: ${kind} method ${endpointOf(descriptor)} is already mounted`); + }; + for (const descriptor of contribution.descriptors) { + requireStrictDescriptor(descriptor); + if (descriptor.invocation.kind === "direct") add(direct, descriptor, "direct"); + if (scopedProjection(descriptor) !== void 0) add(scoped, descriptor, "scoped"); + } + const namespaces = new Set([...direct.keys(), ...scoped.keys()]); + for (const namespace of namespaces) { + const service = this.namespaces.get(namespace)?.service; + if (service === void 0) { + if (namespace in this) throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with the Remote service`); + const serviceKey = remoteServiceKey(namespace); + if (this.ownerCtx.reflect.props[serviceKey]?.type === "accessor" || this.ownerCtx.get(serviceKey) !== void 0) throw new Error(`client api: namespace ${JSON.stringify(namespace)} conflicts with an existing Remote namespace`); + } + for (const method of new Set([...direct.get(namespace) ?? [], ...scoped.get(namespace) ?? []])) if (service === void 0) RemoteNamespaceService.assertMethodAvailable(namespace, method); + else service.assertMethodAvailable(method); + } + } + async install(descriptor) { + const token = { + active: true, + abort: new AbortController() + }; + const installed = []; + try { + if (descriptor.invocation.kind === "direct") installed.push(await this.installDirect(descriptor, token)); + const projection = scopedProjection(descriptor); + if (projection !== void 0) installed.push(await this.installScoped(descriptor, projection, token)); + } catch (error) { + token.active = false; + token.abort.abort(); + for (const dispose of installed.reverse()) await dispose(); + throw error; + } + return async () => { + /* v8 ignore next -- Cordis effect disposers are idempotent and invoke this cleanup at most once. */ + if (!token.active) return; + token.active = false; + token.abort.abort(); + for (const dispose of installed.reverse()) await dispose(); + }; + } + async installDirect(descriptor, token) { + const namespace = await this.namespace(descriptor.namespace); + try { + namespace.service.installDirect(descriptor, token); + } catch (error) { + await this.disposeNamespace(descriptor.namespace, namespace); + throw error; + } + return async () => { + namespace.service.remove("direct", descriptor.method, token); + await this.disposeNamespace(descriptor.namespace, namespace); + }; + } + async installScoped(descriptor, projection, token) { + const namespace = await this.namespace(descriptor.namespace); + try { + namespace.service.installScoped(descriptor, projection, token); + } catch (error) { + await this.disposeNamespace(descriptor.namespace, namespace); + throw error; + } + return async () => { + namespace.service.remove("scoped", descriptor.method, token); + await this.disposeNamespace(descriptor.namespace, namespace); + }; + } + async namespace(name) { + let namespace = this.namespaces.get(name); + if (namespace !== void 0) return namespace; + let service; + const fiber = this.ownerCtx.plugin({ + name: remoteServiceKey(name), + apply: (ctx) => { + service = new RemoteNamespaceService(ctx, name, (direct, scoped, caller, args) => this.invokeMethod(direct, scoped, caller, args)); + } + }); + try { + await fiber; + } catch (error) { + await fiber.dispose(); + throw error; + } + /* v8 ignore next -- a settled namespace fiber synchronously constructs its Service. */ + if (service === void 0) throw new Error(`client api: namespace ${JSON.stringify(name)} did not start`); + namespace = { + service, + dispose: fiber.dispose + }; + this.namespaces.set(name, namespace); + return namespace; + } + async disposeNamespace(name, namespace) { + if (!namespace.service.empty || this.namespaces.get(name) !== namespace) return; + this.namespaces.delete(name); + await namespace.dispose(); + } + invokeMethod(direct, scoped, callerCtx, values) { + if (scoped !== void 0) { + const identity = this.ownerCtx.typert.contexts.getClient(scoped.projection.context)?.identity(callerCtx); + if (identity !== void 0) return this.invoke(scoped.descriptor, scoped.projection, scoped.token, callerCtx, values, { value: identity }); + } + if (direct !== void 0) return this.invoke(direct.descriptor, void 0, direct.token, callerCtx, values); + if (scoped !== void 0) return this.invoke(scoped.descriptor, scoped.projection, scoped.token, callerCtx, values); + throw new Error("client api: Remote method is no longer mounted"); + } + async invoke(descriptor, projection, token, callerCtx, values, boundIdentity) { + const endpoint = endpointOf(descriptor); + if (!token.active) return withdrawn(endpoint); + const expected = descriptor.parameters.length - (projection?.parameterIndex === void 0 ? 0 : 1); + const hasCallerSignal = descriptor.cancellation !== void 0 && values.length === expected + 1; + if (values.length !== expected && !hasCallerSignal) { + const contract = descriptor.cancellation === void 0 ? `${String(expected)} argument(s)` : `${String(expected)} business argument(s) plus an optional AbortSignal`; + throw new Error(`client api: ${endpoint} expected ${contract}, got ${String(values.length)}`); + } + const args = Object.create(null); + if (projection !== void 0) { + const binder = boundIdentity === void 0 ? this.ownerCtx.typert.contexts.getClient(projection.context) : void 0; + if (boundIdentity === void 0 && binder === void 0) throw new Error(`client api: ${endpoint} has no Client Context binder for ${JSON.stringify(projection.context)}`); + const identity = boundIdentity === void 0 ? binder?.identity(callerCtx) : boundIdentity.value; + if (identity === void 0) throw new Error(`client api: ${endpoint} requires a ${JSON.stringify(projection.context)} Context`); + args[projection.wire] = parse(projection.codec, identity, endpoint, projection.wire); + } + let valueIndex = 0; + descriptor.parameters.forEach((parameter, parameterIndex) => { + if (parameterIndex === projection?.parameterIndex) return; + const value = parse(parameter.codec, values[valueIndex], endpoint, parameter.wire); + if (value !== void 0) args[parameter.wire] = value; + valueIndex += 1; + }); + const connection = this.ownerCtx.get("connection"); + if (connection === void 0) throw new Error(`client api: ${endpoint} has no active Connection`); + const callerSignal = hasCallerSignal ? values[expected] : void 0; + const signal = callerSignal === void 0 ? token.abort.signal : AbortSignal.any([token.abort.signal, callerSignal]); + try { + const result = await connection.rpc.call("/api", endpoint, { args }, signal); + if (!mountActive(token)) return withdrawn(endpoint); + if (!result.ok) return { + ok: false, + error: result.error + }; + return { + ok: true, + value: parse(descriptor.result, result.value, endpoint, "result") + }; + } catch (error) { + return carrierFailure(endpoint, error); + } + } + }; + var RemoteNamespaceService = class RemoteNamespaceService extends _deepseek_ai_cordis.Service { + invokeRemote; + methods = /* @__PURE__ */ new Map(); + namespace; + static assertMethodAvailable(namespace, method) { + if (REMOTE_NAMESPACE_FIELDS.has(method) || method in RemoteNamespaceService.prototype) throw new Error(`client api: method ${JSON.stringify(`${namespace}/${method}`)} conflicts with its namespace service`); + } + constructor(ctx, name, invokeRemote) { + super(ctx, remoteServiceKey(name)); + this.invokeRemote = invokeRemote; + this.namespace = name; + } + assertMethodAvailable(method) { + RemoteNamespaceService.assertMethodAvailable(this.namespace, method); + if (method in this && !this.methods.has(method)) throw new Error(`client api: method ${JSON.stringify(`${this.namespace}/${method}`)} conflicts with its namespace service`); + } + get empty() { + return this.methods.size === 0; + } + has(kind, method) { + return this.methods.get(method)?.[kind] !== void 0; + } + installDirect(descriptor, token) { + this.install(descriptor.method, "direct", { + descriptor, + token + }); + } + installScoped(descriptor, projection, token) { + this.install(descriptor.method, "scoped", { + descriptor, + projection, + token + }); + } + install(method, kind, value) { + this.assertMethodAvailable(method); + let record = this.methods.get(method); + const fresh = record === void 0; + record ??= {}; + if (fresh) { + Object.defineProperty(this, method, { + configurable: true, + enumerable: true, + get: function() { + const callerCtx = this.ctx; + const current = this.methods.get(method); + const direct = current?.direct; + const scoped = current?.scoped; + return (...args) => { + return this.invokeRemote(direct, scoped, callerCtx, args); + }; + } + }); + this.methods.set(method, record); + } + if (kind === "direct") record.direct = value; + else record.scoped = value; + } + remove(kind, method, token) { + const record = this.methods.get(method); + const current = record?.[kind]; + /* v8 ignore next -- duplicate live variants are rejected before installation, so no newer token can replace this one. */ + if (record === void 0 || current?.token !== token) return; + if (kind === "direct") delete record.direct; + else delete record.scoped; + if (record.direct !== void 0 || record.scoped !== void 0) return; + this.methods.delete(method); + Reflect.deleteProperty(this, method); + } + }; + const REMOTE_NAMESPACE_FIELDS = new Set([ + "ctx", + "empty", + "invokeRemote", + "methods", + "name", + "namespace" + ]); + function remoteServiceKey(namespace) { + return `remote.${namespace}`; + } + function endpointOf(descriptor) { + return `${descriptor.namespace}/${descriptor.method}`; + } + function mountActive(token) { + return token.active; + } + function scopedProjection(descriptor) { + if (descriptor.invocation.kind === "context") return { + context: descriptor.invocation.context, + wire: descriptor.invocation.wire, + codec: descriptor.invocation.codec + }; + if (descriptor.scope === void 0) return void 0; + const lookupParameters = descriptor.parameters.map((parameter, index) => ({ + parameter, + index + })).filter((candidate) => candidate.parameter.source === "lookup"); + const selected = lookupParameters.length === 1 ? lookupParameters[0] : void 0; + if (selected === void 0 || selected.parameter.wire !== descriptor.scope.wire || selected.parameter.lookup !== descriptor.scope.context) throw new Error(`client api: generated Remote ${endpointOf(descriptor)} scope must select its only lookup parameter`); + return { + context: descriptor.scope.context, + wire: descriptor.scope.wire, + codec: selected.parameter.codec, + parameterIndex: selected.index + }; + } + function requireStrictDescriptor(descriptor) { + const endpoint = endpointOf(descriptor); + requireStrictCodec(descriptor.result, endpoint, "result"); + for (const parameter of descriptor.parameters) requireStrictCodec(parameter.codec, endpoint, parameter.wire); + if (descriptor.invocation.kind === "context") requireStrictCodec(descriptor.invocation.codec, endpoint, descriptor.invocation.wire); + } + function requireStrictCodec(codec, endpoint, field) { + if (codec.mode !== "strict") throw new Error(`client api: generated Remote ${endpoint} field ${JSON.stringify(field)} has no strict codec`); + } + function parse(codec, value, endpoint, field) { + if (codec.mode !== "strict") throw new Error(`client api: generated Remote ${endpoint} field ${JSON.stringify(field)} has no strict codec`); + try { + return codec.schema.parse(value); + } catch (cause) { + throw new Error(`client api: ${endpoint} rejected ${JSON.stringify(field)}`, { cause }); + } + } + /** The namespace retired before or during the call, so no request outcome exists. */ + function withdrawn(endpoint) { + return internalFailure(`client api: Remote method ${endpoint} is no longer mounted`); + } + function carrierFailure(endpoint, error) { + return internalFailure(`client api: ${endpoint} failed: ${error instanceof Error ? error.message : String(error)}`); + } + function internalFailure(message) { + return { + ok: false, + error: { + code: "internal", + message, + details: {} + } + }; + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000006 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000006 new file mode 100644 index 0000000..c2a30e3 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000006 @@ -0,0 +1,1372 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-typert-registry", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js + function getEnumValues(entries) { + const numericValues = Object.values(entries).filter((v) => typeof v === "number"); + return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); + } + "captureStackTrace" in Error && Error.captureStackTrace; + Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, -Number.MAX_VALUE, Number.MAX_VALUE; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js + var _a; + var $ZodRegistry = class { + constructor() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + } + add(schema, ..._meta) { + const meta = _meta[0]; + this._map.set(schema, meta); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.set(meta.id, schema); + return this; + } + clear() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + return this; + } + remove(schema) { + const meta = this._map.get(schema); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.delete(meta.id); + this._map.delete(schema); + return this; + } + get(schema) { + const p = schema._zod.parent; + if (p) { + const pm = { ...this.get(p) ?? {} }; + delete pm.id; + const f = { + ...pm, + ...this._map.get(schema) + }; + return Object.keys(f).length ? f : void 0; + } + return this._map.get(schema); + } + has(schema) { + return this._map.has(schema); + } + }; + function registry() { + return new $ZodRegistry(); + } + (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry()); + const globalRegistry = globalThis.__zod_globalRegistry; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js + function initializeContext(params) { + let target = params?.target ?? "draft-2020-12"; + if (target === "draft-4") target = "draft-04"; + if (target === "draft-7") target = "draft-07"; + return { + processors: params.processors ?? {}, + metadataRegistry: params?.metadata ?? globalRegistry, + target, + unrepresentable: params?.unrepresentable ?? "throw", + override: params?.override ?? (() => {}), + io: params?.io ?? "output", + counter: 0, + seen: /* @__PURE__ */ new Map(), + cycles: params?.cycles ?? "ref", + reused: params?.reused ?? "inline", + external: params?.external ?? void 0 + }; + } + function process(schema, ctx, _params = { + path: [], + schemaPath: [] + }) { + var _a; + const def = schema._zod.def; + const seen = ctx.seen.get(schema); + if (seen) { + seen.count++; + if (_params.schemaPath.includes(schema)) seen.cycle = _params.path; + return seen.schema; + } + const result = { + schema: {}, + count: 1, + cycle: void 0, + path: _params.path + }; + ctx.seen.set(schema, result); + const overrideSchema = schema._zod.toJSONSchema?.(); + if (overrideSchema) result.schema = overrideSchema; + else { + const params = { + ..._params, + schemaPath: [..._params.schemaPath, schema], + path: _params.path + }; + if (schema._zod.processJSONSchema) schema._zod.processJSONSchema(ctx, result.schema, params); + else { + const _json = result.schema; + const processor = ctx.processors[def.type]; + if (!processor) throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); + processor(schema, ctx, _json, params); + } + const parent = schema._zod.parent; + if (parent) { + if (!result.ref) result.ref = parent; + process(parent, ctx, params); + ctx.seen.get(parent).isParent = true; + } + } + const meta = ctx.metadataRegistry.get(schema); + if (meta) Object.assign(result.schema, meta); + if (ctx.io === "input" && isTransforming(schema)) { + delete result.schema.examples; + delete result.schema.default; + } + if (ctx.io === "input" && "_prefault" in result.schema) (_a = result.schema).default ?? (_a.default = result.schema._prefault); + delete result.schema._prefault; + return ctx.seen.get(schema).schema; + } + function extractDefs(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const idToSchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.entries()) { + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + const existing = idToSchema.get(id); + if (existing && existing !== entry[0]) throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); + idToSchema.set(id, entry[0]); + } + } + const makeURI = (entry) => { + const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; + if (ctx.external) { + const externalId = ctx.external.registry.get(entry[0])?.id; + const uriGenerator = ctx.external.uri ?? ((id) => id); + if (externalId) return { ref: uriGenerator(externalId) }; + const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; + entry[1].defId = id; + return { + defId: id, + ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` + }; + } + if (entry[1] === root) return { ref: "#" }; + const defUriPrefix = `#/${defsSegment}/`; + const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; + return { + defId, + ref: defUriPrefix + defId + }; + }; + const extractToDef = (entry) => { + if (entry[1].schema.$ref) return; + const seen = entry[1]; + const { ref, defId } = makeURI(entry); + seen.def = { ...seen.schema }; + if (defId) seen.defId = defId; + const schema = seen.schema; + for (const key in schema) delete schema[key]; + schema.$ref = ref; + }; + if (ctx.cycles === "throw") for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.cycle) throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); + } + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (schema === entry[0]) { + extractToDef(entry); + continue; + } + if (ctx.external) { + const ext = ctx.external.registry.get(entry[0])?.id; + if (schema !== entry[0] && ext) { + extractToDef(entry); + continue; + } + } + if (ctx.metadataRegistry.get(entry[0])?.id) { + extractToDef(entry); + continue; + } + if (seen.cycle) { + extractToDef(entry); + continue; + } + if (seen.count > 1) { + if (ctx.reused === "ref") { + extractToDef(entry); + continue; + } + } + } + } + function finalize(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const flattenRef = (zodSchema) => { + const seen = ctx.seen.get(zodSchema); + if (seen.ref === null) return; + const schema = seen.def ?? seen.schema; + const _cached = { ...schema }; + const ref = seen.ref; + seen.ref = null; + if (ref) { + flattenRef(ref); + const refSeen = ctx.seen.get(ref); + const refSchema = refSeen.schema; + if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { + schema.allOf = schema.allOf ?? []; + schema.allOf.push(refSchema); + } else Object.assign(schema, refSchema); + Object.assign(schema, _cached); + if (zodSchema._zod.parent === ref) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (!(key in _cached)) delete schema[key]; + } + if (refSchema.$ref && refSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) delete schema[key]; + } + } + const parent = zodSchema._zod.parent; + if (parent && parent !== ref) { + flattenRef(parent); + const parentSeen = ctx.seen.get(parent); + if (parentSeen?.schema.$ref) { + schema.$ref = parentSeen.schema.$ref; + if (parentSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) delete schema[key]; + } + } + } + ctx.override({ + zodSchema, + jsonSchema: schema, + path: seen.path ?? [] + }); + }; + for (const entry of [...ctx.seen.entries()].reverse()) flattenRef(entry[0]); + const result = {}; + if (ctx.target === "draft-2020-12") result.$schema = "https://json-schema.org/draft/2020-12/schema"; + else if (ctx.target === "draft-07") result.$schema = "http://json-schema.org/draft-07/schema#"; + else if (ctx.target === "draft-04") result.$schema = "http://json-schema.org/draft-04/schema#"; + else if (ctx.target === "openapi-3.0") {} + if (ctx.external?.uri) { + const id = ctx.external.registry.get(schema)?.id; + if (!id) throw new Error("Schema is missing an `id` property"); + result.$id = ctx.external.uri(id); + } + Object.assign(result, root.def ?? root.schema); + const rootMetaId = ctx.metadataRegistry.get(schema)?.id; + if (rootMetaId !== void 0 && result.id === rootMetaId) delete result.id; + const defs = ctx.external?.defs ?? {}; + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.def && seen.defId) { + if (seen.def.id === seen.defId) delete seen.def.id; + defs[seen.defId] = seen.def; + } + } + if (ctx.external) {} else if (Object.keys(defs).length > 0) if (ctx.target === "draft-2020-12") result.$defs = defs; + else result.definitions = defs; + try { + const finalized = JSON.parse(JSON.stringify(result)); + Object.defineProperty(finalized, "~standard", { + value: { + ...schema["~standard"], + jsonSchema: { + input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), + output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) + } + }, + enumerable: false, + writable: false + }); + return finalized; + } catch (_err) { + throw new Error("Error converting schema to JSON."); + } + } + function isTransforming(_schema, _ctx) { + const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; + if (ctx.seen.has(_schema)) return false; + ctx.seen.add(_schema); + const def = _schema._zod.def; + if (def.type === "transform") return true; + if (def.type === "array") return isTransforming(def.element, ctx); + if (def.type === "set") return isTransforming(def.valueType, ctx); + if (def.type === "lazy") return isTransforming(def.getter(), ctx); + if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault") return isTransforming(def.innerType, ctx); + if (def.type === "intersection") return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); + if (def.type === "record" || def.type === "map") return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); + if (def.type === "pipe") { + if (_schema._zod.traits.has("$ZodCodec")) return true; + return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); + } + if (def.type === "object") { + for (const key in def.shape) if (isTransforming(def.shape[key], ctx)) return true; + return false; + } + if (def.type === "union") { + for (const option of def.options) if (isTransforming(option, ctx)) return true; + return false; + } + if (def.type === "tuple") { + for (const item of def.items) if (isTransforming(item, ctx)) return true; + if (def.rest && isTransforming(def.rest, ctx)) return true; + return false; + } + return false; + } + const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { + const { libraryOptions, target } = params ?? {}; + const ctx = initializeContext({ + ...libraryOptions ?? {}, + target, + io, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize(ctx, schema); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js + const formatMap = { + guid: "uuid", + url: "uri", + datetime: "date-time", + json_string: "json-string", + regex: "" + }; + const stringProcessor = (schema, ctx, _json, _params) => { + const json = _json; + json.type = "string"; + const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; + if (typeof minimum === "number") json.minLength = minimum; + if (typeof maximum === "number") json.maxLength = maximum; + if (format) { + json.format = formatMap[format] ?? format; + if (json.format === "") delete json.format; + if (format === "time") delete json.format; + } + if (contentEncoding) json.contentEncoding = contentEncoding; + if (patterns && patterns.size > 0) { + const regexes = [...patterns]; + if (regexes.length === 1) json.pattern = regexes[0].source; + else if (regexes.length > 1) json.allOf = [...regexes.map((regex) => ({ + ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, + pattern: regex.source + }))]; + } + }; + const numberProcessor = (schema, ctx, _json, _params) => { + const json = _json; + const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; + if (typeof format === "string" && format.includes("int")) json.type = "integer"; + else json.type = "number"; + const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); + const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); + const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; + if (exMin) if (legacy) { + json.minimum = exclusiveMinimum; + json.exclusiveMinimum = true; + } else json.exclusiveMinimum = exclusiveMinimum; + else if (typeof minimum === "number") json.minimum = minimum; + if (exMax) if (legacy) { + json.maximum = exclusiveMaximum; + json.exclusiveMaximum = true; + } else json.exclusiveMaximum = exclusiveMaximum; + else if (typeof maximum === "number") json.maximum = maximum; + if (typeof multipleOf === "number") json.multipleOf = multipleOf; + }; + const booleanProcessor = (_schema, _ctx, json, _params) => { + json.type = "boolean"; + }; + const bigintProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("BigInt cannot be represented in JSON Schema"); + }; + const symbolProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Symbols cannot be represented in JSON Schema"); + }; + const nullProcessor = (_schema, ctx, json, _params) => { + if (ctx.target === "openapi-3.0") { + json.type = "string"; + json.nullable = true; + json.enum = [null]; + } else json.type = "null"; + }; + const undefinedProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Undefined cannot be represented in JSON Schema"); + }; + const voidProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Void cannot be represented in JSON Schema"); + }; + const neverProcessor = (_schema, _ctx, json, _params) => { + json.not = {}; + }; + const anyProcessor = (_schema, _ctx, _json, _params) => {}; + const unknownProcessor = (_schema, _ctx, _json, _params) => {}; + const dateProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Date cannot be represented in JSON Schema"); + }; + const enumProcessor = (schema, _ctx, json, _params) => { + const def = schema._zod.def; + const values = getEnumValues(def.entries); + if (values.every((v) => typeof v === "number")) json.type = "number"; + if (values.every((v) => typeof v === "string")) json.type = "string"; + json.enum = values; + }; + const literalProcessor = (schema, ctx, json, _params) => { + const def = schema._zod.def; + const vals = []; + for (const val of def.values) if (val === void 0) { + if (ctx.unrepresentable === "throw") throw new Error("Literal `undefined` cannot be represented in JSON Schema"); + } else if (typeof val === "bigint") if (ctx.unrepresentable === "throw") throw new Error("BigInt literals cannot be represented in JSON Schema"); + else vals.push(Number(val)); + else vals.push(val); + if (vals.length === 0) {} else if (vals.length === 1) { + const val = vals[0]; + json.type = val === null ? "null" : typeof val; + if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") json.enum = [val]; + else json.const = val; + } else { + if (vals.every((v) => typeof v === "number")) json.type = "number"; + if (vals.every((v) => typeof v === "string")) json.type = "string"; + if (vals.every((v) => typeof v === "boolean")) json.type = "boolean"; + if (vals.every((v) => v === null)) json.type = "null"; + json.enum = vals; + } + }; + const nanProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("NaN cannot be represented in JSON Schema"); + }; + const templateLiteralProcessor = (schema, _ctx, json, _params) => { + const _json = json; + const pattern = schema._zod.pattern; + if (!pattern) throw new Error("Pattern not found in template literal"); + _json.type = "string"; + _json.pattern = pattern.source; + }; + const fileProcessor = (schema, _ctx, json, _params) => { + const _json = json; + const file = { + type: "string", + format: "binary", + contentEncoding: "binary" + }; + const { minimum, maximum, mime } = schema._zod.bag; + if (minimum !== void 0) file.minLength = minimum; + if (maximum !== void 0) file.maxLength = maximum; + if (mime) if (mime.length === 1) { + file.contentMediaType = mime[0]; + Object.assign(_json, file); + } else { + Object.assign(_json, file); + _json.anyOf = mime.map((m) => ({ contentMediaType: m })); + } + else Object.assign(_json, file); + }; + const successProcessor = (_schema, _ctx, json, _params) => { + json.type = "boolean"; + }; + const customProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Custom types cannot be represented in JSON Schema"); + }; + const functionProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Function types cannot be represented in JSON Schema"); + }; + const transformProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Transforms cannot be represented in JSON Schema"); + }; + const mapProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Map cannot be represented in JSON Schema"); + }; + const setProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Set cannot be represented in JSON Schema"); + }; + const arrayProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + const { minimum, maximum } = schema._zod.bag; + if (typeof minimum === "number") json.minItems = minimum; + if (typeof maximum === "number") json.maxItems = maximum; + json.type = "array"; + json.items = process(def.element, ctx, { + ...params, + path: [...params.path, "items"] + }); + }; + const objectProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + json.properties = {}; + const shape = def.shape; + for (const key in shape) json.properties[key] = process(shape[key], ctx, { + ...params, + path: [ + ...params.path, + "properties", + key + ] + }); + const allKeys = new Set(Object.keys(shape)); + const requiredKeys = new Set([...allKeys].filter((key) => { + const v = def.shape[key]._zod; + if (ctx.io === "input") return v.optin === void 0; + else return v.optout === void 0; + })); + if (requiredKeys.size > 0) json.required = Array.from(requiredKeys); + if (def.catchall?._zod.def.type === "never") json.additionalProperties = false; + else if (!def.catchall) { + if (ctx.io === "output") json.additionalProperties = false; + } else if (def.catchall) json.additionalProperties = process(def.catchall, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + }; + const unionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const isExclusive = def.inclusive === false; + const options = def.options.map((x, i) => process(x, ctx, { + ...params, + path: [ + ...params.path, + isExclusive ? "oneOf" : "anyOf", + i + ] + })); + if (isExclusive) json.oneOf = options; + else json.anyOf = options; + }; + const intersectionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const a = process(def.left, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 0 + ] + }); + const b = process(def.right, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 1 + ] + }); + const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; + json.allOf = [...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b]]; + }; + const tupleProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "array"; + const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; + const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; + const prefixItems = def.items.map((x, i) => process(x, ctx, { + ...params, + path: [ + ...params.path, + prefixPath, + i + ] + })); + const rest = def.rest ? process(def.rest, ctx, { + ...params, + path: [ + ...params.path, + restPath, + ...ctx.target === "openapi-3.0" ? [def.items.length] : [] + ] + }) : null; + if (ctx.target === "draft-2020-12") { + json.prefixItems = prefixItems; + if (rest) json.items = rest; + } else if (ctx.target === "openapi-3.0") { + json.items = { anyOf: prefixItems }; + if (rest) json.items.anyOf.push(rest); + json.minItems = prefixItems.length; + if (!rest) json.maxItems = prefixItems.length; + } else { + json.items = prefixItems; + if (rest) json.additionalItems = rest; + } + const { minimum, maximum } = schema._zod.bag; + if (typeof minimum === "number") json.minItems = minimum; + if (typeof maximum === "number") json.maxItems = maximum; + }; + const recordProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + const keyType = def.keyType; + const patterns = keyType._zod.bag?.patterns; + if (def.mode === "loose" && patterns && patterns.size > 0) { + const valueSchema = process(def.valueType, ctx, { + ...params, + path: [ + ...params.path, + "patternProperties", + "*" + ] + }); + json.patternProperties = {}; + for (const pattern of patterns) json.patternProperties[pattern.source] = valueSchema; + } else { + if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process(def.keyType, ctx, { + ...params, + path: [...params.path, "propertyNames"] + }); + json.additionalProperties = process(def.valueType, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + } + const keyValues = keyType._zod.values; + if (keyValues) { + const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); + if (validKeyValues.length > 0) json.required = validKeyValues; + } + }; + const nullableProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const inner = process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + if (ctx.target === "openapi-3.0") { + seen.ref = def.innerType; + json.nullable = true; + } else json.anyOf = [inner, { type: "null" }]; + }; + const nonoptionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const defaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.default = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const prefaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const catchProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + let catchValue; + try { + catchValue = def.catchValue(void 0); + } catch { + throw new Error("Dynamic catch values are not supported in JSON Schema"); + } + json.default = catchValue; + }; + const pipeProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + const inIsTransform = def.in._zod.traits.has("$ZodTransform"); + const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + const readonlyProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.readOnly = true; + }; + const promiseProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const optionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const lazyProcessor = (schema, ctx, _json, params) => { + const innerType = schema._zod.innerType; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + const allProcessors = { + string: stringProcessor, + number: numberProcessor, + boolean: booleanProcessor, + bigint: bigintProcessor, + symbol: symbolProcessor, + null: nullProcessor, + undefined: undefinedProcessor, + void: voidProcessor, + never: neverProcessor, + any: anyProcessor, + unknown: unknownProcessor, + date: dateProcessor, + enum: enumProcessor, + literal: literalProcessor, + nan: nanProcessor, + template_literal: templateLiteralProcessor, + file: fileProcessor, + success: successProcessor, + custom: customProcessor, + function: functionProcessor, + transform: transformProcessor, + map: mapProcessor, + set: setProcessor, + array: arrayProcessor, + object: objectProcessor, + union: unionProcessor, + intersection: intersectionProcessor, + tuple: tupleProcessor, + record: recordProcessor, + nullable: nullableProcessor, + nonoptional: nonoptionalProcessor, + default: defaultProcessor, + prefault: prefaultProcessor, + catch: catchProcessor, + pipe: pipeProcessor, + readonly: readonlyProcessor, + promise: promiseProcessor, + optional: optionalProcessor, + lazy: lazyProcessor + }; + function toJSONSchema(input, params) { + if ("_idmap" in input) { + const registry = input; + const ctx = initializeContext({ + ...params, + processors: allProcessors + }); + const defs = {}; + for (const entry of registry._idmap.entries()) { + const [_, schema] = entry; + process(schema, ctx); + } + const schemas = {}; + ctx.external = { + registry, + uri: params?.uri, + defs + }; + for (const entry of registry._idmap.entries()) { + const [key, schema] = entry; + extractDefs(ctx, schema); + schemas[key] = finalize(ctx, schema); + } + if (Object.keys(defs).length > 0) schemas.__shared = { [ctx.target === "draft-2020-12" ? "$defs" : "definitions"]: defs }; + return { schemas }; + } + const ctx = initializeContext({ + ...params, + processors: allProcessors + }); + process(input, ctx); + extractDefs(ctx, input); + return finalize(ctx, input); + } + //#endregion + //#region lib/types/service.js + /** + * Runtime registry for generated Typert reflection, Remote invocations, and + * dependency-inverted lookup/Context providers. It performs no TypeScript + * analysis or schema generation. + * @module @deepseek-ai/dsh-typert-registry + */ + /** + * Compose the global key of one generated schema. + * @param packageName - contributing npm package. + * @param name - schema export name. + * @returns `#`. + */ + function typertKey(packageName, name) { + return `${packageName}#${name}`; + } + /** + * Compose the identity of one package-face model. + * @param packageName - contributing npm package. + * @param face - independently compiled face. + * @returns `#`. + */ + function typertPackageKey(packageName, face) { + return `${packageName}#${face}`; + } + /** + * Compose the endpoint key used by local and Remote invocation registries. + * @param descriptor - invocation whose namespace and method form the endpoint. + * @returns `/`. + */ + function typertEndpoint(descriptor) { + return `${descriptor.namespace}/${descriptor.method}`; + } + var ChangeSource = class { + report; + listeners = /* @__PURE__ */ new Set(); + constructor(report) { + this.report = report; + } + subscribe(ctx, listener) { + const { listeners } = this; + return ctx.effect(function* () { + listeners.add(listener); + yield () => { + listeners.delete(listener); + }; + }, "typert registry subscription"); + } + emit(change) { + for (const listener of [...this.listeners]) try { + listener(change); + } catch (error) { + this.report(change, error); + } + } + }; + var DescriptorStore = class { + kind; + entries = /* @__PURE__ */ new Map(); + ids = /* @__PURE__ */ new Map(); + history = /* @__PURE__ */ new Set(); + changes; + constructor(kind, report) { + this.kind = kind; + this.changes = new ChangeSource(report); + } + validate(descriptors) { + const endpoints = /* @__PURE__ */ new Set(); + const ids = /* @__PURE__ */ new Set(); + for (const descriptor of descriptors) { + validateInvocation(descriptor); + const endpoint = typertEndpoint(descriptor); + if (endpoints.has(endpoint) || this.entries.has(endpoint)) throw new Error(`typert: ${this.kind} endpoint "${endpoint}" is already registered`); + if (ids.has(descriptor.id) || this.ids.has(descriptor.id)) throw new Error(`typert: ${this.kind} invocation id "${descriptor.id}" is already registered`); + endpoints.add(endpoint); + ids.add(descriptor.id); + } + } + commit(owner, descriptors) { + for (const descriptor of descriptors) { + const entry = { + descriptor, + owner + }; + const endpoint = typertEndpoint(descriptor); + this.entries.set(endpoint, entry); + this.ids.set(descriptor.id, entry); + this.history.add(endpoint); + } + for (const descriptor of descriptors) this.changes.emit({ + kind: this.kind, + key: typertEndpoint(descriptor) + }); + } + withdraw(owner, descriptors) { + const removed = []; + for (const descriptor of descriptors) { + const endpoint = typertEndpoint(descriptor); + const entry = this.entries.get(endpoint); + /* v8 ignore next -- duplicate registration is rejected, so no later owner can replace this entry before its effect disposes. */ + if (entry?.owner !== owner) continue; + this.entries.delete(endpoint); + /* v8 ignore next -- ids and endpoints are committed and withdrawn together under the same unique owner. */ + if (this.ids.get(descriptor.id) === entry) this.ids.delete(descriptor.id); + removed.push(endpoint); + } + for (const endpoint of removed) this.changes.emit({ + kind: this.kind, + key: endpoint + }); + } + get(endpoint) { + return this.entries.get(endpoint)?.descriptor; + } + hasSeen(endpoint) { + return this.history.has(endpoint); + } + list() { + return [...this.entries.values()].map((entry) => entry.descriptor); + } + subscribe(ctx, listener) { + return this.changes.subscribe(ctx, listener); + } + }; + var RemoteStore = class { + descriptors; + packages = /* @__PURE__ */ new Map(); + constructor(descriptors) { + this.descriptors = descriptors; + } + view(ctx) { + return { + register: (contribution) => this.register(ctx, contribution), + get: (endpoint) => this.descriptors.get(endpoint), + list: () => this.descriptors.list(), + subscribe: (listener) => this.descriptors.subscribe(ctx, listener) + }; + } + register(ctx, contribution) { + validateSegment("Remote package name", contribution.package); + if (this.packages.has(contribution.package)) throw new Error(`typert: Remote package "${contribution.package}" is already registered`); + this.descriptors.validate(contribution.descriptors); + const owner = {}; + const { packages, descriptors } = this; + return ctx.effect(function* () { + packages.set(contribution.package, owner); + descriptors.commit(owner, contribution.descriptors); + yield () => { + /* v8 ignore else -- duplicate package registration is rejected, so this effect remains the package's unique owner. */ + if (packages.get(contribution.package) === owner) packages.delete(contribution.package); + descriptors.withdraw(owner, contribution.descriptors); + }; + }, `typert.remotes.register(${JSON.stringify(contribution.package)})`); + } + }; + var LookupStore = class { + providers = /* @__PURE__ */ new Map(); + resolvers = /* @__PURE__ */ new Map(); + definitions = /* @__PURE__ */ new Map(); + changes; + constructor(report) { + this.changes = new ChangeSource(report); + } + view(ctx) { + return { + register: (key, provider) => this.register(ctx, key, provider), + configure: (key, resolver) => this.configure(ctx, key, resolver), + get: (key) => this.get(key), + definitions: () => [...this.definitions.values()], + keys: () => [...this.providers.keys()], + subscribe: (listener) => this.changes.subscribe(ctx, listener) + }; + } + get(key) { + const provider = this.providers.get(key)?.provider; + if (provider === void 0) return void 0; + const resolver = this.resolvers.get(key)?.provider; + if (resolver === void 0) return provider; + return { + parameter: provider.parameter, + wire: provider.wire, + hostTypeSymbol: provider.hostTypeSymbol, + wireTypeSymbol: provider.wireTypeSymbol, + resolve: (id) => resolver.resolve(id) + }; + } + configure(ctx, key, resolver) { + validateSegment("lookup key", key); + if (this.resolvers.has(key)) throw new Error(`typert: lookup "${key}" resolver is already configured`); + const entry = { + provider: { resolve: async (id) => resolver(id) }, + owner: {} + }; + const { resolvers, changes } = this; + return ctx.effect(function* () { + resolvers.set(key, entry); + changes.emit({ + kind: "lookup", + key + }); + yield () => { + /* v8 ignore next -- duplicate configuration is rejected, so this effect remains the key's unique owner. */ + if (resolvers.get(key) !== entry) return; + resolvers.delete(key); + changes.emit({ + kind: "lookup", + key + }); + }; + }, `typert.lookups.configure(${JSON.stringify(key)})`); + } + register(ctx, key, provider) { + validateSegment("lookup key", key); + validateSegment("lookup parameter", provider.parameter); + validateWireName("lookup wire field", provider.wire); + validateNonempty("lookup Host type symbol", provider.hostTypeSymbol); + validateNonempty("lookup wire type symbol", provider.wireTypeSymbol); + if (this.providers.has(key)) throw new Error(`typert: lookup "${key}" is already registered`); + const definition = { + key, + parameter: provider.parameter, + wire: provider.wire, + hostTypeSymbol: provider.hostTypeSymbol, + wireTypeSymbol: provider.wireTypeSymbol + }; + const known = this.definitions.get(key); + if (known !== void 0 && !lookupDefinitionEquals(known, definition)) throw new Error(`typert: lookup "${key}" changed its wire declaration during this registry lifetime`); + const entry = { + provider, + owner: {} + }; + const { definitions, providers, changes } = this; + return ctx.effect(function* () { + definitions.set(key, definition); + providers.set(key, entry); + changes.emit({ + kind: "lookup", + key + }); + yield () => { + /* v8 ignore next -- duplicate registration is rejected, so this effect remains the key's unique owner. */ + if (providers.get(key) !== entry) return; + providers.delete(key); + changes.emit({ + kind: "lookup", + key + }); + }; + }, `typert.lookups.register(${JSON.stringify(key)})`); + } + }; + function lookupDefinitionEquals(left, right) { + return left.parameter === right.parameter && left.wire === right.wire && left.hostTypeSymbol === right.hostTypeSymbol && left.wireTypeSymbol === right.wireTypeSymbol; + } + var ContextStore = class { + hosts = /* @__PURE__ */ new Map(); + hostResolvers = /* @__PURE__ */ new Map(); + clients = /* @__PURE__ */ new Map(); + changes; + constructor(report) { + this.changes = new ChangeSource(report); + } + view(ctx) { + return { + registerHost: (key, provider) => this.registerHost(ctx, key, provider), + configureHost: (key, resolver) => this.configureHost(ctx, key, resolver), + registerClient: (key, binder) => this.registerClient(ctx, key, binder), + getHost: (key) => this.getHost(key), + getClient: (key) => this.clients.get(key)?.provider, + subscribe: (listener) => this.changes.subscribe(ctx, listener) + }; + } + getHost(key) { + const provider = this.hosts.get(key)?.provider; + if (provider === void 0) return void 0; + const resolver = this.hostResolvers.get(key)?.provider; + if (resolver === void 0) return provider; + return { + wire: provider.wire, + wireTypeSymbol: provider.wireTypeSymbol, + resolve: (id) => resolver.resolve(id) + }; + } + configureHost(ctx, key, resolver) { + validateSegment("Context key", key); + if (this.hostResolvers.has(key)) throw new Error(`typert: host-context "${key}" resolver is already configured`); + const entry = { + provider: { resolve: async (id) => resolver(id) }, + owner: {} + }; + const { hostResolvers, changes } = this; + return ctx.effect(function* () { + hostResolvers.set(key, entry); + changes.emit({ + kind: "host-context", + key + }); + yield () => { + /* v8 ignore next -- duplicate configuration is rejected, so this effect remains the key's unique owner. */ + if (hostResolvers.get(key) !== entry) return; + hostResolvers.delete(key); + changes.emit({ + kind: "host-context", + key + }); + }; + }, `typert.contexts.configureHost(${JSON.stringify(key)})`); + } + registerHost(ctx, key, provider) { + validateSegment("Context key", key); + validateWireName("Context wire field", provider.wire); + validateNonempty("Context wire type symbol", provider.wireTypeSymbol); + return this.registerProvider(ctx, this.hosts, "host-context", key, provider); + } + registerClient(ctx, key, binder) { + validateSegment("Context key", key); + return this.registerProvider(ctx, this.clients, "client-context", key, binder); + } + registerProvider(ctx, table, kind, key, provider) { + if (table.has(key)) throw new Error(`typert: ${kind} provider "${key}" is already registered`); + const entry = { + provider, + owner: {} + }; + const { changes } = this; + return ctx.effect(function* () { + table.set(key, entry); + changes.emit({ + kind, + key + }); + yield () => { + /* v8 ignore next -- duplicate registration is rejected, so this effect remains the key's unique owner. */ + if (table.get(key) !== entry) return; + table.delete(key); + changes.emit({ + kind, + key + }); + }; + }, `typert.contexts.register(${JSON.stringify(key)})`); + } + }; + /** + * Registry of generated schemas, package reflection, invocations, and Remote + * dependency providers. + * @typert service typert + */ + var TypertRegistry = class extends _deepseek_ai_cordis.Service { + schemas = /* @__PURE__ */ new Map(); + packages = /* @__PURE__ */ new Map(); + localStore; + remoteStore; + lookupStore; + contextStore; + constructor(ctx) { + super(ctx, "typert"); + const report = (change, error) => { + ctx.logger.warn(`typert: ${change.kind} observer for "${change.key}" failed`); + ctx.logger.warn(error); + }; + this.localStore = new DescriptorStore("local", report); + this.remoteStore = new RemoteStore(new DescriptorStore("remote", report)); + this.lookupStore = new LookupStore(report); + this.contextStore = new ContextStore(report); + } + /** Current-environment invocation definitions. */ + get local() { + const ctx = this.ctx; + return { + get: (endpoint) => this.localStore.get(endpoint), + hasSeen: (endpoint) => this.localStore.hasSeen(endpoint), + list: () => this.localStore.list(), + subscribe: (listener) => this.localStore.subscribe(ctx, listener) + }; + } + /** Consumer-selected Remote definitions. */ + get remotes() { + return this.remoteStore.view(this.ctx); + } + /** Host object lookup providers. */ + get lookups() { + return this.lookupStore.view(this.ctx); + } + /** Host Context providers and Client Context binders. */ + get contexts() { + return this.contextStore.view(this.ctx); + } + /** + * Register one generated contribution atomically for the calling fiber. + * Duplicate package-face identities, schemas, invocation ids, or endpoints + * reject the whole batch. + * @param contribution - generated schemas, reflection, and Host invocations. + * @returns the exact effect disposer that removes this contribution. + */ + register(contribution) { + const packageRecord = this.validatePackage(contribution); + const schemaRecords = this.validateSchemas(contribution); + const invocations = contribution.invocations; + this.localStore.validate(invocations); + const owner = {}; + const { schemas, packages, localStore } = this; + return this.ctx.effect(function* () { + packages.set(packageRecord.key, packageRecord); + for (const record of schemaRecords) schemas.set(record.key, record); + localStore.commit(owner, invocations); + yield () => { + /* v8 ignore else -- duplicate package-face registration is rejected, so this effect remains its unique owner. */ + if (packages.get(packageRecord.key) === packageRecord) packages.delete(packageRecord.key); + for (const record of schemaRecords) + /* v8 ignore else -- duplicate schema registration is rejected, so this contribution remains each record's unique owner. */ + if (schemas.get(record.key) === record) schemas.delete(record.key); + localStore.withdraw(owner, invocations); + }; + }, "typert.register()"); + } + /** + * Look up one schema by `#`. + * @param key - global schema key. + * @returns the live schema record, or `undefined` when absent. + */ + get(key) { + return this.schemas.get(key); + } + /** + * Resolve one required schema. + * @param key - global schema key. + * @returns the live schema record. + * @throws when the key is malformed, the package face is absent, or the schema is not contributed. + */ + resolve(key) { + const record = this.schemas.get(key); + if (record !== void 0) return record; + const hash = key.indexOf("#"); + if (hash <= 0 || hash === key.length - 1) throw new Error(`typert: invalid schema key "${key}" — expected "#"`); + const packageName = key.slice(0, hash); + if ([...this.packages.values()].some((candidate) => candidate.package === packageName)) throw new Error(`typert: cannot resolve "${key}" — package "${packageName}" is registered but contributes no schema named "${key.slice(hash + 1)}"`); + throw new Error(`typert: cannot resolve "${key}" — package "${packageName}" has no registered contribution`); + } + /** + * Enumerate live schemas in registration order. + * @param filter - optional package and face restriction. + * @returns matching schema records. + */ + list(filter = {}) { + return [...this.schemas.values()].filter((record) => matches(record, filter)); + } + /** + * Look up generated reflection for one package face. + * @param packageName - exact npm package name. + * @param face - face to query; defaults to the host runtime. + * @returns the live package record, or `undefined` when absent. + */ + getPackage(packageName, face = "host") { + return this.packages.get(typertPackageKey(packageName, face)); + } + /** + * Enumerate generated package reflection in registration order. + * @param filter - optional package and face restriction. + * @returns matching package records. + */ + listPackages(filter = {}) { + return [...this.packages.values()].filter((record) => matches(record, filter)); + } + /** + * Project a live Zod schema to JSON Schema without caching the result. + * @param key - global schema key. + * @param params - Zod projection parameters. + * @returns a fresh JSON Schema document. + */ + toJSONSchema(key, params) { + return toJSONSchema(this.resolve(key).schema, params); + } + validatePackage(contribution) { + validateSegment("package name", contribution.package); + const face = contribution.face; + if (face !== "host" && face !== "client") throw new Error(`typert: invalid face ${JSON.stringify(face)} — expected "host" or "client"`); + const key = typertPackageKey(contribution.package, contribution.face); + if (this.packages.has(key)) throw new Error(`typert: package face "${key}" is already registered`); + return { + package: contribution.package, + face, + key, + model: contribution.model + }; + } + validateSchemas(contribution) { + const records = []; + const batch = /* @__PURE__ */ new Set(); + for (const schema of contribution.schemas) { + validateSegment("schema name", schema.name); + const key = typertKey(contribution.package, schema.name); + if (batch.has(key) || this.schemas.has(key)) throw new Error(`typert: schema "${key}" is already registered`); + batch.add(key); + records.push({ + ...schema, + package: contribution.package, + face: contribution.face, + key + }); + } + return records; + } + }; + function matches(record, filter) { + return (filter.package === void 0 || record.package === filter.package) && (filter.face === void 0 || record.face === filter.face); + } + function validateInvocation(descriptor) { + validateNonempty("invocation id", descriptor.id); + validateSegment("invocation service key", descriptor.service); + validateWireName("invocation namespace", descriptor.namespace); + validateWireName("invocation method", descriptor.method); + if (descriptor.implementation !== void 0) validateWireName("invocation implementation method", descriptor.implementation); + validateCodec(descriptor.result, `${descriptor.id} result`); + const wires = /* @__PURE__ */ new Set(); + for (const parameter of descriptor.parameters) { + validateWireName("parameter name", parameter.name); + validateWireName("parameter wire field", parameter.wire); + if (wires.has(parameter.wire)) throw new Error(`typert: invocation "${descriptor.id}" repeats wire field "${parameter.wire}"`); + wires.add(parameter.wire); + if (parameter.source === "lookup") { + if (parameter.acceptsUndefined !== void 0) throw new Error(`typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" cannot accept undefined`); + if (parameter.lookup === void 0) throw new Error(`typert: invocation "${descriptor.id}" lookup parameter "${parameter.name}" has no lookup key`); + validateSegment("lookup key", parameter.lookup); + } else if (parameter.lookup !== void 0) throw new Error(`typert: invocation "${descriptor.id}" JSON parameter "${parameter.name}" declares a lookup key`); + validateCodec(parameter.codec, `${descriptor.id} parameter ${parameter.name}`); + } + const cancellation = descriptor.cancellation; + if (cancellation !== void 0 && cancellation.parameter !== "signal") throw new Error(`typert: invocation "${descriptor.id}" cancellation parameter must be "signal"`); + if (descriptor.scope !== void 0) { + if (descriptor.invocation.kind !== "direct") throw new Error(`typert: invocation "${descriptor.id}" Context receiver cannot declare a direct scope projection`); + validateSegment("scope Context key", descriptor.scope.context); + validateWireName("scope wire field", descriptor.scope.wire); + const lookups = descriptor.parameters.filter((candidate) => candidate.source === "lookup"); + const parameter = lookups.length === 1 ? lookups[0] : void 0; + if (parameter === void 0 || parameter.wire !== descriptor.scope.wire || parameter.lookup !== descriptor.scope.context) throw new Error(`typert: invocation "${descriptor.id}" scope wire "${descriptor.scope.wire}" must select its only lookup parameter`); + } + if (descriptor.invocation.kind === "context") { + validateSegment("Context key", descriptor.invocation.context); + validateWireName("Context wire field", descriptor.invocation.wire); + if (wires.has(descriptor.invocation.wire)) throw new Error(`typert: invocation "${descriptor.id}" repeats wire field "${descriptor.invocation.wire}"`); + validateCodec(descriptor.invocation.codec, `${descriptor.id} Context`); + } + } + function validateCodec(codec, subject) { + if (codec.mode === "src-json") return; + validateNonempty(`${subject} type symbol`, codec.typeSymbol); + if (typeof codec.schema.parse !== "function") throw new Error(`typert: ${subject} strict codec has no parse() method`); + } + function validateWireName(subject, value) { + if (value === "." || value === ".." || !/^[A-Za-z0-9_$.-]+$/.test(value)) throw new Error(`typert: invalid ${subject} "${value}" — must contain only RPC endpoint segment characters`); + } + function validateSegment(subject, value) { + if (value.length === 0 || value.includes("#")) throw new Error(`typert: invalid ${subject} "${value}" — must be nonempty and must not contain "#"`); + } + function validateNonempty(subject, value) { + if (value.length === 0) throw new Error(`typert: invalid ${subject} — must be nonempty`); + } + //#endregion + //#region lib/types/client/index.js + /** Browser face of the shared Typert runtime registry. */ + /** Required services: none; this is the Client reflection root. */ + const inject = []; + /** + * Install the same registry implementation used by the Host face. + * @param ctx - Client Cordis root. + */ + function apply(ctx) { + new TypertRegistry(ctx); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000007 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000007 new file mode 100644 index 0000000..461490b --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000007 @@ -0,0 +1,5937 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-api-remotes", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js + var _a$1; + function $constructor(name, initializer, params) { + function init(inst, def) { + if (!inst._zod) Object.defineProperty(inst, "_zod", { + value: { + def, + constr: _, + traits: /* @__PURE__ */ new Set() + }, + enumerable: false + }); + if (inst._zod.traits.has(name)) return; + inst._zod.traits.add(name); + initializer(inst, def); + const proto = _.prototype; + const keys = Object.keys(proto); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + if (!(k in inst)) inst[k] = proto[k].bind(inst); + } + } + const Parent = params?.Parent ?? Object; + class Definition extends Parent {} + Object.defineProperty(Definition, "name", { value: name }); + function _(def) { + var _a; + const inst = params?.Parent ? new Definition() : this; + init(inst, def); + (_a = inst._zod).deferred ?? (_a.deferred = []); + for (const fn of inst._zod.deferred) fn(); + return inst; + } + Object.defineProperty(_, "init", { value: init }); + Object.defineProperty(_, Symbol.hasInstance, { value: (inst) => { + if (params?.Parent && inst instanceof params.Parent) return true; + return inst?._zod?.traits?.has(name); + } }); + Object.defineProperty(_, "name", { value: name }); + return _; + } + var $ZodAsyncError = class extends Error { + constructor() { + super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); + } + }; + var $ZodEncodeError = class extends Error { + constructor(name) { + super(`Encountered unidirectional transform during encode: ${name}`); + this.name = "ZodEncodeError"; + } + }; + (_a$1 = globalThis).__zod_globalConfig ?? (_a$1.__zod_globalConfig = {}); + const globalConfig = globalThis.__zod_globalConfig; + function config(newConfig) { + if (newConfig) Object.assign(globalConfig, newConfig); + return globalConfig; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js + function getEnumValues(entries) { + const numericValues = Object.values(entries).filter((v) => typeof v === "number"); + return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); + } + function jsonStringifyReplacer(_, value) { + if (typeof value === "bigint") return value.toString(); + return value; + } + function cached(getter) { + return { get value() { + { + const value = getter(); + Object.defineProperty(this, "value", { value }); + return value; + } + throw new Error("cached value already set"); + } }; + } + function nullish(input) { + return input === null || input === void 0; + } + function cleanRegex(source) { + const start = source.startsWith("^") ? 1 : 0; + const end = source.endsWith("$") ? source.length - 1 : source.length; + return source.slice(start, end); + } + function floatSafeRemainder(val, step) { + const ratio = val / step; + const roundedRatio = Math.round(ratio); + const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1); + if (Math.abs(ratio - roundedRatio) < tolerance) return 0; + return ratio - roundedRatio; + } + const EVALUATING = /* @__PURE__*/ Symbol("evaluating"); + function defineLazy(object, key, getter) { + let value = void 0; + Object.defineProperty(object, key, { + get() { + if (value === EVALUATING) return; + if (value === void 0) { + value = EVALUATING; + value = getter(); + } + return value; + }, + set(v) { + Object.defineProperty(object, key, { value: v }); + }, + configurable: true + }); + } + function assignProp(target, prop, value) { + Object.defineProperty(target, prop, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + function mergeDefs(...defs) { + const mergedDescriptors = {}; + for (const def of defs) Object.assign(mergedDescriptors, Object.getOwnPropertyDescriptors(def)); + return Object.defineProperties({}, mergedDescriptors); + } + function esc(str) { + return JSON.stringify(str); + } + function slugify(input) { + return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); + } + const captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => {}; + function isObject(data) { + return typeof data === "object" && data !== null && !Array.isArray(data); + } + const allowsEval = /* @__PURE__*/ cached(() => { + if (globalConfig.jitless) return false; + if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) return false; + try { + new Function(""); + return true; + } catch (_) { + return false; + } + }); + function isPlainObject(o) { + if (isObject(o) === false) return false; + const ctor = o.constructor; + if (ctor === void 0) return true; + if (typeof ctor !== "function") return true; + const prot = ctor.prototype; + if (isObject(prot) === false) return false; + if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) return false; + return true; + } + function shallowClone(o) { + if (isPlainObject(o)) return { ...o }; + if (Array.isArray(o)) return [...o]; + if (o instanceof Map) return new Map(o); + if (o instanceof Set) return new Set(o); + return o; + } + const propertyKeyTypes = /* @__PURE__*/ new Set([ + "string", + "number", + "symbol" + ]); + function escapeRegex(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function clone(inst, def, params) { + const cl = new inst._zod.constr(def ?? inst._zod.def); + if (!def || params?.parent) cl._zod.parent = inst; + return cl; + } + function normalizeParams(_params) { + const params = _params; + if (!params) return {}; + if (typeof params === "string") return { error: () => params }; + if (params?.message !== void 0) { + if (params?.error !== void 0) throw new Error("Cannot specify both `message` and `error` params"); + params.error = params.message; + } + delete params.message; + if (typeof params.error === "string") return { + ...params, + error: () => params.error + }; + return params; + } + function optionalKeys(shape) { + return Object.keys(shape).filter((k) => { + return shape[k]._zod.optin === "optional" && shape[k]._zod.optout === "optional"; + }); + } + const NUMBER_FORMAT_RANGES = { + safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], + int32: [-2147483648, 2147483647], + uint32: [0, 4294967295], + float32: [-34028234663852886e22, 34028234663852886e22], + float64: [-Number.MAX_VALUE, Number.MAX_VALUE] + }; + function pick(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".pick() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = {}; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + newShape[key] = currDef.shape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function omit(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".omit() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = { ...schema._zod.def.shape }; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + delete newShape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function extend(schema, shape) { + if (!isPlainObject(shape)) throw new Error("Invalid input to extend: expected a plain object"); + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) { + const existingShape = schema._zod.def.shape; + for (const key in shape) if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); + } + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function safeExtend(schema, shape) { + if (!isPlainObject(shape)) throw new Error("Invalid input to safeExtend: expected a plain object"); + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function merge(a, b) { + if (a._zod.def.checks?.length) throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); + return clone(a, mergeDefs(a._zod.def, { + get shape() { + const _shape = { + ...a._zod.def.shape, + ...b._zod.def.shape + }; + assignProp(this, "shape", _shape); + return _shape; + }, + get catchall() { + return b._zod.def.catchall; + }, + checks: b._zod.def.checks ?? [] + })); + } + function partial(Class, schema, mask) { + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) throw new Error(".partial() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in oldShape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + } + else for (const key in oldShape) shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + assignProp(this, "shape", shape); + return shape; + }, + checks: [] + })); + } + function required(Class, schema, mask) { + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + } + else for (const key in oldShape) shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + assignProp(this, "shape", shape); + return shape; + } })); + } + function aborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue !== true) return true; + return false; + } + function explicitlyAborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue === false) return true; + return false; + } + function prefixIssues(path, issues) { + return issues.map((iss) => { + var _a; + (_a = iss).path ?? (_a.path = []); + iss.path.unshift(path); + return iss; + }); + } + function unwrapMessage(message) { + return typeof message === "string" ? message : message?.message; + } + function finalizeIssue(iss, ctx, config) { + const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config.customError?.(iss)) ?? unwrapMessage(config.localeError?.(iss)) ?? "Invalid input"; + const { inst: _inst, continue: _continue, input: _input, ...rest } = iss; + rest.path ?? (rest.path = []); + rest.message = message; + if (ctx?.reportInput) rest.input = _input; + return rest; + } + function getLengthableOrigin(input) { + if (Array.isArray(input)) return "array"; + if (typeof input === "string") return "string"; + return "unknown"; + } + function issue(...args) { + const [iss, input, inst] = args; + if (typeof iss === "string") return { + message: iss, + code: "custom", + input, + inst + }; + return { ...iss }; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js + const initializer$1 = (inst, def) => { + inst.name = "$ZodError"; + Object.defineProperty(inst, "_zod", { + value: inst._zod, + enumerable: false + }); + Object.defineProperty(inst, "issues", { + value: def, + enumerable: false + }); + inst.message = JSON.stringify(def, jsonStringifyReplacer, 2); + Object.defineProperty(inst, "toString", { + value: () => inst.message, + enumerable: false + }); + }; + const $ZodError = $constructor("$ZodError", initializer$1); + const $ZodRealError = $constructor("$ZodError", initializer$1, { Parent: Error }); + function flattenError(error, mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of error.issues) if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else formErrors.push(mapper(sub)); + return { + formErrors, + fieldErrors + }; + } + function formatError(error, mapper = (issue) => issue.message) { + const fieldErrors = { _errors: [] }; + const processError = (error, path = []) => { + for (const issue of error.issues) if (issue.code === "invalid_union" && issue.errors.length) issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path])); + else if (issue.code === "invalid_key") processError({ issues: issue.issues }, [...path, ...issue.path]); + else if (issue.code === "invalid_element") processError({ issues: issue.issues }, [...path, ...issue.path]); + else { + const fullpath = [...path, ...issue.path]; + if (fullpath.length === 0) fieldErrors._errors.push(mapper(issue)); + else { + let curr = fieldErrors; + let i = 0; + while (i < fullpath.length) { + const el = fullpath[i]; + if (!(i === fullpath.length - 1)) curr[el] = curr[el] || { _errors: [] }; + else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i++; + } + } + } + }; + processError(error); + return fieldErrors; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js + const _parse = (_Err) => (schema, value, _ctx, _params) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + if (result.issues.length) { + const e = new ((_params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, _params?.callee); + throw e; + } + return result.value; + }; + const _parseAsync = (_Err) => async (schema, value, _ctx, params) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + if (result.issues.length) { + const e = new ((params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, params?.callee); + throw e; + } + return result.value; + }; + const _safeParse = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + return result.issues.length ? { + success: false, + error: new (_Err ?? $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParse$1 = /* @__PURE__*/ _safeParse($ZodRealError); + const _safeParseAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + return result.issues.length ? { + success: false, + error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParseAsync$1 = /* @__PURE__*/ _safeParseAsync($ZodRealError); + const _encode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parse(_Err)(schema, value, ctx); + }; + const _decode = (_Err) => (schema, value, _ctx) => { + return _parse(_Err)(schema, value, _ctx); + }; + const _encodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parseAsync(_Err)(schema, value, ctx); + }; + const _decodeAsync = (_Err) => async (schema, value, _ctx) => { + return _parseAsync(_Err)(schema, value, _ctx); + }; + const _safeEncode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParse(_Err)(schema, value, ctx); + }; + const _safeDecode = (_Err) => (schema, value, _ctx) => { + return _safeParse(_Err)(schema, value, _ctx); + }; + const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParseAsync(_Err)(schema, value, ctx); + }; + const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => { + return _safeParseAsync(_Err)(schema, value, _ctx); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const cuid = /^[cC][0-9a-z]{6,}$/; + const cuid2 = /^[0-9a-z]+$/; + const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/; + const xid = /^[0-9a-vA-V]{20}$/; + const ksuid = /^[A-Za-z0-9]{27}$/; + const nanoid = /^[a-zA-Z0-9_-]{21}$/; + /** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */ + const duration$1 = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; + /** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */ + const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/; + /** Returns a regex for validating an RFC 9562/4122 UUID. + * + * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */ + const uuid = (version) => { + if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; + return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); + }; + /** Practical email validation */ + const email = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; + const _emoji$1 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; + function emoji() { + return new RegExp(_emoji$1, "u"); + } + const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; + const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; + const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/; + const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; + const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; + const base64url = /^[A-Za-z0-9_-]*$/; + const httpProtocol = /^https?$/; + const e164 = /^\+[1-9]\d{6,14}$/; + const dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`; + const date$1 = /*@__PURE__*/ new RegExp(`^${dateSource}$`); + function timeSource(args) { + const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; + return typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; + } + function time$1(args) { + return new RegExp(`^${timeSource(args)}$`); + } + function datetime$1(args) { + const time = timeSource({ precision: args.precision }); + const opts = ["Z"]; + if (args.local) opts.push(""); + if (args.offset) opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); + const timeRegex = `${time}(?:${opts.join("|")})`; + return new RegExp(`^${dateSource}T(?:${timeRegex})$`); + } + const string$1 = (params) => { + const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; + return new RegExp(`^${regex}$`); + }; + const integer = /^-?\d+$/; + const number$1 = /^-?\d+(?:\.\d+)?$/; + const boolean$1 = /^(?:true|false)$/i; + const _undefined$2 = /^undefined$/i; + const lowercase = /^[^A-Z]*$/; + const uppercase = /^[^a-z]*$/; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js + const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => { + var _a; + inst._zod ?? (inst._zod = {}); + inst._zod.def = def; + (_a = inst._zod).onattach ?? (_a.onattach = []); + }); + const numericOriginMap = { + number: "number", + bigint: "bigint", + object: "date" + }; + const $ZodCheckLessThan = /*@__PURE__*/ $constructor("$ZodCheckLessThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY; + if (def.value < curr) if (def.inclusive) bag.maximum = def.value; + else bag.exclusiveMaximum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value <= def.value : payload.value < def.value) return; + payload.issues.push({ + origin, + code: "too_big", + maximum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckGreaterThan = /*@__PURE__*/ $constructor("$ZodCheckGreaterThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY; + if (def.value > curr) if (def.inclusive) bag.minimum = def.value; + else bag.exclusiveMinimum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value >= def.value : payload.value > def.value) return; + payload.issues.push({ + origin, + code: "too_small", + minimum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMultipleOf = /*@__PURE__*/ $constructor("$ZodCheckMultipleOf", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + var _a; + (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value); + }); + inst._zod.check = (payload) => { + if (typeof payload.value !== typeof def.value) throw new Error("Cannot mix number and bigint in multiple_of check."); + if (typeof payload.value === "bigint" ? payload.value % def.value === BigInt(0) : floatSafeRemainder(payload.value, def.value) === 0) return; + payload.issues.push({ + origin: typeof payload.value, + code: "not_multiple_of", + divisor: def.value, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckNumberFormat = /*@__PURE__*/ $constructor("$ZodCheckNumberFormat", (inst, def) => { + $ZodCheck.init(inst, def); + def.format = def.format || "float64"; + const isInt = def.format?.includes("int"); + const origin = isInt ? "int" : "number"; + const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + bag.minimum = minimum; + bag.maximum = maximum; + if (isInt) bag.pattern = integer; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (isInt) { + if (!Number.isInteger(input)) { + payload.issues.push({ + expected: origin, + format: def.format, + code: "invalid_type", + continue: false, + input, + inst + }); + return; + } + if (!Number.isSafeInteger(input)) { + if (input > 0) payload.issues.push({ + input, + code: "too_big", + maximum: Number.MAX_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + else payload.issues.push({ + input, + code: "too_small", + minimum: Number.MIN_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + return; + } + } + if (input < minimum) payload.issues.push({ + origin: "number", + input, + code: "too_small", + minimum, + inclusive: true, + inst, + continue: !def.abort + }); + if (input > maximum) payload.issues.push({ + origin: "number", + input, + code: "too_big", + maximum, + inclusive: true, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMaxLength = /*@__PURE__*/ $constructor("$ZodCheckMaxLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY; + if (def.maximum < curr) inst._zod.bag.maximum = def.maximum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length <= def.maximum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_big", + maximum: def.maximum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMinLength = /*@__PURE__*/ $constructor("$ZodCheckMinLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY; + if (def.minimum > curr) inst._zod.bag.minimum = def.minimum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length >= def.minimum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_small", + minimum: def.minimum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLengthEquals = /*@__PURE__*/ $constructor("$ZodCheckLengthEquals", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.minimum = def.length; + bag.maximum = def.length; + bag.length = def.length; + }); + inst._zod.check = (payload) => { + const input = payload.value; + const length = input.length; + if (length === def.length) return; + const origin = getLengthableOrigin(input); + const tooBig = length > def.length; + payload.issues.push({ + origin, + ...tooBig ? { + code: "too_big", + maximum: def.length + } : { + code: "too_small", + minimum: def.length + }, + inclusive: true, + exact: true, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStringFormat = /*@__PURE__*/ $constructor("$ZodCheckStringFormat", (inst, def) => { + var _a, _b; + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + if (def.pattern) { + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(def.pattern); + } + }); + if (def.pattern) (_a = inst._zod).check ?? (_a.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: def.format, + input: payload.value, + ...def.pattern ? { pattern: def.pattern.toString() } : {}, + inst, + continue: !def.abort + }); + }); + else (_b = inst._zod).check ?? (_b.check = () => {}); + }); + const $ZodCheckRegex = /*@__PURE__*/ $constructor("$ZodCheckRegex", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + inst._zod.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "regex", + input: payload.value, + pattern: def.pattern.toString(), + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLowerCase = /*@__PURE__*/ $constructor("$ZodCheckLowerCase", (inst, def) => { + def.pattern ?? (def.pattern = lowercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckUpperCase = /*@__PURE__*/ $constructor("$ZodCheckUpperCase", (inst, def) => { + def.pattern ?? (def.pattern = uppercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckIncludes = /*@__PURE__*/ $constructor("$ZodCheckIncludes", (inst, def) => { + $ZodCheck.init(inst, def); + const escapedRegex = escapeRegex(def.includes); + const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position}}${escapedRegex}` : escapedRegex); + def.pattern = pattern; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.includes(def.includes, def.position)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "includes", + includes: def.includes, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStartsWith = /*@__PURE__*/ $constructor("$ZodCheckStartsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.startsWith(def.prefix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "starts_with", + prefix: def.prefix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckEndsWith = /*@__PURE__*/ $constructor("$ZodCheckEndsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.endsWith(def.suffix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "ends_with", + suffix: def.suffix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckOverwrite = /*@__PURE__*/ $constructor("$ZodCheckOverwrite", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + payload.value = def.tx(payload.value); + }; + }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js + var Doc = class { + constructor(args = []) { + this.content = []; + this.indent = 0; + if (this) this.args = args; + } + indented(fn) { + this.indent += 1; + fn(this); + this.indent -= 1; + } + write(arg) { + if (typeof arg === "function") { + arg(this, { execution: "sync" }); + arg(this, { execution: "async" }); + return; + } + const lines = arg.split("\n").filter((x) => x); + const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); + const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); + for (const line of dedented) this.content.push(line); + } + compile() { + const F = Function; + const args = this?.args; + const lines = [...(this?.content ?? [``]).map((x) => ` ${x}`)]; + return new F(...args, lines.join("\n")); + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js + const version = { + major: 4, + minor: 4, + patch: 3 + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js + const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => { + var _a; + inst ?? (inst = {}); + inst._zod.def = def; + inst._zod.bag = inst._zod.bag || {}; + inst._zod.version = version; + const checks = [...inst._zod.def.checks ?? []]; + if (inst._zod.traits.has("$ZodCheck")) checks.unshift(inst); + for (const ch of checks) for (const fn of ch._zod.onattach) fn(inst); + if (checks.length === 0) { + (_a = inst._zod).deferred ?? (_a.deferred = []); + inst._zod.deferred?.push(() => { + inst._zod.run = inst._zod.parse; + }); + } else { + const runChecks = (payload, checks, ctx) => { + let isAborted = aborted(payload); + let asyncResult; + for (const ch of checks) { + if (ch._zod.def.when) { + if (explicitlyAborted(payload)) continue; + if (!ch._zod.def.when(payload)) continue; + } else if (isAborted) continue; + const currLen = payload.issues.length; + const _ = ch._zod.check(payload); + if (_ instanceof Promise && ctx?.async === false) throw new $ZodAsyncError(); + if (asyncResult || _ instanceof Promise) asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { + await _; + if (payload.issues.length === currLen) return; + if (!isAborted) isAborted = aborted(payload, currLen); + }); + else { + if (payload.issues.length === currLen) continue; + if (!isAborted) isAborted = aborted(payload, currLen); + } + } + if (asyncResult) return asyncResult.then(() => { + return payload; + }); + return payload; + }; + const handleCanaryResult = (canary, payload, ctx) => { + if (aborted(canary)) { + canary.aborted = true; + return canary; + } + const checkResult = runChecks(payload, checks, ctx); + if (checkResult instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx)); + } + return inst._zod.parse(checkResult, ctx); + }; + inst._zod.run = (payload, ctx) => { + if (ctx.skipChecks) return inst._zod.parse(payload, ctx); + if (ctx.direction === "backward") { + const canary = inst._zod.parse({ + value: payload.value, + issues: [] + }, { + ...ctx, + skipChecks: true + }); + if (canary instanceof Promise) return canary.then((canary) => { + return handleCanaryResult(canary, payload, ctx); + }); + return handleCanaryResult(canary, payload, ctx); + } + const result = inst._zod.parse(payload, ctx); + if (result instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return result.then((result) => runChecks(result, checks, ctx)); + } + return runChecks(result, checks, ctx); + }; + } + defineLazy(inst, "~standard", () => ({ + validate: (value) => { + try { + const r = safeParse$1(inst, value); + return r.success ? { value: r.data } : { issues: r.error?.issues }; + } catch (_) { + return safeParseAsync$1(inst, value).then((r) => r.success ? { value: r.data } : { issues: r.error?.issues }); + } + }, + vendor: "zod", + version: 1 + })); + }); + const $ZodString = /*@__PURE__*/ $constructor("$ZodString", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = [...inst?._zod.bag?.patterns ?? []].pop() ?? string$1(inst._zod.bag); + inst._zod.parse = (payload, _) => { + if (def.coerce) try { + payload.value = String(payload.value); + } catch (_) {} + if (typeof payload.value === "string") return payload; + payload.issues.push({ + expected: "string", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + const $ZodStringFormat = /*@__PURE__*/ $constructor("$ZodStringFormat", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + $ZodString.init(inst, def); + }); + const $ZodGUID = /*@__PURE__*/ $constructor("$ZodGUID", (inst, def) => { + def.pattern ?? (def.pattern = guid); + $ZodStringFormat.init(inst, def); + }); + const $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => { + if (def.version) { + const v = { + v1: 1, + v2: 2, + v3: 3, + v4: 4, + v5: 5, + v6: 6, + v7: 7, + v8: 8 + }[def.version]; + if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`); + def.pattern ?? (def.pattern = uuid(v)); + } else def.pattern ?? (def.pattern = uuid()); + $ZodStringFormat.init(inst, def); + }); + const $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => { + def.pattern ?? (def.pattern = email); + $ZodStringFormat.init(inst, def); + }); + const $ZodURL = /*@__PURE__*/ $constructor("$ZodURL", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + try { + const trimmed = payload.value.trim(); + if (!def.normalize && def.protocol?.source === httpProtocol.source) { + if (!/^https?:\/\//i.test(trimmed)) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid URL format", + input: payload.value, + inst, + continue: !def.abort + }); + return; + } + } + const url = new URL(trimmed); + if (def.hostname) { + def.hostname.lastIndex = 0; + if (!def.hostname.test(url.hostname)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid hostname", + pattern: def.hostname.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.protocol) { + def.protocol.lastIndex = 0; + if (!def.protocol.test(url.protocol.endsWith(":") ? url.protocol.slice(0, -1) : url.protocol)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid protocol", + pattern: def.protocol.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.normalize) payload.value = url.href; + else payload.value = trimmed; + return; + } catch (_) { + payload.issues.push({ + code: "invalid_format", + format: "url", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodEmoji = /*@__PURE__*/ $constructor("$ZodEmoji", (inst, def) => { + def.pattern ?? (def.pattern = emoji()); + $ZodStringFormat.init(inst, def); + }); + const $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => { + def.pattern ?? (def.pattern = nanoid); + $ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link $ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const $ZodCUID = /*@__PURE__*/ $constructor("$ZodCUID", (inst, def) => { + def.pattern ?? (def.pattern = cuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodCUID2 = /*@__PURE__*/ $constructor("$ZodCUID2", (inst, def) => { + def.pattern ?? (def.pattern = cuid2); + $ZodStringFormat.init(inst, def); + }); + const $ZodULID = /*@__PURE__*/ $constructor("$ZodULID", (inst, def) => { + def.pattern ?? (def.pattern = ulid); + $ZodStringFormat.init(inst, def); + }); + const $ZodXID = /*@__PURE__*/ $constructor("$ZodXID", (inst, def) => { + def.pattern ?? (def.pattern = xid); + $ZodStringFormat.init(inst, def); + }); + const $ZodKSUID = /*@__PURE__*/ $constructor("$ZodKSUID", (inst, def) => { + def.pattern ?? (def.pattern = ksuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODateTime = /*@__PURE__*/ $constructor("$ZodISODateTime", (inst, def) => { + def.pattern ?? (def.pattern = datetime$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODate = /*@__PURE__*/ $constructor("$ZodISODate", (inst, def) => { + def.pattern ?? (def.pattern = date$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodISOTime = /*@__PURE__*/ $constructor("$ZodISOTime", (inst, def) => { + def.pattern ?? (def.pattern = time$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def) => { + def.pattern ?? (def.pattern = duration$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def) => { + def.pattern ?? (def.pattern = ipv4); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv4`; + }); + const $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => { + def.pattern ?? (def.pattern = ipv6); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv6`; + inst._zod.check = (payload) => { + try { + new URL(`http://[${payload.value}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "ipv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodCIDRv4 = /*@__PURE__*/ $constructor("$ZodCIDRv4", (inst, def) => { + def.pattern ?? (def.pattern = cidrv4); + $ZodStringFormat.init(inst, def); + }); + const $ZodCIDRv6 = /*@__PURE__*/ $constructor("$ZodCIDRv6", (inst, def) => { + def.pattern ?? (def.pattern = cidrv6); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + const parts = payload.value.split("/"); + try { + if (parts.length !== 2) throw new Error(); + const [address, prefix] = parts; + if (!prefix) throw new Error(); + const prefixNum = Number(prefix); + if (`${prefixNum}` !== prefix) throw new Error(); + if (prefixNum < 0 || prefixNum > 128) throw new Error(); + new URL(`http://[${address}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "cidrv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + function isValidBase64(data) { + if (data === "") return true; + if (/\s/.test(data)) return false; + if (data.length % 4 !== 0) return false; + try { + atob(data); + return true; + } catch { + return false; + } + } + const $ZodBase64 = /*@__PURE__*/ $constructor("$ZodBase64", (inst, def) => { + def.pattern ?? (def.pattern = base64); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64"; + inst._zod.check = (payload) => { + if (isValidBase64(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + function isValidBase64URL(data) { + if (!base64url.test(data)) return false; + const base64 = data.replace(/[-_]/g, (c) => c === "-" ? "+" : "/"); + return isValidBase64(base64.padEnd(Math.ceil(base64.length / 4) * 4, "=")); + } + const $ZodBase64URL = /*@__PURE__*/ $constructor("$ZodBase64URL", (inst, def) => { + def.pattern ?? (def.pattern = base64url); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64url"; + inst._zod.check = (payload) => { + if (isValidBase64URL(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64url", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodE164 = /*@__PURE__*/ $constructor("$ZodE164", (inst, def) => { + def.pattern ?? (def.pattern = e164); + $ZodStringFormat.init(inst, def); + }); + function isValidJWT(token, algorithm = null) { + try { + const tokensParts = token.split("."); + if (tokensParts.length !== 3) return false; + const [header] = tokensParts; + if (!header) return false; + const parsedHeader = JSON.parse(atob(header)); + if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") return false; + if (!parsedHeader.alg) return false; + if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) return false; + return true; + } catch { + return false; + } + } + const $ZodJWT = /*@__PURE__*/ $constructor("$ZodJWT", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidJWT(payload.value, def.alg)) return; + payload.issues.push({ + code: "invalid_format", + format: "jwt", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodNumber = /*@__PURE__*/ $constructor("$ZodNumber", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = inst._zod.bag.pattern ?? number$1; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) try { + payload.value = Number(payload.value); + } catch (_) {} + const input = payload.value; + if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) return payload; + const received = typeof input === "number" ? Number.isNaN(input) ? "NaN" : !Number.isFinite(input) ? "Infinity" : void 0 : void 0; + payload.issues.push({ + expected: "number", + code: "invalid_type", + input, + inst, + ...received ? { received } : {} + }); + return payload; + }; + }); + const $ZodNumberFormat = /*@__PURE__*/ $constructor("$ZodNumberFormat", (inst, def) => { + $ZodCheckNumberFormat.init(inst, def); + $ZodNumber.init(inst, def); + }); + const $ZodBoolean = /*@__PURE__*/ $constructor("$ZodBoolean", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = boolean$1; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) try { + payload.value = Boolean(payload.value); + } catch (_) {} + const input = payload.value; + if (typeof input === "boolean") return payload; + payload.issues.push({ + expected: "boolean", + code: "invalid_type", + input, + inst + }); + return payload; + }; + }); + const $ZodUndefined = /*@__PURE__*/ $constructor("$ZodUndefined", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = _undefined$2; + inst._zod.values = new Set([void 0]); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (typeof input === "undefined") return payload; + payload.issues.push({ + expected: "undefined", + code: "invalid_type", + input, + inst + }); + return payload; + }; + }); + const $ZodUnknown = /*@__PURE__*/ $constructor("$ZodUnknown", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload) => payload; + }); + const $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + payload.issues.push({ + expected: "never", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + function handleArrayResult(result, final, index) { + if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues)); + final.value[index] = result.value; + } + const $ZodArray = /*@__PURE__*/ $constructor("$ZodArray", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!Array.isArray(input)) { + payload.issues.push({ + expected: "array", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = Array(input.length); + const proms = []; + for (let i = 0; i < input.length; i++) { + const item = input[i]; + const result = def.element._zod.run({ + value: item, + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => handleArrayResult(result, payload, i))); + else handleArrayResult(result, payload, i); + } + if (proms.length) return Promise.all(proms).then(() => payload); + return payload; + }; + }); + function handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) { + const isPresent = key in input; + if (result.issues.length) { + if (isOptionalIn && isOptionalOut && !isPresent) return; + final.issues.push(...prefixIssues(key, result.issues)); + } + if (!isPresent && !isOptionalIn) { + if (!result.issues.length) final.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: void 0, + path: [key] + }); + return; + } + if (result.value === void 0) { + if (isPresent) final.value[key] = void 0; + } else final.value[key] = result.value; + } + function normalizeDef(def) { + const keys = Object.keys(def.shape); + for (const k of keys) if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) throw new Error(`Invalid element at key "${k}": expected a Zod schema`); + const okeys = optionalKeys(def.shape); + return { + ...def, + keys, + keySet: new Set(keys), + numKeys: keys.length, + optionalKeys: new Set(okeys) + }; + } + function handleCatchall(proms, input, payload, ctx, def, inst) { + const unrecognized = []; + const keySet = def.keySet; + const _catchall = def.catchall._zod; + const t = _catchall.def.type; + const isOptionalIn = _catchall.optin === "optional"; + const isOptionalOut = _catchall.optout === "optional"; + for (const key in input) { + if (key === "__proto__") continue; + if (keySet.has(key)) continue; + if (t === "never") { + unrecognized.push(key); + continue; + } + const r = _catchall.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (unrecognized.length) payload.issues.push({ + code: "unrecognized_keys", + keys: unrecognized, + input, + inst + }); + if (!proms.length) return payload; + return Promise.all(proms).then(() => { + return payload; + }); + } + const $ZodObject = /*@__PURE__*/ $constructor("$ZodObject", (inst, def) => { + $ZodType.init(inst, def); + if (!Object.getOwnPropertyDescriptor(def, "shape")?.get) { + const sh = def.shape; + Object.defineProperty(def, "shape", { get: () => { + const newSh = { ...sh }; + Object.defineProperty(def, "shape", { value: newSh }); + return newSh; + } }); + } + const _normalized = cached(() => normalizeDef(def)); + defineLazy(inst._zod, "propValues", () => { + const shape = def.shape; + const propValues = {}; + for (const key in shape) { + const field = shape[key]._zod; + if (field.values) { + propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set()); + for (const v of field.values) propValues[key].add(v); + } + } + return propValues; + }); + const isObject$1 = isObject; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$1(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = {}; + const proms = []; + const shape = value.shape; + for (const key of value.keys) { + const el = shape[key]; + const isOptionalIn = el._zod.optin === "optional"; + const isOptionalOut = el._zod.optout === "optional"; + const r = el._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (!catchall) return proms.length ? Promise.all(proms).then(() => payload) : payload; + return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); + }; + }); + const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) => { + $ZodObject.init(inst, def); + const superParse = inst._zod.parse; + const _normalized = cached(() => normalizeDef(def)); + const generateFastpass = (shape) => { + const doc = new Doc([ + "shape", + "payload", + "ctx" + ]); + const normalized = _normalized.value; + const parseStr = (key) => { + const k = esc(key); + return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; + }; + doc.write(`const input = payload.value;`); + const ids = Object.create(null); + let counter = 0; + for (const key of normalized.keys) ids[key] = `key_${counter++}`; + doc.write(`const newResult = {};`); + for (const key of normalized.keys) { + const id = ids[key]; + const k = esc(key); + const schema = shape[key]; + const isOptionalIn = schema?._zod?.optin === "optional"; + const isOptionalOut = schema?._zod?.optout === "optional"; + doc.write(`const ${id} = ${parseStr(key)};`); + if (isOptionalIn && isOptionalOut) doc.write(` + if (${id}.issues.length) { + if (${k} in input) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + else if (!isOptionalIn) doc.write(` + const ${id}_present = ${k} in input; + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + if (!${id}_present && !${id}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${k}] + }); + } + + if (${id}_present) { + if (${id}.value === undefined) { + newResult[${k}] = undefined; + } else { + newResult[${k}] = ${id}.value; + } + } + + `); + else doc.write(` + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + } + doc.write(`payload.value = newResult;`); + doc.write(`return payload;`); + const fn = doc.compile(); + return (payload, ctx) => fn(shape, payload, ctx); + }; + let fastpass; + const isObject$2 = isObject; + const jit = !globalConfig.jitless; + const fastEnabled = jit && allowsEval.value; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$2(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { + if (!fastpass) fastpass = generateFastpass(def.shape); + payload = fastpass(payload, ctx); + if (!catchall) return payload; + return handleCatchall([], input, payload, ctx, value, inst); + } + return superParse(payload, ctx); + }; + }); + function handleUnionResults(results, final, inst, ctx) { + for (const result of results) if (result.issues.length === 0) { + final.value = result.value; + return final; + } + const nonaborted = results.filter((r) => !aborted(r)); + if (nonaborted.length === 1) { + final.value = nonaborted[0].value; + return nonaborted[0]; + } + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + }); + return final; + } + const $ZodUnion = /*@__PURE__*/ $constructor("$ZodUnion", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.options.some((o) => o._zod.optin === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "optout", () => def.options.some((o) => o._zod.optout === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "values", () => { + if (def.options.every((o) => o._zod.values)) return new Set(def.options.flatMap((option) => Array.from(option._zod.values))); + }); + defineLazy(inst._zod, "pattern", () => { + if (def.options.every((o) => o._zod.pattern)) { + const patterns = def.options.map((o) => o._zod.pattern); + return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); + } + }); + const first = def.options.length === 1 ? def.options[0]._zod.run : null; + inst._zod.parse = (payload, ctx) => { + if (first) return first(payload, ctx); + let async = false; + const results = []; + for (const option of def.options) { + const result = option._zod.run({ + value: payload.value, + issues: [] + }, ctx); + if (result instanceof Promise) { + results.push(result); + async = true; + } else { + if (result.issues.length === 0) return result; + results.push(result); + } + } + if (!async) return handleUnionResults(results, payload, inst, ctx); + return Promise.all(results).then((results) => { + return handleUnionResults(results, payload, inst, ctx); + }); + }; + }); + const $ZodIntersection = /*@__PURE__*/ $constructor("$ZodIntersection", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + const left = def.left._zod.run({ + value: input, + issues: [] + }, ctx); + const right = def.right._zod.run({ + value: input, + issues: [] + }, ctx); + if (left instanceof Promise || right instanceof Promise) return Promise.all([left, right]).then(([left, right]) => { + return handleIntersectionResults(payload, left, right); + }); + return handleIntersectionResults(payload, left, right); + }; + }); + function mergeValues(a, b) { + if (a === b) return { + valid: true, + data: a + }; + if (a instanceof Date && b instanceof Date && +a === +b) return { + valid: true, + data: a + }; + if (isPlainObject(a) && isPlainObject(b)) { + const bKeys = Object.keys(b); + const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { + ...a, + ...b + }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [key, ...sharedValue.mergeErrorPath] + }; + newObj[key] = sharedValue.data; + } + return { + valid: true, + data: newObj + }; + } + if (Array.isArray(a) && Array.isArray(b)) { + if (a.length !== b.length) return { + valid: false, + mergeErrorPath: [] + }; + const newArray = []; + for (let index = 0; index < a.length; index++) { + const itemA = a[index]; + const itemB = b[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [index, ...sharedValue.mergeErrorPath] + }; + newArray.push(sharedValue.data); + } + return { + valid: true, + data: newArray + }; + } + return { + valid: false, + mergeErrorPath: [] + }; + } + function handleIntersectionResults(result, left, right) { + const unrecKeys = /* @__PURE__ */ new Map(); + let unrecIssue; + for (const iss of left.issues) if (iss.code === "unrecognized_keys") { + unrecIssue ?? (unrecIssue = iss); + for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).l = true; + } + } else result.issues.push(iss); + for (const iss of right.issues) if (iss.code === "unrecognized_keys") for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).r = true; + } + else result.issues.push(iss); + const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); + if (bothKeys.length && unrecIssue) result.issues.push({ + ...unrecIssue, + keys: bothKeys + }); + if (aborted(result)) return result; + const merged = mergeValues(left.value, right.value); + if (!merged.valid) throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); + result.value = merged.data; + return result; + } + const $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!isPlainObject(input)) { + payload.issues.push({ + expected: "record", + code: "invalid_type", + input, + inst + }); + return payload; + } + const proms = []; + const values = def.keyType._zod.values; + if (values) { + payload.value = {}; + const recordKeys = /* @__PURE__ */ new Set(); + for (const key of values) if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { + recordKeys.add(typeof key === "number" ? key.toString() : key); + const keyResult = def.keyType._zod.run({ + value: key, + issues: [] + }, ctx); + if (keyResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (keyResult.issues.length) { + payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + continue; + } + const outKey = keyResult.value; + const result = def.valueType._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[outKey] = result.value; + })); + else { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[outKey] = result.value; + } + } + let unrecognized; + for (const key in input) if (!recordKeys.has(key)) { + unrecognized = unrecognized ?? []; + unrecognized.push(key); + } + if (unrecognized && unrecognized.length > 0) payload.issues.push({ + code: "unrecognized_keys", + input, + inst, + keys: unrecognized + }); + } else { + payload.value = {}; + for (const key of Reflect.ownKeys(input)) { + if (key === "__proto__") continue; + if (!Object.prototype.propertyIsEnumerable.call(input, key)) continue; + let keyResult = def.keyType._zod.run({ + value: key, + issues: [] + }, ctx); + if (keyResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (typeof key === "string" && number$1.test(key) && keyResult.issues.length) { + const retryResult = def.keyType._zod.run({ + value: Number(key), + issues: [] + }, ctx); + if (retryResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (retryResult.issues.length === 0) keyResult = retryResult; + } + if (keyResult.issues.length) { + if (def.mode === "loose") payload.value[key] = input[key]; + else payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + continue; + } + const result = def.valueType._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[keyResult.value] = result.value; + })); + else { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[keyResult.value] = result.value; + } + } + } + if (proms.length) return Promise.all(proms).then(() => payload); + return payload; + }; + }); + const $ZodEnum = /*@__PURE__*/ $constructor("$ZodEnum", (inst, def) => { + $ZodType.init(inst, def); + const values = getEnumValues(def.entries); + const valuesSet = new Set(values); + inst._zod.values = valuesSet; + inst._zod.pattern = new RegExp(`^(${values.filter((k) => propertyKeyTypes.has(typeof k)).map((o) => typeof o === "string" ? escapeRegex(o) : o.toString()).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (valuesSet.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values, + input, + inst + }); + return payload; + }; + }); + const $ZodLiteral = /*@__PURE__*/ $constructor("$ZodLiteral", (inst, def) => { + $ZodType.init(inst, def); + if (def.values.length === 0) throw new Error("Cannot create literal schema with no valid values"); + const values = new Set(def.values); + inst._zod.values = values; + inst._zod.pattern = new RegExp(`^(${def.values.map((o) => typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o)).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (values.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values: def.values, + input, + inst + }); + return payload; + }; + }); + const $ZodTransform = /*@__PURE__*/ $constructor("$ZodTransform", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + const _out = def.transform(payload.value, payload); + if (ctx.async) return (_out instanceof Promise ? _out : Promise.resolve(_out)).then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + if (_out instanceof Promise) throw new $ZodAsyncError(); + payload.value = _out; + payload.fallback = true; + return payload; + }; + }); + function handleOptionalResult(result, input) { + if (input === void 0 && (result.issues.length || result.fallback)) return { + issues: [], + value: void 0 + }; + return result; + } + const $ZodOptional = /*@__PURE__*/ $constructor("$ZodOptional", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.optout = "optional"; + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, void 0]) : void 0; + }); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (def.innerType._zod.optin === "optional") { + const input = payload.value; + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((r) => handleOptionalResult(r, input)); + return handleOptionalResult(result, input); + } + if (payload.value === void 0) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodExactOptional = /*@__PURE__*/ $constructor("$ZodExactOptional", (inst, def) => { + $ZodOptional.init(inst, def); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "pattern", () => def.innerType._zod.pattern); + inst._zod.parse = (payload, ctx) => { + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNullable = /*@__PURE__*/ $constructor("$ZodNullable", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; + }); + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (payload.value === null) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodDefault = /*@__PURE__*/ $constructor("$ZodDefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) { + payload.value = def.defaultValue; + /** + * $ZodDefault returns the default value immediately in forward direction. + * It doesn't pass the default value into the validator ("prefault"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a "prefault" for the pipe. */ + return payload; + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleDefaultResult(result, def)); + return handleDefaultResult(result, def); + }; + }); + function handleDefaultResult(payload, def) { + if (payload.value === void 0) payload.value = def.defaultValue; + return payload; + } + const $ZodPrefault = /*@__PURE__*/ $constructor("$ZodPrefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) payload.value = def.defaultValue; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNonOptional = /*@__PURE__*/ $constructor("$ZodNonOptional", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => { + const v = def.innerType._zod.values; + return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleNonOptionalResult(result, inst)); + return handleNonOptionalResult(result, inst); + }; + }); + function handleNonOptionalResult(payload, inst) { + if (!payload.issues.length && payload.value === void 0) payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: payload.value, + inst + }); + return payload; + } + const $ZodCatch = /*@__PURE__*/ $constructor("$ZodCatch", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => { + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }); + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }; + }); + const $ZodPipe = /*@__PURE__*/ $constructor("$ZodPipe", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => def.in._zod.values); + defineLazy(inst._zod, "optin", () => def.in._zod.optin); + defineLazy(inst._zod, "optout", () => def.out._zod.optout); + defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + const right = def.out._zod.run(payload, ctx); + if (right instanceof Promise) return right.then((right) => handlePipeResult(right, def.in, ctx)); + return handlePipeResult(right, def.in, ctx); + } + const left = def.in._zod.run(payload, ctx); + if (left instanceof Promise) return left.then((left) => handlePipeResult(left, def.out, ctx)); + return handlePipeResult(left, def.out, ctx); + }; + }); + function handlePipeResult(left, next, ctx) { + if (left.issues.length) { + left.aborted = true; + return left; + } + return next._zod.run({ + value: left.value, + issues: left.issues, + fallback: left.fallback + }, ctx); + } + const $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "optin", () => def.innerType?._zod?.optin); + defineLazy(inst._zod, "optout", () => def.innerType?._zod?.optout); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then(handleReadonlyResult); + return handleReadonlyResult(result); + }; + }); + function handleReadonlyResult(payload) { + payload.value = Object.freeze(payload.value); + return payload; + } + const $ZodLazy = /*@__PURE__*/ $constructor("$ZodLazy", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "innerType", () => { + const d = def; + if (!d._cachedInner) d._cachedInner = def.getter(); + return d._cachedInner; + }); + defineLazy(inst._zod, "pattern", () => inst._zod.innerType?._zod?.pattern); + defineLazy(inst._zod, "propValues", () => inst._zod.innerType?._zod?.propValues); + defineLazy(inst._zod, "optin", () => inst._zod.innerType?._zod?.optin ?? void 0); + defineLazy(inst._zod, "optout", () => inst._zod.innerType?._zod?.optout ?? void 0); + inst._zod.parse = (payload, ctx) => { + return inst._zod.innerType._zod.run(payload, ctx); + }; + }); + const $ZodCustom = /*@__PURE__*/ $constructor("$ZodCustom", (inst, def) => { + $ZodCheck.init(inst, def); + $ZodType.init(inst, def); + inst._zod.parse = (payload, _) => { + return payload; + }; + inst._zod.check = (payload) => { + const input = payload.value; + const r = def.fn(input); + if (r instanceof Promise) return r.then((r) => handleRefineResult(r, payload, input, inst)); + handleRefineResult(r, payload, input, inst); + }; + }); + function handleRefineResult(result, payload, input, inst) { + if (!result) { + const _iss = { + code: "custom", + input, + inst, + path: [...inst._zod.def.path ?? []], + continue: !inst._zod.def.abort + }; + if (inst._zod.def.params) _iss.params = inst._zod.def.params; + payload.issues.push(issue(_iss)); + } + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js + var _a; + var $ZodRegistry = class { + constructor() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + } + add(schema, ..._meta) { + const meta = _meta[0]; + this._map.set(schema, meta); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.set(meta.id, schema); + return this; + } + clear() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + return this; + } + remove(schema) { + const meta = this._map.get(schema); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.delete(meta.id); + this._map.delete(schema); + return this; + } + get(schema) { + const p = schema._zod.parent; + if (p) { + const pm = { ...this.get(p) ?? {} }; + delete pm.id; + const f = { + ...pm, + ...this._map.get(schema) + }; + return Object.keys(f).length ? f : void 0; + } + return this._map.get(schema); + } + has(schema) { + return this._map.has(schema); + } + }; + function registry() { + return new $ZodRegistry(); + } + (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry()); + const globalRegistry = globalThis.__zod_globalRegistry; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js + // @__NO_SIDE_EFFECTS__ + function _string(Class, params) { + return new Class({ + type: "string", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _email(Class, params) { + return new Class({ + type: "string", + format: "email", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _guid(Class, params) { + return new Class({ + type: "string", + format: "guid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuid(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv4(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v4", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv6(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v6", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv7(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v7", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _url(Class, params) { + return new Class({ + type: "string", + format: "url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _emoji(Class, params) { + return new Class({ + type: "string", + format: "emoji", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _nanoid(Class, params) { + return new Class({ + type: "string", + format: "nanoid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link _cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + // @__NO_SIDE_EFFECTS__ + function _cuid(Class, params) { + return new Class({ + type: "string", + format: "cuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cuid2(Class, params) { + return new Class({ + type: "string", + format: "cuid2", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ulid(Class, params) { + return new Class({ + type: "string", + format: "ulid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _xid(Class, params) { + return new Class({ + type: "string", + format: "xid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ksuid(Class, params) { + return new Class({ + type: "string", + format: "ksuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv4(Class, params) { + return new Class({ + type: "string", + format: "ipv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv6(Class, params) { + return new Class({ + type: "string", + format: "ipv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv4(Class, params) { + return new Class({ + type: "string", + format: "cidrv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv6(Class, params) { + return new Class({ + type: "string", + format: "cidrv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64(Class, params) { + return new Class({ + type: "string", + format: "base64", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64url(Class, params) { + return new Class({ + type: "string", + format: "base64url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _e164(Class, params) { + return new Class({ + type: "string", + format: "e164", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _jwt(Class, params) { + return new Class({ + type: "string", + format: "jwt", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDateTime(Class, params) { + return new Class({ + type: "string", + format: "datetime", + check: "string_format", + offset: false, + local: false, + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDate(Class, params) { + return new Class({ + type: "string", + format: "date", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoTime(Class, params) { + return new Class({ + type: "string", + format: "time", + check: "string_format", + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDuration(Class, params) { + return new Class({ + type: "string", + format: "duration", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _number(Class, params) { + return new Class({ + type: "number", + checks: [], + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _int(Class, params) { + return new Class({ + type: "number", + check: "number_format", + abort: false, + format: "safeint", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _boolean(Class, params) { + return new Class({ + type: "boolean", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _undefined$1(Class, params) { + return new Class({ + type: "undefined", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _unknown(Class) { + return new Class({ type: "unknown" }); + } + // @__NO_SIDE_EFFECTS__ + function _never(Class, params) { + return new Class({ + type: "never", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _lt(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _lte(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _gt(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _gte(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _multipleOf(value, params) { + return new $ZodCheckMultipleOf({ + check: "multiple_of", + ...normalizeParams(params), + value + }); + } + // @__NO_SIDE_EFFECTS__ + function _maxLength(maximum, params) { + return new $ZodCheckMaxLength({ + check: "max_length", + ...normalizeParams(params), + maximum + }); + } + // @__NO_SIDE_EFFECTS__ + function _minLength(minimum, params) { + return new $ZodCheckMinLength({ + check: "min_length", + ...normalizeParams(params), + minimum + }); + } + // @__NO_SIDE_EFFECTS__ + function _length(length, params) { + return new $ZodCheckLengthEquals({ + check: "length_equals", + ...normalizeParams(params), + length + }); + } + // @__NO_SIDE_EFFECTS__ + function _regex(pattern, params) { + return new $ZodCheckRegex({ + check: "string_format", + format: "regex", + ...normalizeParams(params), + pattern + }); + } + // @__NO_SIDE_EFFECTS__ + function _lowercase(params) { + return new $ZodCheckLowerCase({ + check: "string_format", + format: "lowercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uppercase(params) { + return new $ZodCheckUpperCase({ + check: "string_format", + format: "uppercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _includes(includes, params) { + return new $ZodCheckIncludes({ + check: "string_format", + format: "includes", + ...normalizeParams(params), + includes + }); + } + // @__NO_SIDE_EFFECTS__ + function _startsWith(prefix, params) { + return new $ZodCheckStartsWith({ + check: "string_format", + format: "starts_with", + ...normalizeParams(params), + prefix + }); + } + // @__NO_SIDE_EFFECTS__ + function _endsWith(suffix, params) { + return new $ZodCheckEndsWith({ + check: "string_format", + format: "ends_with", + ...normalizeParams(params), + suffix + }); + } + // @__NO_SIDE_EFFECTS__ + function _overwrite(tx) { + return new $ZodCheckOverwrite({ + check: "overwrite", + tx + }); + } + // @__NO_SIDE_EFFECTS__ + function _normalize(form) { + return /* @__PURE__ */ _overwrite((input) => input.normalize(form)); + } + // @__NO_SIDE_EFFECTS__ + function _trim() { + return /* @__PURE__ */ _overwrite((input) => input.trim()); + } + // @__NO_SIDE_EFFECTS__ + function _toLowerCase() { + return /* @__PURE__ */ _overwrite((input) => input.toLowerCase()); + } + // @__NO_SIDE_EFFECTS__ + function _toUpperCase() { + return /* @__PURE__ */ _overwrite((input) => input.toUpperCase()); + } + // @__NO_SIDE_EFFECTS__ + function _slugify() { + return /* @__PURE__ */ _overwrite((input) => slugify(input)); + } + // @__NO_SIDE_EFFECTS__ + function _array(Class, element, params) { + return new Class({ + type: "array", + element, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _refine(Class, fn, _params) { + return new Class({ + type: "custom", + check: "custom", + fn, + ...normalizeParams(_params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _superRefine(fn, params) { + const ch = /* @__PURE__ */ _check((payload) => { + payload.addIssue = (issue$2) => { + if (typeof issue$2 === "string") payload.issues.push(issue(issue$2, payload.value, ch._zod.def)); + else { + const _issue = issue$2; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = ch); + _issue.continue ?? (_issue.continue = !ch._zod.def.abort); + payload.issues.push(issue(_issue)); + } + }; + return fn(payload.value, payload); + }, params); + return ch; + } + // @__NO_SIDE_EFFECTS__ + function _check(fn, params) { + const ch = new $ZodCheck({ + check: "custom", + ...normalizeParams(params) + }); + ch._zod.check = fn; + return ch; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js + function initializeContext(params) { + let target = params?.target ?? "draft-2020-12"; + if (target === "draft-4") target = "draft-04"; + if (target === "draft-7") target = "draft-07"; + return { + processors: params.processors ?? {}, + metadataRegistry: params?.metadata ?? globalRegistry, + target, + unrepresentable: params?.unrepresentable ?? "throw", + override: params?.override ?? (() => {}), + io: params?.io ?? "output", + counter: 0, + seen: /* @__PURE__ */ new Map(), + cycles: params?.cycles ?? "ref", + reused: params?.reused ?? "inline", + external: params?.external ?? void 0 + }; + } + function process(schema, ctx, _params = { + path: [], + schemaPath: [] + }) { + var _a; + const def = schema._zod.def; + const seen = ctx.seen.get(schema); + if (seen) { + seen.count++; + if (_params.schemaPath.includes(schema)) seen.cycle = _params.path; + return seen.schema; + } + const result = { + schema: {}, + count: 1, + cycle: void 0, + path: _params.path + }; + ctx.seen.set(schema, result); + const overrideSchema = schema._zod.toJSONSchema?.(); + if (overrideSchema) result.schema = overrideSchema; + else { + const params = { + ..._params, + schemaPath: [..._params.schemaPath, schema], + path: _params.path + }; + if (schema._zod.processJSONSchema) schema._zod.processJSONSchema(ctx, result.schema, params); + else { + const _json = result.schema; + const processor = ctx.processors[def.type]; + if (!processor) throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); + processor(schema, ctx, _json, params); + } + const parent = schema._zod.parent; + if (parent) { + if (!result.ref) result.ref = parent; + process(parent, ctx, params); + ctx.seen.get(parent).isParent = true; + } + } + const meta = ctx.metadataRegistry.get(schema); + if (meta) Object.assign(result.schema, meta); + if (ctx.io === "input" && isTransforming(schema)) { + delete result.schema.examples; + delete result.schema.default; + } + if (ctx.io === "input" && "_prefault" in result.schema) (_a = result.schema).default ?? (_a.default = result.schema._prefault); + delete result.schema._prefault; + return ctx.seen.get(schema).schema; + } + function extractDefs(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const idToSchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.entries()) { + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + const existing = idToSchema.get(id); + if (existing && existing !== entry[0]) throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); + idToSchema.set(id, entry[0]); + } + } + const makeURI = (entry) => { + const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; + if (ctx.external) { + const externalId = ctx.external.registry.get(entry[0])?.id; + const uriGenerator = ctx.external.uri ?? ((id) => id); + if (externalId) return { ref: uriGenerator(externalId) }; + const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; + entry[1].defId = id; + return { + defId: id, + ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` + }; + } + if (entry[1] === root) return { ref: "#" }; + const defUriPrefix = `#/${defsSegment}/`; + const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; + return { + defId, + ref: defUriPrefix + defId + }; + }; + const extractToDef = (entry) => { + if (entry[1].schema.$ref) return; + const seen = entry[1]; + const { ref, defId } = makeURI(entry); + seen.def = { ...seen.schema }; + if (defId) seen.defId = defId; + const schema = seen.schema; + for (const key in schema) delete schema[key]; + schema.$ref = ref; + }; + if (ctx.cycles === "throw") for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.cycle) throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); + } + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (schema === entry[0]) { + extractToDef(entry); + continue; + } + if (ctx.external) { + const ext = ctx.external.registry.get(entry[0])?.id; + if (schema !== entry[0] && ext) { + extractToDef(entry); + continue; + } + } + if (ctx.metadataRegistry.get(entry[0])?.id) { + extractToDef(entry); + continue; + } + if (seen.cycle) { + extractToDef(entry); + continue; + } + if (seen.count > 1) { + if (ctx.reused === "ref") { + extractToDef(entry); + continue; + } + } + } + } + function finalize(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const flattenRef = (zodSchema) => { + const seen = ctx.seen.get(zodSchema); + if (seen.ref === null) return; + const schema = seen.def ?? seen.schema; + const _cached = { ...schema }; + const ref = seen.ref; + seen.ref = null; + if (ref) { + flattenRef(ref); + const refSeen = ctx.seen.get(ref); + const refSchema = refSeen.schema; + if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { + schema.allOf = schema.allOf ?? []; + schema.allOf.push(refSchema); + } else Object.assign(schema, refSchema); + Object.assign(schema, _cached); + if (zodSchema._zod.parent === ref) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (!(key in _cached)) delete schema[key]; + } + if (refSchema.$ref && refSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) delete schema[key]; + } + } + const parent = zodSchema._zod.parent; + if (parent && parent !== ref) { + flattenRef(parent); + const parentSeen = ctx.seen.get(parent); + if (parentSeen?.schema.$ref) { + schema.$ref = parentSeen.schema.$ref; + if (parentSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) delete schema[key]; + } + } + } + ctx.override({ + zodSchema, + jsonSchema: schema, + path: seen.path ?? [] + }); + }; + for (const entry of [...ctx.seen.entries()].reverse()) flattenRef(entry[0]); + const result = {}; + if (ctx.target === "draft-2020-12") result.$schema = "https://json-schema.org/draft/2020-12/schema"; + else if (ctx.target === "draft-07") result.$schema = "http://json-schema.org/draft-07/schema#"; + else if (ctx.target === "draft-04") result.$schema = "http://json-schema.org/draft-04/schema#"; + else if (ctx.target === "openapi-3.0") {} + if (ctx.external?.uri) { + const id = ctx.external.registry.get(schema)?.id; + if (!id) throw new Error("Schema is missing an `id` property"); + result.$id = ctx.external.uri(id); + } + Object.assign(result, root.def ?? root.schema); + const rootMetaId = ctx.metadataRegistry.get(schema)?.id; + if (rootMetaId !== void 0 && result.id === rootMetaId) delete result.id; + const defs = ctx.external?.defs ?? {}; + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.def && seen.defId) { + if (seen.def.id === seen.defId) delete seen.def.id; + defs[seen.defId] = seen.def; + } + } + if (ctx.external) {} else if (Object.keys(defs).length > 0) if (ctx.target === "draft-2020-12") result.$defs = defs; + else result.definitions = defs; + try { + const finalized = JSON.parse(JSON.stringify(result)); + Object.defineProperty(finalized, "~standard", { + value: { + ...schema["~standard"], + jsonSchema: { + input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), + output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) + } + }, + enumerable: false, + writable: false + }); + return finalized; + } catch (_err) { + throw new Error("Error converting schema to JSON."); + } + } + function isTransforming(_schema, _ctx) { + const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; + if (ctx.seen.has(_schema)) return false; + ctx.seen.add(_schema); + const def = _schema._zod.def; + if (def.type === "transform") return true; + if (def.type === "array") return isTransforming(def.element, ctx); + if (def.type === "set") return isTransforming(def.valueType, ctx); + if (def.type === "lazy") return isTransforming(def.getter(), ctx); + if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault") return isTransforming(def.innerType, ctx); + if (def.type === "intersection") return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); + if (def.type === "record" || def.type === "map") return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); + if (def.type === "pipe") { + if (_schema._zod.traits.has("$ZodCodec")) return true; + return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); + } + if (def.type === "object") { + for (const key in def.shape) if (isTransforming(def.shape[key], ctx)) return true; + return false; + } + if (def.type === "union") { + for (const option of def.options) if (isTransforming(option, ctx)) return true; + return false; + } + if (def.type === "tuple") { + for (const item of def.items) if (isTransforming(item, ctx)) return true; + if (def.rest && isTransforming(def.rest, ctx)) return true; + return false; + } + return false; + } + /** + * Creates a toJSONSchema method for a schema instance. + * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing. + */ + const createToJSONSchemaMethod = (schema, processors = {}) => (params) => { + const ctx = initializeContext({ + ...params, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize(ctx, schema); + }; + const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { + const { libraryOptions, target } = params ?? {}; + const ctx = initializeContext({ + ...libraryOptions ?? {}, + target, + io, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize(ctx, schema); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js + const formatMap = { + guid: "uuid", + url: "uri", + datetime: "date-time", + json_string: "json-string", + regex: "" + }; + const stringProcessor = (schema, ctx, _json, _params) => { + const json = _json; + json.type = "string"; + const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; + if (typeof minimum === "number") json.minLength = minimum; + if (typeof maximum === "number") json.maxLength = maximum; + if (format) { + json.format = formatMap[format] ?? format; + if (json.format === "") delete json.format; + if (format === "time") delete json.format; + } + if (contentEncoding) json.contentEncoding = contentEncoding; + if (patterns && patterns.size > 0) { + const regexes = [...patterns]; + if (regexes.length === 1) json.pattern = regexes[0].source; + else if (regexes.length > 1) json.allOf = [...regexes.map((regex) => ({ + ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, + pattern: regex.source + }))]; + } + }; + const numberProcessor = (schema, ctx, _json, _params) => { + const json = _json; + const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; + if (typeof format === "string" && format.includes("int")) json.type = "integer"; + else json.type = "number"; + const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); + const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); + const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; + if (exMin) if (legacy) { + json.minimum = exclusiveMinimum; + json.exclusiveMinimum = true; + } else json.exclusiveMinimum = exclusiveMinimum; + else if (typeof minimum === "number") json.minimum = minimum; + if (exMax) if (legacy) { + json.maximum = exclusiveMaximum; + json.exclusiveMaximum = true; + } else json.exclusiveMaximum = exclusiveMaximum; + else if (typeof maximum === "number") json.maximum = maximum; + if (typeof multipleOf === "number") json.multipleOf = multipleOf; + }; + const booleanProcessor = (_schema, _ctx, json, _params) => { + json.type = "boolean"; + }; + const undefinedProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Undefined cannot be represented in JSON Schema"); + }; + const neverProcessor = (_schema, _ctx, json, _params) => { + json.not = {}; + }; + const enumProcessor = (schema, _ctx, json, _params) => { + const def = schema._zod.def; + const values = getEnumValues(def.entries); + if (values.every((v) => typeof v === "number")) json.type = "number"; + if (values.every((v) => typeof v === "string")) json.type = "string"; + json.enum = values; + }; + const literalProcessor = (schema, ctx, json, _params) => { + const def = schema._zod.def; + const vals = []; + for (const val of def.values) if (val === void 0) { + if (ctx.unrepresentable === "throw") throw new Error("Literal `undefined` cannot be represented in JSON Schema"); + } else if (typeof val === "bigint") if (ctx.unrepresentable === "throw") throw new Error("BigInt literals cannot be represented in JSON Schema"); + else vals.push(Number(val)); + else vals.push(val); + if (vals.length === 0) {} else if (vals.length === 1) { + const val = vals[0]; + json.type = val === null ? "null" : typeof val; + if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") json.enum = [val]; + else json.const = val; + } else { + if (vals.every((v) => typeof v === "number")) json.type = "number"; + if (vals.every((v) => typeof v === "string")) json.type = "string"; + if (vals.every((v) => typeof v === "boolean")) json.type = "boolean"; + if (vals.every((v) => v === null)) json.type = "null"; + json.enum = vals; + } + }; + const customProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Custom types cannot be represented in JSON Schema"); + }; + const transformProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Transforms cannot be represented in JSON Schema"); + }; + const arrayProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + const { minimum, maximum } = schema._zod.bag; + if (typeof minimum === "number") json.minItems = minimum; + if (typeof maximum === "number") json.maxItems = maximum; + json.type = "array"; + json.items = process(def.element, ctx, { + ...params, + path: [...params.path, "items"] + }); + }; + const objectProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + json.properties = {}; + const shape = def.shape; + for (const key in shape) json.properties[key] = process(shape[key], ctx, { + ...params, + path: [ + ...params.path, + "properties", + key + ] + }); + const allKeys = new Set(Object.keys(shape)); + const requiredKeys = new Set([...allKeys].filter((key) => { + const v = def.shape[key]._zod; + if (ctx.io === "input") return v.optin === void 0; + else return v.optout === void 0; + })); + if (requiredKeys.size > 0) json.required = Array.from(requiredKeys); + if (def.catchall?._zod.def.type === "never") json.additionalProperties = false; + else if (!def.catchall) { + if (ctx.io === "output") json.additionalProperties = false; + } else if (def.catchall) json.additionalProperties = process(def.catchall, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + }; + const unionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const isExclusive = def.inclusive === false; + const options = def.options.map((x, i) => process(x, ctx, { + ...params, + path: [ + ...params.path, + isExclusive ? "oneOf" : "anyOf", + i + ] + })); + if (isExclusive) json.oneOf = options; + else json.anyOf = options; + }; + const intersectionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const a = process(def.left, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 0 + ] + }); + const b = process(def.right, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 1 + ] + }); + const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; + json.allOf = [...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b]]; + }; + const recordProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + const keyType = def.keyType; + const patterns = keyType._zod.bag?.patterns; + if (def.mode === "loose" && patterns && patterns.size > 0) { + const valueSchema = process(def.valueType, ctx, { + ...params, + path: [ + ...params.path, + "patternProperties", + "*" + ] + }); + json.patternProperties = {}; + for (const pattern of patterns) json.patternProperties[pattern.source] = valueSchema; + } else { + if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process(def.keyType, ctx, { + ...params, + path: [...params.path, "propertyNames"] + }); + json.additionalProperties = process(def.valueType, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + } + const keyValues = keyType._zod.values; + if (keyValues) { + const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); + if (validKeyValues.length > 0) json.required = validKeyValues; + } + }; + const nullableProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const inner = process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + if (ctx.target === "openapi-3.0") { + seen.ref = def.innerType; + json.nullable = true; + } else json.anyOf = [inner, { type: "null" }]; + }; + const nonoptionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const defaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.default = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const prefaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const catchProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + let catchValue; + try { + catchValue = def.catchValue(void 0); + } catch { + throw new Error("Dynamic catch values are not supported in JSON Schema"); + } + json.default = catchValue; + }; + const pipeProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + const inIsTransform = def.in._zod.traits.has("$ZodTransform"); + const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + const readonlyProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.readOnly = true; + }; + const optionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const lazyProcessor = (schema, ctx, _json, params) => { + const innerType = schema._zod.innerType; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js + const ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => { + $ZodISODateTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function datetime(params) { + return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params); + } + const ZodISODate = /*@__PURE__*/ $constructor("ZodISODate", (inst, def) => { + $ZodISODate.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function date(params) { + return /* @__PURE__ */ _isoDate(ZodISODate, params); + } + const ZodISOTime = /*@__PURE__*/ $constructor("ZodISOTime", (inst, def) => { + $ZodISOTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function time(params) { + return /* @__PURE__ */ _isoTime(ZodISOTime, params); + } + const ZodISODuration = /*@__PURE__*/ $constructor("ZodISODuration", (inst, def) => { + $ZodISODuration.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function duration(params) { + return /* @__PURE__ */ _isoDuration(ZodISODuration, params); + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js + const initializer = (inst, issues) => { + $ZodError.init(inst, issues); + inst.name = "ZodError"; + Object.defineProperties(inst, { + format: { value: (mapper) => formatError(inst, mapper) }, + flatten: { value: (mapper) => flattenError(inst, mapper) }, + addIssue: { value: (issue) => { + inst.issues.push(issue); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + addIssues: { value: (issues) => { + inst.issues.push(...issues); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + isEmpty: { get() { + return inst.issues.length === 0; + } } + }); + }; + const ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, { Parent: Error }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js + const parse = /* @__PURE__ */ _parse(ZodRealError); + const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError); + const safeParse = /* @__PURE__ */ _safeParse(ZodRealError); + const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError); + const encode = /* @__PURE__ */ _encode(ZodRealError); + const decode = /* @__PURE__ */ _decode(ZodRealError); + const encodeAsync = /* @__PURE__ */ _encodeAsync(ZodRealError); + const decodeAsync = /* @__PURE__ */ _decodeAsync(ZodRealError); + const safeEncode = /* @__PURE__ */ _safeEncode(ZodRealError); + const safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError); + const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); + const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js + const _installedGroups = /* @__PURE__ */ new WeakMap(); + function _installLazyMethods(inst, group, methods) { + const proto = Object.getPrototypeOf(inst); + let installed = _installedGroups.get(proto); + if (!installed) { + installed = /* @__PURE__ */ new Set(); + _installedGroups.set(proto, installed); + } + if (installed.has(group)) return; + installed.add(group); + for (const key in methods) { + const fn = methods[key]; + Object.defineProperty(proto, key, { + configurable: true, + enumerable: false, + get() { + const bound = fn.bind(this); + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: bound + }); + return bound; + }, + set(v) { + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: v + }); + } + }); + } + } + const ZodType = /*@__PURE__*/ $constructor("ZodType", (inst, def) => { + $ZodType.init(inst, def); + Object.assign(inst["~standard"], { jsonSchema: { + input: createStandardJSONSchemaMethod(inst, "input"), + output: createStandardJSONSchemaMethod(inst, "output") + } }); + inst.toJSONSchema = createToJSONSchemaMethod(inst, {}); + inst.def = def; + inst.type = def.type; + Object.defineProperty(inst, "_def", { value: def }); + inst.parse = (data, params) => parse(inst, data, params, { callee: inst.parse }); + inst.safeParse = (data, params) => safeParse(inst, data, params); + inst.parseAsync = async (data, params) => parseAsync(inst, data, params, { callee: inst.parseAsync }); + inst.safeParseAsync = async (data, params) => safeParseAsync(inst, data, params); + inst.spa = inst.safeParseAsync; + inst.encode = (data, params) => encode(inst, data, params); + inst.decode = (data, params) => decode(inst, data, params); + inst.encodeAsync = async (data, params) => encodeAsync(inst, data, params); + inst.decodeAsync = async (data, params) => decodeAsync(inst, data, params); + inst.safeEncode = (data, params) => safeEncode(inst, data, params); + inst.safeDecode = (data, params) => safeDecode(inst, data, params); + inst.safeEncodeAsync = async (data, params) => safeEncodeAsync(inst, data, params); + inst.safeDecodeAsync = async (data, params) => safeDecodeAsync(inst, data, params); + _installLazyMethods(inst, "ZodType", { + check(...chks) { + const def = this.def; + return this.clone(mergeDefs(def, { checks: [...def.checks ?? [], ...chks.map((ch) => typeof ch === "function" ? { _zod: { + check: ch, + def: { check: "custom" }, + onattach: [] + } } : ch)] }), { parent: true }); + }, + with(...chks) { + return this.check(...chks); + }, + clone(def, params) { + return clone(this, def, params); + }, + brand() { + return this; + }, + register(reg, meta) { + reg.add(this, meta); + return this; + }, + refine(check, params) { + return this.check(refine(check, params)); + }, + superRefine(refinement, params) { + return this.check(superRefine(refinement, params)); + }, + overwrite(fn) { + return this.check(/* @__PURE__ */ _overwrite(fn)); + }, + optional() { + return optional(this); + }, + exactOptional() { + return exactOptional(this); + }, + nullable() { + return nullable(this); + }, + nullish() { + return optional(nullable(this)); + }, + nonoptional(params) { + return nonoptional(this, params); + }, + array() { + return array(this); + }, + or(arg) { + return union([this, arg]); + }, + and(arg) { + return intersection(this, arg); + }, + transform(tx) { + return pipe(this, transform(tx)); + }, + default(d) { + return _default(this, d); + }, + prefault(d) { + return prefault(this, d); + }, + catch(params) { + return _catch(this, params); + }, + pipe(target) { + return pipe(this, target); + }, + readonly() { + return readonly(this); + }, + describe(description) { + const cl = this.clone(); + globalRegistry.add(cl, { description }); + return cl; + }, + meta(...args) { + if (args.length === 0) return globalRegistry.get(this); + const cl = this.clone(); + globalRegistry.add(cl, args[0]); + return cl; + }, + isOptional() { + return this.safeParse(void 0).success; + }, + isNullable() { + return this.safeParse(null).success; + }, + apply(fn) { + return fn(this); + } + }); + Object.defineProperty(inst, "description", { + get() { + return globalRegistry.get(inst)?.description; + }, + configurable: true + }); + return inst; + }); + /** @internal */ + const _ZodString = /*@__PURE__*/ $constructor("_ZodString", (inst, def) => { + $ZodString.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => stringProcessor(inst, ctx, json, params); + const bag = inst._zod.bag; + inst.format = bag.format ?? null; + inst.minLength = bag.minimum ?? null; + inst.maxLength = bag.maximum ?? null; + _installLazyMethods(inst, "_ZodString", { + regex(...args) { + return this.check(/* @__PURE__ */ _regex(...args)); + }, + includes(...args) { + return this.check(/* @__PURE__ */ _includes(...args)); + }, + startsWith(...args) { + return this.check(/* @__PURE__ */ _startsWith(...args)); + }, + endsWith(...args) { + return this.check(/* @__PURE__ */ _endsWith(...args)); + }, + min(...args) { + return this.check(/* @__PURE__ */ _minLength(...args)); + }, + max(...args) { + return this.check(/* @__PURE__ */ _maxLength(...args)); + }, + length(...args) { + return this.check(/* @__PURE__ */ _length(...args)); + }, + nonempty(...args) { + return this.check(/* @__PURE__ */ _minLength(1, ...args)); + }, + lowercase(params) { + return this.check(/* @__PURE__ */ _lowercase(params)); + }, + uppercase(params) { + return this.check(/* @__PURE__ */ _uppercase(params)); + }, + trim() { + return this.check(/* @__PURE__ */ _trim()); + }, + normalize(...args) { + return this.check(/* @__PURE__ */ _normalize(...args)); + }, + toLowerCase() { + return this.check(/* @__PURE__ */ _toLowerCase()); + }, + toUpperCase() { + return this.check(/* @__PURE__ */ _toUpperCase()); + }, + slugify() { + return this.check(/* @__PURE__ */ _slugify()); + } + }); + }); + const ZodString = /*@__PURE__*/ $constructor("ZodString", (inst, def) => { + $ZodString.init(inst, def); + _ZodString.init(inst, def); + inst.email = (params) => inst.check(/* @__PURE__ */ _email(ZodEmail, params)); + inst.url = (params) => inst.check(/* @__PURE__ */ _url(ZodURL, params)); + inst.jwt = (params) => inst.check(/* @__PURE__ */ _jwt(ZodJWT, params)); + inst.emoji = (params) => inst.check(/* @__PURE__ */ _emoji(ZodEmoji, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.uuid = (params) => inst.check(/* @__PURE__ */ _uuid(ZodUUID, params)); + inst.uuidv4 = (params) => inst.check(/* @__PURE__ */ _uuidv4(ZodUUID, params)); + inst.uuidv6 = (params) => inst.check(/* @__PURE__ */ _uuidv6(ZodUUID, params)); + inst.uuidv7 = (params) => inst.check(/* @__PURE__ */ _uuidv7(ZodUUID, params)); + inst.nanoid = (params) => inst.check(/* @__PURE__ */ _nanoid(ZodNanoID, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.cuid = (params) => inst.check(/* @__PURE__ */ _cuid(ZodCUID, params)); + inst.cuid2 = (params) => inst.check(/* @__PURE__ */ _cuid2(ZodCUID2, params)); + inst.ulid = (params) => inst.check(/* @__PURE__ */ _ulid(ZodULID, params)); + inst.base64 = (params) => inst.check(/* @__PURE__ */ _base64(ZodBase64, params)); + inst.base64url = (params) => inst.check(/* @__PURE__ */ _base64url(ZodBase64URL, params)); + inst.xid = (params) => inst.check(/* @__PURE__ */ _xid(ZodXID, params)); + inst.ksuid = (params) => inst.check(/* @__PURE__ */ _ksuid(ZodKSUID, params)); + inst.ipv4 = (params) => inst.check(/* @__PURE__ */ _ipv4(ZodIPv4, params)); + inst.ipv6 = (params) => inst.check(/* @__PURE__ */ _ipv6(ZodIPv6, params)); + inst.cidrv4 = (params) => inst.check(/* @__PURE__ */ _cidrv4(ZodCIDRv4, params)); + inst.cidrv6 = (params) => inst.check(/* @__PURE__ */ _cidrv6(ZodCIDRv6, params)); + inst.e164 = (params) => inst.check(/* @__PURE__ */ _e164(ZodE164, params)); + inst.datetime = (params) => inst.check(datetime(params)); + inst.date = (params) => inst.check(date(params)); + inst.time = (params) => inst.check(time(params)); + inst.duration = (params) => inst.check(duration(params)); + }); + function string(params) { + return /* @__PURE__ */ _string(ZodString, params); + } + const ZodStringFormat = /*@__PURE__*/ $constructor("ZodStringFormat", (inst, def) => { + $ZodStringFormat.init(inst, def); + _ZodString.init(inst, def); + }); + const ZodEmail = /*@__PURE__*/ $constructor("ZodEmail", (inst, def) => { + $ZodEmail.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodGUID = /*@__PURE__*/ $constructor("ZodGUID", (inst, def) => { + $ZodGUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodUUID = /*@__PURE__*/ $constructor("ZodUUID", (inst, def) => { + $ZodUUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodURL = /*@__PURE__*/ $constructor("ZodURL", (inst, def) => { + $ZodURL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodEmoji = /*@__PURE__*/ $constructor("ZodEmoji", (inst, def) => { + $ZodEmoji.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNanoID = /*@__PURE__*/ $constructor("ZodNanoID", (inst, def) => { + $ZodNanoID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const ZodCUID = /*@__PURE__*/ $constructor("ZodCUID", (inst, def) => { + $ZodCUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCUID2 = /*@__PURE__*/ $constructor("ZodCUID2", (inst, def) => { + $ZodCUID2.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodULID = /*@__PURE__*/ $constructor("ZodULID", (inst, def) => { + $ZodULID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodXID = /*@__PURE__*/ $constructor("ZodXID", (inst, def) => { + $ZodXID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodKSUID = /*@__PURE__*/ $constructor("ZodKSUID", (inst, def) => { + $ZodKSUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv4 = /*@__PURE__*/ $constructor("ZodIPv4", (inst, def) => { + $ZodIPv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv6 = /*@__PURE__*/ $constructor("ZodIPv6", (inst, def) => { + $ZodIPv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv4 = /*@__PURE__*/ $constructor("ZodCIDRv4", (inst, def) => { + $ZodCIDRv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv6 = /*@__PURE__*/ $constructor("ZodCIDRv6", (inst, def) => { + $ZodCIDRv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64 = /*@__PURE__*/ $constructor("ZodBase64", (inst, def) => { + $ZodBase64.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64URL = /*@__PURE__*/ $constructor("ZodBase64URL", (inst, def) => { + $ZodBase64URL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodE164 = /*@__PURE__*/ $constructor("ZodE164", (inst, def) => { + $ZodE164.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodJWT = /*@__PURE__*/ $constructor("ZodJWT", (inst, def) => { + $ZodJWT.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNumber = /*@__PURE__*/ $constructor("ZodNumber", (inst, def) => { + $ZodNumber.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => numberProcessor(inst, ctx, json, params); + _installLazyMethods(inst, "ZodNumber", { + gt(value, params) { + return this.check(/* @__PURE__ */ _gt(value, params)); + }, + gte(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + min(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + lt(value, params) { + return this.check(/* @__PURE__ */ _lt(value, params)); + }, + lte(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + max(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + int(params) { + return this.check(int(params)); + }, + safe(params) { + return this.check(int(params)); + }, + positive(params) { + return this.check(/* @__PURE__ */ _gt(0, params)); + }, + nonnegative(params) { + return this.check(/* @__PURE__ */ _gte(0, params)); + }, + negative(params) { + return this.check(/* @__PURE__ */ _lt(0, params)); + }, + nonpositive(params) { + return this.check(/* @__PURE__ */ _lte(0, params)); + }, + multipleOf(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + step(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + finite() { + return this; + } + }); + const bag = inst._zod.bag; + inst.minValue = Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null; + inst.maxValue = Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null; + inst.isInt = (bag.format ?? "").includes("int") || Number.isSafeInteger(bag.multipleOf ?? .5); + inst.isFinite = true; + inst.format = bag.format ?? null; + }); + function number(params) { + return /* @__PURE__ */ _number(ZodNumber, params); + } + const ZodNumberFormat = /*@__PURE__*/ $constructor("ZodNumberFormat", (inst, def) => { + $ZodNumberFormat.init(inst, def); + ZodNumber.init(inst, def); + }); + function int(params) { + return /* @__PURE__ */ _int(ZodNumberFormat, params); + } + const ZodBoolean = /*@__PURE__*/ $constructor("ZodBoolean", (inst, def) => { + $ZodBoolean.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => booleanProcessor(inst, ctx, json, params); + }); + function boolean(params) { + return /* @__PURE__ */ _boolean(ZodBoolean, params); + } + const ZodUndefined = /*@__PURE__*/ $constructor("ZodUndefined", (inst, def) => { + $ZodUndefined.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => undefinedProcessor(inst, ctx, json, params); + }); + function _undefined(params) { + return /* @__PURE__ */ _undefined$1(ZodUndefined, params); + } + const ZodUnknown = /*@__PURE__*/ $constructor("ZodUnknown", (inst, def) => { + $ZodUnknown.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => void 0; + }); + function unknown() { + return /* @__PURE__ */ _unknown(ZodUnknown); + } + const ZodNever = /*@__PURE__*/ $constructor("ZodNever", (inst, def) => { + $ZodNever.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => neverProcessor(inst, ctx, json, params); + }); + function never(params) { + return /* @__PURE__ */ _never(ZodNever, params); + } + const ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => { + $ZodArray.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => arrayProcessor(inst, ctx, json, params); + inst.element = def.element; + _installLazyMethods(inst, "ZodArray", { + min(n, params) { + return this.check(/* @__PURE__ */ _minLength(n, params)); + }, + nonempty(params) { + return this.check(/* @__PURE__ */ _minLength(1, params)); + }, + max(n, params) { + return this.check(/* @__PURE__ */ _maxLength(n, params)); + }, + length(n, params) { + return this.check(/* @__PURE__ */ _length(n, params)); + }, + unwrap() { + return this.element; + } + }); + }); + function array(element, params) { + return /* @__PURE__ */ _array(ZodArray, element, params); + } + const ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => { + $ZodObjectJIT.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params); + defineLazy(inst, "shape", () => { + return def.shape; + }); + _installLazyMethods(inst, "ZodObject", { + keyof() { + return _enum(Object.keys(this._zod.def.shape)); + }, + catchall(catchall) { + return this.clone({ + ...this._zod.def, + catchall + }); + }, + passthrough() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + loose() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + strict() { + return this.clone({ + ...this._zod.def, + catchall: never() + }); + }, + strip() { + return this.clone({ + ...this._zod.def, + catchall: void 0 + }); + }, + extend(incoming) { + return extend(this, incoming); + }, + safeExtend(incoming) { + return safeExtend(this, incoming); + }, + merge(other) { + return merge(this, other); + }, + pick(mask) { + return pick(this, mask); + }, + omit(mask) { + return omit(this, mask); + }, + partial(...args) { + return partial(ZodOptional, this, args[0]); + }, + required(...args) { + return required(ZodNonOptional, this, args[0]); + } + }); + }); + function object(shape, params) { + return new ZodObject({ + type: "object", + shape: shape ?? {}, + ...normalizeParams(params) + }); + } + const ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => { + $ZodUnion.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); + inst.options = def.options; + }); + function union(options, params) { + return new ZodUnion({ + type: "union", + options, + ...normalizeParams(params) + }); + } + const ZodIntersection = /*@__PURE__*/ $constructor("ZodIntersection", (inst, def) => { + $ZodIntersection.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => intersectionProcessor(inst, ctx, json, params); + }); + function intersection(left, right) { + return new ZodIntersection({ + type: "intersection", + left, + right + }); + } + const ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => { + $ZodRecord.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params); + inst.keyType = def.keyType; + inst.valueType = def.valueType; + }); + function record(keyType, valueType, params) { + if (!valueType || !valueType._zod) return new ZodRecord({ + type: "record", + keyType: string(), + valueType: keyType, + ...normalizeParams(valueType) + }); + return new ZodRecord({ + type: "record", + keyType, + valueType, + ...normalizeParams(params) + }); + } + const ZodEnum = /*@__PURE__*/ $constructor("ZodEnum", (inst, def) => { + $ZodEnum.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => enumProcessor(inst, ctx, json, params); + inst.enum = def.entries; + inst.options = Object.values(def.entries); + const keys = new Set(Object.keys(def.entries)); + inst.extract = (values, params) => { + const newEntries = {}; + for (const value of values) if (keys.has(value)) newEntries[value] = def.entries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + inst.exclude = (values, params) => { + const newEntries = { ...def.entries }; + for (const value of values) if (keys.has(value)) delete newEntries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + }); + function _enum(values, params) { + return new ZodEnum({ + type: "enum", + entries: Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values, + ...normalizeParams(params) + }); + } + const ZodLiteral = /*@__PURE__*/ $constructor("ZodLiteral", (inst, def) => { + $ZodLiteral.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => literalProcessor(inst, ctx, json, params); + inst.values = new Set(def.values); + Object.defineProperty(inst, "value", { get() { + if (def.values.length > 1) throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); + return def.values[0]; + } }); + }); + function literal(value, params) { + return new ZodLiteral({ + type: "literal", + values: Array.isArray(value) ? value : [value], + ...normalizeParams(params) + }); + } + const ZodTransform = /*@__PURE__*/ $constructor("ZodTransform", (inst, def) => { + $ZodTransform.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => transformProcessor(inst, ctx, json, params); + inst._zod.parse = (payload, _ctx) => { + if (_ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + payload.addIssue = (issue$1) => { + if (typeof issue$1 === "string") payload.issues.push(issue(issue$1, payload.value, def)); + else { + const _issue = issue$1; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = inst); + payload.issues.push(issue(_issue)); + } + }; + const output = def.transform(payload.value, payload); + if (output instanceof Promise) return output.then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + payload.value = output; + payload.fallback = true; + return payload; + }; + }); + function transform(fn) { + return new ZodTransform({ + type: "transform", + transform: fn + }); + } + const ZodOptional = /*@__PURE__*/ $constructor("ZodOptional", (inst, def) => { + $ZodOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function optional(innerType) { + return new ZodOptional({ + type: "optional", + innerType + }); + } + const ZodExactOptional = /*@__PURE__*/ $constructor("ZodExactOptional", (inst, def) => { + $ZodExactOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function exactOptional(innerType) { + return new ZodExactOptional({ + type: "optional", + innerType + }); + } + const ZodNullable = /*@__PURE__*/ $constructor("ZodNullable", (inst, def) => { + $ZodNullable.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nullable(innerType) { + return new ZodNullable({ + type: "nullable", + innerType + }); + } + const ZodDefault = /*@__PURE__*/ $constructor("ZodDefault", (inst, def) => { + $ZodDefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => defaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeDefault = inst.unwrap; + }); + function _default(innerType, defaultValue) { + return new ZodDefault({ + type: "default", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodPrefault = /*@__PURE__*/ $constructor("ZodPrefault", (inst, def) => { + $ZodPrefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => prefaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function prefault(innerType, defaultValue) { + return new ZodPrefault({ + type: "prefault", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodNonOptional = /*@__PURE__*/ $constructor("ZodNonOptional", (inst, def) => { + $ZodNonOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nonoptionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nonoptional(innerType, params) { + return new ZodNonOptional({ + type: "nonoptional", + innerType, + ...normalizeParams(params) + }); + } + const ZodCatch = /*@__PURE__*/ $constructor("ZodCatch", (inst, def) => { + $ZodCatch.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => catchProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeCatch = inst.unwrap; + }); + function _catch(innerType, catchValue) { + return new ZodCatch({ + type: "catch", + innerType, + catchValue: typeof catchValue === "function" ? catchValue : () => catchValue + }); + } + const ZodPipe = /*@__PURE__*/ $constructor("ZodPipe", (inst, def) => { + $ZodPipe.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => pipeProcessor(inst, ctx, json, params); + inst.in = def.in; + inst.out = def.out; + }); + function pipe(in_, out) { + return new ZodPipe({ + type: "pipe", + in: in_, + out + }); + } + const ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => { + $ZodReadonly.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => readonlyProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function readonly(innerType) { + return new ZodReadonly({ + type: "readonly", + innerType + }); + } + const ZodLazy = /*@__PURE__*/ $constructor("ZodLazy", (inst, def) => { + $ZodLazy.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => lazyProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.getter(); + }); + function lazy(getter) { + return new ZodLazy({ + type: "lazy", + getter + }); + } + const ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => { + $ZodCustom.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params); + }); + function refine(fn, _params = {}) { + return /* @__PURE__ */ _refine(ZodCustom, fn, _params); + } + function superRefine(fn, params) { + return /* @__PURE__ */ _superRefine(fn, params); + } + //#endregion + //#region ../../interaction/commands/lib/typert.remote-client.js + const _deepseek_ai_dsh_commands_commands_execute_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_commands_commands_execute_parameter_1$schema = string(); + const _deepseek_ai_dsh_commands_commands_execute_result$schema = union([_undefined(), object({ + "commandId": intersection(string(), unknown()).readonly(), + "result": union([object({ + "kind": literal("success").readonly(), + "text": string().readonly().optional(), + "sourceEventSeq": number().readonly().optional() + }), object({ + "kind": literal("error").readonly(), + "text": string().readonly() + })]).readonly() + })]); + const _deepseek_ai_dsh_commands_commands_list_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_commands_commands_list_result$schema = array(object({ + "name": string().readonly(), + "description": string().readonly(), + "input": object({ "hint": string().readonly() }).readonly().optional() + })); + const TYPERT_REMOTE$4 = { + package: "@deepseek-ai/dsh-commands", + descriptors: [{ + id: "@deepseek-ai/dsh-commands#commands/execute", + service: "commands", + namespace: "commands", + method: "execute", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_commands_commands_execute_parameter_0$schema + } + }, { + name: "line", + wire: "line", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-commands#commands/execute:line", + schema: _deepseek_ai_dsh_commands_commands_execute_parameter_1$schema + } + }], + cancellation: { parameter: "signal" }, + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-commands#commands/execute:result", + schema: _deepseek_ai_dsh_commands_commands_execute_result$schema + }, + sourceLocation: { + "file": "packages/interaction/commands/src/index.ts", + "line": 297, + "column": 9 + } + }, { + id: "@deepseek-ai/dsh-commands#commands/list", + service: "commands", + namespace: "commands", + method: "list", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_commands_commands_list_parameter_0$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-commands#commands/list:result", + schema: _deepseek_ai_dsh_commands_commands_list_result$schema + }, + sourceLocation: { + "file": "packages/interaction/commands/src/index.ts", + "line": 260, + "column": 3 + } + }] + }; + //#endregion + //#region ../../goal/goal/lib/typert.remote-client.js + const _deepseek_ai_dsh_goal_goals_clear_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_clear_parameter_1$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_clear_result$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_complete_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_complete_parameter_1$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_complete_result$schema = object({ + "roundsStarted": number().readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly(), + "activation": union([literal("armed"), literal("disarmed")]).readonly(), + "objective": string().readonly(), + "phase": union([ + literal("active"), + literal("paused"), + literal("blocked"), + literal("complete") + ]).readonly(), + "blockedReason": object({ + "code": string().readonly(), + "message": string().readonly() + }).readonly().optional(), + "maxGoalRounds": number().readonly(), + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_create_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_create_parameter_1$schema = object({ + "objective": string().readonly(), + "maxGoalRounds": number().readonly().optional() + }); + const _deepseek_ai_dsh_goal_goals_create_result$schema = object({ "ref": object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }).readonly() }); + const _deepseek_ai_dsh_goal_goals_edit_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_edit_parameter_1$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_edit_parameter_2$schema = object({ + "objective": string().readonly().optional(), + "maxGoalRounds": number().readonly().optional() + }); + const _deepseek_ai_dsh_goal_goals_edit_result$schema = object({ + "roundsStarted": number().readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly(), + "activation": union([literal("armed"), literal("disarmed")]).readonly(), + "objective": string().readonly(), + "phase": union([ + literal("active"), + literal("paused"), + literal("blocked"), + literal("complete") + ]).readonly(), + "blockedReason": object({ + "code": string().readonly(), + "message": string().readonly() + }).readonly().optional(), + "maxGoalRounds": number().readonly(), + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_pause_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_pause_parameter_1$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_pause_result$schema = object({ + "roundsStarted": number().readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly(), + "activation": union([literal("armed"), literal("disarmed")]).readonly(), + "objective": string().readonly(), + "phase": union([ + literal("active"), + literal("paused"), + literal("blocked"), + literal("complete") + ]).readonly(), + "blockedReason": object({ + "code": string().readonly(), + "message": string().readonly() + }).readonly().optional(), + "maxGoalRounds": number().readonly(), + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_resume_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_goal_goals_resume_parameter_1$schema = object({ + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const _deepseek_ai_dsh_goal_goals_resume_result$schema = object({ + "roundsStarted": number().readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly(), + "activation": union([literal("armed"), literal("disarmed")]).readonly(), + "objective": string().readonly(), + "phase": union([ + literal("active"), + literal("paused"), + literal("blocked"), + literal("complete") + ]).readonly(), + "blockedReason": object({ + "code": string().readonly(), + "message": string().readonly() + }).readonly().optional(), + "maxGoalRounds": number().readonly(), + "id": intersection(string(), unknown()).readonly(), + "revision": number().readonly() + }); + const TYPERT_REMOTE$3 = { + package: "@deepseek-ai/dsh-goal", + descriptors: [ + { + id: "@deepseek-ai/dsh-goal#goals/clear", + service: "goals", + namespace: "goals", + method: "clear", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_clear_parameter_0$schema + } + }, { + name: "ref", + wire: "ref", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_clear_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_clear_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 377, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-goal#goals/complete", + service: "goals", + namespace: "goals", + method: "complete", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_complete_parameter_0$schema + } + }, { + name: "ref", + wire: "ref", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_complete_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalView", + schema: _deepseek_ai_dsh_goal_goals_complete_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 337, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-goal#goals/create", + service: "goals", + namespace: "goals", + method: "create", + implementation: "remoteExportCreate", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_create_parameter_0$schema + } + }, { + name: "request", + wire: "request", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#CreateGoalRequest", + schema: _deepseek_ai_dsh_goal_goals_create_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#CreateGoalResult", + schema: _deepseek_ai_dsh_goal_goals_create_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 586, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-goal#goals/edit", + service: "goals", + namespace: "goals", + method: "edit", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_edit_parameter_0$schema + } + }, + { + name: "ref", + wire: "ref", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_edit_parameter_1$schema + } + }, + { + name: "request", + wire: "request", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#EditGoalRequest", + schema: _deepseek_ai_dsh_goal_goals_edit_parameter_2$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalView", + schema: _deepseek_ai_dsh_goal_goals_edit_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 277, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-goal#goals/pause", + service: "goals", + namespace: "goals", + method: "pause", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_pause_parameter_0$schema + } + }, { + name: "ref", + wire: "ref", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_pause_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalView", + schema: _deepseek_ai_dsh_goal_goals_pause_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 299, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-goal#goals/resume", + service: "goals", + namespace: "goals", + method: "resume", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_goal_goals_resume_parameter_0$schema + } + }, { + name: "ref", + wire: "ref", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalRef", + schema: _deepseek_ai_dsh_goal_goals_resume_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-goal/client#GoalView", + schema: _deepseek_ai_dsh_goal_goals_resume_result$schema + }, + sourceLocation: { + "file": "packages/goal/goal/src/index.ts", + "line": 311, + "column": 3 + } + } + ] + }; + //#endregion + //#region ../../extensions/cordis-host-runner/lib/typert.remote-client.js + const JsonValueRemoteCodec$schema = union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema)), + record(string(), lazy(() => JsonValueRemoteCodec$schema)) + ]); + const JsonValueRemoteCodec$schema2 = union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema2)), + record(string(), lazy(() => JsonValueRemoteCodec$schema2)) + ]); + const JsonValueRemoteCodec$schema3 = union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema3)), + record(string(), lazy(() => JsonValueRemoteCodec$schema3)) + ]); + const JsonValueRemoteCodec$schema4 = union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema4)), + record(string(), lazy(() => JsonValueRemoteCodec$schema4)) + ]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_2$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_result$schema = object({ + "code": string(), + "name": string(), + "pluginId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()), + "pluginRunId": intersection(string(), unknown()) + }); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_inventory_result$schema = array(object({ + "pluginId": intersection(string(), unknown()), + "agentId": intersection(string(), unknown()), + "packages": array(object({ + "packageId": intersection(string(), unknown()), + "name": string(), + "purpose": string(), + "hasHostHalf": boolean(), + "hasClientHalf": boolean() + })), + "currentPackageId": intersection(string(), unknown()).optional(), + "nextPackageId": intersection(string(), unknown()).optional(), + "activeRun": object({ + "pluginRunId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()) + }).optional(), + "latestRun": object({ + "pluginRunId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()), + "mode": union([literal("run"), literal("update")]), + "status": union([ + literal("rejected"), + literal("awaiting-approval"), + literal("running"), + literal("cancelled"), + literal("starting-host"), + literal("client-pending"), + literal("waiting"), + literal("failed"), + literal("stopped") + ]), + "approvalRequestId": intersection(string(), unknown()).optional(), + "requiresApproval": boolean().optional(), + "host": object({ + "status": union([ + literal("running"), + literal("waiting"), + literal("failed"), + literal("stopped"), + literal("absent"), + literal("pending") + ]), + "waitingFor": array(string()), + "error": string().optional() + }), + "client": object({ + "status": union([ + literal("running"), + literal("waiting"), + literal("failed"), + literal("stopped"), + literal("absent"), + literal("pending") + ]), + "waitingFor": array(string()), + "error": string().optional() + }), + "error": object({ + "phase": union([ + literal("approval"), + literal("host-load"), + literal("host-apply"), + literal("client-load"), + literal("client-apply"), + literal("client-render") + ]), + "message": string(), + "stack": string().optional(), + "pluginId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()), + "pluginRunId": intersection(string(), unknown()) + }).optional() + }).optional() + })); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_2$schema = string(); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_3$schema = union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema3)), + record(string(), lazy(() => JsonValueRemoteCodec$schema3)) + ]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_result$schema = union([object({ + "ok": literal(true), + "value": union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema4)), + record(string(), lazy(() => JsonValueRemoteCodec$schema4)) + ]) + }), intersection(object({ + "ok": literal(false), + "code": union([ + literal("plugin-not-running"), + literal("stale-run"), + literal("method-not-found"), + literal("handler-error") + ]) + }), object({ + "message": string(), + "stack": string().optional() + }))]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_2$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_3$schema = object({ + "message": string(), + "stack": string().optional() + }); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_result$schema = literal(null); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_2$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_3$schema = object({ + "slot": string(), + "message": string(), + "stack": string().optional(), + "abdicated": boolean() + }); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_result$schema = literal(null); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_2$schema = union([object({ + "ok": literal(true), + "data": union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema2)), + record(string(), lazy(() => JsonValueRemoteCodec$schema2)) + ]) + }), object({ + "ok": literal(false), + "reason": union([ + literal("cancelled"), + literal("provider-missing"), + literal("method-missing"), + literal("invalid-input"), + literal("provider-error") + ]), + "message": string() + })]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_result$schema = object({ "accepted": boolean() }); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_parameter_1$schema = union([object({ + "ok": literal(true), + "pluginRunId": intersection(string(), unknown()), + "waitingFor": array(string()).optional() + }), object({ + "ok": literal(false), + "reason": union([ + literal("rejected"), + literal("host-half-failed"), + literal("client-half-failed") + ]), + "pluginRunId": intersection(string(), unknown()).optional(), + "startedHere": boolean().optional(), + "message": string().optional(), + "stack": string().optional() + })]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_result$schema = object({ "accepted": boolean() }); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_2$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_3$schema = union([literal("run"), literal("update")]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_4$schema = union([literal(null), intersection(string(), unknown())]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_5$schema = boolean(); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_result$schema = union([object({ + "ok": literal(true), + "pluginId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()), + "pluginRunId": intersection(string(), unknown()), + "waitingFor": array(string()), + "startedHere": boolean() + }), intersection(object({ "ok": literal(false) }), object({ + "message": string(), + "stack": string().optional() + }))]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_2$schema = union([object({ + "ok": literal(true), + "pluginRunId": intersection(string(), unknown()), + "waitingFor": array(string()).optional() + }), object({ + "ok": literal(false), + "reason": union([ + literal("rejected"), + literal("host-half-failed"), + literal("client-half-failed") + ]), + "pluginRunId": intersection(string(), unknown()).optional(), + "startedHere": boolean().optional(), + "message": string().optional(), + "stack": string().optional() + })]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_result$schema = union([object({ + "ok": literal(true), + "status": union([ + literal("awaiting-approval"), + literal("starting"), + literal("running") + ]), + "pluginId": intersection(string(), unknown()), + "packageId": intersection(string(), unknown()), + "pluginRunId": intersection(string(), unknown()), + "waitingFor": array(string()), + "clientWaitingFor": array(string()).optional(), + "currentPackageId": intersection(string(), unknown()).optional(), + "nextPackageId": intersection(string(), unknown()).optional(), + "mode": union([literal("run"), literal("update")]) + }), object({ + "ok": literal(false), + "reason": union([ + literal("plugin-missing"), + literal("rejected"), + literal("host-half-failed"), + literal("client-half-failed"), + literal("package-missing"), + literal("invalid-mode"), + literal("transition-in-flight"), + literal("cancelled"), + literal("not-running") + ]), + "message": string(), + "stack": string().optional() + })]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_result$schema = union([object({ "ok": literal(true) }), object({ + "ok": literal(false), + "reason": union([literal("plugin-missing"), literal("not-running")]), + "message": string() + })]); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_parameter_0$schema = array(object({ + "id": string(), + "description": string(), + "methods": array(object({ + "name": string(), + "description": string(), + "inputSchema": union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema)), + record(string(), lazy(() => JsonValueRemoteCodec$schema)) + ]), + "outputSchema": union([ + literal(null), + string(), + number(), + literal(false), + literal(true), + array(lazy(() => JsonValueRemoteCodec$schema)), + record(string(), lazy(() => JsonValueRemoteCodec$schema)) + ]) + })) + })); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_result$schema = literal(null); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_parameter_0$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_parameter_1$schema = intersection(string(), unknown()); + const _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_result$schema = union([object({ + "ok": literal(true), + "wasRunning": boolean() + }), object({ + "ok": literal(false), + "reason": literal("plugin-missing"), + "message": string() + })]); + const TYPERT_REMOTE$2 = { + package: "@deepseek-ai/dsh-cordis-host-runner", + descriptors: [ + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/getClientCode", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "getClientCode", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_0$schema + } + }, + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_1$schema + } + }, + { + name: "pluginRunId", + wire: "pluginRunId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginRunId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_parameter_2$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisClientSource", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 384, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "inventory", + invocation: { kind: "direct" }, + parameters: [], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory:result", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_inventory_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 525, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/invoke", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "invoke", + invocation: { kind: "direct" }, + parameters: [ + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_0$schema + } + }, + { + name: "pluginRunId", + wire: "pluginRunId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginRunId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_1$schema + } + }, + { + name: "method", + wire: "method", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/invoke:method", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_2$schema + } + }, + { + name: "args", + wire: "args", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#JsonValue", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_parameter_3$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisInvokeResult", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 741, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "reportClientGuardFailure", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_0$schema + } + }, + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_1$schema + } + }, + { + name: "pluginRunId", + wire: "pluginRunId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginRunId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_2$schema + } + }, + { + name: "failure", + wire: "failure", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisErrorDetails", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_parameter_3$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure:result", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 718, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "reportRenderFailure", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_0$schema + } + }, + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_1$schema + } + }, + { + name: "pluginRunId", + wire: "pluginRunId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginRunId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_2$schema + } + }, + { + name: "failure", + wire: "failure", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRenderFailure", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_parameter_3$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure:result", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 684, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveInspectQuery", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "resolveInspectQuery", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_0$schema + } + }, + { + name: "requestId", + wire: "requestId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisInspectRequestId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_1$schema + } + }, + { + name: "resolution", + wire: "resolution", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisInspectQueryResolution", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_parameter_2$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisInspectResolveAck", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 511, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveRequestRun", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "resolveRequestRun", + invocation: { kind: "direct" }, + parameters: [{ + name: "requestId", + wire: "requestId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#ApprovalRequestId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_parameter_0$schema + } + }, { + name: "resolution", + wire: "resolution", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRunResolution", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisResolveAck", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 413, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/runHostHalf", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "runHostHalf", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_0$schema + } + }, + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_1$schema + } + }, + { + name: "packageId", + wire: "packageId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPackageId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_2$schema + } + }, + { + name: "mode", + wire: "mode", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicRunMode", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_3$schema + } + }, + { + name: "requestId", + wire: "requestId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/runHostHalf:requestId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_4$schema + } + }, + { + name: "approveFutureVersions", + wire: "approveFutureVersions", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/runHostHalf:approveFutureVersions", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_parameter_5$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisHostHalfResult", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 325, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/settleUserRun", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "settleUserRun", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [ + { + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_0$schema + } + }, + { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_1$schema + } + }, + { + name: "resolution", + wire: "resolution", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRunResolution", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_parameter_2$schema + } + } + ], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRunResponse", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 438, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/stopFromPanel", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "stopFromPanel", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_parameter_0$schema + } + }, { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisStopResponse", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 480, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "syncInspectManifest", + invocation: { kind: "direct" }, + parameters: [{ + name: "providers", + wire: "providers", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest:providers", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_parameter_0$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest:result", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 498, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/undefineFromPanel", + service: "dynamicCordisRunner", + namespace: "dynamicCordisRunner", + method: "undefineFromPanel", + invocation: { kind: "direct" }, + scope: { + context: "agent", + wire: "agentId" + }, + parameters: [{ + name: "agent", + wire: "agentId", + source: "lookup", + lookup: "agent", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_parameter_0$schema + } + }, { + name: "pluginId", + wire: "pluginId", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#CordisDynamicPluginId", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_parameter_1$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisUndefineReceipt", + schema: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_result$schema + }, + sourceLocation: { + "file": "packages/extensions/cordis-host-runner/src/index.ts", + "line": 227, + "column": 9 + } + } + ] + }; + const TYPERT_REMOTE$1 = { + package: "@deepseek-ai/dsh-host-plugin-inventory", + descriptors: [{ + id: "@deepseek-ai/dsh-host-plugin-inventory#pluginInventory/list", + service: "pluginInventory", + namespace: "pluginInventory", + method: "list", + invocation: { kind: "direct" }, + parameters: [], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-host-plugin-inventory/types#PluginInventorySnapshot", + schema: object({ "entries": array(object({ + "entryId": intersection(string(), unknown()).readonly(), + "moduleName": string().readonly(), + "enabled": boolean().readonly(), + "fiberPhase": union([ + literal(null), + literal("failed"), + literal("pending"), + literal("active"), + literal("loading"), + literal("unloading") + ]).readonly() + })).readonly() }) + }, + sourceLocation: { + "file": "packages/host/plugin-inventory/src/index.ts", + "line": 57, + "column": 3 + } + }] + }; + //#endregion + //#region ../../feedback/message-feedback/lib/typert.remote-client.js + const _deepseek_ai_dsh_message_feedback_messageFeedback_delete_parameter_0$schema = object({ + "sessionId": intersection(string(), unknown()).readonly(), + "messageId": intersection(string(), unknown()).readonly(), + "ifVersion": intersection(string(), unknown()).readonly() + }); + const _deepseek_ai_dsh_message_feedback_messageFeedback_delete_result$schema = union([object({ + "ok": literal(true).readonly(), + "value": object({ "absent": literal(true).readonly() }).readonly() + }), object({ + "ok": literal(false).readonly(), + "error": union([object({ + "code": literal("session-not-found").readonly(), + "sessionId": intersection(string(), unknown()).readonly() + }), object({ + "code": literal("version-conflict").readonly(), + "current": union([literal(null), object({ + "messageId": intersection(string(), unknown()).readonly(), + "rating": union([literal("positive"), literal("negative")]).readonly(), + "note": string().readonly().optional(), + "version": intersection(string(), unknown()).readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly() + })]).readonly() + })]).readonly() + })]); + const _deepseek_ai_dsh_message_feedback_messageFeedback_list_parameter_0$schema = object({ "sessionId": intersection(string(), unknown()).readonly() }); + const _deepseek_ai_dsh_message_feedback_messageFeedback_list_result$schema = union([object({ + "ok": literal(true).readonly(), + "value": object({ "items": array(object({ + "messageId": intersection(string(), unknown()).readonly(), + "rating": union([literal("positive"), literal("negative")]).readonly(), + "note": string().readonly().optional(), + "version": intersection(string(), unknown()).readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly() + })).readonly() }).readonly() + }), object({ + "ok": literal(false).readonly(), + "error": object({ + "code": literal("session-not-found").readonly(), + "sessionId": intersection(string(), unknown()).readonly() + }).readonly() + })]); + const _deepseek_ai_dsh_message_feedback_messageFeedback_put_parameter_0$schema = object({ + "sessionId": intersection(string(), unknown()).readonly(), + "messageId": intersection(string(), unknown()).readonly(), + "rating": union([literal("positive"), literal("negative")]).readonly(), + "note": string().readonly().optional(), + "ifVersion": union([literal(null), intersection(string(), unknown())]).readonly() + }); + const _deepseek_ai_dsh_message_feedback_messageFeedback_put_result$schema = union([object({ + "ok": literal(true).readonly(), + "value": object({ + "messageId": intersection(string(), unknown()).readonly(), + "rating": union([literal("positive"), literal("negative")]).readonly(), + "note": string().readonly().optional(), + "version": intersection(string(), unknown()).readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly() + }).readonly() + }), object({ + "ok": literal(false).readonly(), + "error": union([ + object({ + "code": literal("session-not-found").readonly(), + "sessionId": intersection(string(), unknown()).readonly() + }), + object({ + "code": literal("target-not-found").readonly(), + "sessionId": intersection(string(), unknown()).readonly(), + "messageId": intersection(string(), unknown()).readonly() + }), + object({ + "code": literal("version-conflict").readonly(), + "current": union([literal(null), object({ + "messageId": intersection(string(), unknown()).readonly(), + "rating": union([literal("positive"), literal("negative")]).readonly(), + "note": string().readonly().optional(), + "version": intersection(string(), unknown()).readonly(), + "createdAt": number().readonly(), + "updatedAt": number().readonly() + })]).readonly() + }), + object({ "code": literal("note-blank").readonly() }), + object({ + "code": literal("note-too-large").readonly(), + "maxBytes": number().readonly(), + "actualBytes": number().readonly() + }) + ]).readonly() + })]); + const TYPERT_REMOTE = { + package: "@deepseek-ai/dsh-message-feedback", + descriptors: [ + { + id: "@deepseek-ai/dsh-message-feedback#messageFeedback/delete", + service: "messageFeedback", + namespace: "messageFeedback", + method: "delete", + invocation: { kind: "direct" }, + parameters: [{ + name: "request", + wire: "request", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackDeleteRequest", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_delete_parameter_0$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackDeleteResult", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_delete_result$schema + }, + sourceLocation: { + "file": "packages/feedback/message-feedback/src/index.ts", + "line": 272, + "column": 3 + } + }, + { + id: "@deepseek-ai/dsh-message-feedback#messageFeedback/list", + service: "messageFeedback", + namespace: "messageFeedback", + method: "list", + invocation: { kind: "direct" }, + parameters: [{ + name: "request", + wire: "request", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackListRequest", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_list_parameter_0$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackListResult", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_list_result$schema + }, + sourceLocation: { + "file": "packages/feedback/message-feedback/src/index.ts", + "line": 190, + "column": 9 + } + }, + { + id: "@deepseek-ai/dsh-message-feedback#messageFeedback/put", + service: "messageFeedback", + namespace: "messageFeedback", + method: "put", + invocation: { kind: "direct" }, + parameters: [{ + name: "request", + wire: "request", + source: "json", + codec: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackPutRequest", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_put_parameter_0$schema + } + }], + result: { + mode: "strict", + typeSymbol: "@deepseek-ai/dsh-message-feedback/types#MessageFeedbackPutResult", + schema: _deepseek_ai_dsh_message_feedback_messageFeedback_put_result$schema + }, + sourceLocation: { + "file": "packages/feedback/message-feedback/src/index.ts", + "line": 206, + "column": 3 + } + } + ] + }; + //#endregion + //#region lib/types/client/index.js + /** Platform-neutral assembly of generated Host Remote contributions. */ + /** Required service: the typed Client Remote contribution mount. */ + const inject = ["remote"]; + /** + * Mount the Host capabilities explicitly selected for this Client assembly. + * @param ctx - Client Cordis root carrying the typed API service. + * @returns disposer after every selected Remote namespace is ready. + */ + async function apply(ctx) { + const disposers = []; + try { + for (const contribution of [ + TYPERT_REMOTE$4, + TYPERT_REMOTE$3, + TYPERT_REMOTE$2, + TYPERT_REMOTE$1, + TYPERT_REMOTE + ]) disposers.push(await ctx.remote.$mount(contribution)); + } catch (error) { + for (const dispose of disposers.reverse()) await dispose(); + throw error; + } + return async () => { + for (const dispose of disposers.reverse()) await dispose(); + }; + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000008 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000008 new file mode 100644 index 0000000..43726ff --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000008 @@ -0,0 +1,1312 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-theme", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-theme/src/client/AppearanceRow.module.css.mjs + const css = "._8HJdBW_group{border-bottom:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:8px;padding:16px 0;display:flex}._8HJdBW_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}._8HJdBW_cubeRow{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}._8HJdBW_themeCube{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:16px;flex-direction:column;flex:180px;justify-content:center;align-items:center;gap:4px;padding:20px 32px;font-size:14px;line-height:22px;display:flex}._8HJdBW_themeCube:hover:not(._8HJdBW_selected){background:var(--dsw-alias-interactive-bg-hover)}._8HJdBW_selected{background:var(--dsw-alias-bg-module-platform);border-color:var(--dsw-static-neutral-bluish-400)}"; + const tagId = "@deepseek-ai/dsh-client-ui-theme/AppearanceRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-theme"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var AppearanceRow_module_css_default = { + "themeCube": "_8HJdBW_themeCube", + "title": "_8HJdBW_title", + "group": "_8HJdBW_group", + "cubeRow": "_8HJdBW_cubeRow", + "selected": "_8HJdBW_selected" + }; + //#endregion + //#region lib/types/client/AppearanceRow.js + /** + * Appearance preference row registered into the General section item slot + * (figma 501:30012 'Frame 2117131228'): title + three preference cubes. + * Registered by this package — the theme feature owns its own settings + * surface. Selection follows the persisted preference, never the resolved + * active theme. + */ + /** Cube order and icons (figma 501:30015-30017: Light, Dark, System). */ + const CUBES = [ + { + id: "light", + labelKey: "appearance.light", + Icon: _deepseek_ai_dsh_client_ui_primitives.IconLightOutline16 + }, + { + id: "dark", + labelKey: "appearance.dark", + Icon: _deepseek_ai_dsh_client_ui_primitives.IconDarkOutline16 + }, + { + id: "system", + labelKey: "appearance.system", + Icon: _deepseek_ai_dsh_client_ui_primitives.IconFollowsystemOutline16 + } + ]; + /** + * Render the Appearance row. + * @param props - composed slot props. + * @returns the row element tree. + */ + function AppearanceRow({ t, setTheme, useStore }) { + const preference = useStore((s) => s.preference); + return (0, react_jsx_runtime.jsxs)("div", { + className: AppearanceRow_module_css_default.group, + children: [(0, react_jsx_runtime.jsx)("div", { + className: AppearanceRow_module_css_default.title, + children: t("appearance.title") + }), (0, react_jsx_runtime.jsx)("div", { + className: AppearanceRow_module_css_default.cubeRow, + children: CUBES.map(({ id, labelKey, Icon }) => (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: clsx(AppearanceRow_module_css_default.themeCube, preference === id && AppearanceRow_module_css_default.selected), + "aria-pressed": preference === id, + onClick: () => { + setTheme(id); + }, + children: [(0, react_jsx_runtime.jsx)(Icon, {}), t(labelKey)] + }, id)) + })] + }); + } + //#endregion + //#region lib/types/client/settings-store.js + /** + * Appearance row slot store: a mirror of the theme service snapshot. The + * plugin's apply-world change listener is the only writer; the row component + * reads via props.useStore. + */ + /** + * Declares the Appearance row state and write surface. + * @returns the store handle. + */ + function createAppearanceRowStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({ + init: () => ({ + preference: "system", + revision: -1 + }), + actions: { sync: (d, preference, revision) => { + if (revision <= d.revision) return; + d.preference = preference; + d.revision = revision; + } } + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `settings.theme` namespace dictionaries (the Appearance row's copy). */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "appearance.title": "外观", + "appearance.light": "浅色", + "appearance.dark": "深色", + "appearance.system": "跟�系统" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "appearance.title": "Appearance", + "appearance.light": "Light", + "appearance.dark": "Dark", + "appearance.system": "System" + }; + //#endregion + //#region ../../../vendor/cosmokit/src/misc.ts + /** Return true when a value is `null` or `undefined`. */ + function isNullable(value) { + return value === null || value === void 0; + } + /** Return true for non-array object values. */ + function isPlainObject(data) { + return data && typeof data === "object" && !Array.isArray(data); + } + /** Filter object entries and return a new object. */ + function filterKeys(object, filter) { + return Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value))); + } + /** Map object values while preserving the original key set. */ + function mapValues(object, transform) { + return Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)])); + } + /** Pick selected keys from an object, optionally including `undefined` values. */ + function pick(source, keys, forced) { + if (!keys) return { ...source }; + const result = {}; + for (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key]; + return result; + } + //#endregion + //#region ../../../vendor/cosmokit/src/types.ts + /** Test values using `instanceof` with a `toStringTag` fallback. */ + function is(type, value) { + if (arguments.length === 1) return (value) => is(type, value); + return type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type; + } + function isArrayBufferLike(value) { + return is("ArrayBuffer", value) || is("SharedArrayBuffer", value); + } + function isArrayBufferSource(value) { + return isArrayBufferLike(value) || ArrayBuffer.isView(value); + } + let Binary; + (function(_Binary) { + _Binary.is = isArrayBufferLike; + _Binary.isSource = isArrayBufferSource; + function fromSource(source) { + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + else return source; + } + _Binary.fromSource = fromSource; + function toBase64(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("base64"); + let binary = ""; + const bytes = new Uint8Array(source); + for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]); + return btoa(binary); + } + _Binary.toBase64 = toBase64; + function fromBase64(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "base64")); + return Uint8Array.from(atob(source), (c) => c.charCodeAt(0)); + } + _Binary.fromBase64 = fromBase64; + function toHex(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("hex"); + return Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, "0")).join(""); + } + _Binary.toHex = toHex; + function fromHex(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "hex")); + const hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1); + const buffer = []; + for (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16)); + return Uint8Array.from(buffer).buffer; + } + _Binary.fromHex = fromHex; + })(Binary || (Binary = {})); + Binary.fromBase64; + Binary.toBase64; + Binary.fromHex; + Binary.toHex; + /** Deep-clone common JavaScript values while preserving prototypes and cycles. */ + function clone(source, refs = /* @__PURE__ */ new Map()) { + if (!source || typeof source !== "object") return source; + if (is("Date", source)) return new Date(source.valueOf()); + if (is("RegExp", source)) return new RegExp(source.source, source.flags); + if (isArrayBufferLike(source)) return source.slice(0); + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + const cached = refs.get(source); + if (cached) return cached; + if (Array.isArray(source)) { + const result = []; + refs.set(source, result); + source.forEach((value, index) => { + result[index] = Reflect.apply(clone, null, [value, refs]); + }); + return result; + } + const result = Object.create(Object.getPrototypeOf(source)); + refs.set(source, result); + for (const key of Reflect.ownKeys(source)) { + const descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) }; + if ("value" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]); + Reflect.defineProperty(result, key, descriptor); + } + return result; + } + /** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */ + function deepEqual(a, b, strict) { + if (a === b) return true; + if (!strict && isNullable(a) && isNullable(b)) return true; + if (typeof a !== typeof b) return false; + if (typeof a !== "object") return false; + if (!a || !b) return false; + function check(test, then) { + return test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0; + } + return check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is("Date"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is("RegExp"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => { + if (a.byteLength !== b.byteLength) return false; + const viewA = new Uint8Array(a); + const viewB = new Uint8Array(b); + for (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false; + return true; + }) ?? Object.keys({ + ...a, + ...b + }).every((key) => deepEqual(a[key], b[key], strict)); + } + //#endregion + //#region ../../../vendor/cosmokit/src/time.ts + let Time; + (function(_Time) { + _Time.millisecond = 1; + const second = _Time.second = 1e3; + const minute = _Time.minute = second * 60; + const hour = _Time.hour = minute * 60; + const day = _Time.day = hour * 24; + const week = _Time.week = day * 7; + let timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset(); + function setTimezoneOffset(offset) { + timezoneOffset = offset; + } + _Time.setTimezoneOffset = setTimezoneOffset; + function getTimezoneOffset() { + return timezoneOffset; + } + _Time.getTimezoneOffset = getTimezoneOffset; + function getDateNumber(date = /* @__PURE__ */ new Date(), offset) { + if (typeof date === "number") date = new Date(date); + if (offset === void 0) offset = timezoneOffset; + return Math.floor((date.valueOf() / minute - offset) / 1440); + } + _Time.getDateNumber = getDateNumber; + function fromDateNumber(value, offset) { + const date = new Date(value * day); + if (offset === void 0) offset = timezoneOffset; + return new Date(+date + offset * minute); + } + _Time.fromDateNumber = fromDateNumber; + const numeric = /\d+(?:\.\d+)?/.source; + const timeRegExp = new RegExp(`^${[ + "w(?:eek(?:s)?)?", + "d(?:ay(?:s)?)?", + "h(?:our(?:s)?)?", + "m(?:in(?:ute)?(?:s)?)?", + "s(?:ec(?:ond)?(?:s)?)?" + ].map((unit) => `(${numeric}${unit})?`).join("")}$`); + function parseTime(source) { + const capture = timeRegExp.exec(source); + if (!capture) return 0; + return (parseFloat(capture[1]) * week || 0) + (parseFloat(capture[2]) * day || 0) + (parseFloat(capture[3]) * hour || 0) + (parseFloat(capture[4]) * minute || 0) + (parseFloat(capture[5]) * second || 0); + } + _Time.parseTime = parseTime; + function parseDate(date) { + const parsed = parseTime(date); + if (parsed) date = Date.now() + parsed; + else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`; + else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`; + return date ? new Date(date) : /* @__PURE__ */ new Date(); + } + _Time.parseDate = parseDate; + function format(ms) { + const abs = Math.abs(ms); + if (abs >= day - hour / 2) return Math.round(ms / day) + "d"; + else if (abs >= hour - minute / 2) return Math.round(ms / hour) + "h"; + else if (abs >= minute - second / 2) return Math.round(ms / minute) + "m"; + else if (abs >= second) return Math.round(ms / second) + "s"; + return ms + "ms"; + } + _Time.format = format; + function toDigits(source, length = 2) { + return source.toString().padStart(length, "0"); + } + _Time.toDigits = toDigits; + function template(template, time = /* @__PURE__ */ new Date()) { + return template.replace("yyyy", time.getFullYear().toString()).replace("yy", time.getFullYear().toString().slice(2)).replace("MM", toDigits(time.getMonth() + 1)).replace("dd", toDigits(time.getDate())).replace("hh", toDigits(time.getHours())).replace("mm", toDigits(time.getMinutes())).replace("ss", toDigits(time.getSeconds())).replace("SSS", toDigits(time.getMilliseconds(), 3)); + } + _Time.template = template; + })(Time || (Time = {})); + //#endregion + //#region ../../../vendor/schemastery/src/index.ts + const kSchema = Symbol.for("schemastery"); + const kValidationError = Symbol.for("ValidationError"); + globalThis.__schemastery_index__ ??= 0; + globalThis.__schemastery_refs__ = void 0; + var ValidationError = class extends TypeError { + options; + name = "ValidationError"; + constructor(message, options) { + let prefix = "$"; + for (const segment of options.path || []) if (typeof segment === "string") prefix += "." + segment; + else if (typeof segment === "number") prefix += "[" + segment + "]"; + else if (typeof segment === "symbol") prefix += `[Symbol(${segment.toString()})]`; + if (prefix.startsWith(".")) prefix = prefix.slice(1); + super((prefix === "$" ? "" : `${prefix} `) + message); + this.options = options; + } + static is(error) { + return !!error?.[kValidationError]; + } + }; + Object.defineProperty(ValidationError.prototype, kValidationError, { value: true }); + const Schema = function(options) { + const schema = function(data, options = {}) { + return Schema.resolve(data, schema, options)[0]; + }; + if (options.refs) { + const refs = mapValues(options.refs, (options) => new Schema(options)); + const getRef = (uid) => refs[uid]; + for (const key in refs) { + const options = refs[key]; + options.sKey = getRef(options.sKey); + options.inner = getRef(options.inner); + options.list = options.list && options.list.map(getRef); + options.dict = options.dict && mapValues(options.dict, getRef); + } + return refs[options.uid]; + } + Object.assign(schema, options); + if (typeof schema.callback === "string") try { + schema.callback = new Function("return " + schema.callback)(); + } catch {} + Object.defineProperty(schema, "uid", { value: globalThis.__schemastery_index__++ }); + Object.setPrototypeOf(schema, Schema.prototype); + schema.meta ||= {}; + schema.toString = schema.toString.bind(schema); + return schema; + }; + Schema.prototype = Object.create(Function.prototype); + Schema.prototype[kSchema] = true; + Object.defineProperty(Schema.prototype, "~standard", { get() { + return { + version: 1, + vendor: "schemastery", + validate: (value) => { + try { + return { value: Schema.resolve(value, this, {})[0] }; + } catch (error) { + if (ValidationError.is(error)) return { issues: [{ + message: error.message, + path: error.options.path + }] }; + throw error; + } + } + }; + } }); + Schema.ValidationError = ValidationError; + Schema.prototype.toJSON = function toJSON() { + if (globalThis.__schemastery_refs__) { + globalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this })); + return this.uid; + } + globalThis.__schemastery_refs__ = { [this.uid]: { ...this } }; + globalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this })); + const result = { + uid: this.uid, + refs: globalThis.__schemastery_refs__ + }; + globalThis.__schemastery_refs__ = void 0; + return result; + }; + Schema.prototype.set = function set(key, value) { + this.dict[key] = value; + return this; + }; + Schema.prototype.push = function push(value) { + this.list.push(value); + return this; + }; + function mergeDesc(original, messages) { + const result = typeof original === "string" ? { "": original } : { ...original }; + for (const locale in messages) { + const value = messages[locale]; + if (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc; + else if (typeof value === "string") result[locale] = value; + } + return result; + } + function getInner(value) { + return value?.$value ?? value?.$inner; + } + function extractKeys(data) { + return filterKeys(data ?? {}, (key) => !key.startsWith("$")); + } + Schema.prototype.i18n = function i18n(messages) { + const schema = Schema(this); + const desc = mergeDesc(schema.meta.description, messages); + if (Object.keys(desc).length) schema.meta.description = desc; + if (schema.dict) schema.dict = mapValues(schema.dict, (inner, key) => { + return inner.i18n(mapValues(messages, (data) => getInner(data)?.[key] ?? data?.[key])); + }); + if (schema.list) schema.list = schema.list.map((inner, index) => { + return inner.i18n(mapValues(messages, (data = {}) => { + if (Array.isArray(getInner(data))) return getInner(data)[index]; + if (Array.isArray(data)) return data[index]; + return extractKeys(data); + })); + }); + if (schema.inner) schema.inner = schema.inner.i18n(mapValues(messages, (data) => { + if (getInner(data)) return getInner(data); + return extractKeys(data); + })); + if (schema.sKey) schema.sKey = schema.sKey.i18n(mapValues(messages, (data) => data?.$key)); + return schema; + }; + Schema.prototype.extra = function extra(key, value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + }; + for (const key of [ + "required", + "disabled", + "collapse", + "hidden", + "loose" + ]) Object.assign(Schema.prototype, { [key](value = true) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + Schema.prototype.deprecated = function deprecated() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "deprecated", + type: "danger" + }); + return schema; + }; + Schema.prototype.experimental = function experimental() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "experimental", + type: "warning" + }); + return schema; + }; + Schema.prototype.pattern = function pattern(regexp) { + const schema = Schema(this); + const pattern = pick(regexp, ["source", "flags"]); + schema.meta = { + ...schema.meta, + pattern + }; + return schema; + }; + Schema.prototype.simplify = function simplify(value) { + if (deepEqual(value, this.meta.default, this.type === "dict")) return null; + if (isNullable(value)) return value; + if (this.type === "object" || this.type === "dict") { + const result = {}; + for (const key in value) { + const item = (this.type === "object" ? this.dict[key] : this.inner)?.simplify(value[key]); + if (this.type === "dict" || !isNullable(item)) result[key] = item; + } + if (deepEqual(result, this.meta.default, this.type === "dict")) return null; + return result; + } else if (this.type === "array" || this.type === "tuple") { + const result = []; + value.forEach((value, index) => { + const schema = this.type === "array" ? this.inner : this.list[index]; + const item = schema ? schema.simplify(value) : value; + result.push(item); + }); + return result; + } else if (this.type === "intersect") { + const result = {}; + for (const item of this.list) Object.assign(result, item.simplify(value)); + return result; + } else if (this.type === "union") for (const schema of this.list) try { + Schema.resolve(value, schema, {}); + return schema.simplify(value); + } catch {} + return value; + }; + Schema.prototype.toString = function toString(inline) { + return formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`; + }; + Schema.prototype.role = function role(role, extra) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + role, + extra + }; + return schema; + }; + for (const key of [ + "default", + "link", + "comment", + "description", + "max", + "min", + "step" + ]) Object.assign(Schema.prototype, { [key](value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + const resolvers = {}; + Schema.extend = function extend(type, resolve) { + resolvers[type] = resolve; + }; + Schema.resolve = function resolve(data, schema, options = {}, strict = false) { + if (!schema) return [data]; + if (options.ignore?.(data, schema)) return [data]; + if (isNullable(data) && schema.type !== "lazy") { + if (schema.meta.required) throw new ValidationError(`missing required value`, options); + let current = schema; + let fallback = schema.meta.default; + while (current?.type === "intersect" && isNullable(fallback)) { + current = current.list[0]; + fallback = current?.meta.default; + } + if (isNullable(fallback)) return [data]; + data = clone(fallback); + } + const callback = resolvers[schema.type]; + if (!callback) throw new ValidationError(`unsupported type "${schema.type}"`, options); + try { + return callback(data, schema, options, strict); + } catch (error) { + if (!schema.meta.loose) throw error; + return [schema.meta.default]; + } + }; + Schema.from = function from(source) { + if (isNullable(source)) return Schema.any(); + else if ([ + "string", + "number", + "boolean" + ].includes(typeof source)) return Schema.const(source).required(); + else if (source[kSchema]) return source; + else if (typeof source === "function") switch (source) { + case String: return Schema.string().required(); + case Number: return Schema.number().required(); + case Boolean: return Schema.boolean().required(); + case Function: return Schema.function().required(); + default: return Schema.is(source).required(); + } + else throw new TypeError(`cannot infer schema from ${source}`); + }; + Schema.lazy = function lazy(builder) { + const toJSON = () => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return schema.inner.toJSON(); + }; + const schema = new Schema({ + type: "lazy", + builder, + inner: { toJSON } + }); + return schema; + }; + Schema.natural = function natural() { + return Schema.number().step(1).min(0); + }; + Schema.percent = function percent() { + return Schema.number().step(.01).min(0).max(1).role("slider"); + }; + Schema.date = function date() { + return Schema.union([Schema.is(Date), Schema.transform(Schema.string().role("datetime"), (value, options) => { + const date = new Date(value); + if (isNaN(+date)) throw new ValidationError(`invalid date "${value}"`, options); + return date; + }, true)]); + }; + Schema.regExp = function regExp(flag = "") { + return Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role("regexp", { flag }), (value, options) => { + try { + return new RegExp(value, flag); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)]); + }; + Schema.arrayBuffer = function arrayBuffer(encoding) { + return Schema.union([ + Schema.is(ArrayBuffer), + Schema.is(SharedArrayBuffer), + Schema.transform(Schema.any(), (value, options) => { + if (Binary.isSource(value)) return Binary.fromSource(value); + throw new ValidationError(`expected ArrayBufferSource but got ${value}`, options); + }, true), + ...encoding ? [Schema.transform(Schema.string(), (value, options) => { + try { + return encoding === "base64" ? Binary.fromBase64(value) : Binary.fromHex(value); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)] : [] + ]); + }; + Schema.extend("lazy", (data, schema, options, strict) => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return Schema.resolve(data, schema.inner, options, strict); + }); + Schema.extend("any", (data) => { + return [data]; + }); + Schema.extend("never", (data, _, options) => { + throw new ValidationError(`expected nullable but got ${data}`, options); + }); + Schema.extend("const", (data, { value }, options) => { + if (deepEqual(data, value)) return [value]; + throw new ValidationError(`expected ${value} but got ${data}`, options); + }); + function checkWithinRange(data, meta, description, options, skipMin = false) { + const { max = Infinity, min = -Infinity } = meta; + if (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options); + if (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options); + } + Schema.extend("string", (data, { meta }, options) => { + if (typeof data !== "string") throw new ValidationError(`expected string but got ${data}`, options); + if (meta.pattern) { + const regexp = new RegExp(meta.pattern.source, meta.pattern.flags); + if (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options); + } + checkWithinRange(data.length, meta, "string length", options); + return [data]; + }); + function decimalShift(data, digits) { + const str = data.toString(); + if (str.includes("e")) return data * Math.pow(10, digits); + const index = str.indexOf("."); + if (index === -1) return data * Math.pow(10, digits); + const frac = str.slice(index + 1); + const integer = str.slice(0, index); + if (frac.length <= digits) return +(integer + frac.padEnd(digits, "0")); + return +(integer + frac.slice(0, digits) + "." + frac.slice(digits)); + } + function isMultipleOf(data, min, step) { + step = Math.abs(step); + if (!/^\d+\.\d+$/.test(step.toString())) return (data - min) % step === 0; + const index = step.toString().indexOf("."); + const digits = step.toString().slice(index + 1).length; + return Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0; + } + Schema.extend("number", (data, { meta }, options) => { + if (typeof data !== "number") throw new ValidationError(`expected number but got ${data}`, options); + checkWithinRange(data, meta, "number", options); + const { step } = meta; + if (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options); + return [data]; + }); + Schema.extend("boolean", (data, _, options) => { + if (typeof data === "boolean") return [data]; + throw new ValidationError(`expected boolean but got ${data}`, options); + }); + Schema.extend("bitset", (data, { bits, meta }, options) => { + let value = 0, keys = []; + if (typeof data === "number") { + value = data; + for (const key in bits) if (data & bits[key]) keys.push(key); + } else if (Array.isArray(data)) { + keys = data; + for (const key of keys) { + if (typeof key !== "string") throw new ValidationError(`expected string but got ${key}`, options); + if (key in bits) value |= bits[key]; + } + } else throw new ValidationError(`expected number or array but got ${data}`, options); + if (value === meta.default) return [value]; + return [value, keys]; + }); + Schema.extend("function", (data, _, options) => { + if (typeof data === "function") return [data]; + throw new ValidationError(`expected function but got ${data}`, options); + }); + Schema.extend("is", (data, { constructor }, options) => { + if (typeof constructor === "function") { + if (data instanceof constructor) return [data]; + throw new ValidationError(`expected ${constructor.name} but got ${data}`, options); + } else { + if (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options); + let prototype = Object.getPrototypeOf(data); + while (prototype) { + if (prototype.constructor?.name === constructor) return [data]; + prototype = Object.getPrototypeOf(prototype); + } + throw new ValidationError(`expected ${constructor} but got ${data}`, options); + } + }); + function property(data, key, schema, options) { + try { + const [value, adapted] = Schema.resolve(data[key], schema, { + ...options, + path: [...options.path || [], key] + }); + if (adapted !== void 0) data[key] = adapted; + return value; + } catch (e) { + if (!options?.autofix) throw e; + delete data[key]; + return schema.meta.default; + } + } + Schema.extend("array", (data, { inner, meta }, options) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + checkWithinRange(data.length, meta, "array length", options, !isNullable(inner.meta.default)); + return [data.map((_, index) => property(data, index, inner, options))]; + }); + Schema.extend("dict", (data, { inner, sKey }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in data) { + let rKey; + try { + rKey = Schema.resolve(key, sKey, options)[0]; + } catch (error) { + if (strict) continue; + throw error; + } + result[rKey] = property(data, key, inner, options); + data[rKey] = data[key]; + if (key !== rKey) delete data[key]; + } + return [result]; + }); + Schema.extend("tuple", (data, { list }, options, strict) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + const result = list.map((inner, index) => property(data, index, inner, options)); + if (strict) return [result]; + result.push(...data.slice(list.length)); + return [result]; + }); + function merge(result, data) { + for (const key in data) { + if (key in result) continue; + result[key] = data[key]; + } + } + Schema.extend("object", (data, { dict }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in dict) { + const value = property(data, key, dict[key], options); + if (!isNullable(value) || key in data) result[key] = value; + } + if (!strict) merge(result, data); + return [result]; + }); + Schema.extend("union", (data, { list, toString }, options, strict) => { + const messages = []; + for (const inner of list) try { + return Schema.resolve(data, inner, options, strict); + } catch (error) { + messages.push(error); + } + throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + }); + Schema.extend("intersect", (data, { list, toString }, options, strict) => { + if (!list.length) return [data]; + let result; + for (const inner of list) { + const value = Schema.resolve(data, inner, options, true)[0]; + if (isNullable(value)) continue; + if (isNullable(result)) result = value; + else if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + else if (typeof value === "object") merge(result ??= {}, value); + else if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + } + if (!strict && isPlainObject(data)) merge(result, data); + return [result]; + }); + Schema.extend("transform", (data, { inner, callback, preserve }, options) => { + const [result, adapted = data] = Schema.resolve(data, inner, options, true); + if (preserve) return [callback(result)]; + else return [callback(result), callback(adapted)]; + }); + const formatters = {}; + function defineMethod(name, keys, format) { + formatters[name] = format; + Object.assign(Schema, { [name](...args) { + const schema = new Schema({ type: name }); + keys.forEach((key, index) => { + switch (key) { + case "sKey": + schema.sKey = args[index] ?? Schema.string(); + break; + case "inner": + schema.inner = Schema.from(args[index]); + break; + case "list": + schema.list = args[index].map(Schema.from); + break; + case "dict": + schema.dict = mapValues(args[index], Schema.from); + break; + case "bits": + schema.bits = {}; + for (const key in args[index]) { + if (typeof args[index][key] !== "number") continue; + schema.bits[key] = args[index][key]; + } + break; + case "callback": { + const callback = schema.callback = args[index]; + callback["toJSON"] ||= () => callback.toString(); + break; + } + case "constructor": { + const constructor = schema.constructor = args[index]; + if (typeof constructor === "function") constructor["toJSON"] ||= () => constructor["name"]; + break; + } + default: schema[key] = args[index]; + } + }); + if (name === "object" || name === "dict") schema.meta.default = {}; + else if (name === "array" || name === "tuple") schema.meta.default = []; + else if (name === "bitset") schema.meta.default = 0; + return schema; + } }); + } + defineMethod("is", ["constructor"], ({ constructor }) => { + if (typeof constructor === "function") return constructor.name; + else return constructor; + }); + defineMethod("any", [], () => "any"); + defineMethod("never", [], () => "never"); + defineMethod("const", ["value"], ({ value }) => typeof value === "string" ? JSON.stringify(value) : value); + defineMethod("string", [], () => "string"); + defineMethod("number", [], () => "number"); + defineMethod("boolean", [], () => "boolean"); + defineMethod("bitset", ["bits"], () => "bitset"); + defineMethod("function", [], () => "function"); + defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`); + defineMethod("dict", ["inner", "sKey"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`); + defineMethod("tuple", ["list"], ({ list }) => `[${list.map((inner) => inner.toString()).join(", ")}]`); + defineMethod("object", ["dict"], ({ dict }) => { + if (Object.keys(dict).length === 0) return "{}"; + return `{ ${Object.entries(dict).map(([key, inner]) => { + return `${key}${inner.meta.required ? "" : "?"}: ${inner.toString()}`; + }).join(", ")} }`; + }); + defineMethod("union", ["list"], ({ list }, inline) => { + const result = list.map(({ toString: format }) => format()).join(" | "); + return inline ? `(${result})` : result; + }); + defineMethod("intersect", ["list"], ({ list }) => { + return `${list.map((inner) => inner.toString(true)).join(" & ")}`; + }); + defineMethod("transform", [ + "inner", + "callback", + "preserve" + ], ({ inner }, isInner) => inner.toString(isInner)); + //#endregion + //#region lib/types/theme-settings.js + /** Theme preferences stored in the Host user-settings document. */ + /** Built-in preferences accepted at the registry and settings boundaries. */ + const THEME_PREFERENCES = [ + "light", + "dark", + "system" + ]; + /** Settings namespace owned by the theme plugin. */ + const THEME_SETTINGS_NAMESPACE = "ui-theme"; + /** Field carrying the selected built-in theme preference. */ + const THEME_PREFERENCE_FIELD = "preference"; + /** Default preference when the user-settings document has no override. */ + const DEFAULT_PREFERENCE = "system"; + Schema.object({ [THEME_PREFERENCE_FIELD]: Schema.union([...THEME_PREFERENCES]).default(DEFAULT_PREFERENCE) }); + /** + * Narrow one wire or registry value to a persistable preference. + * @param value - value crossing the settings or registry boundary. + * @returns whether the value is a built-in preference. + */ + function isThemePreference(value) { + return THEME_PREFERENCES.some((preference) => preference === value); + } + //#endregion + //#region lib/types/client/index.js + /** Namespace owning this feature's settings-row copy. */ + const SETTINGS_NS = "settings.theme"; + const BUILTIN_THEMES = Object.freeze([Object.freeze({ + id: "light", + colorScheme: "light", + tokens: Object.freeze({}) + }), Object.freeze({ + id: "dark", + colorScheme: "dark", + tokens: Object.freeze({}) + })]); + const BUILTIN_INSPECT_TOKENS = Object.freeze([ + { + name: "--dsw-alias-bg-base", + description: "Application base background.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-bg-base" + }, + { + name: "--dsw-alias-bg-layer-1", + description: "Primary raised surface background.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-bg-layer-1" + }, + { + name: "--dsw-alias-bg-layer-2", + description: "Secondary nested surface background.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-bg-layer-2" + }, + { + name: "--dsw-alias-bg-overlay", + description: "Overlay and popover background.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-bg-overlay" + }, + { + name: "--dsw-alias-border-l1", + description: "Primary subtle border.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-border-l1" + }, + { + name: "--dsw-alias-border-l2", + description: "Secondary stronger border.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-border-l2" + }, + { + name: "--dsw-alias-brand-primary", + description: "Primary brand accent.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-brand-primary" + }, + { + name: "--dsw-alias-label-primary", + description: "Primary text color.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-label-primary" + }, + { + name: "--dsw-alias-label-secondary", + description: "Secondary text color.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-label-secondary" + }, + { + name: "--dsw-alias-state-error-primary", + description: "Primary error state color.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-state-error-primary" + }, + { + name: "--dsw-alias-state-success-primary", + description: "Primary success state color.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-state-success-primary" + }, + { + name: "--dsw-alias-state-warn-primary", + description: "Primary warning state color.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-alias-state-warn-primary" + }, + { + name: "--dsw-specific-sidebar-fill", + description: "Sidebar column and title-row background.", + valueType: "CSS color", + requiresLightAndDark: true, + cssVariable: "--dsw-specific-sidebar-fill" + } + ]); + /** + * Theme registry and preference owner. `light`/`dark` are built in (the base + * stylesheets carry both palettes); third-party themes register alias-layer + * overrides. Reads go through {@link getTheme}; preference writes only + * through {@link setTheme}; continuous sync only through the `theme/change` + * event. {@link overrideTokens} stacks partial token layers over the active + * theme without touching the registry. + * The service holds the `prefers-color-scheme` media query (environment + * sensing, not presentation) and re-emits when the OS scheme flips while the + * preference is `system`. + */ + var ThemeRuntime = class { + ctx; + host; + themes = [...BUILTIN_THEMES]; + preference; + revision = 0; + snapshot; + media; + /** Override layers by source; seq (monotonic) is the stacking order. */ + overrides = /* @__PURE__ */ new Map(); + overrideSeq = 0; + /** + * @param ctx - owning context (change events are emitted on it; the + * media-query and scope listeners are released through ctx.effect on dispose). + * @param host - durable preference scope owned by the same plugin. + */ + constructor(ctx, host) { + this.ctx = ctx; + this.host = host; + this.preference = DEFAULT_PREFERENCE; + this.media = typeof matchMedia === "undefined" ? void 0 : matchMedia("(prefers-color-scheme: dark)"); + this.snapshot = this.buildSnapshot(); + if (this.media !== void 0) { + const media = this.media; + const onChange = () => { + if (this.preference !== "system") return; + this.publish(); + }; + ctx.effect(() => { + media.addEventListener("change", onChange); + return () => { + media.removeEventListener("change", onChange); + }; + }, "ui-theme: prefers-color-scheme listener"); + } + ctx.effect(() => host.subscribe(() => { + this.adopt(); + }), "ui-theme: settings scope adoption"); + this.adopt(); + } + /** + * Read the current immutable theme snapshot. + * @returns the current snapshot (stable reference until the next change). + */ + getTheme() { + return this.snapshot; + } + /** + * Export the current token directory without reading DOM or computed styles. + * @returns stable JSON-safe token descriptions, including registered and override-only names. + */ + exportInspectTokens() { + const tokens = new Map(BUILTIN_INSPECT_TOKENS.map((token) => [token.name, token])); + for (const theme of this.themes) for (const name of Object.keys(theme.tokens)) if (!tokens.has(name)) tokens.set(name, dynamicToken(name)); + for (const layer of this.overrides.values()) for (const name of Object.keys(layer.tokens)) if (!tokens.has(name)) tokens.set(name, dynamicToken(name)); + return [...tokens.values()].map((token) => ({ ...token })).sort((left, right) => left.name.localeCompare(right.name)); + } + /** + * Switch the theme preference — the only user preference write entry. + * Built-in preferences are written through the settings scope and every + * accepted value emits `theme/change`. + * @param id - a registered theme id or `system`; unknown ids throw. + */ + setTheme(id) { + if (id !== "system" && !this.themes.some((t) => t.id === id)) throw new Error(`theme "${id}" is not registered`); + if (this.preference === id) return; + this.preference = id; + if (isThemePreference(id)) this.host.set(THEME_PREFERENCE_FIELD, id); + this.publish(); + } + /** Adopt the scope's accepted durable preference without writing it back. */ + adopt() { + const section = this.host.getSnapshot().value; + if (section === void 0 || this.preference === section.preference) return; + this.preference = section.preference; + this.publish(); + } + /** + * Register a theme. Duplicate id throws (single occupant per id; the + * built-in pair counts; `system` is a preference, not a registrable id). + * @param definition - theme id, colorScheme, and alias-token overrides. + * @returns disposer. Disposing the theme backing the active preference + * resets the preference to the default so the UI never keeps tokens of an + * unregistered theme. + */ + register(definition) { + if (definition.id === "system") throw new Error("\"system\" is a preference, not a registrable theme id"); + if (this.themes.some((t) => t.id === definition.id)) throw new Error(`theme "${definition.id}" is already registered`); + this.themes = [...this.themes, definition]; + this.publish(); + return () => { + if (!this.themes.some((t) => t.id === definition.id)) return; + this.themes = this.themes.filter((t) => t.id !== definition.id); + if (this.preference === definition.id) this.preference = DEFAULT_PREFERENCE; + this.publish(); + }; + } + /** + * Stack a token override layer on top of the active theme — the token-level + * analogue of slot shading: the base theme stays untouched, layers compose + * in seq order with later layers winning per-token, and removing a layer + * restores whatever it covered. Calling again with the same source replaces + * that source's whole layer and restacks it on top (effect re-registration + * semantics). Emits `theme/change` with the recomposed snapshot. + * @param source - layer identity; one layer per source (dynamic packages + * pass their package id — the façade pins it, so it also names the layer's + * origin for inspection). + * @param tokens - token-name → `{ light, dark }` value pairs. Validated at + * runtime (model-authored callers reach this boundary with untyped JS); + * a bare string value throws a teaching error. + * @returns disposer removing exactly the layer this call created; a no-op + * once the source has re-overridden (the newer layer is not torn down). + */ + overrideTokens(source, tokens) { + const layer = { + seq: this.overrideSeq++, + tokens: validateOverrides(source, tokens) + }; + this.overrides.set(source, layer); + this.publish(); + return () => { + if (this.overrides.get(source) !== layer) return; + this.overrides.delete(source); + this.publish(); + }; + } + buildSnapshot() { + const resolvedId = this.preference === "system" ? this.media?.matches === true ? "dark" : "light" : this.preference; + const active = this.themes.find((t) => t.id === resolvedId); + /* v8 ignore next 2 -- needs a registry without light/dark, which register()/dispose() cannot produce */ + if (active === void 0) throw new Error(`theme registry lost "${resolvedId}"`); + return Object.freeze({ + preference: this.preference, + active: this.composeActive(active), + themes: Object.freeze([...this.themes]), + revision: this.revision + }); + } + /** + * Fold the override layers into the active definition: seq order, later + * layers win per-token, each value picked for the active color scheme (the + * presenter consumes the composed snapshot and needs no override awareness). + * Without layers the registered definition passes through by identity. + */ + composeActive(active) { + if (this.overrides.size === 0) return active; + const tokens = { ...active.tokens }; + for (const layer of [...this.overrides.values()].sort((a, b) => a.seq - b.seq)) for (const [name, modes] of Object.entries(layer.tokens)) tokens[name] = modes[active.colorScheme]; + return Object.freeze({ + ...active, + tokens: Object.freeze(tokens) + }); + } + publish() { + this.revision += 1; + this.snapshot = this.buildSnapshot(); + this.ctx.emit("theme/change", this.snapshot); + } + }; + /** + * Runtime shape check for one override layer (model-authored callers pass + * untyped JS through the dynamic-package façade, so the static type cannot + * enforce the pair shape there). Returns a defensive per-token copy so later + * caller mutation cannot reach the stored layer. + */ + function validateOverrides(source, tokens) { + const validated = {}; + for (const [name, value] of Object.entries(tokens)) { + if (typeof value === "string") throw new TypeError(`theme override "${name}" from "${source}" is a bare string — pass { light: ${JSON.stringify(value)}, dark: ${JSON.stringify(value)} } (repeat the value when it is the same in both palettes); a single value goes illegible when the user switches color scheme`); + if (typeof value !== "object" || value === null || typeof value.light !== "string" || typeof value.dark !== "string") throw new TypeError(`theme override "${name}" from "${source}" must map to a { light, dark } pair of strings — one value per color scheme`); + const modes = value; + validated[name] = { + light: modes.light, + dark: modes.dark + }; + } + return validated; + } + function dynamicToken(name) { + return { + name, + description: "Theme token registered by the current Client composition.", + valueType: "CSS value", + requiresLightAndDark: true, + ...name.startsWith("--") ? { cssVariable: name } : {} + }; + } + /** + * Required services: settings transport plus slots/locale for the Appearance + * row. `remote` carries the forwarded settings invalidation that + * `bindSettingsScope` subscribes to on this context. + */ + const inject = [ + "slots", + "locale", + "connection", + "remote", + "settingsScope" + ]; + /** + * Client plugin body: provide the theme service and register the + * feature-owned Appearance preference row into the General section's item + * slot (a feature owns its settings surface). + * @param ctx - client cordis context. + */ + function apply(ctx) { + const theme = new ThemeRuntime(ctx, ctx.settingsScope.bind({ namespace: THEME_SETTINGS_NAMESPACE })); + ctx.provide("theme", theme); + ctx.effect(() => ctx.locale.register(SETTINGS_NS, { + zh, + en + }), "ui-theme: settings row dictionaries"); + const store = createAppearanceRowStore(); + let bound; + const sync = (snapshot) => { + bound?.sync(snapshot.preference, snapshot.revision); + }; + ctx.on("theme/change", sync); + const injected = (actions) => { + bound = actions; + sync(theme.getTheme()); + return { setTheme: (id) => { + theme.setTheme(id); + } }; + }; + ctx.slots.inject("settings.general.item", () => ctx.slots.register({ + name: "settings.general.item", + id: "appearance", + order: 10, + store, + locale: SETTINGS_NS, + inject: injected + }, AppearanceRow)); + } + //#endregion + exports.SETTINGS_NS = SETTINGS_NS; + exports.ThemeRuntime = ThemeRuntime; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000009 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000009 new file mode 100644 index 0000000..6b25606 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000009 @@ -0,0 +1,1231 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-locale", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region ../../../vendor/cosmokit/src/misc.ts + /** Return true when a value is `null` or `undefined`. */ + function isNullable(value) { + return value === null || value === void 0; + } + /** Return true for non-array object values. */ + function isPlainObject(data) { + return data && typeof data === "object" && !Array.isArray(data); + } + /** Filter object entries and return a new object. */ + function filterKeys(object, filter) { + return Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value))); + } + /** Map object values while preserving the original key set. */ + function mapValues(object, transform) { + return Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)])); + } + /** Pick selected keys from an object, optionally including `undefined` values. */ + function pick(source, keys, forced) { + if (!keys) return { ...source }; + const result = {}; + for (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key]; + return result; + } + //#endregion + //#region ../../../vendor/cosmokit/src/types.ts + /** Test values using `instanceof` with a `toStringTag` fallback. */ + function is(type, value) { + if (arguments.length === 1) return (value) => is(type, value); + return type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type; + } + function isArrayBufferLike(value) { + return is("ArrayBuffer", value) || is("SharedArrayBuffer", value); + } + function isArrayBufferSource(value) { + return isArrayBufferLike(value) || ArrayBuffer.isView(value); + } + let Binary; + (function(_Binary) { + _Binary.is = isArrayBufferLike; + _Binary.isSource = isArrayBufferSource; + function fromSource(source) { + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + else return source; + } + _Binary.fromSource = fromSource; + function toBase64(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("base64"); + let binary = ""; + const bytes = new Uint8Array(source); + for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]); + return btoa(binary); + } + _Binary.toBase64 = toBase64; + function fromBase64(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "base64")); + return Uint8Array.from(atob(source), (c) => c.charCodeAt(0)); + } + _Binary.fromBase64 = fromBase64; + function toHex(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("hex"); + return Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, "0")).join(""); + } + _Binary.toHex = toHex; + function fromHex(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "hex")); + const hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1); + const buffer = []; + for (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16)); + return Uint8Array.from(buffer).buffer; + } + _Binary.fromHex = fromHex; + })(Binary || (Binary = {})); + Binary.fromBase64; + Binary.toBase64; + Binary.fromHex; + Binary.toHex; + /** Deep-clone common JavaScript values while preserving prototypes and cycles. */ + function clone(source, refs = /* @__PURE__ */ new Map()) { + if (!source || typeof source !== "object") return source; + if (is("Date", source)) return new Date(source.valueOf()); + if (is("RegExp", source)) return new RegExp(source.source, source.flags); + if (isArrayBufferLike(source)) return source.slice(0); + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + const cached = refs.get(source); + if (cached) return cached; + if (Array.isArray(source)) { + const result = []; + refs.set(source, result); + source.forEach((value, index) => { + result[index] = Reflect.apply(clone, null, [value, refs]); + }); + return result; + } + const result = Object.create(Object.getPrototypeOf(source)); + refs.set(source, result); + for (const key of Reflect.ownKeys(source)) { + const descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) }; + if ("value" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]); + Reflect.defineProperty(result, key, descriptor); + } + return result; + } + /** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */ + function deepEqual(a, b, strict) { + if (a === b) return true; + if (!strict && isNullable(a) && isNullable(b)) return true; + if (typeof a !== typeof b) return false; + if (typeof a !== "object") return false; + if (!a || !b) return false; + function check(test, then) { + return test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0; + } + return check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is("Date"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is("RegExp"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => { + if (a.byteLength !== b.byteLength) return false; + const viewA = new Uint8Array(a); + const viewB = new Uint8Array(b); + for (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false; + return true; + }) ?? Object.keys({ + ...a, + ...b + }).every((key) => deepEqual(a[key], b[key], strict)); + } + //#endregion + //#region ../../../vendor/cosmokit/src/time.ts + let Time; + (function(_Time) { + _Time.millisecond = 1; + const second = _Time.second = 1e3; + const minute = _Time.minute = second * 60; + const hour = _Time.hour = minute * 60; + const day = _Time.day = hour * 24; + const week = _Time.week = day * 7; + let timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset(); + function setTimezoneOffset(offset) { + timezoneOffset = offset; + } + _Time.setTimezoneOffset = setTimezoneOffset; + function getTimezoneOffset() { + return timezoneOffset; + } + _Time.getTimezoneOffset = getTimezoneOffset; + function getDateNumber(date = /* @__PURE__ */ new Date(), offset) { + if (typeof date === "number") date = new Date(date); + if (offset === void 0) offset = timezoneOffset; + return Math.floor((date.valueOf() / minute - offset) / 1440); + } + _Time.getDateNumber = getDateNumber; + function fromDateNumber(value, offset) { + const date = new Date(value * day); + if (offset === void 0) offset = timezoneOffset; + return new Date(+date + offset * minute); + } + _Time.fromDateNumber = fromDateNumber; + const numeric = /\d+(?:\.\d+)?/.source; + const timeRegExp = new RegExp(`^${[ + "w(?:eek(?:s)?)?", + "d(?:ay(?:s)?)?", + "h(?:our(?:s)?)?", + "m(?:in(?:ute)?(?:s)?)?", + "s(?:ec(?:ond)?(?:s)?)?" + ].map((unit) => `(${numeric}${unit})?`).join("")}$`); + function parseTime(source) { + const capture = timeRegExp.exec(source); + if (!capture) return 0; + return (parseFloat(capture[1]) * week || 0) + (parseFloat(capture[2]) * day || 0) + (parseFloat(capture[3]) * hour || 0) + (parseFloat(capture[4]) * minute || 0) + (parseFloat(capture[5]) * second || 0); + } + _Time.parseTime = parseTime; + function parseDate(date) { + const parsed = parseTime(date); + if (parsed) date = Date.now() + parsed; + else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`; + else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`; + return date ? new Date(date) : /* @__PURE__ */ new Date(); + } + _Time.parseDate = parseDate; + function format(ms) { + const abs = Math.abs(ms); + if (abs >= day - hour / 2) return Math.round(ms / day) + "d"; + else if (abs >= hour - minute / 2) return Math.round(ms / hour) + "h"; + else if (abs >= minute - second / 2) return Math.round(ms / minute) + "m"; + else if (abs >= second) return Math.round(ms / second) + "s"; + return ms + "ms"; + } + _Time.format = format; + function toDigits(source, length = 2) { + return source.toString().padStart(length, "0"); + } + _Time.toDigits = toDigits; + function template(template, time = /* @__PURE__ */ new Date()) { + return template.replace("yyyy", time.getFullYear().toString()).replace("yy", time.getFullYear().toString().slice(2)).replace("MM", toDigits(time.getMonth() + 1)).replace("dd", toDigits(time.getDate())).replace("hh", toDigits(time.getHours())).replace("mm", toDigits(time.getMinutes())).replace("ss", toDigits(time.getSeconds())).replace("SSS", toDigits(time.getMilliseconds(), 3)); + } + _Time.template = template; + })(Time || (Time = {})); + //#endregion + //#region ../../../vendor/schemastery/src/index.ts + const kSchema = Symbol.for("schemastery"); + const kValidationError = Symbol.for("ValidationError"); + globalThis.__schemastery_index__ ??= 0; + globalThis.__schemastery_refs__ = void 0; + var ValidationError = class extends TypeError { + options; + name = "ValidationError"; + constructor(message, options) { + let prefix = "$"; + for (const segment of options.path || []) if (typeof segment === "string") prefix += "." + segment; + else if (typeof segment === "number") prefix += "[" + segment + "]"; + else if (typeof segment === "symbol") prefix += `[Symbol(${segment.toString()})]`; + if (prefix.startsWith(".")) prefix = prefix.slice(1); + super((prefix === "$" ? "" : `${prefix} `) + message); + this.options = options; + } + static is(error) { + return !!error?.[kValidationError]; + } + }; + Object.defineProperty(ValidationError.prototype, kValidationError, { value: true }); + const Schema = function(options) { + const schema = function(data, options = {}) { + return Schema.resolve(data, schema, options)[0]; + }; + if (options.refs) { + const refs = mapValues(options.refs, (options) => new Schema(options)); + const getRef = (uid) => refs[uid]; + for (const key in refs) { + const options = refs[key]; + options.sKey = getRef(options.sKey); + options.inner = getRef(options.inner); + options.list = options.list && options.list.map(getRef); + options.dict = options.dict && mapValues(options.dict, getRef); + } + return refs[options.uid]; + } + Object.assign(schema, options); + if (typeof schema.callback === "string") try { + schema.callback = new Function("return " + schema.callback)(); + } catch {} + Object.defineProperty(schema, "uid", { value: globalThis.__schemastery_index__++ }); + Object.setPrototypeOf(schema, Schema.prototype); + schema.meta ||= {}; + schema.toString = schema.toString.bind(schema); + return schema; + }; + Schema.prototype = Object.create(Function.prototype); + Schema.prototype[kSchema] = true; + Object.defineProperty(Schema.prototype, "~standard", { get() { + return { + version: 1, + vendor: "schemastery", + validate: (value) => { + try { + return { value: Schema.resolve(value, this, {})[0] }; + } catch (error) { + if (ValidationError.is(error)) return { issues: [{ + message: error.message, + path: error.options.path + }] }; + throw error; + } + } + }; + } }); + Schema.ValidationError = ValidationError; + Schema.prototype.toJSON = function toJSON() { + if (globalThis.__schemastery_refs__) { + globalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this })); + return this.uid; + } + globalThis.__schemastery_refs__ = { [this.uid]: { ...this } }; + globalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this })); + const result = { + uid: this.uid, + refs: globalThis.__schemastery_refs__ + }; + globalThis.__schemastery_refs__ = void 0; + return result; + }; + Schema.prototype.set = function set(key, value) { + this.dict[key] = value; + return this; + }; + Schema.prototype.push = function push(value) { + this.list.push(value); + return this; + }; + function mergeDesc(original, messages) { + const result = typeof original === "string" ? { "": original } : { ...original }; + for (const locale in messages) { + const value = messages[locale]; + if (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc; + else if (typeof value === "string") result[locale] = value; + } + return result; + } + function getInner(value) { + return value?.$value ?? value?.$inner; + } + function extractKeys(data) { + return filterKeys(data ?? {}, (key) => !key.startsWith("$")); + } + Schema.prototype.i18n = function i18n(messages) { + const schema = Schema(this); + const desc = mergeDesc(schema.meta.description, messages); + if (Object.keys(desc).length) schema.meta.description = desc; + if (schema.dict) schema.dict = mapValues(schema.dict, (inner, key) => { + return inner.i18n(mapValues(messages, (data) => getInner(data)?.[key] ?? data?.[key])); + }); + if (schema.list) schema.list = schema.list.map((inner, index) => { + return inner.i18n(mapValues(messages, (data = {}) => { + if (Array.isArray(getInner(data))) return getInner(data)[index]; + if (Array.isArray(data)) return data[index]; + return extractKeys(data); + })); + }); + if (schema.inner) schema.inner = schema.inner.i18n(mapValues(messages, (data) => { + if (getInner(data)) return getInner(data); + return extractKeys(data); + })); + if (schema.sKey) schema.sKey = schema.sKey.i18n(mapValues(messages, (data) => data?.$key)); + return schema; + }; + Schema.prototype.extra = function extra(key, value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + }; + for (const key of [ + "required", + "disabled", + "collapse", + "hidden", + "loose" + ]) Object.assign(Schema.prototype, { [key](value = true) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + Schema.prototype.deprecated = function deprecated() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "deprecated", + type: "danger" + }); + return schema; + }; + Schema.prototype.experimental = function experimental() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "experimental", + type: "warning" + }); + return schema; + }; + Schema.prototype.pattern = function pattern(regexp) { + const schema = Schema(this); + const pattern = pick(regexp, ["source", "flags"]); + schema.meta = { + ...schema.meta, + pattern + }; + return schema; + }; + Schema.prototype.simplify = function simplify(value) { + if (deepEqual(value, this.meta.default, this.type === "dict")) return null; + if (isNullable(value)) return value; + if (this.type === "object" || this.type === "dict") { + const result = {}; + for (const key in value) { + const item = (this.type === "object" ? this.dict[key] : this.inner)?.simplify(value[key]); + if (this.type === "dict" || !isNullable(item)) result[key] = item; + } + if (deepEqual(result, this.meta.default, this.type === "dict")) return null; + return result; + } else if (this.type === "array" || this.type === "tuple") { + const result = []; + value.forEach((value, index) => { + const schema = this.type === "array" ? this.inner : this.list[index]; + const item = schema ? schema.simplify(value) : value; + result.push(item); + }); + return result; + } else if (this.type === "intersect") { + const result = {}; + for (const item of this.list) Object.assign(result, item.simplify(value)); + return result; + } else if (this.type === "union") for (const schema of this.list) try { + Schema.resolve(value, schema, {}); + return schema.simplify(value); + } catch {} + return value; + }; + Schema.prototype.toString = function toString(inline) { + return formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`; + }; + Schema.prototype.role = function role(role, extra) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + role, + extra + }; + return schema; + }; + for (const key of [ + "default", + "link", + "comment", + "description", + "max", + "min", + "step" + ]) Object.assign(Schema.prototype, { [key](value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + const resolvers = {}; + Schema.extend = function extend(type, resolve) { + resolvers[type] = resolve; + }; + Schema.resolve = function resolve(data, schema, options = {}, strict = false) { + if (!schema) return [data]; + if (options.ignore?.(data, schema)) return [data]; + if (isNullable(data) && schema.type !== "lazy") { + if (schema.meta.required) throw new ValidationError(`missing required value`, options); + let current = schema; + let fallback = schema.meta.default; + while (current?.type === "intersect" && isNullable(fallback)) { + current = current.list[0]; + fallback = current?.meta.default; + } + if (isNullable(fallback)) return [data]; + data = clone(fallback); + } + const callback = resolvers[schema.type]; + if (!callback) throw new ValidationError(`unsupported type "${schema.type}"`, options); + try { + return callback(data, schema, options, strict); + } catch (error) { + if (!schema.meta.loose) throw error; + return [schema.meta.default]; + } + }; + Schema.from = function from(source) { + if (isNullable(source)) return Schema.any(); + else if ([ + "string", + "number", + "boolean" + ].includes(typeof source)) return Schema.const(source).required(); + else if (source[kSchema]) return source; + else if (typeof source === "function") switch (source) { + case String: return Schema.string().required(); + case Number: return Schema.number().required(); + case Boolean: return Schema.boolean().required(); + case Function: return Schema.function().required(); + default: return Schema.is(source).required(); + } + else throw new TypeError(`cannot infer schema from ${source}`); + }; + Schema.lazy = function lazy(builder) { + const toJSON = () => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return schema.inner.toJSON(); + }; + const schema = new Schema({ + type: "lazy", + builder, + inner: { toJSON } + }); + return schema; + }; + Schema.natural = function natural() { + return Schema.number().step(1).min(0); + }; + Schema.percent = function percent() { + return Schema.number().step(.01).min(0).max(1).role("slider"); + }; + Schema.date = function date() { + return Schema.union([Schema.is(Date), Schema.transform(Schema.string().role("datetime"), (value, options) => { + const date = new Date(value); + if (isNaN(+date)) throw new ValidationError(`invalid date "${value}"`, options); + return date; + }, true)]); + }; + Schema.regExp = function regExp(flag = "") { + return Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role("regexp", { flag }), (value, options) => { + try { + return new RegExp(value, flag); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)]); + }; + Schema.arrayBuffer = function arrayBuffer(encoding) { + return Schema.union([ + Schema.is(ArrayBuffer), + Schema.is(SharedArrayBuffer), + Schema.transform(Schema.any(), (value, options) => { + if (Binary.isSource(value)) return Binary.fromSource(value); + throw new ValidationError(`expected ArrayBufferSource but got ${value}`, options); + }, true), + ...encoding ? [Schema.transform(Schema.string(), (value, options) => { + try { + return encoding === "base64" ? Binary.fromBase64(value) : Binary.fromHex(value); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)] : [] + ]); + }; + Schema.extend("lazy", (data, schema, options, strict) => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return Schema.resolve(data, schema.inner, options, strict); + }); + Schema.extend("any", (data) => { + return [data]; + }); + Schema.extend("never", (data, _, options) => { + throw new ValidationError(`expected nullable but got ${data}`, options); + }); + Schema.extend("const", (data, { value }, options) => { + if (deepEqual(data, value)) return [value]; + throw new ValidationError(`expected ${value} but got ${data}`, options); + }); + function checkWithinRange(data, meta, description, options, skipMin = false) { + const { max = Infinity, min = -Infinity } = meta; + if (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options); + if (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options); + } + Schema.extend("string", (data, { meta }, options) => { + if (typeof data !== "string") throw new ValidationError(`expected string but got ${data}`, options); + if (meta.pattern) { + const regexp = new RegExp(meta.pattern.source, meta.pattern.flags); + if (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options); + } + checkWithinRange(data.length, meta, "string length", options); + return [data]; + }); + function decimalShift(data, digits) { + const str = data.toString(); + if (str.includes("e")) return data * Math.pow(10, digits); + const index = str.indexOf("."); + if (index === -1) return data * Math.pow(10, digits); + const frac = str.slice(index + 1); + const integer = str.slice(0, index); + if (frac.length <= digits) return +(integer + frac.padEnd(digits, "0")); + return +(integer + frac.slice(0, digits) + "." + frac.slice(digits)); + } + function isMultipleOf(data, min, step) { + step = Math.abs(step); + if (!/^\d+\.\d+$/.test(step.toString())) return (data - min) % step === 0; + const index = step.toString().indexOf("."); + const digits = step.toString().slice(index + 1).length; + return Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0; + } + Schema.extend("number", (data, { meta }, options) => { + if (typeof data !== "number") throw new ValidationError(`expected number but got ${data}`, options); + checkWithinRange(data, meta, "number", options); + const { step } = meta; + if (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options); + return [data]; + }); + Schema.extend("boolean", (data, _, options) => { + if (typeof data === "boolean") return [data]; + throw new ValidationError(`expected boolean but got ${data}`, options); + }); + Schema.extend("bitset", (data, { bits, meta }, options) => { + let value = 0, keys = []; + if (typeof data === "number") { + value = data; + for (const key in bits) if (data & bits[key]) keys.push(key); + } else if (Array.isArray(data)) { + keys = data; + for (const key of keys) { + if (typeof key !== "string") throw new ValidationError(`expected string but got ${key}`, options); + if (key in bits) value |= bits[key]; + } + } else throw new ValidationError(`expected number or array but got ${data}`, options); + if (value === meta.default) return [value]; + return [value, keys]; + }); + Schema.extend("function", (data, _, options) => { + if (typeof data === "function") return [data]; + throw new ValidationError(`expected function but got ${data}`, options); + }); + Schema.extend("is", (data, { constructor }, options) => { + if (typeof constructor === "function") { + if (data instanceof constructor) return [data]; + throw new ValidationError(`expected ${constructor.name} but got ${data}`, options); + } else { + if (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options); + let prototype = Object.getPrototypeOf(data); + while (prototype) { + if (prototype.constructor?.name === constructor) return [data]; + prototype = Object.getPrototypeOf(prototype); + } + throw new ValidationError(`expected ${constructor} but got ${data}`, options); + } + }); + function property(data, key, schema, options) { + try { + const [value, adapted] = Schema.resolve(data[key], schema, { + ...options, + path: [...options.path || [], key] + }); + if (adapted !== void 0) data[key] = adapted; + return value; + } catch (e) { + if (!options?.autofix) throw e; + delete data[key]; + return schema.meta.default; + } + } + Schema.extend("array", (data, { inner, meta }, options) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + checkWithinRange(data.length, meta, "array length", options, !isNullable(inner.meta.default)); + return [data.map((_, index) => property(data, index, inner, options))]; + }); + Schema.extend("dict", (data, { inner, sKey }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in data) { + let rKey; + try { + rKey = Schema.resolve(key, sKey, options)[0]; + } catch (error) { + if (strict) continue; + throw error; + } + result[rKey] = property(data, key, inner, options); + data[rKey] = data[key]; + if (key !== rKey) delete data[key]; + } + return [result]; + }); + Schema.extend("tuple", (data, { list }, options, strict) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + const result = list.map((inner, index) => property(data, index, inner, options)); + if (strict) return [result]; + result.push(...data.slice(list.length)); + return [result]; + }); + function merge(result, data) { + for (const key in data) { + if (key in result) continue; + result[key] = data[key]; + } + } + Schema.extend("object", (data, { dict }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in dict) { + const value = property(data, key, dict[key], options); + if (!isNullable(value) || key in data) result[key] = value; + } + if (!strict) merge(result, data); + return [result]; + }); + Schema.extend("union", (data, { list, toString }, options, strict) => { + const messages = []; + for (const inner of list) try { + return Schema.resolve(data, inner, options, strict); + } catch (error) { + messages.push(error); + } + throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + }); + Schema.extend("intersect", (data, { list, toString }, options, strict) => { + if (!list.length) return [data]; + let result; + for (const inner of list) { + const value = Schema.resolve(data, inner, options, true)[0]; + if (isNullable(value)) continue; + if (isNullable(result)) result = value; + else if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + else if (typeof value === "object") merge(result ??= {}, value); + else if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + } + if (!strict && isPlainObject(data)) merge(result, data); + return [result]; + }); + Schema.extend("transform", (data, { inner, callback, preserve }, options) => { + const [result, adapted = data] = Schema.resolve(data, inner, options, true); + if (preserve) return [callback(result)]; + else return [callback(result), callback(adapted)]; + }); + const formatters = {}; + function defineMethod(name, keys, format) { + formatters[name] = format; + Object.assign(Schema, { [name](...args) { + const schema = new Schema({ type: name }); + keys.forEach((key, index) => { + switch (key) { + case "sKey": + schema.sKey = args[index] ?? Schema.string(); + break; + case "inner": + schema.inner = Schema.from(args[index]); + break; + case "list": + schema.list = args[index].map(Schema.from); + break; + case "dict": + schema.dict = mapValues(args[index], Schema.from); + break; + case "bits": + schema.bits = {}; + for (const key in args[index]) { + if (typeof args[index][key] !== "number") continue; + schema.bits[key] = args[index][key]; + } + break; + case "callback": { + const callback = schema.callback = args[index]; + callback["toJSON"] ||= () => callback.toString(); + break; + } + case "constructor": { + const constructor = schema.constructor = args[index]; + if (typeof constructor === "function") constructor["toJSON"] ||= () => constructor["name"]; + break; + } + default: schema[key] = args[index]; + } + }); + if (name === "object" || name === "dict") schema.meta.default = {}; + else if (name === "array" || name === "tuple") schema.meta.default = []; + else if (name === "bitset") schema.meta.default = 0; + return schema; + } }); + } + defineMethod("is", ["constructor"], ({ constructor }) => { + if (typeof constructor === "function") return constructor.name; + else return constructor; + }); + defineMethod("any", [], () => "any"); + defineMethod("never", [], () => "never"); + defineMethod("const", ["value"], ({ value }) => typeof value === "string" ? JSON.stringify(value) : value); + defineMethod("string", [], () => "string"); + defineMethod("number", [], () => "number"); + defineMethod("boolean", [], () => "boolean"); + defineMethod("bitset", ["bits"], () => "bitset"); + defineMethod("function", [], () => "function"); + defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`); + defineMethod("dict", ["inner", "sKey"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`); + defineMethod("tuple", ["list"], ({ list }) => `[${list.map((inner) => inner.toString()).join(", ")}]`); + defineMethod("object", ["dict"], ({ dict }) => { + if (Object.keys(dict).length === 0) return "{}"; + return `{ ${Object.entries(dict).map(([key, inner]) => { + return `${key}${inner.meta.required ? "" : "?"}: ${inner.toString()}`; + }).join(", ")} }`; + }); + defineMethod("union", ["list"], ({ list }, inline) => { + const result = list.map(({ toString: format }) => format()).join(" | "); + return inline ? `(${result})` : result; + }); + defineMethod("intersect", ["list"], ({ list }) => { + return `${list.map((inner) => inner.toString(true)).join(" & ")}`; + }); + defineMethod("transform", [ + "inner", + "callback", + "preserve" + ], ({ inner }, isInner) => inner.toString(isInner)); + //#endregion + //#region lib/types/locale-settings.js + /** Locale preference stored in the Host user-settings document. */ + /** Settings namespace owned by the locale plugin. */ + const LOCALE_SETTINGS_NAMESPACE = "locale"; + /** Field carrying an explicit locale selection; absence delegates to the browser. */ + const LOCALE_PREFERENCE_FIELD = "preference"; + /** Locale identifiers shipped by the browser client. */ + const LOCALE_IDS = ["zh", "en"]; + Schema.object({ [LOCALE_PREFERENCE_FIELD]: Schema.union([...LOCALE_IDS]).required(false) }); + //#endregion + //#region lib/types/locales/zh.js + /** zh base dictionary for the common namespace: cross-feature standard words. */ + const zh$1 = { + "ok": "确定", + "cancel": "�消", + "close": "关闭", + "copy": "�制", + "copied": "�制�功", + "retry": "�试", + "loading": "加载中…", + "load.failed": "加载失败", + "submit": "�交", + "submitting": "正在�交…", + "next": "下一步", + "previous": "上一步", + "skip": "跳过", + "delete": "删除", + "edit": "编辑", + "save": "�存", + "search": "�索", + "more": "更多", + "collapse": "收起", + "expand": "展开", + "back": "返回", + "unknown": "未知", + "none": "无", + "truncated": "已截断" + }; + //#endregion + //#region lib/types/locales/en.js + /** en base dictionary for the common namespace, checked complete against the zh key set. */ + const en$1 = { + "ok": "OK", + "cancel": "Cancel", + "close": "Close", + "copy": "Copy", + "copied": "Copied", + "retry": "Retry", + "loading": "Loading…", + "load.failed": "Failed to load", + "submit": "Submit", + "submitting": "Submitting…", + "next": "Next", + "previous": "Previous", + "skip": "Skip", + "delete": "Delete", + "edit": "Edit", + "save": "Save", + "search": "Search", + "more": "More", + "collapse": "Collapse", + "expand": "Expand", + "back": "Back", + "unknown": "Unknown", + "none": "None", + "truncated": "Truncated" + }; + //#endregion + //#region lib/types/locales/settings.js + /** `settings.locale` namespace dictionaries (the Language row's copy). */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { "language.title": "语言" }; + /** English dictionary, checked complete against the zh key set. */ + const en = { "language.title": "Language" }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/locale/src/client/LanguageRow.module.css.mjs + const css = ".hVGvvW_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.hVGvvW_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.hVGvvW_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.hVGvvW_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.hVGvvW_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}.hVGvvW_chevron{flex:none}"; + const tagId = "@deepseek-ai/dsh-client-locale/LanguageRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-locale"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var LanguageRow_module_css_default = { + "chevron": "hVGvvW_chevron", + "title": "hVGvvW_title", + "rowText": "hVGvvW_rowText", + "selector": "hVGvvW_selector", + "row": "hVGvvW_row" + }; + //#endregion + //#region lib/types/client/LanguageRow.js + /** + * Language preference row registered into the General section item slot + * (figma 501:30011 'Setting-Cell'): title + selector pill opening the locale + * menu. Registered by this package — the locale feature owns its own + * settings surface. + */ + /** + * Render the Language row. + * @param props - composed slot props. + * @returns the row element tree. + */ + function LanguageRow({ t, setLocale, useStore }) { + const active = useStore((s) => s.active); + const options = useStore((s) => s.options); + const [open, setOpen] = (0, react.useState)(false); + const activeLabel = options.find((o) => o.id === active)?.label ?? active; + return (0, react_jsx_runtime.jsxs)("div", { + className: LanguageRow_module_css_default.row, + children: [(0, react_jsx_runtime.jsx)("div", { + className: LanguageRow_module_css_default.rowText, + children: (0, react_jsx_runtime.jsx)("div", { + className: LanguageRow_module_css_default.title, + children: t("language.title") + }) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + setOpen(false); + }, + items: options.map((o) => ({ + id: o.id, + label: o.label + })), + selectedId: active, + onSelect: (id) => { + setLocale(id); + setOpen(false); + }, + align: "end", + portal: true, + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: LanguageRow_module_css_default.selector, + "aria-haspopup": "menu", + "aria-expanded": open, + onClick: () => { + setOpen((v) => !v); + }, + children: [activeLabel, (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: LanguageRow_module_css_default.chevron })] + }) + })] + }); + } + //#endregion + //#region lib/types/client/settings-store.js + /** + * Language row slot store: a mirror of the locale service snapshot. The + * plugin's apply-world change listener is the only writer; the row component + * reads via props.useStore. + */ + /** + * Declares the Language row state and write surface. + * @returns the store handle. + */ + function createLanguageRowStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({ + init: () => ({ + active: "", + options: [], + revision: -1 + }), + actions: { sync: (d, active, options, revision) => { + if (revision <= d.revision) return; + d.active = active; + d.options = options; + d.revision = revision; + } } + }); + } + //#endregion + //#region lib/types/client/index.js + /** Fallback locale consulted after the active locale misses (also the last-resort initial locale). */ + const FALLBACK_LOCALE = "zh"; + /** Shared namespace for shell-level texts. */ + const COMMON_NS = "common"; + /** Namespace owning this feature's settings-row copy. */ + const SETTINGS_NS = "settings.locale"; + /** The two shipped locales. */ + const LOCALES = Object.freeze([{ + id: "zh", + label: "中文" + }, { + id: "en", + label: "English" + }]); + /** + * Dictionary registry plus locale preference. Lookup chain per key: the + * entry's namespace in the active locale -> that namespace's zh fallback -> + * the shared common namespace (active, then zh) -> the key itself (missing + * text stays visible, fail loud in the UI rather than blank). Reads go + * through {@link getLocale}; writes only through {@link setLocale}; + * continuous sync through the `locale/change` event, or through the + * LocaleFace getSnapshot/subscribe pair the render machinery consumes + * (installed via `ctx.slots.installLocale`). + */ + var LocaleRuntime = class { + dicts = /* @__PURE__ */ new Map(); + bound = /* @__PURE__ */ new Map(); + snapshot; + listeners = /* @__PURE__ */ new Set(); + ctx; + host; + /** Browser-derived locale standing wherever no explicit Host selection does. */ + provisional; + /** + * @param ctx - owning context (change events are emitted on it; the scope + * listener is released through ctx.effect on dispose). + * @param host - durable preference scope owned by the providing plugin; + * absent compositions (standalone dictionary registries) stay process-local. + */ + constructor(ctx, host) { + this.ctx = ctx; + this.host = host; + this.provisional = resolveInitialLocale(); + this.snapshot = Object.freeze({ + active: this.provisional, + locales: LOCALES, + revision: 0 + }); + if (host !== void 0) { + ctx.effect(() => host.subscribe(() => { + this.adopt(host); + }), "locale: settings scope adoption"); + this.adopt(host); + } + } + /** + * Read the current immutable locale snapshot. + * @returns the current snapshot (stable reference until the next change). + */ + getLocale() { + return this.snapshot; + } + /** + * LocaleFace getSnapshot: the current snapshot (carries `revision`; stable + * reference between changes, uSES-safe). + * @returns the current snapshot. + */ + getSnapshot() { + return this.snapshot; + } + /** + * LocaleFace subscribe: notified on every snapshot change (locale switch + * or dictionary registration — registrations bump the revision so already + * rendered outlets pick up late-arriving dictionaries). + * @param fn - change callback. + * @returns unsubscribe. + */ + subscribe(fn) { + this.listeners.add(fn); + return () => { + this.listeners.delete(fn); + }; + } + /** + * Switch the active locale — the only user preference write entry. + * @param id - a registered locale id; unknown ids throw. + */ + setLocale(id) { + const match = this.snapshot.locales.find((l) => l.id === id); + if (match === void 0) throw new Error(`locale "${id}" is not registered`); + if (this.snapshot.active === match.id) return; + this.publish(match.id, true); + this.host?.set(LOCALE_PREFERENCE_FIELD, match.id); + } + /** + * Adopt the scope's accepted durable selection without writing it back; an + * absent selection returns to the browser-derived locale. + * @param host - the constructor-narrowed scope driving this adoption. + */ + adopt(host) { + const section = host.getSnapshot().value; + if (section === void 0) return; + const target = section.preference ?? this.provisional; + if (this.snapshot.active === target) return; + this.publish(target, true); + } + register(ns, localeOrDicts, dict) { + const pairs = typeof localeOrDicts === "string" ? [[localeOrDicts, dict]] : Object.entries(localeOrDicts); + let locales = this.dicts.get(ns); + if (!locales) { + locales = /* @__PURE__ */ new Map(); + this.dicts.set(ns, locales); + } + for (const [locale] of pairs) if (locales.has(locale)) throw new Error(`locale namespace "${ns}" already has locale "${locale}"`); + for (const [locale, entries] of pairs) locales.set(locale, entries); + this.publish(this.snapshot.active, false); + return () => { + const owner = this.dicts.get(ns); + /* v8 ignore next -- defensive: a namespace's locales map is created on + * first register and never removed, so the disposer always finds it. */ + if (!owner) return; + let removed = false; + for (const [locale, entries] of pairs) if (owner.get(locale) === entries) { + owner.delete(locale); + removed = true; + } + if (removed) this.publish(this.snapshot.active, false); + }; + } + bind(ns) { + let t = this.bound.get(ns); + if (!t) { + t = (key, params) => this.translate(ns, key, params); + this.bound.set(ns, t); + return t; + } + return t; + } + translate(ns, key, params) { + const template = this.lookup(ns, key) ?? (ns !== "common" ? this.lookup("common", key) : void 0) ?? key; + if (!params) return template; + return template.replace(/\{(\w+)\}/g, (match, name) => name in params ? String(params[name]) : match); + } + lookup(ns, key) { + const locales = this.dicts.get(ns); + return locales?.get(this.snapshot.active)?.[key] ?? locales?.get("zh")?.[key]; + } + /** + * Advance the snapshot revision and notify LocaleFace subscribers (render + * refresh). Only an active-locale switch additionally emits + * `locale/change` — dictionary registrations stay off the event so + * registration-heavy boot cannot storm event listeners (which may + * re-register slots in response). + */ + publish(active, localeChanged) { + this.snapshot = Object.freeze({ + active, + locales: this.snapshot.locales, + revision: this.snapshot.revision + 1 + }); + if (localeChanged) this.ctx.emit("locale/change", this.snapshot); + for (const fn of [...this.listeners]) try { + fn(); + } catch (error) { + console.error("locale subscriber crashed:", error); + } + } + }; + /** + * The browser's own language wins over {@link FALLBACK_LOCALE}; an explicit + * Host preference may replace this provisional value after plugin activation. + */ + function resolveInitialLocale() { + return detectBrowserLocale() ?? "zh"; + } + /** + * The first shipped locale the browser asks for, matched on the primary + * subtag so every regional variant lands on its language (`zh-Hans-CN` -> zh, + * `en-GB` -> en). `window` is the browser test, not `navigator`: Node exposes + * a global `navigator` reporting the machine's own language, which would + * otherwise decide the locale for non-browser runs (node e2e booting the + * client tree). `navigator.language` trails the ordered `languages` list and + * covers its absence on hosts that expose only the single tag. + */ + function detectBrowserLocale() { + if (typeof window === "undefined") return void 0; + for (const tag of [...navigator.languages ?? [], navigator.language]) { + const primary = tag.toLowerCase().split("-")[0]; + const match = LOCALES.find((locale) => locale.id === primary); + if (match) return match.id; + } + } + /** Required services: slot registration plus the settings transport. */ + const inject = [ + "slots", + "connection", + "remote", + "settingsScope" + ]; + /** + * Client plugin body: provide the locale service with base dictionaries and + * register the feature-owned Language preference row into the General + * section's item slot (a feature owns its settings surface). + * @param ctx - client cordis context. + */ + function apply(ctx) { + const locale = new LocaleRuntime(ctx, ctx.settingsScope.bind({ namespace: LOCALE_SETTINGS_NAMESPACE })); + locale.register(COMMON_NS, { + zh: zh$1, + en: en$1 + }); + locale.register(SETTINGS_NS, { + zh, + en + }); + ctx.provide("locale", locale); + ctx.slots.installLocale(locale); + const store = createLanguageRowStore(); + let bound; + const sync = (snapshot) => { + bound?.sync(snapshot.active, snapshot.locales.map((l) => ({ + id: l.id, + label: l.label + })), snapshot.revision); + }; + ctx.on("locale/change", sync); + const injected = (actions) => { + bound = actions; + sync(locale.getLocale()); + return { setLocale: (id) => { + locale.setLocale(id); + } }; + }; + ctx.slots.inject("settings.general.item", () => ctx.slots.register({ + name: "settings.general.item", + id: "language", + order: 0, + store, + locale: SETTINGS_NS, + inject: injected + }, LanguageRow)); + } + //#endregion + exports.COMMON_NS = COMMON_NS; + exports.FALLBACK_LOCALE = FALLBACK_LOCALE; + exports.LocaleRuntime = LocaleRuntime; + exports.SETTINGS_NS = SETTINGS_NS; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000a b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000a new file mode 100644 index 0000000..32d17c8 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000a @@ -0,0 +1,10544 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-runtime", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + let _deepseek_ai_dsh_client_ui_slots = require("@deepseek-ai/dsh-client-ui-slots"); + //#region lib/types/client/slots.js + /** + * SlotRegistry: the cordis Service layer of the slot system over the pure + * SlotCore (ui-slots owns registration semantics, the declaration ledger, + * the load-time validations, and the unload cascade). This layer owns what + * needs the runtime: the 'slots/changed' event bridge, register and + * declaration injection through the caller's ctx.effect (fiber unload + * collects both), the renderer installation contract (install()/renderSlot('root') + + * the SlotRendererHost face), and the store INSTANCE axis — handle x scope + * key -> create/cache, dropped with the last holding entry, session instances + * cleared (with persisted state) on scope death. + */ + /** Instance key for root-scoped store records (session records key by session id, so the literal cannot collide). */ + const ROOT_INSTANCE_KEY = "root"; + /** cordis Service layer of the slot system; see the module doc for the split with SlotCore. */ + var SlotRegistry = class extends _deepseek_ai_cordis.Service { + _core = new _deepseek_ai_dsh_client_ui_slots.SlotCore(); + /** Store-instance axis: handle -> mounted scope, refcount, resolved instances. */ + _stores = /* @__PURE__ */ new Map(); + _renderer; + _locale; + _host; + /** + * @param ctx - owning root context. + */ + constructor(ctx) { + super(ctx, "slots"); + this._core.onMutate((key) => { + ctx.emit("slots/changed", key); + }); + } + /** + * Install an effect for each declaration lifetime of a slot. The callback + * runs synchronously when the declaration already exists; otherwise it runs + * inside the declaring `register()` call after the declaration is committed. + * Collapse disposes the effect and a later declaration runs it again. + * Callback effects are synchronous disposers; iterable effects install + * transactionally and dispose in reverse order. The controller belongs to + * the caller's fiber, so plugin unload cancels a pending wait and removes any + * active contribution. + * + * @param key - declared SlotMap key to depend on. + * @param callback - creates one disposer or an iterable of disposers. + * @returns idempotent disposer for the wait and active effect. + * @throws callback setup failures synchronously when the slot is already declared. + */ + inject(key, callback) { + const ctx = this.ctx; + const disposeController = ctx.effect(() => { + let active; + let activeEpoch; + let stopped = false; + let unsubscribe = () => {}; + const stop = () => { + if (stopped) return; + stopped = true; + unsubscribe(); + const dispose = active; + active = void 0; + activeEpoch = void 0; + dispose?.(); + }; + const reconcile = () => { + if (stopped) return; + const spec = this._core.specDynamic(key); + const epoch = this._core.declarationEpoch(key); + if (active !== void 0 && activeEpoch === epoch) return; + const dispose = active; + active = void 0; + activeEpoch = void 0; + dispose?.(); + if (spec === void 0) return; + const disposeEffect = ctx.effect(callback, `slots.inject(${JSON.stringify(key)}): declaration`); + active = () => { + disposeEffect(); + }; + activeEpoch = epoch; + }; + const changed = () => { + try { + reconcile(); + } catch (error) { + if (error?.code === "INACTIVE_EFFECT") { + stop(); + return; + } + stop(); + const failure = error instanceof Error ? error : new Error(String(error)); + queueMicrotask(() => { + throw failure; + }); + } + }; + unsubscribe = this._core.subscribeDeclaration(key, changed); + try { + reconcile(); + } catch (error) { + stop(); + throw error; + } + return stop; + }, `slots.inject(${JSON.stringify(key)})`); + return () => { + disposeController(); + }; + } + /** + * Install the shell's renderer (web-react's createSlotRenderer product). + * Boot-once: a second install throws. Runs through the caller's ctx.effect, + * so shell fiber unload uninstalls the renderer. + * @param renderer - the outlet machinery implementing SlotRenderer. + */ + install(renderer) { + if (this._renderer !== void 0) throw new Error("slot renderer already installed (install() is boot-once)"); + this.ctx.effect(() => { + this._renderer = renderer; + return () => { + if (this._renderer === renderer) this._renderer = void 0; + }; + }, "slots.install()"); + } + /** + * Install the locale face backing the `t` standard seat (the locale + * plugin's product; same boot-once discipline as the renderer install). + * Runs through the caller's ctx.effect, so the installing fiber's unload + * uninstalls the face. + * @param face - namespace binder + revision observable. + */ + installLocale(face) { + if (this._locale !== void 0) throw new Error("locale face already installed (installLocale() is boot-once)"); + this.ctx.effect(() => { + this._locale = face; + return () => { + if (this._locale === face) this._locale = void 0; + }; + }, "slots.installLocale()"); + } + /** + * The single ctx-level render entry: the shell renders 'root'; every other + * key renders inside components through the props renderSlot face. All + * three guards are fail-loud boot-order checks, no fallback. + * @param key - must be 'root' (runtime-enforced for dynamically composed callers). + * @param owner - owner share for the root entry (the shell supplies {}). + * @returns the rendered root tree. + */ + renderSlot(key, owner) { + if (key !== "root") throw new Error(`ctx-level renderSlot only renders 'root' (got "${key}"); child slots render through the component props face`); + if (this._renderer === void 0) throw new Error("slot renderer not installed — boot must call ctx.slots.install(createSlotRenderer()) before rendering 'root'"); + if (this._core.entries("root").length === 0) throw new Error("'root' has no registration — a layout entry must register into 'root' before the shell renders it"); + return this._renderer.renderRoot(this.hostFace(), owner); + } + /** + * Drop the per-session store instances of a dead session (the sessions + * service calls this on scope teardown; root-scoped records are untouched). + * Persisted state goes with the session — a never-rendered dead session can + * still own keys from an earlier page load, so the instance is materialized + * transiently just to clear storage (no-op for unpersisted stores). + * @param sessionId - the torn-down session. + */ + pruneStoreScope(sessionId) { + for (const [handle, record] of this._stores) { + if (record.scope !== "session") continue; + (record.instances.get(sessionId) ?? handle.create(sessionId)).clearPersisted(); + record.instances.delete(sessionId); + } + } + /** + * Snapshot entries for a key (render-erased view; stable reference between mutations). + * @param key - SlotMap key. + * @returns registered entries. + */ + entries(key) { + return this._core.entries(key); + } + /** + * Shadowing winners per cell for a key: the first live (non-abdicated) + * entry of each cell in priority order — what outlets render; chain keys + * pass through unchanged (election consumes every entry). The raw + * {@link SlotsService.entries} view stays the inspection surface. Fresh + * array per call, not a uSES getSnapshot source. + * @param key - SlotMap key. + * @returns the winning entry per occupied cell. + */ + entriesOfSlot(key) { + return this._core.entriesOfSlot(key); + } + /** + * Export the current JSON-safe Slot declaration tree for read-only inspection. + * @param root - exact live Slot root; omitted returns all roots. + * @returns selected Slot trees. + */ + snapshot(root) { + return this._core.snapshot(root); + } + /** + * Observe entry boundary crashes (every render-time entry failure the + * boundaries contain, abdicating or not) — the supervision seam for + * plugins mirroring contribution health. Fires synchronously per report, + * after the registry mutated for abdicating crashes. Callers own the + * disposer (wire it through ctx.effect for fiber-lifetime cleanup, as with + * {@link SlotsService.subscribe}). + * @param fn - called with the slot key, the crashed entry, the crash + * cause, and `abdicated`: whether the crash retired the entry from its cell. + * @returns unsubscribe. + */ + onEntryError(fn) { + return this._core.onEntryError(fn); + } + /** + * Look up a declared spec (register-declared or the built-in 'root'). + * @param key - SlotMap key. + * @returns spec or undefined. + */ + spec(key) { + return this._core.spec(key); + } + /** + * Subscribe to a key's registration changes (microtask-batched). + * @param key - SlotMap key. + * @param fn - change callback. + * @returns unsubscribe. + */ + subscribe(key, fn) { + return this._core.subscribe(key, fn); + } + /** + * Version counter for uSES pairing. + * @param key - SlotMap key. + * @returns current version. + */ + getVersion(key) { + return this._core.getVersion(key); + } + /** Delegating registration path: factory minting + registrant stamp + core write + instance-axis bookkeeping. */ + _register(options, component) { + const store = typeof options.store === "function" ? options.store() : options.store; + const registrant = options.registrant ?? this.ctx.fiber?.name; + const erased = { + ...options, + ...store !== void 0 ? { store } : {}, + ...registrant !== void 0 ? { registrant } : {} + }; + const dispose = this._core.register(erased, component); + if (store !== void 0) { + const scope = this._core.specDynamic(options.name).scope; + this._acquire(store, scope); + } + let disposed = false; + return () => { + if (disposed) return; + disposed = true; + dispose(); + if (store !== void 0) this._release(store); + }; + } + /** Build once after both object-layer services mount; per-session provide bundles still resolve lazily. */ + hostFace() { + if (this._host !== void 0) return this._host; + const sessions = this.ctx.get("sessions"); + if (sessions === void 0) throw new Error("renderSlot('root') before the sessions service mounted — boot order puts runtime apply first"); + const workspaces = this.ctx.get("workspaces"); + if (workspaces === void 0) throw new Error("renderSlot('root') before the workspaces service mounted — boot order puts runtime apply first"); + const service = this; + this._host = { + subscribe: (key, fn) => this._core.subscribe(key, fn), + getVersion: (key) => this._core.getVersion(key), + entriesOf: (key) => this._core.entries(key), + entriesOfSlot: (key) => this._core.entriesOfSlot(key), + reportEntryError: (key, entry, error, info) => { + this._core.reportEntryError(key, entry, error, info); + }, + specOf: (key) => this._core.specDynamic(key), + isLive: (entry) => this._core.isLive(entry), + storeOf: (entry, scopeKey) => entry.store === void 0 ? void 0 : this.resolveStore(entry.store, scopeKey), + sessions: { + list: sessions.list, + provideInfo: sessions.currentProvideInfo + }, + workspaces: { list: workspaces.list }, + get locale() { + return service._locale; + } + }; + return this._host; + } + /** Resolve (create or reuse) the store instance for a registered handle under a scope key. */ + resolveStore(handle, sessionId) { + const record = this._stores.get(handle); + if (record === void 0) throw new Error("store handle is not registered (entry unloaded, or the handle never went through register)"); + const key = record.scope === "root" ? ROOT_INSTANCE_KEY : sessionId; + if (key === void 0) throw new Error(`${record.scope} store resolution requires a session id`); + let instance = record.instances.get(key); + if (instance === void 0) { + instance = record.scope === "root" ? handle.create() : handle.create(key); + record.instances.set(key, instance); + } + return instance; + } + /** Bind (or re-reference) a handle on the axis; cross-scope conflicts already threw in the core. */ + _acquire(handle, scope) { + const record = this._stores.get(handle); + if (record === void 0) { + this._stores.set(handle, { + scope, + refs: 1, + instances: /* @__PURE__ */ new Map() + }); + return; + } + record.refs += 1; + } + /** Drop one reference; the last holder's unload drops the record (instances go with it — engine stores need no explicit dispose). */ + _release(handle) { + const record = this._stores.get(handle); + /* v8 ignore next -- defensive: release only runs from a disposer whose + * register acquired the same handle, so the record must exist; kept so a + * future call site cannot underflow the axis. */ + if (record === void 0) return; + record.refs -= 1; + if (record.refs === 0) this._stores.delete(handle); + } + }; + SlotRegistry.prototype.register = function register(rawOptions, component) { + const options = rawOptions; + return this.ctx.effect(() => this["_register"](options, component), "slots.register()"); + }; + //#endregion + //#region ../../host/apiproxy/src/api/rpc.ts + /** + * Fold a transport exception into the RpcResult error branch (unified error + * API; 'internal' as the catch-all code). Lives with RpcResult so every + * carrier consumer folds the same way. + * @param error - the thrown value from the carrier. + * @returns the error branch of an RpcResult. + */ + function transportError(error) { + return { + ok: false, + error: { + code: "internal", + message: error instanceof Error ? error.message : String(error), + details: {} + } + }; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js + var _a$1; + function $constructor(name, initializer, params) { + function init(inst, def) { + if (!inst._zod) Object.defineProperty(inst, "_zod", { + value: { + def, + constr: _, + traits: /* @__PURE__ */ new Set() + }, + enumerable: false + }); + if (inst._zod.traits.has(name)) return; + inst._zod.traits.add(name); + initializer(inst, def); + const proto = _.prototype; + const keys = Object.keys(proto); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + if (!(k in inst)) inst[k] = proto[k].bind(inst); + } + } + const Parent = params?.Parent ?? Object; + class Definition extends Parent {} + Object.defineProperty(Definition, "name", { value: name }); + function _(def) { + var _a; + const inst = params?.Parent ? new Definition() : this; + init(inst, def); + (_a = inst._zod).deferred ?? (_a.deferred = []); + for (const fn of inst._zod.deferred) fn(); + return inst; + } + Object.defineProperty(_, "init", { value: init }); + Object.defineProperty(_, Symbol.hasInstance, { value: (inst) => { + if (params?.Parent && inst instanceof params.Parent) return true; + return inst?._zod?.traits?.has(name); + } }); + Object.defineProperty(_, "name", { value: name }); + return _; + } + var $ZodAsyncError = class extends Error { + constructor() { + super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); + } + }; + var $ZodEncodeError = class extends Error { + constructor(name) { + super(`Encountered unidirectional transform during encode: ${name}`); + this.name = "ZodEncodeError"; + } + }; + (_a$1 = globalThis).__zod_globalConfig ?? (_a$1.__zod_globalConfig = {}); + const globalConfig = globalThis.__zod_globalConfig; + function config(newConfig) { + if (newConfig) Object.assign(globalConfig, newConfig); + return globalConfig; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js + function getEnumValues(entries) { + const numericValues = Object.values(entries).filter((v) => typeof v === "number"); + return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); + } + function jsonStringifyReplacer(_, value) { + if (typeof value === "bigint") return value.toString(); + return value; + } + function cached(getter) { + return { get value() { + { + const value = getter(); + Object.defineProperty(this, "value", { value }); + return value; + } + throw new Error("cached value already set"); + } }; + } + function nullish(input) { + return input === null || input === void 0; + } + function cleanRegex(source) { + const start = source.startsWith("^") ? 1 : 0; + const end = source.endsWith("$") ? source.length - 1 : source.length; + return source.slice(start, end); + } + function floatSafeRemainder(val, step) { + const ratio = val / step; + const roundedRatio = Math.round(ratio); + const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1); + if (Math.abs(ratio - roundedRatio) < tolerance) return 0; + return ratio - roundedRatio; + } + const EVALUATING = /* @__PURE__*/ Symbol("evaluating"); + function defineLazy(object, key, getter) { + let value = void 0; + Object.defineProperty(object, key, { + get() { + if (value === EVALUATING) return; + if (value === void 0) { + value = EVALUATING; + value = getter(); + } + return value; + }, + set(v) { + Object.defineProperty(object, key, { value: v }); + }, + configurable: true + }); + } + function assignProp(target, prop, value) { + Object.defineProperty(target, prop, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + function mergeDefs(...defs) { + const mergedDescriptors = {}; + for (const def of defs) Object.assign(mergedDescriptors, Object.getOwnPropertyDescriptors(def)); + return Object.defineProperties({}, mergedDescriptors); + } + function esc(str) { + return JSON.stringify(str); + } + function slugify(input) { + return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); + } + const captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => {}; + function isObject(data) { + return typeof data === "object" && data !== null && !Array.isArray(data); + } + const allowsEval = /* @__PURE__*/ cached(() => { + if (globalConfig.jitless) return false; + if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) return false; + try { + new Function(""); + return true; + } catch (_) { + return false; + } + }); + function isPlainObject$1(o) { + if (isObject(o) === false) return false; + const ctor = o.constructor; + if (ctor === void 0) return true; + if (typeof ctor !== "function") return true; + const prot = ctor.prototype; + if (isObject(prot) === false) return false; + if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) return false; + return true; + } + function shallowClone(o) { + if (isPlainObject$1(o)) return { ...o }; + if (Array.isArray(o)) return [...o]; + if (o instanceof Map) return new Map(o); + if (o instanceof Set) return new Set(o); + return o; + } + const propertyKeyTypes = /* @__PURE__*/ new Set([ + "string", + "number", + "symbol" + ]); + function escapeRegex(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function clone(inst, def, params) { + const cl = new inst._zod.constr(def ?? inst._zod.def); + if (!def || params?.parent) cl._zod.parent = inst; + return cl; + } + function normalizeParams(_params) { + const params = _params; + if (!params) return {}; + if (typeof params === "string") return { error: () => params }; + if (params?.message !== void 0) { + if (params?.error !== void 0) throw new Error("Cannot specify both `message` and `error` params"); + params.error = params.message; + } + delete params.message; + if (typeof params.error === "string") return { + ...params, + error: () => params.error + }; + return params; + } + function optionalKeys(shape) { + return Object.keys(shape).filter((k) => { + return shape[k]._zod.optin === "optional" && shape[k]._zod.optout === "optional"; + }); + } + const NUMBER_FORMAT_RANGES = { + safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], + int32: [-2147483648, 2147483647], + uint32: [0, 4294967295], + float32: [-34028234663852886e22, 34028234663852886e22], + float64: [-Number.MAX_VALUE, Number.MAX_VALUE] + }; + function pick(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".pick() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = {}; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + newShape[key] = currDef.shape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function omit(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".omit() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = { ...schema._zod.def.shape }; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + delete newShape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function extend(schema, shape) { + if (!isPlainObject$1(shape)) throw new Error("Invalid input to extend: expected a plain object"); + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) { + const existingShape = schema._zod.def.shape; + for (const key in shape) if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); + } + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function safeExtend(schema, shape) { + if (!isPlainObject$1(shape)) throw new Error("Invalid input to safeExtend: expected a plain object"); + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function merge(a, b) { + if (a._zod.def.checks?.length) throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); + return clone(a, mergeDefs(a._zod.def, { + get shape() { + const _shape = { + ...a._zod.def.shape, + ...b._zod.def.shape + }; + assignProp(this, "shape", _shape); + return _shape; + }, + get catchall() { + return b._zod.def.catchall; + }, + checks: b._zod.def.checks ?? [] + })); + } + function partial(Class, schema, mask) { + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) throw new Error(".partial() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in oldShape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + } + else for (const key in oldShape) shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + assignProp(this, "shape", shape); + return shape; + }, + checks: [] + })); + } + function required(Class, schema, mask) { + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + } + else for (const key in oldShape) shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + assignProp(this, "shape", shape); + return shape; + } })); + } + function aborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue !== true) return true; + return false; + } + function explicitlyAborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue === false) return true; + return false; + } + function prefixIssues(path, issues) { + return issues.map((iss) => { + var _a; + (_a = iss).path ?? (_a.path = []); + iss.path.unshift(path); + return iss; + }); + } + function unwrapMessage(message) { + return typeof message === "string" ? message : message?.message; + } + function finalizeIssue(iss, ctx, config) { + const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config.customError?.(iss)) ?? unwrapMessage(config.localeError?.(iss)) ?? "Invalid input"; + const { inst: _inst, continue: _continue, input: _input, ...rest } = iss; + rest.path ?? (rest.path = []); + rest.message = message; + if (ctx?.reportInput) rest.input = _input; + return rest; + } + function getLengthableOrigin(input) { + if (Array.isArray(input)) return "array"; + if (typeof input === "string") return "string"; + return "unknown"; + } + function issue(...args) { + const [iss, input, inst] = args; + if (typeof iss === "string") return { + message: iss, + code: "custom", + input, + inst + }; + return { ...iss }; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js + const initializer$1 = (inst, def) => { + inst.name = "$ZodError"; + Object.defineProperty(inst, "_zod", { + value: inst._zod, + enumerable: false + }); + Object.defineProperty(inst, "issues", { + value: def, + enumerable: false + }); + inst.message = JSON.stringify(def, jsonStringifyReplacer, 2); + Object.defineProperty(inst, "toString", { + value: () => inst.message, + enumerable: false + }); + }; + const $ZodError = $constructor("$ZodError", initializer$1); + const $ZodRealError = $constructor("$ZodError", initializer$1, { Parent: Error }); + function flattenError(error, mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of error.issues) if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else formErrors.push(mapper(sub)); + return { + formErrors, + fieldErrors + }; + } + function formatError(error, mapper = (issue) => issue.message) { + const fieldErrors = { _errors: [] }; + const processError = (error, path = []) => { + for (const issue of error.issues) if (issue.code === "invalid_union" && issue.errors.length) issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path])); + else if (issue.code === "invalid_key") processError({ issues: issue.issues }, [...path, ...issue.path]); + else if (issue.code === "invalid_element") processError({ issues: issue.issues }, [...path, ...issue.path]); + else { + const fullpath = [...path, ...issue.path]; + if (fullpath.length === 0) fieldErrors._errors.push(mapper(issue)); + else { + let curr = fieldErrors; + let i = 0; + while (i < fullpath.length) { + const el = fullpath[i]; + if (!(i === fullpath.length - 1)) curr[el] = curr[el] || { _errors: [] }; + else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i++; + } + } + } + }; + processError(error); + return fieldErrors; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js + const _parse = (_Err) => (schema, value, _ctx, _params) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + if (result.issues.length) { + const e = new ((_params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, _params?.callee); + throw e; + } + return result.value; + }; + const _parseAsync = (_Err) => async (schema, value, _ctx, params) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + if (result.issues.length) { + const e = new ((params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, params?.callee); + throw e; + } + return result.value; + }; + const _safeParse = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + return result.issues.length ? { + success: false, + error: new (_Err ?? $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParse$1 = /* @__PURE__*/ _safeParse($ZodRealError); + const _safeParseAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + return result.issues.length ? { + success: false, + error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParseAsync$1 = /* @__PURE__*/ _safeParseAsync($ZodRealError); + const _encode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parse(_Err)(schema, value, ctx); + }; + const _decode = (_Err) => (schema, value, _ctx) => { + return _parse(_Err)(schema, value, _ctx); + }; + const _encodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parseAsync(_Err)(schema, value, ctx); + }; + const _decodeAsync = (_Err) => async (schema, value, _ctx) => { + return _parseAsync(_Err)(schema, value, _ctx); + }; + const _safeEncode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParse(_Err)(schema, value, ctx); + }; + const _safeDecode = (_Err) => (schema, value, _ctx) => { + return _safeParse(_Err)(schema, value, _ctx); + }; + const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParseAsync(_Err)(schema, value, ctx); + }; + const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => { + return _safeParseAsync(_Err)(schema, value, _ctx); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const cuid = /^[cC][0-9a-z]{6,}$/; + const cuid2 = /^[0-9a-z]+$/; + const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/; + const xid = /^[0-9a-vA-V]{20}$/; + const ksuid = /^[A-Za-z0-9]{27}$/; + const nanoid = /^[a-zA-Z0-9_-]{21}$/; + /** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */ + const duration$1 = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; + /** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */ + const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/; + /** Returns a regex for validating an RFC 9562/4122 UUID. + * + * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */ + const uuid = (version) => { + if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; + return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); + }; + /** Practical email validation */ + const email = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; + const _emoji$1 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; + function emoji() { + return new RegExp(_emoji$1, "u"); + } + const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; + const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; + const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/; + const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; + const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; + const base64url = /^[A-Za-z0-9_-]*$/; + const httpProtocol = /^https?$/; + const e164 = /^\+[1-9]\d{6,14}$/; + const dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`; + const date$1 = /*@__PURE__*/ new RegExp(`^${dateSource}$`); + function timeSource(args) { + const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; + return typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; + } + function time$1(args) { + return new RegExp(`^${timeSource(args)}$`); + } + function datetime$1(args) { + const time = timeSource({ precision: args.precision }); + const opts = ["Z"]; + if (args.local) opts.push(""); + if (args.offset) opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); + const timeRegex = `${time}(?:${opts.join("|")})`; + return new RegExp(`^${dateSource}T(?:${timeRegex})$`); + } + const string$1 = (params) => { + const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; + return new RegExp(`^${regex}$`); + }; + const integer = /^-?\d+$/; + const number$1 = /^-?\d+(?:\.\d+)?$/; + const lowercase = /^[^A-Z]*$/; + const uppercase = /^[^a-z]*$/; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js + const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => { + var _a; + inst._zod ?? (inst._zod = {}); + inst._zod.def = def; + (_a = inst._zod).onattach ?? (_a.onattach = []); + }); + const numericOriginMap = { + number: "number", + bigint: "bigint", + object: "date" + }; + const $ZodCheckLessThan = /*@__PURE__*/ $constructor("$ZodCheckLessThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY; + if (def.value < curr) if (def.inclusive) bag.maximum = def.value; + else bag.exclusiveMaximum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value <= def.value : payload.value < def.value) return; + payload.issues.push({ + origin, + code: "too_big", + maximum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckGreaterThan = /*@__PURE__*/ $constructor("$ZodCheckGreaterThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY; + if (def.value > curr) if (def.inclusive) bag.minimum = def.value; + else bag.exclusiveMinimum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value >= def.value : payload.value > def.value) return; + payload.issues.push({ + origin, + code: "too_small", + minimum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMultipleOf = /*@__PURE__*/ $constructor("$ZodCheckMultipleOf", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + var _a; + (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value); + }); + inst._zod.check = (payload) => { + if (typeof payload.value !== typeof def.value) throw new Error("Cannot mix number and bigint in multiple_of check."); + if (typeof payload.value === "bigint" ? payload.value % def.value === BigInt(0) : floatSafeRemainder(payload.value, def.value) === 0) return; + payload.issues.push({ + origin: typeof payload.value, + code: "not_multiple_of", + divisor: def.value, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckNumberFormat = /*@__PURE__*/ $constructor("$ZodCheckNumberFormat", (inst, def) => { + $ZodCheck.init(inst, def); + def.format = def.format || "float64"; + const isInt = def.format?.includes("int"); + const origin = isInt ? "int" : "number"; + const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + bag.minimum = minimum; + bag.maximum = maximum; + if (isInt) bag.pattern = integer; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (isInt) { + if (!Number.isInteger(input)) { + payload.issues.push({ + expected: origin, + format: def.format, + code: "invalid_type", + continue: false, + input, + inst + }); + return; + } + if (!Number.isSafeInteger(input)) { + if (input > 0) payload.issues.push({ + input, + code: "too_big", + maximum: Number.MAX_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + else payload.issues.push({ + input, + code: "too_small", + minimum: Number.MIN_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + return; + } + } + if (input < minimum) payload.issues.push({ + origin: "number", + input, + code: "too_small", + minimum, + inclusive: true, + inst, + continue: !def.abort + }); + if (input > maximum) payload.issues.push({ + origin: "number", + input, + code: "too_big", + maximum, + inclusive: true, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMaxLength = /*@__PURE__*/ $constructor("$ZodCheckMaxLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY; + if (def.maximum < curr) inst._zod.bag.maximum = def.maximum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length <= def.maximum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_big", + maximum: def.maximum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMinLength = /*@__PURE__*/ $constructor("$ZodCheckMinLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY; + if (def.minimum > curr) inst._zod.bag.minimum = def.minimum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length >= def.minimum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_small", + minimum: def.minimum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLengthEquals = /*@__PURE__*/ $constructor("$ZodCheckLengthEquals", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.minimum = def.length; + bag.maximum = def.length; + bag.length = def.length; + }); + inst._zod.check = (payload) => { + const input = payload.value; + const length = input.length; + if (length === def.length) return; + const origin = getLengthableOrigin(input); + const tooBig = length > def.length; + payload.issues.push({ + origin, + ...tooBig ? { + code: "too_big", + maximum: def.length + } : { + code: "too_small", + minimum: def.length + }, + inclusive: true, + exact: true, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStringFormat = /*@__PURE__*/ $constructor("$ZodCheckStringFormat", (inst, def) => { + var _a, _b; + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + if (def.pattern) { + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(def.pattern); + } + }); + if (def.pattern) (_a = inst._zod).check ?? (_a.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: def.format, + input: payload.value, + ...def.pattern ? { pattern: def.pattern.toString() } : {}, + inst, + continue: !def.abort + }); + }); + else (_b = inst._zod).check ?? (_b.check = () => {}); + }); + const $ZodCheckRegex = /*@__PURE__*/ $constructor("$ZodCheckRegex", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + inst._zod.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "regex", + input: payload.value, + pattern: def.pattern.toString(), + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLowerCase = /*@__PURE__*/ $constructor("$ZodCheckLowerCase", (inst, def) => { + def.pattern ?? (def.pattern = lowercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckUpperCase = /*@__PURE__*/ $constructor("$ZodCheckUpperCase", (inst, def) => { + def.pattern ?? (def.pattern = uppercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckIncludes = /*@__PURE__*/ $constructor("$ZodCheckIncludes", (inst, def) => { + $ZodCheck.init(inst, def); + const escapedRegex = escapeRegex(def.includes); + const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position}}${escapedRegex}` : escapedRegex); + def.pattern = pattern; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.includes(def.includes, def.position)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "includes", + includes: def.includes, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStartsWith = /*@__PURE__*/ $constructor("$ZodCheckStartsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.startsWith(def.prefix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "starts_with", + prefix: def.prefix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckEndsWith = /*@__PURE__*/ $constructor("$ZodCheckEndsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.endsWith(def.suffix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "ends_with", + suffix: def.suffix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckOverwrite = /*@__PURE__*/ $constructor("$ZodCheckOverwrite", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + payload.value = def.tx(payload.value); + }; + }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js + var Doc = class { + constructor(args = []) { + this.content = []; + this.indent = 0; + if (this) this.args = args; + } + indented(fn) { + this.indent += 1; + fn(this); + this.indent -= 1; + } + write(arg) { + if (typeof arg === "function") { + arg(this, { execution: "sync" }); + arg(this, { execution: "async" }); + return; + } + const lines = arg.split("\n").filter((x) => x); + const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); + const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); + for (const line of dedented) this.content.push(line); + } + compile() { + const F = Function; + const args = this?.args; + const lines = [...(this?.content ?? [``]).map((x) => ` ${x}`)]; + return new F(...args, lines.join("\n")); + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js + const version = { + major: 4, + minor: 4, + patch: 3 + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js + const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => { + var _a; + inst ?? (inst = {}); + inst._zod.def = def; + inst._zod.bag = inst._zod.bag || {}; + inst._zod.version = version; + const checks = [...inst._zod.def.checks ?? []]; + if (inst._zod.traits.has("$ZodCheck")) checks.unshift(inst); + for (const ch of checks) for (const fn of ch._zod.onattach) fn(inst); + if (checks.length === 0) { + (_a = inst._zod).deferred ?? (_a.deferred = []); + inst._zod.deferred?.push(() => { + inst._zod.run = inst._zod.parse; + }); + } else { + const runChecks = (payload, checks, ctx) => { + let isAborted = aborted(payload); + let asyncResult; + for (const ch of checks) { + if (ch._zod.def.when) { + if (explicitlyAborted(payload)) continue; + if (!ch._zod.def.when(payload)) continue; + } else if (isAborted) continue; + const currLen = payload.issues.length; + const _ = ch._zod.check(payload); + if (_ instanceof Promise && ctx?.async === false) throw new $ZodAsyncError(); + if (asyncResult || _ instanceof Promise) asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { + await _; + if (payload.issues.length === currLen) return; + if (!isAborted) isAborted = aborted(payload, currLen); + }); + else { + if (payload.issues.length === currLen) continue; + if (!isAborted) isAborted = aborted(payload, currLen); + } + } + if (asyncResult) return asyncResult.then(() => { + return payload; + }); + return payload; + }; + const handleCanaryResult = (canary, payload, ctx) => { + if (aborted(canary)) { + canary.aborted = true; + return canary; + } + const checkResult = runChecks(payload, checks, ctx); + if (checkResult instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx)); + } + return inst._zod.parse(checkResult, ctx); + }; + inst._zod.run = (payload, ctx) => { + if (ctx.skipChecks) return inst._zod.parse(payload, ctx); + if (ctx.direction === "backward") { + const canary = inst._zod.parse({ + value: payload.value, + issues: [] + }, { + ...ctx, + skipChecks: true + }); + if (canary instanceof Promise) return canary.then((canary) => { + return handleCanaryResult(canary, payload, ctx); + }); + return handleCanaryResult(canary, payload, ctx); + } + const result = inst._zod.parse(payload, ctx); + if (result instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return result.then((result) => runChecks(result, checks, ctx)); + } + return runChecks(result, checks, ctx); + }; + } + defineLazy(inst, "~standard", () => ({ + validate: (value) => { + try { + const r = safeParse$1(inst, value); + return r.success ? { value: r.data } : { issues: r.error?.issues }; + } catch (_) { + return safeParseAsync$1(inst, value).then((r) => r.success ? { value: r.data } : { issues: r.error?.issues }); + } + }, + vendor: "zod", + version: 1 + })); + }); + const $ZodString = /*@__PURE__*/ $constructor("$ZodString", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = [...inst?._zod.bag?.patterns ?? []].pop() ?? string$1(inst._zod.bag); + inst._zod.parse = (payload, _) => { + if (def.coerce) try { + payload.value = String(payload.value); + } catch (_) {} + if (typeof payload.value === "string") return payload; + payload.issues.push({ + expected: "string", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + const $ZodStringFormat = /*@__PURE__*/ $constructor("$ZodStringFormat", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + $ZodString.init(inst, def); + }); + const $ZodGUID = /*@__PURE__*/ $constructor("$ZodGUID", (inst, def) => { + def.pattern ?? (def.pattern = guid); + $ZodStringFormat.init(inst, def); + }); + const $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => { + if (def.version) { + const v = { + v1: 1, + v2: 2, + v3: 3, + v4: 4, + v5: 5, + v6: 6, + v7: 7, + v8: 8 + }[def.version]; + if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`); + def.pattern ?? (def.pattern = uuid(v)); + } else def.pattern ?? (def.pattern = uuid()); + $ZodStringFormat.init(inst, def); + }); + const $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => { + def.pattern ?? (def.pattern = email); + $ZodStringFormat.init(inst, def); + }); + const $ZodURL = /*@__PURE__*/ $constructor("$ZodURL", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + try { + const trimmed = payload.value.trim(); + if (!def.normalize && def.protocol?.source === httpProtocol.source) { + if (!/^https?:\/\//i.test(trimmed)) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid URL format", + input: payload.value, + inst, + continue: !def.abort + }); + return; + } + } + const url = new URL(trimmed); + if (def.hostname) { + def.hostname.lastIndex = 0; + if (!def.hostname.test(url.hostname)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid hostname", + pattern: def.hostname.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.protocol) { + def.protocol.lastIndex = 0; + if (!def.protocol.test(url.protocol.endsWith(":") ? url.protocol.slice(0, -1) : url.protocol)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid protocol", + pattern: def.protocol.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.normalize) payload.value = url.href; + else payload.value = trimmed; + return; + } catch (_) { + payload.issues.push({ + code: "invalid_format", + format: "url", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodEmoji = /*@__PURE__*/ $constructor("$ZodEmoji", (inst, def) => { + def.pattern ?? (def.pattern = emoji()); + $ZodStringFormat.init(inst, def); + }); + const $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => { + def.pattern ?? (def.pattern = nanoid); + $ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link $ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const $ZodCUID = /*@__PURE__*/ $constructor("$ZodCUID", (inst, def) => { + def.pattern ?? (def.pattern = cuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodCUID2 = /*@__PURE__*/ $constructor("$ZodCUID2", (inst, def) => { + def.pattern ?? (def.pattern = cuid2); + $ZodStringFormat.init(inst, def); + }); + const $ZodULID = /*@__PURE__*/ $constructor("$ZodULID", (inst, def) => { + def.pattern ?? (def.pattern = ulid); + $ZodStringFormat.init(inst, def); + }); + const $ZodXID = /*@__PURE__*/ $constructor("$ZodXID", (inst, def) => { + def.pattern ?? (def.pattern = xid); + $ZodStringFormat.init(inst, def); + }); + const $ZodKSUID = /*@__PURE__*/ $constructor("$ZodKSUID", (inst, def) => { + def.pattern ?? (def.pattern = ksuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODateTime = /*@__PURE__*/ $constructor("$ZodISODateTime", (inst, def) => { + def.pattern ?? (def.pattern = datetime$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODate = /*@__PURE__*/ $constructor("$ZodISODate", (inst, def) => { + def.pattern ?? (def.pattern = date$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodISOTime = /*@__PURE__*/ $constructor("$ZodISOTime", (inst, def) => { + def.pattern ?? (def.pattern = time$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def) => { + def.pattern ?? (def.pattern = duration$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def) => { + def.pattern ?? (def.pattern = ipv4); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv4`; + }); + const $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => { + def.pattern ?? (def.pattern = ipv6); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv6`; + inst._zod.check = (payload) => { + try { + new URL(`http://[${payload.value}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "ipv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodCIDRv4 = /*@__PURE__*/ $constructor("$ZodCIDRv4", (inst, def) => { + def.pattern ?? (def.pattern = cidrv4); + $ZodStringFormat.init(inst, def); + }); + const $ZodCIDRv6 = /*@__PURE__*/ $constructor("$ZodCIDRv6", (inst, def) => { + def.pattern ?? (def.pattern = cidrv6); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + const parts = payload.value.split("/"); + try { + if (parts.length !== 2) throw new Error(); + const [address, prefix] = parts; + if (!prefix) throw new Error(); + const prefixNum = Number(prefix); + if (`${prefixNum}` !== prefix) throw new Error(); + if (prefixNum < 0 || prefixNum > 128) throw new Error(); + new URL(`http://[${address}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "cidrv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + function isValidBase64(data) { + if (data === "") return true; + if (/\s/.test(data)) return false; + if (data.length % 4 !== 0) return false; + try { + atob(data); + return true; + } catch { + return false; + } + } + const $ZodBase64 = /*@__PURE__*/ $constructor("$ZodBase64", (inst, def) => { + def.pattern ?? (def.pattern = base64); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64"; + inst._zod.check = (payload) => { + if (isValidBase64(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + function isValidBase64URL(data) { + if (!base64url.test(data)) return false; + const base64 = data.replace(/[-_]/g, (c) => c === "-" ? "+" : "/"); + return isValidBase64(base64.padEnd(Math.ceil(base64.length / 4) * 4, "=")); + } + const $ZodBase64URL = /*@__PURE__*/ $constructor("$ZodBase64URL", (inst, def) => { + def.pattern ?? (def.pattern = base64url); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64url"; + inst._zod.check = (payload) => { + if (isValidBase64URL(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64url", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodE164 = /*@__PURE__*/ $constructor("$ZodE164", (inst, def) => { + def.pattern ?? (def.pattern = e164); + $ZodStringFormat.init(inst, def); + }); + function isValidJWT(token, algorithm = null) { + try { + const tokensParts = token.split("."); + if (tokensParts.length !== 3) return false; + const [header] = tokensParts; + if (!header) return false; + const parsedHeader = JSON.parse(atob(header)); + if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") return false; + if (!parsedHeader.alg) return false; + if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) return false; + return true; + } catch { + return false; + } + } + const $ZodJWT = /*@__PURE__*/ $constructor("$ZodJWT", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidJWT(payload.value, def.alg)) return; + payload.issues.push({ + code: "invalid_format", + format: "jwt", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodNumber = /*@__PURE__*/ $constructor("$ZodNumber", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = inst._zod.bag.pattern ?? number$1; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) try { + payload.value = Number(payload.value); + } catch (_) {} + const input = payload.value; + if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) return payload; + const received = typeof input === "number" ? Number.isNaN(input) ? "NaN" : !Number.isFinite(input) ? "Infinity" : void 0 : void 0; + payload.issues.push({ + expected: "number", + code: "invalid_type", + input, + inst, + ...received ? { received } : {} + }); + return payload; + }; + }); + const $ZodNumberFormat = /*@__PURE__*/ $constructor("$ZodNumberFormat", (inst, def) => { + $ZodCheckNumberFormat.init(inst, def); + $ZodNumber.init(inst, def); + }); + const $ZodUnknown = /*@__PURE__*/ $constructor("$ZodUnknown", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload) => payload; + }); + const $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + payload.issues.push({ + expected: "never", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + function handleArrayResult(result, final, index) { + if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues)); + final.value[index] = result.value; + } + const $ZodArray = /*@__PURE__*/ $constructor("$ZodArray", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!Array.isArray(input)) { + payload.issues.push({ + expected: "array", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = Array(input.length); + const proms = []; + for (let i = 0; i < input.length; i++) { + const item = input[i]; + const result = def.element._zod.run({ + value: item, + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => handleArrayResult(result, payload, i))); + else handleArrayResult(result, payload, i); + } + if (proms.length) return Promise.all(proms).then(() => payload); + return payload; + }; + }); + function handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) { + const isPresent = key in input; + if (result.issues.length) { + if (isOptionalIn && isOptionalOut && !isPresent) return; + final.issues.push(...prefixIssues(key, result.issues)); + } + if (!isPresent && !isOptionalIn) { + if (!result.issues.length) final.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: void 0, + path: [key] + }); + return; + } + if (result.value === void 0) { + if (isPresent) final.value[key] = void 0; + } else final.value[key] = result.value; + } + function normalizeDef(def) { + const keys = Object.keys(def.shape); + for (const k of keys) if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) throw new Error(`Invalid element at key "${k}": expected a Zod schema`); + const okeys = optionalKeys(def.shape); + return { + ...def, + keys, + keySet: new Set(keys), + numKeys: keys.length, + optionalKeys: new Set(okeys) + }; + } + function handleCatchall(proms, input, payload, ctx, def, inst) { + const unrecognized = []; + const keySet = def.keySet; + const _catchall = def.catchall._zod; + const t = _catchall.def.type; + const isOptionalIn = _catchall.optin === "optional"; + const isOptionalOut = _catchall.optout === "optional"; + for (const key in input) { + if (key === "__proto__") continue; + if (keySet.has(key)) continue; + if (t === "never") { + unrecognized.push(key); + continue; + } + const r = _catchall.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (unrecognized.length) payload.issues.push({ + code: "unrecognized_keys", + keys: unrecognized, + input, + inst + }); + if (!proms.length) return payload; + return Promise.all(proms).then(() => { + return payload; + }); + } + const $ZodObject = /*@__PURE__*/ $constructor("$ZodObject", (inst, def) => { + $ZodType.init(inst, def); + if (!Object.getOwnPropertyDescriptor(def, "shape")?.get) { + const sh = def.shape; + Object.defineProperty(def, "shape", { get: () => { + const newSh = { ...sh }; + Object.defineProperty(def, "shape", { value: newSh }); + return newSh; + } }); + } + const _normalized = cached(() => normalizeDef(def)); + defineLazy(inst._zod, "propValues", () => { + const shape = def.shape; + const propValues = {}; + for (const key in shape) { + const field = shape[key]._zod; + if (field.values) { + propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set()); + for (const v of field.values) propValues[key].add(v); + } + } + return propValues; + }); + const isObject$1 = isObject; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$1(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = {}; + const proms = []; + const shape = value.shape; + for (const key of value.keys) { + const el = shape[key]; + const isOptionalIn = el._zod.optin === "optional"; + const isOptionalOut = el._zod.optout === "optional"; + const r = el._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (!catchall) return proms.length ? Promise.all(proms).then(() => payload) : payload; + return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); + }; + }); + const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) => { + $ZodObject.init(inst, def); + const superParse = inst._zod.parse; + const _normalized = cached(() => normalizeDef(def)); + const generateFastpass = (shape) => { + const doc = new Doc([ + "shape", + "payload", + "ctx" + ]); + const normalized = _normalized.value; + const parseStr = (key) => { + const k = esc(key); + return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; + }; + doc.write(`const input = payload.value;`); + const ids = Object.create(null); + let counter = 0; + for (const key of normalized.keys) ids[key] = `key_${counter++}`; + doc.write(`const newResult = {};`); + for (const key of normalized.keys) { + const id = ids[key]; + const k = esc(key); + const schema = shape[key]; + const isOptionalIn = schema?._zod?.optin === "optional"; + const isOptionalOut = schema?._zod?.optout === "optional"; + doc.write(`const ${id} = ${parseStr(key)};`); + if (isOptionalIn && isOptionalOut) doc.write(` + if (${id}.issues.length) { + if (${k} in input) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + else if (!isOptionalIn) doc.write(` + const ${id}_present = ${k} in input; + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + if (!${id}_present && !${id}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${k}] + }); + } + + if (${id}_present) { + if (${id}.value === undefined) { + newResult[${k}] = undefined; + } else { + newResult[${k}] = ${id}.value; + } + } + + `); + else doc.write(` + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + } + doc.write(`payload.value = newResult;`); + doc.write(`return payload;`); + const fn = doc.compile(); + return (payload, ctx) => fn(shape, payload, ctx); + }; + let fastpass; + const isObject$2 = isObject; + const jit = !globalConfig.jitless; + const fastEnabled = jit && allowsEval.value; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$2(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { + if (!fastpass) fastpass = generateFastpass(def.shape); + payload = fastpass(payload, ctx); + if (!catchall) return payload; + return handleCatchall([], input, payload, ctx, value, inst); + } + return superParse(payload, ctx); + }; + }); + function handleUnionResults(results, final, inst, ctx) { + for (const result of results) if (result.issues.length === 0) { + final.value = result.value; + return final; + } + const nonaborted = results.filter((r) => !aborted(r)); + if (nonaborted.length === 1) { + final.value = nonaborted[0].value; + return nonaborted[0]; + } + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + }); + return final; + } + const $ZodUnion = /*@__PURE__*/ $constructor("$ZodUnion", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.options.some((o) => o._zod.optin === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "optout", () => def.options.some((o) => o._zod.optout === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "values", () => { + if (def.options.every((o) => o._zod.values)) return new Set(def.options.flatMap((option) => Array.from(option._zod.values))); + }); + defineLazy(inst._zod, "pattern", () => { + if (def.options.every((o) => o._zod.pattern)) { + const patterns = def.options.map((o) => o._zod.pattern); + return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); + } + }); + const first = def.options.length === 1 ? def.options[0]._zod.run : null; + inst._zod.parse = (payload, ctx) => { + if (first) return first(payload, ctx); + let async = false; + const results = []; + for (const option of def.options) { + const result = option._zod.run({ + value: payload.value, + issues: [] + }, ctx); + if (result instanceof Promise) { + results.push(result); + async = true; + } else { + if (result.issues.length === 0) return result; + results.push(result); + } + } + if (!async) return handleUnionResults(results, payload, inst, ctx); + return Promise.all(results).then((results) => { + return handleUnionResults(results, payload, inst, ctx); + }); + }; + }); + const $ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("$ZodDiscriminatedUnion", (inst, def) => { + def.inclusive = false; + $ZodUnion.init(inst, def); + const _super = inst._zod.parse; + defineLazy(inst._zod, "propValues", () => { + const propValues = {}; + for (const option of def.options) { + const pv = option._zod.propValues; + if (!pv || Object.keys(pv).length === 0) throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); + for (const [k, v] of Object.entries(pv)) { + if (!propValues[k]) propValues[k] = /* @__PURE__ */ new Set(); + for (const val of v) propValues[k].add(val); + } + } + return propValues; + }); + const disc = cached(() => { + const opts = def.options; + const map = /* @__PURE__ */ new Map(); + for (const o of opts) { + const values = o._zod.propValues?.[def.discriminator]; + if (!values || values.size === 0) throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`); + for (const v of values) { + if (map.has(v)) throw new Error(`Duplicate discriminator value "${String(v)}"`); + map.set(v, o); + } + } + return map; + }); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!isObject(input)) { + payload.issues.push({ + code: "invalid_type", + expected: "object", + input, + inst + }); + return payload; + } + const opt = disc.value.get(input?.[def.discriminator]); + if (opt) return opt._zod.run(payload, ctx); + if (def.unionFallback || ctx.direction === "backward") return _super(payload, ctx); + payload.issues.push({ + code: "invalid_union", + errors: [], + note: "No matching discriminator", + discriminator: def.discriminator, + options: Array.from(disc.value.keys()), + input, + path: [def.discriminator], + inst + }); + return payload; + }; + }); + const $ZodIntersection = /*@__PURE__*/ $constructor("$ZodIntersection", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + const left = def.left._zod.run({ + value: input, + issues: [] + }, ctx); + const right = def.right._zod.run({ + value: input, + issues: [] + }, ctx); + if (left instanceof Promise || right instanceof Promise) return Promise.all([left, right]).then(([left, right]) => { + return handleIntersectionResults(payload, left, right); + }); + return handleIntersectionResults(payload, left, right); + }; + }); + function mergeValues(a, b) { + if (a === b) return { + valid: true, + data: a + }; + if (a instanceof Date && b instanceof Date && +a === +b) return { + valid: true, + data: a + }; + if (isPlainObject$1(a) && isPlainObject$1(b)) { + const bKeys = Object.keys(b); + const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { + ...a, + ...b + }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [key, ...sharedValue.mergeErrorPath] + }; + newObj[key] = sharedValue.data; + } + return { + valid: true, + data: newObj + }; + } + if (Array.isArray(a) && Array.isArray(b)) { + if (a.length !== b.length) return { + valid: false, + mergeErrorPath: [] + }; + const newArray = []; + for (let index = 0; index < a.length; index++) { + const itemA = a[index]; + const itemB = b[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [index, ...sharedValue.mergeErrorPath] + }; + newArray.push(sharedValue.data); + } + return { + valid: true, + data: newArray + }; + } + return { + valid: false, + mergeErrorPath: [] + }; + } + function handleIntersectionResults(result, left, right) { + const unrecKeys = /* @__PURE__ */ new Map(); + let unrecIssue; + for (const iss of left.issues) if (iss.code === "unrecognized_keys") { + unrecIssue ?? (unrecIssue = iss); + for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).l = true; + } + } else result.issues.push(iss); + for (const iss of right.issues) if (iss.code === "unrecognized_keys") for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).r = true; + } + else result.issues.push(iss); + const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); + if (bothKeys.length && unrecIssue) result.issues.push({ + ...unrecIssue, + keys: bothKeys + }); + if (aborted(result)) return result; + const merged = mergeValues(left.value, right.value); + if (!merged.valid) throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); + result.value = merged.data; + return result; + } + const $ZodEnum = /*@__PURE__*/ $constructor("$ZodEnum", (inst, def) => { + $ZodType.init(inst, def); + const values = getEnumValues(def.entries); + const valuesSet = new Set(values); + inst._zod.values = valuesSet; + inst._zod.pattern = new RegExp(`^(${values.filter((k) => propertyKeyTypes.has(typeof k)).map((o) => typeof o === "string" ? escapeRegex(o) : o.toString()).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (valuesSet.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values, + input, + inst + }); + return payload; + }; + }); + const $ZodLiteral = /*@__PURE__*/ $constructor("$ZodLiteral", (inst, def) => { + $ZodType.init(inst, def); + if (def.values.length === 0) throw new Error("Cannot create literal schema with no valid values"); + const values = new Set(def.values); + inst._zod.values = values; + inst._zod.pattern = new RegExp(`^(${def.values.map((o) => typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o)).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (values.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values: def.values, + input, + inst + }); + return payload; + }; + }); + const $ZodTransform = /*@__PURE__*/ $constructor("$ZodTransform", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + const _out = def.transform(payload.value, payload); + if (ctx.async) return (_out instanceof Promise ? _out : Promise.resolve(_out)).then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + if (_out instanceof Promise) throw new $ZodAsyncError(); + payload.value = _out; + payload.fallback = true; + return payload; + }; + }); + function handleOptionalResult(result, input) { + if (input === void 0 && (result.issues.length || result.fallback)) return { + issues: [], + value: void 0 + }; + return result; + } + const $ZodOptional = /*@__PURE__*/ $constructor("$ZodOptional", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.optout = "optional"; + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, void 0]) : void 0; + }); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (def.innerType._zod.optin === "optional") { + const input = payload.value; + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((r) => handleOptionalResult(r, input)); + return handleOptionalResult(result, input); + } + if (payload.value === void 0) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodExactOptional = /*@__PURE__*/ $constructor("$ZodExactOptional", (inst, def) => { + $ZodOptional.init(inst, def); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "pattern", () => def.innerType._zod.pattern); + inst._zod.parse = (payload, ctx) => { + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNullable = /*@__PURE__*/ $constructor("$ZodNullable", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; + }); + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (payload.value === null) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodDefault = /*@__PURE__*/ $constructor("$ZodDefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) { + payload.value = def.defaultValue; + /** + * $ZodDefault returns the default value immediately in forward direction. + * It doesn't pass the default value into the validator ("prefault"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a "prefault" for the pipe. */ + return payload; + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleDefaultResult(result, def)); + return handleDefaultResult(result, def); + }; + }); + function handleDefaultResult(payload, def) { + if (payload.value === void 0) payload.value = def.defaultValue; + return payload; + } + const $ZodPrefault = /*@__PURE__*/ $constructor("$ZodPrefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) payload.value = def.defaultValue; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNonOptional = /*@__PURE__*/ $constructor("$ZodNonOptional", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => { + const v = def.innerType._zod.values; + return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleNonOptionalResult(result, inst)); + return handleNonOptionalResult(result, inst); + }; + }); + function handleNonOptionalResult(payload, inst) { + if (!payload.issues.length && payload.value === void 0) payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: payload.value, + inst + }); + return payload; + } + const $ZodCatch = /*@__PURE__*/ $constructor("$ZodCatch", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => { + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }); + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }; + }); + const $ZodPipe = /*@__PURE__*/ $constructor("$ZodPipe", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => def.in._zod.values); + defineLazy(inst._zod, "optin", () => def.in._zod.optin); + defineLazy(inst._zod, "optout", () => def.out._zod.optout); + defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + const right = def.out._zod.run(payload, ctx); + if (right instanceof Promise) return right.then((right) => handlePipeResult(right, def.in, ctx)); + return handlePipeResult(right, def.in, ctx); + } + const left = def.in._zod.run(payload, ctx); + if (left instanceof Promise) return left.then((left) => handlePipeResult(left, def.out, ctx)); + return handlePipeResult(left, def.out, ctx); + }; + }); + function handlePipeResult(left, next, ctx) { + if (left.issues.length) { + left.aborted = true; + return left; + } + return next._zod.run({ + value: left.value, + issues: left.issues, + fallback: left.fallback + }, ctx); + } + const $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "optin", () => def.innerType?._zod?.optin); + defineLazy(inst._zod, "optout", () => def.innerType?._zod?.optout); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then(handleReadonlyResult); + return handleReadonlyResult(result); + }; + }); + function handleReadonlyResult(payload) { + payload.value = Object.freeze(payload.value); + return payload; + } + const $ZodCustom = /*@__PURE__*/ $constructor("$ZodCustom", (inst, def) => { + $ZodCheck.init(inst, def); + $ZodType.init(inst, def); + inst._zod.parse = (payload, _) => { + return payload; + }; + inst._zod.check = (payload) => { + const input = payload.value; + const r = def.fn(input); + if (r instanceof Promise) return r.then((r) => handleRefineResult(r, payload, input, inst)); + handleRefineResult(r, payload, input, inst); + }; + }); + function handleRefineResult(result, payload, input, inst) { + if (!result) { + const _iss = { + code: "custom", + input, + inst, + path: [...inst._zod.def.path ?? []], + continue: !inst._zod.def.abort + }; + if (inst._zod.def.params) _iss.params = inst._zod.def.params; + payload.issues.push(issue(_iss)); + } + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js + var _a; + var $ZodRegistry = class { + constructor() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + } + add(schema, ..._meta) { + const meta = _meta[0]; + this._map.set(schema, meta); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.set(meta.id, schema); + return this; + } + clear() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + return this; + } + remove(schema) { + const meta = this._map.get(schema); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.delete(meta.id); + this._map.delete(schema); + return this; + } + get(schema) { + const p = schema._zod.parent; + if (p) { + const pm = { ...this.get(p) ?? {} }; + delete pm.id; + const f = { + ...pm, + ...this._map.get(schema) + }; + return Object.keys(f).length ? f : void 0; + } + return this._map.get(schema); + } + has(schema) { + return this._map.has(schema); + } + }; + function registry() { + return new $ZodRegistry(); + } + (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry()); + const globalRegistry = globalThis.__zod_globalRegistry; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js + // @__NO_SIDE_EFFECTS__ + function _string(Class, params) { + return new Class({ + type: "string", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _email(Class, params) { + return new Class({ + type: "string", + format: "email", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _guid(Class, params) { + return new Class({ + type: "string", + format: "guid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuid(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv4(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v4", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv6(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v6", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv7(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v7", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _url(Class, params) { + return new Class({ + type: "string", + format: "url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _emoji(Class, params) { + return new Class({ + type: "string", + format: "emoji", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _nanoid(Class, params) { + return new Class({ + type: "string", + format: "nanoid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link _cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + // @__NO_SIDE_EFFECTS__ + function _cuid(Class, params) { + return new Class({ + type: "string", + format: "cuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cuid2(Class, params) { + return new Class({ + type: "string", + format: "cuid2", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ulid(Class, params) { + return new Class({ + type: "string", + format: "ulid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _xid(Class, params) { + return new Class({ + type: "string", + format: "xid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ksuid(Class, params) { + return new Class({ + type: "string", + format: "ksuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv4(Class, params) { + return new Class({ + type: "string", + format: "ipv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv6(Class, params) { + return new Class({ + type: "string", + format: "ipv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv4(Class, params) { + return new Class({ + type: "string", + format: "cidrv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv6(Class, params) { + return new Class({ + type: "string", + format: "cidrv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64(Class, params) { + return new Class({ + type: "string", + format: "base64", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64url(Class, params) { + return new Class({ + type: "string", + format: "base64url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _e164(Class, params) { + return new Class({ + type: "string", + format: "e164", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _jwt(Class, params) { + return new Class({ + type: "string", + format: "jwt", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDateTime(Class, params) { + return new Class({ + type: "string", + format: "datetime", + check: "string_format", + offset: false, + local: false, + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDate(Class, params) { + return new Class({ + type: "string", + format: "date", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoTime(Class, params) { + return new Class({ + type: "string", + format: "time", + check: "string_format", + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDuration(Class, params) { + return new Class({ + type: "string", + format: "duration", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _number(Class, params) { + return new Class({ + type: "number", + checks: [], + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _int(Class, params) { + return new Class({ + type: "number", + check: "number_format", + abort: false, + format: "safeint", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _unknown(Class) { + return new Class({ type: "unknown" }); + } + // @__NO_SIDE_EFFECTS__ + function _never(Class, params) { + return new Class({ + type: "never", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _lt(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _lte(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _gt(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _gte(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _multipleOf(value, params) { + return new $ZodCheckMultipleOf({ + check: "multiple_of", + ...normalizeParams(params), + value + }); + } + // @__NO_SIDE_EFFECTS__ + function _maxLength(maximum, params) { + return new $ZodCheckMaxLength({ + check: "max_length", + ...normalizeParams(params), + maximum + }); + } + // @__NO_SIDE_EFFECTS__ + function _minLength(minimum, params) { + return new $ZodCheckMinLength({ + check: "min_length", + ...normalizeParams(params), + minimum + }); + } + // @__NO_SIDE_EFFECTS__ + function _length(length, params) { + return new $ZodCheckLengthEquals({ + check: "length_equals", + ...normalizeParams(params), + length + }); + } + // @__NO_SIDE_EFFECTS__ + function _regex(pattern, params) { + return new $ZodCheckRegex({ + check: "string_format", + format: "regex", + ...normalizeParams(params), + pattern + }); + } + // @__NO_SIDE_EFFECTS__ + function _lowercase(params) { + return new $ZodCheckLowerCase({ + check: "string_format", + format: "lowercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uppercase(params) { + return new $ZodCheckUpperCase({ + check: "string_format", + format: "uppercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _includes(includes, params) { + return new $ZodCheckIncludes({ + check: "string_format", + format: "includes", + ...normalizeParams(params), + includes + }); + } + // @__NO_SIDE_EFFECTS__ + function _startsWith(prefix, params) { + return new $ZodCheckStartsWith({ + check: "string_format", + format: "starts_with", + ...normalizeParams(params), + prefix + }); + } + // @__NO_SIDE_EFFECTS__ + function _endsWith(suffix, params) { + return new $ZodCheckEndsWith({ + check: "string_format", + format: "ends_with", + ...normalizeParams(params), + suffix + }); + } + // @__NO_SIDE_EFFECTS__ + function _overwrite(tx) { + return new $ZodCheckOverwrite({ + check: "overwrite", + tx + }); + } + // @__NO_SIDE_EFFECTS__ + function _normalize(form) { + return /* @__PURE__ */ _overwrite((input) => input.normalize(form)); + } + // @__NO_SIDE_EFFECTS__ + function _trim() { + return /* @__PURE__ */ _overwrite((input) => input.trim()); + } + // @__NO_SIDE_EFFECTS__ + function _toLowerCase() { + return /* @__PURE__ */ _overwrite((input) => input.toLowerCase()); + } + // @__NO_SIDE_EFFECTS__ + function _toUpperCase() { + return /* @__PURE__ */ _overwrite((input) => input.toUpperCase()); + } + // @__NO_SIDE_EFFECTS__ + function _slugify() { + return /* @__PURE__ */ _overwrite((input) => slugify(input)); + } + // @__NO_SIDE_EFFECTS__ + function _array(Class, element, params) { + return new Class({ + type: "array", + element, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _custom(Class, fn, _params) { + const norm = normalizeParams(_params); + norm.abort ?? (norm.abort = true); + return new Class({ + type: "custom", + check: "custom", + fn, + ...norm + }); + } + // @__NO_SIDE_EFFECTS__ + function _refine(Class, fn, _params) { + return new Class({ + type: "custom", + check: "custom", + fn, + ...normalizeParams(_params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _superRefine(fn, params) { + const ch = /* @__PURE__ */ _check((payload) => { + payload.addIssue = (issue$2) => { + if (typeof issue$2 === "string") payload.issues.push(issue(issue$2, payload.value, ch._zod.def)); + else { + const _issue = issue$2; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = ch); + _issue.continue ?? (_issue.continue = !ch._zod.def.abort); + payload.issues.push(issue(_issue)); + } + }; + return fn(payload.value, payload); + }, params); + return ch; + } + // @__NO_SIDE_EFFECTS__ + function _check(fn, params) { + const ch = new $ZodCheck({ + check: "custom", + ...normalizeParams(params) + }); + ch._zod.check = fn; + return ch; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js + function initializeContext(params) { + let target = params?.target ?? "draft-2020-12"; + if (target === "draft-4") target = "draft-04"; + if (target === "draft-7") target = "draft-07"; + return { + processors: params.processors ?? {}, + metadataRegistry: params?.metadata ?? globalRegistry, + target, + unrepresentable: params?.unrepresentable ?? "throw", + override: params?.override ?? (() => {}), + io: params?.io ?? "output", + counter: 0, + seen: /* @__PURE__ */ new Map(), + cycles: params?.cycles ?? "ref", + reused: params?.reused ?? "inline", + external: params?.external ?? void 0 + }; + } + function process(schema, ctx, _params = { + path: [], + schemaPath: [] + }) { + var _a; + const def = schema._zod.def; + const seen = ctx.seen.get(schema); + if (seen) { + seen.count++; + if (_params.schemaPath.includes(schema)) seen.cycle = _params.path; + return seen.schema; + } + const result = { + schema: {}, + count: 1, + cycle: void 0, + path: _params.path + }; + ctx.seen.set(schema, result); + const overrideSchema = schema._zod.toJSONSchema?.(); + if (overrideSchema) result.schema = overrideSchema; + else { + const params = { + ..._params, + schemaPath: [..._params.schemaPath, schema], + path: _params.path + }; + if (schema._zod.processJSONSchema) schema._zod.processJSONSchema(ctx, result.schema, params); + else { + const _json = result.schema; + const processor = ctx.processors[def.type]; + if (!processor) throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); + processor(schema, ctx, _json, params); + } + const parent = schema._zod.parent; + if (parent) { + if (!result.ref) result.ref = parent; + process(parent, ctx, params); + ctx.seen.get(parent).isParent = true; + } + } + const meta = ctx.metadataRegistry.get(schema); + if (meta) Object.assign(result.schema, meta); + if (ctx.io === "input" && isTransforming(schema)) { + delete result.schema.examples; + delete result.schema.default; + } + if (ctx.io === "input" && "_prefault" in result.schema) (_a = result.schema).default ?? (_a.default = result.schema._prefault); + delete result.schema._prefault; + return ctx.seen.get(schema).schema; + } + function extractDefs(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const idToSchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.entries()) { + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + const existing = idToSchema.get(id); + if (existing && existing !== entry[0]) throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); + idToSchema.set(id, entry[0]); + } + } + const makeURI = (entry) => { + const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; + if (ctx.external) { + const externalId = ctx.external.registry.get(entry[0])?.id; + const uriGenerator = ctx.external.uri ?? ((id) => id); + if (externalId) return { ref: uriGenerator(externalId) }; + const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; + entry[1].defId = id; + return { + defId: id, + ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` + }; + } + if (entry[1] === root) return { ref: "#" }; + const defUriPrefix = `#/${defsSegment}/`; + const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; + return { + defId, + ref: defUriPrefix + defId + }; + }; + const extractToDef = (entry) => { + if (entry[1].schema.$ref) return; + const seen = entry[1]; + const { ref, defId } = makeURI(entry); + seen.def = { ...seen.schema }; + if (defId) seen.defId = defId; + const schema = seen.schema; + for (const key in schema) delete schema[key]; + schema.$ref = ref; + }; + if (ctx.cycles === "throw") for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.cycle) throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); + } + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (schema === entry[0]) { + extractToDef(entry); + continue; + } + if (ctx.external) { + const ext = ctx.external.registry.get(entry[0])?.id; + if (schema !== entry[0] && ext) { + extractToDef(entry); + continue; + } + } + if (ctx.metadataRegistry.get(entry[0])?.id) { + extractToDef(entry); + continue; + } + if (seen.cycle) { + extractToDef(entry); + continue; + } + if (seen.count > 1) { + if (ctx.reused === "ref") { + extractToDef(entry); + continue; + } + } + } + } + function finalize$1(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const flattenRef = (zodSchema) => { + const seen = ctx.seen.get(zodSchema); + if (seen.ref === null) return; + const schema = seen.def ?? seen.schema; + const _cached = { ...schema }; + const ref = seen.ref; + seen.ref = null; + if (ref) { + flattenRef(ref); + const refSeen = ctx.seen.get(ref); + const refSchema = refSeen.schema; + if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { + schema.allOf = schema.allOf ?? []; + schema.allOf.push(refSchema); + } else Object.assign(schema, refSchema); + Object.assign(schema, _cached); + if (zodSchema._zod.parent === ref) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (!(key in _cached)) delete schema[key]; + } + if (refSchema.$ref && refSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) delete schema[key]; + } + } + const parent = zodSchema._zod.parent; + if (parent && parent !== ref) { + flattenRef(parent); + const parentSeen = ctx.seen.get(parent); + if (parentSeen?.schema.$ref) { + schema.$ref = parentSeen.schema.$ref; + if (parentSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) delete schema[key]; + } + } + } + ctx.override({ + zodSchema, + jsonSchema: schema, + path: seen.path ?? [] + }); + }; + for (const entry of [...ctx.seen.entries()].reverse()) flattenRef(entry[0]); + const result = {}; + if (ctx.target === "draft-2020-12") result.$schema = "https://json-schema.org/draft/2020-12/schema"; + else if (ctx.target === "draft-07") result.$schema = "http://json-schema.org/draft-07/schema#"; + else if (ctx.target === "draft-04") result.$schema = "http://json-schema.org/draft-04/schema#"; + else if (ctx.target === "openapi-3.0") {} + if (ctx.external?.uri) { + const id = ctx.external.registry.get(schema)?.id; + if (!id) throw new Error("Schema is missing an `id` property"); + result.$id = ctx.external.uri(id); + } + Object.assign(result, root.def ?? root.schema); + const rootMetaId = ctx.metadataRegistry.get(schema)?.id; + if (rootMetaId !== void 0 && result.id === rootMetaId) delete result.id; + const defs = ctx.external?.defs ?? {}; + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.def && seen.defId) { + if (seen.def.id === seen.defId) delete seen.def.id; + defs[seen.defId] = seen.def; + } + } + if (ctx.external) {} else if (Object.keys(defs).length > 0) if (ctx.target === "draft-2020-12") result.$defs = defs; + else result.definitions = defs; + try { + const finalized = JSON.parse(JSON.stringify(result)); + Object.defineProperty(finalized, "~standard", { + value: { + ...schema["~standard"], + jsonSchema: { + input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), + output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) + } + }, + enumerable: false, + writable: false + }); + return finalized; + } catch (_err) { + throw new Error("Error converting schema to JSON."); + } + } + function isTransforming(_schema, _ctx) { + const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; + if (ctx.seen.has(_schema)) return false; + ctx.seen.add(_schema); + const def = _schema._zod.def; + if (def.type === "transform") return true; + if (def.type === "array") return isTransforming(def.element, ctx); + if (def.type === "set") return isTransforming(def.valueType, ctx); + if (def.type === "lazy") return isTransforming(def.getter(), ctx); + if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault") return isTransforming(def.innerType, ctx); + if (def.type === "intersection") return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); + if (def.type === "record" || def.type === "map") return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); + if (def.type === "pipe") { + if (_schema._zod.traits.has("$ZodCodec")) return true; + return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); + } + if (def.type === "object") { + for (const key in def.shape) if (isTransforming(def.shape[key], ctx)) return true; + return false; + } + if (def.type === "union") { + for (const option of def.options) if (isTransforming(option, ctx)) return true; + return false; + } + if (def.type === "tuple") { + for (const item of def.items) if (isTransforming(item, ctx)) return true; + if (def.rest && isTransforming(def.rest, ctx)) return true; + return false; + } + return false; + } + /** + * Creates a toJSONSchema method for a schema instance. + * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing. + */ + const createToJSONSchemaMethod = (schema, processors = {}) => (params) => { + const ctx = initializeContext({ + ...params, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize$1(ctx, schema); + }; + const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { + const { libraryOptions, target } = params ?? {}; + const ctx = initializeContext({ + ...libraryOptions ?? {}, + target, + io, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize$1(ctx, schema); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js + const formatMap = { + guid: "uuid", + url: "uri", + datetime: "date-time", + json_string: "json-string", + regex: "" + }; + const stringProcessor = (schema, ctx, _json, _params) => { + const json = _json; + json.type = "string"; + const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; + if (typeof minimum === "number") json.minLength = minimum; + if (typeof maximum === "number") json.maxLength = maximum; + if (format) { + json.format = formatMap[format] ?? format; + if (json.format === "") delete json.format; + if (format === "time") delete json.format; + } + if (contentEncoding) json.contentEncoding = contentEncoding; + if (patterns && patterns.size > 0) { + const regexes = [...patterns]; + if (regexes.length === 1) json.pattern = regexes[0].source; + else if (regexes.length > 1) json.allOf = [...regexes.map((regex) => ({ + ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, + pattern: regex.source + }))]; + } + }; + const numberProcessor = (schema, ctx, _json, _params) => { + const json = _json; + const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; + if (typeof format === "string" && format.includes("int")) json.type = "integer"; + else json.type = "number"; + const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); + const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); + const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; + if (exMin) if (legacy) { + json.minimum = exclusiveMinimum; + json.exclusiveMinimum = true; + } else json.exclusiveMinimum = exclusiveMinimum; + else if (typeof minimum === "number") json.minimum = minimum; + if (exMax) if (legacy) { + json.maximum = exclusiveMaximum; + json.exclusiveMaximum = true; + } else json.exclusiveMaximum = exclusiveMaximum; + else if (typeof maximum === "number") json.maximum = maximum; + if (typeof multipleOf === "number") json.multipleOf = multipleOf; + }; + const neverProcessor = (_schema, _ctx, json, _params) => { + json.not = {}; + }; + const enumProcessor = (schema, _ctx, json, _params) => { + const def = schema._zod.def; + const values = getEnumValues(def.entries); + if (values.every((v) => typeof v === "number")) json.type = "number"; + if (values.every((v) => typeof v === "string")) json.type = "string"; + json.enum = values; + }; + const literalProcessor = (schema, ctx, json, _params) => { + const def = schema._zod.def; + const vals = []; + for (const val of def.values) if (val === void 0) { + if (ctx.unrepresentable === "throw") throw new Error("Literal `undefined` cannot be represented in JSON Schema"); + } else if (typeof val === "bigint") if (ctx.unrepresentable === "throw") throw new Error("BigInt literals cannot be represented in JSON Schema"); + else vals.push(Number(val)); + else vals.push(val); + if (vals.length === 0) {} else if (vals.length === 1) { + const val = vals[0]; + json.type = val === null ? "null" : typeof val; + if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") json.enum = [val]; + else json.const = val; + } else { + if (vals.every((v) => typeof v === "number")) json.type = "number"; + if (vals.every((v) => typeof v === "string")) json.type = "string"; + if (vals.every((v) => typeof v === "boolean")) json.type = "boolean"; + if (vals.every((v) => v === null)) json.type = "null"; + json.enum = vals; + } + }; + const customProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Custom types cannot be represented in JSON Schema"); + }; + const transformProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Transforms cannot be represented in JSON Schema"); + }; + const arrayProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + const { minimum, maximum } = schema._zod.bag; + if (typeof minimum === "number") json.minItems = minimum; + if (typeof maximum === "number") json.maxItems = maximum; + json.type = "array"; + json.items = process(def.element, ctx, { + ...params, + path: [...params.path, "items"] + }); + }; + const objectProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + json.properties = {}; + const shape = def.shape; + for (const key in shape) json.properties[key] = process(shape[key], ctx, { + ...params, + path: [ + ...params.path, + "properties", + key + ] + }); + const allKeys = new Set(Object.keys(shape)); + const requiredKeys = new Set([...allKeys].filter((key) => { + const v = def.shape[key]._zod; + if (ctx.io === "input") return v.optin === void 0; + else return v.optout === void 0; + })); + if (requiredKeys.size > 0) json.required = Array.from(requiredKeys); + if (def.catchall?._zod.def.type === "never") json.additionalProperties = false; + else if (!def.catchall) { + if (ctx.io === "output") json.additionalProperties = false; + } else if (def.catchall) json.additionalProperties = process(def.catchall, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + }; + const unionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const isExclusive = def.inclusive === false; + const options = def.options.map((x, i) => process(x, ctx, { + ...params, + path: [ + ...params.path, + isExclusive ? "oneOf" : "anyOf", + i + ] + })); + if (isExclusive) json.oneOf = options; + else json.anyOf = options; + }; + const intersectionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const a = process(def.left, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 0 + ] + }); + const b = process(def.right, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 1 + ] + }); + const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; + json.allOf = [...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b]]; + }; + const nullableProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const inner = process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + if (ctx.target === "openapi-3.0") { + seen.ref = def.innerType; + json.nullable = true; + } else json.anyOf = [inner, { type: "null" }]; + }; + const nonoptionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const defaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.default = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const prefaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const catchProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + let catchValue; + try { + catchValue = def.catchValue(void 0); + } catch { + throw new Error("Dynamic catch values are not supported in JSON Schema"); + } + json.default = catchValue; + }; + const pipeProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + const inIsTransform = def.in._zod.traits.has("$ZodTransform"); + const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + const readonlyProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.readOnly = true; + }; + const optionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js + const ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => { + $ZodISODateTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function datetime(params) { + return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params); + } + const ZodISODate = /*@__PURE__*/ $constructor("ZodISODate", (inst, def) => { + $ZodISODate.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function date(params) { + return /* @__PURE__ */ _isoDate(ZodISODate, params); + } + const ZodISOTime = /*@__PURE__*/ $constructor("ZodISOTime", (inst, def) => { + $ZodISOTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function time(params) { + return /* @__PURE__ */ _isoTime(ZodISOTime, params); + } + const ZodISODuration = /*@__PURE__*/ $constructor("ZodISODuration", (inst, def) => { + $ZodISODuration.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function duration(params) { + return /* @__PURE__ */ _isoDuration(ZodISODuration, params); + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js + const initializer = (inst, issues) => { + $ZodError.init(inst, issues); + inst.name = "ZodError"; + Object.defineProperties(inst, { + format: { value: (mapper) => formatError(inst, mapper) }, + flatten: { value: (mapper) => flattenError(inst, mapper) }, + addIssue: { value: (issue) => { + inst.issues.push(issue); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + addIssues: { value: (issues) => { + inst.issues.push(...issues); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + isEmpty: { get() { + return inst.issues.length === 0; + } } + }); + }; + const ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, { Parent: Error }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js + const parse = /* @__PURE__ */ _parse(ZodRealError); + const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError); + const safeParse = /* @__PURE__ */ _safeParse(ZodRealError); + const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError); + const encode = /* @__PURE__ */ _encode(ZodRealError); + const decode = /* @__PURE__ */ _decode(ZodRealError); + const encodeAsync = /* @__PURE__ */ _encodeAsync(ZodRealError); + const decodeAsync = /* @__PURE__ */ _decodeAsync(ZodRealError); + const safeEncode = /* @__PURE__ */ _safeEncode(ZodRealError); + const safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError); + const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); + const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js + const _installedGroups = /* @__PURE__ */ new WeakMap(); + function _installLazyMethods(inst, group, methods) { + const proto = Object.getPrototypeOf(inst); + let installed = _installedGroups.get(proto); + if (!installed) { + installed = /* @__PURE__ */ new Set(); + _installedGroups.set(proto, installed); + } + if (installed.has(group)) return; + installed.add(group); + for (const key in methods) { + const fn = methods[key]; + Object.defineProperty(proto, key, { + configurable: true, + enumerable: false, + get() { + const bound = fn.bind(this); + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: bound + }); + return bound; + }, + set(v) { + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: v + }); + } + }); + } + } + const ZodType = /*@__PURE__*/ $constructor("ZodType", (inst, def) => { + $ZodType.init(inst, def); + Object.assign(inst["~standard"], { jsonSchema: { + input: createStandardJSONSchemaMethod(inst, "input"), + output: createStandardJSONSchemaMethod(inst, "output") + } }); + inst.toJSONSchema = createToJSONSchemaMethod(inst, {}); + inst.def = def; + inst.type = def.type; + Object.defineProperty(inst, "_def", { value: def }); + inst.parse = (data, params) => parse(inst, data, params, { callee: inst.parse }); + inst.safeParse = (data, params) => safeParse(inst, data, params); + inst.parseAsync = async (data, params) => parseAsync(inst, data, params, { callee: inst.parseAsync }); + inst.safeParseAsync = async (data, params) => safeParseAsync(inst, data, params); + inst.spa = inst.safeParseAsync; + inst.encode = (data, params) => encode(inst, data, params); + inst.decode = (data, params) => decode(inst, data, params); + inst.encodeAsync = async (data, params) => encodeAsync(inst, data, params); + inst.decodeAsync = async (data, params) => decodeAsync(inst, data, params); + inst.safeEncode = (data, params) => safeEncode(inst, data, params); + inst.safeDecode = (data, params) => safeDecode(inst, data, params); + inst.safeEncodeAsync = async (data, params) => safeEncodeAsync(inst, data, params); + inst.safeDecodeAsync = async (data, params) => safeDecodeAsync(inst, data, params); + _installLazyMethods(inst, "ZodType", { + check(...chks) { + const def = this.def; + return this.clone(mergeDefs(def, { checks: [...def.checks ?? [], ...chks.map((ch) => typeof ch === "function" ? { _zod: { + check: ch, + def: { check: "custom" }, + onattach: [] + } } : ch)] }), { parent: true }); + }, + with(...chks) { + return this.check(...chks); + }, + clone(def, params) { + return clone(this, def, params); + }, + brand() { + return this; + }, + register(reg, meta) { + reg.add(this, meta); + return this; + }, + refine(check, params) { + return this.check(refine(check, params)); + }, + superRefine(refinement, params) { + return this.check(superRefine(refinement, params)); + }, + overwrite(fn) { + return this.check(/* @__PURE__ */ _overwrite(fn)); + }, + optional() { + return optional(this); + }, + exactOptional() { + return exactOptional(this); + }, + nullable() { + return nullable(this); + }, + nullish() { + return optional(nullable(this)); + }, + nonoptional(params) { + return nonoptional(this, params); + }, + array() { + return array(this); + }, + or(arg) { + return union([this, arg]); + }, + and(arg) { + return intersection(this, arg); + }, + transform(tx) { + return pipe(this, transform(tx)); + }, + default(d) { + return _default(this, d); + }, + prefault(d) { + return prefault(this, d); + }, + catch(params) { + return _catch(this, params); + }, + pipe(target) { + return pipe(this, target); + }, + readonly() { + return readonly(this); + }, + describe(description) { + const cl = this.clone(); + globalRegistry.add(cl, { description }); + return cl; + }, + meta(...args) { + if (args.length === 0) return globalRegistry.get(this); + const cl = this.clone(); + globalRegistry.add(cl, args[0]); + return cl; + }, + isOptional() { + return this.safeParse(void 0).success; + }, + isNullable() { + return this.safeParse(null).success; + }, + apply(fn) { + return fn(this); + } + }); + Object.defineProperty(inst, "description", { + get() { + return globalRegistry.get(inst)?.description; + }, + configurable: true + }); + return inst; + }); + /** @internal */ + const _ZodString = /*@__PURE__*/ $constructor("_ZodString", (inst, def) => { + $ZodString.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => stringProcessor(inst, ctx, json, params); + const bag = inst._zod.bag; + inst.format = bag.format ?? null; + inst.minLength = bag.minimum ?? null; + inst.maxLength = bag.maximum ?? null; + _installLazyMethods(inst, "_ZodString", { + regex(...args) { + return this.check(/* @__PURE__ */ _regex(...args)); + }, + includes(...args) { + return this.check(/* @__PURE__ */ _includes(...args)); + }, + startsWith(...args) { + return this.check(/* @__PURE__ */ _startsWith(...args)); + }, + endsWith(...args) { + return this.check(/* @__PURE__ */ _endsWith(...args)); + }, + min(...args) { + return this.check(/* @__PURE__ */ _minLength(...args)); + }, + max(...args) { + return this.check(/* @__PURE__ */ _maxLength(...args)); + }, + length(...args) { + return this.check(/* @__PURE__ */ _length(...args)); + }, + nonempty(...args) { + return this.check(/* @__PURE__ */ _minLength(1, ...args)); + }, + lowercase(params) { + return this.check(/* @__PURE__ */ _lowercase(params)); + }, + uppercase(params) { + return this.check(/* @__PURE__ */ _uppercase(params)); + }, + trim() { + return this.check(/* @__PURE__ */ _trim()); + }, + normalize(...args) { + return this.check(/* @__PURE__ */ _normalize(...args)); + }, + toLowerCase() { + return this.check(/* @__PURE__ */ _toLowerCase()); + }, + toUpperCase() { + return this.check(/* @__PURE__ */ _toUpperCase()); + }, + slugify() { + return this.check(/* @__PURE__ */ _slugify()); + } + }); + }); + const ZodString = /*@__PURE__*/ $constructor("ZodString", (inst, def) => { + $ZodString.init(inst, def); + _ZodString.init(inst, def); + inst.email = (params) => inst.check(/* @__PURE__ */ _email(ZodEmail, params)); + inst.url = (params) => inst.check(/* @__PURE__ */ _url(ZodURL, params)); + inst.jwt = (params) => inst.check(/* @__PURE__ */ _jwt(ZodJWT, params)); + inst.emoji = (params) => inst.check(/* @__PURE__ */ _emoji(ZodEmoji, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.uuid = (params) => inst.check(/* @__PURE__ */ _uuid(ZodUUID, params)); + inst.uuidv4 = (params) => inst.check(/* @__PURE__ */ _uuidv4(ZodUUID, params)); + inst.uuidv6 = (params) => inst.check(/* @__PURE__ */ _uuidv6(ZodUUID, params)); + inst.uuidv7 = (params) => inst.check(/* @__PURE__ */ _uuidv7(ZodUUID, params)); + inst.nanoid = (params) => inst.check(/* @__PURE__ */ _nanoid(ZodNanoID, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.cuid = (params) => inst.check(/* @__PURE__ */ _cuid(ZodCUID, params)); + inst.cuid2 = (params) => inst.check(/* @__PURE__ */ _cuid2(ZodCUID2, params)); + inst.ulid = (params) => inst.check(/* @__PURE__ */ _ulid(ZodULID, params)); + inst.base64 = (params) => inst.check(/* @__PURE__ */ _base64(ZodBase64, params)); + inst.base64url = (params) => inst.check(/* @__PURE__ */ _base64url(ZodBase64URL, params)); + inst.xid = (params) => inst.check(/* @__PURE__ */ _xid(ZodXID, params)); + inst.ksuid = (params) => inst.check(/* @__PURE__ */ _ksuid(ZodKSUID, params)); + inst.ipv4 = (params) => inst.check(/* @__PURE__ */ _ipv4(ZodIPv4, params)); + inst.ipv6 = (params) => inst.check(/* @__PURE__ */ _ipv6(ZodIPv6, params)); + inst.cidrv4 = (params) => inst.check(/* @__PURE__ */ _cidrv4(ZodCIDRv4, params)); + inst.cidrv6 = (params) => inst.check(/* @__PURE__ */ _cidrv6(ZodCIDRv6, params)); + inst.e164 = (params) => inst.check(/* @__PURE__ */ _e164(ZodE164, params)); + inst.datetime = (params) => inst.check(datetime(params)); + inst.date = (params) => inst.check(date(params)); + inst.time = (params) => inst.check(time(params)); + inst.duration = (params) => inst.check(duration(params)); + }); + function string(params) { + return /* @__PURE__ */ _string(ZodString, params); + } + const ZodStringFormat = /*@__PURE__*/ $constructor("ZodStringFormat", (inst, def) => { + $ZodStringFormat.init(inst, def); + _ZodString.init(inst, def); + }); + const ZodEmail = /*@__PURE__*/ $constructor("ZodEmail", (inst, def) => { + $ZodEmail.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodGUID = /*@__PURE__*/ $constructor("ZodGUID", (inst, def) => { + $ZodGUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodUUID = /*@__PURE__*/ $constructor("ZodUUID", (inst, def) => { + $ZodUUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodURL = /*@__PURE__*/ $constructor("ZodURL", (inst, def) => { + $ZodURL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodEmoji = /*@__PURE__*/ $constructor("ZodEmoji", (inst, def) => { + $ZodEmoji.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNanoID = /*@__PURE__*/ $constructor("ZodNanoID", (inst, def) => { + $ZodNanoID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const ZodCUID = /*@__PURE__*/ $constructor("ZodCUID", (inst, def) => { + $ZodCUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCUID2 = /*@__PURE__*/ $constructor("ZodCUID2", (inst, def) => { + $ZodCUID2.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodULID = /*@__PURE__*/ $constructor("ZodULID", (inst, def) => { + $ZodULID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodXID = /*@__PURE__*/ $constructor("ZodXID", (inst, def) => { + $ZodXID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodKSUID = /*@__PURE__*/ $constructor("ZodKSUID", (inst, def) => { + $ZodKSUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv4 = /*@__PURE__*/ $constructor("ZodIPv4", (inst, def) => { + $ZodIPv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv6 = /*@__PURE__*/ $constructor("ZodIPv6", (inst, def) => { + $ZodIPv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv4 = /*@__PURE__*/ $constructor("ZodCIDRv4", (inst, def) => { + $ZodCIDRv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv6 = /*@__PURE__*/ $constructor("ZodCIDRv6", (inst, def) => { + $ZodCIDRv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64 = /*@__PURE__*/ $constructor("ZodBase64", (inst, def) => { + $ZodBase64.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64URL = /*@__PURE__*/ $constructor("ZodBase64URL", (inst, def) => { + $ZodBase64URL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodE164 = /*@__PURE__*/ $constructor("ZodE164", (inst, def) => { + $ZodE164.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodJWT = /*@__PURE__*/ $constructor("ZodJWT", (inst, def) => { + $ZodJWT.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNumber = /*@__PURE__*/ $constructor("ZodNumber", (inst, def) => { + $ZodNumber.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => numberProcessor(inst, ctx, json, params); + _installLazyMethods(inst, "ZodNumber", { + gt(value, params) { + return this.check(/* @__PURE__ */ _gt(value, params)); + }, + gte(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + min(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + lt(value, params) { + return this.check(/* @__PURE__ */ _lt(value, params)); + }, + lte(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + max(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + int(params) { + return this.check(int(params)); + }, + safe(params) { + return this.check(int(params)); + }, + positive(params) { + return this.check(/* @__PURE__ */ _gt(0, params)); + }, + nonnegative(params) { + return this.check(/* @__PURE__ */ _gte(0, params)); + }, + negative(params) { + return this.check(/* @__PURE__ */ _lt(0, params)); + }, + nonpositive(params) { + return this.check(/* @__PURE__ */ _lte(0, params)); + }, + multipleOf(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + step(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + finite() { + return this; + } + }); + const bag = inst._zod.bag; + inst.minValue = Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null; + inst.maxValue = Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null; + inst.isInt = (bag.format ?? "").includes("int") || Number.isSafeInteger(bag.multipleOf ?? .5); + inst.isFinite = true; + inst.format = bag.format ?? null; + }); + function number(params) { + return /* @__PURE__ */ _number(ZodNumber, params); + } + const ZodNumberFormat = /*@__PURE__*/ $constructor("ZodNumberFormat", (inst, def) => { + $ZodNumberFormat.init(inst, def); + ZodNumber.init(inst, def); + }); + function int(params) { + return /* @__PURE__ */ _int(ZodNumberFormat, params); + } + const ZodUnknown = /*@__PURE__*/ $constructor("ZodUnknown", (inst, def) => { + $ZodUnknown.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => void 0; + }); + function unknown() { + return /* @__PURE__ */ _unknown(ZodUnknown); + } + const ZodNever = /*@__PURE__*/ $constructor("ZodNever", (inst, def) => { + $ZodNever.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => neverProcessor(inst, ctx, json, params); + }); + function never(params) { + return /* @__PURE__ */ _never(ZodNever, params); + } + const ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => { + $ZodArray.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => arrayProcessor(inst, ctx, json, params); + inst.element = def.element; + _installLazyMethods(inst, "ZodArray", { + min(n, params) { + return this.check(/* @__PURE__ */ _minLength(n, params)); + }, + nonempty(params) { + return this.check(/* @__PURE__ */ _minLength(1, params)); + }, + max(n, params) { + return this.check(/* @__PURE__ */ _maxLength(n, params)); + }, + length(n, params) { + return this.check(/* @__PURE__ */ _length(n, params)); + }, + unwrap() { + return this.element; + } + }); + }); + function array(element, params) { + return /* @__PURE__ */ _array(ZodArray, element, params); + } + const ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => { + $ZodObjectJIT.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params); + defineLazy(inst, "shape", () => { + return def.shape; + }); + _installLazyMethods(inst, "ZodObject", { + keyof() { + return _enum(Object.keys(this._zod.def.shape)); + }, + catchall(catchall) { + return this.clone({ + ...this._zod.def, + catchall + }); + }, + passthrough() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + loose() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + strict() { + return this.clone({ + ...this._zod.def, + catchall: never() + }); + }, + strip() { + return this.clone({ + ...this._zod.def, + catchall: void 0 + }); + }, + extend(incoming) { + return extend(this, incoming); + }, + safeExtend(incoming) { + return safeExtend(this, incoming); + }, + merge(other) { + return merge(this, other); + }, + pick(mask) { + return pick(this, mask); + }, + omit(mask) { + return omit(this, mask); + }, + partial(...args) { + return partial(ZodOptional, this, args[0]); + }, + required(...args) { + return required(ZodNonOptional, this, args[0]); + } + }); + }); + function object(shape, params) { + return new ZodObject({ + type: "object", + shape: shape ?? {}, + ...normalizeParams(params) + }); + } + const ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => { + $ZodUnion.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); + inst.options = def.options; + }); + function union(options, params) { + return new ZodUnion({ + type: "union", + options, + ...normalizeParams(params) + }); + } + const ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("ZodDiscriminatedUnion", (inst, def) => { + ZodUnion.init(inst, def); + $ZodDiscriminatedUnion.init(inst, def); + }); + function discriminatedUnion(discriminator, options, params) { + return new ZodDiscriminatedUnion({ + type: "union", + options, + discriminator, + ...normalizeParams(params) + }); + } + const ZodIntersection = /*@__PURE__*/ $constructor("ZodIntersection", (inst, def) => { + $ZodIntersection.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => intersectionProcessor(inst, ctx, json, params); + }); + function intersection(left, right) { + return new ZodIntersection({ + type: "intersection", + left, + right + }); + } + const ZodEnum = /*@__PURE__*/ $constructor("ZodEnum", (inst, def) => { + $ZodEnum.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => enumProcessor(inst, ctx, json, params); + inst.enum = def.entries; + inst.options = Object.values(def.entries); + const keys = new Set(Object.keys(def.entries)); + inst.extract = (values, params) => { + const newEntries = {}; + for (const value of values) if (keys.has(value)) newEntries[value] = def.entries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + inst.exclude = (values, params) => { + const newEntries = { ...def.entries }; + for (const value of values) if (keys.has(value)) delete newEntries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + }); + function _enum(values, params) { + return new ZodEnum({ + type: "enum", + entries: Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values, + ...normalizeParams(params) + }); + } + const ZodLiteral = /*@__PURE__*/ $constructor("ZodLiteral", (inst, def) => { + $ZodLiteral.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => literalProcessor(inst, ctx, json, params); + inst.values = new Set(def.values); + Object.defineProperty(inst, "value", { get() { + if (def.values.length > 1) throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); + return def.values[0]; + } }); + }); + function literal(value, params) { + return new ZodLiteral({ + type: "literal", + values: Array.isArray(value) ? value : [value], + ...normalizeParams(params) + }); + } + const ZodTransform = /*@__PURE__*/ $constructor("ZodTransform", (inst, def) => { + $ZodTransform.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => transformProcessor(inst, ctx, json, params); + inst._zod.parse = (payload, _ctx) => { + if (_ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + payload.addIssue = (issue$1) => { + if (typeof issue$1 === "string") payload.issues.push(issue(issue$1, payload.value, def)); + else { + const _issue = issue$1; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = inst); + payload.issues.push(issue(_issue)); + } + }; + const output = def.transform(payload.value, payload); + if (output instanceof Promise) return output.then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + payload.value = output; + payload.fallback = true; + return payload; + }; + }); + function transform(fn) { + return new ZodTransform({ + type: "transform", + transform: fn + }); + } + const ZodOptional = /*@__PURE__*/ $constructor("ZodOptional", (inst, def) => { + $ZodOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function optional(innerType) { + return new ZodOptional({ + type: "optional", + innerType + }); + } + const ZodExactOptional = /*@__PURE__*/ $constructor("ZodExactOptional", (inst, def) => { + $ZodExactOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function exactOptional(innerType) { + return new ZodExactOptional({ + type: "optional", + innerType + }); + } + const ZodNullable = /*@__PURE__*/ $constructor("ZodNullable", (inst, def) => { + $ZodNullable.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nullable(innerType) { + return new ZodNullable({ + type: "nullable", + innerType + }); + } + const ZodDefault = /*@__PURE__*/ $constructor("ZodDefault", (inst, def) => { + $ZodDefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => defaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeDefault = inst.unwrap; + }); + function _default(innerType, defaultValue) { + return new ZodDefault({ + type: "default", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodPrefault = /*@__PURE__*/ $constructor("ZodPrefault", (inst, def) => { + $ZodPrefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => prefaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function prefault(innerType, defaultValue) { + return new ZodPrefault({ + type: "prefault", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodNonOptional = /*@__PURE__*/ $constructor("ZodNonOptional", (inst, def) => { + $ZodNonOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nonoptionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nonoptional(innerType, params) { + return new ZodNonOptional({ + type: "nonoptional", + innerType, + ...normalizeParams(params) + }); + } + const ZodCatch = /*@__PURE__*/ $constructor("ZodCatch", (inst, def) => { + $ZodCatch.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => catchProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeCatch = inst.unwrap; + }); + function _catch(innerType, catchValue) { + return new ZodCatch({ + type: "catch", + innerType, + catchValue: typeof catchValue === "function" ? catchValue : () => catchValue + }); + } + const ZodPipe = /*@__PURE__*/ $constructor("ZodPipe", (inst, def) => { + $ZodPipe.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => pipeProcessor(inst, ctx, json, params); + inst.in = def.in; + inst.out = def.out; + }); + function pipe(in_, out) { + return new ZodPipe({ + type: "pipe", + in: in_, + out + }); + } + const ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => { + $ZodReadonly.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => readonlyProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function readonly(innerType) { + return new ZodReadonly({ + type: "readonly", + innerType + }); + } + const ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => { + $ZodCustom.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params); + }); + function custom(fn, _params) { + return /* @__PURE__ */ _custom(ZodCustom, fn ?? (() => true), _params); + } + function refine(fn, _params = {}) { + return /* @__PURE__ */ _refine(ZodCustom, fn, _params); + } + function superRefine(fn, params) { + return /* @__PURE__ */ _superRefine(fn, params); + } + //#endregion + //#region ../../host/apiproxy/src/api/rpc.schema.ts + /** + * Message-layer zod schemas: the four wire full forms + error body + + * carrier receipt. The payload slot is unknown in the full-form schemas — business payloads + * get a second parse dispatched by method (two-level parse discipline). + * Brand cast point: rpcIdSchema, and only there. + */ + /** + * RpcId: one brand cast after schema validation (the only cast point in this + * file). No min-length: the id is an opaque echo token, and rejecting values + * here would only turn a correlatable error report into a client-side parse + * failure (the handler substitutes a sentinel when a request's id is unreadable). + */ + const rpcIdSchema = string(); + /** Error body: discriminated by code, per-branch details aligned to RpcErrorDetailsMap; details is required. */ + const rpcErrorSchema = discriminatedUnion("code", [ + object({ + code: literal("bad-request"), + message: string(), + details: object({ issues: array(custom()) }) + }), + object({ + code: literal("cancelled"), + message: string(), + details: object({}) + }), + object({ + code: literal("session-not-found"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("model-unavailable"), + message: string(), + details: object({ + provider: string(), + model: string() + }) + }), + object({ + code: literal("session-conflict"), + message: string(), + details: object({ + sessionId: string(), + requestedCwd: string(), + existingCwd: string().optional() + }) + }), + object({ + code: literal("invalid-time-zone"), + message: string(), + details: object({ value: string() }) + }), + object({ + code: literal("workspace-attach-failed"), + message: string(), + details: object({ + sessionId: string(), + workspaceId: string() + }) + }), + object({ + code: literal("workspace-not-found"), + message: string(), + details: object({ workspaceId: string() }) + }), + object({ + code: literal("workspace-invalid-path"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("workspace-name-conflict"), + message: string(), + details: object({ name: string() }) + }), + object({ + code: literal("workspace-move-invalid"), + message: string(), + details: object({ + workspaceId: string(), + sessionId: string(), + beforeSessionId: string().optional() + }) + }), + object({ + code: literal("directory-unreadable"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-exists"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-create-failed"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-picker-unavailable"), + message: string(), + details: object({ capability: string() }) + }), + object({ + code: literal("agent-preset-read-only"), + message: string(), + details: object({ + agentPreset: string(), + reason: string() + }) + }), + object({ + code: literal("agent-preset-locked"), + message: string(), + details: object({ + sessionId: string(), + agentPreset: string() + }) + }), + object({ + code: literal("agent-preset-conflict"), + message: string(), + details: object({ + sessionId: string(), + requestedPreset: string(), + existingPreset: string().optional() + }) + }), + object({ + code: literal("agent-preset-not-found"), + message: string(), + details: object({ + agentPreset: string(), + available: array(string()) + }) + }), + object({ + code: literal("agent-preset-invalid"), + message: string(), + details: object({ + agentPreset: string(), + reason: string() + }) + }), + object({ + code: literal("agent-busy"), + message: string(), + details: object({ reason: string() }) + }), + object({ + code: literal("attachment-error"), + message: string(), + details: object({ reason: string() }) + }), + object({ + code: literal("queue-item-not-found"), + message: string(), + details: object({ itemId: string() }) + }), + object({ + code: literal("steer-unavailable"), + message: string(), + details: object({ itemId: string() }) + }), + object({ + code: literal("command-error"), + message: string(), + details: object({}) + }), + object({ + code: literal("unknown-command"), + message: string(), + details: object({}) + }), + object({ + code: literal("settings-rejected"), + message: string(), + details: object({ ns: string() }) + }), + object({ + code: literal("settings-not-exposed"), + message: string(), + details: object({ ns: string() }) + }), + object({ + code: literal("settings-conflict"), + message: string(), + details: object({ + ns: string(), + expected: number(), + actual: number() + }) + }), + object({ + code: literal("credential-rejected"), + message: string(), + details: object({ ref: string() }) + }), + object({ + code: literal("model-discovery-failed"), + message: string(), + details: object({ + settingsNs: string(), + baseURL: string().optional() + }) + }), + object({ + code: literal("title-invalid"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("fork-unavailable"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("subagent-parent-unavailable"), + message: string(), + details: object({ parentSessionId: string() }) + }), + object({ + code: literal("subagent-not-found"), + message: string(), + details: object({ + parentSessionId: string(), + childSessionId: string() + }) + }), + object({ + code: literal("subagent-catalog-diagnostic"), + message: string(), + details: object({ + parentSessionId: string(), + childSessionId: string(), + reason: union([ + literal("corrupt"), + literal("unsupported"), + literal("unavailable") + ]) + }) + }), + object({ + code: literal("subagent-not-resumable"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("subagent-unauthorized"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("subagent-delivery-unavailable"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("internal"), + message: string(), + details: object({}) + }) + ]); + /** + * Business success/failure result schema (generic, reusable). + * @param value - Schema for the business value. + * @returns Schema for RpcResult. + */ + function rpcResultSchema(value) { + return union([object({ + ok: literal(true), + value + }), object({ + ok: literal(false), + error: rpcErrorSchema + })]); + } + discriminatedUnion("type", [ + object({ + type: literal("client-request"), + rpcId: rpcIdSchema, + method: string(), + payload: unknown() + }), + object({ + type: literal("server-response"), + rpcId: rpcIdSchema, + result: rpcResultSchema(unknown().optional()) + }), + object({ + type: literal("server-request"), + rpcId: rpcIdSchema, + method: string(), + payload: unknown() + }), + object({ + type: literal("client-response"), + rpcId: rpcIdSchema, + result: rpcResultSchema(unknown().optional()) + }) + ]); + union([object({ accepted: literal(true) }), object({ + accepted: literal(false), + reason: union([literal("not-pending"), literal("bad-response")]) + })]); + //#endregion + //#region ../../../node_modules/.pnpm/zustand@4.4.7_@types+react@18.3.31_immer@10.2.0_react@18.3.1/node_modules/zustand/esm/vanilla.mjs + const createStoreImpl = (createState) => { + let state; + const listeners = /* @__PURE__ */ new Set(); + const setState = (partial, replace) => { + const nextState = typeof partial === "function" ? partial(state) : partial; + if (!Object.is(nextState, state)) { + const previousState = state; + state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState); + listeners.forEach((listener) => listener(state, previousState)); + } + }; + const getState = () => state; + const subscribe = (listener) => { + listeners.add(listener); + return () => listeners.delete(listener); + }; + const destroy = () => { + listeners.clear(); + }; + const api = { + setState, + getState, + subscribe, + destroy + }; + state = createState(setState, getState, api); + return api; + }; + const createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl; + //#endregion + //#region ../../../node_modules/.pnpm/zustand@4.4.7_@types+react@18.3.31_immer@10.2.0_react@18.3.1/node_modules/zustand/esm/middleware.mjs + const subscribeWithSelectorImpl = (fn) => (set, get, api) => { + const origSubscribe = api.subscribe; + api.subscribe = (selector, optListener, options) => { + let listener = selector; + if (optListener) { + const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is; + let currentSlice = selector(api.getState()); + listener = (state) => { + const nextSlice = selector(state); + if (!equalityFn(currentSlice, nextSlice)) { + const previousSlice = currentSlice; + optListener(currentSlice = nextSlice, previousSlice); + } + }; + if (options == null ? void 0 : options.fireImmediately) optListener(currentSlice, currentSlice); + } + return origSubscribe(listener); + }; + return fn(set, get, api); + }; + const subscribeWithSelector = subscribeWithSelectorImpl; + //#endregion + //#region ../../../node_modules/.pnpm/zustand@4.4.7_@types+react@18.3.31_immer@10.2.0_react@18.3.1/node_modules/zustand/esm/shallow.mjs + function shallow$1(objA, objB) { + if (Object.is(objA, objB)) return true; + if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) return false; + if (objA instanceof Map && objB instanceof Map) { + if (objA.size !== objB.size) return false; + for (const [key, value] of objA) if (!Object.is(value, objB.get(key))) return false; + return true; + } + if (objA instanceof Set && objB instanceof Set) { + if (objA.size !== objB.size) return false; + for (const value of objA) if (!objB.has(value)) return false; + return true; + } + const keysA = Object.keys(objA); + if (keysA.length !== Object.keys(objB).length) return false; + for (let i = 0; i < keysA.length; i++) if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) return false; + return true; + } + //#endregion + //#region ../../../node_modules/.pnpm/immer@10.2.0/node_modules/immer/dist/immer.mjs + var NOTHING = Symbol.for("immer-nothing"); + var DRAFTABLE = Symbol.for("immer-draftable"); + var DRAFT_STATE = Symbol.for("immer-state"); + function die(error, ...args) { + throw new Error(`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`); + } + var getPrototypeOf = Object.getPrototypeOf; + function isDraft(value) { + return !!value && !!value[DRAFT_STATE]; + } + function isDraftable(value) { + if (!value) return false; + return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value); + } + var objectCtorString = Object.prototype.constructor.toString(); + var cachedCtorStrings = /* @__PURE__ */ new WeakMap(); + function isPlainObject(value) { + if (!value || typeof value !== "object") return false; + const proto = Object.getPrototypeOf(value); + if (proto === null || proto === Object.prototype) return true; + const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor; + if (Ctor === Object) return true; + if (typeof Ctor !== "function") return false; + let ctorString = cachedCtorStrings.get(Ctor); + if (ctorString === void 0) { + ctorString = Function.toString.call(Ctor); + cachedCtorStrings.set(Ctor, ctorString); + } + return ctorString === objectCtorString; + } + function each(obj, iter, strict = true) { + if (getArchtype(obj) === 0) (strict ? Reflect.ownKeys(obj) : Object.keys(obj)).forEach((key) => { + iter(key, obj[key], obj); + }); + else obj.forEach((entry, index) => iter(index, entry, obj)); + } + function getArchtype(thing) { + const state = thing[DRAFT_STATE]; + return state ? state.type_ : Array.isArray(thing) ? 1 : isMap(thing) ? 2 : isSet(thing) ? 3 : 0; + } + function has(thing, prop) { + return getArchtype(thing) === 2 ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop); + } + function set(thing, propOrOldValue, value) { + const t = getArchtype(thing); + if (t === 2) thing.set(propOrOldValue, value); + else if (t === 3) thing.add(value); + else thing[propOrOldValue] = value; + } + function is(x, y) { + if (x === y) return x !== 0 || 1 / x === 1 / y; + else return x !== x && y !== y; + } + function isMap(target) { + return target instanceof Map; + } + function isSet(target) { + return target instanceof Set; + } + function latest(state) { + return state.copy_ || state.base_; + } + function shallowCopy(base, strict) { + if (isMap(base)) return new Map(base); + if (isSet(base)) return new Set(base); + if (Array.isArray(base)) return Array.prototype.slice.call(base); + const isPlain = isPlainObject(base); + if (strict === true || strict === "class_only" && !isPlain) { + const descriptors = Object.getOwnPropertyDescriptors(base); + delete descriptors[DRAFT_STATE]; + let keys = Reflect.ownKeys(descriptors); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const desc = descriptors[key]; + if (desc.writable === false) { + desc.writable = true; + desc.configurable = true; + } + if (desc.get || desc.set) descriptors[key] = { + configurable: true, + writable: true, + enumerable: desc.enumerable, + value: base[key] + }; + } + return Object.create(getPrototypeOf(base), descriptors); + } else { + const proto = getPrototypeOf(base); + if (proto !== null && isPlain) return { ...base }; + return Object.assign(Object.create(proto), base); + } + } + function freeze(obj, deep = false) { + if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj; + if (getArchtype(obj) > 1) Object.defineProperties(obj, { + set: dontMutateMethodOverride, + add: dontMutateMethodOverride, + clear: dontMutateMethodOverride, + delete: dontMutateMethodOverride + }); + Object.freeze(obj); + if (deep) Object.values(obj).forEach((value) => freeze(value, true)); + return obj; + } + function dontMutateFrozenCollections() { + die(2); + } + var dontMutateMethodOverride = { value: dontMutateFrozenCollections }; + function isFrozen(obj) { + if (obj === null || typeof obj !== "object") return true; + return Object.isFrozen(obj); + } + var plugins = {}; + function getPlugin(pluginKey) { + const plugin = plugins[pluginKey]; + if (!plugin) die(0, pluginKey); + return plugin; + } + var currentScope; + function getCurrentScope() { + return currentScope; + } + function createScope$1(parent_, immer_) { + return { + drafts_: [], + parent_, + immer_, + canAutoFreeze_: true, + unfinalizedDrafts_: 0 + }; + } + function usePatchesInScope(scope, patchListener) { + if (patchListener) { + getPlugin("Patches"); + scope.patches_ = []; + scope.inversePatches_ = []; + scope.patchListener_ = patchListener; + } + } + function revokeScope(scope) { + leaveScope(scope); + scope.drafts_.forEach(revokeDraft); + scope.drafts_ = null; + } + function leaveScope(scope) { + if (scope === currentScope) currentScope = scope.parent_; + } + function enterScope(immer2) { + return currentScope = createScope$1(currentScope, immer2); + } + function revokeDraft(draft) { + const state = draft[DRAFT_STATE]; + if (state.type_ === 0 || state.type_ === 1) state.revoke_(); + else state.revoked_ = true; + } + function processResult(result, scope) { + scope.unfinalizedDrafts_ = scope.drafts_.length; + const baseDraft = scope.drafts_[0]; + if (result !== void 0 && result !== baseDraft) { + if (baseDraft[DRAFT_STATE].modified_) { + revokeScope(scope); + die(4); + } + if (isDraftable(result)) { + result = finalize(scope, result); + if (!scope.parent_) maybeFreeze(scope, result); + } + if (scope.patches_) getPlugin("Patches").generateReplacementPatches_(baseDraft[DRAFT_STATE].base_, result, scope.patches_, scope.inversePatches_); + } else result = finalize(scope, baseDraft, []); + revokeScope(scope); + if (scope.patches_) scope.patchListener_(scope.patches_, scope.inversePatches_); + return result !== NOTHING ? result : void 0; + } + function finalize(rootScope, value, path) { + if (isFrozen(value)) return value; + const useStrictIteration = rootScope.immer_.shouldUseStrictIteration(); + const state = value[DRAFT_STATE]; + if (!state) { + each(value, (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path), useStrictIteration); + return value; + } + if (state.scope_ !== rootScope) return value; + if (!state.modified_) { + maybeFreeze(rootScope, state.base_, true); + return state.base_; + } + if (!state.finalized_) { + state.finalized_ = true; + state.scope_.unfinalizedDrafts_--; + const result = state.copy_; + let resultEach = result; + let isSet2 = false; + if (state.type_ === 3) { + resultEach = new Set(result); + result.clear(); + isSet2 = true; + } + each(resultEach, (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2), useStrictIteration); + maybeFreeze(rootScope, result, false); + if (path && rootScope.patches_) getPlugin("Patches").generatePatches_(state, path, rootScope.patches_, rootScope.inversePatches_); + } + return state.copy_; + } + function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) { + if (childValue == null) return; + if (typeof childValue !== "object" && !targetIsSet) return; + const childIsFrozen = isFrozen(childValue); + if (childIsFrozen && !targetIsSet) return; + if (isDraft(childValue)) { + const res = finalize(rootScope, childValue, rootPath && parentState && parentState.type_ !== 3 && !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0); + set(targetObject, prop, res); + if (isDraft(res)) rootScope.canAutoFreeze_ = false; + else return; + } else if (targetIsSet) targetObject.add(childValue); + if (isDraftable(childValue) && !childIsFrozen) { + if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) return; + if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) return; + finalize(rootScope, childValue); + if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop))) maybeFreeze(rootScope, childValue); + } + } + function maybeFreeze(scope, value, deep = false) { + if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) freeze(value, deep); + } + function createProxyProxy(base, parent) { + const isArray = Array.isArray(base); + const state = { + type_: isArray ? 1 : 0, + scope_: parent ? parent.scope_ : getCurrentScope(), + modified_: false, + finalized_: false, + assigned_: {}, + parent_: parent, + base_: base, + draft_: null, + copy_: null, + revoke_: null, + isManual_: false + }; + let target = state; + let traps = objectTraps; + if (isArray) { + target = [state]; + traps = arrayTraps; + } + const { revoke, proxy } = Proxy.revocable(target, traps); + state.draft_ = proxy; + state.revoke_ = revoke; + return proxy; + } + var objectTraps = { + get(state, prop) { + if (prop === DRAFT_STATE) return state; + const source = latest(state); + if (!has(source, prop)) return readPropFromProto(state, source, prop); + const value = source[prop]; + if (state.finalized_ || !isDraftable(value)) return value; + if (value === peek(state.base_, prop)) { + prepareCopy(state); + return state.copy_[prop] = createProxy(value, state); + } + return value; + }, + has(state, prop) { + return prop in latest(state); + }, + ownKeys(state) { + return Reflect.ownKeys(latest(state)); + }, + set(state, prop, value) { + const desc = getDescriptorFromProto(latest(state), prop); + if (desc?.set) { + desc.set.call(state.draft_, value); + return true; + } + if (!state.modified_) { + const current2 = peek(latest(state), prop); + const currentState = current2?.[DRAFT_STATE]; + if (currentState && currentState.base_ === value) { + state.copy_[prop] = value; + state.assigned_[prop] = false; + return true; + } + if (is(value, current2) && (value !== void 0 || has(state.base_, prop))) return true; + prepareCopy(state); + markChanged(state); + } + if (state.copy_[prop] === value && (value !== void 0 || prop in state.copy_) || Number.isNaN(value) && Number.isNaN(state.copy_[prop])) return true; + state.copy_[prop] = value; + state.assigned_[prop] = true; + return true; + }, + deleteProperty(state, prop) { + if (peek(state.base_, prop) !== void 0 || prop in state.base_) { + state.assigned_[prop] = false; + prepareCopy(state); + markChanged(state); + } else delete state.assigned_[prop]; + if (state.copy_) delete state.copy_[prop]; + return true; + }, + getOwnPropertyDescriptor(state, prop) { + const owner = latest(state); + const desc = Reflect.getOwnPropertyDescriptor(owner, prop); + if (!desc) return desc; + return { + writable: true, + configurable: state.type_ !== 1 || prop !== "length", + enumerable: desc.enumerable, + value: owner[prop] + }; + }, + defineProperty() { + die(11); + }, + getPrototypeOf(state) { + return getPrototypeOf(state.base_); + }, + setPrototypeOf() { + die(12); + } + }; + var arrayTraps = {}; + each(objectTraps, (key, fn) => { + arrayTraps[key] = function() { + arguments[0] = arguments[0][0]; + return fn.apply(this, arguments); + }; + }); + arrayTraps.deleteProperty = function(state, prop) { + return arrayTraps.set.call(this, state, prop, void 0); + }; + arrayTraps.set = function(state, prop, value) { + return objectTraps.set.call(this, state[0], prop, value, state[0]); + }; + function peek(draft, prop) { + const state = draft[DRAFT_STATE]; + return (state ? latest(state) : draft)[prop]; + } + function readPropFromProto(state, source, prop) { + const desc = getDescriptorFromProto(source, prop); + return desc ? `value` in desc ? desc.value : desc.get?.call(state.draft_) : void 0; + } + function getDescriptorFromProto(source, prop) { + if (!(prop in source)) return void 0; + let proto = getPrototypeOf(source); + while (proto) { + const desc = Object.getOwnPropertyDescriptor(proto, prop); + if (desc) return desc; + proto = getPrototypeOf(proto); + } + } + function markChanged(state) { + if (!state.modified_) { + state.modified_ = true; + if (state.parent_) markChanged(state.parent_); + } + } + function prepareCopy(state) { + if (!state.copy_) state.copy_ = shallowCopy(state.base_, state.scope_.immer_.useStrictShallowCopy_); + } + var Immer2 = class { + constructor(config) { + this.autoFreeze_ = true; + this.useStrictShallowCopy_ = false; + this.useStrictIteration_ = true; + /** + * The `produce` function takes a value and a "recipe function" (whose + * return value often depends on the base state). The recipe function is + * free to mutate its first argument however it wants. All mutations are + * only ever applied to a __copy__ of the base state. + * + * Pass only a function to create a "curried producer" which relieves you + * from passing the recipe function every time. + * + * Only plain objects and arrays are made mutable. All other objects are + * considered uncopyable. + * + * Note: This function is __bound__ to its `Immer` instance. + * + * @param {any} base - the initial state + * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified + * @param {Function} patchListener - optional function that will be called with all the patches produced here + * @returns {any} a new state, or the initial state if nothing was modified + */ + this.produce = (base, recipe, patchListener) => { + if (typeof base === "function" && typeof recipe !== "function") { + const defaultBase = recipe; + recipe = base; + const self = this; + return function curriedProduce(base2 = defaultBase, ...args) { + return self.produce(base2, (draft) => recipe.call(this, draft, ...args)); + }; + } + if (typeof recipe !== "function") die(6); + if (patchListener !== void 0 && typeof patchListener !== "function") die(7); + let result; + if (isDraftable(base)) { + const scope = enterScope(this); + const proxy = createProxy(base, void 0); + let hasError = true; + try { + result = recipe(proxy); + hasError = false; + } finally { + if (hasError) revokeScope(scope); + else leaveScope(scope); + } + usePatchesInScope(scope, patchListener); + return processResult(result, scope); + } else if (!base || typeof base !== "object") { + result = recipe(base); + if (result === void 0) result = base; + if (result === NOTHING) result = void 0; + if (this.autoFreeze_) freeze(result, true); + if (patchListener) { + const p = []; + const ip = []; + getPlugin("Patches").generateReplacementPatches_(base, result, p, ip); + patchListener(p, ip); + } + return result; + } else die(1, base); + }; + this.produceWithPatches = (base, recipe) => { + if (typeof base === "function") return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args)); + let patches, inversePatches; + return [ + this.produce(base, recipe, (p, ip) => { + patches = p; + inversePatches = ip; + }), + patches, + inversePatches + ]; + }; + if (typeof config?.autoFreeze === "boolean") this.setAutoFreeze(config.autoFreeze); + if (typeof config?.useStrictShallowCopy === "boolean") this.setUseStrictShallowCopy(config.useStrictShallowCopy); + if (typeof config?.useStrictIteration === "boolean") this.setUseStrictIteration(config.useStrictIteration); + } + createDraft(base) { + if (!isDraftable(base)) die(8); + if (isDraft(base)) base = current(base); + const scope = enterScope(this); + const proxy = createProxy(base, void 0); + proxy[DRAFT_STATE].isManual_ = true; + leaveScope(scope); + return proxy; + } + finishDraft(draft, patchListener) { + const state = draft && draft[DRAFT_STATE]; + if (!state || !state.isManual_) die(9); + const { scope_: scope } = state; + usePatchesInScope(scope, patchListener); + return processResult(void 0, scope); + } + /** + * Pass true to automatically freeze all copies created by Immer. + * + * By default, auto-freezing is enabled. + */ + setAutoFreeze(value) { + this.autoFreeze_ = value; + } + /** + * Pass true to enable strict shallow copy. + * + * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties. + */ + setUseStrictShallowCopy(value) { + this.useStrictShallowCopy_ = value; + } + /** + * Pass false to use faster iteration that skips non-enumerable properties + * but still handles symbols for compatibility. + * + * By default, strict iteration is enabled (includes all own properties). + */ + setUseStrictIteration(value) { + this.useStrictIteration_ = value; + } + shouldUseStrictIteration() { + return this.useStrictIteration_; + } + applyPatches(base, patches) { + let i; + for (i = patches.length - 1; i >= 0; i--) { + const patch = patches[i]; + if (patch.path.length === 0 && patch.op === "replace") { + base = patch.value; + break; + } + } + if (i > -1) patches = patches.slice(i + 1); + const applyPatchesImpl = getPlugin("Patches").applyPatches_; + if (isDraft(base)) return applyPatchesImpl(base, patches); + return this.produce(base, (draft) => applyPatchesImpl(draft, patches)); + } + }; + function createProxy(value, parent) { + const draft = isMap(value) ? getPlugin("MapSet").proxyMap_(value, parent) : isSet(value) ? getPlugin("MapSet").proxySet_(value, parent) : createProxyProxy(value, parent); + (parent ? parent.scope_ : getCurrentScope()).drafts_.push(draft); + return draft; + } + function current(value) { + if (!isDraft(value)) die(10, value); + return currentImpl(value); + } + function currentImpl(value) { + if (!isDraftable(value) || isFrozen(value)) return value; + const state = value[DRAFT_STATE]; + let copy; + let strict = true; + if (state) { + if (!state.modified_) return state.base_; + state.finalized_ = true; + copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_); + strict = state.scope_.immer_.shouldUseStrictIteration(); + } else copy = shallowCopy(value, true); + each(copy, (key, childValue) => { + set(copy, key, currentImpl(childValue)); + }, strict); + if (state) state.finalized_ = false; + return copy; + } + var produce = new Immer2().produce; + //#endregion + //#region lib/types/client/contract/store.js + /** + * Snapshot store engine (zustand vanilla + immer + subscribeWithSelector + + * rafFlush middleware + opt-in persist + dev freeze) plus the declarative + * shell over it: {@link defineStore} bakes an init/persist/actions literal + * into a {@link StoreHandle}, the registration-side store seat of slot + * terminals. Lives in the React-free runtime (the data layer owns its + * engine; web-react is shell-only React + * glue): engine products are bare observables — subscribe/getSnapshot/ + * update/set, NO selector hook. Hook synthesis is web-react's (the one + * uSES bridge, cached per source at the binding site). + */ + /** + * Shallow equality for selector slices (zustand/shallow semantics; travels + * with the engine so hook consumers need no zustand dependency). + * @param a - left value. + * @param b - right value. + * @returns whether the values are shallowly equal. + */ + function shallowEqual(a, b) { + return shallow$1(a, b); + } + /** Batches subscriber notification into one flush per animation frame. */ + function rafBatch(notify) { + const schedule = typeof requestAnimationFrame === "function" ? (fn) => { + requestAnimationFrame(() => { + fn(); + }); + } : (fn) => { + queueMicrotask(fn); + }; + let scheduled = false; + return () => { + if (scheduled) return; + scheduled = true; + schedule(() => { + scheduled = false; + notify(); + }); + }; + } + /** + * Create a snapshot store. + * + * Flush default is 'sync' (controlled inputs need same-tick echo); frame-driven + * stores opt into 'raf', where a frame's worth of updates coalesces into one + * notification. Known raf-mode tradeoff: a component mounting mid-frame reads + * fresh state while existing subscribers hear it next flush — transient + * frame-level skew, same nature as the object layer's microtask batching. + * + * @param init - initial state. + * @param opts - flush mode and opt-in persistence (localStorage, keyed by name). + * @returns the store. + */ + function createSnapshotStore(init, opts) { + const withSelector = subscribeWithSelector(() => init); + const api = createStore()(withSelector); + if (opts?.persist) attachPersistence(api, opts.persist.name); + let subscribe = (fn) => api.subscribe(fn); + if (opts?.flush === "raf") { + const listeners = /* @__PURE__ */ new Set(); + const flush = rafBatch(() => { + for (const fn of [...listeners]) fn(); + }); + api.subscribe(flush); + subscribe = (fn) => { + listeners.add(fn); + return () => { + listeners.delete(fn); + }; + }; + } + return { + getSnapshot: () => api.getState(), + subscribe: (fn) => subscribe(fn), + update: (mutator) => { + api.setState(produce(api.getState(), (draft) => { + mutator(draft); + }), true); + }, + set: (next) => { + api.setState(devFreeze(next), true); + } + }; + } + /** + * Whole-value JSON persistence to localStorage. Hand-rolled instead of the + * zustand persist middleware: its write path spreads state into an object + * (`partialize({ ...get() })`), exploding primitive state (a persisted string + * draft becomes {0:'h',1:'e',...}) — not fixable via merge/deserialize options + * because the corruption happens before serialization. Storage failures + * (quota, private mode) only disable persistence, never break the store. + */ + function attachPersistence(api, name) { + if (typeof localStorage === "undefined") return; + try { + const raw = localStorage.getItem(name); + if (raw !== null) api.setState(devFreeze(JSON.parse(raw)), true); + } catch (error) { + console.error(`snapshot store '${name}' rehydration failed:`, error); + } + api.subscribe((state) => { + try { + localStorage.setItem(name, JSON.stringify(state)); + } catch (error) { + console.error(`snapshot store '${name}' persistence failed:`, error); + } + }); + } + /** Deep-freeze wholesale-set state outside production: set() bypasses immer's freeze. */ + function devFreeze(value) { + return value; + } + /** + * Declare a store: initial state, optional persistence, and the full write + * set as pure draft mutators. The returned handle is the registration + * currency of the store seat — its identity keys instance sharing. Satisfies + * ui-slots' DefineStore contract (the handle/instance are the engine-extended + * subtypes). + * + * The `A & ActionsDecl` actions position is load-bearing: T resolves from + * `init` in the first inference round, and the intersection then contextually + * types each mutator's draft parameter (context-sensitive functions defer), + * so call sites write `(d, x: X) => { ... }` with no draft annotation. If a + * future TS version breaks this single-literal inference, the design's + * documented fallback is currying (`defineStore(init).actions({...})`). + * @param decl - init lambda (fresh state per instance), optional persist key, actions table. + * @returns the store handle. + */ + function defineStore(decl) { + return { + spec: decl, + create(scopeKey) { + const persistKey = decl.persist === void 0 ? void 0 : scopeKey === void 0 ? decl.persist : `${decl.persist}.${scopeKey}`; + const store = createSnapshotStore(decl.init(), persistKey !== void 0 ? { persist: { name: persistKey } } : void 0); + const actions = {}; + for (const key of Object.keys(decl.actions)) { + const mutate = decl.actions[key]; + actions[key] = (...params) => { + store.update((draft) => { + mutate(draft, ...params); + }); + }; + } + return { + actions, + getSnapshot: () => store.getSnapshot(), + subscribe: (fn) => store.subscribe(fn), + store, + clearPersisted: () => { + if (persistKey === void 0 || typeof localStorage === "undefined") return; + try { + localStorage.removeItem(persistKey); + } catch {} + } + }; + } + }; + } + //#endregion + //#region lib/types/client/agents/scope.js + /** + * Client Agent-scope primitive: mint a Cordis context tagged with the owning + * Agent's identity. The mechanism mirrors the host `dsh-scope` architecture + * (no-op plugin fiber + context tag + `Context.filter` routing predicate); + * the shape deliberately diverges: the filter lives on the actx itself + * instead of a separate carrier object, so scoped dispatch is plain cordis — + * `actx.bail(actx, event, payload)` / `actx.emit(actx, ...)` — with no + * wrapper. The host needs a detached carrier because its dispatch subject is + * the business Agent object; client scope events carry only ids, so the + * actx is the natural subject. The second divergence stands: the scope key + * is the branded `SessionId` (value compared), not an object identity — the + * agent and its session share one id (1:1, same axis; no separate AgentId + * brand), and a client scope's identity IS that wire id. Third divergence, + * deliberate: the client scopes the Agent IDENTITY, not a live Agent object + * — a cold session's host Agent is already disposed while its client actx + * stays alive for history viewing. + */ + /** Context tag written by {@link createScope}. */ + const kScope = Symbol("dsh.client.scope"); + /** Shared no-op plugin backing each Agent scope fiber. */ + function agentScope() {} + /** + * Mint an Agent scope under `ctx`: a no-op plugin fiber whose context + * carries the agent tag and the dispatch filter — untagged listeners are + * admitted globally, tagged listeners only for a matching agent. + * Registrations through the returned ctx dispose with the fiber. + * @param ctx - client root context the scope fiber mounts under. + * @param key - owning agent identity (the routing tag; agent id === session id). + * @returns the tagged context and its backing fiber. + */ + function createScope(ctx, key) { + const fiber = ctx.plugin(agentScope); + return { + fiber, + ctx: fiber.ctx.extend({ + [kScope]: key, + [_deepseek_ai_cordis.Context.filter](listenerCtx) { + const tag = scopeOf(listenerCtx); + return tag === void 0 || tag === key; + } + }) + }; + } + /** + * Read the nearest agent tag inherited by a context. + * @param ctx - any client context. + * @returns its agent identity (the session id), or undefined for root contexts. + */ + function scopeOf(ctx) { + return ctx[kScope]; + } + //#endregion + //#region lib/types/client/ordered-baseline.js + /** + * Merge an authoritative baseline without moving identities already visible to + * the client. Baseline-only identities are inserted relative to the nearest + * following known identity; identities absent from the baseline are removed. + * + * @param current - the established client order. + * @param baseline - the latest authoritative rows. + * @param keyOf - stable identity selector. + * @returns baseline-valued rows with the established relative order retained. + */ + function mergeOrderedBaseline(current, baseline, keyOf) { + const baselineByKey = /* @__PURE__ */ new Map(); + for (const value of baseline) baselineByKey.set(keyOf(value), value); + const merged = current.map((value) => baselineByKey.get(keyOf(value))).filter((value) => value !== void 0); + const mergedKeys = new Set(merged.map(keyOf)); + for (let index = 0; index < baseline.length; index++) { + const value = baseline[index]; + /* v8 ignore next -- dense-array guard: index is bounded by baseline.length. */ + if (value === void 0 || mergedKeys.has(keyOf(value))) continue; + let insertion = merged.length; + for (let following = index + 1; following < baseline.length; following++) { + const candidate = baseline[following]; + /* v8 ignore next -- dense-array guard: following is bounded by baseline.length. */ + if (candidate === void 0) continue; + const known = merged.findIndex((item) => keyOf(item) === keyOf(candidate)); + if (known !== -1) { + insertion = known; + break; + } + } + merged.splice(insertion, 0, value); + mergedKeys.add(keyOf(value)); + } + return merged; + } + //#endregion + //#region lib/types/client/sessions/lineage.js + /** + * Summaries -> flat list with lineage indentation. Root and sibling order + * follows the established input order; this projection never re-sorts a + * hydrated list from mutable timestamps. + * @param summaries - the host's session.list items. + * @param pendingInteractions - current manager-owned interaction status by session. + * @param completed - sessions with a pending completion reminder (manager-owned live fact; absent = false). + * @returns display rows in render order. + */ + function flattenLineage(summaries, pendingInteractions, completed) { + const byId = /* @__PURE__ */ new Map(); + for (const s of summaries) byId.set(s.sessionId, s); + const children = /* @__PURE__ */ new Map(); + const roots = []; + for (const s of summaries) if (s.parentSessionId !== void 0 && byId.has(s.parentSessionId)) { + const list = children.get(s.parentSessionId) ?? []; + list.push(s); + children.set(s.parentSessionId, list); + } else roots.push(s); + const out = []; + const visited = /* @__PURE__ */ new Set(); + const walk = (s, depth) => { + if (visited.has(s.sessionId)) { + console.warn(`[web-runtime] lineage cycle at ${s.sessionId}; emitting as root`); + return; + } + visited.add(s.sessionId); + const pendingInteraction = pendingInteractions?.get(s.sessionId); + out.push({ + ...s, + ...pendingInteraction === void 0 ? {} : { pendingInteraction }, + completed: completed?.has(s.sessionId) ?? false, + depth + }); + const kids = children.get(s.sessionId); + if (kids === void 0) return; + for (const kid of kids) walk(kid, depth + 1); + }; + for (const root of roots) walk(root, 0); + for (const s of summaries) if (!visited.has(s.sessionId)) walk(s, 0); + return out; + } + //#endregion + //#region lib/types/client/sessions/notifier.js + /** Subscription + batched notification primitive (shared by Session and SessionManager). */ + var Notifier = class { + rebuild; + listeners = /* @__PURE__ */ new Set(); + dirty = false; + notifyPending = false; + scheduled = "none"; + scheduleGeneration = 0; + /** @param rebuild - snapshot rebuild function injected by the owner (writes the owner's snapshotCache). */ + constructor(rebuild) { + this.rebuild = rebuild; + } + /** + * uSES subscription entry. + * @param listener - change callback. + * @returns the unsubscribe function. + */ + subscribe(listener) { + this.listeners.add(listener); + return () => { + this.listeners.delete(listener); + }; + } + /** State-change entry: mark dirty and schedule the batched flush. */ + markDirty() { + this.dirty = true; + this.notifyPending = true; + if (this.scheduled === "microtask") return; + this.schedule("microtask"); + } + /** Stream-change entry: mark dirty and publish the cumulative state at most once per frame. */ + markFrameDirty() { + this.dirty = true; + this.notifyPending = true; + if (this.scheduled !== "none") return; + this.schedule(typeof globalThis.requestAnimationFrame === "function" ? "frame" : "microtask"); + } + /** + * Synchronous flush: controlled-input writes must notify in the same tick as + * onChange, or React rolls the DOM back to the stale value and the caret jumps to the end. + */ + notifyNow() { + this.dirty = true; + this.notifyPending = true; + this.invalidateSchedule(); + this.flush(); + } + /** + * Pre-getSnapshot check: rebuild synchronously when dirty (read path + * before first subscribe / while unobserved). Notification stays pending. + */ + ensureFresh() { + if (!this.dirty) return; + this.dirty = false; + this.rebuild(); + } + schedule(kind) { + const generation = ++this.scheduleGeneration; + this.scheduled = kind; + const publish = () => { + if (generation !== this.scheduleGeneration) return; + this.scheduled = "none"; + this.flush(); + }; + if (kind === "frame") globalThis.requestAnimationFrame(publish); + else queueMicrotask(publish); + } + invalidateSchedule() { + this.scheduleGeneration++; + this.scheduled = "none"; + } + flush() { + if (!this.notifyPending) return; + if (this.listeners.size === 0) return; + this.notifyPending = false; + if (this.dirty) { + this.dirty = false; + this.rebuild(); + } + for (const listener of this.listeners) listener(); + } + }; + //#endregion + //#region lib/types/client/sessions/projection-store.js + /** + * One session's projection values. Framework semantics, uniform across every + * key: a baseline seeds rows at its cut, a push frame updates one row, and in + * both paths a lower-or-equal seq loses — a replayed frame cannot regress a + * value, a stale baseline cannot overwrite a newer frame. A key the store has + * never seen reads `undefined` (capability absent). Faces are identity-stable + * per key (create-on-demand, cached) so the React side binds each exactly + * once; the store-level channel (`subscribeAny`) serves coarse consumers (the + * manager's list projection reads the `title` key). + */ + var ProjectionValueStore = class { + rows = /* @__PURE__ */ new Map(); + channels = /* @__PURE__ */ new Map(); + valuesCache; + /** Coarse any-key channel (no snapshot cache to rebuild: reads hit rows directly). */ + anyNotifier = new Notifier(() => {}); + /** + * Key-addressed bare observable face (the useProjection resolution path). + * Always defined — absence is an `undefined` snapshot, never a missing + * face, so a component may subscribe before the key ever carries a value. + * @param key - projection key. + * @returns the identity-stable face for this key. + */ + faceOf(key) { + return this.channel(key).face; + } + /** + * Current whole value for a key (erased framework read; typed reads go + * through `useProjection`'s map lookup). + * @param key - projection key. + * @returns the value, or undefined while the key is absent. + */ + get(key) { + return this.rows.get(key)?.value; + } + /** + * Read every current projection value as one reference-stable snapshot. + * @returns The same frozen value map until a row changes. + */ + values() { + if (this.valuesCache === void 0) this.valuesCache = Object.freeze(Object.fromEntries([...this.rows].map(([key, row]) => [key, row.value]))); + return this.valuesCache; + } + /** + * Subscribe to any-key changes (microtask-batched) — the manager's list + * rebuild channel. + * @param listener - change callback. + * @returns the unsubscribe function. + */ + subscribeAny(listener) { + return this.anyNotifier.subscribe(listener); + } + /** + * Apply one finished value (the `session/projection` push-frame path). + * @param key - projection key. + * @param value - whole value computed by the host unit. + * @param seq - the unit's watermark at emission. + */ + apply(key, value, seq) { + const row = this.rows.get(key); + if (row !== void 0 && seq <= row.seq) return; + this.rows.set(key, { + value, + seq + }); + this.changed(key); + } + /** + * Seed from a history tail page's projections block: every carried key + * lands under the same seq rule as frames; a key the block omits is + * capability-absent as of the cut — its row clears unless a newer frame + * already superseded the cut (a stale baseline can neither overwrite nor + * clear newer values). + * @param baseline - the response's projections block. + */ + seed(baseline) { + const values = baseline.values; + for (const key of Object.keys(values)) this.apply(key, values[key], baseline.asOfSeq); + for (const [key, row] of this.rows) { + if (Object.hasOwn(values, key)) continue; + if (row.seq > baseline.asOfSeq) continue; + this.rows.delete(key); + this.changed(key); + } + } + /** + * Drop rows past a mux-generation baseline (`session/subscribed.lastSeq`): + * a row claiming knowledge beyond the host's own durable baseline rode + * state a restart lost — under last-wins it would wrongly outrank the + * host's recomputed (lower-seq) values forever. Durable replay and the next + * baseline re-seed whatever truly survived (the title-snapshot precedent, + * generalized). + * @param lastSeq - the subscribed frame's durable baseline seq. + */ + truncate(lastSeq) { + for (const [key, row] of this.rows) { + if (row.seq <= lastSeq) continue; + this.rows.delete(key); + this.changed(key); + } + } + changed(key) { + this.valuesCache = void 0; + this.channels.get(key)?.notifier.markDirty(); + this.anyNotifier.markDirty(); + } + channel(key) { + let channel = this.channels.get(key); + if (channel === void 0) { + const notifier = new Notifier(() => {}); + channel = { + notifier, + face: { + getSnapshot: () => this.rows.get(key)?.value, + subscribe: (listener) => notifier.subscribe(listener) + } + }; + this.channels.set(key, channel); + } + return channel; + } + }; + //#endregion + //#region lib/types/client/contract/conversation.js + /** + * Build a stable collision-free key for one Definition-local business identity. + * @param kind - Definition kind. + * @param id - Definition-local business identity. + * @returns engine-owned Context key. + */ + function conversationContextKey(kind, id) { + return `${kind.length}:${kind}${id}`; + } + //#endregion + //#region lib/types/client/sessions/conversation-location-index.js + var MutableLocationDataStore = class { + entries = /* @__PURE__ */ new Map(); + get(key) { + return this.entries.get(key)?.value; + } + remove(owner, key) { + if (this.entries.get(key)?.owner !== owner) return false; + this.entries.delete(key); + return true; + } + set(owner, key, value) { + const current = this.entries.get(key); + if (current !== void 0 && current.owner !== owner) throw new Error(`conversation Location data "${key}" is already owned by ${current.owner}`); + if (current?.value === value) return false; + this.entries.set(key, { + owner, + value + }); + return true; + } + replace(entries) { + let changed = this.entries.size !== entries.size; + if (!changed) for (const [key, value] of entries) { + const current = this.entries.get(key); + if (current?.owner !== value.owner || current.value !== value.value) { + changed = true; + break; + } + } + if (changed) this.entries = new Map(entries); + return changed; + } + }; + const SESSION_LOCATION = { kind: "session" }; + const UNRESOLVED_LOCATION = { kind: "unresolved" }; + function payloadCoordinates(event) { + const data = event.data; + if (data.turn === null) return { session: true }; + const turn = Number.isSafeInteger(data.turn) && data.turn >= 0 ? data.turn : void 0; + const step = Number.isSafeInteger(data.step) && data.step >= 0 ? data.step : void 0; + return { + ...turn === void 0 ? {} : { turn }, + ...step === void 0 ? {} : { step } + }; + } + function sameReferences(left, right) { + return left.length === right.length && left.every((value, index) => value === right[index]); + } + function sameStep(left, right) { + return left !== void 0 && left.start === right.start && left.end === right.end && left.status === right.status && left.data === right.data; + } + function sameTurn(left, right) { + return left !== void 0 && left.start === right.start && left.end === right.end && left.status === right.status && left.data === right.data && sameReferences(left.steps, right.steps); + } + function sameLocation(left, right) { + if (left === void 0 || right === void 0 || left.kind !== right.kind) return left === right; + if (left.kind === "session" || left.kind === "unresolved") return true; + if (right.kind === "session" || right.kind === "unresolved") return false; + if (left.kind === "turn" || right.kind === "turn") return left.kind === "turn" && right.kind === "turn" && left.turn === right.turn; + return left.turn === right.turn && left.step === right.step; + } + /** Session-owned Turn/Step timeline and event-to-Location index. */ + var ConversationLocationIndex = class { + coordinates = /* @__PURE__ */ new Map(); + locations = /* @__PURE__ */ new Map(); + seqsByTurn = /* @__PURE__ */ new Map(); + timeline = { + turnOrder: [], + turns: /* @__PURE__ */ new Map() + }; + turnDataStores = /* @__PURE__ */ new Map(); + stepDataStores = /* @__PURE__ */ new Map(); + currentTurn; + currentStep; + /** + * Return the current reference-stable timeline. + * @returns current timeline snapshot. + */ + snapshot() { + return this.timeline; + } + /** + * Replace all Definition-owned Location values while preserving reader identities. + * @param entries - complete current set of Definition-owned Location values. + * @returns whether any published Location data changed. + */ + replaceData(entries) { + const turns = /* @__PURE__ */ new Map(); + const steps = /* @__PURE__ */ new Map(); + for (const { owner, data } of entries) { + const values = data.kind === "turn" ? turns.get(data.turn) ?? /* @__PURE__ */ new Map() : steps.get(stepDataKey(data.turn, requireStep(data))) ?? /* @__PURE__ */ new Map(); + const current = values.get(data.key); + if (current !== void 0 && current.owner !== owner) throw new Error(`conversation Location data "${data.key}" is already owned by ${current.owner}`); + values.set(data.key, { + owner, + value: data.value + }); + if (data.kind === "turn") turns.set(data.turn, values); + else steps.set(stepDataKey(data.turn, requireStep(data)), values); + } + let changed = false; + for (const turn of new Set([...this.turnDataStores.keys(), ...turns.keys()])) changed = this.mutableTurnData(turn).replace(turns.get(turn) ?? /* @__PURE__ */ new Map()) || changed; + for (const step of new Set([...this.stepDataStores.keys(), ...steps.keys()])) changed = this.mutableStepData(step).replace(steps.get(step) ?? /* @__PURE__ */ new Map()) || changed; + return changed; + } + /** + * Apply changed Context publications without rebuilding Turn/Step membership. + * @param changes - incremental removals and replacements from published Contexts. + * @returns whether any published Location data changed. + */ + applyData(changes) { + let changed = false; + for (const change of changes) { + const previous = change.previous; + if (previous === null) continue; + changed = this.storeFor(previous).remove(change.owner, previous.key) || changed; + } + for (const change of changes) { + const next = change.next; + if (next === null) continue; + changed = this.storeFor(next).set(change.owner, next.key, next.value) || changed; + } + return changed; + } + /** + * Resolve the latest Location for one event. + * @param event - event already ingested into this index. + * @returns current Location, falling back to session when it has no Turn/Step affinity. + */ + locationOf(event) { + return this.locations.get(event.seq) ?? SESSION_LOCATION; + } + /** + * Rebuild timeline facts after replace/prepend or a boundary append. + * @param entries - complete current window in ascending seq order. + * @returns seqs whose resolved Location changed. + */ + rebuild(entries) { + const previousLocations = this.locations; + const turns = /* @__PURE__ */ new Map(); + const coordinates = /* @__PURE__ */ new Map(); + let currentTurn; + let currentStep; + const turnDraft = (turn, seq) => { + let draft = turns.get(turn); + if (draft === void 0) { + draft = { + turn, + firstSeq: seq, + steps: /* @__PURE__ */ new Map() + }; + turns.set(turn, draft); + } else draft.firstSeq = Math.min(draft.firstSeq, seq); + return draft; + }; + const stepDraft = (turn, step, seq) => { + const owner = turnDraft(turn, seq); + let draft = owner.steps.get(step); + if (draft === void 0) { + draft = { + turn, + step, + firstSeq: seq + }; + owner.steps.set(step, draft); + } else draft.firstSeq = Math.min(draft.firstSeq, seq); + return draft; + }; + for (const { event } of entries) { + const explicit = payloadCoordinates(event); + if (event.type === "turn/start") { + currentTurn = event.data.turn; + currentStep = void 0; + } + if (event.type === "step/start") { + currentTurn = event.data.turn; + currentStep = event.data.step; + } + if (explicit.session !== true && explicit.turn !== void 0) { + if (currentTurn !== explicit.turn) currentStep = void 0; + currentTurn = explicit.turn; + if (explicit.step !== void 0) currentStep = explicit.step; + } + const turn = explicit.session === true ? void 0 : explicit.turn ?? currentTurn; + const step = explicit.session === true || event.type === "turn/start" || event.type === "turn/end" ? void 0 : explicit.step ?? (turn === currentTurn ? currentStep : void 0); + coordinates.set(event.seq, { + ...turn === void 0 ? {} : { turn }, + ...turn === void 0 || step === void 0 ? {} : { step } + }); + if (turn !== void 0) turnDraft(turn, event.seq); + if (turn !== void 0 && step !== void 0) stepDraft(turn, step, event.seq); + if (event.type === "turn/start") turnDraft(event.data.turn, event.seq).start = event; + else if (event.type === "turn/end") turnDraft(event.data.turn, event.seq).end = event; + else if (event.type === "step/start") stepDraft(event.data.turn, event.data.step, event.seq).start = event; + else if (event.type === "step/end") stepDraft(event.data.turn, event.data.step, event.seq).end = event; + if (event.type === "step/end" && currentTurn === event.data.turn && currentStep === event.data.step) currentStep = void 0; + if (event.type === "turn/end" && currentTurn === event.data.turn) { + currentTurn = void 0; + currentStep = void 0; + } + } + const previousTurns = this.timeline.turns; + const nextTurns = /* @__PURE__ */ new Map(); + const orderedDrafts = [...turns.values()].sort((left, right) => left.firstSeq - right.firstSeq); + for (const draft of orderedDrafts) { + const previousTurn = previousTurns.get(draft.turn); + const previousSteps = new Map(previousTurn?.steps.map((step) => [step.step, step]) ?? []); + const steps = [...draft.steps.values()].sort((left, right) => left.firstSeq - right.firstSeq).map((candidate) => { + const value = { + turn: candidate.turn, + step: candidate.step, + start: candidate.start, + end: candidate.end, + status: candidate.end !== void 0 ? "closed" : candidate.start === void 0 ? "unknown" : "open", + data: this.stepData(candidate.turn, candidate.step) + }; + const previous = previousSteps.get(candidate.step); + return sameStep(previous, value) ? previous : value; + }); + const value = { + turn: draft.turn, + start: draft.start, + end: draft.end, + status: draft.end !== void 0 ? "closed" : draft.start === void 0 ? "unknown" : "open", + steps, + data: this.turnData(draft.turn) + }; + nextTurns.set(draft.turn, sameTurn(previousTurn, value) ? previousTurn : value); + } + const nextOrder = orderedDrafts.map((draft) => draft.turn); + const turnOrder = this.timeline.turnOrder.length === nextOrder.length && this.timeline.turnOrder.every((turn, index) => turn === nextOrder[index]) ? this.timeline.turnOrder : nextOrder; + let sameMap = previousTurns.size === nextTurns.size; + if (sameMap) { + for (const [turn, value] of nextTurns) if (previousTurns.get(turn) !== value) { + sameMap = false; + break; + } + } + this.timeline = sameMap && turnOrder === this.timeline.turnOrder ? this.timeline : { + turnOrder, + turns: nextTurns + }; + this.coordinates = coordinates; + this.locations = /* @__PURE__ */ new Map(); + this.seqsByTurn = /* @__PURE__ */ new Map(); + for (const { event } of entries) { + const coordinates = this.coordinates.get(event.seq); + if (coordinates?.turn !== void 0) this.indexTurnSeq(coordinates.turn, event.seq); + this.locations.set(event.seq, this.resolve(event.seq)); + } + this.currentTurn = currentTurn; + this.currentStep = currentStep; + const changed = /* @__PURE__ */ new Set(); + for (const { event } of entries) if (!sameLocation(previousLocations.get(event.seq), this.locations.get(event.seq))) changed.add(event.seq); + return changed; + } + /** + * Append one Turn/Step boundary while revisiting only the owning Turn. + * @param event - contiguous tail boundary event. + * @returns seqs whose immutable Location reference changed. + */ + appendBoundary(event) { + if (event.type !== "turn/start" && event.type !== "turn/end" && event.type !== "step/start" && event.type !== "step/end") throw new Error(`conversation Location boundary expected, received ${event.type}`); + const explicit = payloadCoordinates(event); + if (event.type === "turn/start") { + this.currentTurn = event.data.turn; + this.currentStep = void 0; + } else if (event.type === "step/start") { + this.currentTurn = event.data.turn; + this.currentStep = event.data.step; + } + if (explicit.turn !== void 0) { + if (this.currentTurn !== explicit.turn) this.currentStep = void 0; + this.currentTurn = explicit.turn; + if (explicit.step !== void 0) this.currentStep = explicit.step; + } + const turnNumber = explicit.turn ?? this.currentTurn; + if (turnNumber === void 0) throw new Error(`conversation boundary ${event.type} has no turn`); + const stepNumber = event.type === "turn/start" || event.type === "turn/end" ? void 0 : explicit.step ?? (turnNumber === this.currentTurn ? this.currentStep : void 0); + this.coordinates.set(event.seq, { + turn: turnNumber, + ...stepNumber === void 0 ? {} : { step: stepNumber } + }); + this.indexTurnSeq(turnNumber, event.seq); + const previousTurn = this.timeline.turns.get(turnNumber); + let steps = previousTurn?.steps ?? []; + if (event.type === "step/start" || event.type === "step/end") { + const number = event.data.step; + const previousStep = steps.find((candidate) => candidate.step === number); + const candidate = { + turn: turnNumber, + step: number, + start: event.type === "step/start" ? event : previousStep?.start, + end: event.type === "step/end" ? event : previousStep?.end, + status: event.type === "step/end" || previousStep?.end !== void 0 ? "closed" : "open", + data: this.stepData(turnNumber, number) + }; + const nextStep = sameStep(previousStep, candidate) ? previousStep : candidate; + const index = steps.findIndex((step) => step.step === number); + steps = index < 0 ? [...steps, nextStep] : steps.map((step, at) => at === index ? nextStep : step); + } + const candidate = { + turn: turnNumber, + start: event.type === "turn/start" ? event : previousTurn?.start, + end: event.type === "turn/end" ? event : previousTurn?.end, + status: event.type === "turn/end" || previousTurn?.end !== void 0 ? "closed" : event.type === "turn/start" || previousTurn?.start !== void 0 ? "open" : "unknown", + steps, + data: this.turnData(turnNumber) + }; + const turn = sameTurn(previousTurn, candidate) ? previousTurn : candidate; + const turns = new Map(this.timeline.turns); + turns.set(turnNumber, turn); + const turnOrder = previousTurn === void 0 ? [...this.timeline.turnOrder, turnNumber] : this.timeline.turnOrder; + this.timeline = { + turnOrder, + turns + }; + const changed = /* @__PURE__ */ new Set(); + for (const seq of this.seqsByTurn.get(turnNumber) ?? []) { + const previous = this.locations.get(seq); + const next = this.resolve(seq); + this.locations.set(seq, next); + if (!sameLocation(previous, next)) changed.add(seq); + } + if (event.type === "step/end" && this.currentTurn === event.data.turn && this.currentStep === event.data.step) this.currentStep = void 0; + if (event.type === "turn/end" && this.currentTurn === event.data.turn) { + this.currentTurn = void 0; + this.currentStep = void 0; + } + return changed; + } + /** + * Index one non-boundary tail event without rescanning the window. + * @param event - contiguous appended event. + */ + appendNonBoundary(event) { + const explicit = payloadCoordinates(event); + if (explicit.session === true) { + this.coordinates.set(event.seq, {}); + this.locations.set(event.seq, SESSION_LOCATION); + return; + } + if (explicit.turn !== void 0) { + if (this.currentTurn !== explicit.turn) this.currentStep = void 0; + this.currentTurn = explicit.turn; + if (explicit.step !== void 0) this.currentStep = explicit.step; + } + const turn = explicit.turn ?? this.currentTurn; + const step = explicit.step ?? (turn === this.currentTurn ? this.currentStep : void 0); + this.coordinates.set(event.seq, { + ...turn === void 0 ? {} : { turn }, + ...turn === void 0 || step === void 0 ? {} : { step } + }); + if (turn !== void 0) this.indexTurnSeq(turn, event.seq); + this.locations.set(event.seq, this.resolve(event.seq)); + } + indexTurnSeq(turn, seq) { + const current = this.seqsByTurn.get(turn) ?? /* @__PURE__ */ new Set(); + current.add(seq); + this.seqsByTurn.set(turn, current); + } + turnData(turn) { + return this.mutableTurnData(turn); + } + stepData(turn, step) { + return this.mutableStepData(stepDataKey(turn, step)); + } + mutableTurnData(turn) { + const current = this.turnDataStores.get(turn) ?? new MutableLocationDataStore(); + this.turnDataStores.set(turn, current); + return current; + } + mutableStepData(key) { + const current = this.stepDataStores.get(key) ?? new MutableLocationDataStore(); + this.stepDataStores.set(key, current); + return current; + } + storeFor(data) { + return data.kind === "turn" ? this.mutableTurnData(data.turn) : this.mutableStepData(stepDataKey(data.turn, requireStep(data))); + } + resolve(seq) { + const coordinates = this.coordinates.get(seq); + if (coordinates?.turn === void 0) return SESSION_LOCATION; + const turn = this.timeline.turns.get(coordinates.turn); + if (turn === void 0) return UNRESOLVED_LOCATION; + if (coordinates.step === void 0) return { + kind: "turn", + turn + }; + const step = turn.steps.find((candidate) => candidate.step === coordinates.step); + return step === void 0 ? { + kind: "turn", + turn + } : { + kind: "step", + turn, + step + }; + } + }; + function stepDataKey(turn, step) { + return `${turn}:${step}`; + } + function requireStep(data) { + if (data.kind === "step" && data.step !== void 0) return data.step; + throw new Error(`conversation Step data "${data.key}" requires a step`); + } + //#endregion + //#region lib/types/client/sessions/conversation-assembler.js + const PUBLICATION_RANK = { + none: 0, + "animation-frame": 1, + immediate: 2 + }; + const LOCATION_DATA_SCOPES = ["step", "turn"]; + function emptyLocationData() { + return { + step: null, + turn: null + }; + } + function maximumPublication(left, right) { + return PUBLICATION_RANK[left] >= PUBLICATION_RANK[right] ? left : right; + } + function startSeq(context) { + return context.startSeq; + } + function insertionIndex(contexts, seq) { + let low = 0; + let high = contexts.length; + while (low < high) { + const middle = low + Math.floor((high - low) / 2); + const candidate = contexts[middle]; + if (candidate !== void 0 && candidate.startSeq < seq) low = middle + 1; + else high = middle; + } + return low; + } + function contextSnapshot(context) { + return { + key: context.key, + kind: context.kind, + id: context.id, + matches: context.matches, + start: context.start, + state: context.state, + current: context.current + }; + } + function mergeMatches(key, additions, existing) { + const merged = []; + let added = 0; + let current = 0; + while (added < additions.length || current < existing.length) { + const left = additions[added]; + const right = existing[current]; + if (left !== void 0 && right !== void 0 && left.event.seq === right.event.seq) throw new Error(`conversation Context ${key} received duplicate Match ${left.event.seq}`); + if (right === void 0 || left !== void 0 && left.event.seq < right.event.seq) { + merged.push(left); + added++; + } else { + merged.push(right); + current++; + } + } + return merged; + } + /** + * Session-owned incremental engine that assembles business Contexts from a + * contiguous Event window and materializes registered view snapshots. + */ + var ConversationNodeAssembler = class { + eventDefinitions; + viewDefinitions; + contexts = /* @__PURE__ */ new Map(); + contextsByKind = /* @__PURE__ */ new Map(); + contextsBySeq = /* @__PURE__ */ new Map(); + inputs = /* @__PURE__ */ new Map(); + locationIndex = new ConversationLocationIndex(); + dirty = /* @__PURE__ */ new Set(); + revised = /* @__PURE__ */ new Set(); + dependents = /* @__PURE__ */ new Map(); + views = /* @__PURE__ */ new Map(); + hasMore = false; + replacePending = true; + timelineDirty = true; + /** + * @param eventDefinitions - live Event Definition registry. + * @param viewDefinitions - live view builder registry. + */ + constructor(eventDefinitions, viewDefinitions) { + this.eventDefinitions = eventDefinitions; + this.viewDefinitions = viewDefinitions; + this.resetViewBuilders(); + } + /** + * Replace the complete loaded window after open, resync, or gap repair. + * @param entries - complete contiguous window. + * @param hasMore - whether older history remains outside the window. + * @returns immediate publication request. + */ + replaceWindow(entries, hasMore) { + this.contexts.clear(); + this.contextsByKind.clear(); + this.contextsBySeq.clear(); + this.inputs.clear(); + this.dirty.clear(); + this.revised.clear(); + this.dependents.clear(); + this.hasMore = hasMore; + const sorted = [...entries].sort((left, right) => left.event.seq - right.event.seq); + for (const entry of sorted) this.inputs.set(entry.event.seq, entry); + this.locationIndex.rebuild(sorted); + this.timelineDirty = true; + for (const entry of sorted) this.matchInput(entry); + this.replayDependencies(); + this.revised.clear(); + for (const context of this.contexts.values()) this.dirty.add(context); + this.replacePending = true; + return "immediate"; + } + /** + * Add one contiguous live tail event without scanning existing Contexts. + * @param input - appended Event and optional wire view. + * @returns highest requested publication cadence. + */ + append(input) { + if (this.inputs.has(input.event.seq)) return "none"; + this.revised.clear(); + this.inputs.set(input.event.seq, input); + let publication = "none"; + if (isLocationBoundary(input.event.type)) { + const previousTimeline = this.locationIndex.snapshot(); + const changed = this.locationIndex.appendBoundary(input.event); + if (this.locationIndex.snapshot() !== previousTimeline) { + this.timelineDirty = true; + publication = "immediate"; + } + this.replayContexts(this.refreshMatchLocations(changed)); + if (changed.size > 0) publication = "immediate"; + } else this.locationIndex.appendNonBoundary(input.event); + publication = maximumPublication(publication, this.matchInput(input)); + if (this.replayRevisedDependents()) publication = "immediate"; + this.revised.clear(); + return publication; + } + /** + * Add an older page while preserving existing Context and view identities. + * @param entries - newly loaded older Events. + * @param hasMore - whether history still precedes the expanded window. + * @returns highest requested publication cadence. + */ + prepend(entries, hasMore) { + this.revised.clear(); + let publication = "none"; + const previousHasMore = this.hasMore; + const fresh = entries.filter((entry) => !this.inputs.has(entry.event.seq)).sort((left, right) => left.event.seq - right.event.seq); + for (const entry of fresh) this.inputs.set(entry.event.seq, entry); + this.hasMore = hasMore; + const previousTimeline = this.locationIndex.snapshot(); + const changedLocations = this.locationIndex.rebuild(this.sortedInputs()); + if (this.locationIndex.snapshot() !== previousTimeline) this.timelineDirty = true; + const affected = this.refreshMatchLocations(changedLocations); + const pending = /* @__PURE__ */ new Map(); + for (const entry of fresh) publication = maximumPublication(publication, this.collectInput(entry, pending)); + this.applyPendingMatches(pending, affected); + this.replayContexts(affected); + if ((this.revised.size > 0 || previousHasMore !== hasMore) && this.replayDependencies()) publication = "immediate"; + if (changedLocations.size > 0) publication = "immediate"; + this.revised.clear(); + return publication; + } + /** + * Rebuild against the current Registry set after a low-frequency plugin change. + * @returns immediate publication request. + */ + rebuildRegistry() { + this.resetViewBuilders(); + return this.replaceWindow(this.sortedInputs(), this.hasMore); + } + /** + * Materialize dirty Contexts and advance every registered view builder. + * @returns whether any view snapshot was rebuilt or incrementally applied. + */ + flush() { + if (!this.replacePending && this.dirty.size === 0 && !this.timelineDirty) return false; + if (this.replacePending) { + this.replaceLocationData(); + const allByTarget = /* @__PURE__ */ new Map(); + for (const target of this.views.keys()) allByTarget.set(target, []); + for (const context of this.contexts.values()) { + const target = context.definition.target; + if (target === void 0 || !this.views.has(target)) continue; + const node = this.buildNode(context, target); + context.current.set(target, node); + if (node !== null) allByTarget.get(target)?.push(node); + } + for (const view of this.views.values()) view.snapshot = view.builder.replace({ + nodes: allByTarget.get(view.target) ?? [], + timeline: this.locationIndex.snapshot() + }); + this.replacePending = false; + this.dirty.clear(); + this.timelineDirty = false; + return true; + } + const upsertsByTarget = /* @__PURE__ */ new Map(); + for (const target of this.views.keys()) upsertsByTarget.set(target, []); + if (this.applyDirtyLocationData()) this.timelineDirty = true; + for (const context of this.dirty) { + const target = context.definition.target; + if (target === void 0 || !this.views.has(target)) continue; + const previous = context.current.get(target) ?? null; + const node = this.buildNode(context, target); + if (node === null && previous !== null) throw new Error(`conversation Definition "${context.kind}" withdrew materialized target "${target}"; return the same key with hidden visibility instead`); + context.current.set(target, node); + if (node !== null) upsertsByTarget.get(target)?.push(node); + } + this.dirty.clear(); + const timelineDirty = this.timelineDirty; + this.timelineDirty = false; + for (const view of this.views.values()) { + const upserts = upsertsByTarget.get(view.target) ?? []; + if (upserts.length === 0 && !timelineDirty) continue; + view.snapshot = view.builder.apply({ + upserts, + timeline: this.locationIndex.snapshot() + }); + } + return true; + } + /** + * Read the latest snapshot of a registered target. + * @param target - registered view target. + * @returns target snapshot, or undefined when no builder is registered. + */ + snapshot(target) { + return this.views.get(target)?.snapshot; + } + get(target) { + return this.snapshot(target); + } + sortedInputs() { + return [...this.inputs.values()].sort((left, right) => left.event.seq - right.event.seq); + } + matchInput(input) { + return this.dispatchInput(input, (definition, id, role) => this.acceptMatch(definition, id, role, input)); + } + collectInput(input, pending) { + return this.dispatchInput(input, (definition, id, role) => { + const key = conversationContextKey(definition.kind, id); + const match = { + ...input, + role, + location: this.locationIndex.locationOf(input.event) + }; + const matches = pending.get(key) ?? []; + matches.push({ + definition, + id, + match + }); + pending.set(key, matches); + return definition.publication?.(match) ?? "immediate"; + }); + } + dispatchInput(input, accept) { + const matchedTargets = /* @__PURE__ */ new Set(); + let publication = "none"; + for (const definition of this.eventDefinitions.entries()) { + const result = definition.match(input.event); + if (result === null) continue; + if (definition.target !== void 0) matchedTargets.add(definition.target); + publication = maximumPublication(publication, accept(definition, result.id, result.role)); + } + const fallback = this.eventDefinitions.fallbackEntry(); + const target = fallback?.target; + if (fallback !== void 0 && target !== void 0 && !matchedTargets.has(target)) { + const result = fallback.match(input.event); + if (result !== null) publication = maximumPublication(publication, accept(fallback, result.id, result.role)); + } + return publication; + } + acceptMatch(definition, id, role, input) { + const key = conversationContextKey(definition.kind, id); + let context = this.contexts.get(key); + if (role === "start" && context?.start !== void 0) throw new Error(`conversation Context ${key} received more than one start Match`); + if (context === void 0) { + context = { + key, + kind: definition.kind, + id, + definition, + startSeq: void 0, + start: void 0, + matches: [], + state: void 0, + revision: 0, + current: /* @__PURE__ */ new Map(), + locationData: emptyLocationData(), + dependencies: /* @__PURE__ */ new Map() + }; + this.contexts.set(key, context); + } + const match = { + ...input, + role, + location: this.locationIndex.locationOf(input.event) + }; + const previous = context.matches.at(-1); + if (previous !== void 0 && previous.event.seq >= input.event.seq) throw new Error(`conversation Context ${key} received non-appended Match ${input.event.seq}`); + if (role === "start" && context.matches.length > 0) throw new Error(`conversation Context ${key} received an update before its start Match`); + context.matches.push(match); + if (role === "start") { + context.startSeq = input.event.seq; + context.start = match; + this.indexStartedContext(context); + } + const owners = this.contextsBySeq.get(input.event.seq) ?? /* @__PURE__ */ new Set(); + owners.add(context); + this.contextsBySeq.set(input.event.seq, owners); + if (role === "start") this.replayContext(context); + else if (context.state !== void 0) { + const typed = contextSnapshot(context); + context.state = requireState(definition, "update", definition.update(typed, match)); + context.revision++; + this.revised.add(context); + } + this.dirty.add(context); + return definition.publication?.(match) ?? "immediate"; + } + applyPendingMatches(pending, affected) { + const startsByKind = /* @__PURE__ */ new Map(); + for (const [key, entries] of pending) { + const first = entries[0]; + if (first === void 0) continue; + let context = this.contexts.get(key); + if (context === void 0) { + context = { + key, + kind: first.definition.kind, + id: first.id, + definition: first.definition, + startSeq: void 0, + start: void 0, + matches: [], + state: void 0, + revision: 0, + current: /* @__PURE__ */ new Map(), + locationData: emptyLocationData(), + dependencies: /* @__PURE__ */ new Map() + }; + this.contexts.set(key, context); + } + let discoveredStart; + const additions = entries.map((entry) => { + if (entry.definition !== context.definition || entry.id !== context.id) throw new Error(`conversation Context ${key} received inconsistent Definition identity`); + if (entry.match.role === "start") { + if (discoveredStart !== void 0 || context.start !== void 0) throw new Error(`conversation Context ${key} received more than one start Match`); + discoveredStart = entry.match; + } + const owners = this.contextsBySeq.get(entry.match.event.seq) ?? /* @__PURE__ */ new Set(); + owners.add(context); + this.contextsBySeq.set(entry.match.event.seq, owners); + return entry.match; + }).sort((left, right) => left.event.seq - right.event.seq); + context.matches = mergeMatches(context.key, additions, context.matches); + if (discoveredStart !== void 0) { + context.start = discoveredStart; + context.startSeq = discoveredStart.event.seq; + const starts = startsByKind.get(context.kind) ?? []; + starts.push(context); + startsByKind.set(context.kind, starts); + } + if (context.start !== void 0 && context.matches[0] !== context.start) throw new Error(`conversation Context ${context.key} received an update before its start Match`); + affected.add(context); + this.dirty.add(context); + } + for (const [kind, contexts] of startsByKind) this.indexStartedContexts(kind, contexts); + } + replayContexts(contexts) { + const ordered = [...contexts].sort((left, right) => (left.startSeq ?? Number.POSITIVE_INFINITY) - (right.startSeq ?? Number.POSITIVE_INFINITY)); + for (const context of ordered) { + if (context.start === void 0) { + context.state = void 0; + this.dirty.add(context); + continue; + } + this.replayContext(context); + } + } + replayContext(context) { + const start = context.start; + if (start === void 0) { + context.state = void 0; + return; + } + if (context.matches[0] !== start) throw new Error(`conversation Context ${context.key} received an update before its start Match`); + const dependencies = /* @__PURE__ */ new Map(); + const reader = this.readerFor(start.event.seq, dependencies); + context.state = void 0; + context.state = requireState(context.definition, "start", context.definition.start(contextSnapshot(context), start, reader)); + this.replaceDependencies(context, dependencies); + for (let index = 1; index < context.matches.length; index++) { + const match = context.matches[index]; + if (match === void 0 || match.role !== "update") continue; + const typed = contextSnapshot(context); + context.state = requireState(context.definition, "update", context.definition.update(typed, match)); + } + context.revision++; + this.revised.add(context); + this.dirty.add(context); + } + replaceDependencies(context, dependencies) { + for (const dependency of context.dependencies.values()) { + if (dependency.key === void 0) continue; + const current = this.dependents.get(dependency.key); + current?.delete(context); + if (current?.size === 0) this.dependents.delete(dependency.key); + } + context.dependencies = dependencies; + for (const dependency of dependencies.values()) { + if (dependency.key === void 0) continue; + const current = this.dependents.get(dependency.key) ?? /* @__PURE__ */ new Set(); + current.add(context); + this.dependents.set(dependency.key, current); + } + } + replayRevisedDependents() { + const pending = [...this.revised]; + const affected = /* @__PURE__ */ new Set(); + for (let index = 0; index < pending.length; index++) { + const dependency = pending[index]; + if (dependency === void 0) continue; + for (const dependent of this.dependents.get(dependency.key) ?? []) { + if (affected.has(dependent)) continue; + affected.add(dependent); + pending.push(dependent); + } + } + this.replayContexts(affected); + return affected.size > 0; + } + readerFor(beforeSeq, dependencies) { + return { previous: (kind) => { + const predecessor = this.previousContext(kind, beforeSeq); + dependencies.set(kind, { + kind, + key: predecessor?.key, + revision: predecessor?.revision, + windowGap: predecessor === void 0 && this.hasMore + }); + if (predecessor?.state === void 0) return void 0; + const seq = startSeq(predecessor); + if (seq === void 0) return void 0; + return { + key: predecessor.key, + kind: predecessor.kind, + id: predecessor.id, + startSeq: seq, + state: predecessor.state, + matches: predecessor.matches + }; + } }; + } + previousContext(kind, beforeSeq) { + const candidates = this.contextsByKind.get(kind) ?? []; + const indexBefore = insertionIndex(candidates, beforeSeq); + for (let index = indexBefore - 1; index >= 0; index--) { + const candidate = candidates[index]; + if (candidate?.state !== void 0) return candidate; + } + } + /** Insert one newly discovered start into its Definition's ordered predecessor index. */ + indexStartedContext(context) { + const seq = context.startSeq; + if (seq === void 0) return; + const candidates = this.contextsByKind.get(context.kind) ?? []; + const previous = candidates.at(-1); + if (previous === void 0 || previous.startSeq < seq) candidates.push(context); + else candidates.splice(insertionIndex(candidates, seq), 0, context); + this.contextsByKind.set(context.kind, candidates); + } + indexStartedContexts(kind, additions) { + if (additions.length === 0) return; + const sorted = [...additions].sort((left, right) => left.startSeq - right.startSeq); + const existing = this.contextsByKind.get(kind) ?? []; + const merged = []; + let before = 0; + let added = 0; + while (before < existing.length || added < sorted.length) { + const left = existing[before]; + const right = sorted[added]; + if (right === void 0 || left !== void 0 && left.startSeq < right.startSeq) { + merged.push(left); + before++; + } else { + merged.push(right); + added++; + } + } + this.contextsByKind.set(kind, merged); + } + replayDependencies() { + let replayed = false; + const ordered = [...this.contexts.values()].filter((context) => startSeq(context) !== void 0).sort((left, right) => startSeq(left) - startSeq(right)); + for (const context of ordered) { + if (context.state === void 0 || context.dependencies.size === 0) continue; + const before = startSeq(context); + if (before === void 0) continue; + let changed = false; + for (const dependency of context.dependencies.values()) { + const current = this.previousContext(dependency.kind, before); + const windowGap = current === void 0 && this.hasMore; + if (current?.key !== dependency.key || current?.revision !== dependency.revision || windowGap !== dependency.windowGap) { + changed = true; + break; + } + } + if (changed) { + this.replayContext(context); + replayed = true; + } + } + return replayed; + } + refreshMatchLocations(changedSeqs) { + const affected = /* @__PURE__ */ new Set(); + if (changedSeqs.size === 0) return affected; + for (const seq of changedSeqs) for (const context of this.contextsBySeq.get(seq) ?? []) affected.add(context); + for (const context of affected) { + let start = context.start; + context.matches = context.matches.map((match) => { + if (!changedSeqs.has(match.event.seq)) return match; + const refreshed = { + ...match, + location: this.locationIndex.locationOf(match.event) + }; + if (match === start) start = refreshed; + return refreshed; + }); + context.start = start; + } + return affected; + } + buildNode(context, target) { + if (context.definition.target !== target || context.definition.buildViewNode === void 0) return null; + const node = context.definition.buildViewNode(contextSnapshot(context)); + if (node === null) return null; + if (node.key !== context.key) throw new Error(`conversation Definition "${context.kind}" returned unstable key "${node.key}"; expected "${context.key}"`); + if (node.target !== target) throw new Error(`conversation Definition "${context.kind}" returned target "${node.target}" while building "${target}"`); + return node; + } + buildLocationData(context, scope) { + if (context.definition.buildLocationData === void 0) return null; + const data = context.definition.buildLocationData(contextSnapshot(context), scope); + if (data === null) return null; + if (data.kind !== scope) throw new Error(`conversation Definition "${context.kind}" published ${data.kind} data through its ${scope} scope`); + if (data.key !== context.kind) throw new Error(`conversation Definition "${context.kind}" published Location data key "${data.key}"; expected its owned kind`); + if (!Number.isSafeInteger(data.turn) || data.turn < 0) throw new Error(`conversation Definition "${context.kind}" published invalid turn ${data.turn}`); + if (data.kind === "step" && (!Number.isSafeInteger(data.step) || data.step < 0)) throw new Error(`conversation Definition "${context.kind}" published invalid step ${String(data.step)}`); + return data; + } + replaceLocationData() { + const entries = []; + for (const scope of LOCATION_DATA_SCOPES) { + for (const context of this.contexts.values()) { + const data = this.buildLocationData(context, scope); + context.locationData[scope] = data; + if (data !== null) entries.push({ + owner: context.key, + data + }); + } + this.locationIndex.replaceData(entries); + } + } + applyDirtyLocationData() { + let changed = false; + for (const scope of LOCATION_DATA_SCOPES) { + const changes = []; + for (const context of this.dirty) { + const previous = context.locationData[scope]; + const next = this.buildLocationData(context, scope); + context.locationData[scope] = next; + if (previous !== next) changes.push({ + owner: context.key, + previous, + next + }); + } + changed = this.locationIndex.applyData(changes) || changed; + } + return changed; + } + resetViewBuilders() { + this.views.clear(); + for (const definition of this.viewDefinitions.entries()) { + const builder = definition.create(); + this.views.set(definition.target, { + target: definition.target, + builder, + snapshot: builder.empty + }); + } + this.replacePending = true; + } + }; + function isLocationBoundary(type) { + return type === "turn/start" || type === "turn/end" || type === "step/start" || type === "step/end"; + } + function requireState(definition, phase, state) { + if (state === void 0) throw new Error(`conversation Definition "${definition.kind}" returned undefined from ${phase}()`); + return state; + } + //#endregion + //#region lib/types/client/sessions/conversation.js + /** + * core ContentBlock[] -> AssistantBlock[] (classifier shared by finalized messages and partial block-end). + * @param content - core content blocks verbatim. + * @returns UI-classified blocks in source order. + */ + function toAssistantBlocks(content) { + return content.map(toAssistantBlock); + } + /** + * Classify one block (ToolCallBlock fields are id/arguments, mapped to callId/argsRaw). + * @param block - one core content block. + * @returns the UI classification. + */ + function toAssistantBlock(block) { + switch (block.type) { + case "text": return { + kind: "text", + text: block.text + }; + case "reasoning": return { + kind: "reasoning", + text: block.text + }; + case "image": return { + kind: "image", + attachment: block.attachment + }; + case "tool-call": return { + kind: "tool-call", + callId: String(block.id), + name: block.name, + argsRaw: block.arguments + }; + default: return { + kind: "other", + block + }; + } + } + const EMPTY_LIST = []; + const EMPTY_TIMELINE = { + turnOrder: EMPTY_LIST, + turns: /* @__PURE__ */ new Map() + }; + /** Empty target store used by fixtures and Sessions without registered views. */ + const EMPTY_CONVERSATION_VIEWS = { get: () => void 0 }; + /** Empty Chat target used before a view builder is registered. */ + const EMPTY_CHAT_SNAPSHOT = { + order: EMPTY_LIST, + nodes: { + get: () => void 0, + values: () => EMPTY_LIST + }, + locations: { + getTurn: () => EMPTY_LIST, + getStep: () => EMPTY_LIST + }, + timeline: EMPTY_TIMELINE, + legacy: { + nodes: EMPTY_LIST, + turnTimings: /* @__PURE__ */ new Map(), + turnEnds: /* @__PURE__ */ new Map(), + partial: null, + runningCalls: EMPTY_LIST + } + }; + //#endregion + //#region lib/types/client/sessions/pending.js + /** Key prefixes, one per kind (the key doubles as the Session pending-map key). */ + const KEY_PREFIX = { + approval: "a", + question: "q" + }; + /** + * One pending host-owned interaction wait: an immutable render face + * (kind/key/sessionId/payload) plus the response carrier. respond() backfills + * the requested frame's rpcId into a client-response envelope — no consumer + * ever sees the raw rpcId. Settlement is expressed only by pending-list + * membership (the settled flag is a fail-loud guard, not a render input). + */ + var PendingWait = class { + /** Interaction kind (union discriminant). */ + kind; + /** Opaque render identity, `:` — stable across baseline replay, usable as a React key. */ + key; + /** Owning session. */ + sessionId; + /** The requested frame's domain fields, verbatim. */ + payload; + #settled = false; + #rpcId; + #respond; + /** + * Minted by Session on a requested frame (public construction is the test-fixture path). + * @param kind - interaction kind. + * @param rpcId - the requested frame's stable envelope id (kept private; respond echoes it). + * @param sessionId - owning session. + * @param payload - the requested frame's domain fields. + * @param respond - the client-response carrier (api.respond). + */ + constructor(kind, rpcId, sessionId, payload, respond) { + this.kind = kind; + this.key = `${KEY_PREFIX[kind]}:${rpcId}`; + this.sessionId = sessionId; + this.payload = payload; + this.#rpcId = rpcId; + this.#respond = respond; + } + /** + * Send a result for this wait: wraps it into the client-response envelope + * with the rpcId backfilled. Throws synchronously once settled. + * @param result - the result shell (ok value / error envelope), domain-encoded by the caller. + * @returns the carrier receipt. + */ + respond(result) { + if (this.#settled) throw new Error(`pending wait ${this.key} is already settled`); + return this.#respond({ + type: "client-response", + rpcId: this.#rpcId, + result + }); + } + /** Session-only settlement mark (the authoritative resolved frame arrived); respond() throws afterwards. */ + markSettled() { + this.#settled = true; + } + }; + //#endregion + //#region lib/types/client/time-zone.js + /** Browser-owned time-zone sampling for prompt RPC provenance. */ + /** + * Resolve the current browser IANA zone for one outbound operation. + * @returns The browser-provided canonical zone. + * @throws when the runtime cannot provide a non-empty zone. + */ + function resolvedClientTimeZone() { + const timeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone; + if (typeof timeZone !== "string" || timeZone.length === 0) throw new Error("browser time zone is unavailable"); + return timeZone; + } + //#endregion + //#region lib/types/client/sessions/queue-mirror.js + const QUEUE_PREVIEW_CHARS = 200; + function previewOf(content) { + const flat = content.map((block) => block.type === "text" ? block.text : `[${block.type}]`).join(" ").replace(/\s+/g, " ").trim(); + const chars = Array.from(flat); + return chars.length > QUEUE_PREVIEW_CHARS ? `${chars.slice(0, QUEUE_PREVIEW_CHARS).join("")}…` : flat; + } + function textOf(content) { + if (!content.every((block) => block.type === "text")) return null; + return content.map((block) => block.text).join(""); + } + /** Authoritative transient queue projection and durable steering handoff. */ + var SessionQueueMirror = class { + current = []; + /** + * Return the current immutable queue projection. + * @returns current queue rows. + */ + snapshot() { + return this.current; + } + /** + * Drop the stale generation before its replacement queue baseline arrives. + * @returns whether any projected queue row was removed. + */ + reset() { + if (this.current.length === 0) return false; + this.current = []; + return true; + } + /** + * Replace from one authoritative stream queue frame. + * @param items - complete host queue snapshot. + */ + replace(items) { + this.current = items.map((item) => ({ + id: item.id, + messageId: item.message.id, + placement: item.placement, + content: item.message.content, + preview: previewOf(item.message.content), + text: textOf(item.message.content) + })); + } + /** + * Retire a transient steering row once its durable message enters the log. + * @param event - newly contiguous durable Session event. + * @returns whether the projection changed. + */ + acceptDurable(event) { + if (event.type !== "user/message") return false; + const messageId = event.data.id; + const index = this.current.findIndex((item) => item.placement === "steering" && item.messageId === messageId); + if (index < 0) return false; + this.current = this.current.filter((_item, candidate) => candidate !== index); + return true; + } + }; + /** + * Owns a session's event window, derived conversation state, and observable + * snapshot. React bindings remain outside this data layer. Features see only + * the {@link SessionFace} slice (ISession verbs + the snapshot source); the + * remaining public members are manager/runtime entry points. + */ + var Session = class { + sessionId; + api; + remote; + options; + events = []; + /** Wire views aligned with `events` by index (envelope-level annotations; undefined = no view). + * Kept parallel rather than merged so `events` stays the raw log slice (model-visible ⟺ logged). */ + views = []; + baseSeq = 0; + hasMore = false; + openState = "cold"; + openError = null; + openPromise = null; + /** Bumped by resync to invalidate an in-flight doOpen: a reconnect must rebuild, never adopt + * a pre-disconnect open whose history request is already doomed. Stale doOpen + * passes drop all writes once the generation moves on. */ + openGeneration = 0; + loadingOlder = false; + pending = /* @__PURE__ */ new Map(); + pendingRev = 0; + pendingCache = null; + /** Authoritative stream-only inbox snapshot; pending work never hits history. */ + queueMirror = new SessionQueueMirror(); + /** Session-owned business Context engine over the contiguous raw window. */ + conversation; + running = false; + address; + parentAvailable = false; + /** + * Sticky send marker, private input of the composerPhase derivation: set + * synchronously before prompt()'s first await, never reset — the blank → + * engaging edge of the phase machine (see ComposerPhase). + */ + promptAttempted = false; + /** A first accepted prompt stays in the engaging phase until its turn is observable. */ + firstPromptPendingTurn = false; + /** Empty-log mirror (see ConversationSnapshot.blank); unknown bare sessions begin conservatively blank. */ + blankBit = true; + removed = false; + promptError = null; + lastAgentError = null; + /** Live events buffered during open/resync and stitched by sequence once history lands. */ + liveBuffer = []; + /** Gap repair in flight; live events detour to the buffer until the tail page lands. */ + stitching = false; + /** subscribed.lastSeq baseline (gap detection; null when no subscribed frame arrived — degrade to the liveBuffer dedup path). */ + subscribedLastSeq = null; + /** + * Per-session projection value store (push model; see the session-projection + * subsystem page, docs/subsystems/session-projection.md): finished whole + * values computed on the host, seeded by the tail page's + * projections block and updated by `session/projection` frames under the + * one higher-seq-wins rule. Keys are read via `projections.faceOf(key)` + * (the useProjection resolution face); the conversation snapshot never + * carries projection values, and no client-side domain folding exists. + * Manager-owned when constructed through SessionManager (frames route and + * the store outlives instantiation, the title-snapshot precedent); a bare + * construction gets a private store. + */ + projections; + snapshotCache; + notifier; + /** + * Agent-scoped cordis context, bound once by SessionRuntime when it + * mints the scope (the client mirror of the host Agent's loopCtx). The + * Session dispatches its own scoped events through it; undefined means + * unbound (bare object-layer construction) or already pruned — both skip + * dispatch-dependent behavior rather than fail. + */ + actx; + /** + * @param sessionId - Host session identity (client sessions are always Host-born). + * @param api - shared wire client. + * @param remote - generated Remote namespaces this session calls. + * @param options - optional manager-owned state observers. + */ + constructor(sessionId, api, remote, options = {}) { + this.sessionId = sessionId; + this.api = api; + this.remote = remote; + this.options = options; + this.projections = options.projections ?? new ProjectionValueStore(); + this.address = options.address; + this.parentAvailable = options.parentAvailable ?? false; + this.conversation = options.conversation === void 0 ? new ConversationNodeAssembler({ + entries: () => [], + fallbackEntry: () => void 0 + }, { entries: () => [] }) : new ConversationNodeAssembler(options.conversation.events, options.conversation.views); + this.notifier = new Notifier(() => { + this.conversation.flush(); + this.snapshotCache = this.buildSnapshot(); + }); + this.snapshotCache = this.buildSnapshot(); + } + /** + * Bind the Agent-scoped context minted by SessionRuntime (single write; + * a second bind is a wiring error and throws). Direction stays one-way at + * this binding boundary: consumers still reach the Session via `sessions.sessionOf`, + * while the Session holds its own dispatch point (host Agent.loopCtx + * mirror). + * @param actx - the agent's scoped context. + */ + bindScope(actx) { + if (this.actx !== void 0) throw new Error(`session ${this.sessionId} already has a bound scope`); + this.actx = actx; + } + /** Release the bound scope at prune time (a later rebind accompanies a freshly minted scope). */ + unbindScope() { + this.actx = void 0; + } + /** + * Send (queue/steer passed through 1:1); failures land in the snapshot's promptError. + * @param content - text plus browser-owned temporary image uploads. + * @param mode - queue appends after the current turn; steer interrupts it. + * @returns the prompt result (also mirrored into promptError on failure). + */ + async prompt(content, mode) { + this.promptError = null; + this.lastAgentError = null; + this.promptAttempted = true; + if (this.blankBit) this.firstPromptPendingTurn = true; + this.notifier.markDirty(); + let result; + try { + if (this.address === void 0) result = (await this.api.sessions.prompt({ + sessionId: this.sessionId, + mode, + content, + clientTimeZone: resolvedClientTimeZone() + })).result; + else if (this.address.mode === "one-shot") result = { + ok: false, + error: { + code: "subagent-not-resumable", + message: "one-shot subagent conversations are read-only", + details: { childSessionId: this.address.childSessionId } + } + }; + else if (content.some((part) => part.type === "image")) result = { + ok: false, + error: { + code: "attachment-error", + message: "Image input is unavailable for subagent continuations.", + details: { reason: "SUBAGENT_IMAGE_UNSUPPORTED" } + } + }; + else { + const routed = (await this.api.subagents.prompt({ + ...this.address, + content: content.flatMap((part) => part.type === "text" ? [{ + type: "text", + text: part.text + }] : []), + clientTimeZone: resolvedClientTimeZone() + })).result; + result = routed.ok ? { + ok: true, + value: { accepted: true } + } : routed; + } + } catch (error) { + result = transportError(error); + } + if (!result.ok) { + this.promptError = { + op: "send", + error: result.error + }; + this.notifier.markDirty(); + return result; + } + if (this.blankBit) { + this.blankBit = false; + this.options.onEngaged?.(this); + this.notifier.markDirty(); + } + return result; + } + /** + * Resolve one image referenced by this session into browser-consumable bytes. + * @param attachmentId - opaque id found in the folded session log. + * @returns the authenticated reference and decoded bytes. + */ + async readAttachment(attachmentId) { + try { + const result = (await this.api.sessions.attachment({ + sessionId: this.sessionId, + attachmentId + })).result; + if (!result.ok) return result; + const binary = atob(result.value.data); + const data = Uint8Array.from(binary, (char) => char.charCodeAt(0)); + return { + ok: true, + value: { + attachment: result.value.attachment, + data + } + }; + } catch (error) { + return transportError(error); + } + } + /** Apply one operation to a still-pending queue occurrence. */ + async updateQueue(itemId, action) { + try { + return (await this.api.sessions.updateQueue({ + sessionId: this.sessionId, + itemId, + action + })).result; + } catch (error) { + return transportError(error); + } + } + /** + * Stop the active turn while the Host preserves pending inbox work; failures + * land in promptError (same error-strip display slot). A continuable + * subagent address routes through `subagent.interrupt`, whose durable + * parent-address authority works without a live parent Agent; a one-shot + * address stays uncancellable (the UI offers no stop action, so this arm is + * defensive). + * @returns the cancel result. + */ + async cancel() { + const address = this.address; + if (address !== void 0 && address.mode === "one-shot") { + const result = { + ok: false, + error: { + code: "subagent-delivery-unavailable", + message: "subagent activation cancellation is unavailable", + details: { childSessionId: address.childSessionId } + } + }; + this.promptError = { + op: "stop", + error: result.error + }; + this.notifier.markDirty(); + return result; + } + let result; + try { + result = address !== void 0 ? (await this.api.subagents.interrupt(address)).result : (await this.api.sessions.cancel({ sessionId: this.sessionId })).result; + } catch (error) { + result = transportError(error); + } + if (!result.ok) { + this.promptError = { + op: "stop", + error: result.error + }; + this.notifier.markDirty(); + } + return result; + } + /** + * Rename: contract session.rename 1:1. On success settle the 'title' + * projection cell from the response's `{title, seq}` under the store's + * higher-seq-wins rule (the push frame arriving later is a no-op replay), + * so the list row and any useProjection('title') reader update without + * waiting for the mux frame. + * @param title - raw title text (the host normalizes acceptance). + * @returns the rename result (normalized accepted title + title event seq). + */ + async rename(title) { + try { + const { result } = await this.api.sessions.rename({ + sessionId: this.sessionId, + title + }); + if (result.ok) this.projections.apply("title", result.value.title, result.value.seq); + return result; + } catch (error) { + return transportError(error); + } + } + /** + * Execute one slash-command line against this session's agent — pure + * admission semantics (the host executor durably logs the lifecycle; + * outcomes render as flow nodes, never as a response echo). + * @param line - the full command line, leading slash included. + * @returns the admission result, or the error branch on transport failure. + */ + async command(line) { + const result = await this.remote.commands.execute(this.sessionId, line); + if (!result.ok) return result; + return { + ok: true, + value: { matched: result.value !== void 0 } + }; + } + /** First open: pull the tail page (idempotent — in-flight/already-open returns the existing promise). */ + open() { + if (this.openState === "open") return Promise.resolve(); + if (this.openPromise !== null) return this.openPromise; + const promise = this.doOpen(this.openGeneration).finally(() => { + if (this.openPromise === promise) this.openPromise = null; + }); + this.openPromise = promise; + return promise; + } + /** Page up: pull one earlier page with the window's first seq as beforeSeq and prepend. */ + async loadOlder() { + if (this.openState !== "open" || !this.hasMore || this.loadingOlder) return; + this.loadingOlder = true; + this.notifier.markDirty(); + try { + const { result } = await this.history({ + beforeSeq: this.baseSeq, + maxMessages: 50 + }); + if (!result.ok) return; + const older = result.value.events; + if (older.length === 0) { + this.hasMore = result.value.hasMore; + this.conversation.prepend([], this.hasMore); + return; + } + const tail = older[older.length - 1]; + if (tail === void 0 || tail.event.seq + 1 !== this.baseSeq) { + console.error(`[web-runtime] history page discontinuous: tail seq ${tail?.event.seq} vs baseSeq ${this.baseSeq}`); + this.hasMore = false; + this.conversation.prepend([], false); + return; + } + this.events = [...older.map((e) => e.event), ...this.events]; + this.views = [...older.map((e) => e.view), ...this.views]; + /* v8 ignore next -- the ?? arm needs older[0] undefined, but the empty-page branch above already returned. */ + this.baseSeq = older[0]?.event.seq ?? this.baseSeq; + this.hasMore = result.value.hasMore; + this.conversation.prepend(older.map(conversationInput), this.hasMore); + } catch (error) { + console.error("[web-runtime] loadOlder failed:", error); + } finally { + this.loadingOlder = false; + this.notifier.markDirty(); + } + } + /** Reconnect rebuild (manager calls this on onConnected for instances that were opened): + * reset the window and rerun open; pending waits for the baseline replay. Invalidates any + * in-flight open first — its history request rode the dead connection and must not settle + * the fresh generation into 'error'. */ + async resync() { + if (this.openState === "cold") return; + this.openGeneration++; + this.openPromise = null; + this.openState = "cold"; + this.openError = null; + this.events = []; + this.views = []; + this.baseSeq = 0; + this.pending.clear(); + this.pendingRev++; + this.subscribedLastSeq = null; + this.liveBuffer = []; + this.notifier.markDirty(); + await this.open(); + } + /** + * uSES subscription entry. + * @param listener - change callback. + * @returns the unsubscribe function. + */ + subscribe(listener) { + return this.notifier.subscribe(listener); + } + /** + * Cached conversation snapshot (rebuilt lazily when dirty with no listeners). + * @returns the cached reference (stable until the next flush). + */ + getSnapshot() { + this.notifier.ensureFresh(); + return this.snapshotCache; + } + /** + * Mux frame arrival (the dispatch switch). + * @param rpcId - the frame envelope id (the respond backfill key for requested frames). + * @param frame - the routed frame. + */ + handleMuxEnvelope(rpcId, frame) { + switch (frame.type) { + case "session/event": + this.acceptLiveEvent(frame.event, frame.view); + return; + case "session/queue": + this.queueMirror.replace(frame.items); + this.notifier.markDirty(); + return; + case "session/subscribed": + this.subscribedLastSeq = frame.lastSeq; + if (this.queueMirror.reset()) this.notifier.markDirty(); + return; + case "approval/requested": { + const { type: _type, sessionId: _sid, ...payload } = frame; + this.mint(new PendingWait("approval", rpcId, this.sessionId, payload, (m) => this.api.respond(m))); + this.notifier.markDirty(); + return; + } + case "approval/resolved": + for (const item of this.pending.values()) if (item.kind === "approval" && item.payload.approvalId === frame.approvalId) this.settle(item); + this.notifier.markDirty(); + return; + case "question/requested": { + const { type: _type, sessionId: _sid, ...payload } = frame; + this.mint(new PendingWait("question", rpcId, this.sessionId, payload, (m) => this.api.respond(m))); + this.notifier.markDirty(); + return; + } + case "question/resolved": { + const item = this.pending.get(`q:${frame.questionRpcId}`); + if (item !== void 0) this.settle(item); + this.notifier.markDirty(); + return; + } + default: return; + } + } + /** + * Running-bit relay from the host stream (list entry and snapshot stay consistent). + * @param running - the new running state. + */ + handleRunning(running) { + if (running && this.blankBit) { + this.blankBit = false; + this.notifier.markDirty(); + } + if (running) this.firstPromptPendingTurn = false; + if (this.running === running) return; + this.running = running; + this.notifier.markDirty(); + } + /** + * Install or clear the catalog-discovered transport address. A changed + * address rebuilds an already-open window through its new history route. + * @param address - direct parent/child address, or undefined for ordinary transport. + * @param parentAvailable - latest exact-parent availability hint. + */ + configureSubagent(address, parentAvailable = false) { + const same = this.address?.parentSessionId === address?.parentSessionId && this.address?.childSessionId === address?.childSessionId && this.address?.mode === address?.mode; + this.address = address; + this.parentAvailable = parentAvailable; + if (!same && this.openState !== "cold") this.resync(); + else this.notifier.markDirty(); + } + /** + * Update only the parent availability hint from a catalog refresh. + * @param available - whether the exact direct parent is live. + */ + handleSubagentParentAvailable(available) { + if (this.parentAvailable === available) return; + this.parentAvailable = available; + this.notifier.markDirty(); + } + /** + * Blank-bit relay from the authoritative summary source (list baseline and + * the session-added frame). Monotone: once any signal (local first send, + * running flip, an earlier summary) cleared it, a stale true never + * re-blanks. + * @param blank - the summary's derived empty-log bit. + */ + handleBlank(blank) { + if (blank === this.blankBit) return; + if (blank && (this.promptAttempted || this.running)) return; + this.blankBit = blank; + this.notifier.markDirty(); + } + /** host/session-removed relay: flag the snapshot (instance survives — resident-instance rule). */ + handleRemoved() { + this.removed = true; + this.notifier.markDirty(); + } + /** + * host/agent-error relay: the only outlet for live failures with no turn position. + * @param message - the stringified error. + */ + handleAgentError(message) { + this.lastAgentError = message; + this.notifier.markDirty(); + } + /** No-op because session instances remain resident. */ + dispose() {} + /** Rebuild the current window after a low-frequency Definition or view registration change. */ + rebuildConversationRegistry() { + this.scheduleConversation(this.conversation.rebuildRegistry()); + } + /** Requested-frame arrival: the wait enters the pending map under its own key. */ + mint(wait) { + this.pending.set(wait.key, wait); + this.pendingRev++; + } + /** Authoritative resolved-frame settlement: mark, then drop from the pending map. */ + settle(wait) { + wait.markSettled(); + this.pending.delete(wait.key); + this.pendingRev++; + } + /** @param generation - openGeneration at launch; every await re-checks it and a stale pass + * drops all writes (resync superseded this open — its outcome belongs to a dead connection). */ + async doOpen(generation) { + this.openState = "loading"; + this.openError = null; + this.notifier.markDirty(); + try { + let { result } = await this.history({ maxMessages: 50 }); + if (generation !== this.openGeneration) return; + if (!result.ok) { + this.openState = "error"; + this.openError = result.error; + return; + } + this.installWindow(result.value.events, result.value.hasMore, result.value.projections); + const tailSeq = this.windowTailSeq(); + if (this.subscribedLastSeq !== null && tailSeq !== null && this.subscribedLastSeq > tailSeq) { + result = (await this.history({ maxMessages: 50 })).result; + if (generation !== this.openGeneration) return; + if (result.ok) this.installWindow(result.value.events, result.value.hasMore, result.value.projections); + } + this.openState = "open"; + } catch (error) { + if (generation !== this.openGeneration) return; + this.openState = "error"; + const folded = transportError(error); + /* v8 ignore next -- the `? null` arm is unreachable: transportError always returns ok:false. */ + this.openError = folded.ok ? null : folded.error; + } finally { + if (generation === this.openGeneration) this.notifier.markDirty(); + } + } + /** Install the history window + stitch the liveBuffer (seq is the sole dedup key). + * Stitching MUST NOT route through acceptLiveEvent: openState is still 'loading' here + * (doOpen flips it after install), so recursing would push every buffered event straight + * back into liveBuffer where nothing ever drains it — a silent drop loop. + * A carried projections block seeds the value store (higher seq wins, so a stale + * baseline cannot overwrite a newer push frame); the window events themselves are + * never folded — the host is the only computation site. */ + installWindow(entries, hasMore, projections) { + this.events = entries.map((e) => e.event); + this.views = entries.map((e) => e.view); + this.baseSeq = this.events[0]?.seq ?? 0; + this.hasMore = hasMore; + if (this.events.some((event) => event.type === "turn/start")) this.firstPromptPendingTurn = false; + this.conversation.replaceWindow(entries.map(conversationInput), hasMore); + if (projections !== void 0) this.projections.seed(projections); + const buffered = this.liveBuffer; + this.liveBuffer = []; + for (const item of buffered) this.appendLive(item.event, item.view); + this.notifier.markDirty(); + } + /** Seq-guarded append shared by stitching and the open-state live path. */ + appendLive(event, view) { + const tailSeq = this.windowTailSeq(); + if (tailSeq !== null && event.seq <= tailSeq) return "none"; + this.events.push(event); + this.views.push(view); + if (event.type === "turn/start") this.firstPromptPendingTurn = false; + const queueChanged = this.queueMirror.acceptDurable(event); + const publication = this.conversation.append({ + event, + view + }); + return queueChanged ? "immediate" : publication; + } + /** Land a live session/event (open/repair in flight -> buffer; overlapping seq -> drop; + * a seq gap -> buffer + tail-page repull instead of appending a hole (a gap is an + * expected reconnect-window artifact, repaired by refetch). The window stays one contiguous + * raw range, which lets Conversation Definitions correlate every recorded event between its + * ends and lets a compaction checkpoint resolve its cited summary event. */ + acceptLiveEvent(event, view) { + if (this.openState === "loading" || this.stitching) { + this.liveBuffer.push({ + event, + view + }); + return; + } + if (this.openState !== "open") return; + const tailSeq = this.windowTailSeq(); + if (tailSeq !== null && event.seq > tailSeq + 1) { + this.liveBuffer.push({ + event, + view + }); + this.repairGap(); + return; + } + this.scheduleConversation(this.appendLive(event, view)); + } + /** Route assembler cadence into the Session's existing microtask/RAF notifier. */ + scheduleConversation(publication) { + if (publication === "immediate") this.notifier.markDirty(); + else if (publication === "animation-frame") this.notifier.markFrameDirty(); + } + /** Resync-lite: repull the tail page and stitch the liveBuffer through the shared + * installWindow path. No openState transition — the UI keeps the current window (no loading + * flash); events arriving meanwhile detour to liveBuffer via the stitching flag. */ + async repairGap() { + /* v8 ignore next -- re-entry guard: acceptLiveEvent already detours to liveBuffer while stitching, so no second call reaches here. */ + if (this.stitching) return; + this.stitching = true; + const generation = this.openGeneration; + try { + const { result } = await this.history({ maxMessages: 50 }); + if (result.ok && generation === this.openGeneration && this.openState === "open") this.installWindow(result.value.events, result.value.hasMore, result.value.projections); + } catch (error) { + console.error("[web-runtime] gap repair failed:", error); + } finally { + this.stitching = false; + } + } + windowTailSeq() { + const tail = this.events[this.events.length - 1]; + return tail === void 0 ? null : tail.seq; + } + buildSnapshot() { + if (this.pendingCache === null || this.pendingCache.rev !== this.pendingRev) this.pendingCache = { + rev: this.pendingRev, + value: [...this.pending.values()] + }; + const chat = this.conversation.snapshot("chat") ?? EMPTY_CHAT_SNAPSHOT; + const legacy = chat.legacy; + return { + sessionId: this.sessionId, + views: this.conversation, + chat, + nodes: legacy.nodes, + turnTimings: legacy.turnTimings, + turnEnds: legacy.turnEnds, + partial: legacy.partial, + runningCalls: legacy.runningCalls, + pending: this.pendingCache.value, + queue: this.queueMirror.snapshot(), + running: this.running, + subagent: this.address === void 0 ? null : { + address: this.address, + parentAvailable: this.parentAvailable + }, + composerPhase: derivePhase(hasVisibleConversationContent(chat) || !this.blankBit && !this.firstPromptPendingTurn || this.running || this.pendingCache.value.length > 0, this.promptAttempted), + removed: this.removed, + openState: this.openState, + openError: this.openError, + hasMore: this.hasMore, + loadingOlder: this.loadingOlder, + promptError: this.promptError, + blank: this.blankBit, + lastAgentError: this.lastAgentError + }; + } + /** Select ordinary or addressed history transport from the stored browser fact. */ + history(payload) { + return this.address === void 0 ? this.api.sessions.history({ + sessionId: this.sessionId, + ...payload + }) : this.api.subagents.history({ + ...this.address, + ...payload + }); + } + }; + /** Convert one wire history row into the assembler's transport-neutral input. */ + function conversationInput(entry) { + return { + event: entry.event, + view: entry.view + }; + } + /** A generic command row alone remains control-plane content; every other visible Chat Node activates the conversation. */ + function hasVisibleConversationContent(chat) { + return chat.order.some((key) => chat.nodes.get(key)?.kind !== "command"); + } + /** + * The composerPhase judgment — the single site that knows the predicate + * (consumers switch on the result, never re-derive). A failed first prompt + * stays engaging until an authoritative accepted-turn, running, or pending + * signal arrives (retry semantics — see ComposerPhase). + * @param hasContent - authoritative non-blank activity beyond a pending first + * prompt, visible non-command Chat content, a running turn, or a pending interaction. + * @param promptAttempted - a prompt was initiated on this session object. + * @returns the derived phase. + */ + function derivePhase(hasContent, promptAttempted) { + if (hasContent) return "active"; + return promptAttempted ? "engaging" : "blank"; + } + //#endregion + //#region lib/types/client/sessions/manager.js + /** Stable identity of a frame retained until an uninstantiated Session can consume it. */ + function bufferedRequestKey(envelope) { + const frame = envelope.payload; + switch (frame.type) { + case "approval/requested": return `a:${frame.approvalId}`; + case "question/requested": return `q:${envelope.rpcId}`; + case "session/queue": return "queue"; + /* v8 ignore next -- pendingBuffers contains only the three frame types above. */ + default: return; + } + } + /** Match ui-user-questions's binary plan-review routing at the wire boundary. */ + function questionInteractionStatus(questions) { + if (questions.length !== 1) return "question"; + const question = questions[0]; + const intent = question.intent; + if (intent?.kind !== "plan-review" || question.detail === void 0) return "question"; + if (question.multiSelect === true) return "question"; + const options = question.options ?? []; + if (options.length > 2) return "question"; + return options.some((option) => option.label === intent.approve) ? "plan-review" : "question"; + } + /** Instance cluster + frame entry + the session list. */ + var SessionManager = class { + api; + remote; + conversation; + sessions = /* @__PURE__ */ new Map(); + /** Pre-instantiation buffer for answerable requests and the queued-turn snapshot, which history + * cannot reconstruct on open. Live requests remain until resolution; queue and replay duplicates + * compact by identity. Instantiation replays and clears it, while removal drops it. */ + pendingBuffers = /* @__PURE__ */ new Map(); + /** Outstanding answerable interactions per session, keyed by their stable request identity. + * Manager-owned rather than read off Session instances because the sidebar must light up for + * sessions never instantiated. Cleared per connection generation — the reopen replay re-adds + * still-pending requests — and on session-removed. */ + pendingInteractions = /* @__PURE__ */ new Map(); + /** + * Sessions that finished running while not selected — the sidebar's green + * "done" reminder (manager-owned, survives connection generations; cleared + * on select and session-removed, re-armed by the next completion). + */ + completedNotifications = /* @__PURE__ */ new Set(); + /** Last-observed running bits per session; the true→false edge here arms {@link completedNotifications}. */ + prevRunning = /* @__PURE__ */ new Map(); + /** Per-session projection value stores, retained independently of instance arrival (the + * title-snapshot precedent, generalized): push frames land here whether or not the Session + * is instantiated (list rows read the 'title' key), and an instantiated Session adopts the + * same store so history-baseline seeding and frames converge on one row set. */ + projectionStores = /* @__PURE__ */ new Map(); + summaries = []; + listState = "idle"; + /** Arrival phase; the pending → ready edge fires on the first successful pull (see SessionListPhase). */ + listPhase = "pending"; + listError = null; + listInflight = null; + /** Mutations arriving after a list request starts are replayed over its response. */ + listMutations = null; + addresses = /* @__PURE__ */ new Map(); + catalogs = /* @__PURE__ */ new Map(); + catalogInflight = /* @__PURE__ */ new Map(); + /** Catalog owners whose membership changed while a pull was in flight: one trailing refresh after it settles. */ + catalogStale = /* @__PURE__ */ new Set(); + openCatalogs = /* @__PURE__ */ new Set(); + catalogDebounce = /* @__PURE__ */ new Map(); + /** + * Background jobs per session, last-wins from `session/jobs`. An empty set + * is stored as an absent key, so absence and `[]` are one representation. + */ + jobsBySession = /* @__PURE__ */ new Map(); + selected; + listSnapshotCache; + /** Entry-identity cache (reference stability): list rebuilds reuse the previous entry + * object when every field matches — wire refreshes mint all-new summary objects, so identity + * must be recovered by value or every SessionListItem memo misses on every refresh. */ + entryCache = /* @__PURE__ */ new Map(); + itemsCache = []; + notifier = new Notifier(() => { + this.listSnapshotCache = this.buildListSnapshot(); + }); + /** + * @param api - shared wire client. + * @param restoredSelection - persisted real-Session selection candidate. + */ + constructor(api, remote, restoredSelection, restoredAddress, conversation) { + this.api = api; + this.remote = remote; + this.conversation = conversation; + this.selected = restoredSelection; + if (restoredAddress !== void 0) this.addresses.set(restoredAddress.childSessionId, restoredAddress); + this.listSnapshotCache = this.buildListSnapshot(); + } + /** + * Select a listed Session or a retained catalog-addressed child. + * @param sessionId - listed or catalog-addressed Session id. + */ + select(sessionId) { + const address = this.navigationAddress(sessionId); + if (!this.summaries.some((summary) => summary.sessionId === sessionId) && address === void 0) throw new Error(`sessions.select: unknown session ${sessionId}`); + if (address !== void 0) this.addresses.set(sessionId, address); + this.sessions.get(sessionId)?.configureSubagent(address, address === void 0 ? false : this.catalogs.get(address.parentSessionId)?.parentAvailable ?? false); + this.selected = sessionId; + this.completedNotifications.delete(sessionId); + this.refreshSubagents(sessionId); + this.notifier.notifyNow(); + } + /** + * Select a healthy child through its durable direct-parent address. + * @param address - catalog-derived parent and child ids. + */ + selectSubagent(address) { + const catalog = this.catalogs.get(address.parentSessionId); + const entry = catalog?.entries.find((candidate) => candidate.id === address.childSessionId); + if (entry === void 0 || entry.kind !== "child" || entry.mode !== address.mode) throw new Error(`sessions.selectSubagent: ${address.childSessionId} is not a healthy catalog child`); + this.addresses.set(address.childSessionId, address); + this.sessions.get(address.childSessionId)?.configureSubagent(address, catalog?.parentAvailable ?? false); + this.selected = address.childSessionId; + this.completedNotifications.delete(address.childSessionId); + this.refreshSubagents(address.childSessionId); + this.notifier.notifyNow(); + } + /** Clear the selection (the layout falls to the no-session view state). */ + clearSelection() { + this.selected = void 0; + this.notifier.notifyNow(); + } + /** + * Return the durable catalog address retained for one child. + * @param sessionId - possible addressed child id. + * @returns The direct-parent address, when navigation discovered one. + */ + subagentAddress(sessionId) { + return this.addresses.get(sessionId); + } + /** + * Resolve an address for breadcrumb navigation without retaining transport authority. + * @param sessionId - possible child id in an already-loaded catalog. + * @returns A retained or catalog-derived direct-parent address. + */ + navigationAddress(sessionId) { + const retained = this.addresses.get(sessionId); + if (retained !== void 0) return retained; + for (const [parentSessionId, catalog] of this.catalogs) { + const child = catalog.entries.find((entry) => entry.kind === "child" && entry.id === sessionId); + if (child?.kind === "child") return { + parentSessionId, + childSessionId: sessionId, + mode: child.mode + }; + } + } + /** + * Drop a session instance (scope-prune companion: instance + * and scope share one lifecycle). The host session log is the durable + * truth — a later get() lazily rebuilds and open() backfills history. + * @param sessionId - the session to drop. + */ + drop(sessionId) { + this.sessions.delete(sessionId); + } + /** + * Lazy build: return the existing instance or construct one (no auto-open — + * open is triggered by the container's select callback). + * @param sessionId - the session to get. + * @returns the resident instance. + */ + get(sessionId) { + let session = this.sessions.get(sessionId); + if (session === void 0) { + session = this.createSession(sessionId); + this.sessions.set(sessionId, session); + const buffered = this.pendingBuffers.get(sessionId); + if (buffered !== void 0) { + this.pendingBuffers.delete(sessionId); + for (const envelope of buffered) session.handleMuxEnvelope(envelope.rpcId, envelope.payload); + } + const summary = this.summaries.find((s) => s.sessionId === sessionId); + if (summary !== void 0) { + session.handleBlank(summary.blank); + session.handleRunning(summary.running); + } else { + const address = this.addresses.get(sessionId); + const child = address === void 0 ? void 0 : this.catalogs.get(address.parentSessionId)?.entries.find((entry) => entry.kind === "child" && entry.id === sessionId); + if (child?.kind === "child") { + session.handleBlank(false); + session.handleRunning(child.activity === "running"); + } + } + } + return session; + } + createSession(sessionId) { + const address = this.addresses.get(sessionId); + return new Session(sessionId, this.api, this.remote, { + ...address === void 0 ? {} : { + address, + parentAvailable: this.catalogs.get(address.parentSessionId)?.parentAvailable ?? false + }, + onEngaged: (engaged) => { + this.recordMutation({ + kind: "engaged", + sessionId: engaged.sessionId + }); + }, + projections: this.projectionStore(sessionId), + ...this.conversation === void 0 ? {} : { conversation: this.conversation } + }); + } + /** Rebuild every resident Session after one coalesced registry transaction. */ + rebuildConversationRegistry() { + for (const session of this.sessions.values()) session.rebuildConversationRegistry(); + } + /** Resident per-session projection store (create-on-demand; outlives instantiation). */ + projectionStore(sessionId) { + let store = this.projectionStores.get(sessionId); + if (store === void 0) { + store = new ProjectionValueStore(); + store.subscribeAny(() => { + this.notifier.markDirty(); + }); + this.projectionStores.set(sessionId, store); + } + return store; + } + /** + * Refresh one direct-child catalog, reusing its in-flight request. + * @param parentSessionId - catalog owner. + */ + refreshSubagents(parentSessionId) { + const existing = this.catalogInflight.get(parentSessionId); + if (existing !== void 0) return existing.promise; + const previous = this.catalogs.get(parentSessionId); + const expandableRows = /* @__PURE__ */ new Set(); + const activityRows = /* @__PURE__ */ new Map(); + this.catalogs.set(parentSessionId, { + entries: previous?.entries ?? [], + parentAvailable: previous?.parentAvailable ?? false, + state: "loading", + error: null + }); + this.notifier.markDirty(); + const operation = (async () => { + try { + const { result } = await this.api.subagents.list({ parentSessionId }); + if (result.ok) { + const parentAvailable = this.catalogInflight.get(parentSessionId)?.parentAvailableOverride ?? result.value.parentAvailable; + this.catalogs.set(parentSessionId, { + ...result.value, + entries: this.withCatalogMutations(result.value.entries, expandableRows, activityRows), + parentAvailable, + state: "ready", + error: null + }); + for (const [childId, address] of this.addresses) { + if (address.parentSessionId !== parentSessionId) continue; + this.sessions.get(childId)?.handleSubagentParentAvailable(parentAvailable); + } + } else this.catalogs.set(parentSessionId, { + entries: this.withCatalogMutations(previous?.entries ?? [], expandableRows, activityRows), + parentAvailable: this.catalogInflight.get(parentSessionId)?.parentAvailableOverride ?? previous?.parentAvailable ?? false, + state: "error", + error: result.error + }); + } catch (error) { + const folded = transportError(error); + this.catalogs.set(parentSessionId, { + entries: this.withCatalogMutations(previous?.entries ?? [], expandableRows, activityRows), + parentAvailable: this.catalogInflight.get(parentSessionId)?.parentAvailableOverride ?? previous?.parentAvailable ?? false, + state: "error", + error: folded.ok ? null : folded.error + }); + } finally { + this.catalogInflight.delete(parentSessionId); + if (this.catalogStale.delete(parentSessionId)) this.refreshSubagents(parentSessionId); + this.notifier.markDirty(); + } + })(); + this.catalogInflight.set(parentSessionId, { + promise: operation, + expandableRows, + activityRows, + parentAvailableOverride: void 0 + }); + return operation; + } + /** + * Mark whether a catalog menu is consuming live membership updates. + * @param parentSessionId - catalog owner. + * @param open - current menu state. + */ + setSubagentCatalogOpen(parentSessionId, open) { + if (open) { + this.openCatalogs.add(parentSessionId); + this.refreshSubagents(parentSessionId); + } else { + this.openCatalogs.delete(parentSessionId); + const timer = this.catalogDebounce.get(parentSessionId); + if (timer !== void 0) { + clearTimeout(timer); + this.catalogDebounce.delete(parentSessionId); + } + } + } + /** Full refresh via session.list (single-flight: an in-flight call is reused). */ + refreshList() { + if (this.listInflight !== null) return this.listInflight; + this.listState = "loading"; + this.listError = null; + const established = this.summaries; + const mutations = []; + this.listMutations = mutations; + this.notifier.markDirty(); + this.listInflight = (async () => { + try { + const { result } = await this.api.sessions.list({}); + if (result.ok) { + const baseline = this.listPhase === "pending" ? result.value.items : mergeOrderedBaseline(established, result.value.items, (summary) => summary.sessionId); + for (const s of baseline) if (!this.prevRunning.has(s.sessionId)) this.prevRunning.set(s.sessionId, s.running); + let summaries = baseline; + for (const mutation of mutations) { + summaries = applyMutation(summaries, mutation); + this.summaries = summaries; + this.syncCompletedNotifications(); + } + this.summaries = summaries; + this.listState = "idle"; + this.listPhase = "ready"; + this.syncCompletedNotifications(); + for (const s of this.summaries) { + const session = this.sessions.get(s.sessionId); + if (session === void 0) continue; + session.handleBlank(s.blank); + session.handleRunning(s.running); + } + for (const s of result.value.items) { + const block = s.projections; + if (block === void 0) continue; + const store = this.projectionStore(s.sessionId); + const values = block.values; + for (const key of Object.keys(values)) store.apply(key, values[key], block.asOfSeq); + } + } else { + this.listState = "error"; + this.listError = result.error; + } + } catch (error) { + this.listState = "error"; + const folded = transportError(error); + /* v8 ignore next -- the `? null` arm is unreachable: transportError always returns ok:false. */ + this.listError = folded.ok ? null : folded.error; + } finally { + this.listMutations = null; + this.listInflight = null; + this.notifier.markDirty(); + } + })(); + return this.listInflight; + } + /** + * Search visible session message content without adding transient query + * state to the list snapshot. + * @param query - non-blank literal phrase. + * @param signal - cancellation for superseded UI queries. + * @returns the Host result or a folded transport error. + */ + async search(query, signal) { + try { + return (await this.api.sessions.search({ query }, signal)).result; + } catch (error) { + return transportError(error); + } + } + /** + * Contract session.create; on success merge into summaries immediately (no + * wait for the next refresh). A created session is blank by definition + * (entity birth precedes the first message). + * @param opts - target workspace or working directory, plus an optional caller-owned id. + * @returns the create result. + */ + async create(opts = {}) { + try { + const shared = opts.sessionId === void 0 ? {} : { sessionId: opts.sessionId }; + const payload = opts.workspaceId !== void 0 ? { + workspaceId: opts.workspaceId, + ...shared + } : { + ...opts.cwd === void 0 ? {} : { cwd: opts.cwd }, + ...shared + }; + const { result } = await this.api.sessions.create(payload); + if (result.ok) this.recordMutation({ + kind: "upsert", + summary: { + sessionId: result.value.sessionId, + updatedAt: Date.now(), + running: false, + blank: true, + ...opts.cwd !== void 0 ? { cwd: opts.cwd } : {}, + ...result.value.agentPreset !== void 0 ? { agentPreset: result.value.agentPreset } : {} + } + }); + else { + const publishedSessionId = workspaceAttachSessionId(result.error); + if (publishedSessionId !== void 0) this.recordMutation({ + kind: "upsert", + summary: { + sessionId: publishedSessionId, + updatedAt: Date.now(), + running: false, + blank: true + } + }); + } + return result; + } catch (error) { + return transportError(error); + } + } + /** + * Contract session.fork; on success merge the child into summaries + * immediately (same synchronous-addressability guarantee as create). The + * child carries the source's history, so it is never blank; lineage rides + * parentSessionId so the list nests it under its source. A child published + * before Workspace attachment fails is also reconciled into the list. + * @param opts - source session and the optional seq anchoring the cut. + * @returns the fork result (the child session id). + */ + async fork(opts) { + try { + const source = this.summaries.find((s) => s.sessionId === opts.sessionId); + const { result } = await this.api.sessions.fork({ + sessionId: opts.sessionId, + ...opts.atSeq === void 0 ? {} : { atSeq: opts.atSeq } + }); + const childId = result.ok ? result.value.sessionId : workspaceAttachSessionId(result.error); + if (childId !== void 0) this.recordMutation({ + kind: "upsert", + summary: { + sessionId: childId, + updatedAt: Date.now(), + running: false, + blank: false, + parentSessionId: opts.sessionId, + ...source?.cwd !== void 0 ? { cwd: source.cwd } : {} + } + }); + return result; + } catch (error) { + return transportError(error); + } + } + /** + * Insert-or-enrich a locally synthesized summary: a new id prepends; an + * existing entry only gains fields it lacks (the session-added frame and the + * create() echo race — whichever lands second must fill the placeholder's + * missing cwd/parentSessionId, never overwrite list-refresh data). + */ + mergeSummary(summary) { + this.recordMutation({ + kind: "upsert", + summary + }); + } + /** + * Record a host-confirmed composition switch (see ISessions.noteAgentPreset). + * @param sessionId - the switched session. + * @param agentPreset - the preset id the host confirmed. + */ + noteAgentPreset(sessionId, agentPreset) { + this.recordMutation({ + kind: "upsert", + summary: { + sessionId, + updatedAt: Date.now(), + running: false, + blank: true, + agentPreset + } + }); + } + /** Apply immediately and retain for replay when a list response is in flight. */ + recordMutation(mutation) { + this.listMutations?.push(mutation); + this.summaries = applyMutation(this.summaries, mutation); + this.syncCompletedNotifications(); + this.notifier.markDirty(); + } + /** + * uSES subscription entry for useSessionList. + * @param listener - change callback. + * @returns the unsubscribe function. + */ + subscribe(listener) { + return this.notifier.subscribe(listener); + } + /** + * Cached list snapshot (rebuilt lazily when dirty with no listeners). + * @returns the cached reference (stable until the next flush). + */ + getListSnapshot() { + this.notifier.ensureFresh(); + return this.listSnapshotCache; + } + /** Add or refresh one stable pending-interaction identity. */ + trackPending(sessionId, key, status) { + let interactions = this.pendingInteractions.get(sessionId); + if (interactions === void 0) { + interactions = /* @__PURE__ */ new Map(); + this.pendingInteractions.set(sessionId, interactions); + } + if (interactions.get(key) === status) return; + interactions.set(key, status); + this.notifier.markDirty(); + } + /** Settle one pending-interaction identity without disturbing sibling waits. */ + resolvePending(sessionId, key) { + const interactions = this.pendingInteractions.get(sessionId); + if (interactions === void 0 || !interactions.delete(key)) return; + if (interactions.size === 0) this.pendingInteractions.delete(sessionId); + this.notifier.markDirty(); + } + /** + * Mux frame entry: sessionId-bearing frames go only to instantiated sessions + * (no lazy build; non-pending frames for uninstantiated sessions drop — + * history backfills them on open). + * @param envelope - the frame with its wire rpcId. + */ + handleMuxEnvelope(envelope) { + const frame = envelope.payload; + if (frame.type === "stream/error") return; + if (frame.type === "session/event" && frame.event.type === "user/message" && frame.event.data.source.kind === "user") this.recordMutation({ + kind: "activity", + sessionId: frame.sessionId, + updatedAt: frame.event.time + }); + if (frame.type === "session/projection") { + this.projectionStore(frame.sessionId).apply(frame.key, frame.value, frame.seq); + this.notifier.markDirty(); + return; + } + if (frame.type === "session/jobs") { + if (frame.jobs.length === 0) this.jobsBySession.delete(frame.sessionId); + else this.jobsBySession.set(frame.sessionId, frame.jobs); + this.notifier.markDirty(); + return; + } + if (frame.type === "session/subscribed") { + this.projectionStores.get(frame.sessionId)?.truncate(frame.lastSeq); + this.jobsBySession.delete(frame.sessionId); + this.notifier.markDirty(); + const buffered = this.pendingBuffers.get(frame.sessionId); + if (buffered !== void 0) { + const kept = buffered.filter((item) => item.payload.type !== "session/queue"); + if (kept.length !== buffered.length) if (kept.length === 0) this.pendingBuffers.delete(frame.sessionId); + else this.pendingBuffers.set(frame.sessionId, kept); + } + } + if (frame.type === "approval/requested") this.trackPending(frame.sessionId, `a:${frame.approvalId}`, "approval"); + else if (frame.type === "approval/resolved") this.resolvePending(frame.sessionId, `a:${frame.approvalId}`); + else if (frame.type === "question/requested") this.trackPending(frame.sessionId, `q:${envelope.rpcId}`, questionInteractionStatus(frame.questions)); + else if (frame.type === "question/resolved") this.resolvePending(frame.sessionId, `q:${frame.questionRpcId}`); + const session = this.sessions.get(frame.sessionId); + if (session === void 0) switch (frame.type) { + case "approval/requested": + case "question/requested": + case "session/queue": { + const buffer = this.pendingBuffers.get(frame.sessionId) ?? []; + const key = frame.type === "approval/requested" ? `a:${frame.approvalId}` : frame.type === "question/requested" ? `q:${envelope.rpcId}` : "queue"; + const prior = buffer.findIndex((item) => bufferedRequestKey(item) === key); + if (prior === -1) buffer.push(envelope); + else buffer[prior] = envelope; + this.pendingBuffers.set(frame.sessionId, buffer); + return; + } + case "approval/resolved": + case "question/resolved": { + const buffer = this.pendingBuffers.get(frame.sessionId); + if (buffer === void 0) return; + const key = frame.type === "approval/resolved" ? `a:${frame.approvalId}` : `q:${frame.questionRpcId}`; + const prior = buffer.findIndex((item) => bufferedRequestKey(item) === key); + if (prior !== -1) buffer.splice(prior, 1); + if (buffer.length === 0) this.pendingBuffers.delete(frame.sessionId); + return; + } + default: return; + } + session.handleMuxEnvelope(envelope.rpcId, frame); + } + /** + * Host frame entry: list upkeep + per-instance running/removed/agent-error relay. + * @param envelope - the frame with its wire rpcId. + */ + handleHostEnvelope(envelope) { + const frame = envelope.payload; + switch (frame.type) { + case "host/session-added": + this.mergeSummary({ + sessionId: frame.sessionId, + updatedAt: Date.now(), + running: false, + blank: frame.blank, + ...frame.parentSessionId !== void 0 ? { parentSessionId: frame.parentSessionId } : {}, + ...frame.origin !== void 0 ? { origin: frame.origin } : {}, + ...frame.cwd !== void 0 ? { cwd: frame.cwd } : {}, + ...frame.agentPreset !== void 0 ? { agentPreset: frame.agentPreset } : {} + }); + this.sessions.get(frame.sessionId)?.handleBlank(frame.blank); + if (frame.origin === "subagent" && frame.parentSessionId !== void 0) this.markCatalogParentExpandable(frame.parentSessionId); + if (frame.parentSessionId !== void 0 && (this.selected === frame.parentSessionId || this.openCatalogs.has(frame.parentSessionId))) this.scheduleCatalogRefresh(frame.parentSessionId); + return; + case "host/session-removed": { + const durableSubagent = this.summaries.find((candidate) => candidate.sessionId === frame.sessionId)?.origin === "subagent" || this.addresses.has(frame.sessionId); + this.recordMutation(durableSubagent ? { + kind: "status", + sessionId: frame.sessionId, + running: false + } : { + kind: "remove", + sessionId: frame.sessionId + }); + this.updateCatalogActivity(frame.sessionId, false); + if (durableSubagent) this.sessions.get(frame.sessionId)?.handleRunning(false); + else this.sessions.get(frame.sessionId)?.handleRemoved(); + this.pendingBuffers.delete(frame.sessionId); + this.pendingInteractions.delete(frame.sessionId); + this.jobsBySession.delete(frame.sessionId); + if (!durableSubagent) this.projectionStores.delete(frame.sessionId); + const inflightCatalog = this.catalogInflight.get(frame.sessionId); + if (inflightCatalog !== void 0) { + inflightCatalog.parentAvailableOverride = false; + this.catalogStale.add(frame.sessionId); + } + const ownedCatalog = this.catalogs.get(frame.sessionId); + if (ownedCatalog !== void 0 && ownedCatalog.parentAvailable) this.catalogs.set(frame.sessionId, { + ...ownedCatalog, + parentAvailable: false + }); + for (const [childId, address] of this.addresses) { + if (address.parentSessionId !== frame.sessionId) continue; + this.sessions.get(childId)?.handleSubagentParentAvailable(false); + } + return; + } + case "host/session-status": + this.recordMutation({ + kind: "status", + sessionId: frame.sessionId, + running: frame.running + }); + this.sessions.get(frame.sessionId)?.handleRunning(frame.running); + this.updateCatalogActivity(frame.sessionId, frame.running); + return; + case "host/agent-error": + this.sessions.get(frame.sessionId)?.handleAgentError(frame.message); + return; + default: return; + } + } + /** + * The moment a connection generation dies (before any next-generation frame + * can arrive — onConnected waits for the readiness handshake while replayed + * frames flow from stream open, so clearing there would race the replay): + * drop generation-scoped live state. Interactions resolved while disconnected + * send no frame, so stale statuses and buffered answerable frames must not + * survive into the next generation — mux-open replay re-adds every still-pending + * request with its live rpcId. + */ + handleDisconnected() { + if (this.pendingInteractions.size > 0) { + this.pendingInteractions.clear(); + this.notifier.markDirty(); + } + for (const [sessionId, buffer] of [...this.pendingBuffers]) { + const kept = buffer.filter((item) => item.payload.type !== "approval/requested" && item.payload.type !== "question/requested"); + if (kept.length === buffer.length) continue; + if (kept.length === 0) this.pendingBuffers.delete(sessionId); + else this.pendingBuffers.set(sessionId, kept); + } + } + /** After each connection generation: refresh the session baseline and rebuild opened windows. */ + handleConnected() { + this.refreshList(); + const selectedAddress = this.selected === void 0 ? void 0 : this.addresses.get(this.selected); + if (selectedAddress !== void 0) this.refreshSubagents(selectedAddress.parentSessionId); + if (this.selected !== void 0) this.refreshSubagents(this.selected); + for (const parentSessionId of this.openCatalogs) this.refreshSubagents(parentSessionId); + for (const session of this.sessions.values()) session.resync(); + } + /** Debounce membership refetches while one parent catalog is selected or open. */ + scheduleCatalogRefresh(parentSessionId) { + if (this.catalogDebounce.has(parentSessionId)) return; + const timer = setTimeout(() => { + this.catalogDebounce.delete(parentSessionId); + if (this.catalogInflight.has(parentSessionId)) { + this.catalogStale.add(parentSessionId); + return; + } + this.refreshSubagents(parentSessionId); + }, 50); + this.catalogDebounce.set(parentSessionId, timer); + } + /** Apply one Agent-driver transition to loaded and in-flight catalogs. */ + updateCatalogActivity(childSessionId, running) { + const activity = running ? "running" : "inactive"; + for (const inflight of this.catalogInflight.values()) inflight.activityRows.set(childSessionId, activity); + let changed = false; + for (const [parentSessionId, catalog] of this.catalogs) { + if (!catalog.entries.some((entry) => entry.kind === "child" && entry.id === childSessionId && entry.activity !== activity)) continue; + const entries = catalog.entries.map((entry) => { + if (entry.kind !== "child" || entry.id !== childSessionId) return entry; + return { + ...entry, + activity + }; + }); + changed = true; + this.catalogs.set(parentSessionId, { + ...catalog, + entries + }); + } + if (changed) this.notifier.markDirty(); + } + /** Preserve and project a positive expandability hint after one direct subagent publishes. */ + markCatalogParentExpandable(parentSessionId) { + this.applyCatalogParentExpandable(parentSessionId); + for (const inflight of this.catalogInflight.values()) inflight.expandableRows.add(parentSessionId); + } + /** Apply one positive expandability hint to every loaded catalog containing that unique row id. */ + applyCatalogParentExpandable(parentSessionId) { + let changed = false; + for (const [catalogParentId, catalog] of this.catalogs) { + if (!catalog.entries.some((entry) => entry.kind === "child" && entry.id === parentSessionId && !entry.hasChildren)) continue; + const entries = catalog.entries.map((entry) => { + if (entry.kind !== "child" || entry.id !== parentSessionId || entry.hasChildren) return entry; + return { + ...entry, + hasChildren: true + }; + }); + changed = true; + this.catalogs.set(catalogParentId, { + ...catalog, + entries + }); + } + if (changed) this.notifier.markDirty(); + } + /** Fold request-local row mutations into one catalog result before publication. */ + withCatalogMutations(entries, expandableRows, activityRows) { + return entries.map((entry) => { + if (entry.kind !== "child") return entry; + const activity = activityRows.get(entry.id); + if (!expandableRows.has(entry.id) && activity === void 0) return entry; + return { + ...entry, + ...expandableRows.has(entry.id) ? { hasChildren: true } : {}, + ...activity === void 0 ? {} : { activity } + }; + }); + } + /** + * Reconcile completion reminders against the latest summaries, eagerly after + * every mutation and pull (a snapshot-build-time pass would collapse + * consecutive status frames into one observation). A running→idle edge of a + * non-selected session arms its reminder; running disarms it; removal drops + * it. First observation only records the running bit — sessions already + * idle at load get no reminder. + */ + syncCompletedNotifications() { + const seen = /* @__PURE__ */ new Set(); + for (const s of this.summaries) { + seen.add(s.sessionId); + const prev = this.prevRunning.get(s.sessionId); + if (prev === void 0) { + this.prevRunning.set(s.sessionId, s.running); + continue; + } + if (prev && !s.running) { + if (s.sessionId !== this.selected) this.completedNotifications.add(s.sessionId); + } else if (s.running) this.completedNotifications.delete(s.sessionId); + this.prevRunning.set(s.sessionId, s.running); + } + for (const id of this.prevRunning.keys()) if (!seen.has(id)) this.prevRunning.delete(id); + for (const id of this.completedNotifications) if (!seen.has(id)) this.completedNotifications.delete(id); + } + buildListSnapshot() { + const merged = this.summaries.map((summary) => { + const projectionStore = this.projectionStores.get(summary.sessionId); + const title = projectionStore?.get("title"); + const projectionValues = projectionStore?.values(); + return { + ...summary, + ...typeof title === "string" && title !== "" ? { title } : {}, + ...projectionValues === void 0 ? {} : { projectionValues } + }; + }); + const pendingInteractions = /* @__PURE__ */ new Map(); + for (const [sessionId, interactions] of this.pendingInteractions) { + const statuses = [...interactions.values()]; + const status = statuses.find((candidate) => candidate !== "approval") ?? statuses[0]; + if (status !== void 0) pendingInteractions.set(sessionId, status); + } + const items = flattenLineage(merged, pendingInteractions, this.completedNotifications).map((entry) => { + const prev = this.entryCache.get(entry.sessionId); + if (prev !== void 0 && prev.updatedAt === entry.updatedAt && prev.running === entry.running && prev.blank === entry.blank && prev.agentPreset === entry.agentPreset && prev.parentSessionId === entry.parentSessionId && prev.cwd === entry.cwd && prev.origin === entry.origin && prev.title === entry.title && prev.depth === entry.depth && prev.pendingInteraction === entry.pendingInteraction && prev.projectionValues === entry.projectionValues && prev.completed === entry.completed) return prev; + this.entryCache.set(entry.sessionId, entry); + return entry; + }); + for (const id of this.entryCache.keys()) if (!items.some((e) => e.sessionId === id)) this.entryCache.delete(id); + if (!(items.length === this.itemsCache.length && items.every((e, i) => e === this.itemsCache[i]))) this.itemsCache = items; + const selected = this.selected; + const current = selected !== void 0 && (items.some((item) => item.sessionId === selected) || this.addresses.has(selected)) ? selected : void 0; + return { + items: this.itemsCache, + current, + state: this.listState, + phase: this.listPhase, + error: this.listError, + subagentsByParent: Object.fromEntries(this.catalogs), + jobsBySession: Object.fromEntries(this.jobsBySession), + currentAddress: current === void 0 ? void 0 : this.addresses.get(current) + }; + } + }; + /** Apply one list mutation without deriving display order. */ + function applyMutation(summaries, mutation) { + switch (mutation.kind) { + case "upsert": { + const existing = summaries.find((summary) => summary.sessionId === mutation.summary.sessionId); + if (existing === void 0) return [mutation.summary, ...summaries]; + const filled = { + ...existing, + blank: existing.blank && mutation.summary.blank, + ...existing.cwd === void 0 && mutation.summary.cwd !== void 0 ? { cwd: mutation.summary.cwd } : {}, + ...existing.parentSessionId === void 0 && mutation.summary.parentSessionId !== void 0 ? { parentSessionId: mutation.summary.parentSessionId } : {}, + ...existing.origin === void 0 && mutation.summary.origin !== void 0 ? { origin: mutation.summary.origin } : {}, + ...mutation.summary.agentPreset !== void 0 ? { agentPreset: mutation.summary.agentPreset } : {} + }; + if (filled.cwd === existing.cwd && filled.parentSessionId === existing.parentSessionId && filled.origin === existing.origin && filled.blank === existing.blank && filled.agentPreset === existing.agentPreset) return [...summaries]; + return summaries.map((summary) => summary.sessionId === mutation.summary.sessionId ? filled : summary); + } + case "remove": return summaries.filter((summary) => summary.sessionId !== mutation.sessionId); + case "status": return summaries.map((summary) => summary.sessionId === mutation.sessionId && (summary.running !== mutation.running || mutation.running && summary.blank) ? { + ...summary, + running: mutation.running, + blank: summary.blank && !mutation.running + } : summary); + case "activity": return summaries.map((summary) => summary.sessionId === mutation.sessionId && mutation.updatedAt > summary.updatedAt ? { + ...summary, + updatedAt: mutation.updatedAt + } : summary); + case "engaged": return summaries.map((summary) => summary.sessionId === mutation.sessionId && summary.blank ? { + ...summary, + blank: false + } : summary); + } + } + /** Temporary source-plane bridge while the Host contract and client project build independently. */ + function workspaceAttachSessionId(error) { + const candidate = error; + return candidate.code === "workspace-attach-failed" ? candidate.details.sessionId : void 0; + } + //#endregion + //#region lib/types/client/sessions/provide.js + /** + * Provider roster + materialization + current projection. The channel owns + * every rule a provider contribution must satisfy; owners keep only their + * per-session bundle storage and the definition of "current". + */ + var SessionProvideChannel = class { + host; + providers = []; + maybeInfoCache; + /** Latest published current bundle (identity comparison dedupes republish). */ + currentSnapshot; + /** Projection subscribers (plain cell: bundles hold live session sources, so no store freeze may touch them). */ + listeners = /* @__PURE__ */ new Set(); + /** + * Atomic current-session provide projection: selection changes and + * provider-roster changes publish through this one source, so a roster + * change under a stable current id republishes the bundle instead of + * stranding mounted entries. + */ + currentProvideInfo; + /** + * @param host - owner-side bundle storage and current-selection resolution. + */ + constructor(host) { + this.host = host; + this.providers.push({ + hooks: ["session"], + resolve: (binding) => ({ hooks: { session: binding.session } }) + }); + this.maybeInfoCache = this.materializeMaybeInfo(); + this.currentSnapshot = this.maybeInfoCache; + this.currentProvideInfo = { + getSnapshot: () => this.currentSnapshot, + subscribe: (fn) => { + this.listeners.add(fn); + return () => { + this.listeners.delete(fn); + }; + } + }; + } + /** The static no-session projection under the current roster (declared names present, values undefined). */ + get maybeInfo() { + return this.maybeInfoCache; + } + /** + * Register a per-session standard-props provider (see + * SessionRuntime.provide for the product contract). Live bundles rebuild + * immediately; misdeclared providers fail loud here, at the registration + * edge, and the registration rolls back — the channel never stays on a + * roster it cannot materialize. + * @param descriptor - static member roster plus per-session resolver. + * @returns disposer removing the provider. + */ + provide(descriptor) { + this.providers.push(descriptor); + try { + this.applyRosterChange(); + } catch (error) { + this.providers.splice(this.providers.indexOf(descriptor), 1); + this.applyRosterChange(); + throw error; + } + return () => { + const at = this.providers.indexOf(descriptor); + if (at >= 0) this.providers.splice(at, 1); + this.applyRosterChange(); + }; + } + /** + * Re-derive the current selection's bundle and publish it when it changed. + * Bundles are identity-stable per (scope, roster) materialization, so an + * identity compare is exact; synchronous notify — call sites (the owner's + * list subscription, provide()) already sit behind their own batching or + * registration edges. + */ + publishCurrent() { + const next = this.host.resolveCurrent(); + if (next === this.currentSnapshot) return; + this.currentSnapshot = next; + for (const fn of [...this.listeners]) try { + fn(); + } catch (error) { + console.error("sessions.currentProvideInfo subscriber failed:", error); + } + } + /** + * Materialize the standard-props bundle for one session (fails loud on + * undeclared, missing, and duplicate member names). + * @param binding - session assembly handle fed to every resolver. + * @returns the materialized bundle (identity-stable until the next materialization). + */ + materializeInfo(binding) { + const hooks = {}; + const props = {}; + for (const descriptor of this.providers) { + const contribution = descriptor.resolve(binding); + const contributedHooks = contribution.hooks ?? {}; + const contributedProps = contribution.props ?? {}; + for (const name of Object.keys(contributedHooks)) if (!(descriptor.hooks ?? []).includes(name)) throw new Error(`sessions.provide: undeclared hook "${name}"`); + for (const name of Object.keys(contributedProps)) if (!(descriptor.props ?? []).includes(name)) throw new Error(`sessions.provide: undeclared prop "${name}"`); + for (const name of descriptor.hooks ?? []) { + const source = contributedHooks[name]; + if (source === void 0) throw new Error(`sessions.provide: missing hook "${name}"`); + if (Object.hasOwn(hooks, name)) throw new Error(`sessions.provide: duplicate hook "${name}"`); + hooks[name] = source; + } + for (const name of descriptor.props ?? []) { + if (!Object.hasOwn(contributedProps, name)) throw new Error(`sessions.provide: missing prop "${name}"`); + if (Object.hasOwn(props, name)) throw new Error(`sessions.provide: duplicate prop "${name}"`); + props[name] = contributedProps[name]; + } + } + return { + sessionId: binding.sessionId, + hooks, + props, + projections: { faceOf: (key) => binding.session.projections.faceOf(key) } + }; + } + /** Rebuild the static projection and the owner's live bundles, then republish the current one. */ + applyRosterChange() { + this.maybeInfoCache = this.materializeMaybeInfo(); + this.host.rebuildBundles(); + this.publishCurrent(); + } + /** Build the static no-session kit and reject duplicate declared names. */ + materializeMaybeInfo() { + const hooks = {}; + const props = {}; + for (const descriptor of this.providers) { + for (const name of descriptor.hooks ?? []) { + if (Object.hasOwn(hooks, name)) throw new Error(`sessions.provide: duplicate hook "${name}"`); + hooks[name] = void 0; + } + for (const name of descriptor.props ?? []) { + if (Object.hasOwn(props, name)) throw new Error(`sessions.provide: duplicate prop "${name}"`); + props[name] = void 0; + } + } + return { + sessionId: void 0, + hooks, + props + }; + } + }; + //#endregion + //#region lib/types/client/sessions/service.js + /** Structured session-create failure. */ + var SessionCreateError = class extends Error { + rpcError; + requestedSessionId; + name = "SessionCreateError"; + /** + * @param rpcError - Host business or folded transport error. + * @param requestedSessionId - caller-preallocated id used for later stream/list reconciliation. + */ + constructor(rpcError, requestedSessionId) { + super(`session create failed: ${rpcError.code}: ${rpcError.message}`); + this.rpcError = rpcError; + this.requestedSessionId = requestedSessionId; + } + }; + /** Structured session-fork failure. */ + var SessionForkError = class extends Error { + rpcError; + sourceSessionId; + name = "SessionForkError"; + /** + * @param rpcError - Host business or folded transport error. + * @param sourceSessionId - the session the fork was cut from. + */ + constructor(rpcError, sourceSessionId) { + super(`session fork failed: ${rpcError.code}: ${rpcError.message}`); + this.rpcError = rpcError; + this.sourceSessionId = sourceSessionId; + } + }; + /** + * Workspace display title of a session cwd: the path's last non-empty + * segment (both separators accepted; trailing separators ignored), or '' + * for separator-only paths — callers own their fallback (session id, raw + * cwd, default-directory copy). The repo-wide single basename derivation — + * every surface naming a workspace (picker rows, toggle labels, list titles) + * calls this instead of re-splitting paths. + * @param cwd - workspace directory path. + * @returns basename title, or '' when no non-empty segment exists. + */ + function workspaceTitleOf(cwd) { + return cwd.replace(/[/\\]+$/, "").split(/[/\\]/).pop() ?? ""; + } + /** + * Display title projection: durable title, project directory basename, then + * the raw id. + */ + function displayTitleOf(title, cwd, id) { + if (title !== void 0) return title; + if (cwd !== void 0 && cwd !== "") { + const base = workspaceTitleOf(cwd); + if (base !== "") return base; + } + return id; + } + /** + * Increment a trailing fork number while preserving its half-width or + * full-width parentheses; an unnumbered title starts with ` (1)`. + * @param title - source session's durable title. + * @returns the title assigned to the fork child. + */ + function increasedForkTitle(title) { + const ascii = /^(.*?)\((\d+)\)$/u.exec(title); + if (ascii?.[1] !== void 0 && ascii[2] !== void 0) return `${ascii[1]}(${BigInt(ascii[2]) + 1n})`; + const fullWidth = /^(.*?)((\d+))$/u.exec(title); + if (fullWidth?.[1] !== void 0 && fullWidth[2] !== void 0) return `${fullWidth[1]}(${BigInt(fullWidth[2]) + 1n})`; + return `${title} (1)`; + } + /** Root sessions service: list store, current selection, object-layer manager, scope tree, bindings, and breadcrumb routes. */ + var SessionRuntime = class { + rootCtx; + /** + * The wire schema's own result bound, re-exposed for presentation plugins as + * injected data. Not per-connection state: the `session.search` response + * schema caps `items` at this constant, so every transport (fixture included) + * reports the same number. + */ + searchResultLimit = 20; + /** List snapshot store (list RPC + host stream increments; re-pulled on reconnect) — the useSessions standard feed, current included. */ + list; + /** The object-layer instance cluster and frame dispatch entry. */ + manager; + /** + * Atomic current-session provide projection: selection changes and + * provider-roster changes publish through this one source (the renderer + * host's `sessions.provide` feed), so a roster change under a stable + * current id republishes the bundle instead of stranding mounted entries. + */ + currentProvideInfo; + /** + * Persisted selection cell (the durable half of `list.current`). Private on + * purpose: reads go through the list snapshot; writes through {@link + * SessionRuntime.open} / {@link SessionRuntime.clear}. Projection + * validates it against the live list instead of destructively pruning, so a + * selection survives transient list states (reconnect re-pull) and + * resurfaces when its session returns. + */ + selection; + scopes = /* @__PURE__ */ new Map(); + /** The provide channel (roster, materialization rules, current projection) — shared with the test runtime's double. */ + provideChannel; + /** + * The staged session id — follows `list.current` exactly, holding its last + * defined value across masked gaps (a transiently absent selection blanks + * `current` without moving the stage, so reconnect re-pulls and removals + * keep the staged scope's frozen view alive until the stage moves on). + */ + watched; + /** Removed-while-staged sessions whose teardown waits for the stage to move away. */ + deferredRemovals = /* @__PURE__ */ new Set(); + /** + * @param ctx - client root context (scope fibers mount under it). + * @param api - wire client shared with every Session. + * @param remote - generated Remote namespaces shared with every Session. + * @param conversationRuntime - same-pass registry instances, when runtime apply owns them. + */ + constructor(rootCtx, api, remote, conversationRuntime) { + this.rootCtx = rootCtx; + this.selection = createSnapshotStore({}, { persist: { name: "dsh.sessions.current" } }); + const restored = this.selection.getSnapshot(); + const conversationEvents = rootCtx.get("conversationEvents"); + const conversationViews = rootCtx.get("conversationViews"); + const conversation = conversationRuntime ?? (conversationEvents === void 0 || conversationViews === void 0 ? void 0 : { + events: conversationEvents, + views: conversationViews + }); + this.manager = new SessionManager(api, remote, restored.sessionId, restored.subagentAddress, conversation); + this.list = createSnapshotStore({ + ids: [], + byId: {}, + current: void 0, + phase: "pending", + subagentsByParent: {}, + jobsBySession: {}, + currentAddress: void 0 + }); + this.manager.subscribe(() => { + this.projectList(); + }); + this.list.subscribe(() => { + this.followCurrent(); + this.provideChannel.publishCurrent(); + }); + this.provideChannel = new SessionProvideChannel({ + rebuildBundles: () => { + for (const record of this.scopes.values()) record.provideInfo = this.provideChannel.materializeInfo(record.binding); + }, + resolveCurrent: () => this.maybeProvideInfo(this.list.getSnapshot().current) + }); + this.currentProvideInfo = this.provideChannel.currentProvideInfo; + let registryRebuildQueued = false; + const scheduleRegistryRebuild = () => { + if (registryRebuildQueued) return; + registryRebuildQueued = true; + queueMicrotask(() => { + registryRebuildQueued = false; + this.manager.rebuildConversationRegistry(); + }); + }; + if (conversation !== void 0) rootCtx.effect(() => { + const disposeEvents = conversation.events.subscribe(scheduleRegistryRebuild); + const disposeViews = conversation.views.subscribe(scheduleRegistryRebuild); + return () => { + disposeEvents(); + disposeViews(); + }; + }, "sessions: conversation registry rebuild"); + rootCtx.reflect.provide("sessions", this, void 0); + } + /** + * Register a per-session standard-props provider: every session-scope slot + * component receives the contributed members as standard props (`hooks` + * sources become `use` selector hooks on the render side; `props` + * spread verbatim). Contributions materialize lazily with the session's + * scope record and die with it. Registration order is resolution order; + * duplicate member names fail loud at materialization. + * @param descriptor - static member roster plus per-session resolver. + * @returns disposer removing the provider (already-materialized bundles keep their members until their scope drops). + */ + provide(descriptor) { + return this.provideChannel.provide(descriptor); + } + /** + * Select a listed or retained catalog-addressed session as current. + * @param id - listed or addressed session id. + */ + open(id) { + this.manager.select(id); + } + /** + * Open a healthy catalog child through its direct-parent address. + * @param address - catalog-derived parent and child ids. + */ + openSubagent(address) { + this.manager.selectSubagent(address); + } + /** + * Resolve an already discovered direct-parent address without opening it. + * Feature plugins use this to avoid Agent-bound RPCs in persisted child views. + * @param id - possible addressed child id. + * @returns The retained address, when present. + */ + subagentAddress(id) { + return this.manager.subagentAddress(id); + } + /** + * Inform the runtime whether a catalog menu is consuming membership updates. + * @param parentSessionId - selected parent. + * @param open - menu state. + */ + setSubagentCatalogOpen(parentSessionId, open) { + this.manager.setSubagentCatalogOpen(parentSessionId, open); + } + /** + * Refresh one direct-child catalog. + * @param parentSessionId - catalog owner. + */ + refreshSubagents(parentSessionId) { + return this.manager.refreshSubagents(parentSessionId); + } + noteAgentPreset(sessionId, agentPreset) { + this.manager.noteAgentPreset(sessionId, agentPreset); + } + /** + * Clear the current selection so the layout shows the no-session empty + * state (new-session affordance and the workspace preselection flow). + * Wipes the persisted selection too — a reload stays on empty until the + * user opens or starts a session. The staged scope keeps its frozen view + * per the masked-gap contract until the next open() moves the stage. + */ + clear() { + this.manager.clearSelection(); + } + /** + * Refresh the real Session baseline, reusing an in-flight pull. + * @returns completion of the current or newly started baseline pull. + */ + refresh() { + return this.manager.refreshList(); + } + /** + * Search the Host's visible message-content index. Results stay + * request-local; the list snapshot remains the metadata authority. + * @param query - non-blank literal phrase. + * @param signal - cancellation for a superseded search. + * @returns bounded results or a business/transport error. + */ + search(query, signal) { + return this.manager.search(query, signal); + } + /** + * Route a mux stream envelope into the Session object layer. + * @param envelope - validated mux stream envelope. + */ + handleMuxEnvelope(envelope) { + this.manager.handleMuxEnvelope(envelope); + } + /** + * Route a Host stream envelope into the Session object layer. + * @param envelope - validated Host stream envelope. + */ + handleHostEnvelope(envelope) { + this.manager.handleHostEnvelope(envelope); + } + /** Rebuild the Session baseline and every opened window after connection. */ + handleConnected() { + this.manager.handleConnected(); + } + /** Drop generation-scoped live interaction state the moment a connection generation dies. */ + handleDisconnected() { + this.manager.handleDisconnected(); + } + /** + * Create a session on the host. Resolution guarantee: by the time the + * promise resolves, the created session is in the list store and + * {@link SessionRuntime.binding} resolves it — callers (New Session + * draft hand-off) may address the scope synchronously, without waiting a + * notifier flush. The synchronous projection below makes this structural + * rather than an accident of microtask ordering. + * @param opts - target workspace or directory and an optional preallocated id. + * @returns the new session id. + * @throws {SessionCreateError} with the requested id. + */ + async create(opts = {}) { + const result = await this.manager.create(opts); + if (!result.ok) throw new SessionCreateError(result.error, opts.sessionId); + this.projectList(); + return result.value.sessionId; + } + /** + * Fork a session from a completed-turn prefix of the source (same + * synchronous-addressability guarantee as {@link SessionRuntime.create}: + * on resolution the child is in the list store and open() can target it). + * @param opts - source session id, the optional event seq anchoring the + * cut (the boundary is the first turn/end at or after it; an in-log + * anchor in an open turn is unavailable rather than clipped backward), + * and whether to increment an inherited durable title before resolving. + * A fractional anchor floors to a real event seq: the frozen nodes of an + * interrupted turn carry flow-ordering seqs between two events, and the + * wire takes integers only. + * @returns the child session id. + * @throws {SessionForkError} with the source id. + * @throws {Error} when a requested child-title rename fails after creation. + */ + async fork(opts) { + const sourceTitle = opts.increaseTitle ? this.list.getSnapshot().byId[opts.sessionId]?.title : void 0; + const result = await this.manager.fork({ + sessionId: opts.sessionId, + ...opts.atSeq === void 0 ? {} : { atSeq: Math.floor(opts.atSeq) } + }); + if (!result.ok) throw new SessionForkError(result.error, opts.sessionId); + this.projectList(); + const childId = result.value.sessionId; + if (sourceTitle !== void 0) { + const child = this.binding(childId)?.session; + if (child === void 0) throw new Error(`fork child "${childId}" is not locally addressable`); + const renamed = await child.rename(increasedForkTitle(sourceTitle)); + if (!renamed.ok) throw new Error(`fork child rename failed: ${renamed.error.code}: ${renamed.error.message}`); + } + return childId; + } + /** + * Resolve an Agent-scoped context view (use-and-discard). + * @param id - session id (the agent identity — 1:1 same axis). + * @returns scoped ctx, or undefined for a session neither listed nor already scoped. + */ + scope(id) { + return this.resolve(id)?.ctx; + } + /** + * Read the Agent scope tag off a context. Service-method boundary: fetch + * bundles must reach scope resolution through ctx.sessions — a cross-bundle + * value import of the standalone helper would inline a second module + * instance whose private tag Symbol never matches. + * @param ctx - any client context. + * @returns the session id, or undefined on root contexts. + */ + scopeOf(ctx) { + return scopeOf(ctx); + } + /** + * Resolve the business Session behind an Agent-scoped context — the one + * hop every scoped consumer (event listeners, per-session controllers) + * takes from ctx-space into object-space (the client mirror of host + * `agent.session`). Same service-method boundary as + * {@link SessionRuntime.scopeOf}. + * @param ctx - an Agent-scoped context. + * @returns the session face, or undefined when the ctx is untagged or its scope was pruned. + */ + sessionOf(ctx) { + const id = scopeOf(ctx); + if (id === void 0) return void 0; + return this.scopes.get(id)?.binding.session; + } + /** + * Resolve the stable session binding (scope-addressed assembly feed). Pure + * resolution — no staging, no window side effects. + * @param id - session id. + * @returns binding, or undefined for a session neither listed nor already scoped. + */ + binding(id) { + return this.resolve(id)?.binding; + } + /** + * Resolve one session's render-layer standard-props bundle (ctx never + * enters the render layer; the renderer subscribes to + * {@link SessionRuntime.currentProvideInfo}). Pure resolution — render-safe: + * no staging, no window side effects (StrictMode double-invokes and + * concurrent discarded passes must stay free). + */ + provideInfo(id) { + return this.resolve(id)?.provideInfo; + } + /** + * Resolve the current-session-optional standard kit. Unknown or absent ids + * return the static no-session projection rather than removing hook props. + */ + maybeProvideInfo(id) { + return (id === void 0 ? void 0 : this.provideInfo(id)) ?? this.provideChannel.maybeInfo; + } + /** + * Move the stage to the list's current session: sweep teardowns deferred + * behind the previous occupant and pull the new occupant's history window. + * Staging IS the open signal — the window opens ⟺ the session is on stage + * — and open() is idempotent (an in-flight or completed open no-ops; a + * failed one retries the next time current is touched). + */ + followCurrent() { + const snapshot = this.list.getSnapshot(); + const current = snapshot.current; + if (current === void 0 || snapshot.byId[current] === void 0 || current === this.watched) return; + this.watched = current; + this.sweepDeferred(); + const record = this.resolve(current); + /* v8 ignore next 3 -- defensive: current is always a listed id (open() + * validates and the projection masks absent selections), so resolve + * cannot miss; kept so a future current writer cannot crash the notify. */ + if (record !== void 0) { + record.session.open(); + this.manager.refreshSubagents(current); + } + } + /** + * Lazily mint the scope + binding for an eligible session. Eligibility and + * prune share one predicate: listed on the host or selected + * through a retained subagent address. Breadcrumb-only ancestors remain + * summary data and do not keep scopes alive. + */ + resolve(id) { + const existing = this.scopes.get(id); + if (existing !== void 0) return existing; + if (!this.eligible(id)) return void 0; + const { fiber, ctx } = createScope(this.rootCtx, id); + const session = this.manager.get(id); + session.bindScope(ctx); + const binding = { + sessionId: id, + session, + ctx + }; + const record = { + fiber, + ctx, + binding, + session, + provideInfo: this.provideChannel.materializeInfo(binding) + }; + this.scopes.set(id, record); + return record; + } + /** The one aliveness predicate shared by scope mint and prune: host-listed or currently addressed. */ + eligible(id) { + const { ids, current } = this.list.getSnapshot(); + return current === id || ids.includes(id); + } + /** Project the manager's list snapshot into the store (title derivation is display-only). */ + projectList() { + const { items, current, phase, subagentsByParent, jobsBySession, currentAddress } = this.manager.getListSnapshot(); + const ids = []; + const byId = {}; + for (const entry of items) { + ids.push(entry.sessionId); + byId[entry.sessionId] = { + id: entry.sessionId, + displayTitle: displayTitleOf(entry.title, entry.cwd, entry.sessionId), + running: entry.running, + ...entry.completed ? { completed: true } : {}, + blank: entry.blank, + updatedAt: entry.updatedAt, + ...entry.pendingInteraction === void 0 ? {} : { pendingInteraction: entry.pendingInteraction }, + ...entry.projectionValues === void 0 ? {} : { projectionValues: entry.projectionValues }, + ...entry.title !== void 0 ? { title: entry.title } : {}, + ...entry.cwd !== void 0 ? { cwd: entry.cwd } : {}, + ...entry.parentSessionId !== void 0 ? { parentId: entry.parentSessionId } : {}, + ...entry.origin !== void 0 ? { origin: entry.origin } : {}, + ...entry.agentPreset !== void 0 ? { agentPreset: entry.agentPreset } : {} + }; + } + if (current !== void 0 && currentAddress !== void 0) { + const seen = /* @__PURE__ */ new Set(); + let address = currentAddress; + while (address !== void 0 && !seen.has(address.childSessionId)) { + const childId = address.childSessionId; + seen.add(childId); + const child = subagentsByParent[address.parentSessionId]?.entries.find((entry) => entry.kind === "child" && entry.id === childId); + if (child?.kind !== "child") break; + const displayTitle = child.label ?? childId; + const summary = byId[childId]; + if (summary === void 0) byId[childId] = { + id: childId, + displayTitle, + parentId: address.parentSessionId, + origin: "subagent", + running: child.activity === "running", + blank: false, + updatedAt: 0 + }; + else if (summary.displayTitle !== displayTitle) byId[childId] = { + ...summary, + displayTitle + }; + const parent = byId[address.parentSessionId]; + if (parent !== void 0 && parent.origin !== "subagent") break; + address = this.manager.navigationAddress(address.parentSessionId); + } + } + const persisted = this.selection.getSnapshot().sessionId; + if (current === void 0) { + if (persisted !== void 0) this.selection.set({}); + } else if (byId[current] !== void 0 && (persisted !== current || this.selection.getSnapshot().subagentAddress?.childSessionId !== currentAddress?.childSessionId || this.selection.getSnapshot().subagentAddress?.parentSessionId !== currentAddress?.parentSessionId || this.selection.getSnapshot().subagentAddress?.mode !== currentAddress?.mode)) this.selection.set({ + sessionId: current, + ...currentAddress === void 0 ? {} : { subagentAddress: currentAddress } + }); + this.list.set({ + ids, + byId, + current, + phase, + subagentsByParent, + jobsBySession, + currentAddress + }); + this.pruneScopes(); + } + /** Tear down scope + instance for no-longer-eligible sessions off stage; the staged one defers until the stage moves. */ + pruneScopes() { + for (const [id, record] of this.scopes) { + if (this.eligible(id)) continue; + if (id === this.watched) { + this.deferredRemovals.add(id); + continue; + } + this.scopes.delete(id); + this.deferredRemovals.delete(id); + this.dropScope(id, record); + } + } + /** + * One teardown for the whole per-session axis: the scope + * fiber (cascading every actx-registered effect: input shell, slash + * controller, popup, plugin stores, listeners), the session-keyed slot + * stores, and the Session instance itself — the host session log is the + * durable truth, a reopen lazily rebuilds and backfills via open(). + */ + dropScope(id, record) { + record.fiber.dispose(); + record.session.unbindScope(); + this.rootCtx.get("slots")?.pruneStoreScope(id); + this.manager.drop(id); + } + /** Run deferred teardowns whose session is no longer staged (called when the stage moves). */ + sweepDeferred() { + for (const id of [...this.deferredRemovals]) { + /* v8 ignore next -- defensive: only the staged id ever defers, and every + * stage move sweeps first, so the set cannot contain the id the stage just + * moved to; kept as a guard against future extra sweep call sites. */ + if (id === this.watched) continue; + if (this.eligible(id)) { + this.deferredRemovals.delete(id); + continue; + } + const record = this.scopes.get(id); + this.deferredRemovals.delete(id); + /* v8 ignore next -- defensive: prune deletes a scope and its deferral + * together, so a deferred id always still owns its record; kept so a + * future teardown path cannot double-dispose. */ + if (record !== void 0) { + this.scopes.delete(id); + this.dropScope(id, record); + } + } + } + }; + //#endregion + //#region lib/types/client/workspaces/workspace.js + /** React-free Workspace entity with a client-local materialization lifecycle. */ + /** + * Observable Workspace object whose identity survives Host materialization. + * Local instances retain their create input and failure state; materialized + * instances expose the latest Host view. + */ + var Workspace = class { + api; + view; + intent; + materialization = null; + snapshotCache; + notifier = new Notifier(() => { + this.snapshotCache = this.buildSnapshot(); + }); + /** + * @param api - shared wire client. + * @param source - local create input or an existing Host Workspace view. + */ + constructor(api, source) { + this.api = api; + if ("workspaceId" in source) this.view = source; + else this.intent = { + input: source, + snapshot: { + name: intentName(source), + phase: "ready" + } + }; + this.snapshotCache = this.buildSnapshot(); + } + /** + * Materialize this local Workspace through the Host create API. + * Re-entry shares the in-flight completion; a materialized instance returns undefined. + * @returns the Host result, or undefined when this Workspace is already materialized. + */ + materialize() { + if (this.materialization !== null) return this.materialization; + const intent = this.intent; + if (intent === void 0) return void 0; + intent.snapshot = { + name: intent.snapshot.name, + phase: "creating" + }; + this.notifier.notifyNow(); + const completion = this.completeMaterialization(intent).finally(() => { + if (this.materialization === completion) this.materialization = null; + }); + this.materialization = completion; + return completion; + } + /** + * Adopt a Host view without replacing this Workspace object. + * An existing materialized identity accepts updates only for the same Workspace id. + * @param view - latest Host projection. + */ + adopt(view) { + if (this.view !== void 0 && this.view.workspaceId !== view.workspaceId) throw new Error("cannot adopt a different Workspace id"); + this.view = view; + this.intent = void 0; + this.notifier.markDirty(); + } + /** + * Subscribe to Workspace snapshot invalidation. + * @param listener - snapshot invalidation callback. + * @returns unsubscribe function. + */ + subscribe(listener) { + return this.notifier.subscribe(listener); + } + /** + * Read the cached Workspace snapshot after flushing pending notifications. + * @returns the cached Workspace snapshot. + */ + getSnapshot() { + this.notifier.ensureFresh(); + return this.snapshotCache; + } + async completeMaterialization(intent) { + let result; + try { + result = (await this.api.workspace.create(intent.input)).result; + } catch (error) { + result = transportError(error); + } + if (this.intent !== intent) return result; + if (result.ok) this.adopt(result.value.workspace); + else { + intent.snapshot = { + name: intent.snapshot.name, + phase: "ready", + error: `${result.error.code}: ${result.error.message}` + }; + this.notifier.markDirty(); + } + return result; + } + buildSnapshot() { + return { + view: this.view, + intent: this.intent?.snapshot + }; + } + }; + function intentName(input) { + return input.path.replace(/[\\/]+$/, "").split(/[\\/]/).pop() ?? input.path; + } + //#endregion + //#region lib/types/client/workspaces/manager.js + /** Workspace baseline, incremental-frame, and unary-action owner. */ + /** Workspace object cluster driven by one list baseline and changed-frame upserts. */ + var WorkspaceManager = class { + api; + items = []; + itemViewsSource = null; + itemViewsCache = []; + archivedSessionIds = []; + state = "idle"; + phase = "pending"; + error = null; + inflight = null; + refreshFrames = null; + /** + * True once a frame or unary echo installed the archive set while a list + * request was in flight: that install is newer than the pending baseline, + * so the baseline's (older) set must not roll it back — the archive + * mirror of replaying refreshFrames over the item baseline. + */ + archivedSupersedesRefresh = false; + /** Latest local reorder request; only its unary echo may install order. */ + orderRequestGeneration = 0; + /** Increments on order frames so a later remote commit outranks an older unary echo. */ + orderFrameGeneration = 0; + /** Last complete order accepted from a Host baseline, frame, or current unary echo. */ + committedOrder = []; + /** + * Ids this process has seen removed, kept for the connection's lifetime so + * a late changed frame or a stale baseline row cannot resurrect a deleted + * row. Correctness rests on Host ids never being reused (the registry mints + * a fresh `randomUUID` per record, including when the same directory is + * registered again) — a path-derived id scheme would turn these entries + * into permanent blindfolds and must clear them instead. + */ + removedIds = /* @__PURE__ */ new Set(); + snapshotCache; + notifier = new Notifier(() => { + this.snapshotCache = this.buildSnapshot(); + }); + /** @param api - shared wire client. */ + constructor(api) { + this.api = api; + this.snapshotCache = this.buildSnapshot(); + } + /** + * Refresh from workspace.list. The first successful response establishes + * Host order; later responses re-establish the durable order so reconnects + * adopt reorders committed while this client was offline. Frames arriving + * during the RPC are replayed over its response. + * @returns the shared in-flight refresh. + */ + refresh() { + if (this.inflight !== null) return this.inflight; + this.state = "loading"; + this.error = null; + const frames = []; + this.refreshFrames = frames; + this.notifier.markDirty(); + this.inflight = (async () => { + try { + const { result } = await this.api.workspace.list({}); + if (result.ok) { + let items = result.value.items; + items = items.filter((workspace) => !this.removedIds.has(workspace.workspaceId)); + for (const delta of frames) items = applyWorkspaceDelta(items, delta); + this.installViews(items); + if (!this.archivedSupersedesRefresh) this.installArchived(result.value.archivedSessionIds); + this.state = "idle"; + this.phase = "ready"; + } else { + this.state = "error"; + this.error = result.error; + } + } catch (error) { + this.state = "error"; + const folded = transportError(error); + /* v8 ignore next -- transportError always returns the failure branch. */ + this.error = folded.ok ? null : folded.error; + } finally { + this.refreshFrames = null; + this.archivedSupersedesRefresh = false; + this.inflight = null; + this.notifier.markDirty(); + } + })(); + return this.inflight; + } + /** + * Create or resolve a real Workspace, then publish its returned snapshot + * without waiting for the changed frame. + * @param input - the existing absolute path to adopt. + * @returns the wire result. + */ + async create(input) { + const workspace = new Workspace(this.api, input); + const completion = workspace.materialize(); + if (completion === void 0) throw new Error("a local Workspace must be materializable"); + const result = await completion; + if (result.ok) this.upsert(result.value.workspace, workspace); + return result; + } + /** + * Rename a Workspace, then publish its returned snapshot without waiting + * for the changed frame. + * @param workspaceId - target workspace. + * @param title - new display title. + * @returns the wire result. + */ + async rename(workspaceId, title) { + const { result } = await this.api.workspace.rename({ + workspaceId, + title + }); + if (result.ok) this.upsert(result.value.workspace); + return result; + } + /** + * Delete a Workspace registration and remove its local projection from the + * unary response without waiting for the Host frame. + * @param workspaceId - target workspace. + * @returns the wire result. + */ + async delete(workspaceId) { + const { result } = await this.api.workspace.delete({ workspaceId }); + if (result.ok) this.remove(workspaceId, true); + return result; + } + /** + * Move a Workspace within the registry display order and install the full + * returned order without waiting for the Host frame. + * @param workspaceId - Workspace to move. + * @param beforeWorkspaceId - Anchor workspace; omitted appends. + * @returns the wire result. + */ + async insertBefore(workspaceId, beforeWorkspaceId) { + const requestGeneration = ++this.orderRequestGeneration; + const frameGeneration = this.orderFrameGeneration; + const localOrder = this.itemViews().map((workspace) => workspace.workspaceId); + this.installOrder(insertIdBefore(localOrder, workspaceId, beforeWorkspaceId)); + let result; + try { + ({result} = await this.api.workspace.insertBefore({ + workspaceId, + ...beforeWorkspaceId === void 0 ? {} : { beforeWorkspaceId } + })); + } catch (error) { + if (requestGeneration === this.orderRequestGeneration && frameGeneration === this.orderFrameGeneration) this.installOrder(this.committedOrder); + throw error; + } + if (result.ok && requestGeneration === this.orderRequestGeneration && frameGeneration === this.orderFrameGeneration) this.installOrder(result.value.workspaceIds, true); + else if (!result.ok && requestGeneration === this.orderRequestGeneration && frameGeneration === this.orderFrameGeneration) this.installOrder(this.committedOrder); + return result; + } + /** + * Move a session within its Workspace's manual order, then publish the + * returned snapshot without waiting for the changed frame. + * @param workspaceId - owning workspace. + * @param sessionId - accounted session to move. + * @param beforeSessionId - accounted anchor to insert before; omitted appends. + * @returns the wire result. + */ + async insertSessionBefore(workspaceId, sessionId, beforeSessionId) { + const { result } = await this.api.workspace.insertSessionBefore({ + workspaceId, + sessionId, + ...beforeSessionId === void 0 ? {} : { beforeSessionId } + }); + if (result.ok) this.upsert(result.value.workspace); + return result; + } + /** + * Archive one session in the registry-global set, then install the + * returned full set without waiting for the changed frame. + * @param sessionId - session to archive. + * @returns the wire result. + */ + async archiveSession(sessionId) { + const { result } = await this.api.workspace.archiveSession({ sessionId }); + if (result.ok) this.installArchived(result.value.archivedSessionIds); + return result; + } + /** + * Host-frame entry. Non-workspace frames are ignored so the runtime can + * fan one host stream out to both object managers. + * @param envelope - host stream envelope. + */ + handleHostEnvelope(envelope) { + if (envelope.payload.type === "host/workspace-changed") this.upsert(envelope.payload.workspace); + else if (envelope.payload.type === "host/workspace-removed") this.remove(envelope.payload.workspaceId); + else if (envelope.payload.type === "host/workspace-order-changed") { + this.orderFrameGeneration++; + this.installOrder(envelope.payload.workspaceIds, true); + } else if (envelope.payload.type === "host/archived-sessions-changed") this.installArchived(envelope.payload.archivedSessionIds); + } + /** Re-pull the baseline after each connection generation. */ + handleConnected() { + this.refresh(); + } + /** + * Subscribe to workspace snapshot invalidation. + * @param listener - snapshot invalidation callback. + * @returns unsubscribe function. + */ + subscribe(listener) { + return this.notifier.subscribe(listener); + } + /** + * Read the cached workspace snapshot after flushing pending notifications. + * @returns the cached workspace snapshot. + */ + getSnapshot() { + this.notifier.ensureFresh(); + return this.snapshotCache; + } + buildSnapshot() { + return { + items: this.itemViews(), + archivedSessionIds: this.archivedSessionIds, + state: this.state, + phase: this.phase, + error: this.error + }; + } + /** + * Replace the archive set when membership actually changed (array identity + * backs Object.is short-circuits). Host snapshots are append-ordered, so + * positional comparison is exact, not merely heuristic. + */ + installArchived(archivedSessionIds) { + if (this.refreshFrames !== null) this.archivedSupersedesRefresh = true; + if (archivedSessionIds.length === this.archivedSessionIds.length && archivedSessionIds.every((id, index) => id === this.archivedSessionIds[index])) return; + this.archivedSessionIds = [...archivedSessionIds]; + this.notifier.markDirty(); + } + /** Reorder known Workspace objects, optionally recording a Host-committed sequence. */ + installOrder(workspaceIds, committed = false) { + if (committed) { + this.refreshFrames?.push({ + type: "order", + workspaceIds + }); + this.committedOrder = [...workspaceIds]; + } + const rank = new Map(workspaceIds.map((id, index) => [id, index])); + const items = [...this.items].sort((left, right) => { + const leftId = left.getSnapshot().view?.workspaceId; + const rightId = right.getSnapshot().view?.workspaceId; + return (leftId === void 0 ? Number.MAX_SAFE_INTEGER : rank.get(leftId) ?? Number.MAX_SAFE_INTEGER) - (rightId === void 0 ? Number.MAX_SAFE_INTEGER : rank.get(rightId) ?? Number.MAX_SAFE_INTEGER); + }); + if (items.every((item, index) => item === this.items[index])) return; + this.items = items; + this.notifier.markDirty(); + } + /** Upsert one Host view, optionally retaining the local object that materialized it. */ + upsert(view, identity) { + if (this.removedIds.has(view.workspaceId)) return; + this.refreshFrames?.push({ + type: "upsert", + workspace: view + }); + const index = this.items.findIndex((item) => item.getSnapshot().view?.workspaceId === view.workspaceId); + const installed = index === -1 ? void 0 : this.items[index]?.getSnapshot().view; + if (installed !== void 0 && Date.parse(view.updatedAt) < Date.parse(installed.updatedAt)) return; + if (!this.committedOrder.includes(view.workspaceId)) this.committedOrder = [view.workspaceId, ...this.committedOrder]; + if (identity !== void 0) this.items = index === -1 ? [identity, ...this.items] : this.items.map((item, position) => position === index ? identity : item); + else if (index === -1) this.items = [new Workspace(this.api, view), ...this.items]; + else { + this.items[index]?.adopt(view); + this.items = [...this.items]; + } + this.notifier.markDirty(); + } + /** Remove one id idempotently and retain a tombstone against late echoes. */ + remove(workspaceId, direct = false) { + this.refreshFrames?.push({ + type: "remove", + workspaceId + }); + this.removedIds.add(workspaceId); + this.committedOrder = this.committedOrder.filter((id) => id !== workspaceId); + const items = this.items.filter((item) => item.getSnapshot().view?.workspaceId !== workspaceId); + if (items.length === this.items.length) { + if (direct) this.notifier.notifyNow(); + return; + } + this.items = items; + if (direct) this.notifier.notifyNow(); + else this.notifier.markDirty(); + } + installViews(views) { + const existing = new Map(this.items.flatMap((workspace) => { + const view = workspace.getSnapshot().view; + return view === void 0 ? [] : [[view.workspaceId, workspace]]; + })); + const installed = /* @__PURE__ */ new Map(); + for (const view of views) { + const duplicate = installed.get(view.workspaceId); + if (duplicate !== void 0) { + duplicate.adopt(view); + continue; + } + const workspace = existing.get(view.workspaceId) ?? new Workspace(this.api, view); + workspace.adopt(view); + installed.set(view.workspaceId, workspace); + } + this.items = [...installed.values()]; + this.committedOrder = views.map((view) => view.workspaceId); + } + itemViews() { + if (this.itemViewsSource === this.items) return this.itemViewsCache; + this.itemViewsSource = this.items; + this.itemViewsCache = this.items.flatMap((workspace) => { + const view = workspace.getSnapshot().view; + return view === void 0 ? [] : [view]; + }); + return this.itemViewsCache; + } + }; + /** Known ids retain their position; a newly created Workspace enters first. */ + function upsertWorkspace(items, workspace) { + const index = items.findIndex((item) => item.workspaceId === workspace.workspaceId); + return index === -1 ? [workspace, ...items] : items.map((item, position) => position === index ? workspace : item); + } + /** Replay one ordered delta over a baseline: upsert in place, or drop the removed id. */ + function applyWorkspaceDelta(items, delta) { + if (delta.type === "upsert") return upsertWorkspace(items, delta.workspace); + if (delta.type === "remove") return items.filter((workspace) => workspace.workspaceId !== delta.workspaceId); + const rank = new Map(delta.workspaceIds.map((id, index) => [id, index])); + return [...items].sort((left, right) => (rank.get(left.workspaceId) ?? Number.MAX_SAFE_INTEGER) - (rank.get(right.workspaceId) ?? Number.MAX_SAFE_INTEGER)); + } + /** Move one known id before an optional anchor; unknown ids leave the order unchanged. */ + function insertIdBefore(ids, id, beforeId) { + if (!ids.includes(id) || beforeId !== void 0 && !ids.includes(beforeId) || beforeId === id) return [...ids]; + const without = ids.filter((candidate) => candidate !== id); + const at = beforeId === void 0 ? without.length : without.indexOf(beforeId); + return [ + ...without.slice(0, at), + id, + ...without.slice(at) + ]; + } + //#endregion + //#region lib/types/client/workspaces/service.js + /** WorkspaceRuntime projects the Workspace object manager for UI consumers. */ + /** Structured create failure for UI flows that distinguish Host business errors. */ + var WorkspaceCreateError = class extends Error { + rpcError; + constructor(rpcError) { + super(`workspace create failed: ${rpcError.code}: ${rpcError.message}`); + this.rpcError = rpcError; + this.name = "WorkspaceCreateError"; + } + }; + /** Structured browse failure so the directory browser can branch on Host business codes. */ + var DirectoryBrowseError = class extends Error { + rpcError; + constructor(rpcError) { + super(`directory browse failed: ${rpcError.code}: ${rpcError.message}`); + this.rpcError = rpcError; + this.name = "DirectoryBrowseError"; + } + }; + /** Real Workspace object layer and Host actions. */ + var WorkspaceRuntime = class { + api; + sessions; + /** UI-facing immutable projection; the manager remains wire truth. */ + list; + /** Workspace baseline and frame owner. */ + manager; + /** In-flight blank-session creates keyed by workspace (connectWorkspace coalescing). */ + connecting = /* @__PURE__ */ new Map(); + /** Guards the runtime-owned one-shot initial-selection subscription. */ + initialSelectionStarted = false; + /** + * @param ctx - client root context. + * @param api - shared wire client. + * @param sessions - cross-domain sessions face used for recency and blank-session reuse. + */ + constructor(ctx, api, sessions) { + this.api = api; + this.sessions = sessions; + this.manager = new WorkspaceManager(api); + this.list = createSnapshotStore({ + items: [], + archivedSessionIds: [], + state: "idle", + phase: "pending", + error: null, + baselinesReady: false, + recentWorkspaceId: void 0 + }); + this.manager.subscribe(() => { + this.project(); + }); + this.sessions.list.subscribe(() => { + this.project(); + }); + ctx.reflect.provide("workspaces", this, void 0); + } + /** + * Resolve the session a New Session flow lands in once this Workspace is + * chosen: reuse the workspace's existing blank session when one is in the + * list mirror, else create a fresh one on the host (`session.create` births + * the full Session+Agent — the client holds no intermediate state). The + * caller owns navigation: take the returned id to `sessions.open`. + * Resolution guarantee (both arms): the returned id is already in the list + * store and `sessions.binding(id)` resolves synchronously — draft hand-off + * may write the new scope's machine before opening. + * @param workspaceId - chosen Workspace (must be in the workspace list). + * @returns the reused or newly created session id. + */ + async connectWorkspace(workspaceId) { + const workspace = this.list.getSnapshot().items.find((item) => item.workspaceId === workspaceId); + if (workspace === void 0) throw new Error(`workspaces.connectWorkspace: unknown workspace ${workspaceId}`); + const inflight = this.connecting.get(workspaceId); + if (inflight !== void 0) return inflight; + const archived = this.list.getSnapshot().archivedSessionIds; + const sessions = this.sessions.list.getSnapshot(); + for (const id of sessions.ids) { + const summary = sessions.byId[id]; + if (summary !== void 0 && summary.blank && summary.cwd === workspace.path && workspace.sessionIds.includes(summary.id) && !archived.includes(summary.id)) return summary.id; + } + const attempt = this.sessions.create({ workspaceId }).finally(() => { + this.connecting.delete(workspaceId); + }); + this.connecting.set(workspaceId, attempt); + return attempt; + } + /** + * Follow the first complete Workspace/Session baseline and select a default + * session exactly once. A restored current session wins; otherwise the most + * recent Workspace is connected (reusing or creating its blank session). + * Later explicit clears stay cleared instead of retriggering this startup + * policy. A failed connect may retry on the next baseline projection. + * @returns disposer for the baseline subscription; late work cannot navigate after disposal. + */ + startInitialSelection() { + if (this.initialSelectionStarted) throw new Error("workspaces.startInitialSelection: already started"); + this.initialSelectionStarted = true; + let state = "waiting"; + let disposed = false; + const reconcile = () => { + if (disposed || state !== "waiting") return; + const workspace = this.list.getSnapshot(); + if (!workspace.baselinesReady) return; + const current = this.sessions.list.getSnapshot().current; + const target = workspace.recentWorkspaceId; + if (current !== void 0 || target === void 0) { + state = "done"; + return; + } + state = "connecting"; + this.connectWorkspace(target).then((sessionId) => { + if (disposed) return; + if (this.sessions.list.getSnapshot().current === void 0) this.sessions.open(sessionId); + state = "done"; + }, (reason) => { + if (disposed) return; + state = "waiting"; + console.warn("initial workspace selection failed:", reason); + }); + }; + const unsubscribe = this.list.subscribe(reconcile); + reconcile(); + return () => { + disposed = true; + unsubscribe(); + }; + } + /** + * The shared New Session action behind the shell entry points (sidebar + * button, workspace browser): resolve the target Workspace — explicit wins, + * then the current Session's Workspace, then the recent-Workspace + * projection — connect its blank session and navigate there; with no + * Workspace at all, clear the selection into the New Session view state. + * Connect failures are non-fatal (console diagnostics; the current view + * stays usable). + * @param workspaceId - explicit target Workspace for scoped actions. + */ + startSession(workspaceId) { + const workspace = this.list.getSnapshot(); + const current = this.sessions.list.getSnapshot().current; + const currentWorkspaceId = current === void 0 ? void 0 : workspace.items.find((item) => item.sessionIds.includes(current))?.workspaceId; + const target = workspaceId ?? currentWorkspaceId ?? workspace.recentWorkspaceId; + if (target === void 0) { + this.sessions.clear(); + return; + } + this.connectWorkspace(target).then((sessionId) => { + this.sessions.open(sessionId); + }, (reason) => { + console.warn("new session failed:", reason); + }); + } + /** + * Register an existing path as a Workspace. + * @param input - the Host create payload. + * @returns the created or idempotently resolved Workspace. + */ + async create(input) { + const result = await this.manager.create(input); + if (!result.ok) throw new WorkspaceCreateError(result.error); + return result.value.workspace; + } + /** + * Open the Host's native directory picker (the `native` capability). + * @returns the selected path, or null when the user cancelled. + */ + async pickDirectory() { + const response = await this.api.host.pickDirectory({}); + if (!response.result.ok) throw new Error(`directory picker failed: ${response.result.error.message}`); + return response.result.value.path; + } + /** + * List one directory level through the Host's `browse` capability. + * @param path - absolute directory to list; absent lists the Host home directory. + * @param signal - aborts the wire request (and the Host's scan) when the caller supersedes it. + * @returns the level's listing with breadcrumb ancestry. + */ + async listDirectory(path, signal) { + const response = await this.api.host.listDirectory(path === void 0 ? {} : { path }, signal); + if (!response.result.ok) throw new DirectoryBrowseError(response.result.error); + return response.result.value; + } + /** + * Create one child directory through the Host's `browse` capability. + * @param path - absolute existing parent directory. + * @param name - single non-blank path segment. + * @returns the created directory's absolute path. + */ + async createDirectory(path, name) { + const response = await this.api.host.createDirectory({ + path, + name + }); + if (!response.result.ok) throw new DirectoryBrowseError(response.result.error); + return response.result.value.path; + } + /** + * Open a filesystem path with the Host operating system's default application. + * @param path - absolute or host-resolvable path. + */ + async openPath(path) { + const response = await this.api.host.openPath({ path }); + if (!response.result.ok) throw new Error(`path open failed: ${response.result.error.message}`); + } + /** + * Rename a Workspace. + * @param workspaceId - target workspace. + * @param title - new display title (trimmed non-empty by the Host). + * @returns the renamed Workspace view. + */ + async rename(workspaceId, title) { + const result = await this.manager.rename(workspaceId, title); + if (!result.ok) throw new Error(`workspace rename failed: ${result.error.code}: ${result.error.message}`); + return result.value.workspace; + } + /** + * Delete one Workspace registration. Sessions, session logs, and the + * directory remain Host-owned outside this operation. + * @param workspaceId - target workspace. + */ + async delete(workspaceId) { + const result = await this.manager.delete(workspaceId); + if (!result.ok) throw new Error(`workspace delete failed: ${result.error.code}: ${result.error.message}`); + } + /** + * Move a Workspace within the durable registry display order. + * @param workspaceId - Workspace to move. + * @param beforeWorkspaceId - Anchor workspace; omitted appends. + */ + async insertBefore(workspaceId, beforeWorkspaceId) { + const result = await this.manager.insertBefore(workspaceId, beforeWorkspaceId); + if (!result.ok) throw new Error(`workspace reorder failed: ${result.error.code}: ${result.error.message}`); + } + /** + * Archive a session into the registry-global set. Clearing an archived + * current selection is the projection sweep's job (one rule for the local + * echo and a remote tab's frame alike). + * @param sessionId - session to archive. + */ + async archiveSession(sessionId) { + const result = await this.manager.archiveSession(sessionId); + if (!result.ok) throw new Error(`session archive failed: ${result.error.code}: ${result.error.message}`); + } + /** + * Move a session within its Workspace's manual order (DOM-insertBefore-like). + * @param workspaceId - owning workspace. + * @param sessionId - accounted session to move. + * @param beforeSessionId - accounted anchor to insert before; omitted appends. + * @returns the updated Workspace view. + */ + async insertSessionBefore(workspaceId, sessionId, beforeSessionId) { + const result = await this.manager.insertSessionBefore(workspaceId, sessionId, beforeSessionId); + if (!result.ok) throw new Error(`workspace move failed: ${result.error.code}: ${result.error.message}`); + return result.value.workspace; + } + /** + * Refresh the workspace baseline, reusing an in-flight pull. + * @returns completion of the current or newly started workspace baseline pull. + */ + refresh() { + return this.manager.refresh(); + } + /** + * Route a Host stream envelope into the Workspace object layer. + * @param envelope - validated Host stream envelope. + */ + handleHostEnvelope(envelope) { + this.manager.handleHostEnvelope(envelope); + } + /** Rebuild the Workspace baseline after connection. */ + handleConnected() { + this.manager.handleConnected(); + } + project() { + const workspace = this.manager.getSnapshot(); + const sessions = this.sessions.list.getSnapshot(); + const baselinesReady = workspace.phase === "ready" && sessions.phase === "ready"; + if (sessions.current !== void 0 && workspace.archivedSessionIds.includes(sessions.current)) this.sessions.clear(); + this.list.set({ + items: workspace.items, + archivedSessionIds: workspace.archivedSessionIds, + state: workspace.state, + phase: workspace.phase, + error: workspace.error, + baselinesReady, + recentWorkspaceId: baselinesReady ? recentWorkspace(workspace.items, sessions.byId) : void 0 + }); + } + }; + /** Stable tie-breaking follows Host Workspace order. */ + function recentWorkspace(workspaces, sessions) { + let selected; + let selectedTime = Number.NEGATIVE_INFINITY; + for (const workspace of workspaces) { + let latest = Number.NEGATIVE_INFINITY; + for (const sessionId of workspace.sessionIds) { + const session = sessions[sessionId]; + if (session !== void 0) latest = Math.max(latest, session.updatedAt); + } + if (latest === Number.NEGATIVE_INFINITY) latest = Date.parse(workspace.createdAt); + if (selected === void 0 || latest > selectedTime) { + selected = workspace.workspaceId; + selectedTime = latest; + } + } + return selected; + } + //#endregion + //#region lib/types/client/conversation/definition-registry.js + /** Shared lifecycle and stable-entry storage for one Conversation Definition registry. */ + var ConversationDefinitionRegistry = class extends _deepseek_ai_cordis.Service { + definitions = /* @__PURE__ */ new Map(); + listeners = /* @__PURE__ */ new Set(); + cached = []; + /** + * Return reference-stable Definitions in registration order. + * @returns current Definitions. + */ + entries() { + return this.cached; + } + /** + * Observe low-frequency registry changes. + * @param listener - synchronous invalidation callback. + * @returns unsubscribe callback. + */ + subscribe(listener) { + this.listeners.add(listener); + return () => { + this.listeners.delete(listener); + }; + } + /** + * Register one uniquely keyed Definition for the caller's lifetime. + * @param key - registry-local unique key. + * @param definition - contributed Definition. + * @param duplicateMessage - error raised when the key is already owned. + * @param effectName - Cordis effect diagnostic label. + * @returns idempotent disposer. + */ + registerDefinition(key, definition, duplicateMessage, effectName) { + if (this.definitions.has(key)) throw new Error(duplicateMessage); + const dispose = this.ctx.effect(() => { + this.definitions.set(key, definition); + this.refresh(); + return () => { + if (this.definitions.get(key) !== definition) return; + this.definitions.delete(key); + this.refresh(); + }; + }, effectName); + return () => { + dispose(); + }; + } + /** Refresh cached entries and synchronously invalidate subscribers. */ + refresh() { + this.cached = [...this.definitions.values()]; + for (const listener of this.listeners) listener(); + } + }; + //#endregion + //#region lib/types/client/conversation/event-registry.js + /** Runtime registry of independently owned Conversation business Definitions. */ + var ConversationEventRegistry = class extends ConversationDefinitionRegistry { + fallback; + /** @param ctx - owning Client Runtime context. */ + constructor(ctx) { + super(ctx, "conversationEvents"); + } + /** + * Register a uniquely named business Definition for the caller's lifetime. + * @param definition - Definition contribution. + * @returns idempotent disposer. + */ + register(definition) { + assertDefinitionTarget(definition); + return this.registerDefinition(definition.kind, definition, `conversation Definition "${definition.kind}" is already registered`, `conversationEvents.register(${JSON.stringify(definition.kind)})`); + } + /** + * Register the sole fallback used only when no ordinary Definition matches. + * @param definition - fallback Definition. + * @returns idempotent disposer. + */ + registerFallback(definition) { + assertDefinitionTarget(definition); + if (definition.target === void 0) throw new Error("conversation fallback Definition must declare a target"); + if (this.fallback !== void 0) throw new Error("conversation fallback Definition is already registered"); + const dispose = this.ctx.effect(() => { + this.fallback = definition; + this.refresh(); + return () => { + if (this.fallback !== definition) return; + this.fallback = void 0; + this.refresh(); + }; + }, `conversationEvents.registerFallback(${JSON.stringify(definition.kind)})`); + return () => { + dispose(); + }; + } + /** + * Return the current unmatched-event fallback. + * @returns installed fallback, when present. + */ + fallbackEntry() { + return this.fallback; + } + }; + function assertDefinitionTarget(definition) { + if (definition.target === void 0 !== (definition.buildViewNode === void 0)) throw new Error(`conversation Definition "${definition.kind}" must declare target and buildViewNode together`); + } + //#endregion + //#region lib/types/client/conversation/view-registry.js + /** Runtime registry of per-target Conversation snapshot builders. */ + var ConversationViewRegistry = class extends ConversationDefinitionRegistry { + /** @param ctx - owning Client Runtime context. */ + constructor(ctx) { + super(ctx, "conversationViews"); + } + /** + * Register a uniquely named view builder factory for the caller's lifetime. + * @param definition - target builder contribution. + * @returns idempotent disposer. + */ + register(definition) { + return this.registerDefinition(definition.target, definition, `conversation view target "${definition.target}" is already registered`, `conversationViews.register(${JSON.stringify(definition.target)})`); + } + }; + //#endregion + //#region ../../core/session/src/surface.ts + /** Runtime counterpart of the message-producing event union. */ + const SURFACE_EVENT_TYPES = new Set([ + "user/message", + "assistant/message", + "tool/result" + ]); + /** + * Narrow an event to a surface-eligible event carrying its required marker. + * @param event - event to test. + * @returns true when both the type and marker identify a surface event. + */ + function isSurfaceEvent(event) { + if (!SURFACE_EVENT_TYPES.has(event.type)) return false; + return event.surfaceOp !== void 0; + } + /** + * Narrow an event to an append-origin surface event: one that entered the + * surface at its own log position and was never itself a replacement copy. + * + * The model-visible surface deliberately shadows replaced ranges, so it is the + * wrong source for a human transcript — a landed replacement would erase + * conversation the user already saw. Append-origin events are that transcript's + * durable source material; replacement copies stay model-only. + * @param event - event to test. + * @returns true when the event appended to the surface tail. + */ + function isAppendSurfaceEvent(event) { + return isSurfaceEvent(event) && event.surfaceOp === "append"; + } + /** + * Narrow an event to a surface replacement: a node that shadowed an existing + * surface range instead of appending to the tail. The counterpart of + * {@link isAppendSurfaceEvent} over the two {@link SurfaceOp} variants. + * @param event - event to test. + * @returns true when the event replaced a surface range. + */ + function isReplacementSurfaceEvent(event) { + return isSurfaceEvent(event) && event.surfaceOp !== "append"; + } + //#endregion + //#region lib/types/client/sessions/subagent-lineage.js + /** + * Index every subagent descendant under each ancestor it reaches through an + * uninterrupted subagent-origin chain. Cycles fail soft and orphan owners + * remain harmless map keys until their summaries arrive. + * @param summaries - retained session summaries keyed by id. + * @returns descendant totals and running totals keyed by possible parent id. + */ + function indexSubagentDescendants(summaries) { + const indexed = /* @__PURE__ */ new Map(); + for (const descendant of Object.values(summaries)) { + if (descendant.origin !== "subagent") continue; + const seen = /* @__PURE__ */ new Set(); + let current = descendant; + while (current?.origin === "subagent" && current.parentId !== void 0 && !seen.has(current.id)) { + seen.add(current.id); + const aggregate = indexed.get(current.parentId); + if (aggregate === void 0) indexed.set(current.parentId, { + count: 1, + runningCount: descendant.running ? 1 : 0 + }); + else { + aggregate.count += 1; + if (descendant.running) aggregate.runningCount += 1; + } + current = summaries[current.parentId]; + } + } + return indexed; + } + //#endregion + //#region lib/types/client/workspaces/path.js + /** + * Resolve a workspace-relative path into the Host-facing spelling used by openPath. + * @param cwd - session workspace root, when known. + * @param path - absolute or workspace-relative path. + * @returns an absolute path when a workspace root is available, otherwise the original path. + */ + function resolveWorkspacePath(cwd, path) { + if (path.startsWith("/") || /^[A-Za-z]:[/\\]/.test(path) || path.startsWith("\\\\")) return path; + if (cwd === void 0 || cwd === "") return path; + return `${cwd.replace(/[/\\]+$/, "")}/${path.replace(/^[/\\]+/, "")}`; + } + //#endregion + //#region lib/types/client/sessions/partial.js + /** + * Create the empty client projection for one streamed Assistant block kind. + * @param blockType - wire block kind. + * @returns empty projected block ready to receive deltas. + */ + function emptyAssistantBlock(blockType) { + switch (blockType) { + case "text": return { + kind: "text", + text: "" + }; + case "reasoning": return { + kind: "reasoning", + text: "" + }; + case "tool-call": return { + kind: "tool-call", + callId: "", + name: "", + argsRaw: "" + }; + default: return { + kind: "other", + block: null + }; + } + } + //#endregion + //#region ../../llm/llm/src/message.ts + /** + * Whether a stream chunk carries visible model output (the first-token + * boundary shared by client step timing and the whole-log sessionStats + * projection). Empty deltas (heartbeats, empty tool-call frames) do not count + * as a first token. + * @param chunk - the stream chunk to test. + * @returns true when the chunk contains a non-empty text/reasoning/tool delta. + */ + function isTokenDelta(chunk) { + switch (chunk.type) { + case "text-delta": + case "reasoning-delta": return chunk.text !== ""; + case "tool-call-delta": return chunk.argumentsDelta !== "" || chunk.name !== void 0; + default: return false; + } + } + //#endregion + //#region lib/types/client/sessions/context-provenance.js + /** One durable source narrowed to the readable-record shape; null for anything else. */ + function asRecord(value) { + return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null; + } + /** A record field read as a non-empty string, or null. */ + function readString(record, key) { + const value = record[key]; + return typeof value === "string" && value.length > 0 ? value : null; + } + /** Distinct non-empty `field` values of an array-valued source member, in first-seen order. */ + function collect(source, member, field) { + const list = source[member]; + if (!Array.isArray(list)) return []; + const seen = []; + for (const entry of list) { + const record = asRecord(entry); + const value = record === null ? null : readString(record, field); + if (value !== null && !seen.includes(value)) seen.push(value); + } + return seen; + } + /** A collected name list rendered as one label; null when the list is empty. */ + function joined(names) { + return names.length > 0 ? names.join(", ") : null; + } + /** + * Project one durable message source onto its transcript role and producer name. + * + * The source arrives over the wire as opaque JSON (`MessageSource` is + * merge-extensible, so no client-side union can be exhaustive), and a durable + * log may predate or postdate this UI; every unreadable shape therefore + * degrades to `inject` with whatever name the record still carries. + * @param source - the logged `user/message` source, exactly as recorded. + * @returns the role and producer name to present for this context. + */ + function contextProvenance(source) { + const record = asRecord(source); + const kind = record === null ? null : readString(record, "kind"); + if (record === null || kind === null) return { + role: "inject", + label: null + }; + switch (kind) { + case "session-reference": return { + role: "recall", + label: joined(collect(record, "references", "label")) ?? kind + }; + case "agent-instructions": return { + role: "inject", + label: joined(collect(record, "changes", "path")) ?? kind + }; + case "plugin": return { + role: "inject", + label: readString(record, "plugin") ?? kind + }; + case "skill-invocation": return { + role: "inject", + label: readString(record, "name") ?? kind + }; + default: return { + role: "inject", + label: kind + }; + } + } + /** + * Context forms this UI version renders with a dedicated presentation. The + * durable vocabulary (`ContextForm` in `dsh-llm`) may already be wider — an + * unrecognized or absent value degrades to the opaque presentation rather than + * dropping the row, so a log written by a newer or foreign producer still + * renders. + */ + const KNOWN_FORMS = [ + "instructions", + "catalog", + "snapshot", + "notice", + "relay", + "recall" + ]; + /** + * Read the producer-declared form off one durable message source. + * @param source - the logged `user/message` source, exactly as recorded. + * @returns the form when this UI version presents it, otherwise null (opaque). + */ + function contextForm(source) { + const record = asRecord(source); + const form = record === null ? null : readString(record, "form"); + return form !== null && KNOWN_FORMS.includes(form) ? form : null; + } + //#endregion + //#region lib/types/client/sessions/failure-display.js + /** + * Convert a durable failure into copy that is safe to expose in the GUI. + * @param failure - Failure value preserved by the session event. + * @returns Display-safe copy for client projections. + */ + function displayFailureMessage(failure) { + if (failure === null || typeof failure !== "object") return String(failure); + const record = failure; + if (record.code === "AUTH") return "API key is invalid"; + return typeof record.message === "string" ? record.message : JSON.stringify(failure); + } + //#endregion + //#region lib/types/client/index.js + /** Required services: the wire handle and Client Typert registry. */ + const inject = [ + "connection", + "typert", + "remote", + "remote.commands" + ]; + /** Mounts the browser runtime services and connection stream. + * @param ctx - Client Cordis context. + */ + function apply(ctx) { + ctx.plugin(SlotRegistry); + const conversation = { + events: new ConversationEventRegistry(ctx), + views: new ConversationViewRegistry(ctx) + }; + const connection = ctx.get("connection"); + const sessions = new SessionRuntime(ctx, connection.api, ctx.remote, conversation); + ctx.typert.contexts.registerClient("agent", { identity: (candidate) => sessions.scopeOf(candidate) }); + const workspaces = new WorkspaceRuntime(ctx, connection.api, sessions); + ctx.effect(() => workspaces.startInitialSelection(), "runtime: initial Workspace selection"); + const loop = connection.start({ + onMuxEnvelope: (envelope) => { + sessions.handleMuxEnvelope(envelope); + }, + onHostEnvelope: (envelope) => { + sessions.handleHostEnvelope(envelope); + workspaces.handleHostEnvelope(envelope); + const frame = envelope.payload; + if (frame.type === "host/remote-event") ctx.remote.$dispatch(frame.event, frame.args); + }, + onConnected: () => { + sessions.handleConnected(); + workspaces.handleConnected(); + ctx.emit("connection/reset"); + }, + onStateChange: (state) => { + if (state === "reconnecting") sessions.handleDisconnected(); + } + }); + ctx.effect(() => () => { + loop.stop(); + }, "runtime: connection stream loop"); + } + //#endregion + exports.ConversationEventRegistry = ConversationEventRegistry; + exports.ConversationLocationIndex = ConversationLocationIndex; + exports.ConversationNodeAssembler = ConversationNodeAssembler; + exports.ConversationViewRegistry = ConversationViewRegistry; + exports.DirectoryBrowseError = DirectoryBrowseError; + exports.EMPTY_CHAT_SNAPSHOT = EMPTY_CHAT_SNAPSHOT; + exports.EMPTY_CONVERSATION_VIEWS = EMPTY_CONVERSATION_VIEWS; + exports.PendingWait = PendingWait; + exports.SessionCreateError = SessionCreateError; + exports.SessionProvideChannel = SessionProvideChannel; + exports.SessionRuntime = SessionRuntime; + exports.SlotRegistry = SlotRegistry; + exports.WorkspaceCreateError = WorkspaceCreateError; + exports.WorkspaceRuntime = WorkspaceRuntime; + exports.apply = apply; + exports.contextForm = contextForm; + exports.contextProvenance = contextProvenance; + exports.conversationContextKey = conversationContextKey; + exports.createScope = createScope; + exports.createSnapshotStore = createSnapshotStore; + exports.defineStore = defineStore; + exports.displayFailureMessage = displayFailureMessage; + exports.emptyAssistantBlock = emptyAssistantBlock; + exports.indexSubagentDescendants = indexSubagentDescendants; + exports.inject = inject; + exports.isAppendSurfaceEvent = isAppendSurfaceEvent; + exports.isReplacementSurfaceEvent = isReplacementSurfaceEvent; + exports.isTokenDelta = isTokenDelta; + exports.resolveWorkspacePath = resolveWorkspacePath; + exports.scopeOf = scopeOf; + exports.shallowEqual = shallowEqual; + exports.toAssistantBlock = toAssistantBlock; + exports.toAssistantBlocks = toAssistantBlocks; + exports.workspaceTitleOf = workspaceTitleOf; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000b b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000b new file mode 100644 index 0000000..3e4ae0e --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000b @@ -0,0 +1,10212 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-connection", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + //#region lib/types/client/connection.js + const CONNECTION_DEFAULTS = { + backoffBaseMs: 500, + backoffFactor: 2, + backoffMaxMs: 1e4, + streamOpenTimeoutMs: 3e3 + }; + function sleep(ms, signal) { + return new Promise((resolve) => { + const t = setTimeout(done, ms); + signal.addEventListener("abort", done, { once: true }); + function done() { + clearTimeout(t); + signal.removeEventListener("abort", done); + resolve(); + } + }); + } + /** + * Opens both streams and keeps iterating (pull mode: nothing reads the socket and the tap + * never fires unless someone for-awaits), reconnecting with exponential backoff on loss. + * State (generation/attempt) is instance-private, never in the store. + * The pump body feeds each frame to a sink (sink exceptions must + * not kill the pump — a broken business layer must not drag down the connection layer). + */ + var ConnectionController = class { + api; + sinks; + generation = 0; + attempt = 0; + current = null; + running = false; + lastState = null; + config; + constructor(api, sinks = {}, config = {}) { + this.api = api; + this.sinks = sinks; + this.config = { + ...CONNECTION_DEFAULTS, + ...config + }; + } + /** Idempotent: begin the connect/pump/reconnect loop. */ + start() { + if (this.running) return; + this.running = true; + this.loop(); + } + /** Stop the loop and abort the current generation's streams. */ + stop() { + this.running = false; + this.current?.abort(); + this.current = null; + } + backoffDelay(attempt) { + const { backoffBaseMs, backoffFactor, backoffMaxMs } = this.config; + const cap = Math.min(backoffMaxMs, backoffBaseMs * backoffFactor ** Math.max(0, attempt - 1)); + return cap / 2 + Math.random() * (cap / 2); + } + /** Read through a method: stop() flips the flag across awaits, so narrowing from the loop condition must not stick. */ + isRunning() { + return this.running; + } + /** Re-read both mutable liveness guards after a potentially reentrant sink. */ + isGenerationActive(controller) { + return this.isRunning() && !controller.signal.aborted; + } + async loop() { + while (this.running) { + const gen = ++this.generation; + const ac = new AbortController(); + this.current = ac; + /* v8 ignore next -- initializer placeholder: the Promise executor + * below runs synchronously and replaces it before anyone can call it. */ + let muxOpened = () => {}; + /* v8 ignore next -- same placeholder pattern as muxOpened. */ + let hostOpened = () => {}; + const streamsOpen = Promise.all([new Promise((resolve) => { + muxOpened = resolve; + }), new Promise((resolve) => { + hostOpened = resolve; + })]); + const failed = new Promise((resolve) => { + const settle = () => { + if (gen === this.generation && !ac.signal.aborted) ac.abort(); + resolve(); + }; + this.pumpStream(this.api.events.mux({}, ac.signal, muxOpened), this.sinks.onMuxEnvelope, settle); + this.pumpStream(this.api.events.host({}, ac.signal, hostOpened), this.sinks.onHostEnvelope, settle); + }); + try { + const timeout = new AbortController(); + const [description] = await Promise.all([this.api.host.describe({}), Promise.race([streamsOpen, sleep(this.config.streamOpenTimeoutMs, timeout.signal)])]); + timeout.abort(); + const descriptionResult = description.result; + if (!descriptionResult.ok) throw new Error(`host.describe failed: ${descriptionResult.error.code}: ${descriptionResult.error.message}`); + if (ac.signal.aborted) throw new Error("generation aborted during readiness handshake"); + this.attempt = 0; + this.emitState("connected"); + if (this.isGenerationActive(ac)) this.callSink(() => { + this.sinks.onConnected?.(descriptionResult.value); + }); + } catch { + if (!ac.signal.aborted) ac.abort(); + } + await failed; + if (!this.isRunning()) return; + this.emitState("reconnecting"); + this.attempt += 1; + console.warn(`[web-runtime] connection lost, retry #${this.attempt}`); + const idle = new AbortController(); + await sleep(this.backoffDelay(this.attempt), idle.signal); + } + } + /** Deduplicated state emission (sink isolation applies). */ + emitState(state) { + if (this.lastState === state) return; + this.lastState = state; + this.callSink(() => this.sinks.onStateChange?.(state)); + } + async pumpStream(stream, sink, onEnd) { + try { + for await (const envelope of stream) { + if (envelope.payload.type === "stream/error") break; + if (sink !== void 0) this.callSink(() => { + sink(envelope); + }); + } + } catch {} + onEnd(); + } + /** Sink exception isolation: a business-layer throw is logged only, never affecting pump or reconnect semantics. */ + callSink(fn) { + try { + fn(); + } catch (error) { + console.error("[web-runtime] connection sink threw:", error); + } + } + }; + //#endregion + //#region ../../llm/llm/lib/types/brand.js + /** + * dsh-llm's owned branded ids: tool-call correlation and provider request + * diagnostics. + * + * The `Branded` primitive itself lives in `@deepseek-ai/dsh-brand` (a + * zero-dependency type-only package) so every owner of a cross-boundary id can + * brand it without depending on dsh-llm; see that package's README for the + * nominal-typing policy. + * + * @module @deepseek-ai/dsh-llm/brand + */ + /** + * Brand a message identifier. + * @param id - the opaque message identifier. + * @returns the same string, branded; no validation is performed. + */ + function MessageId(id) { + return id; + } + /** + * Brand a string as a {@link CallId}. + * @param id - the provider-issued (or synthesized) call id. + * @returns the same string, branded; no validation is performed. + */ + function CallId(id) { + return id; + } + //#endregion + //#region ../../llm/llm/lib/types/call-config.js + /** + * Deep-freeze a value in place with an iterative traversal, guarding cycles, + * so later mutation throws without imposing a JavaScript call-stack depth cap. + * {@link AbortSignal} objects are deliberately skipped because they are the + * request's live cancellation channel and freezing them breaks abort. + * @param value - the value to freeze in place. + * @returns the same value, frozen. + */ + function deepFreeze(value) { + const seen = /* @__PURE__ */ new WeakSet(); + const pending = [{ + kind: "visit", + node: value + }]; + while (pending.length > 0) { + const task = pending.pop(); + /* v8 ignore next -- the loop condition guarantees one pending task. */ + if (task === void 0) continue; + if (task.kind === "property") { + pending.push({ + kind: "visit", + node: task.source[task.key] + }); + continue; + } + const node = task.node; + if (node === null || typeof node !== "object") continue; + if (node instanceof AbortSignal) continue; + if (seen.has(node)) continue; + seen.add(node); + Object.freeze(node); + const keys = Object.keys(node); + for (let index = keys.length - 1; index >= 0; index--) { + const key = keys[index]; + /* v8 ignore next -- the loop is bounded by the captured key count. */ + if (key === void 0) continue; + pending.push({ + kind: "property", + source: node, + key + }); + } + } + return value; + } + //#endregion + //#region ../../llm/llm/lib/types/message.js + /** Message value types, identity, and immutable construction helpers. */ + /** + * Detach and deep-freeze a message whose identity already exists. + * @param message - complete message, including its stable identity. + * @returns an immutable snapshot that preserves the identity. + */ + function freezeMessage(message) { + return deepFreeze(structuredClone(message)); + } + /** + * Create one identified message and freeze it before publication. + * @param input - complete role, content, and source for a new message. + * @returns an immutable message with a fresh stable identity. + */ + function createMessage(input) { + return freezeMessage({ + ...input, + id: MessageId(crypto.randomUUID()) + }); + } + /** + * Create one identified user-role message and freeze it before publication. + * @param input - complete content and source for a new user message. + * @returns an immutable user message with a fresh stable identity. + */ + function createUserMessage(input) { + return createMessage({ + ...input, + role: "user" + }); + } + /** + * Create one identified model-produced assistant message and freeze it before publication. + * @param input - complete content plus the provider, model, and optional replay state for a new assistant message. + * @returns an immutable assistant message with fixed role/source tags and a fresh stable identity. + */ + function createAssistantMessage(input) { + return createMessage({ + role: "assistant", + content: input.content, + source: { + kind: "model", + ...input.source + } + }); + } + /** + * Create and freeze one identified tool-result message. + * @param input - call identity, raw result blocks, and outcome. + * @returns an immutable user-role tool-result message. + */ + function createToolResultMessage(input) { + return createUserMessage({ + source: { + kind: "tool", + callId: input.callId + }, + content: [{ + type: "tool-result", + toolCallId: input.callId, + content: input.content, + isError: input.isError + }] + }); + } + /** + * Whether a stream chunk carries visible model output (the first-token + * boundary shared by client step timing and the whole-log sessionStats + * projection). Empty deltas (heartbeats, empty tool-call frames) do not count + * as a first token. + * @param chunk - the stream chunk to test. + * @returns true when the chunk contains a non-empty text/reasoning/tool delta. + */ + function isTokenDelta(chunk) { + switch (chunk.type) { + case "text-delta": + case "reasoning-delta": return chunk.text !== ""; + case "tool-call-delta": return chunk.argumentsDelta !== "" || chunk.name !== void 0; + default: return false; + } + } + //#endregion + //#region ../../core/session/lib/types/surface.js + /** + * Surface layer on top of the session event log: an ordered view of events + * that produce LLM messages. The append-only log remains the source of truth. + * + * Browser-safe: web clients consume this subpath export, so it must stay free + * of `node:` imports (they break the vite bundle). + * + * @module @deepseek-ai/dsh-session/surface + */ + /** Runtime counterpart of the message-producing event union. */ + const SURFACE_EVENT_TYPES = new Set([ + "user/message", + "assistant/message", + "tool/result" + ]); + /** + * Whether an event type can join the model-visible surface. + * @param type - event type to test. + * @returns true for one of the three message-producing event types. + */ + function isSurfaceEligibleType(type) { + return SURFACE_EVENT_TYPES.has(type); + } + /** + * Project a single event into the LLM message it derives to, or null when it + * produces none — a non-surface event (chunk, boundary, log-only record) or an + * empty-content assistant/message (which exists only to host usage). This is + * THE per-node projection rule: `Session.deriveMessages` folds it over the + * live surface, external reconstructors and pure projections fold the same + * function over a log prefix's surface to rebuild the exact messages any + * request was built from. The returned message is the already frozen message + * nested in the event wrapper and shared by delivery, durable history, and + * model requests. + * @param event - the event to project. + * @returns the derived message, or null when the event produces none. + */ + function deriveEventMessage(event) { + switch (event.type) { + case "user/message": return event.data; + case "assistant/message": + if (event.data.message.content.length === 0) return null; + return event.data.message; + case "tool/result": return event.data.message; + default: return null; + } + } + /** Create an empty surface fold state. */ + function createFoldState() { + return { + nodes: [], + replaceGeneration: 0 + }; + } + /** Whether a runtime value is a non-negative safe event sequence. */ + function isEventSeq(value) { + return typeof value === "number" && Number.isSafeInteger(value) && value >= 0; + } + /** Whether a runtime value is the exact positional-replacement shape. */ + function isReplaceOp(value) { + const op = value; + return Object.keys(op).length === 3 && Object.hasOwn(op, "op") && Object.hasOwn(op, "start") && Object.hasOwn(op, "end") && op["op"] === "replace" && isEventSeq(op["start"]) && isEventSeq(op["end"]); + } + /** Validate event-local surface eligibility and return its operation. */ + function surfaceOpOf(event) { + const raw = event; + if (!isSurfaceEligibleType(event.type)) { + if (raw.surfaceOp !== void 0) throw new Error(`session event "${event.type}" is not surface-eligible and cannot carry surfaceOp`); + if (raw.sourceEventSeqs !== void 0) throw new Error(`session event "${event.type}" is not surface-eligible and cannot carry sourceEventSeqs`); + return; + } + const op = raw.surfaceOp; + if (op === void 0) throw new Error(`session event "${event.type}" is surface-eligible and requires a surfaceOp marker`); + if (op === "append") return op; + if (op === null || typeof op !== "object" || Array.isArray(op)) throw new Error(`session event "${event.type}" carries an invalid surfaceOp`); + if (!isReplaceOp(op)) throw new Error(`session event "${event.type}" carries an invalid replace surfaceOp`); + return op; + } + /** Validate cited source-event seqs against prior log entries and the replacement range. */ + function assertProvenance(event, shadowedSeqs) { + const raw = event.sourceEventSeqs; + const sources = /* @__PURE__ */ new Set(); + if (raw !== void 0) { + if (!Array.isArray(raw)) throw new Error(`sourceEventSeqs on event at seq ${event.seq} must be an array when present`); + if (raw.length === 0 && event.type !== "assistant/message") throw new Error("sourceEventSeqs must not be empty except on assistant/message"); + let nonEarlierSource; + for (const source of raw) { + if (!isEventSeq(source)) throw new Error(`session event "${event.type}" sourceEventSeqs must densely contain non-negative safe integers`); + sources.add(source); + if (nonEarlierSource === void 0 && source >= event.seq) nonEarlierSource = source; + } + if (sources.size !== raw.length) throw new Error("sourceEventSeqs must not contain duplicates"); + if (nonEarlierSource !== void 0) throw new Error(`sourceEventSeqs must reference earlier events: ${nonEarlierSource} >= current seq ${event.seq}`); + } + const missing = shadowedSeqs.filter((seq) => !sources.has(seq)); + if (missing.length > 0) throw new Error(`surface replace: sourceEventSeqs must include every shadowed surface node; missing ${missing.join(", ")}`); + } + /** Locate one replacement range without mutating the current fold state. */ + function replacementRange(state, op) { + const startIdx = state.nodes.indexOf(op.start); + if (startIdx === -1) throw new Error(`surface replace: start seq ${op.start} not found in surface`); + const endIdx = state.nodes.indexOf(op.end); + if (endIdx === -1) throw new Error(`surface replace: end seq ${op.end} not found in surface`); + if (startIdx > endIdx) throw new Error(`surface replace: start seq ${op.start} (index ${startIdx}) is after end seq ${op.end} (index ${endIdx})`); + return { + startIdx, + endIdx, + shadowedSeqs: state.nodes.slice(startIdx, endIdx + 1) + }; + } + /** + * Deep structural equality over the session-event JSON value domain + * (null/boolean/number/string, arrays, plain objects). Replaces + * `node:util`'s isDeepStrictEqual to keep this module browser-safe. + */ + function isDeepEqualJson(a, b) { + if (a === b) return true; + if (Array.isArray(a) || Array.isArray(b)) { + if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false; + return a.every((item, i) => isDeepEqualJson(item, b[i])); + } + if (typeof a !== "object" || typeof b !== "object" || a === null || b === null) return false; + const aKeys = Object.keys(a); + const bRecord = b; + if (aKeys.length !== Object.keys(b).length) return false; + return aKeys.every((key) => Object.hasOwn(b, key) && isDeepEqualJson(a[key], bRecord[key])); + } + /** Restrict a tool-result replacement to one current result's content. */ + function assertToolResultRewrite(event, shadowedSeqs, events, baseSeq) { + if (event.type !== "tool/result") return; + if (shadowedSeqs.length !== 1) throw new Error("tool/result surface replacement must rewrite exactly one current node"); + for (const originalSeq of shadowedSeqs) { + const original = events[originalSeq - baseSeq]; + if (original?.type !== "tool/result") throw new Error("tool/result surface replacement must target a current tool/result"); + const originalRest = { ...original.data }; + const replacementRest = { ...event.data }; + const originalResult = original.data.message.content[0]; + const replacementResult = event.data.message.content[0]; + originalRest["message"] = { + ...original.data.message, + content: [{ + ...originalResult, + content: null + }] + }; + replacementRest["message"] = { + ...event.data.message, + content: [{ + ...replacementResult, + content: null + }] + }; + if (!isDeepEqualJson(originalRest, replacementRest)) throw new Error("tool/result surface replacement may change only content"); + } + } + /** Validate one event at its replay boundary and prepare its atomic fold transition. */ + function planSurfaceEvent(state, event, expectedSeq, events, baseSeq) { + if (event.seq !== expectedSeq) throw new Error(`session event seq ${event.seq} is not contiguous; expected ${expectedSeq}`); + const surfaceOp = surfaceOpOf(event); + if (surfaceOp === void 0) return; + if (surfaceOp === "append") { + assertProvenance(event, []); + return { + kind: "append", + seq: event.seq + }; + } + const range = replacementRange(state, surfaceOp); + assertProvenance(event, range.shadowedSeqs); + assertToolResultRewrite(event, range.shadowedSeqs, events, baseSeq); + return { + kind: "replace", + seq: event.seq, + start: surfaceOp.start, + end: surfaceOp.end, + ...range + }; + } + /** Apply one event and return replacement metadata only when one occurred. */ + function applySurfaceEvent(state, event, expectedSeq, events, baseSeq) { + return applySurfacePlan(state, planSurfaceEvent(state, event, expectedSeq, events, baseSeq)); + } + /** Commit one previously validated surface transition. */ + function applySurfacePlan(state, plan) { + if (plan?.kind === "append") state.nodes.push(plan.seq); + else if (plan?.kind === "replace") { + state.nodes.splice(plan.startIdx, plan.endIdx - plan.startIdx + 1, plan.seq); + state.replaceGeneration += 1; + } + if (plan?.kind !== "replace") return; + return { + seq: plan.seq, + start: plan.start, + end: plan.end, + shadowedSeqs: plan.shadowedSeqs + }; + } + /** + * Replay a complete session log through the canonical surface fold. + * @param events - session events in contiguous seq order. + * @returns detached current sequences and replacement history. + * @throws when an event violates surface metadata, source-event references, range, or tool-result rewrite rules. + */ + function foldSurface(events) { + const state = createFoldState(); + const replacements = []; + for (const [index, event] of events.entries()) { + const replacement = applySurfaceEvent(state, event, index, events, 0); + if (replacement !== void 0) replacements.push(replacement); + } + return { + nodes: [...state.nodes], + replacements + }; + } + //#endregion + //#region ../../host/apiproxy/lib/types/api/rpc.js + /** + * Four-quadrant RPC message model. Channels and messages are decoupled: HTTP, + * WebSocket, and in-process SSE are physical carriers, while logical messages + * are channel-independent and form a four-member discriminated union. + * api/ contract layer: zero Node dependencies, importable from the browser. + */ + /** + * Brands a string as RpcId (same precedent as core `SessionId()`). Minted by the initiator: + * client-request → client mints; server-request → host mints (answerable frames get a stable + * logical id, pure pushes mint a fresh one each time). + * @param id - Raw id string (implementations mint UUIDs; tests may pass fixtures). + * @returns The same string, branded (compile-time cast, zero runtime cost). + */ + function RpcId(id) { + return id; + } + /** + * Fold a transport exception into the RpcResult error branch (unified error + * API; 'internal' as the catch-all code). Lives with RpcResult so every + * carrier consumer folds the same way. + * @param error - the thrown value from the carrier. + * @returns the error branch of an RpcResult. + */ + function transportError(error) { + return { + ok: false, + error: { + code: "internal", + message: error instanceof Error ? error.message : String(error), + details: {} + } + }; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js + var _a$1; + function $constructor(name, initializer, params) { + function init(inst, def) { + if (!inst._zod) Object.defineProperty(inst, "_zod", { + value: { + def, + constr: _, + traits: /* @__PURE__ */ new Set() + }, + enumerable: false + }); + if (inst._zod.traits.has(name)) return; + inst._zod.traits.add(name); + initializer(inst, def); + const proto = _.prototype; + const keys = Object.keys(proto); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + if (!(k in inst)) inst[k] = proto[k].bind(inst); + } + } + const Parent = params?.Parent ?? Object; + class Definition extends Parent {} + Object.defineProperty(Definition, "name", { value: name }); + function _(def) { + var _a; + const inst = params?.Parent ? new Definition() : this; + init(inst, def); + (_a = inst._zod).deferred ?? (_a.deferred = []); + for (const fn of inst._zod.deferred) fn(); + return inst; + } + Object.defineProperty(_, "init", { value: init }); + Object.defineProperty(_, Symbol.hasInstance, { value: (inst) => { + if (params?.Parent && inst instanceof params.Parent) return true; + return inst?._zod?.traits?.has(name); + } }); + Object.defineProperty(_, "name", { value: name }); + return _; + } + var $ZodAsyncError = class extends Error { + constructor() { + super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); + } + }; + var $ZodEncodeError = class extends Error { + constructor(name) { + super(`Encountered unidirectional transform during encode: ${name}`); + this.name = "ZodEncodeError"; + } + }; + (_a$1 = globalThis).__zod_globalConfig ?? (_a$1.__zod_globalConfig = {}); + const globalConfig = globalThis.__zod_globalConfig; + function config(newConfig) { + if (newConfig) Object.assign(globalConfig, newConfig); + return globalConfig; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js + function getEnumValues(entries) { + const numericValues = Object.values(entries).filter((v) => typeof v === "number"); + return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); + } + function jsonStringifyReplacer(_, value) { + if (typeof value === "bigint") return value.toString(); + return value; + } + function cached(getter) { + return { get value() { + { + const value = getter(); + Object.defineProperty(this, "value", { value }); + return value; + } + throw new Error("cached value already set"); + } }; + } + function nullish(input) { + return input === null || input === void 0; + } + function cleanRegex(source) { + const start = source.startsWith("^") ? 1 : 0; + const end = source.endsWith("$") ? source.length - 1 : source.length; + return source.slice(start, end); + } + function floatSafeRemainder(val, step) { + const ratio = val / step; + const roundedRatio = Math.round(ratio); + const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1); + if (Math.abs(ratio - roundedRatio) < tolerance) return 0; + return ratio - roundedRatio; + } + const EVALUATING = /* @__PURE__*/ Symbol("evaluating"); + function defineLazy(object, key, getter) { + let value = void 0; + Object.defineProperty(object, key, { + get() { + if (value === EVALUATING) return; + if (value === void 0) { + value = EVALUATING; + value = getter(); + } + return value; + }, + set(v) { + Object.defineProperty(object, key, { value: v }); + }, + configurable: true + }); + } + function assignProp(target, prop, value) { + Object.defineProperty(target, prop, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + function mergeDefs(...defs) { + const mergedDescriptors = {}; + for (const def of defs) Object.assign(mergedDescriptors, Object.getOwnPropertyDescriptors(def)); + return Object.defineProperties({}, mergedDescriptors); + } + function esc(str) { + return JSON.stringify(str); + } + function slugify(input) { + return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); + } + const captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => {}; + function isObject(data) { + return typeof data === "object" && data !== null && !Array.isArray(data); + } + const allowsEval = /* @__PURE__*/ cached(() => { + if (globalConfig.jitless) return false; + if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) return false; + try { + new Function(""); + return true; + } catch (_) { + return false; + } + }); + function isPlainObject(o) { + if (isObject(o) === false) return false; + const ctor = o.constructor; + if (ctor === void 0) return true; + if (typeof ctor !== "function") return true; + const prot = ctor.prototype; + if (isObject(prot) === false) return false; + if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) return false; + return true; + } + function shallowClone(o) { + if (isPlainObject(o)) return { ...o }; + if (Array.isArray(o)) return [...o]; + if (o instanceof Map) return new Map(o); + if (o instanceof Set) return new Set(o); + return o; + } + const propertyKeyTypes = /* @__PURE__*/ new Set([ + "string", + "number", + "symbol" + ]); + function escapeRegex(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function clone(inst, def, params) { + const cl = new inst._zod.constr(def ?? inst._zod.def); + if (!def || params?.parent) cl._zod.parent = inst; + return cl; + } + function normalizeParams(_params) { + const params = _params; + if (!params) return {}; + if (typeof params === "string") return { error: () => params }; + if (params?.message !== void 0) { + if (params?.error !== void 0) throw new Error("Cannot specify both `message` and `error` params"); + params.error = params.message; + } + delete params.message; + if (typeof params.error === "string") return { + ...params, + error: () => params.error + }; + return params; + } + function optionalKeys(shape) { + return Object.keys(shape).filter((k) => { + return shape[k]._zod.optin === "optional" && shape[k]._zod.optout === "optional"; + }); + } + const NUMBER_FORMAT_RANGES = { + safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], + int32: [-2147483648, 2147483647], + uint32: [0, 4294967295], + float32: [-34028234663852886e22, 34028234663852886e22], + float64: [-Number.MAX_VALUE, Number.MAX_VALUE] + }; + function pick(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".pick() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = {}; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + newShape[key] = currDef.shape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function omit(schema, mask) { + const currDef = schema._zod.def; + const checks = currDef.checks; + if (checks && checks.length > 0) throw new Error(".omit() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const newShape = { ...schema._zod.def.shape }; + for (const key in mask) { + if (!(key in currDef.shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + delete newShape[key]; + } + assignProp(this, "shape", newShape); + return newShape; + }, + checks: [] + })); + } + function extend(schema, shape) { + if (!isPlainObject(shape)) throw new Error("Invalid input to extend: expected a plain object"); + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) { + const existingShape = schema._zod.def.shape; + for (const key in shape) if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); + } + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function safeExtend(schema, shape) { + if (!isPlainObject(shape)) throw new Error("Invalid input to safeExtend: expected a plain object"); + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const _shape = { + ...schema._zod.def.shape, + ...shape + }; + assignProp(this, "shape", _shape); + return _shape; + } })); + } + function merge(a, b) { + if (a._zod.def.checks?.length) throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); + return clone(a, mergeDefs(a._zod.def, { + get shape() { + const _shape = { + ...a._zod.def.shape, + ...b._zod.def.shape + }; + assignProp(this, "shape", _shape); + return _shape; + }, + get catchall() { + return b._zod.def.catchall; + }, + checks: b._zod.def.checks ?? [] + })); + } + function partial(Class, schema, mask) { + const checks = schema._zod.def.checks; + if (checks && checks.length > 0) throw new Error(".partial() cannot be used on object schemas containing refinements"); + return clone(schema, mergeDefs(schema._zod.def, { + get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in oldShape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + } + else for (const key in oldShape) shape[key] = Class ? new Class({ + type: "optional", + innerType: oldShape[key] + }) : oldShape[key]; + assignProp(this, "shape", shape); + return shape; + }, + checks: [] + })); + } + function required(Class, schema, mask) { + return clone(schema, mergeDefs(schema._zod.def, { get shape() { + const oldShape = schema._zod.def.shape; + const shape = { ...oldShape }; + if (mask) for (const key in mask) { + if (!(key in shape)) throw new Error(`Unrecognized key: "${key}"`); + if (!mask[key]) continue; + shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + } + else for (const key in oldShape) shape[key] = new Class({ + type: "nonoptional", + innerType: oldShape[key] + }); + assignProp(this, "shape", shape); + return shape; + } })); + } + function aborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue !== true) return true; + return false; + } + function explicitlyAborted(x, startIndex = 0) { + if (x.aborted === true) return true; + for (let i = startIndex; i < x.issues.length; i++) if (x.issues[i]?.continue === false) return true; + return false; + } + function prefixIssues(path, issues) { + return issues.map((iss) => { + var _a; + (_a = iss).path ?? (_a.path = []); + iss.path.unshift(path); + return iss; + }); + } + function unwrapMessage(message) { + return typeof message === "string" ? message : message?.message; + } + function finalizeIssue(iss, ctx, config) { + const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config.customError?.(iss)) ?? unwrapMessage(config.localeError?.(iss)) ?? "Invalid input"; + const { inst: _inst, continue: _continue, input: _input, ...rest } = iss; + rest.path ?? (rest.path = []); + rest.message = message; + if (ctx?.reportInput) rest.input = _input; + return rest; + } + function getLengthableOrigin(input) { + if (Array.isArray(input)) return "array"; + if (typeof input === "string") return "string"; + return "unknown"; + } + function issue(...args) { + const [iss, input, inst] = args; + if (typeof iss === "string") return { + message: iss, + code: "custom", + input, + inst + }; + return { ...iss }; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js + const initializer$1 = (inst, def) => { + inst.name = "$ZodError"; + Object.defineProperty(inst, "_zod", { + value: inst._zod, + enumerable: false + }); + Object.defineProperty(inst, "issues", { + value: def, + enumerable: false + }); + inst.message = JSON.stringify(def, jsonStringifyReplacer, 2); + Object.defineProperty(inst, "toString", { + value: () => inst.message, + enumerable: false + }); + }; + const $ZodError = $constructor("$ZodError", initializer$1); + const $ZodRealError = $constructor("$ZodError", initializer$1, { Parent: Error }); + function flattenError(error, mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of error.issues) if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else formErrors.push(mapper(sub)); + return { + formErrors, + fieldErrors + }; + } + function formatError(error, mapper = (issue) => issue.message) { + const fieldErrors = { _errors: [] }; + const processError = (error, path = []) => { + for (const issue of error.issues) if (issue.code === "invalid_union" && issue.errors.length) issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path])); + else if (issue.code === "invalid_key") processError({ issues: issue.issues }, [...path, ...issue.path]); + else if (issue.code === "invalid_element") processError({ issues: issue.issues }, [...path, ...issue.path]); + else { + const fullpath = [...path, ...issue.path]; + if (fullpath.length === 0) fieldErrors._errors.push(mapper(issue)); + else { + let curr = fieldErrors; + let i = 0; + while (i < fullpath.length) { + const el = fullpath[i]; + if (!(i === fullpath.length - 1)) curr[el] = curr[el] || { _errors: [] }; + else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i++; + } + } + } + }; + processError(error); + return fieldErrors; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js + const _parse = (_Err) => (schema, value, _ctx, _params) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + if (result.issues.length) { + const e = new ((_params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, _params?.callee); + throw e; + } + return result.value; + }; + const _parseAsync = (_Err) => async (schema, value, _ctx, params) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + if (result.issues.length) { + const e = new ((params?.Err) ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); + captureStackTrace(e, params?.callee); + throw e; + } + return result.value; + }; + const _safeParse = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: false + } : { async: false }; + const result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) throw new $ZodAsyncError(); + return result.issues.length ? { + success: false, + error: new (_Err ?? $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParse$1 = /* @__PURE__*/ _safeParse($ZodRealError); + const _safeParseAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + async: true + } : { async: true }; + let result = schema._zod.run({ + value, + issues: [] + }, ctx); + if (result instanceof Promise) result = await result; + return result.issues.length ? { + success: false, + error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + } : { + success: true, + data: result.value + }; + }; + const safeParseAsync$1 = /* @__PURE__*/ _safeParseAsync($ZodRealError); + const _encode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parse(_Err)(schema, value, ctx); + }; + const _decode = (_Err) => (schema, value, _ctx) => { + return _parse(_Err)(schema, value, _ctx); + }; + const _encodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _parseAsync(_Err)(schema, value, ctx); + }; + const _decodeAsync = (_Err) => async (schema, value, _ctx) => { + return _parseAsync(_Err)(schema, value, _ctx); + }; + const _safeEncode = (_Err) => (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParse(_Err)(schema, value, ctx); + }; + const _safeDecode = (_Err) => (schema, value, _ctx) => { + return _safeParse(_Err)(schema, value, _ctx); + }; + const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => { + const ctx = _ctx ? { + ..._ctx, + direction: "backward" + } : { direction: "backward" }; + return _safeParseAsync(_Err)(schema, value, ctx); + }; + const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => { + return _safeParseAsync(_Err)(schema, value, _ctx); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const cuid = /^[cC][0-9a-z]{6,}$/; + const cuid2 = /^[0-9a-z]+$/; + const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/; + const xid = /^[0-9a-vA-V]{20}$/; + const ksuid = /^[A-Za-z0-9]{27}$/; + const nanoid = /^[a-zA-Z0-9_-]{21}$/; + /** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */ + const duration$1 = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; + /** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */ + const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/; + /** Returns a regex for validating an RFC 9562/4122 UUID. + * + * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */ + const uuid = (version) => { + if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; + return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); + }; + /** Practical email validation */ + const email = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; + const _emoji$1 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; + function emoji() { + return new RegExp(_emoji$1, "u"); + } + const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; + const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; + const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/; + const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; + const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; + const base64url = /^[A-Za-z0-9_-]*$/; + const httpProtocol = /^https?$/; + const e164 = /^\+[1-9]\d{6,14}$/; + const dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`; + const date$1 = /*@__PURE__*/ new RegExp(`^${dateSource}$`); + function timeSource(args) { + const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; + return typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; + } + function time$1(args) { + return new RegExp(`^${timeSource(args)}$`); + } + function datetime$1(args) { + const time = timeSource({ precision: args.precision }); + const opts = ["Z"]; + if (args.local) opts.push(""); + if (args.offset) opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); + const timeRegex = `${time}(?:${opts.join("|")})`; + return new RegExp(`^${dateSource}T(?:${timeRegex})$`); + } + const string$1 = (params) => { + const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; + return new RegExp(`^${regex}$`); + }; + const integer = /^-?\d+$/; + const number$1 = /^-?\d+(?:\.\d+)?$/; + const boolean$1 = /^(?:true|false)$/i; + const lowercase = /^[^A-Z]*$/; + const uppercase = /^[^a-z]*$/; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js + const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => { + var _a; + inst._zod ?? (inst._zod = {}); + inst._zod.def = def; + (_a = inst._zod).onattach ?? (_a.onattach = []); + }); + const numericOriginMap = { + number: "number", + bigint: "bigint", + object: "date" + }; + const $ZodCheckLessThan = /*@__PURE__*/ $constructor("$ZodCheckLessThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY; + if (def.value < curr) if (def.inclusive) bag.maximum = def.value; + else bag.exclusiveMaximum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value <= def.value : payload.value < def.value) return; + payload.issues.push({ + origin, + code: "too_big", + maximum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckGreaterThan = /*@__PURE__*/ $constructor("$ZodCheckGreaterThan", (inst, def) => { + $ZodCheck.init(inst, def); + const origin = numericOriginMap[typeof def.value]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY; + if (def.value > curr) if (def.inclusive) bag.minimum = def.value; + else bag.exclusiveMinimum = def.value; + }); + inst._zod.check = (payload) => { + if (def.inclusive ? payload.value >= def.value : payload.value > def.value) return; + payload.issues.push({ + origin, + code: "too_small", + minimum: typeof def.value === "object" ? def.value.getTime() : def.value, + input: payload.value, + inclusive: def.inclusive, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMultipleOf = /*@__PURE__*/ $constructor("$ZodCheckMultipleOf", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + var _a; + (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value); + }); + inst._zod.check = (payload) => { + if (typeof payload.value !== typeof def.value) throw new Error("Cannot mix number and bigint in multiple_of check."); + if (typeof payload.value === "bigint" ? payload.value % def.value === BigInt(0) : floatSafeRemainder(payload.value, def.value) === 0) return; + payload.issues.push({ + origin: typeof payload.value, + code: "not_multiple_of", + divisor: def.value, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckNumberFormat = /*@__PURE__*/ $constructor("$ZodCheckNumberFormat", (inst, def) => { + $ZodCheck.init(inst, def); + def.format = def.format || "float64"; + const isInt = def.format?.includes("int"); + const origin = isInt ? "int" : "number"; + const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + bag.minimum = minimum; + bag.maximum = maximum; + if (isInt) bag.pattern = integer; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (isInt) { + if (!Number.isInteger(input)) { + payload.issues.push({ + expected: origin, + format: def.format, + code: "invalid_type", + continue: false, + input, + inst + }); + return; + } + if (!Number.isSafeInteger(input)) { + if (input > 0) payload.issues.push({ + input, + code: "too_big", + maximum: Number.MAX_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + else payload.issues.push({ + input, + code: "too_small", + minimum: Number.MIN_SAFE_INTEGER, + note: "Integers must be within the safe integer range.", + inst, + origin, + inclusive: true, + continue: !def.abort + }); + return; + } + } + if (input < minimum) payload.issues.push({ + origin: "number", + input, + code: "too_small", + minimum, + inclusive: true, + inst, + continue: !def.abort + }); + if (input > maximum) payload.issues.push({ + origin: "number", + input, + code: "too_big", + maximum, + inclusive: true, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMaxLength = /*@__PURE__*/ $constructor("$ZodCheckMaxLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY; + if (def.maximum < curr) inst._zod.bag.maximum = def.maximum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length <= def.maximum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_big", + maximum: def.maximum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckMinLength = /*@__PURE__*/ $constructor("$ZodCheckMinLength", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const curr = inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY; + if (def.minimum > curr) inst._zod.bag.minimum = def.minimum; + }); + inst._zod.check = (payload) => { + const input = payload.value; + if (input.length >= def.minimum) return; + const origin = getLengthableOrigin(input); + payload.issues.push({ + origin, + code: "too_small", + minimum: def.minimum, + inclusive: true, + input, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLengthEquals = /*@__PURE__*/ $constructor("$ZodCheckLengthEquals", (inst, def) => { + var _a; + $ZodCheck.init(inst, def); + (_a = inst._zod.def).when ?? (_a.when = (payload) => { + const val = payload.value; + return !nullish(val) && val.length !== void 0; + }); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.minimum = def.length; + bag.maximum = def.length; + bag.length = def.length; + }); + inst._zod.check = (payload) => { + const input = payload.value; + const length = input.length; + if (length === def.length) return; + const origin = getLengthableOrigin(input); + const tooBig = length > def.length; + payload.issues.push({ + origin, + ...tooBig ? { + code: "too_big", + maximum: def.length + } : { + code: "too_small", + minimum: def.length + }, + inclusive: true, + exact: true, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStringFormat = /*@__PURE__*/ $constructor("$ZodCheckStringFormat", (inst, def) => { + var _a, _b; + $ZodCheck.init(inst, def); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.format = def.format; + if (def.pattern) { + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(def.pattern); + } + }); + if (def.pattern) (_a = inst._zod).check ?? (_a.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: def.format, + input: payload.value, + ...def.pattern ? { pattern: def.pattern.toString() } : {}, + inst, + continue: !def.abort + }); + }); + else (_b = inst._zod).check ?? (_b.check = () => {}); + }); + const $ZodCheckRegex = /*@__PURE__*/ $constructor("$ZodCheckRegex", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + inst._zod.check = (payload) => { + def.pattern.lastIndex = 0; + if (def.pattern.test(payload.value)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "regex", + input: payload.value, + pattern: def.pattern.toString(), + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckLowerCase = /*@__PURE__*/ $constructor("$ZodCheckLowerCase", (inst, def) => { + def.pattern ?? (def.pattern = lowercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckUpperCase = /*@__PURE__*/ $constructor("$ZodCheckUpperCase", (inst, def) => { + def.pattern ?? (def.pattern = uppercase); + $ZodCheckStringFormat.init(inst, def); + }); + const $ZodCheckIncludes = /*@__PURE__*/ $constructor("$ZodCheckIncludes", (inst, def) => { + $ZodCheck.init(inst, def); + const escapedRegex = escapeRegex(def.includes); + const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position}}${escapedRegex}` : escapedRegex); + def.pattern = pattern; + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.includes(def.includes, def.position)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "includes", + includes: def.includes, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckStartsWith = /*@__PURE__*/ $constructor("$ZodCheckStartsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.startsWith(def.prefix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "starts_with", + prefix: def.prefix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckEndsWith = /*@__PURE__*/ $constructor("$ZodCheckEndsWith", (inst, def) => { + $ZodCheck.init(inst, def); + const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); + def.pattern ?? (def.pattern = pattern); + inst._zod.onattach.push((inst) => { + const bag = inst._zod.bag; + bag.patterns ?? (bag.patterns = /* @__PURE__ */ new Set()); + bag.patterns.add(pattern); + }); + inst._zod.check = (payload) => { + if (payload.value.endsWith(def.suffix)) return; + payload.issues.push({ + origin: "string", + code: "invalid_format", + format: "ends_with", + suffix: def.suffix, + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodCheckOverwrite = /*@__PURE__*/ $constructor("$ZodCheckOverwrite", (inst, def) => { + $ZodCheck.init(inst, def); + inst._zod.check = (payload) => { + payload.value = def.tx(payload.value); + }; + }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js + var Doc = class { + constructor(args = []) { + this.content = []; + this.indent = 0; + if (this) this.args = args; + } + indented(fn) { + this.indent += 1; + fn(this); + this.indent -= 1; + } + write(arg) { + if (typeof arg === "function") { + arg(this, { execution: "sync" }); + arg(this, { execution: "async" }); + return; + } + const lines = arg.split("\n").filter((x) => x); + const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); + const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); + for (const line of dedented) this.content.push(line); + } + compile() { + const F = Function; + const args = this?.args; + const lines = [...(this?.content ?? [``]).map((x) => ` ${x}`)]; + return new F(...args, lines.join("\n")); + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js + const version = { + major: 4, + minor: 4, + patch: 3 + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js + const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => { + var _a; + inst ?? (inst = {}); + inst._zod.def = def; + inst._zod.bag = inst._zod.bag || {}; + inst._zod.version = version; + const checks = [...inst._zod.def.checks ?? []]; + if (inst._zod.traits.has("$ZodCheck")) checks.unshift(inst); + for (const ch of checks) for (const fn of ch._zod.onattach) fn(inst); + if (checks.length === 0) { + (_a = inst._zod).deferred ?? (_a.deferred = []); + inst._zod.deferred?.push(() => { + inst._zod.run = inst._zod.parse; + }); + } else { + const runChecks = (payload, checks, ctx) => { + let isAborted = aborted(payload); + let asyncResult; + for (const ch of checks) { + if (ch._zod.def.when) { + if (explicitlyAborted(payload)) continue; + if (!ch._zod.def.when(payload)) continue; + } else if (isAborted) continue; + const currLen = payload.issues.length; + const _ = ch._zod.check(payload); + if (_ instanceof Promise && ctx?.async === false) throw new $ZodAsyncError(); + if (asyncResult || _ instanceof Promise) asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { + await _; + if (payload.issues.length === currLen) return; + if (!isAborted) isAborted = aborted(payload, currLen); + }); + else { + if (payload.issues.length === currLen) continue; + if (!isAborted) isAborted = aborted(payload, currLen); + } + } + if (asyncResult) return asyncResult.then(() => { + return payload; + }); + return payload; + }; + const handleCanaryResult = (canary, payload, ctx) => { + if (aborted(canary)) { + canary.aborted = true; + return canary; + } + const checkResult = runChecks(payload, checks, ctx); + if (checkResult instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx)); + } + return inst._zod.parse(checkResult, ctx); + }; + inst._zod.run = (payload, ctx) => { + if (ctx.skipChecks) return inst._zod.parse(payload, ctx); + if (ctx.direction === "backward") { + const canary = inst._zod.parse({ + value: payload.value, + issues: [] + }, { + ...ctx, + skipChecks: true + }); + if (canary instanceof Promise) return canary.then((canary) => { + return handleCanaryResult(canary, payload, ctx); + }); + return handleCanaryResult(canary, payload, ctx); + } + const result = inst._zod.parse(payload, ctx); + if (result instanceof Promise) { + if (ctx.async === false) throw new $ZodAsyncError(); + return result.then((result) => runChecks(result, checks, ctx)); + } + return runChecks(result, checks, ctx); + }; + } + defineLazy(inst, "~standard", () => ({ + validate: (value) => { + try { + const r = safeParse$1(inst, value); + return r.success ? { value: r.data } : { issues: r.error?.issues }; + } catch (_) { + return safeParseAsync$1(inst, value).then((r) => r.success ? { value: r.data } : { issues: r.error?.issues }); + } + }, + vendor: "zod", + version: 1 + })); + }); + const $ZodString = /*@__PURE__*/ $constructor("$ZodString", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = [...inst?._zod.bag?.patterns ?? []].pop() ?? string$1(inst._zod.bag); + inst._zod.parse = (payload, _) => { + if (def.coerce) try { + payload.value = String(payload.value); + } catch (_) {} + if (typeof payload.value === "string") return payload; + payload.issues.push({ + expected: "string", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + const $ZodStringFormat = /*@__PURE__*/ $constructor("$ZodStringFormat", (inst, def) => { + $ZodCheckStringFormat.init(inst, def); + $ZodString.init(inst, def); + }); + const $ZodGUID = /*@__PURE__*/ $constructor("$ZodGUID", (inst, def) => { + def.pattern ?? (def.pattern = guid); + $ZodStringFormat.init(inst, def); + }); + const $ZodUUID = /*@__PURE__*/ $constructor("$ZodUUID", (inst, def) => { + if (def.version) { + const v = { + v1: 1, + v2: 2, + v3: 3, + v4: 4, + v5: 5, + v6: 6, + v7: 7, + v8: 8 + }[def.version]; + if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`); + def.pattern ?? (def.pattern = uuid(v)); + } else def.pattern ?? (def.pattern = uuid()); + $ZodStringFormat.init(inst, def); + }); + const $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => { + def.pattern ?? (def.pattern = email); + $ZodStringFormat.init(inst, def); + }); + const $ZodURL = /*@__PURE__*/ $constructor("$ZodURL", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + try { + const trimmed = payload.value.trim(); + if (!def.normalize && def.protocol?.source === httpProtocol.source) { + if (!/^https?:\/\//i.test(trimmed)) { + payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid URL format", + input: payload.value, + inst, + continue: !def.abort + }); + return; + } + } + const url = new URL(trimmed); + if (def.hostname) { + def.hostname.lastIndex = 0; + if (!def.hostname.test(url.hostname)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid hostname", + pattern: def.hostname.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.protocol) { + def.protocol.lastIndex = 0; + if (!def.protocol.test(url.protocol.endsWith(":") ? url.protocol.slice(0, -1) : url.protocol)) payload.issues.push({ + code: "invalid_format", + format: "url", + note: "Invalid protocol", + pattern: def.protocol.source, + input: payload.value, + inst, + continue: !def.abort + }); + } + if (def.normalize) payload.value = url.href; + else payload.value = trimmed; + return; + } catch (_) { + payload.issues.push({ + code: "invalid_format", + format: "url", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodEmoji = /*@__PURE__*/ $constructor("$ZodEmoji", (inst, def) => { + def.pattern ?? (def.pattern = emoji()); + $ZodStringFormat.init(inst, def); + }); + const $ZodNanoID = /*@__PURE__*/ $constructor("$ZodNanoID", (inst, def) => { + def.pattern ?? (def.pattern = nanoid); + $ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link $ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const $ZodCUID = /*@__PURE__*/ $constructor("$ZodCUID", (inst, def) => { + def.pattern ?? (def.pattern = cuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodCUID2 = /*@__PURE__*/ $constructor("$ZodCUID2", (inst, def) => { + def.pattern ?? (def.pattern = cuid2); + $ZodStringFormat.init(inst, def); + }); + const $ZodULID = /*@__PURE__*/ $constructor("$ZodULID", (inst, def) => { + def.pattern ?? (def.pattern = ulid); + $ZodStringFormat.init(inst, def); + }); + const $ZodXID = /*@__PURE__*/ $constructor("$ZodXID", (inst, def) => { + def.pattern ?? (def.pattern = xid); + $ZodStringFormat.init(inst, def); + }); + const $ZodKSUID = /*@__PURE__*/ $constructor("$ZodKSUID", (inst, def) => { + def.pattern ?? (def.pattern = ksuid); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODateTime = /*@__PURE__*/ $constructor("$ZodISODateTime", (inst, def) => { + def.pattern ?? (def.pattern = datetime$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODate = /*@__PURE__*/ $constructor("$ZodISODate", (inst, def) => { + def.pattern ?? (def.pattern = date$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodISOTime = /*@__PURE__*/ $constructor("$ZodISOTime", (inst, def) => { + def.pattern ?? (def.pattern = time$1(def)); + $ZodStringFormat.init(inst, def); + }); + const $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def) => { + def.pattern ?? (def.pattern = duration$1); + $ZodStringFormat.init(inst, def); + }); + const $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def) => { + def.pattern ?? (def.pattern = ipv4); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv4`; + }); + const $ZodIPv6 = /*@__PURE__*/ $constructor("$ZodIPv6", (inst, def) => { + def.pattern ?? (def.pattern = ipv6); + $ZodStringFormat.init(inst, def); + inst._zod.bag.format = `ipv6`; + inst._zod.check = (payload) => { + try { + new URL(`http://[${payload.value}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "ipv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + const $ZodCIDRv4 = /*@__PURE__*/ $constructor("$ZodCIDRv4", (inst, def) => { + def.pattern ?? (def.pattern = cidrv4); + $ZodStringFormat.init(inst, def); + }); + const $ZodCIDRv6 = /*@__PURE__*/ $constructor("$ZodCIDRv6", (inst, def) => { + def.pattern ?? (def.pattern = cidrv6); + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + const parts = payload.value.split("/"); + try { + if (parts.length !== 2) throw new Error(); + const [address, prefix] = parts; + if (!prefix) throw new Error(); + const prefixNum = Number(prefix); + if (`${prefixNum}` !== prefix) throw new Error(); + if (prefixNum < 0 || prefixNum > 128) throw new Error(); + new URL(`http://[${address}]`); + } catch { + payload.issues.push({ + code: "invalid_format", + format: "cidrv6", + input: payload.value, + inst, + continue: !def.abort + }); + } + }; + }); + function isValidBase64(data) { + if (data === "") return true; + if (/\s/.test(data)) return false; + if (data.length % 4 !== 0) return false; + try { + atob(data); + return true; + } catch { + return false; + } + } + const $ZodBase64 = /*@__PURE__*/ $constructor("$ZodBase64", (inst, def) => { + def.pattern ?? (def.pattern = base64); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64"; + inst._zod.check = (payload) => { + if (isValidBase64(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + function isValidBase64URL(data) { + if (!base64url.test(data)) return false; + const base64 = data.replace(/[-_]/g, (c) => c === "-" ? "+" : "/"); + return isValidBase64(base64.padEnd(Math.ceil(base64.length / 4) * 4, "=")); + } + const $ZodBase64URL = /*@__PURE__*/ $constructor("$ZodBase64URL", (inst, def) => { + def.pattern ?? (def.pattern = base64url); + $ZodStringFormat.init(inst, def); + inst._zod.bag.contentEncoding = "base64url"; + inst._zod.check = (payload) => { + if (isValidBase64URL(payload.value)) return; + payload.issues.push({ + code: "invalid_format", + format: "base64url", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodE164 = /*@__PURE__*/ $constructor("$ZodE164", (inst, def) => { + def.pattern ?? (def.pattern = e164); + $ZodStringFormat.init(inst, def); + }); + function isValidJWT(token, algorithm = null) { + try { + const tokensParts = token.split("."); + if (tokensParts.length !== 3) return false; + const [header] = tokensParts; + if (!header) return false; + const parsedHeader = JSON.parse(atob(header)); + if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") return false; + if (!parsedHeader.alg) return false; + if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) return false; + return true; + } catch { + return false; + } + } + const $ZodJWT = /*@__PURE__*/ $constructor("$ZodJWT", (inst, def) => { + $ZodStringFormat.init(inst, def); + inst._zod.check = (payload) => { + if (isValidJWT(payload.value, def.alg)) return; + payload.issues.push({ + code: "invalid_format", + format: "jwt", + input: payload.value, + inst, + continue: !def.abort + }); + }; + }); + const $ZodNumber = /*@__PURE__*/ $constructor("$ZodNumber", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = inst._zod.bag.pattern ?? number$1; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) try { + payload.value = Number(payload.value); + } catch (_) {} + const input = payload.value; + if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) return payload; + const received = typeof input === "number" ? Number.isNaN(input) ? "NaN" : !Number.isFinite(input) ? "Infinity" : void 0 : void 0; + payload.issues.push({ + expected: "number", + code: "invalid_type", + input, + inst, + ...received ? { received } : {} + }); + return payload; + }; + }); + const $ZodNumberFormat = /*@__PURE__*/ $constructor("$ZodNumberFormat", (inst, def) => { + $ZodCheckNumberFormat.init(inst, def); + $ZodNumber.init(inst, def); + }); + const $ZodBoolean = /*@__PURE__*/ $constructor("$ZodBoolean", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.pattern = boolean$1; + inst._zod.parse = (payload, _ctx) => { + if (def.coerce) try { + payload.value = Boolean(payload.value); + } catch (_) {} + const input = payload.value; + if (typeof input === "boolean") return payload; + payload.issues.push({ + expected: "boolean", + code: "invalid_type", + input, + inst + }); + return payload; + }; + }); + const $ZodUnknown = /*@__PURE__*/ $constructor("$ZodUnknown", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload) => payload; + }); + const $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, _ctx) => { + payload.issues.push({ + expected: "never", + code: "invalid_type", + input: payload.value, + inst + }); + return payload; + }; + }); + function handleArrayResult(result, final, index) { + if (result.issues.length) final.issues.push(...prefixIssues(index, result.issues)); + final.value[index] = result.value; + } + const $ZodArray = /*@__PURE__*/ $constructor("$ZodArray", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!Array.isArray(input)) { + payload.issues.push({ + expected: "array", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = Array(input.length); + const proms = []; + for (let i = 0; i < input.length; i++) { + const item = input[i]; + const result = def.element._zod.run({ + value: item, + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => handleArrayResult(result, payload, i))); + else handleArrayResult(result, payload, i); + } + if (proms.length) return Promise.all(proms).then(() => payload); + return payload; + }; + }); + function handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) { + const isPresent = key in input; + if (result.issues.length) { + if (isOptionalIn && isOptionalOut && !isPresent) return; + final.issues.push(...prefixIssues(key, result.issues)); + } + if (!isPresent && !isOptionalIn) { + if (!result.issues.length) final.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: void 0, + path: [key] + }); + return; + } + if (result.value === void 0) { + if (isPresent) final.value[key] = void 0; + } else final.value[key] = result.value; + } + function normalizeDef(def) { + const keys = Object.keys(def.shape); + for (const k of keys) if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) throw new Error(`Invalid element at key "${k}": expected a Zod schema`); + const okeys = optionalKeys(def.shape); + return { + ...def, + keys, + keySet: new Set(keys), + numKeys: keys.length, + optionalKeys: new Set(okeys) + }; + } + function handleCatchall(proms, input, payload, ctx, def, inst) { + const unrecognized = []; + const keySet = def.keySet; + const _catchall = def.catchall._zod; + const t = _catchall.def.type; + const isOptionalIn = _catchall.optin === "optional"; + const isOptionalOut = _catchall.optout === "optional"; + for (const key in input) { + if (key === "__proto__") continue; + if (keySet.has(key)) continue; + if (t === "never") { + unrecognized.push(key); + continue; + } + const r = _catchall.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (unrecognized.length) payload.issues.push({ + code: "unrecognized_keys", + keys: unrecognized, + input, + inst + }); + if (!proms.length) return payload; + return Promise.all(proms).then(() => { + return payload; + }); + } + const $ZodObject = /*@__PURE__*/ $constructor("$ZodObject", (inst, def) => { + $ZodType.init(inst, def); + if (!Object.getOwnPropertyDescriptor(def, "shape")?.get) { + const sh = def.shape; + Object.defineProperty(def, "shape", { get: () => { + const newSh = { ...sh }; + Object.defineProperty(def, "shape", { value: newSh }); + return newSh; + } }); + } + const _normalized = cached(() => normalizeDef(def)); + defineLazy(inst._zod, "propValues", () => { + const shape = def.shape; + const propValues = {}; + for (const key in shape) { + const field = shape[key]._zod; + if (field.values) { + propValues[key] ?? (propValues[key] = /* @__PURE__ */ new Set()); + for (const v of field.values) propValues[key].add(v); + } + } + return propValues; + }); + const isObject$1 = isObject; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$1(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + payload.value = {}; + const proms = []; + const shape = value.shape; + for (const key of value.keys) { + const el = shape[key]; + const isOptionalIn = el._zod.optin === "optional"; + const isOptionalOut = el._zod.optout === "optional"; + const r = el._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (r instanceof Promise) proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut))); + else handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); + } + if (!catchall) return proms.length ? Promise.all(proms).then(() => payload) : payload; + return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); + }; + }); + const $ZodObjectJIT = /*@__PURE__*/ $constructor("$ZodObjectJIT", (inst, def) => { + $ZodObject.init(inst, def); + const superParse = inst._zod.parse; + const _normalized = cached(() => normalizeDef(def)); + const generateFastpass = (shape) => { + const doc = new Doc([ + "shape", + "payload", + "ctx" + ]); + const normalized = _normalized.value; + const parseStr = (key) => { + const k = esc(key); + return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; + }; + doc.write(`const input = payload.value;`); + const ids = Object.create(null); + let counter = 0; + for (const key of normalized.keys) ids[key] = `key_${counter++}`; + doc.write(`const newResult = {};`); + for (const key of normalized.keys) { + const id = ids[key]; + const k = esc(key); + const schema = shape[key]; + const isOptionalIn = schema?._zod?.optin === "optional"; + const isOptionalOut = schema?._zod?.optout === "optional"; + doc.write(`const ${id} = ${parseStr(key)};`); + if (isOptionalIn && isOptionalOut) doc.write(` + if (${id}.issues.length) { + if (${k} in input) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + else if (!isOptionalIn) doc.write(` + const ${id}_present = ${k} in input; + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + if (!${id}_present && !${id}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${k}] + }); + } + + if (${id}_present) { + if (${id}.value === undefined) { + newResult[${k}] = undefined; + } else { + newResult[${k}] = ${id}.value; + } + } + + `); + else doc.write(` + if (${id}.issues.length) { + payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${k}, ...iss.path] : [${k}] + }))); + } + + if (${id}.value === undefined) { + if (${k} in input) { + newResult[${k}] = undefined; + } + } else { + newResult[${k}] = ${id}.value; + } + + `); + } + doc.write(`payload.value = newResult;`); + doc.write(`return payload;`); + const fn = doc.compile(); + return (payload, ctx) => fn(shape, payload, ctx); + }; + let fastpass; + const isObject$2 = isObject; + const jit = !globalConfig.jitless; + const fastEnabled = jit && allowsEval.value; + const catchall = def.catchall; + let value; + inst._zod.parse = (payload, ctx) => { + value ?? (value = _normalized.value); + const input = payload.value; + if (!isObject$2(input)) { + payload.issues.push({ + expected: "object", + code: "invalid_type", + input, + inst + }); + return payload; + } + if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { + if (!fastpass) fastpass = generateFastpass(def.shape); + payload = fastpass(payload, ctx); + if (!catchall) return payload; + return handleCatchall([], input, payload, ctx, value, inst); + } + return superParse(payload, ctx); + }; + }); + function handleUnionResults(results, final, inst, ctx) { + for (const result of results) if (result.issues.length === 0) { + final.value = result.value; + return final; + } + const nonaborted = results.filter((r) => !aborted(r)); + if (nonaborted.length === 1) { + final.value = nonaborted[0].value; + return nonaborted[0]; + } + final.issues.push({ + code: "invalid_union", + input: final.value, + inst, + errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) + }); + return final; + } + const $ZodUnion = /*@__PURE__*/ $constructor("$ZodUnion", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.options.some((o) => o._zod.optin === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "optout", () => def.options.some((o) => o._zod.optout === "optional") ? "optional" : void 0); + defineLazy(inst._zod, "values", () => { + if (def.options.every((o) => o._zod.values)) return new Set(def.options.flatMap((option) => Array.from(option._zod.values))); + }); + defineLazy(inst._zod, "pattern", () => { + if (def.options.every((o) => o._zod.pattern)) { + const patterns = def.options.map((o) => o._zod.pattern); + return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); + } + }); + const first = def.options.length === 1 ? def.options[0]._zod.run : null; + inst._zod.parse = (payload, ctx) => { + if (first) return first(payload, ctx); + let async = false; + const results = []; + for (const option of def.options) { + const result = option._zod.run({ + value: payload.value, + issues: [] + }, ctx); + if (result instanceof Promise) { + results.push(result); + async = true; + } else { + if (result.issues.length === 0) return result; + results.push(result); + } + } + if (!async) return handleUnionResults(results, payload, inst, ctx); + return Promise.all(results).then((results) => { + return handleUnionResults(results, payload, inst, ctx); + }); + }; + }); + const $ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("$ZodDiscriminatedUnion", (inst, def) => { + def.inclusive = false; + $ZodUnion.init(inst, def); + const _super = inst._zod.parse; + defineLazy(inst._zod, "propValues", () => { + const propValues = {}; + for (const option of def.options) { + const pv = option._zod.propValues; + if (!pv || Object.keys(pv).length === 0) throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); + for (const [k, v] of Object.entries(pv)) { + if (!propValues[k]) propValues[k] = /* @__PURE__ */ new Set(); + for (const val of v) propValues[k].add(val); + } + } + return propValues; + }); + const disc = cached(() => { + const opts = def.options; + const map = /* @__PURE__ */ new Map(); + for (const o of opts) { + const values = o._zod.propValues?.[def.discriminator]; + if (!values || values.size === 0) throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`); + for (const v of values) { + if (map.has(v)) throw new Error(`Duplicate discriminator value "${String(v)}"`); + map.set(v, o); + } + } + return map; + }); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!isObject(input)) { + payload.issues.push({ + code: "invalid_type", + expected: "object", + input, + inst + }); + return payload; + } + const opt = disc.value.get(input?.[def.discriminator]); + if (opt) return opt._zod.run(payload, ctx); + if (def.unionFallback || ctx.direction === "backward") return _super(payload, ctx); + payload.issues.push({ + code: "invalid_union", + errors: [], + note: "No matching discriminator", + discriminator: def.discriminator, + options: Array.from(disc.value.keys()), + input, + path: [def.discriminator], + inst + }); + return payload; + }; + }); + const $ZodIntersection = /*@__PURE__*/ $constructor("$ZodIntersection", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + const left = def.left._zod.run({ + value: input, + issues: [] + }, ctx); + const right = def.right._zod.run({ + value: input, + issues: [] + }, ctx); + if (left instanceof Promise || right instanceof Promise) return Promise.all([left, right]).then(([left, right]) => { + return handleIntersectionResults(payload, left, right); + }); + return handleIntersectionResults(payload, left, right); + }; + }); + function mergeValues(a, b) { + if (a === b) return { + valid: true, + data: a + }; + if (a instanceof Date && b instanceof Date && +a === +b) return { + valid: true, + data: a + }; + if (isPlainObject(a) && isPlainObject(b)) { + const bKeys = Object.keys(b); + const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { + ...a, + ...b + }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [key, ...sharedValue.mergeErrorPath] + }; + newObj[key] = sharedValue.data; + } + return { + valid: true, + data: newObj + }; + } + if (Array.isArray(a) && Array.isArray(b)) { + if (a.length !== b.length) return { + valid: false, + mergeErrorPath: [] + }; + const newArray = []; + for (let index = 0; index < a.length; index++) { + const itemA = a[index]; + const itemB = b[index]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) return { + valid: false, + mergeErrorPath: [index, ...sharedValue.mergeErrorPath] + }; + newArray.push(sharedValue.data); + } + return { + valid: true, + data: newArray + }; + } + return { + valid: false, + mergeErrorPath: [] + }; + } + function handleIntersectionResults(result, left, right) { + const unrecKeys = /* @__PURE__ */ new Map(); + let unrecIssue; + for (const iss of left.issues) if (iss.code === "unrecognized_keys") { + unrecIssue ?? (unrecIssue = iss); + for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).l = true; + } + } else result.issues.push(iss); + for (const iss of right.issues) if (iss.code === "unrecognized_keys") for (const k of iss.keys) { + if (!unrecKeys.has(k)) unrecKeys.set(k, {}); + unrecKeys.get(k).r = true; + } + else result.issues.push(iss); + const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); + if (bothKeys.length && unrecIssue) result.issues.push({ + ...unrecIssue, + keys: bothKeys + }); + if (aborted(result)) return result; + const merged = mergeValues(left.value, right.value); + if (!merged.valid) throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); + result.value = merged.data; + return result; + } + const $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.parse = (payload, ctx) => { + const input = payload.value; + if (!isPlainObject(input)) { + payload.issues.push({ + expected: "record", + code: "invalid_type", + input, + inst + }); + return payload; + } + const proms = []; + const values = def.keyType._zod.values; + if (values) { + payload.value = {}; + const recordKeys = /* @__PURE__ */ new Set(); + for (const key of values) if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { + recordKeys.add(typeof key === "number" ? key.toString() : key); + const keyResult = def.keyType._zod.run({ + value: key, + issues: [] + }, ctx); + if (keyResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (keyResult.issues.length) { + payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + continue; + } + const outKey = keyResult.value; + const result = def.valueType._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[outKey] = result.value; + })); + else { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[outKey] = result.value; + } + } + let unrecognized; + for (const key in input) if (!recordKeys.has(key)) { + unrecognized = unrecognized ?? []; + unrecognized.push(key); + } + if (unrecognized && unrecognized.length > 0) payload.issues.push({ + code: "unrecognized_keys", + input, + inst, + keys: unrecognized + }); + } else { + payload.value = {}; + for (const key of Reflect.ownKeys(input)) { + if (key === "__proto__") continue; + if (!Object.prototype.propertyIsEnumerable.call(input, key)) continue; + let keyResult = def.keyType._zod.run({ + value: key, + issues: [] + }, ctx); + if (keyResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (typeof key === "string" && number$1.test(key) && keyResult.issues.length) { + const retryResult = def.keyType._zod.run({ + value: Number(key), + issues: [] + }, ctx); + if (retryResult instanceof Promise) throw new Error("Async schemas not supported in object keys currently"); + if (retryResult.issues.length === 0) keyResult = retryResult; + } + if (keyResult.issues.length) { + if (def.mode === "loose") payload.value[key] = input[key]; + else payload.issues.push({ + code: "invalid_key", + origin: "record", + issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), + input: key, + path: [key], + inst + }); + continue; + } + const result = def.valueType._zod.run({ + value: input[key], + issues: [] + }, ctx); + if (result instanceof Promise) proms.push(result.then((result) => { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[keyResult.value] = result.value; + })); + else { + if (result.issues.length) payload.issues.push(...prefixIssues(key, result.issues)); + payload.value[keyResult.value] = result.value; + } + } + } + if (proms.length) return Promise.all(proms).then(() => payload); + return payload; + }; + }); + const $ZodEnum = /*@__PURE__*/ $constructor("$ZodEnum", (inst, def) => { + $ZodType.init(inst, def); + const values = getEnumValues(def.entries); + const valuesSet = new Set(values); + inst._zod.values = valuesSet; + inst._zod.pattern = new RegExp(`^(${values.filter((k) => propertyKeyTypes.has(typeof k)).map((o) => typeof o === "string" ? escapeRegex(o) : o.toString()).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (valuesSet.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values, + input, + inst + }); + return payload; + }; + }); + const $ZodLiteral = /*@__PURE__*/ $constructor("$ZodLiteral", (inst, def) => { + $ZodType.init(inst, def); + if (def.values.length === 0) throw new Error("Cannot create literal schema with no valid values"); + const values = new Set(def.values); + inst._zod.values = values; + inst._zod.pattern = new RegExp(`^(${def.values.map((o) => typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o)).join("|")})$`); + inst._zod.parse = (payload, _ctx) => { + const input = payload.value; + if (values.has(input)) return payload; + payload.issues.push({ + code: "invalid_value", + values: def.values, + input, + inst + }); + return payload; + }; + }); + const $ZodTransform = /*@__PURE__*/ $constructor("$ZodTransform", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + const _out = def.transform(payload.value, payload); + if (ctx.async) return (_out instanceof Promise ? _out : Promise.resolve(_out)).then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + if (_out instanceof Promise) throw new $ZodAsyncError(); + payload.value = _out; + payload.fallback = true; + return payload; + }; + }); + function handleOptionalResult(result, input) { + if (input === void 0 && (result.issues.length || result.fallback)) return { + issues: [], + value: void 0 + }; + return result; + } + const $ZodOptional = /*@__PURE__*/ $constructor("$ZodOptional", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + inst._zod.optout = "optional"; + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, void 0]) : void 0; + }); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (def.innerType._zod.optin === "optional") { + const input = payload.value; + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((r) => handleOptionalResult(r, input)); + return handleOptionalResult(result, input); + } + if (payload.value === void 0) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodExactOptional = /*@__PURE__*/ $constructor("$ZodExactOptional", (inst, def) => { + $ZodOptional.init(inst, def); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "pattern", () => def.innerType._zod.pattern); + inst._zod.parse = (payload, ctx) => { + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNullable = /*@__PURE__*/ $constructor("$ZodNullable", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "pattern", () => { + const pattern = def.innerType._zod.pattern; + return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; + }); + defineLazy(inst._zod, "values", () => { + return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + if (payload.value === null) return payload; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodDefault = /*@__PURE__*/ $constructor("$ZodDefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) { + payload.value = def.defaultValue; + /** + * $ZodDefault returns the default value immediately in forward direction. + * It doesn't pass the default value into the validator ("prefault"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a "prefault" for the pipe. */ + return payload; + } + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleDefaultResult(result, def)); + return handleDefaultResult(result, def); + }; + }); + function handleDefaultResult(payload, def) { + if (payload.value === void 0) payload.value = def.defaultValue; + return payload; + } + const $ZodPrefault = /*@__PURE__*/ $constructor("$ZodPrefault", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + if (payload.value === void 0) payload.value = def.defaultValue; + return def.innerType._zod.run(payload, ctx); + }; + }); + const $ZodNonOptional = /*@__PURE__*/ $constructor("$ZodNonOptional", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => { + const v = def.innerType._zod.values; + return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; + }); + inst._zod.parse = (payload, ctx) => { + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => handleNonOptionalResult(result, inst)); + return handleNonOptionalResult(result, inst); + }; + }); + function handleNonOptionalResult(payload, inst) { + if (!payload.issues.length && payload.value === void 0) payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: payload.value, + inst + }); + return payload; + } + const $ZodCatch = /*@__PURE__*/ $constructor("$ZodCatch", (inst, def) => { + $ZodType.init(inst, def); + inst._zod.optin = "optional"; + defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then((result) => { + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }); + payload.value = result.value; + if (result.issues.length) { + payload.value = def.catchValue({ + ...payload, + error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, + input: payload.value + }); + payload.issues = []; + payload.fallback = true; + } + return payload; + }; + }); + const $ZodPipe = /*@__PURE__*/ $constructor("$ZodPipe", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "values", () => def.in._zod.values); + defineLazy(inst._zod, "optin", () => def.in._zod.optin); + defineLazy(inst._zod, "optout", () => def.out._zod.optout); + defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") { + const right = def.out._zod.run(payload, ctx); + if (right instanceof Promise) return right.then((right) => handlePipeResult(right, def.in, ctx)); + return handlePipeResult(right, def.in, ctx); + } + const left = def.in._zod.run(payload, ctx); + if (left instanceof Promise) return left.then((left) => handlePipeResult(left, def.out, ctx)); + return handlePipeResult(left, def.out, ctx); + }; + }); + function handlePipeResult(left, next, ctx) { + if (left.issues.length) { + left.aborted = true; + return left; + } + return next._zod.run({ + value: left.value, + issues: left.issues, + fallback: left.fallback + }, ctx); + } + const $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues); + defineLazy(inst._zod, "values", () => def.innerType._zod.values); + defineLazy(inst._zod, "optin", () => def.innerType?._zod?.optin); + defineLazy(inst._zod, "optout", () => def.innerType?._zod?.optout); + inst._zod.parse = (payload, ctx) => { + if (ctx.direction === "backward") return def.innerType._zod.run(payload, ctx); + const result = def.innerType._zod.run(payload, ctx); + if (result instanceof Promise) return result.then(handleReadonlyResult); + return handleReadonlyResult(result); + }; + }); + function handleReadonlyResult(payload) { + payload.value = Object.freeze(payload.value); + return payload; + } + const $ZodLazy = /*@__PURE__*/ $constructor("$ZodLazy", (inst, def) => { + $ZodType.init(inst, def); + defineLazy(inst._zod, "innerType", () => { + const d = def; + if (!d._cachedInner) d._cachedInner = def.getter(); + return d._cachedInner; + }); + defineLazy(inst._zod, "pattern", () => inst._zod.innerType?._zod?.pattern); + defineLazy(inst._zod, "propValues", () => inst._zod.innerType?._zod?.propValues); + defineLazy(inst._zod, "optin", () => inst._zod.innerType?._zod?.optin ?? void 0); + defineLazy(inst._zod, "optout", () => inst._zod.innerType?._zod?.optout ?? void 0); + inst._zod.parse = (payload, ctx) => { + return inst._zod.innerType._zod.run(payload, ctx); + }; + }); + const $ZodCustom = /*@__PURE__*/ $constructor("$ZodCustom", (inst, def) => { + $ZodCheck.init(inst, def); + $ZodType.init(inst, def); + inst._zod.parse = (payload, _) => { + return payload; + }; + inst._zod.check = (payload) => { + const input = payload.value; + const r = def.fn(input); + if (r instanceof Promise) return r.then((r) => handleRefineResult(r, payload, input, inst)); + handleRefineResult(r, payload, input, inst); + }; + }); + function handleRefineResult(result, payload, input, inst) { + if (!result) { + const _iss = { + code: "custom", + input, + inst, + path: [...inst._zod.def.path ?? []], + continue: !inst._zod.def.abort + }; + if (inst._zod.def.params) _iss.params = inst._zod.def.params; + payload.issues.push(issue(_iss)); + } + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js + var _a; + var $ZodRegistry = class { + constructor() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + } + add(schema, ..._meta) { + const meta = _meta[0]; + this._map.set(schema, meta); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.set(meta.id, schema); + return this; + } + clear() { + this._map = /* @__PURE__ */ new WeakMap(); + this._idmap = /* @__PURE__ */ new Map(); + return this; + } + remove(schema) { + const meta = this._map.get(schema); + if (meta && typeof meta === "object" && "id" in meta) this._idmap.delete(meta.id); + this._map.delete(schema); + return this; + } + get(schema) { + const p = schema._zod.parent; + if (p) { + const pm = { ...this.get(p) ?? {} }; + delete pm.id; + const f = { + ...pm, + ...this._map.get(schema) + }; + return Object.keys(f).length ? f : void 0; + } + return this._map.get(schema); + } + has(schema) { + return this._map.has(schema); + } + }; + function registry() { + return new $ZodRegistry(); + } + (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry()); + const globalRegistry = globalThis.__zod_globalRegistry; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js + // @__NO_SIDE_EFFECTS__ + function _string(Class, params) { + return new Class({ + type: "string", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _email(Class, params) { + return new Class({ + type: "string", + format: "email", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _guid(Class, params) { + return new Class({ + type: "string", + format: "guid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuid(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv4(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v4", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv6(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v6", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uuidv7(Class, params) { + return new Class({ + type: "string", + format: "uuid", + check: "string_format", + abort: false, + version: "v7", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _url(Class, params) { + return new Class({ + type: "string", + format: "url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _emoji(Class, params) { + return new Class({ + type: "string", + format: "emoji", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _nanoid(Class, params) { + return new Class({ + type: "string", + format: "nanoid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link _cuid2} instead. + * See https://github.com/paralleldrive/cuid. + */ + // @__NO_SIDE_EFFECTS__ + function _cuid(Class, params) { + return new Class({ + type: "string", + format: "cuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cuid2(Class, params) { + return new Class({ + type: "string", + format: "cuid2", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ulid(Class, params) { + return new Class({ + type: "string", + format: "ulid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _xid(Class, params) { + return new Class({ + type: "string", + format: "xid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ksuid(Class, params) { + return new Class({ + type: "string", + format: "ksuid", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv4(Class, params) { + return new Class({ + type: "string", + format: "ipv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _ipv6(Class, params) { + return new Class({ + type: "string", + format: "ipv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv4(Class, params) { + return new Class({ + type: "string", + format: "cidrv4", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _cidrv6(Class, params) { + return new Class({ + type: "string", + format: "cidrv6", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64(Class, params) { + return new Class({ + type: "string", + format: "base64", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _base64url(Class, params) { + return new Class({ + type: "string", + format: "base64url", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _e164(Class, params) { + return new Class({ + type: "string", + format: "e164", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _jwt(Class, params) { + return new Class({ + type: "string", + format: "jwt", + check: "string_format", + abort: false, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDateTime(Class, params) { + return new Class({ + type: "string", + format: "datetime", + check: "string_format", + offset: false, + local: false, + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDate(Class, params) { + return new Class({ + type: "string", + format: "date", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoTime(Class, params) { + return new Class({ + type: "string", + format: "time", + check: "string_format", + precision: null, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _isoDuration(Class, params) { + return new Class({ + type: "string", + format: "duration", + check: "string_format", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _number(Class, params) { + return new Class({ + type: "number", + checks: [], + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _int(Class, params) { + return new Class({ + type: "number", + check: "number_format", + abort: false, + format: "safeint", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _boolean(Class, params) { + return new Class({ + type: "boolean", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _unknown(Class) { + return new Class({ type: "unknown" }); + } + // @__NO_SIDE_EFFECTS__ + function _never(Class, params) { + return new Class({ + type: "never", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _lt(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _lte(value, params) { + return new $ZodCheckLessThan({ + check: "less_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _gt(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: false + }); + } + // @__NO_SIDE_EFFECTS__ + function _gte(value, params) { + return new $ZodCheckGreaterThan({ + check: "greater_than", + ...normalizeParams(params), + value, + inclusive: true + }); + } + // @__NO_SIDE_EFFECTS__ + function _multipleOf(value, params) { + return new $ZodCheckMultipleOf({ + check: "multiple_of", + ...normalizeParams(params), + value + }); + } + // @__NO_SIDE_EFFECTS__ + function _maxLength(maximum, params) { + return new $ZodCheckMaxLength({ + check: "max_length", + ...normalizeParams(params), + maximum + }); + } + // @__NO_SIDE_EFFECTS__ + function _minLength(minimum, params) { + return new $ZodCheckMinLength({ + check: "min_length", + ...normalizeParams(params), + minimum + }); + } + // @__NO_SIDE_EFFECTS__ + function _length(length, params) { + return new $ZodCheckLengthEquals({ + check: "length_equals", + ...normalizeParams(params), + length + }); + } + // @__NO_SIDE_EFFECTS__ + function _regex(pattern, params) { + return new $ZodCheckRegex({ + check: "string_format", + format: "regex", + ...normalizeParams(params), + pattern + }); + } + // @__NO_SIDE_EFFECTS__ + function _lowercase(params) { + return new $ZodCheckLowerCase({ + check: "string_format", + format: "lowercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _uppercase(params) { + return new $ZodCheckUpperCase({ + check: "string_format", + format: "uppercase", + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _includes(includes, params) { + return new $ZodCheckIncludes({ + check: "string_format", + format: "includes", + ...normalizeParams(params), + includes + }); + } + // @__NO_SIDE_EFFECTS__ + function _startsWith(prefix, params) { + return new $ZodCheckStartsWith({ + check: "string_format", + format: "starts_with", + ...normalizeParams(params), + prefix + }); + } + // @__NO_SIDE_EFFECTS__ + function _endsWith(suffix, params) { + return new $ZodCheckEndsWith({ + check: "string_format", + format: "ends_with", + ...normalizeParams(params), + suffix + }); + } + // @__NO_SIDE_EFFECTS__ + function _overwrite(tx) { + return new $ZodCheckOverwrite({ + check: "overwrite", + tx + }); + } + // @__NO_SIDE_EFFECTS__ + function _normalize(form) { + return /* @__PURE__ */ _overwrite((input) => input.normalize(form)); + } + // @__NO_SIDE_EFFECTS__ + function _trim() { + return /* @__PURE__ */ _overwrite((input) => input.trim()); + } + // @__NO_SIDE_EFFECTS__ + function _toLowerCase() { + return /* @__PURE__ */ _overwrite((input) => input.toLowerCase()); + } + // @__NO_SIDE_EFFECTS__ + function _toUpperCase() { + return /* @__PURE__ */ _overwrite((input) => input.toUpperCase()); + } + // @__NO_SIDE_EFFECTS__ + function _slugify() { + return /* @__PURE__ */ _overwrite((input) => slugify(input)); + } + // @__NO_SIDE_EFFECTS__ + function _array(Class, element, params) { + return new Class({ + type: "array", + element, + ...normalizeParams(params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _custom(Class, fn, _params) { + const norm = normalizeParams(_params); + norm.abort ?? (norm.abort = true); + return new Class({ + type: "custom", + check: "custom", + fn, + ...norm + }); + } + // @__NO_SIDE_EFFECTS__ + function _refine(Class, fn, _params) { + return new Class({ + type: "custom", + check: "custom", + fn, + ...normalizeParams(_params) + }); + } + // @__NO_SIDE_EFFECTS__ + function _superRefine(fn, params) { + const ch = /* @__PURE__ */ _check((payload) => { + payload.addIssue = (issue$2) => { + if (typeof issue$2 === "string") payload.issues.push(issue(issue$2, payload.value, ch._zod.def)); + else { + const _issue = issue$2; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = ch); + _issue.continue ?? (_issue.continue = !ch._zod.def.abort); + payload.issues.push(issue(_issue)); + } + }; + return fn(payload.value, payload); + }, params); + return ch; + } + // @__NO_SIDE_EFFECTS__ + function _check(fn, params) { + const ch = new $ZodCheck({ + check: "custom", + ...normalizeParams(params) + }); + ch._zod.check = fn; + return ch; + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js + function initializeContext(params) { + let target = params?.target ?? "draft-2020-12"; + if (target === "draft-4") target = "draft-04"; + if (target === "draft-7") target = "draft-07"; + return { + processors: params.processors ?? {}, + metadataRegistry: params?.metadata ?? globalRegistry, + target, + unrepresentable: params?.unrepresentable ?? "throw", + override: params?.override ?? (() => {}), + io: params?.io ?? "output", + counter: 0, + seen: /* @__PURE__ */ new Map(), + cycles: params?.cycles ?? "ref", + reused: params?.reused ?? "inline", + external: params?.external ?? void 0 + }; + } + function process(schema, ctx, _params = { + path: [], + schemaPath: [] + }) { + var _a; + const def = schema._zod.def; + const seen = ctx.seen.get(schema); + if (seen) { + seen.count++; + if (_params.schemaPath.includes(schema)) seen.cycle = _params.path; + return seen.schema; + } + const result = { + schema: {}, + count: 1, + cycle: void 0, + path: _params.path + }; + ctx.seen.set(schema, result); + const overrideSchema = schema._zod.toJSONSchema?.(); + if (overrideSchema) result.schema = overrideSchema; + else { + const params = { + ..._params, + schemaPath: [..._params.schemaPath, schema], + path: _params.path + }; + if (schema._zod.processJSONSchema) schema._zod.processJSONSchema(ctx, result.schema, params); + else { + const _json = result.schema; + const processor = ctx.processors[def.type]; + if (!processor) throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); + processor(schema, ctx, _json, params); + } + const parent = schema._zod.parent; + if (parent) { + if (!result.ref) result.ref = parent; + process(parent, ctx, params); + ctx.seen.get(parent).isParent = true; + } + } + const meta = ctx.metadataRegistry.get(schema); + if (meta) Object.assign(result.schema, meta); + if (ctx.io === "input" && isTransforming(schema)) { + delete result.schema.examples; + delete result.schema.default; + } + if (ctx.io === "input" && "_prefault" in result.schema) (_a = result.schema).default ?? (_a.default = result.schema._prefault); + delete result.schema._prefault; + return ctx.seen.get(schema).schema; + } + function extractDefs(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const idToSchema = /* @__PURE__ */ new Map(); + for (const entry of ctx.seen.entries()) { + const id = ctx.metadataRegistry.get(entry[0])?.id; + if (id) { + const existing = idToSchema.get(id); + if (existing && existing !== entry[0]) throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); + idToSchema.set(id, entry[0]); + } + } + const makeURI = (entry) => { + const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; + if (ctx.external) { + const externalId = ctx.external.registry.get(entry[0])?.id; + const uriGenerator = ctx.external.uri ?? ((id) => id); + if (externalId) return { ref: uriGenerator(externalId) }; + const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; + entry[1].defId = id; + return { + defId: id, + ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` + }; + } + if (entry[1] === root) return { ref: "#" }; + const defUriPrefix = `#/${defsSegment}/`; + const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; + return { + defId, + ref: defUriPrefix + defId + }; + }; + const extractToDef = (entry) => { + if (entry[1].schema.$ref) return; + const seen = entry[1]; + const { ref, defId } = makeURI(entry); + seen.def = { ...seen.schema }; + if (defId) seen.defId = defId; + const schema = seen.schema; + for (const key in schema) delete schema[key]; + schema.$ref = ref; + }; + if (ctx.cycles === "throw") for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.cycle) throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); + } + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (schema === entry[0]) { + extractToDef(entry); + continue; + } + if (ctx.external) { + const ext = ctx.external.registry.get(entry[0])?.id; + if (schema !== entry[0] && ext) { + extractToDef(entry); + continue; + } + } + if (ctx.metadataRegistry.get(entry[0])?.id) { + extractToDef(entry); + continue; + } + if (seen.cycle) { + extractToDef(entry); + continue; + } + if (seen.count > 1) { + if (ctx.reused === "ref") { + extractToDef(entry); + continue; + } + } + } + } + function finalize(ctx, schema) { + const root = ctx.seen.get(schema); + if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); + const flattenRef = (zodSchema) => { + const seen = ctx.seen.get(zodSchema); + if (seen.ref === null) return; + const schema = seen.def ?? seen.schema; + const _cached = { ...schema }; + const ref = seen.ref; + seen.ref = null; + if (ref) { + flattenRef(ref); + const refSeen = ctx.seen.get(ref); + const refSchema = refSeen.schema; + if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { + schema.allOf = schema.allOf ?? []; + schema.allOf.push(refSchema); + } else Object.assign(schema, refSchema); + Object.assign(schema, _cached); + if (zodSchema._zod.parent === ref) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (!(key in _cached)) delete schema[key]; + } + if (refSchema.$ref && refSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) delete schema[key]; + } + } + const parent = zodSchema._zod.parent; + if (parent && parent !== ref) { + flattenRef(parent); + const parentSeen = ctx.seen.get(parent); + if (parentSeen?.schema.$ref) { + schema.$ref = parentSeen.schema.$ref; + if (parentSeen.def) for (const key in schema) { + if (key === "$ref" || key === "allOf") continue; + if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) delete schema[key]; + } + } + } + ctx.override({ + zodSchema, + jsonSchema: schema, + path: seen.path ?? [] + }); + }; + for (const entry of [...ctx.seen.entries()].reverse()) flattenRef(entry[0]); + const result = {}; + if (ctx.target === "draft-2020-12") result.$schema = "https://json-schema.org/draft/2020-12/schema"; + else if (ctx.target === "draft-07") result.$schema = "http://json-schema.org/draft-07/schema#"; + else if (ctx.target === "draft-04") result.$schema = "http://json-schema.org/draft-04/schema#"; + else if (ctx.target === "openapi-3.0") {} + if (ctx.external?.uri) { + const id = ctx.external.registry.get(schema)?.id; + if (!id) throw new Error("Schema is missing an `id` property"); + result.$id = ctx.external.uri(id); + } + Object.assign(result, root.def ?? root.schema); + const rootMetaId = ctx.metadataRegistry.get(schema)?.id; + if (rootMetaId !== void 0 && result.id === rootMetaId) delete result.id; + const defs = ctx.external?.defs ?? {}; + for (const entry of ctx.seen.entries()) { + const seen = entry[1]; + if (seen.def && seen.defId) { + if (seen.def.id === seen.defId) delete seen.def.id; + defs[seen.defId] = seen.def; + } + } + if (ctx.external) {} else if (Object.keys(defs).length > 0) if (ctx.target === "draft-2020-12") result.$defs = defs; + else result.definitions = defs; + try { + const finalized = JSON.parse(JSON.stringify(result)); + Object.defineProperty(finalized, "~standard", { + value: { + ...schema["~standard"], + jsonSchema: { + input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), + output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) + } + }, + enumerable: false, + writable: false + }); + return finalized; + } catch (_err) { + throw new Error("Error converting schema to JSON."); + } + } + function isTransforming(_schema, _ctx) { + const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; + if (ctx.seen.has(_schema)) return false; + ctx.seen.add(_schema); + const def = _schema._zod.def; + if (def.type === "transform") return true; + if (def.type === "array") return isTransforming(def.element, ctx); + if (def.type === "set") return isTransforming(def.valueType, ctx); + if (def.type === "lazy") return isTransforming(def.getter(), ctx); + if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault") return isTransforming(def.innerType, ctx); + if (def.type === "intersection") return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); + if (def.type === "record" || def.type === "map") return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); + if (def.type === "pipe") { + if (_schema._zod.traits.has("$ZodCodec")) return true; + return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); + } + if (def.type === "object") { + for (const key in def.shape) if (isTransforming(def.shape[key], ctx)) return true; + return false; + } + if (def.type === "union") { + for (const option of def.options) if (isTransforming(option, ctx)) return true; + return false; + } + if (def.type === "tuple") { + for (const item of def.items) if (isTransforming(item, ctx)) return true; + if (def.rest && isTransforming(def.rest, ctx)) return true; + return false; + } + return false; + } + /** + * Creates a toJSONSchema method for a schema instance. + * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing. + */ + const createToJSONSchemaMethod = (schema, processors = {}) => (params) => { + const ctx = initializeContext({ + ...params, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize(ctx, schema); + }; + const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { + const { libraryOptions, target } = params ?? {}; + const ctx = initializeContext({ + ...libraryOptions ?? {}, + target, + io, + processors + }); + process(schema, ctx); + extractDefs(ctx, schema); + return finalize(ctx, schema); + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js + const formatMap = { + guid: "uuid", + url: "uri", + datetime: "date-time", + json_string: "json-string", + regex: "" + }; + const stringProcessor = (schema, ctx, _json, _params) => { + const json = _json; + json.type = "string"; + const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; + if (typeof minimum === "number") json.minLength = minimum; + if (typeof maximum === "number") json.maxLength = maximum; + if (format) { + json.format = formatMap[format] ?? format; + if (json.format === "") delete json.format; + if (format === "time") delete json.format; + } + if (contentEncoding) json.contentEncoding = contentEncoding; + if (patterns && patterns.size > 0) { + const regexes = [...patterns]; + if (regexes.length === 1) json.pattern = regexes[0].source; + else if (regexes.length > 1) json.allOf = [...regexes.map((regex) => ({ + ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, + pattern: regex.source + }))]; + } + }; + const numberProcessor = (schema, ctx, _json, _params) => { + const json = _json; + const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; + if (typeof format === "string" && format.includes("int")) json.type = "integer"; + else json.type = "number"; + const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); + const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); + const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; + if (exMin) if (legacy) { + json.minimum = exclusiveMinimum; + json.exclusiveMinimum = true; + } else json.exclusiveMinimum = exclusiveMinimum; + else if (typeof minimum === "number") json.minimum = minimum; + if (exMax) if (legacy) { + json.maximum = exclusiveMaximum; + json.exclusiveMaximum = true; + } else json.exclusiveMaximum = exclusiveMaximum; + else if (typeof maximum === "number") json.maximum = maximum; + if (typeof multipleOf === "number") json.multipleOf = multipleOf; + }; + const booleanProcessor = (_schema, _ctx, json, _params) => { + json.type = "boolean"; + }; + const neverProcessor = (_schema, _ctx, json, _params) => { + json.not = {}; + }; + const enumProcessor = (schema, _ctx, json, _params) => { + const def = schema._zod.def; + const values = getEnumValues(def.entries); + if (values.every((v) => typeof v === "number")) json.type = "number"; + if (values.every((v) => typeof v === "string")) json.type = "string"; + json.enum = values; + }; + const literalProcessor = (schema, ctx, json, _params) => { + const def = schema._zod.def; + const vals = []; + for (const val of def.values) if (val === void 0) { + if (ctx.unrepresentable === "throw") throw new Error("Literal `undefined` cannot be represented in JSON Schema"); + } else if (typeof val === "bigint") if (ctx.unrepresentable === "throw") throw new Error("BigInt literals cannot be represented in JSON Schema"); + else vals.push(Number(val)); + else vals.push(val); + if (vals.length === 0) {} else if (vals.length === 1) { + const val = vals[0]; + json.type = val === null ? "null" : typeof val; + if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") json.enum = [val]; + else json.const = val; + } else { + if (vals.every((v) => typeof v === "number")) json.type = "number"; + if (vals.every((v) => typeof v === "string")) json.type = "string"; + if (vals.every((v) => typeof v === "boolean")) json.type = "boolean"; + if (vals.every((v) => v === null)) json.type = "null"; + json.enum = vals; + } + }; + const customProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Custom types cannot be represented in JSON Schema"); + }; + const transformProcessor = (_schema, ctx, _json, _params) => { + if (ctx.unrepresentable === "throw") throw new Error("Transforms cannot be represented in JSON Schema"); + }; + const arrayProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + const { minimum, maximum } = schema._zod.bag; + if (typeof minimum === "number") json.minItems = minimum; + if (typeof maximum === "number") json.maxItems = maximum; + json.type = "array"; + json.items = process(def.element, ctx, { + ...params, + path: [...params.path, "items"] + }); + }; + const objectProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + json.properties = {}; + const shape = def.shape; + for (const key in shape) json.properties[key] = process(shape[key], ctx, { + ...params, + path: [ + ...params.path, + "properties", + key + ] + }); + const allKeys = new Set(Object.keys(shape)); + const requiredKeys = new Set([...allKeys].filter((key) => { + const v = def.shape[key]._zod; + if (ctx.io === "input") return v.optin === void 0; + else return v.optout === void 0; + })); + if (requiredKeys.size > 0) json.required = Array.from(requiredKeys); + if (def.catchall?._zod.def.type === "never") json.additionalProperties = false; + else if (!def.catchall) { + if (ctx.io === "output") json.additionalProperties = false; + } else if (def.catchall) json.additionalProperties = process(def.catchall, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + }; + const unionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const isExclusive = def.inclusive === false; + const options = def.options.map((x, i) => process(x, ctx, { + ...params, + path: [ + ...params.path, + isExclusive ? "oneOf" : "anyOf", + i + ] + })); + if (isExclusive) json.oneOf = options; + else json.anyOf = options; + }; + const intersectionProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const a = process(def.left, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 0 + ] + }); + const b = process(def.right, ctx, { + ...params, + path: [ + ...params.path, + "allOf", + 1 + ] + }); + const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; + json.allOf = [...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b]]; + }; + const recordProcessor = (schema, ctx, _json, params) => { + const json = _json; + const def = schema._zod.def; + json.type = "object"; + const keyType = def.keyType; + const patterns = keyType._zod.bag?.patterns; + if (def.mode === "loose" && patterns && patterns.size > 0) { + const valueSchema = process(def.valueType, ctx, { + ...params, + path: [ + ...params.path, + "patternProperties", + "*" + ] + }); + json.patternProperties = {}; + for (const pattern of patterns) json.patternProperties[pattern.source] = valueSchema; + } else { + if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process(def.keyType, ctx, { + ...params, + path: [...params.path, "propertyNames"] + }); + json.additionalProperties = process(def.valueType, ctx, { + ...params, + path: [...params.path, "additionalProperties"] + }); + } + const keyValues = keyType._zod.values; + if (keyValues) { + const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); + if (validKeyValues.length > 0) json.required = validKeyValues; + } + }; + const nullableProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + const inner = process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + if (ctx.target === "openapi-3.0") { + seen.ref = def.innerType; + json.nullable = true; + } else json.anyOf = [inner, { type: "null" }]; + }; + const nonoptionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const defaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.default = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const prefaultProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue)); + }; + const catchProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + let catchValue; + try { + catchValue = def.catchValue(void 0); + } catch { + throw new Error("Dynamic catch values are not supported in JSON Schema"); + } + json.default = catchValue; + }; + const pipeProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + const inIsTransform = def.in._zod.traits.has("$ZodTransform"); + const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + const readonlyProcessor = (schema, ctx, json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + json.readOnly = true; + }; + const optionalProcessor = (schema, ctx, _json, params) => { + const def = schema._zod.def; + process(def.innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = def.innerType; + }; + const lazyProcessor = (schema, ctx, _json, params) => { + const innerType = schema._zod.innerType; + process(innerType, ctx, params); + const seen = ctx.seen.get(schema); + seen.ref = innerType; + }; + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js + const ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => { + $ZodISODateTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function datetime(params) { + return /* @__PURE__ */ _isoDateTime(ZodISODateTime, params); + } + const ZodISODate = /*@__PURE__*/ $constructor("ZodISODate", (inst, def) => { + $ZodISODate.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function date(params) { + return /* @__PURE__ */ _isoDate(ZodISODate, params); + } + const ZodISOTime = /*@__PURE__*/ $constructor("ZodISOTime", (inst, def) => { + $ZodISOTime.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function time(params) { + return /* @__PURE__ */ _isoTime(ZodISOTime, params); + } + const ZodISODuration = /*@__PURE__*/ $constructor("ZodISODuration", (inst, def) => { + $ZodISODuration.init(inst, def); + ZodStringFormat.init(inst, def); + }); + function duration(params) { + return /* @__PURE__ */ _isoDuration(ZodISODuration, params); + } + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js + const initializer = (inst, issues) => { + $ZodError.init(inst, issues); + inst.name = "ZodError"; + Object.defineProperties(inst, { + format: { value: (mapper) => formatError(inst, mapper) }, + flatten: { value: (mapper) => flattenError(inst, mapper) }, + addIssue: { value: (issue) => { + inst.issues.push(issue); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + addIssues: { value: (issues) => { + inst.issues.push(...issues); + inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); + } }, + isEmpty: { get() { + return inst.issues.length === 0; + } } + }); + }; + const ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, { Parent: Error }); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js + const parse = /* @__PURE__ */ _parse(ZodRealError); + const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError); + const safeParse = /* @__PURE__ */ _safeParse(ZodRealError); + const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError); + const encode = /* @__PURE__ */ _encode(ZodRealError); + const decode = /* @__PURE__ */ _decode(ZodRealError); + const encodeAsync = /* @__PURE__ */ _encodeAsync(ZodRealError); + const decodeAsync = /* @__PURE__ */ _decodeAsync(ZodRealError); + const safeEncode = /* @__PURE__ */ _safeEncode(ZodRealError); + const safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError); + const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); + const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); + //#endregion + //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js + const _installedGroups = /* @__PURE__ */ new WeakMap(); + function _installLazyMethods(inst, group, methods) { + const proto = Object.getPrototypeOf(inst); + let installed = _installedGroups.get(proto); + if (!installed) { + installed = /* @__PURE__ */ new Set(); + _installedGroups.set(proto, installed); + } + if (installed.has(group)) return; + installed.add(group); + for (const key in methods) { + const fn = methods[key]; + Object.defineProperty(proto, key, { + configurable: true, + enumerable: false, + get() { + const bound = fn.bind(this); + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: bound + }); + return bound; + }, + set(v) { + Object.defineProperty(this, key, { + configurable: true, + writable: true, + enumerable: true, + value: v + }); + } + }); + } + } + const ZodType = /*@__PURE__*/ $constructor("ZodType", (inst, def) => { + $ZodType.init(inst, def); + Object.assign(inst["~standard"], { jsonSchema: { + input: createStandardJSONSchemaMethod(inst, "input"), + output: createStandardJSONSchemaMethod(inst, "output") + } }); + inst.toJSONSchema = createToJSONSchemaMethod(inst, {}); + inst.def = def; + inst.type = def.type; + Object.defineProperty(inst, "_def", { value: def }); + inst.parse = (data, params) => parse(inst, data, params, { callee: inst.parse }); + inst.safeParse = (data, params) => safeParse(inst, data, params); + inst.parseAsync = async (data, params) => parseAsync(inst, data, params, { callee: inst.parseAsync }); + inst.safeParseAsync = async (data, params) => safeParseAsync(inst, data, params); + inst.spa = inst.safeParseAsync; + inst.encode = (data, params) => encode(inst, data, params); + inst.decode = (data, params) => decode(inst, data, params); + inst.encodeAsync = async (data, params) => encodeAsync(inst, data, params); + inst.decodeAsync = async (data, params) => decodeAsync(inst, data, params); + inst.safeEncode = (data, params) => safeEncode(inst, data, params); + inst.safeDecode = (data, params) => safeDecode(inst, data, params); + inst.safeEncodeAsync = async (data, params) => safeEncodeAsync(inst, data, params); + inst.safeDecodeAsync = async (data, params) => safeDecodeAsync(inst, data, params); + _installLazyMethods(inst, "ZodType", { + check(...chks) { + const def = this.def; + return this.clone(mergeDefs(def, { checks: [...def.checks ?? [], ...chks.map((ch) => typeof ch === "function" ? { _zod: { + check: ch, + def: { check: "custom" }, + onattach: [] + } } : ch)] }), { parent: true }); + }, + with(...chks) { + return this.check(...chks); + }, + clone(def, params) { + return clone(this, def, params); + }, + brand() { + return this; + }, + register(reg, meta) { + reg.add(this, meta); + return this; + }, + refine(check, params) { + return this.check(refine(check, params)); + }, + superRefine(refinement, params) { + return this.check(superRefine(refinement, params)); + }, + overwrite(fn) { + return this.check(/* @__PURE__ */ _overwrite(fn)); + }, + optional() { + return optional(this); + }, + exactOptional() { + return exactOptional(this); + }, + nullable() { + return nullable(this); + }, + nullish() { + return optional(nullable(this)); + }, + nonoptional(params) { + return nonoptional(this, params); + }, + array() { + return array(this); + }, + or(arg) { + return union([this, arg]); + }, + and(arg) { + return intersection(this, arg); + }, + transform(tx) { + return pipe(this, transform(tx)); + }, + default(d) { + return _default(this, d); + }, + prefault(d) { + return prefault(this, d); + }, + catch(params) { + return _catch(this, params); + }, + pipe(target) { + return pipe(this, target); + }, + readonly() { + return readonly(this); + }, + describe(description) { + const cl = this.clone(); + globalRegistry.add(cl, { description }); + return cl; + }, + meta(...args) { + if (args.length === 0) return globalRegistry.get(this); + const cl = this.clone(); + globalRegistry.add(cl, args[0]); + return cl; + }, + isOptional() { + return this.safeParse(void 0).success; + }, + isNullable() { + return this.safeParse(null).success; + }, + apply(fn) { + return fn(this); + } + }); + Object.defineProperty(inst, "description", { + get() { + return globalRegistry.get(inst)?.description; + }, + configurable: true + }); + return inst; + }); + /** @internal */ + const _ZodString = /*@__PURE__*/ $constructor("_ZodString", (inst, def) => { + $ZodString.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => stringProcessor(inst, ctx, json, params); + const bag = inst._zod.bag; + inst.format = bag.format ?? null; + inst.minLength = bag.minimum ?? null; + inst.maxLength = bag.maximum ?? null; + _installLazyMethods(inst, "_ZodString", { + regex(...args) { + return this.check(/* @__PURE__ */ _regex(...args)); + }, + includes(...args) { + return this.check(/* @__PURE__ */ _includes(...args)); + }, + startsWith(...args) { + return this.check(/* @__PURE__ */ _startsWith(...args)); + }, + endsWith(...args) { + return this.check(/* @__PURE__ */ _endsWith(...args)); + }, + min(...args) { + return this.check(/* @__PURE__ */ _minLength(...args)); + }, + max(...args) { + return this.check(/* @__PURE__ */ _maxLength(...args)); + }, + length(...args) { + return this.check(/* @__PURE__ */ _length(...args)); + }, + nonempty(...args) { + return this.check(/* @__PURE__ */ _minLength(1, ...args)); + }, + lowercase(params) { + return this.check(/* @__PURE__ */ _lowercase(params)); + }, + uppercase(params) { + return this.check(/* @__PURE__ */ _uppercase(params)); + }, + trim() { + return this.check(/* @__PURE__ */ _trim()); + }, + normalize(...args) { + return this.check(/* @__PURE__ */ _normalize(...args)); + }, + toLowerCase() { + return this.check(/* @__PURE__ */ _toLowerCase()); + }, + toUpperCase() { + return this.check(/* @__PURE__ */ _toUpperCase()); + }, + slugify() { + return this.check(/* @__PURE__ */ _slugify()); + } + }); + }); + const ZodString = /*@__PURE__*/ $constructor("ZodString", (inst, def) => { + $ZodString.init(inst, def); + _ZodString.init(inst, def); + inst.email = (params) => inst.check(/* @__PURE__ */ _email(ZodEmail, params)); + inst.url = (params) => inst.check(/* @__PURE__ */ _url(ZodURL, params)); + inst.jwt = (params) => inst.check(/* @__PURE__ */ _jwt(ZodJWT, params)); + inst.emoji = (params) => inst.check(/* @__PURE__ */ _emoji(ZodEmoji, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.uuid = (params) => inst.check(/* @__PURE__ */ _uuid(ZodUUID, params)); + inst.uuidv4 = (params) => inst.check(/* @__PURE__ */ _uuidv4(ZodUUID, params)); + inst.uuidv6 = (params) => inst.check(/* @__PURE__ */ _uuidv6(ZodUUID, params)); + inst.uuidv7 = (params) => inst.check(/* @__PURE__ */ _uuidv7(ZodUUID, params)); + inst.nanoid = (params) => inst.check(/* @__PURE__ */ _nanoid(ZodNanoID, params)); + inst.guid = (params) => inst.check(/* @__PURE__ */ _guid(ZodGUID, params)); + inst.cuid = (params) => inst.check(/* @__PURE__ */ _cuid(ZodCUID, params)); + inst.cuid2 = (params) => inst.check(/* @__PURE__ */ _cuid2(ZodCUID2, params)); + inst.ulid = (params) => inst.check(/* @__PURE__ */ _ulid(ZodULID, params)); + inst.base64 = (params) => inst.check(/* @__PURE__ */ _base64(ZodBase64, params)); + inst.base64url = (params) => inst.check(/* @__PURE__ */ _base64url(ZodBase64URL, params)); + inst.xid = (params) => inst.check(/* @__PURE__ */ _xid(ZodXID, params)); + inst.ksuid = (params) => inst.check(/* @__PURE__ */ _ksuid(ZodKSUID, params)); + inst.ipv4 = (params) => inst.check(/* @__PURE__ */ _ipv4(ZodIPv4, params)); + inst.ipv6 = (params) => inst.check(/* @__PURE__ */ _ipv6(ZodIPv6, params)); + inst.cidrv4 = (params) => inst.check(/* @__PURE__ */ _cidrv4(ZodCIDRv4, params)); + inst.cidrv6 = (params) => inst.check(/* @__PURE__ */ _cidrv6(ZodCIDRv6, params)); + inst.e164 = (params) => inst.check(/* @__PURE__ */ _e164(ZodE164, params)); + inst.datetime = (params) => inst.check(datetime(params)); + inst.date = (params) => inst.check(date(params)); + inst.time = (params) => inst.check(time(params)); + inst.duration = (params) => inst.check(duration(params)); + }); + function string(params) { + return /* @__PURE__ */ _string(ZodString, params); + } + const ZodStringFormat = /*@__PURE__*/ $constructor("ZodStringFormat", (inst, def) => { + $ZodStringFormat.init(inst, def); + _ZodString.init(inst, def); + }); + const ZodEmail = /*@__PURE__*/ $constructor("ZodEmail", (inst, def) => { + $ZodEmail.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodGUID = /*@__PURE__*/ $constructor("ZodGUID", (inst, def) => { + $ZodGUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodUUID = /*@__PURE__*/ $constructor("ZodUUID", (inst, def) => { + $ZodUUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodURL = /*@__PURE__*/ $constructor("ZodURL", (inst, def) => { + $ZodURL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodEmoji = /*@__PURE__*/ $constructor("ZodEmoji", (inst, def) => { + $ZodEmoji.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNanoID = /*@__PURE__*/ $constructor("ZodNanoID", (inst, def) => { + $ZodNanoID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + /** + * @deprecated CUID v1 is deprecated by its authors due to information leakage + * (timestamps embedded in the id). Use {@link ZodCUID2} instead. + * See https://github.com/paralleldrive/cuid. + */ + const ZodCUID = /*@__PURE__*/ $constructor("ZodCUID", (inst, def) => { + $ZodCUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCUID2 = /*@__PURE__*/ $constructor("ZodCUID2", (inst, def) => { + $ZodCUID2.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodULID = /*@__PURE__*/ $constructor("ZodULID", (inst, def) => { + $ZodULID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodXID = /*@__PURE__*/ $constructor("ZodXID", (inst, def) => { + $ZodXID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodKSUID = /*@__PURE__*/ $constructor("ZodKSUID", (inst, def) => { + $ZodKSUID.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv4 = /*@__PURE__*/ $constructor("ZodIPv4", (inst, def) => { + $ZodIPv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodIPv6 = /*@__PURE__*/ $constructor("ZodIPv6", (inst, def) => { + $ZodIPv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv4 = /*@__PURE__*/ $constructor("ZodCIDRv4", (inst, def) => { + $ZodCIDRv4.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodCIDRv6 = /*@__PURE__*/ $constructor("ZodCIDRv6", (inst, def) => { + $ZodCIDRv6.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64 = /*@__PURE__*/ $constructor("ZodBase64", (inst, def) => { + $ZodBase64.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodBase64URL = /*@__PURE__*/ $constructor("ZodBase64URL", (inst, def) => { + $ZodBase64URL.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodE164 = /*@__PURE__*/ $constructor("ZodE164", (inst, def) => { + $ZodE164.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodJWT = /*@__PURE__*/ $constructor("ZodJWT", (inst, def) => { + $ZodJWT.init(inst, def); + ZodStringFormat.init(inst, def); + }); + const ZodNumber = /*@__PURE__*/ $constructor("ZodNumber", (inst, def) => { + $ZodNumber.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => numberProcessor(inst, ctx, json, params); + _installLazyMethods(inst, "ZodNumber", { + gt(value, params) { + return this.check(/* @__PURE__ */ _gt(value, params)); + }, + gte(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + min(value, params) { + return this.check(/* @__PURE__ */ _gte(value, params)); + }, + lt(value, params) { + return this.check(/* @__PURE__ */ _lt(value, params)); + }, + lte(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + max(value, params) { + return this.check(/* @__PURE__ */ _lte(value, params)); + }, + int(params) { + return this.check(int(params)); + }, + safe(params) { + return this.check(int(params)); + }, + positive(params) { + return this.check(/* @__PURE__ */ _gt(0, params)); + }, + nonnegative(params) { + return this.check(/* @__PURE__ */ _gte(0, params)); + }, + negative(params) { + return this.check(/* @__PURE__ */ _lt(0, params)); + }, + nonpositive(params) { + return this.check(/* @__PURE__ */ _lte(0, params)); + }, + multipleOf(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + step(value, params) { + return this.check(/* @__PURE__ */ _multipleOf(value, params)); + }, + finite() { + return this; + } + }); + const bag = inst._zod.bag; + inst.minValue = Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null; + inst.maxValue = Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null; + inst.isInt = (bag.format ?? "").includes("int") || Number.isSafeInteger(bag.multipleOf ?? .5); + inst.isFinite = true; + inst.format = bag.format ?? null; + }); + function number(params) { + return /* @__PURE__ */ _number(ZodNumber, params); + } + const ZodNumberFormat = /*@__PURE__*/ $constructor("ZodNumberFormat", (inst, def) => { + $ZodNumberFormat.init(inst, def); + ZodNumber.init(inst, def); + }); + function int(params) { + return /* @__PURE__ */ _int(ZodNumberFormat, params); + } + const ZodBoolean = /*@__PURE__*/ $constructor("ZodBoolean", (inst, def) => { + $ZodBoolean.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => booleanProcessor(inst, ctx, json, params); + }); + function boolean(params) { + return /* @__PURE__ */ _boolean(ZodBoolean, params); + } + const ZodUnknown = /*@__PURE__*/ $constructor("ZodUnknown", (inst, def) => { + $ZodUnknown.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => void 0; + }); + function unknown() { + return /* @__PURE__ */ _unknown(ZodUnknown); + } + const ZodNever = /*@__PURE__*/ $constructor("ZodNever", (inst, def) => { + $ZodNever.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => neverProcessor(inst, ctx, json, params); + }); + function never(params) { + return /* @__PURE__ */ _never(ZodNever, params); + } + const ZodArray = /*@__PURE__*/ $constructor("ZodArray", (inst, def) => { + $ZodArray.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => arrayProcessor(inst, ctx, json, params); + inst.element = def.element; + _installLazyMethods(inst, "ZodArray", { + min(n, params) { + return this.check(/* @__PURE__ */ _minLength(n, params)); + }, + nonempty(params) { + return this.check(/* @__PURE__ */ _minLength(1, params)); + }, + max(n, params) { + return this.check(/* @__PURE__ */ _maxLength(n, params)); + }, + length(n, params) { + return this.check(/* @__PURE__ */ _length(n, params)); + }, + unwrap() { + return this.element; + } + }); + }); + function array(element, params) { + return /* @__PURE__ */ _array(ZodArray, element, params); + } + const ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => { + $ZodObjectJIT.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => objectProcessor(inst, ctx, json, params); + defineLazy(inst, "shape", () => { + return def.shape; + }); + _installLazyMethods(inst, "ZodObject", { + keyof() { + return _enum(Object.keys(this._zod.def.shape)); + }, + catchall(catchall) { + return this.clone({ + ...this._zod.def, + catchall + }); + }, + passthrough() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + loose() { + return this.clone({ + ...this._zod.def, + catchall: unknown() + }); + }, + strict() { + return this.clone({ + ...this._zod.def, + catchall: never() + }); + }, + strip() { + return this.clone({ + ...this._zod.def, + catchall: void 0 + }); + }, + extend(incoming) { + return extend(this, incoming); + }, + safeExtend(incoming) { + return safeExtend(this, incoming); + }, + merge(other) { + return merge(this, other); + }, + pick(mask) { + return pick(this, mask); + }, + omit(mask) { + return omit(this, mask); + }, + partial(...args) { + return partial(ZodOptional, this, args[0]); + }, + required(...args) { + return required(ZodNonOptional, this, args[0]); + } + }); + }); + function object(shape, params) { + return new ZodObject({ + type: "object", + shape: shape ?? {}, + ...normalizeParams(params) + }); + } + function looseObject(shape, params) { + return new ZodObject({ + type: "object", + shape, + catchall: unknown(), + ...normalizeParams(params) + }); + } + const ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => { + $ZodUnion.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => unionProcessor(inst, ctx, json, params); + inst.options = def.options; + }); + function union(options, params) { + return new ZodUnion({ + type: "union", + options, + ...normalizeParams(params) + }); + } + const ZodDiscriminatedUnion = /*@__PURE__*/ $constructor("ZodDiscriminatedUnion", (inst, def) => { + ZodUnion.init(inst, def); + $ZodDiscriminatedUnion.init(inst, def); + }); + function discriminatedUnion(discriminator, options, params) { + return new ZodDiscriminatedUnion({ + type: "union", + options, + discriminator, + ...normalizeParams(params) + }); + } + const ZodIntersection = /*@__PURE__*/ $constructor("ZodIntersection", (inst, def) => { + $ZodIntersection.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => intersectionProcessor(inst, ctx, json, params); + }); + function intersection(left, right) { + return new ZodIntersection({ + type: "intersection", + left, + right + }); + } + const ZodRecord = /*@__PURE__*/ $constructor("ZodRecord", (inst, def) => { + $ZodRecord.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => recordProcessor(inst, ctx, json, params); + inst.keyType = def.keyType; + inst.valueType = def.valueType; + }); + function record(keyType, valueType, params) { + if (!valueType || !valueType._zod) return new ZodRecord({ + type: "record", + keyType: string(), + valueType: keyType, + ...normalizeParams(valueType) + }); + return new ZodRecord({ + type: "record", + keyType, + valueType, + ...normalizeParams(params) + }); + } + const ZodEnum = /*@__PURE__*/ $constructor("ZodEnum", (inst, def) => { + $ZodEnum.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => enumProcessor(inst, ctx, json, params); + inst.enum = def.entries; + inst.options = Object.values(def.entries); + const keys = new Set(Object.keys(def.entries)); + inst.extract = (values, params) => { + const newEntries = {}; + for (const value of values) if (keys.has(value)) newEntries[value] = def.entries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + inst.exclude = (values, params) => { + const newEntries = { ...def.entries }; + for (const value of values) if (keys.has(value)) delete newEntries[value]; + else throw new Error(`Key ${value} not found in enum`); + return new ZodEnum({ + ...def, + checks: [], + ...normalizeParams(params), + entries: newEntries + }); + }; + }); + function _enum(values, params) { + return new ZodEnum({ + type: "enum", + entries: Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values, + ...normalizeParams(params) + }); + } + const ZodLiteral = /*@__PURE__*/ $constructor("ZodLiteral", (inst, def) => { + $ZodLiteral.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => literalProcessor(inst, ctx, json, params); + inst.values = new Set(def.values); + Object.defineProperty(inst, "value", { get() { + if (def.values.length > 1) throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); + return def.values[0]; + } }); + }); + function literal(value, params) { + return new ZodLiteral({ + type: "literal", + values: Array.isArray(value) ? value : [value], + ...normalizeParams(params) + }); + } + const ZodTransform = /*@__PURE__*/ $constructor("ZodTransform", (inst, def) => { + $ZodTransform.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => transformProcessor(inst, ctx, json, params); + inst._zod.parse = (payload, _ctx) => { + if (_ctx.direction === "backward") throw new $ZodEncodeError(inst.constructor.name); + payload.addIssue = (issue$1) => { + if (typeof issue$1 === "string") payload.issues.push(issue(issue$1, payload.value, def)); + else { + const _issue = issue$1; + if (_issue.fatal) _issue.continue = false; + _issue.code ?? (_issue.code = "custom"); + _issue.input ?? (_issue.input = payload.value); + _issue.inst ?? (_issue.inst = inst); + payload.issues.push(issue(_issue)); + } + }; + const output = def.transform(payload.value, payload); + if (output instanceof Promise) return output.then((output) => { + payload.value = output; + payload.fallback = true; + return payload; + }); + payload.value = output; + payload.fallback = true; + return payload; + }; + }); + function transform(fn) { + return new ZodTransform({ + type: "transform", + transform: fn + }); + } + const ZodOptional = /*@__PURE__*/ $constructor("ZodOptional", (inst, def) => { + $ZodOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function optional(innerType) { + return new ZodOptional({ + type: "optional", + innerType + }); + } + const ZodExactOptional = /*@__PURE__*/ $constructor("ZodExactOptional", (inst, def) => { + $ZodExactOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => optionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function exactOptional(innerType) { + return new ZodExactOptional({ + type: "optional", + innerType + }); + } + const ZodNullable = /*@__PURE__*/ $constructor("ZodNullable", (inst, def) => { + $ZodNullable.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nullableProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nullable(innerType) { + return new ZodNullable({ + type: "nullable", + innerType + }); + } + const ZodDefault = /*@__PURE__*/ $constructor("ZodDefault", (inst, def) => { + $ZodDefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => defaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeDefault = inst.unwrap; + }); + function _default(innerType, defaultValue) { + return new ZodDefault({ + type: "default", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodPrefault = /*@__PURE__*/ $constructor("ZodPrefault", (inst, def) => { + $ZodPrefault.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => prefaultProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function prefault(innerType, defaultValue) { + return new ZodPrefault({ + type: "prefault", + innerType, + get defaultValue() { + return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); + } + }); + } + const ZodNonOptional = /*@__PURE__*/ $constructor("ZodNonOptional", (inst, def) => { + $ZodNonOptional.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => nonoptionalProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function nonoptional(innerType, params) { + return new ZodNonOptional({ + type: "nonoptional", + innerType, + ...normalizeParams(params) + }); + } + const ZodCatch = /*@__PURE__*/ $constructor("ZodCatch", (inst, def) => { + $ZodCatch.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => catchProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + inst.removeCatch = inst.unwrap; + }); + function _catch(innerType, catchValue) { + return new ZodCatch({ + type: "catch", + innerType, + catchValue: typeof catchValue === "function" ? catchValue : () => catchValue + }); + } + const ZodPipe = /*@__PURE__*/ $constructor("ZodPipe", (inst, def) => { + $ZodPipe.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => pipeProcessor(inst, ctx, json, params); + inst.in = def.in; + inst.out = def.out; + }); + function pipe(in_, out) { + return new ZodPipe({ + type: "pipe", + in: in_, + out + }); + } + const ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => { + $ZodReadonly.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => readonlyProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.innerType; + }); + function readonly(innerType) { + return new ZodReadonly({ + type: "readonly", + innerType + }); + } + const ZodLazy = /*@__PURE__*/ $constructor("ZodLazy", (inst, def) => { + $ZodLazy.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => lazyProcessor(inst, ctx, json, params); + inst.unwrap = () => inst._zod.def.getter(); + }); + function lazy(getter) { + return new ZodLazy({ + type: "lazy", + getter + }); + } + const ZodCustom = /*@__PURE__*/ $constructor("ZodCustom", (inst, def) => { + $ZodCustom.init(inst, def); + ZodType.init(inst, def); + inst._zod.processJSONSchema = (ctx, json, params) => customProcessor(inst, ctx, json, params); + }); + function custom(fn, _params) { + return /* @__PURE__ */ _custom(ZodCustom, fn ?? (() => true), _params); + } + function refine(fn, _params = {}) { + return /* @__PURE__ */ _refine(ZodCustom, fn, _params); + } + function superRefine(fn, params) { + return /* @__PURE__ */ _superRefine(fn, params); + } + //#endregion + //#region ../../host/apiproxy/lib/types/api/rpc.schema.js + /** + * Message-layer zod schemas: the four wire full forms + error body + + * carrier receipt. The payload slot is unknown in the full-form schemas — business payloads + * get a second parse dispatched by method (two-level parse discipline). + * Brand cast point: rpcIdSchema, and only there. + */ + /** + * RpcId: one brand cast after schema validation (the only cast point in this + * file). No min-length: the id is an opaque echo token, and rejecting values + * here would only turn a correlatable error report into a client-side parse + * failure (the handler substitutes a sentinel when a request's id is unreadable). + */ + const rpcIdSchema = string(); + /** Error body: discriminated by code, per-branch details aligned to RpcErrorDetailsMap; details is required. */ + const rpcErrorSchema = discriminatedUnion("code", [ + object({ + code: literal("bad-request"), + message: string(), + details: object({ issues: array(custom()) }) + }), + object({ + code: literal("cancelled"), + message: string(), + details: object({}) + }), + object({ + code: literal("session-not-found"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("model-unavailable"), + message: string(), + details: object({ + provider: string(), + model: string() + }) + }), + object({ + code: literal("session-conflict"), + message: string(), + details: object({ + sessionId: string(), + requestedCwd: string(), + existingCwd: string().optional() + }) + }), + object({ + code: literal("invalid-time-zone"), + message: string(), + details: object({ value: string() }) + }), + object({ + code: literal("workspace-attach-failed"), + message: string(), + details: object({ + sessionId: string(), + workspaceId: string() + }) + }), + object({ + code: literal("workspace-not-found"), + message: string(), + details: object({ workspaceId: string() }) + }), + object({ + code: literal("workspace-invalid-path"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("workspace-name-conflict"), + message: string(), + details: object({ name: string() }) + }), + object({ + code: literal("workspace-move-invalid"), + message: string(), + details: object({ + workspaceId: string(), + sessionId: string(), + beforeSessionId: string().optional() + }) + }), + object({ + code: literal("directory-unreadable"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-exists"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-create-failed"), + message: string(), + details: object({ path: string() }) + }), + object({ + code: literal("directory-picker-unavailable"), + message: string(), + details: object({ capability: string() }) + }), + object({ + code: literal("agent-preset-read-only"), + message: string(), + details: object({ + agentPreset: string(), + reason: string() + }) + }), + object({ + code: literal("agent-preset-locked"), + message: string(), + details: object({ + sessionId: string(), + agentPreset: string() + }) + }), + object({ + code: literal("agent-preset-conflict"), + message: string(), + details: object({ + sessionId: string(), + requestedPreset: string(), + existingPreset: string().optional() + }) + }), + object({ + code: literal("agent-preset-not-found"), + message: string(), + details: object({ + agentPreset: string(), + available: array(string()) + }) + }), + object({ + code: literal("agent-preset-invalid"), + message: string(), + details: object({ + agentPreset: string(), + reason: string() + }) + }), + object({ + code: literal("agent-busy"), + message: string(), + details: object({ reason: string() }) + }), + object({ + code: literal("attachment-error"), + message: string(), + details: object({ reason: string() }) + }), + object({ + code: literal("queue-item-not-found"), + message: string(), + details: object({ itemId: string() }) + }), + object({ + code: literal("steer-unavailable"), + message: string(), + details: object({ itemId: string() }) + }), + object({ + code: literal("command-error"), + message: string(), + details: object({}) + }), + object({ + code: literal("unknown-command"), + message: string(), + details: object({}) + }), + object({ + code: literal("settings-rejected"), + message: string(), + details: object({ ns: string() }) + }), + object({ + code: literal("settings-not-exposed"), + message: string(), + details: object({ ns: string() }) + }), + object({ + code: literal("settings-conflict"), + message: string(), + details: object({ + ns: string(), + expected: number(), + actual: number() + }) + }), + object({ + code: literal("credential-rejected"), + message: string(), + details: object({ ref: string() }) + }), + object({ + code: literal("model-discovery-failed"), + message: string(), + details: object({ + settingsNs: string(), + baseURL: string().optional() + }) + }), + object({ + code: literal("title-invalid"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("fork-unavailable"), + message: string(), + details: object({ sessionId: string() }) + }), + object({ + code: literal("subagent-parent-unavailable"), + message: string(), + details: object({ parentSessionId: string() }) + }), + object({ + code: literal("subagent-not-found"), + message: string(), + details: object({ + parentSessionId: string(), + childSessionId: string() + }) + }), + object({ + code: literal("subagent-catalog-diagnostic"), + message: string(), + details: object({ + parentSessionId: string(), + childSessionId: string(), + reason: union([ + literal("corrupt"), + literal("unsupported"), + literal("unavailable") + ]) + }) + }), + object({ + code: literal("subagent-not-resumable"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("subagent-unauthorized"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("subagent-delivery-unavailable"), + message: string(), + details: object({ childSessionId: string() }) + }), + object({ + code: literal("internal"), + message: string(), + details: object({}) + }) + ]); + /** + * Business success/failure result schema (generic, reusable). + * @param value - Schema for the business value. + * @returns Schema for RpcResult. + */ + function rpcResultSchema(value) { + return union([object({ + ok: literal(true), + value + }), object({ + ok: literal(false), + error: rpcErrorSchema + })]); + } + /** ClientRequest full form (payload stays wide — the business layer runs the second parse). */ + const clientRequestSchema = object({ + type: literal("client-request"), + rpcId: rpcIdSchema, + method: string(), + payload: unknown() + }); + /** ServerResponse full form (result.value stays wide). */ + const serverResponseSchema = object({ + type: literal("server-response"), + rpcId: rpcIdSchema, + result: rpcResultSchema(unknown().optional()) + }); + /** ServerRequest full form (payload stays wide). */ + const serverRequestSchema = object({ + type: literal("server-request"), + rpcId: rpcIdSchema, + method: string(), + payload: unknown() + }); + discriminatedUnion("type", [ + clientRequestSchema, + serverResponseSchema, + serverRequestSchema, + object({ + type: literal("client-response"), + rpcId: rpcIdSchema, + result: rpcResultSchema(unknown().optional()) + }) + ]); + /** Carrier receipt schema. */ + const rpcReceiptSchema = union([object({ accepted: literal(true) }), object({ + accepted: literal(false), + reason: union([literal("not-pending"), literal("bad-response")]) + })]); + //#endregion + //#region ../../host/apiproxy/lib/types/api/session-search.js + /** + * Return the longest prefix containing at most `maximum` Unicode code points. + * @param value - text to bound. + * @param maximum - non-negative code-point limit. + * @returns `value` unchanged when it fits, otherwise a code-point-safe prefix. + */ + function truncateUnicodeCodePoints(value, maximum) { + let count = 0; + let end = 0; + for (const codePoint of value) { + if (count === maximum) return value.slice(0, end); + count++; + end += codePoint.length; + } + return value; + } + //#endregion + //#region ../../host/apiproxy/lib/types/api/sessions.schema.js + /** + * sessions domain zod schemas (names derived from map keys: sessionListRequestSchema / + * sessionListValueSchema). SessionEvent passthrough = strict envelope (type/seq/time) + wide + * data: the merge-extensible event API keeps an unknown-type branch at the union level, + * with no field-level passthrough. SessionId brand cast point: sessionIdSchema, and only there. + */ + /** SessionId: one brand cast after schema validation (the only cast point in this domain). */ + const sessionIdSchema = string().min(1); + /** MessageId: one brand cast after non-empty string validation. */ + const messageIdSchema$1 = string().min(1); + /** + * WorkspaceId: the workspace domain's one brand cast. Hosted here rather + * than in workspace.schema because session.create references it while + * workspace.schema references sessionIdSchema — schema modules must stay a + * DAG (both casts used at module top level; a cycle is a load-time TDZ). + */ + const workspaceIdSchema = string().min(1); + /** SessionEvent passthrough: strict envelope, wide data (the client fold handles unknown types via its documented default). */ + const sessionEventSchema = object({ + type: string(), + seq: number().int().nonnegative(), + time: number(), + data: unknown(), + sourceEventSeqs: array(number()).optional(), + surfaceOp: unknown().optional(), + ignorable: literal(true).optional() + }); + /** SessionSummary row of session.list (`projections` reuses the history block's shape and schema). */ + const sessionSummarySchema = object({ + sessionId: sessionIdSchema, + updatedAt: number(), + running: boolean(), + blank: boolean(), + parentSessionId: sessionIdSchema.optional(), + origin: literal("subagent").optional(), + cwd: string().optional(), + agentPreset: string().optional(), + projections: lazy(() => sessionProjectionsBlockSchema).optional() + }); + object({ cursor: string().optional() }); + /** session.list response value. */ + const sessionListValueSchema = object({ items: array(sessionSummarySchema) }); + object({ query: string().trim().min(1).max(500).refine((query) => !query.includes("\0"), { message: "search query must not contain NUL" }) }); + /** session.search response value. */ + const sessionSearchValueSchema = object({ + items: array(object({ + sessionId: sessionIdSchema, + snippet: string().refine((snippet) => truncateUnicodeCodePoints(snippet, 240) === snippet, { message: `search snippet must contain at most 240 Unicode code points` }) + })).max(20), + hasMore: boolean() + }); + object({ + workspaceId: workspaceIdSchema.optional(), + cwd: string().optional(), + sessionId: sessionIdSchema.optional(), + agentPreset: string().optional() + }).refine((payload) => payload.workspaceId === void 0 || payload.cwd === void 0, { message: "session.create accepts workspaceId or cwd, not both" }); + /** session.create response value. */ + const sessionCreateValueSchema = object({ + sessionId: sessionIdSchema, + agentPreset: string().optional() + }); + object({ + sessionId: sessionIdSchema, + title: string() + }); + /** session.rename response value (the normalized accepted title and its event seq). */ + const sessionRenameValueSchema = object({ + title: string().min(1), + seq: number().int().nonnegative() + }); + object({ + sessionId: sessionIdSchema, + atSeq: number().int().nonnegative().optional() + }); + /** session.fork response value (the child session id). */ + const sessionForkValueSchema = object({ sessionId: sessionIdSchema }); + object({ + sessionId: sessionIdSchema, + beforeSeq: number().int().nonnegative().optional(), + maxMessages: number().int().positive().optional() + }); + /** Complete provider/model selection. */ + const modelSelectionSchema = object({ + provider: string().min(1), + model: string().min(1), + reasoningEffort: string().min(1).optional() + }); + /** Exact-model reasoning metadata. */ + const modelReasoningSchema = object({ + efforts: array(object({ + id: string().min(1), + name: string().min(1), + description: string().optional() + })).min(1), + defaultEffort: string().min(1).optional() + }); + /** One advisory model entry inside a provider group. */ + const modelCatalogModelSchema = object({ + id: string().min(1), + name: string().min(1), + description: string().optional(), + reasoning: modelReasoningSchema.optional() + }); + /** One successfully loaded provider group. */ + const modelProviderGroupSchema = object({ + id: string().min(1), + name: string().min(1), + models: array(modelCatalogModelSchema) + }); + /** One provider-local catalog failure. */ + const modelCatalogFailureSchema = object({ + id: string().min(1), + name: string().min(1), + message: string() + }); + /** + * ToolEventView passthrough: lock only the `for` discriminant and the presence + * of a card-tagged `view` object. The view interior is a host-computed product + * the client reads without echoing back; deep-validating it would hand-copy + * the dsh-tools vocabulary into this schema and drift with it. + */ + const toolEventViewSchema = discriminatedUnion("for", [object({ + for: literal("call"), + view: looseObject({ card: string() }) + }), object({ + for: literal("result"), + view: looseObject({ card: string() }) + })]); + /** One session.history item: the session event plus its optional host-computed tool view. */ + const historyEntrySchema = object({ + event: sessionEventSchema, + view: toolEventViewSchema.optional() + }); + /** + * Projection baseline passthrough: `values` stays a wide record — each value + * was already parsed by its provider's own schema on the host side, and + * deep-validating here would import every domain's schema into the carrier. + */ + const sessionProjectionsBlockSchema = object({ + asOfSeq: number().int().min(-1), + values: record(string(), unknown()) + }); + object({ + blank: boolean(), + lastPromptAt: number().nullable() + }); + object({ + maxImageBytes: number().int().positive(), + maxImagesPerMessage: number().int().positive(), + maxMessageImageBytes: number().int().positive(), + maxImagePixels: number().int().positive(), + mediaTypes: array(string()) + }); + /** session.history response value (projections rides the tail page only). */ + const sessionHistoryValueSchema = object({ + events: array(historyEntrySchema), + hasMore: boolean(), + projections: sessionProjectionsBlockSchema.optional() + }); + object({ sessionId: sessionIdSchema }); + /** session.models response value. */ + const sessionModelsValueSchema = object({ + current: modelSelectionSchema, + routable: boolean(), + groups: array(modelProviderGroupSchema), + failures: array(modelCatalogFailureSchema) + }); + object({ + sessionId: sessionIdSchema, + provider: string().min(1), + model: string().min(1), + reasoningEffort: string().min(1).optional() + }); + /** session.selectModel response value. */ + const sessionSelectModelValueSchema = object({ selected: modelSelectionSchema }); + /** ContentBlock passthrough: core is merge-extensible — the type discriminant envelope is strict, the rest stays wide. */ + const contentBlockSchema = looseObject({ type: string() }); + /** Raster image media types accepted by the version-one browser wire. */ + const imageMediaTypeSchema = union([ + literal("image/png"), + literal("image/jpeg"), + literal("image/webp"), + literal("image/gif") + ]); + /** Prompt wire content is intentionally narrower than merge-extensible durable core content. */ + const promptContentPartSchema = discriminatedUnion("type", [object({ + type: literal("text"), + text: string() + }), object({ + type: literal("image"), + mediaType: imageMediaTypeSchema, + data: string(), + name: string().optional() + })]); + object({ + sessionId: sessionIdSchema, + mode: union([literal("queue"), literal("steer")]), + content: array(promptContentPartSchema), + clientTimeZone: string().optional() + }); + /** session.prompt response value (the command slot appears only when the prompt dispatched a slash command). */ + const sessionPromptValueSchema = object({ + accepted: literal(true), + command: object({ + kind: literal("success"), + text: string().optional() + }).optional() + }); + /** Opaque attachment id after string-shape validation. */ + const attachmentIdSchema = string().min(1); + /** Durable image reference returned from the authenticated session lookup. */ + const imageAttachmentRefSchema = object({ + attachmentId: attachmentIdSchema, + mediaType: imageMediaTypeSchema, + bytes: number().int().positive(), + width: number().int().positive(), + height: number().int().positive(), + name: string().optional() + }); + object({ + sessionId: sessionIdSchema, + attachmentId: attachmentIdSchema + }); + /** session.attachment response value. */ + const sessionAttachmentValueSchema = object({ + attachment: imageAttachmentRefSchema, + data: string() + }); + object({ + sessionId: sessionIdSchema, + itemId: messageIdSchema$1, + action: discriminatedUnion("kind", [ + object({ + kind: literal("edit"), + content: array(contentBlockSchema) + }), + object({ kind: literal("remove") }), + object({ kind: literal("steer") }) + ]) + }); + /** session.updateQueue response value. */ + const sessionUpdateQueueValueSchema = object({ accepted: literal(true) }); + object({ sessionId: sessionIdSchema }); + /** session.cancel response value. */ + const sessionCancelValueSchema = object({ accepted: literal(true) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/approvals.schema.js + /** + * approvals domain zod schemas (respond is a client-response; the payload schema serves + * the /api/respond endpoint's second parse after routing via the pending table). + * ApprovalRequestId brand cast point: one. + */ + /** ApprovalRequestId: one brand cast after schema validation (the only cast point in this domain). */ + const approvalRequestIdSchema = string().min(1); + object({ + sessionId: sessionIdSchema, + approvalId: approvalRequestIdSchema, + outcome: union([literal("allowed-once"), literal("rejected")]) + }); + /** + * One wire task view. `kind` stays an open string because producer plugins + * extend the registry's kind map by declaration merging, so the closed set is + * not knowable at this boundary. + */ + const taskViewSchema = object({ + id: string().min(1), + kind: string().min(1), + label: string().min(1), + status: union([ + literal("running"), + literal("stopping"), + literal("completed"), + literal("killed"), + literal("failed") + ]), + detail: string().optional(), + startedAt: number().int().nonnegative(), + finishedAt: number().int().nonnegative().optional() + }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/workspace.schema.js + /** + * workspace domain zod schemas (names derived from map keys). The + * WorkspaceId brand cast lives in sessions.schema (see the note there) and + * is re-exported here as the domain-local name. + */ + /** WorkspaceView row of every workspace.* response. */ + const workspaceViewSchema = object({ + workspaceId: workspaceIdSchema, + path: string(), + title: string(), + sessionIds: array(sessionIdSchema), + createdAt: string(), + updatedAt: string() + }); + object({}); + /** workspace.list response value. */ + const workspaceListValueSchema = object({ + items: array(workspaceViewSchema), + archivedSessionIds: array(sessionIdSchema) + }); + object({ path: string() }); + /** workspace.create response value. */ + const workspaceCreateValueSchema = object({ + workspace: workspaceViewSchema, + created: boolean() + }); + object({ + workspaceId: workspaceIdSchema, + title: string() + }).refine((payload) => payload.title.trim() !== "", { message: "workspace.rename requires a non-blank title" }); + /** workspace.rename response value. */ + const workspaceRenameValueSchema = object({ workspace: workspaceViewSchema }); + object({ workspaceId: workspaceIdSchema }); + /** workspace.delete response value. */ + const workspaceDeleteValueSchema = object({ deleted: literal(true) }); + object({ + workspaceId: workspaceIdSchema, + beforeWorkspaceId: workspaceIdSchema.optional() + }); + /** workspace.insertBefore response value: the complete durable display order. */ + const workspaceInsertBeforeValueSchema = object({ workspaceIds: array(workspaceIdSchema) }); + object({ + workspaceId: workspaceIdSchema, + sessionId: sessionIdSchema, + beforeSessionId: sessionIdSchema.optional() + }); + /** workspace.insertSessionBefore response value. */ + const workspaceInsertSessionBeforeValueSchema = object({ workspace: workspaceViewSchema }); + object({ sessionId: sessionIdSchema }); + /** workspace.archiveSession response value: the full updated archive set. */ + const workspaceArchiveSessionValueSchema = object({ archivedSessionIds: array(sessionIdSchema) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/events.schema.js + /** + * events domain zod schemas: MuxFrame / HostFrame unions (discriminatedUnion('type')). + * A frame is the payload slot of the ServerRequest full form; the SessionEvent inside + * a session/event frame reuses sessions.schema's strict-envelope + wide-data passthrough branch. + */ + /** Question fields validated strictly against core dsh-user-questions. */ + const askUserQuestionItemSchema = object({ + id: string(), + question: string(), + header: string().optional(), + detail: string().optional(), + options: array(object({ + label: string(), + description: string().optional() + })).optional(), + multiSelect: boolean().optional(), + intent: discriminatedUnion("kind", [object({ + kind: literal("plan-review"), + approve: string() + })]).optional() + }); + /** Unified message envelope carried by transient queue frames. */ + const messageSchema = object({ + id: string().min(1), + role: union([ + literal("system"), + literal("user"), + literal("assistant") + ]), + content: array(contentBlockSchema), + source: looseObject({ kind: string() }) + }); + /** MuxFrame union (payload slot of a mux-stream ServerRequest). */ + const muxFrameSchema = discriminatedUnion("type", [ + object({ + type: literal("session/event"), + sessionId: sessionIdSchema, + event: sessionEventSchema, + view: toolEventViewSchema.optional() + }), + object({ + type: literal("session/subscribed"), + sessionId: sessionIdSchema, + lastSeq: number().int() + }), + object({ + type: literal("approval/requested"), + sessionId: sessionIdSchema, + approvalId: approvalRequestIdSchema, + toolName: string(), + callId: string().optional(), + reason: string().optional() + }), + object({ + type: literal("approval/resolved"), + sessionId: sessionIdSchema, + approvalId: approvalRequestIdSchema, + outcome: union([ + literal("allowed-once"), + literal("rejected"), + literal("cancelled"), + literal("unavailable") + ]) + }), + object({ + type: literal("question/requested"), + sessionId: sessionIdSchema, + questions: array(askUserQuestionItemSchema).min(1) + }), + object({ + type: literal("question/resolved"), + sessionId: sessionIdSchema, + questionRpcId: rpcIdSchema, + outcome: union([literal("answered"), literal("cancelled")]) + }), + object({ + type: literal("session/queue"), + sessionId: sessionIdSchema, + items: array(object({ + id: messageIdSchema$1, + placement: union([ + literal("queued"), + literal("steering"), + literal("context") + ]), + message: messageSchema + })) + }), + object({ + type: literal("session/jobs"), + sessionId: sessionIdSchema, + jobs: array(taskViewSchema) + }), + object({ + type: literal("session/projection"), + sessionId: sessionIdSchema, + key: string().min(1), + value: unknown(), + seq: number().int().nonnegative() + }), + object({ + type: literal("stream/error"), + error: rpcErrorSchema + }) + ]); + /** HostFrame union (payload slot of a host-stream ServerRequest). */ + const hostFrameSchema = discriminatedUnion("type", [ + object({ + type: literal("host/session-added"), + sessionId: sessionIdSchema, + blank: boolean(), + parentSessionId: sessionIdSchema.optional(), + origin: literal("subagent").optional(), + cwd: string().optional(), + agentPreset: string().optional() + }), + object({ + type: literal("host/session-removed"), + sessionId: sessionIdSchema + }), + object({ + type: literal("host/session-status"), + sessionId: sessionIdSchema, + running: boolean() + }), + object({ + type: literal("host/agent-error"), + sessionId: sessionIdSchema, + message: string() + }), + object({ + type: literal("host/workspace-changed"), + workspace: workspaceViewSchema + }), + object({ + type: literal("host/workspace-removed"), + workspaceId: workspaceIdSchema + }), + object({ + type: literal("host/workspace-order-changed"), + workspaceIds: array(workspaceIdSchema) + }), + object({ + type: literal("host/archived-sessions-changed"), + archivedSessionIds: array(sessionIdSchema) + }), + object({ + type: literal("host/remote-event"), + event: string().min(1), + args: array(unknown()) + }), + object({ + type: literal("stream/error"), + error: rpcErrorSchema + }) + ]); + object({}); + /** host.describe response value. */ + const hostDescribeValueSchema = object({ + version: string(), + cwd: string(), + provider: string().optional(), + model: string().optional(), + attachedSessions: number().int().nonnegative(), + canOpenPath: boolean() + }); + object({}); + /** host.pickDirectory response value; null means the user cancelled. */ + const hostPickDirectoryValueSchema = object({ path: string().nullable() }); + /** Directory row shared by listing entries and breadcrumb crumbs. */ + const directoryEntrySchema = object({ + name: string(), + path: string(), + hidden: boolean() + }); + object({ path: string().optional() }); + /** host.listDirectory response value. */ + const hostListDirectoryValueSchema = object({ + path: string(), + home: string(), + crumbs: array(directoryEntrySchema), + entries: array(directoryEntrySchema), + truncated: boolean() + }); + object({ + path: string(), + name: string() + }).refine((payload) => payload.name.trim() !== "" && payload.name !== "." && payload.name !== ".." && !/[/\\]/.test(payload.name), { message: "host.createDirectory requires a single non-blank path segment name" }); + /** host.createDirectory response value: the created directory's absolute path. */ + const hostCreateDirectoryValueSchema = object({ path: string() }); + object({ path: string().min(1) }); + /** host.openPath response value. */ + const hostOpenPathValueSchema = object({ opened: literal(true) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/skills.schema.js + /** + * skills domain zod schemas (names derived from map keys: skillListRequestSchema / + * skillListValueSchema). + */ + /** SkillEntry row of skill.list. */ + const skillEntrySchema = object({ + name: string().min(1), + description: string(), + whenToUse: string().optional(), + modelInvocable: boolean() + }); + object({ sessionId: sessionIdSchema }); + /** skill.list response value. */ + const skillListValueSchema = object({ skills: array(skillEntrySchema) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/agent-presets.schema.js + /** + * agent-presets domain zod schemas (names derived from map keys: + * agentPresetListRequestSchema / agentPresetListValueSchema). + */ + /** AgentPresetEntry row of agentPreset.list. */ + const agentPresetEntrySchema = object({ + id: string().min(1), + trust: union([literal("system"), literal("user")]), + isDefault: boolean(), + name: string().optional(), + description: string().optional(), + broken: string().min(1).optional() + }); + object({}); + /** agentPreset.list response value. */ + const agentPresetListValueSchema = object({ + presets: array(agentPresetEntrySchema), + authorable: boolean(), + hasDocument: boolean() + }); + object({ + sessionId: sessionIdSchema, + agentPreset: string().min(1) + }); + /** agentPreset.select response value. */ + const agentPresetSelectValueSchema = object({ agentPreset: string() }); + object({ agentPreset: string().min(1) }); + /** agentPreset.read response value. */ + const agentPresetReadValueSchema = object({ + agentPreset: string(), + trust: union([literal("system"), literal("user")]), + content: string(), + name: string().optional(), + description: string().optional() + }); + object({ + from: string().min(1), + agentPreset: string().min(1), + name: string().optional() + }); + /** agentPreset.copy response value. */ + const agentPresetCopyValueSchema = object({ agentPreset: string() }); + object({ agentPreset: string().min(1) }); + /** agentPreset.openDocument response value. */ + const agentPresetOpenDocumentValueSchema = union([object({ opened: literal(true) }), object({ + opened: literal(false), + path: string() + })]); + object({ agentPreset: string().min(1) }); + /** agentPreset.remove response value. */ + const agentPresetRemoveValueSchema = object({}); + //#endregion + //#region ../../host/apiproxy/lib/types/api/goals.schema.js + /** + * goals domain zod schemas. Mutation-only shapes: every value schema is a + * `{ ref }` acknowledgement (clear: `{ cleared }`) — the current goal state + * travels exclusively on the 'goal' session projection. + */ + /** GoalRef schema. */ + const goalRefSchema = object({ + id: string(), + revision: number().int().positive() + }); + /** Shared `{ ref }` acknowledgement value of every non-clear mutation. */ + const goalRefValueSchema = object({ ref: goalRefSchema }); + object({ + sessionId: string(), + objective: string().min(1), + maxGoalRounds: number().int().positive().optional() + }); + /** goal.create response value. */ + const goalCreateValueSchema = goalRefValueSchema; + object({ + sessionId: string(), + ref: goalRefSchema, + objective: string().min(1).optional(), + maxGoalRounds: number().int().positive().optional() + }).refine((value) => value.objective !== void 0 || value.maxGoalRounds !== void 0, { message: "goal.edit requires objective or maxGoalRounds" }); + /** goal.edit response value. */ + const goalEditValueSchema = goalRefValueSchema; + object({ + sessionId: string(), + ref: goalRefSchema + }); + /** goal.pause response value. */ + const goalPauseValueSchema = goalRefValueSchema; + object({ + sessionId: string(), + ref: goalRefSchema + }); + /** goal.resume response value. */ + const goalResumeValueSchema = goalRefValueSchema; + object({ + sessionId: string(), + ref: goalRefSchema + }); + /** goal.complete response value. */ + const goalCompleteValueSchema = goalRefValueSchema; + object({ + sessionId: string(), + ref: goalRefSchema + }); + /** goal.clear response value. */ + const goalClearValueSchema = object({ cleared: literal(true) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/settings.schema.js + /** + * settings domain zod schemas (names derived from map keys: settingsDescribeRequestSchema / + * settingsDescribeValueSchema / settingsUpdate* / settingsReplace*). + */ + /** One redacted secret slot. */ + const settingsSecretViewSchema = object({ + path: array(string()), + set: boolean() + }); + /** SettingsNamespaceView row of settings.describe and the write responses. */ + const settingsNamespaceViewSchema = object({ + ns: string().min(1), + schema: unknown(), + value: unknown(), + base: unknown().optional(), + user: unknown().optional(), + applies: union([literal("live"), literal("restart")]), + secrets: array(settingsSecretViewSchema), + revision: number() + }); + object({}); + /** settings.describe response value. */ + const settingsDescribeValueSchema = object({ + writable: boolean(), + hasDocument: boolean(), + namespaces: array(settingsNamespaceViewSchema) + }); + object({}); + /** settings.openDocument response value. */ + const settingsOpenDocumentValueSchema = object({ opened: literal(true) }); + object({ + ns: string().min(1), + patch: record(string(), unknown()), + expectedRevision: number().optional() + }); + /** settings.update response value: the namespace's new redacted view. */ + const settingsUpdateValueSchema = settingsNamespaceViewSchema; + object({ + ns: string().min(1), + section: record(string(), unknown()), + expectedRevision: number().optional() + }); + /** One path-addressed edit of settings.mutate. */ + const settingsPathOpSchema = discriminatedUnion("op", [object({ + op: literal("set"), + path: array(string()), + value: unknown() + }), object({ + op: literal("unset"), + path: array(string()) + })]); + object({ + ns: string().min(1), + ops: array(settingsPathOpSchema), + expectedRevision: number().optional() + }); + /** settings.mutate response value: the namespace's new redacted view. */ + const settingsMutateValueSchema = settingsNamespaceViewSchema; + /** settings.replace response value. */ + const settingsReplaceValueSchema = settingsNamespaceViewSchema; + //#endregion + //#region ../../host/apiproxy/lib/types/api/credentials.schema.js + /** + * credentials domain zod schemas (names derived from map keys: + * credentialsDescribeRequestSchema / credentialsDescribeValueSchema / …). + * The reference-name pattern mirrors the seam's `credentialRef` guard so an + * invalid name fails as `bad-request` before reaching the service. + */ + /** POSIX-portable environment-variable name (the seam's `credentialRef` pattern). */ + const credentialRefNameSchema = string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/); + /** CredentialView entry of credentials.describe. */ + const credentialViewSchema = object({ + configured: boolean(), + source: string().optional(), + writable: boolean() + }); + object({ refs: array(credentialRefNameSchema).max(64) }); + /** credentials.describe response value. */ + const credentialsDescribeValueSchema = object({ credentials: record(string(), credentialViewSchema) }); + object({ + ref: credentialRefNameSchema, + value: string().min(1) + }); + /** credentials.set response value. */ + const credentialsSetValueSchema = object({}); + object({ ref: credentialRefNameSchema }); + /** credentials.unset response value. */ + const credentialsUnsetValueSchema = object({}); + //#endregion + //#region ../../host/apiproxy/lib/types/api/llm.schema.js + /** + * llm domain zod schemas (names derived from map keys: llmProvidersRequestSchema / + * llmProvidersValueSchema / llmModelsRequestSchema / llmModelsValueSchema). + */ + /** ConfigurableProviderView row of llm.providers. */ + const configurableProviderViewSchema = object({ + provider: string().min(1), + displayName: string().min(1), + settingsNs: string(), + settingsPath: array(string()), + active: boolean(), + declared: boolean().optional() + }); + object({}); + /** llm.providers response value. */ + const llmProvidersValueSchema = object({ providers: array(configurableProviderViewSchema) }); + object({}); + /** llm.models response value. */ + const llmModelsValueSchema = object({ + groups: array(modelProviderGroupSchema), + failures: array(modelCatalogFailureSchema) + }); + /** DiscoveredModelView row of llm.discoverModels. */ + const discoveredModelViewSchema = object({ + id: string().min(1), + name: string().min(1).optional(), + contextWindow: number().int().positive().optional(), + maxTokens: number().int().positive().optional() + }); + object({ + settingsNs: string().min(1), + provider: string().min(1).optional(), + baseURL: string().min(1).optional(), + api: string().min(1).optional(), + apiKey: string().min(1).optional() + }); + /** llm.discoverModels response value. */ + const llmDiscoverModelsValueSchema = object({ models: array(discoveredModelViewSchema) }); + //#endregion + //#region ../../host/apiproxy/lib/types/api/subagents.schema.js + /** Zod schemas for the browser-safe subagent domain. */ + /** Healthy and diagnostic durable catalog rows. */ + const subagentListEntrySchema = union([ + object({ + kind: literal("child"), + id: sessionIdSchema, + mode: literal("one-shot"), + activity: union([literal("running"), literal("inactive")]), + hasChildren: boolean(), + label: string().optional() + }), + object({ + kind: literal("child"), + id: sessionIdSchema, + mode: literal("continuable"), + activity: union([literal("running"), literal("inactive")]), + hasChildren: boolean(), + label: string() + }), + object({ + kind: literal("diagnostic"), + id: sessionIdSchema, + reason: union([ + literal("corrupt"), + literal("unsupported"), + literal("unavailable") + ]) + }) + ]); + object({ parentSessionId: sessionIdSchema }); + /** subagent.list response value. */ + const subagentListValueSchema = object({ + entries: array(subagentListEntrySchema), + parentAvailable: boolean() + }); + object({ + parentSessionId: sessionIdSchema, + childSessionId: sessionIdSchema, + mode: union([literal("one-shot"), literal("continuable")]), + beforeSeq: number().int().nonnegative().optional(), + maxMessages: number().int().positive().optional() + }); + /** subagent.history response value. */ + const subagentHistoryValueSchema = object({ + events: array(historyEntrySchema), + hasMore: boolean(), + projections: sessionProjectionsBlockSchema.optional() + }); + object({ + parentSessionId: sessionIdSchema, + childSessionId: sessionIdSchema, + mode: literal("continuable"), + content: array(contentBlockSchema), + clientTimeZone: string().optional() + }); + object({ + parentSessionId: sessionIdSchema, + childSessionId: sessionIdSchema, + mode: literal("continuable") + }); + /** subagent.interrupt response value. */ + const subagentInterruptValueSchema = object({ accepted: literal(true) }); + //#endregion + //#region ../../host/apiproxy/lib/types/fetch/client.js + /** + * Client side of the fetch carrier. AbstractApiClient holds every protocol invariant: rpcId minting, + * four-quadrant envelope wrap/unwrap, zod parsing, in-process SSE frame decoding, and the payload-direct + * IApiClient domain methods (business code never mints). Platform differences ride two aspects: + * abstract doFetch (transport) + overridable onEnvelope (tap). ApiProxy (the impl face) is untouched. + */ + /** + * S→C second-level parse table: value schema by method (the response-path + * mirror of the handler's request table; key coverage compiler-enforced against RpcMethodMap). + */ + const UNARY_VALUE_SCHEMAS = { + "session.list": sessionListValueSchema, + "session.search": sessionSearchValueSchema, + "session.create": sessionCreateValueSchema, + "session.history": sessionHistoryValueSchema, + "session.models": sessionModelsValueSchema, + "session.selectModel": sessionSelectModelValueSchema, + "session.rename": sessionRenameValueSchema, + "session.fork": sessionForkValueSchema, + "session.prompt": sessionPromptValueSchema, + "session.attachment": sessionAttachmentValueSchema, + "session.updateQueue": sessionUpdateQueueValueSchema, + "session.cancel": sessionCancelValueSchema, + "subagent.list": subagentListValueSchema, + "subagent.history": subagentHistoryValueSchema, + "subagent.prompt": object({ messageId: string() }), + "subagent.interrupt": subagentInterruptValueSchema, + "host.describe": hostDescribeValueSchema, + "host.pickDirectory": hostPickDirectoryValueSchema, + "host.listDirectory": hostListDirectoryValueSchema, + "host.createDirectory": hostCreateDirectoryValueSchema, + "host.openPath": hostOpenPathValueSchema, + "workspace.list": workspaceListValueSchema, + "workspace.create": workspaceCreateValueSchema, + "workspace.rename": workspaceRenameValueSchema, + "workspace.delete": workspaceDeleteValueSchema, + "workspace.insertBefore": workspaceInsertBeforeValueSchema, + "workspace.insertSessionBefore": workspaceInsertSessionBeforeValueSchema, + "workspace.archiveSession": workspaceArchiveSessionValueSchema, + "skill.list": skillListValueSchema, + "agentPreset.list": agentPresetListValueSchema, + "agentPreset.select": agentPresetSelectValueSchema, + "agentPreset.read": agentPresetReadValueSchema, + "agentPreset.copy": agentPresetCopyValueSchema, + "agentPreset.openDocument": agentPresetOpenDocumentValueSchema, + "agentPreset.remove": agentPresetRemoveValueSchema, + "goal.create": goalCreateValueSchema, + "goal.edit": goalEditValueSchema, + "goal.pause": goalPauseValueSchema, + "goal.resume": goalResumeValueSchema, + "goal.complete": goalCompleteValueSchema, + "goal.clear": goalClearValueSchema, + "settings.describe": settingsDescribeValueSchema, + "settings.openDocument": settingsOpenDocumentValueSchema, + "settings.update": settingsUpdateValueSchema, + "settings.replace": settingsReplaceValueSchema, + "settings.mutate": settingsMutateValueSchema, + "credentials.describe": credentialsDescribeValueSchema, + "credentials.set": credentialsSetValueSchema, + "credentials.unset": credentialsUnsetValueSchema, + "llm.providers": llmProvidersValueSchema, + "llm.models": llmModelsValueSchema, + "llm.discoverModels": llmDiscoverModelsValueSchema + }; + /** Default timeout for bounded unary calls (rpc-compare 2026-07-19: a hung host must not leave callers pending forever). */ + const DEFAULT_TIMEOUT_MS = 3e4; + /** URL base for in-process handler injection (fake authority, opencode precedent). */ + const INTERNAL_BASE$1 = "http://dsh.internal"; + /** + * Abstract fetch-carrier client. Subclasses supply the transport (doFetch) and may refine the + * per-message tap (onEnvelope) — platform aspects stay in subclasses, protocol invariants stay + * here. Envelope observation is a first-class aspect of this data middle layer: the instance + * owns a microtask-batched buffer (frame storms must not cost one consumer update per frame), + * and observers subscribe via subscribeEnvelopes. The isomorphic point survives: an in-process + * subclass whose doFetch is toFetchHandler(api).fetch never touches the network. + */ + var AbstractApiClient = class { + timeoutMs; + /** Instance-owned observation buffer (module-level state would leak across instances/tests). */ + envelopeBatch = []; + flushScheduled = false; + envelopeListeners = /* @__PURE__ */ new Set(); + /** @param timeoutMs - timeout for bounded unary calls; user-paced calls and streams do not use it. */ + constructor(timeoutMs = DEFAULT_TIMEOUT_MS) { + this.timeoutMs = timeoutMs; + } + /** + * Subscribe to batched envelope observation (diagnostics/logging consumers). + * Batches follow microtask boundaries; a listener throw is isolated (observation + * must never break the carrier). + * @param listener - receives each flushed batch in arrival order. + * @returns unsubscribe function. + */ + subscribeEnvelopes(listener) { + this.envelopeListeners.add(listener); + return () => { + this.envelopeListeners.delete(listener); + }; + } + /** Per-message tap: feeds the instance buffer. Subclasses may override to observe unbatched (call super to keep batching). */ + onEnvelope(message) { + if (this.envelopeListeners.size === 0) return; + this.envelopeBatch.push(message); + if (this.flushScheduled) return; + this.flushScheduled = true; + queueMicrotask(() => { + this.flushScheduled = false; + const batch = this.envelopeBatch; + this.envelopeBatch = []; + for (const notify of this.envelopeListeners) try { + notify(batch); + } catch (error) { + console.error("[apiproxy] envelope listener threw:", error); + } + }); + } + /** Browser = same-origin (a fake authority would fail DNS on real requests); no-location env (Node) = fake authority. */ + resolveBase() { + const loc = globalThis.location; + return loc?.origin !== void 0 && loc.origin !== "null" ? loc.origin : INTERNAL_BASE$1; + } + mintRpcId() { + return RpcId(crypto.randomUUID()); + } + /** + * Shared POST leg of both C→S carriers (callUnary/respond): JSON body, + * optional default timeout merged with the caller's external signal, non-2xx → transport throw. + */ + async postJson(path, body, signal, timeoutPolicy = "default") { + const requestSignal = timeoutPolicy === "default" ? signal === void 0 ? AbortSignal.timeout(this.timeoutMs) : AbortSignal.any([AbortSignal.timeout(this.timeoutMs), signal]) : signal; + const response = await this.doFetch(new URL(path, this.resolveBase()), { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(body), + ...requestSignal === void 0 ? {} : { signal: requestSignal } + }); + if (!response.ok) throw new Error(`transport failure for ${path}: HTTP ${response.status}`); + return response; + } + /** + * Unary protocol path: mint → tap → POST full form → envelope parse → verify + * echo → value parse → tap → narrow. Virtual so a fake carrier (fixture) can + * override transport at this layer. + */ + async callUnary(method, payload, signal, timeoutPolicy = "default") { + const message = { + type: "client-request", + rpcId: this.mintRpcId(), + method, + payload + }; + this.onEnvelope(message); + const response = await this.postJson(`/api/${method}`, message, signal, timeoutPolicy); + const full = serverResponseSchema.parse(await response.json()); + this.onEnvelope(full); + if (full.rpcId !== message.rpcId) throw new Error(`rpcId mismatch for ${method}: sent ${message.rpcId}, got ${full.rpcId}`); + if (!full.result.ok) return { + rpcId: full.rpcId, + result: full.result + }; + const value = UNARY_VALUE_SCHEMAS[method].parse(full.result.value); + return { + rpcId: full.rpcId, + result: { + ok: true, + value + } + }; + } + /** Mux stream opener; virtual for the same override reason as callUnary. */ + openMux(_payload, signal, onOpen) { + return this.readSse("/api/events.mux", signal, muxFrameSchema, onOpen); + } + /** Host stream opener; virtual. */ + openHost(_payload, signal, onOpen) { + return this.readSse("/api/events.host", signal, hostFrameSchema, onOpen); + } + /** + * SSE protocol path: streaming fetch (not EventSource), '\n\n' framing, ServerRequest envelope + + * frame-schema parse, tap, narrow yield. onOpen fires once the response headers are in and the + * body is readable — the stream-established signal, before any frame arrives. A frame that fails + * either parse level is reported and skipped (one corrupt frame must not kill the stream; the + * client's gap detection covers whatever the frame carried). + */ + async *readSse(path, signal, frameSchema, onOpen) { + const response = await this.doFetch(new URL(path, this.resolveBase()), { signal }); + if (!response.ok || response.body === null) throw new Error(`transport failure for ${path}: HTTP ${response.status}`); + onOpen?.(); + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + try { + while (true) { + const { done, value } = await reader.read(); + if (done) return; + buffer += decoder.decode(value, { stream: true }); + let boundary; + while ((boundary = buffer.indexOf("\n\n")) !== -1) { + const chunk = buffer.slice(0, boundary); + buffer = buffer.slice(boundary + 2); + const data = chunk.split("\n").filter((line) => line.startsWith("data: ")).map((line) => line.slice(6)).join(""); + if (data === "") continue; + let full; + let frame; + try { + full = serverRequestSchema.parse(JSON.parse(data)); + frame = frameSchema.parse(full.payload); + } catch (error) { + console.error(`[apiproxy] dropping malformed SSE frame on ${path}:`, error); + continue; + } + this.onEnvelope(full); + yield { + rpcId: full.rpcId, + payload: frame + }; + } + } + } finally { + await reader.cancel().catch(() => void 0); + } + } + sessions = { + list: (payload, signal) => this.callUnary("session.list", payload, signal), + search: (payload, signal) => this.callUnary("session.search", payload, signal), + create: (payload, signal) => this.callUnary("session.create", payload, signal), + history: (payload, signal) => this.callUnary("session.history", payload, signal), + models: (payload, signal) => this.callUnary("session.models", payload, signal), + selectModel: (payload, signal) => this.callUnary("session.selectModel", payload, signal), + rename: (payload, signal) => this.callUnary("session.rename", payload, signal), + fork: (payload, signal) => this.callUnary("session.fork", payload, signal), + prompt: (payload, signal) => this.callUnary("session.prompt", payload, signal), + attachment: (payload, signal) => this.callUnary("session.attachment", payload, signal), + updateQueue: (payload, signal) => this.callUnary("session.updateQueue", payload, signal), + cancel: (payload, signal) => this.callUnary("session.cancel", payload, signal) + }; + subagents = { + list: (payload, signal) => this.callUnary("subagent.list", payload, signal), + history: (payload, signal) => this.callUnary("subagent.history", payload, signal), + prompt: (payload, signal) => this.callUnary("subagent.prompt", payload, signal), + interrupt: (payload, signal) => this.callUnary("subagent.interrupt", payload, signal) + }; + host = { + describe: (payload, signal) => this.callUnary("host.describe", payload, signal), + pickDirectory: (payload, signal) => this.callUnary("host.pickDirectory", payload, signal, "caller-signal-only"), + listDirectory: (payload, signal) => this.callUnary("host.listDirectory", payload, signal), + createDirectory: (payload, signal) => this.callUnary("host.createDirectory", payload, signal), + openPath: (payload, signal) => this.callUnary("host.openPath", payload, signal) + }; + workspace = { + list: (payload, signal) => this.callUnary("workspace.list", payload, signal), + create: (payload, signal) => this.callUnary("workspace.create", payload, signal), + rename: (payload, signal) => this.callUnary("workspace.rename", payload, signal), + delete: (payload, signal) => this.callUnary("workspace.delete", payload, signal), + insertBefore: (payload, signal) => this.callUnary("workspace.insertBefore", payload, signal), + insertSessionBefore: (payload, signal) => this.callUnary("workspace.insertSessionBefore", payload, signal), + archiveSession: (payload, signal) => this.callUnary("workspace.archiveSession", payload, signal) + }; + skills = { list: (payload, signal) => this.callUnary("skill.list", payload, signal) }; + agentPresets = { + list: (payload, signal) => this.callUnary("agentPreset.list", payload, signal), + select: (payload, signal) => this.callUnary("agentPreset.select", payload, signal), + read: (payload, signal) => this.callUnary("agentPreset.read", payload, signal), + copy: (payload, signal) => this.callUnary("agentPreset.copy", payload, signal), + openDocument: (payload, signal) => this.callUnary("agentPreset.openDocument", payload, signal), + remove: (payload, signal) => this.callUnary("agentPreset.remove", payload, signal) + }; + goals = { + create: (payload, signal) => this.callUnary("goal.create", payload, signal), + edit: (payload, signal) => this.callUnary("goal.edit", payload, signal), + pause: (payload, signal) => this.callUnary("goal.pause", payload, signal), + resume: (payload, signal) => this.callUnary("goal.resume", payload, signal), + complete: (payload, signal) => this.callUnary("goal.complete", payload, signal), + clear: (payload, signal) => this.callUnary("goal.clear", payload, signal) + }; + settings = { + describe: (payload, signal) => this.callUnary("settings.describe", payload, signal), + openDocument: (payload, signal) => this.callUnary("settings.openDocument", payload, signal), + update: (payload, signal) => this.callUnary("settings.update", payload, signal), + replace: (payload, signal) => this.callUnary("settings.replace", payload, signal), + mutate: (payload, signal) => this.callUnary("settings.mutate", payload, signal) + }; + credentials = { + describe: (payload, signal) => this.callUnary("credentials.describe", payload, signal), + set: (payload, signal) => this.callUnary("credentials.set", payload, signal), + unset: (payload, signal) => this.callUnary("credentials.unset", payload, signal) + }; + llm = { + providers: (payload, signal) => this.callUnary("llm.providers", payload, signal), + models: (payload, signal) => this.callUnary("llm.models", payload, signal), + discoverModels: (payload, signal) => this.callUnary("llm.discoverModels", payload, signal) + }; + events = { + mux: (payload, signal, onOpen) => this.openMux(payload, signal, onOpen), + host: (payload, signal, onOpen) => this.openHost(payload, signal, onOpen) + }; + async respond(message, signal) { + this.onEnvelope(message); + const response = await this.postJson("/api/respond", message, signal); + return rpcReceiptSchema.parse(await response.json()); + } + }; + //#endregion + //#region lib/types/client/random-uuid.js + /** Browser-safe UUID generation for client-side wire correlation. */ + /** + * Generate an RFC 4122 version 4 UUID without requiring a secure context. + * @returns a UUID backed by `crypto.getRandomValues()`, which browsers expose on insecure origins. + */ + function randomUuid() { + const bytes = globalThis.crypto.getRandomValues(new Uint8Array(16)); + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + view.setUint8(6, view.getUint8(6) & 15 | 64); + view.setUint8(8, view.getUint8(8) & 63 | 128); + const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join(""); + return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`; + } + //#endregion + //#region lib/types/client/fixture.js + /** The fake carrier mints like a real one (business code never mints). */ + function rpcRequest(payload) { + return { + rpcId: RpcId(randomUuid()), + payload + }; + } + function text(t) { + return [{ + type: "text", + text: t + }]; + } + function userMessage(content, source = { kind: "user" }) { + return createUserMessage({ + content, + source + }); + } + function assistantMessage(content, model = "fx-1") { + return createAssistantMessage({ + content, + source: { + provider: "fixture", + model + } + }); + } + function toolResultMessage(callId, content, isError) { + return createToolResultMessage({ + callId: CallId(callId), + content, + isError + }); + } + const MARKDOWN_FIXTURE = [ + "# Markdown fixture", + "", + "Assistant output renders **strong text**, *emphasis*, and `inline code`.", + "", + "- first item", + " - nested item", + "", + "| Area | State |", + "| --- | --- |", + "| history | rendered |", + "| streaming | stable |", + "", + "[DeepSeek](https://www.deepseek.com)", + "", + "```ts", + "const markdown = true", + "```" + ].join("\n"); + const USER_MARKDOWN_LITERAL = "用户字��:# �渲染 `code` [link](https://example.com)"; + /** + * SGR wrapper for the terminal output sample below: authoring the escapes as + * `\u001b` keeps literal control bytes out of this source file. + * @param code - the SGR parameter (an ANSI color or attribute number). + * @param body - the text the attribute applies to. + * @returns the body wrapped in the attribute and a reset. + */ + function sgr(code, body) { + return `\u001b[${code}m${body}\u001b[0m`; + } + /** + * Terminal output sample for fixture turn 66, authored to carry every feature + * the terminal card draws that turn 60's two prompt rows cannot reach: + * basic-16 SGR foreground runs (green, red, bright-black) that must resolve to + * `--dsw-*` tokens, a bold run, column-aligned table rows that must scroll + * rather than fold, more than DEFAULT_TERMINAL_MAX_LINES (16) lines so the + * height cap collapses the middle. The exit status is authored separately in + * TERMINAL_EXIT_STATUS and deliberately absent from this text: the real bash + * presenter CONSUMES its `[exit code: N]` marker out of the body, because a + * terminal card shows the exit as its own pill and leaving the marker in would + * render it twice (packages/shell/tool-bash/src/render.ts). + */ + const TERMINAL_OUTPUT_FIXTURE = [ + sgr(1, "Running 4 checks"), + `${sgr(32, "✓")} typecheck 1.82s`, + `${sgr(32, "✓")} lint 0.94s`, + `${sgr(32, "✓")} duplication 2.10s`, + `${sgr(31, "✗")} unit 8.41s`, + "", + sgr(90, "packages/client/ui-primitives/tests/terminal-block.client.spec.tsx"), + ` ${sgr(31, "FAIL")} caps output at the configured line budget`, + " expected 16 lines, received 24", + "", + "NAME LINES BRANCHES FUNCTIONS UNCOVERED", + "TerminalBlock.tsx 100% 100% 100% -", + "ansi.ts 100% 100% 100% -", + "clipboard.ts 100% 100% 100% -", + "CodeBlock.tsx 98.4% 96.2% 100% 41-43", + "highlight.ts 100% 100% 100% -", + "Pill.tsx 100% 100% 100% -", + "StateDot.tsx 100% 100% 100% -", + "markdown/Markdown.tsx 100% 100% 100% -", + "", + sgr(31, "1 of 4 checks failed") + ].join("\n"); + /** + * Exit status for each terminal sample, keyed by its output text. Authored + * alongside the sample rather than parsed back out of its trailing marker, + * which is the bash tool's own job and not something to reimplement here. + */ + const TERMINAL_EXIT_STATUS = { [TERMINAL_OUTPUT_FIXTURE]: { exitCode: 1 } }; + /** + * Structured grep result for the search sample (turn 67): matches grouped by + * file, authored inline because the client-side fixture cannot import the tool + * that produces the canonical value. `truncated` with a larger `total` than the + * retained match count exercises the search card's capped indicator; the file + * with more than CHAT_SEARCH_MAX_LINES rows exercises its head/tail height cap. + */ + const SEARCH_MATCHES_FIXTURE = [ + { + path: "packages/client/ui-primitives/src/SearchBlock.tsx", + matches: [ + { + lineNumber: 16, + line: "export const DEFAULT_SEARCH_MAX_LINES = 16" + }, + { + lineNumber: 138, + line: "export function SearchBlock(props: SearchBlockProps) {" + }, + { + lineNumber: 141, + line: " const [collapsed, setCollapsed] = useState>(() => new Set())" + } + ] + }, + { + path: "packages/client/ui-tool/src/client/tool/models/search-card-model.ts", + matches: [{ + lineNumber: 45, + line: "export const CHAT_SEARCH_MAX_LINES = 8" + }, { + lineNumber: 130, + line: "export function searchCardModel(block: ToolCallBlock): SearchCardModel | null {" + }] + }, + { + path: "packages/client/ui-tool/src/client/tool/toolviews/search-row.tsx", + matches: [ + { + lineNumber: 34, + line: "export function SearchRow({ toolName, block, inspect, t }: SearchRowProps) {" + }, + { + lineNumber: 36, + line: " const search = searchCardModel(block)" + }, + { + lineNumber: 56, + line: " search={search}" + }, + { + lineNumber: 78, + line: " yield ctx.slots.register({ name: 'tool.call.toolview', key: 'grep', locale: NS }, SearchRow)" + } + ] + } + ]; + /** + * The model-facing grep render text for the sample — what a UI without a search + * card shows, attached as the view's `content`. Mirrors the real grep + * presenter's shape (see formatGrepOutput in dsh-tool-fs-search): a + * `Found X of Y matches` header, the matches grouped under file headers with + * `Line N:` rows, then a spill-recovery footer. + */ + const SEARCH_MATCHES_TEXT = [ + "Found 9 of 42 matches", + "", + ...SEARCH_MATCHES_FIXTURE.map((file) => [file.path, ...file.matches.map((m) => `Line ${m.lineNumber}: ${m.line}`)].join("\n")), + "", + "(Full grep result stored at: fixture://spill/grep-66. Read it to see every match.)" + ].join("\n"); + /** + * Structured glob result for the search sample (turn 68): a flat path list, + * truncated with a larger `total` so the path card shows its capped indicator. + */ + const SEARCH_PATHS_FIXTURE = [ + "packages/client/ui-primitives/src/SearchBlock.tsx", + "packages/client/ui-primitives/src/SearchBlock.module.css", + "packages/client/ui-tool/src/client/tool/models/search-card-model.ts", + "packages/client/ui-tool/src/client/tool/toolviews/search-row.tsx", + "packages/client/ui-tool/tests/search-card.client.spec.tsx" + ]; + /** + * The model-facing glob render text — the newline-joined path list plus a + * spill-recovery footer, mirroring the real glob presenter's shape (see + * formatGlobOutput in dsh-tool-fs-search). + */ + const SEARCH_PATHS_TEXT = [ + ...SEARCH_PATHS_FIXTURE, + "", + "(Showing 5 of 23 paths. Full sorted result stored at: fixture://spill/glob-67. Read it to see every path.)" + ].join("\n"); + /** + * Read-card sample for the read turn: a WINDOW past an offset, so the line + * numbers start above 1 (the card's gutter keeps the file's own numbering) and + * `totalLines` exceeds the window (the card shows a "showing N of M" note). The + * fixture is client-side and cannot import the read tool, so the structured + * window is authored inline exactly as the tool would project it through + * `presentationMeta`. `lang` is a `ts` hint so the shiki path highlights it. + */ + const READ_SAMPLE_FIRST_LINE = 41; + const READ_SAMPLE_SOURCE = [ + "export interface ReadBlockProps {", + " label?: string | undefined", + " lines: readonly ReadBlockLine[]", + " totalLines: number", + " lang?: string | undefined", + " maxLines?: number | undefined", + " className?: string | undefined", + "}", + "", + "// A windowed read keeps the file line numbers in the gutter.", + "const marker = \"fixture read sample\"" + ]; + const READ_SAMPLE_LINES = READ_SAMPLE_SOURCE.map((text, index) => ({ + number: READ_SAMPLE_FIRST_LINE + index, + text + })); + const READ_SAMPLE_PATH = "packages/client/ui-primitives/src/ReadBlock.tsx"; + const READ_SAMPLE_TOTAL = 180; + const READ_SAMPLE_TEXT = READ_SAMPLE_SOURCE.map((text, index) => `${READ_SAMPLE_FIRST_LINE + index}: ${text}`).join("\n"); + /** + * The structured `web_search` result view for the web-search turn, authored inline + * because this client-side fixture cannot import the web tool that projects it. + * The sources exercise the citation list's features: a titled source with a + * snippet and a date, a source with no title (its hostname labels the link) and + * a snippet but no date, and a source with a title and a date but no snippet. + * `truncated` marks the capped indicator. The shape is the contract's own + * search view minus its wire discriminants. + */ + const WEB_SEARCH_RESULT = { + answer: "DeepSeek Harness is a plugin-based agent harness on vendored Cordis where **every capability is a plugin**.", + sources: [ + { + url: "https://github.com/deepseek-ai/deepseek-harness", + title: "DeepSeek Harness — plugin-based agent harness", + snippet: "Everything is a plugin: session, tools, agent-loop, and LLM adapters all mount on the same Cordis context.", + publishedAt: "2026-07-01" + }, + { + url: "https://www.deepseek.com/blog/harness-architecture", + snippet: "The capability-seam pattern splits each capability into interface, implementation, and consumer packages." + }, + { + url: "https://docs.deepseek.com/harness/plugins", + title: "Writing a harness plugin", + publishedAt: "2026-06-15" + } + ], + truncated: true + }; + /** The `web_fetch` result view for the web-fetch turn, authored inline for the same reason. */ + const WEB_FETCH_RESULT = { + url: "https://www.deepseek.com/blog/harness-architecture", + statusCode: 200, + truncated: false + }; + const DEEPSEEK_REASONING = { + efforts: [ + { + id: "off", + name: "Off" + }, + { + id: "high", + name: "High" + }, + { + id: "max", + name: "Max" + } + ], + defaultEffort: "high" + }; + const OPENAI_REASONING = { + efforts: [ + { + id: "off", + name: "Off" + }, + { + id: "medium", + name: "Medium" + }, + { + id: "high", + name: "High" + }, + { + id: "max", + name: "Max" + } + ], + defaultEffort: "medium" + }; + /** Catalog served by `session.models` and `llm.models` alike (fresh copies per call). */ + function fixtureModelGroups() { + return [{ + id: "deepseek-official", + name: "DeepSeek", + models: [{ + id: "deepseek-v4-flash", + name: "DeepSeek-V4-Flash", + description: "快速�应", + reasoning: DEEPSEEK_REASONING + }, { + id: "deepseek-v4-pro", + name: "DeepSeek-V4-Pro", + description: "��任务", + reasoning: DEEPSEEK_REASONING + }] + }, { + id: "openai", + name: "OpenAI", + models: [{ + id: "gpt-5", + name: "GPT-5", + reasoning: OPENAI_REASONING + }] + }]; + } + function sid(id) { + return id; + } + const FIXTURE_IMAGE_DATA = "iVBORw0KGgoAAAANSUhEUgAAAKAAAABaCAYAAAA/xl1SAAAAvklEQVR42u3SMQ0AAAjAMIyhELM4AAe8PD1qYFlk9cCXEAEDYkAwIAYEA2JAMCAGBANiQDAgBgQDYkAwIAYEA2JAMCAGBANiQDAgBgQDYkAwIAYEA2JAMCAGxIBCYEAMCAbEgGBADAgGxIBgQAwIBsSAYEAMCAbEgGBADAgGxIBgQAwIBsSAYEAMCAbEgGBADAgGxIAYEAyIAcGAGBAMiAHBgBgQDIgBwYAYEAyIAcGAGBAMiAHBgBgQDIgB4bYWLb6pnOb1xAAAAABJRU5ErkJggg=="; + const FIXTURE_IMAGE_REF = { + attachmentId: "fixture:image", + mediaType: "image/png", + bytes: 247, + width: 160, + height: 90, + name: "fixture-image.png" + }; + /** Deterministic provider billing attached to fixture assistant messages. */ + function fixtureUsage(turn, step) { + return { + inputTokens: 20 + turn % 5, + outputTokens: 8 + step, + cacheReadTokens: turn === 0 ? 0 : 80, + cacheWriteTokens: turn % 10 === 0 ? 4 : 0 + }; + } + /** fx-alpha history script: 75 turns (~150+ messages -> 4 pages at PAGE_MESSAGES=50), + * mixing reasoning blocks / tool call+result / context. */ + function buildAlphaLog() { + const events = []; + let time = Date.now() - 36e5; + const push = (e) => { + const seq = events.length; + const data = e["data"]; + const authored = e["type"] === "assistant/message" && data !== void 0 ? { + ...e, + data: { + ...data, + usage: fixtureUsage(data["turn"], data["step"]) + } + } : e; + events.push({ + seq, + time: time += 800, + ...authored + }); + return seq; + }; + push({ + type: "request/context", + data: { + provider: "deepseek-official", + model: "deepseek-v4-flash", + contextWindow: 128e3 + } + }); + for (let turn = 0; turn < 60; turn++) { + push({ + type: "turn/start", + data: { turn } + }); + const userSeq = push({ + type: "user/message", + surfaceOp: "append", + data: userMessage(text(turn === 59 ? USER_MARKDOWN_LITERAL : `问题 ${turn}:fixture 历�消�,用于翻页与渲染验收。`)) + }); + if (turn === 0) push({ + type: "session/title", + data: { + title: "Fixture 历�会�", + messageSeqs: [userSeq], + source: { kind: "fallback" } + } + }); + if (turn % 9 === 4) push({ + type: "user/message", + surfaceOp: "append", + data: userMessage(text(`[fixture] 上下文注入(turn ${turn})`), { + kind: "plugin", + plugin: "fixture" + }) + }); + push({ + type: "step/start", + data: { + turn, + step: 0 + } + }); + const withTool = turn % 5 === 2; + const withReasoning = turn % 3 === 1; + const blocks = []; + if (withReasoning) blocks.push({ + type: "reasoning", + text: `�考过程 ${turn}:这是一段�折�的 reasoning 内容。` + }); + blocks.push({ + type: "text", + text: turn === 59 ? MARKDOWN_FIXTURE : `回答 ${turn}:这是 fixture 生�的历�回�正文。` + }); + if (withTool) { + const callId = `fx-call-${turn}`; + blocks.push({ + type: "tool-call", + id: callId, + name: "echo", + arguments: `{"text":"turn ${turn}"}` + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step: 0, + message: assistantMessage(blocks) + } + }); + push({ + type: "tool/call", + data: { + turn, + step: 0, + callId, + name: "echo", + arguments: `{"text":"turn ${turn}"}` + } + }); + push({ + type: "tool/result", + surfaceOp: "append", + data: { + turn, + step: 0, + message: toolResultMessage(callId, text(`ECHO: TURN ${turn}`), turn % 25 === 12) + } + }); + push({ + type: "step/end", + data: { + turn, + step: 0 + } + }); + push({ + type: "step/start", + data: { + turn, + step: 1 + } + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step: 1, + message: assistantMessage(text(`工具结果已消化(turn ${turn})。`)) + } + }); + push({ + type: "step/end", + data: { + turn, + step: 1 + } + }); + } else { + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step: 0, + message: assistantMessage(blocks) + } + }); + push({ + type: "step/end", + data: { + turn, + step: 0 + } + }); + } + push({ + type: "turn/end", + data: { + turn, + reason: { kind: "completed" } + } + }); + } + const toolTurn = (turn, name, args, resultText) => { + const callId = `fx-call-${turn}`; + push({ + type: "turn/start", + data: { turn } + }); + push({ + type: "user/message", + surfaceOp: "append", + data: userMessage(text(`问题 ${turn}:${name} 样本。`)) + }); + push({ + type: "step/start", + data: { + turn, + step: 0 + } + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step: 0, + message: assistantMessage([{ + type: "tool-call", + id: callId, + name, + arguments: args + }]) + } + }); + push({ + type: "tool/call", + data: { + turn, + step: 0, + callId, + name, + arguments: args + } + }); + push({ + type: "tool/result", + surfaceOp: "append", + data: { + turn, + step: 0, + message: toolResultMessage(callId, text(resultText), false) + } + }); + push({ + type: "step/end", + data: { + turn, + step: 0 + } + }); + push({ + type: "turn/end", + data: { + turn, + reason: { kind: "completed" } + } + }); + }; + toolTurn(60, "fx-bash", "{\"command\":\"ls -la\\necho done\",\"cwd\":\"/tmp/fixture\"}", "total 2\ndrwxr-xr-x fixture\n-rw-r--r-- demo.txt"); + toolTurn(61, "fx-write", "{\"path\":\"notes/demo.txt\",\"content\":\"hello fixture\\n\"}", "wrote notes/demo.txt"); + toolTurn(62, "edit", "{\"file_path\":\"notes/demo.txt\",\"old_string\":\"hello\",\"new_string\":\"hello fixture\"}", "已编辑"); + toolTurn(63, "write", "{\"file_path\":\"notes/new-demo.txt\",\"content\":\"hello fixture\\n\"}", "已写入"); + toolTurn(64, "edit", "{\"file_path\":\"src/config.ts\",\"old_string\":\"const timeout = 30\",\"new_string\":\"const timeout = 60\"}", "已编辑"); + { + const turn = 65; + const callId = `fx-call-${turn}`; + const args = JSON.stringify({ + code: "const listing = await tools.bash({ command: \"ls notes\", description: \"List notes\" })\nconst demo = await tools.read({ file_path: \"notes/demo.txt\" })\nawait tools.read({ file_path: \"notes/missing.txt\" }).catch(() => \"tolerated\")\nreturn { listing, demo }", + description: "Read the notes files and summarize" + }); + push({ + type: "turn/start", + data: { turn } + }); + push({ + type: "user/message", + surfaceOp: "append", + data: userMessage(text(`问题 ${turn}:run_code 样本。`)) + }); + push({ + type: "step/start", + data: { + turn, + step: 0 + } + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step: 0, + message: assistantMessage([{ + type: "tool-call", + id: callId, + name: "run_code", + arguments: args + }]) + } + }); + push({ + type: "tool/call", + data: { + turn, + step: 0, + callId, + name: "run_code", + arguments: args + } + }); + const dispatchPair = (n, name, dispatchArgs, resultText, isError = false) => { + push({ + type: "tool/code-dispatch-start", + data: { + rootCallId: callId, + parentCallId: callId, + subCallId: `${callId}:code:${n}`, + name, + arguments: dispatchArgs + } + }); + push({ + type: "tool/code-dispatch", + data: { + rootCallId: callId, + parentCallId: callId, + subCallId: `${callId}:code:${n}`, + name, + arguments: dispatchArgs, + isError, + content: [{ + type: "text", + text: resultText + }] + } + }); + }; + dispatchPair(1, "bash", { + command: "ls notes", + description: "List notes" + }, "demo.txt\nnew-demo.txt"); + dispatchPair(2, "read", { file_path: "notes/demo.txt" }, "hello fixture\n"); + dispatchPair(3, "read", { file_path: "notes/missing.txt" }, "Error: ENOENT: notes/missing.txt not found", true); + push({ + type: "tool/result", + surfaceOp: "append", + data: { + turn, + step: 0, + message: toolResultMessage(callId, text("{\"listing\":\"demo.txt\\nnew-demo.txt\",\"demo\":\"hello fixture\\n\"}"), false) + } + }); + push({ + type: "step/end", + data: { + turn, + step: 0 + } + }); + push({ + type: "turn/end", + data: { + turn, + reason: { kind: "completed" } + } + }); + } + const fixtureTodos = [ + { + content: "梳�需求", + status: "completed" + }, + { + content: "实现 fixture 样本", + status: "in_progress" + }, + { + content: "跑��构建", + status: "in_progress" + }, + { + content: "�览器验收", + status: "pending" + } + ]; + toolTurn(66, "bash", "{\"command\":\"pnpm run check\",\"cwd\":\"/tmp/fixture/deep/nested\"}", TERMINAL_OUTPUT_FIXTURE); + toolTurn(67, "grep", "{\"pattern\":\"SEARCH_MAX_LINES\",\"path\":\"packages/client\"}", SEARCH_MATCHES_TEXT); + toolTurn(68, "glob", "{\"pattern\":\"**/SearchBlock*\",\"path\":\"packages/client\"}", SEARCH_PATHS_TEXT); + toolTurn(69, "read", `{"file_path":${JSON.stringify(READ_SAMPLE_PATH)},"offset":${READ_SAMPLE_FIRST_LINE}}`, READ_SAMPLE_TEXT); + toolTurn(70, "web_search", "{\"query\":\"deepseek harness architecture\"}", "Search results for deepseek harness architecture."); + toolTurn(71, "web_fetch", "{\"url\":\"https://www.deepseek.com/blog/harness-architecture\"}", "# Harness architecture\n\nEverything is a plugin."); + push({ + type: "turn/start", + data: { turn: 72 } + }); + push({ + type: "user/message", + surfaceOp: "append", + data: userMessage(text("问题 72:请完整列出全部一百��目。")) + }); + push({ + type: "step/start", + data: { + turn: 72, + step: 0 + } + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn: 72, + step: 0, + message: assistantMessage(text("�目 1:第一�。�目 2:第二�。�目 3:这一�写到一�被")) + } + }); + push({ + type: "step/end", + data: { + turn: 72, + step: 0 + } + }); + push({ + type: "turn/end", + data: { + turn: 72, + reason: { kind: "max-tokens" } + } + }); + push({ + type: "turn/start", + data: { turn: 73 } + }); + push({ + type: "user/message", + surfaceOp: "append", + data: userMessage([{ + type: "image", + attachment: FIXTURE_IMAGE_REF + }, ...text("历�用户图片")]) + }); + push({ + type: "step/start", + data: { + turn: 73, + step: 0 + } + }); + push({ + type: "assistant/message", + surfaceOp: "append", + data: { + turn: 73, + step: 0, + message: assistantMessage([...text("结构化模型图片:"), { + type: "image", + attachment: FIXTURE_IMAGE_REF + }], "fx-vision") + } + }); + push({ + type: "step/end", + data: { + turn: 73, + step: 0 + } + }); + push({ + type: "turn/end", + data: { + turn: 73, + reason: { kind: "completed" } + } + }); + toolTurn(74, "todo_write", JSON.stringify({ todos: fixtureTodos }), "Updated todo list: 1 pending, 2 in progress, 1 completed."); + const callIndex = events.length - 4; + const callTime = events[callIndex]?.time; + events.splice(callIndex + 1, 0, { + type: "todo/write", + time: callTime + 400, + data: { todos: fixtureTodos } + }); + events.forEach((e, i) => { + e.seq = i; + }); + return events; + } + /** Narrows a parsed-JSON field to string; fixture args are authored in-file, so non-strings only mean a typo here. */ + /* v8 ignore next -- the fallback arm is the same in-file-typo guard as the JSON.parse catch above. */ + const str = (value, fallback = "") => typeof value === "string" ? value : fallback; + /** Fixture presenter registry (mirrors host viewFor): pure derivation, undefined = no view. */ + function presentCall(name, argsRaw) { + let args; + try { + args = JSON.parse(argsRaw); + } catch { + /* v8 ignore next 2 -- defensive: fixture args are authored in-file as valid JSON; only an in-file typo could reach the catch. */ + return; + } + switch (name) { + case "fx-bash": + case "bash": return { + card: "terminal", + title: str(args.command), + cwd: str(args.cwd, "/tmp/fixture"), + description: "fixture 终端样本" + }; + case "fx-write": return { + card: "diff", + title: `Write ${str(args.path)}`, + diffs: [{ + path: str(args.path), + oldText: null, + newText: str(args.content) + }] + }; + case "read": return { + card: "generic", + title: `Read ${str(args.file_path)}`, + kind: "read", + locations: [{ path: str(args.file_path) }] + }; + case "edit": + if (str(args.file_path) === "src/config.ts") return { + card: "diff", + title: `Edit ${str(args.file_path)}`, + diffs: [{ + path: str(args.file_path), + oldText: "const timeout = 30", + newText: "const timeout = 60" + }, { + path: str(args.file_path), + oldText: "retries: 1", + newText: "retries: 3" + }] + }; + return { + card: "diff", + title: `Edit ${str(args.file_path)}`, + diffs: [{ + path: str(args.file_path), + oldText: str(args.old_string), + newText: str(args.new_string) + }] + }; + case "write": return { + card: "diff", + title: `Write ${str(args.file_path)}`, + diffs: [{ + path: str(args.file_path), + oldText: null, + newText: str(args.content) + }] + }; + case "grep": return { + card: "generic", + title: `Grep ${str(args.pattern)}`, + kind: "search", + rawInput: args + }; + case "glob": return { + card: "generic", + title: `Glob ${str(args.pattern)}`, + kind: "search", + rawInput: args + }; + case "web_search": return { + card: "generic", + title: `Search ${str(args.query)}`, + kind: "search", + rawInput: args + }; + case "web_fetch": return { + card: "generic", + title: `Fetch ${str(args.url)}`, + kind: "fetch", + rawInput: args + }; + default: return; + } + } + function presentResult(name, argsRaw, resultText) { + const call = presentCall(name, argsRaw); + if (call === void 0) return void 0; + if (name === "grep") return { + card: "search", + shape: "matches", + files: SEARCH_MATCHES_FIXTURE, + truncated: true, + total: 42 + }; + if (name === "glob") return { + card: "search", + shape: "paths", + paths: SEARCH_PATHS_FIXTURE, + truncated: true, + total: 23 + }; + if (name === "read") return { + card: "read", + path: READ_SAMPLE_PATH, + offset: READ_SAMPLE_FIRST_LINE, + lines: READ_SAMPLE_LINES, + totalLines: READ_SAMPLE_TOTAL, + lang: "ts", + content: text(resultText) + }; + if (name === "web_search") return { + card: "web", + kind: "search", + ...WEB_SEARCH_RESULT + }; + if (name === "web_fetch") return { + card: "web", + kind: "fetch", + ...WEB_FETCH_RESULT + }; + switch (call.card) { + case "terminal": return { + card: "terminal", + output: resultText, + ...TERMINAL_EXIT_STATUS[resultText] ?? { exitCode: 0 } + }; + case "diff": return { + card: "diff", + diffs: call.diffs + }; + case "generic": return { + card: "generic", + content: text(resultText) + }; + } + } + /** Host-side viewFor mirror: tool/call presents from its own args; tool/result back-scans the log for the paired call. */ + function viewFor(event, log) { + if (event.type === "tool/call") { + const view = presentCall(event.data.name, event.data.arguments); + return view === void 0 ? void 0 : { + for: "call", + view + }; + } + if (event.type === "tool/result") { + const callId = String(event.data.message.source.callId); + for (let i = log.length - 1; i >= 0; i--) { + const candidate = log[i]; + /* v8 ignore next -- dense-array guard: i stays within [0, log.length), + so the undefined arm needs a sparse log no code path builds. */ + if (candidate !== void 0 && candidate.type === "tool/call" && String(candidate.data.callId) === callId) { + const resultText = event.data.message.content[0].content.map((b) => b.type === "text" ? b.text : "").join(""); + const view = presentResult(candidate.data.name, candidate.data.arguments, resultText); + return view === void 0 ? void 0 : { + for: "result", + view + }; + } + } + return; + } + } + /** + * Fixture parallel of the plan unit's double-event fold: `command/run` + * records named `plan` with recorded input set the wanted target (`off` → + * false, else true); `plan/mode` commits and clears it. `wanted` is exposed + * for the prompt boundary (the fixture's step/start parallel). + */ + function foldPlan(log) { + let active = false; + let wanted = null; + for (const event of log) { + const item = event; + if (item.type === "command/run" && item.data?.["name"] === "plan") { + const args = item.data["args"]; + if (typeof args !== "string") continue; + wanted = args.trim() !== "off"; + } else if (item.type === "plan/mode") { + active = item.data?.["active"] === true; + wanted = null; + } + } + return { + active, + pending: wanted !== null && wanted !== active, + wanted + }; + } + /** The plan projection's wire view over the full log. */ + function planViewOf(log) { + const plan = foldPlan(log); + return { + active: plan.active, + pending: plan.pending + }; + } + /** Fixture parallel of the host's projection units: whole current values per key over the full log. */ + /** Fixture preset table (the host PermissionPresetService defaults). */ + const PERMISSION_PRESETS = { + "workspace-write": { + sandbox: "workspace-write", + approval: "ask", + description: "Write inside the workspace and permitted temporary directories; wider retries require approval." + }, + "danger-full-access": { + sandbox: "danger-full-access", + approval: "never", + description: "Full file access without approval prompts." + } + }; + /** Host permissions-unit parallel: fold the three knob events, derive the select over the fixture defaults. */ + function permissionSelectOf(log) { + let preset = null; + let sandbox = "workspace-write"; + let approval = "ask"; + for (const event of log) { + const item = event; + if (item.type === "permission/preset") preset = item.data["preset"]; + else if (item.type === "sandbox/mode") sandbox = item.data["mode"]; + else if (item.type === "approval/policy") approval = item.data["policy"]; + } + const matches = (spec) => spec.sandbox === sandbox && spec.approval === approval; + let currentValue = "custom"; + const folded = preset === null ? void 0 : PERMISSION_PRESETS[preset]; + if (preset !== null && folded !== void 0 && matches(folded)) currentValue = preset; + else for (const [name, spec] of Object.entries(PERMISSION_PRESETS)) if (matches(spec)) { + currentValue = name; + break; + } + return { + options: [...Object.entries(PERMISSION_PRESETS).map(([value, spec]) => ({ + value, + name: value, + description: spec.description + })), ...currentValue === "custom" ? [{ + value: "custom", + name: "Custom", + description: "Current sandbox and approval settings do not match a preset." + }] : []], + currentValue + }; + } + /** Read one provider usage sample from either durable carrier. */ + function usageSampleOf(event) { + const item = event; + const usage = item.type === "assistant/chunk" && item.data.chunk?.type === "usage" ? item.data.chunk.usage : item.type === "assistant/message" ? item.data.usage : void 0; + return usage === void 0 || item.data.turn === void 0 || item.data.step === void 0 ? void 0 : { + turn: item.data.turn, + step: item.data.step, + usage + }; + } + /** Fixture parallel of token-meter's last-sample-replacing usage projection. */ + function tokenUsageOf(log) { + const totals = { + uncachedInputTokens: 0, + outputTokens: 0, + cacheReadTokens: 0, + cacheWriteTokens: 0 + }; + let last = null; + for (const event of log) { + const sample = usageSampleOf(event); + if (sample === void 0) continue; + const buckets = { + uncachedInputTokens: sample.usage.inputTokens, + outputTokens: sample.usage.outputTokens, + cacheReadTokens: sample.usage.cacheReadTokens ?? 0, + cacheWriteTokens: sample.usage.cacheWriteTokens ?? 0 + }; + const previous = last?.turn === sample.turn && last.step === sample.step ? last.buckets : void 0; + totals.uncachedInputTokens += buckets.uncachedInputTokens - (previous?.uncachedInputTokens ?? 0); + totals.outputTokens += buckets.outputTokens - (previous?.outputTokens ?? 0); + totals.cacheReadTokens += buckets.cacheReadTokens - (previous?.cacheReadTokens ?? 0); + totals.cacheWriteTokens += buckets.cacheWriteTokens - (previous?.cacheWriteTokens ?? 0); + last = { + turn: sample.turn, + step: sample.step, + buckets + }; + } + return totals; + } + /** Fixture parallel of session-stats' whole-log counting and wall-time fold. */ + function sessionStatsOf(log) { + const value = { + turns: 0, + steps: 0, + llmMs: 0, + toolMs: 0, + ttftMs: 0, + ttftSteps: 0, + decodeMs: 0, + decodeTokens: 0 + }; + let lastTurn = null; + let openStep = null; + const pendingCalls = /* @__PURE__ */ new Map(); + for (const event of log) switch (event.type) { + case "step/start": + openStep = { + turn: event.data.turn, + step: event.data.step, + startTime: event.time, + firstTokenTime: null + }; + break; + case "assistant/chunk": + if (openStep !== null && openStep.turn === event.data.turn && openStep.step === event.data.step && openStep.firstTokenTime === null && isTokenDelta(event.data.chunk)) openStep.firstTokenTime = event.time; + break; + case "assistant/message": + if (openStep === null || openStep.turn !== event.data.turn || openStep.step !== event.data.step) break; + value.llmMs += Math.max(0, event.time - openStep.startTime); + if (openStep.firstTokenTime !== null) { + value.ttftMs += Math.max(0, openStep.firstTokenTime - openStep.startTime); + value.ttftSteps += 1; + const outputTokens = event.data.usage?.outputTokens; + if (typeof outputTokens === "number" && Number.isFinite(outputTokens) && outputTokens >= 0) { + value.decodeMs += Math.max(0, event.time - openStep.firstTokenTime); + value.decodeTokens += outputTokens; + } + } + openStep = null; + break; + case "tool/call": + pendingCalls.set(event.data.callId, event.time); + break; + case "tool/result": { + const callId = event.data.message.source.callId; + const dispatched = pendingCalls.get(callId); + if (dispatched === void 0) break; + pendingCalls.delete(callId); + value.toolMs += Math.max(0, event.time - dispatched); + break; + } + case "step/end": + if (event.data.turn !== lastTurn) { + value.turns += 1; + lastTurn = event.data.turn; + } + value.steps += 1; + openStep = null; + break; + case "turn/end": + pendingCalls.clear(); + break; + default: break; + } + return value; + } + /** Fixed token-meter heuristic constants mirrored by this client-only fixture. */ + const CHARS_PER_TOKEN = 4; + const BLOCK_OVERHEAD = 4; + const ROLE_OVERHEAD = 4; + /** Price fixture content with token-meter's fixed-density heuristic. */ + function estimateFixtureContent(blocks) { + const densityPrice = (value) => Math.ceil(value.length / CHARS_PER_TOKEN); + return blocks.reduce((tokens, block) => { + if (block.type === "text" || block.type === "reasoning") return tokens + densityPrice(block.text) + BLOCK_OVERHEAD; + if (block.type === "tool-call") return tokens + densityPrice(block.name) + densityPrice(block.arguments) + BLOCK_OVERHEAD; + if (block.type === "tool-result") return tokens + estimateFixtureContent(block.content) + BLOCK_OVERHEAD; + return tokens + densityPrice(JSON.stringify(block)) + BLOCK_OVERHEAD; + }, 0); + } + /** Fixture parallel of token-meter's heuristic context-composition projection. */ + function contextBreakdownOf(log) { + const headerEvent = log.findLast((event) => event.type === "request/header"); + const header = headerEvent === void 0 ? void 0 : headerEvent.data.header; + let messageTokens = 0; + for (const seq of foldSurface(log).nodes) { + const event = log[seq]; + if (event === void 0) continue; + const message = deriveEventMessage(event); + if (message !== null) messageTokens += estimateFixtureContent(message.content) + ROLE_OVERHEAD; + } + return { + systemTokens: header?.system === void 0 ? 0 : Math.ceil(header.system.length / CHARS_PER_TOKEN) + ROLE_OVERHEAD, + toolsTokens: header?.tools === void 0 || header.tools.length === 0 ? 0 : Math.ceil(JSON.stringify(header.tools).length / CHARS_PER_TOKEN) + BLOCK_OVERHEAD, + messageTokens + }; + } + /** Latest log-only route context, or undefined before any request ran. */ + function lastRequestContext(log) { + const event = log.findLast((item) => item.type === "request/context"); + return event === void 0 ? void 0 : event.data; + } + /** + * Fixture parallel of token-meter's request-pressure projection: the last + * provider-reported prompt size paired with the last recorded capacity. The + * two need not come from one request — see the token-meter README. The host's + * `projectedTokens` is deliberately absent: reproducing it would mean + * reimplementing the estimator client-side, and every consumer falls back to + * the bare sample, so a fixture-driven view simply lags a compaction the way + * the projection did before that field existed. + */ + function contextPressureOf(log) { + let pressureTokens; + for (const event of log) { + const sample = usageSampleOf(event); + if (sample === void 0) continue; + pressureTokens = sample.usage.inputTokens + (sample.usage.cacheReadTokens ?? 0) + (sample.usage.cacheWriteTokens ?? 0); + } + const contextWindow = lastRequestContext(log)?.contextWindow; + return { + ...pressureTokens === void 0 ? {} : { pressureTokens }, + ...contextWindow === void 0 ? {} : { contextWindow } + }; + } + function projectionValuesOf(log) { + const values = {}; + const titleEvent = log.findLast((item) => item.type === "session/title"); + if (titleEvent !== void 0) values["title"] = titleEvent.data.title; + values["todos"] = backscanTodos(log) ?? null; + values["permissions"] = permissionSelectOf(log); + values["plan"] = planViewOf(log); + values["goal"] = backscanGoal(log); + values["tokenUsage"] = tokenUsageOf(log); + values["contextPressure"] = contextPressureOf(log); + values["contextBreakdown"] = contextBreakdownOf(log); + values["sessionStats"] = sessionStatsOf(log); + values["imageLimits"] = { + maxImageBytes: 5 * 1024 * 1024, + maxImagesPerMessage: 20, + maxMessageImageBytes: 100 * 1024 * 1024, + maxImagePixels: 4e7, + mediaTypes: [ + "image/png", + "image/jpeg", + "image/webp", + "image/gif" + ] + }; + return values; + } + /** Host push-frame parallel: emit one session/projection frame per key the given event advanced. */ + function projectionFramesOf(id, log, event) { + const type = event.type; + const frames = []; + if (usageSampleOf(event) !== void 0) frames.push({ + type: "session/projection", + sessionId: id, + key: "tokenUsage", + value: tokenUsageOf(log), + seq: event.seq + }, { + type: "session/projection", + sessionId: id, + key: "contextPressure", + value: contextPressureOf(log), + seq: event.seq + }); + if (type === "request/context") frames.push({ + type: "session/projection", + sessionId: id, + key: "contextPressure", + value: contextPressureOf(log), + seq: event.seq + }); + if (type === "request/header" || type === "user/message" || type === "assistant/message" || type === "tool/result") frames.push({ + type: "session/projection", + sessionId: id, + key: "contextBreakdown", + value: contextBreakdownOf(log), + seq: event.seq + }); + if (type === "assistant/message" || type === "tool/result" || type === "step/end") frames.push({ + type: "session/projection", + sessionId: id, + key: "sessionStats", + value: sessionStatsOf(log), + seq: event.seq + }); + if (frames.length > 0) return frames; + if (type === "session/title") { + const values = projectionValuesOf(log); + /* v8 ignore next -- the advancing title event is in the log, so the key is present. */ + if (!Object.hasOwn(values, "title")) return []; + return [{ + type: "session/projection", + sessionId: id, + key: "title", + value: values["title"], + seq: event.seq + }]; + } + if (type === "goal/change") return [{ + type: "session/projection", + sessionId: id, + key: "goal", + value: backscanGoal(log), + seq: event.seq + }]; + if (type === "todo/write" || type === "turn/start") return [{ + type: "session/projection", + sessionId: id, + key: "todos", + value: backscanTodos(log) ?? null, + seq: event.seq + }]; + if (type === "permission/preset" || type === "sandbox/mode" || type === "approval/policy") return [{ + type: "session/projection", + sessionId: id, + key: "permissions", + value: permissionSelectOf(log), + seq: event.seq + }]; + const commandData = event; + if (type === "plan/mode" || type === "command/run" && commandData.data.name === "plan" && typeof commandData.data.args === "string") return [{ + type: "session/projection", + sessionId: id, + key: "plan", + value: planViewOf(log), + seq: event.seq + }]; + return []; + } + /** + * Message-boundary paging (mirrors the host's paging contract): count + * maxMessages messages + * backwards from end, cut at a turn/start boundary. + Entries carry pagination-time views + * (the host analogue computes viewFor per entry at page time). */ + function pageOf(log, beforeSeq, maxMessages) { + const end = beforeSeq === void 0 ? log.length : Math.max(0, Math.min(beforeSeq, log.length)); + let start = 0; + let messages = 0; + for (let i = end - 1; i >= 0; i--) { + const event = log[i]; + /* v8 ignore next -- dense-array guard: log seqs are array indexes, i stays within [0, end). */ + if (event === void 0) break; + if (event.type === "user/message" || event.type === "assistant/message") messages++; + if (event.type === "turn/start" && messages >= maxMessages) { + start = i; + break; + } + } + return { + events: log.slice(start, end).map((event) => { + const view = viewFor(event, log); + return view === void 0 ? { event } : { + event, + view + }; + }), + hasMore: start > 0 + }; + } + /** Fixture mirror of host session-scoped attachment authorization. */ + function logReferencesAttachment(log, attachmentId) { + const visit = (value) => { + if (Array.isArray(value)) return value.some(visit); + if (typeof value !== "object" || value === null) return false; + const record = value; + if (record.attachmentId === attachmentId) return true; + return Object.values(record).some(visit); + }; + return log.some((event) => visit(event.data)); + } + /** Fixture mirror of first-party message extraction used by session-query. */ + function searchBlockText(block) { + switch (block.type) { + case "text": return [block.text]; + case "reasoning": return []; + case "tool-call": return [block.name, block.arguments]; + case "tool-result": return block.content.flatMap(searchBlockText); + default: return []; + } + } + /** One current-surface user/assistant document, if searchable. */ + function searchEventText(event) { + const content = event.type === "user/message" ? event.data.content : event.type === "assistant/message" ? event.data.message.content : void 0; + if (content === void 0) return ""; + return content.flatMap(searchBlockText).map((part) => part.trim()).filter(Boolean).join("\n"); + } + /** + * Browser-safe approximation of SQLite FTS5 unicode61 token boundaries. + * Keeping phrase matching token-based prevents the development fixture from + * promising arbitrary within-token substring behavior that production lacks. + */ + function searchTokenSpans(value) { + const text = value.replace(/\s+/gu, " ").trim(); + const characters = Array.from(text); + const tokens = []; + let start; + let raw = ""; + const flush = (end) => { + if (start !== void 0) { + const folded = raw.normalize("NFD").replace(/\p{M}+/gu, "").toLowerCase(); + if (folded !== "") tokens.push({ + value: folded, + start, + end + }); + } + start = void 0; + raw = ""; + }; + for (let index = 0; index < characters.length; index++) { + const character = characters[index]; + const tokenBase = character.normalize("NFD").replace(/\p{M}+/gu, ""); + if (tokenBase === "") { + if (start !== void 0) raw += character; + continue; + } + if (/^[\p{L}\p{N}\p{Co}]+$/u.test(tokenBase)) { + start ??= index; + raw += character; + } else flush(index); + } + flush(characters.length); + return { + text, + tokens + }; + } + /** Count exact contiguous token-phrase occurrences and retain the first display span. */ + function phraseMatch(document, phrase) { + if (phrase.length === 0 || phrase.length > document.length) return { + count: 0, + start: 0, + end: 0 + }; + let count = 0; + let firstStart = 0; + let firstEnd = 0; + for (let start = 0; start <= document.length - phrase.length; start++) { + if (!phrase.every((token, offset) => document[start + offset]?.value === token)) continue; + count++; + if (count === 1) { + firstStart = document[start]?.start ?? 0; + firstEnd = document[start + phrase.length - 1]?.end ?? firstStart; + } + } + return { + count, + start: firstStart, + end: firstEnd + }; + } + /** Match-centered fixture excerpt, bounded by Unicode code points for the sidebar. */ + function searchSnippet(value, matchStart, matchEnd) { + const characters = Array.from(value); + if (characters.length <= 120) return value; + const boundedStart = Math.min(Math.max(0, matchStart), characters.length - 1); + const boundedEnd = Math.min(characters.length, Math.max(boundedStart + 1, matchEnd)); + const center = Math.floor((boundedStart + boundedEnd) / 2); + let start = Math.min(characters.length - 118, Math.max(0, center - Math.floor(118 / 2))); + let end = start + 118; + if (start === 0) end = 119; + else if (end === characters.length) start = characters.length - 119; + return `${start > 0 ? "…" : ""}${characters.slice(start, end).join("")}${end < characters.length ? "…" : ""}`; + } + /** Mirrors `packages/session-query/session-query-sqlite/src/index.ts`; update both together. */ + function compareSearchCandidates(a, b) { + if (a.matchCount !== b.matchCount) return b.matchCount - a.matchCount; + if (a.documentLength !== b.documentLength) return a.documentLength - b.documentLength; + if (a.time !== b.time) return b.time - a.time; + if (a.sessionId !== b.sessionId) return a.sessionId < b.sessionId ? -1 : 1; + return b.seq - a.seq; + } + /** + * Current plan projection over the full log (host parallel: latest todo/write + * with no later turn/start; a new turn retires the previous plan). + */ + function backscanTodos(log) { + for (let i = log.length - 1; i >= 0; i--) { + const event = log[i]; + if (event === void 0) continue; + if (event.type === "turn/start") return void 0; + if (event.type === "todo/write") return event.data.todos; + } + } + /** + * Current goal projection over the full log (host parallel: the GoalService + * unit's last-wins fold of goal/change whole values; clear returns null). + */ + function backscanGoal(log) { + for (let i = log.length - 1; i >= 0; i--) { + const event = log[i]; + if (event === void 0 || event.type !== "goal/change" || event.data === void 0) continue; + const change = event.data; + if (change.operation === "clear") return null; + return { + goal: change.goal, + roundsStarted: change.roundsStarted, + createdAt: change.createdAt, + updatedAt: change.updatedAt + }; + } + return null; + } + /** Inbox pump shared by both stream generators (FrameQueue pattern: ONE abort listener hung + * outside the loop — a per-iteration {once:true} listener never fires for non-final rounds and + * piles up for the stream's lifetime). breakNow force-ends the stream without the + * client's signal (timing hook: simulated connection loss). */ + var FxInbox = class { + inbox = []; + wake = null; + broken = false; + push(envelope) { + this.inbox.push(envelope); + this.wake?.(); + } + breakNow() { + this.broken = true; + this.wake?.(); + } + /** Read through a method: breakNow()/abort flip state across yields, so narrowing from the loop condition must not stick. */ + isLive(signal) { + return !signal.aborted && !this.broken; + } + async *drain(signal) { + const onAbort = () => this.wake?.(); + signal.addEventListener("abort", onAbort); + try { + while (this.isLive(signal)) { + while (this.inbox.length > 0) yield this.inbox.shift(); + if (!this.isLive(signal)) break; + await new Promise((resolve) => { + this.wake = resolve; + }); + this.wake = null; + } + } finally { + signal.removeEventListener("abort", onAbort); + } + } + }; + /** Build the fixture's legacy API and Remote RPC faces over one state graph. */ + function createFixtureWorld(options) { + const sessions = options.empty ? [] : [ + { + sessionId: sid("fx-alpha"), + updatedAt: Date.now(), + running: true, + blank: false, + cwd: "/tmp/fixture" + }, + { + sessionId: sid("fx-beta"), + updatedAt: Date.now() - 6e4, + running: false, + blank: false, + parentSessionId: sid("fx-alpha"), + cwd: "/tmp/fixture" + }, + { + sessionId: sid("fx-gamma"), + updatedAt: Date.now() - 12e4, + running: false, + blank: false, + cwd: "/tmp/fixture" + } + ]; + const logs = new Map([[sid("fx-alpha"), buildAlphaLog()]]); + const modelSelections = new Map(sessions.map((session) => [session.sessionId, { + provider: "deepseek-official", + model: "deepseek-v4-flash" + }])); + const attachments = new Map([[String(FIXTURE_IMAGE_REF.attachmentId), { + attachment: FIXTURE_IMAGE_REF, + data: FIXTURE_IMAGE_DATA + }]]); + /** Credential store double: set/unset flip the describe badge, values never read back. */ + const fixtureCredentials = new Map([["DEEPSEEK_API_KEY", true]]); + /** + * Preset compositions the fixture serves. Held as state rather than + * constants so the settings editor's save and delete are exercisable: the + * roster a GUI journey sees after writing is the text it wrote. + */ + const fixturePresets = new Map([ + ["standard", { + trust: "system", + content: "- id: tool-bash\n name: '@deepseek-ai/dsh-tool-bash'\n" + }], + ["minimal", { + trust: "system", + content: "- id: tool-web-search\n name: '@deepseek-ai/dsh-tool-web-search'\n" + }], + ["my-agent", { + trust: "user", + content: "- id: tool-read\n name: '@deepseek-ai/dsh-tool-read'\n" + }] + ]); + let fixtureDefaultPreset = "standard"; + const nextTurn = new Map([[sid("fx-alpha"), 75]]); + let nextSession = 1; + let nextRpc = 1; + let attachedSessions = options.empty ? 0 : 1; + const wid = (raw) => raw; + const fixtureEpoch = (/* @__PURE__ */ new Date(Date.now() - 3e5)).toISOString(); + const workspaces = options.empty ? [] : [{ + workspaceId: wid("fx-ws-fixture"), + path: "/tmp/fixture", + title: "fixture", + sessionIds: [ + sid("fx-alpha"), + sid("fx-beta"), + sid("fx-gamma") + ], + createdAt: fixtureEpoch, + updatedAt: fixtureEpoch + }]; + let nextWorkspace = 1; + const archivedSessionIds = []; + const FIXTURE_HOME = "/home/fixture"; + const directoryTree = new Map([ + ["/", ["home"]], + ["/home", ["fixture"]], + [FIXTURE_HOME, [ + "Documents", + "Downloads", + ".config" + ]], + [`${FIXTURE_HOME}/Documents`, [ + "project", + "deepseek-iOS", + "deepseek-android", + "deepseek-platform", + "deepseek-web", + "deepseek-harness", + "deepseek-app", + "deepseek-landing-blog" + ]] + ]); + const childrenOf = (path) => { + const known = directoryTree.get(path); + if (known !== void 0) return known; + const parent = path.slice(0, path.lastIndexOf("/")) || "/"; + const name = path.slice(path.lastIndexOf("/") + 1); + return directoryTree.get(parent)?.includes(name) === true ? [] : void 0; + }; + const crumbsOf = (path) => { + const crumbs = [{ + name: "/", + path: "/", + hidden: false + }]; + let acc = ""; + for (const segment of path.split("/").filter(Boolean)) { + acc += `/${segment}`; + crumbs.push({ + name: segment, + path: acc, + hidden: false + }); + } + return crumbs; + }; + const mint = () => RpcId(`fx-rpc-${nextRpc++}`); + /** Resident pending approval (stable rpcId: every mux open replays the same id while unanswered, matching host replay semantics). */ + const pendingApprovalRpcId = mint(); + const pendingApprovalId = "fx-approval-1"; + /** Cleared once answered through respond; replay stops and approval/resolved is broadcast. */ + let approvalPending = true; + const pendingQuestionRpcId = mint(); + let questionPending = true; + const fixtureQuestions = [ + { + id: "harness-profile", + header: "�好", + question: "你现在更想招哪类 Agent/Harness 候选人?", + options: [ + { + label: "工程�地型 (Recommended)", + description: "更看�能直接� runtime�tool executor�sandbox�trace 和线上问题排查。" + }, + { + label: "研究潜力型", + description: "更看� Agent �解�训练评测�路和长期�长空间。" + }, + { + label: "�衡型", + description: "�时�求工程能力和 Agent 认知,但�能筛选门槛更高。" + } + ] + }, + { + id: "work-mode", + header: "方�", + question: "你希望候选人优先展示哪�工作方�?", + options: [{ + label: "先��型原型 (Recommended)", + description: "用��行结果尽快验�关键�设。" + }, { + label: "先写完整设计", + description: "先收敛边界��议和风险,�开始实现。" + }] + }, + { + id: "signals", + header: "信�", + question: "哪些�试信�最��?", + detail: "按当�招�目标选择;跳过则视为�设�好。", + multiSelect: true, + options: [ + { label: "系统设计" }, + { label: "代�质�" }, + { label: "Agent 产�判断" } + ] + } + ]; + const muxConns = /* @__PURE__ */ new Set(); + const hostConns = /* @__PURE__ */ new Set(); + const emitMux = (frame) => { + for (const conn of muxConns) conn.push({ + rpcId: mint(), + payload: frame + }); + }; + const emitHost = (frame) => { + for (const conn of hostConns) conn.push({ + rpcId: mint(), + payload: frame + }); + }; + /** OK response echoing the caller's rpcId (contract: responses always backfill, never mint). */ + function ok(request, value) { + return Promise.resolve({ + rpcId: request.rpcId, + result: { + ok: true, + value + } + }); + } + function err(request, error) { + return Promise.resolve({ + rpcId: request.rpcId, + result: { + ok: false, + error + } + }); + } + const summaryOf = (id) => sessions.find((s) => s.sessionId === id); + /** Shared session guard for sessionId-addressed catalog routes: the error + * response when the session is unknown, undefined when it exists. */ + const requireSession = (request) => { + if (summaryOf(request.payload.sessionId) !== void 0) return void 0; + return err(request, { + code: "session-not-found", + message: `no session ${request.payload.sessionId}`, + details: { sessionId: request.payload.sessionId } + }); + }; + const setRunning = (id, running) => { + const summary = summaryOf(id); + if (summary === void 0 || summary.running === running) return; + summary.running = running; + emitHost({ + type: "host/session-status", + sessionId: id, + running + }); + }; + const logOf = (id) => { + let log = logs.get(id); + if (log === void 0) { + log = []; + logs.set(id, log); + } + return log; + }; + const append = (id, e) => { + const log = logOf(id); + const event = { + seq: log.length, + time: Date.now(), + ...e + }; + log.push(event); + const view = viewFor(event, log); + /* v8 ignore next 3 -- the view-present arm needs a live tool/call emission, + but the fixture replay produces text-only turns; view vocabulary is + exercised through the history samples (turns 60-62). */ + emitMux(view === void 0 ? { + type: "session/event", + sessionId: id, + event + } : { + type: "session/event", + sessionId: id, + event, + view + }); + for (const frame of projectionFramesOf(id, log, event)) emitMux(frame); + }; + /** Append one durable goal/change (host GoalService parallel). */ + const appendGoalChange = (id, change) => { + const log = logOf(id); + append(id, { + type: "goal/change", + data: change + }); + return backscanGoal(log); + }; + const goalFailure = (message) => ({ + ok: false, + error: { + code: "internal", + message, + details: {} + } + }); + const requireGoalSession = (id) => summaryOf(id) === void 0 ? { + ok: false, + error: { + code: "session-not-found", + message: `no session ${id}`, + details: { sessionId: id } + } + } : void 0; + /** Canonical fixture implementation of the generated Commands Remote contract. */ + const commandRemotes = { + list(id) { + const missing = requireGoalSession(id); + if (missing !== void 0) return missing; + return { + ok: true, + value: [ + { + name: "compact", + description: "fixture:压缩当�会�上下文" + }, + { + name: "echo", + description: "fixture:回显�数", + input: { hint: "text to echo" } + }, + { + name: "goal", + description: "set or view the goal for a long-running task", + input: { hint: "" } + }, + { + name: "permission", + description: "Switch the permission preset (sandbox mode + approval policy)", + input: { hint: "" } + }, + { + name: "plan", + description: "Enter or leave plan mode", + input: { hint: "[off|message]" } + } + ] + }; + }, + execute(id, line) { + const missing = requireGoalSession(id); + if (missing !== void 0) return missing; + const match = /^\/(\S+)((?:\s.*)?)$/.exec(line.trim()); + const name = match?.[1]; + const args = match?.[2] ?? ""; + if (name === "permission") { + const preset = args.trim(); + const commandId = `fx-cmd-${logOf(id).length}`; + append(id, { + type: "command/run", + data: { + commandId, + name, + args, + source: { kind: "user" } + } + }); + const spec = PERMISSION_PRESETS[preset]; + let result; + if (preset === "") result = { + kind: "success", + text: `current preset ${permissionSelectOf(logOf(id)).currentValue} (available: ${Object.keys(PERMISSION_PRESETS).join(", ")})` + }; + else if (spec === void 0) result = { + kind: "error", + text: `unknown preset "${preset}" (available: ${Object.keys(PERMISSION_PRESETS).join(", ")})` + }; + else { + if (permissionSelectOf(logOf(id)).currentValue !== preset) append(id, { + type: "permission/preset", + data: { preset } + }); + append(id, { + type: "sandbox/mode", + data: { mode: spec.sandbox } + }); + append(id, { + type: "approval/policy", + data: { policy: spec.approval } + }); + result = { + kind: "success", + text: `preset ${preset}` + }; + } + append(id, { + type: "command/done", + data: { + commandId, + ...result + } + }); + return { + ok: true, + value: { + commandId, + result + } + }; + } + if (name === "goal") { + const commandId = `fx-cmd-${logOf(id).length}`; + append(id, { + type: "command/run", + data: { + commandId, + name, + args, + source: { kind: "user" } + } + }); + const objective = args.trim(); + const current = backscanGoal(logOf(id)); + let text; + if (objective === "") text = current === null ? "No goal is set. Usage: /goal " : `Current goal: ${current.goal.objective}`; + else if (current !== null && current.goal.phase !== "complete") text = `A goal already exists (${current.goal.objective}). Clear it first.`; + else text = `Goal created: ${appendGoalChange(id, { + kind: "goal/change", + version: 1, + operation: "create", + goal: { + id: `fx-goal-${logOf(id).length}`, + revision: 1, + objective, + phase: "active", + maxGoalRounds: 256 + }, + roundsStarted: 0, + createdAt: Date.now(), + updatedAt: Date.now() + }).goal.objective}`; + const result = { + kind: "success", + text + }; + append(id, { + type: "command/done", + data: { + commandId, + ...result + } + }); + return { + ok: true, + value: { + commandId, + result + } + }; + } + const running = summaryOf(id)?.running === true; + const outcomes = { + compact: "fixture:已压缩(�动作)", + echo: args.trim(), + plan: args.trim() === "off" ? running ? "Leaving plan mode (applies from the next step)." : "Plan mode off." : running ? "Entering plan mode (applies from the next step). Use /plan off to leave." : "Plan mode on. Use /plan off to leave." + }; + const text = name === void 0 ? void 0 : outcomes[name]; + if (name === void 0 || text === void 0) return { + ok: true, + value: void 0 + }; + const commandId = `fx-cmd-${logOf(id).length}`; + append(id, { + type: "command/run", + data: { + commandId, + name, + args, + source: { kind: "user" } + } + }); + if (name === "plan" && !running) { + const plan = foldPlan(logOf(id)); + if (plan.wanted !== null && plan.wanted !== plan.active) append(id, { + type: "plan/mode", + data: { active: plan.wanted } + }); + } + const result = { + kind: "success", + ...text === "" ? {} : { text } + }; + append(id, { + type: "command/done", + data: { + commandId, + ...result + } + }); + return { + ok: true, + value: { + commandId, + result + } + }; + } + }; + const goalView = (projection) => ({ + ...projection.goal, + roundsStarted: projection.roundsStarted, + createdAt: projection.createdAt, + updatedAt: projection.updatedAt, + activation: projection.goal.phase === "active" ? "armed" : "disarmed" + }); + /** Canonical fixture implementation of the generated Goal Remote contract. */ + const goalRemotes = { + create(id, request) { + const missing = requireGoalSession(id); + if (missing !== void 0) return missing; + const current = backscanGoal(logOf(id)); + if (current !== null && current.goal.phase !== "complete") return goalFailure(`goal "${current.goal.id}" already exists`); + const now = Date.now(); + const projection = appendGoalChange(id, { + kind: "goal/change", + version: 1, + operation: "create", + goal: { + id: `fx-goal-${logOf(id).length}`, + revision: 1, + objective: request.objective, + phase: "active", + maxGoalRounds: request.maxGoalRounds ?? 256 + }, + roundsStarted: 0, + createdAt: now, + updatedAt: now + }); + return { + ok: true, + value: { ref: { + id: projection.goal.id, + revision: projection.goal.revision + } } + }; + }, + edit(id, ref, request) { + return mutateGoal(id, ref, (current) => ({ + ...current.goal, + revision: current.goal.revision + 1, + ...request.objective === void 0 ? {} : { objective: request.objective }, + ...request.maxGoalRounds === void 0 ? {} : { maxGoalRounds: request.maxGoalRounds } + })); + }, + pause(id, ref) { + return mutateGoal(id, ref, (current) => current.goal.phase === "active" ? { + ...current.goal, + revision: current.goal.revision + 1, + phase: "paused" + } : void 0); + }, + resume(id, ref) { + return mutateGoal(id, ref, (current) => current.goal.phase === "paused" || current.goal.phase === "blocked" || current.goal.phase === "active" ? { + ...current.goal, + revision: current.goal.revision + 1, + phase: "active" + } : void 0); + }, + complete(id, ref) { + return mutateGoal(id, ref, (current) => current.goal.phase === "complete" ? void 0 : { + ...current.goal, + revision: current.goal.revision + 1, + phase: "complete" + }); + }, + clear(id, ref) { + const resolved = resolveGoal(id, ref); + if (!resolved.ok) return resolved; + const current = resolved.value; + const tombstone = { + id: current.goal.id, + revision: current.goal.revision + 1 + }; + appendGoalChange(id, { + kind: "goal/change", + version: 1, + operation: "clear", + cleared: tombstone, + clearedAt: Date.now() + }); + return { + ok: true, + value: tombstone + }; + } + }; + /** Resolve one current goal revision for a canonical Remote mutation. */ + function resolveGoal(id, ref) { + const missing = requireGoalSession(id); + if (missing !== void 0) return missing; + const current = backscanGoal(logOf(id)); + if (current === null || current.goal.id !== ref.id || current.goal.revision !== ref.revision) return goalFailure("stale or missing goal revision"); + return { + ok: true, + value: current + }; + } + /** Shared CAS mutation path behind the canonical Remote verbs. */ + function mutateGoal(id, ref, next) { + const resolved = resolveGoal(id, ref); + if (!resolved.ok) return resolved; + const current = resolved.value; + const goal = next(current); + if (goal === void 0) return goalFailure(`invalid goal transition from "${current.goal.phase}"`); + return { + ok: true, + value: goalView(appendGoalChange(id, { + kind: "goal/change", + version: 1, + operation: goal.phase === current.goal.phase ? "edit" : goal.phase === "paused" ? "pause" : goal.phase === "active" ? "resume" : "complete", + goal, + roundsStarted: current.roundsStarted, + createdAt: current.createdAt, + updatedAt: Date.now() + })) + }; + } + const mapGoalResult = (result, map) => result.ok ? { + ok: true, + value: map(result.value) + } : result; + const goalRefResult = (result) => mapGoalResult(result, (view) => ({ ref: { + id: view.id, + revision: view.revision + } })); + const legacyGoalResponse = (request, result) => Promise.resolve({ + rpcId: request.rpcId, + result + }); + /** At most one in-flight replay per session; cancel clears it. */ + const replays = /* @__PURE__ */ new Map(); + /** history transit delay (timing hooks below); the page snapshot is taken at request time, like a real host. */ + let historyDelayMs = 0; + /** One-shot history failure (timing hook: a pre-disconnect history request already doomed when reconnect lands). */ + let failNextHistory = false; + /** Force-enders for currently open stream generators (timing hook: simulated connection loss). */ + const streamBreakers = /* @__PURE__ */ new Set(); + /** Retry scenarios opened by timing hooks and completed in a later browser assertion phase. */ + const retryScenarios = /* @__PURE__ */ new Map(); + /** The single opt-in browser stress producer; normal fixture journeys never start it. */ + let activeReasoningChunkStorm = null; + globalThis.__fxTiming = { + setHistoryDelay(ms) { + historyDelayMs = ms; + }, + /** Fail the NEXT history call (after its transit delay) with a transport-level throw. */ + failNextHistory() { + failNextHistory = true; + }, + /** Log append + mux emit (the normal live path). */ + appendUser(id, msg) { + append(sid(id), { + type: "user/message", + surfaceOp: "append", + data: userMessage(text(msg)) + }); + }, + /** Append a later durable title revision through the normal raw-event + control-frame path. */ + appendTitle(id, title) { + const messageSeqs = logOf(sid(id)).filter((event) => event.type === "user/message").map((event) => event.seq); + append(sid(id), { + type: "session/title", + data: { + title, + messageSeqs, + source: { + kind: "provider", + provider: "fixture" + } + } + }); + }, + /** Start an externally paced reasoning stream for the opt-in browser stress lane. */ + startReasoningChunkStorm(id, chunkCount, chunksPerInterval, intervalMs) { + if (!Number.isSafeInteger(chunkCount) || chunkCount < 1) throw new Error("fixture: reasoning chunk count must be a positive safe integer"); + if (!Number.isSafeInteger(chunksPerInterval) || chunksPerInterval < 1) throw new Error("fixture: reasoning chunks per interval must be a positive safe integer"); + if (!Number.isSafeInteger(intervalMs) || intervalMs < 1) throw new Error("fixture: reasoning interval must be a positive safe integer"); + if (activeReasoningChunkStorm?.emitting === true) throw new Error("fixture: reasoning chunk storm already running"); + const sessionId = sid(id); + const log = logOf(sessionId); + let turn = nextTurn.get(sessionId) ?? 0; + for (const event of log) { + const candidate = event.data?.turn; + if (typeof candidate === "number") turn = Math.max(turn, candidate + 1); + } + nextTurn.set(sessionId, turn + 1); + const marker = `REASONING_STRESS_COMPLETE:${String(turn)}:${String(chunkCount)}`; + const state = { + sessionId: id, + chunkCount, + chunksPerInterval, + intervalMs, + emitted: 0, + marker, + emitting: true + }; + activeReasoningChunkStorm = state; + setRunning(sessionId, true); + append(sessionId, { + type: "turn/start", + data: { + turn, + trigger: { + kind: "message", + source: { kind: "user" } + } + } + }); + append(sessionId, { + type: "user/message", + surfaceOp: "append", + data: userMessage(text(`Reasoning chunk stress: ${String(chunkCount)} chunks.`)) + }); + append(sessionId, { + type: "step/start", + data: { + turn, + step: 0 + } + }); + append(sessionId, { + type: "assistant/chunk", + data: { + turn, + step: 0, + chunk: { + type: "block-start", + index: 0, + blockType: "reasoning" + } + } + }); + const startedAt = Date.now(); + const pump = () => { + const elapsedIntervals = Math.floor((Date.now() - startedAt) / intervalMs) + 1; + const due = Math.max(state.emitted + chunksPerInterval, elapsedIntervals * chunksPerInterval); + const end = Math.min(due, chunkCount); + for (let index = state.emitted; index < end; index++) { + const chunkText = index === chunkCount - 1 ? `\n${marker}` : index % 64 === 63 ? "推�\n" : "推�"; + append(sessionId, { + type: "assistant/chunk", + data: { + turn, + step: 0, + chunk: { + type: "reasoning-delta", + index: 0, + text: chunkText + } + } + }); + } + state.emitted = end; + if (end < chunkCount) setTimeout(pump, intervalMs); + else state.emitting = false; + }; + setTimeout(pump, 0); + return marker; + }, + /** Return a copy so browser probes cannot mutate the active producer. */ + reasoningChunkStormState() { + return activeReasoningChunkStorm === null ? null : { ...activeReasoningChunkStorm }; + }, + /** Open one failed model step whose partial remains visible until llm/retry arrives. */ + beginModelRetry(id) { + const sessionId = sid(id); + const turn = nextTurn.get(sessionId) ?? 0; + nextTurn.set(sessionId, turn + 1); + retryScenarios.set(sessionId, { + turn, + stepStarted: true + }); + setRunning(sessionId, true); + append(sessionId, { + type: "turn/start", + data: { turn } + }); + append(sessionId, { + type: "user/message", + surfaceOp: "append", + data: { + content: text("请�试这个请求"), + source: { kind: "user" } + } + }); + append(sessionId, { + type: "step/start", + data: { + turn, + step: 1 + } + }); + append(sessionId, { + type: "assistant/chunk", + data: { + turn, + step: 1, + chunk: { + type: "block-start", + index: 0, + blockType: "text" + } + } + }); + append(sessionId, { + type: "assistant/chunk", + data: { + turn, + step: 1, + chunk: { + type: "text-delta", + index: 0, + text: "应撤回的�截回�" + } + } + }); + }, + /** Record one retry decision; the next attempt remains in the same step. */ + scheduleModelRetry(id, retry = 1, delayMs = 450) { + const sessionId = sid(id); + const scenario = retryScenarios.get(sessionId); + if (scenario === void 0) throw new Error(`fixture: no model retry scenario for ${id}`); + if (!scenario.stepStarted) { + append(sessionId, { + type: "assistant/chunk", + data: { + turn: scenario.turn, + step: 1, + chunk: { + type: "block-start", + index: 0, + blockType: "text" + } + } + }); + append(sessionId, { + type: "assistant/chunk", + data: { + turn: scenario.turn, + step: 1, + chunk: { + type: "text-delta", + index: 0, + text: `第 ${String(retry)} 次应撤回的回�` + } + } + }); + scenario.stepStarted = true; + } + append(sessionId, { + type: "llm/retry", + data: { + turn: scenario.turn, + step: 1, + provider: "fixture", + mode: "normal", + policyKey: "fixture-normal", + retry, + maxRetries: 2, + delayMs, + failure: { + code: "TRANSPORT", + message: "连接被�置" + } + } + }); + scenario.stepStarted = false; + }, + /** Record one retry decision, then cancel its source turn before the retry starts. */ + cancelModelRetryDuringBackoff(id, delayMs = 450) { + const sessionId = sid(id); + const scenario = retryScenarios.get(sessionId); + if (scenario === void 0) throw new Error(`fixture: no model retry scenario for ${id}`); + append(sessionId, { + type: "llm/retry", + data: { + turn: scenario.turn, + step: 1, + provider: "fixture", + mode: "normal", + policyKey: "fixture-normal", + retry: 1, + maxRetries: 2, + delayMs, + failure: { + code: "TRANSPORT", + message: "连接被�置" + } + } + }); + append(sessionId, { + type: "step/end", + data: { + turn: scenario.turn, + step: 1 + } + }); + append(sessionId, { + type: "turn/end", + data: { + turn: scenario.turn, + reason: { + kind: "aborted", + reason: { kind: "user" } + } + } + }); + retryScenarios.delete(sessionId); + setRunning(sessionId, false); + }, + /** Finish the timing-hook retry with a finalized response in the open step. */ + completeModelRetry(id) { + const sessionId = sid(id); + const scenario = retryScenarios.get(sessionId); + if (scenario === void 0) throw new Error(`fixture: no model retry scenario for ${id}`); + retryScenarios.delete(sessionId); + append(sessionId, { + type: "assistant/chunk", + data: { + turn: scenario.turn, + step: 1, + chunk: { + type: "block-start", + index: 0, + blockType: "text" + } + } + }); + append(sessionId, { + type: "assistant/message", + surfaceOp: "append", + data: { + turn: scenario.turn, + step: 1, + message: assistantMessage(text("�试�的完整回�")) + } + }); + append(sessionId, { + type: "step/end", + data: { + turn: scenario.turn, + step: 1 + } + }); + append(sessionId, { + type: "turn/end", + data: { + turn: scenario.turn, + reason: { kind: "completed" } + } + }); + setRunning(sessionId, false); + }, + /** Log append WITHOUT the mux emit: a frame lost in transit — history still serves it, the client must repull. */ + appendSilent(id, msg) { + const log = logOf(sid(id)); + log.push({ + type: "user/message", + surfaceOp: "append", + seq: log.length, + time: Date.now(), + data: userMessage(text(msg)) + }); + }, + /** End every open stream generator (client sees both streams close -> reconnect + resync path). */ + breakStreams() { + for (const breakNow of [...streamBreakers]) breakNow(); + } + }; + /** Prompt replay: chunk typewriter (80ms/frame) -> assistant/message finalize -> turn/end + running flip. */ + const startReply = (id, turn, replyText) => { + const step = 0; + append(id, { + type: "step/start", + data: { + turn, + step + } + }); + append(id, { + type: "assistant/chunk", + data: { + turn, + step, + chunk: { + type: "block-start", + index: 0, + blockType: "text" + } + } + }); + /* v8 ignore next -- the ?? arm needs a null match, but every fixture reply is non-empty. */ + const pieces = replyText.match(/[\s\S]{1,6}/gu) ?? [replyText]; + let i = 0; + const finish = (aborted) => { + replays.delete(id); + const done = pieces.slice(0, i).join(""); + append(id, { + type: "assistant/chunk", + data: { + turn, + step, + chunk: { + type: "block-end", + index: 0, + block: { + type: "text", + text: done + } + } + } + }); + append(id, { + type: "assistant/message", + surfaceOp: "append", + data: { + turn, + step, + message: assistantMessage(text(aborted ? `${done}(已中断)` : done)), + usage: fixtureUsage(turn, step) + } + }); + append(id, { + type: "step/end", + data: { + turn, + step + } + }); + append(id, { + type: "turn/end", + data: { + turn, + reason: { kind: aborted ? "cancelled" : "completed" } + } + }); + setRunning(id, false); + }; + const tick = () => { + const piece = pieces[i]; + if (piece === void 0) { + finish(false); + return; + } + i++; + append(id, { + type: "assistant/chunk", + data: { + turn, + step, + chunk: { + type: "text-delta", + index: 0, + text: piece + } + } + }); + replays.set(id, { + timer: setTimeout(tick, 80), + finish + }); + }; + replays.set(id, { + timer: setTimeout(tick, 80), + finish + }); + }; + return { + api: { + sessions: { + list: (request) => ok(request, { items: [...sessions].sort((a, b) => b.updatedAt - a.updatedAt) }), + search: (request, signal) => { + if (signal.aborted) return err(request, { + code: "cancelled", + message: "fixture session search was aborted", + details: {} + }); + const query = searchTokenSpans(request.payload.query).tokens.map((token) => token.value); + const matches = sessions.flatMap((summary) => { + const log = logs.get(summary.sessionId) ?? []; + const current = new Set(foldSurface(log).nodes); + const best = log.flatMap((event) => { + if (!current.has(event.seq)) return []; + const eventText = searchEventText(event); + const document = searchTokenSpans(eventText); + const match = phraseMatch(document.tokens, query); + if (match.count === 0) return []; + return [{ + sessionId: summary.sessionId, + seq: event.seq, + time: event.time, + text: document.text, + matchCount: match.count, + matchStart: match.start, + matchEnd: match.end, + documentLength: Array.from(eventText).length + }]; + }).sort(compareSearchCandidates)[0]; + return best === void 0 ? [] : [best]; + }).sort(compareSearchCandidates); + return ok(request, { + items: matches.slice(0, 20).map((match) => ({ + sessionId: match.sessionId, + snippet: searchSnippet(match.text, match.matchStart, match.matchEnd) + })), + hasMore: matches.length > 20 + }); + }, + create: async (request) => { + const workspace = request.payload.workspaceId === void 0 ? void 0 : workspaces.find((w) => w.workspaceId === request.payload.workspaceId); + if (request.payload.workspaceId !== void 0 && workspace === void 0) return err(request, { + code: "workspace-not-found", + message: `no workspace ${request.payload.workspaceId}`, + details: { workspaceId: request.payload.workspaceId } + }); + const cwd = workspace?.path ?? request.payload.cwd ?? "/tmp/fixture"; + const requestedId = request.payload.sessionId; + const attachWorkspace = (sessionId) => { + /* v8 ignore next -- callers enter only when a target Workspace exists. */ + if (workspace === void 0 || workspace.sessionIds.includes(sessionId)) return; + workspace.sessionIds = [sessionId, ...workspace.sessionIds]; + workspace.updatedAt = (/* @__PURE__ */ new Date()).toISOString(); + emitHost({ + type: "host/workspace-changed", + workspace: { ...workspace } + }); + }; + const attachFailure = (sessionId, workspaceId) => err(request, { + code: "workspace-attach-failed", + message: `fixture rejected Workspace attachment for ${sessionId}`, + details: { + sessionId, + workspaceId + } + }); + if (requestedId !== void 0) { + const existing = summaryOf(requestedId); + if (existing !== void 0) { + if (existing.cwd !== cwd) return err(request, { + code: "session-conflict", + message: `session ${requestedId} already uses ${existing.cwd ?? "no cwd"}`, + details: { + sessionId: requestedId, + requestedCwd: cwd, + ...existing.cwd === void 0 ? {} : { existingCwd: existing.cwd } + } + }); + if (workspace !== void 0 && !workspace.sessionIds.includes(requestedId)) { + if (options.failWorkspaceAttach) return attachFailure(requestedId, workspace.workspaceId); + attachWorkspace(requestedId); + } + return ok(request, { sessionId: requestedId }); + } + } + const created = { + sessionId: requestedId ?? sid(`fx-${nextSession++}`), + updatedAt: Date.now(), + running: false, + blank: true, + cwd + }; + sessions.push(created); + modelSelections.set(created.sessionId, { + provider: "deepseek-official", + model: "deepseek-v4-flash" + }); + attachedSessions += 1; + const emitSession = () => { + emitHost({ + type: "host/session-added", + sessionId: created.sessionId, + blank: true, + cwd + }); + }; + if (workspace !== void 0 && options.failWorkspaceAttach) { + emitSession(); + return attachFailure(created.sessionId, workspace.workspaceId); + } + if (workspace !== void 0 && options.createFrameOrder === "workspace-first") { + attachWorkspace(created.sessionId); + emitSession(); + } else { + emitSession(); + if (workspace !== void 0) attachWorkspace(created.sessionId); + } + if (options.dropSessionCreateResponse) throw new Error("fixture: dropped session.create response after publication"); + return ok(request, { sessionId: created.sessionId }); + }, + rename: (request) => { + const missing = requireSession(request); + if (missing !== void 0) return missing; + const { sessionId, title } = request.payload; + const normalized = title.trim().replace(/\s+/g, " "); + if (normalized.length === 0) return err(request, { + code: "title-invalid", + message: "session title must contain visible characters", + details: { sessionId } + }); + append(sessionId, { + type: "session/title", + data: { + title: normalized, + messageSeqs: [], + source: { kind: "user" } + } + }); + return ok(request, { + title: normalized, + seq: logOf(sessionId).at(-1).seq + }); + }, + fork: (request) => { + const { sessionId, atSeq } = request.payload; + const source = summaryOf(sessionId); + if (source === void 0) return err(request, { + code: "session-not-found", + message: `no session ${sessionId}`, + details: { sessionId } + }); + const log = logs.get(sessionId) ?? []; + const lastSeq = log.at(-1)?.seq ?? -1; + const boundary = (atSeq === void 0 ? void 0 : log.find((e) => e.type === "turn/end" && e.seq >= atSeq)) ?? (atSeq === void 0 || atSeq > lastSeq ? log.findLast((e) => e.type === "turn/end") : void 0); + if (boundary === void 0) return err(request, { + code: "fork-unavailable", + message: atSeq !== void 0 && atSeq <= lastSeq ? `session ${sessionId} has not completed the turn containing event ${String(atSeq)}` : `session ${sessionId} has no completed turn`, + details: { sessionId } + }); + let cut = boundary.seq + 1; + while (cut < log.length && log[cut]?.type !== "turn/start") cut++; + const child = { + sessionId: sid(`fx-${nextSession++}`), + updatedAt: Date.now(), + running: false, + blank: false, + parentSessionId: sessionId, + ...source.cwd === void 0 ? {} : { cwd: source.cwd } + }; + logs.set(child.sessionId, log.slice(0, cut)); + sessions.push(child); + emitHost({ + type: "host/session-added", + sessionId: child.sessionId, + blank: false, + parentSessionId: sessionId, + ...source.cwd === void 0 ? {} : { cwd: source.cwd } + }); + const workspace = workspaces.find((w) => w.sessionIds.includes(sessionId)); + if (workspace !== void 0) { + workspace.sessionIds = [child.sessionId, ...workspace.sessionIds]; + workspace.updatedAt = (/* @__PURE__ */ new Date()).toISOString(); + emitHost({ + type: "host/workspace-changed", + workspace: { ...workspace } + }); + } + return ok(request, { sessionId: child.sessionId }); + }, + history: async (request) => { + const log = logs.get(request.payload.sessionId) ?? []; + const page = pageOf(log, request.payload.beforeSeq, request.payload.maxMessages ?? 50); + const projections = request.payload.beforeSeq === void 0 ? { + asOfSeq: log.length - 1, + values: projectionValuesOf(log) + } : void 0; + const doomed = failNextHistory; + failNextHistory = false; + const delay = historyDelayMs; + if (delay > 0) await new Promise((resolve) => setTimeout(resolve, delay)); + if (doomed) throw new Error("fixture: simulated history transport failure"); + return ok(request, { + ...page, + ...projections === void 0 ? {} : { projections } + }); + }, + models: (request) => ok(request, { + current: modelSelections.get(request.payload.sessionId) ?? { + provider: "deepseek-official", + model: "deepseek-v4-flash" + }, + routable: true, + groups: fixtureModelGroups(), + failures: [] + }), + selectModel: (request) => { + const selected = { + provider: request.payload.provider, + model: request.payload.model, + ...request.payload.reasoningEffort === void 0 ? {} : { reasoningEffort: request.payload.reasoningEffort } + }; + modelSelections.set(request.payload.sessionId, selected); + return ok(request, { selected }); + }, + prompt: (request) => { + const { sessionId: id, mode, content } = request.payload; + const summary = summaryOf(id); + if (summary === void 0) return err(request, { + code: "session-not-found", + message: `no session ${id}`, + details: { sessionId: id } + }); + if (options.rejectPrompt) return err(request, { + code: "agent-busy", + message: "fixture: prompt rejected before acceptance", + details: { reason: "fixture-prompt-rejection" } + }); + summary.updatedAt = Date.now(); + summary.blank = false; + const userText = content.map((b) => b.type === "text" ? b.text : "").join(""); + const durable = content.map((block) => { + if (block.type === "text") return block; + const attachment = { + attachmentId: `fixture:${randomUuid()}`, + mediaType: block.mediaType, + bytes: Math.max(1, Math.floor(block.data.length * 3 / 4) - (block.data.endsWith("==") ? 2 : block.data.endsWith("=") ? 1 : 0)), + width: 160, + height: 90, + ...block.name === void 0 ? {} : { name: block.name } + }; + attachments.set(String(attachment.attachmentId), { + attachment, + data: block.data + }); + return { + type: "image", + attachment + }; + }); + if (mode === "steer" && replays.has(id)) { + append(id, { + type: "user/message", + surfaceOp: "append", + data: userMessage(durable) + }); + return ok(request, { accepted: true }); + } + const turn = nextTurn.get(id) ?? 0; + nextTurn.set(id, turn + 1); + setRunning(id, true); + append(id, { + type: "turn/start", + data: { turn } + }); + const plan = foldPlan(logOf(id)); + if (plan.wanted !== null && plan.wanted !== plan.active) append(id, { + type: "plan/mode", + data: { active: plan.wanted } + }); + append(id, { + type: "user/message", + surfaceOp: "append", + data: userMessage(durable) + }); + const selection = modelSelections.get(id) ?? { + provider: "deepseek", + model: "deepseek-v4-flash" + }; + if (lastRequestContext(logOf(id))?.model !== selection.model) append(id, { + type: "request/context", + data: { + provider: selection.provider, + model: selection.model, + contextWindow: 128e3 + } + }); + startReply(id, turn, userText === "render markdown" ? MARKDOWN_FIXTURE : userText === "report model" ? (() => { + const selection = modelSelections.get(id); + return `当�模型:${selection?.provider ?? "unknown"}/${selection?.model ?? "unknown"}` + (selection?.reasoningEffort === void 0 ? "" : ` · 推�等级:${selection.reasoningEffort}`); + })() : `回声:${userText}。这是 fixture 的��回�,用于验�打字机增长与定稿切�。`); + return ok(request, { accepted: true }); + }, + attachment: (request) => { + const stored = attachments.get(String(request.payload.attachmentId)); + if (stored === void 0) return err(request, { + code: "attachment-error", + message: "fixture attachment missing", + details: { reason: "ATTACHMENT_NOT_FOUND" } + }); + if (!logReferencesAttachment(logs.get(request.payload.sessionId) ?? [], String(request.payload.attachmentId))) return err(request, { + code: "attachment-error", + message: "fixture attachment is not referenced by this session", + details: { reason: "ATTACHMENT_NOT_REFERENCED" } + }); + return ok(request, stored); + }, + updateQueue: (request) => err(request, { + code: "queue-item-not-found", + message: "fixture has no pending queue item", + details: { itemId: request.payload.itemId } + }), + cancel: (request) => { + const replay = replays.get(request.payload.sessionId); + if (replay !== void 0) { + clearTimeout(replay.timer); + replay.finish(true); + } else setRunning(request.payload.sessionId, false); + return ok(request, { accepted: true }); + } + }, + subagents: { + list: (request) => ok(request, { + entries: [], + parentAvailable: true + }), + history: (request) => { + const log = logs.get(request.payload.childSessionId) ?? []; + return Promise.resolve(ok(request, pageOf(log, request.payload.beforeSeq, request.payload.maxMessages ?? 50))); + }, + prompt: (request) => Promise.resolve(ok(request, { messageId: `fixture-message-${request.payload.childSessionId}` })), + interrupt: (request) => Promise.resolve(ok(request, { accepted: true })) + }, + host: { + describe: (request) => ok(request, { + version: "0.0.0-fixture", + cwd: "/tmp/fixture", + attachedSessions, + canOpenPath: true + }), + pickDirectory: (request) => ok(request, { path: `${FIXTURE_HOME}/Documents/project` }), + listDirectory: (request) => { + const target = request.payload.path ?? FIXTURE_HOME; + const children = childrenOf(target); + if (children === void 0) return err(request, { + code: "directory-unreadable", + message: `cannot list ${target}: not in the fixture tree`, + details: { path: target } + }); + return ok(request, { + path: target, + home: FIXTURE_HOME, + crumbs: crumbsOf(target), + entries: [...children].sort((a, b) => a.localeCompare(b)).map((name) => ({ + name, + path: target === "/" ? `/${name}` : `${target}/${name}`, + hidden: name.startsWith(".") + })), + truncated: false + }); + }, + createDirectory: (request) => { + const parent = request.payload.path; + const children = childrenOf(parent); + if (children === void 0) return err(request, { + code: "directory-create-failed", + message: `missing parent ${parent}`, + details: { path: parent } + }); + const target = parent === "/" ? `/${request.payload.name}` : `${parent}/${request.payload.name}`; + if (children.includes(request.payload.name)) return err(request, { + code: "directory-exists", + message: `${target} already exists`, + details: { path: target } + }); + directoryTree.set(parent, [...children, request.payload.name]); + directoryTree.set(target, []); + return ok(request, { path: target }); + }, + openPath: (request) => ok(request, { opened: true }) + }, + workspace: { + list: (request) => ok(request, { + items: workspaces.map((w) => ({ ...w })), + archivedSessionIds: [...archivedSessionIds] + }), + create: (request) => { + const { path } = request.payload; + const existing = workspaces.find((w) => w.path === path); + if (existing !== void 0) return ok(request, { + workspace: { ...existing }, + created: false + }); + const now = (/* @__PURE__ */ new Date()).toISOString(); + const created = { + workspaceId: wid(`fx-ws-${nextWorkspace++}`), + path, + title: path.split("/").filter(Boolean).at(-1) ?? path, + sessionIds: [], + createdAt: now, + updatedAt: now + }; + workspaces.unshift(created); + emitHost({ + type: "host/workspace-changed", + workspace: { ...created } + }); + return ok(request, { + workspace: { ...created }, + created: true + }); + }, + rename: (request) => { + const { workspaceId, title } = request.payload; + const workspace = workspaces.find((w) => w.workspaceId === workspaceId); + if (workspace === void 0) return err(request, { + code: "workspace-not-found", + message: `no workspace ${workspaceId}`, + details: { workspaceId } + }); + const trimmed = title.trim(); + if (trimmed !== workspace.title) { + if (workspaces.some((w) => w.workspaceId !== workspaceId && w.title === trimmed)) return err(request, { + code: "workspace-name-conflict", + message: `workspace name '${trimmed}' is already in use`, + details: { name: trimmed } + }); + workspace.title = trimmed; + workspace.updatedAt = (/* @__PURE__ */ new Date()).toISOString(); + emitHost({ + type: "host/workspace-changed", + workspace: { ...workspace } + }); + } + return ok(request, { workspace: { ...workspace } }); + }, + delete: (request) => { + const { workspaceId } = request.payload; + const index = workspaces.findIndex((workspace) => workspace.workspaceId === workspaceId); + if (index === -1) return err(request, { + code: "workspace-not-found", + message: `no workspace ${workspaceId}`, + details: { workspaceId } + }); + workspaces.splice(index, 1); + emitHost({ + type: "host/workspace-removed", + workspaceId + }); + return ok(request, { deleted: true }); + }, + insertBefore: (request) => { + const { workspaceId, beforeWorkspaceId } = request.payload; + const source = workspaces.findIndex((workspace) => workspace.workspaceId === workspaceId); + const anchor = beforeWorkspaceId === void 0 ? workspaces.length : workspaces.findIndex((workspace) => workspace.workspaceId === beforeWorkspaceId); + const missing = source === -1 ? workspaceId : anchor === -1 ? beforeWorkspaceId : void 0; + if (missing !== void 0) return err(request, { + code: "workspace-not-found", + message: `no workspace ${missing}`, + details: { workspaceId: missing } + }); + if (beforeWorkspaceId !== workspaceId) { + const previousOrder = workspaces.map((candidate) => candidate.workspaceId); + const [workspace] = workspaces.splice(source, 1); + /* v8 ignore next -- source was resolved from the same array immediately above. */ + if (workspace === void 0) throw new Error(`fixture lost workspace ${workspaceId}`); + const at = beforeWorkspaceId === void 0 ? workspaces.length : workspaces.findIndex((candidate) => candidate.workspaceId === beforeWorkspaceId); + workspaces.splice(at, 0, workspace); + if (workspaces.some((candidate, index) => candidate.workspaceId !== previousOrder[index])) emitHost({ + type: "host/workspace-order-changed", + workspaceIds: workspaces.map((candidate) => candidate.workspaceId) + }); + } + return ok(request, { workspaceIds: workspaces.map((candidate) => candidate.workspaceId) }); + }, + insertSessionBefore: (request) => { + const { workspaceId, sessionId, beforeSessionId } = request.payload; + const workspace = workspaces.find((w) => w.workspaceId === workspaceId); + if (workspace === void 0) return err(request, { + code: "workspace-not-found", + message: `no workspace ${workspaceId}`, + details: { workspaceId } + }); + if (!workspace.sessionIds.includes(sessionId) || beforeSessionId !== void 0 && !workspace.sessionIds.includes(beforeSessionId)) return err(request, { + code: "workspace-move-invalid", + message: `session or anchor is not accounted by workspace ${workspaceId}`, + details: { + workspaceId, + sessionId, + ...beforeSessionId === void 0 ? {} : { beforeSessionId } + } + }); + const without = workspace.sessionIds.filter((id) => id !== sessionId); + const at = beforeSessionId === void 0 ? without.length : without.indexOf(beforeSessionId); + const sessionIds = [ + ...without.slice(0, at), + sessionId, + ...without.slice(at) + ]; + if (!sessionIds.every((id, index) => id === workspace.sessionIds[index])) { + workspace.sessionIds = sessionIds; + workspace.updatedAt = (/* @__PURE__ */ new Date()).toISOString(); + emitHost({ + type: "host/workspace-changed", + workspace: { ...workspace } + }); + } + return ok(request, { workspace: { ...workspace } }); + }, + archiveSession: (request) => { + const missing = requireSession(request); + if (missing !== void 0) return missing; + const { sessionId } = request.payload; + if (!archivedSessionIds.includes(sessionId)) { + archivedSessionIds.push(sessionId); + emitHost({ + type: "host/archived-sessions-changed", + archivedSessionIds: [...archivedSessionIds] + }); + } + return ok(request, { archivedSessionIds: [...archivedSessionIds] }); + } + }, + agentPresets: { + list: (request) => ok(request, { + presets: [...fixturePresets].map(([id, preset]) => ({ + id, + trust: preset.trust, + isDefault: id === fixtureDefaultPreset + })), + authorable: true, + hasDocument: true + }), + select: (request) => { + fixtureDefaultPreset = request.payload.agentPreset; + return ok(request, { agentPreset: request.payload.agentPreset }); + }, + read: (request) => { + const { agentPreset } = request.payload; + const preset = fixturePresets.get(agentPreset); + if (preset === void 0) return err(request, { + code: "agent-preset-not-found", + message: `unknown agent preset "${agentPreset}"`, + details: { + agentPreset, + available: [...fixturePresets.keys()] + } + }); + return ok(request, { + agentPreset, + trust: preset.trust, + content: preset.content + }); + }, + copy: (request) => { + const { from, agentPreset } = request.payload; + const source = fixturePresets.get(from); + if (source === void 0) return err(request, { + code: "agent-preset-not-found", + message: `unknown agent preset "${from}"`, + details: { + agentPreset: from, + available: [...fixturePresets.keys()] + } + }); + if (fixturePresets.has(agentPreset)) return err(request, { + code: "agent-preset-invalid", + message: `agent preset "${agentPreset}" already exists`, + details: { + agentPreset, + reason: "already exists" + } + }); + fixturePresets.set(agentPreset, { + trust: "user", + content: source.content + }); + return ok(request, { agentPreset }); + }, + openDocument: (request) => { + const { agentPreset } = request.payload; + const existing = fixturePresets.get(agentPreset); + if (existing === void 0 || existing.trust === "system") return err(request, { + code: "agent-preset-read-only", + message: `agent preset "${agentPreset}" ships with the deployment`, + details: { + agentPreset, + reason: "it ships with the deployment" + } + }); + return ok(request, { opened: true }); + }, + remove: (request) => { + const { agentPreset } = request.payload; + if (fixturePresets.get(agentPreset)?.trust === "system") return err(request, { + code: "agent-preset-read-only", + message: `agent preset "${agentPreset}" ships with the deployment`, + details: { + agentPreset, + reason: "it ships with the deployment" + } + }); + fixturePresets.delete(agentPreset); + return ok(request, {}); + } + }, + skills: { list: (request) => { + const missing = requireSession(request); + if (missing !== void 0) return missing; + return ok(request, { skills: [{ + name: "fixture-demo", + description: "fixture 技能样本", + whenToUse: "仅供 UI 目录渲染验收", + modelInvocable: true + }, { + name: "fixture-user-only", + description: "fixture 仅用户技能样本", + modelInvocable: false + }] }); + } }, + goals: { + create: (request) => legacyGoalResponse(request, mapGoalResult(goalRemotes.create(request.payload.sessionId, { + objective: request.payload.objective, + ...request.payload.maxGoalRounds === void 0 ? {} : { maxGoalRounds: request.payload.maxGoalRounds } + }), (value) => ({ ref: { + id: value.ref.id, + revision: value.ref.revision + } }))), + edit: (request) => legacyGoalResponse(request, goalRefResult(goalRemotes.edit(request.payload.sessionId, request.payload.ref, { + ...request.payload.objective === void 0 ? {} : { objective: request.payload.objective }, + ...request.payload.maxGoalRounds === void 0 ? {} : { maxGoalRounds: request.payload.maxGoalRounds } + }))), + pause: (request) => legacyGoalResponse(request, goalRefResult(goalRemotes.pause(request.payload.sessionId, request.payload.ref))), + resume: (request) => legacyGoalResponse(request, goalRefResult(goalRemotes.resume(request.payload.sessionId, request.payload.ref))), + complete: (request) => legacyGoalResponse(request, goalRefResult(goalRemotes.complete(request.payload.sessionId, request.payload.ref))), + clear: (request) => legacyGoalResponse(request, mapGoalResult(goalRemotes.clear(request.payload.sessionId, request.payload.ref), () => ({ cleared: true }))) + }, + events: { + async *mux(_request, signal) { + const conn = new FxInbox(); + muxConns.add(conn); + const breakNow = () => { + conn.breakNow(); + }; + streamBreakers.add(breakNow); + for (const s of sessions) { + if (!s.running) continue; + const log = logs.get(s.sessionId) ?? []; + conn.push({ + rpcId: mint(), + payload: { + type: "session/subscribed", + sessionId: s.sessionId, + lastSeq: log.length - 1 + } + }); + const values = projectionValuesOf(log); + for (const key of Object.keys(values)) conn.push({ + rpcId: mint(), + payload: { + type: "session/projection", + sessionId: s.sessionId, + key, + value: values[key], + seq: log.length - 1 + } + }); + } + if (approvalPending) conn.push({ + rpcId: pendingApprovalRpcId, + payload: { + type: "approval/requested", + sessionId: sid("fx-alpha"), + approvalId: pendingApprovalId, + toolName: "dangerous_tool", + reason: "fixture 常驻审批(�答:批准/拒��消失)" + } + }); + if (questionPending) conn.push({ + rpcId: pendingQuestionRpcId, + payload: { + type: "question/requested", + sessionId: sid("fx-alpha"), + questions: fixtureQuestions + } + }); + try { + yield* conn.drain(signal); + } finally { + streamBreakers.delete(breakNow); + muxConns.delete(conn); + } + }, + async *host(_request, signal) { + const conn = new FxInbox(); + hostConns.add(conn); + const breakNow = () => { + conn.breakNow(); + }; + streamBreakers.add(breakNow); + const timer = setInterval(() => { + const gamma = summaryOf(sid("fx-gamma")); + /* v8 ignore next -- the undefined arm needs fx-gamma deleted, but the fixture never removes sessions. */ + if (gamma !== void 0) setRunning(gamma.sessionId, !gamma.running); + }, 5e3); + try { + yield* conn.drain(signal); + } finally { + clearInterval(timer); + streamBreakers.delete(breakNow); + hostConns.delete(conn); + } + } + }, + settings: { + describe: (request) => ok(request, { + writable: true, + hasDocument: true, + namespaces: [{ + ns: "llm-deepseek", + schema: {}, + value: { apiKeyEnv: "DEEPSEEK_API_KEY" }, + applies: "live", + secrets: [{ + path: ["apiKey"], + set: false + }], + revision: 0 + }] + }), + openDocument: (request) => ok(request, { opened: true }), + update: (request) => err(request, { + code: "settings-rejected", + message: "fixture: the minimal readiness settings descriptor is read-only", + details: { ns: request.payload.ns } + }), + replace: (request) => err(request, { + code: "settings-rejected", + message: "fixture: the minimal readiness settings descriptor is read-only", + details: { ns: request.payload.ns } + }), + mutate: (request) => err(request, { + code: "settings-rejected", + message: "fixture: no settings namespaces are registered", + details: { ns: request.payload.ns } + }) + }, + credentials: { + describe: (request) => ok(request, { credentials: Object.fromEntries(request.payload.refs.map((ref) => [ref, { + configured: fixtureCredentials.has(ref), + ...fixtureCredentials.has(ref) ? { source: "file" } : {}, + writable: true + }])) }), + set: (request) => { + fixtureCredentials.set(request.payload.ref, true); + return ok(request, {}); + }, + unset: (request) => { + fixtureCredentials.delete(request.payload.ref); + return ok(request, {}); + } + }, + llm: { + providers: (request) => ok(request, { providers: [ + { + provider: "deepseek-official", + displayName: "DeepSeek", + settingsNs: "llm-deepseek", + settingsPath: [], + active: true + }, + { + provider: "openai", + displayName: "openai", + settingsNs: "llm-pi-ai", + settingsPath: ["providers", "openai"], + active: true, + declared: false + }, + { + provider: "anthropic", + displayName: "anthropic", + settingsNs: "llm-pi-ai", + settingsPath: ["providers", "anthropic"], + active: false, + declared: false + }, + { + provider: "acme-gateway", + displayName: "Acme Gateway", + settingsNs: "llm-pi-ai", + settingsPath: ["providers", "acme-gateway"], + active: true, + declared: true + } + ] }), + models: (request) => ok(request, { + groups: fixtureModelGroups(), + failures: [] + }), + discoverModels: (request) => ok(request, { models: fixtureModelGroups().flatMap((group) => group.models.map((model) => ({ + id: model.id, + name: model.name + }))) }) + }, + respond(message) { + if (message.rpcId === pendingApprovalRpcId) { + if (!approvalPending) return Promise.resolve({ + accepted: false, + reason: "not-pending" + }); + if (!message.result.ok) return Promise.resolve({ + accepted: false, + reason: "bad-response" + }); + const value = message.result.value; + if (value.approvalId !== pendingApprovalId || value.outcome !== "allowed-once" && value.outcome !== "rejected") return Promise.resolve({ + accepted: false, + reason: "bad-response" + }); + approvalPending = false; + emitMux({ + type: "approval/resolved", + sessionId: sid("fx-alpha"), + approvalId: pendingApprovalId, + outcome: value.outcome + }); + return Promise.resolve({ accepted: true }); + } + if (!questionPending || message.rpcId !== pendingQuestionRpcId) return Promise.resolve({ + accepted: false, + reason: "not-pending" + }); + questionPending = false; + emitMux({ + type: "question/resolved", + sessionId: sid("fx-alpha"), + questionRpcId: pendingQuestionRpcId, + outcome: message.result.ok ? "answered" : "cancelled" + }); + return Promise.resolve({ accepted: true }); + }, + downloads: { sessionLog: () => Promise.resolve(new Response("fixture mode does not serve session export", { status: 404 })) } + }, + rpc: { call(channel, endpoint, payload) { + if (channel !== "/api") return Promise.reject(/* @__PURE__ */ new Error(`fixture connection RPC channel ${JSON.stringify(channel)} is unavailable`)); + const args = payload.args; + const sessionId = args.agentId; + switch (endpoint) { + case "commands/list": return Promise.resolve(commandRemotes.list(sessionId)); + case "commands/execute": return Promise.resolve(commandRemotes.execute(sessionId, args.line)); + case "goals/create": return Promise.resolve(goalRemotes.create(sessionId, { + objective: args.request?.objective, + ...args.request?.maxGoalRounds === void 0 ? {} : { maxGoalRounds: args.request.maxGoalRounds } + })); + case "goals/edit": return Promise.resolve(goalRemotes.edit(sessionId, args.ref, args.request ?? {})); + case "goals/pause": return Promise.resolve(goalRemotes.pause(sessionId, args.ref)); + case "goals/resume": return Promise.resolve(goalRemotes.resume(sessionId, args.ref)); + case "goals/complete": return Promise.resolve(goalRemotes.complete(sessionId, args.ref)); + case "goals/clear": return Promise.resolve(goalRemotes.clear(sessionId, args.ref)); + default: return Promise.reject(/* @__PURE__ */ new Error(`fixture connection RPC endpoint ${JSON.stringify(endpoint)} is unavailable`)); + } + } } + }; + } + /** + * Fixture platform subclass: there is no HTTP at all, so instead of a doFetch transport it + * overrides the protocol-level virtuals (callUnary/openMux/openHost/respond) to dispatch + * straight into the in-memory ApiProxy — while still minting rpcIds, fabricating the four + * named full forms, and feeding the same tap as a real carrier. TODO: delete when the fixture + * moves to the isomorphic pipeline (InProcessApiClient over toFetchHandler(fixtureImpl)). + */ + var FixtureApiClient = class extends AbstractApiClient { + api; + /** Generic Remote caller backed by the same in-memory state as the legacy fixture API. */ + rpc; + constructor() { + super(); + const world = createFixtureWorld(fixtureOptionsFromLocation()); + this.api = world.api; + this.rpc = world.rpc; + } + doFetch() { + throw new Error("FixtureApiClient overrides all protocol paths; doFetch must be unreachable"); + } + async callUnary(method, payload, signal) { + const request = rpcRequest(payload); + const full = { + type: "client-request", + rpcId: request.rpcId, + method, + payload + }; + this.onEnvelope(full); + const response = await this.dispatch(method, request, signal ?? new AbortController().signal); + const fullResponse = { + type: "server-response", + rpcId: response.rpcId, + result: response.result + }; + this.onEnvelope(fullResponse); + return response; + } + /** Method-key dispatch into the in-memory contract impl (a real carrier routes by URL path instead). */ + dispatch(method, request, signal) { + switch (method) { + case "session.list": return this.api.sessions.list(request); + case "session.search": return this.api.sessions.search(request, signal); + case "session.create": return this.api.sessions.create(request); + case "session.history": return this.api.sessions.history(request); + case "session.models": return this.api.sessions.models(request); + case "session.selectModel": return this.api.sessions.selectModel(request); + case "session.rename": return this.api.sessions.rename(request); + case "session.fork": return this.api.sessions.fork(request); + case "session.prompt": return this.api.sessions.prompt(request); + case "session.attachment": return this.api.sessions.attachment(request); + case "session.updateQueue": return this.api.sessions.updateQueue(request); + case "session.cancel": return this.api.sessions.cancel(request); + case "subagent.list": return this.api.subagents.list(request); + case "subagent.history": return this.api.subagents.history(request); + case "subagent.prompt": return this.api.subagents.prompt(request, signal); + case "subagent.interrupt": return this.api.subagents.interrupt(request); + case "host.describe": return this.api.host.describe(request); + case "host.pickDirectory": return this.api.host.pickDirectory(request, new AbortController().signal); + case "host.listDirectory": return this.api.host.listDirectory(request, new AbortController().signal); + case "host.createDirectory": return this.api.host.createDirectory(request); + case "host.openPath": return this.api.host.openPath(request, new AbortController().signal); + case "workspace.list": return this.api.workspace.list(request); + case "workspace.create": return this.api.workspace.create(request); + case "workspace.rename": return this.api.workspace.rename(request); + case "workspace.delete": return this.api.workspace.delete(request); + case "workspace.insertBefore": return this.api.workspace.insertBefore(request); + case "workspace.insertSessionBefore": return this.api.workspace.insertSessionBefore(request); + case "workspace.archiveSession": return this.api.workspace.archiveSession(request); + case "skill.list": return this.api.skills.list(request); + case "agentPreset.list": return this.api.agentPresets.list(request); + case "agentPreset.select": return this.api.agentPresets.select(request); + case "agentPreset.read": return this.api.agentPresets.read(request); + case "agentPreset.copy": return this.api.agentPresets.copy(request); + case "agentPreset.openDocument": return this.api.agentPresets.openDocument(request, new AbortController().signal); + case "agentPreset.remove": return this.api.agentPresets.remove(request); + case "goal.create": return this.api.goals.create(request); + case "goal.edit": return this.api.goals.edit(request); + case "goal.pause": return this.api.goals.pause(request); + case "goal.resume": return this.api.goals.resume(request); + case "goal.complete": return this.api.goals.complete(request); + case "goal.clear": return this.api.goals.clear(request); + case "settings.describe": return this.api.settings.describe(request); + case "settings.openDocument": return this.api.settings.openDocument(request, signal); + case "settings.update": return this.api.settings.update(request); + case "settings.replace": return this.api.settings.replace(request); + case "settings.mutate": return this.api.settings.mutate(request); + case "credentials.describe": return this.api.credentials.describe(request); + case "credentials.set": return this.api.credentials.set(request); + case "credentials.unset": return this.api.credentials.unset(request); + case "llm.providers": return this.api.llm.providers(request); + case "llm.models": return this.api.llm.models(request); + case "llm.discoverModels": return this.api.llm.discoverModels(request, signal); + } + } + openMux(payload, signal, onOpen) { + return this.tapStream(this.api.events.mux(rpcRequest(payload), signal), onOpen); + } + openHost(payload, signal, onOpen) { + return this.tapStream(this.api.events.host(rpcRequest(payload), signal), onOpen); + } + async *tapStream(stream, onOpen) { + onOpen?.(); + for await (const envelope of stream) { + const full = { + type: "server-request", + rpcId: envelope.rpcId, + method: envelope.payload.type, + payload: envelope.payload + }; + this.onEnvelope(full); + yield envelope; + } + } + /** + * Deliver a client response to the in-memory contract impl (no HTTP POST), + * echoing the envelope to the observation tap like every other path. + * @param message - the client-response envelope answering a server request. + * @returns the carrier receipt from the fixture impl. + */ + async respond(message) { + this.onEnvelope(message); + return this.api.respond(message); + } + }; + /** Browser query mapping; direct unit callers pass FixtureOptions explicitly. */ + function fixtureOptionsFromLocation() { + if (typeof location === "undefined") return {}; + const query = new URLSearchParams(location.search); + return { + empty: query.get("fixture") === "empty", + rejectPrompt: query.get("fixturePrompt") === "reject", + failWorkspaceAttach: query.get("fixtureAttach") === "fail", + dropSessionCreateResponse: query.get("fixtureSessionCreate") === "drop-response", + createFrameOrder: query.get("fixtureFrames") === "workspace-first" ? "workspace-first" : "session-first" + }; + } + //#endregion + //#region lib/types/api-path.js + /** + * The /api URL prefix — single source for both halves of the web transport. + * The node half registers this prefix on the web server; both halves share the + * event paths below for the browser WebSocket downlinks. + */ + /** Route prefix owning every api request (`/api` and `/api/`). */ + const API_PATH = "/api"; + /** Browser mux-frame WebSocket pathname. */ + const MUX_EVENTS_PATH = `${API_PATH}/events.mux`; + /** Browser host-frame WebSocket pathname. */ + const HOST_EVENTS_PATH = `${API_PATH}/events.host`; + //#endregion + //#region lib/types/client/web-api-client.js + /** Browser API carrier: HTTP upstream plus one WebSocket per downstream event stream. */ + /** Browser platform subclass: unary/respond use fetch; mux/host use downlink-only WebSockets. */ + var WebApiClient = class extends AbstractApiClient { + doFetch(input, init) { + return globalThis.fetch(input, init); + } + openMux(_payload, signal, onOpen) { + return this.readWebSocket(MUX_EVENTS_PATH, signal, muxFrameSchema, onOpen); + } + openHost(_payload, signal, onOpen) { + return this.readWebSocket(HOST_EVENTS_PATH, signal, hostFrameSchema, onOpen); + } + async *readWebSocket(path, signal, frameSchema, onOpen) { + const url = new URL(path, this.resolveBase()); + url.protocol = url.protocol === "https:" ? "wss:" : "ws:"; + const socket = new WebSocket(url); + const inbox = []; + let wake; + const enqueue = (item) => { + inbox.push(item); + wake?.(); + wake = void 0; + }; + const handleOpen = () => { + onOpen?.(); + }; + const handleMessage = (event) => { + let full; + let frame; + try { + if (typeof event.data !== "string") throw new Error("binary WebSocket frame"); + full = serverRequestSchema.parse(JSON.parse(event.data)); + frame = frameSchema.parse(full.payload); + } catch (error) { + console.error(`[client-connection] dropping malformed WebSocket frame on ${path}:`, error); + return; + } + this.onEnvelope(full); + enqueue({ + kind: "frame", + envelope: { + rpcId: full.rpcId, + payload: frame + } + }); + }; + const handleClose = () => { + enqueue({ kind: "end" }); + }; + const handleAbort = () => { + if (socket.readyState === WebSocket.CONNECTING || socket.readyState === WebSocket.OPEN) socket.close(); + }; + socket.addEventListener("open", handleOpen); + socket.addEventListener("message", handleMessage); + socket.addEventListener("close", handleClose, { once: true }); + signal.addEventListener("abort", handleAbort, { once: true }); + if (signal.aborted) handleAbort(); + try { + while (true) { + while (inbox.length > 0) { + const item = inbox.shift(); + if (item.kind === "end") return; + yield item.envelope; + } + await new Promise((resolve) => { + wake = resolve; + }); + } + } finally { + signal.removeEventListener("abort", handleAbort); + socket.removeEventListener("open", handleOpen); + socket.removeEventListener("message", handleMessage); + socket.removeEventListener("close", handleClose); + handleAbort(); + } + } + }; + //#endregion + //#region lib/types/client/rpc.js + /** Browser caller for generic Connection unary RPC channels. */ + const INTERNAL_BASE = "http://dsh.internal"; + const CHANNEL_PATTERN = /^\/[A-Za-z0-9._~-]+$/; + const ENDPOINT_SEGMENT_PATTERN = /^[A-Za-z0-9_$.-]+$/; + /** + * Create the browser-backed generic RPC caller. + * @returns caller that owns request correlation and response-envelope validation. + */ + function createWebConnectionRpc() { + return { async call(channel, endpoint, payload, signal) { + assertTarget(channel, endpoint); + const rpcId = RpcId(randomUuid()); + const message = { + type: "client-request", + rpcId, + method: endpoint, + payload + }; + const response = await globalThis.fetch(new URL(`${channel}/${endpoint}`, resolveBase()), { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(message), + ...signal === void 0 ? {} : { signal } + }); + if (!response.ok) throw new Error(`transport failure for ${channel}/${endpoint}: HTTP ${response.status}`); + const full = serverResponseSchema.parse(await response.json()); + if (full.rpcId !== rpcId) throw new Error(`rpcId mismatch for ${endpoint}: sent ${rpcId}, got ${full.rpcId}`); + return full.result; + } }; + } + function resolveBase() { + const location = globalThis.location; + return location?.origin !== void 0 && location.origin !== "null" ? location.origin : INTERNAL_BASE; + } + function assertTarget(channel, endpoint) { + const segments = endpoint.split("/"); + if (!CHANNEL_PATTERN.test(channel) || segments.some((segment) => segment === "" || segment === "." || segment === ".." || !ENDPOINT_SEGMENT_PATTERN.test(segment))) throw new Error(`connection: invalid RPC target ${JSON.stringify(`${channel}/${endpoint}`)}`); + } + //#endregion + //#region lib/types/loopback-hostname.js + /** + * Browser-safe, zero-dependency loopback classification shared by the `/api` + * Host fence and the package's `ctx.connection` state. The predicate stays + * package-internal; client plugins consume the derived state through Cordis. + */ + /** + * Whether a normalized URL hostname names the local loopback authority. + * @param hostname - WHATWG URL hostname (IPv6 literals retain brackets). + * @returns true for localhost, IPv6 loopback, or any IPv4 address in 127/8. + */ + function isLoopbackHostname(hostname) { + if (hostname === "localhost" || hostname === "[::1]") return true; + const parts = hostname.split("."); + return parts.length === 4 && parts[0] === "127" && parts.every((part) => /^\d{1,3}$/.test(part) && Number(part) <= 255); + } + //#endregion + //#region lib/types/client/index.js + /** Required services (none — this is the wire root). */ + const inject = []; + /** + * Client plugin body: pick the api by page mode and provide ctx.connection. + * @param ctx - client cordis context. + */ + function apply(ctx) { + const pageLocation = typeof location === "undefined" ? void 0 : location; + const fixtureClient = pageLocation !== void 0 && new URLSearchParams(pageLocation.search).has("fixture") ? new FixtureApiClient() : void 0; + const api = fixtureClient ?? new WebApiClient(); + const rpc = fixtureClient?.rpc ?? createWebConnectionRpc(); + let started = false; + let description; + const descriptionListeners = /* @__PURE__ */ new Set(); + const publishDescription = (next) => { + if (Object.is(description, next)) return; + description = next; + for (const listener of [...descriptionListeners]) try { + listener(); + } catch (error) { + console.error("[web-runtime] host-description listener threw:", error); + } + }; + const handle = { + api, + isLoopback: pageLocation === void 0 || isLoopbackHostname(pageLocation.hostname), + hostDescription: { + getSnapshot: () => description, + subscribe: (listener) => { + descriptionListeners.add(listener); + return () => { + descriptionListeners.delete(listener); + }; + } + }, + rpc, + start(sinks, config) { + if (started) throw new Error("connection: the stream loop is already owned by another consumer"); + started = true; + const controller = new ConnectionController(api, { + ...sinks, + onConnected: (next) => { + publishDescription(next); + if (!Object.is(description, next)) return; + sinks.onConnected?.(next); + }, + onStateChange: (state) => { + if (state === "reconnecting") publishDescription(void 0); + sinks.onStateChange?.(state); + } + }, config ?? {}); + controller.start(); + return { stop: () => { + controller.stop(); + publishDescription(void 0); + } }; + } + }; + ctx.provide("connection", handle); + } + //#endregion + exports.AbstractApiClient = AbstractApiClient; + exports.RpcId = RpcId; + exports.apply = apply; + exports.inject = inject; + exports.transportError = transportError; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000c b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000c new file mode 100644 index 0000000..3c9b3c0 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000c @@ -0,0 +1,4099 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-cordis-client-runner", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + //#region \0rolldown/runtime.js + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true + }) : target, mod)); + //#endregion + let react = require("react"); + react = __toESM(react, 1); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + //#region lib/types/client/evaluator.js + /** + * Browser-half closure evaluation: the package source runs as the body of an + * async function whose parameters ARE the symbol surface. Shadowing parameters + * (setTimeout/fetch/require/…) turn the ambient browser globals into teaching + * redirects without touching the page. The host syntax-prechecked the source at + * define time; SyntaxError handling here is the engine-divergence fallback and + * reaches the model through the load report. + */ + const TIMER_REDIRECT = "browser timer globals are unavailable in dynamic packages. Declare inject: ['timer'] on the returned plugin, query Client Service.listService for the exact API, and close over that plugin ctx. In React, create timers from an event handler or React.useEffect and return callback-form disposers from the effect cleanup."; + /** + * Where each withheld browser global sends the author instead. One home for two + * consumers: the closure traps below throw these, and a render crash whose + * message names one of them gets the same redirect appended — a package that + * reached the global some other way (`window.setInterval`) crashes with the + * engine's own bare text, and the author needs the redirect either way. + */ + const DYNAMIC_CLIENT_REDIRECTS = { + setTimeout: TIMER_REDIRECT, + setInterval: TIMER_REDIRECT, + clearTimeout: TIMER_REDIRECT, + clearInterval: TIMER_REDIRECT, + fetch: "network belongs to the HOST half: register a handler there with harness.handle(method, fn) and call it here via host.call(method, args).", + require: "modules cannot be imported here. React arrives as the `React` closure symbol; everything else goes through ctx services or host.call." + }; + /** Callable teaching traps shadowing the ambient globals the closure must not reach. */ + function closureTraps() { + const traps = {}; + for (const [name, redirect] of Object.entries(DYNAMIC_CLIENT_REDIRECTS)) traps[name] = () => { + throw new Error(`${name} is not available in a dynamic client half — ${redirect}`); + }; + return traps; + } + /** The `harness` seat exists only host-side; any touch teaches the split. */ + function harnessTrap() { + return new Proxy({}, { get(_target, prop) { + throw new Error(`harness.${String(prop)} belongs to the HOST half (\`code\`): register handlers there with harness.handle(method, fn); the browser half calls them via host.call(method, args).`); + } }); + } + /** Per-package style-tag bookkeeping behind the `styles.insert` symbol. */ + var DynamicCordisStyles = class { + pluginId; + tags = /* @__PURE__ */ new Set(); + /** @param pluginId - owning Plugin ID, stamped as `data-dyn` on every tag. */ + constructor(pluginId) { + this.pluginId = pluginId; + } + /** + * Inject one stylesheet, removed automatically on package unload. + * @param css - raw CSS text. + * @returns disposer removing this one tag early. + */ + insert(css) { + if (typeof css !== "string") throw new Error("styles.insert(css) needs a CSS string"); + const tag = document.createElement("style"); + tag.dataset.dyn = this.pluginId; + tag.textContent = css; + document.head.append(tag); + this.tags.add(tag); + return () => { + this.tags.delete(tag); + tag.remove(); + }; + } + /** Live tag count (load-report contribution summary). */ + get count() { + return this.tags.size; + } + /** Remove every tag this package still owns (unload path). */ + dispose() { + for (const tag of this.tags) tag.remove(); + this.tags.clear(); + } + }; + /** Stringify one console argument for the error mirror. */ + function errorText(arg) { + if (arg instanceof Error) return arg.message; + if (typeof arg === "string") return arg; + if (arg === void 0) return "undefined"; + try { + return JSON.stringify(arg); + } catch { + return "[unserializable console argument]"; + } + } + /** Tagged write-through console; error lines additionally copy into the load report. */ + function taggedConsole(pluginId, noteError) { + const tag = `[cordis:${pluginId}]`; + const forward = (level) => (...args) => { + console[level](tag, ...args); + if (level !== "error") return; + noteError(args.map(errorText).join(" ").slice(0, 500)); + }; + return { + ...console, + log: forward("log"), + info: forward("info"), + warn: forward("warn"), + error: forward("error"), + debug: forward("debug") + }; + } + /** + * Narrow a closure return value to a mountable plugin (host guard mirror). + * @param value - whatever the closure returned. + * @returns whether the value is mountable. + */ + function isDynamicCordisPlugin(value) { + if (typeof value === "function") return true; + return typeof value === "object" && value !== null && typeof value.apply === "function"; + } + /** + * Evaluate one package's browser half and return the (un-guarded) plugin. + * @param pluginId - stable Plugin ID (console tag and style ownership). + * @param clientCode - the browser half's source: an async function body returning a plugin. + * @param env - runner wiring for `host.call` and error mirroring. + * @param styles - the package's style bookkeeping (owned by the caller so unload can dispose it). + * @returns the plugin the closure returned. + * @throws teaching errors for syntax failures and non-plugin returns. + */ + async function evaluateClientHalf(pluginId, clientCode, env, styles) { + const traps = closureTraps(); + const parameters = [ + "React", + "console", + "styles", + "host", + "harness", + ...Object.keys(traps), + "process", + "Buffer" + ]; + let closure; + try { + closure = new Function(...parameters, `return (async () => {\n${clientCode}\n})()`); + } catch (error) { + if (!(error instanceof SyntaxError)) throw error; + throw new Error(`client half failed to parse in this browser: ${error.message}\nThe browser half is plain JavaScript (no JSX, no TypeScript); build elements with React.createElement.`); + } + const returned = await closure(react, taggedConsole(pluginId, (message) => { + env.noteError(message); + }), styles, { + /** + * Call a host-half handler of THIS package (harness.handle pairing). A call + * with nothing to pass omits the argument: it arrives at the handler as + * `null`, because the wire carries JSON and `undefined` is not JSON — + * requiring `host.call('m', {})` would be a ritual, and defaulting to `{}` + * would invent an empty argument the caller never wrote. + */ +call: (method, args = null) => env.invoke(method, args) }, harnessTrap(), ...Object.values(traps), void 0, void 0); + if (!isDynamicCordisPlugin(returned)) { + if (returned === void 0) throw new Error("client half returned `undefined` — did you forget `return`?\n ✓ return (ctx) => { … }\n ✓ return { name: '…', inject: ['slots'], apply(ctx) { … } }"); + throw new Error("client half must `return` a plugin: a function, or an object with an `apply(ctx)` method"); + } + return returned; + } + //#endregion + //#region lib/types/client/guard.js + /** + * The browser twin of the tool-cordis context facade: a whitelist of + * lifecycle-safe verbs plus optional `ctx.get()` lookup and declared-service + * property access, with + * framework internals withheld and Context-valued returns denied. Two seats + * carry extra machinery: `slots`, where the register proxy assigns the + * shadowing priority and ledgers the registration — invoking the service with + * the traced receiver so the effect lands on the CALLING plugin's fiber + * (SlotRegistry.register must stay a prototype method for exactly that + * reason) — and `theme`, whose override source is pinned to the package id. + * + * This is API discipline, not a security boundary: a dynamic package's code is + * as trusted as the host process that accepted its definition. + */ + /** Facade verbs beyond declared services (host CTX_VERBS twin). */ + const CTX_VERBS = new Set([ + "effect", + "on", + "once", + "provide", + "timeout", + "interval", + "setTimeout", + "setInterval", + "throttle", + "debounce" + ]); + const TIMER_VERBS = new Set([ + "timeout", + "interval", + "setTimeout", + "setInterval", + "throttle", + "debounce" + ]); + /** Reject any service return that is a cordis Context (host guard twin). */ + function denyContext(value, service, env) { + if (value instanceof _deepseek_ai_cordis.Context) return rejectGuard(env, `service "${service}" returned a cordis Context, which the dynamic facade does not expose. Operate through your own plugin ctx and the services you declared — never another context.`); + return value; + } + /** + * Forward service methods with the traced service as receiver — `this.ctx` + * inside prototype methods (slots.register) must stay the CALLER's ctx so + * effects land on the calling plugin's fiber — while denying Context returns. + */ + function guardedService(service, name, env) { + return new Proxy(service, { get(target, prop) { + const value = Reflect.get(target, prop, target); + if (typeof value !== "function") return denyContext(value, name, env); + return (...args) => { + const result = Reflect.apply(value, target, args); + if (result instanceof Promise) return result.then((resolved) => denyContext(resolved, name, env)); + return denyContext(result, name, env); + }; + } }); + } + /** + * The slots seat: automatic shadowing priority and ledger recording around the + * traced service's own register. + */ + function guardedSlots(slots, env) { + return new Proxy(slots, { get(target, prop) { + const value = Reflect.get(target, prop, target); + if (prop !== "register") { + if (typeof value !== "function") return denyContext(value, "slots", env); + return (...args) => denyContext(Reflect.apply(value, target, args), "slots", env); + } + return (rawOptions, component) => { + if (typeof rawOptions !== "object" || rawOptions === null) return rejectGuard(env, "slots.register(options, component) needs an options object with a `name`"); + const options = { ...rawOptions }; + const slot = options.name; + if (typeof slot !== "string" || slot.length === 0) return rejectGuard(env, "slots.register options need a string `name` (the target slot key)"); + if (slot === "tool.view.cordis") { + if (options.key !== "self") return rejectGuard(env, "tool.view.cordis only accepts key \"self\"; the runtime binds it to this Package"); + options.key = `${env.pkg.pluginId}.${env.pkg.packageId}`; + } + const spec = slots.spec(slot); + let priority = options.priority; + if (spec === void 0 || spec.kind !== "chain") { + priority = env.allocatePriority(); + options.priority = priority; + } + const dispose = Reflect.get(target, "register", target).call(target, options, component); + env.ledger.push({ + slot, + priority + }); + env.claim(component); + return dispose; + }; + } }); + } + /** + * The theme seat: `overrideTokens`' source is FORCED to the package id — a + * dynamic package can never impersonate (or evict) another source's layer, and + * its own layers converge under one identity unload can reason about. The + * layer's disposer is additionally hung on the calling fiber, because the + * documented contract is "unload restores" and model code cannot be trusted to + * keep the returned handle (slots parity — register hangs its own cleanup). + * Everything else forwards through the generic guard. + */ + function guardedTheme(theme, env, ctx) { + return new Proxy(theme, { get(target, prop) { + if (prop !== "overrideTokens") { + const value = Reflect.get(target, prop, target); + if (typeof value !== "function") return denyContext(value, "theme", env); + return (...args) => { + const result = Reflect.apply(value, target, args); + if (result instanceof Promise) return result.then((resolved) => denyContext(resolved, "theme", env)); + return denyContext(result, "theme", env); + }; + } + return (source, tokens) => { + if (tokens === void 0 && typeof source === "object" && source !== null) return rejectGuard(env, "theme.overrideTokens(source, tokens) takes two arguments; source is replaced with your package id, so pass any string first and the token map second: overrideTokens('mine', { '--dsw-alias-…': { light: '…', dark: '…' } })"); + const method = Reflect.get(target, "overrideTokens", target); + const dispose = Reflect.apply(method, target, [`${env.pkg.pluginId}.${env.pkg.packageId}`, tokens]); + ctx.effect(() => dispose, "cordis-client-runner: dynamic theme override layer"); + return dispose; + }; + } }); + } + /** + * Build the facade one dynamic plugin's `apply` receives (host sandboxContext + * twin, browser seats). `ctx.get(name)` performs optional lookup; direct + * `ctx.serviceName` access is gated by the fiber's `inject` declaration. + * @param ctx - the plugin's real fiber ctx (loader-created). + * @param env - package row + ledger sink. + * @returns the whitelisting proxy standing in for ctx. + */ + function dynamicCordisContext(ctx, env) { + const declared = new Set(Object.keys(ctx.fiber.inject)); + const denyRead = (prop) => { + if (ctx.get(prop) !== void 0) return rejectGuard(env, `service "${prop}" is not declared by your plugin. Declare it on the plugin you return: { inject: ['${prop}', …], apply(ctx) { … } } — a plain \`function\` has no declaration site, so use the object form. The runtime then parks the package if the provider unloads.`); + return rejectGuard(env, `dynamic ctx does not expose "${prop}". Available: ctx.on / ctx.provide / timer helpers after injecting timer, and any service your returned plugin declared in inject (slots and theme are the usual UI seats). Framework internals are withheld by design.`); + }; + const readService = (name, requireDeclaration) => { + if (requireDeclaration && !declared.has(name)) return denyRead(name); + const service = denyContext(ctx.get(name), name, env); + if (service === null || typeof service !== "object" && typeof service !== "function") return service; + if (name === "slots") return guardedSlots(service, env); + if (name === "theme") return guardedTheme(service, env, ctx); + return guardedService(service, name, env); + }; + return new Proxy({}, { + get(_target, prop) { + if (prop === "get") return (name) => readService(name, false); + if (typeof prop !== "string") return void 0; + if (CTX_VERBS.has(prop)) return (...args) => { + if (TIMER_VERBS.has(prop) && !declared.has("timer")) return denyRead("timer"); + const method = ctx[prop]; + return Reflect.apply(method, ctx, args); + }; + return readService(prop, true); + }, + set(_target, prop) { + return rejectGuard(env, `dynamic ctx is read-only; cannot assign "${String(prop)}"`); + }, + has: (_target, prop) => prop === "get" || typeof prop === "string" && (CTX_VERBS.has(prop) && (!TIMER_VERBS.has(prop) || declared.has("timer")) || declared.has(prop)) + }); + } + function rejectGuard(env, message) { + const error = new Error(message); + env.reportFailure(error); + throw error; + } + //#endregion + //#region lib/types/client/runtime.js + /** + * Per-package browser lifecycle: evaluate the closure, wrap `apply` in the guard + * facade, seat a ready-made factory in the module table, and create a loader + * entry — so dynamic packages ride the exact machinery static plugins do + * (activation gating on inject, fiber-effect cleanup, status projection). Unload + * = loader entry removal (fiber disposal cascades slot entries and facade + * effects) + factory invalidation + style removal. + * + * The engine answers its caller: `load` resolves with what this page ended up + * with, which is what the run orchestration reports back to the host. Loads + * converge by Plugin Run ID against live state, not history: loading the exact + * activation this page already runs is a no-op that still answers, another run + * replaces it, and the same Package after a retract loads afresh. Per-Plugin + * serialization keeps a second request from interleaving with one in flight. + */ + /** Module-table id of one package (also its loader entry name and fiber name). */ + function moduleIdOf(id) { + return `dyn/${id}`; + } + /** The browser-side load engine for dynamic packages. */ + var DynamicCordisPackageRunner = class { + env; + live = /* @__PURE__ */ new Map(); + /** Serializes load/unload per package id (a second request can outrun a slow load). */ + queues = /* @__PURE__ */ new Map(); + changeListeners = /* @__PURE__ */ new Set(); + /** Page-local shadowing rank. A later registration receives a lower priority. */ + nextPriority = 0; + /** + * Which package seated which component, and for whom. Component identity is the + * only attribution key that holds: + * - the registry stores the component verbatim, so a crashed entry carries its + * own way back — no parallel entry ledger to keep in step; + * - `entry.registrant` is `options.registrant ?? fiber.name` and the facade does + * not strip a package-supplied one, so a package could name itself something + * else — attributing by it would let a package impersonate another; + * - the assigned shadowing priority is unique but absent on chain entries (their + * election is deliberately left alone), so it would miss chain crashes; + * - a package torn down between the crash and the report is still attributable, + * because this index does not depend on the live record. + * + * Two packages cannot collide here: each browser half is evaluated in its own + * closure, so no component object reaches two of them. A collision is only + * possible inside ONE package (the same component seated twice), where both + * entries map to the same id and the value is identical. + */ + owners = /* @__PURE__ */ new WeakMap(); + /** This page's last render crash per package: what a run surface shows on the row. */ + failures = /* @__PURE__ */ new Map(); + unwatch; + snapshotCache; + failureCache; + /** @param env - loader/module/slot wiring plus the two host verbs this engine uses. */ + constructor(env) { + this.env = env; + this.unwatch = env.slots.onEntryError((slot, entry, error, info) => { + const component = entry.component; + const owner = indexable(component) ? this.owners.get(component) : void 0; + if (owner === void 0) return; + const details = errorDetails(error); + const failure = { + slot, + message: renderFailureMessage(slot, details.message), + ...details.stack === void 0 ? {} : { stack: details.stack }, + abdicated: info.abdicated + }; + env.reportRenderFailure(owner.agentId, owner.pluginId, owner.pluginRunId, failure); + this.failures.set(owner.pluginId, failure); + this.notify(); + }); + } + /** + * Observe live-set changes (the run-state surface's re-render seam). + * @param fn - notified after every converged mutation. + * @returns unsubscribe. + */ + subscribe(fn) { + this.changeListeners.add(fn); + return () => { + this.changeListeners.delete(fn); + }; + } + /** + * This page's last render crash per package, on the same notification channel as + * the live set — a surface that already subscribed learns about a crash without + * a second mechanism to wire. + */ + renderFailures = { + getSnapshot: () => this.failureCache ??= new Map(this.failures), + subscribe: (fn) => this.subscribe(fn) + }; + /** + * What this page currently has loaded (stable reference between mutations, so + * it can back a snapshot selector). + * @returns one row per live package. + */ + getSnapshot() { + return this.snapshotCache ??= [...this.live.values()].map(({ pkg, ledger, styles }) => ({ + pluginId: pkg.pluginId, + packageId: pkg.packageId, + pluginRunId: pkg.pluginRunId, + name: pkg.name, + slots: [...new Set(ledger.map((row) => row.slot))], + styleCount: styles.count + })); + } + /** + * Whether this page has the browser half loaded — page-local truth, never the + * host's "it is running". + * @param pluginId - stable Plugin identity. + * @returns true while one activation of the Plugin is live here. + */ + isLoaded(pluginId) { + return this.live.has(pluginId); + } + /** + * Load one browser half into this page and answer what happened. + * @param half - source for one exact Host activation. + * @returns the outcome the run orchestration reports to the host. + */ + load(half) { + return this.enqueue(half.pluginId, async () => { + const current = this.live.get(half.pluginId); + if (current !== void 0) { + if (current.pkg.pluginRunId === half.pluginRunId) return settled(current); + await this.teardown(current.pkg.pluginId, current.entryId, current.styles); + } + const result = await this.mount(half); + this.notify(); + return result; + }); + } + /** + * Unload one package (`cordis/dynamic-retract`: a stop, or an undefine + * that stops first). + * @param pluginId - stable Plugin identity. + * @param pluginRunId - exact activation being retracted; a newer run survives. + */ + retract(pluginId, pluginRunId) { + this.enqueue(pluginId, async () => { + const current = this.live.get(pluginId); + if (current === void 0 || current.pkg.pluginRunId !== pluginRunId) return; + await this.teardown(pluginId, current.entryId, current.styles); + this.notify(); + }); + } + /** Unload everything (plugin disposal path). */ + async dispose() { + this.unwatch(); + for (const current of [...this.live.values()]) await this.teardown(current.pkg.pluginId, current.entryId, current.styles); + this.notify(); + } + notify() { + this.snapshotCache = void 0; + this.failureCache = void 0; + for (const fn of [...this.changeListeners]) fn(); + } + /** Queue one package operation behind that package's previous ones. */ + enqueue(id, op) { + const next = (this.queues.get(id) ?? Promise.resolve()).then(op); + this.queues.set(id, next.then(() => {}, () => {})); + return next; + } + async mount(half) { + const styles = new DynamicCordisStyles(half.pluginId); + const ledger = []; + let plugin; + try { + plugin = await evaluateClientHalf(half.pluginId, half.code, { + invoke: (method, args) => this.env.invoke(half.pluginId, half.pluginRunId, method, args), + noteError: (message) => { + console.error(`[cordis-client-runner] ${half.pluginId} logged an error:`, message); + } + }, styles); + } catch (error) { + styles.dispose(); + return { + ok: false, + cause: "evaluate", + ...errorDetails(error), + error + }; + } + const pkg = { + pluginId: half.pluginId, + packageId: half.packageId, + pluginRunId: half.pluginRunId, + name: half.name + }; + const surface = this.guardedSurface(pkg, half.agentId, plugin, ledger); + const moduleId = moduleIdOf(half.pluginId); + this.env.modules.invalidate(moduleId); + const sink = globalThis.__ModuleLoader__; + if (sink === void 0) throw new Error("cordis-client-runner: window.__ModuleLoader__ is missing (booted outside the web shell?)"); + sink.load({ + id: moduleId, + factory: () => surface + }); + const entryId = await this.env.loader.create({ name: moduleId }); + const fiber = this.env.loader.resolve(entryId).fiber; + if (fiber === void 0) { + await this.teardown(half.pluginId, entryId, styles); + return { + ok: false, + cause: "module-import", + message: "module import failed (see the browser console)" + }; + } + try { + await fiber.await(); + } catch (error) { + await this.teardown(half.pluginId, entryId, styles); + return { + ok: false, + cause: "activate", + ...errorDetails(error), + error + }; + } + const record = { + pkg, + entryId, + styles, + ledger, + waitingFor: Object.keys(fiber.inject).filter((name) => this.env.ctx.get(name) === void 0) + }; + this.live.set(half.pluginId, record); + this.failures.delete(half.pluginId); + return settled(record); + } + /** + * Wrap the evaluated plugin so `apply` sees the guard facade; the surface + * doubles as the module-table module. The plugin's OWN `inject` survives (the + * object form's declaration is the facade's service gate, mirroring the host + * sandbox reading `ctx.fiber.inject`); the function form has no declaration + * site and therefore reaches no service. + */ + guardedSurface(pkg, agentId, plugin, ledger) { + const claim = (component) => { + if (indexable(component)) this.owners.set(component, { + pluginId: pkg.pluginId, + pluginRunId: pkg.pluginRunId, + agentId + }); + }; + const guarded = (ctx) => dynamicCordisContext(ctx, { + pkg, + ledger, + claim, + allocatePriority: () => --this.nextPriority, + reportFailure: (error) => { + this.env.reportGuardFailure(agentId, pkg.pluginId, pkg.pluginRunId, errorDetails(error)); + } + }); + if (typeof plugin === "function") return { + name: moduleIdOf(pkg.pluginId), + apply: (ctx) => plugin(guarded(ctx)) + }; + return { + ...plugin, + name: moduleIdOf(pkg.pluginId), + apply: (ctx, config) => plugin.apply(guarded(ctx), config) + }; + } + /** + * Unload one package's contributions. Takes the pieces rather than the record + * because a load can fail before any record is seated. + */ + async teardown(id, entryId, styles) { + this.live.delete(id); + this.failures.delete(id); + await this.env.loader.remove(entryId); + this.env.modules.invalidate(moduleIdOf(id)); + styles.dispose(); + } + }; + /** The success answer for a package that is live here, parked or active. */ + function settled(record) { + return { + ok: true, + pluginRunId: record.pkg.pluginRunId, + ...record.waitingFor.length > 0 ? { waitingFor: record.waitingFor } : {} + }; + } + /** + * Whether a component can key the ownership index. Identity is the key, so only + * objects and functions qualify — a package may register anything, and what it + * registered is what a crash report carries back. + * @param component - whatever a package passed as its component. + * @returns true when the value can be indexed by identity. + */ + function indexable(component) { + return typeof component === "object" && component !== null || typeof component === "function"; + } + /** + * Preserve error fields for a load result without fabricating a stack. + * @param error - original thrown value. + * @returns its message and original string stack, when present. + */ + function errorDetails(error) { + if (typeof error !== "object" || error === null) return { message: String(error) }; + const message = "message" in error && typeof error.message === "string" ? error.message : Object.prototype.toString.call(error); + const stack = "stack" in error && typeof error.stack === "string" ? error.stack : void 0; + return { + message, + ...stack === void 0 ? {} : { stack } + }; + } + /** + * What the authoring session reads about one render crash. The slot says where it + * happened, the crash message says what broke, and a withheld global named in that + * text pulls in its redirect — a package that reached `window.setInterval` around + * the closure trap crashes with the engine's bare message, which teaches nothing. + */ + function renderFailureMessage(slot, message) { + const redirect = Object.entries(DYNAMIC_CLIENT_REDIRECTS).find(([name, text]) => message.includes(name) && !message.includes(text))?.[1]; + return `your entry in slot "${slot}" crashed while React rendered it: ${message}` + (redirect === void 0 ? "" : `\n${redirect}`); + } + //#endregion + //#region lib/types/client/orchestrator.js + /** + * Page-side run orchestration for model approvals and direct panel gestures. + * Host activation always precedes Client loading. The same Plugin-keyed state + * drives every surface, so remounting a panel never loses an open approval or + * an in-flight transition. + */ + /** Drives Host → Client activation and publishes Plugin-keyed activity. */ + var CordisRunOrchestrator = class { + env; + requests = /* @__PURE__ */ new Map(); + activity = /* @__PURE__ */ new Map(); + failures = /* @__PURE__ */ new Map(); + inFlight = /* @__PURE__ */ new Map(); + listeners = /* @__PURE__ */ new Set(); + activityCache; + failureCache; + /** @param env - Client loader and folded Host operations. */ + constructor(env) { + this.env = env; + } + /** Open approvals and current activation attempts, keyed by stable Plugin ID. */ + activeRuns = { + getSnapshot: () => this.activityCache ??= new Map(this.activity), + subscribe: (fn) => this.observe(fn) + }; + /** Latest page-side activation failure for each Plugin. */ + lastRunError = { + getSnapshot: () => this.failureCache ??= new Map(this.failures), + subscribe: (fn) => this.observe(fn) + }; + /** + * Register a Client activation request, starting it immediately when the Plugin is already authorized. + * @param request - forwarded approval and activation metadata. + */ + open(request) { + this.requests.set(request.requestId, request); + if (!request.requiresApproval) { + this.orchestrate({ + agentId: request.agentId, + pluginId: request.pluginId, + packageId: request.packageId, + mode: request.mode, + requestId: request.requestId, + hasClientHalf: true + }).catch((error) => { + console.error(`[cordis-client-runner] automatic activation ${request.requestId} failed:`, error); + }); + return; + } + if (this.activity.get(request.pluginId)?.phase !== "orchestrating") this.activity.set(request.pluginId, { + phase: "awaiting-approval", + requestId: request.requestId, + agentId: request.agentId, + packageId: request.packageId, + mode: request.mode, + name: request.name, + purpose: request.purpose + }); + this.commit(); + } + /** + * Rebuild pending approvals and automatic Client activations from an authoritative Host inventory read. + * @param rows - complete process-wide Plugin inventory. + */ + reconcileApprovals(rows) { + const expected = /* @__PURE__ */ new Map(); + for (const row of rows) { + const attempt = row.latestRun; + if (attempt?.approvalRequestId === void 0 || attempt.status !== "awaiting-approval" && attempt.status !== "starting-host" && attempt.status !== "client-pending") continue; + const pkg = row.packages.find((candidate) => candidate.packageId === attempt.packageId); + if (pkg === void 0) continue; + expected.set(attempt.approvalRequestId, { + requestId: attempt.approvalRequestId, + agentId: row.agentId, + pluginId: row.pluginId, + packageId: attempt.packageId, + mode: attempt.mode, + name: pkg.name, + purpose: pkg.purpose, + requiresApproval: attempt.requiresApproval ?? attempt.status === "awaiting-approval" + }); + } + let changed = false; + for (const [requestId, request] of [...this.requests]) { + if (expected.has(requestId)) continue; + this.requests.delete(requestId); + const current = this.activity.get(request.pluginId); + if (current?.phase === "awaiting-approval" && current.requestId === requestId) this.activity.delete(request.pluginId); + changed = true; + } + for (const [requestId, request] of expected) { + const previous = this.requests.get(requestId); + const current = this.activity.get(request.pluginId); + if (!request.requiresApproval && current?.phase === "orchestrating") continue; + if (request.requiresApproval && sameRequest(previous, request) && current?.phase === "awaiting-approval" && current.requestId === requestId) continue; + if (!request.requiresApproval) { + this.open(request); + changed = true; + continue; + } + this.requests.set(requestId, request); + if (current?.phase !== "orchestrating") this.activity.set(request.pluginId, { + phase: "awaiting-approval", + requestId, + agentId: request.agentId, + packageId: request.packageId, + mode: request.mode, + name: request.name, + purpose: request.purpose + }); + changed = true; + } + if (changed) this.commit(); + } + /** + * Close an approval settled by another page or by cancellation. + * @param requestId - approval request that can no longer be answered here. + */ + close(requestId) { + const request = this.requests.get(requestId); + if (request === void 0) return; + this.requests.delete(requestId); + const current = this.activity.get(request.pluginId); + if (current?.phase === "awaiting-approval" && current.requestId === requestId) this.activity.delete(request.pluginId); + this.commit(); + } + /** + * Approve and execute one still-open model request. + * @param requestId - approval request to execute. + * @param approveFutureVersions - whether this approval covers later Packages for the same Plugin. + */ + approve(requestId, approveFutureVersions) { + const request = this.requests.get(requestId); + if (request === void 0 || !request.requiresApproval) return Promise.resolve(); + return this.orchestrate({ + agentId: request.agentId, + pluginId: request.pluginId, + packageId: request.packageId, + mode: request.mode, + requestId, + approveFutureVersions, + hasClientHalf: true + }); + } + /** + * Reject one still-open model request without executing either half. + * @param requestId - approval request to reject. + */ + async decline(requestId) { + const request = this.requests.get(requestId); + if (request === void 0 || !request.requiresApproval) return; + const current = this.activity.get(request.pluginId); + if (current?.phase !== "awaiting-approval" || current.requestId !== requestId) return; + this.requests.delete(requestId); + this.activity.delete(request.pluginId); + this.commit(); + await this.answer(requestId, { + ok: false, + reason: "rejected" + }); + } + /** + * Execute a direct panel run; the user gesture itself authorizes it. + * @param request - exact Package activation selected by the user. + */ + startUserRun(request) { + return this.orchestrate(request); + } + observe(fn) { + this.listeners.add(fn); + return () => { + this.listeners.delete(fn); + }; + } + commit() { + this.activityCache = void 0; + this.failureCache = void 0; + for (const fn of [...this.listeners]) fn(); + } + orchestrate(plan) { + const running = this.inFlight.get(plan.pluginId); + if (running !== void 0) return running; + this.activity.set(plan.pluginId, { + phase: "orchestrating", + agentId: plan.agentId, + packageId: plan.packageId, + mode: plan.mode + }); + this.failures.delete(plan.pluginId); + if (plan.requestId !== void 0) this.requests.delete(plan.requestId); + this.commit(); + const attempt = this.drive(plan).finally(() => { + this.inFlight.delete(plan.pluginId); + this.activity.delete(plan.pluginId); + this.commit(); + }); + this.inFlight.set(plan.pluginId, attempt); + return attempt; + } + async drive(plan) { + const started = await this.startHost(plan); + if (!started.ok) { + this.fail(plan, "host-half-failed", started); + if (plan.requestId !== void 0) await this.answer(plan.requestId, { + ...started, + reason: "host-half-failed" + }); + return; + } + if (!plan.hasClientHalf) return; + let source; + try { + source = await this.env.host.getClientCode(plan.agentId, plan.pluginId, started.pluginRunId); + } catch (error) { + await this.finishClientFailure(plan, started.pluginRunId, started.startedHere, errorDetails(error), error); + return; + } + const loaded = await this.env.runner.load({ + pluginId: source.pluginId, + packageId: source.packageId, + pluginRunId: source.pluginRunId, + agentId: plan.agentId, + name: source.name, + code: source.code + }).catch((error) => ({ + ok: false, + cause: "evaluate", + ...errorDetails(error), + error + })); + if (!loaded.ok) { + await this.finishClientFailure(plan, started.pluginRunId, started.startedHere, { + message: `${loaded.cause}: ${loaded.message}`, + ...loaded.stack === void 0 ? {} : { stack: loaded.stack } + }, loaded.error); + return; + } + const resolution = { + ok: true, + pluginRunId: loaded.pluginRunId, + ...loaded.waitingFor === void 0 ? {} : { waitingFor: loaded.waitingFor } + }; + if (plan.requestId !== void 0) { + await this.answer(plan.requestId, resolution); + return; + } + await this.settleDirect(plan, resolution); + } + async startHost(plan) { + try { + return await this.env.host.runHostHalf(plan.agentId, plan.pluginId, plan.packageId, plan.mode, plan.requestId ?? null, plan.approveFutureVersions ?? false); + } catch (error) { + return { + ok: false, + ...errorDetails(error) + }; + } + } + async finishClientFailure(plan, pluginRunId, startedHere, failure, originalError) { + console.error(`[cordis-client-runner] Client activation ${plan.pluginId}/${plan.packageId} (${pluginRunId}) failed:`, originalError ?? failure); + this.fail(plan, "client-half-failed", failure); + const resolution = { + ok: false, + reason: "client-half-failed", + pluginRunId, + startedHere, + ...failure + }; + if (plan.requestId !== void 0) await this.answer(plan.requestId, resolution); + else await this.settleDirect(plan, resolution); + } + async settleDirect(plan, resolution) { + try { + const response = await this.env.host.settleUserRun(plan.agentId, plan.pluginId, resolution); + if (!response.ok) this.fail(plan, "client-half-failed", response); + } catch (error) { + this.fail(plan, "client-half-failed", errorDetails(error)); + } + } + async answer(requestId, resolution) { + try { + await this.env.host.resolveRequestRun(requestId, resolution); + } catch (error) { + console.error(`[cordis-client-runner] answering run request ${requestId} failed:`, error); + } + } + fail(plan, reason, failure) { + this.failures.set(plan.pluginId, { + packageId: plan.packageId, + reason, + ...failure + }); + this.commit(); + } + }; + function sameRequest(left, right) { + return left?.requestId === right.requestId && left.agentId === right.agentId && left.pluginId === right.pluginId && left.packageId === right.packageId && left.mode === right.mode && left.name === right.name && left.purpose === right.purpose && left.requiresApproval === right.requiresApproval; + } + //#endregion + //#region lib/types/client/inspect-registry.js + /** Browser registry for read-only Cordis capability providers. */ + /** Client provider registry, manifest publisher, and live query dispatcher. */ + var ClientCordisInspectRegistry = class { + host; + providers = /* @__PURE__ */ new Map(); + active = /* @__PURE__ */ new Map(); + publishQueued = false; + syncChain = Promise.resolve(); + /** @param host - folded manifest and query result transport. */ + constructor(host) { + this.host = host; + } + /** + * Register one Client provider and publish a new complete manifest. + * @param registration - provider manifest and local handler. + * @returns idempotent disposer. + */ + register(registration) { + const { manifest } = registration; + if (manifest.id.trim() === "") throw new Error("Client Cordis inspect provider id must not be empty"); + if (this.providers.has(manifest.id)) throw new Error(`Client Cordis inspect provider "${manifest.id}" is already registered`); + const names = /* @__PURE__ */ new Set(); + for (const method of manifest.methods) { + if (names.has(method.name)) throw new Error(`Client Cordis inspect provider "${manifest.id}" repeats method "${method.name}"`); + names.add(method.name); + } + this.providers.set(manifest.id, registration); + this.publish(); + let disposed = false; + return () => { + if (disposed) return; + disposed = true; + if (this.providers.get(manifest.id) === registration) { + this.providers.delete(manifest.id); + this.publish(); + } + }; + } + /** Publish the current complete manifest, including after reconnect. */ + publish() { + if (this.publishQueued) return; + this.publishQueued = true; + queueMicrotask(() => { + this.publishQueued = false; + const manifests = [...this.providers.values()].map((provider) => provider.manifest); + this.syncChain = this.syncChain.then(async () => { + await this.host.sync(manifests); + }).catch((error) => { + console.error("[cordis-client-runner] syncing inspect providers failed:", error); + }); + }); + } + /** + * Execute and answer one Host-broadcast query. + * @param request - exact provider query and Session correlation received from Host. + * @returns after the first local result has been sent back to Host. + */ + async query(request) { + if (this.active.has(request.requestId)) return; + const controller = new AbortController(); + this.active.set(request.requestId, controller); + let resolution; + try { + const provider = this.providers.get(request.provider); + if (provider === void 0) resolution = { + ok: false, + reason: "provider-missing", + message: `Client inspect provider "${request.provider}" is unavailable` + }; + else if (!provider.manifest.methods.some((method) => method.name === request.method)) resolution = { + ok: false, + reason: "method-missing", + message: `Client inspect provider "${request.provider}" has no method "${request.method}"` + }; + else { + const data = await provider.query(request.method, request.input, { + signal: controller.signal, + sessionId: request.agentId + }); + resolution = controller.signal.aborted ? { + ok: false, + reason: "cancelled", + message: "Client inspect query was cancelled" + } : { + ok: true, + data + }; + } + } catch (error) { + resolution = controller.signal.aborted ? { + ok: false, + reason: "cancelled", + message: "Client inspect query was cancelled" + } : { + ok: false, + reason: "provider-error", + message: error instanceof Error ? error.message : String(error) + }; + } finally { + this.active.delete(request.requestId); + } + if (controller.signal.aborted) return; + await this.host.resolve(request.agentId, request.requestId, resolution); + } + /** + * Cancel local work after another page answered or the Tool call ended. + * @param requestId - query correlation that is no longer answerable. + */ + close(requestId) { + this.active.get(requestId)?.abort(); + this.active.delete(requestId); + } + }; + /** + * Provide the registry as a normal Client service. + * @param ctx - Client Cordis context receiving the service. + * @param registry - page-local inspect registry to publish. + */ + function provideClientCordisInspect(ctx, registry) { + ctx.provide("cordisInspect", registry); + } + //#endregion + //#region lib/types/client/api-catalog.js + /** + * Generated by scripts/gen-cordis-api.ts — do not edit by hand; run + * `pnpm run gen-cordis-api` to regenerate (freshness-gated by + * `pnpm run verify-cordis-api` in doc-sync). + * + * The machine-readable cordis API catalog `cordis_inspect` serves to the + * model: harness services (summary + structured public method contracts), + * harness events (mode + structured listener contracts), and the inherited `ctx` API. Produced by + * the same AST walk as docs/cordis-catalog, so this data and the rendered + * docs cannot diverge. + * + * @module @deepseek-ai/dsh-cordis-client-runner/client/api-catalog + */ + /** Every harness `ctx.` service, sorted by key. */ + const SERVICE_API = [ + { + key: "layout", + summary: "The outward layout face (`ctx.layout`): the panel transitions other plugins may trigger — and exactly what a test fake must supply.", + description: "The outward layout face (`ctx.layout`): the panel transitions other plugins may trigger — and exactly what a test fake must supply. The attachPanels wiring hook stays on the concrete class (root-entry assembly only).", + methods: [ + { + signature: "toggleSidebar(): void", + description: "Toggle the sidebar panel (closed ⟷ contract default width).", + parameters: [] + }, + { + signature: "openDetails(): void", + description: "Open the details panel (no-op when already open).", + parameters: [] + }, + { + signature: "closeDetails(): void", + description: "Close the details panel.", + parameters: [] + } + ] + }, + { + key: "locale", + summary: "Dictionary registry plus locale preference.", + description: "Dictionary registry plus locale preference. Lookup chain per key: the entry's namespace in the active locale -> that namespace's zh fallback -> the shared common namespace (active, then zh) -> the key itself (missing text stays visible, fail loud in the UI rather than blank). Reads go through getLocale; writes only through setLocale; continuous sync through the `locale/change` event, or through the LocaleFace getSnapshot/subscribe pair the render machinery consumes (installed via `ctx.slots.installLocale`).", + methods: [ + { + signature: "getLocale(): LocaleSnapshot", + description: "Read the current immutable locale snapshot.", + parameters: [], + returns: "the current snapshot (stable reference until the next change)." + }, + { + signature: "getSnapshot(): LocaleSnapshot", + description: "LocaleFace getSnapshot: the current snapshot (carries `revision`; stable reference between changes, uSES-safe).", + parameters: [], + returns: "the current snapshot." + }, + { + signature: "subscribe(fn: () => void): () => void", + description: "LocaleFace subscribe: notified on every snapshot change (locale switch or dictionary registration — registrations bump the revision so already rendered outlets pick up late-arriving dictionaries).", + parameters: [{ + name: "fn", + description: "change callback." + }], + returns: "unsubscribe." + }, + { + signature: "setLocale(id: string): void", + description: "Switch the active locale — the only user preference write entry.", + parameters: [{ + name: "id", + description: "a registered locale id; unknown ids throw." + }] + }, + { + signature: "register(ns: N, dicts: Record>): () => void", + description: "Register a declared namespace's dictionaries, all locales in one call — the typed form: each dictionary is checked against the namespace's LocaleNamespaceMap key union (a missing or extra key is a compile error), and every shipped locale is required (bilingual balance enforced at registration). Duplicate (ns, locale) throws (single occupant; a namespace's texts have one owner). Registration bumps the revision so mounted outlets pick up late-arriving dictionaries.", + parameters: [{ + name: "ns", + description: "a namespace merged into LocaleNamespaceMap." + }, { + name: "dicts", + description: "complete dictionaries keyed by locale id." + }], + returns: "disposer removing every locale registered by this call (idempotent)." + }, + { + signature: "register(ns: string, locale: string, dict: LocaleDict): () => void", + description: "Single-locale untyped form for namespaces outside the merge table (dynamic composition, tests).", + parameters: [ + { + name: "ns", + description: "namespace." + }, + { + name: "locale", + description: "locale tag." + }, + { + name: "dict", + description: "dictionary." + } + ], + returns: "disposer (idempotent)." + }, + { + signature: "bind(ns: N): TranslateNS", + description: "Bind a declared namespace to a translate function typed to its dictionary key union (plus the shared common vocabulary) — the same key domain the framework-injected `t` seat carries. The returned reference is stable per namespace (repeat binds return the same function), so it can ride inject surfaces without breaking memoization.", + parameters: [{ + name: "ns", + description: "a namespace merged into LocaleNamespaceMap." + }], + returns: "the typed translate function (reads the active locale at call time)." + }, + { + signature: "bind(ns: string): Translate", + description: "Untyped form for namespaces outside the merge table (dynamic composition, tests).", + parameters: [{ + name: "ns", + description: "namespace." + }], + returns: "the translate function." + } + ] + }, + { + key: "sessions", + summary: "The sessions-service face injected as `ctx.sessions`.", + description: "The sessions-service face injected as `ctx.sessions`.", + methods: [ + { + signature: "open(id: SessionId): void", + description: "Select a session as current.", + parameters: [{ + name: "id", + description: "session id (must exist in the list; unknown ids fail loud)." + }] + }, + { + signature: "openSubagent(address: SubagentAddress): void", + description: "Open a healthy catalog child through its exact direct-parent address.", + parameters: [{ + name: "address", + description: "catalog-derived parent and child ids." + }] + }, + { + signature: "setSubagentCatalogOpen(parentSessionId: SessionId, open: boolean): void", + description: "Mark whether a catalog menu is consuming live membership updates.", + parameters: [{ + name: "parentSessionId", + description: "catalog owner." + }, { + name: "open", + description: "current menu state." + }] + }, + { + signature: "refreshSubagents(parentSessionId: SessionId): Promise", + description: "Refresh one direct-child catalog.", + parameters: [{ + name: "parentSessionId", + description: "catalog owner." + }], + returns: "completion of the current or newly started refresh." + }, + { + signature: "search( query: string, signal: AbortSignal, ): Promise>", + description: "Search the Host's visible message-content index. Results stay request-local; the list snapshot remains the metadata authority.", + parameters: [{ + name: "query", + description: "non-blank literal phrase." + }, { + name: "signal", + description: "cancellation for a superseded search." + }], + returns: "bounded results, or a business/transport error." + }, + { + signature: "fork(opts: { sessionId: SessionId; atSeq?: number; increaseTitle?: boolean }): Promise", + description: "Fork a session from a completed-turn prefix of the source; on resolution the child is in the list store and `open()` can target it.", + parameters: [{ + name: "opts", + description: "source session id, the optional event seq anchoring the cut (the boundary is the first turn/end at or after it; an in-log anchor in an open turn is unavailable rather than clipped backward), and whether to increment an inherited durable title before resolving." + }], + returns: "the child session id.", + throws: ["when the fork fails, or when a requested child-title rename fails after creation."] + }, + { + signature: "scope(id: SessionId): AgentContext | undefined", + description: "Resolve an Agent-scoped context view (use-and-discard).", + parameters: [{ + name: "id", + description: "session id." + }], + returns: "scoped ctx, or undefined for a session neither listed nor already scoped." + }, + { + signature: "binding(id: SessionId): SessionBinding | undefined", + description: "Resolve the stable session binding (scope-addressed assembly feed).", + parameters: [{ + name: "id", + description: "session id." + }], + returns: "binding, or undefined for a session neither listed nor already scoped." + } + ] + }, + { + key: "slots", + summary: "cordis Service layer of the slot system; see the module doc for the split with SlotCore.", + description: "cordis Service layer of the slot system; see the module doc for the split with SlotCore.", + methods: [{ + signature: "declare readonly register: SlotCore['register']", + description: "The single registration API. The typed face IS the core's register (both overloads reused verbatim — one authority, no structural copy; see SlotCore.register for children declaration, store seat, inject face, load-time validation, and the unload cascade). This layer adds: disposal through the caller's ctx.effect (fiber unload = cascade), exclusive-factory minting (`store: createXxxStore` becomes a per-entry handle), the registrant diagnostics stamp, and store-instance lifecycle on the entry axis.\n\nDeclared here, implemented by prototype assignment below the class: it MUST stay a prototype method (never an instance arrow) — the cordis service proxy binds `this.ctx` to the CALLER's context at call time, which is what routes the effect (and the unload cascade) into the caller's fiber. An arrow property would freeze `this` to the service's own root ctx and silently break per-plugin disposal.", + parameters: [] + }, { + signature: "inject(key: keyof SlotMap & string, callback: () => SlotInjectionEffect): () => void", + description: "Install an effect for each declaration lifetime of a slot. The callback runs synchronously when the declaration already exists; otherwise it runs inside the declaring `register()` call after the declaration is committed. Collapse disposes the effect and a later declaration runs it again. Callback effects are synchronous disposers; iterable effects install transactionally and dispose in reverse order. The controller belongs to the caller's fiber, so plugin unload cancels a pending wait and removes any active contribution.", + parameters: [{ + name: "key", + description: "declared SlotMap key to depend on." + }, { + name: "callback", + description: "creates one disposer or an iterable of disposers." + }], + returns: "idempotent disposer for the wait and active effect.", + throws: ["callback setup failures synchronously when the slot is already declared."] + }] + }, + { + key: "theme", + summary: "Theme registry and preference owner.", + description: "Theme registry and preference owner. `light`/`dark` are built in (the base stylesheets carry both palettes); third-party themes register alias-layer overrides. Reads go through getTheme; preference writes only through setTheme; continuous sync only through the `theme/change` event. overrideTokens stacks partial token layers over the active theme without touching the registry. The service holds the `prefers-color-scheme` media query (environment sensing, not presentation) and re-emits when the OS scheme flips while the preference is `system`.", + methods: [ + { + signature: "getTheme(): ThemeSnapshot", + description: "Read the current immutable theme snapshot.", + parameters: [], + returns: "the current snapshot (stable reference until the next change)." + }, + { + signature: "setTheme(id: string): void", + description: "Switch the theme preference — the only user preference write entry. Built-in preferences are written through the settings scope and every accepted value emits `theme/change`.", + parameters: [{ + name: "id", + description: "a registered theme id or `system`; unknown ids throw." + }] + }, + { + signature: "register(definition: ThemeDefinition): () => void", + description: "Register a theme. Duplicate id throws (single occupant per id; the built-in pair counts; `system` is a preference, not a registrable id).", + parameters: [{ + name: "definition", + description: "theme id, colorScheme, and alias-token overrides." + }], + returns: "disposer. Disposing the theme backing the active preference resets the preference to the default so the UI never keeps tokens of an unregistered theme." + }, + { + signature: "overrideTokens(source: string, tokens: ThemeTokenOverrides): () => void", + description: "Stack a token override layer on top of the active theme — the token-level analogue of slot shading: the base theme stays untouched, layers compose in seq order with later layers winning per-token, and removing a layer restores whatever it covered. Calling again with the same source replaces that source's whole layer and restacks it on top (effect re-registration semantics). Emits `theme/change` with the recomposed snapshot.", + parameters: [{ + name: "source", + description: "layer identity; one layer per source (dynamic packages pass their package id — the façade pins it, so it also names the layer's origin for inspection)." + }, { + name: "tokens", + description: "token-name → `{ light, dark }` value pairs. Validated at runtime (model-authored callers reach this boundary with untyped JS); a bare string value throws a teaching error." + }], + returns: "disposer removing exactly the layer this call created; a no-op once the source has re-overridden (the newer layer is not torn down)." + } + ] + }, + { + key: "timer", + summary: "Disposable timer helpers mixed into Cordis contexts.", + description: "Disposable timer helpers mixed into Cordis contexts.", + methods: [ + { + signature: "timeout(callback: () => void, delay: number): () => void", + description: "Run a callback once and return its disposer.", + parameters: [] + }, + { + signature: "timeout(delay: number): Promise", + description: "Resolve after a delay; disposal rejects the pending promise.", + parameters: [] + }, + { + signature: "interval(callback: () => void, delay: number): () => void", + description: "Run a callback repeatedly and return its disposer.", + parameters: [] + }, + { + signature: "interval(delay: number): AsyncIterableIterator", + description: "Return an async iterator of timer ticks.", + parameters: [] + }, + { + signature: "throttle void>(callback: F, delay: number, noTrailing?: boolean): F & { dispose: () => void }", + description: "Return a throttled function whose timer is disposed with the current fiber.", + parameters: [] + }, + { + signature: "debounce void>(callback: F, delay: number): F & { dispose: () => void }", + description: "Return a debounced function whose timer is disposed with the current fiber.", + parameters: [] + } + ] + }, + { + key: "workspaces", + summary: "The workspaces-service face injected as `ctx.workspaces`.", + description: "The workspaces-service face injected as `ctx.workspaces`.", + methods: [ + { + signature: "connectWorkspace(workspaceId: WorkspaceId): Promise", + description: "Connect a Workspace to its reusable or freshly created blank session.", + parameters: [{ + name: "workspaceId", + description: "target workspace." + }], + returns: "the connected session id." + }, + { + signature: "startSession(workspaceId?: WorkspaceId): void", + description: "The New Session flow: connect the explicit, current-Session, or recent Workspace and open the resulting session; failures surface on the session list state.", + parameters: [{ + name: "workspaceId", + description: "explicit target; omitted inherits the current Session's Workspace before falling back to the recency projection." + }] + }, + { + signature: "create(input: { path: string }): Promise", + description: "Register an existing path as a Workspace.", + parameters: [{ + name: "input", + description: "the Host create payload." + }], + returns: "the created or idempotently resolved Workspace." + }, + { + signature: "pickDirectory(): Promise", + description: "Open the Host's native directory picker.", + parameters: [], + returns: "the selected path, or null when the user cancelled." + }, + { + signature: "listDirectory(path?: string, signal?: AbortSignal): Promise", + description: "List one directory level through the Host's `browse` capability.", + parameters: [{ + name: "path", + description: "absolute directory to list; absent lists the Host home directory." + }, { + name: "signal", + description: "aborts the wire request (and the Host's scan) when the caller supersedes it." + }], + returns: "the level's listing with breadcrumb ancestry." + }, + { + signature: "createDirectory(path: string, name: string): Promise", + description: "Create one child directory through the Host's `browse` capability.", + parameters: [{ + name: "path", + description: "absolute existing parent directory." + }, { + name: "name", + description: "single non-blank path segment." + }], + returns: "the created directory's absolute path." + }, + { + signature: "openPath(path: string): Promise", + description: "Open a filesystem path with the Host operating system's default application.", + parameters: [{ + name: "path", + description: "absolute or host-resolvable path." + }] + }, + { + signature: "rename(workspaceId: WorkspaceId, title: string): Promise", + description: "Rename a Workspace.", + parameters: [{ + name: "workspaceId", + description: "target workspace." + }, { + name: "title", + description: "the new display title." + }], + returns: "the updated Workspace view." + }, + { + signature: "delete(workspaceId: WorkspaceId): Promise", + description: "Delete a Workspace (its sessions fall back to the unaccounted group).", + parameters: [{ + name: "workspaceId", + description: "target workspace." + }] + }, + { + signature: "insertSessionBefore(workspaceId: WorkspaceId, sessionId: SessionId, beforeSessionId?: SessionId): Promise", + description: "Move an accounted session within/into a Workspace's ordered list.", + parameters: [ + { + name: "workspaceId", + description: "target workspace." + }, + { + name: "sessionId", + description: "accounted session to move." + }, + { + name: "beforeSessionId", + description: "accounted anchor to insert before; omitted appends." + } + ], + returns: "the updated Workspace view." + }, + { + signature: "archiveSession(sessionId: SessionId): Promise", + description: "Archive a session into the registry-global set (hidden from grouping surfaces; session log and accounting slot remain). Archiving the current session clears the selection into the New Session view state.", + parameters: [{ + name: "sessionId", + description: "session to archive." + }] + } + ] + } + ]; + /** Every harness event, sorted by name. */ + const EVENT_API = [ + { + name: "connection/reset", + mode: "emit", + signature: "'connection/reset'(): void", + summary: "A connection generation was (re-)established.", + description: "A connection generation was (re-)established. Wire-derived caches must treat their state as stale and repull (commands directory; the queue mirrors reset themselves through the session resync path).", + parameters: [] + }, + { + name: "locale/change", + mode: "emit", + signature: "'locale/change'(snapshot: LocaleSnapshot): void", + summary: "The active locale switched.", + description: "The active locale switched. Dictionary registrations do NOT emit this event (listeners may re-register slots in response, and boot registers one namespace per package); continuous render refresh rides the LocaleFace revision instead.", + parameters: [{ + name: "snapshot", + description: "Current immutable locale snapshot." + }] + }, + { + name: "slots/changed", + mode: "emit", + signature: "'slots/changed'(key: string): void", + summary: "A slot's definition or registration set changed.", + description: "A slot's definition or registration set changed.", + parameters: [{ + name: "key", + description: "the mutated SlotMap key." + }] + }, + { + name: "theme/change", + mode: "emit", + signature: "'theme/change'(snapshot: ThemeSnapshot): void", + summary: "Theme state changed (preference switched, registry updated, or the OS color scheme changed while the preference is `system`).", + description: "Theme state changed (preference switched, registry updated, or the OS color scheme changed while the preference is `system`).", + parameters: [{ + name: "snapshot", + description: "Current immutable theme snapshot." + }] + } + ]; + /** Shapes of every exported type the Service and Event signatures reference (transitively), sorted by name. */ + const TYPE_API = [ + { + name: "ActionsDecl", + declaration: "export type ActionsDecl = Record void>;" + }, + { + name: "AgentContext", + declaration: "export type AgentContext = Omit & {\n readonly remote: TypertClientRemote & TypertRemoteScopeApi<'agent'>;\n};" + }, + { + name: "AssistantBlock", + declaration: "export type AssistantBlock = {\n kind: 'text';\n text: string;\n} | {\n kind: 'reasoning';\n text: string;\n} | {\n kind: 'image';\n attachment: ImageAttachmentRef;\n} | {\n kind: 'tool-call';\n callId: string;\n name: string;\n argsRaw: string;\n} | {\n kind: 'other';\n block: unknown;\n};" + }, + { + name: "AssistantMessageNode", + declaration: "export interface AssistantMessageNode {\n kind: 'assistant';\n seq: number;\n messageId?: MessageId;\n time: number;\n turn: number;\n step: number;\n blocks: readonly AssistantBlock[];\n usage?: unknown;\n provenance?: AssistantProvenanceView;\n requestConfig?: AssistantRequestConfig;\n timing?: AssistantTiming;\n interrupted?: true;\n}" + }, + { + name: "AssistantProvenanceView", + declaration: "export interface AssistantProvenanceView {\n provider: string;\n model: string;\n}" + }, + { + name: "AssistantRequestConfig", + declaration: "export interface AssistantRequestConfig {\n provider: string;\n model: string;\n purpose?: string;\n thinking?: string;\n reasoningEffort?: string;\n temperature?: number;\n maxTokens?: number;\n stop?: readonly string[];\n}" + }, + { + name: "AssistantTiming", + declaration: "export interface AssistantTiming {\n stepStartTime: number | null;\n firstTokenTime: number | null;\n completedTime: number;\n}" + }, + { + name: "BakedActions", + declaration: "export type BakedActions> = {\n [K in keyof A]: A[K] extends (draft: T, ...params: infer P) => void ? (...params: P) => void : never;\n};" + }, + { + name: "BoundActions", + declaration: "export type BoundActions = H extends StoreHandle ? BakedActions : never;" + }, + { + name: "ChainKeysOf", + declaration: "export type ChainKeysOf = S extends unknown ? (SlotMap[S]['kind'] extends 'chain' ? S : never) : never;" + }, + { + name: "ChainRenderOpts", + declaration: "export interface ChainRenderOpts {\n fallback?: ReactNode;\n overlay?: boolean;\n}" + }, + { + name: "ChatConversationViewNode", + declaration: "export interface ChatConversationViewNode extends ConversationViewNode {\n readonly target: 'chat';\n readonly anchorSeq: number;\n readonly location: ConversationLocation;\n readonly visibility: 'visible' | 'hidden';\n}" + }, + { + name: "ChatLocationNodeIndex", + declaration: "export interface ChatLocationNodeIndex {\n getTurn(turn: number): readonly string[];\n getStep(turn: number, step: number): readonly string[];\n}" + }, + { + name: "ChatNodeStore", + declaration: "export interface ChatNodeStore {\n get(key: string): ChatConversationViewNode | undefined;\n values(): readonly ChatConversationViewNode[];\n}" + }, + { + name: "ChatSnapshot", + declaration: "export interface ChatSnapshot {\n readonly order: readonly string[];\n readonly nodes: ChatNodeStore;\n readonly locations: ChatLocationNodeIndex;\n readonly timeline: ConversationTimelineSnapshot;\n readonly legacy: LegacyConversationSlice;\n}" + }, + { + name: "ChildrenDecl", + declaration: "export type ChildrenDecl = {\n [P in keyof SlotMap & string]?: SlotSpec;\n};" + }, + { + name: "CommandNode", + declaration: "export interface CommandNode {\n kind: 'command';\n seq: number;\n time: number;\n commandId: CommandId;\n name: string | null;\n args: string | null;\n outcome: {\n kind: 'success' | 'error';\n text?: string;\n sourceEventSeq?: number;\n } | null;\n}" + }, + { + name: "CommonKeyOf", + declaration: "export type CommonKeyOf = LocaleNamespaceMap extends {\n common: infer C;\n} ? C & string : never;" + }, + { + name: "CompactionSummaryNode", + declaration: "export interface CompactionSummaryNode {\n kind: 'compaction';\n seq: number;\n time: number;\n summary: string | null;\n summaryEventSeq: number | null;\n shadowedItemCount: number | null;\n shadowedTokenCount: number | null;\n}" + }, + { + name: "ComposedProps", + declaration: "export type ComposedProps, S extends keyof SlotMap & string, H, I extends object, M = never, N = undefined> = PropsRuntime & PropsRenderSlots & PropsStore & InjectFace & MatchedShare & PropsLocale;" + }, + { + name: "ComposerPhase", + declaration: "export type ComposerPhase = 'blank' | 'engaging' | 'active';" + }, + { + name: "ContextMessageNode", + declaration: "export interface ContextMessageNode {\n kind: 'context';\n seq: number;\n time: number;\n content: readonly ContentBlock[];\n source: unknown;\n provenance: ContextProvenanceView;\n form: KnownContextForm | null;\n}" + }, + { + name: "ContextProvenanceView", + declaration: "export interface ContextProvenanceView {\n role: ContextRole;\n label: string | null;\n}" + }, + { + name: "ContextRole", + declaration: "export type ContextRole = 'inject' | 'recall';" + }, + { + name: "ConversationLocation", + declaration: "export type ConversationLocation = {\n readonly kind: 'session';\n} | {\n readonly kind: 'turn';\n readonly turn: TurnLocation;\n} | {\n readonly kind: 'step';\n readonly turn: TurnLocation;\n readonly step: StepLocation;\n} | {\n readonly kind: 'unresolved';\n};" + }, + { + name: "ConversationLocationDataStore", + declaration: "export interface ConversationLocationDataStore {\n get(key: Key): Readonly | undefined;\n}" + }, + { + name: "ConversationNode", + declaration: "export type ConversationNode = UserMessageNode | AssistantMessageNode | SteeringMessageNode | ContextMessageNode | ModelRetryNode | TurnErrorNode | TurnMaxTokensNode | ToolResultNode | CommandNode | CompactionSummaryNode | UnknownSurfaceNode;" + }, + { + name: "ConversationSnapshot", + declaration: "export interface ConversationSnapshot {\n sessionId: SessionId;\n views: ConversationViewSnapshotStore;\n chat: ChatSnapshot;\n nodes: readonly ConversationNode[];\n turnTimings: ReadonlyMap;\n turnEnds: ReadonlyMap;\n partial: PartialAssistant | null;\n runningCalls: readonly RunningToolCall[];\n pending: readonly PendingInteraction[];\n queue: readonly QueuedMessage[];\n running: boolean;\n subagent: {\n address: SubagentAddress;\n parentAvailable: boolean;\n } | null;\n composerPhase: ComposerPhase;\n removed: boolean;\n openState: OpenState;\n openError: RpcError | null;\n hasMore: boolean;\n loadingOlder: boolean;\n promptError: PromptError | null;\n blank: boolean;\n lastAgentError: string | null;\n}" + }, + { + name: "ConversationStepDataMap", + declaration: "export interface ConversationStepDataMap {\n}" + }, + { + name: "ConversationTimelineSnapshot", + declaration: "export interface ConversationTimelineSnapshot {\n readonly turnOrder: readonly number[];\n readonly turns: ReadonlyMap;\n}" + }, + { + name: "ConversationTurnDataMap", + declaration: "export interface ConversationTurnDataMap {\n}" + }, + { + name: "ConversationViewNode", + declaration: "export interface ConversationViewNode {\n readonly key: string;\n readonly kind: string;\n readonly id: string;\n readonly target: string;\n readonly data: unknown;\n}" + }, + { + name: "ConversationViewSnapshotMap", + declaration: "export interface ConversationViewSnapshotMap {\n}" + }, + { + name: "ConversationViewSnapshotStore", + declaration: "export interface ConversationViewSnapshotStore {\n get>(target: Target): ConversationViewSnapshotMap[Target] | undefined;\n}" + }, + { + name: "EntryKeyOf", + declaration: "export type EntryKeyOf = SlotMap[K] extends {\n kind: 'keyed';\n keyProps: infer P extends object;\n} ? keyof P & string : string;" + }, + { + name: "GlobalStandardProps", + declaration: "export interface GlobalStandardProps {\n}" + }, + { + name: "HandleOf", + declaration: "export type HandleOf = H extends () => infer R ? R : H;" + }, + { + name: "HooksSources", + declaration: "export type HooksSources = Record>;" + }, + { + name: "HostObservable", + declaration: "export interface HostObservable {\n getSnapshot(): T;\n subscribe(fn: () => void): () => void;\n}" + }, + { + name: "InjectFace", + declaration: "export type InjectFace = I extends {\n hooks: infer HS extends HooksSources;\n} ? Omit & PropsHooks : I;" + }, + { + name: "InjectParams", + declaration: "export type InjectParams = ScopeOf extends 'session' ? ([\n H\n] extends [\n StoreDecl\n] ? [\n sessionId: SessionIdOf,\n actions: BoundActions>\n] : [\n sessionId: SessionIdOf\n]) : ScopeOf extends 'session-maybe' ? ([\n H\n] extends [\n StoreDecl\n] ? [\n sessionId: SessionIdOf | undefined,\n actions: BoundActions> | undefined\n] : [\n sessionId: SessionIdOf | undefined\n]) : ([\n H\n] extends [\n StoreDecl\n] ? [\n actions: BoundActions>\n] : [\n]);" + }, + { + name: "ISession", + declaration: "export interface ISession {\n readonly sessionId: SessionId;\n readonly projections: ProjectionsFace;\n prompt(content: PromptContentPart[], mode: 'queue' | 'steer'): Promise>;\n readAttachment(attachmentId: AttachmentIdType): Promise>;\n updateQueue(itemId: MessageId, action: QueueAction): Promise>;\n cancel(): Promise>;\n rename(title: string): Promise>;\n loadOlder(): Promise;\n command(line: string): Promise>;\n}" + }, + { + name: "KeyPropsOf", + declaration: "export type KeyPropsOf> = SlotMap[K] extends {\n kind: 'keyed';\n keyProps: infer P extends object;\n} ? EntryKey extends keyof P ? P[EntryKey] extends object ? P[EntryKey] : never : never : object;" + }, + { + name: "KnownContextForm", + declaration: "export type KnownContextForm = typeof KNOWN_FORMS[number];" + }, + { + name: "LegacyConversationSlice", + declaration: "export interface LegacyConversationSlice {\n readonly nodes: readonly ConversationNode[];\n readonly turnTimings: ReadonlyMap;\n readonly turnEnds: ReadonlyMap;\n readonly partial: PartialAssistant | null;\n readonly runningCalls: readonly RunningToolCall[];\n}" + }, + { + name: "LocaleDefinition", + declaration: "export interface LocaleDefinition {\n id: LocaleId;\n label: string;\n}" + }, + { + name: "LocaleDict", + declaration: "export type LocaleDict = Record;" + }, + { + name: "LocaleDictOf", + declaration: "export type LocaleDictOf = Record;" + }, + { + name: "LocaleId", + declaration: "export type LocaleId = typeof LOCALE_IDS[number];" + }, + { + name: "LocaleKeysOf", + declaration: "export type LocaleKeysOf = (LocaleNamespaceMap[N] & string) | CommonKeyOf;" + }, + { + name: "LocaleNamespaceMap", + declaration: "export interface LocaleNamespaceMap {\n}" + }, + { + name: "LocaleSnapshot", + declaration: "export interface LocaleSnapshot {\n active: LocaleId;\n locales: readonly LocaleDefinition[];\n revision: number;\n}" + }, + { + name: "MatchedShare", + declaration: "export type MatchedShare = E['kind'] extends 'chain' ? {\n matched: M;\n} : object;" + }, + { + name: "ModelRetryNode", + declaration: "export type ModelRetryNode = LlmRetryEventData & {\n kind: 'model-retry';\n seq: number;\n time: number;\n retryState: 'scheduled' | 'started' | 'cancelled';\n};" + }, + { + name: "ObservableSnapshot", + declaration: "export interface ObservableSnapshot {\n getSnapshot(): T;\n subscribe(fn: () => void): () => void;\n}" + }, + { + name: "OpenState", + declaration: "export type OpenState = 'cold' | 'loading' | 'open' | 'error';" + }, + { + name: "OwnerOf", + declaration: "export type OwnerOf = SlotMap[K] extends {\n owner: infer O extends object;\n} ? O : object;" + }, + { + name: "PartialAssistant", + declaration: "export interface PartialAssistant {\n turn: number;\n step: number;\n blocks: readonly AssistantBlock[];\n}" + }, + { + name: "PendingInteraction", + declaration: "export type PendingInteraction = {\n [K in PendingKind]: PendingWait;\n}[PendingKind];" + }, + { + name: "PendingKind", + declaration: "export type PendingKind = keyof PendingPayloads;" + }, + { + name: "PendingPayloads", + declaration: "export interface PendingPayloads {\n approval: Omit, 'type' | 'sessionId'>;\n question: Omit, 'type' | 'sessionId'>;\n}" + }, + { + name: "PendingWait", + declaration: "export class PendingWait {\n readonly kind: K;\n readonly key: string;\n readonly sessionId: SessionId;\n readonly payload: PendingPayloads[K];\n constructor(kind: K, rpcId: RpcId, sessionId: SessionId, payload: PendingPayloads[K], respond: (message: ClientResponse) => Promise);\n respond(result: ClientResponse['result']): Promise;\n markSettled(): void;\n}" + }, + { + name: "ProjectionsFace", + declaration: "export interface ProjectionsFace {\n faceOf(key: string): ObservableSnapshot;\n}" + }, + { + name: "PromptError", + declaration: "export interface PromptError {\n op: 'send' | 'stop';\n error: RpcError;\n}" + }, + { + name: "PropsHooks", + declaration: "export type PropsHooks = {\n [N in keyof HS & string as `use${Capitalize}`]: SnapshotSelectorHook ? T : never>;\n};" + }, + { + name: "PropsLocale", + declaration: "export type PropsLocale = N extends keyof LocaleNamespaceMap & string ? {\n t: TranslateNS;\n} : object;" + }, + { + name: "PropsRenderSlots", + declaration: "export type PropsRenderSlots = {\n renderSlot: RenderSlotFn>>;\n readonly __renders?: ((key: S) => void) | undefined;\n} & ([\n ChainKeysOf\n] extends [\n never\n] ? object : {\n renderSlotChain: >(key: K, owner: OwnerOf, opts?: ChainRenderOpts) => ReactNode;\n}) & ('session' extends ScopeOf ? {\n SessionProvider: SessionProviderComponent;\n} : object);" + }, + { + name: "PropsRuntime", + declaration: "export type PropsRuntime = EntryKeyOf> = OwnerOf & KeyPropsOf & SlotInjectFace> & (ScopeOf extends 'session' ? SessionStandardProps : ScopeOf extends 'session-maybe' ? SessionMaybeStandardProps : object) & GlobalStandardProps;" + }, + { + name: "PropsSlotHooks", + declaration: "export type PropsSlotHooks = {\n [N in keyof HS & string as `use${Capitalize}`]: BoundHookOf;\n};" + }, + { + name: "PropsStore", + declaration: "export type PropsStore = H extends StoreHandle ? {\n useStore: SnapshotSelectorHook;\n actions: BakedActions;\n} : object;" + }, + { + name: "QueueAction", + declaration: "export type QueueAction = Parameters[1];" + }, + { + name: "RunningToolCall", + declaration: "export interface RunningToolCall {\n callId: string;\n name: string;\n argsRaw: string;\n turn: number;\n step: number;\n time: number;\n callView: ToolCallView | null;\n subCalls: readonly ToolCallBlock[];\n}" + }, + { + name: "ScopeOf", + declaration: "export type ScopeOf = SlotMap[K]['scope'];" + }, + { + name: "SessionAreaProps", + declaration: "export interface SessionAreaProps {\n empty?: (() => ReactNode) | undefined;\n children: (sessionId: SessionIdOf) => ReactNode;\n}" + }, + { + name: "SessionBinding", + declaration: "export interface SessionBinding {\n readonly sessionId: SessionId;\n readonly session: SessionFace;\n readonly ctx: AgentContext;\n}" + }, + { + name: "SessionFace", + declaration: "export type SessionFace = ISession & ObservableSnapshot;" + }, + { + name: "SessionIdOf", + declaration: "export type SessionIdOf = SessionStandardProps extends {\n sessionId: infer S;\n} ? S : string;" + }, + { + name: "SessionMaybeStandardProps", + declaration: "export interface SessionMaybeStandardProps {\n}" + }, + { + name: "SessionProviderComponent", + declaration: "export type SessionProviderComponent = (props: SessionAreaProps) => ReactNode;" + }, + { + name: "SessionSearchResultItem", + declaration: "export interface SessionSearchResultItem {\n sessionId: SessionId;\n snippet: string;\n}" + }, + { + name: "SessionStandardProps", + declaration: "export interface SessionStandardProps {\n}" + }, + { + name: "SlotComponent", + declaration: "export type SlotComponent

= (props: P) => ReactNode;" + }, + { + name: "SlotCore", + declaration: "export class SlotCore {\n constructor();\n register = EntryKeyOf, const D extends ChildrenDecl = Record, H extends StoreDecl | undefined = undefined, M = never, N extends (keyof LocaleNamespaceMap & string) | undefined = undefined, C extends SlotComponent = SlotComponent>(options: BaseOptions & {\n inject?: undefined;\n }, component: C & SlotComponent, keyof NoInfer & keyof SlotMap & string, HandleOf>, object, NoInfer, NoInfer>> & RendersCheck): () => void;\n register = EntryKeyOf, const D extends ChildrenDecl = Record, H extends StoreDecl | undefined = undefined, M = never, N extends (keyof LocaleNamespaceMap & string) | undefined = undefined, C extends SlotComponent = SlotComponent>(options: BaseOptions & {\n inject: (...args: InjectParams) => I;\n }, component: C & SlotComponent, keyof NoInfer & keyof SlotMap & string, HandleOf>, I, NoInfer, NoInfer>> & RendersCheck): () => void;\n register(options: ErasedOptions, component: unknown): () => void;\n isLive(entry: StoredEntry): boolean;\n entries(key: string): readonly StoredEntry[];\n entriesOfSlot(key /* …truncated — full shape in source */" + }, + { + name: "SlotEntryDef", + declaration: "export interface SlotEntryDef {\n kind: SlotKind;\n scope: SlotScope;\n owner?: object;\n keyProps?: Record;\n hookContext?: unknown;\n inject?: object;\n}" + }, + { + name: "SlotInjectFace", + declaration: "export type SlotInjectFace = I extends {\n hooks: infer HS extends object;\n} ? Omit & PropsSlotHooks : I;" + }, + { + name: "SlotInjectOf", + declaration: "export type SlotInjectOf = SlotMap[K] extends {\n inject: infer Injected extends object;\n} ? Injected : object;" + }, + { + name: "SlotKind", + declaration: "export type SlotKind = 'single' | 'list' | 'keyed' | 'chain';" + }, + { + name: "SlotLabel", + declaration: "export type SlotLabel = string | (() => string);" + }, + { + name: "SlotMap", + declaration: "export interface SlotMap {\n}" + }, + { + name: "SlotScope", + declaration: "export type SlotScope = 'root' | 'session-maybe' | 'session';" + }, + { + name: "SlotSpec", + declaration: "export type SlotSpec = {\n kind: E['kind'];\n scope: E['scope'];\n} & ('inject' extends keyof E ? E extends {\n inject: infer Injected extends object;\n} ? {\n inject: Injected;\n} : {\n inject?: object;\n} : {\n inject?: never;\n});" + }, + { + name: "SnapshotSelectorHook", + declaration: "export type SnapshotSelectorHook = (sel: (s: T) => S, eq?: (a: S, b: S) => boolean) => S;" + }, + { + name: "SteeringMessageNode", + declaration: "export interface SteeringMessageNode {\n kind: 'steering';\n messageId: MessageId;\n seq: number;\n time: number;\n content: readonly ContentBlock[];\n source: unknown;\n}" + }, + { + name: "StepLocation", + declaration: "export interface StepLocation {\n readonly turn: number;\n readonly step: number;\n readonly start: SessionEvent<'step/start'> | undefined;\n readonly end: SessionEvent<'step/end'> | undefined;\n readonly status: 'open' | 'closed' | 'unknown';\n readonly data: ConversationLocationDataStore;\n}" + }, + { + name: "StoreDecl", + declaration: "export type StoreDecl = StoreHandle | StoreFactory;" + }, + { + name: "StoredEntry", + declaration: "export interface StoredEntry {\n component: unknown;\n options: {\n key?: string;\n id?: string;\n order?: number;\n label?: SlotLabel;\n priority?: number;\n };\n select?: ((owner: never) => unknown) | undefined;\n inject?: ((...args: never[]) => Record) | undefined;\n children?: Readonly>> | undefined;\n store?: StoreDecl | undefined;\n locale?: string | undefined;\n registrant?: string | undefined;\n}" + }, + { + name: "StoreFactory", + declaration: "export type StoreFactory = () => StoreHandle;" + }, + { + name: "StoreHandle", + declaration: "export interface StoreHandle> {\n readonly spec: StoreSpec;\n create(scopeKey?: string): StoreInstance;\n}" + }, + { + name: "StoreInstance", + declaration: "export interface StoreInstance> {\n readonly actions: BakedActions;\n getSnapshot(): T;\n subscribe(fn: () => void): () => void;\n clearPersisted(): void;\n}" + }, + { + name: "StoreSpec", + declaration: "export interface StoreSpec> {\n init: () => T;\n persist?: string;\n actions: A;\n}" + }, + { + name: "ThemeDefinition", + declaration: "export interface ThemeDefinition {\n id: string;\n colorScheme: 'light' | 'dark';\n tokens: ThemeTokens;\n}" + }, + { + name: "ThemePreference", + declaration: "export type ThemePreference = typeof THEME_PREFERENCES[number];" + }, + { + name: "ThemeSnapshot", + declaration: "export interface ThemeSnapshot {\n preference: ThemePreference;\n active: ThemeDefinition;\n themes: readonly ThemeDefinition[];\n revision: number;\n}" + }, + { + name: "ThemeTokenModes", + declaration: "export interface ThemeTokenModes {\n light: string;\n dark: string;\n}" + }, + { + name: "ThemeTokenOverrides", + declaration: "export type ThemeTokenOverrides = Record;" + }, + { + name: "ThemeTokens", + declaration: "export type ThemeTokens = Record;" + }, + { + name: "ToolCallBlock", + declaration: "export type ToolCallBlock = RunningToolCall | ToolResultNode;" + }, + { + name: "ToolResultNode", + declaration: "export interface ToolResultNode {\n kind: 'tool-result';\n seq: number;\n time: number;\n callId: string;\n call: {\n name: string;\n argsRaw: string;\n } | null;\n callTime: number | null;\n content: readonly ContentBlock[];\n isError: boolean;\n error?: {\n name: string;\n code: string;\n };\n meta?: unknown;\n callView: ToolCallView | null;\n resultView: ToolResultView | null;\n subCalls: readonly ToolCallBlock[];\n}" + }, + { + name: "Translate", + declaration: "export type Translate = (key: K, params?: Record) => string;" + }, + { + name: "TranslateNS", + declaration: "export type TranslateNS = Translate>;" + }, + { + name: "TurnErrorNode", + declaration: "export interface TurnErrorNode {\n kind: 'turn-error';\n seq: number;\n time: number;\n turn: number;\n step: number;\n message: string;\n code?: string;\n}" + }, + { + name: "TurnLocation", + declaration: "export interface TurnLocation {\n readonly turn: number;\n readonly start: SessionEvent<'turn/start'> | undefined;\n readonly end: SessionEvent<'turn/end'> | undefined;\n readonly status: 'open' | 'closed' | 'unknown';\n readonly steps: readonly StepLocation[];\n readonly data: ConversationLocationDataStore;\n}" + }, + { + name: "TurnMaxTokensNode", + declaration: "export interface TurnMaxTokensNode {\n kind: 'turn-max-tokens';\n seq: number;\n time: number;\n turn: number;\n step: number;\n}" + }, + { + name: "UnknownSurfaceNode", + declaration: "export interface UnknownSurfaceNode {\n kind: 'unknown';\n seq: number;\n time: number;\n type: string;\n data: unknown;\n}" + }, + { + name: "UserMessageNode", + declaration: "export interface UserMessageNode {\n kind: 'user';\n seq: number;\n time: number;\n content: readonly ContentBlock[];\n source: unknown;\n}" + } + ]; + function referencedTypeClosure(seeds) { + const included = /* @__PURE__ */ new Set(); + let frontier = [...seeds]; + while (frontier.length > 0) { + const next = []; + for (const entry of TYPE_API) { + if (included.has(entry.name)) continue; + const pattern = new RegExp(`\b${entry.name}\b`); + if (!frontier.some((text) => pattern.test(text))) continue; + included.add(entry.name); + next.push(entry.declaration); + } + frontier = next; + } + return TYPE_API.filter((entry) => included.has(entry.name)); + } + function contextProperty(key) { + return /^[A-Za-z_$][\w$]*$/.test(key) ? `ctx.${key}` : `ctx[${JSON.stringify(key)}]`; + } + /** + * Project the Service Catalog as a compact directory or one exact coding contract. + * @param key - exact Service key; omit it to list all Services and method signatures. + * @param services - platform-specific visible Service entries. + * @returns compact navigation data or one detailed Service with its referenced type closure. + */ + function queryServiceApi(key, services = SERVICE_API) { + if (key === void 0) return { + mode: "catalog", + services: services.map((service) => ({ + key: service.key, + description: service.summary, + methods: service.methods.map((method) => ({ signature: method.signature })) + })) + }; + const service = services.find((candidate) => candidate.key === key); + if (service === void 0) throw new Error(`no catalogued Service named "${key}"`); + return { + mode: "service", + service: { + key: service.key, + description: service.description, + access: { + optional: { + expression: `ctx.get(${JSON.stringify(service.key)})`, + requiresUndefinedCheck: true + }, + hardDependency: { + inject: [service.key], + expression: contextProperty(service.key) + } + }, + methods: service.methods + }, + referencedTypes: referencedTypeClosure(service.methods.map((method) => method.signature)) + }; + } + /** + * Project the Event Catalog as a compact directory or one exact listener contract. + * @param name - exact Event name; omit it to list all Events and listener signatures. + * @param events - platform-specific visible Event entries. + * @returns compact navigation data or one detailed Event with its referenced type closure. + */ + function queryEventApi(name, events = EVENT_API) { + if (name === void 0) return { + mode: "catalog", + events: events.map((event) => ({ + name: event.name, + description: event.summary, + mode: event.mode, + signature: event.signature + })) + }; + const event = events.find((candidate) => candidate.name === name); + if (event === void 0) throw new Error(`no catalogued Event named "${name}"`); + return { + mode: "event", + event: { + name: event.name, + description: event.description, + mode: event.mode, + signature: event.signature, + parameters: event.parameters + }, + referencedTypes: referencedTypeClosure([event.signature]) + }; + } + //#endregion + //#region lib/types/client/slot-catalog.js + /** Every slot the shipped web bundle declares, sorted by key. */ + const CLIENT_SLOT_API = [ + { + key: "conversation", + kind: "single", + scope: "session-maybe", + summary: "The whole center column, across both the no-session hero and a live conversation.", + doc: "The whole center column, across both the no-session hero and a live\nconversation. OCCUPIED by ui-conversation's ConversationRoot, which\ndeclares the session body, composer, and input seats inside it —\nregistering here replaces the entire conversation surface (and removes\nevery seat it declares) rather than adding to it.\n\nCurrent-session-optional: the occupant owns both states without\nchanging its React identity, so it keeps its own state across a session\nswitch. It receives no owner props; session facts arrive through the\nframework hooks of the `session-maybe` scope.", + registerOptions: [], + ownerProps: ["/** Conversation owner share: business state and actions belong to the registrant. */\nexport interface ConvOwnerProps {}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: MaybeSnapshotSelectorHook", + "sessionId: SessionId | undefined", + "useProjection: UseProjection", + "useInput: MaybeSnapshotSelectorHook", + "inputActions: InputActions | undefined" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted", + occupants: ["client-ui-conversation ConversationRoot"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation', () => ctx.slots.register(\n { name: 'conversation' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-layout/src/client/index.ts:62" + }, + { + key: "conversation.chat.assistant-actions", + kind: "list", + scope: "session", + summary: "Action strip attached to one finalized assistant message, rendered inside that message's IconActions row.", + doc: "Action strip attached to one finalized assistant message, rendered\ninside that message's IconActions row. The chat entry owns the render\nsite and passes the addressed message identity; contributors add\nper-message actions without importing the conversation implementation.\nEntries render by ascending `order`.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * Owner currency of the assistant-message action strip: the durable identity\n * of the one finalized message the contributed actions address. Only finalized\n * messages reach this slot, so the id is always present.\n */\nexport interface AssistantActionOwnerProps {\n /** Stable identity carried from the `assistant/message` event. */\n messageId: MessageId\n}"], + ownerPropsReferences: ["MessageId"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.chat.node' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-message-feedback MessageFeedbackActions id 'feedback'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.assistant-actions', () => ctx.slots.register(\n { name: 'conversation.chat.assistant-actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:109" + }, + { + key: "conversation.chat.commandview", + kind: "keyed", + scope: "session", + summary: "The chat view's per-command row hole: keyed dispatch on the command name (`command/run.name`; a run-less cross-window node has none and always lands on the fallback).", + doc: "The chat view's per-command row hole: keyed dispatch on the command\nname (`command/run.name`; a run-less cross-window node has none and\nalways lands on the fallback). Declared by the chat view entry; the\nrender site dispatches via `entryKey: name` with GenericCommandCard as\nthe `fallback` — a slash command renders durably with zero\nregistration, and a domain upgrades by registering one row component.", + registerOptions: [{ + name: "key", + requirement: "required", + type: "string", + doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant." + }], + ownerProps: ["/**\n * Owner share of the per-command row slot: the frozen {@link CommandNode}\n * slice off the snapshot (cache-stable reference — memo premise). The node\n * carries the whole lifecycle (structured name/args, pairing id, and\n * outcome-or-executing). A successful domain command may also carry the\n * explicitly linked projection node needed to fold two log records into one\n * presentation row.\n */\nexport interface CommandRowOwnerProps {\n /** Folded command lifecycle node (run + optional done). */\n node: CommandNode\n /** Explicitly linked compaction checkpoint for the settled `/compact` presentation. */\n compaction?: CompactionSummaryNode\n}"], + ownerPropsReferences: ["CommandNode", "CompactionSummaryNode"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "open: any string the owner dispatches (no compile-time key set), none are taken yet", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.chat.node' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.commandview', () => ctx.slots.register(\n { name: 'conversation.chat.commandview', key: '' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:94" + }, + { + key: "conversation.chat.node", + kind: "keyed", + scope: "session", + summary: "Final business node renderer, dispatched by `ChatConversationViewNode.kind`.", + doc: "Final business node renderer, dispatched by `ChatConversationViewNode.kind`.", + registerOptions: [{ + name: "key", + requirement: "required", + type: "string", + doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant." + }], + ownerProps: ["/** Stable owner currency delivered to one keyed Chat business renderer. */\nexport interface ChatNodeOwnerProps {\n /** Selected Tool call, when the shared details store names one. */\n selectedCallId?: CallId | undefined\n /** Session workspace root; Tool summaries display paths relative to it. */\n cwd?: string | undefined\n openFile: (path: string) => void\n inspectCall: (callId: CallId) => void\n forkAt: (seq: number) => void\n /** Resolve a session-authorized historical image for inline display. */\n loadImage: (attachment: ImageAttachmentRef) => Promise\n fileMentions: (owner: TurnTailOwnerProps) => MarkdownFileMentions | undefined\n}"], + ownerPropsReferences: [ + "ImageAttachmentRef", + "MarkdownFileMentions", + "TurnTailOwnerProps" + ], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "fixed by the owner's key table { [Kind in ChatNodeKind]: { node: ChatNode } }, already taken: assistant-step, command, command-input, compaction, context, manual-compaction, model-retry, steering, tool-call, turn-error, turn-max-tokens, turn-tail, unknown, user, workflow-run", + hookContext: "string", + slotInject: "ChatNodeTurnDataInjected", + declaredBy: "an entry in 'conversation.view' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [ + "client-ui-conversation UserMessageNodeView key 'user'", + "client-ui-conversation UserMessageNodeView key 'steering'", + "client-ui-conversation ContextMessageNodeView key 'context'", + "client-ui-conversation AssistantNodeView key 'assistant-step'", + "client-ui-conversation CommandNodeView key 'command'", + "client-ui-conversation ManualCompactionNodeView key 'manual-compaction'", + "client-ui-conversation CompactionNodeView key 'compaction'", + "client-ui-conversation RetryNodeView key 'model-retry'", + "client-ui-conversation TurnErrorNodeView key 'turn-error'", + "client-ui-conversation TurnMaxTokensNodeView key 'turn-max-tokens'", + "client-ui-conversation TurnTailNodeView key 'turn-tail'", + "client-ui-conversation UnknownNodeView key 'unknown'", + "client-ui-goal GoalCommandInputView key 'command-input'", + "client-ui-tool ToolCallTree key 'tool-call'", + "client-ui-workflow-run WorkflowRunPanel key 'workflow-run'" + ], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.node', () => ctx.slots.register(\n { name: 'conversation.chat.node', key: '' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:78" + }, + { + key: "conversation.chat.turnTail", + kind: "chain", + scope: "session", + summary: "The completed Turn Node's extension chain, rendered before that Node's IconActions.", + doc: "The completed Turn Node's extension chain, rendered before that Node's\nIconActions. Entries derive a match from the engine-owned Turn and\nclosing seq before mounting, so presentation components never mount\nonly to return null; an all-declined chain renders nothing.", + registerOptions: [{ + name: "select", + requirement: "required", + type: "(owner) => unknown | null", + doc: "Pure routing selector. Entries are tried in ascending order; the first non-null result wins and arrives as the component's `matched` prop. All-null falls through to the owner's fallback." + }], + ownerProps: ["/**\n * Owner currency of the chat view's turn-tail hole: the engine-owned Turn and\n * the closing assistant's anchor. Registrants read their own typed Turn data\n * and open files through the same opener the tool rows use.\n */\nexport interface TurnTailOwnerProps {\n /** Engine-owned closing Turn boundary. */\n turn: TurnLocation\n /** The closing assistant's seq — the anchor the tail renders under. */\n seq: number\n /**\n * Open a filesystem path through the Host (tool-row semantics; the chat\n * view resolves relative paths against the session cwd).\n */\n openFile: (path: string) => void\n}"], + ownerPropsReferences: ["TurnLocation"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.chat.node' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-deliverables ProducedFiles"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.chat.turnTail', () => ctx.slots.register(\n { name: 'conversation.chat.turnTail', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:101" + }, + { + key: "conversation.composer", + kind: "chain", + scope: "session", + summary: "The composer takeover chain: entries are selector-routed replacements of the default InputBar.", + doc: "The composer takeover chain: entries are selector-routed replacements\nof the default InputBar. Declared by this package's 'conversation'\nentry; the owner dispatches the ComposerChainProps currency and\nrouting lives in entry selectors — new takeover kinds register with\nzero owner changes.", + registerOptions: [{ + name: "select", + requirement: "required", + type: "(owner) => unknown | null", + doc: "Pure routing selector. Entries are tried in ascending order; the first non-null result wins and arrives as the component's `matched` prop. All-null falls through to the owner's fallback." + }], + ownerProps: ["/**\n * Composer chain currency: what ConversationRoot dispatches at its\n * renderSlotChain site. The owner declares the currency only — never a\n * per-entry contract; takeover packages narrow it in their own selectors\n * (`interactions.find(i => i.kind === ...)`), so new takeover kinds register\n * with zero owner changes.\n */\nexport interface ComposerChainProps {\n interactions: readonly PendingInteraction[]\n /** Current conversation facts for feature-owned takeover selectors. */\n session: ConversationSnapshot | undefined\n}"], + ownerPropsReferences: ["ConversationSnapshot", "PendingInteraction"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [ + "client-ui-conversation ApprovalPanel", + "client-ui-subagent SubagentReadOnlyComposer", + "client-ui-user-questions QuestionComposer" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer', () => ctx.slots.register(\n { name: 'conversation.composer', select: owner => null },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:132" + }, + { + key: "conversation.composer.bar", + kind: "single", + scope: "session-maybe", + summary: "The default composer body: a single slot rendered as the composer chain's fallback (a real entry, not a chain rider, so a takeover election hides rather than unmounts it and the textarea DOM survives).", + doc: "The default composer body: a single slot rendered as the composer\nchain's fallback (a real entry, not a chain rider, so a\ntakeover election hides rather than unmounts it and the textarea DOM\nsurvives). Session-maybe: the bar stays mounted across the\nno-session/session transition — the no-workspace hero renders the SAME\ntextarea DOM as a read-only Workspace-picker trigger instead of a\nparallel inert tree — with the machine hooks absent until a session is\ncurrent. InputBar registers\nhere from this package's apply; its machine state arrives through the\nstandard provide channel (useInput + inputActions), the keyboard\ncommand face through its own inject.", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the composer-bar slot: ConversationRoot's layout-phase\n * inputs plus the input-region child-slot content it renders (the region\n * slots stay declared/rendered by the conversation entry; the bar hosts the\n * results as chrome).\n */\nexport interface ComposerBarOwnerProps {\n /** Hero = empty-state centered card; composer = resident bottom bar. */\n variant: 'hero' | 'composer'\n /**\n * A block another plugin raised for this session: the bar refuses input and\n * shows the blocker's reason as the placeholder, but — unlike `disabled` —\n * keeps the model seat live. Every block this contract has is one the user\n * clears by choosing a model, so locking that seat too would leave the\n * composer telling them to do the one thing it prevents.\n */\n blocked?: { readonly reason: string }\n /**\n * Inert no-workspace state: the bar locks message actions while preserving\n * its normal DOM so the Workspace pick transitions in place.\n */\n disabled?: boolean\n /** Whether the shared Workspace picker menu is expanded, regardless of which trigger opened it. */\n workspacePickerOpen?: boolean\n /** Open the existing Workspace picker from the inert textarea. */ /* …truncated — full shape in source */"], + ownerPropsReferences: ["Workspace"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: MaybeSnapshotSelectorHook", + "sessionId: SessionId | undefined", + "useProjection: UseProjection", + "useInput: MaybeSnapshotSelectorHook", + "inputActions: InputActions | undefined" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-conversation InputBar"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer.bar', () => ctx.slots.register(\n { name: 'conversation.composer.bar' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:201" + }, + { + key: "conversation.composer.dock", + kind: "list", + scope: "session", + summary: "The band under the composer card, inside the bar's width column — the seat for an ambient readout about the conversation (the shipped stats line lives here).", + doc: "The band under the composer card, inside the bar's width column — the\nseat for an ambient readout about the conversation (the shipped stats\nline lives here). Same InputZone owner share as the other\nregions. Anything the user must click belongs in the tool row instead\n(`conversation.input.left` / `.right`); anything needing its own line\nabove the card belongs in `conversation.input.dock`.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * The input-region slot currency: dock/left/right entries read\n * the conversation snapshot and the live input state as owner props (both\n * are point-in-time snapshots — the dispatching skeleton re-renders on\n * either store's change, so entries stay current without subscribing).\n */\nexport interface InputZone {\n readonly session: ConversationSnapshot\n readonly input: InputState\n}"], + ownerPropsReferences: ["ConversationSnapshot", "InputState"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-conversation StatsLine id 'stats'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.composer.dock', () => ctx.slots.register(\n { name: 'conversation.composer.dock', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:170" + }, + { + key: "conversation.details.tool", + kind: "single", + scope: "session", + summary: "The body of the details panel for the tool call the user selected — one occupant, so taking it means rendering every tool's output, not just the ones you know.", + doc: "The body of the details panel for the tool call the user selected —\none occupant, so taking it means rendering every tool's output, not just\nthe ones you know. The owner passes a frozen `block` whose two lifecycle\nforms must both be handled: branch on `'kind' in block` (a settled\n`ToolResultNode` has it, a still-running call does not), and treat\n`cwd` as display-only, for shortening workspace-rooted paths.\nA per-tool renderer belongs in the keyed `tool.call.toolview` seat\ninstead; this one is the whole panel.", + registerOptions: [], + ownerProps: ["/** Owner currency of the details panel's Tool output renderer. */\nexport interface DetailsToolOwnerProps {\n /** Frozen selected call slice. */\n block: ToolCallBlock\n /** Session workspace root for card cwd and relative-path display. */\n cwd?: string | undefined\n}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'details' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-tool ToolDetails"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.details.tool', () => ctx.slots.register(\n { name: 'conversation.details.tool' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:124" + }, + { + key: "conversation.hero.agentPreset", + kind: "single", + scope: "root", + summary: "The agent-preset chip beside the workspace picker on the new-session screen.", + doc: "The agent-preset chip beside the workspace picker on the new-session\nscreen. Root scope: no session exists yet, so the choice is staged for\nthe next one rather than applied to a current one.", + registerOptions: [], + ownerProps: ["/** Owner share of the hero agent-preset chip: the shell supplies nothing. */\nexport interface HeroAgentPresetOwnerProps {\n /** Marker field: the chip owns its own roster, staging, and menu state. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-agent-preset AgentPresetSeat"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.agentPreset', () => ctx.slots.register(\n { name: 'conversation.hero.agentPreset' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:145" + }, + { + key: "conversation.hero.workspace", + kind: "single", + scope: "root", + summary: "The hero-phase Workspace picker hole: rendered by ConversationRoot while the session is blank (picking another workspace switches to that workspace's blank session, draft carried).", + doc: "The hero-phase Workspace picker hole: rendered by ConversationRoot\nwhile the session is blank (picking another workspace switches to that\nworkspace's blank session, draft carried). Root scope: the picker\nreads the global workspace list.", + registerOptions: [], + ownerProps: ["/** Owner share common to the hero / New-Session Workspace pickers. */\nexport interface EmptyWorkspaceOwnerProps {\n open: boolean\n anchorRef?: RefObject\n /** Currently active workspace (renders a trailing check in the picker list). */\n selectedId?: WorkspaceId | undefined\n onPick: (workspaceId: WorkspaceId) => void\n onClose: () => void\n}"], + ownerPropsReferences: ["Workspace"], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-workspace WorkspacePicker"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.workspace', () => ctx.slots.register(\n { name: 'conversation.hero.workspace' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:139" + }, + { + key: "conversation.hero.workspace.directoryFlow", + kind: "single", + scope: "root", + summary: "Directory-flow hole under the conversation empty-state picker (declared by the WorkspacePicker entry).", + doc: "Directory-flow hole under the conversation empty-state picker (declared by the WorkspacePicker entry).", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the directory-flow holes: the complete conversation between\n * the trigger surface and the picking interaction. The occupant reads `open`\n * to run/render its interaction and reports exactly one outcome per open.\n */\nexport interface DirectoryFlowOwnerProps {\n /** True while a picking interaction is requested; flipping back to false withdraws the request. */\n open: boolean\n /** True while the owner adopts a picked path (`createWorkspace` in flight); occupants disable their commit affordances. */\n busy: boolean\n /** The operator picked a directory (absolute host path); the owner adopts it. */\n onPicked: (path: string) => void\n /** The operator dismissed the interaction; the owner just closes the flow. */\n onCancel: () => void\n /** The interaction itself failed (chooser missing, listing denied); the owner shows its error surface. */\n onError: (message: string) => void\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.hero.workspace' (client-ui-workspace), so it exists while that entry is mounted", + occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.hero.workspace.directoryFlow', () => ctx.slots.register(\n { name: 'conversation.hero.workspace.directoryFlow' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-workspace/src/client/contract/slots.ts:56" + }, + { + key: "conversation.input.dock", + kind: "list", + scope: "session", + summary: "A full-width row of its own, stacked above the composer card — the seat for anything that needs a line to itself (queue rows, a todo strip, a goal bar).", + doc: "A full-width row of its own, stacked above the composer card — the seat\nfor anything that needs a line to itself (queue rows, a todo strip, a\ngoal bar). Pick this over the three seats below when your content wraps\nor carries prose; pick `conversation.composer.dock` for an ambient\nreadout under the card, and `conversation.input.left` /\n`.right` for a small control INSIDE the card's tool row.\nRead only `session`/`input` off the owner share (InputZone) —\nboth are point-in-time snapshots re-rendered for you, never subscribe.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * The input-region slot currency: dock/left/right entries read\n * the conversation snapshot and the live input state as owner props (both\n * are point-in-time snapshots — the dispatching skeleton re-renders on\n * either store's change, so entries stay current without subscribing).\n */\nexport interface InputZone {\n readonly session: ConversationSnapshot\n readonly input: InputState\n}"], + ownerPropsReferences: ["ConversationSnapshot", "InputState"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [ + "client-ui-conversation QueueDock id 'queue'", + "client-ui-conversation TodoDock id 'todo'", + "client-ui-goal GoalDock id 'goal'" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.dock', () => ctx.slots.register(\n { name: 'conversation.input.dock', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:161" + }, + { + key: "conversation.input.left", + kind: "list", + scope: "session", + summary: "The left end of the tool row INSIDE the composer card, after the resident chrome (access mode, plan, attach) — the seat for a small always-visible control.", + doc: "The left end of the tool row INSIDE the composer card, after the\nresident chrome (access mode, plan, attach) — the seat for a small\nalways-visible control. Entries sit beside that chrome, never replace\nit. Same InputZone owner share; use `.right` for a control that\nbelongs next to the send button, and the docks for anything taller than\none row.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * The input-region slot currency: dock/left/right entries read\n * the conversation snapshot and the live input state as owner props (both\n * are point-in-time snapshots — the dispatching skeleton re-renders on\n * either store's change, so entries stay current without subscribing).\n */\nexport interface InputZone {\n readonly session: ConversationSnapshot\n readonly input: InputState\n}"], + ownerPropsReferences: ["ConversationSnapshot", "InputState"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.left', () => ctx.slots.register(\n { name: 'conversation.input.left', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:179" + }, + { + key: "conversation.input.model", + kind: "single", + scope: "session", + summary: "The named model-select seat at the right end of the composer tool row, left of the send button — one occupant, so taking it means rendering the whole model affordance yourself.", + doc: "The named model-select seat at the right end of the composer tool row,\nleft of the send button — one occupant, so taking it means rendering the\nwhole model affordance yourself. Same `locked`-only owner share and same\nrenders-nothing-while-empty contract as the plan seat. Note the composer\ndeliberately keeps this seat LIVE while it refuses text for a\nmodel-related block: every such block is one the user clears by picking\na model here.", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the two named composer control seats (plan / model): the\n * bar passes its disable state; the filling entry owns everything else.\n */\nexport interface InputControlOwnerProps {\n /** Session-removed lock (the bar's chrome disable state). */\n locked: boolean\n}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-model-selection ModelSelect"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.model', () => ctx.slots.register(\n { name: 'conversation.input.model' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:221" + }, + { + key: "conversation.input.overlay", + kind: "list", + scope: "session", + summary: "The InputBar floating overlay anchor: MenuView (this package) and the popupSelect shell (ui-commands) contribute list entries; each reads its own store and renders null while closed.", + doc: "The InputBar floating overlay anchor: MenuView (this package) and the\npopupSelect shell (ui-commands) contribute list entries; each reads its\nown store and renders null while closed. Declared (children table) by\nui-conversation's composer entry; the anchor hides with the input\nunder a takeover.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: [], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-commands PopupSelectView id 'command-popup'", "client-ui-input-trigger MenuView id 'slash-menu'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.overlay', () => ctx.slots.register(\n { name: 'conversation.input.overlay', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-input-trigger/src/client/slots.ts:24" + }, + { + key: "conversation.input.plan", + kind: "single", + scope: "session", + summary: "The named plan-status seat in the composer tool row, immediately right of the access-mode control — one occupant, so taking it means rendering the plan affordance yourself.", + doc: "The named plan-status seat in the composer tool row, immediately right\nof the access-mode control — one occupant, so taking it means rendering\nthe plan affordance yourself. The owner passes only `locked` (see\nInputControlOwnerProps): honour it by refusing interaction, and\ntake everything else from the framework session kit or your own inject.\nUnoccupied, the seat renders nothing at all — the bar paints no\nplaceholder, so an absent plan plugin costs no layout.", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the two named composer control seats (plan / model): the\n * bar passes its disable state; the filling entry owns everything else.\n */\nexport interface InputControlOwnerProps {\n /** Session-removed lock (the bar's chrome disable state). */\n locked: boolean\n}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.composer.bar' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-plan PlanChip"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.plan', () => ctx.slots.register(\n { name: 'conversation.input.plan' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:211" + }, + { + key: "conversation.input.right", + kind: "list", + scope: "session", + summary: "The right end of the same tool row, before the primary send button — the seat for a control the user reaches on the way to sending (the model select sits in its own named seat just left of here).", + doc: "The right end of the same tool row, before the primary send button —\nthe seat for a control the user reaches on the way to sending (the\nmodel select sits in its own named seat just left of here). Same\nInputZone owner share and the same one-row height budget as\n`conversation.input.left`.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * The input-region slot currency: dock/left/right entries read\n * the conversation snapshot and the live input state as owner props (both\n * are point-in-time snapshots — the dispatching skeleton re-renders on\n * either store's change, so entries stay current without subscribing).\n */\nexport interface InputZone {\n readonly session: ConversationSnapshot\n readonly input: InputState\n}"], + ownerPropsReferences: ["ConversationSnapshot", "InputState"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.input.right', () => ctx.slots.register(\n { name: 'conversation.input.right', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:187" + }, + { + key: "conversation.session", + kind: "single", + scope: "session", + summary: "The entire body of one session: taking this seat means rendering that session's conversation yourself.", + doc: "The entire body of one session: taking this seat means rendering that\nsession's conversation yourself. The occupant also owns the per-session\ndraft mirror and the active view ring, so a replacement inherits both\nduties and an empty one leaves a blank session pane — nothing here\ndegrades gracefully. To ADD rather than replace, take a seat inside the\nflow instead: `conversation.view` for a whole tab, the input regions for\ncomposer chrome.", + registerOptions: [], + ownerProps: [], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-conversation ConversationSession"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session', () => ctx.slots.register(\n { name: 'conversation.session' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:44" + }, + { + key: "conversation.session.header", + kind: "single", + scope: "session", + summary: "The strip above the session's scrollport: title, view tabs, and the action row.", + doc: "The strip above the session's scrollport: title, view tabs, and the\naction row. Taking this seat means rendering all three yourself, and it\nalso collapses `conversation.session.header.actions` — that additive\nseat is declared by whoever occupies this one, so replacing the header\ntakes every action entry down with it.", + registerOptions: [], + ownerProps: [], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-conversation ConversationSessionHeader"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header', () => ctx.slots.register(\n { name: 'conversation.session.header' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:52" + }, + { + key: "conversation.session.header.actions", + kind: "list", + scope: "session", + summary: "One button in the session header's action row — the additive way to put a per-session control beside the title without replacing the header.", + doc: "One button in the session header's action row — the additive way to put\na per-session control beside the title without replacing the header.\nEntries render by ascending `order`; negative values are reserved for\nstatic session context that precedes interactive actions. The owner\npasses nothing: everything a control needs comes from the framework\nsession kit (`sessionId`, `useSession`, `useInput`, `inputActions`) and\nfrom the registrant's own inject face, so an empty owner share means\nself-sufficient, not starved.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Header actions derive their state from the standard session/global kit. */\nexport interface ConversationHeaderActionOwnerProps {}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.session.header' (client-ui-conversation), so it exists while that entry is mounted", + occupants: [ + "client-ui-agent-preset AgentPresetLabel id 'agent-preset'", + "client-ui-jobs JobListAction id 'job-list'", + "client-ui-subagent SubagentCatalogAction id 'subagent-catalog'" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header.actions', () => ctx.slots.register(\n { name: 'conversation.session.header.actions', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:63" + }, + { + key: "conversation.session.header.utilities", + kind: "list", + scope: "session", + summary: "Right-aligned Session utilities kept outside the title-adjacent action group, so an optional utility cannot reorder session context or lineage.", + doc: "Right-aligned Session utilities kept outside the title-adjacent action\ngroup, so an optional utility cannot reorder session context or lineage.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Header actions derive their state from the standard session/global kit. */\nexport interface ConversationHeaderActionOwnerProps {}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.session.header' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["session-log-export SessionLogDownloadHeaderAction id 'session-log-download'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.session.header.utilities', () => ctx.slots.register(\n { name: 'conversation.session.header.utilities', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:68" + }, + { + key: "conversation.view", + kind: "list", + scope: "session", + summary: "The conversation view ring: one list entry per view tab (chat here; trajectory/waterfall from ui-trajectory), rendered one-at-a-time by the session body via `only: `.", + doc: "The conversation view ring: one list entry per view tab (chat here;\ntrajectory/waterfall from ui-trajectory), rendered one-at-a-time by\nthe session body via `only: `. Declared by this package's\nbody entry (declaring is claiming). Session scope: views read the\nconversation snapshot through the standard kit.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * View-slot owner share: the cross-view inspect handoff (otherwise views need\n * nothing from the render site — sessionId and the snapshot hook arrive as\n * framework-standard props; tool rows go through each view's own declared\n * toolview hole).\n */\nexport interface ConvViewOwnerProps {\n /** One-shot inspect request from another view (chat's Inspect button); null when idle. */\n inspect?: { callId: CallId } | null\n /** Acknowledge the inspect request once applied (clears the store field). */\n onInspectDone?: () => void\n}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.session' (client-ui-conversation), so it exists while that entry is mounted", + occupants: ["client-ui-conversation ChatView id 'chat'", "client-ui-trajectory TrajectoryView id 'trajectory'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('conversation.view', () => ctx.slots.register(\n { name: 'conversation.view', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-conversation/src/client/contract/slots.ts:76" + }, + { + key: "details", + kind: "single", + scope: "session", + summary: "The right details column, shown when the layout opens it.", + doc: "The right details column, shown when the layout opens it. OCCUPIED by\nui-conversation's DetailsPanel, which declares the tool-details seat\ninside it — registering here replaces the column and takes that seat\nwith it. Absent an occupant the column renders nothing.\n\nNo owner props: the framework injects the session id and hooks for the\n`session` scope, and `ctx.layout` owns whether the column is open.", + registerOptions: [], + ownerProps: ["/** Details owner share: empty — sessionId arrives as a framework-standard prop. */\nexport interface DetailsOwnerProps {}"], + ownerPropsReferences: [], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted", + occupants: ["client-ui-conversation DetailsPanel"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('details', () => ctx.slots.register(\n { name: 'details' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-layout/src/client/index.ts:72" + }, + { + key: "root", + kind: "single", + scope: "root", + summary: "The built-in render-tree root hole (seeded by SlotCore): the one slot the shell itself renders, and the ancestor of every other seat.", + doc: "The built-in render-tree root hole (seeded by SlotCore): the one slot the\nshell itself renders, and the ancestor of every other seat. OCCUPIED by\nui-layout's AppFrame, which declares the sidebar, conversation, details,\nand shell.overlay seats inside it.\n\nDO NOT register here. This is a single slot, so a second entry does not\nsit beside the frame — it shadows it, and a dynamically registered entry\nis assigned a lower priority than the shipped one, which makes it the\nwinner: the page would render your component alone, with every seat the\nframe declares gone. For a surface of your own that floats over the whole\napp, register into `shell.overlay` instead (a list slot: additive, and\nclick-through until your entry opts into pointer events).", + registerOptions: [], + ownerProps: ["/** Root owner share: the shell supplies nothing — the frame is inject-assembled. */\nexport interface RootOwnerProps { children?: never }"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "the runtime itself (built in; always present)", + occupants: ["client-ui-layout AppFrame"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('root', () => ctx.slots.register(\n { name: 'root' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/runtime/src/client/slots.ts:41" + }, + { + key: "settings.action", + kind: "list", + scope: "root", + summary: "Optional actions rendered in the content-column header before Close.", + doc: "Optional actions rendered in the content-column header before Close.\nRegistrants own visibility, behavior, copy, and failure presentation;\nthe shell supplies only the ordered render site.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: ["client-ui-settings-general SettingsDocumentAction id 'open-document'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.action', () => ctx.slots.register(\n { name: 'settings.action', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:35" + }, + { + key: "settings.close", + kind: "single", + scope: "root", + summary: "The close button's visually-hidden label text (the button itself — icon, geometry, focus — is shell chrome).", + doc: "The close button's visually-hidden label text (the button itself —\nicon, geometry, focus — is shell chrome). Absent contribution leaves\nthe button without an accessible name (broken-composition state).", + registerOptions: [], + ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: ["client-ui-settings-general CloseLabel"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.close', () => ctx.slots.register(\n { name: 'settings.close' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:41" + }, + { + key: "settings.general.item", + kind: "list", + scope: "root", + summary: "One preference row inside the General section — the additive seat for a single setting that needs no page of its own (a whole page is `settings.section`), contributed by the feature plugin that owns the preference (locale → Language, ui-theme → Appearance, ui-conversation → Composer Enter).", + doc: "One preference row inside the General section — the additive seat for a\nsingle setting that needs no page of its own (a whole page is\n`settings.section`), contributed by the feature plugin that owns the\npreference (locale → Language, ui-theme → Appearance, ui-conversation →\nComposer Enter). Options: `id` (row key), `order` (row position). The\nsection column only stacks rows, so a row draws its own internals,\nincluding its label: nothing projects a `label` here and the owner passes\nno props at all — copy, current value, and the write path are all yours,\nthrough your own inject face and `host.call`. Declared at runtime by\nui-settings-general's General entry; the type lives here with every other\nsettings slot type, because this package is the settings domain's base\nlayer and every registrant already depends on it for `ctx.settingsScope`.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of a General preference row (the section supplies nothing). */\nexport interface SettingsGeneralItemOwnerProps {\n /** Marker field: item owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'settings.section' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: [ + "client-locale LanguageRow id 'language'", + "client-ui-agent-preset AgentPresetRow id 'agent-preset'", + "client-ui-conversation EnterBehaviorRow id 'composer-enter'", + "client-ui-permission-presets PermissionRow id 'permission'", + "client-ui-theme AppearanceRow id 'appearance'" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.general.item', () => ctx.slots.register(\n { name: 'settings.general.item', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:88" + }, + { + key: "settings.header", + kind: "single", + scope: "root", + summary: "The panel title text seat.", + doc: "The panel title text seat. Content renders inside the nav heading row;\nthe dialog's accessible name points at that node via aria-labelledby.\nAbsent contribution leaves the heading empty.", + registerOptions: [], + ownerProps: ["/** Owner share of the header title seat (the shell supplies nothing). */\nexport interface SettingsHeaderOwnerProps {\n /** Marker field: header owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: ["client-ui-settings-general HeaderContent"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.header', () => ctx.slots.register(\n { name: 'settings.header' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:29" + }, + { + key: "settings.onboarding", + kind: "list", + scope: "root", + summary: "Root-scoped onboarding steps contributed by settings features.", + doc: "Root-scoped onboarding steps contributed by settings features. The\nshell mounts one ordered step at a time; the active registrant either\ncompletes itself or keeps ownership until the user completes its sole\npath. Registrants own readiness, copy, dialog behavior, AND visible\nchrome: a step wraps its visible content in its modal surface (including\n`#root` inert ownership) and renders null while private facts are still\nloading. The shell paints no chrome of its own, so a mounted-but-deciding\nstep shows and blocks nothing.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of the currently active settings-backed onboarding step. */\nexport interface SettingsOnboardingOwnerProps {\n /** Stable id of the step currently selected by the coordinator. */\n stepId: string\n /** Complete or skip this step and transfer ownership to the next entry. */\n complete: () => void\n /** Open the settings panel directly on one registered section. */\n openSection: (id: string) => void\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: ["client-ui-settings-models WelcomeNotice id 'welcome-notice'", "client-ui-settings-models DeepSeekOnboardingDialog id 'deepseek-official'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.onboarding', () => ctx.slots.register(\n { name: 'settings.onboarding', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:73" + }, + { + key: "settings.plugin.item", + kind: "list", + scope: "root", + summary: "One plugin's card inside the plugin configuration section (see module JSDoc).", + doc: "One plugin's card inside the plugin configuration section (see module JSDoc).", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of a plugin card (the section supplies nothing). */\nexport interface SettingsPluginItemOwnerProps {\n /** Marker field: card owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'settings.plugins.tab' (client-ui-settings-plugins), so it exists while that entry is mounted", + occupants: [ + "client-ui-settings-plugins BashCard id 'bash'", + "client-ui-settings-plugins AgentLoopCard id 'agent-loop'", + "client-ui-settings-plugins WebSearchCard id 'web-search'" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.plugin.item', () => ctx.slots.register(\n { name: 'settings.plugin.item', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings-plugins/src/client/slot-contract.ts:16" + }, + { + key: "settings.plugins.tab", + kind: "list", + scope: "root", + summary: "One page inside the Plugins settings section.", + doc: "One page inside the Plugins settings section. The section owner renders\nlocalized entry labels as tabs and mounts each contribution inside its\ncorresponding tab panel. Options: `id` (tab key), `order` (tab order),\nand `label` (registrant-localized tab text). Declared at runtime by the\nfeature that owns the Plugins section; the type lives here so inventory\nand configuration plugins collaborate without depending on one another.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of a Plugins tab (the section supplies nothing). */\nexport interface SettingsPluginsTabOwnerProps {\n /** Marker field: tab owner props are intentionally empty. */\n children?: never\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'settings.section' (client-ui-settings-plugins), so it exists while that entry is mounted", + occupants: ["client-ui-settings-plugin-inventory PluginInventorySettingsTab id 'all'", "client-ui-settings-plugins ConfigurablePluginsTab id 'configurable'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.plugins.tab', () => ctx.slots.register(\n { name: 'settings.plugins.tab', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:62" + }, + { + key: "settings.section", + kind: "list", + scope: "root", + summary: "One settings page per list entry.", + doc: "One settings page per list entry. Registrant options carry the nav\nidentity: `id` (section key, drives `only` filtering), `order` (nav\nposition), `label` (registrant-localized display text — the registrant\nre-registers with fresh text on locale change, so the shell never\nsubscribes locale state; the ledger bump doubles as the shell's\nre-render trigger). Sections render inside the panel content column.\n(`settings.general.item`, declared by ui-settings-general's General\nentry, is typed in the locale package — the common dependency of every\nitem registrant; the shell neither declares nor renders it.)", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/**\n * Owner share of a settings section entry. The shell owns modal visibility\n * and navigation; a section's data arrives through its own inject faces and\n * stores. `close` is the one shell affordance a section receives, for flows\n * that leave settings altogether (starting a session from a section) — the\n * onboarding coordinator's `openSection`/`complete` precedent, inverted.\n */\nexport interface SettingsSectionOwnerProps {\n /** Close the settings panel (the shell owns the open state). */\n close: () => void\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: [ + "client-ui-agent-preset AgentPresetSection id 'agent-presets'", + "client-ui-settings-general GeneralSection id 'general'", + "client-ui-settings-models ModelsSection id 'models'", + "client-ui-settings-plugins PluginsSettingsSection id 'plugins'" + ], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.section', () => ctx.slots.register(\n { name: 'settings.section', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:53" + }, + { + key: "settings.trigger", + kind: "single", + scope: "root", + summary: "The sidebar-foot trigger row content: icon + label, supplied as slot content (the accessible name comes from the content — rail state renders the label visually hidden).", + doc: "The sidebar-foot trigger row content: icon + label, supplied as slot\ncontent (the accessible name comes from the content — rail state\nrenders the label visually hidden). The shell renders the button\nchrome and owns open state. Absent contribution degrades to an\nicon-only button without an accessible name (broken-composition state;\nthe shipped composition always registers the seat).", + registerOptions: [], + ownerProps: ["/** Owner share of the trigger content seat: the sidebar column state. */\nexport interface SettingsTriggerOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail, icon only). */\n wide: boolean\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.settings' (client-ui-settings-general), so it exists while that entry is mounted", + occupants: ["client-ui-settings-general TriggerContent"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('settings.trigger', () => ctx.slots.register(\n { name: 'settings.trigger' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-settings/src/client/contract/slots.ts:23" + }, + { + key: "shell.overlay", + kind: "list", + scope: "root", + summary: "Frame-wide floating layer, above every column and outside their scroll containers.", + doc: "Frame-wide floating layer, above every column and outside their scroll\ncontainers. Deliberately generic and unowned by any feature: a badge, a\ntoast stack or a status pill all belong here, and entries order among\nthemselves. The layer itself is click-through — entries opt back into\npointer events — so an occupant never blocks the app underneath.\n\nThis is the additive seat for a frame-wide surface of your own: a fresh\n`id` is added beside the shipped entries instead of replacing them.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: [], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted", + occupants: [], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('shell.overlay', () => ctx.slots.register(\n { name: 'shell.overlay', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-layout/src/client/index.ts:83" + }, + { + key: "sidebar", + kind: "single", + scope: "root", + summary: "The whole left column.", + doc: "The whole left column. OCCUPIED by ui-sidebar's SidebarRoot, which\ndeclares the workspace and settings seats inside it — registering here\nreplaces the navigation column outright rather than adding to it, and\nthe seats it declares disappear with it. To add something to the\nsidebar, register into one of those inner seats instead.\n\nThe occupant receives the frame's live column state (collapsed, width)\nand is expected to render the compact control rail while collapsed.", + registerOptions: [], + ownerProps: ["/** Sidebar owner share: live column state from the frame's concession solve. */\nexport interface SidebarOwnerProps {\n /** True when the sidebar is closed (the column renders the compact control rail). */\n collapsed: boolean\n /** Rendered column width in px (SIDEBAR_COLLAPSED when collapsed). */\n width: number\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'root' (client-ui-layout), so it exists while that entry is mounted", + occupants: ["client-ui-sidebar SidebarRoot"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar', () => ctx.slots.register(\n { name: 'sidebar' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-layout/src/client/index.ts:49" + }, + { + key: "sidebar.footer.action", + kind: "list", + scope: "root", + summary: "Optional actions beside Settings at the sidebar foot.", + doc: "Optional actions beside Settings at the sidebar foot. Declared by this\npackage's 'sidebar' entry; each action receives only the column state.", + registerOptions: [ + { + name: "id", + requirement: "required", + type: "string", + doc: "Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it." + }, + { + name: "order", + requirement: "optional", + type: "number", + doc: "Position among the entries, ascending (default 0)." + }, + { + name: "label", + requirement: "optional", + type: "string | (() => string)", + doc: "Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering." + } + ], + ownerProps: ["/** Owner share of an action rendered beside Settings at the sidebar foot. */\nexport interface SidebarFooterActionOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail). */\n wide: boolean\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar' (client-ui-sidebar), so it exists while that entry is mounted", + occupants: ["client-ui-cordis CordisPanel id 'cordis-panel'"], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register(\n { name: 'sidebar.footer.action', id: 'my-entry', order: 100, label: 'My entry' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-sidebar/src/client/contract/slots.ts:35" + }, + { + key: "sidebar.settings", + kind: "single", + scope: "root", + summary: "The settings seat at the sidebar foot.", + doc: "The settings seat at the sidebar foot. Declared by this package's\n'sidebar' entry; ui-settings registers its trigger row + modal panel.\nThe sidebar passes only its column state — it holds no settings state.", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the sidebar settings seat: the column display state the\n * occupant's trigger row must render against (wide row vs rail icon).\n */\nexport interface SidebarSettingsOwnerProps {\n /** Whether the sidebar renders wide content (false = 56px rail). */\n wide: boolean\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar' (client-ui-sidebar), so it exists while that entry is mounted", + occupants: ["client-ui-settings-general SettingsRoot"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.settings', () => ctx.slots.register(\n { name: 'sidebar.settings' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-sidebar/src/client/contract/slots.ts:30" + }, + { + key: "sidebar.workspaces", + kind: "single", + scope: "root", + summary: "The workspace/session browsing region: section header, search, the grouped/flat session list, and every workspace dialog.", + doc: "The workspace/session browsing region: section header, search, the\ngrouped/flat session list, and every workspace dialog. Declared by this\npackage's 'sidebar' entry (declaring is claiming); ui-workspace\nregisters the browser.", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the browser hole — the only facts crossing the shell/region\n * boundary. Business data and actions arrive through the region's own inject.\n */\nexport interface SidebarSectionOwnerProps {\n /** Shell fold-state output: wide renders the full browser, rail the icon column. */\n wide: boolean\n /** Rail icons request expansion; the browser rides the wide flip for focus. */\n expandSidebar: () => void\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar' (client-ui-sidebar), so it exists while that entry is mounted", + occupants: ["client-ui-workspace WorkspaceBrowser"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.workspaces', () => ctx.slots.register(\n { name: 'sidebar.workspaces' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-sidebar/src/client/contract/slots.ts:24" + }, + { + key: "sidebar.workspaces.directoryFlow", + kind: "single", + scope: "root", + summary: "Directory-flow hole under the sidebar browsing region (declared by the WorkspaceBrowser entry).", + doc: "Directory-flow hole under the sidebar browsing region (declared by the WorkspaceBrowser entry).", + registerOptions: [], + ownerProps: ["/**\n * Owner share of the directory-flow holes: the complete conversation between\n * the trigger surface and the picking interaction. The occupant reads `open`\n * to run/render its interaction and reports exactly one outcome per open.\n */\nexport interface DirectoryFlowOwnerProps {\n /** True while a picking interaction is requested; flipping back to false withdraws the request. */\n open: boolean\n /** True while the owner adopts a picked path (`createWorkspace` in flight); occupants disable their commit affordances. */\n busy: boolean\n /** The operator picked a directory (absolute host path); the owner adopts it. */\n onPicked: (path: string) => void\n /** The operator dismissed the interaction; the owner just closes the flow. */\n onCancel: () => void\n /** The interaction itself failed (chooser missing, listing denied); the owner shows its error surface. */\n onError: (message: string) => void\n}"], + ownerPropsReferences: [], + standardProps: ["useSessions: SnapshotSelectorHook", "useWorkspaces: SnapshotSelectorHook"], + keyDomain: "", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'sidebar.workspaces' (client-ui-workspace), so it exists while that entry is mounted", + occupants: ["client-ui-directory-picker-browse BrowseDirectoryFlow", "client-ui-directory-picker-native NativeDirectoryFlow"], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('sidebar.workspaces.directoryFlow', () => ctx.slots.register(\n { name: 'sidebar.workspaces.directoryFlow' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-workspace/src/client/contract/slots.ts:58" + }, + { + key: "tool.call.toolview", + kind: "keyed", + scope: "session", + summary: "Keyed atomic Tool call view, dispatched by the wire Tool name.", + doc: "Keyed atomic Tool call view, dispatched by the wire Tool name. Register\nwith `key: ''` to own how one tool's calls render inside a\nturn — the key domain is open (any wire tool name, including a tool your\nown package registered), so there is no compile-time key set to pick\nfrom and a typo simply never renders.\n\nA key the shipped composition already covers is replaced, not shared;\nan unclaimed key falls back to the generic tool row, so registering is\nadditive for your own tool and a takeover for a shipped one. The owner\npasses the call's identity, its frozen running-or-settled node, and the\nexpansion state (see ToolCallOwnerProps), so the view stays a pure\nfunction of what the turn already knows.", + registerOptions: [{ + name: "key", + requirement: "required", + type: "string", + doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant." + }], + ownerProps: ["/** Standard owner currency supplied to every atomic Tool view. */\nexport interface ToolCallOwnerProps {\n /** Tool call identity, stable across running and settled forms. */\n callId: string\n /** Wire Tool name and keyed dispatch value. */\n toolName: string\n /** Frozen running call or settled result node. */\n block: ToolCallBlock\n /** Session workspace root for relative summaries. */\n cwd?: string | undefined\n /** Open a Tool argument path through the Host. */\n openFile: (path: string) => void\n /** Inspect this call in the trajectory view when available. */\n inspect?: (() => void) | undefined\n}"], + ownerPropsReferences: ["Wire"], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "open: any string the owner dispatches (no compile-time key set), already taken: ask_user_question, bash, cordis_define, cordis_run, cordis_stop, cordis_undefine, edit, glob, grep, read, skill, todo_write, web_fetch, web_search, write", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'conversation.chat.node' (client-ui-tool), so it exists while that entry is mounted", + occupants: [ + "client-ui-skill SkillRow key 'skill'", + "client-ui-tool AskQuestionRow key 'ask_user_question'", + "client-ui-tool BashRow key 'bash'", + "client-ui-tool FileMutationRow key 'edit'", + "client-ui-tool FileMutationRow key 'write'", + "client-ui-tool ReadRow key 'read'", + "client-ui-tool SearchRow key 'grep'", + "client-ui-tool SearchRow key 'glob'", + "client-ui-tool TodoRow key 'todo_write'", + "client-ui-tool WebRow key 'web_search'", + "client-ui-tool WebRow key 'web_fetch'", + "client-ui-cordis CordisDefineRow key 'cordis_define'", + "client-ui-cordis CordisRunRow key 'cordis_run'", + "client-ui-cordis CordisActionRow key 'cordis_stop'", + "client-ui-cordis CordisActionRow key 'cordis_undefine'" + ], + replaceRisk: "shadows-shipped-ui", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register(\n { name: 'tool.call.toolview', key: '' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/client/ui-tool/src/client/contract/slots.ts:23" + }, + { + key: "tool.view.cordis", + kind: "keyed", + scope: "session", + summary: "Interactive Package-owned region rendered inside the latest eligible `cordis_run` card in the conversation flow.", + doc: "Interactive Package-owned region rendered inside the latest eligible\n`cordis_run` card in the conversation flow. Use it for controls and other\nUI the user can interact with. Dynamic Client code registers with\n`key: 'self'`; the Guard binds that key to the current Plugin and Package.", + registerOptions: [{ + name: "key", + requirement: "required", + type: "string", + doc: "Your cell key: the entry renders where the owner dispatches this exact key. Registering an already-occupied key replaces that occupant." + }], + ownerProps: ["/** Owner currency delivered to a dynamic Package's business view. */\nexport interface CordisToolViewOwnerProps {\n readonly pluginId: CordisDynamicPluginId\n readonly packageId: CordisDynamicPackageId\n readonly pluginRunId: CordisDynamicPluginRunId\n}"], + ownerPropsReferences: [ + "CordisDynamicPackageId", + "CordisDynamicPluginId", + "CordisDynamicPluginRunId" + ], + standardProps: [ + "useSessions: SnapshotSelectorHook", + "useWorkspaces: SnapshotSelectorHook", + "useSession: SnapshotSelectorHook", + "sessionId: SessionId", + "useProjection: UseProjection", + "useInput: SnapshotSelectorHook", + "inputActions: InputActions" + ], + keyDomain: "open: any string the owner dispatches (no compile-time key set), none are taken yet", + hookContext: "", + slotInject: "", + declaredBy: "an entry in 'tool.call.toolview' (client-ui-cordis), so it exists while that entry is mounted", + occupants: [], + replaceRisk: "none", + example: "return {\n inject: ['slots'],\n apply(ctx) {\n ctx.slots.inject('tool.view.cordis', () => ctx.slots.register(\n { name: 'tool.view.cordis', key: '' },\n () => React.createElement('div', null, 'hello'),\n ))\n },\n}", + source: "packages/extensions/ui-cordis/src/client/slots.ts:31" + } + ]; + //#endregion + //#region lib/types/client/providers.js + /** Built-in Client inspect providers over live Client-owned services. */ + const EMPTY_INPUT = { + type: "object", + properties: {}, + additionalProperties: false + }; + const ANY_OUTPUT = { description: "JSON data owned by this inspect provider." }; + const SERVICE_INPUT = exactInput("service", "Exact Service key. Omit it for the compact Service and method-signature directory."); + const EVENT_INPUT = exactInput("event", "Exact Event name. Omit it for the compact Event and listener-signature directory."); + const SERVICE_OUTPUT = { description: "Compact Service directory, or one exact Service contract with only its referenced type declarations." }; + const EVENT_OUTPUT = { description: "Compact Event directory, or one exact Event contract with only its referenced type declarations." }; + const SUBTREE_OUTPUT = { description: "Compact purpose/topology trees. With root, selected also contains that Slot's full contract and live occupants." }; + const SUBTREE_INPUT = { + type: "object", + properties: { root: { + type: "string", + description: "Exact live Slot key. When supplied, selected contains the full contract for this Slot." + } }, + additionalProperties: false + }; + /** Exact Client closure symbols exposed by the evaluator and guard. */ + const CLIENT_BUILTIN_INSPECTION = [ + { + name: "ctx", + description: "Restricted Cordis Context. Prefer ctx.get(name) with an undefined check; use inject only for hard dependencies.", + signatures: [ + "ctx.get(name: string): unknown | undefined", + "ctx.on(name: string, listener: Function): () => void", + "ctx.provide(name: string, value: unknown): () => void", + "ctx.effect(callback: Function, label?: string): () => void" + ] + }, + { + name: "React", + description: "React runtime exposed without JSX transformation.", + signatures: [ + "React.createElement(type, props, ...children): ReactElement", + "React.useState(initial)", + "React.useEffect(effect, deps)" + ] + }, + { + name: "host", + description: "Package-private JSON RPC from Client to this Package's Host half.", + signatures: ["host.call(method: string, args?: JsonValue): Promise"] + }, + { + name: "styles", + description: "Package-owned stylesheet insertion cleaned up with the Client run.", + signatures: ["styles.insert(css: string): () => void"] + }, + { + name: "console", + description: "Package-tagged browser logging.", + signatures: ["console.log(...values): void", "console.error(...values): void"] + } + ]; + /** + * Construct the first-party Client provider registrations. + * @param ctx - Client context used for live Service-backed queries. + * @returns registrations for static catalogs and live Client capabilities. + */ + function clientInspectProviders(ctx) { + return [ + registration("Service", "Progressive Client Service discovery: compact capability/signature directory, then one exact coding contract.", "listService", (input) => queryServiceApi(readExact(input, "service")), SERVICE_INPUT, SERVICE_OUTPUT), + registration("Event", "Progressive Client Event discovery: compact listener directory, then one exact event contract.", "listEvents", (input) => queryEventApi(readExact(input, "event")), EVENT_INPUT, EVENT_OUTPUT), + registration("Builtin", "Plain-JavaScript symbols available to a dynamic Client half.", "listBuiltins", () => ({ + builtins: [...CLIENT_BUILTIN_INSPECTION], + referencedTypes: [] + })), + { + manifest: { + id: "Slots", + description: "Progressive live Slot inspection: compact purpose/topology trees plus one exact Slot contract.", + methods: [{ + name: "listSubTree", + description: "Return compact live Slot trees for navigation. With root, also return the selected Slot's full contract and occupants.", + inputSchema: SUBTREE_INPUT, + outputSchema: SUBTREE_OUTPUT + }] + }, + query(method, input) { + if (method !== "listSubTree") throw new Error(`unknown Slots inspect method "${method}"`); + const slots = ctx.get("slots"); + if (slots === void 0) throw new Error("Client Slots service is not running"); + const root = typeof input === "object" && input !== null && !Array.isArray(input) && typeof input.root === "string" ? input.root : void 0; + const trees = slots.snapshot(root); + const selected = trees[0]; + return Promise.resolve({ + ...root === void 0 ? {} : { requestedRoot: { + name: root, + available: trees.length > 0 + } }, + trees: trees.map(compactSlotTree), + ...root === void 0 || selected === void 0 ? {} : { selected: inspectLiveSlot(selected) }, + referencedTypes: [] + }); + } + }, + registration("Theme", "Current theme token names and light/dark override requirements.", "listTokens", () => { + const theme = ctx.get("theme"); + if (theme === void 0) throw new Error("Client Theme service is not running"); + return { + tokens: theme.exportInspectTokens(), + referencedTypes: [] + }; + }) + ]; + } + function registration(id, description, method, query, inputSchema = EMPTY_INPUT, outputSchema = ANY_OUTPUT) { + return { + manifest: { + id, + description, + methods: [{ + name: method, + description, + inputSchema, + outputSchema + }] + }, + async query(requested, input) { + if (requested !== method) throw new Error(`unknown ${id} inspect method "${requested}"`); + return await query(input); + } + }; + } + function exactInput(field, description) { + return { + type: "object", + properties: { [field]: { + type: "string", + description + } }, + additionalProperties: false + }; + } + function readExact(input, field) { + if (input === void 0 || input === null || Array.isArray(input) || typeof input !== "object") return void 0; + const value = input[field]; + return typeof value === "string" ? value : void 0; + } + const SLOT_CATALOG = new Map(CLIENT_SLOT_API.map((entry) => [entry.key, entry])); + const GUARDED_SLOT_KEYS = new Map([["tool.view.cordis", { + description: "fixed by the dynamic Client Guard", + values: [{ + value: "self", + description: "The only accepted key. The Guard binds it to this Package's pluginId and packageId." + }] + }]]); + function compactSlotTree(node) { + const catalog = SLOT_CATALOG.get(node.name); + const guardedKeys = catalog === void 0 ? void 0 : GUARDED_SLOT_KEYS.get(catalog.key); + return { + name: node.name, + kind: node.kind, + scope: node.scope, + ...catalog === void 0 ? {} : { + purpose: catalog.summary, + replaceRisk: catalog.replaceRisk, + ...catalog.registerOptions.length === 0 ? {} : { registration: catalog.registerOptions.map((option) => ({ + name: option.name, + type: option.type, + required: option.requirement === "required" + })) }, + ...catalog.keyDomain === "" ? {} : { + keyDomain: guardedKeys?.description ?? catalog.keyDomain, + ...guardedKeys === void 0 ? {} : { allowedKeys: guardedKeys.values.map((value) => ({ ...value })) } + } + }, + children: node.children.map(compactSlotTree) + }; + } + function inspectLiveSlot(node) { + const catalog = SLOT_CATALOG.get(node.name); + return { + name: node.name, + kind: node.kind, + scope: node.scope, + ...node.declaredBy === void 0 ? {} : { declaredBy: node.declaredBy }, + occupants: node.occupants.map((occupant) => ({ ...occupant })), + ...catalog === void 0 ? {} : { catalog: inspectSlotCatalog(catalog) } + }; + } + function inspectSlotCatalog(entry) { + const guardedKeys = GUARDED_SLOT_KEYS.get(entry.key); + return { + description: entry.doc, + registration: entry.registerOptions.map((option) => ({ + name: option.name, + type: option.type, + required: option.requirement === "required", + description: option.doc + })), + ownerProps: [...entry.ownerProps], + ownerPropsReferences: [...entry.ownerPropsReferences], + standardProps: [...entry.standardProps], + keyDomain: guardedKeys?.description ?? entry.keyDomain, + ...guardedKeys === void 0 ? {} : { allowedKeys: guardedKeys.values.map((value) => ({ ...value })) }, + hookContext: entry.hookContext, + slotInject: entry.slotInject, + replaceRisk: entry.replaceRisk + }; + } + //#endregion + //#region lib/types/client/timer.js + /** Browser implementation of the Cordis timer Service. */ + /** Browser timer Service with the same public API as the Host Cordis TimerService. */ + var ClientTimerService = class extends _deepseek_ai_cordis.Service { + /** Register the Service and mix its lifecycle-safe helpers onto Context. */ + constructor(ctx) { + super(ctx, "timer"); + ctx.mixin("timer", [ + "timeout", + "interval", + "throttle", + "debounce", + "setTimeout", + "setInterval" + ]); + } + /** + * Run a callback once through {@link timeout}. + * @param callback - Work to run after the delay. + * @param delay - Delay in milliseconds. + * @returns Disposer that cancels the pending callback early. + * @deprecated Use `ctx.timeout()` instead. + */ + setTimeout(callback, delay) { + return this.timeout(callback, delay); + } + /** + * Run a callback repeatedly through {@link interval}. + * @param callback - Work to run on each tick. + * @param delay - Interval in milliseconds. + * @returns Disposer that stops the interval early. + * @deprecated Use `ctx.interval()` instead. + */ + setInterval(callback, delay) { + return this.interval(callback, delay); + } + timeout(...args) { + const callback = typeof args[0] === "function" ? args.shift() : void 0; + const delay = args[0]; + if (callback !== void 0) { + const dispose = this.ctx.effect(() => { + const timer = globalThis.setTimeout(() => { + dispose(); + callback(); + }, delay); + return () => { + globalThis.clearTimeout(timer); + }; + }, "ctx.timeout()"); + return dispose; + } + const { promise, resolve, reject } = Promise.withResolvers(); + const dispose = this.ctx.effect(() => { + const timer = globalThis.setTimeout(resolve, delay); + return () => { + globalThis.clearTimeout(timer); + reject(/* @__PURE__ */ new Error("Context has been disposed")); + }; + }, "ctx.timeout()"); + return promise.finally(() => { + dispose(); + }); + } + interval(...args) { + const callback = typeof args[0] === "function" ? args.shift() : void 0; + const delay = args[0]; + if (callback !== void 0) return this.ctx.effect(() => { + const timer = globalThis.setInterval(callback, delay); + return () => { + globalThis.clearInterval(timer); + }; + }, "ctx.interval()"); + let done; + let nextTask; + const dispose = this.ctx.effect(() => { + const timer = globalThis.setInterval(() => { + nextTask?.resolve({ + done: false, + value: void 0 + }); + }, delay); + return () => { + globalThis.clearInterval(timer); + if (done !== void 0) return; + done = { + kind: "throw", + reason: /* @__PURE__ */ new Error("Context has been disposed") + }; + nextTask?.reject(done.reason); + }; + }, "ctx.interval()"); + return { + next: () => { + if (done === void 0) return (nextTask = Promise.withResolvers()).promise; + if (done.kind === "return") return Promise.resolve({ + done: true, + value: done.value + }); + return Promise.reject(done.reason); + }, + return: (value) => { + if (done === void 0) done = { + kind: "return", + value + }; + nextTask?.resolve({ + done: true, + value + }); + dispose(); + return Promise.resolve({ + done: true, + value + }); + }, + throw: (reason) => { + if (done === void 0) done = { + kind: "throw", + reason + }; + nextTask?.reject(reason); + dispose(); + return Promise.resolve({ + done: true, + value: void 0 + }); + }, + [Symbol.asyncIterator]() { + return this; + } + }; + } + /** Build a delayed wrapper whose pending callback belongs to the calling Fiber. */ + schedule(label, trigger, disposed = false) { + let timer; + const dispose = this.ctx.effect(() => () => { + disposed = true; + globalThis.clearTimeout(timer); + }, label); + const wrapper = (...args) => { + globalThis.clearTimeout(timer); + timer = trigger(args, disposed); + }; + wrapper.dispose = dispose; + return wrapper; + } + /** + * Return a throttled function whose timer is disposed with the calling Fiber. + * @param callback - Function to throttle. + * @param delay - Minimum interval between calls in milliseconds. + * @param noTrailing - Whether to suppress a delayed trailing call. + * @returns Throttled function with an early disposer. + */ + throttle(callback, delay, noTrailing) { + let lastCall = -Infinity; + const execute = (...args) => { + lastCall = Date.now(); + callback(...args); + }; + return this.schedule("ctx.throttle()", (args, disposed) => { + const remaining = delay - Date.now() + lastCall; + if (remaining <= 0) execute(...args); + else if (!disposed) return globalThis.setTimeout(execute, remaining, ...args); + }, noTrailing); + } + /** + * Return a debounced function whose timer is disposed with the calling Fiber. + * @param callback - Function to debounce. + * @param delay - Quiet period in milliseconds. + * @returns Debounced function with an early disposer. + */ + debounce(callback, delay) { + return this.schedule("ctx.debounce()", (args, disposed) => { + if (disposed) return; + return globalThis.setTimeout(callback, delay, ...args); + }); + } + }; + /** + * Install the browser timer Service on one Client composition. + * @param ctx - Client context that owns the Service and mixed-in helpers. + * @returns Nothing after registering the Service. + */ + function provideClientTimer(ctx) { + new ClientTimerService(ctx); + } + //#endregion + //#region lib/types/client/index.js + /** + * Dynamic-package runner, browser half: the load engine that turns one browser + * half's source into a live cordis plugin (closure → guard → module table → + * loader entry, ./runtime.ts), plus the retract announcement that unloads it. + * + * Nothing loads on activation: this page holds no dynamic package until a + * dispatch arrives, and a dispatch only follows a model `cordis_run` or a user + * pressing a card's start control. A refresh therefore starts clean by design — + * host process memory still holds the definition, the page simply does not run + * it until asked again. + */ + /** Teaching text for a routing failure the infrastructure itself reports. */ + function invokeFailure(pluginId, method, result) { + const where = `host.call("${method}") on ${pluginId}`; + if (result.code === "plugin-not-running") return `${where} found no active Host half — the Plugin is stopped or was removed.`; + if (result.code === "stale-run") return `${where} belongs to an activation that has already been replaced.`; + if (result.code === "method-not-found") return `${where} is not registered: the host half must declare it with harness.handle("${method}", fn).`; + return `${where} failed inside the host handler: ${result.message}`; + } + /** Preserve a Host handler's stack while adding the Client call site diagnosis. */ + function invokeError(pluginId, method, result) { + const error = new Error(invokeFailure(pluginId, method, result)); + if (result.stack !== void 0) error.stack = `${error.stack ?? error.message}\nHost stack:\n${result.stack}`; + return error; + } + /** + * Teaching text for a `host.call` the wire itself refused: the generated codec + * rejected the argument before sending, or the result on the way back, or the + * transport broke. The infrastructure's message names the field it refused but + * not the call it belonged to, and the model authored both halves — so this adds + * the call and the contract it has to satisfy. + */ + function wireFailure(id, method, error) { + return `host.call("${method}") on ${id} did not complete: ${error instanceof Error ? error.message : String(error)}\nBoth directions carry JSON only: pass plain JSON data as the argument — or omit it, and the handler receives null — and answer from harness.handle("${method}", fn) with JSON (\`return null\` when there is nothing to report).`; + } + /** Stable Cordis plugin name. */ + const name = "cordis-client-runner"; + /** + * Required services: the loader/module chain for entries, the slot registry for + * contributions, and the `dynamicCordisRunner` Remote namespace. Declaring the + * namespace parks this plugin until the host side exists, so a page never loads + * a browser half whose host half it could not reach. + */ + const inject = [ + "loader", + "modules", + "slots", + "remote", + "remote.dynamicCordisRunner" + ]; + /** + * Client plugin body: build the runner and subscribe the dispatch family. + * @param ctx - client root context. + */ + function apply(ctx) { + provideClientTimer(ctx); + const inspect = new ClientCordisInspectRegistry({ + sync: async (providers) => { + const answered = await ctx.remote.dynamicCordisRunner.syncInspectManifest(providers); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + }, + resolve: async (agentId, requestId, resolution) => { + const answered = await ctx.remote.dynamicCordisRunner.resolveInspectQuery(agentId, requestId, resolution); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + } + }); + provideClientCordisInspect(ctx, inspect); + for (const provider of clientInspectProviders(ctx)) ctx.effect(() => inspect.register(provider), `cordis-client-runner: inspect ${provider.manifest.id}`); + ctx.on("connection/reset", () => { + inspect.publish(); + }); + const runner = new DynamicCordisPackageRunner({ + ctx, + loader: ctx.loader, + modules: ctx.get("modules"), + slots: ctx.get("slots"), + invoke: async (pluginId, pluginRunId, method, args) => { + const answered = await ctx.remote.dynamicCordisRunner.invoke(pluginId, pluginRunId, method, args).catch((error) => { + throw new Error(wireFailure(pluginId, method, error)); + }); + if (!answered.ok) throw new Error(wireFailure(pluginId, method, `${answered.error.code}: ${answered.error.message}`)); + const result = answered.value; + if (result.ok) return result.value; + throw invokeError(pluginId, method, result); + }, + reportRenderFailure: (agentId, pluginId, pluginRunId, failure) => { + ctx.remote.dynamicCordisRunner.reportRenderFailure(agentId, pluginId, pluginRunId, failure).then((result) => { + if (!result.ok) console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, result.error); + }, (error) => { + console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, error); + }); + }, + reportGuardFailure: (agentId, pluginId, pluginRunId, failure) => { + ctx.remote.dynamicCordisRunner.reportClientGuardFailure(agentId, pluginId, pluginRunId, failure).then((result) => { + if (!result.ok) console.error(`[cordis-client-runner] reporting a guard failure of ${pluginId} failed:`, result.error); + }, (error) => { + console.error(`[cordis-client-runner] reporting a guard failure of ${pluginId} failed:`, error); + }); + } + }); + const orchestrator = new CordisRunOrchestrator({ + runner, + host: { + runHostHalf: async (agentId, pluginId, packageId, mode, requestId, approveFutureVersions) => { + const answered = await ctx.remote.dynamicCordisRunner.runHostHalf(agentId, pluginId, packageId, mode, requestId, approveFutureVersions); + return answered.ok ? answered.value : { + ok: false, + message: `${answered.error.code}: ${answered.error.message}` + }; + }, + getClientCode: async (agentId, pluginId, pluginRunId) => { + const answered = await ctx.remote.dynamicCordisRunner.getClientCode(agentId, pluginId, pluginRunId); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + return answered.value; + }, + resolveRequestRun: async (requestId, resolution) => { + const answered = await ctx.remote.dynamicCordisRunner.resolveRequestRun(requestId, resolution); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + return answered.value; + }, + settleUserRun: async (agentId, pluginId, resolution) => { + const answered = await ctx.remote.dynamicCordisRunner.settleUserRun(agentId, pluginId, resolution); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + return answered.value; + } + } + }); + const face = { + activeRuns: orchestrator.activeRuns, + lastRunError: orchestrator.lastRunError, + renderFailures: runner.renderFailures, + reconcileApprovals: (rows) => { + orchestrator.reconcileApprovals(rows); + }, + approve: (requestId, approveFutureVersions) => orchestrator.approve(requestId, approveFutureVersions), + decline: (requestId) => orchestrator.decline(requestId), + startUserRun: (request) => orchestrator.startUserRun(request), + subscribe: (fn) => runner.subscribe(fn), + getSnapshot: () => runner.getSnapshot(), + isLoaded: (id) => runner.isLoaded(id) + }; + ctx.provide("dynamicCordisRunner", face); + ctx.effect(() => () => { + runner.dispose(); + }, "cordis-client-runner: dynamic package runner"); + ctx.remote.$on("cordis/request-run", (request) => { + orchestrator.open(request); + }); + ctx.remote.$on("cordis/request-run-resolved", (resolved) => { + orchestrator.close(resolved.requestId); + }); + ctx.remote.$on("cordis/dynamic-retract", (retracted) => { + runner.retract(retracted.pluginId, retracted.pluginRunId); + }); + ctx.remote.$on("cordis/inspect-query", (request) => { + inspect.query(request).catch((error) => { + console.error(`[cordis-client-runner] inspect query ${request.provider}.${request.method} failed:`, error); + }); + }); + ctx.remote.$on("cordis/inspect-query-resolved", (resolved) => { + inspect.close(resolved.requestId); + }); + } + //#endregion + exports.ClientCordisInspectRegistry = ClientCordisInspectRegistry; + exports.ClientTimerService = ClientTimerService; + exports.CordisRunOrchestrator = CordisRunOrchestrator; + exports.DynamicCordisPackageRunner = DynamicCordisPackageRunner; + exports.DynamicCordisStyles = DynamicCordisStyles; + exports.apply = apply; + exports.dynamicCordisContext = dynamicCordisContext; + exports.evaluateClientHalf = evaluateClientHalf; + exports.inject = inject; + exports.isDynamicCordisPlugin = isDynamicCordisPlugin; + exports.name = name; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000d b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000d new file mode 100644 index 0000000..a85b668 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000d @@ -0,0 +1,456 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-layout", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + /** Viewport width below which the sidebar auto-collapses to the rail (deepsuite + * LG breakpoint); a manual toggle below it re-expands over the squeezed center + * (stores.ts narrowExpanded). */ + const SIDEBAR_AUTO_COLLAPSE = 1024; + /** + * Clamp a panel width into its contract range. + * @param px - requested width. + * @param min - range lower bound. + * @param max - range upper bound. + * @returns the clamped width. + */ + function clampWidth(px, min, max) { + return Math.min(max, Math.max(min, Math.round(px))); + } + /** + * Solve the three column widths for one viewport frame. Pure: no hysteresis — + * the output is a function of (viewport, preferences) only, so recovery on + * re-widening is automatic. Preferences re-clamp here because they cross the + * store boundary and callers may still supply stale ranges. + * @param viewport - available frame width in px. + * @param sidebar - sidebar width preference in px (0 = closed). + * @param details - details width preference in px (0 = closed). + * @returns resolved widths; details 0 means visually closed (never unmounted), while a closed sidebar keeps its compact rail. + */ + function computeColumns(viewport, sidebar, details) { + const s = sidebar === 0 ? 56 : clampWidth(sidebar, 264, 420); + const d0 = details === 0 ? 0 : clampWidth(details, 300, 520); + if (s + d0 + 640 <= viewport) return { + sidebar: s, + center: viewport - s - d0, + details: d0 + }; + const d1 = d0 === 0 ? 0 : Math.max(300, viewport - s - 640); + if (s + d1 + 640 <= viewport) return { + sidebar: s, + center: 640, + details: d1 + }; + return { + sidebar: s, + center: Math.max(0, viewport - s), + details: 0 + }; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-layout/src/client/AppFrame.module.css.mjs + const css = ".pI_x6G_frame{background:var(--dsw-alias-bg-base);height:100%;transition:grid-template-columns var(--ds-transition-duration-slow) var(--ds-ease-in-out);grid-template-rows:100%;display:grid;position:relative;overflow:hidden}.pI_x6G_frame[data-dragging]{transition:none}@media (prefers-reduced-motion:reduce){.pI_x6G_frame{transition:none}}.pI_x6G_sidebarCol{background:var(--dsw-specific-sidebar-fill);border-right:1px solid var(--dsw-alias-border-l1);min-width:0;overflow:hidden}.pI_x6G_centerCol{flex-direction:column;min-width:0;display:flex;overflow:hidden}.pI_x6G_detailsCol{border-left:1px solid var(--dsw-alias-border-l2);min-width:0;overflow:hidden}.pI_x6G_frame[data-details-collapsed] .pI_x6G_detailsCol{border-left:none}.pI_x6G_handle{cursor:col-resize;z-index:2;touch-action:none;width:8px;transition:left var(--ds-transition-duration-slow) var(--ds-ease-in-out);margin-left:-4px;position:absolute;top:0;bottom:0}.pI_x6G_frame[data-dragging] .pI_x6G_handle{transition:none}@media (prefers-reduced-motion:reduce){.pI_x6G_handle{transition:none}}.pI_x6G_handle[data-side=details]:after{content:\"\";box-sizing:border-box;background:var(--dsw-alias-button-floating-fill);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);opacity:0;width:12px;height:32px;transition:opacity var(--ds-transition-duration-slow) var(--ds-ease-in-out), background var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pI_x6G_detailsCol:hover~.pI_x6G_handle[data-side=details]:after,.pI_x6G_handle[data-side=details]:hover:after,.pI_x6G_handle[data-side=details][data-dragging=true]:after{opacity:1}.pI_x6G_handle[data-side=details]:hover:after,.pI_x6G_handle[data-side=details][data-dragging=true]:after{background:var(--dsw-alias-button-floating-hover);border-color:var(--dsw-alias-border-l3)}.pI_x6G_overlayLayer{z-index:20;pointer-events:none;position:absolute;inset:0}.pI_x6G_overlayLayer>*{pointer-events:auto}"; + const tagId = "@deepseek-ai/dsh-client-ui-layout/AppFrame.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-layout"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var AppFrame_module_css_default = { + "detailsCol": "pI_x6G_detailsCol", + "sidebarCol": "pI_x6G_sidebarCol", + "overlayLayer": "pI_x6G_overlayLayer", + "handle": "pI_x6G_handle", + "frame": "pI_x6G_frame", + "centerCol": "pI_x6G_centerCol" + }; + //#endregion + //#region lib/types/client/AppFrame.js + /** + * Three-column shell frame, registered into the built-in 'root' slot (the web + * shell renders only 'root'). Owns the grid tracks (sidebar | center | + * details), the drag handles (pointer capture + rAF throttle), the concession + * chain (columns.ts), and the child-slot render decisions: the sidebar slot + * renders HERE with live parameters from the concession solve, and the + * session-aware occupants render in fixed column positions; strict entries + * gate themselves on current-session availability while session-maybe + * entries retain identity. Pure component: everything arrives + * through the three framework shares — zero cordis or framework imports, + * zero self-made hooks. + */ + /** Center column grid item (session-body building block). */ + function CenterColumn(props) { + return (0, react_jsx_runtime.jsx)("div", { + className: AppFrame_module_css_default.centerCol, + children: props.children + }); + } + /** Details column grid item; width 0 keeps the subtree mounted (never unmount on close). */ + function DetailsColumn(props) { + return (0, react_jsx_runtime.jsx)("div", { + className: AppFrame_module_css_default.detailsCol, + children: props.children + }); + } + /** + * One drag handle: pointer capture, rAF-throttled dx reports against the drag-start origin. + * `side` keys the hover-reveal CSS to the owning column. + */ + function DragHandle(props) { + const [dragging, setDragging] = (0, react.useState)(false); + const origin = (0, react.useRef)(0); + const latest = (0, react.useRef)(0); + const frame = (0, react.useRef)(null); + const callbacks = (0, react.useRef)({ + onStart: props.onStart, + onDrag: props.onDrag, + onEnd: props.onEnd + }); + callbacks.current = { + onStart: props.onStart, + onDrag: props.onDrag, + onEnd: props.onEnd + }; + const onPointerDown = (0, react.useCallback)((e) => { + e.preventDefault(); + e.currentTarget.setPointerCapture(e.pointerId); + origin.current = e.clientX; + latest.current = e.clientX; + callbacks.current.onStart(); + setDragging(true); + }, []); + const onPointerMove = (0, react.useCallback)((e) => { + if (!e.currentTarget.hasPointerCapture(e.pointerId)) return; + latest.current = e.clientX; + frame.current ??= requestAnimationFrame(() => { + frame.current = null; + callbacks.current.onDrag(latest.current - origin.current); + }); + }, []); + const onPointerUp = (0, react.useCallback)((e) => { + if (!e.currentTarget.hasPointerCapture(e.pointerId)) return; + e.currentTarget.releasePointerCapture(e.pointerId); + if (frame.current !== null) { + cancelAnimationFrame(frame.current); + frame.current = null; + } + callbacks.current.onDrag(latest.current - origin.current); + setDragging(false); + callbacks.current.onEnd(); + }, []); + return (0, react_jsx_runtime.jsx)("div", { + className: AppFrame_module_css_default.handle, + style: { left: props.left }, + "data-side": props.side, + "data-dragging": dragging || void 0, + onPointerDown, + onPointerMove, + onPointerUp + }); + } + /** The three-column frame (see module doc). */ + function AppFrame({ useStore, useSessions, actions, renderSlot }) { + const panels = useStore((s) => s); + const detailsSession = useSessions((s) => { + const current = s.current; + return current !== void 0 && s.byId[current]?.blank === false ? current : void 0; + }); + const frameRef = (0, react.useRef)(null); + const [viewport, setViewport] = (0, react.useState)(() => window.innerWidth); + const lastSession = (0, react.useRef)(detailsSession); + (0, react.useLayoutEffect)(() => { + if (detailsSession === void 0) return; + if (lastSession.current !== void 0 && lastSession.current !== detailsSession) actions.closeDetails(); + lastSession.current = detailsSession; + }, [actions, detailsSession]); + (0, react.useEffect)(() => { + const el = frameRef.current; + /* v8 ignore next -- the ref is always attached by effect time: the frame div renders unconditionally. */ + if (el === null) return; + let raf = null; + const observer = new ResizeObserver(() => { + raf ??= requestAnimationFrame(() => { + raf = null; + const width = el.getBoundingClientRect().width; + if (width > 0) setViewport(width); + }); + }); + observer.observe(el); + return () => { + observer.disconnect(); + if (raf !== null) cancelAnimationFrame(raf); + }; + }, []); + const narrow = viewport < SIDEBAR_AUTO_COLLAPSE; + (0, react.useEffect)(() => { + actions.setNarrow(narrow); + }, [actions, narrow]); + const sidebarCollapsed = narrow ? !panels.narrowExpanded : panels.sidebar === 0; + const cols = computeColumns(viewport, sidebarCollapsed ? 0 : panels.sidebar === 0 ? 280 : panels.sidebar, detailsSession === void 0 ? 0 : panels.details); + const colsRef = (0, react.useRef)(cols); + colsRef.current = cols; + const sidebarBase = (0, react.useRef)(0); + const detailsBase = (0, react.useRef)(0); + const [dragging, setDragging] = (0, react.useState)(false); + const onDragEnd = (0, react.useCallback)(() => { + setDragging(false); + }, []); + const onSidebarStart = (0, react.useCallback)(() => { + sidebarBase.current = colsRef.current.sidebar; + setDragging(true); + }, []); + const onDetailsStart = (0, react.useCallback)(() => { + detailsBase.current = colsRef.current.details; + setDragging(true); + }, []); + const onSidebarDrag = (0, react.useCallback)((dx) => { + actions.setSidebar(sidebarBase.current + dx); + }, [actions]); + const onDetailsDrag = (0, react.useCallback)((dx) => { + actions.setDetails(detailsBase.current - dx); + }, [actions]); + return (0, react_jsx_runtime.jsxs)("div", { + ref: frameRef, + className: AppFrame_module_css_default.frame, + style: { gridTemplateColumns: `${cols.sidebar}px minmax(0, 1fr) ${cols.details}px` }, + "data-sidebar-collapsed": sidebarCollapsed || void 0, + "data-details-collapsed": cols.details === 0 || void 0, + "data-dragging": dragging || void 0, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: AppFrame_module_css_default.sidebarCol, + children: renderSlot("sidebar", { + collapsed: sidebarCollapsed, + width: cols.sidebar + }) + }), + (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(CenterColumn, { children: renderSlot("conversation", {}) }), (0, react_jsx_runtime.jsx)(DetailsColumn, { children: renderSlot("details", {}) })] }), + (0, react_jsx_runtime.jsx)("div", { + className: AppFrame_module_css_default.overlayLayer, + "data-shell-overlay": true, + children: renderSlot("shell.overlay", {}) + }), + !sidebarCollapsed && (0, react_jsx_runtime.jsx)(DragHandle, { + side: "sidebar", + left: cols.sidebar, + onStart: onSidebarStart, + onDrag: onSidebarDrag, + onEnd: onDragEnd + }), + cols.details > 0 && (0, react_jsx_runtime.jsx)(DragHandle, { + side: "details", + left: viewport - cols.details, + onStart: onDetailsStart, + onDrag: onDetailsDrag, + onEnd: onDragEnd + }) + ] + }); + } + //#endregion + //#region lib/types/client/stores.js + /** + * The root entry's transient layout store: panel geometry as plain widths in + * px (0 = closed). Module level exports the factory only — a module-level + * handle would pin the store's identity in the module + * cache (a de-facto singleton surviving plugin reloads). register() receives + * the factory (exclusive use: the framework instantiates per entry), AppFrame + * derives its PropsStore share from the return type, and the service face + * receives the bound actions through the registration's inject hook. + */ + /** + * Create the layout panel store handle. The preference IS the width, so + * closing a panel forgets its drag width — reopening restores the contract + * default. Actions are the complete write set: drag writes clamp + * into the panel's contract range and never cross the open/closed line; + * open/close transitions write 0 / the default explicitly. Below the + * auto-collapse breakpoint (AppFrame feeds setNarrow) the sidebar toggle + * flips the narrowExpanded override instead of the preference. + * @returns the store handle (spec + type + identity + factory in one). + */ + function createLayoutStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({ + init: () => ({ + sidebar: 280, + details: 0, + narrow: false, + narrowExpanded: false + }), + actions: { + setSidebar: (d, px) => { + d.sidebar = clampWidth(px, 264, 420); + }, + setDetails: (d, px) => { + d.details = clampWidth(px, 300, 520); + }, + toggleSidebar: (d) => { + if (d.narrow) d.narrowExpanded = !d.narrowExpanded; + else d.sidebar = d.sidebar === 0 ? 280 : 0; + }, + setNarrow: (d, narrow) => { + if (d.narrow === narrow) return; + d.narrow = narrow; + d.narrowExpanded = false; + }, + openDetails: (d) => { + if (d.details === 0) d.details = 360; + }, + closeDetails: (d) => { + d.details = 0; + } + } + }); + } + //#endregion + //#region lib/types/client/service.js + /** Cross-plugin panel-action face (ctx.layout). */ + var LayoutController = class { + #panels; + /** + * Adopt the root entry's bound store actions. Called from the root + * registration's inject hook (a sanctioned assembly side effect), so the + * face is live from the entry's first render; on entry re-register the + * fresh actions overwrite the stale set. + * @param actions - bound actions of the entry's layout store instance. + */ + attachPanels(actions) { + this.#panels = actions; + } + /** Toggle the sidebar panel (closed ⟷ contract default width). */ + toggleSidebar() { + this.#require().toggleSidebar(); + } + /** Open the details panel (no-op when already open). */ + openDetails() { + this.#require().openDetails(); + } + /** Close the details panel. */ + closeDetails() { + this.#require().closeDetails(); + } + #require() { + if (this.#panels === void 0) throw new Error("layout: panel actions not wired (root entry not mounted)"); + return this.#panels; + } + }; + //#endregion + //#region lib/types/client/theme-presenter.js + /** Body attribute selecting the dark base palette in the token stylesheets. */ + const DARK_ATTRIBUTE = "data-ds-dark-theme"; + /** Applies theme snapshots to the document; one instance per plugin fiber. */ + var ThemePresenter = class { + /** Token names this presenter wrote in the last apply (its retraction set). */ + appliedTokens = []; + /** The single metadata node this presenter inserts and removes. */ + themeColorMeta; + /** Create the presenter-owned metadata node before the first snapshot arrives. */ + constructor() { + this.themeColorMeta = document.createElement("meta"); + this.themeColorMeta.name = "theme-color"; + } + /** + * Project a snapshot onto the document: set root `color-scheme` and the body + * palette attribute from `active.colorScheme` (never the id — `system` is + * resolved upstream), then replace the previously applied token variables + * with `active.tokens`. Browser theme-color metadata follows the computed + * body background after those writes, so the rendered palette remains the + * color authority. + * @param snapshot - resolved theme snapshot from ctx.theme. + */ + apply(snapshot) { + const scheme = snapshot.active.colorScheme; + document.documentElement.style.colorScheme = scheme; + const body = document.body; + if (scheme === "dark") body.setAttribute(DARK_ATTRIBUTE, ""); + else body.removeAttribute(DARK_ATTRIBUTE); + for (const name of this.appliedTokens) body.style.removeProperty(name); + this.appliedTokens = []; + for (const [name, value] of Object.entries(snapshot.active.tokens)) { + body.style.setProperty(name, value); + this.appliedTokens.push(name); + } + this.themeColorMeta.content = getComputedStyle(body).backgroundColor; + if (!this.themeColorMeta.isConnected) document.head.append(this.themeColorMeta); + } + /** Retract root color-scheme, the palette attribute, token variables, and the owned metadata node. */ + dispose() { + document.documentElement.style.removeProperty("color-scheme"); + const body = document.body; + body.removeAttribute(DARK_ATTRIBUTE); + for (const name of this.appliedTokens) body.style.removeProperty(name); + this.appliedTokens = []; + this.themeColorMeta.remove(); + } + }; + //#endregion + //#region lib/types/client/index.js + /** Required services (cordis fiber inject — the loader passes all module exports as an object plugin). */ + const inject = ["slots", "theme"]; + /** + * Client plugin body: provide ctx.layout, then one register() call — AppFrame + * into 'root' with the four child-slot declarations, the layout store seat, + * and the inject hook that hands the store's bound actions to the service. + * @param ctx - client root context. + */ + function apply(ctx) { + const layout = new LayoutController(); + ctx.effect(() => { + const disposeService = ctx.reflect.provide("layout", layout); + const disposeRegistration = ctx.slots.register({ + name: "root", + children: { + "sidebar": { + kind: "single", + scope: "root" + }, + "conversation": { + kind: "single", + scope: "session-maybe" + }, + "details": { + kind: "single", + scope: "session" + }, + "shell.overlay": { + kind: "list", + scope: "root" + } + }, + store: createLayoutStore, + inject: (actions) => { + layout.attachPanels(actions); + return {}; + } + }, AppFrame); + return () => { + disposeRegistration(); + disposeService(); + }; + }, "ui-layout: service + root registration"); + ctx.effect(() => { + const presenter = new ThemePresenter(); + presenter.apply(ctx.theme.getTheme()); + const off = ctx.on("theme/change", (snapshot) => { + presenter.apply(snapshot); + }); + return () => { + off(); + presenter.dispose(); + }; + }, "ui-layout: theme presenter"); + } + //#endregion + exports.LayoutController = LayoutController; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000e b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000e new file mode 100644 index 0000000..6d41a58 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000e @@ -0,0 +1,609 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-settings-general", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_dsh_client_ui_slots = require("@deepseek-ai/dsh-client-ui-slots"); + let _deepseek_ai_dsh_client_web_react = require("@deepseek-ai/dsh-client-web-react"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-general/src/client/SettingsRoot.module.css.mjs + const css$3 = ".VOzbGW_trigger{box-sizing:border-box;cursor:pointer;width:calc(100% + 8px);height:34px;color:var(--dsw-alias-label-primary);background:0 0;border:none;border-radius:12px;flex:none;align-items:center;gap:8px;margin:4px -4px;padding:6px 2px 6px 10px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.VOzbGW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.VOzbGW_trigger.VOzbGW_rail{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;margin:8px 0 10px;padding:0}.VOzbGW_triggerLabel{white-space:nowrap;overflow:hidden}.VOzbGW_overlay{z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.VOzbGW_mask{background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);position:absolute;inset:0}.VOzbGW_panel{z-index:1;background:var(--dsw-alias-bg-layer-2);width:800px;max-width:calc(100vw - 48px);height:min(800px,100vh - 48px);box-shadow:var(--dsw-shadow-lv3);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:24px;display:flex;position:relative;overflow:hidden}.VOzbGW_nav{box-sizing:border-box;flex-direction:column;flex:none;gap:18px;width:188px;padding:22px 12px 0;display:flex}.VOzbGW_navTitle{color:var(--dsw-alias-label-primary);padding:0 12px;font-size:16px;font-weight:500;line-height:24px}.VOzbGW_navList{flex-direction:column;gap:4px;display:flex}.VOzbGW_navCell{box-sizing:border-box;cursor:pointer;height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:9px 16px 9px 12px;font-family:inherit;font-size:14px;font-weight:400;line-height:22px;display:flex}.VOzbGW_navCell:hover{background:var(--dsw-specific-sidebar-nav-item-hover)}.VOzbGW_navCell.VOzbGW_active{background:var(--dsw-specific-sidebar-nav-item-active)}.VOzbGW_navIcon{flex:none}.VOzbGW_navLabel{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.VOzbGW_content{flex-direction:column;flex:1;min-width:0;display:flex}.VOzbGW_header{box-sizing:border-box;flex:none;justify-content:space-between;align-items:flex-start;gap:8px;height:54px;padding:20px 14px 8px 10px;display:flex}.VOzbGW_actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.VOzbGW_close{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-primary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.VOzbGW_close:hover{background:var(--dsw-alias-interactive-bg-hover)}.VOzbGW_options{flex:1;min-height:0;padding:0 24px 24px;overflow-y:auto}.VOzbGW_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-settings-general/SettingsRoot.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-general"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var SettingsRoot_module_css_default = { + "options": "VOzbGW_options", + "navList": "VOzbGW_navList", + "panel": "VOzbGW_panel", + "actions": "VOzbGW_actions", + "navCell": "VOzbGW_navCell", + "triggerLabel": "VOzbGW_triggerLabel", + "active": "VOzbGW_active", + "navLabel": "VOzbGW_navLabel", + "navIcon": "VOzbGW_navIcon", + "trigger": "VOzbGW_trigger", + "content": "VOzbGW_content", + "close": "VOzbGW_close", + "rail": "VOzbGW_rail", + "nav": "VOzbGW_nav", + "overlay": "VOzbGW_overlay", + "navTitle": "VOzbGW_navTitle", + "header": "VOzbGW_header", + "hiddenLabel": "VOzbGW_hiddenLabel", + "mask": "VOzbGW_mask" + }; + //#endregion + //#region lib/types/client/SettingsRoot.js + /** + * Settings shell root: the sidebar-foot trigger row plus the centered modal + * panel (figma 501:29947, 1080x700) with the section nav rail. The shell is + * a pure composition face — every piece of text (trigger label, panel title, + * close label, sections) arrives from registrants through slots; accessible + * names resolve to that content (trigger: its own text; dialog: + * aria-labelledby the title node; close: visually-hidden slot text). Modal + * open state and the active section id are component-local viewing state; + * the onboarding coordinator mounts exactly one ordered registrant while the + * sessions-derived empty-Hero fact is active. Visible dialog chrome belongs + * to the step, so a mounted-but-deciding step paints nothing here. + */ + /** Nav glyph by section id; unknown ids fall back to the settings gear. */ + function navIcon(id) { + if (id === "models") return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDataOutline16, { + className: SettingsRoot_module_css_default.navIcon, + size: 16 + }); + if (id === "agent-presets") return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconAgentPresetOutline16, { + className: SettingsRoot_module_css_default.navIcon, + size: 16 + }); + if (id === "plugins") return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPersonalizationOutline16, { + className: SettingsRoot_module_css_default.navIcon, + size: 16 + }); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutline16, { + className: SettingsRoot_module_css_default.navIcon, + size: 16 + }); + } + /** + * The modal layer: full-viewport mask + centered panel. Close paths: the + * header button, a mask click, and document-level Escape (mounted only while + * open, so the listener lifetime is the panel's). + */ + function SettingsPanel({ rows, renderSlot, activeId, onSelect, onClose }) { + const active = rows.find((r) => r.id === activeId)?.id ?? rows[0]?.id; + const titleId = (0, react.useId)(); + (0, react.useEffect)(() => { + const onKeyDown = (e) => { + if (e.key === "Escape") onClose(); + }; + document.addEventListener("keydown", onKeyDown); + return () => { + document.removeEventListener("keydown", onKeyDown); + }; + }, [onClose]); + const closeButton = (0, react.useRef)(null); + (0, react.useEffect)(() => { + closeButton.current?.focus(); + }, []); + return (0, react_jsx_runtime.jsxs)("div", { + className: SettingsRoot_module_css_default.overlay, + role: "presentation", + children: [(0, react_jsx_runtime.jsx)("div", { + className: SettingsRoot_module_css_default.mask, + "aria-hidden": "true", + onClick: onClose + }), (0, react_jsx_runtime.jsxs)("div", { + className: SettingsRoot_module_css_default.panel, + role: "dialog", + "aria-modal": "true", + "aria-labelledby": titleId, + children: [(0, react_jsx_runtime.jsxs)("nav", { + className: SettingsRoot_module_css_default.nav, + children: [(0, react_jsx_runtime.jsx)("div", { + className: SettingsRoot_module_css_default.navTitle, + id: titleId, + children: renderSlot("settings.header", {}) + }), (0, react_jsx_runtime.jsx)("div", { + className: SettingsRoot_module_css_default.navList, + children: rows.map((row) => (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: clsx(SettingsRoot_module_css_default.navCell, row.id === active && SettingsRoot_module_css_default.active), + "aria-current": row.id === active ? "true" : void 0, + onClick: () => { + onSelect(row.id); + }, + children: [navIcon(row.id), (0, react_jsx_runtime.jsx)("span", { + className: SettingsRoot_module_css_default.navLabel, + children: row.label + })] + }, row.id)) + })] + }), (0, react_jsx_runtime.jsxs)("div", { + className: SettingsRoot_module_css_default.content, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: SettingsRoot_module_css_default.header, + children: [(0, react_jsx_runtime.jsx)("div", { + className: SettingsRoot_module_css_default.actions, + children: renderSlot("settings.action", {}) + }), (0, react_jsx_runtime.jsxs)("button", { + ref: closeButton, + type: "button", + className: SettingsRoot_module_css_default.close, + onClick: onClose, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 }), (0, react_jsx_runtime.jsx)("span", { + className: SettingsRoot_module_css_default.hiddenLabel, + children: renderSlot("settings.close", {}) + })] + })] + }), (0, react_jsx_runtime.jsx)("div", { + className: SettingsRoot_module_css_default.options, + children: active !== void 0 && renderSlot("settings.section", { close: onClose }, { only: active }) + })] + })] + })] + }); + } + /** + * Render the settings trigger and panel. + * @param props - composed slot props (contract/slots.ts). + * @returns the settings shell element tree. + */ + function SettingsRoot(props) { + const { wide, useSections, useOnboardingSteps, useSessions, renderSlot } = props; + const [open, setOpen] = (0, react.useState)(false); + const [activeId, setActiveId] = (0, react.useState)(void 0); + const [completedOnboarding, setCompletedOnboarding] = (0, react.useState)(() => /* @__PURE__ */ new Set()); + const close = (0, react.useCallback)(() => { + setOpen(false); + setActiveId(void 0); + }, []); + const openSection = (0, react.useCallback)((id) => { + setActiveId(id); + setOpen(true); + }, []); + const rows = useSections((s) => s); + const onboardingSteps = useOnboardingSteps((s) => s); + const onboardingActive = useSessions((state) => state.phase === "ready" && (state.current === void 0 || state.byId[state.current]?.blank === true)); + const onboardingStep = onboardingActive ? onboardingSteps.find((step) => !completedOnboarding.has(step.id)) : void 0; + (0, react.useEffect)(() => { + if (onboardingActive) return; + setCompletedOnboarding(/* @__PURE__ */ new Set()); + }, [onboardingActive]); + const completeOnboardingStep = (0, react.useCallback)((id) => { + setCompletedOnboarding((previous) => { + if (previous.has(id)) return previous; + return new Set([...previous, id]); + }); + }, []); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: clsx(SettingsRoot_module_css_default.trigger, !wide && SettingsRoot_module_css_default.rail), + "aria-haspopup": "dialog", + "aria-expanded": open, + onClick: () => { + setOpen(true); + }, + children: renderSlot("settings.trigger", { wide }) + }), + open && (0, react_jsx_runtime.jsx)(SettingsPanel, { + rows, + renderSlot, + activeId, + onSelect: setActiveId, + onClose: close + }), + onboardingStep !== void 0 && renderSlot("settings.onboarding", { + stepId: onboardingStep.id, + complete: () => { + completeOnboardingStep(onboardingStep.id); + }, + openSection + }, { only: onboardingStep.id }) + ] }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-general/src/client/chrome.module.css.mjs + const css$2 = ".UQsH_q_triggerLabel{white-space:nowrap;overflow:hidden}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-settings-general/chrome.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-general"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var chrome_module_css_default = { "triggerLabel": "UQsH_q_triggerLabel" }; + //#endregion + //#region lib/types/client/chrome.js + /** + * Shell chrome content registered into the shell's trigger/header seats: the + * trigger row icon + label (figma sidebar foot) and the panel title text. + * The shell renders the surrounding chrome (button, nav heading row) and + * reads each entry's `label` option for aria text. + */ + /** + * Render the trigger row content (icon; label only in the wide column). + * @param props - composed slot props. + * @returns the trigger content fragment. + */ + function TriggerContent({ wide, t }) { + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [wide ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutline16, { size: 16 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutline14, { size: 18 }), wide && (0, react_jsx_runtime.jsx)("span", { + className: chrome_module_css_default.triggerLabel, + children: t("trigger") + })] }); + } + /** + * Render the panel title text. + * @param props - composed slot props. + * @returns the title text node. + */ + function HeaderContent({ t }) { + return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: t("title") }); + } + /** + * Render the close button's visually-hidden label text. + * @param props - composed slot props. + * @returns the label text node. + */ + function CloseLabel({ t }) { + return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: t("close") }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-general/src/client/GeneralSection.module.css.mjs + const css$1 = "._WvWnq_section{flex-direction:column;width:100%;display:flex}._WvWnq_section>[data-slot=\"settings.general.item\"]>:last-child{border-bottom:none}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-settings-general/GeneralSection.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-general"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var GeneralSection_module_css_default = { "section": "_WvWnq_section" }; + //#endregion + //#region lib/types/client/GeneralSection.js + /** + * Render the General section content column. + * @param props - composed slot props (contract/slots.ts). + * @returns the section element tree. + */ + function GeneralSection({ renderSlot }) { + return (0, react_jsx_runtime.jsx)("div", { + className: GeneralSection_module_css_default.section, + children: renderSlot("settings.general.item", {}) + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-general/src/client/SettingsDocumentAction.module.css.mjs + const css = ".me01iq_action{align-items:center;gap:8px;min-width:0;display:flex}.me01iq_error{max-width:180px;color:var(--dsw-alias-state-error-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}"; + const tagId = "@deepseek-ai/dsh-client-ui-settings-general/SettingsDocumentAction.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-general"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var SettingsDocumentAction_module_css_default = { + "error": "me01iq_error", + "action": "me01iq_action" + }; + //#endregion + //#region lib/types/client/SettingsDocumentAction.js + /** Optional settings-header action for opening a file-backed Host document. */ + /** + * Render the open-document action only after Host metadata confirms document availability. + * @param props - header owner props, localized copy, and injected document state. + * @returns the action, or null while unavailable or unresolved. + */ + function SettingsDocumentAction({ controller, useSnapshot, t }) { + const state = useSnapshot((snapshot) => snapshot); + (0, react.useEffect)(() => { + controller.load(); + }, [controller]); + if (state.status !== "ready") return null; + return (0, react_jsx_runtime.jsxs)("div", { + className: SettingsDocumentAction_module_css_default.action, + children: [state.error === null ? null : (0, react_jsx_runtime.jsx)("span", { + className: SettingsDocumentAction_module_css_default.error, + role: "alert", + children: t("openDocument.error") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + size: "sm", + disabled: state.opening, + onClick: () => { + controller.open(); + }, + children: t("openDocument") + })] + }); + } + //#endregion + //#region lib/types/client/settings-document-store.js + /** State owner for the optional local settings-document action. */ + function messageOf(error) { + return error instanceof Error ? error.message : String(error); + } + /** Loads local-document availability and invokes the pathless Host-owned open operation. */ + var SettingsDocumentStore = class { + api; + /** uSES-safe state source shared by the registered header action. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)({ + status: "idle", + opening: false, + error: null + }); + generation = 0; + /** + * @param api - loopback settings wire face that reports and opens the provider document. + */ + constructor(api) { + this.api = api; + } + /** + * Load whether the current provider owns a local document. + * @returns after the latest metadata response updates the store. + */ + async load() { + const generation = ++this.generation; + this.store.update((state) => { + state.status = "loading"; + state.error = null; + }); + try { + const { result } = await this.api.settings.describe({}); + if (generation !== this.generation) return; + if (!result.ok) { + this.store.update((state) => { + state.status = "unavailable"; + state.error = result.error.message; + }); + return; + } + this.store.update((state) => { + state.status = result.value.hasDocument ? "ready" : "unavailable"; + state.error = null; + }); + } catch (error) { + if (generation !== this.generation) return; + this.store.update((state) => { + state.status = "unavailable"; + state.error = messageOf(error); + }); + } + } + /** + * Open the loaded document once; concurrent gestures collapse behind the in-flight action. + * @returns after the native-open request settles, or immediately when unavailable/already opening. + */ + async open() { + const current = this.store.getSnapshot(); + if (current.status !== "ready" || current.opening) return; + this.store.update((state) => { + state.opening = true; + state.error = null; + }); + try { + const response = await this.api.settings.openDocument({}); + if (!response.result.ok) throw new Error(response.result.error.message); + } catch (error) { + this.store.update((state) => { + state.error = messageOf(error); + }); + } finally { + this.store.update((state) => { + state.opening = false; + }); + } + } + }; + /** + * Refresh document availability after reconnect only when a surface has already requested it. + * @param controller - optional loopback document state owner. + */ + function refreshDocumentIfLoaded(controller) { + if (controller === void 0 || controller.store.getSnapshot().status === "idle") return; + controller.load(); + } + //#endregion + //#region lib/types/client/locales.js + /** Shell chrome and General-nav dictionaries; feature rows own their copy. */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "trigger": "设置", + "title": "设置", + "close": "关闭", + "openDocument": "打开�置文件", + "openDocument.error": "无法打开�置文件", + "general.nav": "通用设置" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "trigger": "Settings", + "title": "Settings", + "close": "Close", + "openDocument": "Open configuration file", + "openDocument.error": "Could not open configuration file", + "general.nav": "General" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin (shell chrome + General copy). */ + const NS = "settings"; + /** + * Required services (cordis fiber inject). The target slots are declared by + * ui-settings' apply, whose activation order relative to this one is NOT + * constrained; registrations depend on their slots through `slots.inject()`. + */ + const inject = [ + "slots", + "locale", + "connection" + ]; + /** + * Register the `settings` dictionaries, the chrome content, and the General + * section, each once its slot declaration is on the ledger. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-settings-general: dictionaries"); + const t = ctx.locale.bind(NS); + const connection = ctx.get("connection"); + const documentController = connection.isLoopback ? new SettingsDocumentStore(connection.api) : void 0; + const documentInjected = documentController === void 0 ? void 0 : (() => { + const useSnapshot = (0, _deepseek_ai_dsh_client_web_react.bindSnapshotSelector)(documentController.store); + return () => ({ + controller: documentController, + useSnapshot + }); + })(); + ctx.effect(() => ctx.on("connection/reset", () => { + refreshDocumentIfLoaded(documentController); + }), "ui-settings-general: metadata invalidations"); + let rowsVersion = -1; + let rowsRevision = -1; + let rows = []; + let onboardingVersion = -1; + let onboardingSteps = []; + const shellInjected = () => ({ hooks: { + sections: { + getSnapshot: () => { + const version = ctx.slots.getVersion("settings.section"); + const revision = ctx.locale.getSnapshot().revision; + if (version !== rowsVersion || revision !== rowsRevision) { + rowsVersion = version; + rowsRevision = revision; + rows = ctx.slots.entries("settings.section").map((e) => ({ + /* v8 ignore next -- list-slot registration requires id (SlotCore rejects an entry without one) */ + id: e.options.id ?? "", + order: e.options.order ?? 0, + label: (0, _deepseek_ai_dsh_client_ui_slots.resolveSlotLabel)(e.options.label) ?? "" + })).sort((a, b) => a.order - b.order); + } + return rows; + }, + subscribe: (listener) => { + const offLedger = ctx.slots.subscribe("settings.section", listener); + const offLocale = ctx.locale.subscribe(listener); + return () => { + offLedger(); + offLocale(); + }; + } + }, + onboardingSteps: { + getSnapshot: () => { + const version = ctx.slots.getVersion("settings.onboarding"); + if (version !== onboardingVersion) { + onboardingVersion = version; + onboardingSteps = ctx.slots.entries("settings.onboarding").map((e) => ({ + /* v8 ignore next -- list-slot registration requires id */ + id: e.options.id ?? "", + order: e.options.order ?? 0 + })).sort((a, b) => a.order - b.order); + } + return onboardingSteps; + }, + subscribe: (listener) => ctx.slots.subscribe("settings.onboarding", listener) + } + } }); + ctx.slots.inject("sidebar.settings", () => ctx.slots.register({ + name: "sidebar.settings", + children: { + "settings.trigger": { + kind: "single", + scope: "root" + }, + "settings.header": { + kind: "single", + scope: "root" + }, + "settings.action": { + kind: "list", + scope: "root" + }, + "settings.close": { + kind: "single", + scope: "root" + }, + "settings.section": { + kind: "list", + scope: "root" + }, + "settings.onboarding": { + kind: "list", + scope: "root" + } + }, + inject: shellInjected + }, SettingsRoot)); + ctx.slots.inject("settings.trigger", () => ctx.slots.register({ + name: "settings.trigger", + locale: NS + }, TriggerContent)); + ctx.slots.inject("settings.header", () => ctx.slots.register({ + name: "settings.header", + locale: NS + }, HeaderContent)); + if (documentInjected !== void 0) ctx.slots.inject("settings.action", () => ctx.slots.register({ + name: "settings.action", + id: "open-document", + order: 0, + locale: NS, + inject: documentInjected + }, SettingsDocumentAction)); + ctx.slots.inject("settings.close", () => ctx.slots.register({ + name: "settings.close", + locale: NS + }, CloseLabel)); + ctx.slots.inject("settings.section", () => ctx.slots.register({ + name: "settings.section", + id: "general", + order: 0, + label: () => t("general.nav"), + locale: NS, + children: { "settings.general.item": { + kind: "list", + scope: "root" + } } + }, GeneralSection)); + } + //#endregion + exports.SettingsDocumentStore = SettingsDocumentStore; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000f b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000f new file mode 100644 index 0000000..76899b4 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00000f @@ -0,0 +1,302 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-settings-plugin-inventory", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-plugin-inventory/src/client/PluginInventorySettingsTab.module.css.mjs + const css = ".qSYn7G_section{width:100%;max-width:760px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:14px;display:flex}.qSYn7G_catalogHeading h3,.qSYn7G_status,.qSYn7G_failure p{margin:0}.qSYn7G_status,.qSYn7G_failure{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.qSYn7G_failure{color:var(--dsw-alias-state-error-primary);align-items:center;gap:10px;display:flex}.qSYn7G_failure button{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.qSYn7G_catalog{flex-direction:column;gap:12px;display:flex}.qSYn7G_search{width:100%;color:var(--dsw-alias-label-tertiary);align-items:center;display:flex;position:relative}.qSYn7G_search>svg{pointer-events:none;position:absolute;left:12px}.qSYn7G_search input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;height:36px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;outline:none;padding:0 34px 0 36px;font-size:13px}.qSYn7G_search input::placeholder{color:var(--dsw-alias-label-tertiary)}.qSYn7G_search input:focus-visible{border-color:var(--dsw-alias-state-business-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-state-business-primary) 18%, transparent)}.qSYn7G_catalogHeading{align-items:baseline;gap:7px;padding:0 2px;display:flex}.qSYn7G_catalogHeading h3{font-size:13px;font-weight:600;line-height:20px}.qSYn7G_catalogHeading span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.qSYn7G_cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;margin:0;padding:0;list-style:none;display:grid}.qSYn7G_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:10px;min-width:0;overflow:hidden}.qSYn7G_card[data-open=true]{border-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-shadow-lv1)}.qSYn7G_cardContent{box-sizing:border-box;width:100%;min-height:52px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.qSYn7G_cardContent:hover,.qSYn7G_card[data-open=true]>.qSYn7G_cardContent{background:var(--dsw-alias-interactive-bg-hover)}.qSYn7G_cardContent:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px}.qSYn7G_cardTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;line-height:20px;overflow:hidden}.qSYn7G_cardTrailing{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:7px;display:inline-flex}.qSYn7G_statusDot{background:var(--dsw-alias-label-tertiary);border-radius:999px;flex:none;width:7px;height:7px;display:inline-block}.qSYn7G_statusDot[data-phase=active]{background:var(--dsw-alias-state-success-primary)}.qSYn7G_statusDot[data-phase=failed]{background:var(--dsw-alias-state-error-primary)}.qSYn7G_statusDot[data-phase=loading]{background:var(--dsw-alias-state-business-primary)}.qSYn7G_configTag{background:var(--dsw-alias-bg-layer-1);min-height:20px;color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:5px;align-items:center;padding:1px 6px;font-size:11px;line-height:16px;display:inline-flex}.qSYn7G_configTag[data-enabled=true]{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);color:var(--dsw-alias-state-success-primary)}.qSYn7G_chevron{color:var(--dsw-alias-label-tertiary);flex:none}.qSYn7G_card[data-open=true] .qSYn7G_chevron{transform:rotate(180deg)}.qSYn7G_cardDetails{border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);padding:10px 14px 12px}.qSYn7G_entryValue{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code);font-size:12px;line-height:18px;display:block}.qSYn7G_details{grid-template-columns:76px minmax(0,1fr);gap:6px 10px;margin:8px 0 0;display:grid}.qSYn7G_details div{display:contents}.qSYn7G_details dt{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:17px}.qSYn7G_details dd{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:17px}.qSYn7G_visuallyHidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.qSYn7G_chevron{transition:transform .14s var(--ds-ease-in-out)}}@media (width<=680px){.qSYn7G_cards{grid-template-columns:minmax(0,1fr)}}"; + const tagId = "@deepseek-ai/dsh-client-ui-settings-plugin-inventory/PluginInventorySettingsTab.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-plugin-inventory"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var PluginInventorySettingsTab_module_css_default = { + "cardContent": "qSYn7G_cardContent", + "visuallyHidden": "qSYn7G_visuallyHidden", + "configTag": "qSYn7G_configTag", + "search": "qSYn7G_search", + "catalogHeading": "qSYn7G_catalogHeading", + "cards": "qSYn7G_cards", + "chevron": "qSYn7G_chevron", + "cardTrailing": "qSYn7G_cardTrailing", + "status": "qSYn7G_status", + "section": "qSYn7G_section", + "catalog": "qSYn7G_catalog", + "cardTitle": "qSYn7G_cardTitle", + "entryValue": "qSYn7G_entryValue", + "failure": "qSYn7G_failure", + "statusDot": "qSYn7G_statusDot", + "cardDetails": "qSYn7G_cardDetails", + "details": "qSYn7G_details", + "card": "qSYn7G_card" + }; + //#endregion + //#region lib/types/client/PluginInventorySettingsTab.js + const PHASE_KEYS = { + pending: "pending", + loading: "loadingPhase", + active: "active", + failed: "failed", + unloading: "unloading" + }; + /** Localized accessible label for one root Fiber phase. */ + function phaseLabel(phase, t) { + return phase === null ? t("unobserved") : t(PHASE_KEYS[phase]); + } + /** Compact a module specifier without guessing whether its Loader id was generated. */ + function moduleShortName(moduleName) { + return (moduleName.startsWith("@") ? moduleName.slice(moduleName.indexOf("/") + 1) : moduleName).replace(/^cordis:/, "").replace(/^cordis-plugin-/, "").replace(/^dsh-(?:host-|client-)?/, ""); + } + /** Whether an inventory row matches the local catalog query. */ + function matches(entry, normalizedQuery) { + if (normalizedQuery.length === 0) return true; + return [entry.moduleName, entry.entryId].some((value) => value.toLocaleLowerCase().includes(normalizedQuery)); + } + /** Render the read-only current Loader inventory. */ + function PluginInventorySettingsTab({ list, t }) { + const catalogId = (0, react.useId)(); + const [request, setRequest] = (0, react.useState)(0); + const [query, setQuery] = (0, react.useState)(""); + const [expanded, setExpanded] = (0, react.useState)(null); + const [state, setState] = (0, react.useState)({ status: "loading" }); + (0, react.useEffect)(() => { + let current = true; + Promise.resolve().then(() => list()).then((snapshot) => { + if (current) setState({ + status: "ready", + snapshot + }); + }, () => { + if (current) setState({ status: "error" }); + }); + return () => { + current = false; + }; + }, [list, request]); + const normalizedQuery = query.trim().toLocaleLowerCase(); + const filteredEntries = (0, react.useMemo)(() => state.status === "ready" ? state.snapshot.entries.filter((entry) => matches(entry, normalizedQuery)) : [], [normalizedQuery, state]); + (0, react.useEffect)(() => { + if (expanded !== null && !filteredEntries.some((entry) => entry.entryId === expanded)) setExpanded(null); + }, [expanded, filteredEntries]); + const retry = () => { + setState({ status: "loading" }); + setRequest((value) => value + 1); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: PluginInventorySettingsTab_module_css_default.section, + "aria-busy": state.status === "loading", + children: [ + state.status === "loading" ? (0, react_jsx_runtime.jsx)("p", { + className: PluginInventorySettingsTab_module_css_default.status, + children: t("loading") + }) : null, + state.status === "error" ? (0, react_jsx_runtime.jsxs)("div", { + className: PluginInventorySettingsTab_module_css_default.failure, + children: [(0, react_jsx_runtime.jsx)("p", { + role: "alert", + children: t("error") + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + onClick: retry, + children: t("retry") + })] + }) : null, + state.status === "ready" ? (0, react_jsx_runtime.jsxs)("div", { + className: PluginInventorySettingsTab_module_css_default.catalog, + children: [ + (0, react_jsx_runtime.jsxs)("label", { + className: PluginInventorySettingsTab_module_css_default.search, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { "aria-hidden": "true" }), + (0, react_jsx_runtime.jsx)("span", { + className: PluginInventorySettingsTab_module_css_default.visuallyHidden, + children: t("search") + }), + (0, react_jsx_runtime.jsx)("input", { + type: "search", + value: query, + placeholder: t("search"), + "aria-label": t("search"), + onChange: (event) => { + setQuery(event.currentTarget.value); + } + }) + ] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: PluginInventorySettingsTab_module_css_default.catalogHeading, + children: [(0, react_jsx_runtime.jsx)("h3", { children: t("catalog") }), (0, react_jsx_runtime.jsx)("span", { + "data-plugin-count": filteredEntries.length, + children: filteredEntries.length + })] + }), + state.snapshot.entries.length === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: PluginInventorySettingsTab_module_css_default.status, + children: t("empty") + }) : null, + state.snapshot.entries.length > 0 && filteredEntries.length === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: PluginInventorySettingsTab_module_css_default.status, + children: t("emptySearch") + }) : null, + filteredEntries.length > 0 ? (0, react_jsx_runtime.jsx)("ul", { + className: PluginInventorySettingsTab_module_css_default.cards, + children: filteredEntries.map((entry) => { + const status = phaseLabel(entry.fiberPhase, t); + const title = moduleShortName(entry.moduleName); + const configuration = t(entry.enabled ? "enabledTag" : "disabledTag"); + const open = expanded === entry.entryId; + const detailId = `${catalogId}-details-${encodeURIComponent(entry.entryId)}`; + return (0, react_jsx_runtime.jsxs)("li", { + className: PluginInventorySettingsTab_module_css_default.card, + "data-plugin-entry": entry.entryId, + "data-open": open ? "true" : void 0, + children: [(0, react_jsx_runtime.jsxs)("button", { + className: PluginInventorySettingsTab_module_css_default.cardContent, + type: "button", + "aria-expanded": open, + "aria-controls": detailId, + "aria-label": entry.enabled ? `${title}, ${status}, ${configuration}` : `${title}, ${configuration}`, + onClick: () => { + setExpanded((current) => current === entry.entryId ? null : entry.entryId); + }, + children: [(0, react_jsx_runtime.jsx)("strong", { + className: PluginInventorySettingsTab_module_css_default.cardTitle, + title: entry.moduleName, + children: title + }), (0, react_jsx_runtime.jsxs)("span", { + className: PluginInventorySettingsTab_module_css_default.cardTrailing, + children: [ + entry.enabled ? (0, react_jsx_runtime.jsx)("span", { + className: PluginInventorySettingsTab_module_css_default.statusDot, + "data-phase": entry.fiberPhase ?? "unobserved", + role: "img", + "aria-label": status, + title: status + }) : null, + (0, react_jsx_runtime.jsx)("span", { + className: PluginInventorySettingsTab_module_css_default.configTag, + "data-enabled": entry.enabled ? "true" : "false", + children: configuration + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { + className: PluginInventorySettingsTab_module_css_default.chevron, + size: 12, + "aria-hidden": "true" + }) + ] + })] + }), open ? (0, react_jsx_runtime.jsxs)("div", { + className: PluginInventorySettingsTab_module_css_default.cardDetails, + id: detailId, + children: [(0, react_jsx_runtime.jsx)("code", { + className: PluginInventorySettingsTab_module_css_default.entryValue, + "data-loader-entry": true, + children: entry.entryId + }), (0, react_jsx_runtime.jsxs)("dl", { + className: PluginInventorySettingsTab_module_css_default.details, + children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("configuration") }), (0, react_jsx_runtime.jsx)("dd", { children: configuration })] }), entry.enabled ? (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("cordis") }), (0, react_jsx_runtime.jsx)("dd", { children: status })] }) : null] + })] + }) : null] + }, entry.entryId); + }) + }) : null + ] + }) : null + ] + }); + } + //#endregion + //#region lib/types/client/locales.js + /** Copy dictionaries for the plugin inventory Settings section. */ + /** Simplified Chinese dictionary and key source of truth. */ + const zh = { + tab: "�件列表", + loading: "正在读��件…", + error: "暂时无法读��件。", + retry: "�试", + search: "�索�件", + catalog: "�件列表", + empty: "暂无�件。", + emptySearch: "没有匹�的�件。", + enabledTag: "已�用", + disabledTag: "已�用", + configuration: "�置状�", + cordis: "Cordis 状�", + unobserved: "未挂载", + pending: "等待�赖", + loadingPhase: "加载中", + active: "已挂载", + failed: "挂载失败", + unloading: "�载中" + }; + /** English dictionary checked against the Chinese key set. */ + const en = { + tab: "Plugin list", + loading: "Reading plugins…", + error: "Plugins are temporarily unavailable.", + retry: "Retry", + search: "Search plugins", + catalog: "Plugin list", + empty: "No plugins are available.", + emptySearch: "No matching plugins.", + enabledTag: "Enabled", + disabledTag: "Disabled", + configuration: "Configuration", + cordis: "Cordis status", + unobserved: "Not mounted", + pending: "Waiting for dependencies", + loadingPhase: "Loading", + active: "Mounted", + failed: "Mount failed", + unloading: "Unloading" + }; + //#endregion + //#region lib/types/client/index.js + /** Read-only Host plugin inventory registered into Web Settings. */ + /** Dictionary namespace owned by this plugin. */ + const NS = "settings.pluginInventory"; + /** Services required by the Settings registration and generated Remote face. */ + const inject = [ + "slots", + "locale", + "remote", + "remote.pluginInventory" + ]; + /** Contribute the lazy inventory tab to the Plugins settings section. */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-settings-plugin-inventory: dictionaries"); + const t = ctx.locale.bind(NS); + const list = async () => { + const result = await ctx.remote.pluginInventory.list(); + if (!result.ok) throw new Error(`pluginInventory.list failed: ${result.error.code}: ${result.error.message}`); + return result.value; + }; + const injected = () => ({ list }); + ctx.slots.inject("settings.plugins.tab", () => ctx.slots.register({ + name: "settings.plugins.tab", + id: "all", + order: 10, + label: () => t("tab"), + locale: NS, + inject: injected + }, PluginInventorySettingsTab)); + } + //#endregion + exports.NS = NS; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000010 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000010 new file mode 100644 index 0000000..644a0f2 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000010 @@ -0,0 +1,2742 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-settings-models", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_dsh_client_web_react = require("@deepseek-ai/dsh-client-web-react"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let _deepseek_ai_dsh_client_schema_form = require("@deepseek-ai/dsh-client-schema-form"); + //#region lib/types/client/apiKey.js + /** + * Browser-side judgement of a typed API key. + * @module @deepseek-ai/dsh-client-ui-settings-models/apiKey + */ + /** + * Twin of `normalizeApiKey` in `@deepseek-ai/dsh-llm`: printable ASCII, space + * excluded. Client packages reference only client packages, so the charset + * rule is mirrored here rather than imported; keep the two in step, as + * `validateDeepSeekModels` is kept in step with the host's `catalogModel`. + */ + const LEGAL_API_KEY = /^[\x21-\x7E]+$/; + /** + * A pasted `NAME=value` environment line. Two narrowings keep real keys clear + * of it: the name must be upper-case, so `sk-` forms break at the hyphen, and + * the `=` must be followed by something other than another `=`, so base64 + * padding on an all-upper-case key (`ABCD==`) is not mistaken for an + * assignment. This heuristic runs only here — a resolver applying it could + * lock a user out of a gateway whose key legitimately takes this shape, with + * the environment refusing it too and no way through. + */ + const ENV_LINE = /^[A-Z][A-Z0-9_]*=[^=]/; + /** Whether a value is wrapped in one matching pair of quotes. */ + function isQuoted(value) { + const first = value[0]; + if (first !== "\"" && first !== "'" && first !== "`") return false; + return value.length > 1 && value.endsWith(first); + } + /** + * Judge the key input's current value. + * + * An empty field is not a failure: every card opens with it empty even when a + * key is already stored, where it means keep that one. A field holding only + * whitespace is a failure rather than an empty field, so typed input is never + * silently discarded. + * @param draft - the key input's current value, untrimmed. + * @returns the copy key for a field-level failure, or `undefined` to allow submit. + */ + function apiKeyFailure(draft) { + if (draft.length === 0) return void 0; + const value = draft.trim(); + if (value.length === 0) return "keyBlank"; + if (ENV_LINE.test(value) || isQuoted(value)) return "keyIllegalCharacters"; + if (!LEGAL_API_KEY.test(value)) return "keyIllegalCharacters"; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-models/src/client/ModelsSection.module.css.mjs + const css$3 = ".zGbnIq_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.zGbnIq_title{color:var(--dsw-alias-label-primary);margin:0;font-size:16px;font-weight:500;line-height:24px}.zGbnIq_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}.zGbnIq_notice{color:var(--dsw-alias-state-warn-label);margin:0;font-size:12px;line-height:18px}.zGbnIq_savedNotice{color:var(--dsw-alias-state-success-primary);margin:0;font-size:12px;line-height:18px}.zGbnIq_rows{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.zGbnIq_rowCard{border:1px solid var(--dsw-alias-border-l2);border-radius:12px;flex-direction:column;gap:12px;padding:12px 14px;display:flex}.zGbnIq_rowHead{align-items:center;gap:10px;display:flex}.zGbnIq_rowIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.zGbnIq_rowName{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}.zGbnIq_rowTag{border:1px solid var(--dsw-alias-border-l3);color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:1px 6px;font-size:11px;line-height:16px}.zGbnIq_credentialDot{box-sizing:border-box;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.zGbnIq_credentialDotConfigured{background:var(--dsw-alias-state-success-primary)}.zGbnIq_credentialDotMissing{background:var(--dsw-alias-state-error-primary)}.zGbnIq_rowActions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.zGbnIq_primaryButton,.zGbnIq_secondaryButton,.zGbnIq_addButton{box-sizing:border-box;height:36px;font:inherit;cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;gap:4px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.zGbnIq_primaryButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.zGbnIq_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.zGbnIq_secondaryButton,.zGbnIq_addButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.zGbnIq_secondaryButton:hover:not(:disabled),.zGbnIq_addButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.zGbnIq_secondaryButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.zGbnIq_dangerButton{box-sizing:border-box;height:36px;color:var(--dsw-alias-state-error-primary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:18px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.zGbnIq_dangerButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}.zGbnIq_rowActions .zGbnIq_secondaryButton,.zGbnIq_rowActions .zGbnIq_dangerButton{border-radius:14px;height:28px;padding:0 10px;font-size:12px;line-height:18px}.zGbnIq_primaryButton:disabled,.zGbnIq_secondaryButton:disabled,.zGbnIq_dangerButton:disabled,.zGbnIq_addButton:disabled,.zGbnIq_linkButton:disabled,.zGbnIq_addModelButton:disabled{opacity:.4;cursor:default}.zGbnIq_primaryButton:focus-visible,.zGbnIq_secondaryButton:focus-visible,.zGbnIq_dangerButton:focus-visible,.zGbnIq_addButton:focus-visible,.zGbnIq_linkButton:focus-visible,.zGbnIq_addModelButton:focus-visible,.zGbnIq_iconButton:focus-visible,.zGbnIq_customizedSummary:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-border-l3);outline:none}.zGbnIq_editor{background:var(--dsw-alias-bg-module-platform);border-radius:12px;flex-direction:column;gap:14px;padding:14px 16px;display:flex}.zGbnIq_editorHeader{align-items:baseline;gap:8px;display:flex}.zGbnIq_editorTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}.zGbnIq_editorRoute{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.zGbnIq_field{flex-direction:column;gap:6px;display:flex}.zGbnIq_fieldLabel{color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.zGbnIq_linkButton{box-sizing:border-box;height:28px;color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:14px;align-items:center;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}.zGbnIq_linkButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.zGbnIq_advancedHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}.zGbnIq_editorActions{justify-content:flex-end;gap:8px;display:flex}.zGbnIq_addBlock{flex-direction:column;gap:12px;display:flex}.zGbnIq_addActions{flex-wrap:wrap;gap:10px;display:flex}.zGbnIq_addButton{border:1px dashed var(--dsw-alias-border-l3);border-radius:12px;flex:1 1 0;gap:6px;min-width:180px;height:44px}.zGbnIq_addCard,.zGbnIq_setupCard{background:var(--dsw-alias-bg-module-platform);border-radius:12px;flex-direction:column;gap:14px;padding:14px 16px;list-style:none;display:flex}.zGbnIq_addCard .zGbnIq_editor,.zGbnIq_setupCard .zGbnIq_editor{background:0 0;padding:0}.zGbnIq_customized{border-top:1px solid var(--dsw-alias-border-l2);padding-top:10px}.zGbnIq_customizedSummary{cursor:pointer;width:fit-content;color:var(--dsw-alias-label-secondary);border-radius:6px;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:flex}.zGbnIq_customizedSummary::-webkit-details-marker{display:none}.zGbnIq_customizedSummary:before{content:\"\";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .12s;transform:rotate(-45deg)translate(-1px,-1px)}.zGbnIq_customized[open]>.zGbnIq_customizedSummary:before{transform:rotate(45deg)translate(-1px,-1px)}.zGbnIq_customizedSummary:hover{color:var(--dsw-alias-label-primary)}.zGbnIq_customizedBody{flex-direction:column;gap:12px;padding-top:12px;display:flex}.zGbnIq_modelCatalog{border-top:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:10px;padding-top:12px;display:flex}.zGbnIq_modelCatalogHeading{flex-direction:column;gap:2px;display:flex}.zGbnIq_modelCatalogTitle{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}.zGbnIq_modelCatalogMeta,.zGbnIq_modelEmpty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}.zGbnIq_modelList{flex-direction:column;gap:8px;display:flex}.zGbnIq_modelListHead{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.zGbnIq_modelEntry{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:6px}.zGbnIq_modelRow{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}.zGbnIq_iconButton{box-sizing:border-box;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.zGbnIq_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.zGbnIq_iconButton:disabled{cursor:default;opacity:.4}.zGbnIq_iconButtonDanger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.zGbnIq_modelAdvanced{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;padding:8px 4px 2px;display:grid}.zGbnIq_modelField{flex-direction:column;gap:4px;display:flex}.zGbnIq_modelFieldLabel{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.zGbnIq_modelEmpty{border:1px dashed var(--dsw-alias-border-l3);text-align:center;border-radius:8px;padding:12px}.zGbnIq_addModelButton{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;border-radius:14px;align-self:flex-start;align-items:center;gap:4px;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}.zGbnIq_addModelButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.zGbnIq_input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:32px;font:inherit;background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);border-radius:8px;padding:0 10px;font-size:14px;line-height:22px}select.zGbnIq_input{cursor:pointer;max-width:240px}.zGbnIq_input:focus{border-color:var(--dsw-alias-brand-primary);outline:none}.zGbnIq_input::placeholder{color:var(--dsw-alias-label-dimmed)}.zGbnIq_input:disabled{opacity:.6;cursor:default}.zGbnIq_selectInput{appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 12px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}.zGbnIq_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}.zGbnIq_deleteDialog{width:min(480px,100%)}.zGbnIq_deleteConfirm:not(:disabled){border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.zGbnIq_deleteConfirm:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}.zGbnIq_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.zGbnIq_customizedSummary:before{transition:none}}.zGbnIq_fetchDialog{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);max-width:520px}.zGbnIq_candidateList{flex-direction:column;gap:2px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.zGbnIq_candidate{border-radius:6px}.zGbnIq_candidateLabel{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}.zGbnIq_candidateId{font-family:var(--ds-font-family-code);overflow-wrap:anywhere;flex:auto;font-size:13px}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-settings-models/ModelsSection.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-models"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var ModelsSection_module_css_default = { + "iconButtonDanger": "zGbnIq_iconButtonDanger", + "editorActions": "zGbnIq_editorActions", + "error": "zGbnIq_error", + "modelRow": "zGbnIq_modelRow", + "section": "zGbnIq_section", + "linkButton": "zGbnIq_linkButton", + "hiddenLabel": "zGbnIq_hiddenLabel", + "rows": "zGbnIq_rows", + "candidateLabel": "zGbnIq_candidateLabel", + "input": "zGbnIq_input", + "notice": "zGbnIq_notice", + "fetchDialog": "zGbnIq_fetchDialog", + "candidate": "zGbnIq_candidate", + "customizedBody": "zGbnIq_customizedBody", + "modelListHead": "zGbnIq_modelListHead", + "deleteDialog": "zGbnIq_deleteDialog", + "modelEntry": "zGbnIq_modelEntry", + "addModelButton": "zGbnIq_addModelButton", + "modelCatalogTitle": "zGbnIq_modelCatalogTitle", + "editorRoute": "zGbnIq_editorRoute", + "rowCard": "zGbnIq_rowCard", + "rowName": "zGbnIq_rowName", + "modelAdvanced": "zGbnIq_modelAdvanced", + "primaryButton": "zGbnIq_primaryButton", + "intro": "zGbnIq_intro", + "rowIdentity": "zGbnIq_rowIdentity", + "modelCatalog": "zGbnIq_modelCatalog", + "editorHeader": "zGbnIq_editorHeader", + "credentialDot": "zGbnIq_credentialDot", + "dangerButton": "zGbnIq_dangerButton", + "modelFieldLabel": "zGbnIq_modelFieldLabel", + "field": "zGbnIq_field", + "credentialDotConfigured": "zGbnIq_credentialDotConfigured", + "addBlock": "zGbnIq_addBlock", + "deleteConfirm": "zGbnIq_deleteConfirm", + "modelEmpty": "zGbnIq_modelEmpty", + "editor": "zGbnIq_editor", + "addButton": "zGbnIq_addButton", + "candidateList": "zGbnIq_candidateList", + "secondaryButton": "zGbnIq_secondaryButton", + "modelCatalogMeta": "zGbnIq_modelCatalogMeta", + "modelField": "zGbnIq_modelField", + "customized": "zGbnIq_customized", + "selectInput": "zGbnIq_selectInput", + "iconButton": "zGbnIq_iconButton", + "setupCard": "zGbnIq_setupCard", + "fieldLabel": "zGbnIq_fieldLabel", + "rowActions": "zGbnIq_rowActions", + "addCard": "zGbnIq_addCard", + "candidateId": "zGbnIq_candidateId", + "modelCatalogHeading": "zGbnIq_modelCatalogHeading", + "credentialDotMissing": "zGbnIq_credentialDotMissing", + "rowTag": "zGbnIq_rowTag", + "customizedSummary": "zGbnIq_customizedSummary", + "addActions": "zGbnIq_addActions", + "editorTitle": "zGbnIq_editorTitle", + "savedNotice": "zGbnIq_savedNotice", + "modelList": "zGbnIq_modelList", + "advancedHint": "zGbnIq_advancedHint", + "title": "zGbnIq_title", + "rowHead": "zGbnIq_rowHead" + }; + //#endregion + //#region lib/types/client/EditorFooter.js + /** + * Render one provider card's action row. + * @param props - the labels, commit gating, and handlers the owning card supplies. + * @returns the cancel/commit row. + */ + function EditorFooter(props) { + const { t } = props; + return (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["editorActions"], + children: [(0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["secondaryButton"], + disabled: props.busy, + onClick: props.onCancel, + children: t(props.cancelLabel ?? "cancel") + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["primaryButton"], + disabled: props.submitDisabled, + onClick: props.onSubmit, + children: props.busy ? t(props.submitBusyLabel) : t(props.submitLabel) + })] + }); + } + //#endregion + //#region lib/types/client/DeepSeekModelsEditor.js + /** + * Curated editor for the direct DeepSeek adapter's advisory model catalog. + * The settings layer replaces `models` as one array, so the parent supplies + * the effective inherited rows until the first edit materializes a user + * override; reset removes that override instead of copying defaults into it. + */ + /** Row index encoded in an editing-buffer key. */ + function rowOf(key) { + return Number(key.slice(0, key.indexOf(":"))); + } + /** Accepted capacity spellings: a decimal count with an optional K/M suffix. */ + const CAPACITY_PATTERN = /^(\d+(?:\.\d+)?)([km])?$/i; + /** Decimal suffix scales — `1M` is 1000K, matching how model capacities are quoted. */ + const CAPACITY_SCALE = { + k: 1e3, + m: 1e6 + }; + /** + * Read a typed capacity, so a user can write `256K` or `1M` instead of counting + * zeroes. The stored value stays a plain token count. + * @param text - raw field text. + * @returns the count; `undefined` when blank (inherit), `NaN` when unreadable + * (rejected by {@link validateDeepSeekModels} before any write). + */ + function parseCapacity(text) { + const trimmed = text.trim(); + if (trimmed.length === 0) return void 0; + const match = CAPACITY_PATTERN.exec(trimmed); + if (match === null) return NaN; + const suffix = match[2]?.toLowerCase(); + const scale = suffix === "k" || suffix === "m" ? CAPACITY_SCALE[suffix] : 1; + const scaled = Number(match[1]) * scale; + const rounded = Math.round(scaled); + return Math.abs(scaled - rounded) < 1e-6 ? rounded : scaled; + } + /** + * Spell a stored count back in the shortest form that survives a round trip + * through {@link parseCapacity}; a count that is not a whole number of + * thousands stays written out. + * @param value - stored capacity. + * @returns the field text. + */ + function formatCapacity(value) { + if (!Number.isInteger(value) || value <= 0) return String(value); + if (value % CAPACITY_SCALE.m === 0) return `${String(value / CAPACITY_SCALE.m)}M`; + if (value % CAPACITY_SCALE.k === 0) return `${String(value / CAPACITY_SCALE.k)}K`; + return String(value); + } + /** Convert a schema-validated catalog value into records without dropping hidden fields. */ + function modelDrafts(value) { + if (!Array.isArray(value)) return []; + return value.map((entry) => typeof entry === "object" && entry !== null && !Array.isArray(entry) ? entry : {}); + } + /** + * Validate adapter constraints that the serialized schema cannot express. + * @param value - user-owned `models` value, or undefined while inherited. + * @returns the first invalid row, or undefined when the adapter will accept it. + */ + function validateDeepSeekModels(value) { + if (value === void 0) return void 0; + const models = modelDrafts(value); + const seen = /* @__PURE__ */ new Set(); + for (const [index, model] of models.entries()) { + const id = model["id"]; + const trimmed = typeof id === "string" ? id.trim() : void 0; + if (trimmed === void 0 || trimmed.length === 0) return { + index, + key: "modelIdRequired" + }; + if (seen.has(trimmed)) return { + index, + key: "modelIdDuplicate" + }; + seen.add(trimmed); + const name = model["name"]; + if (name !== void 0 && (typeof name !== "string" || name.length === 0)) return { + index, + key: "modelNameInvalid" + }; + const contextWindow = model["contextWindow"]; + if (contextWindow !== void 0 && (typeof contextWindow !== "number" || !Number.isInteger(contextWindow) || contextWindow <= 0)) return { + index, + key: "modelContextInvalid" + }; + const maxTokens = model["maxTokens"]; + if (maxTokens !== void 0 && (typeof maxTokens !== "number" || !Number.isInteger(maxTokens) || maxTokens <= 0)) return { + index, + key: "modelMaxTokensInvalid" + }; + } + } + /** + * Render the direct DeepSeek adapter's model catalog: id and display name on + * each row, capacities behind the row's own disclosure. + * @param props - effective rows plus the array-level override actions. + * @returns the catalog editor. + */ + function DeepSeekModelsEditor(props) { + const [editing, setEditing] = (0, react.useState)(() => /* @__PURE__ */ new Map()); + const [expanded, setExpanded] = (0, react.useState)(() => /* @__PURE__ */ new Set()); + const update = (index, key, value) => { + const next = props.models.map((model, at) => { + const copy = { ...model }; + if (at !== index) return copy; + if (value === void 0) Reflect.deleteProperty(copy, key); + else copy[key] = value; + return copy; + }); + props.onChange(next); + }; + const remove = (index) => { + setEditing((current) => { + const next = /* @__PURE__ */ new Map(); + for (const [key, text] of current) { + const at = rowOf(key); + if (at === index) continue; + next.set(at > index ? key.replace(/^\d+/, String(at - 1)) : key, text); + } + return next; + }); + setExpanded((current) => { + const next = /* @__PURE__ */ new Set(); + for (const at of current) { + if (at === index) continue; + next.add(at > index ? at - 1 : at); + } + return next; + }); + props.onChange(props.models.filter((_model, at) => at !== index).map((model) => ({ ...model }))); + }; + const reset = () => { + setEditing(/* @__PURE__ */ new Map()); + setExpanded(/* @__PURE__ */ new Set()); + props.onReset(); + }; + const toggle = (index) => { + setExpanded((current) => { + const next = new Set(current); + if (!next.delete(index)) next.add(index); + return next; + }); + }; + /** The field's text: its live keystrokes, else the stored count spelled short. */ + const capacityText = (model, index, field) => { + const typed = editing.get(`${String(index)}:${field}`); + if (typed !== void 0) return typed; + const value = model[field]; + return typeof value === "number" ? formatCapacity(value) : ""; + }; + const settleCapacity = (index, field) => { + const key = `${String(index)}:${field}`; + const typed = editing.get(key); + if (typed === void 0) return; + const parsed = parseCapacity(typed); + if (parsed !== void 0 && Number.isNaN(parsed)) return; + setEditing((current) => { + const next = new Map(current); + next.delete(key); + return next; + }); + }; + /** One capacity field of one row, rendered inside the row's disclosure. */ + const capacityField = (model, index, field, fallback) => (0, react_jsx_runtime.jsxs)("label", { + className: ModelsSection_module_css_default["modelField"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelFieldLabel"], + children: props.t(field === "contextWindow" ? "contextWindow" : "maxTokens") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + inputMode: "numeric", + value: capacityText(model, index, field), + placeholder: fallback === void 0 ? props.t(field === "contextWindow" ? "contextWindowPlaceholder" : "maxTokensPlaceholder") : formatCapacity(fallback), + "aria-label": `${props.t(field === "contextWindow" ? "contextWindow" : "maxTokens")} ${String(index + 1)}`, + disabled: props.disabled, + onChange: (event) => { + const text = event.target.value; + setEditing((current) => new Map(current).set(`${String(index)}:${field}`, text)); + update(index, field, parseCapacity(text)); + }, + onBlur: () => { + settleCapacity(index, field); + } + })] + }); + return (0, react_jsx_runtime.jsxs)("section", { + className: ModelsSection_module_css_default["modelCatalog"], + "aria-label": props.t("models"), + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelListHead"], + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelCatalogHeading"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelCatalogTitle"], + children: props.t("models") + }), (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelCatalogMeta"], + children: props.overridden ? props.t("modelsCustomized") : props.t("modelsInherited") + })] + }), props.overridden ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["linkButton"], + disabled: props.disabled, + onClick: reset, + children: props.t("resetModels") + }) : null] + }), + props.models.length === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["modelEmpty"], + children: props.t("modelsEmpty") + }) : (0, react_jsx_runtime.jsx)("div", { + className: ModelsSection_module_css_default["modelList"], + children: props.models.map((model, index) => (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelEntry"], + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelRow"], + children: [ + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: typeof model["id"] === "string" ? model["id"] : "", + placeholder: props.t("modelId"), + "aria-label": `${props.t("modelId")} ${String(index + 1)}`, + disabled: props.disabled, + onChange: (event) => { + update(index, "id", event.target.value); + }, + onBlur: (event) => { + const trimmed = event.target.value.trim(); + if (trimmed !== event.target.value) update(index, "id", trimmed); + } + }), + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: typeof model["name"] === "string" ? model["name"] : "", + placeholder: props.t("modelName"), + "aria-label": `${props.t("modelName")} ${String(index + 1)}`, + disabled: props.disabled, + onChange: (event) => { + update(index, "name", event.target.value === "" ? void 0 : event.target.value); + } + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["iconButton"], + "aria-label": `${props.t("modelAdvanced")} ${String(index + 1)}`, + "aria-expanded": expanded.has(index), + title: props.t("modelAdvanced"), + onClick: () => { + toggle(index); + }, + children: expanded.has(index) ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}) + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: `${ModelsSection_module_css_default["iconButton"]} ${ModelsSection_module_css_default["iconButtonDanger"]}`, + "aria-label": `${props.t("removeModel")} ${String(index + 1)}`, + title: props.t("removeModel"), + disabled: props.disabled, + onClick: () => { + remove(index); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 14 }) + }) + ] + }), expanded.has(index) ? (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelAdvanced"], + children: [capacityField(model, index, "contextWindow", props.defaultContextWindow), capacityField(model, index, "maxTokens", props.defaultMaxTokens)] + }) : null] + }, index)) + }), + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: ModelsSection_module_css_default["addModelButton"], + disabled: props.disabled, + onClick: () => { + props.onChange([...props.models.map((model) => ({ ...model })), { id: "" }]); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 14 }), props.t("addModel")] + }) + ] + }); + } + //#endregion + //#region lib/types/client/store.js + /** + * Models settings page store: one snapshot joining the configurable-provider + * directory (`llm.providers`), the settings namespaces (`settings.describe`), + * and the referenced credentials (`credentials.describe`). The host stays the + * single fact source — every mutation writes through the wire and the page + * re-renders from the next describe, pushed or refetched. + */ + /** + * Any route key walks a dict schema to the same profile node, so the lookup + * names one that cannot collide with a configured route. + */ + const PROBE_ROUTE = "\0probe"; + /** + * Human text for a rejected wire call. A transport failure rejects with an + * Error; a host or a runtime can reject with anything, and the page still has + * to say something. + * @param error - the rejection value. + * @returns the message to show. + */ + function messageOf$1(error) { + return error instanceof Error ? error.message : String(error); + } + /** + * Derive the conventional credential reference for a provider route: the v1 + * page never asks for an environment-variable name, so a typed key stores + * under this derived reference and the profile records it as `apiKeyEnv`. + * @param provider - provider route id (e.g. `anthropic`, `minimax-cn`). + * @returns the derived reference name (e.g. `MINIMAX_CN_API_KEY`). + */ + function deriveKeyRef(provider) { + return `${provider.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}_API_KEY`; + } + /** + * The wire protocols a hand-declared route may name, read out of the owning + * namespace's own schema. This stays a schema read rather than a wire field so + * the choices the page offers cannot drift from the ones the adapter accepts: + * both come from the same `Config`. + * @param namespace - the namespace view whose schema declares the profile shape. + * @returns the protocol identifiers, or an empty list when the schema has none. + */ + function protocolChoices(namespace) { + if (namespace === void 0) return []; + const list = (0, _deepseek_ai_dsh_client_schema_form.nodeAtPath)((0, _deepseek_ai_dsh_client_schema_form.rehydrateSchema)(namespace.schema), [ + "providers", + PROBE_ROUTE, + "api" + ]); + if (list?.type !== "union" || list.list === void 0) return []; + return list.list.map((entry) => entry.value).filter((value) => typeof value === "string"); + } + /** The credential reference a resolved profile names (its `apiKeyEnv` field). */ + function apiKeyEnvOf(namespace, path) { + if (namespace === void 0) return void 0; + const profile = (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.value, path); + if (typeof profile !== "object" || profile === null) return void 0; + const ref = profile.apiKeyEnv; + return typeof ref === "string" && ref.length > 0 ? ref : void 0; + } + /** The models settings page controller (one per settings surface). */ + var ModelsSettingsStore = class { + api; + /** The snapshot the section renders from (uSES-safe store). */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)({ + status: "idle", + error: null, + credentialError: null, + writable: false, + rows: [], + namespaces: /* @__PURE__ */ new Map() + }); + /** Latest load wins; an older response never overwrites a newer one. */ + generation = 0; + /** + * @param api - the wire face (settings/credentials/llm domains). + */ + constructor(api) { + this.api = api; + } + /** + * Refresh the whole page snapshot: directory and namespaces in parallel, + * then one batched credential describe over every referenced ref. A + * failure keeps the last good rows and surfaces the error. + * @returns nothing; the snapshot carries the outcome. + */ + async load() { + const generation = ++this.generation; + this.store.update((s) => { + s.status = "loading"; + s.error = null; + }); + let providers; + let writable; + let views; + try { + const [providersResponse, settingsResponse] = await Promise.all([this.api.llm.providers({}), this.api.settings.describe({})]); + if (!providersResponse.result.ok) throw new Error(providersResponse.result.error.message); + if (!settingsResponse.result.ok) throw new Error(settingsResponse.result.error.message); + providers = providersResponse.result.value.providers; + writable = settingsResponse.result.value.writable; + views = settingsResponse.result.value.namespaces; + } catch (error) { + if (generation !== this.generation) return; + this.store.update((s) => { + s.status = "error"; + s.error = error instanceof Error ? error.message : String(error); + }); + return; + } + const namespaces = new Map(views.map((view) => [view.ns, view])); + const rows = providers.map((entry) => { + const namespace = namespaces.get(entry.settingsNs); + return { + entry, + configured: namespace !== void 0 && (entry.settingsPath.length === 0 || (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.value, entry.settingsPath) !== void 0), + removable: namespace !== void 0 && entry.settingsPath.length > 0 && (0, _deepseek_ai_dsh_client_schema_form.hasPath)(namespace.user, entry.settingsPath) && !(0, _deepseek_ai_dsh_client_schema_form.hasPath)(namespace.base, entry.settingsPath), + apiKeyEnv: apiKeyEnvOf(namespace, entry.settingsPath), + credential: void 0 + }; + }); + const refs = [...new Set(rows.flatMap((row) => row.apiKeyEnv === void 0 ? [] : [row.apiKeyEnv]))]; + let credentials = {}; + let credentialError = null; + if (refs.length > 0) try { + const response = await this.api.credentials.describe({ refs }); + if (response.result.ok) credentials = response.result.value.credentials; + else credentialError = response.result.error.message; + } catch (error) { + credentialError = messageOf$1(error); + } + if (generation !== this.generation) return; + this.store.update((s) => { + s.status = "ready"; + s.error = null; + s.credentialError = credentialError; + s.writable = writable; + s.rows = rows.map((row) => ({ + ...row, + ...row.apiKeyEnv !== void 0 && credentials[row.apiKeyEnv] !== void 0 ? { credential: credentials[row.apiKeyEnv] } : {} + })); + s.namespaces = namespaces; + }); + } + }; + /** + * Whether a joined row can serve model requests as it stands: the route is + * registered with the adapter registry, and whatever credential its resolved + * profile names is stored. A profile naming no reference authenticates through + * the provider's own path (the Bedrock chain, Vertex ADC, a gateway that needs + * nothing), as does a live route with no settings address at all, so neither + * owes this page a key. + * @param row - one joined provider row. + * @returns whether the user already has this provider to talk to. + */ + function providerUsable(row) { + if (!row.entry.active) return false; + if (row.apiKeyEnv === void 0) return true; + return row.credential?.configured === true; + } + /** + * Project first-run readiness from the provider/settings/credential join used + * by the Models page. The step exists to leave the user with a model to talk + * to, so ANY usable provider ends it; only when none exists does the official + * DeepSeek route — the one route the prompt can offer a key field for — decide + * whether prompting can help. A missing official configurable-provider + * declaration means the adapter is not repairable by navigating to Models. + * @param state - current shared Models join snapshot. + * @returns the onboarding state without reading a parallel fact source. + */ + function onboardingReadiness(state) { + if ((state.status === "idle" || state.status === "loading") && state.rows.length === 0) return { kind: "loading" }; + if (state.status === "error") return { + kind: "unavailable", + reason: "load-failed" + }; + if (state.rows.some(providerUsable)) return { kind: "provider-ready" }; + const row = state.rows.find((candidate) => candidate.entry.provider === "deepseek-official" && candidate.entry.settingsNs === "llm-deepseek" && candidate.entry.settingsPath.length === 0); + if (row === void 0) return { kind: "adapter-absent" }; + if (!row.entry.active) return { + kind: "unavailable", + reason: "provider-inactive" + }; + if (state.credentialError !== null || row.credential === void 0) return { + kind: "unavailable", + reason: "credentials-unavailable" + }; + if (!state.writable) return { + kind: "unavailable", + reason: "settings-read-only" + }; + if (!row.credential.writable) return { + kind: "unavailable", + reason: "credential-read-only" + }; + return { kind: "credential-missing" }; + } + //#endregion + //#region lib/types/client/ModelListEditor.js + /** + * The model list of one pi-ai provider profile, plus the action that asks the + * provider what it serves. + * + * The list is the profile's `models` array as the card holds it: an empty list + * means "serve this route's built-in catalog", and any entry replaces that + * catalog, so a row is only ever added deliberately. Fetching asks the endpoint + * **the form currently shows** — including a key typed but not yet saved — so + * adding a provider is one pass instead of save-then-return; the reply is + * candidates the user picks from, never configuration written behind them. + * + * A provider that cannot be interrogated (an unreachable endpoint, a protocol + * with no readable listing) is not a dead end: the failure is shown next to the + * rows the user can still fill in by hand. + */ + /** A row's text field, or the empty string when unset or not a string. */ + function textOf(model, key) { + const value = model[key]; + return typeof value === "string" ? value : ""; + } + /** A row's numeric field, or `undefined` when unset or not a number. */ + function numberOf(model, key) { + const value = model[key]; + return typeof value === "number" ? value : void 0; + } + /** Disclosure chevron; rotates to point down while its row is open. */ + function IconChevron({ open }) { + return (0, react_jsx_runtime.jsx)("svg", { + width: "14", + height: "14", + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": true, + style: { + transform: open ? "rotate(90deg)" : void 0, + transition: "transform 120ms ease" + }, + children: (0, react_jsx_runtime.jsx)("path", { + d: "M6 3.5L10.5 8L6 12.5", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + }) + }); + } + /** Removal glyph for one model row. */ + function IconTrash() { + return (0, react_jsx_runtime.jsx)("svg", { + width: "14", + height: "14", + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)("path", { + d: "M2.5 4h11M6.5 4V2.5h3V4M4 4l.7 9a1 1 0 001 .9h4.6a1 1 0 001-.9L12 4M6.5 6.8v4.4M9.5 6.8v4.4", + stroke: "currentColor", + strokeWidth: "1.3", + strokeLinecap: "round", + strokeLinejoin: "round" + }) + }); + } + /** + * What an empty capacity field is worth, shown as its placeholder so a row left + * blank does not read as a model with no capacity at all. + * + * The magnitudes are the adapter's own route-level fallbacks (`llm-pi-ai`'s + * `defaultContextWindow` and `defaultMaxTokens`), spelled the way a person + * would say them. They are a hint, not a mirror: this page counts `K` as 1000, + * so typing `256K` stores 256000 while leaving the field blank keeps the + * adapter's 262144. A deployment that overrides those defaults is not + * reflected here — nothing on this page can read them. + */ + const CAPACITY_HINT = { + contextWindow: "256K", + maxTokens: "32K" + }; + /** + * Spell a stored count for a field that may be unset. The spelling itself is + * {@link formatCapacity}, shared with the DeepSeek catalog editor so both + * surfaces read and write one K/M vocabulary. + * @param value - stored capacity, or `undefined` for an unset field. + * @returns the field text, empty when unset. + */ + function capacitySpelling(value) { + return value === void 0 ? "" : formatCapacity(value); + } + /** Adopt a candidate, keeping whatever capacities the provider disclosed. */ + function adopt(candidate) { + return { + id: candidate.id, + ...candidate.name === void 0 ? {} : { name: candidate.name }, + ...candidate.contextWindow === void 0 ? {} : { contextWindow: candidate.contextWindow }, + ...candidate.maxTokens === void 0 ? {} : { maxTokens: candidate.maxTokens } + }; + } + /** + * Render the model list with its fetch action. + * @param props - the drafted rows, probe target, wire face, and copy. + * @returns the model-list editor. + */ + function ModelListEditor(props) { + const { models, onChange, probe, api, t, disabled } = props; + const [busy, setBusy] = (0, react.useState)(false); + const [failure, setFailure] = (0, react.useState)(void 0); + const [candidates, setCandidates] = (0, react.useState)(void 0); + const [picked, setPicked] = (0, react.useState)(/* @__PURE__ */ new Set()); + const [expanded, setExpanded] = (0, react.useState)(/* @__PURE__ */ new Set()); + const [editing, setEditing] = (0, react.useState)(/* @__PURE__ */ new Map()); + /** Buffer key for one capacity field; the row half moves when rows do. */ + const bufferKey = (index, field) => `${String(index)}:${field}`; + const editCapacity = (index, field, text) => { + setEditing((current) => new Map(current).set(bufferKey(index, field), text)); + patch(index, { [field]: parseCapacity(text) }); + }; + /** What a capacity field shows: the buffer while typing, else the stored count. */ + const capacityText = (model, index, field) => editing.get(bufferKey(index, field)) ?? capacitySpelling(numberOf(model, field)); + /** Drop one row's entries and shift the rows after it down, in one pass. */ + const reindexOnRemove = (current, index) => { + const next = /* @__PURE__ */ new Map(); + for (const [key, value] of current) { + const at = Number(key.slice(0, key.indexOf(":"))); + if (at === index) continue; + next.set(at > index ? key.replace(/^\d+/, String(at - 1)) : key, value); + } + return next; + }; + const toggleExpanded = (index) => { + setExpanded((current) => { + const next = new Set(current); + if (!next.delete(index)) next.add(index); + return next; + }); + }; + const patch = (index, next) => { + onChange(models.map((model, at) => { + if (at !== index) return model; + const cleared = new Set(Object.entries(next).filter(([, value]) => value === void 0 || value === "").map(([key]) => key)); + return Object.fromEntries(Object.entries({ + ...model, + ...next + }).filter(([key]) => !cleared.has(key))); + })); + }; + const fetchModels = async () => { + setBusy(true); + setFailure(void 0); + try { + const response = await api.llm.discoverModels({ + settingsNs: probe.settingsNs, + ...probe.provider === void 0 ? {} : { provider: probe.provider }, + ...probe.baseURL === void 0 || probe.baseURL.length === 0 ? {} : { baseURL: probe.baseURL }, + ...probe.api === void 0 ? {} : { api: probe.api }, + ...probe.apiKey === void 0 ? {} : { apiKey: probe.apiKey } + }); + if (!response.result.ok) { + setFailure(response.result.error.message); + return; + } + const found = response.result.value.models; + if (found.length === 0) { + setFailure(t("fetchEmpty")); + return; + } + const known = new Set(models.map((model) => textOf(model, "id"))); + setCandidates(found); + setPicked(new Set(found.filter((model) => !known.has(model.id)).map((model) => model.id))); + } catch (error) { + setFailure(messageOf$1(error)); + } finally { + setBusy(false); + } + }; + const closePicker = () => { + setCandidates(void 0); + setPicked(/* @__PURE__ */ new Set()); + }; + const adoptPicked = () => { + /* v8 ignore next -- the dialog only renders with candidates loaded */ + if (candidates === void 0) return; + const byId = new Map(models.map((model) => [textOf(model, "id"), model])); + for (const candidate of candidates) { + if (!picked.has(candidate.id)) continue; + byId.set(candidate.id, byId.get(candidate.id) ?? adopt(candidate)); + } + onChange([...byId.values()]); + closePicker(); + }; + const toggle = (id) => { + setPicked((current) => { + const next = new Set(current); + if (!next.delete(id)) next.add(id); + return next; + }); + }; + const askable = probe.provider !== void 0 || probe.baseURL !== void 0 && probe.baseURL.length > 0; + return (0, react_jsx_runtime.jsxs)("section", { + className: ModelsSection_module_css_default["modelCatalog"], + "aria-label": t("models"), + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelListHead"], + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelCatalogHeading"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelCatalogTitle"], + children: t("models") + }), props.overridden === void 0 ? null : (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelCatalogMeta"], + children: props.overridden ? t("modelsCustomized") : t("modelsInherited") + })] + }), + props.overridden === true && props.onReset !== void 0 ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["linkButton"], + disabled, + onClick: props.onReset, + children: t("resetModels") + }) : null, + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["linkButton"], + disabled: disabled || busy || !askable || props.probeBlocked !== void 0, + title: props.probeBlocked !== void 0 ? t(props.probeBlocked) : askable ? void 0 : t("fetchNeedsBaseUrl"), + onClick: () => { + fetchModels(); + }, + children: busy ? t("fetching") : t("fetchModels") + }) + ] + }), + models.length === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["modelEmpty"], + children: t("modelsEmpty") + }) : null, + models.map((model, index) => (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelEntry"], + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelRow"], + children: [ + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: textOf(model, "id"), + placeholder: t("modelId"), + "aria-label": `${t("modelId")} ${index + 1}`, + disabled, + onChange: (event) => { + patch(index, { id: event.target.value }); + } + }), + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: textOf(model, "name"), + placeholder: t("modelName"), + "aria-label": `${t("modelName")} ${index + 1}`, + disabled, + onChange: (event) => { + patch(index, { name: event.target.value === "" ? void 0 : event.target.value }); + } + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["iconButton"], + "aria-label": `${t("modelAdvanced")} ${index + 1}`, + "aria-expanded": expanded.has(index), + title: t("modelAdvanced"), + onClick: () => { + toggleExpanded(index); + }, + children: (0, react_jsx_runtime.jsx)(IconChevron, { open: expanded.has(index) }) + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: `${ModelsSection_module_css_default["iconButton"]} ${ModelsSection_module_css_default["iconButtonDanger"]}`, + "aria-label": `${t("removeModel")} ${index + 1}`, + title: t("removeModel"), + disabled, + onClick: () => { + onChange(models.filter((_model, at) => at !== index)); + setExpanded((current) => { + const next = /* @__PURE__ */ new Set(); + for (const at of current) if (at < index) next.add(at); + else if (at > index) next.add(at - 1); + return next; + }); + setEditing((current) => reindexOnRemove(current, index)); + }, + children: (0, react_jsx_runtime.jsx)(IconTrash, {}) + }) + ] + }), expanded.has(index) ? (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["modelAdvanced"], + children: [(0, react_jsx_runtime.jsxs)("label", { + className: ModelsSection_module_css_default["modelField"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelFieldLabel"], + children: t("modelContextWindow") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + inputMode: "numeric", + value: capacityText(model, index, "contextWindow"), + placeholder: CAPACITY_HINT.contextWindow, + "aria-label": `${t("modelContextWindow")} ${index + 1}`, + disabled, + onChange: (event) => { + editCapacity(index, "contextWindow", event.target.value); + } + })] + }), (0, react_jsx_runtime.jsxs)("label", { + className: ModelsSection_module_css_default["modelField"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["modelFieldLabel"], + children: t("modelMaxTokens") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + inputMode: "numeric", + value: capacityText(model, index, "maxTokens"), + placeholder: CAPACITY_HINT.maxTokens, + "aria-label": `${t("modelMaxTokens")} ${index + 1}`, + disabled, + onChange: (event) => { + editCapacity(index, "maxTokens", event.target.value); + } + })] + })] + }) : null] + }, index)), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["addModelButton"], + disabled, + onClick: () => { + onChange([...models, { id: "" }]); + }, + children: t("addModel") + }), + failure !== void 0 ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: failure + }) : null, + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: candidates !== void 0, + onClose: closePicker, + title: t("fetchTitle"), + closeLabel: t("close"), + description: t("fetchDescription"), + className: ModelsSection_module_css_default["fetchDialog"], + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + onClick: closePicker, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + onClick: adoptPicked, + children: t("fetchAdopt") + })] }), + children: (0, react_jsx_runtime.jsx)("ul", { + className: ModelsSection_module_css_default["candidateList"], + children: (candidates ?? []).map((candidate) => (0, react_jsx_runtime.jsx)("li", { + className: ModelsSection_module_css_default["candidate"], + children: (0, react_jsx_runtime.jsxs)("label", { + className: ModelsSection_module_css_default["candidateLabel"], + children: [(0, react_jsx_runtime.jsx)("input", { + type: "checkbox", + checked: picked.has(candidate.id), + onChange: () => { + toggle(candidate.id); + } + }), (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["candidateId"], + children: candidate.id + })] + }) + }, candidate.id)) + }) + }) + ] + }); + } + //#endregion + //#region lib/types/client/CustomProviderCard.js + /** + * The card that declares a provider pi-ai does not ship — an OpenAI-compatible + * gateway, a self-hosted server, or a provider newer than the installed + * catalog. + * + * This is a create, not an edit, which is why it is its own card rather than + * the provider editor with extra fields: the route id is being *chosen* here, + * and the settings address does not exist until it is. One `settings.mutate` + * sets the whole profile at `providers.`; the key travels separately + * through `credentials.set` under the reference the profile records, exactly as + * an existing provider's key does. + * + * The three fields a hand-declared route cannot default — endpoint, protocol, + * and at least one model — are required here rather than at load, so the + * failure names the field while the user is still looking at it. + * + * There is deliberately no reasoning-effort control, here or on the editor + * card: effort is a per-MODEL capability, and the models under one provider + * disagree about it, so a provider-scoped control can only be set to a value + * some of them reject. The composer's model picker offers each model its own + * levels instead. + */ + /** The settings namespace a hand-declared provider is written into. */ + const NS$1 = "llm-pi-ai"; + /** + * A route id usable as a settings key AND as the stem of a credential name. + * The leading letter is the second half of that: `deriveKeyRef` uppercases the + * id and replaces every non-alphanumeric run with `_`, and a credential + * reference is a POSIX shell identifier, which cannot start with a digit. A + * digit-leading id passes every check this card makes and then fails at the + * credential seam with a raw regular expression the user cannot act on. + */ + const ROUTE_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/; + /** + * Render the custom-provider creation card. + * @param props - existing routes, protocol choices, wire faces, and copy. + * @returns the creation card. + */ + function CustomProviderCard(props) { + const { taken, protocols, api, t } = props; + const [openedAt] = (0, react.useState)(() => props.revision); + const [route, setRoute] = (0, react.useState)(""); + const [displayName, setDisplayName] = (0, react.useState)(""); + const [baseURL, setBaseURL] = (0, react.useState)(""); + const [protocol, setProtocol] = (0, react.useState)(protocols[0] ?? ""); + const [keyDraft, setKeyDraft] = (0, react.useState)(""); + const [models, setModels] = (0, react.useState)([]); + const [busy, setBusy] = (0, react.useState)(false); + const [failure, setFailure] = (0, react.useState)(void 0); + /** + * The profile write landed. Only the key write can still be outstanding, so + * the fields that describe the provider are settled and the retry path is + * the credential alone. + */ + const [committed, setCommitted] = (0, react.useState)(false); + const disabled = props.readOnly || busy; + /** Everything but the key stops being editable once the provider exists. */ + const profileDisabled = disabled || committed; + const routeInvalid = route.length > 0 && !ROUTE_PATTERN.test(route); + const routeTaken = taken.includes(route); + const modelFailure = validateDeepSeekModels(models); + const keyFailure = apiKeyFailure(keyDraft); + const keyValue = keyDraft.trim(); + const ready = route.length > 0 && !routeInvalid && !routeTaken && baseURL.length > 0 && models.length > 0 && modelFailure === void 0 && keyFailure === void 0; + const hint = failure !== void 0 || ready || keyFailure !== void 0 || route.length === 0 || routeInvalid || routeTaken ? void 0 : baseURL.length === 0 ? t("customNeedsBaseUrl") : modelFailure !== void 0 ? `${t("model")} ${String(modelFailure.index + 1)}: ${t(modelFailure.key)}` : t("customNeedsModels"); + /** Perform the create, returning a failure message or undefined. */ + const createOnce = async () => { + const keyRef = deriveKeyRef(route); + const storesKey = keyValue.length > 0; + if (!committed) { + const profile = { + ...displayName.length === 0 ? {} : { displayName }, + ...storesKey ? { apiKeyEnv: keyRef } : {}, + api: protocol, + baseURL, + models: models.map((model) => ({ ...model })) + }; + const response = await api.settings.mutate({ + ns: NS$1, + ops: [{ + op: "set", + path: ["providers", route], + value: profile + }], + expectedRevision: openedAt + }); + if (!response.result.ok) return response.result.error.message; + setCommitted(true); + } + if (storesKey) { + const stored = await api.credentials.set({ + ref: keyRef, + value: keyValue + }); + if (!stored.result.ok) return stored.result.error.message; + } + }; + const create = async () => { + setBusy(true); + setFailure(void 0); + try { + const outcome = await createOnce(); + if (outcome !== void 0) { + setFailure(outcome); + return; + } + props.onClose(true); + } catch (error) { + setFailure(messageOf$1(error)); + } finally { + setBusy(false); + } + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["editor"], + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: ModelsSection_module_css_default["editorHeader"], + children: (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["editorTitle"], + children: t("customTitle") + }) + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("customRoute") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: route, + placeholder: "acme-gateway", + "aria-label": t("customRoute"), + disabled: profileDisabled, + onChange: (event) => { + setRoute(event.target.value); + } + })] + }), + routeInvalid || routeTaken ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: t(routeInvalid ? "customRouteInvalid" : "customRouteTaken") + }) : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["advancedHint"], + children: t("customRouteHint") + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("customDisplayName") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: displayName, + placeholder: route.length === 0 ? t("customDisplayName") : route, + "aria-label": t("customDisplayName"), + disabled: profileDisabled, + onChange: (event) => { + setDisplayName(event.target.value); + } + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("baseUrl") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: baseURL, + placeholder: "https://gateway.example/v1", + "aria-label": t("baseUrl"), + disabled: profileDisabled, + onChange: (event) => { + setBaseURL(event.target.value); + } + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("customApi") + }), (0, react_jsx_runtime.jsx)("select", { + className: `${ModelsSection_module_css_default["input"]} ${ModelsSection_module_css_default["selectInput"]}`, + value: protocol, + "aria-label": t("customApi"), + disabled: profileDisabled, + onChange: (event) => { + setProtocol(event.target.value); + }, + children: protocols.map((choice) => (0, react_jsx_runtime.jsx)("option", { + value: choice, + children: choice + }, choice)) + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("keyInput") + }), + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "password", + autoComplete: "off", + value: keyDraft, + placeholder: t("keyPlaceholder"), + "aria-label": t("keyInput"), + disabled, + onChange: (event) => { + setKeyDraft(event.target.value); + } + }), + keyFailure === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: t(keyFailure === "keyBlank" ? "keyBlankNew" : keyFailure) + }) + ] + }), + (0, react_jsx_runtime.jsx)(ModelListEditor, { + models, + onChange: setModels, + probe: { + settingsNs: NS$1, + baseURL, + api: protocol, + ...keyValue.length === 0 ? {} : { apiKey: keyValue } + }, + probeBlocked: keyFailure === "keyBlank" ? "keyBlankNew" : keyFailure, + api, + t, + disabled: profileDisabled + }), + failure !== void 0 ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: failure + }) : null, + hint === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["advancedHint"], + children: hint + }), + (0, react_jsx_runtime.jsx)(EditorFooter, { + t, + busy, + submitDisabled: disabled || !ready, + submitLabel: "create", + submitBusyLabel: "creating", + onCancel: () => { + props.onClose(committed); + }, + onSubmit: () => { + create(); + } + }) + ] + }); + } + //#endregion + //#region lib/types/client/ProviderEditor.js + /** + * One provider's editor card, hand-written per adapter family: the primary + * field is a single write-only **API key** input (the page never asks for an + * environment-variable name — a typed key stores through `credentials.set` + * under the profile's reference, deriving `_API_KEY` when the profile + * has none. The pi-ai profile records that derivation as `apiKeyEnv` only when + * a key is entered; a blank key materializes a reference-free profile for + * provider-native authentication); + * the collapsed 自定义设置 area carries the per-family extras (`baseURL` for + * both families, DeepSeek's id/name/context-window model catalog, and the + * display name and wire protocol of a pi-ai route the adapter does not ship — + * the two fields the create card asked that route for, editable here for the + * same reason). + * Reasoning effort is deliberately absent: it is a per-MODEL capability, and + * the models under one provider disagree about it, so a provider-scoped + * control can only be set to a value some of them reject. The composer's + * model picker offers each model its own levels; `settings.yaml` keeps the + * profile field for a deployment that knows its route. Everything else stays + * owned by `settings.yaml`. Profile edits land as minimal `settings.mutate` + * path ops against the stored section — the card names only the fields it can + * see instead of rebuilding the whole subtree from a partial descriptor. + */ + /** The public DeepSeek endpoint shown as the deepseek base-URL placeholder. */ + const DEEPSEEK_PUBLIC_BASE_URL = "https://api.deepseek.com"; + /** A user-section subtree as a plain draft object (absent → empty). */ + function draftAt(namespace, path) { + const subtree = (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.user, path); + if (typeof subtree !== "object" || subtree === null || Array.isArray(subtree)) return {}; + return structuredClone(subtree); + } + /** + * The minimal path ops carrying `after` over `before`, both as the card sees + * them. Only keys the card observed are named; fields absent from both sides + * produce no op, which is why edits are path-addressed rather than a rebuilt + * section. + * @param base - path of the edited subtree inside the user section. + * @param before - the subtree as loaded, or undefined when it is new. + * @param after - the subtree as edited. + * @returns ordered set/unset ops; empty when nothing changed. + */ + function pathOps(base, before, after) { + const previous = typeof before === "object" && before !== null && !Array.isArray(before) ? before : {}; + const ops = []; + for (const [key, value] of Object.entries(after)) { + if (JSON.stringify(previous[key]) === JSON.stringify(value)) continue; + ops.push({ + op: "set", + path: [...base, key], + value + }); + } + for (const key of Object.keys(previous)) if (!(key in after)) ops.push({ + op: "unset", + path: [...base, key] + }); + return ops; + } + /** The editor layout the owning namespace selects. */ + function layoutOf(ns) { + if (ns === "llm-deepseek") return "deepseek"; + if (ns === "llm-pi-ai") return "pi-ai"; + return "unknown"; + } + /** The credential reference this profile resolves keys through. */ + function refFor(namespace, path, provider) { + const profile = (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.value, path); + const named = typeof profile === "object" && profile !== null ? profile.apiKeyEnv : void 0; + return typeof named === "string" && named.length > 0 ? named : deriveKeyRef(provider); + } + /** + * Render one provider's editing card. + * @param props - the addressed profile plus wire faces and copy. + * @returns the editor card. + */ + function ProviderEditor(props) { + const { namespace, settingsPath, api, t } = props; + const [draft, setDraft] = (0, react.useState)(() => draftAt(namespace, settingsPath)); + const [keyDraft, setKeyDraft] = (0, react.useState)(""); + const [keyState, setKeyState] = (0, react.useState)(void 0); + const [busy, setBusy] = (0, react.useState)(false); + const [failure, setFailure] = (0, react.useState)(void 0); + const [committedOriginal, setCommittedOriginal] = (0, react.useState)(() => (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.user, settingsPath)); + const [expectedRevision, setExpectedRevision] = (0, react.useState)(() => namespace.revision); + const root = (0, react.useMemo)(() => (0, _deepseek_ai_dsh_client_schema_form.rehydrateSchema)(namespace.schema), [namespace.schema]); + const node = (0, react.useMemo)(() => (0, _deepseek_ai_dsh_client_schema_form.nodeAtPath)(root, settingsPath), [root, settingsPath]); + const fallback = (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.value, settingsPath); + const disabled = props.readOnly || busy; + const layout = layoutOf(namespace.ns); + const keyRef = refFor(namespace, settingsPath, props.provider); + const protocols = (0, react.useMemo)(() => layout === "pi-ai" ? protocolChoices(namespace) : [], [layout, namespace]); + (0, react.useEffect)(() => { + let stale = false; + setKeyState(void 0); + api.credentials.describe({ refs: [keyRef] }).then((response) => { + if (stale || !response.result.ok) return; + setKeyState(response.result.value.credentials[keyRef]); + }, () => void 0); + return () => { + stale = true; + }; + }, [api.credentials, keyRef]); + const stringAt = (source, key) => { + const value = (0, _deepseek_ai_dsh_client_schema_form.getPath)(source, [key]); + return typeof value === "string" && value.trim().length > 0 ? value : void 0; + }; + const setField = (key, next) => { + const value = next === void 0 || next.trim().length === 0 ? void 0 : next; + setDraft((current) => value === void 0 ? (0, _deepseek_ai_dsh_client_schema_form.deletePath)(current, [key]) : (0, _deepseek_ai_dsh_client_schema_form.setPath)(current, [key], value)); + }; + const modelFailure = validateDeepSeekModels((0, _deepseek_ai_dsh_client_schema_form.getPath)(draft, ["models"])); + const keyFailure = apiKeyFailure(keyDraft); + const keyValue = keyDraft.trim(); + const shownKeyFailure = (props.credentialRequired === true && keyDraft.length > 0 && keyValue.length === 0 ? "keyRequired" : void 0) ?? keyFailure; + const probeApi = stringAt(draft, "api") ?? stringAt(fallback, "api"); + const probeBaseURL = stringAt(draft, "baseURL") ?? stringAt(fallback, "baseURL"); + const probe = { + settingsNs: namespace.ns, + provider: props.provider, + ...probeBaseURL === void 0 ? {} : { baseURL: probeBaseURL }, + ...probeApi === void 0 ? {} : { api: probeApi }, + ...keyValue.length === 0 ? {} : { apiKey: keyValue } + }; + /** + * The write for this card, or a failure message. Every edit travels as + * path ops against the STORED section: the draft comes from the redacted + * descriptor, so a wholesale replace rebuilt from it could delete fields + * outside the card. Ops name only the fields this card can see. + */ + const applyOnce = async () => { + const ns = namespace.ns; + const next = layout === "pi-ai" && stringAt(draft, "apiKeyEnv") === void 0 && stringAt(fallback, "apiKeyEnv") === void 0 && keyValue.length > 0 ? (0, _deepseek_ai_dsh_client_schema_form.setPath)(draft, ["apiKeyEnv"], keyRef) : draft; + if (props.credentialOnly !== true) { + const failure = validateDeepSeekModels((0, _deepseek_ai_dsh_client_schema_form.getPath)(next, ["models"])); + /* v8 ignore next 3 -- unreachable from the card: the same failure disables submit */ + if (failure !== void 0) return `${t("model")} ${String(failure.index + 1)}: ${t(failure.key)}`; + } + /* v8 ignore next -- apply is only reachable from the rendered card, which required a resolved node */ + if (props.credentialOnly !== true && node !== void 0 && settingsPath.length === 0) { + const sectionError = (0, _deepseek_ai_dsh_client_schema_form.validateDraft)(node, next); + if (sectionError !== void 0) return sectionError; + } + const materializesNativeProfile = layout === "pi-ai" && fallback === void 0 && committedOriginal === void 0 && Object.keys(next).length === 0; + const ops = props.credentialOnly === true ? [] : materializesNativeProfile ? [{ + op: "set", + path: [...settingsPath], + value: {} + }] : pathOps(settingsPath, committedOriginal, next); + if (ops.length > 0) { + const response = await api.settings.mutate({ + ns, + ops, + expectedRevision + }); + if (!response.result.ok) return response.result.error.code === "settings-conflict" ? t("conflict") : response.result.error.message; + setCommittedOriginal((0, _deepseek_ai_dsh_client_schema_form.getPath)(response.result.value.user, settingsPath)); + setExpectedRevision(response.result.value.revision); + setDraft(next); + } + if (keyValue.length > 0) { + const stored = await api.credentials.set({ + ref: keyRef, + value: keyValue + }); + if (!stored.result.ok) return stored.result.error.message; + } + setKeyDraft(""); + }; + const apply = async () => { + setBusy(true); + setFailure(void 0); + try { + const failure = await applyOnce(); + if (failure !== void 0) { + setFailure(failure); + return; + } + props.onClose(true); + } catch (error) { + setFailure(messageOf$1(error)); + } finally { + setBusy(false); + } + }; + if (node === void 0) return (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: `${props.provider}: unresolvable settings path` + }); + const keyLocked = keyState?.writable === false; + /** + * The catalog beneath the user layer: what the composition entry pinned, or + * else the schema default that `resolve` would supply. The effective value + * cannot answer this — it still carries the stored override until the unset + * is applied, so reading it would echo that override straight back the + * moment reset drops it, leaving the rows unchanged until a reload. + */ + const inheritedModels = () => { + return (0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.base, [...settingsPath, "models"]) ?? (0, _deepseek_ai_dsh_client_schema_form.nodeAtPath)(root, [...settingsPath, "models"])?.meta.default; + }; + /** + * The curated fields of one known adapter family. The family arrives + * narrowed so the per-family branches below are total: an unknown namespace + * renders the hint instead and never reaches this body. + */ + const curatedFields = (family) => { + const ownsIdentity = family === "pi-ai" && props.declared === true; + const customModels = (0, _deepseek_ai_dsh_client_schema_form.getPath)(draft, ["models"]); + const modelsOverridden = (0, _deepseek_ai_dsh_client_schema_form.hasPath)(draft, ["models"]); + const models = modelDrafts(modelsOverridden ? customModels : inheritedModels()); + const defaultContextWindow = (0, _deepseek_ai_dsh_client_schema_form.getPath)(fallback, ["defaultContextWindow"]); + const defaultMaxTokens = (0, _deepseek_ai_dsh_client_schema_form.getPath)(fallback, ["maxTokens"]); + const keyPlaceholder = keyLocked ? t("keyEnvLocked") : keyState?.configured === true && props.credentialRequired !== true ? t("keyStored") : family === "pi-ai" ? t("keyPlaceholderNative") : t("keyPlaceholder"); + /** What both family editors take: the rows, whose layer owns them, and the two writes. */ + const catalogProps = { + models, + overridden: modelsOverridden, + t, + disabled, + onChange: (next) => { + setDraft((current) => (0, _deepseek_ai_dsh_client_schema_form.setPath)(current, ["models"], next)); + }, + onReset: () => { + setDraft((current) => (0, _deepseek_ai_dsh_client_schema_form.deletePath)(current, ["models"])); + } + }; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("keyInput") + }), + (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "password", + autoComplete: "off", + value: keyDraft, + placeholder: keyPlaceholder, + "aria-label": t("keyInput"), + "aria-invalid": shownKeyFailure !== void 0, + required: props.credentialRequired === true, + autoFocus: props.autoFocusCredential === true, + disabled: disabled || keyLocked, + onChange: (event) => { + setKeyDraft(event.target.value); + } + }), + shownKeyFailure === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: t(shownKeyFailure) + }) + ] + }), props.credentialOnly === true ? null : (0, react_jsx_runtime.jsxs)("details", { + className: ModelsSection_module_css_default["customized"], + children: [(0, react_jsx_runtime.jsx)("summary", { + className: ModelsSection_module_css_default["customizedSummary"], + children: t("customized") + }), (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["customizedBody"], + children: [ + ownsIdentity ? (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("customDisplayName") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: stringAt(draft, "displayName") ?? "", + placeholder: stringAt((0, _deepseek_ai_dsh_client_schema_form.getPath)(namespace.base, settingsPath), "displayName") ?? props.provider, + "aria-label": t("customDisplayName"), + disabled, + onChange: (event) => { + setField("displayName", event.target.value); + } + })] + }) : null, + (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("baseUrl") + }), (0, react_jsx_runtime.jsx)("input", { + className: ModelsSection_module_css_default["input"], + type: "text", + value: stringAt(draft, "baseURL") ?? "", + placeholder: family === "deepseek" ? DEEPSEEK_PUBLIC_BASE_URL : stringAt(fallback, "baseURL") ?? t("baseUrlDefault"), + "aria-label": t("baseUrl"), + disabled, + onChange: (event) => { + setField("baseURL", event.target.value === "" ? void 0 : event.target.value); + } + })] + }), + ownsIdentity ? (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("customApi") + }), (0, react_jsx_runtime.jsxs)("select", { + className: `${ModelsSection_module_css_default["input"]} ${ModelsSection_module_css_default["selectInput"]}`, + value: probeApi ?? "", + "aria-label": t("customApi"), + disabled, + onChange: (event) => { + setField("api", event.target.value); + }, + children: [probeApi === void 0 ? (0, react_jsx_runtime.jsx)("option", { + value: "", + children: t("customApiUnset") + }) : null, protocols.map((choice) => (0, react_jsx_runtime.jsx)("option", { + value: choice, + children: choice + }, choice))] + })] + }) : null, + family === "deepseek" ? (0, react_jsx_runtime.jsx)(DeepSeekModelsEditor, { + ...catalogProps, + defaultContextWindow: typeof defaultContextWindow === "number" ? defaultContextWindow : void 0, + defaultMaxTokens: typeof defaultMaxTokens === "number" ? defaultMaxTokens : void 0 + }) : (0, react_jsx_runtime.jsx)(ModelListEditor, { + ...catalogProps, + probe, + probeBlocked: keyFailure, + api + }) + ] + })] + })] }); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: props.credentialOnly === true ? ModelsSection_module_css_default["addBlock"] : ModelsSection_module_css_default["editor"], + children: [ + props.hideTitle === true ? null : (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["editorHeader"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["editorTitle"], + children: props.displayName + }), props.provider !== props.displayName ? (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["editorRoute"], + children: props.provider + }) : null] + }), + layout === "unknown" ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["advancedHint"], + children: `${t("advancedHint")} (${namespace.ns})` + }) : curatedFields(layout), + failure !== void 0 ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: failure + }) : null, + props.credentialOnly === true || modelFailure === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["advancedHint"], + children: `${t("model")} ${String(modelFailure.index + 1)}: ${t(modelFailure.key)}` + }), + (0, react_jsx_runtime.jsx)(EditorFooter, { + t, + busy, + submitDisabled: disabled || layout === "unknown" || props.credentialOnly !== true && modelFailure !== void 0 || shownKeyFailure !== void 0 || props.credentialRequired === true && keyValue.length === 0, + submitLabel: props.submitLabel ?? "apply", + submitBusyLabel: props.submitBusyLabel ?? "applying", + ...props.cancelLabel === void 0 ? {} : { cancelLabel: props.cancelLabel }, + onCancel: () => { + props.onClose(false); + }, + onSubmit: () => { + apply(); + } + }) + ] + }); + } + //#endregion + //#region lib/types/client/ModelsSection.js + /** + * Models settings section: the provider rows joined from the configurable + * directory, settings namespaces, and credential states, with one editor + * card at a time. Rows expose only confirmed API-key state through accessible + * solid configured or missing dots. A whole-section provider without a + * configured key renders as its open setup card instead of a row, but only in + * the first-run posture — no provider on the page can serve requests yet — and + * only until the user closes that card; the add flow is a card carrying the + * dormant-provider select. Each card kind owns its own open state, so closing + * one never discards a draft in another. Every mutation writes through the + * wire, while a provider removal first requires confirmation; the page + * re-renders from pushed invalidations or the post-apply reload. + */ + /** Render an editor for either the setup posture or an expanded provider row. */ + function renderProviderEditor({ target, ...props }) { + return (0, react_jsx_runtime.jsx)(ProviderEditor, { + provider: target.provider, + displayName: target.displayName, + settingsPath: target.settingsPath, + ...target.declared === true ? { declared: true } : {}, + ...props + }); + } + /** + * Remove one user-added provider and its page-managed credential. Credential + * removal comes first so a second-step failure leaves the provider row visible + * and the whole operation safely retryable; both unsets are idempotent. + * The settings removal names the profile rather than rebuilding its whole + * namespace from a partial view. + * @param api - settings and credential wire faces. + * @param controller - the page store to refresh. + * @param target - the provider's settings address and optional managed credential. + * @returns the failure message, or undefined once the write and reload landed. + */ + async function removeProviderProfile(api, controller, target) { + try { + if (target.credentialRef !== void 0) { + const credential = await api.credentials.unset({ ref: target.credentialRef }); + if (!credential.result.ok) return credential.result.error.message; + } + const response = await api.settings.mutate({ + ns: target.settingsNs, + ops: [{ + op: "unset", + path: [...target.settingsPath] + }] + }); + if (!response.result.ok) return response.result.error.message; + } catch (error) { + return messageOf$1(error); + } + await controller.load(); + } + /** + * Whether a whole-section provider still needs its first key: an unconfigured + * credential opens the setup card instead of showing a row. This is the + * first-run posture alone — a user who can already reach some provider gets an + * ordinary row with the missing-key dot, since nothing here is blocking them. + * @param row - the joined provider row. + * @param anyUsable - whether any joined row can already serve requests. + * @returns whether to render the setup card. + */ + function needsSetup(row, anyUsable) { + if (anyUsable) return false; + if (row.entry.settingsPath.length > 0) return false; + return row.credential?.configured !== true; + } + function targetOf(row) { + const managedRef = deriveKeyRef(row.entry.provider); + const credentialRef = row.apiKeyEnv === managedRef && row.credential?.configured === true && row.credential.writable ? managedRef : void 0; + return { + provider: row.entry.provider, + displayName: row.entry.displayName, + settingsNs: row.entry.settingsNs, + settingsPath: row.entry.settingsPath, + ...credentialRef === void 0 ? {} : { credentialRef }, + ...row.entry.declared === true ? { declared: true } : {} + }; + } + /** Stable visible and accessible identity for one provider target. */ + function providerTargetLabel(target) { + return target.provider === target.displayName ? target.provider : `${target.displayName} (${target.provider})`; + } + /** Replace the one provider placeholder in localized destructive-action copy. */ + function providerCopy(template, target) { + return template.replace("{provider}", () => providerTargetLabel(target)); + } + /** + * Render the Models section content column. + * @param props - slot-delivered injected dependencies. + * @returns the section, or null while the shell has not injected yet. + */ + function ModelsSection(props) { + const { controller, useSnapshot, api, t } = props; + if (controller === void 0 || useSnapshot === void 0 || api === void 0 || t === void 0) return null; + return (0, react_jsx_runtime.jsx)(Loaded, { injected: { + controller, + useSnapshot, + api, + t + } }); + } + function Loaded({ injected }) { + const { controller, api, t } = injected; + const state = injected.useSnapshot((snapshot) => snapshot); + const [editing, setEditing] = (0, react.useState)(void 0); + const [adding, setAdding] = (0, react.useState)(false); + const [deleteTarget, setDeleteTarget] = (0, react.useState)(void 0); + const [deleting, setDeleting] = (0, react.useState)(false); + const [deleteFailure, setDeleteFailure] = (0, react.useState)(void 0); + const [savedTarget, setSavedTarget] = (0, react.useState)(void 0); + const [declaring, setDeclaring] = (0, react.useState)(false); + const [dismissedSetup, setDismissedSetup] = (0, react.useState)(() => /* @__PURE__ */ new Set()); + const announceSaved = (target) => { + controller.load().then(() => { + setSavedTarget(target); + }); + }; + const closeEditor = (changed, target) => { + setEditing(void 0); + setAdding(false); + setDeclaring(false); + if (changed) announceSaved(target); + }; + /** + * Close a setup card, which owns none of the state above: the row-editor, + * add, and declare cards each own one of those, so clearing them here would + * discard a draft the user opened beside this card. Dismissal is this card's + * own — the provider falls back to an ordinary row for the rest of the + * session, and reopens through Edit. + */ + const closeSetup = (changed, target) => { + setDismissedSetup((previous) => new Set([...previous, target.provider])); + if (changed) announceSaved(target); + }; + const closeDelete = () => { + if (deleting) return; + setDeleteTarget(void 0); + setDeleteFailure(void 0); + }; + const confirmDelete = () => { + /* v8 ignore next -- the action only renders with a target and is disabled while a deletion is pending */ + if (deleteTarget === void 0 || deleting) return; + setDeleting(true); + setDeleteFailure(void 0); + removeProviderProfile(api, controller, deleteTarget).then((failure) => { + if (failure !== void 0) { + setDeleteFailure(failure); + return; + } + setDeleteTarget(void 0); + }).finally(() => { + setDeleting(false); + }); + }; + if (state.status === "idle") controller.load(); + if (state.status === "error") { + /* v8 ignore next -- an error status always carries text; the fallback satisfies the nullable type */ + const errorText = state.error ?? ""; + return (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["section"], + children: [(0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: `${t("loadFailed")}: ${errorText}` + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["secondaryButton"], + onClick: () => { + controller.load(); + }, + children: t("retry") + })] + }); + } + const savedRow = savedTarget === void 0 ? void 0 : state.rows.find((row) => row.entry.provider === savedTarget.provider); + const savedIdentity = savedRow === void 0 ? savedTarget : { + provider: savedRow.entry.provider, + displayName: savedRow.entry.displayName + }; + const anyUsable = state.rows.some(providerUsable); + const configured = state.rows.filter((row) => row.configured); + const addable = state.rows.filter((row) => !row.configured && row.entry.settingsNs !== ""); + const addTarget = adding ? editing : void 0; + const addNamespace = addTarget === void 0 ? void 0 : state.namespaces.get(addTarget.settingsNs); + const protocols = protocolChoices(state.namespaces.get("llm-pi-ai")); + return (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["section"], + children: [ + (0, react_jsx_runtime.jsx)("h2", { + className: ModelsSection_module_css_default["title"], + children: t("title") + }), + (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["intro"], + children: t("intro") + }), + !state.writable && state.status === "ready" ? (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["notice"], + children: t("readOnly") + }) : null, + savedIdentity === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["savedNotice"], + role: "status", + "aria-live": "polite", + children: providerCopy(t("savedProvider"), savedIdentity) + }), + (0, react_jsx_runtime.jsx)("ul", { + className: ModelsSection_module_css_default["rows"], + children: configured.map((row) => { + const target = targetOf(row); + const namespace = state.namespaces.get(target.settingsNs); + /* v8 ignore next -- the join marks a row configured only when its namespace resolved */ + if (namespace === void 0) return null; + if (needsSetup(row, anyUsable) && !dismissedSetup.has(row.entry.provider)) return (0, react_jsx_runtime.jsx)("li", { + className: ModelsSection_module_css_default["setupCard"], + children: renderProviderEditor({ + target, + namespace, + api, + t, + readOnly: !state.writable, + onClose: (changed) => { + closeSetup(changed, target); + } + }) + }, row.entry.provider); + const open = !adding && editing?.provider === row.entry.provider; + const credentialConfigured = row.credential?.configured === true; + const credentialMissing = !credentialConfigured && row.apiKeyEnv !== void 0 && row.credential?.configured === false; + return (0, react_jsx_runtime.jsxs)("li", { + className: ModelsSection_module_css_default["rowCard"], + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["rowHead"], + children: [(0, react_jsx_runtime.jsxs)("span", { + className: ModelsSection_module_css_default["rowIdentity"], + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["rowName"], + children: row.entry.displayName + }), + row.entry.declared === true ? (0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["rowTag"], + children: t("customTag") + }) : null, + credentialConfigured ? (0, react_jsx_runtime.jsx)("span", { + className: `${ModelsSection_module_css_default["credentialDot"]} ${ModelsSection_module_css_default["credentialDotConfigured"]}`, + role: "img", + "aria-label": t("credentialConfigured"), + title: t("credentialConfigured") + }) : credentialMissing ? (0, react_jsx_runtime.jsx)("span", { + className: `${ModelsSection_module_css_default["credentialDot"]} ${ModelsSection_module_css_default["credentialDotMissing"]}`, + role: "img", + "aria-label": t("credentialMissing"), + title: t("credentialMissing") + }) : null + ] + }), (0, react_jsx_runtime.jsxs)("span", { + className: ModelsSection_module_css_default["rowActions"], + children: [(0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["secondaryButton"], + "aria-label": providerCopy(t("editProvider"), target), + onClick: () => { + setSavedTarget(void 0); + setDeclaring(false); + setAdding(false); + setEditing(open ? void 0 : target); + }, + children: t("edit") + }), row.removable ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelsSection_module_css_default["dangerButton"], + "aria-label": providerCopy(t("removeProvider"), target), + disabled: !state.writable, + onClick: () => { + setSavedTarget(void 0); + setDeleteFailure(void 0); + setDeleteTarget(target); + }, + children: t("remove") + }) : null] + })] + }), open ? renderProviderEditor({ + target, + namespace, + api, + t, + readOnly: !state.writable, + onClose: (changed) => { + closeEditor(changed, target); + } + }) : null] + }, row.entry.provider); + }) + }), + (0, react_jsx_runtime.jsx)("div", { + className: ModelsSection_module_css_default["addBlock"], + children: addTarget !== void 0 && addNamespace !== void 0 ? (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["addCard"], + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["field"], + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelsSection_module_css_default["fieldLabel"], + children: t("provider") + }), (0, react_jsx_runtime.jsx)("select", { + className: `${ModelsSection_module_css_default["input"]} ${ModelsSection_module_css_default["selectInput"]}`, + value: addTarget.provider, + "aria-label": t("provider"), + onChange: (event) => { + const row = addable.find((candidate) => candidate.entry.provider === event.target.value); + /* v8 ignore next -- the select only lists addable rows */ + if (row === void 0) return; + setEditing(targetOf(row)); + }, + children: addable.map((row) => (0, react_jsx_runtime.jsx)("option", { + value: row.entry.provider, + children: row.entry.displayName + }, row.entry.provider)) + })] + }), (0, react_jsx_runtime.jsx)(ProviderEditor, { + provider: addTarget.provider, + displayName: addTarget.displayName, + hideTitle: true, + namespace: addNamespace, + settingsPath: addTarget.settingsPath, + api, + t, + readOnly: !state.writable, + onClose: (changed) => { + closeEditor(changed, addTarget); + } + }, addTarget.provider)] + }) : declaring ? (0, react_jsx_runtime.jsx)("div", { + className: ModelsSection_module_css_default["addCard"], + children: (0, react_jsx_runtime.jsx)(CustomProviderCard, { + taken: state.rows.map((row) => row.entry.provider), + protocols, + /* v8 ignore next -- the card only opens from a button disabled without this namespace */ + revision: state.namespaces.get("llm-pi-ai")?.revision ?? 0, + api, + t, + readOnly: !state.writable, + onClose: (changed) => { + setDeclaring(false); + if (changed) controller.load(); + } + }) + }) : (0, react_jsx_runtime.jsxs)("div", { + className: ModelsSection_module_css_default["addActions"], + children: [(0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: ModelsSection_module_css_default["addButton"], + disabled: addable.length === 0 || !state.writable, + onClick: () => { + const first = addable[0]; + /* v8 ignore next -- the button is disabled while nothing is addable */ + if (first === void 0) return; + setSavedTarget(void 0); + setDeclaring(false); + setAdding(true); + setEditing(targetOf(first)); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 14 }), t("add")] + }), (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: ModelsSection_module_css_default["addButton"], + disabled: protocols.length === 0 || !state.writable, + onClick: () => { + setSavedTarget(void 0); + setAdding(false); + setEditing(void 0); + setDeclaring(true); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 14 }), t("customAdd")] + })] + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: deleteTarget !== void 0, + onClose: closeDelete, + title: deleteTarget === void 0 ? "" : providerCopy(t("deleteTitle"), deleteTarget), + closeLabel: t("close"), + description: deleteTarget === void 0 ? "" : providerCopy(deleteTarget.credentialRef === void 0 ? t("deleteDescription") : t("deleteDescriptionWithCredential"), deleteTarget), + className: ModelsSection_module_css_default["deleteDialog"], + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + autoFocus: true, + disabled: deleting, + onClick: closeDelete, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + className: ModelsSection_module_css_default["deleteConfirm"], + disabled: deleting, + onClick: confirmDelete, + children: deleteTarget === void 0 ? "" : providerCopy(deleting ? t("deleting") : t("deleteConfirm"), deleteTarget) + })] }), + children: deleteFailure === void 0 ? null : (0, react_jsx_runtime.jsx)("p", { + className: ModelsSection_module_css_default["error"], + children: deleteFailure + }) + }) + ] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-models/src/client/OnboardingModal.module.css.mjs + const css$2 = ".jLrgrW_dialog{width:min(600px,100%);padding:0}.jLrgrW_content{box-sizing:border-box;flex-direction:column;max-height:calc(100vh - 48px);padding:28px;display:flex;overflow-y:auto}.jLrgrW_title{color:var(--dsw-alias-label-primary);outline:none;margin:0;font-size:20px;font-weight:500;line-height:28px}.jLrgrW_body{margin-top:20px}@media (width<=560px){.jLrgrW_content{padding:24px}}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-settings-models/OnboardingModal.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-models"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var OnboardingModal_module_css_default = { + "body": "jLrgrW_body", + "title": "jLrgrW_title", + "dialog": "jLrgrW_dialog", + "content": "jLrgrW_content" + }; + //#endregion + //#region lib/types/client/OnboardingModal.js + /** Shared modal chrome for every step registered by this onboarding plugin. */ + const ignoreImplicitDismiss = () => {}; + /** + * Render a blocking onboarding dialog and keep the application root inert. + * @param props.title - accessible and visible dialog title. + * @param props.focusTitle - focus the title when the step has no form control. + * @param props.children - step-owned body and actions. + * @returns the body-portaled modal. + */ + function OnboardingModal({ title, focusTitle = false, children }) { + const titleRef = (0, react.useRef)(null); + (0, react.useEffect)(() => { + const appRoot = document.getElementById("root"); + if (appRoot === null) return; + const previous = appRoot.inert; + appRoot.inert = true; + return () => { + appRoot.inert = previous; + }; + }, []); + (0, react.useEffect)(() => { + if (focusTitle) titleRef.current?.focus(); + }, [focusTitle]); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: true, + title, + onClose: ignoreImplicitDismiss, + headless: true, + className: OnboardingModal_module_css_default.dialog, + children: (0, react_jsx_runtime.jsxs)("div", { + className: OnboardingModal_module_css_default.content, + children: [(0, react_jsx_runtime.jsx)("h2", { + ref: titleRef, + className: OnboardingModal_module_css_default.title, + tabIndex: focusTitle ? -1 : void 0, + children: title + }), (0, react_jsx_runtime.jsx)("div", { + className: OnboardingModal_module_css_default.body, + children + })] + }) + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-models/src/client/DeepSeekOnboardingDialog.module.css.mjs + const css$1 = ".GL8Viq_description{color:var(--dsw-alias-label-secondary);margin:0;font-size:14px;line-height:24px}.GL8Viq_editor{margin-top:24px}@media (width<=560px){.GL8Viq_editor{margin-top:20px}}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-settings-models/DeepSeekOnboardingDialog.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-models"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var DeepSeekOnboardingDialog_module_css_default = { + "description": "GL8Viq_description", + "editor": "GL8Viq_editor" + }; + //#endregion + //#region lib/types/client/DeepSeekOnboardingDialog.js + /** + * Official-DeepSeek first-run step. Readiness comes from the same + * provider/settings/credential join as the Models page: any provider the user + * can already talk to ends the step, and only a user with none is offered the + * official DeepSeek route. The step reuses that page's credential editor in + * the onboarding plugin's shared modal, so the key is entered once. + */ + /* v8 ignore next 3 -- closed-union defaults only defend future source widening */ + function assertNever(_value) { + throw new Error("unexpected DeepSeek onboarding state"); + } + /** + * Prompt a first-run user for the official DeepSeek credential while no + * provider can serve requests and that credential is writable. + * @param props - settings-shell owner state and Models feature dependencies. + * @returns the onboarding modal or null when onboarding needs no intervention. + */ + function DeepSeekOnboardingDialog(props) { + const { complete, controller, useModels, api, t } = props; + const state = useModels((snapshot) => snapshot); + const readiness = onboardingReadiness(state); + (0, react.useEffect)(() => { + if (state.status === "idle") controller.load(); + }, [controller, state.status]); + (0, react.useEffect)(() => { + if (readiness.kind === "adapter-absent" || readiness.kind === "provider-ready" || readiness.kind === "unavailable") complete(); + }, [complete, readiness.kind]); + switch (readiness.kind) { + case "loading": + case "adapter-absent": + case "provider-ready": + case "unavailable": return null; + case "credential-missing": break; + /* v8 ignore next -- every current readiness variant is handled above */ + default: return assertNever(readiness); + } + const row = state.rows.find((candidate) => candidate.entry.provider === "deepseek-official" && candidate.entry.settingsNs === "llm-deepseek" && candidate.entry.settingsPath.length === 0); + const namespace = state.namespaces.get("llm-deepseek"); + /* v8 ignore next 2 -- credential-missing is derived only from this exact joined row. */ + if (row === void 0 || namespace === void 0) return null; + const finishCredential = (changed) => { + if (!changed) { + complete(); + return; + } + controller.load(); + }; + return (0, react_jsx_runtime.jsxs)(OnboardingModal, { + title: t("onboardingTitle"), + children: [(0, react_jsx_runtime.jsx)("p", { + className: DeepSeekOnboardingDialog_module_css_default.description, + children: t("onboardingDescription") + }), (0, react_jsx_runtime.jsx)("div", { + className: DeepSeekOnboardingDialog_module_css_default.editor, + children: (0, react_jsx_runtime.jsx)(ProviderEditor, { + provider: row.entry.provider, + displayName: row.entry.displayName, + namespace, + settingsPath: row.entry.settingsPath, + api, + t, + readOnly: false, + hideTitle: true, + credentialOnly: true, + credentialRequired: true, + autoFocusCredential: true, + cancelLabel: "onboardingLater", + submitLabel: "onboardingSave", + submitBusyLabel: "onboardingSaving", + onClose: finishCredential + }) + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-models/src/client/WelcomeNotice.module.css.mjs + const css = ".t1T8VW_copy{color:var(--dsw-alias-label-secondary);font-size:14px;line-height:24px}.t1T8VW_copy p{margin:0}.t1T8VW_copy p+p{margin-top:12px}.t1T8VW_error{color:var(--dsw-alias-state-error-primary);margin:16px 0 0;font-size:14px;line-height:22px}.t1T8VW_actions{justify-content:flex-end;margin-top:24px;display:flex}.t1T8VW_primary{min-width:120px}@media (width<=560px){.t1T8VW_primary{width:100%}}"; + const tagId = "@deepseek-ai/dsh-client-ui-settings-models/WelcomeNotice.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-models"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var WelcomeNotice_module_css_default = { + "error": "t1T8VW_error", + "primary": "t1T8VW_primary", + "copy": "t1T8VW_copy", + "actions": "t1T8VW_actions" + }; + //#endregion + //#region lib/types/client/WelcomeNotice.js + /** Product-wide, versioned internal-testing notice. */ + /** + * Render the current notice until its exact copy version is acknowledged. + * @param props - settings-shell owner state and welcome dependencies. + * @returns the welcome modal or null while the step decides not to show. + */ + function WelcomeNotice(props) { + const { complete, controller, useWelcome, t } = props; + const state = useWelcome((snapshot) => snapshot); + const finished = (0, react.useRef)(false); + const finish = (0, react.useCallback)(() => { + if (finished.current) return; + finished.current = true; + complete(); + }, [complete]); + (0, react.useEffect)(() => { + if (state.status === "idle") controller.load(); + }, [controller, state.status]); + (0, react.useEffect)(() => { + if (state.acknowledged) finish(); + }, [finish, state.acknowledged]); + if (state.status === "idle" || state.status === "loading" || state.acknowledged) return null; + const acknowledge = async () => { + if (await controller.acknowledge()) finish(); + }; + const paragraphs = t("welcomeBody").split("\n\n"); + return (0, react_jsx_runtime.jsxs)(OnboardingModal, { + title: t("welcomeTitle"), + focusTitle: true, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: WelcomeNotice_module_css_default.copy, + children: paragraphs.map((paragraph) => (0, react_jsx_runtime.jsx)("p", { children: paragraph }, paragraph)) + }), + state.error === null ? null : (0, react_jsx_runtime.jsx)("p", { + className: WelcomeNotice_module_css_default.error, + role: "alert", + children: t("welcomeError") + }), + (0, react_jsx_runtime.jsx)("div", { + className: WelcomeNotice_module_css_default.actions, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + className: WelcomeNotice_module_css_default.primary, + disabled: state.status === "saving", + onClick: () => { + acknowledge(); + }, + children: t("welcomeContinue") + }) + }) + ] + }); + } + //#endregion + //#region lib/types/onboarding-copy.js + /** Durable settings namespace for product-wide GUI onboarding facts. */ + const WELCOME_NOTICE_SETTINGS_NAMESPACE = "ui-onboarding"; + /** Field storing the last welcome notice version the user acknowledged. */ + const WELCOME_NOTICE_ACK_FIELD = "welcomeNoticeVersion"; + /** + * Bump only when the notice changes materially and every user should see it + * again. The acknowledgement is compared for exact equality. + */ + const WELCOME_NOTICE_VERSION = "2026-08-13.1"; + /** The complete editable internal-testing notice in both supported GUI locales. */ + const WELCOME_NOTICE_COPY = { + zh: { + title: "内测声明", + body: "DeepSeek Harness 目�的 0.1 版本�处在�� Harness 开�者进行测试的阶段,还有许多地方需��续改进和打磨,希望��广大开�者的�馈建议。预计 DeepSeek Harness 的核心�件以�基础 API 都会在接下�的一段时间内快速迭代��续演化。\n\n我们期待与全�开�者一起,在开��开放���用��组�的基础设施之上,共�探索智能上�。欢迎全� Harness 开�者加入 DSH �件生�。", + continueLabel: "继续" + }, + en: { + title: "Internal Testing Notice", + body: "DeepSeek Harness 0.1 remains in testing for Harness developers. Many areas need further improvement, and we welcome feedback from the developer community. DeepSeek Harness's core plugins and foundational APIs will continue to evolve rapidly over the coming months.\n\nWe look forward to exploring the limits of intelligence with developers around the world, building on open-source, open, reusable, and composable infrastructure. We welcome Harness developers everywhere to join the DSH plugin ecosystem.", + continueLabel: "Continue" + } + }; + //#endregion + //#region lib/types/client/welcome-store.js + /** Welcome-notice state, durable when the browser may use Host settings. */ + function messageOf(error) { + return error instanceof Error ? error.message : String(error); + } + function acknowledgementOf(view) { + if (typeof view.value !== "object" || view.value === null) return void 0; + const value = view.value[WELCOME_NOTICE_ACK_FIELD]; + return typeof value === "string" ? value : void 0; + } + /** Coordinates durable Host acknowledgement or a process-local remote fallback. */ + var WelcomeNoticeStore = class { + api; + persistence; + /** uSES-safe state source shared by the registered welcome step. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)({ + status: "idle", + acknowledged: false, + error: null + }); + generation = 0; + /** + * @param api - settings wire face used for durable reads and writes. + * @param persistence - remote browsers use memory because settings is loopback-only. + */ + constructor(api, persistence = "host") { + this.api = api; + this.persistence = persistence; + } + /** Load the acknowledgement from Host settings or initialize process-local state. */ + async load() { + const generation = ++this.generation; + if (this.persistence === "memory") { + this.store.update((state) => { + state.status = "ready"; + state.error = null; + }); + return; + } + this.store.update((state) => { + state.status = "loading"; + state.error = null; + }); + try { + const response = await this.api.settings.describe({}); + if (!response.result.ok) throw new Error(response.result.error.message); + const view = response.result.value.namespaces.find((candidate) => candidate.ns === WELCOME_NOTICE_SETTINGS_NAMESPACE); + if (view === void 0) throw new Error("welcome acknowledgement settings are unavailable"); + if (generation !== this.generation) return; + this.store.update((state) => { + state.status = "ready"; + state.acknowledged = acknowledgementOf(view) === WELCOME_NOTICE_VERSION; + state.error = null; + }); + } catch (error) { + if (generation !== this.generation) return; + this.store.update((state) => { + state.status = "error"; + state.acknowledged = false; + state.error = messageOf(error); + }); + } + } + /** + * Persist this copy version, or advance only this process for a remote browser. + * @returns true when the selected persistence mode accepted the acknowledgement. + */ + async acknowledge() { + const generation = ++this.generation; + if (this.persistence === "memory") { + this.store.update((state) => { + state.status = "ready"; + state.acknowledged = true; + state.error = null; + }); + return true; + } + this.store.update((state) => { + state.status = "saving"; + state.error = null; + }); + try { + const response = await this.api.settings.mutate({ + ns: WELCOME_NOTICE_SETTINGS_NAMESPACE, + ops: [{ + op: "set", + path: [WELCOME_NOTICE_ACK_FIELD], + value: WELCOME_NOTICE_VERSION + }] + }); + if (!response.result.ok) throw new Error(response.result.error.message); + if (generation === this.generation) this.store.update((state) => { + state.status = "ready"; + state.acknowledged = true; + state.error = null; + }); + return true; + } catch (error) { + if (generation === this.generation) this.store.update((state) => { + state.status = "error"; + state.acknowledged = false; + state.error = messageOf(error); + }); + return false; + } + } + }; + /** + * Refresh only after welcome state has left idle. A memory-mode load retains + * acknowledgement so reconnect does not reopen a process-local notice. + * @param controller - welcome state owner whose current status decides whether to load. + */ + function refreshWelcomeIfLoaded(controller) { + if (controller.store.getSnapshot().status === "idle") return; + controller.load(); + } + //#endregion + //#region lib/types/client/locales.js + /** Copy dictionaries for the Models settings section. */ + /** English strings (the key-set source of truth for this pair). */ + const en = { + nav: "Models", + title: "Models", + intro: "Enter your API keys to use models from the following providers.", + edit: "Edit", + editProvider: "Edit {provider}", + remove: "Delete", + removeProvider: "Delete {provider}", + deleteTitle: "Delete {provider}?", + deleteDescription: "Deleting {provider} removes its configuration. Any credential it uses is managed elsewhere and will be kept.", + deleteDescriptionWithCredential: "Deleting {provider} removes its configuration and stored API key.", + deleteConfirm: "Delete {provider}", + deleting: "Deleting {provider}…", + add: "Add provider", + provider: "Provider", + close: "Close", + cancel: "Cancel", + apply: "Apply", + applying: "Applying…", + savedProvider: "Saved {provider}.", + credentialConfigured: "API key configured", + credentialMissing: "API key missing", + readOnly: "The settings document is read-only in this deployment.", + loadFailed: "Loading the provider directory failed", + conflict: "Someone else changed these settings while this card was open. Close it and reopen to edit the current values.", + retry: "Retry", + keyInput: "API key", + keyPlaceholder: "Enter your API key", + keyPlaceholderNative: "Enter an API key, or leave blank to use environment authentication", + keyStored: "Configured — enter a new value to replace", + keyEnvLocked: "Provided by the launch environment (read-only)", + customized: "Customized settings", + baseUrl: "Base URL", + baseUrlDefault: "Provider default", + models: "Models", + modelsInherited: "Using the adapter defaults", + modelsCustomized: "Customized model catalog", + resetModels: "Restore defaults", + model: "Model", + modelId: "Model ID", + modelName: "Display name", + modelNamePlaceholder: "Uses the model ID when empty", + contextWindow: "Context window", + contextWindowPlaceholder: "Uses the provider default", + maxTokens: "Max output tokens", + maxTokensPlaceholder: "Uses the provider default", + modelAdvanced: "Capacities", + addModel: "Add model", + removeModel: "Delete model", + modelsEmpty: "No models will be shown in the selector. Unlisted IDs can still be sent directly.", + keyBlank: "Enter the API key, or leave the field empty to keep the stored one.", + keyBlankNew: "Enter the API key, or leave the field empty if this provider authenticates another way.", + keyIllegalCharacters: "This API key is not in a valid format. Please check it.", + modelIdRequired: "Model ID is required.", + modelIdDuplicate: "Model ID must be unique.", + modelNameInvalid: "Display name cannot be empty.", + modelContextInvalid: "Context window must be a positive count, like 131072, 256K, or 1M.", + modelMaxTokensInvalid: "Max output tokens must be a positive count, like 8192, 64K, or 1M.", + advancedHint: "Other fields live in settings.yaml; edit that section directly.", + modelCapacityInvalid: "A capacity must be a number, optionally suffixed K or M.", + modelDuplicate: "Each model ID may appear once.", + modelContextWindow: "Context window", + modelMaxTokens: "Max output tokens", + fetchModels: "Fetch available models", + fetching: "Asking the provider…", + fetchNeedsBaseUrl: "Enter the base URL first, then fetch.", + fetchEmpty: "The provider listed no models. Add them by hand.", + fetchTitle: "Choose models to add", + fetchDescription: "These are the models this provider has available. Choose the ones to add.", + fetchAdopt: "Add selected", + customAdd: "Add a custom provider", + customTitle: "Custom provider", + customTag: "Custom", + customRoute: "Provider ID", + customRouteHint: "Lowercase identifier, starting with a letter, that uniquely names this provider in requests and as its credential name.", + customRouteInvalid: "Start with a lowercase letter; then lowercase letters, digits, and dashes.", + customRouteTaken: "A provider already uses this ID.", + customDisplayName: "Display name", + customApi: "API protocol", + customApiUnset: "Not selected", + customNeedsBaseUrl: "A custom provider needs a base URL.", + customNeedsModels: "A custom provider needs at least one model.", + create: "Create provider", + creating: "Creating…", + welcomeTitle: WELCOME_NOTICE_COPY.en.title, + welcomeBody: WELCOME_NOTICE_COPY.en.body, + welcomeContinue: WELCOME_NOTICE_COPY.en.continueLabel, + welcomeError: "The acknowledgement could not be saved. Please try again.", + onboardingTitle: "Add an API key to get started", + onboardingDescription: "Configure the official DeepSeek provider to start building.", + onboardingLater: "Configure later", + onboardingSave: "Save and continue", + onboardingSaving: "Saving…", + keyRequired: "Enter an API key to continue." + }; + /** Chinese strings (same keys as {@link en}). */ + const zh = { + nav: "模型", + title: "模型", + intro: "填入��供方的 API 密钥��使用其模型。", + edit: "编辑", + editProvider: "编辑 {provider}", + remove: "删除", + removeProvider: "删除 {provider}", + deleteTitle: "删除 {provider}?", + deleteDescription: "删除 {provider} 会移除其�置;其使用的凭�(如有)由其他�置管�,将会�留。", + deleteDescriptionWithCredential: "删除 {provider} 会移除其�置和存储的 API 密钥。", + deleteConfirm: "删除 {provider}", + deleting: "正在删除 {provider}…", + add: "添加�供方", + provider: "�供方", + close: "关闭", + cancel: "�消", + apply: "�存", + applying: "�存中…", + savedProvider: "已�存 {provider}。", + credentialConfigured: "API 密钥已�置", + credentialMissing: "API 密钥缺失", + readOnly: "当�部署的设置文档为�读。", + loadFailed: "加载�供方目录失败", + conflict: "这张�片打开期间,这些设置已被其他地方改动。请关闭��新打开,在当�值上编辑。", + retry: "�试", + keyInput: "API 密钥", + keyPlaceholder: "输入 API 密钥", + keyPlaceholderNative: "输入 API 密钥,或留空使用环境认�", + keyStored: "已�置——输入新值�替�", + keyEnvLocked: "由�动环境�供(�读)", + customized: "自定义设置", + baseUrl: "API 地�", + baseUrlDefault: "�供方默认", + models: "模型目录", + modelsInherited: "正在使用适�器默认模型", + modelsCustomized: "已自定义模型目录", + resetModels: "��默认模型", + model: "模型", + modelId: "模型 ID", + modelName: "显示�称", + modelNamePlaceholder: "留空时使用模型 ID", + contextWindow: "上下文窗�", + contextWindowPlaceholder: "使用�供方默认值", + maxTokens: "最大输出 token 数", + maxTokensPlaceholder: "使用�供方默认值", + modelAdvanced: "容�", + addModel: "添加模型", + removeModel: "删除模型", + modelsEmpty: "模型选择器中将�显示任何模型;目录外 ID ��直接��。", + keyBlank: "请输入 API 密钥;留空则��已存储的密钥。", + keyBlankNew: "请输入 API 密钥;若该�供方以其他方�鉴�,�以留空。", + keyIllegalCharacters: "该 API 密钥格�错误,请检查。", + modelIdRequired: "模型 ID �能为空。", + modelIdDuplicate: "模型 ID �能��。", + modelNameInvalid: "显示�称�能为空。", + modelContextInvalid: "上下文窗�必须是正数,例如 131072�256K 或 1M。", + modelMaxTokensInvalid: "最大输出 token 数必须是正数,例如 8192�64K 或 1M。", + advancedHint: "其余字段在 settings.yaml 中,请直接编辑对应段。", + modelCapacityInvalid: "容�需为数字,�加 K 或 M �缀。", + modelDuplicate: "�个模型 ID �能出现一次。", + modelContextWindow: "上下文窗�", + modelMaxTokens: "最大输出 token", + fetchModels: "获��用模型", + fetching: "正在询问�供方…", + fetchNeedsBaseUrl: "请先填写 API 地�,�获�。", + fetchEmpty: "该�供方没有列出任何模型,请手动添加。", + fetchTitle: "选择�添加的模型", + fetchDescription: "以下是模型�供方的�用模型,勾选�添加的模型。", + fetchAdopt: "添加所选", + customAdd: "添加自定义�供方", + customTitle: "自定义�供方", + customTag: "自定义", + customRoute: "Provider ID", + customRouteHint: "以�写字�开头的标识,在请求中唯一标识该�供方,并用于派生凭��。", + customRouteInvalid: "需以�写字�开头,之��用�写字��数字和短横线。", + customRouteTaken: "已有�供方使用了这个 ID。", + customDisplayName: "显示�称", + customApi: "API �议", + customApiUnset: "未选择", + customNeedsBaseUrl: "自定义�供方需�填写 API 地�。", + customNeedsModels: "自定义�供方至少需�一个模型。", + create: "创建�供方", + creating: "创建中…", + welcomeTitle: WELCOME_NOTICE_COPY.zh.title, + welcomeBody: WELCOME_NOTICE_COPY.zh.body, + welcomeContinue: WELCOME_NOTICE_COPY.zh.continueLabel, + welcomeError: "暂时无法�存确认状�,请�试。", + onboardingTitle: "添加一个 API Key 开始使用", + onboardingDescription: "�置 DeepSeek 官方模型,��开始使用。", + onboardingLater: "���置", + onboardingSave: "�存并继续", + onboardingSaving: "�存中…", + keyRequired: "请输入 API 密钥�继续。" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin. */ + const NS = "settings.models"; + /** + * Refetch the page snapshot only after its first load: an unopened Models + * page must not fetch on background invalidations. + * @param controller - the page store. + */ + function refreshIfLoaded(controller) { + if (controller.store.getSnapshot().status === "idle") return; + controller.load(); + } + /** + * Required services (cordis fiber inject). The target slot is declared by + * ui-settings' apply, whose activation order relative to this one is NOT + * constrained; registration depends on each slot through `slots.inject()`. + */ + const inject = [ + "slots", + "locale", + "connection", + "remote" + ]; + /** + * Register the Models section once the `settings.section` declaration is on + * the ledger, wire its store to the connection, and keep it fresh on every + * pushed invalidation (settings, credentials, or provider topology). + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-settings-models: copy dictionaries"); + const connection = ctx.get("connection"); + const controller = new ModelsSettingsStore(connection.api); + const useSnapshot = (0, _deepseek_ai_dsh_client_web_react.bindSnapshotSelector)(controller.store); + const t = ctx.locale.bind(NS); + const injected = () => ({ + controller, + useSnapshot, + api: connection.api, + t + }); + const deepSeekOnboardingInjected = () => ({ + controller, + hooks: { models: controller.store }, + api: connection.api, + t + }); + const welcomeController = new WelcomeNoticeStore(connection.api, connection.isLoopback ? "host" : "memory"); + const welcomeInjected = () => ({ + controller: welcomeController, + hooks: { welcome: welcomeController.store }, + t + }); + ctx.effect(() => { + const refreshModels = () => { + refreshIfLoaded(controller); + }; + const refreshAll = () => { + refreshModels(); + refreshWelcomeIfLoaded(welcomeController); + }; + const disposers = [ + ctx.remote.$on("settings/document-updated", (ns) => { + refreshModels(); + if (ns === "ui-onboarding") refreshWelcomeIfLoaded(welcomeController); + }), + ctx.remote.$on("credentials/updated", refreshModels), + ctx.remote.$on("llm/adapters-updated", refreshModels), + ctx.on("connection/reset", refreshAll) + ]; + return () => { + for (const dispose of disposers) dispose(); + }; + }, "ui-settings-models: pushed invalidations"); + ctx.slots.inject("settings.section", () => ctx.slots.register({ + name: "settings.section", + id: "models", + order: 10, + label: () => t("nav"), + inject: injected + }, ModelsSection)); + ctx.slots.inject("settings.onboarding", () => ctx.slots.register({ + name: "settings.onboarding", + id: "welcome-notice", + order: -100, + inject: welcomeInjected + }, WelcomeNotice)); + ctx.slots.inject("settings.onboarding", () => ctx.slots.register({ + name: "settings.onboarding", + id: "deepseek-official", + order: 0, + inject: deepSeekOnboardingInjected + }, DeepSeekOnboardingDialog)); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + exports.refreshIfLoaded = refreshIfLoaded; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000011 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000011 new file mode 100644 index 0000000..a13f667 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000011 @@ -0,0 +1,474 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-workflow-run", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-workflow-run/src/client/WorkflowRunPanel.module.css.mjs + const css = ".DBuyfa_root{width:100%;min-width:0}.DBuyfa_runHeader{box-sizing:border-box;background:var(--dsw-alias-bg-module-platform);border-radius:8px;align-items:center;gap:6px;width:100%;min-width:0;height:32px;padding:0 8px;display:flex}.DBuyfa_runHeader:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px}.DBuyfa_runLeading{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;margin-right:0;display:inline-flex}.DBuyfa_runTitle{max-width:42%;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:14px;font-weight:510;line-height:24px;overflow:hidden}.DBuyfa_runSummary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:18px;overflow:hidden}.DBuyfa_statusTail{height:20px;color:var(--dsw-alias-label-secondary);white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:11px;font-weight:510;line-height:16px;display:inline-flex;overflow:hidden}.DBuyfa_phaseHeader{box-sizing:border-box;align-items:center;gap:6px;width:100%;min-width:0;height:32px;display:flex}.DBuyfa_phaseHeader:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px;border-radius:4px}.DBuyfa_phaseLeading{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;margin-right:0;display:inline-flex}.DBuyfa_phaseTitle{min-width:0;max-width:42%;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:14px;line-height:24px;overflow:hidden}.DBuyfa_phaseCount{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;line-height:20px;overflow:hidden}.DBuyfa_phaseStatus{width:132px;color:var(--dsw-alias-label-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:13px;line-height:20px;overflow:hidden}.DBuyfa_separator{background:var(--dsw-alias-label-tertiary);border-radius:50%;flex:none;width:2px;height:2px}.DBuyfa_phaseList{flex-direction:column;gap:4px;min-width:0;padding:4px 0 0 16px;display:flex}.DBuyfa_phase{min-width:0}.DBuyfa_members{flex-direction:column;gap:2px;min-width:0;padding:0 0 0 16px;display:flex}.DBuyfa_memberRow,.DBuyfa_memberButton{width:100%;min-width:0;min-height:24px;color:var(--dsw-alias-label-secondary);font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:12px;padding:0;display:flex}.DBuyfa_memberButton{cursor:pointer}.DBuyfa_memberButton .DBuyfa_memberLabel{color:var(--dsw-alias-state-business-primary);text-underline-position:from-font;text-decoration:underline}.DBuyfa_dotSlot{flex:none;justify-content:center;align-items:center;width:16px;height:24px;display:inline-flex;overflow:hidden}.DBuyfa_memberButton:focus-visible{outline:none}.DBuyfa_memberButton:focus-visible .DBuyfa_memberLabelWrap{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.DBuyfa_memberLabelWrap{border-radius:4px;flex:1;align-items:center;min-width:0;height:24px;padding:0 2px;display:flex;overflow:hidden}.DBuyfa_memberLabel{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;line-height:24px;overflow:hidden}.DBuyfa_memberStatus{width:64px;color:var(--dsw-alias-label-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:13px;line-height:20px;overflow:hidden}.DBuyfa_empty{color:var(--dsw-alias-label-tertiary);padding:0;font-size:13px;line-height:20px}@media (width<=560px){.DBuyfa_phaseList,.DBuyfa_members{padding-left:12px}}"; + const tagId = "@deepseek-ai/dsh-client-ui-workflow-run/WorkflowRunPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-workflow-run"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var WorkflowRunPanel_module_css_default = { + "root": "DBuyfa_root", + "phaseHeader": "DBuyfa_phaseHeader", + "runTitle": "DBuyfa_runTitle", + "memberLabel": "DBuyfa_memberLabel", + "phaseList": "DBuyfa_phaseList", + "phaseLeading": "DBuyfa_phaseLeading", + "phase": "DBuyfa_phase", + "members": "DBuyfa_members", + "phaseStatus": "DBuyfa_phaseStatus", + "runHeader": "DBuyfa_runHeader", + "memberRow": "DBuyfa_memberRow", + "memberStatus": "DBuyfa_memberStatus", + "statusTail": "DBuyfa_statusTail", + "dotSlot": "DBuyfa_dotSlot", + "empty": "DBuyfa_empty", + "memberButton": "DBuyfa_memberButton", + "memberLabelWrap": "DBuyfa_memberLabelWrap", + "runLeading": "DBuyfa_runLeading", + "runSummary": "DBuyfa_runSummary", + "separator": "DBuyfa_separator", + "phaseTitle": "DBuyfa_phaseTitle", + "phaseCount": "DBuyfa_phaseCount" + }; + //#endregion + //#region lib/types/client/WorkflowRunPanel.js + const STATUS_KEYS = { + running: "status.running", + completed: "status.completed", + failed: "status.failed", + cancelled: "status.cancelled", + interrupted: "status.interrupted" + }; + function dotState(status) { + switch (status) { + case "running": return "ongoing"; + case "completed": return "done"; + case "failed": return "error"; + case "cancelled": + case "interrupted": return "warning"; + /* v8 ignore next -- WorkflowRunStatus is closed and every variant is handled above. */ + default: return status; + } + } + function readablePhase(phase, t) { + if (phase === null) return t("phase.unassigned"); + return phase === "" ? t("phase.empty") : phase; + } + function readableMember(label, t) { + return label === "" ? t("member.empty") : label; + } + function statusCount(status, count, t) { + return t(`statusCount.${status}`, { count }); + } + function memberCount(count, t) { + return t(count === 1 ? "run.members.one" : "run.members.other", { count }); + } + function phaseRequiresExpansion(phase) { + return phase.members.some((member) => member.status !== "completed"); + } + /* v8 ignore next -- DisclosureRow requires the callback but cannot invoke it when expandable is false. */ + const forcedOpenToggle = () => {}; + function ManualDisclosure(props) { + const [open, setOpen] = (0, react.useState)(false); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + ...props, + open, + expandable: true, + onToggle: () => { + setOpen((value) => !value); + } + }); + } + function StatusDisclosure({ cleanCycleKey, requiresExpansion, ...props }) { + if (!requiresExpansion) return (0, react_jsx_runtime.jsx)(ManualDisclosure, { ...props }, cleanCycleKey); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + ...props, + open: true, + expandable: false, + onToggle: forcedOpenToggle + }); + } + function phaseStatusSummary(members, t) { + const counts = /* @__PURE__ */ new Map(); + for (const member of members) counts.set(member.status, (counts.get(member.status) ?? 0) + 1); + const count = (status) => counts.get(status) ?? 0; + const active = [ + "running", + "failed", + "cancelled", + "interrupted" + ].filter((status) => count(status) > 0); + if (active.length === 0) return statusCount("completed", count("completed"), t); + return (active.includes("interrupted") && count("completed") > 0 ? ["completed", ...active] : active).map((status) => statusCount(status, count(status), t)).join(" · "); + } + function navigableMembers(sessions, phases, parentId) { + const ordinary = new Set(sessions.ids); + const result = []; + for (const phase of phases) for (const member of phase.members) { + const summary = sessions.byId[member.childId]; + if (member.status === "running" && ordinary.has(member.childId) && summary?.origin === "subagent" && summary.parentId === parentId && summary.running) result.push(member.childId); + } + return result; + } + function RunHeader({ children, count, name, requiresExpansion, status, t }) { + return (0, react_jsx_runtime.jsx)(StatusDisclosure, { + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}), + title: t("run.title", { name }), + requiresExpansion, + expandOnRowClick: true, + previewChevron: false, + keepContentWhenOpen: true, + rowClassName: WorkflowRunPanel_module_css_default.runHeader, + leadingClassName: WorkflowRunPanel_module_css_default.runLeading, + titleClassName: WorkflowRunPanel_module_css_default.runTitle, + collapsedContent: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.separator, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.runSummary, + children: memberCount(count, t) + }), + (0, react_jsx_runtime.jsxs)("span", { + className: WorkflowRunPanel_module_css_default.statusTail, + "data-status": status, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: dotState(status) }), (0, react_jsx_runtime.jsx)("span", { children: t(STATUS_KEYS[status]) })] + }) + ] }), + children + }); + } + function MemberRow({ member, navigable, openSession, t }) { + const name = readableMember(member.label, t); + const content = (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.dotSlot, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: dotState(member.status) }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.memberLabelWrap, + "data-member-label-wrap": true, + children: (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.memberLabel, + "data-member-label": true, + children: name + }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.memberStatus, + "data-member-status-text": true, + children: t(STATUS_KEYS[member.status]) + }) + ] }); + if (!navigable) return (0, react_jsx_runtime.jsx)("div", { + className: WorkflowRunPanel_module_css_default.memberRow, + "data-member-status": member.status, + children: content + }); + return (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: WorkflowRunPanel_module_css_default.memberButton, + "data-member-status": member.status, + "aria-label": t("member.open", { name }), + onClick: () => { + openSession(member.childId); + }, + children: content + }); + } + function PhaseSection({ phase, navigable, openSession, t }) { + return (0, react_jsx_runtime.jsx)(StatusDisclosure, { + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}), + title: readablePhase(phase.phase, t), + cleanCycleKey: phase.members.length, + requiresExpansion: phaseRequiresExpansion(phase), + expandOnRowClick: true, + previewChevron: false, + keepContentWhenOpen: true, + className: WorkflowRunPanel_module_css_default.phase, + rowClassName: WorkflowRunPanel_module_css_default.phaseHeader, + leadingClassName: WorkflowRunPanel_module_css_default.phaseLeading, + titleClassName: WorkflowRunPanel_module_css_default.phaseTitle, + collapsedContent: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.separator, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.phaseCount, + "data-phase-count": true, + children: memberCount(phase.members.length, t) + }), + (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.phaseStatus, + "data-phase-status-text": true, + children: phaseStatusSummary(phase.members, t) + }) + ] }), + children: (0, react_jsx_runtime.jsx)("div", { + className: WorkflowRunPanel_module_css_default.members, + children: phase.members.map((member) => (0, react_jsx_runtime.jsx)(MemberRow, { + member, + navigable: navigable.includes(member.childId), + openSession, + t + }, member.seq)) + }) + }); + } + /** Render one durable workflow run with status-driven run and phase disclosure. */ + function WorkflowRunPanel({ node, sessionId, useSessions, openSession, t }) { + const totalMembers = node.data.phases.reduce((count, phase) => count + phase.members.length, 0); + const requiresExpansion = node.data.status !== "completed" || node.data.phases.some(phaseRequiresExpansion); + const navigable = useSessions((sessions) => navigableMembers(sessions, node.data.phases, sessionId), _deepseek_ai_dsh_client_runtime_client.shallowEqual); + return (0, react_jsx_runtime.jsx)("section", { + className: WorkflowRunPanel_module_css_default.root, + "data-workflow-run": true, + "data-run-status": node.data.status, + children: (0, react_jsx_runtime.jsx)(RunHeader, { + count: totalMembers, + name: node.data.name, + requiresExpansion, + status: node.data.status, + t, + children: (0, react_jsx_runtime.jsx)("div", { + className: WorkflowRunPanel_module_css_default.phaseList, + children: node.data.phases.length === 0 ? (0, react_jsx_runtime.jsx)("span", { + className: WorkflowRunPanel_module_css_default.empty, + children: t("run.empty") + }) : node.data.phases.map((phase) => (0, react_jsx_runtime.jsx)(PhaseSection, { + phase, + navigable, + openSession, + t + }, phase.key)) + }) + }) + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `workflowRun` namespace dictionaries. */ + /** Dictionary namespace owned by this plugin. */ + const NS = "workflowRun"; + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "run.title": "{name}", + "run.members.one": "{count} 个�员", + "run.members.other": "{count} 个�员", + "run.empty": "没有�动�员", + "phase.unassigned": "未分阶段", + "phase.empty": "空阶段�", + "statusCount.running": "�行中 {count}", + "statusCount.completed": "已完� {count}", + "statusCount.failed": "失败 {count}", + "statusCount.cancelled": "已�消 {count}", + "statusCount.interrupted": "已中断 {count}", + "member.empty": "空�员�", + "member.open": "打开 {name}", + "status.running": "�行中", + "status.completed": "已完�", + "status.failed": "失败", + "status.cancelled": "已�消", + "status.interrupted": "已中断" + }; + /** English dictionary (same key set). */ + const en = { + "run.title": "{name}", + "run.members.one": "{count} member", + "run.members.other": "{count} members", + "run.empty": "No members started", + "phase.unassigned": "Unphased", + "phase.empty": "Empty phase name", + "statusCount.running": "Running {count}", + "statusCount.completed": "Completed {count}", + "statusCount.failed": "Failed {count}", + "statusCount.cancelled": "Cancelled {count}", + "statusCount.interrupted": "Interrupted {count}", + "member.empty": "Empty member name", + "member.open": "Open {name}", + "status.running": "Running", + "status.completed": "Completed", + "status.failed": "Failed", + "status.cancelled": "Cancelled", + "status.interrupted": "Interrupted" + }; + //#endregion + //#region lib/types/client/workflow-definition.js + /** + * Build a collision-free phase key preserving absent versus empty identity. + * @param phase - exact phase string, or null for an omitted field. + * @returns the stable renderer key for that phase identity. + */ + function workflowPhaseKey(phase) { + return phase === null ? "missing" : `value:${phase.length}:${phase}`; + } + function statusFromStopReason(stopReason) { + switch (stopReason) { + case "completed": return "completed"; + case "cancelled": return "cancelled"; + case "error": return "failed"; + /* v8 ignore next -- WorkflowStopReason is closed and every variant is handled above. */ + default: return stopReason; + } + } + function statusFromOutcome(outcome) { + switch (outcome) { + case "completed": return "completed"; + case "cancelled": return "cancelled"; + case "failed": return "failed"; + /* v8 ignore next -- WorkflowAgentOutcome is closed and every variant is handled above. */ + default: return outcome; + } + } + function locationClosed(location) { + if (location.kind === "step") return location.step.status === "closed" || location.turn.status === "closed"; + return location.kind === "turn" && location.turn.status === "closed"; + } + function projectWorkflow(context, location) { + const state = context.state; + const interrupted = state.stopReason === void 0 && locationClosed(location); + const phases = /* @__PURE__ */ new Map(); + for (const member of state.members) { + const phase = member.phase === void 0 ? null : member.phase; + const key = workflowPhaseKey(phase); + let group = phases.get(key); + if (group === void 0) { + group = { + phase, + members: [] + }; + phases.set(key, group); + } + group.members.push({ + seq: member.seq, + label: member.label, + childId: member.childId, + status: member.outcome === void 0 ? interrupted ? "interrupted" : "running" : statusFromOutcome(member.outcome) + }); + } + const projectedPhases = [...phases].map(([key, phase]) => ({ + key, + phase: phase.phase, + members: phase.members + })); + return { + name: state.name, + status: state.stopReason === void 0 ? interrupted ? "interrupted" : "running" : statusFromStopReason(state.stopReason), + phases: projectedPhases + }; + } + function updateAgentStart(state, data) { + const member = { + seq: data.seq, + label: data.label, + ...data.phase === void 0 ? {} : { phase: data.phase }, + childId: data.childId + }; + return { + ...state, + members: [...state.members, member] + }; + } + function updateAgentEnd(state, data) { + return { + ...state, + members: state.members.map((member) => member.seq === data.seq ? { + ...member, + outcome: data.outcome + } : member) + }; + } + /** Durable workflow event family folded into one keyed Chat node. */ + const workflowRunDefinition = { + kind: "workflow-run", + target: "chat", + match: (event) => { + if (event.type === "tool-workflow/run-start") return { + id: String(event.data.runId), + role: "start" + }; + if (event.type === "tool-workflow/agent-start" || event.type === "tool-workflow/agent-end" || event.type === "tool-workflow/run-end") return { + id: String(event.data.runId), + role: "update" + }; + return null; + }, + start: (_context, match) => { + if (match.event.type !== "tool-workflow/run-start") throw new Error("workflow-run start requires tool-workflow/run-start"); + return { + name: match.event.data.name, + members: [] + }; + }, + update: (context, match) => { + if (match.event.type === "tool-workflow/agent-start") return updateAgentStart(context.state, match.event.data); + if (match.event.type === "tool-workflow/agent-end") return updateAgentEnd(context.state, match.event.data); + if (match.event.type === "tool-workflow/run-end") return { + ...context.state, + stopReason: match.event.data.stopReason + }; + return context.state; + }, + buildViewNode: (context) => { + if (context.start === void 0) return null; + const data = projectWorkflow(context, context.start.location); + return { + key: context.key, + kind: "workflow-run", + id: context.id, + target: "chat", + anchorSeq: context.start.event.seq, + location: context.start.location, + visibility: "visible", + data + }; + } + }; + //#endregion + //#region lib/types/client/index.js + /** Browser plugin for durable workflow-run Conversation Nodes. */ + /** Required services for Definition, keyed renderer, navigation, and copy. */ + const inject = [ + "conversationEvents", + "slots", + "sessions", + "locale" + ]; + /** Register the workflow Definition, dictionary, and keyed Chat renderer. */ + function apply(ctx) { + ctx.conversationEvents.register(workflowRunDefinition); + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-workflow-run: dictionaries"); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "workflow-run", + locale: NS, + inject: () => ({ openSession: (id) => { + ctx.sessions.open(id); + } }) + }, WorkflowRunPanel)); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000012 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000012 new file mode 100644 index 0000000..4ba85c4 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000012 @@ -0,0 +1,373 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-deliverables", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region lib/types/client/turn-deliverables.js + /** + * Paths a call view reports having created or changed, by render intent rather + * than tool name: a diff card, or a generic card whose kind is `edit` (the + * shape `str_replace_editor`'s insert presents). Every other card produces + * nothing to open — a read looked, a delete removed, a terminal ran. Only + * root call views enter this Turn accumulator; nested Code Mode dispatches + * preserve the pre-assembly behavior and do not contribute independently. + */ + function producedPaths(view) { + if (view === null) return []; + if (view.card === "diff") return (view.locations ?? []).map((location) => location.path); + if (view.card === "generic" && view.kind === "edit") return (view.locations ?? []).map((location) => location.path); + return []; + } + /** + * Files produced by one Turn data value. + * + * The source is the mutation tools' own follow-along `locations`, not the + * closing prose: a produced file must be listed whether or not the model + * remembered to name it. A mutation is recognized by render intent, not by + * tool name — a diff card, or a generic card whose `kind` is `edit` (the shape + * `str_replace_editor`'s insert presents) — so a new mutation tool joins by + * declaring what it does. Reads contribute nothing (looking at a file does not + * produce it), and neither do deletes (there is nothing left to open) or + * failed calls. Paths keep first-seen order and appear once, so a file written + * and then edited in the same turn is one entry. + * + * The Conversation Location index owns turn membership before this function + * runs, so paths cannot spill across turns and this derivation does not infer + * boundaries from neighboring presentation Nodes. + * @param data - engine-published Deliverables data for one Turn. + * @param seq - closing Assistant seq; later Tool settlements are excluded. + * @returns Produced paths in first-seen order; empty when the turn wrote nothing. + */ + function producedForClosing(data, seq = Number.POSITIVE_INFINITY) { + if (data === void 0) return []; + const paths = []; + const seen = /* @__PURE__ */ new Set(); + for (const produced of data.produced) { + if (produced.seq > seq || seen.has(produced.path)) continue; + seen.add(produced.path); + paths.push(produced.path); + } + return paths; + } + /** + * Claim the turn-tail chain only when its closing turn produced files. + * @param owner - Turn-tail owner currency for the closing assistant. + * @returns Produced paths as the component's match, or null to decline before mount. + */ + function selectProducedFiles(owner) { + const paths = producedForClosing(owner.turn.data.get("deliverables"), owner.seq); + return paths.length === 0 ? null : paths; + } + /** Turn-local successful mutation accumulator; it publishes no view Node. */ + const deliverablesDefinition = { + kind: "deliverables", + match: (event) => { + if (event.type === "turn/start") return { + id: String(event.data.turn), + role: "start" + }; + if (event.type === "tool/call") return { + id: String(event.data.turn), + role: "update" + }; + if (event.type === "tool/result" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event)) return { + id: String(event.data.turn), + role: "update" + }; + return null; + }, + start: (_context, match) => { + if (match.event.type !== "turn/start") throw new Error("deliverables start requires turn/start"); + return { + turn: match.event.data.turn, + calls: /* @__PURE__ */ new Map(), + produced: [] + }; + }, + update: (context, match) => { + if (match.event.type === "tool/call") { + const calls = new Map(context.state.calls); + calls.set(String(match.event.data.callId), match.view?.for === "call" ? match.view.view : null); + return { + ...context.state, + calls + }; + } + if (match.event.type !== "tool/result") return context.state; + if (match.event.data.message.content[0].isError === true) return context.state; + const callId = String(match.event.data.message.source.callId); + const additions = producedPaths(context.state.calls.get(callId) ?? null).map((path) => ({ + seq: match.event.seq, + path + })); + return additions.length === 0 ? context.state : { + ...context.state, + produced: [...context.state.produced, ...additions] + }; + }, + buildLocationData: (context, scope) => scope !== "turn" || context.state === void 0 ? null : { + kind: "turn", + turn: context.state.turn, + key: "deliverables", + value: { produced: context.state.produced } + } + }; + /** + * Trailing path segment, the part that identifies the file at a glance. + * @param path - Slash- or backslash-separated path. + * @returns The final segment, or the whole string when separator-free. + */ + function basename(path) { + const at = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\")); + return at === -1 ? path : path.slice(at + 1); + } + /** + * File-mention vocabulary over one turn's produced paths, for the closing + * message's prose: an inline-code token opens the file it names. A token + * resolves by exact path, or by being exactly the basename of exactly one + * produced path — a basename two paths share stays inert rather than + * guessing, so a mention link can never open the wrong file or 404. + * @param paths - The turn's produced paths (tool order, already deduped). + * @param openFile - The chat view's file opener. + * @param label - Localizes the accessible open-label for a resolved path. + * @returns The resolver MarkdownText consumes; the full path rides `title`, + * the same disambiguator the row's chips carry. + */ + function producedFileMentions(paths, openFile, label) { + return { resolve(value) { + const path = paths.includes(value) ? value : onlyPathWithBasename(paths, value); + if (path === void 0) return void 0; + return { + open: () => { + openFile(path); + }, + label: label(path), + title: path + }; + } }; + } + /** The single produced path whose basename is exactly `value`, else undefined. */ + function onlyPathWithBasename(paths, value) { + const matches = paths.filter((path) => basename(path) === value); + return matches.length === 1 ? matches[0] : void 0; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-deliverables/src/client/ProducedFiles.module.css.mjs + const css = ".P4kPIW_root{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:6px 8px;margin-top:16px;font-size:13px;line-height:22px;display:grid;position:relative}.P4kPIW_label{color:var(--dsw-alias-label-tertiary);grid-area:1/1}.P4kPIW_row{flex-wrap:nowrap;grid-area:1/2;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.P4kPIW_file{text-overflow:ellipsis;white-space:nowrap;background:var(--dsw-alias-interactive-bg-hover);max-width:320px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;border:none;border-radius:6px;flex:none;margin:0;padding:0 8px;overflow:hidden}.P4kPIW_file:hover{color:var(--dsw-alias-label-primary);text-decoration:underline}.P4kPIW_file:focus-visible,.P4kPIW_showFolder:focus-visible{box-shadow:inset 0 0 0 2px var(--dsw-alias-border-l3);outline:none}.P4kPIW_more{white-space:nowrap;color:var(--dsw-alias-label-tertiary);flex:none}.P4kPIW_showFolder{color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;grid-area:2/2;justify-self:start;margin:0;padding:0 2px;line-height:20px}.P4kPIW_showFolder:hover{color:var(--dsw-alias-label-secondary);text-decoration:underline}.P4kPIW_measure{visibility:hidden;pointer-events:none;contain:strict;width:0;height:0;position:absolute;overflow:hidden}.P4kPIW_probe{width:max-content;position:absolute;inset:0 auto auto 0}"; + const tagId = "@deepseek-ai/dsh-client-ui-deliverables/ProducedFiles.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-deliverables"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var ProducedFiles_module_css_default = { + "showFolder": "P4kPIW_showFolder", + "file": "P4kPIW_file", + "root": "P4kPIW_root", + "measure": "P4kPIW_measure", + "label": "P4kPIW_label", + "probe": "P4kPIW_probe", + "row": "P4kPIW_row", + "more": "P4kPIW_more" + }; + //#endregion + //#region lib/types/client/ProducedFiles.js + /** At most six chips compete for the one-line summary; every other path stays counted. */ + const SHOWN_LIMIT = 6; + /** + * Select the largest prefix whose measured chips and exact remainder fit. + * @param available - usable width of the one-line file lane. + * @param gap - computed flex gap between adjacent visible items. + * @param chipWidths - measured widths for the candidate file chips. + * @param moreWidthsByShown - exact localized remainder width for each shown count. + * @returns Number of leading chips to render. + */ + function fitProducedFiles(available, gap, chipWidths, moreWidthsByShown) { + if (available <= 0) return chipWidths.length; + const prefix = [0]; + let prefixWidth = 0; + for (const width of chipWidths) { + prefixWidth += width; + prefix.push(prefixWidth); + } + let largestFit = 0; + for (const [shown, width] of prefix.entries()) { + const more = moreWidthsByShown[shown]; + const items = shown + (more === void 0 ? 0 : 1); + if (width + (more ?? 0) + Math.max(0, items - 1) * gap <= available) largestFit = shown; + } + return largestFit; + } + function moreLabel(t, count) { + return count === 1 ? t("produced.moreOne") : t("produced.more", { count: String(count) }); + } + /** + * Render one turn's produced files as openable chips. + * @param props - selector-matched paths, the chat view's file opener, and the locale seat. + * @returns The produced-files row. + */ + function ProducedFiles({ matched: paths, openFile, isLoopback, useHostDescription, t }) { + const hostCanOpenPath = useHostDescription((description) => description?.canOpenPath === true); + const canOpenPath = isLoopback && hostCanOpenPath; + const limit = Math.min(paths.length, SHOWN_LIMIT); + const [shownCount, setShownCount] = (0, react.useState)(limit); + const rowRef = (0, react.useRef)(null); + const chipProbes = (0, react.useRef)([]); + const moreProbe = (0, react.useRef)(null); + (0, react.useLayoutEffect)(() => { + const row = rowRef.current; + const remainderProbe = moreProbe.current; + /* v8 ignore next -- React attaches both refs before the layout effect runs. */ + if (row === null || remainderProbe === null) return; + const measure = () => { + const styles = getComputedStyle(row); + const gap = Number.parseFloat(styles.columnGap || styles.gap) || 0; + const chips = chipProbes.current.slice(0, limit).map((probe) => probe.getBoundingClientRect().width); + const more = Array.from({ length: limit + 1 }, (_, candidate) => { + if (paths.length === candidate) return void 0; + remainderProbe.textContent = moreLabel(t, paths.length - candidate); + return remainderProbe.getBoundingClientRect().width; + }); + setShownCount(fitProducedFiles(row.clientWidth, gap, chips, more)); + }; + measure(); + if (typeof ResizeObserver === "undefined") return; + const observer = new ResizeObserver(measure); + observer.observe(row); + for (const probe of [...chipProbes.current, moreProbe.current]) if (probe !== null) observer.observe(probe); + return () => { + observer.disconnect(); + }; + }, [ + limit, + paths, + t + ]); + const visibleCount = Math.min(shownCount, limit); + const shown = paths.slice(0, visibleCount); + const hidden = paths.length - shown.length; + return (0, react_jsx_runtime.jsxs)("div", { + className: ProducedFiles_module_css_default.root, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ProducedFiles_module_css_default.label, + children: t("produced.label") + }), + (0, react_jsx_runtime.jsxs)("div", { + ref: rowRef, + className: ProducedFiles_module_css_default.row, + "data-produced-files-row": true, + children: [shown.map((path) => (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ProducedFiles_module_css_default.file, + title: path, + "aria-label": t("produced.open", { name: path }), + onClick: () => { + openFile(path); + }, + children: basename(path) + }, path)), hidden > 0 && (0, react_jsx_runtime.jsx)("span", { + className: ProducedFiles_module_css_default.more, + children: moreLabel(t, hidden) + })] + }), + hidden > 0 && canOpenPath && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ProducedFiles_module_css_default.showFolder, + onClick: () => { + openFile("."); + }, + children: t("produced.showInFolder") + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ProducedFiles_module_css_default.measure, + "aria-hidden": "true", + children: [paths.slice(0, limit).map((path, index) => (0, react_jsx_runtime.jsx)("button", { + ref: (node) => { + chipProbes.current[index] = node; + }, + type: "button", + tabIndex: -1, + className: `${ProducedFiles_module_css_default.file} ${ProducedFiles_module_css_default.probe}`, + children: basename(path) + }, path)), (0, react_jsx_runtime.jsx)("span", { + ref: moreProbe, + className: `${ProducedFiles_module_css_default.more} ${ProducedFiles_module_css_default.probe}` + })] + }) + ] + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `deliverables` namespace dictionaries. */ + /** Dictionary namespace owned by this plugin. */ + const NS = "deliverables"; + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "produced.label": "产物", + "produced.moreOne": "+ 1 个文件", + "produced.more": "+ {count} 个文件", + "produced.open": "打开 {name}", + "produced.showInFolder": "在文件夹中显示" + }; + /** English dictionary (same key set). */ + const en = { + "produced.label": "Produced", + "produced.moreOne": "+ 1 file", + "produced.more": "+ {count} files", + "produced.open": "Open {name}", + "produced.showInFolder": "Show in folder" + }; + //#endregion + //#region lib/types/client/index.js + /** Required services for the tail-slot registration and its dictionaries. */ + const inject = [ + "slots", + "locale", + "conversationEvents", + "connection" + ]; + /** + * Client plugin body: register the dictionaries and the turn-tail entry. + * @param ctx - client root context. + */ + function apply(ctx) { + const connection = ctx.get("connection"); + ctx.conversationEvents.register(deliverablesDefinition); + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-deliverables: dictionaries"); + ctx.slots.inject("conversation.chat.turnTail", () => ctx.slots.register({ + name: "conversation.chat.turnTail", + select: selectProducedFiles, + locale: NS, + inject: () => ({ + isLoopback: connection.isLoopback, + hooks: { hostDescription: connection.hostDescription } + }) + }, ProducedFiles)); + const t = ctx.locale.bind(NS); + ctx.provide("chatFileMentions", { forClosing(owner) { + const paths = selectProducedFiles(owner); + if (paths === null) return void 0; + return producedFileMentions(paths, owner.openFile, (path) => t("produced.open", { name: path })); + } }); + } + //#endregion + exports.ProducedFiles = ProducedFiles; + exports.apply = apply; + exports.inject = inject; + exports.producedForClosing = producedForClosing; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000013 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000013 new file mode 100644 index 0000000..00c029f --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000013 @@ -0,0 +1,1630 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-tool", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region lib/types/client/tool/models/tool-call-model.js + /** Figma row titles per variant (design literals, not translatable copy). */ + const VARIANT_TITLES = { + search: "Search", + read: "Read", + bash: "Bash", + write: "Write", + edit: "Edit", + code: "Code", + others: "Tool call" + }; + /** + * Known tool name -> variant. + * + * `cordis_define` is deliberately absent: ui-cordis registers a keyed + * `tool.call.toolview` entry for it, and a keyed hit REPLACES the generic row + * (this table is only reached through GenericToolCard, the dispatch fallback in + * ToolCallTree). An entry here would be unreachable, and a second title for the + * same call would be a second answer to a question the card already owns. + */ + const TOOL_VARIANTS = { + bash: "bash", + pwsh: "bash", + read: "read", + web_fetch: "read", + web_search: "search", + grep: "search", + glob: "search", + write: "write", + edit: "edit", + run_code: "code", + cordis_package_inspect: "read", + cordis_runtime_inspect: "read", + cordis_run: "others", + cordis_stop: "others", + cordis_undefine: "others" + }; + /** Tool-owned titles that refine a generic row variant without replacing it. */ + const TOOL_TITLES = { + cordis_package_inspect: "Inspect", + cordis_runtime_inspect: "Inspect", + cordis_run: "Run Cordis Plugin", + cordis_stop: "Stop Cordis Plugin", + cordis_undefine: "Remove Cordis Plugin", + pwsh: "Pwsh" + }; + /** + * Classify a tool name into its row variant. + * @param toolName - wire tool name. + * @returns matching variant, others when unknown. + */ + function classifyTool(toolName) { + return TOOL_VARIANTS[toolName] ?? "others"; + } + /** + * Flatten a settled result's content blocks to display text: text blocks + * verbatim, other block shapes as pretty JSON. Empty content on a failed call + * falls back to the structured error's `name: code` line. + * @param node - the settled result node. + * @returns the flattened result text (may be empty). + */ + function resultText(node) { + const parts = []; + for (const block of node.content) if (block.type === "text") parts.push(block.text); + else parts.push(JSON.stringify(block, null, 2)); + if (parts.length === 0 && node.error !== void 0) parts.push(`${node.error.name}: ${node.error.code}`); + return parts.join("\n"); + } + function parseArgs(argsRaw) { + try { + return JSON.parse(argsRaw); + } catch { + return; + } + } + function firstLine(text) { + const nl = text.indexOf("\n"); + return nl === -1 ? text : text.slice(0, nl); + } + function pickString(args, keys) { + for (const key of keys) { + const v = args[key]; + if (typeof v === "string" && v !== "") return v; + } + } + /** Summary key preference per variant (args-derived; result-derived summaries are a ledger item). */ + const SUMMARY_KEYS = { + bash: ["description", "command"], + read: [ + "path", + "file_path", + "url" + ], + search: [ + "query", + "pattern", + "url" + ], + write: ["path", "file_path"], + edit: ["path", "file_path"], + code: ["description"], + others: [] + }; + /** + * Strip the workspace root from a workspace-rooted absolute path (display only). + * @param text - the path to shorten. + * @param cwd - session workspace root; absent or empty leaves the path unchanged. + * @returns the path relative to the workspace root, or unchanged when it is not rooted there. + */ + function relativizeToCwd(text, cwd) { + if (cwd === void 0 || cwd === "") return text; + const root = cwd.replace(/[/\\]+$/, ""); + if (text.startsWith(`${root}/`) || text.startsWith(`${root}\\`)) return text.slice(root.length + 1); + return text; + } + function deriveSummary(variant, argsRaw) { + const parsed = parseArgs(argsRaw); + if (typeof parsed !== "object" || parsed === null) return firstLine(argsRaw); + const args = parsed; + const picked = pickString(args, SUMMARY_KEYS[variant]); + if (picked !== void 0) return firstLine(picked); + for (const v of Object.values(args)) if (typeof v === "string" && v !== "") return firstLine(v); + return firstLine(argsRaw); + } + /** Path keys only — never `url` (web_fetch lands on the read variant). */ + const FILE_PATH_KEYS = ["path", "file_path"]; + /** File-tool variants whose summary may be an openable workspace path. */ + const FILE_PATH_VARIANTS = new Set([ + "read", + "write", + "edit" + ]); + function deriveFilePath(variant, argsRaw) { + if (!FILE_PATH_VARIANTS.has(variant)) return void 0; + const parsed = parseArgs(argsRaw); + if (typeof parsed !== "object" || parsed === null) return void 0; + const picked = pickString(parsed, FILE_PATH_KEYS); + return picked === void 0 ? void 0 : firstLine(picked); + } + function deriveBody(variant, argsRaw) { + if (argsRaw === "") return null; + const parsed = parseArgs(argsRaw); + if (parsed === void 0) return argsRaw; + if (variant === "code" && typeof parsed === "object" && parsed !== null) { + const code = parsed.code; + if (typeof code === "string" && code !== "") return code; + } + return JSON.stringify(parsed, null, 2); + } + /** + * Derive the full row model from a frozen call slice. + * @param toolName - wire tool name (dispatch-supplied; survives windowless results). + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @param cwd - session workspace root; workspace-rooted path summaries display relative to it. + * @returns the row model. + */ + function toolRowModel(toolName, block, cwd) { + const variant = classifyTool(toolName); + const done = "kind" in block; + const argsRaw = (done ? block.call?.argsRaw : block.argsRaw) ?? ""; + const state = !done ? "running" : block.error?.code === "interrupted" ? "stopped" : block.isError ? "error" : "ok"; + const base = argsRaw === "" ? block.callId : relativizeToCwd(deriveSummary(variant, argsRaw), cwd); + const toolTitle = TOOL_TITLES[toolName]; + const summary = variant === "others" && toolName !== "" && toolTitle === void 0 ? `${toolName} · ${base}` : base; + const output = done ? resultText(block) || null : null; + const errorSummary = state === "error" && output !== null ? firstLine(output) : null; + return { + variant, + title: toolTitle ?? VARIANT_TITLES[variant], + summary, + filePath: deriveFilePath(variant, argsRaw), + body: deriveBody(variant, argsRaw), + output, + errorSummary, + state + }; + } + //#endregion + //#region lib/types/client/tool/models/read-card-model.js + /** + * Derive the read-card props for a tool call, or null when this call is not a + * read card and belongs on the generic path. + * + * The read card is result-side only, so only a settled call whose result view + * declares `card:'read'` produces one. Every other case is null — the + * documented generic-card default: + * + * - A running call: it has no result view yet, and a read carries no content at + * call time. + * - A settled call whose result view is not a read card — including a `card` + * value this UI version does not know, which arrives over the wire and cannot + * be trusted to be one of the compiled variants, and the read tool's own + * generic fallback for an error result or a non-envelope body. + * + * The label is the read view's `title` when the tool supplied one (the + * presentation contract's replacement-title rule), otherwise the file path + * relativized to the session workspace so a workspace-rooted absolute path + * displays the same short form the row summary shows. + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @param sessionCwd - the session workspace root; a workspace-rooted absolute + * path label displays relative to it. Absent leaves the path as authored. + * @returns the read-card props, or null for the generic path. + */ + function readCardModel(block, sessionCwd) { + if (!("kind" in block)) return null; + const result = block.resultView?.card === "read" ? block.resultView : null; + if (result === null) return null; + const lines = result.lines.map((line) => ({ + number: line.number, + text: line.text + })); + return { + label: result.title ?? relativizeToCwd(result.path, sessionCwd), + lines, + totalLines: result.totalLines, + lang: result.lang + }; + } + //#endregion + //#region lib/types/client/tool/models/diff-card-model.js + /** + * Narrow a wire `card:'diff'` view's `diffs` to well-formed hunks. The event + * view crosses the wire and `toolEventViewSchema` validates only the `card` + * string, so a version mismatch or an anomalous plugin can deliver a `diff` card + * whose `diffs` is absent, not an array, or carries malformed hunks. Returning + * null for any of those routes the block to the generic path instead of letting + * DiffBlock's `for...of`/`split` throw and crash the row or the details panel. + * @param diffs - the view's `diffs` field, unverified. + * @returns the validated hunks, or null when the payload is not usable. + */ + function narrowDiffs(diffs) { + if (!Array.isArray(diffs) || diffs.length === 0) return null; + const out = []; + for (const hunk of diffs) { + if (typeof hunk !== "object" || hunk === null) return null; + const { path, oldText, newText } = hunk; + if (typeof path !== "string") return null; + if (oldText !== null && typeof oldText !== "string") return null; + if (typeof newText !== "string") return null; + out.push({ + path, + oldText, + newText + }); + } + return out; + } + /** + * Derive the diff-card props for a tool call, or null when this call is not a + * diff card and belongs on the generic path. + * + * The result side is authoritative once the call settles: the write/edit tools + * return the applied contextual hunks there (an edit's real before/after, a + * create's whole-file diff), which replace the call-time diff derived from the + * arguments alone. While the call is still running only the call side exists, + * so a running write/edit shows its intended change. Null is the documented + * generic-card default and covers every non-diff card — including a `card` + * value this UI version does not know, which arrives over the wire and cannot + * be trusted to be one of the compiled variants — and a settled call whose + * result view is generic (how write/edit keep their execution errors on the + * generic path). + * + * This derivation consumes only `diffs`; the render intent's `title` field is + * deliberately dropped. The row supplies its own title (`Edit`/`Write · path` + * from the args), which outranks the view's `title`. A tool that names its own + * diff header therefore does not surface that text on the Web row. + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @returns the diff-card props, or null for the generic path. + */ + function diffCardModel(block) { + if (!("kind" in block)) { + const call = block.callView?.card === "diff" ? block.callView : null; + const diffs = call === null ? null : narrowDiffs(call.diffs); + return diffs === null ? null : { card: { diffs } }; + } + const result = block.resultView?.card === "diff" ? block.resultView : null; + const diffs = result === null ? null : narrowDiffs(result.diffs); + return diffs === null ? null : { card: { diffs } }; + } + //#endregion + //#region lib/types/client/tool/models/search-card-model.js + /** + * Whether every file group in a matches view is structurally valid: the wire + * frame carries `shape` and `card` as strings the host schema checks, but not the + * grouped `files` fields, so a version mismatch or loose producer could deliver + * `shape: 'matches'` with a missing or malformed `files`. Rendering that would + * crash {@link SearchBlock} at `.reduce`/`.map`; invalid fields select the + * generic path instead. + * @param files - the candidate `files` field off the untrusted result view. + * @returns whether `files` is a valid {@link SearchFileGroup} array. + */ + function isValidFiles(files) { + return Array.isArray(files) && files.every((file) => typeof file === "object" && file !== null && typeof file.path === "string" && Array.isArray(file.matches) && file.matches.every((match) => typeof match === "object" && match !== null && typeof match.lineNumber === "number" && typeof match.line === "string")); + } + /** + * Flatten a settled tool result's content blocks to their text, joined by + * newlines. The search view carries no result text — a UI without a card falls + * back to the raw `tool/result` content — so the truncation recovery footer is + * read from the block's own content here. Non-text blocks (a search result + * carries none) are skipped. + * @param content - the result node's content blocks. + * @returns the joined text, or undefined when empty. + */ + function flattenContent(content) { + const text = content.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.text).join("\n"); + return text === "" ? void 0 : text; + } + /** + * Derive the search-card props for a tool call, or null when this call is not a + * search card and belongs on the generic path. + * + * Only the result side matters: the search card carries no call-time state, so + * a still-running call (no result view) is null, as is a settled call whose + * result view is not a search card — including a `card` value this UI version + * does not know, which arrives over the wire and cannot be trusted to be one of + * the compiled variants, a `card: 'search'` view whose `shape` is neither + * `matches` nor `paths` (equally untrusted wire data), and a generic result a + * `grep`/`glob` failure or nested `run_code` dispatch produces (its text keeps + * the generic path). + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @returns the search-card props, or null for the generic path. + */ + function searchCardModel(block) { + if (!("kind" in block)) return null; + const result = block.resultView?.card === "search" ? block.resultView : null; + if (result === null) return null; + const common = { + truncated: result.truncated, + total: result.total + }; + const recovery = result.truncated ? flattenContent(block.content) : void 0; + if (result.shape === "matches") { + if (!isValidFiles(result.files)) return null; + return { + title: result.title, + recovery, + card: { + kind: "matches", + files: result.files, + ...common + } + }; + } + if (result.shape !== "paths") return null; + if (!Array.isArray(result.paths) || !result.paths.every((path) => typeof path === "string")) return null; + return { + title: result.title, + recovery, + card: { + kind: "paths", + paths: result.paths, + ...common + } + }; + } + //#endregion + //#region lib/types/client/tool/models/terminal-card-model.js + /** + * Pure derivation of the terminal-card props from a frozen call slice: the + * `card:'terminal'` render intent the shell tools declare arrives on the + * snapshot as `callView`/`resultView`, and this is the one place that turns + * that pair into what {@link TerminalBlock} draws. Both conversation render + * sites (the chat tool row's expanded body and the details panel's Output + * section) call this, so the command, cwd, output and exit status they show + * are derived once. + * @module + */ + /** + * Build the TerminalBlock display copy from the conversation locale seat — + * the one place the primitive's label surface pairs with this package's + * dictionary, shared by every terminal render site (chat row, bash row, + * details panel). + * @param t - the render site's conversation locale seat. + * @returns the full label set for {@link TerminalBlockProps}'s `labels`. + */ + function terminalBlockLabels(t) { + return { + signal: (signal) => t("terminal.signal", { signal }), + exitCode: (code) => t("terminal.exitCode", { code }), + running: t("terminal.running"), + failed: t("terminal.failed"), + done: t("terminal.done"), + copy: t("copy"), + copied: t("copied"), + noOutput: t("terminal.noOutput"), + collapseAria: t("terminal.collapseAria"), + collapse: t("collapse"), + expandAria: (hidden) => t("terminal.expandAria", { n: hidden }), + expand: (hidden) => t("terminal.expandRest", { n: hidden }) + }; + } + /** + * True when a settled terminal card reports a failing exit — a non-zero code + * or a terminating signal. The bash tool settles a failing command as a + * completed call (`isError` stays false: the exit status is result data), so + * this is the collapsed row's only failure signal; without it the red exit + * pill would be visible only after expanding the card. + * @param model - a derived terminal card. + * @returns whether the card's exit status is a failure. + */ + function terminalFailed(model) { + const { exitCode, signal, running } = model.card; + return running !== true && (exitCode !== void 0 && exitCode !== 0 || signal !== void 0); + } + /** + * Resolve a terminal view's working directory the way the render-intent + * contract assigns to the UI bridge: an absolute path is used as-is, a relative + * one joins under the session workspace, and an omitted one IS the session + * workspace. A pure presenter cannot see the session cwd, which is why this + * resolution belongs here rather than in the tool. Without a session cwd there + * is nothing to resolve against, so a relative path stays as authored and an + * omitted one stays absent (the prompt row then draws a bare `$`). + * @param viewCwd - the cwd the terminal call view carries, if any. + * @param sessionCwd - the session workspace root, if the caller knows it. + * @returns the working directory for the prompt label, or undefined. + */ + function resolveTerminalCwd(viewCwd, sessionCwd) { + if (viewCwd === void 0 || viewCwd === "") return sessionCwd; + if (sessionCwd === void 0 || sessionCwd === "") return normalizeSegments(viewCwd); + return normalizeSegments((0, _deepseek_ai_dsh_client_runtime_client.resolveWorkspacePath)(sessionCwd, viewCwd)); + } + /** + * Collapse `.` and `..` segments so the prompt label names the directory the + * command actually ran in. The bash executor resolves the workdir before + * running, so a joined `/w/app/..` must display as `w`, not as `..`. Separators + * are preserved as authored (a Windows path keeps its backslashes) because this + * value is only ever displayed; a `..` that would climb past the root is + * dropped, which is what a filesystem does with it. A UNC path's `server` and + * `share` are part of its root, not poppable segments: Windows cannot climb + * above a share, so `\\\\server\\share` with a `..` stays there. + * @param path - a joined or absolute path, possibly carrying `.`/`..` segments. + * @returns the same path with those segments resolved. + */ + function normalizeSegments(path) { + if (!/(?:^|[/\\])\.\.?(?:[/\\]|$)/.test(path)) return path; + const unc = /^[/\\]{2}([^/\\]+)[/\\]+([^/\\]+)/.exec(path); + if (unc !== null) { + const [matched, server, share] = unc; + const root = `\\\\${String(server)}\\${String(share)}`; + const rest = collapse(path.slice(matched.length), true); + return rest === "" ? root : `${root}\\${rest}`; + } + const separator = path.includes("\\") && !path.includes("/") ? "\\" : "/"; + const rooted = /^[/\\]/.test(path); + const drive = /^[A-Za-z]:/.exec(path)?.[0] ?? ""; + const body = collapse(path.slice(drive.length), rooted || drive !== "", separator); + const leading = rooted ? separator : ""; + return drive === "" ? `${leading}${body}` : `${drive}${rooted ? leading : separator}${body}`; + } + /** + * Collapse the `.`/`..` segments of a path body against a known root state. + * @param body - the path after any drive letter or UNC root. + * @param rooted - the body hangs off a root, so a `..` at its top is dropped + * the way a filesystem drops one; without a root the `..` is kept, since it + * stays meaningful against a cwd this function cannot see. + * @param separator - separator to rejoin with (default `/`). + * @returns the collapsed body, without leading or trailing separators. + */ + function collapse(body, rooted, separator = "/") { + const kept = []; + for (const segment of body.split(/[/\\]/)) { + if (segment === "" || segment === ".") continue; + if (segment === "..") { + if (kept.length > 0 && kept[kept.length - 1] !== "..") kept.pop(); + else if (!rooted) kept.push(segment); + continue; + } + kept.push(segment); + } + return kept.join(separator); + } + /** + * Derive the terminal-card props for a tool call, or null when this call is + * not a terminal card and belongs on the generic path. + * + * The call side supplies the command and its working directory; the result + * side supplies the captured output and exit status. Three cases produce + * null, all of them the documented generic-card default: + * + * - Neither side declares `card:'terminal'` — including a `card` value this + * UI version does not know, which arrives over the wire and therefore + * cannot be trusted to be one of the compiled variants. + * - A settled call whose result view is not a terminal card: the result + * presentation decides how the settled call renders, and the bash tool + * returns a generic fenced card for an execution error or a background + * start, whose text and error styling the generic path preserves. + * + * Window truncation can drop the call head from a settled result (see + * `ToolResultNode.call`/`callView` in dsh-client-runtime), leaving a terminal + * result with no call side. That still renders: the command falls back to the + * result view's replacement title, then to an empty command (the prompt line + * draws bare), and the prompt shows no cwd. + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @param sessionCwd - the session workspace root, which resolves an omitted or + * relative view cwd (see {@link resolveTerminalCwd}); absent leaves both unresolved. + * @returns the terminal-card props, or null for the generic path. + */ + function terminalCardModel(block, sessionCwd) { + const call = block.callView?.card === "terminal" ? block.callView : null; + if (!("kind" in block)) return call === null ? null : { + description: call.description, + card: { + command: call.title, + cwd: resolveTerminalCwd(call.cwd, sessionCwd), + output: void 0, + exitCode: void 0, + signal: void 0, + running: true + } + }; + const result = block.resultView?.card === "terminal" ? block.resultView : null; + if (result === null) return null; + return { + description: call?.description, + card: { + command: result.title ?? call?.title ?? "", + cwd: call === null ? void 0 : resolveTerminalCwd(call.cwd, sessionCwd), + output: result.output, + exitCode: result.exitCode, + signal: result.signal, + running: false + } + }; + } + //#endregion + //#region lib/types/client/tool/models/web-card-model.js + /** + * Derive the web-card props for a tool call, or null when this call is not a + * web card and belongs on the generic path. + * + * The result side supplies the whole card: the sources and answer for a + * `search`, the URL and status for a `fetch`. Cases producing null, all of + * them the documented generic-card default: + * + * - A running call (no `resultView` yet): the web tools keep a generic pending + * card, so nothing web-shaped exists until the call settles. + * - A settled call whose result view is not a web card — including a `card` + * value this UI version does not know, which arrives over the wire and so + * cannot be trusted to be one of the compiled variants, and a generic result + * view (a web tool's error path returns the generic card, whose text the + * generic path preserves). + * - A web card whose `kind` this UI version does not know (a newer host's + * value): the wire cannot be trusted to be `search` or `fetch`, so it takes + * the generic path rather than rendering as a malformed fetch. + * @param block - RunningToolCall or ToolResultNode off the snapshot caches. + * @returns the web-card props, or null for the generic path. + */ + function webCardModel(block) { + if (!("kind" in block)) return null; + const result = block.resultView; + if (result?.card !== "web") return null; + if (result.kind === "search") return { + kind: "search", + answer: result.answer, + sources: result.sources.map((source) => ({ + url: source.url, + title: source.title, + snippet: source.snippet, + publishedAt: source.publishedAt + })), + truncated: result.truncated + }; + if (result.kind === "fetch") return { + kind: "fetch", + url: result.url, + statusCode: result.statusCode, + truncated: result.truncated + }; + return null; + } + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css.mjs + const css$3 = ".o3BgMG_root{flex-direction:column;display:flex}.o3BgMG_row{position:relative;overflow:hidden}.o3BgMG_root[data-state=running] .o3BgMG_row:after{content:\"\";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite o3BgMG_dsh-tool-row-sweep;position:absolute;top:0;bottom:0;left:0}@keyframes o3BgMG_dsh-tool-row-sweep{0%{left:-300px}90%,to{left:100%}}.o3BgMG_leading{flex-shrink:0}.o3BgMG_root[data-tool^=cordis_] .o3BgMG_leading,.o3BgMG_root[data-tool^=cordis_] .o3BgMG_title{color:var(--dsw-alias-state-business-primary)}.o3BgMG_root[data-tool^=cordis_] .o3BgMG_title{font-weight:500}.o3BgMG_root[data-tool^=cordis_] .o3BgMG_sep{background:var(--dsw-alias-state-business-primary)}.o3BgMG_chevron{color:var(--dsw-alias-label-secondary)}.o3BgMG_title{font-weight:400}.o3BgMG_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.o3BgMG_summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;font-size:14px;line-height:24px;overflow:hidden}.o3BgMG_summarySuffix{white-space:nowrap;color:var(--dsw-alias-label-tertiary);flex:none;margin-left:4px;font-size:14px;line-height:24px}.o3BgMG_fileLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:inherit;text-align:left;color:var(--dsw-alias-label-secondary);text-decoration:underline;text-decoration-color:var(--dsw-alias-label-quaternary);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;flex:auto;margin:0;padding:0;font-size:14px;line-height:24px;overflow:hidden}.o3BgMG_fileLink:hover{color:var(--dsw-alias-label-primary);text-decoration-color:currentColor}.o3BgMG_errorSummary{color:var(--dsw-alias-state-error-primary)}.o3BgMG_bodyWrap{flex-direction:column;display:flex}.o3BgMG_inspectButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin:4px 0 2px 4px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .1s;display:inline-flex}.o3BgMG_root:hover .o3BgMG_inspectButton,.o3BgMG_inspectButton:focus-visible{opacity:1}.o3BgMG_inspectButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.o3BgMG_bodyScroll{max-height:260px;overflow-y:auto}.o3BgMG_ioCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);font:var(--dsw-font-markdown-code-block-small);border-radius:12px;flex-direction:column;margin:4px 0 4px 4px;display:flex}.o3BgMG_ioSection{grid-template-columns:max-content 1fr;align-items:baseline;column-gap:14px;max-height:150px;padding:12px 16px;display:grid;overflow-y:auto}.o3BgMG_ioSection::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000;border-radius:6px}.o3BgMG_ioSection::-webkit-scrollbar-track{margin:6px 0}.o3BgMG_ioLabel{color:var(--dsw-alias-label-caption);align-self:start;position:sticky;top:0}.o3BgMG_ioDivider{background:var(--dsw-alias-border-l2);flex:none;height:1px}.o3BgMG_ioText{white-space:pre-wrap;word-break:break-word;min-width:0;color:var(--dsw-alias-label-secondary)}.o3BgMG_ioText[data-error]{color:var(--dsw-alias-state-error-primary)}.o3BgMG_codeBody,.o3BgMG_terminalBody,.o3BgMG_diffBody,.o3BgMG_readBody,.o3BgMG_searchBody,.o3BgMG_webBody{margin:4px 0 4px 4px}.o3BgMG_searchRecovery{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);margin:4px 0 4px 4px}.o3BgMG_codeBody{--dsl-code-block-content-font:var(--dsw-font-markdown-code-block-small)}.o3BgMG_terminalBody{--dsl-terminal-font:var(--dsw-font-markdown-code-block-small);--dsl-terminal-line-height:18px;--dsl-terminal-output-max-height:224px;border:1px solid var(--dsw-alias-border-l1)}.o3BgMG_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-tool/ToolRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-tool"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var ToolRow_module_css_default = { + "chevron": "o3BgMG_chevron", + "bodyScroll": "o3BgMG_bodyScroll", + "row": "o3BgMG_row", + "inspectButton": "o3BgMG_inspectButton", + "ioSection": "o3BgMG_ioSection", + "ioText": "o3BgMG_ioText", + "readBody": "o3BgMG_readBody", + "ioCard": "o3BgMG_ioCard", + "searchRecovery": "o3BgMG_searchRecovery", + "visuallyHidden": "o3BgMG_visuallyHidden", + "root": "o3BgMG_root", + "searchBody": "o3BgMG_searchBody", + "webBody": "o3BgMG_webBody", + "leading": "o3BgMG_leading", + "dsh-tool-row-sweep": "o3BgMG_dsh-tool-row-sweep", + "terminalBody": "o3BgMG_terminalBody", + "codeBody": "o3BgMG_codeBody", + "diffBody": "o3BgMG_diffBody", + "fileLink": "o3BgMG_fileLink", + "summary": "o3BgMG_summary", + "title": "o3BgMG_title", + "errorSummary": "o3BgMG_errorSummary", + "sep": "o3BgMG_sep", + "summarySuffix": "o3BgMG_summarySuffix", + "ioLabel": "o3BgMG_ioLabel", + "ioDivider": "o3BgMG_ioDivider", + "bodyWrap": "o3BgMG_bodyWrap" + }; + //#endregion + //#region lib/types/client/tool/components/ToolRow.js + /** Leading-slot state substitution: the tool icon yields to the terminal state + * semantic (error = red, interrupted = amber halo). Running keeps the icon — + * the row sweep (CSS on data-state) carries the in-flight signal. */ + function leadingFor$1(state, icon) { + switch (state) { + case "error": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }); + case "stopped": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "warning" }); + default: return icon; + } + } + /** Visually hidden run-state label: the StateDot and the CSS sweep are both + * aria-hidden / colour-only, so assistive technology needs this text to know a + * row is running, failed, or interrupted. null in the ok state (the icon and + * summary already describe a settled row). */ + function stateStatus$1(state, t) { + switch (state) { + case "running": return t("row.running"); + case "error": return t("row.failed"); + case "stopped": return t("row.stopped"); + default: return null; + } + } + function ToolRow({ t, variant, toolName, icon, title, summary, summarySuffix, body, output, errorSummary, terminal, diff, read, search, web, state, filePath, onOpenFile, inspect }) { + const [expanded, setExpanded] = (0, react.useState)(false); + const terminalBody = terminal ?? null; + const diffBody = diff ?? null; + const readBody = read ?? null; + const searchBody = search ?? null; + const webBody = web ?? null; + const outputText = output ?? null; + const expandable = body !== null || outputText !== null || (terminalBody ?? diffBody ?? readBody ?? searchBody ?? webBody) !== null; + const open = expanded && expandable; + const status = stateStatus$1(state, t); + const failureLine = state === "error" ? errorSummary ?? null : null; + const summaryText = failureLine ?? summary; + const suffix = failureLine === null ? summarySuffix ?? null : null; + const fileLink = filePath !== void 0 && onOpenFile !== void 0 && failureLine === null; + const toggleExpand = () => { + setExpanded((v) => !v); + }; + const openFile = (event) => { + event.stopPropagation(); + if (filePath !== void 0) onOpenFile?.(filePath); + }; + const fileLinkKeyDown = (event) => { + if (event.key === "Enter" || event.key === " ") event.stopPropagation(); + }; + const cardBody = variant === "code" ? null : body; + return (0, react_jsx_runtime.jsxs)("div", { + className: ToolRow_module_css_default.root, + "data-variant": variant, + "data-tool": toolName, + "data-state": state, + children: [status !== null && (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.visuallyHidden, + children: status + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + rowClassName: ToolRow_module_css_default.row, + leadingClassName: ToolRow_module_css_default.leading, + titleClassName: ToolRow_module_css_default.title, + chevronClassName: ToolRow_module_css_default.chevron, + icon: leadingFor$1(state, icon), + title, + open, + expandable, + expandOnRowClick: true, + keepContentWhenOpen: true, + onToggle: toggleExpand, + collapsedContent: summaryText !== "" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.sep, + "aria-hidden": true + }), + fileLink ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ToolRow_module_css_default.fileLink, + onClick: openFile, + onKeyDown: fileLinkKeyDown, + children: summaryText + }) : (0, react_jsx_runtime.jsx)("span", { + className: clsx(ToolRow_module_css_default.summary, failureLine !== null && ToolRow_module_css_default.errorSummary), + children: summaryText + }), + suffix !== null && (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.summarySuffix, + children: suffix + }) + ] }), + children: (0, react_jsx_runtime.jsxs)("div", { + className: ToolRow_module_css_default.bodyWrap, + children: [terminalBody !== null ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TerminalBlock, { + ...terminalBody.card, + maxLines: Infinity, + labels: terminalBlockLabels(t), + className: ToolRow_module_css_default.terminalBody + }) : diffBody !== null ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DiffBlock, { + ...diffBody.card, + maxLines: 8, + className: ToolRow_module_css_default.diffBody + }) : readBody !== null ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.ReadBlock, { + ...readBody, + maxLines: 8, + className: ToolRow_module_css_default.readBody + }) : searchBody !== null ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.SearchBlock, { + ...searchBody.card, + maxLines: 8, + className: ToolRow_module_css_default.searchBody + }), searchBody.recovery !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: ToolRow_module_css_default.searchRecovery, + children: searchBody.recovery + })] }) : webBody !== null ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.WebBlock, { + ...webBody, + className: ToolRow_module_css_default.webBody + }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [variant === "code" && body !== null && (0, react_jsx_runtime.jsx)("div", { + className: ToolRow_module_css_default.bodyScroll, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, { + code: body, + lang: "typescript", + copyLabel: t("copy"), + copiedLabel: t("copied"), + className: ToolRow_module_css_default.codeBody + }) + }), (cardBody !== null || outputText !== null) && (0, react_jsx_runtime.jsxs)("div", { + className: ToolRow_module_css_default.ioCard, + children: [ + cardBody !== null && (0, react_jsx_runtime.jsxs)("div", { + className: ToolRow_module_css_default.ioSection, + children: [(0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.ioLabel, + children: "IN" + }), (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.ioText, + children: cardBody + })] + }), + cardBody !== null && outputText !== null && (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.ioDivider, + "aria-hidden": true + }), + outputText !== null && (0, react_jsx_runtime.jsxs)("div", { + className: ToolRow_module_css_default.ioSection, + children: [(0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.ioLabel, + children: "OUT" + }), (0, react_jsx_runtime.jsx)("span", { + className: ToolRow_module_css_default.ioText, + "data-error": state === "error" || void 0, + children: outputText + })] + }) + ] + })] }), inspect !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: ToolRow_module_css_default.inspectButton, + onClick: inspect, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconInspectOutline12, {}), "Inspect"] + })] + }) + })] + }); + } + //#endregion + //#region lib/types/client/tool/toolviews/GenericToolCard.js + /** Variant leading icons (figma table); all glyphs render at 14 inside the 16px leading box. */ + const VARIANT_ICONS = { + search: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { size: 14 }), + read: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, { size: 14 }), + bash: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconApiOutline14, { size: 14 }), + write: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }), + edit: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }), + code: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutline16, { size: 14 }), + others: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSparkle16, { size: 14 }) + }; + function GenericToolCard({ toolName, block, cwd, openFile, inspect, t }) { + const model = toolRowModel(toolName, block, cwd); + const terminal = terminalCardModel(block, cwd); + const read = readCardModel(block, cwd); + const diff = diffCardModel(block); + const search = searchCardModel(block); + const web = webCardModel(block); + const state = model.state === "ok" && terminal !== null && terminalFailed(terminal) ? "error" : model.state; + const singleFile = model.filePath !== void 0; + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: VARIANT_ICONS[model.variant], + title: model.title, + summary: terminal?.description ?? search?.title ?? model.summary, + body: singleFile ? null : model.body, + output: model.output, + errorSummary: model.errorSummary, + terminal, + diff, + read, + search, + web, + state, + filePath: model.filePath, + onOpenFile: singleFile ? openFile : void 0, + inspect + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-tool/src/client/tool/ToolCallTree.module.css.mjs + const css$2 = ".ztWv_q_callRow{border-radius:6px}.ztWv_q_subCalls{border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:4px;margin:4px 0 2px 22px;padding-left:8px;display:flex}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-tool/ToolCallTree.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-tool"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var ToolCallTree_module_css_default = { + "callRow": "ztWv_q_callRow", + "subCalls": "ztWv_q_subCalls" + }; + //#endregion + //#region lib/types/client/tool/ToolCallTree.js + /** Root/subcall Tool composition with one keyed atomic dispatch path. */ + /** Resolve a Tool call's wire name from either lifecycle form. */ + function callName(node) { + return "kind" in node ? node.call?.name ?? "" : node.name; + } + /** One atomic call dispatched through the Tool-owned keyed slot. */ + const ToolCall = (0, react.memo)(function ToolCall({ renderSlot, callId, toolName, block, openFile, selected, cwd, inspectCall, t, children }) { + const owner = (0, react.useMemo)(() => ({ + callId, + toolName, + block, + openFile, + cwd, + inspect: () => { + inspectCall(callId); + } + }), [ + callId, + toolName, + block, + openFile, + cwd, + inspectCall + ]); + return (0, react_jsx_runtime.jsxs)("div", { + className: ToolCallTree_module_css_default.callRow, + "data-chat-anchor-key": `call:${callId}`, + "data-chat-call-id": callId, + "data-selected": selected || void 0, + children: [renderSlot("tool.call.toolview", owner, { + entryKey: toolName, + fallback: (0, react_jsx_runtime.jsx)(GenericToolCard, { + ...owner, + t + }) + }), children] + }); + }); + const ToolCallBranch = (0, react.memo)(function ToolCallBranch({ renderSlot, block, selectedCallId, cwd, openFile, inspectCall, t }) { + return (0, react_jsx_runtime.jsx)(ToolCall, { + renderSlot, + callId: block.callId, + toolName: callName(block), + block, + openFile, + selected: block.callId === selectedCallId, + cwd, + inspectCall, + t, + children: block.subCalls.length > 0 ? (0, react_jsx_runtime.jsx)("div", { + className: ToolCallTree_module_css_default.subCalls, + "data-subcalls": true, + children: block.subCalls.map((child) => (0, react_jsx_runtime.jsx)(ToolCallBranch, { + renderSlot, + block: child, + selectedCallId, + cwd, + openFile, + inspectCall, + t + }, child.callId)) + }) : null + }); + }); + /** + * Render one root Tool call and its recursive children through the same + * atomic keyed dispatch. + * @param props - whole-Tool owner data and the Tool-owned child-slot share. + * @returns the Tool call tree. + */ + function ToolCallTree({ renderSlot, node, selectedCallId, cwd, openFile, inspectCall, t }) { + const block = node.data.root; + return (0, react_jsx_runtime.jsx)(ToolCallBranch, { + renderSlot, + block, + selectedCallId, + cwd, + openFile, + inspectCall, + t + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-tool/src/client/tool/ToolDetails.module.css.mjs + const css$1 = ".xDAfVq_description{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);margin:0 0 6px}.xDAfVq_cardBody{margin:0}.xDAfVq_recovery{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);margin:6px 0 0}.xDAfVq_code{background:var(--dsw-alias-markdown-code-block);font-family:var(--ds-font-family-code);color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;border-radius:12px;margin:0;padding:16px;font-size:13px;line-height:22px}.xDAfVq_code[data-error]{color:var(--dsw-alias-state-error-primary)}.xDAfVq_read,.xDAfVq_web{margin:0}.xDAfVq_empty{color:var(--dsw-alias-label-tertiary);padding:8px 0;font-size:13px;line-height:20px}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-tool/ToolDetails.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-tool"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var ToolDetails_module_css_default = { + "read": "xDAfVq_read", + "description": "xDAfVq_description", + "recovery": "xDAfVq_recovery", + "web": "xDAfVq_web", + "code": "xDAfVq_code", + "empty": "xDAfVq_empty", + "cardBody": "xDAfVq_cardBody" + }; + //#endregion + //#region lib/types/client/tool/ToolDetails.js + /** Card-aware output body for the selected Tool call in details. */ + /** + * Render the selected Tool call's structured output when its presentation + * intent is known, otherwise preserve the flattened result text. + * @param props - selected call slice, workspace root, and locale seat. + * @returns the details output body. + */ + function ToolDetails({ block, cwd, t }) { + const terminal = terminalCardModel(block, cwd); + if (terminal !== null) return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [terminal.description !== void 0 ? (0, react_jsx_runtime.jsx)("div", { + className: ToolDetails_module_css_default.description, + children: terminal.description + }) : null, (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TerminalBlock, { + ...terminal.card, + labels: terminalBlockLabels(t), + className: ToolDetails_module_css_default.cardBody + })] }); + const read = readCardModel(block, cwd); + if (read !== null) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.ReadBlock, { + ...read, + className: ToolDetails_module_css_default.read + }); + const diff = diffCardModel(block); + if (diff !== null) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DiffBlock, { + ...diff.card, + className: ToolDetails_module_css_default.cardBody + }); + const search = searchCardModel(block); + if (search !== null) return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.SearchBlock, { + ...search.card, + className: ToolDetails_module_css_default.cardBody + }), search.recovery !== void 0 ? (0, react_jsx_runtime.jsx)("div", { + className: ToolDetails_module_css_default.recovery, + children: search.recovery + }) : null] }); + const web = webCardModel(block); + if (web !== null) { + const body = "kind" in block ? resultText(block) : ""; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.WebBlock, { + ...web, + className: ToolDetails_module_css_default.web + }), body !== "" ? (0, react_jsx_runtime.jsx)("pre", { + className: ToolDetails_module_css_default.code, + children: body + }) : null] }); + } + if (!("kind" in block)) return (0, react_jsx_runtime.jsx)("div", { + className: ToolDetails_module_css_default.empty, + children: t("details.running") + }); + return (0, react_jsx_runtime.jsx)("pre", { + className: ToolDetails_module_css_default.code, + "data-error": block.isError || void 0, + children: resultText(block) + }); + } + //#endregion + //#region lib/types/client/locale.js + /** Locale namespace supplied by the conversation owner to Tool renderers. */ + const CONVERSATION_NS = "conversation"; + //#endregion + //#region lib/types/client/tool/toolviews/ask-question-row.js + function isAnswer(value) { + return typeof value === "object" && value !== null; + } + /** Answered-count summary from the result JSON (a skipped question has + * empty `selected` and no `custom`); null when answer fields are invalid. */ + function answeredSummary(text, t) { + let parsed; + try { + parsed = JSON.parse(text); + } catch { + return null; + } + if (typeof parsed !== "object" || parsed === null) return null; + const answers = parsed.answers; + if (!Array.isArray(answers) || !answers.every(isAnswer)) return null; + const answered = answers.filter((a) => Array.isArray(a.selected) && a.selected.length > 0 || typeof a.custom === "string" && a.custom !== "").length; + return t("ask.answered", { + answered, + total: answers.length + }); + } + /** One-line question-interaction row (the whole row toggles the call's + * Input/Output sections, ToolRow's unified expand). */ + function AskQuestionRow({ toolName, block, inspect, t }) { + const model = toolRowModel(toolName, block); + const code = "kind" in block ? block.error?.code : void 0; + let summary = model.summary; + let state = model.state; + if (code === "ASK_CANCELLED") summary = t("ask.cancelled"); + else if (code === "ASK_ABORTED") { + summary = t("ask.interrupted"); + state = "stopped"; + } else if (model.state === "running") summary = t("ask.waiting"); + else if ("kind" in block && model.state === "ok") summary = answeredSummary(block.content.filter((b) => b.type === "text").map((b) => b.text).join(""), t) ?? model.summary; + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconQuestionOutline14, {}), + title: t("ask.rowTitle"), + summary, + body: model.body, + output: model.output, + state, + inspect + }); + } + /** + * The ask-question row as a plain registrant plugin following the chat + * toolview declaration across independent activation and reload lifetimes. + */ + const askQuestionToolview = { + name: "ask-question-toolview", + inject: ["slots"], + /** + * Register the ask-question row into the Tool-owned keyed view slot. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "ask_user_question", + locale: CONVERSATION_NS + }, AskQuestionRow)); + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-tool/src/client/tool/toolviews/bash-sample.module.css.mjs + const css = ".CY-8Ka_card{flex-direction:column;display:flex}.CY-8Ka_terminal{--dsl-terminal-font:var(--dsw-font-markdown-code-block-small);--dsl-terminal-line-height:18px;--dsl-terminal-output-max-height:224px;border:1px solid var(--dsw-alias-border-l1);margin:4px 0 4px 4px}.CY-8Ka_ioCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);font:var(--dsw-font-markdown-code-block-small);border-radius:12px;flex-direction:column;margin:4px 0 4px 4px;display:flex}.CY-8Ka_ioSection{grid-template-columns:max-content 1fr;align-items:baseline;column-gap:14px;max-height:150px;padding:12px 16px;display:grid;overflow-y:auto}.CY-8Ka_ioSection::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000;border-radius:6px}.CY-8Ka_ioSection::-webkit-scrollbar-track{margin:6px 0}.CY-8Ka_ioLabel{color:var(--dsw-alias-label-caption);align-self:start;position:sticky;top:0}.CY-8Ka_ioDivider{background:var(--dsw-alias-border-l2);flex:none;height:1px}.CY-8Ka_ioText{white-space:pre-wrap;word-break:break-word;min-width:0;color:var(--dsw-alias-label-secondary)}.CY-8Ka_ioText[data-error]{color:var(--dsw-alias-state-error-primary)}.CY-8Ka_root[data-expandable]{cursor:pointer}.CY-8Ka_root{align-items:center;min-width:0;height:24px;display:flex;position:relative;overflow:hidden}.CY-8Ka_root[data-state=running]:after{content:\"\";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite CY-8Ka_dsh-bash-row-sweep;position:absolute;top:0;bottom:0;left:0}@keyframes CY-8Ka_dsh-bash-row-sweep{0%{left:-300px}90%,to{left:100%}}.CY-8Ka_leading{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;margin-right:6px;display:inline-flex;position:relative}.CY-8Ka_chevron{color:var(--dsw-alias-label-secondary)}.CY-8Ka_iconIdle{opacity:1;transition:opacity .1s;display:inline-flex}.CY-8Ka_chevronHover{opacity:0;margin:auto;transition:opacity .1s;position:absolute;inset:0}.CY-8Ka_root:hover .CY-8Ka_iconIdle{opacity:0}.CY-8Ka_root:hover .CY-8Ka_chevronHover{opacity:1}.CY-8Ka_title{color:var(--dsw-alias-label-secondary);flex:none;font-size:14px;line-height:24px}.CY-8Ka_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.CY-8Ka_summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;font-size:14px;line-height:24px;overflow:hidden}.CY-8Ka_errorSummary{color:var(--dsw-alias-state-error-primary)}.CY-8Ka_bodyWrap{flex-direction:column;display:flex}.CY-8Ka_inspectButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin:4px 0 2px 4px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .1s;display:inline-flex}.CY-8Ka_card:hover .CY-8Ka_inspectButton,.CY-8Ka_inspectButton:focus-visible{opacity:1}.CY-8Ka_inspectButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.CY-8Ka_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}"; + const tagId = "@deepseek-ai/dsh-client-ui-tool/bash-sample.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-tool"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var bash_sample_module_css_default = { + "chevron": "CY-8Ka_chevron", + "dsh-bash-row-sweep": "CY-8Ka_dsh-bash-row-sweep", + "card": "CY-8Ka_card", + "ioCard": "CY-8Ka_ioCard", + "ioDivider": "CY-8Ka_ioDivider", + "sep": "CY-8Ka_sep", + "root": "CY-8Ka_root", + "leading": "CY-8Ka_leading", + "title": "CY-8Ka_title", + "errorSummary": "CY-8Ka_errorSummary", + "chevronHover": "CY-8Ka_chevronHover", + "summary": "CY-8Ka_summary", + "terminal": "CY-8Ka_terminal", + "ioText": "CY-8Ka_ioText", + "ioSection": "CY-8Ka_ioSection", + "iconIdle": "CY-8Ka_iconIdle", + "bodyWrap": "CY-8Ka_bodyWrap", + "ioLabel": "CY-8Ka_ioLabel", + "inspectButton": "CY-8Ka_inspectButton", + "visuallyHidden": "CY-8Ka_visuallyHidden" + }; + //#endregion + //#region lib/types/client/tool/toolviews/bash-sample.js + function leadingFor(state) { + switch (state) { + case "error": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }); + case "stopped": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "warning" }); + default: return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconApiOutline14, { size: 14 }); + } + } + /** Visually hidden status — StateDot is aria-hidden; AT needs a text label. */ + function stateStatus(state, t) { + switch (state) { + case "running": return t("bash.running"); + case "error": return t("bash.failed"); + case "stopped": return t("bash.stopped"); + default: return null; + } + } + /** + * Bash row: icon + Bash · {description} in the shared ToolRow chrome, the + * whole row toggling the command's terminal or generic error card (ToolRow's unified + * expand interaction, replicated locally per the registrant posture). + */ + function BashRow({ toolName, block, sessionId, useSessions, inspect, t }) { + const model = toolRowModel(toolName, block); + const terminal = terminalCardModel(block, useSessions((list) => list.byId[sessionId]?.cwd)); + const state = model.state === "ok" && terminal !== null && terminalFailed(terminal) ? "error" : model.state; + const status = stateStatus(state, t); + const [expanded, setExpanded] = (0, react.useState)(false); + const genericError = terminal === null && model.state === "error" && (model.body !== null || model.output !== null); + const expandable = terminal !== null || genericError; + const open = expanded && expandable; + const failureLine = model.state === "error" ? model.errorSummary : null; + const toggleExpand = () => { + setExpanded((v) => !v); + }; + const toggleFromKeyboard = (event) => { + if (!expandable || event.key !== "Enter" && event.key !== " ") return; + event.preventDefault(); + toggleExpand(); + }; + const leading = open ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: bash_sample_module_css_default.chevron }) : expandable ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.iconIdle, + children: leadingFor(state) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: clsx(bash_sample_module_css_default.chevron, bash_sample_module_css_default.chevronHover) })] }) : leadingFor(state); + return (0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.card, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.root, + "data-sample": "bash", + "data-variant": "bash", + "data-state": state, + "data-expandable": expandable || void 0, + role: expandable ? "button" : void 0, + tabIndex: expandable ? 0 : void 0, + "aria-expanded": expandable ? open : void 0, + onClick: expandable ? toggleExpand : void 0, + onKeyDown: expandable ? toggleFromKeyboard : void 0, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.leading, + children: leading + }), + status !== null && (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.visuallyHidden, + children: status + }), + (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.title, + children: model.title + }), + (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.sep, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: clsx(bash_sample_module_css_default.summary, failureLine !== null && bash_sample_module_css_default.errorSummary), + children: failureLine ?? terminal?.description ?? model.summary + }) + ] + }), open && (0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.bodyWrap, + children: [terminal !== null ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TerminalBlock, { + ...terminal.card, + maxLines: Infinity, + labels: terminalBlockLabels(t), + className: bash_sample_module_css_default.terminal + }) : (0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.ioCard, + children: [ + model.body !== null && (0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.ioSection, + children: [(0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.ioLabel, + children: "IN" + }), (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.ioText, + children: model.body + })] + }), + model.body !== null && model.output !== null && (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.ioDivider, + "aria-hidden": true + }), + model.output !== null && (0, react_jsx_runtime.jsxs)("div", { + className: bash_sample_module_css_default.ioSection, + children: [(0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.ioLabel, + children: "OUT" + }), (0, react_jsx_runtime.jsx)("span", { + className: bash_sample_module_css_default.ioText, + "data-error": true, + children: model.output + })] + }) + ] + }), inspect !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: bash_sample_module_css_default.inspectButton, + onClick: inspect, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconInspectOutline12, {}), "Inspect"] + })] + })] + }); + } + /** + * The sample as a plain registrant plugin. Slot injection follows the chat + * toolview declaration across independent activation and reload lifetimes. + */ + const bashToolviewSample = { + name: "bash-toolview-sample", + inject: ["slots"], + /** + * Register the bash row into the Tool-owned keyed view slot. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "bash", + locale: CONVERSATION_NS + }, BashRow)); + } + }; + //#endregion + //#region lib/types/client/tool/toolviews/file-mutation-row.js + /** + * File-mutation row: icon + {Edit,Write} · {path} in the shared ToolRow chrome, + * with the applied diff as the row's collapsed-by-default card body. The + * summary is a path link (a file tool's interaction); the host's `openFile` + * resolves it against the session cwd, so this passes the tool's own path + * verbatim. An errored mutation has no diff card, so ToolRow surfaces the + * model-facing error text through its Output section and its first line in the + * collapsed summary instead. + */ + function FileMutationRow({ toolName, block, cwd, openFile, inspect, t }) { + const model = toolRowModel(toolName, block, cwd); + const diff = diffCardModel(block); + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }), + title: model.title, + summary: model.summary, + body: null, + output: model.output, + errorSummary: model.errorSummary, + diff, + state: model.state, + filePath: model.filePath, + onOpenFile: openFile, + inspect + }); + } + /** + * The file-mutation rows as a plain registrant plugin following the chat + * toolview declaration across independent activation and reload lifetimes. + */ + const fileMutationToolview = { + name: "file-mutation-toolview", + inject: ["slots"], + /** + * Register the file-mutation row into the Tool-owned keyed view slot + * under both mutation tool names. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", function* () { + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "edit", + locale: CONVERSATION_NS + }, FileMutationRow); + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "write", + locale: CONVERSATION_NS + }, FileMutationRow); + }); + } + }; + //#endregion + //#region lib/types/client/tool/toolviews/read-row.js + /** + * Read row: icon + Read · {path} in the shared ToolRow chrome, with the file's + * read card as the row's collapsed-by-default card body. The summary path is an + * openable host link when the row names a single file. + */ + function ReadRow({ toolName, block, cwd, openFile, inspect, t }) { + const model = toolRowModel(toolName, block, cwd); + const read = readCardModel(block, cwd); + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, { size: 14 }), + title: model.title, + summary: model.summary, + body: null, + output: model.output, + errorSummary: model.errorSummary, + read, + state: model.state, + filePath: model.filePath, + onOpenFile: openFile, + inspect + }); + } + /** + * The read row as a plain registrant plugin following the atomic Tool-view + * declaration across independent activation and reload lifetimes. + */ + const readToolview = { + name: "read-toolview", + inject: ["slots"], + /** + * Register the read row into the Tool-owned keyed view slot. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "read", + locale: CONVERSATION_NS + }, ReadRow)); + } + }; + //#endregion + //#region lib/types/client/tool/toolviews/search-row.js + const SEARCH_TITLES = { + grep: "Grep", + glob: "Glob" + }; + /** + * Search row: icon + Grep/Glob · {summary} in the shared ToolRow chrome, with the + * completed search's card as the row's collapsed-by-default card body (a capped + * search's recovery footer rides below it, inside ToolRow). Registered under + * both `grep` and `glob`; the derived model's `kind` decides the card shape. A + * settled call with no search card surfaces its model-facing text through + * ToolRow's Output section, since the keyed SearchRow owns this render slot. + */ + function SearchRow({ toolName, block, inspect, t }) { + const model = toolRowModel(toolName, block); + const search = searchCardModel(block); + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { size: 14 }), + title: SEARCH_TITLES[toolName] ?? model.title, + summary: search?.title ?? model.summary, + body: null, + output: model.output, + errorSummary: model.errorSummary, + search, + state: model.state, + inspect + }); + } + /** + * The search view follows the atomic Tool-view declaration across activation + * and reload. One component registers under both keys because `grep` and + * `glob` are the same visual object discriminated by the result view's `kind`. + */ + const searchToolview = { + name: "search-toolview", + inject: ["slots"], + /** + * Register the search row into the Tool-owned keyed view slot under both + * the `grep` and `glob` tool names. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", function* () { + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "grep", + locale: CONVERSATION_NS + }, SearchRow); + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "glob", + locale: CONVERSATION_NS + }, SearchRow); + }); + } + }; + //#endregion + //#region lib/types/client/tool/toolviews/plan-summary.js + /** + * Pure plan derivation for the todo_write row's one-line summary. Several items + * may be `in_progress` at once — parallel work runs concurrent tasks, so a + * summary built from one active item would silently drop the rest. The plan + * strip header derives its own counts inline and shares nothing with this, so + * this stays inside the toolviews domain rather than in `contract/` (the + * inter-domain face). + * @module + */ + /** + * Derive the counts and the active summary from a whole-list snapshot. It names + * the first `in_progress` item and counts the remaining active ones, so a + * parallel plan reports how many tasks are running rather than naming one and + * hiding the others. `activeContent` is null when nothing is in progress, or + * when the first active item's content is missing, mistyped, or blank once + * trimmed — the tool's own rule for usable content, applied here because a + * rejected call keeps its args verbatim. The row then renders the counts alone + * rather than falling back to the generic tool summary: the counts are already + * known to be good, and the active-item clause is the only part an unusable + * name costs. + * @param todos - the whole list, in model order. + * @returns the done/total counts and the two summary halves. + */ + function planSummary(todos) { + const active = todos.filter((t) => t.status === "in_progress"); + const first = active[0]?.content; + const named = typeof first === "string" && first.trim() !== ""; + return { + done: todos.filter((t) => t.status === "completed").length, + total: todos.length, + activeContent: named ? first : null, + activeExtra: named ? active.length - 1 : 0 + }; + } + //#endregion + //#region lib/types/client/tool/toolviews/todo-row.js + function isItem(value) { + return typeof value === "object" && value !== null; + } + function summarize(argsRaw, t) { + let parsed; + try { + parsed = JSON.parse(argsRaw); + } catch { + return null; + } + if (typeof parsed !== "object" || parsed === null) return null; + const todos = parsed.todos; + if (!Array.isArray(todos) || !todos.every(isItem)) return null; + const { done, total, activeContent, activeExtra } = planSummary(todos); + const head = t("todo.completed", { + done, + total + }); + return { + text: activeContent === null ? head : `${head} · ${activeContent}`, + extra: activeExtra + }; + } + /** One-line plan update row (the whole row toggles the call's Input/Output + * sections, ToolRow's unified expand). Non-ok execution states keep the + * shared row's dot semantics — a cancelled call wrote no todo/write, so it + * must not read as a completed update. */ + function TodoRow({ toolName, block, inspect, t }) { + const model = toolRowModel(toolName, block); + const summary = summarize(("kind" in block ? block.call?.argsRaw : block.argsRaw) ?? "", t) ?? { + text: model.summary, + extra: 0 + }; + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChecklistOutline14, {}), + title: t("todo.rowTitle"), + summary: summary.text, + summarySuffix: summary.extra > 0 ? `+${summary.extra}` : null, + body: model.body, + output: model.output, + errorSummary: model.errorSummary, + state: model.state, + inspect + }); + } + /** + * The todo row as a plain registrant plugin following the atomic Tool-view + * declaration across independent activation and reload lifetimes. + */ + const todoToolview = { + name: "todo-toolview", + inject: ["slots"], + /** + * Register the todo row into the Tool-owned keyed view slot. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "todo_write", + locale: CONVERSATION_NS + }, TodoRow)); + } + }; + //#endregion + //#region lib/types/client/tool/toolviews/web-row.js + /** web_fetch reads one URL; web_search queries. Titles are figma literals. */ + const WEB_TITLES = { + web_search: "Search", + web_fetch: "Fetch" + }; + /** + * Web row: icon + Search/Fetch · {summary} in the shared ToolRow chrome, with + * the completed retrieval's web card as the row's collapsed-by-default card + * body. The row discriminates on `toolName` only to pick its icon and title. + */ + function WebRow({ toolName, block, inspect, t }) { + const model = toolRowModel(toolName, block); + const web = webCardModel(block); + const icon = toolName === "web_fetch" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, { size: 14 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconGlobeOutline14, { size: 14 }); + return (0, react_jsx_runtime.jsx)(ToolRow, { + t, + variant: model.variant, + toolName, + icon, + title: WEB_TITLES[toolName] ?? model.title, + summary: model.summary, + body: null, + output: model.output, + errorSummary: model.errorSummary, + web, + state: model.state, + inspect + }); + } + /** + * The web rows follow the atomic Tool-view declaration across activation and + * reload. One WebRow component registers under both web tool names. + */ + const webToolview = { + name: "web-toolview", + inject: ["slots"], + /** + * Register the web row under both web tool names' keyed toolview holes. + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("tool.call.toolview", function* () { + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "web_search", + locale: CONVERSATION_NS + }, WebRow); + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "web_fetch", + locale: CONVERSATION_NS + }, WebRow); + }); + } + }; + //#endregion + //#region lib/types/client/apply.js + /** Required service: the slot registry that owns both Tool render seats. */ + const inject = ["slots"]; + /** + * Mount the whole-Tool renderers and built-in atomic Tool registrations. + * @param ctx - Client root context. + */ + function apply(ctx) { + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "tool-call", + locale: CONVERSATION_NS, + children: { "tool.call.toolview": { + kind: "keyed", + scope: "session" + } } + }, ToolCallTree)); + ctx.slots.inject("conversation.details.tool", () => ctx.slots.register({ + name: "conversation.details.tool", + locale: CONVERSATION_NS + }, ToolDetails)); + ctx.plugin(bashToolviewSample); + ctx.plugin(readToolview); + ctx.plugin(fileMutationToolview); + ctx.plugin(searchToolview); + ctx.plugin(webToolview); + ctx.plugin(todoToolview); + ctx.plugin(askQuestionToolview); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000014 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000014 new file mode 100644 index 0000000..0e027f4 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000014 @@ -0,0 +1,1433 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-cordis", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let react = require("react"); + //#region lib/types/client/card-model.js + /** Replay-stable view models for Cordis lifecycle Tool calls. */ + function firstLine(text) { + const newline = text.indexOf("\n"); + return newline === -1 ? text : text.slice(0, newline); + } + function stringAt(source, key) { + const value = source[key]; + return typeof value === "string" && value !== "" ? value : null; + } + function objectAt(source, key) { + const value = source[key]; + return typeof value === "object" && value !== null ? value : null; + } + function parseArgs(argsRaw) { + try { + const parsed = JSON.parse(argsRaw); + return typeof parsed === "object" && parsed !== null ? parsed : null; + } catch { + return null; + } + } + function resultText(block) { + const text = block.content.map((item) => item.type === "text" ? item.text : JSON.stringify(item, null, 2)).join("\n"); + if (text !== "") return text; + return block.error === void 0 ? null : `${block.error.name}: ${block.error.code}`; + } + function stateOf(block) { + if (!("kind" in block)) return "running"; + if (block.error?.code === "interrupted") return "stopped"; + return block.isError ? "error" : "ok"; + } + function metaObject(block) { + if (!("kind" in block) || block.isError || typeof block.meta !== "object" || block.meta === null) return null; + return block.meta; + } + /** + * Derive one Define card from its frozen call/result slice. + * @param block - active or settled tool-call block. + * @returns normalized Define card fields. + */ + function cordisDefineCard(block) { + const settled = "kind" in block; + const argsRaw = (settled ? block.call?.argsRaw : block.argsRaw) ?? ""; + const args = parseArgs(argsRaw); + const code = args === null ? null : objectAt(args, "code"); + const state = stateOf(block); + const output = settled ? resultText(block) : null; + const meta = metaObject(block); + const rawName = argsRaw === "" ? null : firstLine(argsRaw); + return { + pluginId: meta === null ? null : stringAt(meta, "pluginId"), + packageId: meta === null ? null : stringAt(meta, "packageId"), + name: args === null ? rawName : stringAt(args, "name") ?? rawName, + purpose: args === null ? null : stringAt(args, "purpose"), + hostCode: code === null ? null : stringAt(code, "host"), + clientCode: code === null ? null : stringAt(code, "client"), + output, + errorSummary: state === "error" && output !== null ? firstLine(output) : null, + state + }; + } + /** + * Derive one Run card and its successful activation metadata. + * @param block - active or settled tool-call block. + * @returns normalized Run card fields. + */ + function cordisRunCard(block) { + const settled = "kind" in block; + const args = parseArgs((settled ? block.call?.argsRaw : block.argsRaw) ?? ""); + const meta = metaObject(block); + const state = stateOf(block); + const output = settled ? resultText(block) : null; + const rawMode = args === null ? null : stringAt(args, "mode"); + const argsPluginId = args === null ? null : stringAt(args, "pluginId"); + const argsPackageId = args === null ? null : stringAt(args, "packageId"); + return { + pluginId: meta === null ? argsPluginId : stringAt(meta, "pluginId") ?? argsPluginId, + packageId: meta === null ? argsPackageId : stringAt(meta, "packageId") ?? argsPackageId, + pluginRunId: meta === null ? null : stringAt(meta, "pluginRunId"), + mode: rawMode === "run" || rawMode === "update" ? rawMode : null, + seq: settled ? block.seq : null, + output, + errorSummary: state === "error" && output !== null ? firstLine(output) : null, + state + }; + } + /** + * Derive one Stop or Remove card from its frozen call/result slice. + * @param block - active or settled tool-call block. + * @returns normalized lifecycle-action card fields. + */ + function cordisActionCard(block) { + const settled = "kind" in block; + const args = parseArgs((settled ? block.call?.argsRaw : block.argsRaw) ?? ""); + const state = stateOf(block); + const output = settled ? resultText(block) : null; + return { + pluginId: args === null ? null : stringAt(args, "pluginId") ?? stringAt(args, "id"), + output, + errorSummary: state === "error" && output !== null ? firstLine(output) : null, + state + }; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/extensions/ui-cordis/src/client/CordisRunRow.module.css.mjs + const css$2 = ".cvtE3a_card{flex-direction:column;gap:8px;display:flex}.cvtE3a_row{align-items:center;min-height:32px;display:flex}.cvtE3a_icon{color:var(--dsw-alias-state-business-primary);flex:none;margin-right:8px;display:inline-flex}.cvtE3a_title{color:var(--dsw-alias-state-business-primary);flex:none;font-size:14px;font-weight:500;line-height:24px}.cvtE3a_separator{background:var(--dsw-alias-state-business-primary);border-radius:50%;flex:none;width:2px;height:2px;margin:0 8px}.cvtE3a_summary,.cvtE3a_error{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;line-height:24px;overflow:hidden}.cvtE3a_error{color:var(--dsw-alias-state-error-primary)}.cvtE3a_status{color:var(--dsw-alias-label-caption);flex:none;margin-left:8px;font-size:12px;line-height:24px}.cvtE3a_card[data-cordis-status=awaiting-approval] .cvtE3a_status,.cvtE3a_card[data-cordis-status=client-pending] .cvtE3a_status{color:var(--dsw-alias-state-warn-label)}.cvtE3a_card[data-cordis-status=running] .cvtE3a_status{color:var(--dsw-alias-state-success-primary)}.cvtE3a_card[data-cordis-status=failed] .cvtE3a_status{color:var(--dsw-alias-state-error-primary)}.cvtE3a_inspect{width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;margin-left:4px;padding:0;display:inline-flex}.cvtE3a_card:hover .cvtE3a_inspect,.cvtE3a_inspect:focus-visible{opacity:1}.cvtE3a_inspect:hover{background:var(--dsw-alias-interactive-bg-hover)}.cvtE3a_message{background:var(--dsw-alias-button-ghost-active-fill);color:var(--dsw-alias-label-tertiary);border-radius:8px;padding:8px 12px;font-size:12px;line-height:18px}.cvtE3a_business{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;min-width:0;overflow:hidden}.cvtE3a_output{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:10px 12px;overflow:auto}.cvtE3a_business .cvtE3a_output{border:none;border-radius:0}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-cordis/CordisRunRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-cordis"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var CordisRunRow_module_css_default = { + "row": "cvtE3a_row", + "title": "cvtE3a_title", + "icon": "cvtE3a_icon", + "summary": "cvtE3a_summary", + "output": "cvtE3a_output", + "inspect": "cvtE3a_inspect", + "card": "cvtE3a_card", + "status": "cvtE3a_status", + "separator": "cvtE3a_separator", + "business": "cvtE3a_business", + "error": "cvtE3a_error", + "message": "cvtE3a_message" + }; + //#endregion + //#region lib/types/client/CordisActionRow.js + /** Localized cards for `cordis_stop` and `cordis_undefine`. */ + /** Render one Stop or Remove call with Cordis-owned localized copy. */ + function CordisActionRow({ callId, toolName, block, inspect, t }) { + const card = cordisActionCard(block); + const remove = toolName === "cordis_undefine"; + const summary = card.errorSummary ?? card.pluginId ?? callId; + return (0, react_jsx_runtime.jsxs)("div", { + className: CordisRunRow_module_css_default.card, + "data-tool": toolName, + "data-state": card.state, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: CordisRunRow_module_css_default.row, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.icon, + children: card.state === "error" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }) : card.state === "stopped" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "warning" }) : remove ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 14 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconStopFill16, { size: 14 }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.title, + children: t(remove ? "row.removeTitle" : "row.stopTitle") + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.separator, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: card.errorSummary === null ? CordisRunRow_module_css_default.summary : CordisRunRow_module_css_default.error, + children: summary + }), + inspect !== void 0 && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: CordisRunRow_module_css_default.inspect, + "aria-label": "Inspect", + onClick: inspect, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconInspectOutline12, {}) + }) + ] + }), card.output !== null && (0, react_jsx_runtime.jsx)("pre", { + className: CordisRunRow_module_css_default.output, + children: card.output + })] + }); + } + //#endregion + //#region lib/types/client/status.js + /** Shared status derivation over Host inventory and this page's Client live set. */ + /** + * Locate one immutable Package inside a Plugin row. + * @param row - owning Plugin inventory row. + * @param packageId - immutable Package identity to locate. + * @returns the matching Package metadata, or `undefined` when absent. + */ + function packageOf(row, packageId) { + return row.packages.find((pkg) => pkg.packageId === packageId); + } + /** + * Derive the visible state of one Package. + * @param row - owning Plugin inventory row. + * @param packageId - Package being described. + * @param loaded - Client activations loaded in this page. + * @returns idle, Host-running/Client-pending, or fully running. + */ + function cordisVisibleStatus(row, packageId, loaded) { + const run = row.activeRun; + if (run === void 0 || run.packageId !== packageId) return "idle"; + if (packageOf(row, packageId)?.hasClientHalf !== true) return "running"; + return loaded.some((live) => live.pluginId === row.pluginId && live.packageId === packageId && live.pluginRunId === run.pluginRunId) ? "running" : "client-pending"; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/extensions/ui-cordis/src/client/CordisDefineRow.module.css.mjs + const css$1 = ".gNWCoW_card{flex-direction:column;display:flex}.gNWCoW_card .gNWCoW_title,.gNWCoW_card .gNWCoW_chevron{color:var(--dsw-alias-state-business-primary)}.gNWCoW_title{flex:none;font-size:14px;font-weight:500;line-height:24px}.gNWCoW_row{gap:0}.gNWCoW_separator{background:var(--dsw-alias-state-business-primary);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.gNWCoW_name{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:var(--dsw-alias-label-secondary);flex:none;font-size:14px;line-height:24px;overflow:hidden}.gNWCoW_purpose{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;margin-left:8px;font-size:13px;line-height:24px;overflow:hidden}.gNWCoW_errorSummary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-state-error-primary);flex:auto;font-size:14px;line-height:24px;overflow:hidden}.gNWCoW_requestError{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:var(--dsw-alias-state-error-primary);flex:none;margin-left:8px;font-size:12px;line-height:24px;overflow:hidden}.gNWCoW_readout{flex:none;align-items:center;margin-left:8px;display:inline-flex}.gNWCoW_panelHint{color:var(--dsw-alias-label-caption);margin:4px 0 2px 4px;font-size:11px;line-height:16px}.gNWCoW_statusLabel{color:var(--dsw-alias-label-caption);font-size:12px;line-height:24px}.gNWCoW_approvalPrompt{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:var(--dsw-alias-label-secondary);flex:none;margin-left:8px;font-size:12px;line-height:24px;overflow:hidden}.gNWCoW_notice{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:var(--dsw-alias-label-caption);flex:none;margin-left:8px;font-size:12px;line-height:24px;overflow:hidden}.gNWCoW_switch{height:22px;padding:0 8px;font-size:12px}.gNWCoW_card[data-terminal] .gNWCoW_title,.gNWCoW_card[data-terminal] .gNWCoW_name,.gNWCoW_card[data-terminal] .gNWCoW_purpose,.gNWCoW_card[data-terminal] .gNWCoW_statusLabel{color:var(--dsw-alias-label-caption)}.gNWCoW_card[data-terminal] .gNWCoW_separator{background:var(--dsw-alias-label-caption)}.gNWCoW_bodyWrap{flex-direction:column;display:flex}.gNWCoW_sourceCard{flex-direction:column;margin:4px 0 4px 4px;display:flex}.gNWCoW_sourceTabs{border-bottom:1px solid var(--dsw-alias-border-l2);height:32px;display:flex}.gNWCoW_sourceTab{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xs-13);background:0 0;border:0;padding:0 10px;position:relative}.gNWCoW_sourceTab:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.gNWCoW_sourceTab:disabled{cursor:default;opacity:.4}.gNWCoW_sourceTabActive{color:var(--dsw-alias-state-business-primary)}.gNWCoW_sourceTabActive:after{background:var(--dsw-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.gNWCoW_sourceTab:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.gNWCoW_sourcePanel{max-height:260px;overflow:auto}.gNWCoW_sourceCode{margin:0}.gNWCoW_codeSection{flex-direction:column;max-height:260px;margin:4px 0 4px 4px;display:flex;overflow:auto}.gNWCoW_sectionLabel{color:var(--dsw-alias-label-caption);text-transform:uppercase;letter-spacing:.04em;flex:none;padding:2px 0;font-size:11px;font-weight:500;line-height:16px}.gNWCoW_output{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-secondary);border-radius:8px;margin:0;padding:8px 10px}.gNWCoW_output[data-error]{color:var(--dsw-alias-state-error-primary)}.gNWCoW_inspectButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin:4px 0 2px 4px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .1s;display:inline-flex}.gNWCoW_card:hover .gNWCoW_inspectButton,.gNWCoW_inspectButton:focus-visible{opacity:1}.gNWCoW_inspectButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.gNWCoW_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.gNWCoW_inspectButton{transition:none}}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-cordis/CordisDefineRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-cordis"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var CordisDefineRow_module_css_default = { + "approvalPrompt": "gNWCoW_approvalPrompt", + "visuallyHidden": "gNWCoW_visuallyHidden", + "card": "gNWCoW_card", + "separator": "gNWCoW_separator", + "chevron": "gNWCoW_chevron", + "purpose": "gNWCoW_purpose", + "requestError": "gNWCoW_requestError", + "panelHint": "gNWCoW_panelHint", + "title": "gNWCoW_title", + "statusLabel": "gNWCoW_statusLabel", + "notice": "gNWCoW_notice", + "switch": "gNWCoW_switch", + "bodyWrap": "gNWCoW_bodyWrap", + "sourceTab": "gNWCoW_sourceTab", + "name": "gNWCoW_name", + "errorSummary": "gNWCoW_errorSummary", + "sourceTabActive": "gNWCoW_sourceTabActive", + "sectionLabel": "gNWCoW_sectionLabel", + "output": "gNWCoW_output", + "inspectButton": "gNWCoW_inspectButton", + "codeSection": "gNWCoW_codeSection", + "sourceCard": "gNWCoW_sourceCard", + "row": "gNWCoW_row", + "sourcePanel": "gNWCoW_sourcePanel", + "sourceCode": "gNWCoW_sourceCode", + "sourceTabs": "gNWCoW_sourceTabs", + "readout": "gNWCoW_readout" + }; + //#endregion + //#region lib/types/client/CordisDefineRow.js + /** Read-only `cordis_define` card with Host and Client source tabs. */ + const READING_LABELS$1 = { + idle: "status.idle", + "client-pending": "status.clientPending", + running: "status.running", + removed: "status.removed" + }; + function stateStatus(state) { + switch (state) { + case "running": return "a11y.defining"; + case "error": return "a11y.failed"; + case "stopped": return "a11y.stopped"; + default: return null; + } + } + function leadingFor(state) { + switch (state) { + case "error": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }); + case "stopped": return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "warning" }); + default: return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutline16, { size: 14 }); + } + } + /** Render one immutable Package definition. */ + function CordisDefineRow({ callId, block, inspect, useInventory, useLoaded, t }) { + const card = cordisDefineCard(block); + const inventory = useInventory((snapshot) => snapshot); + const loaded = useLoaded((snapshot) => snapshot); + const [expanded, setExpanded] = (0, react.useState)(false); + const [selectedSource, setSelectedSource] = (0, react.useState)(card.clientCode !== null ? "client" : "host"); + const sourcePanelId = (0, react.useId)(); + const row = card.pluginId === null ? void 0 : inventory.rows.find((candidate) => candidate.pluginId === card.pluginId); + const reading = card.pluginId !== null && inventory.removed.has(card.pluginId) ? "removed" : row !== void 0 && card.packageId !== null ? cordisVisibleStatus(row, card.packageId, loaded) : "idle"; + const name = card.name ?? callId; + const expandable = card.hostCode !== null || card.clientCode !== null || card.output !== null; + const open = expanded && expandable; + const a11yState = stateStatus(card.state); + const hasSource = card.clientCode !== null || card.hostCode !== null; + const activeSource = selectedSource === "client" && card.clientCode !== null ? "client" : selectedSource === "host" && card.hostCode !== null ? "host" : card.clientCode !== null ? "client" : "host"; + const activeCode = activeSource === "client" ? card.clientCode : card.hostCode; + return (0, react_jsx_runtime.jsxs)("div", { + className: CordisDefineRow_module_css_default.card, + "data-tool": "cordis_define", + "data-state": card.state, + "data-terminal": reading === "removed" || void 0, + "data-cordis-plugin-id": card.pluginId ?? void 0, + "data-cordis-package-id": card.packageId ?? void 0, + "data-cordis-status": reading, + children: [a11yState !== null && (0, react_jsx_runtime.jsx)("span", { + className: CordisDefineRow_module_css_default.visuallyHidden, + children: t(a11yState) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + rowClassName: CordisDefineRow_module_css_default.row, + titleClassName: CordisDefineRow_module_css_default.title, + chevronClassName: CordisDefineRow_module_css_default.chevron, + icon: leadingFor(card.state), + title: t("row.defineTitle"), + open, + expandable, + expandOnRowClick: true, + keepContentWhenOpen: true, + onToggle: () => { + setExpanded((value) => !value); + }, + collapsedContent: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: CordisDefineRow_module_css_default.separator, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: card.errorSummary === null ? CordisDefineRow_module_css_default.name : CordisDefineRow_module_css_default.errorSummary, + children: card.errorSummary ?? name + }), + card.errorSummary === null && (0, react_jsx_runtime.jsx)("span", { + className: CordisDefineRow_module_css_default.purpose, + children: card.purpose ?? t("purpose.missing") + }), + card.pluginId !== null && (0, react_jsx_runtime.jsx)("span", { + className: CordisDefineRow_module_css_default.readout, + children: (0, react_jsx_runtime.jsx)("span", { + className: CordisDefineRow_module_css_default.statusLabel, + children: t(READING_LABELS$1[reading]) + }) + }) + ] }), + children: (0, react_jsx_runtime.jsxs)("div", { + className: CordisDefineRow_module_css_default.bodyWrap, + children: [ + hasSource && activeCode !== null && (0, react_jsx_runtime.jsxs)("section", { + className: CordisDefineRow_module_css_default.sourceCard, + children: [(0, react_jsx_runtime.jsx)("div", { + className: CordisDefineRow_module_css_default.sourceTabs, + role: "tablist", + "aria-label": t("body.source"), + children: ["client", "host"].map((source) => { + const available = source === "client" ? card.clientCode !== null : card.hostCode !== null; + return (0, react_jsx_runtime.jsx)("button", { + id: `${sourcePanelId}-${source}`, + type: "button", + role: "tab", + "aria-controls": sourcePanelId, + "aria-selected": activeSource === source, + className: activeSource === source ? `${CordisDefineRow_module_css_default.sourceTab} ${CordisDefineRow_module_css_default.sourceTabActive}` : CordisDefineRow_module_css_default.sourceTab, + disabled: !available, + onClick: () => { + setSelectedSource(source); + }, + children: t(source === "client" ? "body.clientCode" : "body.hostCode") + }, source); + }) + }), (0, react_jsx_runtime.jsx)("div", { + id: sourcePanelId, + className: CordisDefineRow_module_css_default.sourcePanel, + role: "tabpanel", + "aria-labelledby": `${sourcePanelId}-${activeSource}`, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, { + code: activeCode, + lang: "javascript", + copyLabel: t("body.copy"), + copiedLabel: t("body.copied"), + className: CordisDefineRow_module_css_default.sourceCode + }) + })] + }), + card.output !== null && (0, react_jsx_runtime.jsxs)("section", { + className: CordisDefineRow_module_css_default.codeSection, + children: [(0, react_jsx_runtime.jsx)("div", { + className: CordisDefineRow_module_css_default.sectionLabel, + children: t("body.output") + }), (0, react_jsx_runtime.jsx)("pre", { + className: CordisDefineRow_module_css_default.output, + "data-error": card.state === "error" || void 0, + children: card.output + })] + }), + card.pluginId !== null && (0, react_jsx_runtime.jsx)("div", { + className: CordisDefineRow_module_css_default.panelHint, + children: t("panel.hint") + }), + inspect !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: CordisDefineRow_module_css_default.inspectButton, + onClick: inspect, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconInspectOutline12, {}), "Inspect"] + }) + ] + }) + })] + }); + } + //#endregion + //#region lib/types/client/run-card-index.js + /** Session-local ownership index for Package business views on `cordis_run` cards. */ + function createStore() { + const pointers = /* @__PURE__ */ new Map(); + const listeners = /* @__PURE__ */ new Set(); + let cache; + return { + getSnapshot: () => cache ??= new Map(pointers), + subscribe: (listener) => { + listeners.add(listener); + return () => { + listeners.delete(listener); + }; + }, + observe: (pointer) => { + const current = pointers.get(pointer.key); + if (current !== void 0 && current.seq >= pointer.seq) return; + pointers.set(pointer.key, pointer); + cache = void 0; + for (const listener of [...listeners]) listener(); + } + }; + } + /** Page-lifetime registry that gives all cards of one session the same Store. */ + var CordisRunCardRegistry = class { + sessions = /* @__PURE__ */ new Map(); + /** + * Return the persistent page-local Store for a session. + * @param sessionId - session whose cards share supersession state. + * @returns the page-local Store retained for that session. + */ + forSession(sessionId) { + let store = this.sessions.get(sessionId); + if (store === void 0) { + store = createStore(); + this.sessions.set(sessionId, store); + } + return store; + } + }; + /** + * Build the Package business-view key shared by registrations and Run cards. + * @param pluginId - stable Plugin identity. + * @param packageId - immutable Package identity. + * @returns the shared business-view key. + */ + function cordisToolViewKey(pluginId, packageId) { + return `${pluginId}.${packageId}`; + } + //#endregion + //#region lib/types/client/CordisRunRow.js + /** `cordis_run` card and the host seat for Package-owned interactive UI. */ + const READING_LABELS = { + idle: "status.idle", + "awaiting-approval": "status.awaitingApproval", + failed: "status.failed", + "client-pending": "status.clientPending", + running: "status.running", + removed: "status.removed", + superseded: "status.superseded" + }; + /** Render one activation result and, when eligible, its Package-owned view. */ + function CordisRunRow({ callId, block, inspect, renderSlot, useInventory, useLoaded, useRunCards, useActiveRuns, onObserveRunCard, t }) { + const card = cordisRunCard(block); + const inventory = useInventory((snapshot) => snapshot); + const loaded = useLoaded((snapshot) => snapshot); + const latest = useRunCards((snapshot) => snapshot); + const activeRuns = useActiveRuns((snapshot) => snapshot); + const key = card.state === "ok" && card.pluginId !== null && card.packageId !== null && card.pluginRunId !== null && card.seq !== null ? cordisToolViewKey(card.pluginId, card.packageId) : null; + (0, react.useEffect)(() => { + if (key === null || card.seq === null || card.pluginRunId === null) return; + onObserveRunCard({ + key, + callId, + seq: card.seq, + pluginRunId: card.pluginRunId + }); + }, [ + callId, + card.pluginRunId, + card.seq, + key, + onObserveRunCard + ]); + const row = card.pluginId === null ? void 0 : inventory.rows.find((candidate) => candidate.pluginId === card.pluginId); + const pointer = key === null ? void 0 : latest.get(key); + const superseded = pointer !== void 0 && pointer.callId !== callId && pointer.seq >= (card.seq ?? -1); + const activity = card.pluginId === null ? void 0 : activeRuns.get(card.pluginId); + const attempt = card.pluginRunId !== null && row?.latestRun?.pluginRunId === card.pluginRunId ? row.latestRun : void 0; + const awaitingApproval = attempt?.status === "awaiting-approval" || card.packageId !== null && activity?.phase === "awaiting-approval" && activity.packageId === card.packageId && (card.mode === null || activity.mode === card.mode); + const reading = card.pluginId !== null && inventory.removed.has(card.pluginId) ? "removed" : superseded ? "superseded" : awaitingApproval ? "awaiting-approval" : attempt?.status === "failed" ? "failed" : row !== void 0 && card.packageId !== null ? cordisVisibleStatus(row, card.packageId, loaded) : "idle"; + const status = t(READING_LABELS[reading]); + const summary = card.errorSummary ?? (card.pluginId === null ? callId : `${card.pluginId}${card.packageId === null ? "" : ` · ${card.packageId}`}`); + const showBusiness = reading === "running" && key !== null; + return (0, react_jsx_runtime.jsxs)("div", { + className: CordisRunRow_module_css_default.card, + "data-tool": "cordis_run", + "data-state": card.state, + "data-cordis-plugin-id": card.pluginId ?? void 0, + "data-cordis-package-id": card.packageId ?? void 0, + "data-cordis-run-id": card.pluginRunId ?? void 0, + "data-cordis-status": reading, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: CordisRunRow_module_css_default.row, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.icon, + children: card.state === "error" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }) : card.state === "stopped" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "warning" }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutline16, { size: 14 }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.title, + children: t(card.mode === "update" ? "row.updateTitle" : "row.runTitle") + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.separator, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: card.errorSummary === null ? CordisRunRow_module_css_default.summary : CordisRunRow_module_css_default.error, + children: summary + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisRunRow_module_css_default.status, + children: status + }), + inspect !== void 0 && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: CordisRunRow_module_css_default.inspect, + "aria-label": "Inspect", + onClick: inspect, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconInspectOutline12, {}) + }) + ] + }), + reading === "removed" && (0, react_jsx_runtime.jsx)("div", { + className: CordisRunRow_module_css_default.message, + children: t("run.removed") + }), + reading === "superseded" && (0, react_jsx_runtime.jsx)("div", { + className: CordisRunRow_module_css_default.message, + children: t("run.superseded") + }), + reading === "failed" && attempt?.error !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: CordisRunRow_module_css_default.message, + children: attempt.error.message + }), + showBusiness && card.pluginId !== null && card.packageId !== null && card.pluginRunId !== null && (0, react_jsx_runtime.jsx)("div", { + className: CordisRunRow_module_css_default.business, + "data-cordis-business-view": key, + children: renderSlot("tool.view.cordis", { + pluginId: card.pluginId, + packageId: card.packageId, + pluginRunId: card.pluginRunId + }, { + entryKey: key, + fallback: card.output === null ? null : (0, react_jsx_runtime.jsx)("pre", { + className: CordisRunRow_module_css_default.output, + children: card.output + }) + }) + }), + !showBusiness && reading !== "removed" && reading !== "superseded" && card.output !== null && (0, react_jsx_runtime.jsx)("pre", { + className: CordisRunRow_module_css_default.output, + children: card.output + }) + ] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/extensions/ui-cordis/src/client/CordisPanel.module.css.mjs + const css = ".Nqubda_layer{flex:none;align-items:center;width:100%;height:49px;margin:8px 0 0;display:flex;position:relative}.Nqubda_footerButtons{align-items:center;width:100%;display:flex}.Nqubda_badge{width:100%;height:49px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:0 8px 0 6px;font-family:inherit;font-size:14px;display:inline-flex;overflow:hidden}.Nqubda_badge:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.Nqubda_badge[data-active]{background:var(--dsw-alias-interactive-bg-hover)}.Nqubda_badgeLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Nqubda_badgeCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;line-height:16px}.Nqubda_layer.Nqubda_rail{width:36px;height:36px;margin:0}.Nqubda_rail .Nqubda_badge{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;padding:0}.Nqubda_rail .Nqubda_footerButtons{flex-direction:column;gap:2px}.Nqubda_panel{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:420px;max-width:calc(100vw - 24px);max-height:60vh;box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;display:flex;position:fixed;bottom:128px;left:12px;overflow:hidden}.Nqubda_header{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:10px 12px;display:flex}.Nqubda_body{flex:1;min-height:0;padding:4px 12px 12px;overflow-y:auto}.Nqubda_title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}.Nqubda_note,.Nqubda_readError{color:var(--dsw-alias-label-tertiary);margin:4px 0;font-size:12px;line-height:18px}.Nqubda_readError{color:var(--dsw-alias-state-error-primary)}.Nqubda_group{color:var(--dsw-alias-label-caption);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px;font-size:11px;font-weight:500;line-height:16px}.Nqubda_rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.Nqubda_row{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.Nqubda_row[data-cordis-awaiting]{border-color:var(--dsw-alias-state-business-primary)}.Nqubda_rowHead{align-items:center;gap:8px;display:flex}.Nqubda_rowId{color:var(--dsw-alias-label-tertiary);font-family:var(--dsh-font-mono,monospace);flex:none;font-size:11px;line-height:20px}.Nqubda_rowName{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}.Nqubda_rowStatus{background:var(--dsw-alias-button-ghost-active-fill);height:20px;color:var(--dsw-alias-label-caption);border-radius:10px;flex:none;align-items:center;padding:0 6px;font-size:11px;line-height:20px;display:inline-flex}.Nqubda_row[data-cordis-status=idle] .Nqubda_rowStatus{background:var(--dsw-alias-button-ghost-active-fill);color:var(--dsw-alias-label-caption)}.Nqubda_row[data-cordis-status=awaiting-approval] .Nqubda_rowStatus,.Nqubda_row[data-cordis-status=client-pending] .Nqubda_rowStatus{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.Nqubda_row[data-cordis-status=failed] .Nqubda_rowStatus{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.Nqubda_row[data-cordis-status=running] .Nqubda_rowStatus{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.Nqubda_rowDetail{align-items:center;gap:8px;min-height:28px;display:flex}.Nqubda_versionPicker{color:var(--dsw-alias-label-caption);align-items:center;gap:8px;font-size:11px;line-height:18px;display:flex}.Nqubda_versionPicker select{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-secondary);font:inherit;border-radius:7px;flex:1;padding:0 8px}.Nqubda_rowPurpose{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:18px;overflow:hidden}.Nqubda_rowError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}.Nqubda_rowActions{flex:none;align-items:center;gap:10px;display:flex}.Nqubda_transition{min-width:0;color:var(--dsw-alias-label-caption);align-items:center;gap:8px;font-size:11px;line-height:18px;display:flex}.Nqubda_transitionActions{gap:6px;margin-left:auto;display:flex}.Nqubda_transitionActions button{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:2px 8px}.Nqubda_transitionActions button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.Nqubda_transitionActions button:disabled{opacity:.4;cursor:default}.Nqubda_activeVersion{color:var(--dsw-alias-label-caption);font-size:11px;line-height:16px}.Nqubda_actionButton{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Nqubda_actionButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.Nqubda_actionButton:disabled{opacity:.4;cursor:default}.Nqubda_doubleCheck{width:17px;height:14px;display:inline-block;position:relative}.Nqubda_doubleCheck svg{position:absolute;top:1px}.Nqubda_doubleCheck svg:first-child{opacity:.7;left:0}.Nqubda_doubleCheck svg:last-child{left:5px}"; + const tagId = "@deepseek-ai/dsh-client-ui-cordis/CordisPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-cordis"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var CordisPanel_module_css_default = { + "note": "Nqubda_note", + "actionButton": "Nqubda_actionButton", + "doubleCheck": "Nqubda_doubleCheck", + "badgeLabel": "Nqubda_badgeLabel", + "rowError": "Nqubda_rowError", + "rows": "Nqubda_rows", + "title": "Nqubda_title", + "layer": "Nqubda_layer", + "versionPicker": "Nqubda_versionPicker", + "header": "Nqubda_header", + "rowName": "Nqubda_rowName", + "badge": "Nqubda_badge", + "row": "Nqubda_row", + "panel": "Nqubda_panel", + "badgeCount": "Nqubda_badgeCount", + "rowStatus": "Nqubda_rowStatus", + "rowDetail": "Nqubda_rowDetail", + "transitionActions": "Nqubda_transitionActions", + "rowHead": "Nqubda_rowHead", + "footerButtons": "Nqubda_footerButtons", + "readError": "Nqubda_readError", + "rowPurpose": "Nqubda_rowPurpose", + "group": "Nqubda_group", + "rowActions": "Nqubda_rowActions", + "activeVersion": "Nqubda_activeVersion", + "transition": "Nqubda_transition", + "body": "Nqubda_body", + "rowId": "Nqubda_rowId", + "rail": "Nqubda_rail" + }; + //#endregion + //#region lib/types/client/CordisPanel.js + /** Frame-wide dynamic Plugin inventory, approvals, versions, and lifecycle actions. */ + const STATUS_LABELS = { + idle: "status.idle", + "awaiting-approval": "status.awaitingApproval", + "client-pending": "status.clientPending", + running: "status.running", + failed: "status.failed" + }; + const RENDER_FAILURE_LABELS = { + abdicated: "render.failedAbdicated", + held: "render.failedHeld" + }; + function selectedPackageIdOf({ pluginId, listed, activity }, selected) { + const selectedPackageId = selected[pluginId]; + if (selectedPackageId !== void 0 && listed?.packages.some((pkg) => pkg.packageId === selectedPackageId)) return selectedPackageId; + return listed?.nextPackageId ?? listed?.currentPackageId ?? listed?.packages.at(-1)?.packageId ?? activity?.packageId; + } + function visiblePanelStatus(view, selectedPackageId, loaded) { + const { listed, activity } = view; + const latest = listed?.latestRun; + if (activity?.phase === "awaiting-approval" || latest?.status === "awaiting-approval") return "awaiting-approval"; + if (latest?.status === "failed" && latest.packageId === selectedPackageId) return "failed"; + if (listed?.activeRun === void 0) return "idle"; + return cordisVisibleStatus(listed, listed.activeRun.packageId, loaded); + } + function blockingFirst(rows) { + return [...rows.filter((row) => row.activity?.phase === "awaiting-approval"), ...rows.filter((row) => row.activity?.phase !== "awaiting-approval")]; + } + function RowAction({ label, children, ...props }) { + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label, + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: CordisPanel_module_css_default.actionButton, + "aria-label": label, + ...props, + children + }) + }); + } + function DoubleCheckIcon() { + return (0, react_jsx_runtime.jsxs)("span", { + className: CordisPanel_module_css_default.doubleCheck, + "aria-hidden": true, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 12 }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 12 })] + }); + } + /** Render the inventory panel and its unified footer action. */ + function CordisPanel({ wide, useSessions, useInventory, useActiveRuns, useRunErrors, useLoaded, useRenderFailures, onApprove, onDecline, onRun, onStop, onRemove, onRefresh, t }) { + const inventory = useInventory((snapshot) => snapshot); + const activeRuns = useActiveRuns((snapshot) => snapshot); + const errors = useRunErrors((snapshot) => snapshot); + const loaded = useLoaded((snapshot) => snapshot); + const renderFailures = useRenderFailures((snapshot) => snapshot); + const current = useSessions((state) => state.current); + const [open, setOpen] = (0, react.useState)(false); + const [selected, setSelected] = (0, react.useState)({}); + const [pending, setPending] = (0, react.useState)(/* @__PURE__ */ new Set()); + const [actionErrors, setActionErrors] = (0, react.useState)(/* @__PURE__ */ new Map()); + const visibleRequests = (0, react.useRef)(/* @__PURE__ */ new Set()); + (0, react.useEffect)(() => { + const now = /* @__PURE__ */ new Set(); + for (const activity of activeRuns.values()) if (activity.phase === "awaiting-approval") now.add(activity.requestId); + const discovered = [...now].some((requestId) => !visibleRequests.current.has(requestId)); + visibleRequests.current = now; + if (discovered) setOpen(true); + }, [activeRuns]); + (0, react.useEffect)(() => { + onRefresh(); + }, [onRefresh]); + (0, react.useEffect)(() => { + if (open) onRefresh(); + }, [onRefresh, open]); + const byPlugin = /* @__PURE__ */ new Map(); + for (const listed of inventory.rows) { + const activity = activeRuns.get(listed.pluginId); + byPlugin.set(listed.pluginId, { + pluginId: listed.pluginId, + agentId: activity?.agentId ?? listed.agentId, + listed, + ...activity === void 0 ? {} : { activity } + }); + } + for (const [pluginId, activity] of activeRuns) { + if (byPlugin.has(pluginId)) continue; + byPlugin.set(pluginId, { + pluginId, + agentId: activity.agentId, + activity + }); + } + const all = [...byPlugin.values()]; + const mine = blockingFirst(all.filter((row) => current !== void 0 && row.agentId === current)); + const theirs = blockingFirst(all.filter((row) => current === void 0 || row.agentId !== current)); + const approvals = [...activeRuns.values()].filter((activity) => activity.phase === "awaiting-approval").length; + const running = all.filter((view) => visiblePanelStatus(view, selectedPackageIdOf(view, selected), loaded) === "running").length; + if (all.length === 0) return null; + const runAction = async (pluginId, action) => { + if (pending.has(pluginId)) return; + setPending((currentPending) => new Set(currentPending).add(pluginId)); + setActionErrors((currentErrors) => { + const next = new Map(currentErrors); + next.delete(pluginId); + return next; + }); + try { + const result = await action(); + if (result !== void 0 && !result.ok) setActionErrors((currentErrors) => new Map(currentErrors).set(pluginId, result.message ?? "operation failed")); + } catch (error) { + setActionErrors((currentErrors) => new Map(currentErrors).set(pluginId, error instanceof Error ? error.message : String(error))); + } finally { + setPending((currentPending) => { + const next = new Set(currentPending); + next.delete(pluginId); + return next; + }); + onRefresh(); + } + }; + const renderRow = (view) => { + const { pluginId, listed, activity } = view; + const selectedPackageId = selectedPackageIdOf(view, selected); + const selectedPackage = listed !== void 0 && selectedPackageId !== void 0 ? packageOf(listed, selectedPackageId) : void 0; + const activePackage = listed?.activeRun === void 0 ? void 0 : packageOf(listed, listed.activeRun.packageId); + const name = selectedPackage?.name ?? (activity?.phase === "awaiting-approval" ? activity.name : pluginId); + const purpose = selectedPackage?.purpose ?? (activity?.phase === "awaiting-approval" ? activity.purpose : ""); + const latest = listed?.latestRun; + const awaiting = activity?.phase === "awaiting-approval" ? activity.requestId : latest?.status === "awaiting-approval" ? latest.approvalRequestId : void 0; + const status = visiblePanelStatus(view, selectedPackageId, loaded); + const busy = pending.has(pluginId) || activity?.phase === "orchestrating"; + const failure = errors.get(pluginId); + const hostFailure = latest?.status === "failed" ? latest.error : void 0; + const renderFailure = renderFailures.get(pluginId); + const actionError = actionErrors.get(pluginId); + const nextPackageId = listed?.nextPackageId !== void 0 && listed.nextPackageId !== listed.currentPackageId ? listed.nextPackageId : void 0; + const currentPackageId = listed?.currentPackageId; + const runMode = listed?.currentPackageId !== void 0 && selectedPackageId !== listed.currentPackageId ? "update" : "run"; + return (0, react_jsx_runtime.jsxs)("li", { + className: CordisPanel_module_css_default.row, + "data-cordis-row": pluginId, + "data-cordis-status": status, + "data-cordis-awaiting": awaiting !== void 0 || void 0, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.rowHead, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.rowId, + children: pluginId + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.rowName, + children: name + }), + (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.rowStatus, + children: t(STATUS_LABELS[status]) + }) + ] + }), + listed !== void 0 && listed.packages.length > 1 && selectedPackageId !== void 0 && (0, react_jsx_runtime.jsxs)("label", { + className: CordisPanel_module_css_default.versionPicker, + children: [(0, react_jsx_runtime.jsx)("span", { children: t("panel.version") }), (0, react_jsx_runtime.jsx)("select", { + value: selectedPackageId, + disabled: busy, + onChange: (event) => { + setSelected((currentSelected) => ({ + ...currentSelected, + [pluginId]: event.target.value + })); + }, + children: listed.packages.map((pkg) => (0, react_jsx_runtime.jsx)("option", { + value: pkg.packageId, + children: `${pkg.name} · ${pkg.packageId}` + }, pkg.packageId)) + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.rowDetail, + children: [(0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.rowPurpose, + children: purpose + }), (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.rowActions, + children: [ + awaiting !== void 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.approveOnce"), + "data-cordis-approve": awaiting, + disabled: busy, + onClick: () => { + runAction(pluginId, async () => { + await onApprove(awaiting, false); + setOpen(false); + }); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) + }), + (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.approvePlugin"), + "data-cordis-approve-plugin": awaiting, + disabled: busy, + onClick: () => { + runAction(pluginId, async () => { + await onApprove(awaiting, true); + setOpen(false); + }); + }, + children: (0, react_jsx_runtime.jsx)(DoubleCheckIcon, {}) + }), + (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.decline"), + "data-cordis-decline": awaiting, + disabled: busy, + onClick: () => { + runAction(pluginId, async () => { + await onDecline(awaiting); + setOpen(false); + }); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 }) + }) + ] }), + awaiting === void 0 && listed !== void 0 && selectedPackageId !== void 0 && listed.activeRun === void 0 && (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.run"), + "data-cordis-switch": "run", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRun({ + agentId: listed.agentId, + pluginId, + packageId: selectedPackageId, + mode: runMode, + hasClientHalf: selectedPackage?.hasClientHalf === true + })); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlayOutline16, { size: 14 }) + }), + awaiting === void 0 && listed !== void 0 && listed.activeRun !== void 0 && selectedPackageId !== listed.activeRun.packageId && selectedPackage !== void 0 && (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.run"), + "data-cordis-switch": "run", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRun({ + agentId: listed.agentId, + pluginId, + packageId: selectedPackage.packageId, + mode: runMode, + hasClientHalf: selectedPackage.hasClientHalf + })); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlayOutline16, { size: 14 }) + }), + awaiting === void 0 && listed !== void 0 && listed.activeRun !== void 0 && status === "client-pending" && activePackage !== void 0 && selectedPackageId === listed.activeRun.packageId && (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.run"), + "data-cordis-switch": "run", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRun({ + agentId: listed.agentId, + pluginId, + packageId: activePackage.packageId, + mode: "run", + hasClientHalf: true + })); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlayOutline16, { size: 14 }) + }), + awaiting === void 0 && listed !== void 0 && listed.activeRun !== void 0 && (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.stop"), + "data-cordis-switch": "stop", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onStop(listed.agentId, pluginId)); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconStopFill16, { size: 14 }) + }), + awaiting === void 0 && listed !== void 0 && (0, react_jsx_runtime.jsx)(RowAction, { + label: t("action.remove"), + "data-cordis-remove": pluginId, + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRemove(listed.agentId, pluginId)); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 14 }) + }) + ] + })] + }), + awaiting === void 0 && nextPackageId !== void 0 && listed !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.transition, + children: [ + (0, react_jsx_runtime.jsx)("span", { children: currentPackageId === void 0 ? "" : t("panel.current", { packageId: currentPackageId }) }), + (0, react_jsx_runtime.jsx)("span", { children: t("panel.next", { packageId: nextPackageId }) }), + (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.transitionActions, + children: [(0, react_jsx_runtime.jsx)("button", { + type: "button", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRun({ + agentId: listed.agentId, + pluginId, + packageId: nextPackageId, + mode: currentPackageId === void 0 ? "run" : "update", + hasClientHalf: packageOf(listed, nextPackageId)?.hasClientHalf === true + })); + }, + children: t("action.retry") + }), currentPackageId !== void 0 && (0, react_jsx_runtime.jsx)("button", { + type: "button", + disabled: busy, + onClick: () => { + runAction(pluginId, () => onRun({ + agentId: listed.agentId, + pluginId, + packageId: currentPackageId, + mode: "run", + hasClientHalf: packageOf(listed, currentPackageId)?.hasClientHalf === true + })); + }, + children: t("action.rollback") + })] + }) + ] + }), + failure !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: CordisPanel_module_css_default.rowError, + role: "alert", + children: `${failure.message} (${failure.reason})` + }), + failure === void 0 && hostFailure !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: CordisPanel_module_css_default.rowError, + role: "alert", + children: `${hostFailure.message} (${hostFailure.phase})` + }), + actionError !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: CordisPanel_module_css_default.rowError, + role: "alert", + children: actionError + }), + renderFailure !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: CordisPanel_module_css_default.rowError, + role: "alert", + "data-cordis-render-failure": renderFailure.slot, + "data-cordis-render-abdicated": renderFailure.abdicated || void 0, + children: `${t(RENDER_FAILURE_LABELS[renderFailure.abdicated ? "abdicated" : "held"], { slot: renderFailure.slot })} ${renderFailure.message}` + }), + activePackage !== void 0 && activePackage.packageId !== selectedPackageId && (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.activeVersion, + children: `${t("status.running")}: ${activePackage.name} · ${activePackage.packageId}` + }) + ] + }, pluginId); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: wide ? CordisPanel_module_css_default.layer : `${CordisPanel_module_css_default.layer} ${CordisPanel_module_css_default.rail}`, + children: [open && (0, react_jsx_runtime.jsxs)("section", { + className: CordisPanel_module_css_default.panel, + "data-cordis-panel": true, + "aria-label": t("panel.title"), + children: [(0, react_jsx_runtime.jsx)("header", { + className: CordisPanel_module_css_default.header, + children: (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.title, + children: t("panel.title") + }) + }), (0, react_jsx_runtime.jsxs)("div", { + className: CordisPanel_module_css_default.body, + children: [ + inventory.error !== void 0 && (0, react_jsx_runtime.jsx)("p", { + className: CordisPanel_module_css_default.readError, + role: "alert", + children: t("panel.readFailed", { message: inventory.error }) + }), + !inventory.read && inventory.error === void 0 && (0, react_jsx_runtime.jsx)("p", { + className: CordisPanel_module_css_default.note, + children: t("panel.loading") + }), + inventory.read && all.length === 0 && (0, react_jsx_runtime.jsx)("p", { + className: CordisPanel_module_css_default.note, + children: t("panel.empty") + }), + mine.length > 0 && (0, react_jsx_runtime.jsxs)("section", { children: [(0, react_jsx_runtime.jsx)("h3", { + className: CordisPanel_module_css_default.group, + children: t("panel.group.current") + }), (0, react_jsx_runtime.jsx)("ul", { + className: CordisPanel_module_css_default.rows, + children: mine.map(renderRow) + })] }), + theirs.length > 0 && (0, react_jsx_runtime.jsxs)("section", { children: [(0, react_jsx_runtime.jsx)("h3", { + className: CordisPanel_module_css_default.group, + children: t("panel.group.others") + }), (0, react_jsx_runtime.jsx)("ul", { + className: CordisPanel_module_css_default.rows, + children: theirs.map(renderRow) + })] }) + ] + })] + }), (0, react_jsx_runtime.jsx)("div", { + className: CordisPanel_module_css_default.footerButtons, + children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: CordisPanel_module_css_default.badge, + "data-cordis-badge": all.length, + "data-cordis-approval-badge": approvals, + "data-active": approvals > 0 || void 0, + "aria-label": t("panel.plugins.aria"), + "aria-expanded": open, + onClick: () => { + setOpen((value) => !value); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCordisPluginOutline14, {}), wide && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.badgeLabel, + children: t("panel.trigger") + }), (0, react_jsx_runtime.jsx)("span", { + className: CordisPanel_module_css_default.badgeCount, + children: t("panel.runningCount", { count: running }) + })] })] + }) + })] + }); + } + //#endregion + //#region lib/types/client/inventory.js + /** + * The host's definition registry as this page last read it, owned by the + * plugin's apply closure. + * + * The panel is a frame-wide surface, so it cannot derive this from any session: + * the registry is global and the read is a single global call. The rows are + * re-read rather than patched, because the wire announcements + * (`cordis/dynamic-package` / `/retract`) carry no labels and a definition + * can appear or disappear between them — a patch-in-place cache would drift into + * showing definitions the host no longer holds. + * + * Reads are single-flight: several announcements settling at once, or a badge + * opening while a reconnect re-reads, must not multiply the call. Single-flight + * alone would be wrong across a reconnect, though — the in-flight read belongs to + * the previous connection, so a reset both discards its answer and frees the slot + * for a fresh one. Without that, a reconnect either loses its re-read to the old + * call or has the old host's rows published on top of it. + */ + /** + * Create the inventory source. + * @param port - the RPC seam the read goes through. + * @param onError - reporter for a failed read (console in production, captured in specs). + * @returns the inventory observable and its read trigger. + */ + function createCordisInventory(port, onError) { + const listeners = /* @__PURE__ */ new Set(); + let snapshot = { + rows: [], + removed: /* @__PURE__ */ new Set(), + read: false + }; + let inFlight; + let generation = 0; + const publish = (next) => { + snapshot = next; + for (const listener of [...listeners]) listener(); + }; + return { + getSnapshot: () => snapshot, + subscribe: (fn) => { + listeners.add(fn); + return () => { + listeners.delete(fn); + }; + }, + refresh: () => { + if (inFlight !== void 0) return; + const issued = generation; + inFlight = port.inventory().then((rows) => { + if (issued !== generation) return; + const removed = new Set(snapshot.removed); + const live = new Set(rows.map((row) => row.pluginId)); + for (const previous of snapshot.rows) if (!live.has(previous.pluginId)) removed.add(previous.pluginId); + publish({ + rows, + removed, + read: true + }); + }, (error) => { + if (issued !== generation) return; + onError(error); + publish({ + rows: snapshot.rows, + removed: snapshot.removed, + read: snapshot.read, + error: error instanceof Error ? error.message : "reading the cordis inventory failed" + }); + }).then(() => { + if (issued === generation) inFlight = void 0; + }); + }, + retire: (pluginId) => { + const removed = new Set(snapshot.removed); + removed.add(pluginId); + publish({ + ...snapshot, + rows: snapshot.rows.filter((row) => row.pluginId !== pluginId), + removed + }); + }, + reset: () => { + generation += 1; + inFlight = void 0; + publish({ + rows: [], + removed: snapshot.removed, + read: false + }); + } + }; + } + //#endregion + //#region lib/types/client/locales.js + /** Cordis dynamic-plugin UI dictionaries. */ + const NS = "cordis"; + /** Simplified Chinese Cordis UI messages. */ + const zh = { + "row.defineTitle": "注册 Cordis �件", + "row.runTitle": "�行 Cordis �件", + "row.updateTitle": "更新 Cordis �件", + "row.stopTitle": "�止 Cordis �件", + "row.removeTitle": "移除 Cordis �件", + "purpose.missing": "(未填写用途)", + "status.idle": "待激活", + "status.awaitingApproval": "待审批", + "status.failed": "�行失败", + "status.clientPending": "Client 待激活", + "status.running": "�行中", + "status.removed": "已移除", + "status.superseded": "已有更新", + "run.removed": "包已�存在", + "run.superseded": "已有更新的�行�片,请查看下方", + "panel.hint": "�行控制在左下角设置上方的 Cordis ��", + "panel.plugins.aria": "Cordis �件", + "panel.approvals.aria": "Cordis 审批", + "panel.trigger": "Cordis Plugin", + "panel.runningCount": "{count} running", + "panel.title": "Cordis �件", + "panel.empty": "还没有定义任何�件", + "panel.loading": "读�中…", + "panel.readFailed": "读��件清�失败:{message}", + "panel.group.current": "当�会�", + "panel.group.others": "其他会�", + "panel.version": "版本", + "panel.current": "当�:{packageId}", + "panel.next": "待切�:{packageId}", + "action.approve": "�许", + "action.approveOnce": "仅�许此版本", + "action.approvePlugin": "�许此�件的�续版本", + "action.decline": "拒�", + "action.run": "�行", + "action.stop": "�止", + "action.remove": "移除", + "action.retry": "�试", + "action.rollback": "回退", + "render.failedAbdicated": "{slot} 渲染失败,已��默认界�:", + "render.failedHeld": "{slot} 渲染失败:", + "a11y.defining": "正在定义�件", + "a11y.failed": "定义失败", + "a11y.stopped": "定义已中断", + "body.source": "�件代�", + "body.hostCode": "Host", + "body.clientCode": "Client", + "body.output": "结果", + "body.copy": "�制", + "body.copied": "已�制" + }; + /** English Cordis UI messages. */ + const en = { + "row.defineTitle": "Register Cordis Plugin", + "row.runTitle": "Run Cordis Plugin", + "row.updateTitle": "Update Cordis Plugin", + "row.stopTitle": "Stop Cordis Plugin", + "row.removeTitle": "Remove Cordis Plugin", + "purpose.missing": "(no purpose given)", + "status.idle": "Ready", + "status.awaitingApproval": "Awaiting approval", + "status.failed": "Run failed", + "status.clientPending": "Client ready to activate", + "status.running": "Running", + "status.removed": "Removed", + "status.superseded": "Newer run available", + "run.removed": "This package no longer exists", + "run.superseded": "A newer run card is available below", + "panel.hint": "Run controls live in the Cordis panel above Settings", + "panel.plugins.aria": "Cordis plugins", + "panel.approvals.aria": "Cordis approvals", + "panel.trigger": "Cordis Plugin", + "panel.runningCount": "{count} running", + "panel.title": "Cordis plugins", + "panel.empty": "No plugins defined yet", + "panel.loading": "Reading…", + "panel.readFailed": "Reading the plugin inventory failed: {message}", + "panel.group.current": "This session", + "panel.group.others": "Other sessions", + "panel.version": "Version", + "panel.current": "Current: {packageId}", + "panel.next": "Next: {packageId}", + "action.approve": "Allow", + "action.approveOnce": "Allow this version only", + "action.approvePlugin": "Allow future versions of this plugin", + "action.decline": "Decline", + "action.run": "Run", + "action.stop": "Stop", + "action.remove": "Remove", + "action.retry": "Retry", + "action.rollback": "Roll back", + "render.failedAbdicated": "Rendering failed in {slot}; the default UI was restored:", + "render.failedHeld": "Rendering failed in {slot}:", + "a11y.defining": "Defining the plugin", + "a11y.failed": "Definition failed", + "a11y.stopped": "Definition interrupted", + "body.source": "Plugin source", + "body.hostCode": "Host", + "body.clientCode": "Client", + "body.output": "Result", + "body.copy": "Copy", + "body.copied": "Copied" + }; + //#endregion + //#region lib/types/client/index.js + /** Cordis dynamic-plugin cards, inventory panel, business-view host, and `@pluginId` source. */ + /** Required services for the two Tool cards, panel, Remote lifecycle, and Slash source. */ + const inject = [ + "slots", + "locale", + "inputTriggers", + "remote", + "remote.dynamicCordisRunner", + "dynamicCordisRunner" + ]; + /** Mount every Cordis browser surface over the shared Host inventory. */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-cordis: dictionaries"); + const port = { + stop: async (sessionId, pluginId) => { + const answered = await ctx.remote.dynamicCordisRunner.stopFromPanel(sessionId, pluginId); + if (!answered.ok) return { + ok: false, + message: `${answered.error.code}: ${answered.error.message}` + }; + if (answered.value.ok || answered.value.reason === "not-running") return { ok: true }; + return { + ok: false, + message: answered.value.message + }; + }, + remove: async (sessionId, pluginId) => { + const answered = await ctx.remote.dynamicCordisRunner.undefineFromPanel(sessionId, pluginId); + if (!answered.ok) return { + ok: false, + message: `${answered.error.code}: ${answered.error.message}` + }; + return answered.value.ok ? { ok: true } : { + ok: false, + message: answered.value.message + }; + }, + inventory: async () => { + const answered = await ctx.remote.dynamicCordisRunner.inventory(); + if (!answered.ok) throw new Error(`${answered.error.code}: ${answered.error.message}`); + return answered.value; + } + }; + const inventory = createCordisInventory(port, (error) => { + console.error("[ui-cordis] reading the Cordis inventory failed:", error); + }); + const runner = ctx.dynamicCordisRunner; + const loaded = { + getSnapshot: () => runner.getSnapshot(), + subscribe: (fn) => runner.subscribe(fn) + }; + const runCards = new CordisRunCardRegistry(); + ctx.effect(() => inventory.subscribe(() => { + const snapshot = inventory.getSnapshot(); + if (snapshot.read) runner.reconcileApprovals(snapshot.rows); + }), "ui-cordis: reconcile pending approvals"); + ctx.remote.$on("cordis/dynamic-package", () => { + inventory.refresh(); + }); + ctx.remote.$on("cordis/dynamic-retract", () => { + inventory.refresh(); + }); + ctx.remote.$on("cordis/request-run", (request) => { + if (!inventory.getSnapshot().rows.some((row) => row.pluginId === request.pluginId)) inventory.refresh(); + }); + ctx.remote.$on("cordis/request-run-resolved", () => { + inventory.refresh(); + }); + ctx.on("connection/reset", () => { + inventory.reset(); + inventory.refresh(); + }); + ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({ + name: "sidebar.footer.action", + id: "cordis-panel", + locale: NS, + inject: () => ({ + hooks: { + inventory, + activeRuns: runner.activeRuns, + runErrors: runner.lastRunError, + loaded, + renderFailures: runner.renderFailures + }, + onApprove: (requestId, approveFutureVersions) => runner.approve(requestId, approveFutureVersions), + onDecline: (requestId) => runner.decline(requestId), + onRun: (request) => runner.startUserRun(request), + onStop: async (sessionId, pluginId) => { + const result = await port.stop(sessionId, pluginId); + inventory.refresh(); + return result; + }, + onRemove: async (sessionId, pluginId) => { + const result = await port.remove(sessionId, pluginId); + if (result.ok) inventory.retire(pluginId); + inventory.refresh(); + return result; + }, + onRefresh: () => { + inventory.refresh(); + } + }) + }, CordisPanel)); + const cardFace = () => ({ hooks: { + inventory, + loaded + } }); + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "cordis_define", + locale: NS, + inject: cardFace + }, CordisDefineRow)); + ctx.slots.inject("tool.call.toolview", () => ctx.slots.register({ + name: "tool.call.toolview", + key: "cordis_run", + locale: NS, + children: { "tool.view.cordis": { + kind: "keyed", + scope: "session" + } }, + inject: (sessionId) => { + const store = runCards.forSession(sessionId); + return { + hooks: { + inventory, + loaded, + runCards: store, + activeRuns: runner.activeRuns + }, + onObserveRunCard: (pointer) => { + store.observe(pointer); + } + }; + } + }, CordisRunRow)); + ctx.slots.inject("tool.call.toolview", function* () { + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "cordis_stop", + locale: NS + }, CordisActionRow); + yield ctx.slots.register({ + name: "tool.call.toolview", + key: "cordis_undefine", + locale: NS + }, CordisActionRow); + }); + const rowsOf = (sessionId, query) => inventory.getSnapshot().rows.filter((row) => row.agentId === sessionId && String(row.pluginId).includes(query)); + const source = { + trigger: "@", + name: "cordis", + order: 1, + candidates(session, { query }) { + const rows = rowsOf(session.sessionId, query); + return Promise.resolve(rows.map((row) => { + const packageId = row.nextPackageId ?? row.currentPackageId ?? row.packages.at(-1)?.packageId; + const pkg = packageId === void 0 ? void 0 : row.packages.find((candidate) => candidate.packageId === packageId); + return { + name: String(row.pluginId), + ...pkg === void 0 ? {} : { description: pkg.purpose } + }; + })); + }, + warm() { + inventory.refresh(); + }, + lexicon(session) { + return rowsOf(session.sessionId, "").map((row) => String(row.pluginId)); + }, + subscribeLexicon(_session, listener) { + return inventory.subscribe(listener); + }, + onPick({ candidate }) { + return { text: `@${candidate.name} ` }; + } + }; + const slash = ctx.get("inputTriggers"); + ctx.effect(() => slash.registerSource(source), "ui-cordis: @pluginId source"); + inventory.refresh(); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000015 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000015 new file mode 100644 index 0000000..86e7906 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000015 @@ -0,0 +1,9795 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-conversation", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_dsh_client_ui_slots = require("@deepseek-ai/dsh-client-ui-slots"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_ui_attachment = require("@deepseek-ai/dsh-client-ui-attachment"); + //#region lib/types/client/stores.js + /** + * Per-session chat store shared by conversation and details registrations. + * The plugin creates its handle at apply time so identity follows the fiber. + */ + /** + * Declares the per-session chat state and write surface. + * @returns the store handle. + */ + function createChatStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({ + init: () => ({ + selection: null, + draft: "", + view: null, + inspect: null + }), + persist: "dsh.conversation.chat", + actions: { + select: (d, target) => { + d.selection = target; + }, + setDraft: (d, text) => { + d.draft = text; + }, + setView: (d, view) => { + d.view = view; + }, + setInspect: (d, target) => { + d.inspect = target; + } + } + }); + } + //#endregion + //#region lib/types/client/service.js + /** + * Scope-addressed conversation send, cancel, and history orchestration. + * + * Scope addressing rides the cordis Service tracker: property access through + * `ctx.conversation` rebinds `this.ctx` to the caller's context, so methods + * read the session tag with `scopeOf`. Mutable state must remain reachable + * through one property read; assignment through the tracker proxy and `#` + * private fields bypass that rebinding. + */ + /** Create one browser-only draft descriptor; only its id enters input state. */ + function browserDraftAttachment(file) { + return { + kind: "image", + id: crypto.randomUUID(), + previewUrl: URL.createObjectURL(file), + file + }; + } + /** Unsupported browser-declared image type, localized by the UI boundary. */ + var UnsupportedImageMediaTypeError = class extends Error { + /** Browser-declared MIME value, possibly empty. */ + mediaType; + /** @param mediaType - Browser-declared MIME value, possibly empty. */ + constructor(mediaType) { + super(`unsupported image media type: ${mediaType || "(empty)"}`); + this.name = "UnsupportedImageMediaTypeError"; + this.mediaType = mediaType; + } + }; + /** Scope-addressed conversation service (root singleton, provided as `conversation`). */ + var ConversationController = class extends _deepseek_ai_cordis.Service { + /** The per-session input machine registry (SessionInputResolver face). */ + input; + /** The per-session composer-block registry. */ + blocks; + draftAttachments = /* @__PURE__ */ new Map(); + imageUrls = /* @__PURE__ */ new Map(); + imageGenerations = /* @__PURE__ */ new Map(); + createdImageUrls = /* @__PURE__ */ new Set(); + disposed = false; + /** + * @param ctx - owning root context (the plugin apply context; the service + * registers itself and follows that fiber's lifetime). + * @param config - carries the SessionInputResolver and composer-block registry + * constructed by the plugin apply (the same instances the slot inject + * factories close over). + */ + constructor(ctx, config) { + super(ctx, "conversation"); + this.input = config.input; + this.blocks = config.blocks; + ctx.effect(() => () => { + this.disposed = true; + for (const url of this.createdImageUrls) revokePreview(url); + this.createdImageUrls.clear(); + this.draftAttachments.clear(); + this.imageUrls.clear(); + this.imageGenerations.clear(); + }, "conversation attachment URL cache"); + } + /** + * Send a prompt into the scoped session. Business failures also land in the + * session snapshot's promptError (object-layer state); the rejection here + * exists for caller choreography (the composer restores the draft on it). + * @param text - prompt text, sent verbatim as one text block. + */ + async send(text) { + const result = await this.scopedSession("send").prompt([{ + type: "text", + text + }], "queue"); + if (!result.ok) throw new Error(`conversation.send failed: ${result.error.code}: ${result.error.message}`); + } + /** + * Submit ordered draft images with text through one host admission. + * @param session - target session. + * @param text - serialized prompt text. + * @param imageIds - ordered draft-local attachment ids. + * @param mode - queue or steer delivery selected by composer policy. + */ + async sendSession(session, text, imageIds, mode) { + const attachments = this.draftImages(imageIds); + if (attachments.length !== imageIds.length) throw new Error("conversation.sendSession: one or more draft images are no longer available"); + const content = [...await this.serializeImages(attachments.map((attachment) => attachment.file)), ...text === "" ? [] : [{ + type: "text", + text + }]]; + const result = await session.prompt(content, mode); + if (!result.ok) throw new Error(`conversation.send failed: ${result.error.code}: ${result.error.message}`); + this.releaseDraftImages(attachments); + } + /** + * Create runtime-only draft images and their object URLs. + * @param files - browser files to register after MIME validation. + * @returns ordered draft descriptors. + */ + createDraftImages(files) { + for (const file of files) imageMediaType(file.type); + return files.map((file) => { + const attachment = browserDraftAttachment(file); + this.draftAttachments.set(attachment.id, attachment); + this.createdImageUrls.add(attachment.previewUrl); + return attachment; + }); + } + /** + * Resolve ordered input-state ids to runtime-owned draft images. + * @param ids - draft attachment ids. + * @returns descriptors that remain live, in requested order. + */ + draftImages(ids) { + const attachments = []; + for (const id of ids) { + const attachment = this.draftAttachments.get(id); + if (attachment !== void 0) attachments.push(attachment); + } + return attachments; + } + /** + * Release one browser-owned draft image and preview URL. + * @param id - draft attachment id. + */ + releaseDraftImage(id) { + const attachment = this.draftAttachments.get(id); + if (attachment === void 0) return; + this.draftAttachments.delete(id); + this.createdImageUrls.delete(attachment.previewUrl); + revokePreview(attachment.previewUrl); + } + /** + * Release a set of browser-owned draft images. + * @param attachments - descriptors to release. + */ + releaseDraftImages(attachments) { + for (const attachment of attachments) this.releaseDraftImage(attachment.id); + } + /** + * Resolve and cache one session-authorized historical image URL. + * @param sessionId - owning session authorization scope. + * @param attachment - durable image reference. + * @returns browser URL valid until its rendered session is released. + */ + resolveImage(sessionId, attachment) { + if (this.disposed) return Promise.reject(/* @__PURE__ */ new Error("conversation.resolveImage: service is disposed")); + const key = `${sessionId}:${attachment.attachmentId}`; + const cached = this.imageUrls.get(key); + if (cached !== void 0) return cached.pending; + const generation = this.imageGenerations.get(sessionId) ?? 0; + const session = this.requireSessions().binding(sessionId)?.session; + if (session === void 0) return Promise.reject(/* @__PURE__ */ new Error(`conversation.resolveImage: unknown session "${sessionId}"`)); + const pending = session.readAttachment(attachment.attachmentId).then((result) => { + if (!result.ok) throw new Error(`${result.error.code}: ${result.error.message}`); + if (this.disposed) throw new Error("conversation.resolveImage: service was disposed before loading completed"); + if ((this.imageGenerations.get(sessionId) ?? 0) !== generation) throw new Error("historical image scope was released before loading completed"); + if (typeof URL.createObjectURL !== "function") return `data:${result.value.attachment.mediaType};base64,${bytesToBase64(result.value.data)}`; + const bytes = Uint8Array.from(result.value.data); + const url = URL.createObjectURL(new Blob([bytes.buffer], { type: result.value.attachment.mediaType })); + this.createdImageUrls.add(url); + return url; + }).catch((error) => { + if (this.imageUrls.get(key)?.generation === generation) this.imageUrls.delete(key); + throw error; + }); + this.imageUrls.set(key, { + sessionId, + generation, + pending + }); + return pending; + } + /** + * Release every historical image URL owned by one rendered session. + * @param sessionId - rendered session scope. + */ + releaseSessionImages(sessionId) { + this.imageGenerations.set(sessionId, (this.imageGenerations.get(sessionId) ?? 0) + 1); + for (const [key, entry] of this.imageUrls) { + if (entry.sessionId !== sessionId) continue; + this.imageUrls.delete(key); + entry.pending.then((url) => { + if (!this.createdImageUrls.delete(url)) return; + revokePreview(url); + }, () => {}); + } + } + /** Apply one operation to a pending queue occurrence. */ + async updateQueue(itemId, action) { + const result = await this.scopedSession("updateQueue").updateQueue(itemId, action); + if (!result.ok) { + if (action.kind === "steer" && (result.error.code === "steer-unavailable" || result.error.code === "queue-item-not-found")) return; + throw new Error(`conversation.updateQueue failed: ${result.error.code}: ${result.error.message}`); + } + } + /** Cancel the scoped session's in-flight turn while preserving Queue (failures land in promptError and reject, as in send). */ + async cancel() { + const result = await this.scopedSession("cancel").cancel(); + if (!result.ok) throw new Error(`conversation.cancel failed: ${result.error.code}: ${result.error.message}`); + } + /** Pull one older history page for the scoped Session. */ + async loadOlder() { + await this.scopedSession("loadOlder").loadOlder(); + } + /** Resolve the caller scope's session face or throw on root contexts. */ + scopedSession(op) { + const id = this.scopeId(op); + const binding = this.requireSessions().binding(id); + if (binding === void 0) throw new Error(`conversation.${op}: session "${id}" resolved no binding`); + return binding.session; + } + /** Read the caller's session scope tag via the sessions service; root contexts fail loud. */ + scopeId(op) { + const id = this.requireSessions().scopeOf(this.ctx); + if (id === void 0) throw new Error(`conversation.${op} requires a session scope — address one via ctx.sessions.scope(id).conversation`); + return id; + } + requireSessions() { + const sessions = this.ctx.get("sessions"); + if (sessions === void 0) throw new Error("conversation: sessions service unavailable"); + return sessions; + } + /** Convert browser files to canonical base64 prompt parts. */ + serializeImages(images) { + return Promise.all(images.map(async (file) => ({ + type: "image", + mediaType: imageMediaType(file.type), + data: bytesToBase64(new Uint8Array(await file.arrayBuffer())), + ...file.name === "" ? {} : { name: file.name } + }))); + } + }; + function imageMediaType(value) { + switch (value) { + case "image/png": + case "image/jpeg": + case "image/webp": + case "image/gif": return value; + default: throw new UnsupportedImageMediaTypeError(value); + } + } + function bytesToBase64(data) { + let binary = ""; + const chunk = 32768; + for (let offset = 0; offset < data.length; offset += chunk) binary += String.fromCharCode(...data.subarray(offset, offset + chunk)); + return btoa(binary); + } + function revokePreview(url) { + if (url.startsWith("blob:")) URL.revokeObjectURL(url); + } + //#endregion + //#region lib/types/client/input/blocks.js + /** + * Composer blocks: the one way another plugin stops a session's input. + * + * The composer cannot read the plugins that would know — the dependency runs + * ui-model-selection → ui-conversation, never back — so a blocker pushes here and the + * bar reads its own session's store. A block carries the localized reason it + * exists, because the plugin that raised it owns that copy; the composer only + * knows how to render an inert textarea with a placeholder, exactly as it + * already does for a session with no workspace. + * + * This is an affordance, not enforcement: the Host refuses a prompt it cannot + * route regardless of what any client disables. + */ + /** The per-session composer-block registry (one instance per plugin fiber). */ + var ComposerBlockRegistry = class { + stores = /* @__PURE__ */ new Map(); + /** @inheritdoc */ + set(sessionId, block) { + const store = this.storeFor(sessionId); + if (store.getSnapshot()?.reason === block?.reason) return; + store.set(block); + } + /** @inheritdoc */ + storeFor(sessionId) { + const existing = this.stores.get(sessionId); + if (existing !== void 0) return existing; + const created = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(void 0); + this.stores.set(sessionId, created); + return created; + } + /** @inheritdoc */ + forget(sessionId) { + this.stores.delete(sessionId); + } + }; + //#endregion + //#region lib/types/client/queue/store.js + /** + * Project a session's transient inbox rows as a bare observable (subscribe/getSnapshot). + * The wiring layer overlays this onto InputState.queue; the runtime + * QueuedMessage and the input-contract QueuedMessage are structurally + * identical. + * @param session - the resident session face. + * @returns the queue read face (snapshot reference stable while the queue is unchanged). + */ + function queueReadFaceOf(session) { + return { + getSnapshot: () => session.getSnapshot().queue, + subscribe: (fn) => session.subscribe(fn) + }; + } + /** The machine never writes the queue; the wiring layer overlays the queue store's projection. */ + const EMPTY_QUEUE$1 = []; + /** Undo ring depth (bounded self-managed transaction log). */ + const LOG_LIMIT = 100; + /** Exhaustiveness backstop for the closed InputEvent / guard unions. */ + function unreachable(value) { + throw new Error(`unreachable input event: ${JSON.stringify(value)}`); + } + /** + * Strip the claim token off a draft to yield submit args. Leading whitespace + * (incl. newlines — leading-trigger trim) is tolerated; a bare `/name` + * missing the token's trailing separator yields empty args. Exactly one + * separator char is consumed; the remainder — newlines included — stays + * verbatim (`/goal x\ny` → `x\ny`). + */ + function argsAfter(draft, token) { + const s = draft.trimStart(); + if (s.startsWith(token)) return s.slice(token.length); + const base = token.trimEnd(); + if (s.startsWith(base)) { + const rest = s.slice(base.length); + return /^\s/.test(rest) ? rest.slice(1) : rest; + } + return ""; + } + /** + * Prefix/suffix common-scan recovering the edit range between two drafts + * (used when the wiring layer cannot supply one from the DOM event). + */ + function diffEdit(prev, next) { + let p = 0; + const maxCommon = Math.min(prev.length, next.length); + while (p < maxCommon && prev[p] === next[p]) p += 1; + let s = 0; + const maxSuffix = maxCommon - p; + while (s < maxSuffix && prev[prev.length - 1 - s] === next[next.length - 1 - s]) s += 1; + return { + start: p, + end: prev.length - s, + insertedLength: next.length - s - p + }; + } + /** + * Pure input machine, one instance per session (per-session isolation is by + * construction). The machine constructs one AbortController per SubmitAttempt + * at enter time and aborts it itself on release; the shell never aborts, it + * only observes attempt.signal on its adjudicate/submit promises. Stale + * attempts (any adjudicated / adjudication-failed / submit-settled whose seq + * is not the in-flight one) are dropped: same state, zero effects. + */ + var InputMachine = class { + draft = ""; + draftRev = 0; + phase = "plain"; + claim; + occurrences = []; + occurrenceSeq = 0; + seq = 0; + inflight; + log = []; + redoStack = []; + /** Open single-char typing run: the next contiguous char within the window coalesces. */ + typingRun; + paste; + pasteSeq = 0; + mergeWindowMs; + now; + constructor(options = {}) { + this.mergeWindowMs = options.mergeWindowMs ?? 1e3; + this.now = options.now ?? (() => 0); + } + /** Read-only snapshot of the machine state (queue always empty at this tier). */ + get state() { + const c = this.claim; + return { + draft: this.draft, + imageIds: [], + draftRev: this.draftRev, + phase: this.phase, + ...c ? { claim: { + token: c.token, + ...c.hint !== void 0 ? { hint: c.hint } : {} + } } : {}, + occurrences: this.occurrences, + ...this.paste !== void 0 ? { paste: this.paste } : {}, + queue: EMPTY_QUEUE$1 + }; + } + /** + * Feed one event through the machine. + * @param ev - Input event; the single write path for all input state. + * @returns Effects for the shell to execute in order; empty on no-ops, locks, and dropped stale events. + */ + dispatch(ev) { + switch (ev.type) { + case "draft-changed": return this.onDraftChanged(ev.draft, ev.editRange); + case "begin-command": return this.onBeginCommand(ev.claim, ev.span); + case "insert-ref": return this.onInsertRef(ev.reference, ev.span); + case "consume-token": return this.onConsumeToken(ev.guard); + case "set-invalid": return this.onSetInvalid(ev.invalidIds); + case "undo": return this.onUndo(); + case "redo": return this.onRedo(); + case "paste-begin": return this.onPasteBegin(ev.text, ev.selection, ev.components, ev.generation); + case "paste-upgrade": return this.onPasteUpgrade(ev.attemptId, ev.span, ev.reference); + case "invalidate-paste": + this.paste = void 0; + return []; + case "enter": return this.onEnter(ev.mode); + case "adjudicated": return this.onAdjudicated(ev.attempt, ev.outcome); + case "adjudication-failed": return this.onAdjudicationFailed(ev.attempt, ev.message); + case "submit-settled": return this.onSubmitSettled(ev); + case "send-committed": return this.onSendCommitted(); + case "release": return this.onRelease(); + default: return unreachable(ev); + } + } + /** Adopt a new draft: bump the revision (the span-CAS invalidation point). */ + adopt(draft) { + this.draft = draft; + this.draftRev += 1; + } + /** Push one undo unit (before-state), trim the ring, and cut the redo chain. */ + pushTxn(selectionBefore) { + this.log.push({ + draftBefore: this.draft, + occurrencesBefore: this.occurrences, + ...selectionBefore !== void 0 ? { selectionBefore } : {} + }); + if (this.log.length > LOG_LIMIT) this.log.shift(); + this.redoStack = []; + } + /** + * Reconcile the occurrence table with one edit (old-draft coordinates): + * entries past the range shift by the length delta; entries whose + * placeholder sits inside the replaced range go away whole (a + * deletion/replacement intersecting a placeholder acts on the whole chip). + */ + reconcile(range) { + const delta = range.insertedLength - (range.end - range.start); + const kept = []; + for (const o of this.occurrences) if (o.offset < range.start) kept.push(o); + else if (o.offset >= range.end) kept.push(delta === 0 ? o : { + ...o, + offset: o.offset + delta + }); + this.occurrences = kept; + } + /** Claimed integrity watch: any mutation that breaks the token prefix releases the claim. */ + watchClaim() { + if (this.phase === "claimed" && this.claim !== void 0 && !this.draft.startsWith(this.claim.token)) { + this.phase = "plain"; + this.claim = void 0; + } + } + /** Mint one occurrence at a draft offset. */ + mint(reference, offset) { + this.occurrenceSeq += 1; + return { + occurrenceId: this.occurrenceSeq, + source: reference.source, + ref: reference.ref, + offset, + label: reference.label, + clipboardText: reference.clipboardText + }; + } + /** Splice minted entries into the offset-sorted table. */ + withMinted(minted) { + if (minted.length === 0) return; + this.occurrences = [...this.occurrences, ...minted].sort((a, b) => a.offset - b.offset); + } + onDraftChanged(draft, editRange) { + if (draft === this.draft) return []; + const range = editRange ?? diffEdit(this.draft, draft); + const typing = range.start === range.end && range.insertedLength === 1; + const at = this.now(); + const run = this.typingRun; + if (!(typing && run !== void 0 && run.end === range.start && at - run.at <= this.mergeWindowMs)) this.pushTxn({ + start: range.start, + end: range.end + }); + this.typingRun = typing ? { + end: range.start + 1, + at + } : void 0; + this.reconcile(range); + this.adopt(draft); + this.watchClaim(); + this.paste = void 0; + return []; + } + /** Span CAS: revision equality (content identity follows) plus bounds sanity. */ + casOk(span) { + return span.draftRev === this.draftRev && span.start >= 0 && span.start <= span.end && span.end <= this.draft.length; + } + onBeginCommand(claim, span) { + if (this.phase !== "plain" && this.phase !== "claimed") return []; + if (!this.casOk(span) || this.draft.slice(0, span.start).trim() !== "") return []; + this.pushTxn(); + this.typingRun = void 0; + this.reconcile({ + start: 0, + end: span.end, + insertedLength: claim.token.length + }); + this.adopt(claim.token + this.draft.slice(span.end)); + this.claim = claim; + this.phase = "claimed"; + this.paste = void 0; + return []; + } + onInsertRef(reference, span) { + if (this.phase !== "plain" && this.phase !== "claimed") return []; + if (!this.casOk(span)) return []; + this.replaceSpanWithChip(reference, span); + this.paste = void 0; + return []; + } + /** + * Shared chip-insertion transaction: replace [span) with one placeholder + * occurrence (insert-ref and paste-upgrade both land here). A separating + * space follows the chip unless one is already next. + * @returns the inserted length (placeholder plus optional gap). + */ + replaceSpanWithChip(reference, span) { + this.pushTxn(); + this.typingRun = void 0; + const tail = this.draft.slice(span.end); + const inserted = "" + (tail.length === 0 || tail[0] !== " " ? " " : ""); + this.reconcile({ + start: span.start, + end: span.end, + insertedLength: inserted.length + }); + this.withMinted([this.mint(reference, span.start)]); + this.adopt(this.draft.slice(0, span.start) + inserted + tail); + this.watchClaim(); + return inserted.length; + } + /** + * Guarded token deletion after business success (popup settle / menu-pick + * execute). No effect signals success: the caller reads the draftRev + * advance off the published state (same currency as the other bail verbs). + */ + onConsumeToken(guard) { + if (this.phase !== "plain" && this.phase !== "claimed") return []; + switch (guard.kind) { + case "span": { + const span = guard.span; + if (!this.casOk(span) || span.start === span.end) return []; + this.pushTxn(); + this.typingRun = void 0; + this.reconcile({ + start: span.start, + end: span.end, + insertedLength: 0 + }); + this.adopt(this.draft.slice(0, span.start) + this.draft.slice(span.end)); + this.watchClaim(); + this.paste = void 0; + return []; + } + case "bare-token": + if (guard.token === "" || this.draft.trim() !== guard.token) return []; + this.pushTxn(); + this.typingRun = void 0; + this.occurrences = []; + this.adopt(""); + this.watchClaim(); + this.paste = void 0; + return []; + default: return unreachable(guard); + } + } + /** + * Owner-resolution style bits: exactly the listed occurrences render + * invalid. Not a transaction — the draft, revision, and undo log are + * untouched (invalidation never deletes or rewrites chips). + */ + onSetInvalid(invalidIds) { + const ids = new Set(invalidIds); + if (!this.occurrences.some((o) => o.invalid === true !== ids.has(o.occurrenceId))) return []; + this.occurrences = this.occurrences.map((o) => { + const invalid = ids.has(o.occurrenceId); + if (o.invalid === true === invalid) return o; + const { invalid: _drop, ...rest } = o; + return invalid ? { + ...rest, + invalid: true + } : rest; + }); + return []; + } + onUndo() { + const entry = this.log.pop(); + if (entry === void 0) return []; + this.redoStack.push({ + draftBefore: this.draft, + occurrencesBefore: this.occurrences + }); + this.occurrences = entry.occurrencesBefore; + this.adopt(entry.draftBefore); + this.watchClaim(); + this.typingRun = void 0; + this.paste = void 0; + return []; + } + onRedo() { + const entry = this.redoStack.pop(); + if (entry === void 0) return []; + this.log.push({ + draftBefore: this.draft, + occurrencesBefore: this.occurrences + }); + if (this.log.length > LOG_LIMIT) this.log.shift(); + this.occurrences = entry.occurrencesBefore; + this.adopt(entry.draftBefore); + this.watchClaim(); + this.typingRun = void 0; + this.paste = void 0; + return []; + } + /** + * Paste as one transaction: the text (U+FFFC-sanitized) replaces the + * selection; hot-snapshot sync matches componentize inside the SAME + * transaction (one undo returns to pre-paste); a match attempt opens for + * the async remainder while the phase still accepts reference mutations. + */ + onPasteBegin(rawText, selection, components = [], generation = 0) { + const { start, end } = selection; + if (start < 0 || start > end || end > this.draft.length) return []; + const text = rawText.split("").join(""); + this.pushTxn(selection); + this.typingRun = void 0; + const sorted = [...components].sort((a, b) => a.start - b.start); + const minted = []; + let inserted = ""; + let cursor = 0; + for (const c of sorted) { + inserted += text.slice(cursor, c.start); + minted.push(this.mint(c.reference, start + inserted.length)); + inserted += ""; + cursor = c.end; + } + inserted += text.slice(cursor); + this.reconcile({ + start, + end, + insertedLength: inserted.length + }); + this.withMinted(minted); + this.adopt(this.draft.slice(0, start) + inserted + this.draft.slice(end)); + this.watchClaim(); + if (this.phase === "plain" || this.phase === "claimed") { + this.pasteSeq += 1; + this.paste = { + attemptId: this.pasteSeq, + insertedRange: { + start, + end: start + inserted.length + }, + generation + }; + } else this.paste = void 0; + return []; + } + /** + * Async match landed: upgrade one pasted token to a chip as an INDEPENDENT + * transaction (undo #1 → the token text, undo #2 → pre-paste). The attempt + * stays current — later tokens re-CAS against the advanced draftRev. + */ + onPasteUpgrade(attemptId, span, reference) { + const attempt = this.paste; + if (attempt === void 0 || attempt.attemptId !== attemptId) return []; + if (this.phase !== "plain" && this.phase !== "claimed") return []; + if (!this.casOk(span) || span.start === span.end) return []; + const insertedLength = this.replaceSpanWithChip(reference, span); + this.paste = { + ...attempt, + insertedRange: { + start: attempt.insertedRange.start, + end: attempt.insertedRange.end + insertedLength - (span.end - span.start) + } + }; + return []; + } + /** Mint the next SubmitAttempt and take the in-flight slot. */ + beginAttempt(mode) { + const controller = new AbortController(); + this.seq += 1; + const attempt = { + seq: this.seq, + signal: controller.signal, + draftSnapshot: this.draft, + mode + }; + this.inflight = { + attempt, + controller + }; + return attempt; + } + onEnter(mode) { + if (this.phase === "adjudicating" || this.phase === "submitting") return []; + if (this.phase === "claimed" && this.claim !== void 0) { + const attempt = this.beginAttempt(mode); + this.phase = "submitting"; + this.paste = void 0; + return [{ + type: "begin-submit", + attempt, + claim: this.claim, + args: argsAfter(this.draft, this.claim.token) + }]; + } + const trimmed = this.draft.trim(); + if (trimmed === "") return []; + this.paste = void 0; + if (trimmed.startsWith("/")) { + const attempt = this.beginAttempt(mode); + this.phase = "adjudicating"; + return [{ + type: "adjudicate", + attempt, + draft: this.draft + }]; + } + return [{ + type: "default-sink", + draft: this.draft, + mode + }]; + } + onAdjudicated(attempt, outcome) { + const flight = this.inflight; + if (this.phase !== "adjudicating" || flight === void 0 || flight.attempt.seq !== attempt.seq) return []; + if (outcome !== void 0 && outcome !== "handled" && "claim" in outcome) { + this.claim = outcome.claim; + this.phase = "submitting"; + return [{ + type: "begin-submit", + attempt, + claim: outcome.claim, + args: argsAfter(attempt.draftSnapshot, outcome.claim.token) + }]; + } + this.inflight = void 0; + this.phase = "plain"; + return outcome === void 0 ? [{ + type: "default-sink", + draft: attempt.draftSnapshot, + mode: attempt.mode + }] : []; + } + onAdjudicationFailed(attempt, message) { + if (this.phase !== "adjudicating" || this.inflight?.attempt.seq !== attempt.seq) return []; + this.inflight = void 0; + this.phase = "plain"; + return [{ + type: "notice", + level: "error", + text: message + }]; + } + onSubmitSettled(ev) { + const flight = this.inflight; + if (this.phase !== "submitting" || flight === void 0 || flight.attempt.seq !== ev.attempt.seq) return []; + this.inflight = void 0; + if (ev.ok) { + this.phase = "plain"; + this.claim = void 0; + this.occurrences = []; + this.adopt(""); + this.log = []; + this.redoStack = []; + this.typingRun = void 0; + this.paste = void 0; + return ev.outcome?.text !== void 0 ? [{ + type: "notice", + level: ev.outcome.kind === "error" ? "error" : "info", + text: ev.outcome.text + }] : []; + } + const text = ev.message ?? ev.outcome?.text ?? "command failed"; + if (this.draft === flight.attempt.draftSnapshot && this.claim !== void 0 && this.draft.startsWith(this.claim.token)) { + this.phase = "claimed"; + return [{ + type: "notice", + level: "error", + text + }]; + } + this.phase = "plain"; + this.claim = void 0; + return [{ + type: "notice", + level: "error", + text + }]; + } + /** Ordinary send accepted: clear as a commit (no undo unit; sent content + * must not be resurrectable — same discipline as submit-settled success). */ + onSendCommitted() { + this.claim = void 0; + this.occurrences = []; + this.adopt(""); + this.log = []; + this.redoStack = []; + this.typingRun = void 0; + this.paste = void 0; + return []; + } + onRelease() { + if (this.inflight !== void 0) { + this.inflight.controller.abort(); + this.inflight = void 0; + } + this.phase = "plain"; + this.claim = void 0; + this.typingRun = void 0; + this.paste = void 0; + return []; + } + }; + //#endregion + //#region lib/types/client/input/facade.js + /** Guard tier from the machine phase. */ + function guardOf(phase) { + switch (phase) { + case "plain": return "plain"; + case "claimed": return "claimed"; + default: return "frozen"; + } + } + const EMPTY_QUEUE = []; + /** No-pipeline lexicon: zero text-ref decorations. */ + const EMPTY_LEXICON$2 = /* @__PURE__ */ new Map(); + /** + * The per-session input facade: scoped-event application verbs + + * setDraft/submit + the published InputState store. + */ + var SessionInputShell = class { + deps; + /** Published machine state + queue overlay (the InputZone currency source). */ + state; + /** Latest surfaced notice (null after clear); the wiring renders it beside the error strip. */ + notices = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(null); + /** The public provide-channel action face (one stable identity per session). */ + actions = { + setDraft: (text) => { + this.setDraft(text); + }, + addImages: (ids) => this.addImages(ids), + removeImage: (id) => { + this.removeImage(id); + }, + pruneImages: (ids) => { + this.pruneImages(ids); + }, + submit: () => { + this.submit("queue"); + } + }; + core = new InputMachine({ now: () => Date.now() }); + noticeSeq = 0; + lastDraft = ""; + imageIds = []; + disposed = false; + /** Draft persistence mirror (chat store write; receives the clipboard projection, never raw placeholders). */ + mirrorFn; + constructor(deps) { + this.deps = deps; + this.state = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(this.compose()); + deps.queue?.subscribe(() => { + this.publish(); + }); + } + /** + * Single draft write path (all mutation rides machine events). + * @param text - the full next draft. + * @param editRange - the DOM-observed edit shape, when the caller knows it + * (narrows the machine's occurrence math; absent → diff scan). + */ + setDraft(text, editRange) { + this.run(this.core.dispatch({ + type: "draft-changed", + draft: text, + ...editRange !== void 0 ? { editRange } : {} + })); + } + /** Append ordered image ids unless an admission transaction is locked. */ + addImages(ids) { + if (this.snapshot.phase === "adjudicating" || this.snapshot.phase === "submitting") return false; + if (ids.length === 0) return true; + this.imageIds = [...this.imageIds, ...ids]; + this.publish(); + return true; + } + /** Remove one image id from this draft. */ + removeImage(id) { + const next = this.imageIds.filter((candidate) => candidate !== id); + if (next.length === this.imageIds.length) return; + this.imageIds = next; + this.publish(); + } + /** + * Keep only image ids that still resolve in the browser attachment registry. + * @param available - live registry ids. + */ + pruneImages(available) { + const keep = new Set(available); + const next = this.imageIds.filter((id) => keep.has(id)); + if (next.length === this.imageIds.length) return; + this.imageIds = next; + this.publish(); + } + /** + * Restore a failed attempt before any images added after its admission. + * @param ids - failed attempt image ids. + */ + restoreImages(ids) { + const current = new Set(this.imageIds); + this.imageIds = [...ids.filter((id) => !current.has(id)), ...this.imageIds]; + this.publish(); + } + /** + * Clear the draft as a successful-send commit: no undo unit is recorded and + * the undo history is cut, so Ctrl/Cmd-Z cannot resurrect sent content + * (the command path gets the same discipline from submit-settled success). + * @param imageIds - admitted image ids to remove from this draft. + */ + commitSend(imageIds) { + const submitted = new Set(imageIds); + this.imageIds = this.imageIds.filter((id) => !submitted.has(id)); + this.run(this.core.dispatch({ type: "send-committed" })); + } + /** Undo the latest transaction (InputBar intercepts the platform chord). */ + undo() { + this.run(this.core.dispatch({ type: "undo" })); + } + /** Redo the latest undone transaction. */ + redo() { + this.run(this.core.dispatch({ type: "redo" })); + } + /** + * Paste text over the selection in one transaction, with any hot-snapshot + * sync matches componentized inside it. + * @param text - pasted plain text. + * @param selection - replaced selection in draft coordinates. + * @param components - sync-matched reference components (disjoint, inside `text`). + * @param generation - projection generation for late async-upgrade guards. + */ + pasteBegin(text, selection, components, generation) { + this.run(this.core.dispatch({ + type: "paste-begin", + text, + selection, + ...components !== void 0 ? { components } : {}, + ...generation !== void 0 ? { generation } : {} + })); + } + /** End the live paste-match attempt (caret/selection ops and Slash updates the machine cannot see). */ + invalidatePaste() { + this.run(this.core.dispatch({ type: "invalidate-paste" })); + } + /** + * Enter adjudication + submit transaction + default sink. Effects fan out + * from the machine; this method only feeds the event. Lock entry + * (adjudicating/submitting) force-closes the transient layers: the popup + * dismisses and the menu tracks frozen. + */ + submit(mode = "queue") { + if (this.snapshot.draft.trim() === "" && this.imageIds.length > 0) { + if (this.snapshot.phase === "plain") this.deps.defaultSink("", [...this.imageIds], mode); + return; + } + this.run(this.core.dispatch({ + type: "enter", + mode + })); + const phase = this.snapshot.phase; + if (phase === "adjudicating" || phase === "submitting") { + this.deps.popup?.()?.dismiss(); + this.deps.inputTriggers?.()?.track(this.snapshot.draft, 0, { tier: "frozen" }, this.snapshot.draftRev); + } + } + /** + * Feed a draft/caret change through trigger detection (guard derived from + * the machine phase). + * @param draft - live draft text. + * @param caret - caret position in draft coordinates. + */ + track(draft, caret) { + this.deps.inputTriggers?.()?.track(draft, caret, { tier: guardOf(this.snapshot.phase) }, this.snapshot.draftRev); + } + /** + * Keyboard arbitration while the menu is open. + * @param key - the intercepted key. + * @param composing - IME composition guard state. + * @returns the menu's verdict; 'pass' when no pipeline is mounted. + */ + arbitrate(key, composing) { + return this.deps.inputTriggers?.()?.arbitrate(key, composing) ?? "pass"; + } + /** + * Steer every still-pending queued message into the running turn (the + * empty-draft accelerated-Enter gesture). Execution belongs to the hub's + * queue choreography; absent dep = the gesture falls back to the machine's + * empty-draft no-op. + */ + steerQueue() { + this.deps.steerQueue?.(); + } + /** + * Space adjudication over the controller's hot state. + * @returns true = a claim/insert was applied — the caller preventDefaults. + */ + space() { + const inputTriggers = this.deps.inputTriggers?.(); + if (inputTriggers === void 0) return false; + const consumed = inputTriggers.onSpace(); + if (consumed) { + const next = this.snapshot; + inputTriggers.track(next.draft, next.draft.length, { tier: guardOf(next.phase) }, next.draftRev); + } + return consumed; + } + /** Dismiss the popupSelect shell (any interaction outside the box). */ + dismissPopup() { + this.deps.popup?.()?.dismiss(); + } + /** + * Hot plain-text reference lexicon source for the decoration scan + * (the plain-text-reference decision; + * see .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.md): + * delegates to the controller's aggregated store. Stable + * identity per shell; without a pipeline the snapshot is the empty Map and + * subscribers never fire. + */ + lexicon = { + getSnapshot: () => this.deps.inputTriggers?.()?.lexicon.getSnapshot() ?? EMPTY_LEXICON$2, + subscribe: (fn) => this.deps.inputTriggers?.()?.lexicon.subscribe(fn) ?? (() => {}) + }; + /** + * Apply one command claim (scoped begin-command event listener body). + * @param claim - the command claim from the pick path. + * @param span - pick-time span snapshot. + * @returns whether the machine accepted (phase + span CAS passed and the draft mutated). + */ + beginCommand(claim, span) { + const before = this.core.state.draftRev; + this.run(this.core.dispatch({ + type: "begin-command", + claim, + span + })); + return this.core.state.phase === "claimed" && this.core.state.draftRev !== before; + } + /** + * Apply one reference insertion (scoped insert-reference event listener body). + * @param ref - the reference insertion from the pick path. + * @param span - pick-time span snapshot. + * @returns whether the machine accepted. + */ + insertReference(ref, span) { + const before = this.core.state.draftRev; + this.run(this.core.dispatch({ + type: "insert-ref", + reference: ref, + span + })); + return this.core.state.draftRev !== before; + } + /** + * Consume one command token after business success (scoped consume-token + * event listener body). Span guard: revision CAS then splice; bare-token + * guard: trimmed-draft equality then clear. + * @param guard - exact span or bare-token guard. + * @returns whether the token was consumed. + */ + consumeToken(guard) { + const snapshot = this.core.state; + if (guard.kind === "span") { + if (guard.span.draftRev !== snapshot.draftRev) return false; + const draft = snapshot.draft; + this.setDraft(draft.slice(0, guard.span.start) + draft.slice(guard.span.end)); + return true; + } + if (snapshot.draft.trim() !== guard.token) return false; + this.setDraft(""); + return true; + } + /** + * Insert plain reference text over the pick-time span (scoped insert-text + * event listener body; plain-text-reference decision, web-input-machine + * note). Same CAS-then-splice shape as the + * consume-token span branch: the machine sees an ordinary draft-changed + * transaction (one undo step), no occurrence is minted — the chip look is + * a scan-derived decoration, never state. + * @param text - the plain reference text to splice in (e.g. `/name `). + * @param span - pick-time span snapshot (draftRev CAS). + * @returns whether the text was applied. + */ + insertText(text, span) { + const snapshot = this.core.state; + if (span.draftRev !== snapshot.draftRev) return false; + const draft = snapshot.draft; + this.setDraft(draft.slice(0, span.start) + text + draft.slice(span.end)); + return true; + } + /** + * Surface a notice from outside the machine (detached command results). + * @param level - severity tier. + * @param text - notice body. + */ + notify(level, text) { + this.noticeSeq += 1; + this.notices.set({ + level, + text, + seq: this.noticeSeq + }); + } + /** Teardown: abort any in-flight attempt and stop accepting async settlements. */ + dispose() { + this.disposed = true; + this.run(this.core.dispatch({ type: "release" })); + } + /** Read the live machine state (guard derivation reads here). */ + get snapshot() { + return this.state.getSnapshot(); + } + /** + * Bind the draft persistence mirror (chat store write). Adopt-on-bind: the + * store draft may hold a persisted value from a previous mount; the caller + * seeds it via setDraft BEFORE binding, and afterwards every machine-adopted + * draft mirrors out. + * @param write - store draft write. + * @returns the unbind disposer. + */ + bindMirror(write) { + this.mirrorFn = write; + return () => { + if (this.mirrorFn === write) this.mirrorFn = void 0; + }; + } + run(effects) { + for (const fx of effects) this.execute(fx); + this.publish(); + } + execute(fx) { + switch (fx.type) { + case "notice": + this.noticeSeq += 1; + this.notices.set({ + level: fx.level, + text: fx.text, + seq: this.noticeSeq + }); + return; + case "adjudicate": + this.adjudicate(fx.attempt, fx.draft); + return; + case "begin-submit": + this.beginSubmit(fx.attempt, fx.claim, fx.args); + return; + case "default-sink": + this.sinkSerialized(fx.draft, fx.mode); + return; + default: return; + } + } + /** + * Prompt serialization before the sink: expand each + * placeholder to its owner's model form via the session controller's + * codec routing. Owner missing / serialize failure / disposal blocks the + * send — notice + draft and chips retained, never a silent downgrade to + * the clipboard text. Chip-free drafts skip the async detour. + */ + sinkSerialized(draft, mode) { + const imageIds = [...this.imageIds]; + const occurrences = this.core.state.occurrences; + if (occurrences.length === 0) { + this.deps.defaultSink(draft.trim(), imageIds, mode); + return; + } + const inputTriggers = this.deps.inputTriggers?.(); + const controller = new AbortController(); + Promise.all(occurrences.map(async (o) => { + if (inputTriggers === void 0) throw new Error(`no serializer for reference source "${o.source}"`); + return { + offset: o.offset, + text: await inputTriggers.serializeReference(o.source, o.ref, controller.signal) + }; + })).then((parts) => { + if (this.disposed) return; + let out = ""; + let cursor = 0; + for (const part of parts) { + out += draft.slice(cursor, part.offset) + part.text; + cursor = part.offset + 1; + } + out += draft.slice(cursor); + this.deps.defaultSink(out.trim(), imageIds, mode); + }, (error) => { + controller.abort(); + if (this.disposed) return; + const message = error instanceof Error ? error.message : String(error); + this.notify("error", message); + }); + } + /** Enter adjudication: poll the session controller; failure = notice + draft retained (never a silent downgrade). */ + adjudicate(attempt, draft) { + const inputTriggers = this.deps.inputTriggers?.(); + if (inputTriggers === void 0) { + this.run(this.core.dispatch({ + type: "adjudicated", + attempt, + outcome: void 0 + })); + return; + } + inputTriggers.adjudicate(draft.trim(), attempt.signal).then((outcome) => { + if (this.dead(attempt)) return; + this.run(this.core.dispatch({ + type: "adjudicated", + attempt, + outcome + })); + }, (error) => { + if (this.dead(attempt)) return; + const message = error instanceof Error ? error.message : String(error); + this.run(this.core.dispatch({ + type: "adjudication-failed", + attempt, + message + })); + }); + } + /** The submit transaction: claim.submit against the session scope; ok maps from the outcome kind. */ + beginSubmit(attempt, claim, args) { + Promise.resolve().then(() => claim.submit(args, this.deps.actx)).then((outcome) => { + if (this.dead(attempt)) return; + this.run(this.core.dispatch({ + type: "submit-settled", + attempt, + ok: outcome.kind === "success", + outcome + })); + }, (error) => { + if (this.dead(attempt)) return; + const message = error instanceof Error ? error.message : String(error); + this.run(this.core.dispatch({ + type: "submit-settled", + attempt, + ok: false, + message + })); + }); + } + /** Late-settlement guard: superseded attempts and disposed facades drop silently. */ + dead(attempt) { + return this.disposed || attempt.signal.aborted; + } + compose() { + return { + ...this.core.state, + imageIds: this.imageIds, + queue: this.deps.queue?.getSnapshot() ?? EMPTY_QUEUE + }; + } + publish() { + const next = this.compose(); + this.state.set(next); + if (next.draft !== this.lastDraft) { + this.lastDraft = next.draft; + this.mirrorFn?.(next.draft); + } + } + }; + //#endregion + //#region lib/types/client/input/hub.js + /** Session-addressed input facade registry (SessionInputResolver face + composer-layer extras). */ + var InputHub = class { + rootCtx; + t; + shells = /* @__PURE__ */ new Map(); + /** + * @param ctx - client root context (services resolved lazily per call — boot order stays free). + * @param t - conversation-namespace translate thunk (reads the active locale at call time). + */ + constructor(rootCtx, t) { + this.rootCtx = rootCtx; + this.t = t; + } + /** + * Resolve the facade for one session-scope ctx (SessionInputResolver face). + * @param actx - session-scope context. + * @returns the resident per-session facade. + */ + for(actx) { + const id = this.sessions().scopeOf(actx); + if (id === void 0) throw new Error("conversation.input.for requires a session scope"); + return this.shell(id); + } + /** + * Resident shell for one session binding — the provide-channel entry + * (called during scope materialization, BEFORE the scope record is + * queryable, hence binding-fed and hence the thunked slash/popup deps). + * Wires the scoped event listeners + teardown into the session scope. + * @param binding - session assembly handle. + * @returns the shell. + */ + shellFor(binding) { + const existing = this.shells.get(binding.sessionId); + if (existing !== void 0) return existing; + const { sessionId: id, session, ctx: actx } = binding; + const shell = new SessionInputShell({ + actx, + inputTriggers: () => this.controller(actx), + popup: () => this.popup(actx), + queue: queueReadFaceOf(session), + defaultSink: (text, imageIds, mode) => { + this.sink(session, text, imageIds, mode); + }, + steerQueue: () => { + this.steerQueue(session, shell); + } + }); + this.shells.set(id, shell); + actx.effect(() => { + const offs = [ + actx.on("slash/input-begin-command", (req) => shell.beginCommand(req.claim, req.span) ? true : void 0), + actx.on("slash/input-insert-reference", (req) => shell.insertReference(req.reference, req.span) ? true : void 0), + actx.on("slash/input-consume-token", (req) => shell.consumeToken(req.guard) ? true : void 0), + actx.on("slash/input-insert-text", (req) => shell.insertText(req.text, req.span) ? true : void 0) + ]; + return () => { + for (const off of offs) off(); + const drafts = shell.snapshot.imageIds; + shell.dispose(); + this.shells.delete(id); + const conversation = this.rootCtx.get("conversation"); + for (const imageId of drafts) conversation?.releaseDraftImage(imageId); + }; + }, "conversation.input: session shell"); + return shell; + } + /** + * Resident shell by session id (service-face path; the provide channel has + * normally created it already — this covers direct id-addressed access). + * @param id - session id. + * @returns the shell. + */ + shell(id) { + const existing = this.shells.get(id); + if (existing !== void 0) return existing; + const binding = this.sessions().binding(id); + if (binding === void 0) throw new Error(`conversation.input: session "${id}" resolved no binding`); + return this.shellFor(binding); + } + /** + * The InputBar-exclusive keyboard command face: the shell + * satisfies it structurally; package-internal — handed through the + * composer-bar entry's inject, never across a plugin boundary. + * @param id - session id. + * @returns the shell as the keyboard face. + */ + keyboard(id) { + return this.shell(id); + } + /** + * Resolve the optional slash controller for composer chrome that launches + * the shared candidate menu without typing a trigger. + * @param id - session id. + * @returns the resident controller, or undefined when ui-input-trigger is absent. + */ + inputTriggers(id) { + const actx = this.sessions().scope(id); + return actx === void 0 ? void 0 : this.controller(actx); + } + /** + * Default sink: optimistic clear + prompt. The session is always a real + * host entity (materialized when its workspace was picked), so there is + * exactly one path; a failed first prompt is an ordinary prompt failure + * (error strip via promptError, draft restored only while untouched). + */ + sink(session, text, imageIds, mode) { + if (text === "" && imageIds.length === 0) return; + const shell = this.shells.get(session.sessionId); + shell?.commitSend(imageIds); + this.conversation().sendSession(session, text, imageIds, mode).catch(() => { + if (this.shells.get(session.sessionId) === shell) { + shell?.restoreImages(imageIds); + if (shell?.snapshot.draft === "") shell.setDraft(text); + return; + } + const conversation = this.rootCtx.get("conversation"); + for (const id of imageIds) conversation?.releaseDraftImage(id); + }); + } + /** + * Steer every still-pending queued message into the running turn, in FIFO + * order — the same strict-steer operation as the queue dock's per-row + * button. A turn closing mid-way (`steer-unavailable`) or a row already + * claimed by the agent (`queue-item-not-found`) converges silently, while a + * genuine failure surfaces as one composer notice. Repeated triggers + * (e.g. two rapid empty-draft chords) rely on that `queue-item-not-found` + * convergence: the snapshot may still list a row the host already steered, + * and the duplicate strict steer is a silent no-op. + * @param session - the addressed host session. + * @param shell - the resident shell (notice outlet). + */ + async steerQueue(session, shell) { + const queued = session.getSnapshot().queue.filter((item) => item.placement === "queued"); + if (queued.length === 0) return; + for (const item of queued) { + const result = await session.updateQueue(item.id, { kind: "steer" }); + if (result.ok) continue; + if (result.error.code === "steer-unavailable" || result.error.code === "queue-item-not-found") return; + shell.notify("error", this.t("queue.steerFailed")); + return; + } + } + controller(actx) { + return this.rootCtx.get("inputTriggers")?.sessionOf(actx); + } + popup(actx) { + return this.rootCtx.get("commandUi")?.popupFor(actx); + } + sessions() { + const sessions = this.rootCtx.get("sessions"); + if (sessions === void 0) throw new Error("conversation.input: sessions service unavailable"); + return sessions; + } + conversation() { + const conversation = this.rootCtx.get("conversation"); + if (conversation === void 0) throw new Error("conversation.input: conversation service unavailable"); + return conversation; + } + }; + //#endregion + //#region ../../../vendor/cosmokit/src/misc.ts + /** Return true when a value is `null` or `undefined`. */ + function isNullable(value) { + return value === null || value === void 0; + } + /** Return true for non-array object values. */ + function isPlainObject(data) { + return data && typeof data === "object" && !Array.isArray(data); + } + /** Filter object entries and return a new object. */ + function filterKeys(object, filter) { + return Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value))); + } + /** Map object values while preserving the original key set. */ + function mapValues(object, transform) { + return Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)])); + } + /** Pick selected keys from an object, optionally including `undefined` values. */ + function pick(source, keys, forced) { + if (!keys) return { ...source }; + const result = {}; + for (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key]; + return result; + } + //#endregion + //#region ../../../vendor/cosmokit/src/types.ts + /** Test values using `instanceof` with a `toStringTag` fallback. */ + function is(type, value) { + if (arguments.length === 1) return (value) => is(type, value); + return type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type; + } + function isArrayBufferLike(value) { + return is("ArrayBuffer", value) || is("SharedArrayBuffer", value); + } + function isArrayBufferSource(value) { + return isArrayBufferLike(value) || ArrayBuffer.isView(value); + } + let Binary; + (function(_Binary) { + _Binary.is = isArrayBufferLike; + _Binary.isSource = isArrayBufferSource; + function fromSource(source) { + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + else return source; + } + _Binary.fromSource = fromSource; + function toBase64(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("base64"); + let binary = ""; + const bytes = new Uint8Array(source); + for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]); + return btoa(binary); + } + _Binary.toBase64 = toBase64; + function fromBase64(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "base64")); + return Uint8Array.from(atob(source), (c) => c.charCodeAt(0)); + } + _Binary.fromBase64 = fromBase64; + function toHex(source) { + source = fromSource(source); + if (typeof Buffer !== "undefined") return Buffer.from(source).toString("hex"); + return Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, "0")).join(""); + } + _Binary.toHex = toHex; + function fromHex(source) { + if (typeof Buffer !== "undefined") return fromSource(Buffer.from(source, "hex")); + const hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1); + const buffer = []; + for (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16)); + return Uint8Array.from(buffer).buffer; + } + _Binary.fromHex = fromHex; + })(Binary || (Binary = {})); + Binary.fromBase64; + Binary.toBase64; + Binary.fromHex; + Binary.toHex; + /** Deep-clone common JavaScript values while preserving prototypes and cycles. */ + function clone(source, refs = /* @__PURE__ */ new Map()) { + if (!source || typeof source !== "object") return source; + if (is("Date", source)) return new Date(source.valueOf()); + if (is("RegExp", source)) return new RegExp(source.source, source.flags); + if (isArrayBufferLike(source)) return source.slice(0); + if (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength); + const cached = refs.get(source); + if (cached) return cached; + if (Array.isArray(source)) { + const result = []; + refs.set(source, result); + source.forEach((value, index) => { + result[index] = Reflect.apply(clone, null, [value, refs]); + }); + return result; + } + const result = Object.create(Object.getPrototypeOf(source)); + refs.set(source, result); + for (const key of Reflect.ownKeys(source)) { + const descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) }; + if ("value" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]); + Reflect.defineProperty(result, key, descriptor); + } + return result; + } + /** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */ + function deepEqual(a, b, strict) { + if (a === b) return true; + if (!strict && isNullable(a) && isNullable(b)) return true; + if (typeof a !== typeof b) return false; + if (typeof a !== "object") return false; + if (!a || !b) return false; + function check(test, then) { + return test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0; + } + return check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is("Date"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is("RegExp"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => { + if (a.byteLength !== b.byteLength) return false; + const viewA = new Uint8Array(a); + const viewB = new Uint8Array(b); + for (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false; + return true; + }) ?? Object.keys({ + ...a, + ...b + }).every((key) => deepEqual(a[key], b[key], strict)); + } + //#endregion + //#region ../../../vendor/cosmokit/src/time.ts + let Time; + (function(_Time) { + _Time.millisecond = 1; + const second = _Time.second = 1e3; + const minute = _Time.minute = second * 60; + const hour = _Time.hour = minute * 60; + const day = _Time.day = hour * 24; + const week = _Time.week = day * 7; + let timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset(); + function setTimezoneOffset(offset) { + timezoneOffset = offset; + } + _Time.setTimezoneOffset = setTimezoneOffset; + function getTimezoneOffset() { + return timezoneOffset; + } + _Time.getTimezoneOffset = getTimezoneOffset; + function getDateNumber(date = /* @__PURE__ */ new Date(), offset) { + if (typeof date === "number") date = new Date(date); + if (offset === void 0) offset = timezoneOffset; + return Math.floor((date.valueOf() / minute - offset) / 1440); + } + _Time.getDateNumber = getDateNumber; + function fromDateNumber(value, offset) { + const date = new Date(value * day); + if (offset === void 0) offset = timezoneOffset; + return new Date(+date + offset * minute); + } + _Time.fromDateNumber = fromDateNumber; + const numeric = /\d+(?:\.\d+)?/.source; + const timeRegExp = new RegExp(`^${[ + "w(?:eek(?:s)?)?", + "d(?:ay(?:s)?)?", + "h(?:our(?:s)?)?", + "m(?:in(?:ute)?(?:s)?)?", + "s(?:ec(?:ond)?(?:s)?)?" + ].map((unit) => `(${numeric}${unit})?`).join("")}$`); + function parseTime(source) { + const capture = timeRegExp.exec(source); + if (!capture) return 0; + return (parseFloat(capture[1]) * week || 0) + (parseFloat(capture[2]) * day || 0) + (parseFloat(capture[3]) * hour || 0) + (parseFloat(capture[4]) * minute || 0) + (parseFloat(capture[5]) * second || 0); + } + _Time.parseTime = parseTime; + function parseDate(date) { + const parsed = parseTime(date); + if (parsed) date = Date.now() + parsed; + else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`; + else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`; + return date ? new Date(date) : /* @__PURE__ */ new Date(); + } + _Time.parseDate = parseDate; + function format(ms) { + const abs = Math.abs(ms); + if (abs >= day - hour / 2) return Math.round(ms / day) + "d"; + else if (abs >= hour - minute / 2) return Math.round(ms / hour) + "h"; + else if (abs >= minute - second / 2) return Math.round(ms / minute) + "m"; + else if (abs >= second) return Math.round(ms / second) + "s"; + return ms + "ms"; + } + _Time.format = format; + function toDigits(source, length = 2) { + return source.toString().padStart(length, "0"); + } + _Time.toDigits = toDigits; + function template(template, time = /* @__PURE__ */ new Date()) { + return template.replace("yyyy", time.getFullYear().toString()).replace("yy", time.getFullYear().toString().slice(2)).replace("MM", toDigits(time.getMonth() + 1)).replace("dd", toDigits(time.getDate())).replace("hh", toDigits(time.getHours())).replace("mm", toDigits(time.getMinutes())).replace("ss", toDigits(time.getSeconds())).replace("SSS", toDigits(time.getMilliseconds(), 3)); + } + _Time.template = template; + })(Time || (Time = {})); + //#endregion + //#region ../../../vendor/schemastery/src/index.ts + const kSchema = Symbol.for("schemastery"); + const kValidationError = Symbol.for("ValidationError"); + globalThis.__schemastery_index__ ??= 0; + globalThis.__schemastery_refs__ = void 0; + var ValidationError = class extends TypeError { + options; + name = "ValidationError"; + constructor(message, options) { + let prefix = "$"; + for (const segment of options.path || []) if (typeof segment === "string") prefix += "." + segment; + else if (typeof segment === "number") prefix += "[" + segment + "]"; + else if (typeof segment === "symbol") prefix += `[Symbol(${segment.toString()})]`; + if (prefix.startsWith(".")) prefix = prefix.slice(1); + super((prefix === "$" ? "" : `${prefix} `) + message); + this.options = options; + } + static is(error) { + return !!error?.[kValidationError]; + } + }; + Object.defineProperty(ValidationError.prototype, kValidationError, { value: true }); + const Schema = function(options) { + const schema = function(data, options = {}) { + return Schema.resolve(data, schema, options)[0]; + }; + if (options.refs) { + const refs = mapValues(options.refs, (options) => new Schema(options)); + const getRef = (uid) => refs[uid]; + for (const key in refs) { + const options = refs[key]; + options.sKey = getRef(options.sKey); + options.inner = getRef(options.inner); + options.list = options.list && options.list.map(getRef); + options.dict = options.dict && mapValues(options.dict, getRef); + } + return refs[options.uid]; + } + Object.assign(schema, options); + if (typeof schema.callback === "string") try { + schema.callback = new Function("return " + schema.callback)(); + } catch {} + Object.defineProperty(schema, "uid", { value: globalThis.__schemastery_index__++ }); + Object.setPrototypeOf(schema, Schema.prototype); + schema.meta ||= {}; + schema.toString = schema.toString.bind(schema); + return schema; + }; + Schema.prototype = Object.create(Function.prototype); + Schema.prototype[kSchema] = true; + Object.defineProperty(Schema.prototype, "~standard", { get() { + return { + version: 1, + vendor: "schemastery", + validate: (value) => { + try { + return { value: Schema.resolve(value, this, {})[0] }; + } catch (error) { + if (ValidationError.is(error)) return { issues: [{ + message: error.message, + path: error.options.path + }] }; + throw error; + } + } + }; + } }); + Schema.ValidationError = ValidationError; + Schema.prototype.toJSON = function toJSON() { + if (globalThis.__schemastery_refs__) { + globalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this })); + return this.uid; + } + globalThis.__schemastery_refs__ = { [this.uid]: { ...this } }; + globalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this })); + const result = { + uid: this.uid, + refs: globalThis.__schemastery_refs__ + }; + globalThis.__schemastery_refs__ = void 0; + return result; + }; + Schema.prototype.set = function set(key, value) { + this.dict[key] = value; + return this; + }; + Schema.prototype.push = function push(value) { + this.list.push(value); + return this; + }; + function mergeDesc(original, messages) { + const result = typeof original === "string" ? { "": original } : { ...original }; + for (const locale in messages) { + const value = messages[locale]; + if (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc; + else if (typeof value === "string") result[locale] = value; + } + return result; + } + function getInner(value) { + return value?.$value ?? value?.$inner; + } + function extractKeys(data) { + return filterKeys(data ?? {}, (key) => !key.startsWith("$")); + } + Schema.prototype.i18n = function i18n(messages) { + const schema = Schema(this); + const desc = mergeDesc(schema.meta.description, messages); + if (Object.keys(desc).length) schema.meta.description = desc; + if (schema.dict) schema.dict = mapValues(schema.dict, (inner, key) => { + return inner.i18n(mapValues(messages, (data) => getInner(data)?.[key] ?? data?.[key])); + }); + if (schema.list) schema.list = schema.list.map((inner, index) => { + return inner.i18n(mapValues(messages, (data = {}) => { + if (Array.isArray(getInner(data))) return getInner(data)[index]; + if (Array.isArray(data)) return data[index]; + return extractKeys(data); + })); + }); + if (schema.inner) schema.inner = schema.inner.i18n(mapValues(messages, (data) => { + if (getInner(data)) return getInner(data); + return extractKeys(data); + })); + if (schema.sKey) schema.sKey = schema.sKey.i18n(mapValues(messages, (data) => data?.$key)); + return schema; + }; + Schema.prototype.extra = function extra(key, value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + }; + for (const key of [ + "required", + "disabled", + "collapse", + "hidden", + "loose" + ]) Object.assign(Schema.prototype, { [key](value = true) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + Schema.prototype.deprecated = function deprecated() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "deprecated", + type: "danger" + }); + return schema; + }; + Schema.prototype.experimental = function experimental() { + const schema = Schema(this); + schema.meta.badges ||= []; + schema.meta.badges.push({ + text: "experimental", + type: "warning" + }); + return schema; + }; + Schema.prototype.pattern = function pattern(regexp) { + const schema = Schema(this); + const pattern = pick(regexp, ["source", "flags"]); + schema.meta = { + ...schema.meta, + pattern + }; + return schema; + }; + Schema.prototype.simplify = function simplify(value) { + if (deepEqual(value, this.meta.default, this.type === "dict")) return null; + if (isNullable(value)) return value; + if (this.type === "object" || this.type === "dict") { + const result = {}; + for (const key in value) { + const item = (this.type === "object" ? this.dict[key] : this.inner)?.simplify(value[key]); + if (this.type === "dict" || !isNullable(item)) result[key] = item; + } + if (deepEqual(result, this.meta.default, this.type === "dict")) return null; + return result; + } else if (this.type === "array" || this.type === "tuple") { + const result = []; + value.forEach((value, index) => { + const schema = this.type === "array" ? this.inner : this.list[index]; + const item = schema ? schema.simplify(value) : value; + result.push(item); + }); + return result; + } else if (this.type === "intersect") { + const result = {}; + for (const item of this.list) Object.assign(result, item.simplify(value)); + return result; + } else if (this.type === "union") for (const schema of this.list) try { + Schema.resolve(value, schema, {}); + return schema.simplify(value); + } catch {} + return value; + }; + Schema.prototype.toString = function toString(inline) { + return formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`; + }; + Schema.prototype.role = function role(role, extra) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + role, + extra + }; + return schema; + }; + for (const key of [ + "default", + "link", + "comment", + "description", + "max", + "min", + "step" + ]) Object.assign(Schema.prototype, { [key](value) { + const schema = Schema(this); + schema.meta = { + ...schema.meta, + [key]: value + }; + return schema; + } }); + const resolvers = {}; + Schema.extend = function extend(type, resolve) { + resolvers[type] = resolve; + }; + Schema.resolve = function resolve(data, schema, options = {}, strict = false) { + if (!schema) return [data]; + if (options.ignore?.(data, schema)) return [data]; + if (isNullable(data) && schema.type !== "lazy") { + if (schema.meta.required) throw new ValidationError(`missing required value`, options); + let current = schema; + let fallback = schema.meta.default; + while (current?.type === "intersect" && isNullable(fallback)) { + current = current.list[0]; + fallback = current?.meta.default; + } + if (isNullable(fallback)) return [data]; + data = clone(fallback); + } + const callback = resolvers[schema.type]; + if (!callback) throw new ValidationError(`unsupported type "${schema.type}"`, options); + try { + return callback(data, schema, options, strict); + } catch (error) { + if (!schema.meta.loose) throw error; + return [schema.meta.default]; + } + }; + Schema.from = function from(source) { + if (isNullable(source)) return Schema.any(); + else if ([ + "string", + "number", + "boolean" + ].includes(typeof source)) return Schema.const(source).required(); + else if (source[kSchema]) return source; + else if (typeof source === "function") switch (source) { + case String: return Schema.string().required(); + case Number: return Schema.number().required(); + case Boolean: return Schema.boolean().required(); + case Function: return Schema.function().required(); + default: return Schema.is(source).required(); + } + else throw new TypeError(`cannot infer schema from ${source}`); + }; + Schema.lazy = function lazy(builder) { + const toJSON = () => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return schema.inner.toJSON(); + }; + const schema = new Schema({ + type: "lazy", + builder, + inner: { toJSON } + }); + return schema; + }; + Schema.natural = function natural() { + return Schema.number().step(1).min(0); + }; + Schema.percent = function percent() { + return Schema.number().step(.01).min(0).max(1).role("slider"); + }; + Schema.date = function date() { + return Schema.union([Schema.is(Date), Schema.transform(Schema.string().role("datetime"), (value, options) => { + const date = new Date(value); + if (isNaN(+date)) throw new ValidationError(`invalid date "${value}"`, options); + return date; + }, true)]); + }; + Schema.regExp = function regExp(flag = "") { + return Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role("regexp", { flag }), (value, options) => { + try { + return new RegExp(value, flag); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)]); + }; + Schema.arrayBuffer = function arrayBuffer(encoding) { + return Schema.union([ + Schema.is(ArrayBuffer), + Schema.is(SharedArrayBuffer), + Schema.transform(Schema.any(), (value, options) => { + if (Binary.isSource(value)) return Binary.fromSource(value); + throw new ValidationError(`expected ArrayBufferSource but got ${value}`, options); + }, true), + ...encoding ? [Schema.transform(Schema.string(), (value, options) => { + try { + return encoding === "base64" ? Binary.fromBase64(value) : Binary.fromHex(value); + } catch (e) { + throw new ValidationError(e.message, options); + } + }, true)] : [] + ]); + }; + Schema.extend("lazy", (data, schema, options, strict) => { + if (!schema.inner[kSchema]) { + schema.inner = schema.builder(); + schema.inner.meta = { + ...schema.meta, + ...schema.inner.meta + }; + } + return Schema.resolve(data, schema.inner, options, strict); + }); + Schema.extend("any", (data) => { + return [data]; + }); + Schema.extend("never", (data, _, options) => { + throw new ValidationError(`expected nullable but got ${data}`, options); + }); + Schema.extend("const", (data, { value }, options) => { + if (deepEqual(data, value)) return [value]; + throw new ValidationError(`expected ${value} but got ${data}`, options); + }); + function checkWithinRange(data, meta, description, options, skipMin = false) { + const { max = Infinity, min = -Infinity } = meta; + if (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options); + if (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options); + } + Schema.extend("string", (data, { meta }, options) => { + if (typeof data !== "string") throw new ValidationError(`expected string but got ${data}`, options); + if (meta.pattern) { + const regexp = new RegExp(meta.pattern.source, meta.pattern.flags); + if (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options); + } + checkWithinRange(data.length, meta, "string length", options); + return [data]; + }); + function decimalShift(data, digits) { + const str = data.toString(); + if (str.includes("e")) return data * Math.pow(10, digits); + const index = str.indexOf("."); + if (index === -1) return data * Math.pow(10, digits); + const frac = str.slice(index + 1); + const integer = str.slice(0, index); + if (frac.length <= digits) return +(integer + frac.padEnd(digits, "0")); + return +(integer + frac.slice(0, digits) + "." + frac.slice(digits)); + } + function isMultipleOf(data, min, step) { + step = Math.abs(step); + if (!/^\d+\.\d+$/.test(step.toString())) return (data - min) % step === 0; + const index = step.toString().indexOf("."); + const digits = step.toString().slice(index + 1).length; + return Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0; + } + Schema.extend("number", (data, { meta }, options) => { + if (typeof data !== "number") throw new ValidationError(`expected number but got ${data}`, options); + checkWithinRange(data, meta, "number", options); + const { step } = meta; + if (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options); + return [data]; + }); + Schema.extend("boolean", (data, _, options) => { + if (typeof data === "boolean") return [data]; + throw new ValidationError(`expected boolean but got ${data}`, options); + }); + Schema.extend("bitset", (data, { bits, meta }, options) => { + let value = 0, keys = []; + if (typeof data === "number") { + value = data; + for (const key in bits) if (data & bits[key]) keys.push(key); + } else if (Array.isArray(data)) { + keys = data; + for (const key of keys) { + if (typeof key !== "string") throw new ValidationError(`expected string but got ${key}`, options); + if (key in bits) value |= bits[key]; + } + } else throw new ValidationError(`expected number or array but got ${data}`, options); + if (value === meta.default) return [value]; + return [value, keys]; + }); + Schema.extend("function", (data, _, options) => { + if (typeof data === "function") return [data]; + throw new ValidationError(`expected function but got ${data}`, options); + }); + Schema.extend("is", (data, { constructor }, options) => { + if (typeof constructor === "function") { + if (data instanceof constructor) return [data]; + throw new ValidationError(`expected ${constructor.name} but got ${data}`, options); + } else { + if (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options); + let prototype = Object.getPrototypeOf(data); + while (prototype) { + if (prototype.constructor?.name === constructor) return [data]; + prototype = Object.getPrototypeOf(prototype); + } + throw new ValidationError(`expected ${constructor} but got ${data}`, options); + } + }); + function property(data, key, schema, options) { + try { + const [value, adapted] = Schema.resolve(data[key], schema, { + ...options, + path: [...options.path || [], key] + }); + if (adapted !== void 0) data[key] = adapted; + return value; + } catch (e) { + if (!options?.autofix) throw e; + delete data[key]; + return schema.meta.default; + } + } + Schema.extend("array", (data, { inner, meta }, options) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + checkWithinRange(data.length, meta, "array length", options, !isNullable(inner.meta.default)); + return [data.map((_, index) => property(data, index, inner, options))]; + }); + Schema.extend("dict", (data, { inner, sKey }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in data) { + let rKey; + try { + rKey = Schema.resolve(key, sKey, options)[0]; + } catch (error) { + if (strict) continue; + throw error; + } + result[rKey] = property(data, key, inner, options); + data[rKey] = data[key]; + if (key !== rKey) delete data[key]; + } + return [result]; + }); + Schema.extend("tuple", (data, { list }, options, strict) => { + if (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options); + const result = list.map((inner, index) => property(data, index, inner, options)); + if (strict) return [result]; + result.push(...data.slice(list.length)); + return [result]; + }); + function merge(result, data) { + for (const key in data) { + if (key in result) continue; + result[key] = data[key]; + } + } + Schema.extend("object", (data, { dict }, options, strict) => { + if (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options); + const result = {}; + for (const key in dict) { + const value = property(data, key, dict[key], options); + if (!isNullable(value) || key in data) result[key] = value; + } + if (!strict) merge(result, data); + return [result]; + }); + Schema.extend("union", (data, { list, toString }, options, strict) => { + const messages = []; + for (const inner of list) try { + return Schema.resolve(data, inner, options, strict); + } catch (error) { + messages.push(error); + } + throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + }); + Schema.extend("intersect", (data, { list, toString }, options, strict) => { + if (!list.length) return [data]; + let result; + for (const inner of list) { + const value = Schema.resolve(data, inner, options, true)[0]; + if (isNullable(value)) continue; + if (isNullable(result)) result = value; + else if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + else if (typeof value === "object") merge(result ??= {}, value); + else if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options); + } + if (!strict && isPlainObject(data)) merge(result, data); + return [result]; + }); + Schema.extend("transform", (data, { inner, callback, preserve }, options) => { + const [result, adapted = data] = Schema.resolve(data, inner, options, true); + if (preserve) return [callback(result)]; + else return [callback(result), callback(adapted)]; + }); + const formatters = {}; + function defineMethod(name, keys, format) { + formatters[name] = format; + Object.assign(Schema, { [name](...args) { + const schema = new Schema({ type: name }); + keys.forEach((key, index) => { + switch (key) { + case "sKey": + schema.sKey = args[index] ?? Schema.string(); + break; + case "inner": + schema.inner = Schema.from(args[index]); + break; + case "list": + schema.list = args[index].map(Schema.from); + break; + case "dict": + schema.dict = mapValues(args[index], Schema.from); + break; + case "bits": + schema.bits = {}; + for (const key in args[index]) { + if (typeof args[index][key] !== "number") continue; + schema.bits[key] = args[index][key]; + } + break; + case "callback": { + const callback = schema.callback = args[index]; + callback["toJSON"] ||= () => callback.toString(); + break; + } + case "constructor": { + const constructor = schema.constructor = args[index]; + if (typeof constructor === "function") constructor["toJSON"] ||= () => constructor["name"]; + break; + } + default: schema[key] = args[index]; + } + }); + if (name === "object" || name === "dict") schema.meta.default = {}; + else if (name === "array" || name === "tuple") schema.meta.default = []; + else if (name === "bitset") schema.meta.default = 0; + return schema; + } }); + } + defineMethod("is", ["constructor"], ({ constructor }) => { + if (typeof constructor === "function") return constructor.name; + else return constructor; + }); + defineMethod("any", [], () => "any"); + defineMethod("never", [], () => "never"); + defineMethod("const", ["value"], ({ value }) => typeof value === "string" ? JSON.stringify(value) : value); + defineMethod("string", [], () => "string"); + defineMethod("number", [], () => "number"); + defineMethod("boolean", [], () => "boolean"); + defineMethod("bitset", ["bits"], () => "bitset"); + defineMethod("function", [], () => "function"); + defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`); + defineMethod("dict", ["inner", "sKey"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`); + defineMethod("tuple", ["list"], ({ list }) => `[${list.map((inner) => inner.toString()).join(", ")}]`); + defineMethod("object", ["dict"], ({ dict }) => { + if (Object.keys(dict).length === 0) return "{}"; + return `{ ${Object.entries(dict).map(([key, inner]) => { + return `${key}${inner.meta.required ? "" : "?"}: ${inner.toString()}`; + }).join(", ")} }`; + }); + defineMethod("union", ["list"], ({ list }, inline) => { + const result = list.map(({ toString: format }) => format()).join(" | "); + return inline ? `(${result})` : result; + }); + defineMethod("intersect", ["list"], ({ list }) => { + return `${list.map((inner) => inner.toString(true)).join(" & ")}`; + }); + defineMethod("transform", [ + "inner", + "callback", + "preserve" + ], ({ inner }, isInner) => inner.toString(isInner)); + //#endregion + //#region lib/types/submission-settings.js + /** Busy-Enter preference stored in the Host user-settings document. */ + /** Settings namespace owned by the conversation plugin. */ + const CONVERSATION_SETTINGS_NAMESPACE = "ui-conversation"; + /** Field carrying the delivery mode for plain Enter while an agent is busy. */ + const BUSY_ENTER_FIELD = "busyEnter"; + /** Busy-Enter behaviors accepted at settings and input boundaries. */ + const BUSY_ENTER_BEHAVIORS = ["queue", "steer"]; + /** Default preserves Enter-as-Queue for running conversations. */ + const DEFAULT_BUSY_ENTER_BEHAVIOR = "queue"; + Schema.object({ [BUSY_ENTER_FIELD]: Schema.union([...BUSY_ENTER_BEHAVIORS]).default(DEFAULT_BUSY_ENTER_BEHAVIOR) }); + //#endregion + //#region lib/types/client/input/submission-policy.js + /** + * Composer submission policy. It owns the live busy-Enter + * preference and resolves keyboard gestures into queue/steer delivery modes; + * Host and Agent keep the actual delivery-window authority. + */ + /** + * Busy-Enter policy used by both the composer inject face and its Settings row. + * Direct `steer` is intentionally best-effort: AgentLoop turns a closed-window + * submission into the next waking Queue item. + */ + var ComposerSubmissionPolicy = class { + /** Reactive preference source for the Settings row. */ + busyEnter = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(DEFAULT_BUSY_ENTER_BEHAVIOR); + host; + /** + * @param host - durable preference scope owned by the providing plugin; + * absent compositions stay process-local. The adoption subscription shares + * the scope's plugin lifetime — a disposed scope never publishes again, so + * the policy needs no release hook. + */ + constructor(host) { + this.host = host; + if (host !== void 0) { + host.subscribe(() => { + this.adopt(host); + }); + this.adopt(host); + } + } + /** + * Resolve one keyboard gesture without changing state. + * @param running - whether the addressed agent currently reports busy. + * @param gesture - plain Enter or the Cmd/Ctrl-accelerated chord. + * @param steeringAvailable - whether this session transport supports steering. + * @returns Queue outside steer-capable busy state; otherwise the preferred mode or its opposite. + */ + resolve(running, gesture, steeringAvailable) { + if (!running || !steeringAvailable) return "queue"; + const preferred = this.busyEnter.getSnapshot(); + if (gesture === "enter") return preferred; + return preferred === "queue" ? "steer" : "queue"; + } + /** + * Change the plain-Enter behavior used during busy state; the live value + * publishes before the durable write starts. + * @param behavior - Queue or Steer. + */ + setBusyEnter(behavior) { + if (this.busyEnter.getSnapshot() === behavior) return; + this.busyEnter.set(behavior); + this.host?.set(BUSY_ENTER_FIELD, behavior); + } + /** + * Adopt the scope's accepted durable behavior without writing it back. + * @param host - the constructor-narrowed scope driving this adoption. + */ + adopt(host) { + const section = host.getSnapshot().value; + if (section === void 0 || this.busyEnter.getSnapshot() === section.busyEnter) return; + this.busyEnter.set(section.busyEnter); + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region lib/types/client/input/decorations.js + /** Token matcher: a trigger char at line start or after whitespace, then a word-ish name (never crosses \n). */ + const TEXT_REF_RE = /(^|\s)([/@])([\w-]+)/g; + /** + * Scan the draft for plain-text reference tokens against the hot lexicons. + * Word-boundary discipline: the trigger must sit at the draft + * start or after whitespace ('x/name' never matches); the name must be an + * exact lexicon member. + * @param draft - draft text. + * @param lexicon - per-trigger name lists (a missing trigger scans nothing). + * @returns matched ranges in draft order. + */ + function scanTextRefs(draft, lexicon) { + if (lexicon.size === 0 || draft === "") return []; + const out = []; + TEXT_REF_RE.lastIndex = 0; + let m; + while ((m = TEXT_REF_RE.exec(draft)) !== null) { + const trigger = m[2]; + const name = m[3] ?? ""; + if (lexicon.get(trigger)?.includes(name)) { + const start = m.index + (m[1]?.length ?? 0); + out.push({ + start, + end: start + 1 + name.length, + trigger + }); + } + } + return out; + } + /** The empty lexicon (default: zero text-ref decorations, old call sites unchanged). */ + const EMPTY_LEXICON$1 = /* @__PURE__ */ new Map(); + /** + * Derive the mirror-layer decorations from the input state. + * @param state - published input state. + * @param lexicon - optional per-trigger reference lexicons (plain-text-reference scan). + * @returns token range, chip instructions, text-ref ranges, and the ghost hint. + */ + function deriveDecorations(state, lexicon = EMPTY_LEXICON$1) { + const { draft, claim, phase, occurrences } = state; + const claimActive = (phase === "claimed" || phase === "submitting") && claim !== void 0 && draft.startsWith(claim.token); + const token = claimActive ? { + start: 0, + end: claim.token.length + } : null; + const chips = occurrences.map((o) => ({ + occurrenceId: o.occurrenceId, + offset: o.offset, + label: o.label, + invalid: o.invalid === true + })); + const hint = claimActive && claim.hint !== void 0 && draft.slice(claim.token.length).trim() === "" ? claim.hint : null; + return { + token, + chips, + textRefs: scanTextRefs(draft, lexicon), + hint + }; + } + //#endregion + //#region lib/types/client/image-labels.js + /** Bridges the `conversation` locale namespace to the zero-cordis attachment + * atoms' label props (`@deepseek-ai/dsh-client-ui-attachment` reads no + * application state; owners resolve every string). */ + /** + * Byte count as user-facing megabytes (`10MB`, `2.5MB`). + * @param bytes - the byte count. + * @returns the rounded megabyte text. + */ + function imageSizeText(bytes) { + const mb = bytes / (1024 * 1024); + return `${Number.isInteger(mb) ? String(mb) : mb.toFixed(1)}MB`; + } + /** + * Product copy for a host attachment rejection (the `attachment-error` + * `details.reason`). User-solvable reasons name the limit and the way out; + * reasons the user cannot act on fold into one send-failed line carrying the + * reason code for a bug report. + * @param t - the conversation-namespace translate. + * @param reason - the wire `details.reason` code. + * @param limits - projected limits interpolated into count/size copy, when known. + * @returns the banner text. + */ + function attachmentErrorText(t, reason, limits) { + switch (reason) { + case "MODEL_DOES_NOT_SUPPORT_IMAGES": return t("image.modelUnsupported"); + case "SUBAGENT_IMAGE_UNSUPPORTED": return t("image.subagentUnsupported"); + case "IMAGE_TOO_MANY_PIXELS": return t("image.tooManyPixels"); + case "INVALID_IMAGE": + case "IMAGE_TYPE_MISMATCH": return t("image.unsupportedType"); + case "TOO_MANY_IMAGES": + if (limits !== void 0) return t("image.tooMany", { count: limits.maxImagesPerMessage }); + break; + case "IMAGE_TOO_LARGE": + if (limits !== void 0) return t("image.fileTooLarge", { size: imageSizeText(limits.maxImageBytes) }); + break; + case "IMAGES_TOO_LARGE": + if (limits !== void 0) return t("image.totalTooLarge", { size: imageSizeText(limits.maxMessageImageBytes) }); + break; + default: break; + } + return t("image.sendFailed", { reason }); + } + /** + * Resolve the original-image lightbox strings. + * @param t - the conversation-namespace translate. + * @returns the lightbox dialog and close-control labels. + */ + function lightboxLabels(t) { + return { + dialog: t("image.preview"), + close: t("image.closePreview") + }; + } + /** + * Resolve the chat-history image strings. + * @param t - the conversation-namespace translate. + * @returns the message-image labels including the forwarded lightbox strings. + */ + function messageImageLabels(t) { + return { + image: t("image.label"), + open: t("image.openOriginal"), + openNamed: (label) => t("image.openOriginalLabel", { label }), + loading: t("image.loading"), + loadFailed: t("image.loadFailed"), + lightbox: lightboxLabels(t) + }; + } + /** + * Resolve the full-page drop overlay strings. + * @param t - the conversation-namespace translate. + * @param accepting - whether drops are currently accepted. + * @param limits - per-message limits for the desc line, when known. + * @returns the overlay title, with the limits desc while accepting. + */ + function dropOverlayLabels(t, accepting, limits) { + if (!accepting) return { title: t("image.dropBlocked") }; + return { + title: t("image.dropTitle"), + desc: limits === void 0 ? void 0 : t("image.dropDesc", { + count: limits.count, + size: limits.size + }) + }; + } + /** + * Resolve the composer draft-image rail strings. + * @param t - the conversation-namespace translate. + * @returns the rail group, open-tooltip, and paging-arrow labels. + */ + function attachmentRailLabels(t) { + return { + group: t("image.pending"), + open: t("image.openOriginal"), + scrollLeft: t("image.scrollLeft"), + scrollRight: t("image.scrollRight") + }; + } + //#endregion + //#region lib/types/client/chat/message-chrome.js + function pad2(n) { + return String(n).padStart(2, "0"); + } + /** + * Local calendar-day epoch (ms at local midnight) for an instant. + * @param ms - Unix epoch ms. + * @returns Midnight of that local calendar day. + */ + function startOfLocalDay(ms) { + const d = new Date(ms); + d.setHours(0, 0, 0, 0); + return d.getTime(); + } + /** + * Delay until the next local midnight after `ms` (at least 1ms). + * @param ms - Unix epoch ms. + * @returns Milliseconds until the following local midnight. + */ + function msUntilNextLocalMidnight(ms) { + const next = new Date(ms); + next.setHours(24, 0, 0, 0); + return Math.max(next.getTime() - ms, 1); + } + /** + * Localized elapsed-time label shared by running and settled turn chrome. + * @param ms - Elapsed duration in milliseconds (negatives clamp to zero). + * @param t - Translate seat supplying the duration templates. + * @returns Display string in whole seconds. + */ + function formatRunDuration(ms, t) { + const total = Math.max(0, Math.floor(ms / 1e3)); + const minutes = Math.floor(total / 60); + const seconds = total % 60; + return minutes > 0 ? t("duration.minutes", { + minutes, + seconds: String(seconds).padStart(2, "0") + }) : t("duration.seconds", { seconds }); + } + /** + * Sub-turn latency figure: one decimal under ten seconds, whole seconds + * beyond. Unit-less so the locale template owns the second suffix. + * @param ms - Latency in milliseconds (negatives clamp to zero). + * @returns Display number in seconds without unit. + */ + function formatLatencySeconds(ms) { + const s = Math.max(0, ms) / 1e3; + return s < 10 ? String(Math.round(s * 10) / 10) : String(Math.round(s)); + } + /** + * Decode-throughput figure: whole tokens from ten up, one decimal below. + * @param tps - Tokens per second. + * @returns Display number without unit. + */ + function formatTokensPerSecond(tps) { + const clamped = Math.max(0, tps); + return clamped >= 10 ? String(Math.round(clamped)) : String(Math.round(clamped * 10) / 10); + } + /** + * Compact local timestamp for message IconActions. Same calendar day → + * `HH:mm`; earlier this year → the `clock.md` date template + clock; other + * years → the `clock.ymd` template + clock. Pure: the date templates arrive + * through the caller's locale seat. + * @param time - Unix epoch ms from the source session event. + * @param t - translate seat supplying the `clock.md` / `clock.ymd` templates. + * @param now - Reference instant for the day/year cut (defaults to wall clock). + * @returns Date-aware clock string (24-hour, zero-padded time). + */ + function formatMessageClock(time, t, now = Date.now()) { + const d = new Date(time); + const n = new Date(now); + const clock = `${pad2(d.getHours())}:${pad2(d.getMinutes())}`; + if (d.getFullYear() === n.getFullYear() && d.getMonth() === n.getMonth() && d.getDate() === n.getDate()) return clock; + const params = { + y: d.getFullYear(), + m: d.getMonth() + 1, + d: d.getDate() + }; + return `${d.getFullYear() === n.getFullYear() ? t("clock.md", params) : t("clock.ymd", params)} ${clock}`; + } + //#endregion + //#region lib/types/client/chat/turn-metrics.js + function usageOutputTokens(usage) { + if (typeof usage !== "object" || usage === null) return null; + const value = usage.outputTokens; + return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null; + } + /** + * Read one assistant node's TTFT, decode wall time, and output tokens. + * @param node - A settled assistant node. + * @returns Per-part readings with `null` for unrecorded values. + */ + function assistantStepReading(node) { + const timing = node.timing; + return { + ttftMs: timing !== void 0 && timing.stepStartTime !== null && timing.firstTokenTime !== null ? Math.max(0, timing.firstTokenTime - timing.stepStartTime) : null, + decodeMs: timing !== void 0 && timing.firstTokenTime !== null ? Math.max(0, timing.completedTime - timing.firstTokenTime) : null, + outputTokens: usageOutputTokens(node.usage) + }; + } + /** + * Fold assistant nodes into per-turn footer metrics. + * + * TTFT is the turn's lowest-step request-dispatch-to-first-token reading, so + * it is only meaningful when the turn's start is inside + * the loaded window (the caller gates on `turnTimings`, which shares that + * window). Throughput divides summed output tokens by summed decode wall time, + * counting only steps that carry both. + * @param nodes - Snapshot nodes of the loaded window. + * @returns Turn number → available metrics; turns with none are absent. + */ + function deriveTurnMetrics(nodes) { + const folds = /* @__PURE__ */ new Map(); + for (const node of nodes) { + if (node.kind !== "assistant") continue; + const reading = assistantStepReading(node); + let fold = folds.get(node.turn); + if (fold === void 0) { + fold = { + firstStep: node.step, + firstStepTtftMs: reading.ttftMs, + decodeMs: 0, + outputTokens: 0, + sampled: false + }; + folds.set(node.turn, fold); + } else if (node.step < fold.firstStep) { + fold.firstStep = node.step; + fold.firstStepTtftMs = reading.ttftMs; + } + if (reading.decodeMs !== null && reading.outputTokens !== null) { + fold.decodeMs += reading.decodeMs; + fold.outputTokens += reading.outputTokens; + fold.sampled = true; + } + } + const metrics = /* @__PURE__ */ new Map(); + for (const [turn, fold] of folds) { + const entry = {}; + if (fold.firstStepTtftMs !== null) entry.ttftMs = fold.firstStepTtftMs; + if (fold.sampled && fold.decodeMs > 0) entry.tokensPerSecond = fold.outputTokens / (fold.decodeMs / 1e3); + if (entry.ttftMs !== void 0 || entry.tokensPerSecond !== void 0) metrics.set(turn, entry); + } + return metrics; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/StatsLine.module.css.mjs + const css$20 = ".FJxK0a_root{text-align:center;max-width:var(--dsh-chat-content-width);box-sizing:border-box;width:100%;padding:4px calc(var(--dsh-composer-side-clearance) + 16px) 0px;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0 auto;font-size:12px;line-height:20px;display:block;overflow:hidden}.FJxK0a_sep{color:var(--dsw-alias-separator-primary);margin:0 10px}"; + const tagId$20 = "@deepseek-ai/dsh-client-ui-conversation/StatsLine.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$20) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$20; + tag.textContent = css$20; + document.head.appendChild(tag); + } + var StatsLine_module_css_default = { + "sep": "FJxK0a_sep", + "root": "FJxK0a_root" + }; + //#endregion + //#region lib/types/client/chat/StatsLine.js + /** + * Fold assistant and tool-result nodes into window-scoped display totals — + * the FALLBACK for assemblies without the `sessionStats` projection. + * + * Every displayed figure rides that durable whole-log projection (and token + * accounting rides `tokenUsage`) because the window is paged and compaction + * rewrites it; this fold answers "what is on screen" only when no projection + * value is served. Its field names deliberately mirror the projection's so + * the two swap wholesale. + * @param nodes - snapshot nodes. + * @returns fallback counts and summed wall times. + */ + function deriveStats(nodes) { + const turns = /* @__PURE__ */ new Set(); + let steps = 0; + let llmMs = 0; + let toolMs = 0; + let ttftMs = 0; + let ttftSteps = 0; + let decodeMs = 0; + let decodeTokens = 0; + for (const node of nodes) { + if (node.kind === "tool-result") { + if (node.callTime !== null) toolMs += Math.max(0, node.time - node.callTime); + continue; + } + if (node.kind !== "assistant") continue; + turns.add(node.turn); + steps += 1; + if (node.timing !== void 0 && node.timing.stepStartTime !== null) llmMs += Math.max(0, node.timing.completedTime - node.timing.stepStartTime); + const reading = assistantStepReading(node); + if (reading.ttftMs !== null) { + ttftMs += reading.ttftMs; + ttftSteps += 1; + } + if (reading.decodeMs !== null && reading.outputTokens !== null) { + decodeMs += reading.decodeMs; + decodeTokens += reading.outputTokens; + } + } + return { + turns: turns.size, + steps, + llmMs, + toolMs, + ttftMs, + ttftSteps, + decodeMs, + decodeTokens + }; + } + /** + * Compact token count: 517 / 12.2K / 517K / 1.2M (one decimal under three digits). + * @param n - token count. + * @returns display string. + */ + function formatTokens(n) { + const scaled = (v) => v >= 100 ? String(Math.round(v)) : String(Math.round(v * 10) / 10); + if (n < 1e3) return String(n); + if (n < 1e6) return `${scaled(n / 1e3)}K`; + return `${scaled(n / 1e6)}M`; + } + /** + * Compact duration: 45.2s under a minute, 2m42s from there on. + * @param ms - duration in milliseconds. + * @returns display string. + */ + function formatDuration(ms) { + const s = ms / 1e3; + if (s < 60) return `${Math.round(s * 10) / 10}s`; + const whole = Math.round(s); + return `${Math.floor(whole / 60)}m${whole % 60}s`; + } + /** + * Cache-hit share of prompt-side input over the whole durable log. + * @param usage - the session's token-usage projection value. + * @returns rounded integer percent, or null when no input was billed. + */ + function cacheHitPercent(usage) { + const denominator = billedInputTokens(usage); + return denominator === 0 ? null : Math.round(usage.cacheReadTokens / denominator * 100); + } + /** + * Sum the three disjoint prompt-side billing buckets. + * @param usage - the session's token-usage projection value. + * @returns billed input tokens. + */ + function billedInputTokens(usage) { + return usage.uncachedInputTokens + usage.cacheReadTokens + usage.cacheWriteTokens; + } + /** + * Approximate context occupancy, using the TUI's integer rounding and upper + * clamp. The numerator is `projectedTokens` — the provider sample carried + * forward over the surface's movement since — so compaction shows immediately + * instead of waiting for the next request to report usage; it falls back to the + * bare sample only for a log whose projection predates that field. Numerator + * and capacity remain independent last-wins projection fields, so this is a + * reference figure rather than an exact measurement of one request (see the + * token-meter README). + * @param pressure - the session's context-pressure projection value. + * @returns occupancy with its numerator and denominator, or null until both values are known. + */ + function contextOccupancy(pressure) { + const usedTokens = pressure?.projectedTokens ?? pressure?.pressureTokens; + if (usedTokens === void 0 || pressure?.contextWindow === void 0) return null; + return { + percent: Math.min(100, Math.round(usedTokens / pressure.contextWindow * 100)), + usedTokens, + contextWindow: pressure.contextWindow + }; + } + const StatsLine = (0, react.memo)(function StatsLine({ useSession, useProjection, t }) { + const settledNodes = useSession((s) => s.chat.legacy.nodes); + const usage = useProjection("tokenUsage"); + const projected = useProjection("sessionStats"); + const stats = (0, react.useMemo)(() => projected ?? deriveStats(settledNodes), [projected, settledNodes]); + const groups = []; + if (stats.steps > 0) { + groups.push(t("stats.counts", { + turns: stats.turns, + steps: stats.steps + })); + const durations = []; + if (stats.llmMs > 0) durations.push(t("stats.llm", { duration: formatDuration(stats.llmMs) })); + if (stats.toolMs > 0) durations.push(t("stats.toolCall", { duration: formatDuration(stats.toolMs) })); + if (durations.length > 0) groups.push(durations.join(" · ")); + const speeds = []; + if (stats.ttftSteps > 0) speeds.push(t("stats.ttftAverage", { duration: formatDuration(stats.ttftMs / stats.ttftSteps) })); + if (stats.decodeMs > 0) speeds.push(t("stats.tokensPerSecond", { throughput: formatTokensPerSecond(stats.decodeTokens / (stats.decodeMs / 1e3)) })); + if (speeds.length > 0) groups.push(speeds.join(" · ")); + } + if (usage !== void 0 && (billedInputTokens(usage) > 0 || usage.outputTokens > 0)) { + const cacheHit = cacheHitPercent(usage); + if (cacheHit !== null) groups.push(t("stats.cacheHit", { percent: cacheHit })); + groups.push(t("stats.tokens", { + input: formatTokens(billedInputTokens(usage)), + output: formatTokens(usage.outputTokens) + })); + } + const line = groups.join(" | "); + const rootRef = (0, react.useRef)(null); + const [truncated, setTruncated] = (0, react.useState)(false); + (0, react.useLayoutEffect)(() => { + const el = rootRef.current; + if (el === null) return; + const measure = () => { + setTruncated(el.scrollWidth > el.clientWidth); + }; + measure(); + if (typeof ResizeObserver === "undefined") return; + const observer = new ResizeObserver(measure); + observer.observe(el); + return () => { + observer.disconnect(); + }; + }, [line]); + if (groups.length === 0) return null; + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: line, + side: "top", + delayMs: 500, + disabled: !truncated, + children: (0, react_jsx_runtime.jsx)("div", { + ref: rootRef, + className: StatsLine_module_css_default.root, + children: groups.map((group, i) => (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [i > 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: StatsLine_module_css_default.sep, + "aria-hidden": true, + children: "|" + }), " "] }), (0, react_jsx_runtime.jsx)("span", { children: group })] }, group)) + }) + }); + }); + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/ContextMeter.module.css.mjs + const css$19 = ".JObwrW_root{display:inline-flex;position:relative}.JObwrW_trigger{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.JObwrW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.JObwrW_track{fill:none;stroke:var(--dsw-alias-border-l3);stroke-width:2px}.JObwrW_fill{fill:none;stroke:var(--dsw-alias-label-tertiary);stroke-width:2px;stroke-linecap:round}.JObwrW_panel{z-index:100;box-sizing:border-box;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);width:264px;box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-secondary);cursor:default;border-radius:12px;padding:12px;font-size:12px;line-height:20px;position:absolute;bottom:calc(100% + 8px);right:0}.JObwrW_header{align-items:center;gap:6px;display:flex}.JObwrW_figures{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);margin-left:auto;font-weight:500}.JObwrW_percent{color:var(--dsw-alias-label-primary);font-weight:500}.JObwrW_headline{color:var(--dsw-alias-label-tertiary)}.JObwrW_headline:empty{display:none}.JObwrW_bar{background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;gap:1px;height:4px;margin:10px 0 12px;display:flex;overflow:hidden}.JObwrW_segment{background:var(--meter-tint,var(--dsw-alias-label-tertiary));border-radius:1px;flex:none;min-width:2px;height:100%}.JObwrW_swatch{background:var(--meter-tint);vertical-align:baseline;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.JObwrW_colorSystem{--meter-tint:var(--dsw-static-neutral-bluish-400)}.JObwrW_colorTools{--meter-tint:#a78bfa}.JObwrW_colorMessages{--meter-tint:var(--dsw-static-blue-450)}.JObwrW_rows{margin:6px 0 0}.JObwrW_row{justify-content:space-between;align-items:center;gap:12px;padding:2px 0;display:flex}.JObwrW_row dt{color:var(--dsw-alias-label-secondary)}.JObwrW_row dd{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);margin:0}"; + const tagId$19 = "@deepseek-ai/dsh-client-ui-conversation/ContextMeter.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$19) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$19; + tag.textContent = css$19; + document.head.appendChild(tag); + } + var ContextMeter_module_css_default = { + "trigger": "JObwrW_trigger", + "track": "JObwrW_track", + "row": "JObwrW_row", + "header": "JObwrW_header", + "percent": "JObwrW_percent", + "headline": "JObwrW_headline", + "bar": "JObwrW_bar", + "swatch": "JObwrW_swatch", + "rows": "JObwrW_rows", + "segment": "JObwrW_segment", + "panel": "JObwrW_panel", + "fill": "JObwrW_fill", + "colorMessages": "JObwrW_colorMessages", + "colorTools": "JObwrW_colorTools", + "colorSystem": "JObwrW_colorSystem", + "figures": "JObwrW_figures", + "root": "JObwrW_root" + }; + //#endregion + //#region lib/types/client/skeleton/ContextMeter.js + /** Composer context-occupancy meter: a ring beside the send button fed by the + * `contextPressure` projection, with a click-open panel of the heuristic + * `contextBreakdown` composition (system prompt, tools, conversation). + * Renders nothing until a provider reports both pressure and a route + * capacity. */ + /** Ring geometry: 14px viewBox, 2px stroke. */ + const RADIUS = 5.5; + const CIRCUMFERENCE = 2 * Math.PI * RADIUS; + /** + * Marker the localized occupancy sentence is split on, so the panel headline + * keeps the reading in its own tone while each locale still owns the word + * order (`45% of context used` / `上下文已用 45%`). + */ + const READING_SLOT = "\0"; + /** Panel legend rows, in bar-segment order; each color class carries the shared swatch/segment tint. */ + const ROWS = [ + { + key: "systemTokens", + label: "context.system", + color: ContextMeter_module_css_default.colorSystem + }, + { + key: "toolsTokens", + label: "context.tools", + color: ContextMeter_module_css_default.colorTools + }, + { + key: "messageTokens", + label: "context.messages", + color: ContextMeter_module_css_default.colorMessages + } + ]; + function ContextMeter({ useProjection, t }) { + const pressure = useProjection("contextPressure"); + const breakdown = useProjection("contextBreakdown"); + const [open, setOpen] = (0, react.useState)(false); + const rootRef = (0, react.useRef)(null); + const context = contextOccupancy(pressure); + const available = context !== null; + (0, react.useEffect)(() => { + if (!available && open) setOpen(false); + }, [available, open]); + (0, react.useEffect)(() => { + if (!open || !available) return; + const onPointerDown = (e) => { + if (e.target instanceof Node && rootRef.current?.contains(e.target) === true) return; + setOpen(false); + }; + const onKeyDown = (e) => { + if (e.key === "Escape") setOpen(false); + }; + document.addEventListener("pointerdown", onPointerDown); + document.addEventListener("keydown", onKeyDown); + return () => { + document.removeEventListener("pointerdown", onPointerDown); + document.removeEventListener("keydown", onKeyDown); + }; + }, [available, open]); + if (context === null) return null; + const percent = context.percent; + const reading = `${percent}%`; + const [headBefore = "", headAfter = ""] = t("context.aria", { percent: READING_SLOT }).split(READING_SLOT).map((part) => part.trim()); + const breakdownTotal = breakdown === void 0 ? 0 : breakdown.systemTokens + breakdown.toolsTokens + breakdown.messageTokens; + const segments = (breakdown === void 0 || breakdownTotal === 0 ? [{ + key: "total", + color: void 0, + width: percent + }] : ROWS.map((row) => ({ + key: row.key, + color: row.color, + width: percent * breakdown[row.key] / breakdownTotal + }))).filter((part) => part.width > 0); + return (0, react_jsx_runtime.jsxs)("span", { + ref: rootRef, + className: ContextMeter_module_css_default.root, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("context.aria", { percent: reading }), + side: "top", + delayMs: 200, + disabled: open, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ContextMeter_module_css_default.trigger, + "aria-label": t("context.aria", { percent: reading }), + "aria-haspopup": "dialog", + "aria-expanded": open, + onClick: () => { + setOpen(!open); + }, + children: (0, react_jsx_runtime.jsxs)("svg", { + viewBox: "0 0 14 14", + width: "14", + height: "14", + "aria-hidden": true, + children: [(0, react_jsx_runtime.jsx)("circle", { + className: ContextMeter_module_css_default.track, + cx: "7", + cy: "7", + r: RADIUS + }), (0, react_jsx_runtime.jsx)("circle", { + className: ContextMeter_module_css_default.fill, + cx: "7", + cy: "7", + r: RADIUS, + strokeDasharray: `${CIRCUMFERENCE * percent / 100} ${CIRCUMFERENCE}`, + transform: "rotate(-90 7 7)" + })] + }) + }) + }), open && (0, react_jsx_runtime.jsxs)("div", { + className: ContextMeter_module_css_default.panel, + role: "dialog", + "aria-label": t("context.used"), + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: ContextMeter_module_css_default.header, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ContextMeter_module_css_default.headline, + children: headBefore + }), + (0, react_jsx_runtime.jsx)("span", { + className: ContextMeter_module_css_default.percent, + children: reading + }), + (0, react_jsx_runtime.jsx)("span", { + className: ContextMeter_module_css_default.headline, + children: headAfter + }), + (0, react_jsx_runtime.jsx)("span", { + className: ContextMeter_module_css_default.figures, + children: `~${formatTokens(context.usedTokens)} / ${formatTokens(context.contextWindow)}` + }) + ] + }), + (0, react_jsx_runtime.jsx)("div", { + className: ContextMeter_module_css_default.bar, + children: segments.map((segment) => (0, react_jsx_runtime.jsx)("div", { + className: segment.color === void 0 ? ContextMeter_module_css_default.segment : `${ContextMeter_module_css_default.segment} ${segment.color}`, + style: { width: `${segment.width}%` } + }, segment.key)) + }), + breakdown !== void 0 && (0, react_jsx_runtime.jsx)("dl", { + className: ContextMeter_module_css_default.rows, + children: ROWS.map((row) => (0, react_jsx_runtime.jsxs)("div", { + className: ContextMeter_module_css_default.row, + children: [(0, react_jsx_runtime.jsxs)("dt", { children: [(0, react_jsx_runtime.jsx)("span", { + className: `${ContextMeter_module_css_default.swatch} ${row.color}`, + "aria-hidden": true + }), t(row.label)] }), (0, react_jsx_runtime.jsx)("dd", { children: `~${formatTokens(breakdown[row.key])}` })] + }, row.key)) + }) + ] + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/PermissionSelect.module.css.mjs + const css$18 = ".Sh0Q9G_trigger{min-width:0;max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.Sh0Q9G_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.Sh0Q9G_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-border-l3)}.Sh0Q9G_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.Sh0Q9G_triggerIcon{flex:none;display:inline-flex}.Sh0Q9G_triggerIcon svg{width:14px;height:14px}.Sh0Q9G_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Sh0Q9G_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s;display:inline-flex}@container (width<=460px){.Sh0Q9G_trigger:has(.Sh0Q9G_triggerIcon) .Sh0Q9G_triggerLabel{display:none}}.Sh0Q9G_chevronOpen{transform:rotate(180deg)}"; + const tagId$18 = "@deepseek-ai/dsh-client-ui-conversation/PermissionSelect.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$18) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$18; + tag.textContent = css$18; + document.head.appendChild(tag); + } + var PermissionSelect_module_css_default = { + "chevronOpen": "Sh0Q9G_chevronOpen", + "chevron": "Sh0Q9G_chevron", + "triggerLabel": "Sh0Q9G_triggerLabel", + "triggerIcon": "Sh0Q9G_triggerIcon", + "trigger": "Sh0Q9G_trigger" + }; + //#endregion + //#region lib/types/client/skeleton/PermissionSelect.js + const FULL_ACCESS = "danger-full-access"; + const shieldOutline = "M8.20554 0.899994L14.7901 3.36857V7.01026C14.7901 12 11.0466 14.2103 8.20554 15.3C5.36446 14.2103 1.62012 12 1.62012 7.01026V3.36857L8.20554 0.899994Z"; + const permissionGlyphs = { + "read-only": (0, react_jsx_runtime.jsxs)("svg", { + width: "16", + height: "16", + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": true, + children: [(0, react_jsx_runtime.jsx)("path", { + d: shieldOutline, + stroke: "currentColor", + strokeWidth: "1.31831", + strokeLinejoin: "round" + }), (0, react_jsx_runtime.jsx)("path", { + d: "M12.1654 5.7552L8.9447 9.41475C8.73044 9.65816 8.53628 9.8804 8.35774 10.0423C8.1713 10.2114 7.94235 10.3717 7.64016 10.4254C7.48207 10.4535 7.32 10.4552 7.16151 10.4294C6.85843 10.3801 6.62728 10.2223 6.43836 10.0559C6.25752 9.89653 6.06037 9.67732 5.84264 9.43705L4.72925 8.20897L5.63557 7.38707L6.74897 8.61594C6.98603 8.87755 7.12974 9.03533 7.24673 9.13839C7.31033 9.19443 7.34485 9.21476 7.35823 9.22122C7.38068 9.22484 7.40352 9.22515 7.42593 9.22122C7.40522 9.22502 7.42893 9.23294 7.53583 9.136C7.65132 9.03126 7.79316 8.87139 8.02643 8.60638L11.2479 4.94763L12.1654 5.7552Z", + fill: "currentColor" + })] + }), + "workspace-write": (0, react_jsx_runtime.jsxs)("svg", { + width: "16", + height: "16", + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": true, + children: [ + (0, react_jsx_runtime.jsx)("path", { + d: "M8.08887 0.251709C8.20479 0.23085 8.32486 0.241168 8.43652 0.282959L15.0215 2.75171C15.2787 2.84819 15.4492 3.09414 15.4492 3.3689V7.0105C15.4492 7.10986 15.4441 7.2081 15.4414 7.30542C15.0285 7.07175 14.5905 6.87695 14.1309 6.73022V3.82495L8.20508 1.60327L2.2793 3.82495V7.0105C2.27936 9.7171 3.4745 11.5379 5.02734 12.7947C5.01025 12.9942 5 13.1962 5 13.4001C5.00001 13.7617 5.02722 14.1169 5.08008 14.4636C2.91555 13.0393 0.961014 10.752 0.960938 7.0105V3.3689C0.960938 3.09417 1.13146 2.84821 1.38867 2.75171L7.97461 0.282959L8.08887 0.251709Z", + fill: "currentColor" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M11.3525 5.64688V6.85688H5V5.64688H11.3525Z", + fill: "currentColor" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M9.5824 8.29376V9.50376H5V8.29376H9.5824Z", + fill: "currentColor" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M14.6647 15.6852H10.0338C10.3878 15.3751 10.7567 15.0517 11.0772 14.7706C11.2531 14.6164 11.4144 14.4746 11.5511 14.3547H14.6647V15.6852Z", + fill: "currentColor" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M8.14852 14.1308L7.33925 15.4976C7.22458 15.6912 7.42245 15.9194 7.63037 15.8333L9.09785 15.2254L15.0399 10.0719L14.0905 8.97733L8.14852 14.1308Z", + fill: "currentColor" + }) + ] + }), + [FULL_ACCESS]: (0, react_jsx_runtime.jsxs)("svg", { + width: "16", + height: "16", + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": true, + children: [ + (0, react_jsx_runtime.jsx)("path", { + d: shieldOutline, + stroke: "currentColor", + strokeWidth: "1.31831", + strokeLinejoin: "round" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M9.10094 4.5V8.75939H7.59888V4.5H9.10094Z", + fill: "currentColor" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M9.10094 9.8114V11.5H7.59888V9.8114H9.10094Z", + fill: "currentColor" + }) + ] + }) + }; + /** Glyph for a permission option value; host-configured names outside the design set get none. */ + function permissionGlyph(value) { + return permissionGlyphs[value]; + } + /** + * Display transform: kebab-case machine names render as title-case labels + * (`workspace-write` → `Workspace Write`); non-kebab host-configured names + * pass through. Full access intentionally overrides the machine-name + * transform so both permission surfaces use the product label `Full access`; + * the warning body remains locale-aware. + */ + function displayName(name) { + if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(name)) return name; + return name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" "); + } + function optionLabel(option) { + return option.value === FULL_ACCESS ? "Full access" : displayName(option.name); + } + function PermissionSelect({ value, locked, command, t }) { + const [pick, setPick] = (0, react.useState)(null); + const [open, setOpen] = (0, react.useState)(false); + const [confirmation, setConfirmation] = (0, react.useState)(null); + const [acknowledged, setAcknowledged] = (0, react.useState)(false); + (0, react.useEffect)(() => { + if (!locked && value !== void 0) return; + setOpen(false); + setAcknowledged(false); + setConfirmation(null); + }, [locked, value]); + if (value === void 0) return null; + const currentValue = pick ?? value.currentValue; + const current = value.options.find((option) => option.value === currentValue); + const busy = pick !== null || confirmation !== null; + const items = value.options.filter((o) => o.value !== "custom").map((option) => { + const icon = permissionGlyph(option.value); + return { + id: option.value, + label: optionLabel(option), + ...icon === void 0 ? {} : { icon } + }; + }); + const submit = (id) => { + setPick(id); + command(`/permission ${id}`).catch(() => false).then(() => { + setPick(null); + }); + }; + const choose = (id) => { + setOpen(false); + if (id === value.currentValue) return; + if (id === FULL_ACCESS) { + setAcknowledged(false); + setConfirmation(id); + return; + } + submit(id); + }; + const closeConfirmation = () => { + setAcknowledged(false); + setConfirmation(null); + }; + const confirmFullAccess = () => { + if (locked || !acknowledged || confirmation === null) return; + const id = confirmation; + closeConfirmation(); + submit(id); + }; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + items, + selectedId: currentValue, + onSelect: choose, + onClose: () => { + setOpen(false); + }, + side: "top", + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: PermissionSelect_module_css_default.trigger, + "aria-label": t("input.accessMode", { name: current === void 0 ? displayName(currentValue) : optionLabel(current) }), + title: current?.description, + disabled: locked || busy, + onClick: () => { + setOpen(!open); + }, + children: [ + permissionGlyph(currentValue) !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: PermissionSelect_module_css_default.triggerIcon, + "aria-hidden": true, + children: permissionGlyph(currentValue) + }), + (0, react_jsx_runtime.jsx)("span", { + className: PermissionSelect_module_css_default.triggerLabel, + children: current === void 0 ? displayName(currentValue) : optionLabel(current) + }), + (0, react_jsx_runtime.jsx)("span", { + className: clsx(PermissionSelect_module_css_default.chevron, open && PermissionSelect_module_css_default.chevronOpen), + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) + }) + ] + }) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, { + open: confirmation !== null, + title: t("access.confirm.title"), + description: t("access.confirm.description"), + acknowledgeLabel: t("access.confirm.acknowledge"), + cancelLabel: t("access.confirm.cancel"), + confirmLabel: t("access.confirm.enable"), + acknowledged, + disabled: locked, + onAcknowledgedChange: setAcknowledged, + onCancel: closeConfirmation, + onConfirm: confirmFullAccess + })] }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css.mjs + const css$17 = "@font-face{font-family:DshChipCell;src:url(data:font/ttf;base64,AAEAAAAKAIAAAwAgT1MvMkT8SmIAAAEoAAAAYGNtYXAADQBPAAABkAAAADRnbHlmAAAAAAAAAcwAAAABaGVhZCwtPGoAAACsAAAANmhoZWEDIg7bAAAA5AAAACRobXR4EZQAAAAAAYgAAAAIbG9jYQAAAAAAAAHEAAAABm1heHAAAwACAAABCAAAACBuYW1lvljk2gAAAdAAAABscG9zdNNweNQAAAI8AAAALQABAAAAAQAAdia1tV8PPPUAAwPoAAAAAOaLfcUAAAAA5ot9xQAAAAAAAAAAAAAAAwACAAAAAAAAAAEAAAMg/zgAAA+gAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAEAAAACAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwjKAZAABQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAPz8/PwAA//z//AMg/zgAAAMgAMgAAAAAAAAAAAAAAAAAAAAgAAAB9AAAD6AAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAD//P//AAD//P//AAUAAQAAAAAAAAAAAAAAAAAAAAAAAAAEADYAAQAAAAAAAQALAAAAAQAAAAAAAgAHAAsAAwABBAkAAQAWABIAAwABBAkAAgAOAChEc2hDaGlwQ2VsbFJlZ3VsYXIARABzAGgAQwBoAGkAcABDAGUAbABsAFIAZQBnAHUAbABhAHIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAABAgZvYmpyZXAAAAA=)format(\"truetype\")}.uV2eYG_root{padding:0 var(--dsh-composer-side-clearance) 8px;flex-direction:column;align-items:center;display:flex}.uV2eYG_hero{padding:0 var(--dsh-composer-side-clearance)}.uV2eYG_notice{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.uV2eYG_noticeError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.uV2eYG_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:22px;flex-direction:column;gap:12px;padding-top:10px;font-size:16px;line-height:24px;display:flex;position:relative}.uV2eYG_cardWorkspaceTrigger{cursor:pointer;border-color:#0000}.uV2eYG_cardWorkspaceTrigger:after{content:\"\";background:var(--dsw-alias-border-l4);pointer-events:none;border-radius:22px;transition:background-color .1s;position:absolute;inset:-1px;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\");mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\")}.uV2eYG_cardWorkspaceTrigger :disabled{pointer-events:none}.uV2eYG_cardWorkspaceTrigger:hover:after{background:var(--dsw-alias-state-business-primary)}.uV2eYG_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.uV2eYG_attachments{min-width:0;padding:4px 12px 0}.uV2eYG_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.uV2eYG_scroll{max-height:var(--dsh-composer-text-max-height);overflow-y:auto}.uV2eYG_grow{position:relative}.uV2eYG_backdrop{color:var(--dsw-alias-label-primary);pointer-events:none;position:absolute;inset:0;overflow:hidden}.uV2eYG_hlToken{color:var(--dsw-alias-state-warn-label);background-color:#0000}.uV2eYG_hlSegment{color:#0000;background-color:#0000;border-radius:4px}.uV2eYG_hint{color:var(--dsw-alias-label-caption)}.uV2eYG_pending{background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate uV2eYG_input-pending}@keyframes uV2eYG_input-pending{0%{opacity:.35}to{opacity:1}}.uV2eYG_input{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--dsw-alias-state-business-primary);background:0 0;border:none;outline:none;position:absolute;inset:0;overflow:hidden}.uV2eYG_input,.uV2eYG_mirror,.uV2eYG_backdrop{box-sizing:border-box;font-family:\"DshChipCell\", var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;padding:4px 12px 0 16px}.uV2eYG_input::placeholder{color:var(--dsw-alias-label-caption);user-select:none}.uV2eYG_input:disabled{color:var(--dsw-alias-label-tertiary);cursor:not-allowed}.uV2eYG_input[aria-haspopup=menu]{cursor:pointer}.uV2eYG_mirror{visibility:hidden;pointer-events:none}.uV2eYG_hero .uV2eYG_mirror{min-height:52px}.uV2eYG_row{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.uV2eYG_tools,.uV2eYG_modes,.uV2eYG_trailing{align-items:center;min-width:0;display:flex}.uV2eYG_tools{gap:16px}.uV2eYG_modes{gap:12px}.uV2eYG_trailing{flex:none;gap:12px}.uV2eYG_add{background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.uV2eYG_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.uV2eYG_add:disabled{opacity:.5;cursor:default}.uV2eYG_select{max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;border-radius:8px;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.uV2eYG_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.uV2eYG_select:disabled{opacity:.5;cursor:default}.uV2eYG_primary{background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.uV2eYG_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.uV2eYG_primary:disabled{opacity:.4;cursor:default}.uV2eYG_retry{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:8px;padding:1px 8px;font-size:12px}.uV2eYG_textRef{color:var(--dsw-alias-state-business-primary);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-color:#0000}.uV2eYG_textRef:after{display:none}.uV2eYG_chip{background:#6187d838;border-radius:6px;position:relative}.uV2eYG_chip:before{content:\"\";color:#0000}.uV2eYG_chipLabel{width:calc(138.889% - 10px);color:var(--dsw-alias-label-primary);white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.72)}.uV2eYG_chipInvalid{opacity:.7;background:#d8616133;text-decoration:line-through}"; + const tagId$17 = "@deepseek-ai/dsh-client-ui-conversation/InputBar.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$17; + tag.textContent = css$17; + document.head.appendChild(tag); + } + var InputBar_module_css_default = { + "overlayAnchor": "uV2eYG_overlayAnchor", + "chip": "uV2eYG_chip", + "accessory": "uV2eYG_accessory", + "mirror": "uV2eYG_mirror", + "card": "uV2eYG_card", + "grow": "uV2eYG_grow", + "root": "uV2eYG_root", + "hlToken": "uV2eYG_hlToken", + "input": "uV2eYG_input", + "modes": "uV2eYG_modes", + "trailing": "uV2eYG_trailing", + "primary": "uV2eYG_primary", + "textRef": "uV2eYG_textRef", + "chipLabel": "uV2eYG_chipLabel", + "notice": "uV2eYG_notice", + "select": "uV2eYG_select", + "hero": "uV2eYG_hero", + "hlSegment": "uV2eYG_hlSegment", + "add": "uV2eYG_add", + "attachments": "uV2eYG_attachments", + "cardWorkspaceTrigger": "uV2eYG_cardWorkspaceTrigger", + "tools": "uV2eYG_tools", + "scroll": "uV2eYG_scroll", + "noticeError": "uV2eYG_noticeError", + "hint": "uV2eYG_hint", + "row": "uV2eYG_row", + "chipInvalid": "uV2eYG_chipInvalid", + "pending": "uV2eYG_pending", + "backdrop": "uV2eYG_backdrop", + "input-pending": "uV2eYG_input-pending", + "retry": "uV2eYG_retry" + }; + //#endregion + //#region lib/types/client/skeleton/InputBar.js + /** The default composer body: the 'conversation.composer.bar' slot entry. + * Machine state arrives through the standard provide channel + * (useInput + inputActions); the keyboard/DOM command face and stop arrive + * through this entry's own inject, whose hooks compartment binds + * useNotices/useLexicon; layout-phase inputs (variant, placeholder, + * region-slot content) ride the owner props. Session facts + * (running/removed/promptError) are self-selected via useSession. */ + /** Decoration product of the no-session state (no machine, empty draft). */ + const INERT_DECORATIONS = { + token: null, + chips: [], + textRefs: [], + hint: null + }; + function InputBar({ useSession, useInput, inputActions, keyboard, addImages, removeImage, draftImages, resolveSubmitMode, toggleCommandMenu, stop, command, t, renderSlot, useNotices, useLexicon, useMenuLauncher, useProjection, sessionId, variant, disabled: inert = false, blocked, workspacePickerOpen = false, onRequestWorkspace, placeholder, accessory, overlay, leftItems, rightItems, footer }) { + const input = useInput((s) => s); + const notice = useNotices((s) => s); + const lexicon = useLexicon((s) => s); + const commandMenuOpen = useMenuLauncher((source) => source === "command"); + const promptError = useSession((s) => s.promptError) ?? null; + const running = useSession((s) => s.running) ?? false; + const subagent = useSession((s) => s.subagent) ?? null; + const removed = useSession((s) => s.removed) ?? false; + const planActive = useProjection("plan", (plan) => plan !== void 0 && (plan.pending ? !plan.active : plan.active)); + const hasGoal = useProjection("goal", (goal) => goal != null); + const live = input !== void 0 && keyboard !== void 0 && inputActions !== void 0; + const draft = input?.draft ?? ""; + const attachments = (0, react.useMemo)(() => input === void 0 || draftImages === void 0 ? [] : draftImages(input.imageIds), [draftImages, input?.imageIds]); + const empty = draft.trim() === "" && attachments.length === 0; + const [preview, setPreview] = (0, react.useState)(null); + const [dragActive, setDragActive] = (0, react.useState)(false); + const [toast, setToast] = (0, react.useState)(null); + const toastSeq = (0, react.useRef)(0); + const showToast = (0, react.useCallback)((text) => { + toastSeq.current += 1; + setToast({ + seq: toastSeq.current, + text + }); + }, []); + const dismissToast = (0, react.useCallback)(() => { + setToast(null); + }, []); + const imageLimits = useProjection("imageLimits"); + (0, react.useEffect)(() => { + if (promptError === null) return; + showToast(promptError.error.code === "attachment-error" ? attachmentErrorText(t, promptError.error.details.reason, imageLimits) : `${promptError.error.message} (${promptError.error.code})`); + }, [ + promptError, + showToast, + t, + imageLimits + ]); + const inputRef = (0, react.useRef)(null); + const cardRef = (0, react.useRef)(null); + const dragDepthRef = (0, react.useRef)(0); + const scrollRef = (0, react.useRef)(null); + const mirrorRef = (0, react.useRef)(null); + const composingRef = (0, react.useRef)(false); + const onCompositionStart = () => { + composingRef.current = true; + }; + const onCompositionEnd = () => { + setTimeout(() => { + composingRef.current = false; + }, 10); + }; + const permissions = useProjection("permissions"); + const continuable = subagent?.address.mode === "continuable"; + const parentOffline = continuable && !subagent.parentAvailable; + const disabled = removed || inert || !live || blocked !== void 0 || parentOffline; + const locked = disabled; + const modelSeatLocked = removed || inert || !live; + const machineBusy = input?.phase === "adjudicating" || input?.phase === "submitting"; + const workspaceTrigger = inert && !removed && onRequestWorkspace !== void 0; + const textareaDisabled = removed || locked && !workspaceTrigger; + const canSteerQueue = !locked && !machineBusy && !commandMenuOpen && empty && running && subagent === null && input.queue.some((row) => row.placement === "queued"); + (0, react.useEffect)(() => { + if (input === void 0 || inputActions === void 0) return; + if (attachments.length !== input.imageIds.length) inputActions.pruneImages(attachments.map((attachment) => attachment.id)); + }, [ + attachments, + input?.imageIds, + inputActions + ]); + (0, react.useEffect)(() => { + if (preview !== null && !attachments.some((attachment) => attachment.id === preview.id)) setPreview(null); + }, [attachments, preview]); + const revealCaret = (caret) => { + const scrollEl = scrollRef.current; + const mirrorEl = mirrorRef.current; + const text = mirrorEl?.firstChild; + if (scrollEl === null || mirrorEl === null || !(text instanceof Text)) return; + if (scrollEl.scrollHeight <= scrollEl.clientHeight) return; + const at = Math.min(caret, text.data.length); + const afterNewline = at > 0 && text.data[at - 1] === "\n"; + const range = document.createRange(); + range.setStart(text, afterNewline ? at - 1 : at); + if (afterNewline) range.setEnd(text, at); + else range.collapse(true); + const line = afterNewline ? Number.parseFloat(getComputedStyle(mirrorEl).lineHeight) : 0; + const rect = range.getBoundingClientRect(); + const box = scrollEl.getBoundingClientRect(); + if (rect.bottom + line > box.bottom) scrollEl.scrollTop += rect.bottom + line - box.bottom; + else if (rect.top + line < box.top) scrollEl.scrollTop -= box.top - rect.top - line; + }; + const revealSelectionFocus = (el) => { + revealCaret((el.selectionDirection === "backward" ? el.selectionStart : el.selectionEnd) ?? el.value.length); + }; + (0, react.useEffect)(() => { + const el = inputRef.current; + if (locked || el === null) return; + el.focus({ preventScroll: true }); + revealSelectionFocus(el); + }, [locked, sessionId]); + (0, react.useEffect)(() => { + const el = inputRef.current; + if (locked || draft === "" || el === null) return; + revealSelectionFocus(el); + }, [draft !== ""]); + const restoreCaret = (el, caret) => { + requestAnimationFrame(() => { + el.setSelectionRange(caret, caret); + revealCaret(caret); + }); + }; + (0, react.useEffect)(() => { + const el = scrollRef.current; + if (el === null) return; + const onWheel = (e) => { + const host = el.closest("[data-conversation-scroll]"); + if (!(host instanceof HTMLElement) || e.deltaY === 0) return; + const atTop = el.scrollTop <= 0; + const atEnd = el.scrollTop + el.clientHeight >= el.scrollHeight - 1; + if (e.deltaY < 0 && !atTop || e.deltaY > 0 && !atEnd) return; + e.preventDefault(); + host.scrollTop += e.deltaY; + }; + el.addEventListener("wheel", onWheel, { passive: false }); + return () => { + el.removeEventListener("wheel", onWheel); + }; + }, []); + const onKeyDown = (e) => { + if (workspaceTrigger) { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + onRequestWorkspace(); + } + return; + } + if (keyboard === void 0 || inputActions === void 0) return; + if (e.key === "Enter" && e.shiftKey) return; + const composing = composingRef.current || e.nativeEvent.isComposing || e.nativeEvent.keyCode === 229; + if (e.key === "ArrowUp" || e.key === "ArrowDown") { + if (keyboard.arbitrate(e.key === "ArrowUp" ? "up" : "down", composing) === "consumed") e.preventDefault(); + return; + } + if (e.key === "Escape") { + keyboard.dismissPopup(); + if (keyboard.arbitrate("escape", composing) === "consumed") e.preventDefault(); + return; + } + if ((e.metaKey || e.ctrlKey) && (e.key === "z" || e.key === "Z" || e.key === "y")) { + e.preventDefault(); + if (machineBusy || locked) return; + if (e.key === "y" || e.shiftKey) keyboard.redo(); + else keyboard.undo(); + return; + } + if (e.key === " ") { + if (composing) return; + if (keyboard.space()) e.preventDefault(); + return; + } + if (e.key !== "Enter") return; + if (composing) return; + if (keyboard.arbitrate("enter", composing) !== "pass") { + e.preventDefault(); + return; + } + e.preventDefault(); + if (e.repeat) return; + if (locked || machineBusy) return; + const accelerated = e.ctrlKey || e.metaKey; + if (accelerated && canSteerQueue) { + keyboard.steerQueue(); + return; + } + keyboard.submit(resolveSubmitMode(running, accelerated ? "accelerated" : "enter", subagent === null)); + }; + const onChange = (e) => { + if (keyboard === void 0 || locked) return; + if (machineBusy) return; + const next = e.target.value; + keyboard.setDraft(next); + keyboard.track(next, e.target.selectionStart ?? next.length); + }; + const selectionOf = (el) => ({ + start: el.selectionStart ?? 0, + end: el.selectionEnd ?? el.selectionStart ?? 0 + }); + const onCopyOrCut = (e, cut) => { + if (input === void 0 || keyboard === void 0) return; + const el = e.currentTarget; + const { start, end } = selectionOf(el); + if (start === end) return; + draft.slice(start, end); + const touched = input.occurrences.filter((o) => o.offset >= start && o.offset < end); + if (touched.length === 0 && !cut) return; + e.preventDefault(); + let text = ""; + let cursor = start; + for (const o of touched) { + text += draft.slice(cursor, o.offset) + o.clipboardText; + cursor = o.offset + 1; + } + text += draft.slice(cursor, end); + e.clipboardData.setData("text/plain", text); + if (cut && !machineBusy && !locked) { + keyboard.setDraft(draft.slice(0, start) + draft.slice(end), { + start, + end, + insertedLength: 0 + }); + restoreCaret(el, start); + } + }; + const onPaste = (e) => { + if (keyboard === void 0) return; + if (machineBusy || locked) return; + const files = Array.from(e.clipboardData.items).filter((item) => item.kind === "file").map((item) => item.getAsFile()).filter((file) => file !== null); + if (files.length > 0) intakeImages(files); + const text = e.clipboardData.getData("text/plain"); + if (text === "") { + if (files.length > 0) e.preventDefault(); + return; + } + e.preventDefault(); + const el = e.currentTarget; + const sel = selectionOf(el); + keyboard.pasteBegin(text, sel); + const caret = sel.start + text.length; + restoreCaret(el, caret); + keyboard.track(keyboard.snapshot.draft, caret); + }; + const intakeImages = (0, react.useCallback)((files) => { + if (addImages === void 0 || files.length === 0) return; + const rejected = (() => { + if (imageLimits !== void 0) { + if (files.some((file) => !imageLimits.mediaTypes.includes(file.type))) return addImages(files); + if (attachments.length + files.length > imageLimits.maxImagesPerMessage) return t("image.tooMany", { count: imageLimits.maxImagesPerMessage }); + if (files.some((file) => file.size > imageLimits.maxImageBytes)) return t("image.fileTooLarge", { size: imageSizeText(imageLimits.maxImageBytes) }); + if (attachments.reduce((sum, attachment) => sum + attachment.file.size, 0) + files.reduce((sum, file) => sum + file.size, 0) > imageLimits.maxMessageImageBytes) return t("image.totalTooLarge", { size: imageSizeText(imageLimits.maxMessageImageBytes) }); + } + return addImages(files); + })(); + if (rejected !== null) showToast(rejected); + }, [ + addImages, + attachments, + imageLimits, + showToast, + t + ]); + const canAcceptDrop = !locked && !machineBusy && addImages !== void 0; + (0, react.useEffect)(() => { + const hasFiles = (event) => event.dataTransfer?.types.includes("Files") ?? false; + const reset = () => { + dragDepthRef.current = 0; + setDragActive(false); + }; + const onDragEnter = (event) => { + if (!hasFiles(event)) return; + event.preventDefault(); + dragDepthRef.current += 1; + setDragActive(true); + }; + const onDragOver = (event) => { + if (!hasFiles(event) || event.dataTransfer === null) return; + event.preventDefault(); + event.dataTransfer.dropEffect = canAcceptDrop ? "copy" : "none"; + }; + const onDragLeave = (event) => { + if (!hasFiles(event)) return; + dragDepthRef.current = Math.max(0, dragDepthRef.current - 1); + if (dragDepthRef.current === 0) setDragActive(false); + const leavingViewport = event.clientX <= 0 || event.clientY <= 0 || event.clientX >= window.innerWidth || event.clientY >= window.innerHeight; + if ((event.target === document.documentElement || event.target === document.body) && leavingViewport) reset(); + }; + const onDrop = (event) => { + if (!hasFiles(event)) return; + event.preventDefault(); + reset(); + if (!canAcceptDrop) return; + intakeImages([...event.dataTransfer?.files ?? []]); + }; + document.addEventListener("dragenter", onDragEnter); + document.addEventListener("dragover", onDragOver); + document.addEventListener("dragleave", onDragLeave); + document.addEventListener("drop", onDrop); + window.addEventListener("dragend", reset); + return () => { + document.removeEventListener("dragenter", onDragEnter); + document.removeEventListener("dragover", onDragOver); + document.removeEventListener("dragleave", onDragLeave); + document.removeEventListener("drop", onDrop); + window.removeEventListener("dragend", reset); + }; + }, [canAcceptDrop, intakeImages]); + const closePreview = (0, react.useCallback)(() => { + setPreview(null); + }, []); + const railItems = (0, react.useMemo)(() => attachments.map((attachment) => ({ + id: attachment.id, + previewUrl: attachment.previewUrl, + alt: attachment.file.name || t("image.pending"), + removeLabel: t("image.remove", { name: attachment.file.name }), + attachment + })), [attachments, t]); + const onSelect = (e) => { + if (keyboard !== void 0 && keyboard.snapshot.paste !== void 0) keyboard.invalidatePaste(); + }; + const keepFocus = (e) => { + e.preventDefault(); + inputRef.current?.focus({ preventScroll: true }); + }; + const onToggleCommandMenu = () => { + const el = inputRef.current; + if (el !== null) toggleCommandMenu?.(selectionOf(el)); + }; + const primaryStops = running && subagent === null; + const interruptible = running && continuable; + const primaryLabel = primaryStops ? t("input.stop") : t("input.send"); + const onPrimary = () => { + if (primaryStops) { + stop?.(); + return; + } + if (inputActions === void 0) return; + /* v8 ignore next -- defensive: the primary button is disabled while empty||disabled, so a click cannot reach the false arm. */ + if (!empty && !disabled && !machineBusy) inputActions.submit(); + }; + const accessSelect = command === void 0 ? null : (0, react_jsx_runtime.jsx)(PermissionSelect, { + value: permissions, + locked, + command, + t + }, sessionId); + const deco = input === void 0 ? INERT_DECORATIONS : deriveDecorations(input, lexicon); + const backdrop = []; + { + let cursor = 0; + const pushPlain = (upTo) => { + if (upTo > cursor) backdrop.push(draft.slice(cursor, upTo)); + cursor = upTo; + }; + if (deco.token !== null) { + backdrop.push((0, react_jsx_runtime.jsx)("mark", { + className: InputBar_module_css_default.hlToken, + "data-decoration": "token", + children: draft.slice(deco.token.start, deco.token.end) + }, "token")); + cursor = deco.token.end; + } + const boundaries = [...deco.chips.map((chip) => ({ + at: chip.offset, + kind: "chip", + chip + })), ...deco.textRefs.map((ref) => ({ + at: ref.start, + kind: "text-ref", + ref + }))].sort((a, b) => a.at - b.at); + for (const b of boundaries) { + if (b.at < cursor) continue; + pushPlain(b.at); + if (b.kind === "chip") { + const chip = b.chip; + backdrop.push((0, react_jsx_runtime.jsx)("span", { + className: clsx(InputBar_module_css_default.chip, chip.invalid && InputBar_module_css_default.chipInvalid), + "data-decoration": "chip", + "data-occurrence": chip.occurrenceId, + "data-invalid": chip.invalid || void 0, + title: chip.label, + children: (0, react_jsx_runtime.jsx)("span", { + className: InputBar_module_css_default.chipLabel, + children: chip.label + }) + }, `chip-${chip.occurrenceId}`)); + cursor = chip.offset + 1; + } else { + backdrop.push((0, react_jsx_runtime.jsx)("mark", { + className: InputBar_module_css_default.textRef, + "data-decoration": "text-ref", + children: draft.slice(b.ref.start, b.ref.end) + }, `ref-${b.ref.start}`)); + cursor = b.ref.end; + } + } + pushPlain(draft.length); + if (deco.hint !== null) { + const commandName = input?.claim?.token.slice(1).trim() ?? ""; + const hintKey = `hint.${commandName === "goal" && hasGoal ? "goal.active" : commandName}`; + const translated = t(hintKey); + const displayHint = translated !== hintKey ? translated : deco.hint; + backdrop.push((0, react_jsx_runtime.jsx)("span", { + className: InputBar_module_css_default.hint, + "data-decoration": "hint", + children: displayHint + }, "hint")); + } + } + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(InputBar_module_css_default.root, variant === "hero" && InputBar_module_css_default.hero), + children: [ + dragActive && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_attachment.DropOverlay, { + disabled: !canAcceptDrop, + labels: dropOverlayLabels(t, canAcceptDrop, imageLimits === void 0 ? void 0 : { + count: imageLimits.maxImagesPerMessage, + size: imageSizeText(imageLimits.maxImageBytes) + }) + }), + toast !== null && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Toast, { + text: toast.text, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, {}), + anchor: cardRef.current, + onDone: dismissToast + }, toast.seq), + notice !== null && (0, react_jsx_runtime.jsx)("div", { + className: clsx(InputBar_module_css_default.notice, notice.level === "error" && InputBar_module_css_default.noticeError), + role: "status", + children: notice.text + }), + (0, react_jsx_runtime.jsxs)("div", { + ref: cardRef, + className: clsx(InputBar_module_css_default.card, workspaceTrigger && InputBar_module_css_default.cardWorkspaceTrigger), + "data-composer-card": true, + onClick: workspaceTrigger ? onRequestWorkspace : void 0, + onPointerDown: workspaceTrigger ? (e) => { + e.stopPropagation(); + } : void 0, + children: [ + overlay !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: InputBar_module_css_default.overlayAnchor, + children: overlay + }), + accessory !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: InputBar_module_css_default.accessory, + children: accessory + }), + railItems.length > 0 && (0, react_jsx_runtime.jsx)("div", { + className: InputBar_module_css_default.attachments, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_attachment.AttachmentRail, { + items: railItems, + labels: attachmentRailLabels(t), + onOpen: (item) => { + setPreview(item.attachment); + }, + onRemove: (item) => { + removeImage?.(item.attachment.id); + } + }) + }), + (0, react_jsx_runtime.jsx)("div", { + ref: scrollRef, + className: InputBar_module_css_default.scroll, + "data-input-scroll": true, + children: (0, react_jsx_runtime.jsxs)("div", { + className: InputBar_module_css_default.grow, + children: [ + (0, react_jsx_runtime.jsx)("div", { + "aria-hidden": true, + className: InputBar_module_css_default.backdrop, + "data-input-backdrop": true, + children: backdrop + }), + (0, react_jsx_runtime.jsx)("textarea", { + ref: inputRef, + className: InputBar_module_css_default.input, + value: draft, + disabled: textareaDisabled, + readOnly: machineBusy || workspaceTrigger, + "aria-label": workspaceTrigger ? t("hero.chooseWorkspace") : void 0, + "aria-haspopup": workspaceTrigger ? "menu" : void 0, + "aria-expanded": workspaceTrigger ? workspacePickerOpen : void 0, + "data-phase": input?.phase ?? "inert", + placeholder: placeholder ?? (parentOffline ? t("placeholder.parentOffline") : disabled ? t("placeholder.unavailable") : canSteerQueue ? t("placeholder.steerQueue") : planActive ? t("placeholder.plan") : t("placeholder.default")), + rows: 2, + onChange, + onKeyDown, + onSelect, + onCopy: (e) => { + onCopyOrCut(e, false); + }, + onCut: (e) => { + onCopyOrCut(e, true); + }, + onPaste, + onCompositionStart, + onCompositionEnd + }), + (0, react_jsx_runtime.jsx)("div", { + ref: mirrorRef, + "aria-hidden": true, + className: InputBar_module_css_default.mirror, + "data-input-mirror": true, + children: `${draft}\n` + }) + ] + }) + }), + (0, react_jsx_runtime.jsxs)("div", { + className: InputBar_module_css_default.row, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: InputBar_module_css_default.tools, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("input.commands"), + side: "top", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: InputBar_module_css_default.add, + "aria-label": t("input.commands"), + "aria-haspopup": "listbox", + "aria-expanded": commandMenuOpen, + disabled: locked || toggleCommandMenu === void 0, + onMouseDown: keepFocus, + onClick: onToggleCommandMenu, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 14 }) + }) + }), + (0, react_jsx_runtime.jsxs)("div", { + className: InputBar_module_css_default.modes, + children: [accessSelect, renderSlot("conversation.input.plan", { locked })] + }), + leftItems + ] + }), (0, react_jsx_runtime.jsxs)("div", { + className: InputBar_module_css_default.trailing, + children: [ + rightItems, + renderSlot("conversation.input.model", { locked: modelSeatLocked }), + (0, react_jsx_runtime.jsx)(ContextMeter, { + useProjection, + t + }), + interruptible && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("input.stop"), + side: "top", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: InputBar_module_css_default.primary, + "aria-label": t("input.stop"), + disabled: stop === void 0, + onMouseDown: keepFocus, + onClick: stop, + children: (0, react_jsx_runtime.jsx)("svg", { + viewBox: "0 0 16 16", + width: "16", + height: "16", + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)("rect", { + x: "3", + y: "3", + width: "10", + height: "10", + rx: "3", + fill: "currentColor" + }) + }) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: primaryLabel, + side: "top", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: InputBar_module_css_default.primary, + "aria-label": primaryLabel, + disabled: primaryStops ? stop === void 0 : empty || disabled || machineBusy, + onMouseDown: keepFocus, + onClick: onPrimary, + children: primaryStops ? (0, react_jsx_runtime.jsx)("svg", { + viewBox: "0 0 16 16", + width: "16", + height: "16", + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)("rect", { + x: "3", + y: "3", + width: "10", + height: "10", + rx: "3", + fill: "currentColor" + }) + }) : (0, react_jsx_runtime.jsx)("svg", { + viewBox: "0 0 16 16", + width: "16", + height: "16", + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)("path", { + d: "M8.3125 0.980183C8.66767 1.0531 8.97902 1.20418 9.2627 1.43233C9.48724 1.61297 9.73029 1.85793 9.97949 2.10714L14.707 6.83468L13.293 8.24874L9 3.95577V15.0417H7V3.95577L2.70703 8.24874L1.29297 6.83468L6.02051 2.10714C6.26971 1.85793 6.51277 1.61297 6.7373 1.43233C6.97662 1.23986 7.28445 1.04402 7.6875 0.980183C7.8973 0.947006 8.1031 0.95516 8.3125 0.980183Z", + fill: "currentColor" + }) + }) + }) + }) + ] + })] + }) + ] + }), + preview !== null && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_attachment.ImageLightbox, { + src: preview.previewUrl, + alt: preview.file.name || t("image.original"), + labels: lightboxLabels(t), + onClose: closePreview + }), + footer + ] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/settings/EnterBehaviorRow.module.css.mjs + const css$16 = ".T1PP_q_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.T1PP_q_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.T1PP_q_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.T1PP_q_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.T1PP_q_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.T1PP_q_selector:hover{background:var(--dsw-alias-interactive-bg-hover)}.T1PP_q_chevron{flex:none}"; + const tagId$16 = "@deepseek-ai/dsh-client-ui-conversation/EnterBehaviorRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$16) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$16; + tag.textContent = css$16; + document.head.appendChild(tag); + } + var EnterBehaviorRow_module_css_default = { + "row": "T1PP_q_row", + "rowText": "T1PP_q_rowText", + "chevron": "T1PP_q_chevron", + "desc": "T1PP_q_desc", + "selector": "T1PP_q_selector", + "title": "T1PP_q_title" + }; + //#endregion + //#region lib/types/client/settings/EnterBehaviorRow.js + /** General Settings row for the Composer's busy-state Enter preference. */ + const OPTIONS = [{ + id: "queue", + label: "settings.enter.queue" + }, { + id: "steer", + label: "settings.enter.steer" + }]; + /** + * Render the busy-state Enter behavior selector. + * @param props - composed Settings slot props. + * @returns the preference row. + */ + function EnterBehaviorRow({ useBusyEnter, setBusyEnter, t }) { + const behavior = useBusyEnter((value) => value); + const [open, setOpen] = (0, react.useState)(false); + const selectedLabel = behavior === "queue" ? "settings.enter.queue" : "settings.enter.steer"; + return (0, react_jsx_runtime.jsxs)("div", { + className: EnterBehaviorRow_module_css_default.row, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: EnterBehaviorRow_module_css_default.rowText, + children: [(0, react_jsx_runtime.jsx)("div", { + className: EnterBehaviorRow_module_css_default.title, + children: t("settings.enter.title") + }), (0, react_jsx_runtime.jsx)("div", { + className: EnterBehaviorRow_module_css_default.desc, + children: t("settings.enter.description") + })] + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + setOpen(false); + }, + items: OPTIONS.map((option) => ({ + id: option.id, + label: t(option.label) + })), + selectedId: behavior, + onSelect: (id) => { + setOpen(false); + setBusyEnter(id); + }, + align: "end", + portal: true, + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: EnterBehaviorRow_module_css_default.selector, + "aria-haspopup": "menu", + "aria-expanded": open, + onClick: () => { + setOpen((value) => !value); + }, + children: [t(selectedLabel), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: EnterBehaviorRow_module_css_default.chevron })] + }) + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/MessageItem.module.css.mjs + const css$15 = ".gdEzaW_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.gdEzaW_userStack{flex-direction:column;align-items:flex-end;gap:8px;min-width:0;max-width:min(525px,82%);display:flex}.gdEzaW_bubble{background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);border-radius:22px;padding:10px 16px;font-size:16px;line-height:24px}.gdEzaW_contextRow,.gdEzaW_compactionRow{padding:2px 0}.gdEzaW_compactionButton{width:100%;min-width:0;height:24px;color:inherit;font:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;padding:0;display:flex}.gdEzaW_compactionButton:not(:disabled){cursor:pointer}.gdEzaW_compactionButton:not(:disabled):hover{background:var(--dsw-alias-interactive-bg-hover)}.gdEzaW_compactionLeading{width:16px;height:16px;color:var(--dsw-alias-label-secondary);flex:none;place-items:center;margin-right:6px;display:inline-grid}.gdEzaW_compactionContextIcon,.gdEzaW_compactionDisclosureIcon{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.gdEzaW_compactionDisclosureIcon,.gdEzaW_compactionButton:not(:disabled):hover .gdEzaW_compactionContextIcon,.gdEzaW_compactionButton:not(:disabled):focus-visible .gdEzaW_compactionContextIcon{opacity:0}.gdEzaW_compactionButton:not(:disabled):hover .gdEzaW_compactionDisclosureIcon,.gdEzaW_compactionButton:not(:disabled):focus-visible .gdEzaW_compactionDisclosureIcon{opacity:1}.gdEzaW_compactionTitle{color:var(--dsw-alias-label-primary-dimmed);flex:none;font-size:14px;line-height:24px}.gdEzaW_compactionSep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.gdEzaW_compactionSummary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.gdEzaW_compactionBody{color:var(--dsw-alias-label-tertiary);padding:4px 0 4px 22px;font-size:14px;line-height:24px}.gdEzaW_retryRow{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.gdEzaW_retrySummary{width:fit-content;color:inherit;cursor:pointer;user-select:none;border-radius:3px;align-items:center;gap:7px;padding:2px 0;list-style:none;display:inline-flex}.gdEzaW_retrySummary::-webkit-details-marker{display:none}.gdEzaW_retrySummary:after{content:\"\";opacity:.8;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.gdEzaW_retrySummary:hover{color:var(--dsw-alias-label-secondary)}.gdEzaW_retrySummary:focus-visible{outline:1.5px solid var(--dsw-alias-button-info-fill);outline-offset:2px}.gdEzaW_retryText{color:inherit}.gdEzaW_retryRow[data-active] .gdEzaW_retryText{background:linear-gradient(90deg, var(--dsw-alias-label-tertiary) 0%, var(--dsw-alias-label-tertiary) 40%, var(--dsw-alias-label-secondary) 50%, var(--dsw-alias-label-tertiary) 60%, var(--dsw-alias-label-tertiary) 100%);color:#0000;background-position:100%;background-size:200% 100%;background-clip:text;animation:1.6s ease-in-out infinite gdEzaW_retry-shimmer}.gdEzaW_retryRow[open] .gdEzaW_retrySummary:after{transform:rotate(45deg)}.gdEzaW_retryDetails{overflow-wrap:anywhere;gap:2px;margin-top:3px;padding-left:14px;font-size:12px;line-height:18px;display:grid}.gdEzaW_retryDetailLabel{color:var(--dsw-alias-label-secondary)}.gdEzaW_turnErrorRow{grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:8px;padding:2px 0;font-size:13px;line-height:20px;display:grid}.gdEzaW_turnErrorDot{margin-top:5px}.gdEzaW_turnErrorCopy{overflow-wrap:anywhere;min-width:0}.gdEzaW_turnErrorTitle{color:var(--dsw-alias-state-error-primary);margin-right:6px;font-weight:600}.gdEzaW_turnErrorMessage{color:var(--dsw-alias-label-secondary)}.gdEzaW_turnErrorCode{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-markdown-code-block-small)}.gdEzaW_maxTokensTitle{color:var(--dsw-alias-state-warn-primary);margin-right:6px;font-weight:600}@keyframes gdEzaW_retry-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.gdEzaW_retryRow[data-active] .gdEzaW_retryText{color:inherit;background:0 0;animation:none}}.gdEzaW_refChip{color:var(--dsw-alias-label-primary);white-space:nowrap;vertical-align:baseline;background:#6187d838;border-radius:6px;margin:0 2px;padding:0 8px;font-size:.85em;line-height:1.6;display:inline-block}"; + const tagId$15 = "@deepseek-ai/dsh-client-ui-conversation/MessageItem.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$15) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$15; + tag.textContent = css$15; + document.head.appendChild(tag); + } + var MessageItem_module_css_default = { + "turnErrorRow": "gdEzaW_turnErrorRow", + "turnErrorCode": "gdEzaW_turnErrorCode", + "retryRow": "gdEzaW_retryRow", + "turnErrorMessage": "gdEzaW_turnErrorMessage", + "compactionTitle": "gdEzaW_compactionTitle", + "contextRow": "gdEzaW_contextRow", + "compactionSep": "gdEzaW_compactionSep", + "turnErrorCopy": "gdEzaW_turnErrorCopy", + "turnErrorTitle": "gdEzaW_turnErrorTitle", + "userRow": "gdEzaW_userRow", + "maxTokensTitle": "gdEzaW_maxTokensTitle", + "bubble": "gdEzaW_bubble", + "turnErrorDot": "gdEzaW_turnErrorDot", + "retry-shimmer": "gdEzaW_retry-shimmer", + "refChip": "gdEzaW_refChip", + "compactionDisclosureIcon": "gdEzaW_compactionDisclosureIcon", + "compactionButton": "gdEzaW_compactionButton", + "compactionBody": "gdEzaW_compactionBody", + "retryText": "gdEzaW_retryText", + "compactionSummary": "gdEzaW_compactionSummary", + "compactionContextIcon": "gdEzaW_compactionContextIcon", + "compactionRow": "gdEzaW_compactionRow", + "retryDetails": "gdEzaW_retryDetails", + "retrySummary": "gdEzaW_retrySummary", + "userStack": "gdEzaW_userStack", + "compactionLeading": "gdEzaW_compactionLeading", + "retryDetailLabel": "gdEzaW_retryDetailLabel" + }; + //#endregion + //#region lib/types/client/chat/CompactionItem.js + /** + * The collapsed-by-default compaction marker. + * @param props - the marker node off the snapshot cache. + * @returns the marker row, with the summary disclosure when one is available. + */ + const CompactionItem = (0, react.memo)(function CompactionItem({ node, title, fallbackSummary, t }) { + const [expanded, setExpanded] = (0, react.useState)(false); + const expandable = node.summary !== null; + const open = expandable && expanded; + const summary = node.shadowedItemCount !== null && node.shadowedTokenCount !== null ? t("message.compaction.completed", { + items: node.shadowedItemCount, + tokens: node.shadowedTokenCount + }) : fallbackSummary ?? (expandable ? t("message.compaction.expand") : t("message.compaction.unavailable")); + return (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.compactionRow, + children: [(0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: MessageItem_module_css_default.compactionButton, + disabled: !expandable, + "aria-expanded": expandable ? open : void 0, + onClick: () => { + setExpanded((value) => !value); + }, + children: [ + (0, react_jsx_runtime.jsxs)("span", { + className: MessageItem_module_css_default.compactionLeading, + "aria-hidden": true, + children: [(0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.compactionContextIcon, + "data-compaction-icon": "context", + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconApiOutline14, {}) + }), (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.compactionDisclosureIcon, + "data-compaction-disclosure": open ? "expanded" : "collapsed", + children: open ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}) + })] + }), + (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.compactionTitle, + children: title ?? t("message.compaction") + }), + (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.compactionSep, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.compactionSummary, + children: summary + }) + ] + }), open && node.summary !== null && (0, react_jsx_runtime.jsx)("div", { + className: MessageItem_module_css_default.compactionBody, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text: node.summary }) + })] + }); + }); + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/ContextBody.module.css.mjs + const css$14 = ".NM4-hq_text{color:var(--dsw-alias-label-secondary);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.NM4-hq_fields{border-top:1px solid var(--dsw-alias-line-secondary);flex-direction:column;gap:2px;margin:8px 0 0;padding-top:8px;display:flex}.NM4-hq_field{gap:8px;min-width:0;display:flex}.NM4-hq_fieldKey{min-width:96px;color:var(--dsw-alias-label-caption);flex:none}.NM4-hq_fieldValue{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;flex:auto;margin:0}.NM4-hq_files{flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.NM4-hq_file{align-items:baseline;gap:6px;min-width:0;display:flex}.NM4-hq_filePath{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.NM4-hq_fileAction{color:var(--dsw-alias-label-caption)}.NM4-hq_catalogNotice{color:var(--dsw-alias-label-caption);margin:0 0 6px}.NM4-hq_entries{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.NM4-hq_entry{gap:8px;min-width:0;display:flex}.NM4-hq_entryName{color:var(--dsw-alias-label-secondary);flex:none}.NM4-hq_entryDescription{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.NM4-hq_sections{flex-direction:column;gap:8px;margin:0;display:flex}.NM4-hq_section{flex-direction:column;gap:2px;min-width:0;display:flex}.NM4-hq_sectionName{color:var(--dsw-alias-label-caption)}.NM4-hq_sectionText{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.NM4-hq_relaySender{color:var(--dsw-alias-label-caption);overflow-wrap:anywhere;margin:0 0 6px}.NM4-hq_recalls{flex-direction:column;gap:2px;margin:0 0 8px;padding:0;list-style:none;display:flex}.NM4-hq_recall{gap:8px;min-width:0;display:flex}.NM4-hq_recallLabel{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.NM4-hq_recallCounts{color:var(--dsw-alias-label-caption);flex:none}"; + const tagId$14 = "@deepseek-ai/dsh-client-ui-conversation/ContextBody.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$14) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$14; + tag.textContent = css$14; + document.head.appendChild(tag); + } + var ContextBody_module_css_default = { + "field": "NM4-hq_field", + "entryDescription": "NM4-hq_entryDescription", + "files": "NM4-hq_files", + "sections": "NM4-hq_sections", + "fieldKey": "NM4-hq_fieldKey", + "catalogNotice": "NM4-hq_catalogNotice", + "fields": "NM4-hq_fields", + "entry": "NM4-hq_entry", + "sectionName": "NM4-hq_sectionName", + "sectionText": "NM4-hq_sectionText", + "recall": "NM4-hq_recall", + "relaySender": "NM4-hq_relaySender", + "recallLabel": "NM4-hq_recallLabel", + "filePath": "NM4-hq_filePath", + "entries": "NM4-hq_entries", + "entryName": "NM4-hq_entryName", + "fileAction": "NM4-hq_fileAction", + "file": "NM4-hq_file", + "section": "NM4-hq_section", + "text": "NM4-hq_text", + "recalls": "NM4-hq_recalls", + "recallCounts": "NM4-hq_recallCounts", + "fieldValue": "NM4-hq_fieldValue" + }; + //#endregion + //#region lib/types/client/chat/ContextBody.js + /** Model-facing text stays bounded at the disclosure, not at the producer. */ + const MAX_CHARS = 2e4; + /** Rows a list body materializes before summarizing the remainder. */ + const MAX_ENTRIES = 200; + /** One durable source narrowed to the readable-record shape; null for anything else. */ + function asRecord(value) { + return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null; + } + /** + * The content blocks as runs, IN THE ORDER the model received them. + * + * Adjacent text blocks join with no separator, matching how provider adapters + * flatten them — inserting a line break would show the reader a line the model + * never saw. An unknown block breaks the run and keeps its own fallback rather + * than being hoisted past the text around it or vanishing; the block union is + * merge-extensible, so a foreign log may interleave shapes this build does not + * know. + */ + function contentRuns(content) { + const runs = []; + for (const block of content) { + if (block.type !== "text") { + runs.push({ block }); + continue; + } + const last = runs[runs.length - 1]; + if (last !== void 0 && "text" in last) last.text += block.text; + else runs.push({ text: block.text }); + } + return runs; + } + /** Only the blocks this UI version does not know, for bodies that replace the text. */ + function unknownBlocks(content) { + return contentRuns(content).flatMap((run) => "block" in run ? [run.block] : []); + } + /** The model-facing text, truncated to the display bound. */ + function boundedText(text, t) { + return text.length > MAX_CHARS ? `${text.slice(0, MAX_CHARS)}\n${t("json.truncated", { total: text.length })}` : text; + } + /** + * One source field rendered as a value row; nested shapes stay compact JSON. + * Bounded on its own, because source fields are as unbounded as the text: an unknown + * producer may record an arbitrarily large string or array. + */ + function fieldValue(value, t) { + return boundedText(typeof value === "string" ? value : typeof value === "number" || typeof value === "boolean" ? String(value) : JSON.stringify(value), t); + } + /** + * Source fields as a key/value list. `kind` is always omitted because the + * row header already names the producer. `form` is omitted only when a + * dedicated body rendered for it — then the presentation the reader is looking + * at IS that value. On the opaque fallback the declaration is kept, because + * that is the one place a form this version cannot present would otherwise + * disappear from the UI entirely. + */ + function SourceFields({ source, formRendered, t }) { + const record = asRecord(source); + if (record === null) return null; + const hidden = formRendered ? ["kind", "form"] : ["kind"]; + const rows = Object.entries(record).filter(([key]) => !hidden.includes(key)); + if (rows.length === 0) return null; + return (0, react_jsx_runtime.jsx)("dl", { + className: ContextBody_module_css_default.fields, + "data-context-fields": true, + children: rows.map(([key, value]) => (0, react_jsx_runtime.jsxs)("div", { + className: ContextBody_module_css_default.field, + children: [(0, react_jsx_runtime.jsx)("dt", { + className: ContextBody_module_css_default.fieldKey, + children: key + }), (0, react_jsx_runtime.jsx)("dd", { + className: ContextBody_module_css_default.fieldValue, + children: fieldValue(value, t) + })] + }, key)) + }); + } + /** + * Content blocks this UI version does not know, kept visible rather than + * dropped: the block union is merge-extensible, so a newer or foreign log may + * carry a shape this build has no presentation for. + * @param props - The unrecognized blocks and the locale seat. + * @returns One generic JSON block per unknown entry. + */ + function UnknownBlocks({ blocks, t }) { + return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: blocks.map((block, index) => (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.unknownBlock"), + payload: block, + truncatedLabel: (total) => t("json.truncated", { total }) + }, index)) }); + } + /** + * The model-facing content of one context, shared by every form that shows it: + * the text with its real line breaks, then any block this UI version does not + * know, which keeps its own fallback rather than vanishing. + * @param props - Durable content and the locale seat. + * @returns The content blocks as the model received them. + */ + function ModelFacingContent({ content, t }) { + return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: contentRuns(content).map((run, index) => "text" in run ? run.text !== "" && (0, react_jsx_runtime.jsx)("pre", { + className: ContextBody_module_css_default.text, + "data-context-text": true, + children: boundedText(run.text, t) + }, index) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.unknownBlock"), + payload: run.block, + truncatedLabel: (total) => t("json.truncated", { total }) + }, index)) }); + } + /** + * Default presentation: the model-facing text as text, with its real line + * breaks, and the remaining source fields beneath it. This is what every form + * this UI version does not recognize renders as. + * @param props - Durable content, its source, and the locale seat. + * @returns The opaque context body. + */ + function OpaqueBody({ content, source, t }) { + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(ModelFacingContent, { + content, + t + }), (0, react_jsx_runtime.jsx)(SourceFields, { + source, + formRendered: false, + t + })] }); + } + /** + * Instruction changes read off the source, or null when the record is not a + * usable instruction list. + * + * The read is all-or-nothing: silently dropping one unreadable entry would show + * a confident, incomplete file list for a log this version cannot fully read. + * Paths are deduplicated in first-seen order, matching how the header label is + * derived from the same array. + */ + function instructionChanges(source) { + const record = asRecord(source); + const list = record === null ? void 0 : record["changes"]; + if (!Array.isArray(list)) return null; + const changes = []; + const seen = /* @__PURE__ */ new Set(); + for (const entry of list) { + const change = asRecord(entry); + if (change === null) return null; + const path = change["path"]; + if (typeof path !== "string" || path === "") return null; + const action = change["action"]; + if (action !== "set" && action !== "replace" && action !== "remove") return null; + const digest = change["digest"]; + if (seen.has(path)) continue; + seen.add(path); + changes.push({ + action, + path, + ...typeof digest === "string" ? { digest } : {} + }); + } + return changes.length === 0 ? null : changes; + } + /** + * Locale key for one reconciled file. The baseline loads a file; a later delta + * distinguishes a newly reconciled path from a rewritten one, which `set` and + * `replace` already separate at the producer. + * @param action - the durable change action. + * @param baseline - whether this context is the startup/resume baseline. + * @returns the key naming what happened to that file. + */ + function instructionAction(action, baseline) { + if (action === "remove") return "message.context.instructions.removed"; + if (baseline) return "message.context.instructions.loaded"; + return action === "set" ? "message.context.instructions.added" : "message.context.instructions.updated"; + } + /** + * `instructions` form: the files this context reconciled, then their text. + * + * The text keeps its `` framing verbatim — the framing is part + * of what the model read, so hiding it would misreport the request. + * @param props - Durable content, its source, and the locale seat. + * @returns The instructions context body, or the opaque body when the change + * list is unreadable. + */ + function InstructionsBody({ content, source, t }) { + const changes = instructionChanges(source); + if (changes === null) return (0, react_jsx_runtime.jsx)(OpaqueBody, { + content, + source, + t + }); + const baseline = asRecord(source)?.["baseline"] === true; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("ul", { + className: ContextBody_module_css_default.files, + "data-context-files": true, + children: changes.map((change) => (0, react_jsx_runtime.jsxs)("li", { + className: ContextBody_module_css_default.file, + title: change.digest, + children: [(0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.filePath, + children: change.path + }), (0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.fileAction, + children: t(instructionAction(change.action, baseline)) + })] + }, change.path)) + }), (0, react_jsx_runtime.jsx)(ModelFacingContent, { + content, + t + })] }); + } + /** + * Catalog entries read off the source, or null when the record is not a usable + * catalog. All-or-nothing for the same reason as the instruction list: this body + * replaces the model-facing text, so a partial list would hide the only complete + * account of what the model read. + */ + function catalogEntries(source) { + const record = asRecord(source); + const list = record === null ? void 0 : record["entries"]; + if (!Array.isArray(list)) return null; + const entries = []; + for (const item of list) { + const entry = asRecord(item); + if (entry === null) return null; + const name = entry["name"]; + const description = entry["description"]; + if (typeof name !== "string" || name === "" || typeof description !== "string") return null; + entries.push({ + name, + description + }); + } + return entries; + } + /** + * `catalog` form: the published entries as a list, read from the source rather + * than re-parsed out of the model-facing prose. + * + * A catalog whose source carries no usable entries falls through to the opaque + * body, so an older or hand-edited log still shows its text. + * @param props - Durable content, its source, and the locale seat. + * @returns The catalog context body, or the opaque body when the entry list is + * unreadable. + */ + function CatalogBody({ content, source, t }) { + const entries = catalogEntries(source); + if (entries === null) return (0, react_jsx_runtime.jsx)(OpaqueBody, { + content, + source, + t + }); + const update = asRecord(source)?.["update"] === true; + const shown = entries.slice(0, MAX_ENTRIES); + const rest = unknownBlocks(content); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + update && (0, react_jsx_runtime.jsx)("p", { + className: ContextBody_module_css_default.catalogNotice, + "data-context-catalog-update": true, + children: t("message.context.catalog.replaced") + }), + (0, react_jsx_runtime.jsx)("ul", { + className: ContextBody_module_css_default.entries, + "data-context-entries": true, + children: shown.map((entry, index) => (0, react_jsx_runtime.jsxs)("li", { + className: ContextBody_module_css_default.entry, + children: [(0, react_jsx_runtime.jsx)("code", { + className: ContextBody_module_css_default.entryName, + children: entry.name + }), (0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.entryDescription, + children: entry.description + })] + }, index)) + }), + shown.length < entries.length && (0, react_jsx_runtime.jsx)("p", { + className: ContextBody_module_css_default.catalogNotice, + "data-context-entries-truncated": true, + children: t("message.context.catalog.more", { count: entries.length - shown.length }) + }), + (0, react_jsx_runtime.jsx)(UnknownBlocks, { + blocks: rest, + t + }) + ] }); + } + /** Snapshot sections read off the source, or null when the record is unusable. */ + function snapshotSections(source) { + const record = asRecord(source); + const list = record === null ? void 0 : record["sections"]; + if (!Array.isArray(list)) return null; + const sections = []; + for (const item of list) { + const section = asRecord(item); + if (section === null) return null; + const name = section["name"]; + const text = section["text"]; + if (typeof name !== "string" || name === "" || typeof text !== "string") return null; + sections.push({ + name, + text + }); + } + return sections.length === 0 ? null : sections; + } + /** + * `snapshot` form: the named contributions this snapshot assembled, in order. + * + * The sections are the same bytes the model read, split at the boundaries the + * producer assembled them on, so a reader sees which subsystem contributed + * which state instead of one undifferentiated wall. + * + * One sentence of the model-facing text is NOT in any section: the producer's + * framing line declaring that this snapshot supersedes earlier ones. Unlike the + * `` wrapper an instruction context carries — which wraps + * content and cannot be separated from it — that line states the form's own + * semantics, so the body states them as a caption instead of reprinting the + * joined prose beside the sections it was split from. + * @param props - Durable content, its source, and the locale seat. + * @returns The snapshot context body, or the opaque body when unreadable. + */ + function SnapshotBody({ content, source, t }) { + const sections = snapshotSections(source); + /* v8 ignore next -- contextBody reads the sections before choosing this body. */ + if (sections === null) return (0, react_jsx_runtime.jsx)(OpaqueBody, { + content, + source, + t + }); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("p", { + className: ContextBody_module_css_default.catalogNotice, + "data-context-snapshot-supersedes": true, + children: t("message.context.snapshot.supersedes") + }), (0, react_jsx_runtime.jsx)("dl", { + className: ContextBody_module_css_default.sections, + "data-context-sections": true, + children: sections.map((section, index) => (0, react_jsx_runtime.jsxs)("div", { + className: ContextBody_module_css_default.section, + children: [(0, react_jsx_runtime.jsx)("dt", { + className: ContextBody_module_css_default.sectionName, + children: section.name + }), (0, react_jsx_runtime.jsx)("dd", { + className: ContextBody_module_css_default.sectionText, + children: boundedText(section.text, t) + })] + }, index)) + })] }); + } + /** + * `notice` form: what just happened, with the model-facing text beneath it. + * + * The one-line account also rides the collapsed row ({@link contextBody}), so a + * notice is usually readable without expanding at all. + * @param props - Durable content, its source, and the locale seat. + * @returns The notice context body. + */ + function NoticeBody({ content, t }) { + return (0, react_jsx_runtime.jsx)(ModelFacingContent, { + content, + t + }); + } + /** + * `relay` form: which agent sent this, then what it said. + * + * The sender is an opaque session id; it is shown as a field rather than a + * label, because this client cannot resolve it to a title. + * @param props - Durable content, its source, and the locale seat. + * @returns The relay context body. + */ + function RelayBody({ content, source, t }) { + const sender = relaySender(source); + /* v8 ignore next -- contextBody resolves the sender before choosing this body. */ + if (sender === null) return (0, react_jsx_runtime.jsx)(OpaqueBody, { + content, + source, + t + }); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("p", { + className: ContextBody_module_css_default.relaySender, + "data-context-relay-sender": true, + children: t("message.context.relay.from", { session: sender }) + }), (0, react_jsx_runtime.jsx)(ModelFacingContent, { + content, + t + })] }); + } + /** The sending agent's session id, or null when the record does not name one. */ + function relaySender(source) { + const sender = asRecord(source)?.["senderSessionId"]; + return typeof sender === "string" && sender !== "" ? sender : null; + } + /** Recalled sessions read off the source, or null when the record is unusable. */ + function recalledSessions(source) { + const record = asRecord(source); + const list = record === null ? void 0 : record["references"]; + if (!Array.isArray(list)) return null; + const sessions = []; + for (const item of list) { + const reference = asRecord(item); + if (reference === null) return null; + const label = reference["label"]; + const retained = reference["retainedMessages"]; + const omitted = reference["omittedMessages"]; + const truncated = reference["truncated"]; + if (typeof label !== "string" || label === "" || typeof retained !== "number" || typeof omitted !== "number" || typeof truncated !== "boolean") return null; + sessions.push({ + label, + retained, + omitted, + truncated + }); + } + return sessions.length === 0 ? null : sessions; + } + /** + * `recall` form: which sessions this material came from and how much of each + * survived the read, then the material itself. + * + * Completeness is the fact a reader needs first: recalled context is bounded on + * the way in, so a card that hid the omitted count would overstate what the + * model received. + * @param props - Durable content, its source, and the locale seat. + * @returns The recall context body, or the opaque body when unreadable. + */ + function RecallBody({ content, source, t }) { + const sessions = recalledSessions(source); + if (sessions === null) return (0, react_jsx_runtime.jsx)(OpaqueBody, { + content, + source, + t + }); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("ul", { + className: ContextBody_module_css_default.recalls, + "data-context-recalls": true, + children: sessions.map((session, index) => (0, react_jsx_runtime.jsxs)("li", { + className: ContextBody_module_css_default.recall, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.recallLabel, + children: session.label + }), + (0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.recallCounts, + children: t("message.context.recall.counts", { + retained: session.retained, + omitted: session.omitted + }) + }), + session.truncated && (0, react_jsx_runtime.jsx)("span", { + className: ContextBody_module_css_default.recallCounts, + children: t("message.context.recall.truncated") + }) + ] + }, index)) + }), (0, react_jsx_runtime.jsx)(ModelFacingContent, { + content, + t + })] }); + } + /** The one-line account a `notice` puts on its collapsed row, when it records one. */ + function noticeSummary(source) { + const summary = asRecord(source)?.["summary"]; + return typeof summary === "string" && summary !== "" ? summary : null; + } + /** + * Choose the body for one context node. + * + * Returns the form the body actually rendered as, which is not always the + * declared one: a declared form whose fields are unreadable falls back to + * opaque, and the caller labels the row with what it really shows. + * `summary` is the collapsed row's one-line account, which only a `notice` + * records: its whole point is being readable without expanding. + * @param form - the producer-declared form projected onto the node. + * @param props - durable content, its source, and the locale seat. + * @returns the rendered form (null for opaque), its collapsed summary, and its body. + */ + function contextBody(form, props) { + const opaque = { + rendered: null, + summary: null, + body: (0, react_jsx_runtime.jsx)(OpaqueBody, { ...props }) + }; + switch (form) { + case "instructions": return instructionChanges(props.source) === null ? opaque : { + rendered: "instructions", + summary: null, + body: (0, react_jsx_runtime.jsx)(InstructionsBody, { ...props }) + }; + case "catalog": return catalogEntries(props.source) === null ? opaque : { + rendered: "catalog", + summary: null, + body: (0, react_jsx_runtime.jsx)(CatalogBody, { ...props }) + }; + case "snapshot": return snapshotSections(props.source) === null ? opaque : { + rendered: "snapshot", + summary: null, + body: (0, react_jsx_runtime.jsx)(SnapshotBody, { ...props }) + }; + case "notice": { + const summary = noticeSummary(props.source); + return summary === null ? opaque : { + rendered: "notice", + summary, + body: (0, react_jsx_runtime.jsx)(NoticeBody, { ...props }) + }; + } + case "relay": return relaySender(props.source) === null ? opaque : { + rendered: "relay", + summary: null, + body: (0, react_jsx_runtime.jsx)(RelayBody, { ...props }) + }; + case "recall": return recalledSessions(props.source) === null ? opaque : { + rendered: "recall", + summary: null, + body: (0, react_jsx_runtime.jsx)(RecallBody, { ...props }) + }; + case null: return opaque; + /* v8 ignore next 4 -- closed-union backstop; the compiler rejects a new + KnownContextForm here rather than letting it degrade to opaque silently. */ + default: throw new Error(`unreachable context form: ${String(form)}`); + } + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/ContextInjectionRow.module.css.mjs + const css$13 = ".pC0e7a_root{min-width:0}.pC0e7a_root[data-open]{padding-bottom:4px}.pC0e7a_chevron{color:var(--dsw-alias-label-secondary)}.pC0e7a_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.pC0e7a_source{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:14px;line-height:24px;overflow:hidden}.pC0e7a_summary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.pC0e7a_body{box-sizing:border-box;background:var(--dsw-alias-markdown-code-block);width:calc(100% - 22px);max-height:141px;color:var(--dsw-alias-label-tertiary);font:400 11px/16px var(--ds-font-family-code);border:none;border-radius:8px;margin:4px 0 0 22px;padding:10px 16px 12px 12px;overflow:auto}"; + const tagId$13 = "@deepseek-ai/dsh-client-ui-conversation/ContextInjectionRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$13; + tag.textContent = css$13; + document.head.appendChild(tag); + } + var ContextInjectionRow_module_css_default = { + "source": "pC0e7a_source", + "summary": "pC0e7a_summary", + "body": "pC0e7a_body", + "sep": "pC0e7a_sep", + "chevron": "pC0e7a_chevron", + "root": "pC0e7a_root" + }; + //#endregion + //#region lib/types/client/chat/ContextInjectionRow.js + /** + * Render logged context with the Tool calls disclosure chrome from Figma. + * + * The header names the role the context plays and, beside it, the producer the + * durable source identifies, so a reader can tell an injected skill catalog + * from a workspace instruction file or a recalled session without expanding. + * The expanded body follows the producer-declared form; an absent or unknown + * form renders the opaque body. + * @param props - Durable content, its projected producer role/name and form, and the locale seat. + * @returns A collapsed context row with a bounded, form-specific body. + */ + function ContextInjectionRow({ content, source, provenance, form, t }) { + const [open, setOpen] = (0, react.useState)(false); + const { rendered, summary, body } = contextBody(form, { + content, + source, + t + }); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + className: ContextInjectionRow_module_css_default.root, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, { size: 14 }), + chevronClassName: ContextInjectionRow_module_css_default.chevron, + title: t(provenance.role === "recall" ? "message.contextRecall" : "message.contextInjection"), + collapsedContent: provenance.label === null ? void 0 : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ContextInjectionRow_module_css_default.sep, + "aria-hidden": true + }), + (0, react_jsx_runtime.jsx)("span", { + className: ContextInjectionRow_module_css_default.source, + "data-context-source": true, + children: provenance.label + }), + summary !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: ContextInjectionRow_module_css_default.sep, + "aria-hidden": true + }), (0, react_jsx_runtime.jsx)("span", { + className: ContextInjectionRow_module_css_default.summary, + "data-context-summary": true, + children: summary + })] }) + ] }), + keepContentWhenOpen: true, + open, + expandable: true, + expandOnRowClick: true, + onToggle: () => { + setOpen((value) => !value); + }, + children: (0, react_jsx_runtime.jsx)("div", { + className: ContextInjectionRow_module_css_default.body, + "data-context-injection-body": true, + "data-context-form": rendered ?? void 0, + children: body + }) + }); + } + //#endregion + //#region lib/types/client/chat/use-calendar-day.js + /** + * Local calendar-day epoch that advances at each local midnight. + * @returns Midnight ms for the current local day; updates after the boundary. + */ + function useCalendarDay() { + const [day, setDay] = (0, react.useState)(() => startOfLocalDay(Date.now())); + (0, react.useEffect)(() => { + let timer; + const arm = () => { + const now = Date.now(); + setDay(startOfLocalDay(now)); + timer = setTimeout(arm, msUntilNextLocalMidnight(now)); + }; + timer = setTimeout(arm, msUntilNextLocalMidnight(Date.now())); + return () => { + clearTimeout(timer); + }; + }, []); + return day; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/MessageIconActions.module.css.mjs + const css$12 = ".p-xYUq_actions{align-items:center;gap:10px;height:28px;display:flex}.p-xYUq_timeStart{color:var(--dsw-alias-label-tertiary);white-space:nowrap;padding-right:12px;font-size:14px;line-height:24px}.p-xYUq_timeEnd{color:var(--dsw-alias-label-tertiary);white-space:nowrap;padding-left:12px;font-size:14px;line-height:24px}.p-xYUq_runTimeDot{margin:0 10px}@media (hover:hover){[data-time-hover-root] :is(.p-xYUq_timeStart,.p-xYUq_timeEnd){opacity:0;transition:opacity 80ms}[data-time-hover-root]:hover :is(.p-xYUq_timeStart,.p-xYUq_timeEnd),[data-time-hover-root]:focus-within :is(.p-xYUq_timeStart,.p-xYUq_timeEnd){opacity:1}}.p-xYUq_action{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.p-xYUq_action:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.p-xYUq_action[data-unavailable]{cursor:default;opacity:.4}.p-xYUq_action[data-unavailable]:hover{color:var(--dsw-alias-label-tertiary);background:0 0}.p-xYUq_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}"; + const tagId$12 = "@deepseek-ai/dsh-client-ui-conversation/MessageIconActions.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$12; + tag.textContent = css$12; + document.head.appendChild(tag); + } + var MessageIconActions_module_css_default = { + "actions": "p-xYUq_actions", + "timeStart": "p-xYUq_timeStart", + "runTimeDot": "p-xYUq_runTimeDot", + "visuallyHidden": "p-xYUq_visuallyHidden", + "action": "p-xYUq_action", + "timeEnd": "p-xYUq_timeEnd" + }; + //#endregion + //#region lib/types/client/chat/MessageIconActions.js + /** + * Copy / branch (/ clock) IconActions row shared by user and assistant chrome. + * @param props - Copy text, event time, clock side, branch callback, className. + * @returns The actions row element. + */ + function MessageIconActions({ text, time, runMs, ttftMs, tokensPerSecond, clock, onBranch, branchUnavailable = false, className, extraActions, t }) { + const day = useCalendarDay(); + const reasonId = (0, react.useId)(); + const [copied, setCopied] = (0, react.useState)(false); + const copyPending = (0, react.useRef)(false); + const copyTimer = (0, react.useRef)(null); + const copyEpoch = (0, react.useRef)(0); + (0, react.useEffect)(() => () => { + copyEpoch.current += 1; + copyPending.current = false; + if (copyTimer.current !== null) clearTimeout(copyTimer.current); + }, []); + const onCopy = (0, react.useCallback)(() => { + if (copied || copyPending.current) return; + const epoch = copyEpoch.current; + copyPending.current = true; + (0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(text).then((ok) => { + if (epoch !== copyEpoch.current) return; + copyPending.current = false; + if (!ok) return; + setCopied(true); + copyTimer.current = window.setTimeout(() => { + copyTimer.current = null; + setCopied(false); + }, 1e3); + }); + }, [copied, text]); + const clockEl = time === void 0 ? null : (0, react_jsx_runtime.jsxs)("span", { + className: clock === "start" ? MessageIconActions_module_css_default.timeStart : MessageIconActions_module_css_default.timeEnd, + children: [ + formatMessageClock(time, t, day), + runMs !== void 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + " ", + (0, react_jsx_runtime.jsx)("span", { + className: MessageIconActions_module_css_default.runTimeDot, + "aria-hidden": true, + children: "·" + }), + " ", + t("message.ranFor", { duration: formatRunDuration(runMs, t) }) + ] }), + ttftMs !== void 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + " ", + (0, react_jsx_runtime.jsx)("span", { + className: MessageIconActions_module_css_default.runTimeDot, + "aria-hidden": true, + children: "·" + }), + " ", + t("message.ttft", { seconds: formatLatencySeconds(ttftMs) }) + ] }), + tokensPerSecond !== void 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + " ", + (0, react_jsx_runtime.jsx)("span", { + className: MessageIconActions_module_css_default.runTimeDot, + "aria-hidden": true, + children: "·" + }), + " ", + t("message.tokensPerSecond", { tps: formatTokensPerSecond(tokensPerSecond) }) + ] }) + ] + }); + return (0, react_jsx_runtime.jsxs)("div", { + className: className === void 0 ? MessageIconActions_module_css_default.actions : `${MessageIconActions_module_css_default.actions} ${className}`, + children: [ + clock === "start" ? clockEl : null, + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: copied ? t("copied") : t("copy"), + side: "bottom", + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageIconActions_module_css_default.action, + "aria-label": copied ? t("copied") : t("copy"), + onClick: onCopy, + children: copied ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCopyOutline16, {}) + }) + }), + extraActions, + onBranch !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: branchUnavailable ? t("message.branchUnavailable") : t("message.branch"), + side: "bottom", + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageIconActions_module_css_default.action, + "aria-label": t("message.branch"), + "aria-disabled": branchUnavailable || void 0, + "aria-describedby": branchUnavailable ? reasonId : void 0, + "data-unavailable": branchUnavailable || void 0, + onClick: branchUnavailable ? void 0 : onBranch, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBranchOutline16, {}) + }) + }), + onBranch !== void 0 && branchUnavailable && (0, react_jsx_runtime.jsx)("span", { + id: reasonId, + className: MessageIconActions_module_css_default.visuallyHidden, + children: t("message.branchUnavailable") + }), + clock === "end" ? clockEl : null + ] + }); + } + //#endregion + //#region lib/types/client/chat/MessageItem.js + function contentParts(content) { + const texts = []; + const images = []; + const rest = []; + for (const block of content) { + const b = block; + if (b.type === "text" && typeof b.text === "string") texts.push(b.text); + else if (b.type === "image" && b.attachment !== void 0) images.push({ attachment: b.attachment }); + else rest.push(block); + } + return { + text: texts.join(""), + images, + rest + }; + } + function retrySeconds(milliseconds) { + return Math.max(1, Math.ceil(milliseconds / 1e3)); + } + function ModelRetryItem({ node, active, t }) { + const deadline = (0, react.useMemo)(() => Date.now() + node.delayMs, [node.delayMs, node.seq]); + const scheduledSeconds = retrySeconds(node.delayMs); + const maximum = node.mode === "normal" ? node.maxRetries : "∞"; + const [countdown, setCountdown] = (0, react.useState)(() => ({ + deadline, + seconds: retrySeconds(deadline - Date.now()) + })); + const remainingSeconds = countdown.deadline === deadline ? countdown.seconds : retrySeconds(deadline - Date.now()); + (0, react.useEffect)(() => { + if (!active) return; + const updateCountdown = () => { + const next = retrySeconds(deadline - Date.now()); + setCountdown((current) => current.deadline === deadline && current.seconds === next ? current : { + deadline, + seconds: next + }); + return next; + }; + if (updateCountdown() === 1) return; + const timer = window.setInterval(() => { + if (updateCountdown() === 1) window.clearInterval(timer); + }, 250); + return () => { + window.clearInterval(timer); + }; + }, [active, deadline]); + const label = active ? t("message.retry.active") : node.retryState === "cancelled" ? t("message.retry.cancelled") : node.retryState === "started" ? t("message.retry.started") : t("message.retry.scheduled"); + const seconds = active ? remainingSeconds : scheduledSeconds; + return (0, react_jsx_runtime.jsxs)("details", { + className: MessageItem_module_css_default.retryRow, + "data-active": active || void 0, + children: [(0, react_jsx_runtime.jsx)("summary", { + className: MessageItem_module_css_default.retrySummary, + children: (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.retryText, + role: "status", + children: t("message.retry.status", { + label, + retry: node.retry, + maximum, + seconds + }) + }) + }), (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.retryDetails, + children: [(0, react_jsx_runtime.jsxs)("div", { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.retryDetailLabel, + children: t("message.retry.delay") + }), + Math.round(node.delayMs), + "ms" + ] }), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.retryDetailLabel, + children: t("message.retry.failure") + }), node.failure.message] })] + })] + }); + } + /** Persistent, turn-positioned feedback for a terminal failure. */ + function TurnErrorItem({ node, t }) { + return (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.turnErrorRow, + role: "status", + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { + state: "error", + className: MessageItem_module_css_default.turnErrorDot + }), + (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.turnErrorCopy, + children: [(0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.turnErrorTitle, + children: t("message.turnError") + }), (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.turnErrorMessage, + children: node.message + })] + }), + node.code !== void 0 && (0, react_jsx_runtime.jsx)("code", { + className: MessageItem_module_css_default.turnErrorCode, + children: node.code + }) + ] + }); + } + /** Persistent, turn-positioned notice for a turn ended at the output-token cap. */ + function TurnMaxTokensItem({ t }) { + return (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.turnErrorRow, + role: "status", + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { + state: "warning", + className: MessageItem_module_css_default.turnErrorDot + }), (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.turnErrorCopy, + children: [(0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.maxTokensTitle, + children: t("message.maxTokens") + }), (0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.turnErrorMessage, + children: t("message.maxTokens.hint") + })] + })] + }); + } + /** + * Display projection of reference forms in a user bubble (free geometry — no + * textarea alignment constraint here); everything else stays plain text. The + * logged model text remains the single truth; this is presentation only. + * Plain-text `/name` / `@name` word-boundary tokens decorate (the sent text + * IS the reference — the bubble uses the same plainest token + * scan as the composer, minus the lexicon: sent tokens were validated at + * compose time, so shape alone decorates). + */ + function projectUserText(text) { + const re = /(^|\s)([/@][\w-]+)(?=\s|$)/g; + const parts = []; + let cursor = 0; + let m; + while ((m = re.exec(text)) !== null) { + const tokenStart = m.index + (m[1]?.length ?? 0); + const label = m[2] ?? ""; + if (tokenStart > cursor) parts.push((0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MessageText, { text: text.slice(cursor, tokenStart) }, cursor)); + parts.push((0, react_jsx_runtime.jsx)("span", { + className: MessageItem_module_css_default.refChip, + "data-ref-chip": label.startsWith("@") ? "subagent" : "skill", + children: label + }, tokenStart)); + cursor = tokenStart + label.length; + } + if (parts.length === 0) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MessageText, { text }); + if (cursor < text.length) parts.push((0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MessageText, { text: text.slice(cursor) }, cursor)); + return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: parts }); + } + /** Right-aligned bubble shared by user and steering rows. */ + function UserStyleBubble({ content, imageLoader, actions, pending = false, t }) { + const { text, images, rest } = contentParts(content); + const truncated = (total) => t("json.truncated", { total }); + const showBubble = text !== "" || rest.length > 0; + return (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.userRow, + "data-pending-steering": pending || void 0, + "data-time-hover-root": true, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.userStack, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_attachment.ImageGallery, { + images, + load: imageLoader, + align: "end", + labels: messageImageLabels(t) + }), showBubble && (0, react_jsx_runtime.jsxs)("div", { + className: MessageItem_module_css_default.bubble, + children: [projectUserText(text), rest.map((block, i) => (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.extraBlock"), + payload: block, + truncatedLabel: truncated + }, i))] + })] + }), actions?.(text)] + }); + } + /** + * Render one Host-authoritative pending steering item with the same visual + * language as its eventual durable transcript node. + * @param props - Pending message content and conversation translator. + * @returns the pending steering bubble. + */ + function PendingSteeringBubble({ content, loadImage, t }) { + return (0, react_jsx_runtime.jsx)(UserStyleBubble, { + content, + imageLoader: loadImage ?? (() => Promise.reject(new Error(t("image.serviceUnavailable")))), + pending: true, + t, + actions: (text) => (0, react_jsx_runtime.jsx)(MessageIconActions, { + text, + clock: "start", + className: MessageItem_module_css_default.actions, + t + }) + }); + } + /** User and admitted-steering keyed Chat renderer. */ + const UserMessageNodeView = (0, react.memo)(function UserMessageNodeView({ node, loadImage, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)(UserStyleBubble, { + content: data.content, + imageLoader: loadImage, + t, + actions: (text) => (0, react_jsx_runtime.jsx)(MessageIconActions, { + text, + time: data.time, + clock: "start", + className: MessageItem_module_css_default.actions, + t + }) + }); + }); + /** Injected-context keyed Chat renderer. */ + const ContextMessageNodeView = (0, react.memo)(function ContextMessageNodeView({ node, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)(ContextInjectionRow, { + content: data.content, + source: data.source, + provenance: data.provenance, + form: data.form, + t + }); + }); + /** Automatic compaction keyed Chat renderer. */ + const CompactionNodeView = (0, react.memo)(function CompactionNodeView({ node, t }) { + return (0, react_jsx_runtime.jsx)(CompactionItem, { + node: node.data, + t + }); + }); + /** Correlated retry-chain keyed Chat renderer. */ + const RetryNodeView = (0, react.memo)(function RetryNodeView({ node, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)(ModelRetryItem, { + node: data.current, + active: data.current.retryState === "scheduled", + t + }); + }); + /** Terminal turn-error keyed Chat renderer. */ + const TurnErrorNodeView = (0, react.memo)(function TurnErrorNodeView({ node, t }) { + return (0, react_jsx_runtime.jsx)(TurnErrorItem, { + node: node.data, + t + }); + }); + /** Max-tokens turn-end notice keyed Chat renderer. */ + const TurnMaxTokensNodeView = (0, react.memo)(function TurnMaxTokensNodeView({ t }) { + return (0, react_jsx_runtime.jsx)(TurnMaxTokensItem, { t }); + }); + /** Explicit unknown-surface keyed Chat renderer. */ + const UnknownNodeView = (0, react.memo)(function UnknownNodeView({ node, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)("div", { + className: MessageItem_module_css_default.contextRow, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.unknownSurface", { type: data.type }), + payload: data.data, + truncatedLabel: (total) => t("json.truncated", { total }) + }) + }); + }); + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/ChatView.module.css.mjs + const css$11 = ".Md3f7G_root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.Md3f7G_scroll{min-height:0;padding:16px calc(var(--dsh-composer-side-clearance) + 16px);flex:auto;overflow-y:auto}[data-conversation-scroll] .Md3f7G_root{flex:none;height:auto;min-height:auto}[data-conversation-scroll] .Md3f7G_scroll{flex:none;min-height:auto;overflow:visible}.Md3f7G_column{max-width:var(--dsh-chat-content-width);flex-direction:column;gap:16px;width:100%;margin:0 auto;display:flex}.Md3f7G_flowItem{min-width:0}.Md3f7G_flowItem:empty{display:none}.Md3f7G_callRow{border-radius:6px}.Md3f7G_turnStatus{height:26px;font:var(--dsw-font-s-strong-14);white-space:nowrap;background:linear-gradient(90deg, var(--dsw-static-deepseek-500) 0%, var(--dsw-static-deepseek-500) 40%, var(--dsw-static-deepseek-200) 50%, var(--dsw-static-deepseek-500) 60%, var(--dsw-static-deepseek-500) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:100% 0;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;flex:none;align-self:flex-start;align-items:center;animation:1.8s linear infinite Md3f7G_dsh-turn-status-shimmer;display:inline-flex}.Md3f7G_turnStatusClock{font:var(--dsw-font-xs-13);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-caption);-webkit-text-fill-color:var(--dsw-alias-label-caption);margin-left:8px;font-weight:400}@keyframes Md3f7G_dsh-turn-status-shimmer{to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.Md3f7G_turnStatus{background-position:0 0;background-size:100% 100%;animation:none}}.Md3f7G_hint{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.Md3f7G_openError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}.Md3f7G_older{justify-content:center;display:flex}.Md3f7G_older button{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover-solid);cursor:pointer;border:none;border-radius:14px;padding:4px 12px;font-size:12px}.Md3f7G_older button:disabled{cursor:default;opacity:.6}.Md3f7G_toBottomSlot{z-index:8;height:0;padding-right:max(0px, calc((100% - var(--dsh-chat-content-width)) / 2));pointer-events:none;justify-content:flex-end;display:flex;position:sticky;bottom:16px}[data-conversation-scroll] .Md3f7G_toBottomSlot{bottom:calc(var(--dsh-composer-height,152px) + 16px)}.Md3f7G_toBottom{border:1px solid var(--dsw-alias-border-l2);width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;pointer-events:auto;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}.Md3f7G_toBottom:hover{background:var(--dsw-alias-button-floating-hover)}"; + const tagId$11 = "@deepseek-ai/dsh-client-ui-conversation/ChatView.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$11) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$11; + tag.textContent = css$11; + document.head.appendChild(tag); + } + var ChatView_module_css_default = { + "toBottom": "Md3f7G_toBottom", + "column": "Md3f7G_column", + "callRow": "Md3f7G_callRow", + "turnStatusClock": "Md3f7G_turnStatusClock", + "flowItem": "Md3f7G_flowItem", + "scroll": "Md3f7G_scroll", + "hint": "Md3f7G_hint", + "toBottomSlot": "Md3f7G_toBottomSlot", + "older": "Md3f7G_older", + "turnStatus": "Md3f7G_turnStatus", + "root": "Md3f7G_root", + "dsh-turn-status-shimmer": "Md3f7G_dsh-turn-status-shimmer", + "openError": "Md3f7G_openError" + }; + //#endregion + //#region lib/types/client/chat/ChatNodeSeat.js + /** Subscribe and dispatch one stable Context key without observing sibling Nodes. */ + const ChatNodeSeat = (0, react.memo)(function ChatNodeSeat({ nodeKey, selectedCallId, cwd, openFile, inspectCall, forkAt, loadImage, fileMentions, useSession, renderSlot, t }) { + const node = useSession((snapshot) => snapshot.chat.nodes.get(nodeKey)); + const routedNode = node; + const owner = (0, react.useMemo)(() => node === void 0 ? null : { + selectedCallId, + cwd, + openFile, + inspectCall, + forkAt, + loadImage, + fileMentions + }, [ + node, + selectedCallId, + cwd, + openFile, + inspectCall, + forkAt, + loadImage, + fileMentions + ]); + if (routedNode === void 0 || owner === null) return null; + const routedOwner = { + ...owner, + node: routedNode + }; + return (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.flowItem, + "data-chat-anchor-key": routedNode.key, + "data-chat-flow-key": routedNode.key, + "data-chat-flow-kind": routedNode.kind, + children: renderSlot("conversation.chat.node", routedOwner, { + entryKey: routedNode.kind, + hookContext: nodeKey, + fallback: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.unknownSurface", { type: routedNode.kind }), + payload: routedNode.data, + truncatedLabel: (total) => t("json.truncated", { total }) + }) + }) + }); + }); + //#endregion + //#region lib/types/client/chat/ChatView.js + /** Active column host when present; otherwise the view-local scroller. */ + function scrollerOf(from) { + return from.closest("[data-conversation-scroll]") ?? from; + } + /** Find an already-rendered settled row without interpolating a selector. */ + function anchorElement(list, key) { + for (const row of list.querySelectorAll("[data-chat-anchor-key]")) if (row.dataset.chatAnchorKey === key) return row; + return null; + } + /** Row position in scrollport coordinates (viewport-independent). */ + function flowTop(row, scrollport) { + return row.getBoundingClientRect().top - scrollport.getBoundingClientRect().top; + } + /** Select a visible stable node/call identity, falling back only when layout + * has not exposed a visible box yet. */ + function pagingAnchor(list, scrollport) { + const viewport = scrollport.getBoundingClientRect(); + const visibleBottom = scrollport.querySelector("[data-composer-seat]")?.getBoundingClientRect().top ?? viewport.bottom; + if (typeof document.elementsFromPoint === "function" && visibleBottom > viewport.top) { + const content = list.getBoundingClientRect(); + const left = Math.max(viewport.left, content.left); + const right = Math.min(viewport.right, content.right); + const x = left + Math.max(0, right - left) / 2; + const height = visibleBottom - viewport.top; + const points = [ + 1, + Math.min(32, height / 3), + height / 2, + Math.max(1, height - 1) + ]; + for (const offset of points) for (const element of document.elementsFromPoint(x, viewport.top + offset)) { + const row = element instanceof HTMLElement ? element.closest("[data-chat-anchor-key]") : null; + if (row !== null && list.contains(row)) return row; + } + } + const rows = [...list.querySelectorAll("[data-chat-anchor-key]")]; + return rows.filter((row) => { + const rect = row.getBoundingClientRect(); + return rect.bottom > viewport.top && rect.top < visibleBottom; + })[0] ?? rows[0] ?? null; + } + /** Capture a reflow-resistant reader position from the current rendered window. */ + function scrollPosition(list, scrollport) { + const row = pagingAnchor(list, scrollport); + const anchorKey = row?.dataset.chatAnchorKey; + if (row === null || anchorKey === void 0) return null; + return { + anchorKey, + anchorTop: flowTop(row, scrollport), + scrollTop: scrollport.scrollTop + }; + } + function runningTurnStartTime(timeline) { + let latest = null; + for (const turn of timeline.turns.values()) if (turn.status === "open" && turn.start !== void 0) latest = turn.start.time; + return latest; + } + /** Turn-level model activity label retained across first-token, tool, and streaming phases. */ + function TurnStatus({ startTime, t }) { + const [mountedAt] = (0, react.useState)(() => Date.now()); + const anchor = startTime ?? mountedAt; + const [elapsedMs, setElapsedMs] = (0, react.useState)(() => Math.max(0, Date.now() - anchor)); + (0, react.useEffect)(() => { + const tick = () => { + setElapsedMs(Math.max(0, Date.now() - anchor)); + }; + tick(); + const id = setInterval(tick, 1e3); + return () => { + clearInterval(id); + }; + }, [anchor]); + const showClock = elapsedMs >= 15e3; + return (0, react_jsx_runtime.jsxs)("div", { + className: ChatView_module_css_default.turnStatus, + role: "status", + "aria-live": "polite", + children: ["Deep diving...", showClock && (0, react_jsx_runtime.jsx)("span", { + className: ChatView_module_css_default.turnStatusClock, + "aria-hidden": true, + children: formatRunDuration(elapsedMs, t) + })] + }); + } + /** + * The chat view slot entry: pure component over the composed props; each + * ordered business Node crosses the keyed renderer seat. + */ + function ChatView({ useSession, useSessions, useStore, renderSlot, sessionId, openFile, loadOlder, loadImage, inspectCall, chatScroll, forkAt, fileMentions, t }) { + const order = useSession((s) => s.chat.order); + const nodeStore = useSession((s) => s.chat.nodes); + const timeline = useSession((s) => s.chat.timeline); + const inbox = useSession((s) => s.queue); + const cwd = useSessions((s) => s.byId[sessionId]?.cwd); + const running = useSession((s) => s.running); + const openState = useSession((s) => s.openState); + const openError = useSession((s) => s.openError); + const hasMore = useSession((s) => s.hasMore); + const loadingOlder = useSession((s) => s.loadingOlder); + const selectedCallId = useStore((s) => s.selection?.callId); + const pendingSteering = (0, react.useMemo)(() => inbox.filter((item) => item.placement === "steering"), [inbox]); + const runningTurnStart = (0, react.useMemo)(() => runningTurnStartTime(timeline), [timeline]); + const listRef = (0, react.useRef)(null); + const columnRef = (0, react.useRef)(null); + const atBottomRef = (0, react.useRef)(true); + const [atBottom, setAtBottom] = (0, react.useState)(true); + /** Last position delivered or written on the main thread. */ + const observedTopRef = (0, react.useRef)(0); + /** Paging anchor: semantic row/position at click, updated by reader scrolls + * while the request is pending and restored after the prepend lands. */ + const anchorRef = (0, react.useRef)(null); + const firstSeqRef = (0, react.useRef)(null); + const openedRef = (0, react.useRef)(false); + const lastKeyRef = (0, react.useRef)(null); + const lastSteeringIdRef = (0, react.useRef)(null); + /** Flow tip signature — follow-scroll only when this moves, never on a + * scroll-driven at-bottom chrome re-render (which would snap inertial + * scrolls the rest of the way to the floor). */ + const followSigRef = (0, react.useRef)(null); + const firstKey = order[0]; + const firstSeq = firstKey === void 0 ? null : nodeStore.get(firstKey)?.anchorSeq ?? null; + const lastKey = order.at(-1) ?? null; + const lastNode = lastKey === null ? void 0 : nodeStore.get(lastKey); + const lastSteeringId = pendingSteering[pendingSteering.length - 1]?.id ?? null; + const followSig = `${openState}:${firstSeq}:${lastKey}:${order.length}:${running ? 1 : 0}:${lastSteeringId ?? ""}`; + const toBottom = (el) => { + anchorRef.current = null; + el.scrollTop = el.scrollHeight; + observedTopRef.current = el.scrollTop; + atBottomRef.current = true; + setAtBottom(true); + chatScroll.save(null); + }; + (0, react.useLayoutEffect)(() => { + const local = listRef.current; + /* v8 ignore next -- ref-null guard: React attaches the ref before layout effects run. */ + if (local === null) return; + const el = scrollerOf(local); + if (openState === "open" && !openedRef.current) { + openedRef.current = true; + const saved = chatScroll.read(); + if (saved === null) toBottom(el); + else { + el.scrollTop = saved.scrollTop; + const row = anchorElement(local, saved.anchorKey); + if (row !== null) el.scrollTop += flowTop(row, el) - saved.anchorTop; + observedTopRef.current = el.scrollTop; + const isAtBottom = el.scrollHeight - el.scrollTop - el.clientHeight <= 25; + atBottomRef.current = isAtBottom; + setAtBottom(isAtBottom); + const normalized = isAtBottom ? null : scrollPosition(local, el); + if (isAtBottom) chatScroll.save(null); + else if (normalized !== null) chatScroll.save(normalized); + } + firstSeqRef.current = firstSeq; + lastKeyRef.current = lastKey; + lastSteeringIdRef.current = lastSteeringId; + followSigRef.current = followSig; + return; + } + if (anchorRef.current !== null && firstSeq !== null && firstSeqRef.current !== null && firstSeq < firstSeqRef.current) { + const anchor = anchorRef.current; + anchorRef.current = null; + const row = anchorElement(local, anchor.key); + if (row !== null) el.scrollTop += flowTop(row, el) - anchor.top; + observedTopRef.current = el.scrollTop; + firstSeqRef.current = firstSeq; + /* v8 ignore next -- ?? arm: a prepend adds nodes, so the flow list here is never empty. */ + lastKeyRef.current = lastKey; + lastSteeringIdRef.current = lastSteeringId; + followSigRef.current = followSig; + return; + } + firstSeqRef.current = firstSeq; + const appendedUser = lastKey !== lastKeyRef.current && lastNode?.kind === "user"; + const appendedSteering = lastSteeringId !== null && lastSteeringId !== lastSteeringIdRef.current; + const tipMoved = followSigRef.current !== followSig; + lastKeyRef.current = lastKey; + lastSteeringIdRef.current = lastSteeringId; + followSigRef.current = followSig; + if (appendedUser || appendedSteering || tipMoved && atBottomRef.current) toBottom(el); + }); + const onScrollRef = (0, react.useRef)(() => {}); + onScrollRef.current = () => { + const local = listRef.current; + /* v8 ignore next -- ref-null guard: the handler only fires while mounted. */ + if (local === null) return; + const el = scrollerOf(local); + const floor = Math.max(0, el.scrollHeight - el.clientHeight); + const movedByReader = Math.abs(el.scrollTop - Math.min(observedTopRef.current, floor)) > .5; + const isAtBottom = movedByReader ? floor - el.scrollTop <= 25 : atBottomRef.current; + if (!movedByReader && isAtBottom) { + toBottom(el); + return; + } + atBottomRef.current = isAtBottom; + setAtBottom(isAtBottom); + const position = isAtBottom ? null : scrollPosition(local, el); + if (isAtBottom) anchorRef.current = null; + else if (anchorRef.current !== null && position !== null) anchorRef.current = { + key: position.anchorKey, + top: position.anchorTop + }; + if (isAtBottom) chatScroll.save(null); + else if (position !== null) chatScroll.save(position); + observedTopRef.current = el.scrollTop; + }; + (0, react.useEffect)(() => { + const local = listRef.current; + /* v8 ignore next -- ref-null guard: effect runs after the list node commits. */ + if (local === null) return; + const el = scrollerOf(local); + const onScroll = () => { + onScrollRef.current(); + }; + el.addEventListener("scroll", onScroll, { passive: true }); + return () => { + el.removeEventListener("scroll", onScroll); + }; + }, []); + const followRef = (0, react.useRef)(null); + followRef.current = () => { + const local = listRef.current; + if (local !== null && atBottomRef.current) { + const el = scrollerOf(local); + el.scrollTop = el.scrollHeight; + observedTopRef.current = el.scrollTop; + chatScroll.save(null); + } + }; + (0, react.useEffect)(() => { + const column = columnRef.current; + const local = listRef.current; + if (column === null || local === null || typeof ResizeObserver === "undefined") return; + const composer = scrollerOf(local).querySelector("[data-composer-seat]"); + const observer = new ResizeObserver(() => { + followRef.current?.(); + }); + observer.observe(column); + if (composer !== null) observer.observe(composer); + return () => { + observer.disconnect(); + }; + }, []); + (0, react.useEffect)(() => { + if (!loadingOlder) anchorRef.current = null; + }, [loadingOlder]); + const loadOlderAnchored = () => { + const local = listRef.current; + /* v8 ignore next -- ref-null guard: the paging button renders inside the list tree. */ + if (local !== null) { + const el = scrollerOf(local); + const row = pagingAnchor(local, el); + if (row !== null && row.dataset.chatAnchorKey !== void 0) anchorRef.current = { + key: row.dataset.chatAnchorKey, + top: flowTop(row, el) + }; + } + loadOlder(); + }; + return (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.root, + children: (0, react_jsx_runtime.jsxs)("div", { + ref: listRef, + className: ChatView_module_css_default.scroll, + children: [(0, react_jsx_runtime.jsxs)("div", { + ref: columnRef, + className: ChatView_module_css_default.column, + "data-chat-flow": "", + children: [ + openState === "loading" && (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.hint, + children: t("chat.loadingHistory") + }), + openState === "error" && openError !== null && (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.openError, + children: t("chat.loadError", { + message: openError.message, + code: openError.code + }) + }), + hasMore && (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.older, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + disabled: loadingOlder, + onClick: loadOlderAnchored, + children: loadingOlder ? t("loading") : t("chat.loadOlder") + }) + }), + order.map((nodeKey) => (0, react_jsx_runtime.jsx)(ChatNodeSeat, { + nodeKey, + useSession, + selectedCallId, + cwd, + openFile, + inspectCall, + forkAt, + loadImage, + fileMentions, + renderSlot, + t + }, nodeKey)), + running && (0, react_jsx_runtime.jsx)(TurnStatus, { + startTime: runningTurnStart, + t + }), + pendingSteering.map((item) => (0, react_jsx_runtime.jsx)(PendingSteeringBubble, { + content: item.content, + loadImage, + t + }, item.id)) + ] + }), !atBottom && (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.toBottomSlot, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ChatView_module_css_default.toBottom, + "aria-label": t("chat.toBottom"), + onClick: () => { + const local = listRef.current; + /* v8 ignore next -- ref-null guard: the button only renders alongside the mounted list. */ + if (local !== null) toBottom(scrollerOf(local)); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) + }) + })] + }) + }); + } + //#endregion + //#region lib/types/client/contract/slots.js + /** + * Approval domain face over the carrier (the ui-user-questions PendingQuestion + * pattern): render identity and question material forwarded transparently; + * answer owns the wire encoding — the ApprovalResponsePayload value shape + * with the audit correlation the host reconciles — and turns a rejected + * carrier receipt into a thrown error. Minted per carrier via useMemo. + */ + var PendingApproval = class { + wait; + /** + * @param wait - the runtime carrier for one pending approval question. + */ + constructor(wait) { + this.wait = wait; + } + /** Opaque render identity (React key / one-shot latch remount axis), forwarded from the carrier. */ + get key() { + return this.wait.key; + } + /** The tool the question is about (headline fallback), forwarded from the carrier payload. */ + get toolName() { + return this.wait.payload.toolName; + } + /** The asker's human-readable WHY (headline when present), forwarded from the carrier payload. */ + get reason() { + return this.wait.payload.reason; + } + /** The paired tool call's id when the ask names one (command-line lookup key), forwarded from the carrier payload. */ + get callId() { + return this.wait.payload.callId; + } + /** + * Deliver the user's decision; a rejected carrier receipt throws. Panel + * removal stays frame-driven: the broadcast `approval/resolved` settles the + * wait and drops it from the pending list. + * @param outcome - the only two client-answerable outcomes. + */ + async answer(outcome) { + const receipt = await this.wait.respond({ + ok: true, + value: { + sessionId: this.wait.sessionId, + approvalId: this.wait.payload.approvalId, + outcome + } + }); + if (!receipt.accepted) throw new Error(`approval response rejected: ${receipt.reason}`); + } + }; + //#endregion + //#region lib/types/client/chat/tool-node-reader.js + function toolNode(node) { + return node?.kind === "tool-call" ? node : void 0; + } + /** + * Read one root Tool lifecycle through the internal Chat Node index. + * @param snapshot - current Conversation snapshot. + * @param rootCallId - root call identity and Tool Context identity. + * @returns root lifecycle when it is materialized in the current window. + */ + function rootToolCall(snapshot, rootCallId) { + return toolNode(snapshot.chat.nodes.get((0, _deepseek_ai_dsh_client_runtime_client.conversationContextKey)("tool-call", rootCallId)))?.data.root; + } + /** + * Find any root or nested Tool lifecycle through the internal Node store. + * @param snapshot - current Conversation snapshot. + * @param callId - root or nested call identity. + * @returns current Tool lifecycle when materialized in the loaded window. + */ + function findToolCall(snapshot, callId) { + const visit = (block) => { + if (block.callId === callId) return block; + for (const child of block.subCalls) { + const found = visit(child); + if (found !== void 0) return found; + } + }; + for (const node of snapshot.chat.nodes.values()) { + const root = toolNode(node)?.data.root; + if (root === void 0) continue; + const found = visit(root); + if (found !== void 0) return found; + } + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/ApprovalPanel.module.css.mjs + const css$10 = ".bqrRRG_root{padding:8px calc(var(--dsh-composer-side-clearance) + 16px) 12px;flex-direction:column;align-items:center;display:flex}.bqrRRG_card{width:100%;max-width:var(--dsh-chat-content-width);border:1px solid var(--dsw-alias-state-warn-secondary);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:20px;overflow:hidden}.bqrRRG_strip{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-primary);align-items:center;gap:8px;padding:10px 16px;font-size:13px;line-height:18px;display:flex}.bqrRRG_dot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;width:8px;height:8px}.bqrRRG_body{box-sizing:border-box;max-height:var(--dsh-composer-text-max-height);flex-direction:column;gap:6px;padding:12px 16px 0;display:flex;overflow-y:auto}.bqrRRG_headline{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:500;line-height:24px}.bqrRRG_command{color:var(--dsw-alias-label-tertiary);font-family:var(--ds-font-family-code);word-break:break-all;font-size:13px;line-height:20px}.bqrRRG_actionRow{justify-content:flex-end;gap:8px;padding:14px 16px;display:flex}.bqrRRG_reject:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);border-color:#0000}"; + const tagId$10 = "@deepseek-ai/dsh-client-ui-conversation/ApprovalPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$10; + tag.textContent = css$10; + document.head.appendChild(tag); + } + var ApprovalPanel_module_css_default = { + "card": "bqrRRG_card", + "command": "bqrRRG_command", + "actionRow": "bqrRRG_actionRow", + "root": "bqrRRG_root", + "body": "bqrRRG_body", + "headline": "bqrRRG_headline", + "reject": "bqrRRG_reject", + "dot": "bqrRRG_dot", + "strip": "bqrRRG_strip" + }; + //#endregion + //#region lib/types/client/skeleton/ApprovalPanel.js + /** Extract the shell command from an approval's paired running call (bash-family args carry `command`); undefined hides the line. */ + function commandOf(call) { + if (call === void 0) return void 0; + try { + const args = JSON.parse(call.argsRaw); + return typeof args.command === "string" ? args.command : void 0; + } catch { + return; + } + } + /** + * Composer takeover boundary: mints the domain face on the carrier's stable + * identity and remounts the flow per request key, so the one-shot answered + * latch never leaks to the next pending approval. + * @param props - the selector-matched pending approval carrier plus the framework standard kit. + * @returns The approval prompt for this request. + */ + function ApprovalPanel(props) { + const approval = (0, react.useMemo)(() => new PendingApproval(props.matched), [props.matched]); + const command = props.useSession((snapshot) => { + if (approval.callId === void 0) return void 0; + const root = rootToolCall(snapshot, approval.callId); + if (root === void 0) return void 0; + return root.callId === approval.callId && !("kind" in root) ? commandOf(root) : void 0; + }); + return (0, react_jsx_runtime.jsx)(ApprovalFlow, { + pending: approval, + t: props.t, + ...command === void 0 ? {} : { command } + }, approval.key); + } + function ApprovalFlow({ pending, command, t }) { + const [answered, setAnswered] = (0, react.useState)(false); + const answer = (outcome) => { + setAnswered(true); + pending.answer(outcome).catch(() => { + setAnswered(false); + }); + }; + return (0, react_jsx_runtime.jsx)("div", { + className: ApprovalPanel_module_css_default.root, + "data-approval-key": pending.key, + children: (0, react_jsx_runtime.jsxs)("div", { + className: ApprovalPanel_module_css_default.card, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: ApprovalPanel_module_css_default.strip, + children: [(0, react_jsx_runtime.jsx)("span", { className: ApprovalPanel_module_css_default.dot }), t("approval.waiting")] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ApprovalPanel_module_css_default.body, + "data-approval-scroll": "", + tabIndex: 0, + role: "group", + "aria-label": t("approval.detail.aria"), + children: [(0, react_jsx_runtime.jsx)("div", { + className: ApprovalPanel_module_css_default.headline, + children: pending.reason ?? t("approval.escalation", { toolName: pending.toolName }) + }), command !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: ApprovalPanel_module_css_default.command, + children: command + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: ApprovalPanel_module_css_default.actionRow, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + className: ApprovalPanel_module_css_default.reject, + disabled: answered, + onClick: () => { + answer("rejected"); + }, + children: t("approval.reject") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + disabled: answered, + onClick: () => { + answer("allowed-once"); + }, + children: t("approval.allowOnce") + })] + }) + ] + }) + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `conversation` namespace dictionaries. */ + /** Dictionary namespace owned by this plugin. */ + const NS = "conversation"; + const PLAN_NEXT_ACTION_ZH = "�述你的任务以生�计划"; + const PLAN_NEXT_ACTION_EN = "describe your task to generate plan"; + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "view.chat": "对�", + "hint.plan": PLAN_NEXT_ACTION_ZH, + "hint.goal": "输入目标,智能体将�续执行", + "hint.goal.active": "当�目标进行中。�输入 edit 修改 / pause 暂� / resume 继续 / clear 清除", + "placeholder.plan": PLAN_NEXT_ACTION_ZH, + "placeholder.default": "给智能体�消�", + "placeholder.unavailable": "会���用", + "placeholder.parentOffline": "父会�已离线,无法继续��;���止当��行", + "placeholder.hero": "�述你想�构建的内容", + "placeholder.workspace": "选择一个工作区开始", + "input.commands": "命令", + "input.stop": "�止生�", + "input.send": "��消�", + "placeholder.steerQueue": "Cmd/Ctrl+Enter ����全部排队消�", + "input.accessMode": "访问模�,当�:{name}", + "image.dropTitle": "图片拖动到此处��添加", + "image.dropDesc": "最多 {count} 张,�张 {size}", + "image.dropBlocked": "当�无法添加图片", + "image.pending": "待��图片", + "image.openOriginal": "查看原图", + "image.openOriginalLabel": "{label},点击查看原图", + "image.remove": "移除图片 {name}", + "image.scrollLeft": "�左滚动图片", + "image.scrollRight": "��滚动图片", + "image.original": "原图", + "image.label": "图片", + "image.loadFailed": "图片加载失败,点击�试", + "image.loading": "图片加载中…", + "image.preview": "原图预览", + "image.closePreview": "关闭原图预览", + "image.serviceUnavailable": "图片读��务��用", + "image.unsupportedType": "仅支� PNG�JPG�WebP�GIF 格�的图片", + "image.tooMany": "一�消�最多添加 {count} 张图片", + "image.fileTooLarge": "�张图片�能超过 {size}", + "image.totalTooLarge": "图片总大�超过 {size},请移除部分图片", + "image.tooManyPixels": "图片分辨率过大,请压缩��试", + "image.modelUnsupported": "当�模型�支�图片,请切�支�图片的模型", + "image.subagentUnsupported": "�智能体会�暂�支�图片", + "image.sendFailed": "图片��失败({reason}),请�新添加图片��试", + "context.aria": "上下文已用 {percent}", + "context.used": "上下文已用", + "context.system": "系统�示�", + "context.tools": "工具", + "context.messages": "对�消�", + "stats.counts": "{turns} 轮 · {steps} 步", + "stats.llm": "LLM {duration}", + "stats.toolCall": "工具调用 {duration}", + "stats.ttftAverage": "首 token 平� {duration}", + "stats.tokensPerSecond": "{throughput} tok/s", + "stats.cacheHit": "缓存命中 {percent}%", + "stats.tokens": "输入 {input} tok · 输出 {output} tok", + "settings.enter.title": "�忙时 Enter 键行为", + "settings.enter.description": "仅在智能体�行时生效;Cmd/Ctrl+Enter 使用�一行为", + "settings.enter.queue": "排队��", + "settings.enter.steer": "����", + "access.confirm.title": "确认�用 Full access?", + "access.confirm.description": "�用 Full access �,agent 将�少确认步骤,并且�以直接执行更多�作,包括�感�作�文件修改或外部命令。仅建议在你信任当�任务时使用。", + "access.confirm.acknowledge": "我已了解风险,并愿�继续", + "access.confirm.cancel": "�消", + "access.confirm.enable": "�用 Full access", + "hero.headline": "探索未至之境", + "hero.preview": "预览版", + "hero.chooseWorkspace": "选择工作区", + "session.hierarchy": "会�层级", + "details.title": "详情", + "details.close": "关闭详情", + "details.empty": "点击消��中的工具行查看详情", + "details.notInWindow": "该调用�在当�窗�内", + "details.input": "输入", + "details.output": "输出", + "details.running": "�行中…", + "todo.title": "任务", + "todo.progress.done": "{done} 已完�", + "todo.progress.active": "{active} 进行中", + "todo.progress.pending": "{pending} 待处�", + "todo.rowTitle": "更新任务清�", + "todo.completed": "{done}/{total} 已完�", + "chat.loadingHistory": "载入历�…", + "chat.loadError": "历�加载失败:{message}({code})", + "chat.loadOlder": "加载更早", + "chat.toBottom": "回到底部", + "message.extraBlock": "附加内容�", + "message.contextInjection": "上下文注入", + "message.contextRecall": "跨会��回", + "message.context.instructions.loaded": "已载入", + "message.context.instructions.added": "已新增", + "message.context.instructions.updated": "已更新", + "message.context.instructions.removed": "已移除", + "message.context.catalog.replaced": "替�目录", + "message.context.catalog.more": "…还有 {count} �", + "message.context.snapshot.supersedes": "�代先�的快照", + "message.context.relay.from": "�自会� {session}", + "message.context.recall.counts": "�留 {retained} � · �略 {omitted} �", + "message.context.recall.truncated": "已截断", + "message.compaction": "上下文已压缩", + "message.compaction.running": "正在压缩…", + "message.compaction.completed": "已压缩 {items} �历�记录(约 {tokens} tokens)", + "message.compaction.expand": "点击查看压缩摘�", + "message.compaction.unavailable": "压缩摘���用", + "message.unknownSurface": "未知 surface 事件:{type}", + "message.unknownBlock": "未知内容�", + "message.stopped": "已�止", + "message.branch": "在新对�中分支", + "message.branchUnavailable": "仅�从已完�轮次的最�一�消�分支", + "message.retry.active": "正在�试模型请求", + "message.retry.cancelled": "模型请求�试已�消", + "message.retry.started": "已�试模型请求", + "message.retry.scheduled": "等待�试模型请求", + "message.retry.status": "{label}({retry}/{maximum}) · {seconds}s", + "message.retry.delay": "�试延迟:", + "message.retry.failure": "失败原因:", + "message.turnError": "本轮�行失败", + "message.maxTokens": "已达到输出 token 上�", + "message.maxTokens.hint": "回答被截断,已有输出�留在对�中。��“继续��让模型接�输出。", + "message.ranFor": "用时 {duration}", + "message.ttft": "首 token {seconds}秒", + "message.tokensPerSecond": "{tps} tok/s", + "duration.seconds": "{seconds}秒", + "duration.minutes": "{minutes}分{seconds}秒", + "command.running": "执行中…", + "command.failed": "命令失败", + "command.done": "已完�", + "command.title": "命令", + "approval.waiting": "等待审批", + "approval.detail.aria": "审批详情", + "approval.escalation": "工具 {toolName} 请求越�执行", + "approval.reject": "拒�", + "approval.allowOnce": "�许一次", + "ask.rowTitle": "�问", + "ask.waiting": "等待回答", + "ask.cancelled": "已�消", + "ask.interrupted": "已中断", + "ask.answered": "{answered}/{total} 已回答", + "bash.running": "�行中", + "bash.failed": "失败", + "bash.stopped": "已�止", + "row.running": "�行中", + "row.failed": "失败", + "row.stopped": "已�止", + "queue.count": "{n} �排队消�", + "queue.edit": "编辑排队消�", + "queue.edit.unsupported": "包��文本内容,暂�支�编辑", + "queue.save": "�存排队消�", + "queue.cancelEdit": "�消编辑", + "queue.remove": "删除排队消�", + "queue.steer": "����", + "queue.steer.unavailable": "仅�行中�����", + "queue.editFailed": "编辑失败:这�消��能已�开始��。", + "queue.removeFailed": "删除失败:这�消��能已�开始��。", + "queue.steerFailed": "����失败,请�试。", + "terminal.signal": "信� {signal}", + "terminal.exitCode": "退出� {code}", + "terminal.running": "�行中", + "terminal.failed": "失败", + "terminal.done": "已完�", + "terminal.noOutput": "无输出", + "terminal.collapseAria": "收起输出", + "terminal.expandAria": "展开其余 {n} 行输出", + "terminal.expandRest": "… 其余 {n} 行", + "json.truncated": "… 已截断,共 {total} 字符", + "clock.md": "{m}月{d}日", + "clock.ymd": "{y}年{m}月{d}日" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "view.chat": "Chat", + "hint.plan": PLAN_NEXT_ACTION_EN, + "hint.goal": "describe the objective for a long-running task", + "hint.goal.active": "goal active — edit / pause / resume / clear", + "placeholder.plan": PLAN_NEXT_ACTION_EN, + "placeholder.default": "Message the agent", + "placeholder.unavailable": "Session unavailable", + "placeholder.parentOffline": "Parent session offline; sending is unavailable but you can still stop the run", + "placeholder.hero": "Describe what you want to build", + "placeholder.workspace": "Choose a workspace to start", + "input.commands": "Commands", + "input.stop": "Stop generating", + "input.send": "Send message", + "placeholder.steerQueue": "Cmd/Ctrl+Enter steers all queued messages", + "input.accessMode": "Access mode, current: {name}", + "image.dropTitle": "Drag images here to add them", + "image.dropDesc": "Up to {count} images, {size} each", + "image.dropBlocked": "Images cannot be added right now", + "image.pending": "Pending images", + "image.openOriginal": "View original", + "image.openOriginalLabel": "{label}, click to view original", + "image.remove": "Remove image {name}", + "image.scrollLeft": "Scroll images left", + "image.scrollRight": "Scroll images right", + "image.original": "Original image", + "image.label": "Image", + "image.loadFailed": "Image failed to load; click to retry", + "image.loading": "Loading image…", + "image.preview": "Original image preview", + "image.closePreview": "Close original image preview", + "image.serviceUnavailable": "Image loading service unavailable", + "image.unsupportedType": "Only PNG, JPG, WebP, and GIF images are supported", + "image.tooMany": "A message can include up to {count} images", + "image.fileTooLarge": "Each image must be smaller than {size}", + "image.totalTooLarge": "Images exceed {size} in total; remove some and try again", + "image.tooManyPixels": "Image resolution is too high; compress it and try again", + "image.modelUnsupported": "The current model does not support images; switch to a model that does", + "image.subagentUnsupported": "Subagent sessions do not support images yet", + "image.sendFailed": "Sending images failed ({reason}); re-add them and try again", + "context.aria": "{percent} of context used", + "context.used": "of context used", + "context.system": "System prompt", + "context.tools": "Tools", + "context.messages": "Messages", + "stats.counts": "{turns} turns · {steps} steps", + "stats.llm": "LLM {duration}", + "stats.toolCall": "Tool call {duration}", + "stats.ttftAverage": "TTFT avg {duration}", + "stats.tokensPerSecond": "{throughput} tok/s", + "stats.cacheHit": "Cache hit {percent}%", + "stats.tokens": "Input {input} tok · Output {output} tok", + "settings.enter.title": "Enter behavior while busy", + "settings.enter.description": "Busy only; Cmd/Ctrl+Enter uses the other behavior", + "settings.enter.queue": "Queue", + "settings.enter.steer": "Steer", + "access.confirm.title": "Enable Full access?", + "access.confirm.description": "Full access reduces confirmation steps and lets the agent perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust the current task.", + "access.confirm.acknowledge": "I understand the risks and want to continue", + "access.confirm.cancel": "Cancel", + "access.confirm.enable": "Enable Full access", + "hero.headline": "Into the Unknown", + "hero.preview": "Preview", + "hero.chooseWorkspace": "Choose workspace", + "session.hierarchy": "Session hierarchy", + "details.title": "Details", + "details.close": "Close details", + "details.empty": "Click a tool row in the message flow to view its details", + "details.notInWindow": "This call is outside the current window", + "details.input": "Input", + "details.output": "Output", + "details.running": "Running…", + "todo.title": "To-dos", + "todo.progress.done": "{done} completed", + "todo.progress.active": "{active} in progress", + "todo.progress.pending": "{pending} pending", + "todo.rowTitle": "Update to-do list", + "todo.completed": "{done}/{total} completed", + "chat.loadingHistory": "Loading history…", + "chat.loadError": "Failed to load history: {message} ({code})", + "chat.loadOlder": "Load earlier", + "chat.toBottom": "Back to bottom", + "message.extraBlock": "Extra content block", + "message.contextInjection": "Context injection", + "message.contextRecall": "Session recall", + "message.context.instructions.loaded": "loaded", + "message.context.instructions.added": "added", + "message.context.instructions.updated": "updated", + "message.context.instructions.removed": "removed", + "message.context.catalog.replaced": "Replacement catalog", + "message.context.catalog.more": "… {count} more", + "message.context.snapshot.supersedes": "Supersedes earlier snapshots", + "message.context.relay.from": "From session {session}", + "message.context.recall.counts": "{retained} kept · {omitted} omitted", + "message.context.recall.truncated": "truncated", + "message.compaction": "Context compacted", + "message.compaction.running": "Compacting context…", + "message.compaction.completed": "Compacted {items} history items (~{tokens} tokens)", + "message.compaction.expand": "View compaction summary", + "message.compaction.unavailable": "Compaction summary unavailable", + "message.unknownSurface": "Unknown surface event: {type}", + "message.unknownBlock": "Unknown content block", + "message.stopped": "Stopped", + "message.branch": "Branch into a new conversation", + "message.branchUnavailable": "Available only on the last message of a completed turn", + "message.retry.active": "Retrying model request", + "message.retry.cancelled": "Model request retry cancelled", + "message.retry.started": "Retried model request", + "message.retry.scheduled": "Waiting to retry model request", + "message.retry.status": "{label} ({retry}/{maximum}) · {seconds}s", + "message.retry.delay": "Retry delay: ", + "message.retry.failure": "Failure reason: ", + "message.turnError": "This turn failed", + "message.maxTokens": "Output token limit reached", + "message.maxTokens.hint": "The reply was cut off; earlier output is preserved in the conversation. Send \"continue\" to let the model resume.", + "message.ranFor": "Ran for {duration}", + "message.ttft": "TTFT {seconds}s", + "message.tokensPerSecond": "{tps} tok/s", + "duration.seconds": "{seconds}s", + "duration.minutes": "{minutes}m {seconds}s", + "command.running": "Running…", + "command.failed": "Command failed", + "command.done": "Completed", + "command.title": "Command", + "approval.waiting": "Waiting for approval", + "approval.detail.aria": "Approval details", + "approval.escalation": "Tool {toolName} requests privileged execution", + "approval.reject": "Reject", + "approval.allowOnce": "Allow once", + "ask.rowTitle": "Ask question", + "ask.waiting": "waiting", + "ask.cancelled": "cancelled", + "ask.interrupted": "interrupted", + "ask.answered": "{answered}/{total} answered", + "bash.running": "Running", + "bash.failed": "Failed", + "bash.stopped": "Stopped", + "row.running": "Running", + "row.failed": "Failed", + "row.stopped": "Stopped", + "queue.count": "{n} queued messages", + "queue.edit": "Edit queued message", + "queue.edit.unsupported": "Contains non-text content; editing is not supported yet", + "queue.save": "Save queued message", + "queue.cancelEdit": "Cancel editing", + "queue.remove": "Remove queued message", + "queue.steer": "Steer queued message", + "queue.steer.unavailable": "Steering is available only while the agent is running", + "queue.editFailed": "Edit failed: this message may have already started sending.", + "queue.removeFailed": "Removal failed: this message may have already started sending.", + "queue.steerFailed": "Steering failed. Try again.", + "terminal.signal": "signal {signal}", + "terminal.exitCode": "exit code {code}", + "terminal.running": "Running", + "terminal.failed": "Failed", + "terminal.done": "Done", + "terminal.noOutput": "No output", + "terminal.collapseAria": "Collapse output", + "terminal.expandAria": "Expand the remaining {n} output lines", + "terminal.expandRest": "… {n} more lines", + "json.truncated": "… truncated, {total} characters total", + "clock.md": "{m}/{d}", + "clock.ymd": "{y}-{m}-{d}" + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/TodoPanel.module.css.mjs + const css$9 = ".lXshSW_root{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-specific-tip);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex:none;margin:0 auto;overflow:hidden}.lXshSW_body{flex-direction:column;gap:8px;padding:6px 12px;display:flex}.lXshSW_header{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:0;display:flex}.lXshSW_lead{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}.lXshSW_title{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}.lXshSW_progress{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;font-weight:400;line-height:20px;overflow:hidden}.lXshSW_chevron{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}.lXshSW_list{flex-direction:column;gap:8px;max-height:180px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.lXshSW_item{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;font-size:13px;line-height:20px;display:flex}.lXshSW_glyph{flex:none;place-items:center;width:16px;height:16px;display:grid}.lXshSW_glyphCompleted{color:var(--dsw-alias-state-success-primary)}.lXshSW_glyphPending{color:var(--dsw-alias-label-caption)}.lXshSW_glyphProgress{color:var(--dsw-alias-state-business-primary);animation:1s linear infinite lXshSW_todo-progress-spin}@keyframes lXshSW_todo-progress-spin{to{transform:rotate(360deg)}}.lXshSW_content{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}"; + const tagId$9 = "@deepseek-ai/dsh-client-ui-conversation/TodoPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$9; + tag.textContent = css$9; + document.head.appendChild(tag); + } + var TodoPanel_module_css_default = { + "glyph": "lXshSW_glyph", + "glyphCompleted": "lXshSW_glyphCompleted", + "item": "lXshSW_item", + "title": "lXshSW_title", + "glyphProgress": "lXshSW_glyphProgress", + "glyphPending": "lXshSW_glyphPending", + "chevron": "lXshSW_chevron", + "todo-progress-spin": "lXshSW_todo-progress-spin", + "root": "lXshSW_root", + "header": "lXshSW_header", + "body": "lXshSW_body", + "lead": "lXshSW_lead", + "list": "lXshSW_list", + "progress": "lXshSW_progress", + "content": "lXshSW_content" + }; + //#endregion + //#region lib/types/client/skeleton/TodoPanel.js + /** Local exhaustiveness helper — client packages do not depend on `dsh-llm`. */ + /* v8 ignore next 3 -- closed-union backstop; only reached if status is forged */ + function assertNever(value) { + throw new Error(`unreachable todo status: ${String(value)}`); + } + /** Status glyphs share the figma 14×14 artboard; the 16×16 `.glyph` cell centers them. */ + function CompletedGlyph() { + return (0, react_jsx_runtime.jsxs)("svg", { + width: 14, + height: 14, + viewBox: "0 0 14 14", + fill: "none", + "aria-hidden": "true", + className: TodoPanel_module_css_default.glyphCompleted, + children: [(0, react_jsx_runtime.jsx)("circle", { + cx: "7", + cy: "7", + r: "6.4", + stroke: "currentColor", + strokeWidth: "1.2" + }), (0, react_jsx_runtime.jsx)("path", { + d: "M10.9631 5.71411L7.70154 8.97571C7.48011 9.19714 7.27736 9.40099 7.09229 9.54993C6.89742 9.70669 6.66314 9.85279 6.3634 9.90027C6.2049 9.92534 6.04339 9.92534 5.88489 9.90027C5.58515 9.85279 5.35087 9.70669 5.15601 9.54993C4.97093 9.40099 4.76818 9.19714 4.54675 8.97571L3.03516 7.46411L3.96313 6.53613L5.47473 8.04773C5.7169 8.28989 5.86196 8.43389 5.97888 8.52795C6.08597 8.61409 6.10875 8.60701 6.08997 8.604C6.11259 8.60758 6.13571 8.60758 6.15833 8.604C6.13954 8.60701 6.16232 8.61409 6.26941 8.52795C6.38633 8.43389 6.53139 8.28989 6.77356 8.04773L10.0352 4.78613L10.9631 5.71411Z", + fill: "currentColor" + })] + }); + } + /** In-progress: business-blue ring fading out; CSS spins the svg. */ + function ProgressGlyph() { + const gradientId = (0, react.useId)(); + return (0, react_jsx_runtime.jsxs)("svg", { + width: 14, + height: 14, + viewBox: "0 0 14 14", + fill: "none", + "aria-hidden": "true", + className: TodoPanel_module_css_default.glyphProgress, + children: [(0, react_jsx_runtime.jsx)("defs", { children: (0, react_jsx_runtime.jsxs)("linearGradient", { + id: gradientId, + x1: "2.5", + y1: "12", + x2: "10.5", + y2: "3.5", + gradientUnits: "userSpaceOnUse", + children: [(0, react_jsx_runtime.jsx)("stop", { stopColor: "currentColor" }), (0, react_jsx_runtime.jsx)("stop", { + offset: "1", + stopColor: "currentColor", + stopOpacity: "0" + })] + }) }), (0, react_jsx_runtime.jsx)("circle", { + cx: "7", + cy: "7", + r: "6.4", + stroke: `url(#${gradientId})`, + strokeWidth: "1.2" + })] + }); + } + /** Pending: dashed unstarted ring (figma dash 2.4 2.4). */ + function PendingGlyph() { + return (0, react_jsx_runtime.jsx)("svg", { + width: 14, + height: 14, + viewBox: "0 0 14 14", + fill: "none", + "aria-hidden": "true", + className: TodoPanel_module_css_default.glyphPending, + children: (0, react_jsx_runtime.jsx)("circle", { + cx: "7", + cy: "7", + r: "6.4", + stroke: "currentColor", + strokeWidth: "1.2", + strokeDasharray: "2.4 2.4" + }) + }); + } + function StatusGlyph({ status }) { + switch (status) { + case "completed": return (0, react_jsx_runtime.jsx)(CompletedGlyph, {}); + case "in_progress": return (0, react_jsx_runtime.jsx)(ProgressGlyph, {}); + case "pending": return (0, react_jsx_runtime.jsx)(PendingGlyph, {}); + /* v8 ignore next -- closed TodoItem status union */ + default: return assertNever(status); + } + } + /** Header summary: "·"-joined per-status counts; zero-count segments are omitted as noise (a non-empty list keeps at least one). */ + function progressLabel(todos, t) { + const done = todos.filter((item) => item.status === "completed").length; + const active = todos.filter((item) => item.status === "in_progress").length; + const pending = todos.length - done - active; + return [ + ...done > 0 ? [t("todo.progress.done", { done })] : [], + ...active > 0 ? [t("todo.progress.active", { active })] : [], + ...pending > 0 ? [t("todo.progress.pending", { pending })] : [] + ].join(" · "); + } + function TodoPanel({ todos, t }) { + const [collapsed, setCollapsed] = (0, react.useState)(true); + if (todos.length === 0) return null; + return (0, react_jsx_runtime.jsx)("section", { + className: TodoPanel_module_css_default.root, + "data-testid": "todo-panel", + "aria-label": t("todo.title"), + children: (0, react_jsx_runtime.jsxs)("div", { + className: TodoPanel_module_css_default.body, + children: [(0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TodoPanel_module_css_default.header, + "aria-expanded": !collapsed, + onClick: () => { + setCollapsed((v) => !v); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.lead, + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChecklistOutline14, {}) + }), + (0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.title, + children: t("todo.title") + }), + (0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.progress, + children: progressLabel(todos, t) + }), + (0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.chevron, + "aria-hidden": true, + children: collapsed ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronUpOutline14, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) + }) + ] + }), !collapsed && (0, react_jsx_runtime.jsx)("ul", { + className: TodoPanel_module_css_default.list, + children: todos.map((item) => (0, react_jsx_runtime.jsxs)("li", { + className: TodoPanel_module_css_default.item, + "data-status": item.status, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.glyph, + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)(StatusGlyph, { status: item.status }) + }), (0, react_jsx_runtime.jsx)("span", { + className: TodoPanel_module_css_default.content, + children: item.content + })] + }, item.content)) + })] + }) + }); + } + /** Dock adapter: reads the host-computed 'todos' projection (whole list; absent or null renders nothing). */ + function TodoDock({ useProjection, t }) { + return (0, react_jsx_runtime.jsx)(TodoPanel, { + todos: useProjection("todos") ?? [], + t + }); + } + /** + * The plan strip as a plain registrant plugin (QueueDock posture), following + * the input-dock declaration across independent activation and reload. + */ + const todoDockEntry = { + name: "conversation-todo-dock", + inject: ["slots"], + /** + * Register the plan strip before the goal and queue entries (order 0). + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("conversation.input.dock", () => ctx.slots.register({ + name: "conversation.input.dock", + id: "todo", + order: 0, + locale: NS + }, TodoDock)); + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/queue/QueueDock.module.css.mjs + const css$8 = "._7yHdaG_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto calc(0px - var(--dsh-composer-stack-gap) - 3px);padding:0 var(--dsh-composer-dock-inset);flex:none}._7yHdaG_panel{background:var(--dsw-specific-tip);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px 12px 0 0;width:100%;padding:2px 0;position:relative;overflow:hidden}._7yHdaG_panel:after{border:1px solid var(--dsw-alias-border-l1);border-radius:inherit;content:\"\";pointer-events:none;border-bottom:none;position:absolute;inset:0}._7yHdaG_header{box-sizing:border-box;width:100%;height:36px;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:4px 12px;display:flex}._7yHdaG_header:focus-visible{outline:2px solid var(--dsw-alias-label-tertiary);outline-offset:-2px}._7yHdaG_header:disabled{cursor:default}._7yHdaG_lead{color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}._7yHdaG_count{min-width:0;font-family:Inter, var(--dsw-font-family);flex:auto;font-size:13px;font-weight:500;line-height:24px}._7yHdaG_chevron{width:14px;height:14px;color:var(--dsw-alias-label-tertiary);flex:none;place-items:center;display:grid}._7yHdaG_list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}._7yHdaG_row{box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;width:100%;height:36px;padding:4px 5px 4px 12px;display:flex}._7yHdaG_row+._7yHdaG_row{box-shadow:inset 0 1px 0 var(--dsw-alias-border-l1)}._7yHdaG_preview,._7yHdaG_editor{min-width:0;font:var(--dsw-font-xs-13);font-family:Inter, var(--dsw-font-family);flex:auto}._7yHdaG_preview{color:var(--dsw-alias-label-primary-dimmed);text-overflow:ellipsis;white-space:nowrap;word-break:break-word;overflow:hidden}._7yHdaG_editor{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);height:28px;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;padding:0 8px}._7yHdaG_editor:focus{border-color:var(--dsw-alias-state-business-primary)}._7yHdaG_actions{flex:none;align-items:center;gap:10px;display:flex}._7yHdaG_action{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}._7yHdaG_action:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._7yHdaG_action:focus-visible{outline:2px solid var(--dsw-alias-label-tertiary);outline-offset:-2px}._7yHdaG_action:disabled{cursor:default;opacity:.45}"; + const tagId$8 = "@deepseek-ai/dsh-client-ui-conversation/QueueDock.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$8; + tag.textContent = css$8; + document.head.appendChild(tag); + } + var QueueDock_module_css_default = { + "dock": "_7yHdaG_dock", + "list": "_7yHdaG_list", + "panel": "_7yHdaG_panel", + "row": "_7yHdaG_row", + "header": "_7yHdaG_header", + "count": "_7yHdaG_count", + "preview": "_7yHdaG_preview", + "actions": "_7yHdaG_actions", + "action": "_7yHdaG_action", + "lead": "_7yHdaG_lead", + "editor": "_7yHdaG_editor", + "chevron": "_7yHdaG_chevron" + }; + //#endregion + //#region lib/types/client/queue/QueueDock.js + /** + * Queue strip: one item renders directly; multiple items default to a + * collapsible count header; an empty queue renders nothing. + */ + function QueueDock({ useSession, updateQueue, notify, t }) { + const inbox = useSession((s) => s.queue); + const queue = (0, react.useMemo)(() => inbox.filter((row) => row.placement === "queued"), [inbox]); + const running = useSession((s) => s.running); + const queueMutable = useSession((s) => s.subagent === null); + const [editing, setEditing] = (0, react.useState)(null); + const [busy, setBusy] = (0, react.useState)(null); + const [collapsed, setCollapsed] = (0, react.useState)(true); + const listId = (0, react.useId)(); + (0, react.useEffect)(() => { + if (queue.length === 0 && !collapsed) setCollapsed(true); + if (editing !== null && (!queueMutable || !queue.some((row) => row.id === editing.id))) setEditing(null); + }, [ + collapsed, + editing, + queue, + queueMutable + ]); + if (queue.length === 0) return null; + const interactionActive = queueMutable && (editing !== null || busy !== null); + const expanded = !collapsed || interactionActive; + const listVisible = queue.length === 1 || expanded; + const applyAction = async (itemId, action, failure) => { + setBusy(itemId); + try { + await updateQueue(itemId, action); + return true; + } catch { + notify("error", failure); + return false; + } finally { + setBusy((current) => current === itemId ? null : current); + } + }; + const saveEdit = async () => { + if (editing === null || editing.text.trim() === "") return; + if (await applyAction(editing.id, { + kind: "edit", + content: [{ + type: "text", + text: editing.text + }] + }, t("queue.editFailed"))) setEditing(null); + }; + return (0, react_jsx_runtime.jsx)("div", { + className: QueueDock_module_css_default.dock, + "data-queue-dock": "", + children: (0, react_jsx_runtime.jsxs)("div", { + className: QueueDock_module_css_default.panel, + children: [queue.length > 1 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: QueueDock_module_css_default.header, + "aria-controls": listId, + "aria-expanded": expanded, + disabled: interactionActive, + onClick: () => { + setCollapsed((value) => !value); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: QueueDock_module_css_default.lead, + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconQueueOutline14, {}) + }), + (0, react_jsx_runtime.jsx)("span", { + className: QueueDock_module_css_default.count, + children: t("queue.count", { n: queue.length }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: QueueDock_module_css_default.chevron, + "aria-hidden": true, + children: expanded ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronUpOutline14, {}) + }) + ] + }), (0, react_jsx_runtime.jsx)("ul", { + id: listId, + className: QueueDock_module_css_default.list, + hidden: !listVisible, + children: listVisible && queue.map((row) => (0, react_jsx_runtime.jsxs)("li", { + className: QueueDock_module_css_default.row, + children: [ + queue.length === 1 && (0, react_jsx_runtime.jsx)("span", { + className: QueueDock_module_css_default.lead, + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconQueueOutline14, {}) + }), + editing?.id === row.id ? (0, react_jsx_runtime.jsx)("input", { + autoFocus: true, + className: QueueDock_module_css_default.editor, + "aria-label": t("queue.edit"), + value: editing.text, + onChange: (event) => { + setEditing({ + id: row.id, + text: event.currentTarget.value + }); + }, + onKeyDown: (event) => { + if (event.key === "Escape") { + setEditing(null); + return; + } + if (event.key === "Enter" && !event.nativeEvent.isComposing) { + event.preventDefault(); + saveEdit(); + } + } + }) : (0, react_jsx_runtime.jsx)("span", { + className: QueueDock_module_css_default.preview, + children: row.preview + }), + queueMutable && (0, react_jsx_runtime.jsx)("div", { + className: QueueDock_module_css_default.actions, + children: editing?.id === row.id ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("queue.save"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QueueDock_module_css_default.action, + "aria-label": t("queue.save"), + disabled: busy !== null || editing.text.trim() === "", + onClick: () => { + saveEdit(); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) + }) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("queue.cancelEdit"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QueueDock_module_css_default.action, + "aria-label": t("queue.cancelEdit"), + disabled: busy !== null, + onClick: () => { + setEditing(null); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 }) + }) + })] }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("queue.edit"), + side: "bottom", + delayMs: 500, + disabled: row.text === null, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QueueDock_module_css_default.action, + "aria-label": t("queue.edit"), + title: row.text === null ? t("queue.edit.unsupported") : void 0, + disabled: busy !== null || row.text === null, + onClick: () => { + if (row.text !== null) setEditing({ + id: row.id, + text: row.text + }); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("queue.remove"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QueueDock_module_css_default.action, + "aria-label": t("queue.remove"), + disabled: busy !== null, + onClick: () => { + applyAction(row.id, { kind: "remove" }, t("queue.removeFailed")); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 14 }) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("queue.steer"), + side: "bottom", + delayMs: 500, + disabled: !running, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QueueDock_module_css_default.action, + "aria-label": t("queue.steer"), + title: running ? void 0 : t("queue.steer.unavailable"), + disabled: busy !== null || !running, + onClick: () => { + applyAction(row.id, { kind: "steer" }, t("queue.steerFailed")); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSendOutline14, {}) + }) + }) + ] }) + }) + ] + }, row.id)) + })] + }) + }); + } + /** + * The dock entry as a plain registrant plugin. The conversation service is + * the action contract; the slot declaration has an independent lifecycle boundary. + */ + const queueDockEntry = { + name: "conversation-queue-dock", + inject: [ + "slots", + "conversation", + "sessions" + ], + /** + * Register the queue strip as the terminal input-dock entry (order 20). + * @param ctx - registrant context (disposal rides ctx.effect inside slots.register). + */ + apply(ctx) { + ctx.slots.inject("conversation.input.dock", () => ctx.slots.register({ + name: "conversation.input.dock", + id: "queue", + order: 20, + locale: NS, + inject: (sessionId) => { + const actx = ctx.sessions.scope(sessionId); + if (actx === void 0) throw new Error(`queue dock: session "${sessionId}" resolved no scope`); + const conversation = actx.get("conversation"); + if (conversation === void 0) throw new Error("queue dock: conversation service unavailable"); + return { + updateQueue: (itemId, action) => conversation.updateQueue(itemId, action), + notify: (level, text) => { + conversation.input.for(actx).notify(level, text); + } + }; + } + }, QueueDock)); + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/HeroShell.module.css.mjs + const css$7 = ".pXSMma_root{justify-content:center;align-items:center;min-width:0;height:100%;padding:0 24px;display:flex}.pXSMma_stack{width:100%;max-width:var(--dsh-composer-card-max-width);flex-direction:column;align-items:stretch;gap:12px;display:flex;overflow:visible}.pXSMma_headline{color:var(--dsw-alias-label-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.pXSMma_headlineText{grid-area:1/2}.pXSMma_previewBadge{border:1px solid var(--dsw-alias-interactive-bg-hover);background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-label-primary-bluish);font-family:var(--ds-font-family-code);white-space:nowrap;border-radius:24px;grid-area:1/3;align-self:start;margin-top:2px;margin-left:-3px;padding:1px 7px 0;font-size:12px;font-weight:500;line-height:18px}.pXSMma_fishHitbox{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.pXSMma_fish{color:var(--dsw-alias-label-primary);transform-origin:50% 60%}@keyframes pXSMma_hero-fish-swim{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-1px,-1px)rotate(-5deg)}70%{transform:translate(1px)rotate(3deg)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.pXSMma_fishHitbox:hover .pXSMma_fish{animation:pXSMma_hero-fish-swim var(--ds-transition-duration-slow) var(--ds-ease-in-out)}}.pXSMma_body{flex-direction:column;gap:12px;min-width:0;display:flex;position:relative;overflow:visible}.pXSMma_body>*{z-index:1;position:relative}.pXSMma_body>.pXSMma_workspaceRow{z-index:10;align-items:center;min-width:0;padding-left:8px;display:flex}.pXSMma_workspace{max-width:min(100%,360px);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.pXSMma_workspace:not(:disabled):hover,.pXSMma_workspace[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.pXSMma_workspace:disabled{cursor:default}.pXSMma_folder{color:var(--dsw-alias-label-primary);flex:none}.pXSMma_workspaceLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pXSMma_chevron{color:var(--dsw-alias-label-caption);flex:none}.pXSMma_modalInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.pXSMma_modalInput::placeholder{color:var(--dsw-alias-label-caption)}.pXSMma_modalInput:disabled{color:var(--dsw-alias-label-dimmed)}.pXSMma_modalAction{min-width:72px}.pXSMma_modalError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}"; + const tagId$7 = "@deepseek-ai/dsh-client-ui-conversation/HeroShell.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$7; + tag.textContent = css$7; + document.head.appendChild(tag); + } + var HeroShell_module_css_default = { + "workspaceLabel": "pXSMma_workspaceLabel", + "headline": "pXSMma_headline", + "chevron": "pXSMma_chevron", + "fish": "pXSMma_fish", + "stack": "pXSMma_stack", + "workspace": "pXSMma_workspace", + "modalInput": "pXSMma_modalInput", + "modalError": "pXSMma_modalError", + "modalAction": "pXSMma_modalAction", + "body": "pXSMma_body", + "hero-fish-swim": "pXSMma_hero-fish-swim", + "workspaceRow": "pXSMma_workspaceRow", + "folder": "pXSMma_folder", + "root": "pXSMma_root", + "fishHitbox": "pXSMma_fishHitbox", + "headlineText": "pXSMma_headlineText", + "previewBadge": "pXSMma_previewBadge" + }; + //#endregion + //#region lib/types/client/skeleton/EmptyHero.js + /** + * Basename label for the workspace chip (the shared derivation); + * separator-only paths echo the raw cwd. + * @param cwd - workspace directory path (non-empty). + * @returns chip label. + */ + function workspaceLabel(cwd) { + const base = (0, _deepseek_ai_dsh_client_runtime_client.workspaceTitleOf)(cwd); + return base !== "" ? base : cwd; + } + /** + * The workspace chip (folder + label + chevron), always interactive: before + * the first message the workspace stays switchable — picking another one + * moves the New Session flow to that workspace's blank session. Without a + * label the chip renders its placeholder state: closed folder + the + * "Choose workspace" call to action. + * @param props.label - chip label (see {@link workspaceLabel}); omitted → placeholder. + * @param props.menuOpen - menu expansion echo. + * @param props.onClick - menu toggle. + * @returns the chip button element. + */ + function WorkspaceChip({ buttonRef, label, menuOpen = false, onClick, t }) { + return (0, react_jsx_runtime.jsxs)("button", { + ref: buttonRef, + type: "button", + className: HeroShell_module_css_default.workspace, + "aria-label": t("hero.chooseWorkspace"), + "aria-haspopup": "menu", + "aria-expanded": menuOpen, + onClick, + children: [ + label === void 0 ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderClose16, { + className: HeroShell_module_css_default.folder, + size: 16 + }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderOpen16, { + className: HeroShell_module_css_default.folder, + size: 16 + }), + (0, react_jsx_runtime.jsx)("span", { + className: HeroShell_module_css_default.workspaceLabel, + children: label ?? t("hero.chooseWorkspace") + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { + className: HeroShell_module_css_default.chevron, + size: 12 + }) + ] + }); + } + /** + * The soft blue backdrop ellipse (figma 313:14109). Rendered by the hero + * owner (ConversationRoot), not HeroShell, so it can center on the input + * card; the owner's className supplies all positioning. + * @param props.className - positioning class from the owner. + * @returns the blurred-ellipse svg element. + */ + function HeroGlow({ className }) { + const glowFilterId = `empty-glow-${(0, react.useId)().replace(/:/g, "")}`; + return (0, react_jsx_runtime.jsxs)("svg", { + className, + viewBox: "0 0 1051 468", + fill: "none", + "aria-hidden": "true", + children: [(0, react_jsx_runtime.jsx)("defs", { children: (0, react_jsx_runtime.jsxs)("filter", { + id: glowFilterId, + x: "0", + y: "0", + width: "1051", + height: "468", + filterUnits: "userSpaceOnUse", + colorInterpolationFilters: "sRGB", + children: [ + (0, react_jsx_runtime.jsx)("feFlood", { + floodOpacity: "0", + result: "BackgroundImageFix" + }), + (0, react_jsx_runtime.jsx)("feBlend", { + mode: "normal", + in: "SourceGraphic", + in2: "BackgroundImageFix", + result: "shape" + }), + (0, react_jsx_runtime.jsx)("feGaussianBlur", { + stdDeviation: "50", + result: "effect1_foregroundBlur" + }) + ] + }) }), (0, react_jsx_runtime.jsx)("g", { + filter: `url(#${glowFilterId})`, + children: (0, react_jsx_runtime.jsx)("ellipse", { + cx: "525.5", + cy: "234", + rx: "425.5", + ry: "134", + fill: "#6187D8", + fillOpacity: "0.08" + }) + })] + }); + } + /** + * Render the hero chrome (headline only; no glow, no composer, no workspace + * row — the glow is the owner's {@link HeroGlow}). + * @param props - see {@link HeroShellProps}. + * @returns the centered hero element tree. + */ + function HeroShell({ t, children }) { + return (0, react_jsx_runtime.jsxs)("div", { + className: HeroShell_module_css_default.root, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: HeroShell_module_css_default.stack, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: HeroShell_module_css_default.headline, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: HeroShell_module_css_default.fishHitbox, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.FishLogo, { + size: 34, + className: HeroShell_module_css_default.fish + }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: HeroShell_module_css_default.headlineText, + children: t("hero.headline") + }), + (0, react_jsx_runtime.jsx)("span", { + className: HeroShell_module_css_default.previewBadge, + children: t("hero.preview") + }) + ] + }), (0, react_jsx_runtime.jsx)("div", { className: HeroShell_module_css_default.body })] + }), children] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css.mjs + const css$6 = ".wSkVaW_root{background:var(--dsw-alias-bg-base);--dsh-chat-content-width:748px;--dsh-composer-card-max-width:calc(var(--dsh-chat-content-width) + 32px);--dsh-composer-side-clearance:16px;--dsh-composer-dock-inset:8px;flex-direction:column;min-width:0;height:100%;display:flex}.wSkVaW_header{border-bottom:1px solid #0000;flex:none;padding:12px 28px 0 20px;position:relative}.wSkVaW_header:after{content:\"\";z-index:0;background:var(--dsw-alias-border-l2);pointer-events:none;height:1px;position:absolute;bottom:1px;left:0;right:0}.wSkVaW_headerHidden{display:none}.wSkVaW_titleRow{align-items:center;gap:0;min-height:32px;display:flex}.wSkVaW_titleCluster{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.wSkVaW_crumbs{white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.wSkVaW_crumbSeg{align-items:center;gap:4px;min-width:0;display:inline-flex}.wSkVaW_crumbSep{color:var(--dsw-alias-label-caption);font-size:14px;line-height:20px}.wSkVaW_crumb{max-width:220px;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:4px 8px;font-size:14px;line-height:20px;overflow:hidden}.wSkVaW_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.wSkVaW_crumbCurrent{color:var(--dsw-alias-label-primary);cursor:default;font-weight:500}.wSkVaW_headerActions{flex:none;align-items:center;gap:8px;display:flex}.wSkVaW_headerUtilities{flex:none;align-items:center;gap:8px;margin-left:20px;display:flex}.wSkVaW_headerUtilities:empty{display:none}.wSkVaW_tabs{z-index:1;gap:36px;margin-top:4px;padding-left:8px;display:flex;position:relative}.wSkVaW_tab{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 11px;font-size:13px;font-weight:500;line-height:16px;position:relative}.wSkVaW_tab:after{content:\"\";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:1px;left:0;right:0}.wSkVaW_tabActive{color:var(--dsw-alias-state-business-primary)}.wSkVaW_tabActive:after{background:var(--dsw-alias-state-business-primary)}.wSkVaW_viewArea{flex-direction:column;flex:1;min-height:0;display:flex}.wSkVaW_composerStack{--dsh-composer-stack-gap:6px;gap:var(--dsh-composer-stack-gap);flex-direction:column;display:flex}.wSkVaW_composerSeat{--dsh-composer-text-max-height:336px;flex-direction:column;flex:none;display:flex}.wSkVaW_root[data-phase=active]{overflow:hidden}.wSkVaW_root[data-phase=active] .wSkVaW_header{flex:none}.wSkVaW_scrollBody{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.wSkVaW_root[data-phase=active] .wSkVaW_viewArea{flex:1 0 auto;min-height:auto}.wSkVaW_root[data-phase=active] .wSkVaW_composerSeat{z-index:7;background:linear-gradient(180deg, color-mix(in srgb, var(--dsw-alias-bg-base) 0%, transparent) 0px, var(--dsw-alias-bg-base) 36px);position:sticky;bottom:0}.wSkVaW_scrollBody:has([data-conversation-composer-overlay]){scrollbar-gutter:auto;position:relative;overflow:hidden auto}.wSkVaW_scrollBody:has([data-conversation-composer-overlay])>[data-slot=conversation\\.session]>.wSkVaW_viewArea{flex:1 1 0;min-height:0;overflow:hidden}.wSkVaW_scrollBody:has([data-conversation-composer-overlay])>.wSkVaW_composerSeat{right:var(--dsh-scrollbar-width);position:absolute;bottom:0;left:0}.wSkVaW_composerHero{width:min(calc(var(--dsh-composer-card-max-width) + 2 * var(--dsh-composer-side-clearance)), 100%);z-index:1;align-self:center;gap:8px;padding-bottom:32px;position:relative}.wSkVaW_heroGlow{z-index:-1;aspect-ratio:1051/468;pointer-events:none;width:135.438%;position:absolute;bottom:92px;left:50%;transform:translate(-50%,50%)}.wSkVaW_heroWorkspaceRow{align-items:center;gap:2px;min-width:0;margin-top:4px;padding-left:20px;display:flex}.wSkVaW_root[data-phase=hero] .wSkVaW_scrollBody{justify-content:center;overflow-y:auto}.wSkVaW_root[data-phase=settling] .wSkVaW_composerSeat{visibility:hidden}"; + const tagId$6 = "@deepseek-ai/dsh-client-ui-conversation/ConversationRoot.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$6; + tag.textContent = css$6; + document.head.appendChild(tag); + } + var ConversationRoot_module_css_default = { + "headerActions": "wSkVaW_headerActions", + "crumb": "wSkVaW_crumb", + "tab": "wSkVaW_tab", + "tabs": "wSkVaW_tabs", + "titleRow": "wSkVaW_titleRow", + "composerHero": "wSkVaW_composerHero", + "header": "wSkVaW_header", + "crumbCurrent": "wSkVaW_crumbCurrent", + "headerHidden": "wSkVaW_headerHidden", + "viewArea": "wSkVaW_viewArea", + "heroWorkspaceRow": "wSkVaW_heroWorkspaceRow", + "titleCluster": "wSkVaW_titleCluster", + "composerStack": "wSkVaW_composerStack", + "scrollBody": "wSkVaW_scrollBody", + "crumbSeg": "wSkVaW_crumbSeg", + "crumbSep": "wSkVaW_crumbSep", + "headerUtilities": "wSkVaW_headerUtilities", + "tabActive": "wSkVaW_tabActive", + "heroGlow": "wSkVaW_heroGlow", + "composerSeat": "wSkVaW_composerSeat", + "crumbs": "wSkVaW_crumbs", + "root": "wSkVaW_root" + }; + //#endregion + //#region lib/types/client/skeleton/ConversationRoot.js + function ConversationRoot({ sessionId, useSession, useSessions, useWorkspaces, useInput, useComposerBlock, renderSlot, renderSlotChain, selectWorkspace, t }) { + const openState = useSession((s) => s.openState); + const composerPhase = useSession((s) => s.composerPhase); + const pending = useSession((s) => s.pending) ?? []; + const session = useSession((s) => s); + const inputState = useInput((s) => s); + const cwd = useSessions((s) => sessionId === void 0 ? void 0 : s.byId[sessionId]?.cwd); + const summaryBlank = useSessions((s) => sessionId === void 0 ? void 0 : s.byId[sessionId]?.blank); + const workspaces = useWorkspaces((s) => s); + const composerBlock = useComposerBlock((block) => block); + const [pickerOpen, setPickerOpen] = (0, react.useState)(false); + const [pendingWorkspaceId, setPendingWorkspaceId] = (0, react.useState)(); + const pickerAnchor = (0, react.useRef)(null); + const seatObserver = (0, react.useRef)(null); + const seatResizeRef = (0, react.useCallback)((seat) => { + seatObserver.current?.disconnect(); + seatObserver.current = null; + const scroller = seat?.parentElement ?? null; + if (seat === null || scroller === null) return; + seatObserver.current = new ResizeObserver(() => { + scroller.style.setProperty("--dsh-composer-height", `${seat.offsetHeight}px`); + }); + seatObserver.current.observe(seat); + }, []); + const sessionWorkspace = sessionId === void 0 ? void 0 : workspaces.items.find((workspace) => workspace.sessionIds.includes(sessionId)); + const pendingWorkspace = workspaces.items.find((workspace) => workspace.workspaceId === pendingWorkspaceId); + (0, react.useEffect)(() => { + if (pendingWorkspaceId === void 0) return; + if (sessionWorkspace?.workspaceId === pendingWorkspaceId || workspaces.phase === "ready" && pendingWorkspace === void 0) setPendingWorkspaceId(void 0); + }, [ + pendingWorkspaceId, + sessionWorkspace?.workspaceId, + workspaces.phase, + pendingWorkspace + ]); + const settling = sessionId !== void 0 && composerPhase === "blank" && openState === "loading" && summaryBlank !== true; + const hero = sessionId === void 0 || composerPhase === "blank" && (openState === "open" || summaryBlank === true); + const zone = session === void 0 || inputState === void 0 ? void 0 : { + session, + input: inputState + }; + const chipTitle = pendingWorkspace?.title ?? (sessionId === void 0 ? void 0 : sessionWorkspace?.title ?? (workspaces.phase === "ready" || cwd === void 0 || cwd === "" ? void 0 : workspaceLabel(cwd))); + const heroWorkspaceRow = (0, react_jsx_runtime.jsxs)("div", { + className: ConversationRoot_module_css_default.heroWorkspaceRow, + children: [ + (0, react_jsx_runtime.jsx)(WorkspaceChip, { + buttonRef: pickerAnchor, + label: chipTitle, + menuOpen: pickerOpen, + onClick: () => { + setPickerOpen((open) => !open); + }, + t + }), + renderSlot("conversation.hero.workspace", { + open: pickerOpen, + anchorRef: pickerAnchor, + selectedId: pendingWorkspaceId ?? sessionWorkspace?.workspaceId, + onPick: (workspaceId) => { + setPickerOpen(false); + setPendingWorkspaceId(workspaceId); + selectWorkspace(workspaceId).catch(() => { + setPendingWorkspaceId((current) => current === workspaceId ? void 0 : current); + }); + }, + onClose: () => { + setPickerOpen(false); + } + }), + renderSlot("conversation.hero.agentPreset", {}) + ] + }); + const inert = sessionId === void 0 || hero && chipTitle === void 0; + const inputBar = renderSlot("conversation.composer.bar", { + variant: hero ? "hero" : "composer", + ...inert ? { + disabled: true, + placeholder: t("placeholder.workspace"), + workspacePickerOpen: pickerOpen, + onRequestWorkspace: () => { + setPickerOpen(true); + } + } : !inert && composerBlock !== void 0 ? { + blocked: composerBlock, + placeholder: composerBlock.reason + } : hero ? { placeholder: t("placeholder.hero") } : {}, + overlay: renderSlot("conversation.input.overlay", {}), + leftItems: zone === void 0 ? null : renderSlot("conversation.input.left", zone), + rightItems: zone === void 0 ? null : renderSlot("conversation.input.right", zone), + footer: !hero && zone !== void 0 ? renderSlot("conversation.composer.dock", zone) : null + }); + const composerBar = (0, react_jsx_runtime.jsxs)("div", { + className: clsx(ConversationRoot_module_css_default.composerStack, hero && ConversationRoot_module_css_default.composerHero), + children: [ + hero && (0, react_jsx_runtime.jsx)(HeroGlow, { className: ConversationRoot_module_css_default.heroGlow }), + hero && (0, react_jsx_runtime.jsx)(HeroShell, { t }), + hero && heroWorkspaceRow, + zone !== void 0 && renderSlot("conversation.input.dock", zone), + inputBar + ] + }); + const phase = settling ? "settling" : hero ? "hero" : "active"; + const composer = renderSlotChain("conversation.composer", { + interactions: pending, + session + }, { + fallback: composerBar, + overlay: true + }); + const composerSeat = (0, react_jsx_runtime.jsx)("div", { + ref: seatResizeRef, + className: ConversationRoot_module_css_default.composerSeat, + "data-composer-seat": "", + children: composer + }); + return (0, react_jsx_runtime.jsxs)("div", { + className: ConversationRoot_module_css_default.root, + "data-phase": phase, + children: [renderSlot("conversation.session.header", {}), (0, react_jsx_runtime.jsxs)("div", { + className: ConversationRoot_module_css_default.scrollBody, + "data-conversation-scroll": "", + children: [renderSlot("conversation.session", {}), composerSeat] + })] + }); + } + //#endregion + //#region lib/types/client/skeleton/ConversationSession.js + /** Strict per-session header/body content inserted into the resident conversation layout. */ + const DEFAULT_VIEW_ID = "chat"; + /** Resolve by id and keep stale persisted selections on the stable Chat fallback. */ + function resolveActiveView(tabs, selectedId) { + const requestedId = selectedId ?? DEFAULT_VIEW_ID; + return tabs.find((view) => view.id === requestedId) ?? tabs.find((view) => view.id === DEFAULT_VIEW_ID); + } + function deriveAncestry(list, id) { + const chain = []; + const seen = /* @__PURE__ */ new Set(); + let cursor = id; + while (cursor !== void 0) { + if (seen.has(cursor)) break; + seen.add(cursor); + const summary = list.byId[cursor]; + if (summary === void 0) break; + chain.unshift({ + id: summary.id, + displayTitle: summary.displayTitle + }); + if (summary.origin !== "subagent") break; + cursor = summary.parentId; + } + return chain; + } + function equalBreadcrumbs(left, right) { + return left.length === right.length && left.every((item, index) => { + const other = right.at(index); + return other !== void 0 && item.id === other.id && item.displayTitle === other.displayTitle; + }); + } + /** + * Renders Session header chrome above the resident conversation scrollport. + * @param props - Strict Session store, view ledger, navigation, render, and locale shares. + * @returns the hidden blank-session header or visible title and tabs. + */ + function ConversationSessionHeader({ sessionId, useSession, useSessions, useStore, actions, renderSlot, views, open, t }) { + (0, react.useSyncExternalStore)(views.subscribe, views.version); + const tabs = views.list(); + const active = resolveActiveView(tabs, useStore((s) => s.view)); + const ancestry = useSessions((s) => deriveAncestry(s, sessionId), equalBreadcrumbs); + const composerPhase = useSession((s) => s.composerPhase); + const hideChrome = useSession((s) => s.blank) && composerPhase === "blank"; + return (0, react_jsx_runtime.jsx)("header", { + className: clsx(ConversationRoot_module_css_default.header, hideChrome && ConversationRoot_module_css_default.headerHidden), + "aria-hidden": hideChrome || void 0, + children: !hideChrome && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("div", { + className: ConversationRoot_module_css_default.titleRow, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: ConversationRoot_module_css_default.titleCluster, + children: [(0, react_jsx_runtime.jsxs)("nav", { + className: ConversationRoot_module_css_default.crumbs, + "aria-label": t("session.hierarchy"), + children: [ancestry.map((summary, index) => { + const last = index === ancestry.length - 1; + return (0, react_jsx_runtime.jsxs)("span", { + className: ConversationRoot_module_css_default.crumbSeg, + children: [index > 0 && (0, react_jsx_runtime.jsx)("span", { + className: ConversationRoot_module_css_default.crumbSep, + children: "/" + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: clsx(ConversationRoot_module_css_default.crumb, last && ConversationRoot_module_css_default.crumbCurrent), + disabled: last, + onClick: () => { + open(summary.id); + }, + children: summary.displayTitle + })] + }, summary.id); + }), ancestry.length === 0 && (0, react_jsx_runtime.jsx)("span", { + className: ConversationRoot_module_css_default.crumbCurrent, + children: sessionId + })] + }), (0, react_jsx_runtime.jsx)("div", { + className: ConversationRoot_module_css_default.headerActions, + children: renderSlot("conversation.session.header.actions", {}) + })] + }), (0, react_jsx_runtime.jsx)("div", { + className: ConversationRoot_module_css_default.headerUtilities, + children: renderSlot("conversation.session.header.utilities", {}) + })] + }), tabs.length > 1 && (0, react_jsx_runtime.jsx)("div", { + className: ConversationRoot_module_css_default.tabs, + role: "tablist", + children: tabs.map((viewTab) => (0, react_jsx_runtime.jsx)("button", { + type: "button", + role: "tab", + "aria-selected": viewTab.id === active?.id, + className: clsx(ConversationRoot_module_css_default.tab, viewTab.id === active?.id && ConversationRoot_module_css_default.tabActive), + onClick: () => { + actions.setView(viewTab.id); + }, + children: viewTab.label + }, viewTab.id)) + })] }) + }); + } + /** + * Renders the active Session view inside the resident scrollport and keeps + * the input draft mirrored while blank Hero chrome is visible. + * @param props - Strict Session input/store, view ledger, and render shares. + * @returns the active view area, or null while the Session remains blank. + */ + function ConversationSession({ sessionId, useSession, useInput, inputActions, useStore, actions, renderSlot, views, bindDraftMirror, releaseSessionImages }) { + (0, react.useSyncExternalStore)(views.subscribe, views.version); + const active = resolveActiveView(views.list(), useStore((s) => s.view)); + const composerPhase = useSession((s) => s.composerPhase); + const blank = useSession((s) => s.blank); + const inputState = useInput((s) => s); + const storedDraft = useStore((s) => s.draft); + const inspect = useStore((s) => s.inspect ?? null); + (0, react.useEffect)(() => { + if (inputState.draft === "" && storedDraft !== "") inputActions.setDraft(storedDraft); + const unmirror = bindDraftMirror(actions.setDraft); + return () => { + unmirror(); + }; + }, [inputActions]); + (0, react.useEffect)(() => () => { + releaseSessionImages(sessionId); + }, [releaseSessionImages, sessionId]); + if (blank && composerPhase === "blank") return null; + return (0, react_jsx_runtime.jsx)("div", { + className: ConversationRoot_module_css_default.viewArea, + children: active !== void 0 && renderSlot("conversation.view", { + inspect, + onInspectDone: () => { + actions.setInspect(null); + } + }, { only: active.id }) + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/DetailsPanel.module.css.mjs + const css$5 = ".ydkMvW_root{border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex-direction:column;min-width:0;height:100%;display:flex}.ydkMvW_header{border-bottom:1px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:8px;padding:14px 12px 12px;display:flex}.ydkMvW_title{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}.ydkMvW_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.ydkMvW_close:hover{background:var(--dsw-alias-interactive-bg-hover)}.ydkMvW_body{flex:1;min-height:0;padding:12px 16px;overflow-y:auto}.ydkMvW_empty{color:var(--dsw-alias-label-tertiary);padding:8px 0;font-size:13px;line-height:20px}.ydkMvW_section{margin-bottom:16px}.ydkMvW_sectionLabel{color:var(--dsw-alias-label-secondary);margin-bottom:6px;font-size:12px;font-weight:500;line-height:18px}.ydkMvW_code{background:var(--dsw-alias-markdown-code-block);font-family:var(--ds-font-family-code);color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;border-radius:12px;margin:0;padding:16px;font-size:13px;line-height:22px}.ydkMvW_code[data-error]{color:var(--dsw-alias-state-error-primary)}"; + const tagId$5 = "@deepseek-ai/dsh-client-ui-conversation/DetailsPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$5; + tag.textContent = css$5; + document.head.appendChild(tag); + } + var DetailsPanel_module_css_default = { + "body": "ydkMvW_body", + "code": "ydkMvW_code", + "sectionLabel": "ydkMvW_sectionLabel", + "section": "ydkMvW_section", + "close": "ydkMvW_close", + "root": "ydkMvW_root", + "header": "ydkMvW_header", + "title": "ydkMvW_title", + "empty": "ydkMvW_empty" + }; + //#endregion + //#region lib/types/client/skeleton/DetailsPanel.js + /** Material of a settled result node (native call or run_code sub-dispatch). */ + function settledMaterial(node, callId) { + return { + name: node.call?.name ?? callId, + argsRaw: node.call?.argsRaw ?? null, + block: node + }; + } + /** Material of an in-flight call (native call or run_code sub-dispatch). */ + function runningMaterial(call) { + return { + name: call.name, + argsRaw: call.argsRaw, + block: call + }; + } + function materialFor(s, callId) { + const found = findToolCall(s, callId); + if (found === void 0) return null; + return "kind" in found ? settledMaterial(found, callId) : runningMaterial(found); + } + function pretty(raw) { + try { + return JSON.stringify(JSON.parse(raw), null, 2); + } catch { + return raw; + } + } + /** Flatten a settled result for the no-ui-tool fallback. */ + function rawResultText(block) { + if (!("kind" in block)) return ""; + const parts = block.content.map((item) => item.type === "text" ? item.text : JSON.stringify(item, null, 2)); + if (parts.length === 0 && block.error !== void 0) parts.push(`${block.error.name}: ${block.error.code}`); + return parts.join("\n"); + } + function DetailsPanel({ useSession, useSessions, sessionId, useStore, renderSlot, closeDetails, t }) { + const selection = useStore((s) => s.selection); + const sessionCwd = useSessions((list) => list.byId[sessionId]?.cwd); + const callId = selection?.callId; + const material = useSession((s) => callId === void 0 ? null : materialFor(s, callId), (a, b) => (0, _deepseek_ai_dsh_client_runtime_client.shallowEqual)(a, b)); + return (0, react_jsx_runtime.jsxs)("div", { + className: DetailsPanel_module_css_default.root, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: DetailsPanel_module_css_default.header, + children: [(0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.title, + children: selection === null ? t("details.title") : material?.name ?? selection.toolName ?? t("details.title") + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: DetailsPanel_module_css_default.close, + "aria-label": t("details.close"), + onClick: () => { + closeDetails(); + }, + children: (0, react_jsx_runtime.jsx)("svg", { + viewBox: "0 0 16 16", + width: "14", + height: "14", + "aria-hidden": true, + children: (0, react_jsx_runtime.jsx)("path", { + d: "M4 4l8 8M12 4l-8 8", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round" + }) + }) + })] + }), (0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.body, + children: selection === null || callId === void 0 ? (0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.empty, + children: t("details.empty") + }) : material === null ? (0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.empty, + children: t("details.notInWindow") + }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [material.argsRaw !== null && (0, react_jsx_runtime.jsxs)("section", { + className: DetailsPanel_module_css_default.section, + children: [(0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.sectionLabel, + children: t("details.input") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, { + code: pretty(material.argsRaw), + lang: "json", + copyLabel: t("copy"), + copiedLabel: t("copied") + })] + }), (0, react_jsx_runtime.jsxs)("section", { + className: DetailsPanel_module_css_default.section, + children: [(0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.sectionLabel, + children: t("details.output") + }), (0, react_jsx_runtime.jsx)(react.Fragment, { children: renderSlot("conversation.details.tool", { + block: material.block, + cwd: sessionCwd + }, { fallback: "kind" in material.block ? (0, react_jsx_runtime.jsx)("pre", { + className: DetailsPanel_module_css_default.code, + "data-error": material.block.isError || void 0, + children: rawResultText(material.block) + }) : (0, react_jsx_runtime.jsx)("div", { + className: DetailsPanel_module_css_default.empty, + children: t("details.running") + }) }) }, callId)] + })] }) + })] + }); + } + //#endregion + //#region lib/types/client/conversation-nodes/common.js + /** + * Relative positions in one durable event's seq neighborhood: interrupted + * Assistant, its follow-up Nodes, then follow-ups to an ordinary final. The + * max-tokens notice sits between a closing Assistant and the turn-tail so the + * tail stays the turn's last node and keeps its branch action enabled. + */ + const CHAT_SYNTHETIC_SEQ_OFFSETS = { + interruptedAssistant: -.9, + interruptedFollowup: -.8, + maxTokensNotice: .05, + finalizedFollowup: .1 + }; + /** + * Resolve one Context's best currently loaded event Location. + * @param context - assembled business Context. + * @returns start or first-match Location, otherwise unresolved. + */ + function contextLocation(context) { + return context.start?.location ?? context.matches[0]?.location ?? { kind: "unresolved" }; + } + /** + * Build one final Chat target Node with the engine-owned stable key. + * @param context - assembled business Context. + * @param kind - Chat renderer dispatch key. + * @param anchorSeq - sortable render position. + * @param data - renderer-owned payload. + * @param options - optional Location and visibility overrides. + * @returns final Chat view Node. + */ + function chatNode(context, kind, anchorSeq, data, options = {}) { + return { + key: context.key, + kind, + id: context.id, + target: "chat", + anchorSeq, + location: options.location ?? contextLocation(context), + visibility: options.visibility ?? "visible", + data + }; + } + //#endregion + //#region lib/types/client/conversation-nodes/assistant.js + function initialState(turn, step) { + return { + turn, + step, + blocks: [], + firstVisibleSeq: void 0, + firstVisibleTime: void 0, + firstTokenTime: void 0, + hidden: false, + final: void 0, + usage: void 0 + }; + } + function compactBlocks(blocks) { + return blocks.filter((block) => block !== void 0); + } + function hasVisibleContent(blocks) { + return blocks.some((block) => { + if (block.kind === "tool-call") return false; + if (block.kind === "text" || block.kind === "reasoning") return block.text.trim() !== ""; + return true; + }); + } + function hasInterruptionEvidence(blocks) { + return blocks.some((block) => { + if (block.kind === "text" || block.kind === "reasoning") return block.text.trim() !== ""; + return true; + }); + } + function resetForRetry(state) { + return { + ...initialState(state.turn, state.step), + firstTokenTime: state.firstTokenTime, + hidden: true + }; + } + function updateChunk(state, match) { + if (match.event.type !== "assistant/chunk") return state; + const chunk = match.event.data.chunk; + const blocks = [...state.blocks]; + switch (chunk.type) { + case "block-start": + blocks[chunk.index] = (0, _deepseek_ai_dsh_client_runtime_client.emptyAssistantBlock)(chunk.blockType); + break; + case "text-delta": { + const previous = blocks[chunk.index]; + blocks[chunk.index] = { + kind: "text", + text: (previous?.kind === "text" ? previous.text : "") + chunk.text + }; + break; + } + case "reasoning-delta": { + const previous = blocks[chunk.index]; + blocks[chunk.index] = { + kind: "reasoning", + text: (previous?.kind === "reasoning" ? previous.text : "") + chunk.text + }; + break; + } + case "tool-call-delta": { + const previous = blocks[chunk.index]; + const base = previous?.kind === "tool-call" ? previous : { + kind: "tool-call", + callId: "", + name: "", + argsRaw: "" + }; + blocks[chunk.index] = { + kind: "tool-call", + callId: base.callId || String(chunk.id), + name: chunk.name ?? base.name, + argsRaw: base.argsRaw + chunk.argumentsDelta + }; + break; + } + case "block-end": + blocks[chunk.index] = (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlock)(chunk.block); + break; + case "usage": return { + ...state, + usage: chunk.usage + }; + default: return state; + } + const visible = hasVisibleContent(compactBlocks(blocks)); + const firstToken = (0, _deepseek_ai_dsh_client_runtime_client.isTokenDelta)(chunk); + return { + ...state, + blocks, + hidden: visible ? false : state.hidden, + ...visible && state.firstVisibleSeq === void 0 ? { + firstVisibleSeq: match.event.seq, + firstVisibleTime: match.event.time + } : {}, + ...firstToken && state.firstTokenTime === void 0 ? { firstTokenTime: match.event.time } : {} + }; + } + function closedBoundary(location) { + if (location.kind === "step" && location.step.status === "closed" && location.step.end !== void 0) return location.step.end; + if ((location.kind === "step" || location.kind === "turn") && location.turn.status === "closed" && location.turn.end !== void 0) return location.turn.end; + } + function finalNode(state, context) { + const final = state.final; + if (final?.event.type === "assistant/message") { + const event = final.event; + return { + kind: "assistant", + seq: event.seq, + messageId: event.data.message.id, + time: event.time, + turn: state.turn, + step: state.step, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(event.data.message.content), + usage: event.data.usage, + timing: { + stepStartTime: context.start?.event.time ?? null, + firstTokenTime: state.firstTokenTime ?? null, + completedTime: event.time + } + }; + } + const location = context.start?.location ?? context.matches.at(-1)?.location; + const boundary = location === void 0 ? void 0 : closedBoundary(location); + const blocks = compactBlocks(state.blocks); + if (boundary === void 0 || !hasInterruptionEvidence(blocks)) return void 0; + return { + kind: "assistant", + seq: boundary.seq + CHAT_SYNTHETIC_SEQ_OFFSETS.interruptedAssistant, + time: boundary.time, + turn: state.turn, + step: state.step, + blocks, + interrupted: true + }; + } + function fallbackState$4(context) { + let state; + for (const match of context.matches) { + if (match.event.type === "assistant/chunk") { + state ??= initialState(match.event.data.turn, match.event.data.step); + state = updateChunk(state, match); + continue; + } + if (match.event.type === "assistant/message") { + state ??= initialState(match.event.data.turn, match.event.data.step); + state = { + ...state, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(match.event.data.message.content), + hidden: false, + final: match, + usage: match.event.data.usage + }; + continue; + } + if (match.event.type === "llm/retry" && state !== void 0) state = resetForRetry(state); + } + return state; + } + function projectAssistant(context) { + const state = context.state ?? fallbackState$4(context); + if (state === void 0) return void 0; + const settled = finalNode(state, context); + const blocks = settled?.blocks ?? compactBlocks(state.blocks); + const visible = hasVisibleContent(blocks); + const status = settled?.interrupted === true ? "interrupted" : settled === void 0 ? "running" : "settled"; + const anchorSeq = settled?.seq ?? state.firstVisibleSeq ?? context.matches[0]?.event.seq ?? 0; + const time = settled?.time ?? state.firstVisibleTime ?? context.matches[0]?.event.time ?? 0; + return { + anchorSeq, + visible, + settled, + data: { + status, + turn: state.turn, + step: state.step, + blocks, + time, + ...state.usage === void 0 ? {} : { usage: state.usage }, + ...settled === void 0 ? {} : { finalNode: settled } + } + }; + } + /** Per-step Assistant streaming/final/interruption Definition. */ + const assistantDefinition = { + kind: "assistant-step", + target: "chat", + match: (event) => { + if (event.type === "step/start") return { + id: `${event.data.turn}:${event.data.step}`, + role: "start" + }; + if (event.type === "assistant/chunk" || event.type === "assistant/message" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event)) return { + id: `${event.data.turn}:${event.data.step}`, + role: "update" + }; + if (event.type === "llm/retry") return { + id: `${event.data.turn}:${event.data.step}`, + role: "update" + }; + return null; + }, + start: (_context, match) => { + if (match.event.type !== "step/start") throw new Error("assistant-step start requires step/start"); + return initialState(match.event.data.turn, match.event.data.step); + }, + update: (context, match) => { + if (match.event.type === "assistant/chunk") return updateChunk(context.state, match); + if (match.event.type === "assistant/message") return { + ...context.state, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(match.event.data.message.content), + hidden: false, + final: match, + usage: match.event.data.usage + }; + if (match.event.type === "llm/retry") return resetForRetry(context.state); + return context.state; + }, + publication: (match) => { + if (match.event.type === "step/start") return "none"; + if (match.event.type !== "assistant/chunk") return "immediate"; + const type = match.event.data.chunk.type; + return type === "usage" || type === "finish" ? "none" : "animation-frame"; + }, + buildLocationData: (context, scope) => { + if (scope !== "step") return null; + const projected = projectAssistant(context); + if (projected === void 0) return null; + return { + kind: "step", + turn: projected.data.turn, + step: projected.data.step, + key: "assistant-step", + value: projected.data + }; + }, + buildViewNode: (context) => { + const projected = projectAssistant(context); + if (projected === void 0) return null; + if (projected.settled === void 0 && !projected.visible) { + const state = context.state ?? fallbackState$4(context); + if (state === void 0) return null; + const current = context.current.get("chat"); + if (!state.hidden || current === void 0 || current === null) return null; + } + return chatNode(context, "assistant-step", projected.anchorSeq, projected.data, { visibility: projected.settled?.interrupted === true || projected.visible ? "visible" : "hidden" }); + } + }; + /** + * Register the Assistant lifecycle business contribution. + * @param ctx - owning UI Conversation context. + */ + function registerAssistantConversationNode(ctx) { + ctx.conversationEvents.register(assistantDefinition); + } + //#endregion + //#region lib/types/client/contract/chat-nodes.js + /** + * Test whether a Tool root has settled. + * @param block - Tool root lifecycle value. + * @returns whether the root carries its final result. + */ + function isSettledTool(block) { + return "kind" in block; + } + /** + * Test whether a Tool root is still running. + * @param block - Tool root lifecycle value. + * @returns whether the root lacks a final result. + */ + function isRunningTool(block) { + return !isSettledTool(block); + } + //#endregion + //#region lib/types/client/conversation-nodes/chat-snapshot-builder.js + const EMPTY_KEYS = []; + const EMPTY_TURNS = []; + const EMPTY_LIST = []; + function sameReferences$1(left, right) { + return left.length === right.length && left.every((value, index) => value === right[index]); + } + var MutableChatNodeStore = class { + byKey = /* @__PURE__ */ new Map(); + valuesCache = EMPTY_LIST; + valuesDirty = false; + get(key) { + return this.byKey.get(key); + } + values() { + if (this.valuesDirty) { + this.valuesCache = [...this.byKey.values()]; + this.valuesDirty = false; + } + return this.valuesCache; + } + replace(nodes) { + this.byKey.clear(); + for (const node of nodes) this.byKey.set(node.key, node); + this.valuesCache = [...this.byKey.values()]; + this.valuesDirty = false; + } + upsert(nodes) { + let changed = false; + for (const node of nodes) { + if (this.byKey.get(node.key) === node) continue; + this.byKey.set(node.key, node); + changed = true; + } + if (changed) this.valuesDirty = true; + } + }; + var MutableChatLocationIndex = class { + turns = /* @__PURE__ */ new Map(); + steps = /* @__PURE__ */ new Map(); + getTurn(turn) { + return this.turns.get(turn) ?? EMPTY_KEYS; + } + getStep(turn, step) { + return this.steps.get(stepKey(turn, step)) ?? EMPTY_KEYS; + } + rebuild(order, store) { + const turns = /* @__PURE__ */ new Map(); + const steps = /* @__PURE__ */ new Map(); + for (const key of order) { + const location = store.get(key)?.location; + if (location === void 0) continue; + const coordinates = locationCoordinates(location); + if (coordinates.turn === void 0) continue; + const turnKeys = turns.get(coordinates.turn) ?? []; + turnKeys.push(key); + turns.set(coordinates.turn, turnKeys); + if (coordinates.step === void 0) continue; + const step = stepKey(coordinates.turn, coordinates.step); + const stepKeys = steps.get(step) ?? []; + stepKeys.push(key); + steps.set(step, stepKeys); + } + this.turns = updateIndex(this.turns, turns); + this.steps = updateIndex(this.steps, steps); + } + /** Invalidate aggregate readers when member data changes without moving. */ + touch(nodes) { + const turns = /* @__PURE__ */ new Set(); + const steps = /* @__PURE__ */ new Set(); + for (const node of nodes) { + const coordinates = locationCoordinates(node.location); + if (coordinates.turn === void 0 || !this.turns.get(coordinates.turn)?.includes(node.key)) continue; + turns.add(coordinates.turn); + if (coordinates.step !== void 0) steps.add(stepKey(coordinates.turn, coordinates.step)); + } + for (const turn of turns) { + const keys = this.turns.get(turn); + if (keys === void 0) continue; + this.turns.set(turn, [...keys]); + } + for (const step of steps) { + const keys = this.steps.get(step); + if (keys === void 0) continue; + this.steps.set(step, [...keys]); + } + } + }; + function updateIndex(previous, nextMutable) { + const next = /* @__PURE__ */ new Map(); + const keys = new Set([...previous.keys(), ...nextMutable.keys()]); + for (const key of keys) { + const before = previous.get(key) ?? EMPTY_KEYS; + const candidate = nextMutable.get(key) ?? EMPTY_KEYS; + const value = sameReferences$1(before, candidate) ? before : candidate; + if (candidate.length > 0) next.set(key, value); + } + return next; + } + function stepKey(turn, step) { + return `${turn}:${step}`; + } + function locationCoordinates(location) { + if (location.kind === "step") return { + turn: location.turn.turn, + step: location.step.step + }; + if (location.kind === "turn") return { turn: location.turn.turn }; + return {}; + } + function orderedVisible(nodes) { + return nodes.filter((node) => node.visibility === "visible").sort((left, right) => left.anchorSeq - right.anchorSeq || left.key.localeCompare(right.key)); + } + const EMPTY_CONTRIBUTION = { + anchorSeq: 0, + nodes: EMPTY_LIST, + partial: null, + running: null + }; + function legacyContribution(raw) { + const node = raw; + if (raw.visibility !== "visible" && node.kind !== "assistant-step") return EMPTY_CONTRIBUTION; + switch (node.kind) { + case "user": + case "steering": + case "context": + case "command": + case "compaction": + case "turn-error": + case "turn-max-tokens": + case "unknown": return { + anchorSeq: node.anchorSeq, + nodes: [node.data], + partial: null, + running: null + }; + case "assistant-step": { + const data = node.data; + if (data.status === "running") { + if (raw.visibility !== "visible") return EMPTY_CONTRIBUTION; + return { + anchorSeq: node.anchorSeq, + nodes: EMPTY_LIST, + partial: { + turn: data.turn, + step: data.step, + blocks: data.blocks + }, + running: null + }; + } + return { + anchorSeq: node.anchorSeq, + nodes: data.finalNode === void 0 ? EMPTY_LIST : [data.finalNode], + partial: null, + running: null + }; + } + case "tool-call": { + const root = node.data.root; + return isRunningTool(root) ? { + anchorSeq: node.anchorSeq, + nodes: EMPTY_LIST, + partial: null, + running: root + } : { + anchorSeq: node.anchorSeq, + nodes: [root], + partial: null, + running: null + }; + } + case "manual-compaction": { + const data = node.data; + return { + anchorSeq: node.anchorSeq, + nodes: data.compaction === null ? [data.command] : [data.command, data.compaction], + partial: null, + running: null + }; + } + case "model-retry": return { + anchorSeq: node.anchorSeq, + nodes: node.data.attempts, + partial: null, + running: null + }; + case "turn-tail": return EMPTY_CONTRIBUTION; + default: return EMPTY_CONTRIBUTION; + } + } + function sameContribution(left, right) { + return left !== void 0 && left.anchorSeq === right.anchorSeq && left.partial?.blocks === right.partial?.blocks && left.partial?.turn === right.partial?.turn && left.partial?.step === right.partial?.step && left.running === right.running && sameReferences$1(left.nodes, right.nodes); + } + /** Incremental compatibility projection for StatsLine and legacy top-level snapshot fields. */ + var LegacySliceBuilder = class { + contributions = /* @__PURE__ */ new Map(); + finalizedContributions = /* @__PURE__ */ new Map(); + runningContributions = /* @__PURE__ */ new Map(); + partialContributions = /* @__PURE__ */ new Map(); + finalized = EMPTY_LIST; + runningCalls = EMPTY_LIST; + partial = null; + timeline; + turnTimings = /* @__PURE__ */ new Map(); + turnEnds = /* @__PURE__ */ new Map(); + replace(nodes, timeline) { + this.contributions.clear(); + this.finalizedContributions.clear(); + this.runningContributions.clear(); + this.partialContributions.clear(); + for (const node of nodes) { + const contribution = legacyContribution(node); + this.contributions.set(node.key, contribution); + this.indexContribution(node.key, contribution); + } + this.rebuildFinalized(); + this.rebuildRunning(); + this.rebuildPartial(); + this.updateTimeline(timeline); + return this.snapshot(); + } + apply(upserts, timeline) { + let finalizedChanged = false; + let runningChanged = false; + let partialChanged = false; + for (const node of upserts) { + const contribution = legacyContribution(node); + const previous = this.contributions.get(node.key); + if (sameContribution(previous, contribution)) continue; + finalizedChanged ||= finalizedContributionChanged(previous, contribution); + runningChanged ||= runningContributionChanged(previous, contribution); + partialChanged ||= partialContributionChanged(previous, contribution); + this.contributions.set(node.key, contribution); + this.indexContribution(node.key, contribution); + } + if (finalizedChanged) this.rebuildFinalized(); + if (runningChanged) this.rebuildRunning(); + if (partialChanged) this.rebuildPartial(); + this.updateTimeline(timeline); + return this.snapshot(); + } + indexContribution(key, contribution) { + updateContributionIndex(this.finalizedContributions, key, contribution, contribution.nodes.length > 0); + updateContributionIndex(this.runningContributions, key, contribution, contribution.running !== null); + updateContributionIndex(this.partialContributions, key, contribution, contribution.partial !== null); + } + rebuildFinalized() { + const finalized = [...this.finalizedContributions.values()].flatMap((value) => value.nodes).sort((left, right) => left.seq - right.seq); + if (!sameReferences$1(this.finalized, finalized)) this.finalized = finalized; + } + rebuildRunning() { + const runningCalls = [...this.runningContributions.values()].sort((left, right) => left.anchorSeq - right.anchorSeq).flatMap((value) => value.running === null ? [] : [value.running]); + if (!sameReferences$1(this.runningCalls, runningCalls)) this.runningCalls = runningCalls; + } + rebuildPartial() { + const partial = [...this.partialContributions.values()].sort((left, right) => left.anchorSeq - right.anchorSeq).findLast((value) => value.partial !== null)?.partial ?? null; + if (this.partial?.blocks !== partial?.blocks || this.partial?.turn !== partial?.turn || this.partial?.step !== partial?.step) this.partial = partial; + } + updateTimeline(timeline) { + if (this.timeline === timeline) return; + this.timeline = timeline; + const turnTimings = /* @__PURE__ */ new Map(); + const turnEnds = /* @__PURE__ */ new Map(); + for (const turn of timeline.turns.values()) { + if (turn.start !== void 0) turnTimings.set(turn.turn, { + startTime: turn.start.time, + ...turn.end === void 0 ? {} : { endTime: turn.end.time } + }); + if (turn.end !== void 0) turnEnds.set(turn.turn, turn.end.seq); + } + this.turnTimings = turnTimings; + this.turnEnds = turnEnds; + } + snapshot() { + return { + nodes: this.finalized, + turnTimings: this.turnTimings, + turnEnds: this.turnEnds, + partial: this.partial, + runningCalls: this.runningCalls + }; + } + }; + function updateContributionIndex(index, key, contribution, present) { + if (present) index.set(key, contribution); + else index.delete(key); + } + function finalizedContributionChanged(previous, next) { + const previousNodes = previous?.nodes ?? EMPTY_LIST; + return !sameReferences$1(previousNodes, next.nodes) || (previousNodes.length > 0 || next.nodes.length > 0) && previous?.anchorSeq !== next.anchorSeq; + } + function runningContributionChanged(previous, next) { + return previous?.running !== next.running || (previous.running !== null || next.running !== null) && previous.anchorSeq !== next.anchorSeq; + } + function partialContributionChanged(previous, next) { + return previous?.partial?.blocks !== next.partial?.blocks || previous?.partial?.turn !== next.partial?.turn || previous?.partial?.step !== next.partial?.step || ((previous?.partial ?? null) !== null || next.partial !== null) && previous?.anchorSeq !== next.anchorSeq; + } + /** Incremental keyed Chat builder registered under the `chat` target. */ + var ChatSnapshotBuilder = class { + store = new MutableChatNodeStore(); + locations = new MutableChatLocationIndex(); + legacy = new LegacySliceBuilder(); + order = EMPTY_KEYS; + empty; + constructor() { + this.empty = this.snapshot({ + turnOrder: EMPTY_TURNS, + turns: /* @__PURE__ */ new Map() + }); + } + replace(input) { + this.store.replace(input.nodes); + this.order = orderedVisible(input.nodes).map((node) => node.key); + this.locations.rebuild(this.order, this.store); + return this.snapshot(input.timeline, this.legacy.replace(input.nodes, input.timeline)); + } + apply(input) { + let structural = false; + const contentOnly = []; + for (const node of input.upserts) { + const previous = this.store.get(node.key); + const nodeStructural = previous === void 0 || previous.anchorSeq !== node.anchorSeq || previous.visibility !== node.visibility || locationIdentity(previous.location) !== locationIdentity(node.location); + structural ||= nodeStructural; + if (!nodeStructural) contentOnly.push(node); + } + this.store.upsert(input.upserts); + if (structural) { + const next = orderedVisible(this.store.values()).map((node) => node.key); + this.order = sameReferences$1(this.order, next) ? this.order : next; + this.locations.rebuild(this.order, this.store); + } + this.locations.touch(contentOnly); + return this.snapshot(input.timeline, this.legacy.apply(input.upserts, input.timeline)); + } + snapshot(timeline, legacy = this.legacy.replace(EMPTY_LIST, timeline)) { + return { + order: this.order, + nodes: this.store, + locations: this.locations, + timeline, + legacy + }; + } + }; + function locationIdentity(location) { + const coordinates = locationCoordinates(location); + return `${location.kind}:${coordinates.turn ?? ""}:${coordinates.step ?? ""}`; + } + /** Chat target factory contributed to the Runtime view registry. */ + const chatViewDefinition = { + target: "chat", + create: () => new ChatSnapshotBuilder() + }; + /** + * Register the incremental Chat target builder. + * @param ctx - owning UI Conversation context. + */ + function registerChatConversationView(ctx) { + ctx.conversationViews.register(chatViewDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/command.js + const COMPACT_PLUGIN = "compact"; + function commandFromRun(match) { + if (match.event.type !== "command/run") throw new Error("command start requires command/run"); + const data = match.event.data; + return { + kind: "command", + seq: match.event.seq, + time: match.event.time, + commandId: data.commandId, + name: data.name, + args: data.args ?? null, + outcome: null + }; + } + function commandFromDone(match, previous) { + if (match.event.type !== "command/done") throw new Error("command update requires command/done"); + const data = match.event.data; + const sourceEventSeq = data.kind === "success" && data.sourceEventSeq !== void 0 && Number.isSafeInteger(data.sourceEventSeq) && data.sourceEventSeq >= 0 ? data.sourceEventSeq : void 0; + return { + kind: "command", + seq: previous?.seq ?? match.event.seq, + time: previous?.time ?? match.event.time, + commandId: data.commandId, + name: previous?.name ?? null, + args: previous?.args ?? null, + outcome: { + kind: data.kind, + ...data.text === void 0 ? {} : { text: data.text }, + ...sourceEventSeq === void 0 ? {} : { sourceEventSeq } + } + }; + } + /** + * Read correlation identity from a compaction replacement checkpoint. + * @param event - candidate Session event. + * @returns correlated compaction and optional command identity. + */ + function compactSource(event) { + if (event.type !== "user/message" || !(0, _deepseek_ai_dsh_client_runtime_client.isReplacementSurfaceEvent)(event)) return void 0; + const source = event.data.source; + if (source.kind !== "plugin" || source.plugin !== COMPACT_PLUGIN || typeof source.compactionId !== "string") return void 0; + return { + compactionId: source.compactionId, + ...source.sourceCommandId === void 0 ? {} : { sourceCommandId: source.sourceCommandId } + }; + } + /** + * Build the visible summary marker from optional lifecycle evidence. + * @param match - compaction/summary Match, when loaded. + * @param checkpoint - replacement checkpoint Match. + * @returns final compaction summary Node data. + */ + function compactSummary(match, checkpoint) { + let summary = null; + let shadowedItemCount = null; + let shadowedTokenCount = null; + if (match?.event.type === "compaction/summary") { + const data = match.event.data; + if (Array.isArray(data.summary)) { + const text = data.summary.map((block) => block.type === "text" ? block.text : "").join(""); + summary = text.trim() === "" ? null : text; + } + shadowedItemCount = Array.isArray(data.shadowedSeqs) && data.shadowedSeqs.every((seq) => Number.isSafeInteger(seq) && seq >= 0) ? data.shadowedSeqs.length : null; + shadowedTokenCount = Number.isSafeInteger(data.shadowedTokenCount) && data.shadowedTokenCount >= 0 ? data.shadowedTokenCount : null; + } + return { + kind: "compaction", + seq: checkpoint.event.seq, + time: checkpoint.event.time, + summary, + summaryEventSeq: match?.event.seq ?? null, + shadowedItemCount, + shadowedTokenCount + }; + } + function fallbackState$3(context) { + const done = context.matches.find((match) => match.event.type === "command/done"); + const checkpoint = context.matches.find((match) => compactSource(match.event) !== void 0); + const summary = context.matches.find((match) => match.event.type === "compaction/summary"); + if (checkpoint === void 0) return done === void 0 ? void 0 : { command: commandFromDone(done) }; + const source = compactSource(checkpoint.event); + if (source?.sourceCommandId === void 0) return done === void 0 ? void 0 : { command: commandFromDone(done) }; + return { + command: done === void 0 ? { + kind: "command", + seq: checkpoint.event.seq, + time: checkpoint.event.time, + commandId: source.sourceCommandId, + name: "compact", + args: null, + outcome: null + } : { + ...commandFromDone(done), + name: "compact" + }, + checkpoint, + ...summary === void 0 ? {} : { summary } + }; + } + /** + * Fold shared compaction evidence into a Definition-owned State. + * @param state - current business State carrying optional compaction evidence. + * @param match - next compaction lifecycle Match. + * @returns adopted State, preserving reference identity when the Match adds no evidence. + */ + function updateCompactionState(state, match) { + if (match.event.type === "compaction/summary") return { + ...state, + summary: match + }; + if (compactSource(match.event) !== void 0) return { + ...state, + checkpoint: match + }; + return state; + } + /** Slash-command lifecycle, including integrated manual compaction, Definition. */ + const commandDefinition = { + kind: "command", + target: "chat", + match: (event) => { + if (event.type === "command/run") return { + id: String(event.data.commandId), + role: "start" + }; + if (event.type === "command/done") return { + id: String(event.data.commandId), + role: "update" + }; + const checkpoint = compactSource(event); + if (checkpoint?.sourceCommandId !== void 0) return { + id: String(checkpoint.sourceCommandId), + role: "update" + }; + if (event.type === "compaction/start" || event.type === "compaction/summary" || event.type === "compaction/end") { + if (event.data.sourceCommandId !== void 0) return { + id: String(event.data.sourceCommandId), + role: "update" + }; + } + return null; + }, + start: (_context, match) => ({ command: commandFromRun(match) }), + update: (context, match) => { + if (match.event.type === "command/done") return { + ...context.state, + command: commandFromDone(match, context.state.command) + }; + return updateCompactionState(context.state, match); + }, + buildViewNode: (context) => { + const state = context.state ?? fallbackState$3(context); + if (state === void 0) return null; + if (state.command.name !== "compact") return chatNode(context, "command", state.command.seq, state.command); + const compaction = state.checkpoint === void 0 ? null : compactSummary(state.summary, state.checkpoint); + const data = { + command: state.command, + compaction + }; + return chatNode(context, "manual-compaction", compaction?.seq ?? state.command.seq, data); + } + }; + /** + * Register the command lifecycle business contribution. + * @param ctx - owning UI Conversation context. + */ + function registerCommandConversationNode(ctx) { + ctx.conversationEvents.register(commandDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/compaction.js + function fallbackState$2(context) { + const summary = context.matches.find((match) => match.event.type === "compaction/summary"); + const checkpoint = context.matches.find((match) => compactSource(match.event) !== void 0); + return { + ...summary === void 0 ? {} : { summary }, + ...checkpoint === void 0 ? {} : { checkpoint } + }; + } + /** Automatic compaction lifecycle and landed checkpoint Definition. */ + const compactionDefinition = { + kind: "compaction", + target: "chat", + match: (event) => { + const checkpoint = compactSource(event); + if (checkpoint !== void 0 && checkpoint.sourceCommandId === void 0) return { + id: checkpoint.compactionId, + role: "update" + }; + if (event.type === "compaction/start" || event.type === "compaction/summary" || event.type === "compaction/end") { + if (event.data.sourceCommandId !== void 0) return null; + const compactionId = event.data.compactionId; + if (typeof compactionId !== "string" || compactionId === "") return null; + return { + id: compactionId, + role: event.type === "compaction/start" ? "start" : "update" + }; + } + return null; + }, + start: () => ({}), + update: (context, match) => updateCompactionState(context.state, match), + buildViewNode: (context) => { + const state = context.state ?? fallbackState$2(context); + if (state.checkpoint === void 0) return null; + const marker = compactSummary(state.summary, state.checkpoint); + return chatNode(context, "compaction", marker.seq, marker); + } + }; + /** + * Register the automatic-compaction business contribution. + * @param ctx - owning UI Conversation context. + */ + function registerCompactionConversationNode(ctx) { + ctx.conversationEvents.register(compactionDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/fallback.js + /** Unclaimed append-surface fallback Definition. */ + const unknownFallbackDefinition = { + kind: "unknown-surface", + target: "chat", + match: (event) => (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event) ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match) => ({ + kind: "unknown", + seq: match.event.seq, + time: match.event.time, + type: match.event.type, + data: match.event.data + }), + update: (context) => context.state, + buildViewNode: (context) => context.state === void 0 ? null : chatNode(context, "unknown", context.state.seq, context.state) + }; + /** + * Register the unmatched append-surface fallback contribution. + * @param ctx - owning UI Conversation context. + */ + function registerUnknownConversationFallback(ctx) { + ctx.conversationEvents.registerFallback(unknownFallbackDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/inbox.js + function applySplice(previous, splice) { + const pending = [...previous?.state.pending ?? []]; + const claimed = new Set(previous?.state.claimed ?? []); + const removed = pending.splice(splice.start, splice.removedCount ?? 0, ...splice.inserted); + for (const identity of splice.inserted) claimed.delete(identity.id); + if (splice.target === "next-step" && splice.outcome !== "canceled") for (const identity of removed) claimed.add(identity.id); + return { + pending, + claimed + }; + } + function inboxDefinition(target) { + const kind = `inbox-${target}`; + return { + kind, + match: (event) => event.type === "agent/inbox/spliced" && event.data.target === target ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match, reader) => { + if (match.event.type !== "agent/inbox/spliced") throw new Error(`${kind} start requires agent/inbox/spliced`); + return applySplice(reader.previous(kind), match.event.data); + }, + update: (context) => context.state, + publication: () => "none" + }; + } + /** Cumulative next-turn inbox splice Definition. */ + const nextTurnInboxDefinition = inboxDefinition("next-turn"); + /** Cumulative next-step inbox splice Definition used to classify steering. */ + const nextStepInboxDefinition = inboxDefinition("next-step"); + /** + * Register the two durable Inbox-state contributions. + * @param ctx - owning UI Conversation context. + */ + function registerInboxConversationNodes(ctx) { + ctx.conversationEvents.register(nextTurnInboxDefinition); + ctx.conversationEvents.register(nextStepInboxDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/message.js + function isCompactionCheckpoint(event) { + if (event.type !== "user/message" || !(0, _deepseek_ai_dsh_client_runtime_client.isReplacementSurfaceEvent)(event)) return false; + const source = event.data.source; + return source.kind === "plugin" && source.plugin === "compact"; + } + /** User, steering, and injected-context message classification Definition. */ + const messageDefinition = { + kind: "input-message", + target: "chat", + match: (event) => event.type === "user/message" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event) && !isCompactionCheckpoint(event) ? { + id: String(event.data.id), + role: "start" + } : null, + start: (_context, match, reader) => { + if (match.event.type !== "user/message") throw new Error("input-message start requires user/message"); + const event = match.event; + if (event.data.source.kind !== "user") return { + kind: "context", + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source, + provenance: (0, _deepseek_ai_dsh_client_runtime_client.contextProvenance)(event.data.source), + form: (0, _deepseek_ai_dsh_client_runtime_client.contextForm)(event.data.source) + }; + return reader.previous("inbox-next-step")?.state.claimed.has(String(event.data.id)) === true ? { + kind: "steering", + messageId: event.data.id, + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source + } : { + kind: "user", + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source + }; + }, + update: (context) => context.state, + buildViewNode: (context) => { + if (context.state === void 0) return null; + return chatNode(context, context.state.kind, context.state.seq, context.state); + } + }; + /** + * Register the user, steering, and injected-context message contribution. + * @param ctx - owning UI Conversation context. + */ + function registerMessageConversationNode(ctx) { + ctx.conversationEvents.register(messageDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/retry.js + function scheduledNode(match) { + if (match.event.type !== "llm/retry") return void 0; + return { + kind: "model-retry", + seq: match.event.seq, + time: match.event.time, + retryState: "scheduled", + ...match.event.data + }; + } + /** A scheduled attempt is cancelled once either owning boundary closes. */ + function isClosed(location) { + return location.kind === "step" && location.step.status === "closed" || (location.kind === "step" || location.kind === "turn") && location.turn.status === "closed"; + } + /** Producer-correlated model retry chain Definition. */ + const retryDefinition = { + kind: "model-retry", + target: "chat", + match: (event) => { + if (event.type === "llm/retry") { + const retryId = event.data.retryId; + if (typeof retryId !== "string" || retryId === "") return null; + return { + id: retryId, + role: event.data.retry === 1 ? "start" : "update" + }; + } + if (event.type === "llm/retry-started") { + const retryId = event.data.retryId; + return typeof retryId === "string" && retryId !== "" ? { + id: retryId, + role: "update" + } : null; + } + return null; + }, + start: (_context, match) => { + const node = scheduledNode(match); + if (node === void 0) throw new Error("model-retry start requires a valid llm/retry event"); + return { + turn: node.turn, + step: node.step, + attempts: [node] + }; + }, + update: (context, match) => { + if (match.event.type === "llm/retry") { + const node = scheduledNode(match); + return node === void 0 ? context.state : { + ...context.state, + attempts: [...context.state.attempts, node] + }; + } + if (match.event.type !== "llm/retry-started") return context.state; + const retry = match.event.data.retry; + return { + ...context.state, + attempts: context.state.attempts.map((attempt) => attempt.retry === retry ? { + ...attempt, + retryState: "started" + } : attempt) + }; + }, + buildViewNode: (context) => { + if (context.state === void 0 || context.state.attempts.length === 0) return null; + const location = context.start?.location ?? context.matches[0]?.location ?? { kind: "unresolved" }; + const stateAttempts = context.state.attempts; + const attempts = stateAttempts.map((attempt, index) => index === stateAttempts.length - 1 && attempt.retryState === "scheduled" && isClosed(location) ? { + ...attempt, + retryState: "cancelled" + } : attempt); + const current = attempts.at(-1); + if (current === void 0) return null; + const data = { + attempts, + current + }; + return chatNode(context, "model-retry", attempts[0]?.seq ?? current.seq, data); + } + }; + /** + * Register the correlated model-retry business contribution. + * @param ctx - owning UI Conversation context. + */ + function registerRetryConversationNode(ctx) { + ctx.conversationEvents.register(retryDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/tool.js + const MAX_DEPTH = 256; + const projectedBlocks = /* @__PURE__ */ new WeakMap(); + function jsonArguments(value) { + return JSON.stringify(value); + } + function rootCall(match) { + if (match.event.type !== "tool/call") throw new Error("tool-call start requires tool/call"); + return { + callId: String(match.event.data.callId), + name: match.event.data.name, + argsRaw: match.event.data.arguments, + turn: match.event.data.turn, + step: match.event.data.step, + time: match.event.time, + callView: match.view?.for === "call" ? match.view.view : null, + subCalls: [] + }; + } + function rootResult(match, previous) { + if (match.event.type !== "tool/result") return void 0; + const result = match.event.data.message.content[0]; + return { + kind: "tool-result", + seq: match.event.seq, + time: match.event.time, + callId: String(match.event.data.message.source.callId), + call: previous === void 0 ? null : { + name: previous.name, + argsRaw: previous.argsRaw + }, + callTime: previous?.time ?? null, + content: result.content, + isError: result.isError === true, + ...match.event.data.error === void 0 ? {} : { error: match.event.data.error }, + meta: match.event.data.meta, + callView: previous?.callView ?? null, + resultView: match.view?.for === "result" ? match.view.view : null, + subCalls: [] + }; + } + function childCall(match, data) { + return { + callId: data.subCallId, + name: data.name, + argsRaw: jsonArguments(data.arguments), + turn: locationTurn(match), + step: locationStep(match), + time: match.event.time, + callView: null, + subCalls: [] + }; + } + function childResult(match, data, previous) { + return { + kind: "tool-result", + seq: match.event.seq, + time: match.event.time, + callId: data.subCallId, + call: { + name: data.name, + argsRaw: jsonArguments(data.arguments) + }, + callTime: previous?.time ?? null, + content: data.content ?? [], + isError: data.isError === true, + callView: null, + resultView: null, + subCalls: [] + }; + } + function locationTurn(match) { + return match.location.kind === "step" || match.location.kind === "turn" ? match.location.turn.turn : 0; + } + function locationStep(match) { + return match.location.kind === "step" ? match.location.step.step : 0; + } + function acceptsEdge(state, parent, child) { + if (parent === child || state.parents.has(child)) return false; + let cursor = parent; + let parentDepth = 0; + const ancestors = /* @__PURE__ */ new Set(); + while (cursor !== void 0) { + if (cursor === child || ancestors.has(cursor)) return false; + ancestors.add(cursor); + parentDepth++; + cursor = state.parents.get(cursor); + } + const pending = [{ + callId: child, + depth: 1 + }]; + const descendants = /* @__PURE__ */ new Set(); + let subtreeDepth = 0; + for (const candidate of pending) { + if (descendants.has(candidate.callId)) return false; + descendants.add(candidate.callId); + subtreeDepth = Math.max(subtreeDepth, candidate.depth); + for (const nested of state.children.get(candidate.callId) ?? []) pending.push({ + callId: nested.callId, + depth: candidate.depth + 1 + }); + } + return parentDepth + subtreeDepth <= MAX_DEPTH; + } + function updateDispatch(state, match) { + const event = match.event; + if (event.type !== "tool/code-dispatch-start" && event.type !== "tool/code-dispatch") return state; + const data = event.data; + const parentCallId = String(data.parentCallId); + const subCallId = String(data.subCallId); + const siblings = state.children.get(parentCallId) ?? []; + const index = siblings.findIndex((candidate) => candidate.callId === subCallId); + if (event.type === "tool/code-dispatch-start") { + if (index >= 0 || !acceptsEdge(state, parentCallId, subCallId)) return state; + const children = new Map(state.children); + children.set(parentCallId, [...siblings, childCall(match, data)]); + const parents = new Map(state.parents); + parents.set(subCallId, parentCallId); + return { + ...state, + children, + parents + }; + } + if (index < 0 && !acceptsEdge(state, parentCallId, subCallId)) return state; + const settled = childResult(match, data, index < 0 ? void 0 : siblings[index]); + const children = new Map(state.children); + children.set(parentCallId, index < 0 ? [...siblings, settled] : siblings.map((child, at) => at === index ? settled : child)); + const parents = new Map(state.parents); + if (index < 0) parents.set(subCallId, parentCallId); + return { + ...state, + children, + parents + }; + } + function projectBlock(block, state, interruptedAt, visited = /* @__PURE__ */ new Set(), depth = 1) { + if (visited.has(block.callId) || depth > MAX_DEPTH) return { + ...block, + subCalls: [] + }; + const nextVisited = new Set(visited); + nextVisited.add(block.callId); + const children = (state.children.get(block.callId) ?? block.subCalls).map((child) => projectBlock(child, state, interruptedAt, nextVisited, depth + 1)); + const interruptionSeq = "kind" in block ? void 0 : interruptedAt?.seq; + const interruptionTime = "kind" in block ? void 0 : interruptedAt?.time; + const cached = projectedBlocks.get(block); + if (cached !== void 0 && cached.interruptionSeq === interruptionSeq && cached.interruptionTime === interruptionTime && sameReferences(cached.children, children)) return cached.value; + const projected = "kind" in block || interruptedAt === void 0 ? sameReferences(block.subCalls, children) ? block : { + ...block, + subCalls: children + } : { + kind: "tool-result", + seq: interruptedAt.seq + CHAT_SYNTHETIC_SEQ_OFFSETS.interruptedFollowup, + time: interruptedAt.time, + callId: block.callId, + call: { + name: block.name, + argsRaw: block.argsRaw + }, + callTime: block.time, + content: [], + isError: true, + error: { + name: "Interrupted", + code: "interrupted" + }, + callView: block.callView, + resultView: null, + subCalls: children + }; + projectedBlocks.set(block, { + children, + interruptionSeq, + interruptionTime, + value: projected + }); + return projected; + } + function sameReferences(left, right) { + return left.length === right.length && left.every((value, index) => value === right[index]); + } + function interruption(context) { + const location = context.start?.location; + if (location?.kind === "step" && location.step.status === "closed") return location.step.end; + if ((location?.kind === "step" || location?.kind === "turn") && location.turn.status === "closed") return location.turn.end; + } + function fallbackState$1(context) { + const match = context.matches.find((candidate) => candidate.event.type === "tool/result"); + const root = match === void 0 ? void 0 : rootResult(match); + if (root === void 0) return void 0; + let state = { + root, + children: /* @__PURE__ */ new Map(), + parents: /* @__PURE__ */ new Map() + }; + for (const candidate of context.matches) state = updateDispatch(state, candidate); + return state; + } + /** Root Tool lifecycle and nested Code Dispatch Definition. */ + const toolDefinition = { + kind: "tool-call", + target: "chat", + match: (event) => { + if (event.type === "tool/call") return { + id: String(event.data.callId), + role: "start" + }; + if (event.type === "tool/result" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event)) return { + id: String(event.data.message.source.callId), + role: "update" + }; + if (event.type === "tool/code-dispatch-start" || event.type === "tool/code-dispatch") { + const rootCallId = event.data.rootCallId; + return typeof rootCallId === "string" && rootCallId !== "" ? { + id: rootCallId, + role: "update" + } : null; + } + return null; + }, + start: (_context, match) => ({ + root: rootCall(match), + children: /* @__PURE__ */ new Map(), + parents: /* @__PURE__ */ new Map() + }), + update: (context, match) => { + if (match.event.type === "tool/result") { + const result = rootResult(match, "kind" in context.state.root ? void 0 : context.state.root); + return result === void 0 ? context.state : { + ...context.state, + root: result + }; + } + return updateDispatch(context.state, match); + }, + buildViewNode: (context) => { + const state = context.state ?? fallbackState$1(context); + if (state === void 0) return null; + const projected = projectBlock(state.root, state, interruption(context)); + return chatNode(context, "tool-call", context.start?.event.seq ?? ("kind" in state.root ? state.root.seq : context.matches[0]?.event.seq ?? 0), { root: projected }); + } + }; + /** + * Register the root Tool lifecycle and nested-subcall contribution. + * @param ctx - owning UI Conversation context. + */ + function registerToolConversationNode(ctx) { + ctx.conversationEvents.register(toolDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/turn-error.js + function lastStep$1(context) { + const location = context.start?.location ?? context.matches[0]?.location; + if (location?.kind !== "turn" && location?.kind !== "step") return 0; + return location.turn.steps.at(-1)?.step ?? 0; + } + function retryTurn(event) { + return event.type === "llm/retry" || event.type === "llm/retry-started" ? event.data.turn : void 0; + } + function failureFrom(match) { + if (match.event.type !== "turn/end" || match.event.data.reason.kind !== "error") return void 0; + const failure = match.event.data.reason.error; + return { + seq: match.event.seq, + time: match.event.time, + message: (0, _deepseek_ai_dsh_client_runtime_client.displayFailureMessage)(failure), + code: failure.code + }; + } + function fallbackState(context) { + const end = context.matches.find((match) => failureFrom(match) !== void 0); + if (end?.event.type !== "turn/end") return void 0; + const failure = failureFrom(end); + if (failure === void 0) return void 0; + const turn = end.event.data.turn; + return { + turn, + hidden: context.matches.some((match) => retryTurn(match.event) === turn), + failure + }; + } + /** Terminal turn failure Definition, suppressed when the turn owns a retry chain. */ + const turnErrorDefinition = { + kind: "turn-error", + target: "chat", + match: (event) => { + if (event.type === "turn/start") return { + id: String(event.data.turn), + role: "start" + }; + if (event.type === "turn/end" && event.data.reason.kind === "error") return { + id: String(event.data.turn), + role: "update" + }; + const turn = retryTurn(event); + return turn === void 0 ? null : { + id: String(turn), + role: "update" + }; + }, + start: (_context, match) => { + if (match.event.type !== "turn/start") throw new Error("turn-error start requires turn/start"); + return { + turn: match.event.data.turn, + hidden: false + }; + }, + update: (context, match) => { + const failure = failureFrom(match); + if (failure !== void 0) return { + ...context.state, + failure + }; + return retryTurn(match.event) === context.state.turn ? { + ...context.state, + hidden: true + } : context.state; + }, + buildViewNode: (context) => { + const state = context.state ?? fallbackState(context); + if (state?.failure === void 0) return null; + const failure = state.failure; + const node = { + kind: "turn-error", + seq: failure.seq, + time: failure.time, + turn: state.turn, + step: lastStep$1(context), + message: failure.message, + ...failure.code === void 0 ? {} : { code: failure.code } + }; + if (!state.hidden) return chatNode(context, "turn-error", node.seq, node); + const current = context.current.get("chat"); + return current === void 0 || current === null ? null : chatNode(context, "turn-error", node.seq, node, { visibility: "hidden" }); + } + }; + /** + * Register the terminal Turn-error business contribution. + * @param ctx - owning UI Conversation context. + */ + function registerTurnErrorConversationNode(ctx) { + ctx.conversationEvents.register(turnErrorDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/turn-max-tokens.js + function lastStep(context) { + const location = context.start?.location ?? context.matches[0]?.location; + if (location?.kind !== "turn" && location?.kind !== "step") return 0; + return location.turn.steps.at(-1)?.step ?? 0; + } + /** + * Anchor the notice between the closing Assistant and the turn-tail so the + * tail stays the turn's last Chat node and keeps its branch action enabled. + * Without a closing text Assistant there is no branch action to protect, and + * the turn/end seq keeps the notice at the truncation point. + */ + function noticeAnchor(context, seq) { + const location = context.start?.location ?? context.matches[0]?.location; + if (location?.kind !== "turn" && location?.kind !== "step") return seq; + const closing = location.turn.data.get("turn-tail")?.closing; + return closing === null || closing === void 0 ? seq : closing.finalNode.seq + CHAT_SYNTHETIC_SEQ_OFFSETS.maxTokensNotice; + } + function stateFrom(match) { + if (match.event.type !== "turn/end" || match.event.data.reason.kind !== "max-tokens") return void 0; + return { + turn: match.event.data.turn, + seq: match.event.seq, + time: match.event.time + }; + } + /** Notice Definition for a turn the provider ended at its output-token cap. */ + const turnMaxTokensDefinition = { + kind: "turn-max-tokens", + target: "chat", + match: (event) => { + if (event.type === "turn/end" && event.data.reason.kind === "max-tokens") return { + id: String(event.data.turn), + role: "start" + }; + return null; + }, + start: (_context, match) => { + const state = stateFrom(match); + if (state === void 0) throw new Error("turn-max-tokens start requires a max-tokens turn/end"); + return state; + }, + update: (context) => context.state, + buildViewNode: (context) => { + const state = context.state; + if (state === void 0) return null; + const node = { + kind: "turn-max-tokens", + seq: state.seq, + time: state.time, + turn: state.turn, + step: lastStep(context) + }; + return chatNode(context, "turn-max-tokens", noticeAnchor(context, state.seq), node); + } + }; + /** + * Register the max-tokens turn-end notice contribution. + * @param ctx - owning UI Conversation context. + */ + function registerTurnMaxTokensConversationNode(ctx) { + ctx.conversationEvents.register(turnMaxTokensDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/turn-tail.js + function hasTextAssistant(event) { + return event.type === "assistant/message" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event) && (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(event.data.message.content).some((block) => block.kind === "text" && block.text.trim() !== ""); + } + function chunkHasText(event) { + if (event.type !== "assistant/chunk") return false; + const chunk = event.data.chunk; + if (chunk.type === "text-delta") return chunk.text.trim() !== ""; + return chunk.type === "block-end" && chunk.block.type === "text" && chunk.block.text.trim() !== ""; + } + function turnCoordinates(event) { + if (event.type === "assistant/message" || event.type === "assistant/chunk" || event.type === "step/end") return { + turn: event.data.turn, + step: event.data.step + }; + if (event.type === "llm/retry") return { + turn: event.data.turn, + step: event.data.step + }; + } + function closingAnchor(context) { + let anchor = context.matches.find((match) => match.event.type === "turn/end")?.event.seq ?? context.start?.event.seq ?? context.matches[0]?.event.seq ?? 0; + const steps = /* @__PURE__ */ new Map(); + for (const match of context.matches) { + const event = match.event; + if (event.type === "turn/end") continue; + const coordinates = turnCoordinates(event); + if (coordinates?.step === void 0) continue; + const previous = steps.get(coordinates.step) ?? { + streamedText: false, + finalized: false + }; + if (event.type === "assistant/chunk") { + steps.set(coordinates.step, { + ...previous, + streamedText: previous.streamedText || chunkHasText(event) + }); + continue; + } + if (event.type === "assistant/message") { + steps.set(coordinates.step, { + streamedText: false, + finalized: true + }); + if (hasTextAssistant(event)) anchor = event.seq + CHAT_SYNTHETIC_SEQ_OFFSETS.finalizedFollowup; + continue; + } + if (event.type === "llm/retry") { + steps.set(coordinates.step, { + streamedText: false, + finalized: false + }); + continue; + } + if (event.type === "step/end" && previous.streamedText && !previous.finalized) anchor = event.seq + CHAT_SYNTHETIC_SEQ_OFFSETS.interruptedFollowup; + } + return anchor; + } + function turnLocation(context) { + const location = context.start?.location ?? context.matches[0]?.location; + return location?.kind === "turn" || location?.kind === "step" ? location.turn : void 0; + } + function hasText(data) { + return data.finalNode !== void 0 && data.blocks.some((block) => block.kind === "text" && block.text.trim() !== ""); + } + function tailData(context) { + const end = context.state?.end ?? context.matches.find((match) => match.event.type === "turn/end"); + if (end?.event.type !== "turn/end") return null; + const turn = turnLocation(context); + if (turn === void 0) return null; + const finalized = turn.steps.map((step) => step.data.get("assistant-step")).filter((candidate) => candidate !== void 0).filter((candidate) => candidate.finalNode !== void 0).sort((left, right) => left.finalNode.seq - right.finalNode.seq); + const closing = finalized.findLast(hasText) ?? null; + let latestTranscriptSeq = finalized.at(-1)?.finalNode.seq; + for (const match of context.matches) { + const event = match.event; + const candidate = event.type === "tool/call" || event.type === "tool/result" && (0, _deepseek_ai_dsh_client_runtime_client.isAppendSurfaceEvent)(event) || event.type === "turn/end" && event.data.reason.kind === "error" || event.type === "llm/retry" ? event.seq : void 0; + if (candidate !== void 0 && (latestTranscriptSeq === void 0 || candidate > latestTranscriptSeq)) latestTranscriptSeq = candidate; + } + const metrics = deriveTurnMetrics(finalized.map((candidate) => candidate.finalNode)).get(end.event.data.turn); + return { + turn: end.event.data.turn, + seq: end.event.seq, + time: end.event.time, + closing, + branchUnavailable: closing === null || latestTranscriptSeq !== closing.finalNode.seq, + ...metrics?.ttftMs === void 0 ? {} : { ttftMs: metrics.ttftMs }, + ...metrics?.tokensPerSecond === void 0 ? {} : { tokensPerSecond: metrics.tokensPerSecond } + }; + } + /** Completed-turn footer Definition independent of any Assistant row. */ + const turnTailDefinition = { + kind: "turn-tail", + target: "chat", + match: (event) => { + if (event.type === "turn/start") return { + id: String(event.data.turn), + role: "start" + }; + if (event.type === "turn/end") return { + id: String(event.data.turn), + role: "update" + }; + if (event.type === "tool/call" || event.type === "tool/result") return { + id: String(event.data.turn), + role: "update" + }; + const coordinates = turnCoordinates(event); + if (coordinates !== void 0) return { + id: String(coordinates.turn), + role: "update" + }; + return null; + }, + start: (_context, match) => { + if (match.event.type !== "turn/start") throw new Error("turn-tail start requires turn/start"); + return { turn: match.event.data.turn }; + }, + update: (context, match) => match.event.type === "turn/end" ? { + ...context.state, + end: match + } : context.state, + publication: (match) => match.event.type === "turn/end" ? "immediate" : "none", + buildLocationData: (context, scope) => { + if (scope !== "turn") return null; + const value = tailData(context); + return value === null ? null : { + kind: "turn", + turn: value.turn, + key: "turn-tail", + value + }; + }, + buildViewNode: (context) => { + const data = turnLocation(context)?.data.get("turn-tail"); + return data === void 0 ? null : chatNode(context, "turn-tail", closingAnchor(context), data); + } + }; + /** + * Register completed-Turn footer data and its Chat node contribution. + * @param ctx - owning UI Conversation context. + */ + function registerTurnTailConversationNode(ctx) { + ctx.conversationEvents.register(turnTailDefinition); + } + //#endregion + //#region lib/types/client/conversation-nodes/register.js + /** + * Register the Chat business Definitions and target builder contributed by this package. + * @param ctx - owning UI Conversation context. + */ + function registerConversationNodes(ctx) { + registerInboxConversationNodes(ctx); + registerMessageConversationNode(ctx); + registerAssistantConversationNode(ctx); + registerToolConversationNode(ctx); + registerCommandConversationNode(ctx); + registerCompactionConversationNode(ctx); + registerRetryConversationNode(ctx); + registerTurnErrorConversationNode(ctx); + registerTurnMaxTokensConversationNode(ctx); + registerTurnTailConversationNode(ctx); + registerUnknownConversationFallback(ctx); + registerChatConversationView(ctx); + } + //#endregion + //#region lib/types/client/chat/use-throttled-visual-update.js + /** Frame-throttled scheduling for non-essential visual alignment. */ + const DEFAULT_INTERVAL_FRAMES = 3; + /** + * Return a stable scheduler that coalesces visual updates over a frame interval. + * @param update - DOM alignment to run after the throttle interval. + * @param intervalFrames - frames to wait before applying the latest alignment. + * @returns a stable function that schedules the latest update. + */ + function useThrottledVisualUpdate(update, intervalFrames = DEFAULT_INTERVAL_FRAMES) { + const updateRef = (0, react.useRef)(update); + updateRef.current = update; + const pendingFrameRef = (0, react.useRef)(null); + (0, react.useLayoutEffect)(() => () => { + if (pendingFrameRef.current === null) return; + cancelAnimationFrame(pendingFrameRef.current); + pendingFrameRef.current = null; + }, []); + return (0, react.useCallback)(() => { + if (pendingFrameRef.current !== null) return; + let remainingFrames = intervalFrames; + const advance = () => { + remainingFrames -= 1; + if (remainingFrames > 0) { + pendingFrameRef.current = requestAnimationFrame(advance); + return; + } + pendingFrameRef.current = null; + updateRef.current(); + }; + pendingFrameRef.current = requestAnimationFrame(advance); + }, [intervalFrames]); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/accessibility.module.css.mjs + const css$4 = ".hXDBwq_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}"; + const tagId$4 = "@deepseek-ai/dsh-client-ui-conversation/accessibility.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$4; + tag.textContent = css$4; + document.head.appendChild(tag); + } + var accessibility_module_css_default = { "visuallyHidden": "hXDBwq_visuallyHidden" }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/ReasoningRow.module.css.mjs + const css$3 = ".QWLzlG_root{flex-direction:column;display:flex}.QWLzlG_row{position:relative;overflow:hidden}.QWLzlG_root[data-state=running] .QWLzlG_row:after{content:\"\";inset-block:0;background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite QWLzlG_dsh-reasoning-row-sweep;position:absolute;left:0}@keyframes QWLzlG_dsh-reasoning-row-sweep{0%{left:-300px}90%,to{left:100%}}.QWLzlG_leading{flex-shrink:0}.QWLzlG_chevron{color:var(--dsw-alias-label-secondary)}.QWLzlG_title{font-weight:400}.QWLzlG_separator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.QWLzlG_summary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.QWLzlG_summary[data-follow-end]{text-overflow:clip}.QWLzlG_thinkBody{color:var(--dsw-alias-label-tertiary);white-space:pre-wrap;word-break:break-word;padding:4px 0 4px 22px;font-size:14px;line-height:24px}@media (prefers-reduced-motion:reduce){.QWLzlG_root[data-state=running] .QWLzlG_row:after{animation:none}}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-conversation/ReasoningRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var ReasoningRow_module_css_default = { + "thinkBody": "QWLzlG_thinkBody", + "row": "QWLzlG_row", + "root": "QWLzlG_root", + "separator": "QWLzlG_separator", + "chevron": "QWLzlG_chevron", + "dsh-reasoning-row-sweep": "QWLzlG_dsh-reasoning-row-sweep", + "summary": "QWLzlG_summary", + "title": "QWLzlG_title", + "leading": "QWLzlG_leading" + }; + //#endregion + //#region lib/types/client/chat/ReasoningRow.js + /** Assistant reasoning disclosure, independent of Tool-call presentation. */ + function firstLine(text) { + const newline = text.indexOf("\n"); + return newline === -1 ? text : text.slice(0, newline); + } + function latestLine(text) { + const visible = text.trimEnd(); + const newline = visible.lastIndexOf("\n"); + return newline === -1 ? visible : visible.slice(newline + 1); + } + /** + * Render one assistant reasoning block as the Think disclosure row. + * @param props.text - complete or streaming reasoning text. + * @param props.running - whether this block is the streaming tail. + * @param props.t - conversation locale seat for the running status. + * @returns the reasoning disclosure. + */ + function ReasoningRow({ text, running, t }) { + const [expanded, setExpanded] = (0, react.useState)(false); + const summaryRef = (0, react.useRef)(null); + const summary = running ? latestLine(text) : firstLine(text); + const scheduleSummaryScroll = useThrottledVisualUpdate(() => { + const element = summaryRef.current; + if (element === null) return; + element.scrollLeft = running ? element.scrollWidth - element.clientWidth : 0; + }); + (0, react.useEffect)(() => { + scheduleSummaryScroll(); + }, [ + running, + scheduleSummaryScroll, + summary + ]); + return (0, react_jsx_runtime.jsxs)("div", { + className: ReasoningRow_module_css_default.root, + "data-variant": "think", + "data-state": running ? "running" : "ok", + children: [running && (0, react_jsx_runtime.jsx)("span", { + className: accessibility_module_css_default.visuallyHidden, + children: t("row.running") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + rowClassName: ReasoningRow_module_css_default.row, + leadingClassName: ReasoningRow_module_css_default.leading, + titleClassName: ReasoningRow_module_css_default.title, + chevronClassName: ReasoningRow_module_css_default.chevron, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconThinkOutline14, { size: 14 }), + title: "Think", + open: expanded, + expandable: true, + expandOnRowClick: true, + onToggle: () => { + setExpanded((value) => !value); + }, + collapsedContent: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: ReasoningRow_module_css_default.separator, + "aria-hidden": true + }), (0, react_jsx_runtime.jsx)("span", { + ref: summaryRef, + className: ReasoningRow_module_css_default.summary, + "data-follow-end": running || void 0, + children: summary + })] }), + children: (0, react_jsx_runtime.jsx)("div", { + className: ReasoningRow_module_css_default.thinkBody, + children: text + }) + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/AssistantMarkdown.module.css.mjs + const css$2 = ".Sxvs8a_root{color:var(--dsw-alias-label-primary);flex-direction:column;font-size:16px;line-height:28px;display:flex}.Sxvs8a_body{flex-direction:column;gap:16px;display:flex}.Sxvs8a_stopped{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-tertiary);border-radius:6px;align-self:flex-start;padding:0 6px;font-size:11px;line-height:18px}.Sxvs8a_actions{margin-top:16px;margin-left:-6px}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-conversation/AssistantMarkdown.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var AssistantMarkdown_module_css_default = { + "body": "Sxvs8a_body", + "root": "Sxvs8a_root", + "stopped": "Sxvs8a_stopped", + "actions": "Sxvs8a_actions" + }; + //#endregion + //#region lib/types/client/chat/AssistantMarkdown.js + /** Reasoning block as the Think variant summary row (figma 39:28304). */ + const AssistantMarkdown = (0, react.memo)(function AssistantMarkdown({ blocks, streaming, interrupted, loadImage, mentions, t }) { + const imageLoader = loadImage ?? (() => Promise.reject(new Error(t("image.serviceUnavailable")))); + const codeLabels = (0, react.useMemo)(() => ({ + copyLabel: t("copy"), + copiedLabel: t("copied") + }), [t]); + const last = blocks.length - 1; + if (!(streaming || interrupted === true || blocks.some((block) => block.kind !== "tool-call"))) return null; + const rendered = []; + for (let i = 0; i < blocks.length; i++) { + const block = blocks[i]; + if (block === void 0) continue; + switch (block.kind) { + case "text": + rendered.push((0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { + text: block.text, + streaming, + codeLabels, + fileMentions: mentions + }, i)); + break; + case "reasoning": + rendered.push((0, react_jsx_runtime.jsx)(ReasoningRow, { + text: block.text, + running: streaming && i === last, + t + }, i)); + break; + case "image": { + const start = i; + const group = [block]; + while (i + 1 < blocks.length) { + const next = blocks[i + 1]; + if (next === void 0 || next.kind !== "image") break; + group.push(next); + i += 1; + } + rendered.push((0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_attachment.ImageGallery, { + images: group, + load: imageLoader, + align: "start", + labels: messageImageLabels(t) + }, start)); + break; + } + case "tool-call": break; + default: rendered.push((0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, { + label: t("message.unknownBlock"), + payload: block.block, + truncatedLabel: (total) => t("json.truncated", { total }) + }, i)); + } + } + return (0, react_jsx_runtime.jsx)("div", { + className: AssistantMarkdown_module_css_default.root, + "data-streaming": streaming || void 0, + children: (0, react_jsx_runtime.jsxs)("div", { + className: AssistantMarkdown_module_css_default.body, + children: [rendered, interrupted && (0, react_jsx_runtime.jsx)("span", { + className: AssistantMarkdown_module_css_default.stopped, + children: t("message.stopped") + })] + }) + }); + }); + //#endregion + //#region lib/types/client/chat/AssistantNodeView.js + /** Streaming, settled, and interrupted Assistant states share one keyed renderer instance. */ + const AssistantNodeView = (0, react.memo)(function AssistantNodeView({ node, useTurnData, openFile, loadImage, fileMentions, t }) { + const data = node.data; + const turn = node.location.kind === "turn" || node.location.kind === "step" ? node.location.turn : void 0; + const tail = useTurnData("turn-tail"); + const owner = (0, react.useMemo)(() => { + if (turn?.status !== "closed" || data.finalNode === void 0) return void 0; + if (tail?.closing?.finalNode.seq !== data.finalNode.seq) return void 0; + return { + turn, + seq: data.finalNode.seq, + openFile + }; + }, [ + data.finalNode, + openFile, + tail, + turn + ]); + const mentions = (0, react.useMemo)(() => owner === void 0 ? void 0 : fileMentions(owner), [fileMentions, owner]); + return (0, react_jsx_runtime.jsx)(AssistantMarkdown, { + blocks: data.blocks, + streaming: data.status === "running", + interrupted: data.status === "interrupted", + loadImage, + mentions, + t + }); + }); + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/GenericCommandCard.module.css.mjs + const css$1 = "._Xvjua_root{flex-direction:column;display:flex}._Xvjua_row{position:relative;overflow:hidden}._Xvjua_root[data-state=running] ._Xvjua_row:after{content:\"\";inset-block:0;background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite _Xvjua_dsh-command-row-sweep;position:absolute;left:0}@keyframes _Xvjua_dsh-command-row-sweep{0%{left:-300px}90%,to{left:100%}}._Xvjua_leading{flex-shrink:0}._Xvjua_chevron{color:var(--dsw-alias-label-secondary)}._Xvjua_title{font-weight:400}._Xvjua_separator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}._Xvjua_summary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}._Xvjua_summary[data-error],._Xvjua_body[data-error]{color:var(--dsw-alias-state-error-primary)}._Xvjua_body{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);max-height:260px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;border-radius:12px;margin:4px 0 4px 4px;padding:12px 16px;overflow:auto}@media (prefers-reduced-motion:reduce){._Xvjua_root[data-state=running] ._Xvjua_row:after{animation:none}}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-conversation/GenericCommandCard.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var GenericCommandCard_module_css_default = { + "root": "_Xvjua_root", + "separator": "_Xvjua_separator", + "leading": "_Xvjua_leading", + "chevron": "_Xvjua_chevron", + "summary": "_Xvjua_summary", + "body": "_Xvjua_body", + "row": "_Xvjua_row", + "title": "_Xvjua_title", + "dsh-command-row-sweep": "_Xvjua_dsh-command-row-sweep" + }; + //#endregion + //#region lib/types/client/chat/GenericCommandCard.js + /** Node state → row state semantic (running while unsettled; outcome kind after). */ + function stateOf(outcome) { + if (outcome === null) return "running"; + return outcome.kind === "error" ? "error" : "ok"; + } + function leadingFor(state) { + return state === "error" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconApiOutline14, { size: 14 }); + } + function GenericCommandCard({ node, t, runningSummary }) { + const [expanded, setExpanded] = (0, react.useState)(false); + const text = node.outcome?.text; + const summary = node.outcome === null ? runningSummary ?? t("command.running") : text ?? (node.outcome.kind === "error" ? t("command.failed") : t("command.done")); + const title = node.name ?? t("command.title"); + const state = stateOf(node.outcome); + const body = text !== void 0 && text.includes("\n") ? text : null; + const open = expanded && body !== null; + return (0, react_jsx_runtime.jsxs)("div", { + className: GenericCommandCard_module_css_default.root, + "data-variant": "others", + "data-state": state, + children: [ + state === "running" && (0, react_jsx_runtime.jsx)("span", { + className: accessibility_module_css_default.visuallyHidden, + children: t("row.running") + }), + state === "error" && (0, react_jsx_runtime.jsx)("span", { + className: accessibility_module_css_default.visuallyHidden, + children: t("row.failed") + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, { + rowClassName: GenericCommandCard_module_css_default.row, + leadingClassName: GenericCommandCard_module_css_default.leading, + titleClassName: GenericCommandCard_module_css_default.title, + chevronClassName: GenericCommandCard_module_css_default.chevron, + icon: leadingFor(state), + title, + open, + expandable: body !== null, + expandOnRowClick: true, + keepContentWhenOpen: true, + onToggle: () => { + setExpanded((value) => !value); + }, + collapsedContent: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: GenericCommandCard_module_css_default.separator, + "aria-hidden": true + }), (0, react_jsx_runtime.jsx)("span", { + className: GenericCommandCard_module_css_default.summary, + "data-error": state === "error" || void 0, + children: summary + })] }), + children: (0, react_jsx_runtime.jsx)("pre", { + className: GenericCommandCard_module_css_default.body, + "data-error": state === "error" || void 0, + children: body + }) + }) + ] + }); + } + //#endregion + //#region lib/types/client/chat/CompactionCommandCard.js + /** Render one manual compaction lifecycle without duplicating its checkpoint marker. */ + function CompactionCommandCard({ node, compaction, t }) { + if (compaction !== void 0) return (0, react_jsx_runtime.jsx)(CompactionItem, { + node: compaction, + title: "compact", + fallbackSummary: node.outcome?.text ?? null, + t + }); + if (node.outcome !== null) return (0, react_jsx_runtime.jsx)(GenericCommandCard, { + node, + t + }); + return (0, react_jsx_runtime.jsx)(GenericCommandCard, { + node, + t, + runningSummary: t("message.compaction.running") + }); + } + //#endregion + //#region lib/types/client/chat/CommandNodeView.js + /** Ordinary command lifecycle renderer with command-name keyed specialization. */ + const CommandNodeView = (0, react.memo)(function CommandNodeView({ node, renderSlot, t }) { + const command = node.data; + const owner = (0, react.useMemo)(() => ({ node: command }), [command]); + return (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.callRow, + children: renderSlot("conversation.chat.commandview", owner, { + entryKey: command.name ?? "", + fallback: (0, react_jsx_runtime.jsx)(GenericCommandCard, { + ...owner, + t + }) + }) + }); + }); + /** One integrated `/compact` command and compaction transaction renderer. */ + const ManualCompactionNodeView = (0, react.memo)(function ManualCompactionNodeView({ node, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)("div", { + className: ChatView_module_css_default.callRow, + children: (0, react_jsx_runtime.jsx)(CompactionCommandCard, { + node: data.command, + ...data.compaction === null ? {} : { compaction: data.compaction }, + t + }) + }); + }); + //#endregion + //#region lib/types/client/chat/turn-assistant.js + /** + * Collect visible prose from one Assistant lifecycle. + * @param blocks - Assistant content blocks. + * @returns concatenated text blocks. + */ + function assistantText(blocks) { + return blocks.flatMap((block) => block.kind === "text" ? [block.text] : []).join(""); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-conversation/src/client/chat/TurnTailNodeView.module.css.mjs + const css = ".osXY9a_root{flex-direction:column;gap:16px;display:flex}.osXY9a_actions{margin-left:-6px}"; + const tagId = "@deepseek-ai/dsh-client-ui-conversation/TurnTailNodeView.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-conversation"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var TurnTailNodeView_module_css_default = { + "root": "osXY9a_root", + "actions": "osXY9a_actions" + }; + //#endregion + //#region lib/types/client/chat/TurnTailNodeView.js + /** Turn-local actions and feature tail over the Location index, independent of Assistant placement. */ + const TurnTailNodeView = (0, react.memo)(function TurnTailNodeView({ node, openFile, forkAt, renderSlot, renderSlotChain, t, useSession }) { + const data = node.data; + const hasLaterChatNode = useSession((snapshot) => snapshot.chat.locations.getTurn(data.turn).at(-1) !== node.key); + const turn = node.location.kind === "turn" || node.location.kind === "step" ? node.location.turn : void 0; + if (turn === void 0) return null; + const closing = data.closing; + const tail = renderSlotChain("conversation.chat.turnTail", { + turn, + seq: closing?.finalNode.seq ?? data.seq, + openFile + }); + if (closing === null) return tail === null ? null : (0, react_jsx_runtime.jsx)("div", { + className: TurnTailNodeView_module_css_default.root, + children: tail + }); + const runMs = turn.start === void 0 || turn.end === void 0 ? void 0 : Math.max(0, turn.end.time - turn.start.time); + const messageId = closing.finalNode.messageId; + const assistantActions = messageId === void 0 ? null : renderSlot("conversation.chat.assistant-actions", { messageId }); + return (0, react_jsx_runtime.jsxs)("div", { + className: TurnTailNodeView_module_css_default.root, + "data-turn-tail": data.turn, + "data-time-hover-root": true, + children: [tail, (0, react_jsx_runtime.jsx)(MessageIconActions, { + text: assistantText(closing.blocks), + time: closing.time, + runMs, + ttftMs: data.ttftMs, + tokensPerSecond: data.tokensPerSecond, + clock: "end", + onBranch: () => { + forkAt(closing.finalNode.seq); + }, + branchUnavailable: data.branchUnavailable || hasLaterChatNode, + className: TurnTailNodeView_module_css_default.actions, + extraActions: assistantActions, + t + })] + }); + }); + //#endregion + //#region lib/types/client/chat/register-node-renderers.js + /** + * Register this package's business renderers behind the keyed Chat Node seat. + * @param ctx - owning UI Conversation context. + */ + function registerChatNodeRenderers(ctx) { + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "user", + locale: NS + }, UserMessageNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "steering", + locale: NS + }, UserMessageNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "context", + locale: NS + }, ContextMessageNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "assistant-step", + locale: NS + }, AssistantNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "command", + locale: NS, + children: { "conversation.chat.commandview": { + kind: "keyed", + scope: "session" + } } + }, CommandNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "manual-compaction", + locale: NS + }, ManualCompactionNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "compaction", + locale: NS + }, CompactionNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "model-retry", + locale: NS + }, RetryNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "turn-error", + locale: NS + }, TurnErrorNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "turn-max-tokens", + locale: NS + }, TurnMaxTokensNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "turn-tail", + locale: NS, + children: { + "conversation.chat.turnTail": { + kind: "chain", + scope: "session" + }, + "conversation.chat.assistant-actions": { + kind: "list", + scope: "session" + } + } + }, TurnTailNodeView)); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "unknown", + locale: NS + }, UnknownNodeView)); + } + //#endregion + //#region lib/types/client/apply.js + /** Services required by the conversation plugin. */ + const inject = [ + "slots", + "layout", + "sessions", + "workspaces", + "locale", + "connection", + "remote", + "settingsScope", + "conversationEvents", + "conversationViews" + ]; + const ABSENT_NOTICES = { + getSnapshot: () => null, + subscribe: () => () => {} + }; + /** No session, therefore nothing to block; same one-identity rule as above. */ + const ABSENT_BLOCK = { + getSnapshot: () => void 0, + subscribe: () => () => {} + }; + const EMPTY_LEXICON = /* @__PURE__ */ new Map(); + const ABSENT_LEXICON = { + getSnapshot: () => EMPTY_LEXICON, + subscribe: () => () => {} + }; + const ABSENT_MENU_LAUNCHER = { + getSnapshot: () => null, + subscribe: () => () => {} + }; + const CHAT_NODE_INJECT = { hooks: { turnData: ({ useSession }, nodeKey) => function useTurnData(key) { + return useSession((snapshot) => { + const location = snapshot.chat.nodes.get(nodeKey)?.location; + return location?.kind === "turn" || location?.kind === "step" ? location.turn.data.get(key) : void 0; + }); + } } }; + /** Resolve the session-scoped conversation face (scope-addressed send/cancel), failing loud. */ + function scopedConversation(sessions, id) { + const scoped = sessions.scope(id); + if (scoped === void 0) throw new Error(`ui-conversation: session "${id}" resolved no scope`); + const conversation = scoped.get("conversation"); + if (conversation === void 0) throw new Error("ui-conversation: conversation service unavailable through the session scope"); + return conversation; + } + /** Resolve package-internal attachment operations from the public service registration. */ + function concreteConversation(ctx) { + const conversation = ctx.get("conversation"); + if (conversation === void 0) throw new Error("ui-conversation: conversation service unavailable"); + return conversation; + } + /** Chain routing: claim the composer while an approval wait is pending (pure — owner props only). */ + function selectApproval({ interactions }) { + return interactions.find((i) => i.kind === "approval") ?? null; + } + /** Mounts the conversation plugin. + * @param ctx - Client root context. + */ + function apply(ctx) { + const sessions = ctx.sessions; + const workspaces = ctx.workspaces; + const layout = ctx.layout; + const slots = ctx.slots; + registerConversationNodes(ctx); + registerChatNodeRenderers(ctx); + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-conversation: dictionaries"); + const t = ctx.locale.bind(NS); + const chatStore = createChatStore(); + const submissionPolicy = new ComposerSubmissionPolicy(ctx.settingsScope.bind({ namespace: CONVERSATION_SETTINGS_NAMESPACE })); + ctx.slots.inject("settings.general.item", () => ctx.slots.register({ + name: "settings.general.item", + id: "composer-enter", + order: 20, + locale: NS, + inject: () => ({ + hooks: { busyEnter: submissionPolicy.busyEnter }, + setBusyEnter: (behavior) => { + submissionPolicy.setBusyEnter(behavior); + } + }) + }, EnterBehaviorRow)); + const chatScrollPositions = /* @__PURE__ */ new Map(); + const viewTabs = () => { + const tabs = []; + for (const entry of slots.entries("conversation.view")) { + /* v8 ignore next -- unreachable: list registration validates id at load. */ + if (entry.options.id === void 0) continue; + tabs.push({ + id: entry.options.id, + label: (0, _deepseek_ai_dsh_client_ui_slots.resolveSlotLabel)(entry.options.label) ?? entry.options.id + }); + } + return tabs; + }; + const views = { + list: viewTabs, + subscribe: (fn) => slots.subscribe("conversation.view", fn), + version: () => slots.getVersion("conversation.view") + }; + const inputHub = new InputHub(ctx, t); + const composerBlocks = new ComposerBlockRegistry(); + ctx.effect(() => sessions.provide({ + hooks: ["input"], + props: ["inputActions"], + resolve: (binding) => { + const shell = inputHub.shellFor(binding); + return { + hooks: { input: shell.state }, + props: { inputActions: shell.actions } + }; + } + }), "ui-conversation: input standard-kit provider"); + slots.register({ + name: "conversation", + locale: NS, + children: { + "conversation.session": { + kind: "single", + scope: "session" + }, + "conversation.session.header": { + kind: "single", + scope: "session" + }, + "conversation.composer": { + kind: "chain", + scope: "session" + }, + "conversation.composer.bar": { + kind: "single", + scope: "session-maybe" + }, + "conversation.input.overlay": { + kind: "list", + scope: "session" + }, + "conversation.input.dock": { + kind: "list", + scope: "session" + }, + "conversation.composer.dock": { + kind: "list", + scope: "session" + }, + "conversation.input.left": { + kind: "list", + scope: "session" + }, + "conversation.input.right": { + kind: "list", + scope: "session" + }, + "conversation.hero.workspace": { + kind: "single", + scope: "root" + }, + "conversation.hero.agentPreset": { + kind: "single", + scope: "root" + } + }, + inject: (sessionId) => ({ + hooks: { composerBlock: sessionId === void 0 ? ABSENT_BLOCK : composerBlocks.storeFor(sessionId) }, + selectWorkspace: async (workspaceId) => { + const nextId = await workspaces.connectWorkspace(workspaceId); + if (sessionId !== void 0 && nextId !== sessionId) { + const from = inputHub.shell(sessionId); + const draft = from.snapshot.draft; + const imageIds = from.snapshot.imageIds; + const next = inputHub.shell(nextId); + if (imageIds.length === 0 || next.addImages(imageIds)) { + if (draft !== "") { + next.setDraft(draft); + from.setDraft(""); + } + if (imageIds.length > 0) for (const id of imageIds) from.removeImage(id); + } + } + sessions.open(nextId); + } + }) + }, ConversationRoot); + slots.register({ + name: "conversation.session", + children: { "conversation.view": { + kind: "list", + scope: "session" + } }, + store: chatStore, + inject: (sessionId, _actions) => { + const conversation = concreteConversation(ctx); + return { + views, + releaseSessionImages: (id) => { + conversation.releaseSessionImages(id); + }, + bindDraftMirror: (write) => inputHub.shell(sessionId).bindMirror(write) + }; + } + }, ConversationSession); + slots.register({ + name: "conversation.session.header", + locale: NS, + children: { + "conversation.session.header.actions": { + kind: "list", + scope: "session" + }, + "conversation.session.header.utilities": { + kind: "list", + scope: "session" + } + }, + store: chatStore, + inject: () => ({ + views, + open: (id) => { + sessions.open(id); + } + }) + }, ConversationSessionHeader); + slots.register({ + name: "conversation.composer.bar", + locale: NS, + children: { + "conversation.input.plan": { + kind: "single", + scope: "session" + }, + "conversation.input.model": { + kind: "single", + scope: "session" + } + }, + inject: (sessionId) => { + if (sessionId === void 0) return { + keyboard: void 0, + addImages: void 0, + removeImage: void 0, + draftImages: void 0, + resolveSubmitMode: (running, gesture, steeringAvailable) => submissionPolicy.resolve(running, gesture, steeringAvailable), + toggleCommandMenu: void 0, + stop: void 0, + command: void 0, + hooks: { + notices: ABSENT_NOTICES, + lexicon: ABSENT_LEXICON, + menuLauncher: ABSENT_MENU_LAUNCHER + } + }; + const conversation = concreteConversation(ctx); + const shell = inputHub.shell(sessionId); + const inputTriggers = inputHub.inputTriggers(sessionId); + return { + keyboard: shell, + addImages: (files) => { + try { + const images = conversation.createDraftImages(files); + if (!shell.addImages(images.map((image) => image.id))) conversation.releaseDraftImages(images); + return null; + } catch (error) { + if (error instanceof UnsupportedImageMediaTypeError) return t("image.unsupportedType"); + return error instanceof Error ? error.message : String(error); + } + }, + removeImage: (id) => { + conversation.releaseDraftImage(id); + shell.removeImage(id); + }, + draftImages: (ids) => conversation.draftImages(ids), + resolveSubmitMode: (running, gesture, steeringAvailable) => submissionPolicy.resolve(running, gesture, steeringAvailable), + toggleCommandMenu: inputTriggers === void 0 ? void 0 : (selection) => { + shell.dismissPopup(); + const snapshot = shell.snapshot; + inputTriggers.toggleSource("command", { + trigger: "/", + query: "", + position: snapshot.draft.slice(0, selection.start).trim() === "" ? "leading" : "inline", + span: { + ...selection, + draftRev: snapshot.draftRev + } + }); + }, + stop: () => { + scopedConversation(sessions, sessionId).cancel().catch(() => {}); + }, + command: async (line) => { + const session = sessions.binding(sessionId)?.session; + if (session === void 0) return false; + const result = await session.command(line); + return result.ok && result.value.matched; + }, + hooks: { + notices: shell.notices, + lexicon: shell.lexicon, + menuLauncher: inputTriggers?.launcher ?? ABSENT_MENU_LAUNCHER + } + }; + } + }, InputBar); + slots.register({ + name: "conversation.composer", + select: selectApproval, + priority: 1, + locale: NS + }, ApprovalPanel); + slots.register({ + name: "conversation.view", + id: "chat", + order: 0, + label: () => t("view.chat"), + locale: NS, + children: { "conversation.chat.node": { + kind: "keyed", + scope: "session", + inject: CHAT_NODE_INJECT + } }, + store: chatStore, + inject: (sessionId, actions) => { + const conversation = concreteConversation(ctx); + const scoped = scopedConversation(sessions, sessionId); + return { + openDetails: (target) => { + actions.select(target); + layout.openDetails(); + }, + fileMentions: (owner) => ctx.get("chatFileMentions")?.forClosing(owner), + openFile: (path) => { + const cwd = sessions.list.getSnapshot().byId[sessionId]?.cwd; + workspaces.openPath((0, _deepseek_ai_dsh_client_runtime_client.resolveWorkspacePath)(cwd, path)).catch(() => {}); + }, + loadOlder: () => { + scoped.loadOlder(); + }, + loadImage: (attachment) => conversation.resolveImage(sessionId, attachment), + inspectCall: (callId) => { + actions.setInspect({ callId }); + actions.setView("trajectory"); + }, + chatScroll: { + save: (position) => { + if (position === null) chatScrollPositions.delete(sessionId); + else chatScrollPositions.set(sessionId, position); + }, + read: () => chatScrollPositions.get(sessionId) ?? null + }, + forkAt: (seq) => { + sessions.fork({ + sessionId, + atSeq: seq, + increaseTitle: true + }).then((childId) => { + sessions.open(childId); + }).catch(() => {}); + } + }; + } + }, ChatView); + slots.register({ + name: "conversation.composer.dock", + id: "stats", + order: 0, + locale: NS + }, StatsLine); + ctx.plugin(ConversationController, { + input: inputHub, + blocks: composerBlocks + }); + ctx.plugin(todoDockEntry); + ctx.plugin(queueDockEntry); + slots.register({ + name: "details", + locale: NS, + children: { "conversation.details.tool": { + kind: "single", + scope: "session" + } }, + store: chatStore, + inject: () => ({ closeDetails: () => { + layout.closeDetails(); + } }) + }, DetailsPanel); + } + //#endregion + exports.ConversationController = ConversationController; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000016 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000016 new file mode 100644 index 0000000..53be4bb --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000016 @@ -0,0 +1,2425 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-workspace", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/client/stores.js + /** + * The workspace browser's viewing store: the session-list grouping mode, + * persisted across reloads. Module level exports the factory only (a + * module-level handle would pin the store identity across plugin reloads); + * register() receives the factory and the browser derives its PropsStore + * share from the return type. + */ + /** Browser-local order account for the hierarchy-free flat Session list. */ + const FLAT_SESSION_ORDER_KEY = "__flat_session_order__"; + /** + * Create the workspace browser viewing store handle. + * @returns the store handle (spec + type + identity + factory in one). + */ + function createWorkspaceViewStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({ + init: () => ({ + groupBy: "workspace", + orderBy: "updated", + groupExpansion: {}, + sessionOrderByAccount: {}, + sessionUpdatedAtByAccount: {} + }), + persist: "dsh.workspace.view.v5", + actions: { + setGroupBy: (d, mode) => { + d.groupBy = mode; + }, + setOrderBy: (d, mode) => { + d.orderBy = mode; + }, + setGroupExpanded: (d, key, expanded) => { + d.groupExpansion[key] = expanded; + }, + retainAccountKeys: (d, workspaceKeys) => { + const retained = new Set(workspaceKeys); + d.groupExpansion = Object.fromEntries(Object.entries(d.groupExpansion).filter(([key]) => retained.has(key))); + d.sessionOrderByAccount = Object.fromEntries(Object.entries(d.sessionOrderByAccount).filter(([key]) => retained.has(key))); + d.sessionUpdatedAtByAccount = Object.fromEntries(Object.entries(d.sessionUpdatedAtByAccount).filter(([key]) => retained.has(key))); + }, + syncSessionOrderAccount: (d, accountKey, order, updatedAt) => { + d.sessionOrderByAccount[accountKey] = order; + d.sessionUpdatedAtByAccount[accountKey] = updatedAt; + }, + setSessionOrder: (d, accountKey, order) => { + d.sessionOrderByAccount[accountKey] = order; + } + } + }); + } + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + /** Display label for the ungrouped bucket row. */ + const UNGROUPED_LABEL = "Ungrouped"; + /** + * Directory display label: basename of the path (both separators accepted). + * Ungrouped-bucket fallback for surfaces without a workspace title. + * @param cwd - directory path, or undefined for the ungrouped bucket. + * @returns basename, the raw cwd when it has no basename, or the ungrouped label. + */ + function workspaceLabel(cwd) { + if (cwd === void 0 || cwd === "") return UNGROUPED_LABEL; + const base = cwd.replace(/[/\\]+$/, "").split(/[/\\]/).pop(); + return base !== void 0 && base !== "" ? base : cwd; + } + /** Recency comparator: newest first, id as the deterministic tiebreak (ids are unique per group). */ + function byRecency(a, b) { + if (b.updatedAt !== a.updatedAt) return b.updatedAt - a.updatedAt; + return a.id < b.id ? -1 : 1; + } + /** + * Ordinary sessions are visible; among blank sessions, only the current one + * is visible. Subagent children use their parent header catalog; archived + * sessions are visible nowhere, while their accounting slots remain so + * unarchiving restores position. + */ + function sessionVisible(session, current, archived) { + return session.origin !== "subagent" && !archived.has(session.id) && (!session.blank || session.id === current); + } + /** + * A blank session is the selected Workspace's provisional New Session row; + * its canonical title never enters search (blank rows are query-excluded) + * and the renderer localizes its display label. + */ + function sessionTitle(session) { + return session.blank ? "New Session" : session.displayTitle; + } + /** Build one group without projecting session lineage into presentation. */ + function buildGroup(key, workspaceId, cwd, createdAt, label, members, order) { + const sessions = [...members]; + if (order === "recency") sessions.sort(byRecency); + return { + key, + workspaceId, + cwd, + createdAt, + label, + sessions + }; + } + /** Apply a stored Ungrouped order and append newly loose Sessions by recency. */ + function orderedUngrouped(members, stored) { + const byId = new Map(members.map((session) => [session.id, session])); + const included = /* @__PURE__ */ new Set(); + const ordered = []; + for (const key of stored) { + const session = byId.get(key); + if (session === void 0 || included.has(key)) continue; + ordered.push(session); + included.add(key); + } + for (const session of [...members].sort(byRecency)) { + if (included.has(session.id)) continue; + ordered.push(session); + } + return ordered; + } + /** + * Group Sessions by Host Workspace: one group per entity in stable Host + * order, with members resolved from sessionIds in their stored order. Sessions + * outside every Workspace trail in the browser-local Ungrouped order, which + * falls back to recency before that order is initialized. + */ + function groupByWorkspace(list, workspaces, archived, ungroupedOrder) { + const groups = []; + const accounted = /* @__PURE__ */ new Set(); + for (const workspace of workspaces) { + const members = []; + for (const id of workspace.sessionIds) { + const summary = list.byId[id]; + if (summary === void 0) continue; + accounted.add(id); + if (!sessionVisible(summary, list.current, archived)) continue; + members.push(summary); + } + groups.push(buildGroup(workspace.workspaceId, workspace.workspaceId, workspace.path, Date.parse(workspace.createdAt), workspace.title, members, "account")); + } + const stray = list.ids.map((id) => list.byId[id]).filter((s) => s !== void 0 && !accounted.has(s.id) && sessionVisible(s, list.current, archived)); + if (stray.length > 0) groups.push(buildGroup("", void 0, void 0, void 0, UNGROUPED_LABEL, ungroupedOrder === void 0 ? stray : orderedUngrouped(stray, ungroupedOrder), ungroupedOrder === void 0 ? "recency" : "account")); + return groups; + } + function sessionNode(s, descendants) { + return { + id: s.id, + title: sessionTitle(s), + blank: s.blank, + running: s.running, + runningSubagentCount: descendants.get(s.id)?.runningCount ?? 0, + completed: s.completed === true, + updatedAt: s.updatedAt, + ...s.pendingInteraction === void 0 ? {} : { pendingInteraction: s.pendingInteraction } + }; + } + /** + * Derive the workspace browser groups with every session as a top-level row. + * + * Every group shows; sessions populate under expanded groups in the selected + * local order. Blank sessions are excluded except for the selected + * provisional New Session row; archived sessions are excluded everywhere. + * Content search lives outside this derivation + * (see {@link deriveSearchResults}). + * @param list - sessions list snapshot (`current` feeds containsCurrent). + * @param workspaces - real workspaces in stable Host order. + * @param archivedSessionIds - registry-global archive set. + * @param view - local expansion arrays. + * @returns group sections in render order. + */ + function deriveGroups(list, workspaces, archivedSessionIds, view) { + const archived = new Set(archivedSessionIds); + const expandedGroups = new Set(view.expandedGroups); + const descendants = (0, _deepseek_ai_dsh_client_runtime_client.indexSubagentDescendants)(list.byId); + const currentGroup = list.current === void 0 ? void 0 : workspaces.find((w) => w.sessionIds.includes(list.current))?.workspaceId ?? ""; + const groups = []; + for (const g of groupByWorkspace(list, workspaces, archived, view.ungroupedOrder)) { + const expanded = expandedGroups.has(g.key); + groups.push({ + key: g.key, + workspaceId: g.workspaceId, + cwd: g.cwd, + createdAt: g.createdAt, + label: g.label, + sessionCount: g.sessions.length, + expanded, + containsCurrent: g.key === currentGroup, + sessions: expanded ? g.sessions.map((session) => sessionNode(session, descendants)) : [] + }); + } + return groups; + } + /** + * Derive the flat session list ("In one list" mode): every session — fork + * children included — as a top-level row, strictly newest-first. No grouping, + * no parent/child adjacency. Content search lives outside this derivation + * (see {@link deriveSearchResults}). + * @param list - sessions list snapshot. + * @param archivedSessionIds - registry-global archive set. + * @returns flat rows in render order. + */ + function deriveFlat(list, archivedSessionIds) { + const archived = new Set(archivedSessionIds); + const descendants = (0, _deepseek_ai_dsh_client_runtime_client.indexSubagentDescendants)(list.byId); + const rows = []; + for (const id of list.ids) { + const s = list.byId[id]; + if (s === void 0 || !sessionVisible(s, list.current, archived)) continue; + rows.push(s); + } + rows.sort(byRecency); + return rows.map((session) => sessionNode(session, descendants)); + } + /** + * Merge immediate title/Workspace substring matches with ranked Host content + * matches. Local rows lead newest-first, content-only rows retain backend + * order, and duplicate sessions receive the backend snippet in place. + * @param list - session metadata authority. + * @param workspaces - Workspace membership and display labels. + * @param query - caller text; surrounding whitespace is ignored. + * @param archivedSessionIds - registry-global archive set (members never match). + * @param content - ranked Host content-search page. + * @param limit - protocol-owned maximum merged row count. + * @returns bounded deduplicated flat rows and a refine-query hint bit. + */ + function deriveSearchResults(list, workspaces, query, archivedSessionIds, content, limit) { + const q = query.trim().toLowerCase(); + if (q === "") return { + items: [], + hasMore: false + }; + const archived = new Set(archivedSessionIds); + const descendants = (0, _deepseek_ai_dsh_client_runtime_client.indexSubagentDescendants)(list.byId); + const workspaceBySession = /* @__PURE__ */ new Map(); + for (const workspace of workspaces) for (const sessionId of workspace.sessionIds) if (!workspaceBySession.has(sessionId)) workspaceBySession.set(sessionId, workspace.title); + const labelOf = (summary) => workspaceBySession.get(summary.id) ?? workspaceLabel(summary.cwd); + const contentBySession = /* @__PURE__ */ new Map(); + for (const item of content.items) if (!contentBySession.has(item.sessionId)) contentBySession.set(item.sessionId, item); + const local = []; + for (const id of list.ids) { + const summary = list.byId[id]; + if (summary === void 0 || summary.blank || !sessionVisible(summary, list.current, archived)) continue; + if (sessionTitle(summary).toLowerCase().includes(q) || labelOf(summary).toLowerCase().includes(q)) local.push(summary); + } + local.sort(byRecency); + const ordered = []; + const included = /* @__PURE__ */ new Set(); + const include = (summary) => { + if (included.has(summary.id)) return; + included.add(summary.id); + ordered.push(summary); + }; + for (const summary of local) include(summary); + for (const item of content.items) { + const summary = list.byId[item.sessionId]; + if (summary !== void 0 && !summary.blank && sessionVisible(summary, list.current, archived)) include(summary); + } + return { + items: ordered.slice(0, limit).map((summary) => { + const match = contentBySession.get(summary.id); + return { + id: summary.id, + title: sessionTitle(summary), + workspace: labelOf(summary), + running: summary.running, + runningSubagentCount: descendants.get(summary.id)?.runningCount ?? 0, + ...summary.pendingInteraction === void 0 ? {} : { pendingInteraction: summary.pendingInteraction }, + completed: summary.completed === true, + ...match === void 0 ? {} : { snippet: match.snippet } + }; + }), + hasMore: content.hasMore || ordered.length > limit + }; + } + /** + * Compact relative time for session rows, as a structured bucket the + * renderer localizes ("now"/"5min"/"3h"/"2d"/"4mo"/"1y" in en). + * @param updatedAt - epoch ms of the session's last activity. + * @param now - current epoch ms (injected for pure rendering). + * @returns the row's trailing time bucket and magnitude. + */ + function relativeTime(updatedAt, now) { + const MIN = 6e4; + const HOUR = 36e5; + const DAY = 864e5; + const diff = Math.max(0, now - updatedAt); + if (diff < MIN) return { + unit: "now", + n: 0 + }; + if (diff < HOUR) return { + unit: "minutes", + n: Math.floor(diff / MIN) + }; + if (diff < DAY) return { + unit: "hours", + n: Math.floor(diff / HOUR) + }; + if (diff < 30 * DAY) return { + unit: "days", + n: Math.floor(diff / DAY) + }; + if (diff < 365 * DAY) return { + unit: "months", + n: Math.floor(diff / (30 * DAY)) + }; + return { + unit: "years", + n: Math.floor(diff / (365 * DAY)) + }; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-workspace/src/client/rows/Rows.module.css.mjs + const css$2 = ".YDXeBa_projectRow,.YDXeBa_sessionRow{cursor:pointer;user-select:none;color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.YDXeBa_projectRow:hover,.YDXeBa_sessionRow:hover,.YDXeBa_sessionRow.YDXeBa_selected{background:var(--dsw-alias-interactive-bg-hover)}.YDXeBa_searchResultRow{box-sizing:border-box;cursor:pointer;text-align:left;width:100%;min-height:48px;color:var(--dsw-alias-label-primary);background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:stretch;padding:4px 8px;display:flex}.YDXeBa_searchResultRow:hover,.YDXeBa_searchResultRow.YDXeBa_selected{background:var(--dsw-alias-interactive-bg-hover)}.YDXeBa_searchResultHeading{align-items:center;min-width:0;display:flex}.YDXeBa_searchResultTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:4px;font-size:14px;line-height:20px;overflow:hidden}.YDXeBa_searchResultMeta{align-items:center;gap:6px;min-width:0;margin-left:20px;display:flex}.YDXeBa_searchResultWorkspace,.YDXeBa_searchResultSnippet{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.YDXeBa_searchResultWorkspace{max-width:40%;color:var(--dsw-alias-label-tertiary);flex:none}.YDXeBa_searchResultSnippet{min-width:0;color:var(--dsw-alias-label-secondary);flex:1}.YDXeBa_projectRow{box-sizing:border-box;align-items:center;height:34px}.YDXeBa_projectRow .YDXeBa_rowActions{height:20px}.YDXeBa_sessionRow{height:32px;animation:YDXeBa_row-in .15s var(--ds-ease-in-out);gap:0}.YDXeBa_sessionRow .YDXeBa_title{margin:0 6px 0 4px}.YDXeBa_flatSessionRowWithoutStatus .YDXeBa_title{margin-left:0}@keyframes YDXeBa_row-in{0%{opacity:0}}.YDXeBa_slot{width:16px;height:20px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.YDXeBa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.YDXeBa_folderActive{color:var(--dsw-alias-state-business-primary)}.YDXeBa_projectRow .YDXeBa_chevron{display:none}.YDXeBa_projectRow:hover .YDXeBa_chevron{display:inline-flex}.YDXeBa_projectRow:hover .YDXeBa_folder{display:none}.YDXeBa_arrow{transition:transform .15s var(--ds-ease-in-out)}.YDXeBa_arrowOpen{transform:rotate(90deg)}.YDXeBa_projectText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.YDXeBa_title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.YDXeBa_renameInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-elevated-fill);min-width:0;color:inherit;border-radius:4px;outline:none;padding:0 2px;font-size:14px;line-height:20px}.YDXeBa_sessionRow .YDXeBa_title{flex:1}.YDXeBa_meta{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;overflow:hidden}.YDXeBa_time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:12px;line-height:20px}.YDXeBa_dot{flex:none}.YDXeBa_rowActions{flex:none;align-items:center;gap:12px;display:none}.YDXeBa_projectRow:hover .YDXeBa_rowActions,.YDXeBa_sessionRow:hover .YDXeBa_rowActions,.YDXeBa_projectRow.YDXeBa_menuOpen .YDXeBa_rowActions,.YDXeBa_sessionRow.YDXeBa_menuOpen .YDXeBa_rowActions{display:inline-flex}.YDXeBa_sessionRow:hover .YDXeBa_time,.YDXeBa_sessionRow.YDXeBa_menuOpen .YDXeBa_time{display:none}.YDXeBa_projectRow.YDXeBa_menuOpen,.YDXeBa_sessionRow.YDXeBa_menuOpen{background:var(--dsw-alias-interactive-bg-hover)}.YDXeBa_sessionRow.YDXeBa_dropBefore,.YDXeBa_sessionRow.YDXeBa_dropAfter{position:relative}.YDXeBa_sessionRow.YDXeBa_dropBefore:before,.YDXeBa_sessionRow.YDXeBa_dropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:4px}.YDXeBa_sessionRow.YDXeBa_dropBefore:before{top:-7px}.YDXeBa_sessionRow.YDXeBa_dropAfter:after{bottom:-7px}.YDXeBa_hoverContent{flex-direction:column;gap:8px;display:flex}.YDXeBa_hoverTitle{color:#fff;overflow-wrap:break-word;font-size:14px;line-height:20px}.YDXeBa_hoverPath{color:#cfd3d6;word-break:break-all;font-size:12px;line-height:16px}.YDXeBa_hoverTime{color:#cfd3d6;font-size:12px;line-height:16px}.YDXeBa_hoverStatus{color:#adb2b8;align-items:center;gap:8px;font-size:12px;line-height:20px;display:flex}.YDXeBa_iconButton{cursor:pointer;width:16px;height:16px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.YDXeBa_iconButton:hover{color:var(--dsw-alias-label-primary)}.YDXeBa_chevron{color:var(--dsw-alias-label-caption)}@media (prefers-reduced-motion:reduce){.YDXeBa_sessionRow,.YDXeBa_arrow{transition:none;animation:none}}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-workspace/Rows.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-workspace"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var Rows_module_css_default = { + "hoverTitle": "YDXeBa_hoverTitle", + "title": "YDXeBa_title", + "hoverContent": "YDXeBa_hoverContent", + "dropAfter": "YDXeBa_dropAfter", + "renameInput": "YDXeBa_renameInput", + "dot": "YDXeBa_dot", + "hoverTime": "YDXeBa_hoverTime", + "iconButton": "YDXeBa_iconButton", + "flatSessionRowWithoutStatus": "YDXeBa_flatSessionRowWithoutStatus", + "row-in": "YDXeBa_row-in", + "folder": "YDXeBa_folder", + "menuOpen": "YDXeBa_menuOpen", + "selected": "YDXeBa_selected", + "searchResultHeading": "YDXeBa_searchResultHeading", + "searchResultWorkspace": "YDXeBa_searchResultWorkspace", + "visuallyHidden": "YDXeBa_visuallyHidden", + "projectRow": "YDXeBa_projectRow", + "hoverStatus": "YDXeBa_hoverStatus", + "arrowOpen": "YDXeBa_arrowOpen", + "rowActions": "YDXeBa_rowActions", + "chevron": "YDXeBa_chevron", + "arrow": "YDXeBa_arrow", + "searchResultTitle": "YDXeBa_searchResultTitle", + "searchResultMeta": "YDXeBa_searchResultMeta", + "slot": "YDXeBa_slot", + "folderActive": "YDXeBa_folderActive", + "time": "YDXeBa_time", + "sessionRow": "YDXeBa_sessionRow", + "meta": "YDXeBa_meta", + "dropBefore": "YDXeBa_dropBefore", + "searchResultSnippet": "YDXeBa_searchResultSnippet", + "projectText": "YDXeBa_projectText", + "hoverPath": "YDXeBa_hoverPath", + "searchResultRow": "YDXeBa_searchResultRow" + }; + //#endregion + //#region lib/types/client/rows/Rows.js + /** + * Workspace browser tree row components (figma Cell set 14:3080): pure presentational — + * all data and callbacks arrive via props. Hover swaps (folder->chevron, + * time->ellipsis, action buttons) are CSS-only. Row ... menus are visual-only + * except workspace Rename/Delete and session Rename/Fork/Archive; the session + * and workspace hover cards are suppressed while a menu is open. + */ + /** Row display title: blank rows show the localized New Session label. */ + function displayTitle(node, t) { + return node.blank ? t("session.new") : node.title; + } + /** Localized compact relative time ("刚刚"/"5分钟" in zh, "now"/"5min" in en). */ + function timeLabel(updatedAt, now, t) { + const { unit, n } = relativeTime(updatedAt, now); + return unit === "now" ? t("time.now") : t(`time.${unit}`, { n }); + } + /** Hover-card variant: distances wrap in the ago template; the now bucket stays bare (no "now ago"). */ + function hoverTimeLabel(updatedAt, now, t) { + const { unit, n } = relativeTime(updatedAt, now); + return unit === "now" ? t("time.now") : t("time.ago", { t: t(`time.${unit}`, { n }) }); + } + /** + * Absolute creation time through the dictionary's date template (the message + * clock pattern): `toLocaleString` would follow the browser language, not the + * app locale, and produce mixed-language text after a switch. + */ + function createdLabel(createdAt, t) { + const d = new Date(createdAt); + const pad2 = (v) => String(v).padStart(2, "0"); + return t("hover.created", { time: `${t("date.ymd", { + y: d.getFullYear(), + m: d.getMonth() + 1, + d: d.getDate() + })} ${pad2(d.getHours())}:${pad2(d.getMinutes())}` }); + } + /** Hover-card body: workspace title, full directory path, absolute creation time. */ + function WorkspaceHoverContent({ label, cwd, createdAt, t }) { + return (0, react_jsx_runtime.jsxs)("div", { + className: Rows_module_css_default.hoverContent, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: Rows_module_css_default.hoverTitle, + children: label + }), + (0, react_jsx_runtime.jsx)("div", { + className: Rows_module_css_default.hoverPath, + children: cwd + }), + (0, react_jsx_runtime.jsx)("div", { + className: Rows_module_css_default.hoverTime, + children: createdLabel(createdAt, t) + }) + ] + }); + } + /** Pointer-position half of a row (insert line above or below). */ + function rowHalf(e) { + const rect = e.currentTarget.getBoundingClientRect(); + return e.clientY < rect.top + rect.height / 2 ? "before" : "after"; + } + /** + * Project (workspace) header row: folder + title; + * hover reveals the chevron and create button, and dwelling on a real + * Workspace shows its hover card (the ungrouped bucket has none). + * `containsCurrent` arrives on the node (derivation fact, no renderer scan). + * @param props.group - derived group node. + * @param props.onToggle - expand/collapse the group. + * @param props.onCreate - start a frontend Session inside this Workspace. + * @param props.drag - optional workspace-row drag wiring. + * @param props.t - the browser root's locale seat. + * @returns the row element. + */ + function ProjectRowItem({ group, onToggle, onCreate, actions, drag, t }) { + const row = group; + const label = row.workspaceId === void 0 ? t("group.ungrouped") : row.label; + const active = group.expanded && group.containsCurrent; + const [menuOpen, setMenuOpen] = (0, react.useState)(false); + const workspaceMenuItems = [{ + id: "rename", + label: t("rename"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, {}) + }, { + id: "delete", + label: t("delete.workspace"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, {}), + danger: true + }]; + const ownRow = (0, react_jsx_runtime.jsxs)("div", { + className: clsx(Rows_module_css_default.projectRow, menuOpen && Rows_module_css_default.menuOpen), + role: "treeitem", + "aria-expanded": row.expanded, + onClick: onToggle, + draggable: drag !== void 0, + onDragStart: drag === void 0 ? void 0 : (e) => { + e.dataTransfer.effectAllowed = "move"; + e.dataTransfer.setData("text/plain", row.key); + drag.start(); + }, + onDragEnd: drag?.end, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: clsx(Rows_module_css_default.slot, Rows_module_css_default.folder, active && Rows_module_css_default.folderActive), + children: row.expanded ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderOpen16, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderClose16, {}) + }), + (0, react_jsx_runtime.jsx)("span", { + className: clsx(Rows_module_css_default.slot, Rows_module_css_default.chevron), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTriangleRightFill14, { className: clsx(Rows_module_css_default.arrow, row.expanded && Rows_module_css_default.arrowOpen) }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.projectText, + children: (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.title, + children: label + }) + }), + (0, react_jsx_runtime.jsxs)("span", { + className: Rows_module_css_default.rowActions, + children: [actions !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open: menuOpen, + onClose: () => { + setMenuOpen(false); + }, + items: workspaceMenuItems, + onSelect: (id) => { + setMenuOpen(false); + /* v8 ignore next -- workspaceMenuItems carries exactly these two rows today. */ + if (id !== "rename" && id !== "delete") return; + if (id === "rename") actions.rename(); + else actions.delete(); + }, + portal: true, + closeOnPointerLeave: true, + anchor: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: Rows_module_css_default.iconButton, + "aria-label": t("actions.workspace.aria", { name: label }), + onClick: (e) => { + e.stopPropagation(); + setMenuOpen((v) => !v); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEllipsisOutline16, {}) + }) + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: Rows_module_css_default.iconButton, + "aria-label": t("actions.newSession.aria", { name: label }), + onClick: (e) => { + e.stopPropagation(); + onCreate(); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, {}) + })] + }) + ] + }); + if (row.createdAt === void 0) return ownRow; + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.HoverCard, { + anchor: ownRow, + content: (0, react_jsx_runtime.jsx)(WorkspaceHoverContent, { + label: row.label, + cwd: row.cwd, + createdAt: row.createdAt, + t + }), + disabled: menuOpen, + copyText: row.cwd, + copyLabel: t("copy"), + copiedLabel: t("hover.copied") + }); + } + /* v8 ignore next 3 -- closed-union backstop; only reached if the status is forged */ + function assertNever(value) { + throw new Error(`unknown pending interaction: ${String(value)}`); + } + /** + * Session status presentation; pending interaction is primary and live activity + * outranks completion reminders. + */ + function sessionStatuses(node, t) { + const subagents = node.runningSubagentCount === 0 ? void 0 : { + state: "ongoing", + label: t(node.runningSubagentCount === 1 ? "status.subagentsRunning.one" : "status.subagentsRunning.other", { n: node.runningSubagentCount }) + }; + let pending; + switch (node.pendingInteraction) { + case "approval": + pending = { + state: "warning", + label: t("status.waitingApproval") + }; + break; + case "plan-review": + pending = { + state: "warning", + label: t("status.planReview") + }; + break; + case "question": + pending = { + state: "warning", + label: t("status.waitingAnswer") + }; + break; + case void 0: break; + /* v8 ignore next -- closed PendingInteractionStatus union */ + default: return assertNever(node.pendingInteraction); + } + if (pending !== void 0) return subagents === void 0 ? [pending] : [pending, subagents]; + if (node.running) { + const primary = { + state: "ongoing", + label: t("status.running") + }; + return subagents === void 0 ? [primary] : [primary, subagents]; + } + if (subagents !== void 0) return [subagents]; + if (node.completed) return [{ + state: "done", + label: t("status.completed") + }]; + return [{ + state: "done", + label: t("status.idle") + }]; + } + /** Primary status dot plus every status's screen-reader label, shared by the search and session rows. */ + function SessionStatusDots({ statuses }) { + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: statuses[0].state }), statuses.map((status) => (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.visuallyHidden, + children: status.label + }, status.label))] }); + } + /** Hover-card body: full title, relative time, and every relevant live status. */ + function SessionHoverContent({ node, now, t }) { + const statuses = sessionStatuses(node, t); + return (0, react_jsx_runtime.jsxs)("div", { + className: Rows_module_css_default.hoverContent, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: Rows_module_css_default.hoverTitle, + children: displayTitle(node, t) + }), + !node.blank && (0, react_jsx_runtime.jsx)("div", { + className: Rows_module_css_default.hoverTime, + children: hoverTimeLabel(node.updatedAt, now, t) + }), + statuses.map((status) => (0, react_jsx_runtime.jsxs)("div", { + className: Rows_module_css_default.hoverStatus, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: status.state }), (0, react_jsx_runtime.jsx)("span", { children: status.label })] + }, status.label)) + ] + }); + } + /** + * One flat search result: title, Workspace context, and optional content + * excerpt. Search navigation opens the session only; it does not address an + * event inside the conversation. + * @param props.result - merged local/content search row. + * @param props.currentId - selected session id. + * @param props.onOpen - open the selected session. + * @param props.t - Workspace-browser translation seat. + * @returns the result button. + */ + function SearchResultItem({ result, currentId, onOpen, t }) { + const selected = result.id === currentId; + const statuses = sessionStatuses(result, t); + const primaryStatus = statuses[0]; + return (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: clsx(Rows_module_css_default.searchResultRow, selected && Rows_module_css_default.selected), + role: "treeitem", + "aria-selected": selected, + onClick: () => { + onOpen(result.id); + }, + children: [(0, react_jsx_runtime.jsxs)("span", { + className: Rows_module_css_default.searchResultHeading, + children: [(0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.slot, + children: (primaryStatus.state !== "done" || result.completed) && (0, react_jsx_runtime.jsx)(SessionStatusDots, { statuses }) + }), (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.searchResultTitle, + children: result.title + })] + }), (0, react_jsx_runtime.jsxs)("span", { + className: Rows_module_css_default.searchResultMeta, + children: [(0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.searchResultWorkspace, + children: result.workspace + }), result.snippet !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.searchResultSnippet, + children: result.snippet + })] + })] + }); + } + /** + * One top-level 34px session row: status dot (pending user interaction outranks + * own or descendant activity), title, relative time, and the row actions menu. + * @param props.node - derived session node. + * @param props.currentId - selected session id (row highlight). + * @param props.now - epoch ms for relative-time formatting. + * @param props.onOpen - open a session by id. + * @param props.onRename - open the session rename dialog (id + current title). + * @param props.onFork - fork a session at its last completed turn. + * @param props.onArchive - archive a session by id. + * @param props.drag - optional draggable-row wiring. + * @param props.flat - omit the empty status slot in the hierarchy-free flat list. + * @param props.t - the browser root's locale seat. + * @returns the session row. + */ + function SessionNodeItem({ node, currentId, now, onOpen, onRename, onFork, onArchive, drag, flat = false, t }) { + const row = node; + const title = displayTitle(node, t); + const selected = node.id === currentId; + const statuses = sessionStatuses(node, t); + const showStatus = statuses[0].state !== "done" || row.completed; + const [menuOpen, setMenuOpen] = (0, react.useState)(false); + const sessionMenuItems = [ + { + id: "rename", + label: t("rename"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, {}) + }, + { + id: "fork", + label: t("menu.fork"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBranchOutline16, {}) + }, + { + id: "archive", + label: t("menu.archiveSession"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutline20, { size: 16 }) + } + ]; + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.HoverCard, { + anchor: (0, react_jsx_runtime.jsxs)("div", { + className: clsx(Rows_module_css_default.sessionRow, selected && Rows_module_css_default.selected, menuOpen && Rows_module_css_default.menuOpen, flat && !showStatus && Rows_module_css_default.flatSessionRowWithoutStatus, drag?.marker === "before" && Rows_module_css_default.dropBefore, drag?.marker === "after" && Rows_module_css_default.dropAfter), + role: "treeitem", + "aria-selected": selected, + onClick: () => { + onOpen(node.id); + }, + draggable: drag !== void 0, + onDragStart: drag === void 0 ? void 0 : (e) => { + e.dataTransfer.effectAllowed = "move"; + e.dataTransfer.setData("text/plain", node.id); + drag.start(); + }, + onDragEnd: drag?.end, + onDragOver: drag === void 0 ? void 0 : (e) => { + if (!drag.active) return; + e.preventDefault(); + e.dataTransfer.dropEffect = "move"; + drag.hover(rowHalf(e)); + }, + onDrop: drag === void 0 ? void 0 : (e) => { + if (!drag.active) return; + e.preventDefault(); + drag.drop(rowHalf(e)); + }, + children: [ + (!flat || showStatus) && (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.slot, + children: showStatus && (0, react_jsx_runtime.jsx)(SessionStatusDots, { statuses }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.title, + children: title + }), + !row.blank && (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.time, + children: timeLabel(row.updatedAt, now, t) + }), + !row.blank && (0, react_jsx_runtime.jsx)("span", { + className: Rows_module_css_default.rowActions, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open: menuOpen, + onClose: () => { + setMenuOpen(false); + }, + items: sessionMenuItems, + onSelect: (id) => { + setMenuOpen(false); + if (id === "rename") onRename(node.id, row.title); + if (id === "fork") onFork(node.id); + if (id === "archive") onArchive(node.id); + }, + portal: true, + closeOnPointerLeave: true, + anchor: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: Rows_module_css_default.iconButton, + "aria-label": t("actions.session.aria", { name: title }), + onClick: (e) => { + e.stopPropagation(); + setMenuOpen((v) => !v); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEllipsisOutline16, {}) + }) + }) + }) + ] + }), + content: (0, react_jsx_runtime.jsx)(SessionHoverContent, { + node, + now, + t + }), + disabled: menuOpen || drag?.active === true, + copyText: row.blank ? void 0 : row.title, + copyLabel: t("copy"), + copiedLabel: t("hover.copied") + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-workspace/src/client/WorkspacePicker.module.css.mjs + const css$1 = "._G5b-a_modalAction{min-width:72px}._G5b-a_modalError,._G5b-a_menuStatus{margin-top:8px;font-size:12px;line-height:18px}._G5b-a_modalError{color:var(--dsw-alias-state-error-primary)}._G5b-a_menuStatus{color:var(--dsw-alias-label-secondary)}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-workspace/WorkspacePicker.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-workspace"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var WorkspacePicker_module_css_default = { + "modalAction": "_G5b-a_modalAction", + "menuStatus": "_G5b-a_menuStatus", + "modalError": "_G5b-a_modalError" + }; + //#endregion + //#region lib/types/client/WorkspacePicker.js + const ADD_WORKSPACE = "::add-workspace"; + /** + * Render the pick menu plus the adoption error dialog. + * @param props - owner-controlled flow props. + * @returns menu + dialog elements. + */ + function WorkspacePickFlow({ t, open, anchorRef, useWorkspaces, createWorkspace, useDirectoryFlow, renderDirectoryFlow, onPick, onClose, addOnly = false, side = "bottom", selectedId }) { + const workspaceSnapshot = useWorkspaces((state) => state); + const workspaces = workspaceSnapshot.items; + const getAnchorRect = (0, react.useCallback)(() => anchorRef?.current?.getBoundingClientRect() ?? null, [anchorRef]); + const [errorOpen, setErrorOpen] = (0, react.useState)(false); + const [modalError, setModalError] = (0, react.useState)(null); + const [flowOpen, setFlowOpen] = (0, react.useState)(false); + const [pickingFolder, setPickingFolder] = (0, react.useState)(false); + const flowBusy = flowOpen || pickingFolder; + const flowAvailable = useDirectoryFlow((occupied) => occupied); + (0, react.useEffect)(() => { + if (flowOpen && !flowAvailable) setFlowOpen(false); + }, [flowOpen, flowAvailable]); + const addEntries = flowAvailable ? [{ + id: ADD_WORKSPACE, + label: t("menu.addWorkspace"), + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 16 }), + disabled: flowBusy + }] : []; + const pinAdd = !addOnly && workspaces.length > 0; + const items = pinAdd ? workspaces.map((workspace) => ({ + id: workspace.workspaceId, + label: workspace.title, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderClose16, { size: 16 }), + disabled: flowBusy + })) : addEntries; + const menuIsEmpty = items.length === 0; + const closeModal = () => { + setErrorOpen(false); + setModalError(null); + }; + /** Adopt a picked directory; failures land in the folder-error dialog (Choose again reopens the flow). */ + const adoptDirectory = (path) => createWorkspace({ path }).then((workspace) => { + setFlowOpen(false); + onPick(workspace.workspaceId); + }).catch((reason) => { + setModalError(reason instanceof Error ? reason.message : String(reason)); + setFlowOpen(false); + setErrorOpen(true); + }); + const openDirectoryFlow = (0, react.useCallback)(() => { + onClose(); + setErrorOpen(false); + setModalError(null); + setFlowOpen(true); + }, [onClose]); + const listSettled = addOnly || workspaceSnapshot.phase === "ready"; + const addIsTheOnlyEntry = !pinAdd && listSettled && addEntries.length === 1; + (0, react.useEffect)(() => { + if (open && addIsTheOnlyEntry && !flowBusy) openDirectoryFlow(); + }, [ + open, + addIsTheOnlyEntry, + flowBusy, + openDirectoryFlow + ]); + /** Owner side of the flow conversation: adopt keeps the flow open (busy) until the Host answers. */ + const flowOwner = { + open: flowOpen, + busy: pickingFolder, + onPicked: (path) => { + setPickingFolder(true); + adoptDirectory(path).finally(() => { + setPickingFolder(false); + }); + }, + onCancel: () => { + setFlowOpen(false); + }, + onError: (message) => { + setFlowOpen(false); + setModalError(message); + setErrorOpen(true); + } + }; + const handleSelect = (id) => { + if (id === ADD_WORKSPACE) { + openDirectoryFlow(); + return; + } + onPick(id); + }; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open: open && !addIsTheOnlyEntry && !menuIsEmpty, + anchor: null, + items, + ...pinAdd ? { footer: addEntries } : {}, + selectedId, + onSelect: handleSelect, + onClose, + side, + portal: true, + getAnchorRect + }), + open && !addIsTheOnlyEntry && !menuIsEmpty && workspaceSnapshot.phase === "pending" && (0, react_jsx_runtime.jsx)("div", { + className: WorkspacePicker_module_css_default.menuStatus, + role: "status", + children: t("picker.loading") + }), + renderDirectoryFlow(flowOwner), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: errorOpen, + onClose: closeModal, + closeLabel: t("close"), + title: t("folderError.title"), + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + className: WorkspacePicker_module_css_default.modalAction, + onClick: closeModal, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + className: WorkspacePicker_module_css_default.modalAction, + disabled: !flowAvailable, + onClick: openDirectoryFlow, + children: t("folderError.retry") + })] }), + children: (0, react_jsx_runtime.jsx)("div", { + className: WorkspacePicker_module_css_default.modalError, + role: "alert", + children: modalError + }) + }) + ] }); + } + /** + * The conversation empty-state registration: adapts the owner share to the + * core flow (all state and semantics live in the flow / the owner). + * @param props - empty-state slot props (owner share + injected creation callback). + * @returns the flow element. + */ + function WorkspacePicker({ open, anchorRef, useWorkspaces, selectedId, onPick, onClose, createWorkspace, useDirectoryFlow, renderSlot, t }) { + return (0, react_jsx_runtime.jsx)(WorkspacePickFlow, { + t, + open, + anchorRef, + useWorkspaces, + createWorkspace, + useDirectoryFlow, + renderDirectoryFlow: (owner) => renderSlot("conversation.hero.workspace.directoryFlow", owner), + selectedId, + onPick, + onClose + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-workspace/src/client/WorkspaceBrowser.module.css.mjs + const css = ".qDHVXG_root{--dsh-session-list-edge-inset:var(--dsh-sidebar-inline-padding);--dsh-session-list-scrollbar-width:8px;--dsh-session-list-scrollbar-offset:2px;box-sizing:border-box;min-height:0;padding-right:var(--dsh-session-list-edge-inset);flex-direction:column;flex:1;display:flex}.qDHVXG_root.qDHVXG_rail{padding-right:0}.qDHVXG_iconButton{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.qDHVXG_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.qDHVXG_sectionHeader{box-sizing:border-box;height:36px;color:var(--dsw-alias-label-tertiary);border-radius:12px;flex:none;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:4px;padding-left:4px;display:flex;overflow:hidden}.qDHVXG_root:not(.qDHVXG_rail) .qDHVXG_sectionHeader{margin-top:2px;margin-right:-4px}.qDHVXG_sectionLabel{white-space:nowrap;opacity:1;visibility:visible;min-width:0;max-width:45%;transition:max-width .18s var(--ds-ease-in-out), margin-right .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;line-height:20px;overflow:hidden}.qDHVXG_sectionLabelHidden{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}.qDHVXG_searchSlot{box-sizing:border-box;min-width:0;max-width:28px;transition:max-width .18s var(--ds-ease-in-out), padding-left .18s var(--ds-ease-in-out);flex:1;align-items:center;margin-left:auto;padding-left:0;display:flex}.qDHVXG_searchSlotExpanded{max-width:100%;padding-left:0}.qDHVXG_headerActions{opacity:1;visibility:visible;max-width:60px;transition:max-width .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;align-items:center;gap:4px;display:flex;overflow:hidden}.qDHVXG_headerActionsHidden{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}.qDHVXG_search{box-sizing:border-box;cursor:text;width:100%;height:28px;color:var(--dsw-alias-label-secondary);transition:width .18s var(--ds-ease-in-out), padding .18s var(--ds-ease-in-out), border-color .18s var(--ds-ease-in-out), background-color .18s var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;flex:none;align-items:center;gap:0;margin:0;padding:0;display:flex;overflow:hidden}.qDHVXG_searchExpanded{border:1px solid var(--dsw-alias-border-l2);width:calc(100% + 4px);height:30px;color:var(--dsw-alias-label-caption);background:0 0;border-radius:10px;margin-inline:-2px;padding:0 4px 0 0}.qDHVXG_searchButton{cursor:pointer;width:28px;height:28px;color:inherit;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.qDHVXG_searchExpanded .qDHVXG_searchButton{width:28px;height:30px}.qDHVXG_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.qDHVXG_searchExpanded .qDHVXG_searchButton:hover{background:0 0}.qDHVXG_searchInput{opacity:0;pointer-events:none;width:0;min-width:0;color:var(--dsw-alias-label-primary);transition:opacity .12s var(--ds-ease-in-out);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:18px}.qDHVXG_searchExpanded .qDHVXG_searchInput{opacity:1;pointer-events:auto;margin-left:-2px}.qDHVXG_searchInput::placeholder{color:var(--dsw-alias-label-tertiary)}.qDHVXG_clearButton{cursor:pointer;width:24px;height:24px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.qDHVXG_clearButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.qDHVXG_rail .qDHVXG_sectionHeader{justify-content:flex-start;gap:0;margin-bottom:12px;padding-left:0}.qDHVXG_rail .qDHVXG_headerActions{max-width:none}.qDHVXG_rail .qDHVXG_iconButton{width:36px;height:36px;color:var(--dsw-alias-label-primary)}.qDHVXG_rail .qDHVXG_search{background:0 0;border-color:#0000;gap:0;width:36px;height:36px;margin:0 0 12px;padding:0}.qDHVXG_rail .qDHVXG_searchButton{width:36px;height:36px;color:var(--dsw-alias-label-primary)}.qDHVXG_rail .qDHVXG_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.qDHVXG_listArea{min-height:0;margin-left:-4px;margin-right:calc(-1 * var(--dsh-session-list-edge-inset));flex-direction:column;flex:1;padding-left:4px;display:flex;overflow:visible}.qDHVXG_rail .qDHVXG_listArea{margin-left:0;margin-right:0;padding-left:0}.qDHVXG_treeBody{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.qDHVXG_fade{left:0;right:var(--dsh-session-list-edge-inset);background:linear-gradient(to bottom, transparent, var(--dsw-specific-sidebar-fill));pointer-events:none;height:24px;position:absolute;bottom:0}.qDHVXG_wide{animation:qDHVXG_wide-in .2s var(--ds-ease-in-out)}@keyframes qDHVXG_wide-in{0%{opacity:0}}.qDHVXG_list{min-height:0;margin-left:-4px;margin-right:var(--dsh-session-list-scrollbar-offset);padding-left:4px;padding-right:calc(var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset));scrollbar-gutter:stable;flex:1;padding-bottom:16px;overflow-y:auto}.qDHVXG_flatList>*+*,.qDHVXG_searchTree>[role=treeitem]+[role=treeitem],.qDHVXG_groupSection>*+*{margin-top:2px}.qDHVXG_searchStatus,.qDHVXG_searchWarning{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}.qDHVXG_searchWarning{color:var(--dsw-alias-label-secondary)}.qDHVXG_groupSection{position:relative}.qDHVXG_groupSection+.qDHVXG_groupSection{margin-top:4px}.qDHVXG_listTopDropIndicator,.qDHVXG_workspaceDropBefore:before,.qDHVXG_workspaceDropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:0}.qDHVXG_listTopDropIndicator{top:-8px;left:0;right:var(--dsh-session-list-edge-inset)}.qDHVXG_listTopDropActive>.qDHVXG_workspaceDropBefore:first-child:before{display:none}.qDHVXG_workspaceDropBefore:before{top:-8px}.qDHVXG_workspaceDropAfter:after{bottom:-8px}.qDHVXG_sessionOverflowButton{cursor:pointer;text-align:left;width:100%;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:8px;padding:0 12px 0 28px;font-size:12px}.qDHVXG_groupSection>.qDHVXG_sessionOverflowButton{margin-top:0}.qDHVXG_sessionOverflowButton:hover{color:var(--dsw-alias-label-secondary);background:0 0}.qDHVXG_empty{color:var(--dsw-alias-label-tertiary);padding:16px 12px;font-size:13px}.qDHVXG_renameInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.qDHVXG_renameInput:disabled{color:var(--dsw-alias-label-dimmed)}.qDHVXG_renameError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}.qDHVXG_deleteAction:not(:disabled){color:var(--dsw-alias-state-error-primary)}.qDHVXG_deleteStatus{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}@media (prefers-reduced-motion:reduce){.qDHVXG_wide{animation:none}.qDHVXG_search,.qDHVXG_sectionLabel,.qDHVXG_searchSlot,.qDHVXG_searchInput,.qDHVXG_headerActions{transition:none}}"; + const tagId = "@deepseek-ai/dsh-client-ui-workspace/WorkspaceBrowser.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-workspace"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var WorkspaceBrowser_module_css_default = { + "wide-in": "qDHVXG_wide-in", + "searchWarning": "qDHVXG_searchWarning", + "empty": "qDHVXG_empty", + "deleteStatus": "qDHVXG_deleteStatus", + "search": "qDHVXG_search", + "fade": "qDHVXG_fade", + "workspaceDropAfter": "qDHVXG_workspaceDropAfter", + "searchSlot": "qDHVXG_searchSlot", + "rail": "qDHVXG_rail", + "searchSlotExpanded": "qDHVXG_searchSlotExpanded", + "searchButton": "qDHVXG_searchButton", + "workspaceDropBefore": "qDHVXG_workspaceDropBefore", + "deleteAction": "qDHVXG_deleteAction", + "root": "qDHVXG_root", + "clearButton": "qDHVXG_clearButton", + "listTopDropIndicator": "qDHVXG_listTopDropIndicator", + "listTopDropActive": "qDHVXG_listTopDropActive", + "headerActions": "qDHVXG_headerActions", + "searchStatus": "qDHVXG_searchStatus", + "sectionLabelHidden": "qDHVXG_sectionLabelHidden", + "searchInput": "qDHVXG_searchInput", + "listArea": "qDHVXG_listArea", + "searchExpanded": "qDHVXG_searchExpanded", + "list": "qDHVXG_list", + "iconButton": "qDHVXG_iconButton", + "sectionLabel": "qDHVXG_sectionLabel", + "groupSection": "qDHVXG_groupSection", + "renameInput": "qDHVXG_renameInput", + "sessionOverflowButton": "qDHVXG_sessionOverflowButton", + "treeBody": "qDHVXG_treeBody", + "wide": "qDHVXG_wide", + "flatList": "qDHVXG_flatList", + "searchTree": "qDHVXG_searchTree", + "sectionHeader": "qDHVXG_sectionHeader", + "headerActionsHidden": "qDHVXG_headerActionsHidden", + "renameError": "qDHVXG_renameError" + }; + //#endregion + //#region lib/types/client/WorkspaceBrowser.js + /** + * The workspace/session browsing region filling the sidebar shell's + * `sidebar.workspaces` hole: section header (title + view options + add + * workspace), search, the grouped tree or flat list, and the workspace + * dialogs. Wide state renders the full browser; rail state renders the two + * region icons (search / add workspace) as 36px controls on the shell's shared + * rail entry path, each requesting expansion through the owner share. Adding + * is the header button's one action, so it raises the directory flow with no + * menu in between; the flow and its error dialog live in WorkspacePicker + * (same package — direct composition, no slot between them). + */ + /** + * Column slide length (--ds-transition-duration-slow): rail-search focus waits it out — + * focus() forces a synchronous layout and would jank the slide. + */ + const EXPAND_SLIDE_MS = 300; + /** Pause between the latest keystroke and a Host content-search request. */ + const SEARCH_DEBOUNCE_MS = 250; + /** `session.search` wire bound, measured in JavaScript UTF-16 code units. */ + const SEARCH_QUERY_MAX_CODE_UNITS = 500; + /** Session rows visible per Workspace before the local overflow control. */ + const COLLAPSED_SESSION_LIMIT = 5; + /** Keep controlled input and RPC payload inside the session.search wire contract. */ + function sanitizeSearchQuery(value) { + const withoutNul = value.replaceAll("\0", ""); + if (withoutNul.length <= SEARCH_QUERY_MAX_CODE_UNITS) return withoutNul; + let end = SEARCH_QUERY_MAX_CODE_UNITS; + const last = withoutNul.charCodeAt(end - 1); + const next = withoutNul.charCodeAt(end); + if (last >= 55296 && last <= 56319 && next >= 56320 && next <= 57343) end--; + return withoutNul.slice(0, end); + } + /** Immutable membership toggle for the local expand-all array. */ + function toggled(list, key) { + return list.includes(key) ? list.filter((k) => k !== key) : [...list, key]; + } + /** + * Accept the native drag at document level while a row drag is active: row + * hover still owns the insertion marker, and releasing outside the list must + * not be rendered as a rejected drop before dragend commits that last marker. + */ + function useNativeDragAcceptance(active) { + (0, react.useEffect)(() => { + if (!active) return; + const acceptDrag = (event) => { + event.preventDefault(); + if (event.dataTransfer !== null) event.dataTransfer.dropEffect = "move"; + }; + const acceptDrop = (event) => { + event.preventDefault(); + }; + document.addEventListener("dragover", acceptDrag); + document.addEventListener("drop", acceptDrop); + return () => { + document.removeEventListener("dragover", acceptDrag); + document.removeEventListener("drop", acceptDrop); + }; + }, [active]); + } + /** Reconcile a stored view order with the Workspace's current session account. */ + function reconciledSessionOrder(sessionIds, stored) { + if (stored === void 0) return [...sessionIds]; + const byId = new Map(sessionIds.map((id) => [id, id])); + const ordered = []; + const included = /* @__PURE__ */ new Set(); + for (const key of stored) { + const id = byId.get(key); + if (id === void 0 || included.has(key)) continue; + ordered.push(id); + included.add(key); + } + for (const id of sessionIds) { + if (included.has(id)) continue; + ordered.push(id); + } + return ordered; + } + /** Newest update first with stable Session identity as the tie-break. */ + function compareSessionRecency(a, b, byId) { + const aUpdatedAt = byId[a]?.updatedAt ?? Number.NEGATIVE_INFINITY; + const bUpdatedAt = byId[b]?.updatedAt ?? Number.NEGATIVE_INFINITY; + if (aUpdatedAt !== bUpdatedAt) return bUpdatedAt - aUpdatedAt; + return a < b ? -1 : 1; + } + /** Reconcile one editable order account and apply its activity-promotion policy. */ + function nextSessionOrderAccount({ sessionIds, previousOrder, previousUpdatedAt, list, orderBy, sortByRecency }) { + let order = reconciledSessionOrder(sessionIds, previousOrder); + if (sortByRecency) order.sort((a, b) => compareSessionRecency(a, b, list.byId)); + else if (orderBy === "updated") { + const promoted = sessionIds.filter((id) => { + const session = list.byId[id]; + return session !== void 0 && (previousUpdatedAt[id] === void 0 || session.updatedAt > previousUpdatedAt[id]); + }).sort((a, b) => compareSessionRecency(a, b, list.byId)); + if (promoted.length > 0) { + const promotedIds = new Set(promoted); + order = [...promoted, ...order.filter((id) => !promotedIds.has(id))]; + } + } + const updatedAt = {}; + for (const id of sessionIds) { + const session = list.byId[id]; + if (session !== void 0) updatedAt[id] = session.updatedAt; + } + const orderChanged = previousOrder === void 0 || order.length !== previousOrder.length || order.some((id, index) => id !== previousOrder[index]); + const timestampsChanged = Object.keys(updatedAt).length !== Object.keys(previousUpdatedAt).length || Object.entries(updatedAt).some(([id, timestamp]) => previousUpdatedAt[id] !== timestamp); + return { + order, + updatedAt, + changed: orderChanged || timestampsChanged + }; + } + /** Grouping and ordering menu; own open state so it resets with the wide chrome. */ + function ViewOptionsMenu({ groupBy, orderBy, onGroupPick, onOrderPick, t }) { + const [open, setOpen] = (0, react.useState)(false); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + setOpen(false); + }, + items: [ + { + type: "label", + id: "group-by", + text: t("groupBy.label") + }, + { + id: "workspace", + label: t("groupBy.workspace") + }, + { + id: "flat", + label: t("groupBy.flat") + }, + { + type: "separator", + id: "order-by-separator" + }, + { + type: "label", + id: "order-by", + text: t("orderBy.label") + }, + { + id: "manual", + label: t("orderBy.manual") + }, + { + id: "updated", + label: t("orderBy.updated") + } + ], + selectedIds: [groupBy, orderBy], + onSelect: (id) => { + if (id === "workspace" || id === "flat") onGroupPick(id); + else if (id === "manual" || id === "updated") onOrderPick(id); + setOpen(false); + }, + align: "end", + dense: true, + portal: true, + anchor: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("viewOptions.label"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: clsx(WorkspaceBrowser_module_css_default.iconButton, WorkspaceBrowser_module_css_default.wide), + "aria-label": t("viewOptions.label"), + onClick: () => { + setOpen((v) => !v); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPersonalizationOutline16, {}) + }) + }) + }); + } + /** Resolve an insertion side from the full rendered workspace group. */ + function workspaceGroupHalf(e) { + const rect = e.currentTarget.getBoundingClientRect(); + return e.clientY < rect.top + rect.height / 2 ? "before" : "after"; + } + /** The scrolling session tree; unmounting drops the sessions subscription and expand-all state. */ + function SessionTree({ useSessions, startSession, open, forkSession, workspaces, archivedSessionIds, onRenameRequest, onDeleteRequest, onSessionRename, onSessionArchive, insertWorkspaceBefore, insertSessionBefore, orderBy, groupExpansion, setGroupExpanded, sessionOrderByAccount, sessionUpdatedAtByAccount, syncSessionOrderAccount, setSessionOrder, t }) { + const list = useSessions((s) => s); + const current = list.current; + const [expandedSessionGroups, setExpandedSessionGroups] = (0, react.useState)([]); + const [drag, setDrag] = (0, react.useState)(null); + const sessionDropCommitted = (0, react.useRef)(false); + const [workspaceDrag, setWorkspaceDrag] = (0, react.useState)(null); + const workspaceDropCommitted = (0, react.useRef)(false); + const previousOrderBy = (0, react.useRef)(orderBy); + useNativeDragAcceptance(drag !== null || workspaceDrag !== null); + const currentGroup = current === void 0 ? void 0 : workspaces.find((w) => w.sessionIds.includes(current))?.workspaceId ?? ""; + (0, react.useEffect)(() => { + if (current === void 0 || currentGroup === void 0 || Object.hasOwn(groupExpansion, currentGroup)) return; + setGroupExpanded(currentGroup, true); + }, [ + current, + currentGroup, + setGroupExpanded, + groupExpansion + ]); + const expandedGroups = (0, react.useMemo)(() => Object.entries(groupExpansion).filter(([, expanded]) => expanded).map(([key]) => key), [groupExpansion]); + const ungroupedSessionIds = (0, react.useMemo)(() => { + const accounted = new Set(workspaces.flatMap((workspace) => workspace.sessionIds)); + return list.ids.filter((id) => list.byId[id] !== void 0 && !accounted.has(id)); + }, [list, workspaces]); + (0, react.useEffect)(() => { + if (list.phase !== "ready") return; + const switchedToUpdated = previousOrderBy.current !== "updated" && orderBy === "updated"; + previousOrderBy.current = orderBy; + const accounts = [...workspaces.map((workspace) => ({ + key: workspace.workspaceId, + sessionIds: workspace.sessionIds.filter((id) => list.byId[id] !== void 0) + })), { + key: "", + sessionIds: ungroupedSessionIds + }]; + for (const { key, sessionIds } of accounts) { + const previousOrder = sessionOrderByAccount[key]; + const next = nextSessionOrderAccount({ + sessionIds, + previousOrder, + previousUpdatedAt: sessionUpdatedAtByAccount[key] ?? {}, + list, + orderBy, + sortByRecency: orderBy === "updated" && (previousOrder === void 0 || switchedToUpdated) + }); + if (next.changed) syncSessionOrderAccount(key, next.order.map((id) => id), next.updatedAt); + } + }, [ + list, + orderBy, + sessionOrderByAccount, + sessionUpdatedAtByAccount, + syncSessionOrderAccount, + ungroupedSessionIds, + workspaces + ]); + const orderedWorkspaces = (0, react.useMemo)(() => { + return workspaces.map((workspace) => { + const stored = sessionOrderByAccount[workspace.workspaceId]; + const sessionIds = reconciledSessionOrder(workspace.sessionIds, stored); + return { + ...workspace, + sessionIds + }; + }); + }, [sessionOrderByAccount, workspaces]); + const orderedUngroupedSessionIds = (0, react.useMemo)(() => reconciledSessionOrder(ungroupedSessionIds, sessionOrderByAccount[""]), [sessionOrderByAccount, ungroupedSessionIds]); + const groups = (0, react.useMemo)(() => deriveGroups(list, orderedWorkspaces, archivedSessionIds, { + expandedGroups, + ...sessionOrderByAccount[""] === void 0 ? {} : { ungroupedOrder: sessionOrderByAccount[""] } + }), [ + list, + orderedWorkspaces, + archivedSessionIds, + expandedGroups, + sessionOrderByAccount + ]); + const now = Date.now(); + const commitSessionDrag = (activeDrag, over) => { + if (sessionDropCommitted.current) return; + sessionDropCommitted.current = true; + setDrag(null); + const group = groups.find((candidate) => candidate.key === activeDrag.accountKey); + if (group === void 0) return; + const targetIndex = group.sessions.findIndex((session) => session.id === over.id); + if (targetIndex === -1) return; + const anchor = over.half === "before" ? over.id : group.sessions[targetIndex + 1]?.id; + if (anchor === activeDrag.sessionId) return; + const sourceIndex = group.sessions.findIndex((session) => session.id === activeDrag.sessionId); + const anchorIndex = anchor === void 0 ? group.sessions.length : group.sessions.findIndex((session) => session.id === anchor); + if (sourceIndex !== -1 && (anchorIndex === sourceIndex || anchorIndex === sourceIndex + 1)) return; + const accountSessionIds = activeDrag.accountKey === "" ? orderedUngroupedSessionIds : orderedWorkspaces.find((workspace) => workspace.workspaceId === activeDrag.accountKey)?.sessionIds; + if (accountSessionIds === void 0) return; + const nextOrder = accountSessionIds.filter((id) => id !== activeDrag.sessionId); + const insertAt = anchor === void 0 ? nextOrder.length : nextOrder.indexOf(anchor); + nextOrder.splice(insertAt === -1 ? nextOrder.length : insertAt, 0, activeDrag.sessionId); + setSessionOrder(activeDrag.accountKey, nextOrder.map((id) => id)); + if (orderBy === "updated" || activeDrag.accountKey === "") return; + insertSessionBefore(activeDrag.accountKey, activeDrag.sessionId, anchor).catch((reason) => { + console.warn("session reorder rejected:", reason); + }); + }; + const commitWorkspaceDrag = (activeDrag, over) => { + if (workspaceDropCommitted.current) return; + workspaceDropCommitted.current = true; + setWorkspaceDrag(null); + const rowIndex = workspaces.findIndex((workspace) => workspace.workspaceId === over.id); + if (rowIndex === -1) return; + const anchor = over.half === "before" ? over.id : workspaces[rowIndex + 1]?.workspaceId; + if (anchor === activeDrag.workspaceId) return; + const sourceIndex = workspaces.findIndex((workspace) => workspace.workspaceId === activeDrag.workspaceId); + const anchorIndex = anchor === void 0 ? workspaces.length : workspaces.findIndex((workspace) => workspace.workspaceId === anchor); + if (sourceIndex !== -1 && (anchorIndex === sourceIndex || anchorIndex === sourceIndex + 1)) return; + insertWorkspaceBefore(activeDrag.workspaceId, anchor).catch((reason) => { + console.warn("workspace reorder rejected:", reason); + }); + }; + const workspaceDropAtListStart = groups[0]?.workspaceId !== void 0 && workspaceDrag?.over?.id === groups[0].workspaceId && workspaceDrag.over.half === "before"; + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.treeBody, WorkspaceBrowser_module_css_default.wide), + children: [ + workspaceDropAtListStart && (0, react_jsx_runtime.jsx)("span", { + className: WorkspaceBrowser_module_css_default.listTopDropIndicator, + "aria-hidden": "true" + }), + (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.list, workspaceDropAtListStart && WorkspaceBrowser_module_css_default.listTopDropActive), + role: "tree", + "aria-label": t("section.sessions"), + children: [groups.length === 0 && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.empty, + children: t("empty.none") + }), groups.map((group) => { + const workspaceId = group.workspaceId; + const workspaceMarker = workspaceId !== void 0 && workspaceDrag?.over?.id === workspaceId ? workspaceDrag.over.half : null; + const workspaceDragProps = workspaceId === void 0 ? void 0 : { + start: () => { + workspaceDropCommitted.current = false; + setWorkspaceDrag({ + workspaceId, + over: null + }); + }, + end: () => { + if (workspaceDrag?.over !== null && workspaceDrag?.over !== void 0) commitWorkspaceDrag(workspaceDrag, workspaceDrag.over); + else setWorkspaceDrag(null); + workspaceDropCommitted.current = false; + } + }; + const hoverWorkspace = workspaceId === void 0 ? void 0 : (half) => { + setWorkspaceDrag((active) => active === null ? active : { + ...active, + over: { + id: workspaceId, + half + } + }); + }; + const dropWorkspace = workspaceId === void 0 ? void 0 : (half) => { + if (workspaceDrag === null) return; + commitWorkspaceDrag(workspaceDrag, { + id: workspaceId, + half + }); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.groupSection, workspaceMarker === "before" && WorkspaceBrowser_module_css_default.workspaceDropBefore, workspaceMarker === "after" && WorkspaceBrowser_module_css_default.workspaceDropAfter), + onDragOver: workspaceDrag === null || hoverWorkspace === void 0 ? void 0 : (e) => { + e.preventDefault(); + e.dataTransfer.dropEffect = "move"; + hoverWorkspace(workspaceGroupHalf(e)); + }, + onDrop: workspaceDrag === null || dropWorkspace === void 0 ? void 0 : (e) => { + e.preventDefault(); + dropWorkspace(workspaceGroupHalf(e)); + }, + children: [ + (0, react_jsx_runtime.jsx)(ProjectRowItem, { + group, + t, + onToggle: () => { + if (group.expanded) setExpandedSessionGroups((keys) => keys.filter((key) => key !== group.key)); + setGroupExpanded(group.key, !group.expanded); + }, + onCreate: () => { + if (group.workspaceId !== void 0) { + setGroupExpanded(group.key, true); + startSession(group.workspaceId); + } + }, + drag: workspaceDragProps, + actions: group.workspaceId === void 0 ? void 0 : { + rename: () => { + /* v8 ignore next -- narrowing guard: the actions object exists only for real-workspace groups. */ + if (group.workspaceId !== void 0) onRenameRequest(group.workspaceId, group.label); + }, + delete: () => { + /* v8 ignore next -- narrowing guard: the actions object exists only for real-workspace groups. */ + if (group.workspaceId !== void 0) onDeleteRequest(group.workspaceId, group.label); + } + } + }), + (expandedSessionGroups.includes(group.key) ? group.sessions : group.sessions.slice(0, COLLAPSED_SESSION_LIMIT)).map((node) => { + const sameGroupDrag = drag !== null && drag.accountKey === group.key; + return (0, react_jsx_runtime.jsx)(SessionNodeItem, { + node, + currentId: current, + now, + onOpen: open, + onRename: onSessionRename, + onFork: forkSession, + onArchive: onSessionArchive, + drag: { + start: () => { + sessionDropCommitted.current = false; + setDrag({ + accountKey: group.key, + sessionId: node.id, + over: null + }); + }, + active: sameGroupDrag, + marker: sameGroupDrag && drag.over?.id === node.id ? drag.over.half : null, + hover: (half) => { + /* v8 ignore next -- narrowing guard: Rows gates hover on `active`, which is false while the drag state is null. */ + setDrag((d) => d === null ? d : { + ...d, + over: { + id: node.id, + half + } + }); + }, + drop: (half) => { + /* v8 ignore next -- narrowing guard: Rows gates drop on `active`, which is false while the drag state is null. */ + if (drag === null) return; + commitSessionDrag(drag, { + id: node.id, + half + }); + }, + end: () => { + if (drag?.over !== null && drag?.over !== void 0) commitSessionDrag(drag, drag.over); + else setDrag(null); + sessionDropCommitted.current = false; + } + }, + t + }, node.id); + }), + group.sessions.length > COLLAPSED_SESSION_LIMIT && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: WorkspaceBrowser_module_css_default.sessionOverflowButton, + "aria-expanded": expandedSessionGroups.includes(group.key), + onClick: () => { + setExpandedSessionGroups((keys) => toggled(keys, group.key)); + }, + children: expandedSessionGroups.includes(group.key) ? t("sessions.collapse") : t("sessions.expand", { n: group.sessions.length - COLLAPSED_SESSION_LIMIT }) + }) + ] + }, group.key); + })] + }), + (0, react_jsx_runtime.jsx)("span", { className: WorkspaceBrowser_module_css_default.fade }) + ] + }); + } + /** The flat "In one list" body: every session is one draggable top-level row. */ + function FlatList({ useSessions, open, forkSession, onSessionRename, onSessionArchive, archivedSessionIds, orderBy, sessionOrderByAccount, sessionUpdatedAtByAccount, syncSessionOrderAccount, setSessionOrder, t }) { + const list = useSessions((s) => s); + const baseRows = (0, react.useMemo)(() => deriveFlat(list, archivedSessionIds), [list, archivedSessionIds]); + const sessionIds = (0, react.useMemo)(() => baseRows.map((row) => row.id), [baseRows]); + const previousOrderBy = (0, react.useRef)(orderBy); + (0, react.useEffect)(() => { + if (list.phase !== "ready") return; + const previousOrder = sessionOrderByAccount[FLAT_SESSION_ORDER_KEY]; + const previousUpdatedAt = sessionUpdatedAtByAccount["__flat_session_order__"] ?? {}; + const switchedToUpdated = previousOrderBy.current !== "updated" && orderBy === "updated"; + previousOrderBy.current = orderBy; + const next = nextSessionOrderAccount({ + sessionIds, + previousOrder, + previousUpdatedAt, + list, + orderBy, + sortByRecency: orderBy === "updated" && (previousOrder === void 0 || switchedToUpdated) + }); + if (next.changed) syncSessionOrderAccount(FLAT_SESSION_ORDER_KEY, next.order.map((id) => id), next.updatedAt); + }, [ + list, + orderBy, + sessionOrderByAccount, + sessionUpdatedAtByAccount, + sessionIds, + syncSessionOrderAccount + ]); + const rows = (0, react.useMemo)(() => { + const byId = new Map(baseRows.map((row) => [row.id, row])); + return reconciledSessionOrder(sessionIds, sessionOrderByAccount[FLAT_SESSION_ORDER_KEY]).flatMap((id) => { + const row = byId.get(id); + return row === void 0 ? [] : [row]; + }); + }, [ + baseRows, + sessionOrderByAccount, + sessionIds + ]); + const [drag, setDrag] = (0, react.useState)(null); + const dropCommitted = (0, react.useRef)(false); + useNativeDragAcceptance(drag !== null); + const commitDrag = (activeDrag, over) => { + if (dropCommitted.current) return; + dropCommitted.current = true; + setDrag(null); + const targetIndex = rows.findIndex((row) => row.id === over.id); + if (targetIndex === -1) return; + const anchor = over.half === "before" ? over.id : rows[targetIndex + 1]?.id; + if (anchor === activeDrag.sessionId) return; + const sourceIndex = rows.findIndex((row) => row.id === activeDrag.sessionId); + const anchorIndex = anchor === void 0 ? rows.length : rows.findIndex((row) => row.id === anchor); + if (sourceIndex !== -1 && (anchorIndex === sourceIndex || anchorIndex === sourceIndex + 1)) return; + const nextOrder = rows.map((row) => row.id).filter((id) => id !== activeDrag.sessionId); + const insertAt = anchor === void 0 ? nextOrder.length : nextOrder.indexOf(anchor); + nextOrder.splice(insertAt === -1 ? nextOrder.length : insertAt, 0, activeDrag.sessionId); + setSessionOrder(FLAT_SESSION_ORDER_KEY, nextOrder.map((id) => id)); + }; + const now = Date.now(); + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.treeBody, WorkspaceBrowser_module_css_default.wide), + children: [(0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.list, WorkspaceBrowser_module_css_default.flatList), + role: "tree", + "aria-label": t("section.sessions"), + children: [rows.length === 0 && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.empty, + children: t("empty.none") + }), rows.map((node) => { + const active = drag !== null; + return (0, react_jsx_runtime.jsx)(SessionNodeItem, { + node, + currentId: list.current, + now, + onOpen: open, + onRename: onSessionRename, + onFork: forkSession, + onArchive: onSessionArchive, + flat: true, + drag: { + start: () => { + dropCommitted.current = false; + setDrag({ + accountKey: FLAT_SESSION_ORDER_KEY, + sessionId: node.id, + over: null + }); + }, + active, + marker: active && drag.over?.id === node.id ? drag.over.half : null, + hover: (half) => { + setDrag((current) => current === null ? current : { + ...current, + over: { + id: node.id, + half + } + }); + }, + drop: (half) => { + if (drag !== null) commitDrag(drag, { + id: node.id, + half + }); + }, + end: () => { + if (drag?.over !== null && drag?.over !== void 0) commitDrag(drag, drag.over); + else setDrag(null); + dropCommitted.current = false; + } + }, + t + }, node.id); + })] + }), (0, react_jsx_runtime.jsx)("span", { className: WorkspaceBrowser_module_css_default.fade })] + }); + } + /** Flat search body: local metadata matches plus the current Host result page. */ + function SearchResults({ useSessions, open, workspaces, archivedSessionIds, query, remote, resultLimit, t }) { + const list = useSessions((s) => s); + const currentRemote = remote.query === query ? remote : { + query, + status: "loading", + items: [], + hasMore: false + }; + const results = (0, react.useMemo)(() => deriveSearchResults(list, workspaces, query, archivedSessionIds, currentRemote, resultLimit), [ + list, + workspaces, + query, + archivedSessionIds, + currentRemote, + resultLimit + ]); + const pending = currentRemote.status === "loading"; + const failed = currentRemote.status === "error"; + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.treeBody, WorkspaceBrowser_module_css_default.wide), + children: [(0, react_jsx_runtime.jsxs)("div", { + className: WorkspaceBrowser_module_css_default.list, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.searchTree, + role: "tree", + "aria-label": t("search.results.aria"), + children: results.items.map((result) => (0, react_jsx_runtime.jsx)(SearchResultItem, { + result, + currentId: list.current, + onOpen: open, + t + }, result.id)) + }), + pending && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.searchStatus, + role: "status", + children: t("search.pending") + }), + failed && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.searchWarning, + role: "status", + children: t("search.unavailable") + }), + !pending && results.items.length === 0 && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.empty, + children: t("search.noMatches") + }), + results.hasMore && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.searchStatus, + children: t("search.hasMore", { n: resultLimit }) + }) + ] + }), (0, react_jsx_runtime.jsx)("span", { className: WorkspaceBrowser_module_css_default.fade })] + }); + } + /** + * Render the browsing region. + * @param props - composed slot props (shell owner share + store + injected actions). + * @returns the region element tree. + */ + function WorkspaceBrowser({ wide, expandSidebar, useSessions, useWorkspaces, useStore, actions, startSession, open, renameSession, forkSession, renameWorkspace, deleteWorkspace, insertWorkspaceBefore, archiveSession, insertSessionBefore, createWorkspace, searchSessions, searchResultLimit, useDirectoryFlow, renderSlot, t }) { + const workspaces = useWorkspaces((state) => state.items); + const workspacePhase = useWorkspaces((state) => state.phase); + const archivedSessionIds = useWorkspaces((state) => state.archivedSessionIds); + const directoryFlowAvailable = useDirectoryFlow((occupied) => occupied); + const groupBy = useStore((s) => s.groupBy); + const orderBy = useStore((s) => s.orderBy); + const groupExpansion = useStore((s) => s.groupExpansion); + const sessionOrderByAccount = useStore((s) => s.sessionOrderByAccount); + const sessionUpdatedAtByAccount = useStore((s) => s.sessionUpdatedAtByAccount); + (0, react.useEffect)(() => { + if (workspacePhase !== "ready") return; + actions.retainAccountKeys([ + "", + FLAT_SESSION_ORDER_KEY, + ...workspaces.map((workspace) => workspace.workspaceId) + ]); + }, [ + actions.retainAccountKeys, + workspacePhase, + workspaces + ]); + const [query, setQuery] = (0, react.useState)(""); + const [searchExpanded, setSearchExpanded] = (0, react.useState)(false); + const normalizedQuery = sanitizeSearchQuery(query).trim(); + const [remoteSearch, setRemoteSearch] = (0, react.useState)({ + query: "", + status: "idle", + items: [], + hasMore: false + }); + const searchRoot = (0, react.useRef)(null); + const searchInput = (0, react.useRef)(null); + const [wsPickerOpen, setWsPickerOpen] = (0, react.useState)(false); + const wsPlusRef = (0, react.useRef)(null); + const composingRef = (0, react.useRef)(false); + const [searchOnExpand, setSearchOnExpand] = (0, react.useState)(false); + (0, react.useEffect)(() => { + if (wide && searchOnExpand) { + const timer = window.setTimeout(() => { + searchInput.current?.focus({ preventScroll: true }); + setSearchOnExpand(false); + }, EXPAND_SLIDE_MS); + return () => { + window.clearTimeout(timer); + }; + } + }, [wide, searchOnExpand]); + (0, react.useEffect)(() => { + if (!wide || !searchExpanded || searchOnExpand) return; + searchInput.current?.focus({ preventScroll: true }); + }, [ + wide, + searchExpanded, + searchOnExpand + ]); + (0, react.useEffect)(() => { + if (!wide || !searchExpanded) return; + const onClick = (event) => { + if (!(event.target instanceof Node) || searchRoot.current?.contains(event.target) === true) return; + searchInput.current?.blur(); + if (normalizedQuery !== "") return; + setSearchExpanded(false); + }; + document.addEventListener("click", onClick); + return () => { + document.removeEventListener("click", onClick); + }; + }, [ + normalizedQuery, + wide, + searchExpanded + ]); + (0, react.useEffect)(() => { + if (normalizedQuery === "") { + setRemoteSearch({ + query: "", + status: "idle", + items: [], + hasMore: false + }); + return; + } + const controller = new AbortController(); + setRemoteSearch({ + query: normalizedQuery, + status: "loading", + items: [], + hasMore: false + }); + const timer = window.setTimeout(() => { + searchSessions(normalizedQuery, controller.signal).then((result) => { + if (controller.signal.aborted) return; + setRemoteSearch({ + query: normalizedQuery, + status: "ready", + items: result.items, + hasMore: result.hasMore + }); + }).catch(() => { + if (controller.signal.aborted) return; + setRemoteSearch({ + query: normalizedQuery, + status: "error", + items: [], + hasMore: false + }); + }); + }, SEARCH_DEBOUNCE_MS); + return () => { + window.clearTimeout(timer); + controller.abort(); + }; + }, [normalizedQuery, searchSessions]); + const [renameTarget, setRenameTarget] = (0, react.useState)(null); + const [renameDraft, setRenameDraft] = (0, react.useState)(""); + const [renaming, setRenaming] = (0, react.useState)(false); + const [renameError, setRenameError] = (0, react.useState)(null); + const renameTrimmed = renameDraft.trim(); + const renameDuplicate = renameTarget !== null && renameTrimmed !== "" && renameTrimmed !== renameTarget.currentTitle && workspaces.some((w) => w.title === renameTrimmed); + const renameBlocked = renaming || renameTrimmed === "" || renameTarget === null || renameTrimmed === renameTarget.currentTitle || renameDuplicate; + const closeRename = () => { + if (renaming) return; + setRenameTarget(null); + setRenameError(null); + }; + const confirmRename = () => { + if (renameBlocked) return; + setRenaming(true); + setRenameError(null); + renameWorkspace(renameTarget.workspaceId, renameTrimmed).then(() => { + setRenaming(false); + setRenameTarget(null); + }).catch((reason) => { + setRenaming(false); + setRenameError(reason instanceof Error ? reason.message : String(reason)); + }); + }; + const [sessionRenameTarget, setSessionRenameTarget] = (0, react.useState)(null); + const [sessionRenameDraft, setSessionRenameDraft] = (0, react.useState)(""); + const [sessionRenaming, setSessionRenaming] = (0, react.useState)(false); + const [sessionRenameError, setSessionRenameError] = (0, react.useState)(null); + const sessionRenameTrimmed = sessionRenameDraft.trim(); + const sessionRenameBlocked = sessionRenaming || sessionRenameTrimmed === "" || sessionRenameTarget === null; + const closeSessionRename = () => { + if (sessionRenaming) return; + setSessionRenameTarget(null); + setSessionRenameError(null); + }; + const confirmSessionRename = () => { + if (sessionRenameBlocked) return; + setSessionRenaming(true); + setSessionRenameError(null); + renameSession(sessionRenameTarget.sessionId, sessionRenameTrimmed).then(() => { + setSessionRenaming(false); + setSessionRenameTarget(null); + }).catch((reason) => { + setSessionRenaming(false); + setSessionRenameError(reason instanceof Error ? reason.message : String(reason)); + }); + }; + const onSessionRename = (sessionId, currentTitle) => { + setSessionRenameTarget({ + sessionId, + currentTitle + }); + setSessionRenameDraft(currentTitle); + setSessionRenameError(null); + }; + const onSessionArchive = (sessionId) => { + archiveSession(sessionId).catch((reason) => { + console.warn("session archive rejected:", reason); + }); + }; + const [deleteTarget, setDeleteTarget] = (0, react.useState)(null); + const [deleting, setDeleting] = (0, react.useState)(false); + const [deleteCommittedId, setDeleteCommittedId] = (0, react.useState)(null); + const [deleteError, setDeleteError] = (0, react.useState)(null); + (0, react.useEffect)(() => { + if (deleteCommittedId === null || workspaces.some((workspace) => workspace.workspaceId === deleteCommittedId)) return; + setDeleting(false); + setDeleteCommittedId(null); + setDeleteTarget(null); + }, [deleteCommittedId, workspaces]); + const closeDelete = () => { + if (deleting) return; + setDeleteTarget(null); + setDeleteError(null); + }; + const confirmDelete = () => { + /* v8 ignore next -- the Modal is absent without a target and its button is disabled while deleting. */ + if (deleting || deleteTarget === null) return; + setDeleting(true); + setDeleteCommittedId(null); + setDeleteError(null); + deleteWorkspace(deleteTarget.workspaceId).then(() => { + setDeleteCommittedId(deleteTarget.workspaceId); + }).catch((reason) => { + setDeleting(false); + setDeleteError(reason instanceof Error ? reason.message : String(reason)); + }); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.root, !wide && WorkspaceBrowser_module_css_default.rail), + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: WorkspaceBrowser_module_css_default.sectionHeader, + children: [ + wide && (0, react_jsx_runtime.jsx)("span", { + className: clsx(WorkspaceBrowser_module_css_default.sectionLabel, WorkspaceBrowser_module_css_default.wide, searchExpanded && WorkspaceBrowser_module_css_default.sectionLabelHidden), + children: groupBy === "flat" ? t("section.sessions") : t("section.workspaces") + }), + wide && (0, react_jsx_runtime.jsx)("div", { + className: clsx(WorkspaceBrowser_module_css_default.searchSlot, searchExpanded && WorkspaceBrowser_module_css_default.searchSlotExpanded), + children: (0, react_jsx_runtime.jsxs)("div", { + ref: searchRoot, + className: clsx(WorkspaceBrowser_module_css_default.search, searchExpanded && WorkspaceBrowser_module_css_default.searchExpanded), + onClick: () => { + setWsPickerOpen(false); + setSearchExpanded(true); + searchInput.current?.focus(); + }, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("search"), + side: "bottom", + delayMs: 500, + disabled: searchExpanded, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: WorkspaceBrowser_module_css_default.searchButton, + "aria-label": t("search.sessions.aria"), + "aria-expanded": searchExpanded, + onClick: () => { + setWsPickerOpen(false); + setSearchExpanded(true); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { size: searchExpanded ? 11 : 14 }) + }) + }), + (0, react_jsx_runtime.jsx)("input", { + ref: searchInput, + className: WorkspaceBrowser_module_css_default.searchInput, + type: "text", + placeholder: t("search.placeholder"), + maxLength: SEARCH_QUERY_MAX_CODE_UNITS, + value: query, + tabIndex: searchExpanded ? 0 : -1, + onChange: (e) => { + setQuery(sanitizeSearchQuery(e.target.value)); + }, + onKeyDown: (e) => { + if (e.key !== "Escape") return; + setQuery(""); + setSearchExpanded(false); + } + }), + searchExpanded && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: WorkspaceBrowser_module_css_default.clearButton, + "aria-label": t("search.clear"), + onClick: (e) => { + e.stopPropagation(); + setQuery(""); + setSearchExpanded(false); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseFill14, {}) + }) + ] + }) + }), + (0, react_jsx_runtime.jsxs)("div", { + className: clsx(WorkspaceBrowser_module_css_default.headerActions, wide && searchExpanded && WorkspaceBrowser_module_css_default.headerActionsHidden), + children: [wide && (0, react_jsx_runtime.jsx)(ViewOptionsMenu, { + groupBy, + orderBy, + onGroupPick: (mode) => { + actions.setGroupBy(mode); + }, + onOrderPick: (mode) => { + actions.setOrderBy(mode); + }, + t + }), directoryFlowAvailable && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("workspace.add"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + ref: wsPlusRef, + type: "button", + className: WorkspaceBrowser_module_css_default.iconButton, + "aria-label": t("workspace.add"), + onClick: () => { + setWsPickerOpen((v) => !v); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconProjectAddOutline16, { size: wide ? 16 : 18 }) + }) + })] + }), + (0, react_jsx_runtime.jsx)(WorkspacePickFlow, { + t, + open: wsPickerOpen, + anchorRef: wsPlusRef, + useWorkspaces, + createWorkspace, + useDirectoryFlow, + renderDirectoryFlow: (owner) => renderSlot("sidebar.workspaces.directoryFlow", owner), + addOnly: true, + side: "right", + onPick: (workspaceId) => { + setWsPickerOpen(false); + startSession(workspaceId); + }, + onClose: () => { + setWsPickerOpen(false); + } + }) + ] + }), + !wide && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.search, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("search"), + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: WorkspaceBrowser_module_css_default.searchButton, + "aria-label": t("search.sessions.aria"), + onClick: () => { + setSearchExpanded(true); + setSearchOnExpand(true); + expandSidebar(); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { size: 18 }) + }) + }) + }), + (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.listArea, + children: wide && (normalizedQuery !== "" ? (0, react_jsx_runtime.jsx)(SearchResults, { + useSessions, + open, + workspaces, + archivedSessionIds, + query: normalizedQuery, + remote: remoteSearch, + resultLimit: searchResultLimit, + t + }) : groupBy === "flat" ? (0, react_jsx_runtime.jsx)(FlatList, { + useSessions, + open, + forkSession, + onSessionRename, + onSessionArchive, + archivedSessionIds, + orderBy, + sessionOrderByAccount, + sessionUpdatedAtByAccount, + syncSessionOrderAccount: actions.syncSessionOrderAccount, + setSessionOrder: actions.setSessionOrder, + t + }) : (0, react_jsx_runtime.jsx)(SessionTree, { + useSessions, + onSessionRename, + onSessionArchive, + forkSession, + workspaces, + groupExpansion, + setGroupExpanded: actions.setGroupExpanded, + sessionOrderByAccount, + sessionUpdatedAtByAccount, + syncSessionOrderAccount: actions.syncSessionOrderAccount, + setSessionOrder: actions.setSessionOrder, + archivedSessionIds, + startSession, + open, + insertWorkspaceBefore, + insertSessionBefore, + orderBy, + t, + onRenameRequest: (workspaceId, currentTitle) => { + setRenameTarget({ + workspaceId, + currentTitle + }); + setRenameDraft(currentTitle); + setRenameError(null); + }, + onDeleteRequest: (workspaceId, title) => { + setDeleteTarget({ + workspaceId, + title + }); + setDeleteError(null); + } + })) + }), + (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: renameTarget !== null, + onClose: closeRename, + closeLabel: t("close"), + title: t("rename.workspace.title"), + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + disabled: renaming, + onClick: closeRename, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + disabled: renameBlocked, + onClick: confirmRename, + children: t("rename") + })] }), + children: [ + (0, react_jsx_runtime.jsx)("input", { + className: WorkspaceBrowser_module_css_default.renameInput, + value: renameDraft, + "aria-label": t("field.workspaceName"), + autoFocus: true, + disabled: renaming, + onFocus: (e) => { + e.target.select(); + }, + onChange: (e) => { + setRenameDraft(e.target.value); + setRenameError(null); + }, + onCompositionStart: () => { + composingRef.current = true; + }, + onCompositionEnd: () => { + composingRef.current = false; + }, + onKeyDown: (e) => { + if (e.key === "Enter" && !composingRef.current) { + e.preventDefault(); + confirmRename(); + } + } + }), + renameDuplicate && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.renameError, + role: "alert", + children: t("conflict.named", { name: renameTrimmed }) + }), + renameError !== null && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.renameError, + role: "alert", + children: renameError + }) + ] + }), + (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: sessionRenameTarget !== null, + onClose: closeSessionRename, + closeLabel: t("close"), + title: t("rename.session.title"), + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + disabled: sessionRenaming, + onClick: closeSessionRename, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + disabled: sessionRenameBlocked, + onClick: confirmSessionRename, + children: t("rename") + })] }), + children: [(0, react_jsx_runtime.jsx)("input", { + className: WorkspaceBrowser_module_css_default.renameInput, + value: sessionRenameDraft, + "aria-label": t("field.sessionName"), + autoFocus: true, + disabled: sessionRenaming, + onFocus: (e) => { + e.target.select(); + }, + onChange: (e) => { + setSessionRenameDraft(e.target.value); + setSessionRenameError(null); + }, + onCompositionStart: () => { + composingRef.current = true; + }, + onCompositionEnd: () => { + composingRef.current = false; + }, + onKeyDown: (e) => { + if (e.key === "Enter" && !composingRef.current) { + e.preventDefault(); + confirmSessionRename(); + } + } + }), sessionRenameError !== null && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.renameError, + role: "alert", + children: sessionRenameError + })] + }), + (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: deleteTarget !== null, + onClose: closeDelete, + closeLabel: t("close"), + title: t("delete.workspace"), + ...deleteTarget === null ? {} : { description: t("delete.desc", { name: deleteTarget.title }) }, + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + disabled: deleting, + onClick: closeDelete, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + className: WorkspaceBrowser_module_css_default.deleteAction, + disabled: deleting, + onClick: confirmDelete, + children: t("delete.workspace") + })] }), + children: [deleting && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.deleteStatus, + role: "status", + children: t("delete.pending") + }), deleteError !== null && (0, react_jsx_runtime.jsx)("div", { + className: WorkspaceBrowser_module_css_default.renameError, + role: "alert", + children: deleteError + })] + }) + ] + }); + } + //#endregion + //#region lib/types/client/locales.js + /** + * `workspace` namespace dictionaries: the browsing region (section header, + * search, tree rows, dialogs) and the pick/add flow. Runtime failure + * messages (wire error strings) pass through untranslated by policy. + */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "group.ungrouped": "未分组", + "session.new": "新会�", + "section.workspaces": "工作区", + "section.sessions": "会�", + "viewOptions.label": "视图选项", + "groupBy.label": "分组方�", + "groupBy.workspace": "按工作区", + "groupBy.flat": "�列表", + "orderBy.label": "排�方�", + "orderBy.manual": "手动排�", + "orderBy.updated": "最近更新", + "sessions.expand": "展开其余 {n} 个会�", + "sessions.collapse": "收起", + "empty.none": "暂无会�", + "empty.noMatches": "无匹�结果", + "workspace.add": "添加工作区", + "search.sessions.aria": "�索会�", + "search.placeholder": "�索会�…", + "search.clear": "清除�索", + "search.results.aria": "�索结果", + "search.pending": "正在�索会�历�…", + "search.unavailable": "内容�索暂��用,仅显示�称匹�。", + "search.noMatches": "无匹�会�", + "search.hasMore": "仅显示� {n} �结果,请缩��索范围。", + "menu.addWorkspace": "添加工作区…", + "picker.loading": "正在加载工作区…", + "conflict.named": "已存在�为“{name}�的工作区。", + "folderError.title": "无法打开文件夹", + "folderError.retry": "�新选择", + "rename": "�命�", + "rename.workspace.title": "�命�工作区", + "rename.session.title": "�命�会�", + "field.workspaceName": "工作区�称", + "field.sessionName": "会��称", + "delete.workspace": "删除工作区", + "delete.desc": "将把“{name}�从工作区列表中移除。文件夹与会�记录会�留,其会�将显示在“未分组�下。", + "delete.pending": "正在删除工作区…", + "menu.fork": "分�会�", + "menu.archiveSession": "归档会�", + "sessions.count.one": "{n} 个会�", + "sessions.count.other": "{n} 个会�", + "actions.workspace.aria": "工作区“{name}�的�作", + "actions.session.aria": "会�“{name}�的�作", + "actions.newSession.aria": "在“{name}�中新建会�", + "status.running": "进行中", + "status.subagentsRunning.one": "{n} 个�代��行中", + "status.subagentsRunning.other": "{n} 个�代��行中", + "status.idle": "空闲", + "status.waitingApproval": "等待审批", + "status.planReview": "计划待审", + "status.waitingAnswer": "等待回答", + "status.completed": "已完�", + "hover.created": "创建于 {time}", + "hover.copied": "已�制", + "date.ymd": "{y}年{m}月{d}日", + "time.now": "刚刚", + "time.minutes": "{n}分钟", + "time.hours": "{n}�时", + "time.days": "{n}天", + "time.months": "{n}个月", + "time.years": "{n}年", + "time.ago": "{t}�" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "group.ungrouped": "Ungrouped", + "session.new": "New Session", + "section.workspaces": "Workspaces", + "section.sessions": "Sessions", + "viewOptions.label": "View options", + "groupBy.label": "Group by", + "groupBy.workspace": "WorkSpace", + "groupBy.flat": "In one list", + "orderBy.label": "Order by", + "orderBy.manual": "Manual", + "orderBy.updated": "Last updated", + "sessions.expand": "Show {n} more sessions", + "sessions.collapse": "Show less", + "empty.none": "No sessions yet", + "empty.noMatches": "No matches", + "workspace.add": "Add workspace", + "search.sessions.aria": "Search sessions", + "search.placeholder": "Search sessions...", + "search.clear": "Clear search", + "search.results.aria": "Search results", + "search.pending": "Searching session history…", + "search.unavailable": "Content search is temporarily unavailable. Showing name matches.", + "search.noMatches": "No matching sessions", + "search.hasMore": "Showing the first {n} results. Narrow your search.", + "menu.addWorkspace": "Add workspace…", + "picker.loading": "Loading workspaces…", + "conflict.named": "A workspace named “{name}� already exists.", + "folderError.title": "Couldn’t open folder", + "folderError.retry": "Choose again", + "rename": "Rename", + "rename.workspace.title": "Rename workspace", + "rename.session.title": "Rename session", + "field.workspaceName": "Workspace name", + "field.sessionName": "Session name", + "delete.workspace": "Delete workspace", + "delete.desc": "This removes “{name}� from the workspace list. The folder and session logs will be kept. Its sessions will appear under Ungrouped.", + "delete.pending": "Deleting workspace…", + "menu.fork": "Fork session", + "menu.archiveSession": "Archive session", + "sessions.count.one": "{n} session", + "sessions.count.other": "{n} sessions", + "actions.workspace.aria": "Workspace actions for {name}", + "actions.session.aria": "Session actions for {name}", + "actions.newSession.aria": "New session in {name}", + "status.running": "Running", + "status.subagentsRunning.one": "{n} subagent running", + "status.subagentsRunning.other": "{n} subagents running", + "status.idle": "Idle", + "status.waitingApproval": "Waiting for approval", + "status.planReview": "Plan awaiting review", + "status.waitingAnswer": "Waiting for answer", + "status.completed": "Completed", + "hover.created": "Created {time}", + "hover.copied": "Copied", + "date.ymd": "{y}-{m}-{d}", + "time.now": "now", + "time.minutes": "{n}min", + "time.hours": "{n}h", + "time.days": "{n}d", + "time.months": "{n}mo", + "time.years": "{n}y", + "time.ago": "{t} ago" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin. */ + const NS = "workspace"; + /** + * Required services (cordis fiber inject). The target slots are declared by + * the ui-sidebar / ui-conversation applies, whose activation order relative + * to this one is NOT constrained: dsh.client.inject edges are informational + * (loading/prefetch metadata, never apply sequencing) and neither owner + * provides a waitable service. apply therefore depends on each slot + * declaration through `slots.inject()` instead of assuming order. + */ + const inject = [ + "slots", + "sessions", + "workspaces", + "locale" + ]; + /** + * Register the browser and picker once their slot declarations are on the + * ledger. Inject factories return plain callbacks; data reads use the + * framework's global hooks. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-workspace: dictionaries"); + const searchSessions = async (query, signal) => { + const result = await ctx.sessions.search(query, signal); + if (!result.ok) throw new Error(result.error.message); + return result.value; + }; + const flowSource = (hole) => ({ + getSnapshot: () => ctx.slots.entries(hole).length > 0, + subscribe: (listener) => ctx.slots.subscribe(hole, listener) + }); + const browserFlowSource = flowSource("sidebar.workspaces.directoryFlow"); + const pickerFlowSource = flowSource("conversation.hero.workspace.directoryFlow"); + const browserInjected = () => ({ + startSession: (workspaceId) => { + ctx.workspaces.startSession(workspaceId); + }, + open: (sessionId) => { + ctx.sessions.open(sessionId); + }, + searchSessions, + searchResultLimit: ctx.sessions.searchResultLimit, + renameSession: async (sessionId, title) => { + const session = ctx.sessions.binding(sessionId)?.session; + if (session === void 0) throw new Error(`unknown session "${sessionId}"`); + const result = await session.rename(title); + if (!result.ok) throw new Error(result.error.message); + }, + forkSession: (sessionId) => { + ctx.sessions.fork({ + sessionId, + increaseTitle: true + }).then((childId) => { + ctx.sessions.open(childId); + }).catch(() => {}); + }, + renameWorkspace: async (workspaceId, title) => { + await ctx.workspaces.rename(workspaceId, title); + }, + deleteWorkspace: async (workspaceId) => { + await ctx.workspaces.delete(workspaceId); + }, + insertWorkspaceBefore: async (workspaceId, beforeWorkspaceId) => { + await ctx.workspaces.insertBefore(workspaceId, beforeWorkspaceId); + }, + archiveSession: async (sessionId) => { + await ctx.workspaces.archiveSession(sessionId); + }, + insertSessionBefore: async (workspaceId, sessionId, beforeSessionId) => { + await ctx.workspaces.insertSessionBefore(workspaceId, sessionId, beforeSessionId); + }, + createWorkspace: (input) => ctx.workspaces.create(input), + hooks: { directoryFlow: browserFlowSource } + }); + const pickerInjected = () => ({ + createWorkspace: (input) => ctx.workspaces.create(input), + hooks: { directoryFlow: pickerFlowSource } + }); + ctx.slots.inject("sidebar.workspaces", () => ctx.slots.register({ + name: "sidebar.workspaces", + children: { "sidebar.workspaces.directoryFlow": { + kind: "single", + scope: "root" + } }, + store: createWorkspaceViewStore(), + inject: browserInjected, + locale: NS + }, WorkspaceBrowser)); + ctx.slots.inject("conversation.hero.workspace", () => ctx.slots.register({ + name: "conversation.hero.workspace", + children: { "conversation.hero.workspace.directoryFlow": { + kind: "single", + scope: "root" + } }, + inject: pickerInjected, + locale: NS + }, WorkspacePicker)); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000017 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000017 new file mode 100644 index 0000000..086f3b7 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000017 @@ -0,0 +1,859 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-input-trigger", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/core/detect.js + const WORD_CHAR = /[\p{L}\p{N}_]/u; + const WHITESPACE = /\s/u; + /** + * Word-boundary rule: a trigger char opens only at start-of-draft, after + * whitespace (newlines included), or after punctuation. Two URL carve-outs + * keep '/' dead inside URLs (both pinned by tests): '/' after a ':' that + * itself follows a non-whitespace char (scheme separator, `https:/…`), and + * '/' directly after another '/' (second slash of `//`). + */ + function boundaryOk(draft, index, char) { + if (index === 0) return true; + const prev = draft.charAt(index - 1); + if (WHITESPACE.test(prev)) return true; + if (WORD_CHAR.test(prev)) return false; + if (char === "/") { + if (prev === "/") return false; + if (prev === ":" && index >= 2 && !WHITESPACE.test(draft.charAt(index - 2))) return false; + } + return true; + } + /** + * Detect a trigger token at the caret. Scans left from the caret and stops + * at the first whitespace (the token under edit never spans whitespace); + * trigger chars failing the guard tier or the word boundary are treated as + * ordinary token chars and the scan continues (`user@host`, URL slashes). + * Guard tiers: plain = both chars live; claimed = '/' fully suppressed, + * '@' live; frozen = none. + * + * @param draft - Full draft text. + * @param caret - Caret offset into `draft`. + * @param guard - Availability tier derived from the input phase. + * @returns The hit with `query` = trigger-to-caret slice and `span` = + * `{start: triggerIndex, end: caret}`; `span.draftRev` is a placeholder `0` + * — the calling shell stamps the real revision. Null when no trigger is + * live at the caret. + */ + const detectTrigger = (draft, caret, guard) => { + if (guard.tier === "frozen") return null; + for (let i = caret - 1; i >= 0; i--) { + const ch = draft.charAt(i); + if (WHITESPACE.test(ch)) return null; + if (ch !== "/" && ch !== "@") continue; + if (guard.tier === "claimed" && ch === "/") continue; + if (!boundaryOk(draft, i, ch)) continue; + return { + trigger: ch, + query: draft.slice(i + 1, caret), + position: draft.search(/\S/) === i ? "leading" : "inline", + span: { + start: i, + end: caret, + draftRev: 0 + } + }; + } + return null; + }; + //#endregion + //#region lib/types/core/menu.js + /** Closed rest state with generation 0; store initializer and test seed. */ + const MENU_CLOSED = { + open: false, + hit: null, + generation: 0, + groups: [], + highlight: null + }; + /** + * Replace the group roster with pending groups for `sources`, in order. + * Shell-side step before dispatching `hit` on a fresh menu open. + * + * @param state - Current menu state. + * @param sources - Source names registered for the hit trigger, menu order. + * @returns State carrying the new pending roster; highlight cleared. + */ + function seedGroups(state, sources) { + return { + ...state, + groups: sources.map((source) => ({ + source, + status: "pending", + items: [] + })), + highlight: null + }; + } + /** Close, preserving the generation so in-flight settlements stay droppable. */ + const closed = (state) => state.open || state.hit !== null || state.groups.length > 0 || state.highlight !== null ? { + open: false, + hit: null, + generation: state.generation, + groups: [], + highlight: null + } : state; + /** First item of the first non-empty ready group, or null. */ + function firstHighlight(groups) { + for (const g of groups) if (g.status === "ready" && g.items.length > 0) return { + source: g.source, + index: 0 + }; + return null; + } + /** The highlight itself when it still points at a ready item, else null. */ + function validHighlight(highlight, groups) { + if (!highlight) return null; + const g = groups.find((x) => x.source === highlight.source); + return g && g.status === "ready" && highlight.index < g.items.length ? highlight : null; + } + /** Flatten ready items into (source, index) positions in group order. */ + function positions(groups) { + const out = []; + for (const g of groups) { + if (g.status !== "ready") continue; + for (let i = 0; i < g.items.length; i++) out.push({ + source: g.source, + index: i + }); + } + return out; + } + /** True when every group is ready with zero items (the auto-close condition). */ + const allReadyEmpty = (groups) => groups.every((g) => g.status === "ready" && g.items.length === 0); + /** + * Pure menu reducer. `hit` opens a new generation over the seeded roster + * (null hit closes); `source-settled` outside the current generation, the + * open menu, or the roster is dropped; a settlement or failure leaving every + * group ready-and-empty (or no groups) auto-closes; `source-failed` silently + * removes the group (the shell logs); `move` cycles the highlight across + * ready items. + * + * @param state - Current menu state. + * @param ev - Menu event. + * @returns Next state; the same reference when stale or a no-op. + */ + const menuReduce = (state, ev) => { + switch (ev.type) { + case "hit": + if (ev.hit === null) return closed(state); + return { + open: true, + hit: ev.hit, + generation: state.generation + 1, + groups: state.groups.map((g) => ({ + source: g.source, + status: "pending", + items: [] + })), + highlight: null + }; + case "source-settled": { + if (!state.open || ev.generation !== state.generation) return state; + const idx = state.groups.findIndex((g) => g.source === ev.source); + if (idx < 0) return state; + const items = ev.items ?? []; + const groups = state.groups.map((g, i) => i === idx ? { + source: g.source, + status: "ready", + items + } : g); + if (allReadyEmpty(groups)) return closed(state); + const highlight = validHighlight(state.highlight, groups) ?? firstHighlight(groups); + return { + ...state, + groups, + highlight + }; + } + case "source-failed": { + if (!state.open || ev.generation !== state.generation) return state; + if (!state.groups.some((g) => g.source === ev.source)) return state; + const groups = state.groups.filter((g) => g.source !== ev.source); + if (groups.length === 0 || allReadyEmpty(groups)) return closed(state); + const highlight = validHighlight(state.highlight, groups) ?? firstHighlight(groups); + return { + ...state, + groups, + highlight + }; + } + case "move": { + if (!state.open) return state; + const pos = positions(state.groups); + if (pos.length === 0) return state; + const hl = state.highlight; + const at = hl ? pos.findIndex((p) => p.source === hl.source && p.index === hl.index) : -1; + const next = pos[at < 0 ? ev.dir === 1 ? 0 : pos.length - 1 : (at + ev.dir + pos.length) % pos.length]; + if (next === void 0) return state; + if (hl && next.source === hl.source && next.index === hl.index) return state; + return { + ...state, + highlight: next + }; + } + case "close": return closed(state); + } + }; + //#endregion + //#region lib/types/client/controller.js + /** + * Per-session trigger pipeline state and orchestration. All mutation stays + * inside; MenuView renders from {@link InputTriggerController.menu} and routes + * pointer picks back through {@link InputTriggerController.pick}. + */ + var InputTriggerController = class { + deps; + /** Menu state store (per-session; survives session switches, dies with the scope). */ + menu = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(MENU_CLOSED); + /** + * Name of the source opened through the programmatic launcher, or null for + * trigger-detected/closed menus. Composer chrome subscribes to this store + * for the launcher's expanded state without owning a second menu model. + */ + launcher = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(null); + /** + * Aggregated hot reference lexicon, grouped by trigger (plain-text-reference decision; + * see .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.md): + * sources implementing the lexicon hook are polled with the session + * projection; undefined answers (roll not hot yet) are skipped; multiple + * sources on one trigger concatenate in registration order. A snapshot + * store because rolls change asynchronously (catalog settles, children + * spawn/exit) — render-side consumers subscribe instead of re-reading a + * mutable answer. + */ + lexicon = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(/* @__PURE__ */ new Map()); + /** The authoritative hit: single truth for span CAS material (menu snapshot never carries it alone). */ + hit = null; + fetch = null; + disposed = false; + /** Per-source lexicon unsubscribers (sources without the hook never enter). */ + lexiconOffs = /* @__PURE__ */ new Map(); + constructor(deps) { + this.deps = deps; + const projection = this.project(); + for (const src of deps.roster.all()) { + src.warm?.(projection); + this.watchLexicon(src, projection); + } + this.refreshLexicon(); + } + /** + * Feed a draft/caret change through trigger detection and drive the menu. + * @param draft - full draft text. + * @param caret - caret offset into `draft`. + * @param guard - availability tier derived from the input phase. + * @param draftRev - the input machine's current draft revision, stamped + * into the hit span for pick-time CAS. + */ + track(draft, caret, guard, draftRev) { + if (this.disposed) return; + const launched = this.launcher.getSnapshot() !== null; + this.clearLauncher(); + const raw = detectTrigger(draft, caret, guard); + if (raw === null) { + this.hit = null; + this.stopFetch(); + this.reduce({ type: "close" }); + return; + } + const hit = { + ...raw, + span: { + ...raw.span, + draftRev + } + }; + const prev = this.menu.getSnapshot(); + const same = !launched && prev.open && prev.hit !== null && prev.hit.trigger === hit.trigger && prev.hit.query === hit.query && prev.hit.span.start === hit.span.start && prev.hit.span.end === hit.span.end; + this.hit = hit; + if (same) return; + const roster = this.deps.roster.sources(hit.trigger); + if (roster.length === 0) { + this.stopFetch(); + this.reduce({ type: "close" }); + return; + } + if (launched || !prev.open || prev.hit === null || prev.hit.trigger !== hit.trigger) this.menu.set(seedGroups(this.menu.getSnapshot(), roster.map((s) => s.name))); + this.reduce({ + type: "hit", + hit + }); + this.fetchCandidates(hit, roster); + } + /** + * Toggle a menu containing exactly one registered source. The supplied hit + * is a synthetic selection span rather than a typed trigger token, but + * picks deliberately reuse the ordinary source callback and scoped input + * mutation pipeline. + * @param source - registered source name under `hit.trigger`. + * @param hit - synthetic hit carrying position and pick-time draft CAS. + */ + toggleSource(source, hit) { + if (this.disposed) return; + if (this.launcher.getSnapshot() === source && this.menu.getSnapshot().open) { + this.dismiss(); + return; + } + const match = this.deps.roster.sources(hit.trigger).find((item) => item.name === source); + if (match === void 0) { + this.dismiss(); + return; + } + this.stopFetch(); + this.hit = hit; + this.launcher.set(source); + this.menu.set(seedGroups(this.menu.getSnapshot(), [source])); + this.reduce({ + type: "hit", + hit + }); + this.fetchCandidates(hit, [match]); + } + /** + * Pointer pick from MenuView: route the clicked candidate through onPick + * and execute claim/insert outcomes via the scoped input events. + * @param source - source (group) name. + * @param index - candidate index within the group. + */ + pick(source, index) { + const state = this.menu.getSnapshot(); + const hit = this.hit; + if (this.disposed || !state.open || hit === null) return; + const group = state.groups.find((g) => g.source === source); + const candidate = group !== void 0 && group.status === "ready" ? group.items[index] : void 0; + if (candidate === void 0) return; + const src = this.deps.roster.sources(hit.trigger).find((s) => s.name === source); + if (src === void 0) return; + const outcome = src.onPick({ + candidate, + session: this.project(), + position: hit.position, + via: "menu", + span: hit.span + }); + this.stopFetch(); + this.reduce({ type: "close" }); + this.execute(outcome, hit.span); + } + /** + * Keyboard arbitration while the menu is open. + * @param key - intercepted key. + * @param composing - inside IME composition: everything passes. + * @returns consumed / pick-highlighted / pass. + */ + arbitrate(key, composing) { + if (composing || this.disposed) return "pass"; + const state = this.menu.getSnapshot(); + if (!state.open) return "pass"; + switch (key) { + case "up": + this.reduce({ + type: "move", + dir: -1 + }); + return "consumed"; + case "down": + this.reduce({ + type: "move", + dir: 1 + }); + return "consumed"; + case "escape": + this.stopFetch(); + this.reduce({ type: "close" }); + return "consumed"; + case "enter": + if (state.highlight === null) return "pass"; + this.pick(state.highlight.source, state.highlight.index); + return "pick-highlighted"; + } + } + /** + * Space adjudication over the just-completed leading token: polls sources' + * matchSpace (hot state, synchronous) and dispatches the outcome itself. + * @returns true when a claim/insert was actually applied by the input — + * the caller preventDefaults exactly then. + */ + onSpace() { + const hit = this.hit; + if (this.disposed || hit === null || hit.position !== "leading") return false; + const token = hit.trigger + hit.query; + const projection = this.project(); + for (const src of this.deps.roster.sources(hit.trigger)) { + if (src.matchSpace === void 0) continue; + const outcome = src.matchSpace(projection, token); + if (outcome === void 0) continue; + if (outcome === "handled") return true; + return this.execute(outcome, hit.span); + } + return false; + } + /** + * Serialize one reference occurrence to its model form via the owning + * source's codec (prompt serialization: registry → explicit + * call → await). Owner missing or codec-less rejects — the submit attempt + * blocks instead of silently downgrading to the clipboard text. + * @param source - owning source name. + * @param ref - owner-scoped reference id. + * @param signal - the submit attempt's abort signal. + * @returns the model representation (e.g. `name`). + */ + serializeReference(source, ref, signal) { + const owner = this.deps.roster.all().find((s) => s.name === source); + if (owner?.codec === void 0) return Promise.reject(/* @__PURE__ */ new Error(`slash: no serializer for reference source "${source}"`)); + return owner.codec.serialize(ref, signal); + } + /** + * Enter last adjudication: polls sources' matchEnter in registration + * order, first non-undefined wins. The outcome returns to the caller (the + * input machine applies it inside the same submit attempt — no event). + * @param line - trimmed draft; the leading char selects the trigger roster. + * @param signal - attempt-scoped abort from the input machine. + * @returns the winning outcome or undefined (default sink). Rejects when a + * polled source's warmup fails — the caller must not silently downgrade. + */ + async adjudicate(line, signal) { + const projection = this.project(); + for (const src of this.deps.roster.all()) { + if (signal.aborted) throw signal.reason instanceof Error ? signal.reason : /* @__PURE__ */ new Error("slash adjudication aborted"); + if (src.matchEnter === void 0 || !line.startsWith(src.trigger)) continue; + const outcome = await src.matchEnter(projection, line, signal); + if (outcome !== void 0) return outcome; + } + } + /** + * Drop the menu group of a disposed source (root registry change notification). + * @param source - the source whose registration was disposed. + */ + sourceRemoved(source) { + const state = this.menu.getSnapshot(); + if (state.open && state.hit !== null && state.hit.trigger === source.trigger) this.reduce({ + type: "source-failed", + generation: state.generation, + source: source.name + }); + this.lexiconOffs.get(source)?.(); + this.lexiconOffs.delete(source); + this.refreshLexicon(); + } + /** + * Admit a source registered after this controller's birth (root registry + * change notification): warm it and fold its roll into the live lexicon — + * the constructor-time prewarm covers only the roster present at scope + * birth. + * @param source - the newly registered source. + */ + sourceAdded(source) { + const projection = this.project(); + source.warm?.(projection); + this.watchLexicon(source, projection); + this.refreshLexicon(); + } + /** External dismiss (e.g. pointer outside the composer area). */ + dismiss() { + if (this.disposed) return; + this.stopFetch(); + this.reduce({ type: "close" }); + } + /** Scope teardown: close and abort (the service deletes the map entry). */ + dispose() { + this.disposed = true; + this.stopFetch(); + this.reduce({ type: "close" }); + this.hit = null; + for (const off of this.lexiconOffs.values()) off(); + this.lexiconOffs.clear(); + } + /** The session projection handed to sources (agent-backed identity; constant per scope). */ + project() { + return { sessionId: this.deps.sessionId }; + } + /** Execute a claim/insert/text outcome via the scoped input events (actx as dispatch subject); true = the input applied it. */ + execute(outcome, span) { + const { actx } = this.deps; + if (outcome === void 0 || outcome === "handled") return false; + if ("claim" in outcome) return actx.bail(actx, "slash/input-begin-command", { + claim: outcome.claim, + span + }) === true; + if ("text" in outcome) return actx.bail(actx, "slash/input-insert-text", { + text: outcome.text, + span + }) === true; + return actx.bail(actx, "slash/input-insert-reference", { + reference: outcome.insert, + span + }) === true; + } + /** Re-poll every lexicon-bearing source and publish the aggregated rolls (see the store doc). */ + refreshLexicon() { + const projection = this.project(); + const rolls = /* @__PURE__ */ new Map(); + for (const src of this.deps.roster.all()) { + if (src.lexicon === void 0) continue; + let names; + try { + names = src.lexicon(projection); + } catch (error) { + console.error(`[ui-input-trigger] source "${src.name}" lexicon failed:`, error); + continue; + } + if (names === void 0) continue; + const prev = rolls.get(src.trigger); + rolls.set(src.trigger, prev === void 0 ? names : [...prev, ...names]); + } + this.lexicon.set(rolls); + } + /** Wire one source's lexicon invalidation channel into refresh (hookless or roll-less sources never notify). */ + watchLexicon(source, projection) { + if (source.lexicon === void 0 || source.subscribeLexicon === void 0) return; + this.lexiconOffs.set(source, source.subscribeLexicon(projection, () => { + this.refreshLexicon(); + })); + } + /** Launch the candidate fetch for one hit generation, superseding the previous one. */ + fetchCandidates(hit, roster) { + this.stopFetch(); + const controller = new AbortController(); + this.fetch = controller; + const generation = this.menu.getSnapshot().generation; + const projection = this.project(); + for (const source of roster) source.candidates(projection, { + query: hit.query, + position: hit.position, + signal: controller.signal + }).then((items) => { + if (controller.signal.aborted) return; + this.reduce({ + type: "source-settled", + generation, + source: source.name, + items + }); + }, (error) => { + if (controller.signal.aborted) return; + console.error(`[ui-input-trigger] source "${source.name}" candidates failed:`, error); + this.reduce({ + type: "source-failed", + generation, + source: source.name + }); + }); + } + stopFetch() { + this.fetch?.abort(); + this.fetch = null; + } + clearLauncher() { + if (this.launcher.getSnapshot() !== null) this.launcher.set(null); + } + reduce(ev) { + const cur = this.menu.getSnapshot(); + const next = menuReduce(cur, ev); + if (next !== cur) this.menu.set(next); + if (!next.open) this.clearLauncher(); + } + }; + //#endregion + //#region lib/types/client/service.js + /** + * InputTriggerService (`ctx.inputTriggers`): the root half of the trigger pipeline — the + * stateless source registry plus the per-session controller map. Every piece + * of mutable interaction state (hit, menu, fetch) lives on the + * {@link InputTriggerController}; the service only registers sources, resolves + * controllers by session scope, and relays roster changes. + */ + /** The `ctx.inputTriggers` trigger pipeline service (root registry + controller resolution). */ + var InputTriggerService = class extends _deepseek_ai_cordis.Service { + static inject = ["sessions"]; + live = { + sources: [], + controllers: /* @__PURE__ */ new Map() + }; + /** + * @param ctx - owning root context (the service registers itself as `slash`). + */ + constructor(ctx) { + super(ctx, "inputTriggers"); + } + /** + * Register one trigger source. Live session controllers are notified so a + * source arriving after scope birth still warms and joins the lexicon. + * @param src - the source; (trigger, name) must be unique — duplicates throw. + * @returns the disposer (callers wrap registration in ctx.effect). Disposal + * while a controller shows the source's menu group drops that group. + */ + registerSource(src) { + const { live } = this; + if (live.sources.some((s) => s.trigger === src.trigger && s.name === src.name)) throw new Error(`slash source "${src.trigger}${src.name}" is already registered`); + live.sources.push(src); + for (const controller of live.controllers.values()) try { + controller.sourceAdded(src); + } catch (error) { + console.error(`[ui-input-trigger] source "${src.trigger}${src.name}" late-registration setup failed:`, error); + } + return () => { + const at = live.sources.indexOf(src); + if (at < 0) return; + live.sources.splice(at, 1); + for (const controller of live.controllers.values()) controller.sourceRemoved(src); + }; + } + /** + * Resolve the per-session controller for one session scope (lazy; the + * scope disposer removes and disposes it). Construction warms the source + * roster once — sessions are always agent-backed, so scope birth is the + * single prewarm moment. + * @param actx - session-scope ctx. + * @returns the resident controller. + */ + sessionOf(actx) { + const id = this.sessions().scopeOf(actx); + if (id === void 0) throw new Error("slash.sessionOf requires a session scope"); + const { live } = this; + const existing = live.controllers.get(id); + if (existing !== void 0) return existing; + const controller = new InputTriggerController({ + actx, + sessionId: id, + roster: { + sources: (trigger) => live.sources.filter((s) => s.trigger === trigger).sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), + all: () => live.sources + } + }); + live.controllers.set(id, controller); + actx.effect(() => () => { + controller.dispose(); + live.controllers.delete(id); + }, "slash: session controller"); + return controller; + } + sessions() { + const sessions = this.ctx.get("sessions"); + if (sessions === void 0) throw new Error("ui-input-trigger: sessions service unavailable"); + return sessions; + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-input-trigger/src/client/MenuView.module.css.mjs + const css = "._3e4SsG_menu{z-index:100;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);min-width:min(260px,100%);max-width:min(537px,100%);max-height:320px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;overflow:hidden}._3e4SsG_viewport{flex-direction:column;min-height:0;display:flex;overflow-y:auto}._3e4SsG_item{cursor:pointer;width:100%;min-height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:flex}._3e4SsG_item:hover,._3e4SsG_item._3e4SsG_active{background:var(--dsw-alias-interactive-bg-hover)}._3e4SsG_itemIcon{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}._3e4SsG_itemName{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}._3e4SsG_itemDescription{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:1;overflow:hidden}._3e4SsG_groupTitle{color:var(--dsw-alias-label-tertiary);padding:8px 10px;font-size:12px;line-height:16px}._3e4SsG_loading{min-height:40px;color:var(--dsw-alias-label-dimmed);align-items:center;padding:8px 10px;font-size:14px;line-height:22px;display:flex}"; + const tagId = "@deepseek-ai/dsh-client-ui-input-trigger/MenuView.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-input-trigger"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var MenuView_module_css_default = { + "item": "_3e4SsG_item", + "viewport": "_3e4SsG_viewport", + "loading": "_3e4SsG_loading", + "menu": "_3e4SsG_menu", + "itemDescription": "_3e4SsG_itemDescription", + "groupTitle": "_3e4SsG_groupTitle", + "itemName": "_3e4SsG_itemName", + "itemIcon": "_3e4SsG_itemIcon", + "active": "_3e4SsG_active" + }; + //#endregion + //#region lib/types/client/MenuView.js + /** + * Trigger candidate menu: renders the InputTriggerService menu store into the + * conversation.input.overlay anchor. Closed state renders null (the overlay + * slot stays mounted); groups render in roster order under localized title + * rows, pending groups as a loading row; pointer picks route back through + * the service (combobox pattern — focus never leaves the textarea, so rows + * are mousedown-handled and the highlight is exposed via + * aria-activedescendant on the listbox). + */ + /** Design cap on the list height (figma SLASH 39:26572 MenuDropdown). */ + const MAX_HEIGHT = 320; + /** DOM id of one option row (the aria-activedescendant target). */ + function optionId(source, index) { + return `dsh-slash-option-${source}-${index}`; + } + /** + * Render the candidate menu overlay entry. + * @param props - injected face (the menu store and the pick route); `t` rides the standard locale seat. + * @returns the dropdown while open; null while closed. + */ + function MenuView({ menu, onPick, onDismiss, t }) { + const state = (0, react.useSyncExternalStore)((fn) => menu.subscribe(fn), () => menu.getSnapshot()); + const listRef = (0, react.useRef)(null); + const maxHeight = (0, _deepseek_ai_dsh_client_ui_primitives.useAnchoredMaxHeight)(listRef, MAX_HEIGHT, state); + const highlight = state.open ? state.highlight : null; + (0, react.useEffect)(() => { + if (highlight === null) return; + document.getElementById(optionId(highlight.source, highlight.index))?.scrollIntoView({ block: "nearest" }); + }, [highlight]); + (0, react.useEffect)(() => { + if (!state.open) return; + const onPointerDown = (ev) => { + if (!(ev.target instanceof Node)) return; + if (listRef.current?.contains(ev.target)) return; + if ((listRef.current?.closest("[data-composer-card]"))?.contains(ev.target)) return; + onDismiss(); + }; + document.addEventListener("pointerdown", onPointerDown, true); + return () => { + document.removeEventListener("pointerdown", onPointerDown, true); + }; + }, [state.open, onDismiss]); + if (!state.open) return null; + return (0, react_jsx_runtime.jsx)("div", { + ref: listRef, + className: MenuView_module_css_default.menu, + style: { maxHeight }, + role: "listbox", + "aria-label": t("suggestions.aria"), + "aria-activedescendant": highlight !== null ? optionId(highlight.source, highlight.index) : void 0, + children: (0, react_jsx_runtime.jsx)("div", { + className: MenuView_module_css_default.viewport, + children: state.groups.map((group) => group.status === "ready" && group.items.length === 0 ? null : (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", { + className: MenuView_module_css_default.groupTitle, + role: "presentation", + "data-source": group.source, + children: t(group.source) + }), group.status === "pending" ? (0, react_jsx_runtime.jsx)("div", { + className: MenuView_module_css_default.loading, + "data-source": group.source, + children: t("loading") + }) : group.items.map((item, index) => { + const active = highlight !== null && highlight.source === group.source && highlight.index === index; + return (0, react_jsx_runtime.jsxs)("button", { + id: optionId(group.source, index), + type: "button", + role: "option", + "aria-selected": active, + className: clsx(MenuView_module_css_default.item, active && MenuView_module_css_default.active), + onMouseDown: (ev) => { + ev.preventDefault(); + onPick(group.source, index); + }, + children: [ + item.icon !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: MenuView_module_css_default.itemIcon, + "aria-hidden": true, + children: item.icon + }), + (0, react_jsx_runtime.jsx)("span", { + className: MenuView_module_css_default.itemName, + children: item.name + }), + item.description !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: MenuView_module_css_default.itemDescription, + children: item.description + }) + ] + }, `${group.source}:${item.name}`); + })] }, group.source)) + }) + }); + } + //#endregion + //#region lib/types/client/locales.js + /** + * `slash.menu` namespace dictionaries: group titles keyed by source name + * (the lookup chain returns the key itself, so an unknown source shows its + * raw name), the pending row, and the listbox aria label. + */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "command": "命令", + "skill": "技能", + "subagent": "å­�智能体", + "loading": "正在加载…", + "suggestions.aria": "触å�‘候选建议" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "command": "Commands", + "skill": "Skills", + "subagent": "Subagents", + "loading": "Loading…", + "suggestions.aria": "Trigger suggestions" + }; + //#endregion + //#region lib/types/client/index.js + /** Namespace owning the candidate-menu copy. */ + const MENU_NS = "slash.menu"; + /** Required services: controller resolution reads the session scope tree; the menu copy is localized. */ + const inject = ["sessions", "locale"]; + /** + * Client plugin body: mount the service, then register MenuView into the + * input overlay once its declarer is up. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.plugin(InputTriggerService); + ctx.effect(() => ctx.locale.register(MENU_NS, { + zh, + en + }), "ui-input-trigger: menu dictionaries"); + ctx.inject([ + "slots", + "inputTriggers", + "sessions" + ], (scope) => { + const inputTriggers = scope.inputTriggers; + const sessions = scope.sessions; + scope.slots.inject("conversation.input.overlay", () => scope.slots.register({ + name: "conversation.input.overlay", + id: "slash-menu", + order: 0, + locale: MENU_NS, + inject: (sessionId) => { + const actx = sessions.scope(sessionId); + if (actx === void 0) throw new Error(`ui-input-trigger: session "${String(sessionId)}" resolved no scope`); + const controller = inputTriggers.sessionOf(actx); + return { + menu: controller.menu, + onPick: (source, index) => { + controller.pick(source, index); + }, + onDismiss: () => { + controller.dismiss(); + } + }; + } + }, MenuView)); + }); + } + //#endregion + exports.InputTriggerController = InputTriggerController; + exports.InputTriggerService = InputTriggerService; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000018 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000018 new file mode 100644 index 0000000..859bc52 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000018 @@ -0,0 +1,1116 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-commands", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/client/directory.js + /** One session key's cache cell. */ + var Entry = class { + state = "cold"; + commands = []; + /** Bumped at each pull start; only the latest pull may publish its outcome. */ + epoch = 0; + lastError; + waiters = []; + }; + /** The session-keyed directory cache. Plain class — the owning service wires events and RPC. */ + var CommandDirectory = class { + fetchCommands; + entries = /* @__PURE__ */ new Map(); + constructor(fetchCommands) { + this.fetchCommands = fetchCommands; + } + /** + * Current cache status for one session. + * @param sessionId - session key. + * @returns the entry status (cold when never touched). + */ + status(sessionId) { + return this.entries.get(sessionId)?.state ?? "cold"; + } + /** + * Synchronous exact-name lookup over one session's hot snapshot. + * @param sessionId - session key. + * @param name - command name without the leading slash. + * @returns the descriptor, or undefined when absent or the entry is not ready. + */ + resolve(sessionId, name) { + const entry = this.entries.get(sessionId); + if (entry === void 0 || entry.state !== "ready") return void 0; + return entry.commands.find((c) => c.name === name); + } + /** Soft invalidation (commands-changed): background repull on every touched key; ready snapshots keep serving. */ + invalidateAll() { + for (const key of this.entries.keys()) this.refresh(key); + } + /** + * Hard reset on reconnect: every entry drops its snapshot (the agent world + * may have changed shape across the generation) and prewarms. + */ + resetConnected() { + for (const [key, entry] of this.entries) { + entry.state = "cold"; + entry.commands = []; + this.refresh(key); + } + } + /** + * Fire-and-forget prewarm of one session (the command source's scope-birth + * warm hook lands here). + * @param sessionId - session key. + */ + warm(sessionId) { + const entry = this.entry(sessionId); + if (entry.state === "cold" || entry.state === "failed") this.refresh(sessionId); + } + /** + * Start one pull for one session. Publishes ready/failed only while it is + * still the key's latest pull (epoch guard); a ready snapshot is not + * demoted while the pull flies. + * @param sessionId - session key. + * @returns settled when this pull's outcome is published or discarded. + */ + async refresh(sessionId) { + const entry = this.entry(sessionId); + const epoch = ++entry.epoch; + if (entry.state !== "ready") entry.state = "pending"; + try { + const commands = await this.fetchCommands(sessionId); + if (epoch !== entry.epoch) return; + entry.commands = commands; + entry.state = "ready"; + entry.lastError = void 0; + } catch (error) { + if (epoch !== entry.epoch) return; + entry.commands = []; + entry.state = "failed"; + entry.lastError = error; + } finally { + if (epoch === entry.epoch) notifyWaiters(entry); + } + } + /** + * Strong-wait until one session's catalog is servable (the enter- + * adjudication "directory must be reached" rule): ready returns at once; + * cold/failed launch a fresh pull; pending joins the flying one. Rejects + * when the awaited pull fails or the signal aborts. + * @param sessionId - session key. + * @param signal - attempt-scoped abort (the SubmitAttempt signal). + * @returns the hot command snapshot. + */ + async ensureReady(sessionId, signal) { + const entry = this.entry(sessionId); + while (true) { + if (entry.state === "ready") return entry.commands; + if (entry.state !== "pending") this.refresh(sessionId); + await settled(entry, signal); + if (entry.state === "failed") throw new Error(`command directory warmup failed: ${entry.lastError instanceof Error ? entry.lastError.message : String(entry.lastError)}`); + } + } + entry(sessionId) { + let entry = this.entries.get(sessionId); + if (entry === void 0) { + entry = new Entry(); + this.entries.set(sessionId, entry); + } + return entry; + } + }; + /** One settlement tick for one entry: resolves at the next winning publish, rejects on abort. */ + function settled(entry, signal) { + if (signal.aborted) return Promise.reject(abortReason(signal)); + return new Promise((resolve, reject) => { + const waiter = () => { + signal.removeEventListener("abort", onAbort); + resolve(); + }; + const onAbort = () => { + entry.waiters = entry.waiters.filter((w) => w !== waiter); + reject(abortReason(signal)); + }; + signal.addEventListener("abort", onAbort, { once: true }); + entry.waiters.push(waiter); + }); + } + function notifyWaiters(entry) { + const woken = entry.waiters; + entry.waiters = []; + for (const wake of woken) wake(); + } + /** Normalize an abort into an Error rejection. */ + function abortReason(signal) { + return signal.reason instanceof Error ? signal.reason : /* @__PURE__ */ new Error("command directory wait aborted"); + } + //#endregion + //#region lib/types/client/popup.js + /** + * Headless popupSelect shell state: one controller per client + * session, owned by CommandUiRuntime's per-session map and torn down by the + * session scope disposer. The shell is a transient layer (never in the input + * state machine): it loads options once, filters them locally against the + * shell's own search text, and settles a selection through the context + * captured at open time. Draft consumption and composer focus are injected + * callbacks — the session wiring dispatches the consume-token event (the + * Input side owns the span/bare-token CAS guard) and focuses the composer; + * the controller never touches the input machine. + */ + const CLOSED = { + open: false, + command: null, + status: "pending", + options: [], + search: "", + active: 0, + submitting: false, + confirming: null, + acknowledged: false, + error: null + }; + /** + * Filter option rows against the shell's local search text (case-insensitive + * substring over label and detail; blank search keeps every row). + * @param options - the loaded rows. + * @param search - the shell's search text. + * @returns the rows the shell shows and highlights over. + */ + function filterOptions(options, search) { + const query = search.trim().toLowerCase(); + if (query === "") return options; + return options.filter((o) => o.label.toLowerCase().includes(query) || (o.detail?.toLowerCase().includes(query) ?? false)); + } + /** The shell's error-strip line for a settlement failure. */ + function errorText(error) { + return error instanceof Error ? error.message : String(error); + } + /** + * Headless controller of one session's popupSelect shell. Late settlements + * lose their write rights through binding identity: dismiss/dispose/reopen + * swap the binding, so a settling options fetch or onSelect that no longer + * matches writes nothing and consumes nothing. + */ + var PopupSelectController = class { + deps; + /** Shell state store (the overlay component subscribes here). */ + state = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(CLOSED); + binding = null; + /** + * @param deps - session-wiring callbacks (token consumption + composer focus). + */ + constructor(deps) { + this.deps = deps; + } + /** + * Open the shell for one command: publish pending state and fetch options + * once through the business spec. A reopen supersedes the previous shell + * (its options fetch is aborted, its late settlements are dropped). + * @param command - command name the shell serves. + * @param spec - the registered popupSelect spec. + * @param context - open-time context snapshot, handed verbatim to options/onSelect. + * @param segment - open-time token segment snapshot for post-select consumption. + */ + open(command, spec, context, segment) { + this.binding?.abort.abort(); + const binding = { + command, + spec, + context, + segment, + abort: new AbortController() + }; + this.binding = binding; + this.state.set({ + ...CLOSED, + open: true, + command + }); + this.load(binding); + } + /** Run the one options fetch of a binding; settlement rights die with the binding. */ + load(binding) { + binding.spec.options(binding.context, binding.abort.signal).then((options) => { + if (this.binding !== binding) return; + this.state.set({ + ...this.state.getSnapshot(), + status: "ready", + options, + active: 0, + error: null + }); + }, (error) => { + if (this.binding !== binding) return; + console.error(`[ui-commands] popupSelect options failed for /${binding.command}:`, error); + this.state.set({ + ...this.state.getSnapshot(), + status: "failed", + options: [], + active: 0, + error: errorText(error) + }); + }); + } + /** Re-run a failed options fetch (search survives; no-op unless status is 'failed'). */ + retry() { + const binding = this.binding; + const s = this.state.getSnapshot(); + if (binding === null || !s.open || s.status !== "failed") return; + this.state.set({ + ...s, + status: "pending", + error: null + }); + this.load(binding); + } + /** + * Replace the local search text (pure local filter — the provider is never + * re-queried) and rebase the highlight onto the new filtered list. + * @param search - the shell search input's text. + */ + setSearch(search) { + const s = this.state.getSnapshot(); + if (!s.open || s.submitting || s.confirming !== null || search === s.search) return; + this.state.set({ + ...s, + search, + active: 0 + }); + } + /** + * Move the highlight across the filtered rows (wraps around; no-op unless + * options are ready and no selection is in flight). + * @param dir - +1 down, -1 up. + */ + move(dir) { + const s = this.state.getSnapshot(); + if (!s.open || s.status !== "ready" || s.submitting || s.confirming !== null) return; + const rows = filterOptions(s.options, s.search); + if (rows.length === 0) return; + const active = (s.active + dir + rows.length) % rows.length; + this.state.set({ + ...s, + active + }); + } + /** + * Set the highlight directly (pointer hover; no-op unless ready, idle, and + * in filtered range). + * @param index - filtered-row index. + */ + highlight(index) { + const s = this.state.getSnapshot(); + if (!s.open || s.status !== "ready" || s.submitting || s.confirming !== null) return; + if (index < 0 || index >= filterOptions(s.options, s.search).length || index === s.active) return; + this.state.set({ + ...s, + active: index + }); + } + /** + * Select one filtered row: single-flight — the first call enters + * `submitting` and later calls no-op until it settles. Success consumes the + * open-time token segment (a false CAS answer is benign), closes, and + * returns focus to the composer. Failure keeps the shell open with search, + * highlight, and token intact, surfaces the error, and re-arms select as + * the retry. + * @param index - filtered-row index (callers pass the highlight or the clicked row). + * @returns settled when the attempt has closed the shell or surfaced its failure. + */ + async select(index) { + const binding = this.binding; + const s = this.state.getSnapshot(); + if (binding === null || !s.open || s.status !== "ready" || s.submitting || s.confirming !== null) return; + const option = filterOptions(s.options, s.search)[index]; + if (option === void 0) return; + if (option.confirmation !== void 0) { + this.state.set({ + ...s, + confirming: option, + acknowledged: false, + error: null + }); + return; + } + await this.settle(binding, option); + } + /** + * Update the explicit checkbox for the currently pending risk gate. + * @param acknowledged - whether the user has acknowledged the displayed risk. + */ + acknowledge(acknowledged) { + const s = this.state.getSnapshot(); + if (!s.open || s.submitting || s.confirming === null || s.acknowledged === acknowledged) return; + this.state.set({ + ...s, + acknowledged + }); + } + /** Cancel only the risk gate and return to the still-open option picker. */ + cancelConfirmation() { + const s = this.state.getSnapshot(); + if (!s.open || s.submitting || s.confirming === null) return; + this.state.set({ + ...s, + confirming: null, + acknowledged: false + }); + } + /** Settle the gated option only after the checkbox is acknowledged. */ + async confirm() { + const binding = this.binding; + const s = this.state.getSnapshot(); + if (binding === null || !s.open || s.submitting || s.confirming === null || !s.acknowledged) return; + await this.settle(binding, s.confirming); + } + /** Run the business settlement for an already admitted option. */ + async settle(binding, option) { + const s = this.state.getSnapshot(); + if (this.binding !== binding || !s.open || s.submitting) return; + this.state.set({ + ...s, + submitting: true, + confirming: null, + acknowledged: false, + error: null + }); + try { + await binding.spec.onSelect(option, binding.context); + } catch (error) { + console.error(`[ui-commands] popupSelect onSelect failed for /${binding.command}:`, error); + if (this.binding !== binding) return; + this.state.set({ + ...this.state.getSnapshot(), + submitting: false, + error: errorText(error) + }); + return; + } + if (this.binding !== binding) return; + this.deps.consume(binding.segment); + this.binding = null; + this.state.set(CLOSED); + this.deps.focusComposer(); + } + /** + * Close the shell; aborts a flying options fetch and revokes settlement + * rights. An outside pointer interaction dismisses plainly (the click's own + * target takes focus); Escape passes focusComposer to return focus explicitly. + * @param opts - focusComposer: also restore composer focus (Escape path). + */ + dismiss(opts) { + if (this.binding === null) return; + this.binding.abort.abort(); + this.binding = null; + this.state.set(CLOSED); + if (opts?.focusComposer === true) this.deps.focusComposer(); + } + /** Scope-teardown disposer: abort in-flight work and clear state (no focus side effect). */ + dispose() { + this.binding?.abort.abort(); + this.binding = null; + this.state.set(CLOSED); + } + }; + //#endregion + //#region lib/types/client/service.js + /** + * CommandUiRuntime (`ctx.commandUi`): the '/' command source over the + * session-keyed directory, the client-contribution registry, and the + * per-session popupSelect controllers. Candidate synthesis merges the host + * catalog with contributions by availability, then fuzzy query/position + * filtering; a host/contribution name collision fails loud. Every execute + * addresses the session's agent by sessionId — sessions are always + * agent-backed. + */ + /** Recover the command name from a line the Host confirmed as executed. */ + function submittedCommandName(line) { + const trimmed = line.trim(); + const separator = trimmed.search(/\s/u); + return (separator === -1 ? trimmed : trimmed.slice(0, separator)).slice(1); + } + /** Extra weight for command-name starts and separator boundaries. */ + function boundaryBonus(name, index) { + return index === 0 || name.charAt(index - 1) === "-" || name.charAt(index - 1) === "_" ? 8 : 0; + } + /** + * Score the strongest ordered-subsequence alignment in O(name × query). + * Boundary and adjacent matches earn weight; skipped and leading characters + * cost weight. + */ + function fuzzyScore(name, query) { + if (query === "") return 0; + if (query.length > name.length) return void 0; + const noMatch = Number.NEGATIVE_INFINITY; + let previous = Array(name.length).fill(noMatch); + for (let index = 0; index < name.length; index++) if (name.charAt(index) === query.charAt(0)) previous[index] = 1 + boundaryBonus(name, index) - index; + for (let queryIndex = 1; queryIndex < query.length; queryIndex++) { + const current = Array(name.length).fill(noMatch); + let bestGapped = noMatch; + for (let index = 0; index < name.length; index++) { + const gappedIndex = index - 2; + if (gappedIndex >= 0) { + const prior = previous[gappedIndex] ?? noMatch; + if (prior !== noMatch) bestGapped = Math.max(bestGapped, prior + gappedIndex); + } + if (name.charAt(index) !== query.charAt(queryIndex)) continue; + const bonus = 1 + boundaryBonus(name, index); + const adjacent = index > 0 ? previous[index - 1] ?? noMatch : noMatch; + if (adjacent !== noMatch) current[index] = adjacent + bonus + 4; + if (bestGapped !== noMatch) current[index] = Math.max(current[index] ?? noMatch, bestGapped + bonus + 1 - index); + } + previous = current; + } + let best = noMatch; + for (const score of previous) best = Math.max(best, score); + return best === noMatch ? void 0 : best; + } + /** Case-insensitive fuzzy filtering with stable ordering for equal matches. */ + function fuzzyCandidates(candidates, rawQuery) { + const query = rawQuery.toLowerCase(); + if (query === "") return candidates; + const ranked = []; + candidates.forEach((candidate, index) => { + const name = candidate.name.toLowerCase(); + const score = fuzzyScore(name, query); + if (score !== void 0) ranked.push({ + candidate, + index, + prefix: name.startsWith(query), + score + }); + }); + ranked.sort((left, right) => Number(right.prefix) - Number(left.prefix) || right.score - left.score || left.index - right.index); + return ranked.map((match) => match.candidate); + } + /** Command surface: session-keyed directory + '/' source + contribution registry + per-session popups. */ + var CommandUiRuntime = class extends _deepseek_ai_cordis.Service { + static inject = [ + "inputTriggers", + "sessions", + "remote", + "remote.commands" + ]; + directory; + live = { + contributions: /* @__PURE__ */ new Map(), + decorations: /* @__PURE__ */ new Map(), + popups: /* @__PURE__ */ new Map() + }; + /** + * @param ctx - owning root context (plugin fiber; the service registers + * itself as `command` and follows that fiber's lifetime). + */ + constructor(ctx) { + super(ctx, "commandUi"); + this.directory = new CommandDirectory(async (sessionId) => { + if (this.sessions().subagentAddress(sessionId) !== void 0) return []; + const result = await ctx.remote.commands.list(sessionId); + if (!result.ok) throw new Error(`command.list failed: ${result.error.code}: ${result.error.message}`); + return result.value; + }); + const inputTriggers = ctx.get("inputTriggers"); + if (inputTriggers === void 0) throw new Error("ui-commands: slash service unavailable"); + ctx.effect(() => inputTriggers.registerSource({ + trigger: "/", + name: "command", + candidates: (session, req) => this.candidates(session, req), + onPick: (pick) => this.dispatch(pick), + matchSpace: (session, token) => this.matchSpace(session, token), + matchEnter: (session, line, signal) => this.matchEnter(session, line, signal), + warm: (session) => { + this.directory.warm(session.sessionId); + } + }), "command: slash source"); + ctx.remote.$on("commands/change", () => { + this.directory.invalidateAll(); + }); + ctx.remote.$on("agent-preset/selected", (sessionId) => { + this.directory.refresh(sessionId); + }); + ctx.on("connection/reset", () => { + this.directory.resetConnected(); + }); + } + /** + * Register one client command contribution; effect disposer (rides the + * caller's fiber). Duplicate names throw. + * @param contribution - the contribution (descriptor + availability + popup spec). + * @returns the disposer removing the registration. + */ + register(contribution) { + const dispose = this.ctx.effect(() => { + const { contributions } = this.live; + if (contributions.has(contribution.name)) throw new Error(`ui-commands: duplicate contribution for /${contribution.name}`); + contributions.set(contribution.name, contribution); + return () => { + contributions.delete(contribution.name); + }; + }, "command.register()"); + return () => { + dispose(); + }; + } + /** + * Hang a bare-invocation decoration on one host command; effect disposer + * (rides the caller's fiber). Duplicate names throw. + * @param decoration - host command name + availability + popup spec. + * @returns the disposer removing the registration. + */ + decorate(decoration) { + const dispose = this.ctx.effect(() => { + const { decorations } = this.live; + if (decorations.has(decoration.name)) throw new Error(`ui-commands: duplicate decoration for /${decoration.name}`); + decorations.set(decoration.name, decoration); + return () => { + decorations.delete(decoration.name); + }; + }, "command.decorate()"); + return () => { + dispose(); + }; + } + /** + * Resolve the per-session popup controller (lazy; dies with the session + * scope). The controller's consume callback dispatches the scoped + * consume-token event back to this session; focusComposer reaches the + * composer through the overlay slot currency. + * @param actx - session-scope ctx. + * @returns the resident controller. + */ + popupFor(actx) { + const id = this.sessions().scopeOf(actx); + if (id === void 0) throw new Error("command.popupFor requires a session scope"); + const { popups } = this.live; + const existing = popups.get(id); + if (existing !== void 0) return existing; + const controller = new PopupSelectController({ + consume: (segment) => actx.bail(actx, "slash/input-consume-token", { guard: segment.via === "menu" ? { + kind: "span", + span: segment.span + } : { + kind: "bare-token", + token: segment.token + } }) === true, + focusComposer: () => { + this.focusHooks.get(id)?.(); + } + }); + popups.set(id, controller); + actx.effect(() => () => { + controller.dispose(); + popups.delete(id); + this.focusHooks.delete(id); + }, "command: session popup"); + return controller; + } + /** Composer focus hooks by session (the overlay wiring binds the textarea focus here). */ + focusHooks = /* @__PURE__ */ new Map(); + /** + * Bind one session's composer-focus hook (overlay slot wiring; unbind on unmount). + * @param id - session id. + * @param focus - textarea focus callback. + * @returns the unbind disposer. + */ + bindComposerFocus(id, focus) { + this.focusHooks.set(id, focus); + return () => { + if (this.focusHooks.get(id) === focus) this.focusHooks.delete(id); + }; + } + /** Menu candidates: host catalog + contribution availability, then position filtering and fuzzy name ranking. */ + async candidates(session, req) { + const list = await this.directory.ensureReady(session.sessionId, req.signal); + const rows = []; + const seen = /* @__PURE__ */ new Set(); + for (const c of list) { + seen.add(c.name); + rows.push({ + name: c.name, + description: c.description, + ...c.input !== void 0 ? { hint: c.input.hint } : {} + }); + } + for (const contribution of this.live.contributions.values()) { + if (!contribution.available(session)) continue; + if (seen.has(contribution.name)) throw new Error(`ui-commands: contribution /${contribution.name} collides with a host command`); + rows.push({ + name: contribution.name, + description: contribution.description + }); + } + return fuzzyCandidates(rows.filter((c) => req.position === "leading" || c.hint === void 0), req.query); + } + /** Decision table, menu column: contribution/decorated-host → popup; host input → claim; host bare → detached execute. */ + dispatch(pick) { + const name = pick.candidate.name; + const contribution = this.live.contributions.get(name); + if (contribution !== void 0 && contribution.available(pick.session)) { + this.openPopup(name, contribution.ui, pick.session, { + via: "menu", + span: pick.span + }); + return "handled"; + } + const desc = this.directory.resolve(pick.session.sessionId, name); + if (desc === void 0) return void 0; + const decoration = this.live.decorations.get(name); + if (decoration !== void 0 && decoration.available(pick.session)) { + this.openPopup(name, decoration.ui, pick.session, { + via: "menu", + span: pick.span + }); + return "handled"; + } + if (desc.input !== void 0) return { claim: this.leadingClaim(desc, pick.session) }; + this.consumeVia(pick.session.sessionId, { + via: "menu", + span: pick.span + }); + this.runDetached(desc, pick.session, `/${name}`); + return "handled"; + } + /** Decision table, space column: hot-key sync check; only host leadingInput claims. */ + matchSpace(session, token) { + if (!token.startsWith("/")) return void 0; + const name = token.slice(1); + if (this.live.contributions.has(name)) return void 0; + const desc = this.directory.resolve(session.sessionId, name); + if (desc === void 0 || desc.input === void 0) return void 0; + return { claim: this.leadingClaim(desc, session) }; + } + /** + * Decision table, enter column. Strong-waits the session's catalog (a + * warmup failure rejects — never a silent downgrade). Contributions and + * bare host commands act on the bare token only; leadingInput claims + * args-tolerant. + */ + async matchEnter(session, line, signal) { + const trimmed = line.trim(); + if (!trimmed.startsWith("/")) return void 0; + const ws = trimmed.search(/\s/); + const token = ws === -1 ? trimmed : trimmed.slice(0, ws); + const bare = ws === -1; + const name = token.slice(1); + if (name === "") return void 0; + const contribution = this.live.contributions.get(name); + if (contribution !== void 0 && contribution.available(session)) { + if (!bare) return void 0; + this.openPopup(name, contribution.ui, session, { + via: "enter", + token + }); + return "handled"; + } + await this.directory.ensureReady(session.sessionId, signal); + const desc = this.directory.resolve(session.sessionId, name); + if (desc === void 0) return void 0; + if (bare) { + const decoration = this.live.decorations.get(name); + if (decoration !== void 0 && decoration.available(session)) { + this.openPopup(name, decoration.ui, session, { + via: "enter", + token + }); + return "handled"; + } + } + if (desc.input !== void 0) return { claim: this.leadingClaim(desc, session) }; + if (!bare) return void 0; + this.consumeVia(session.sessionId, { + via: "enter", + token + }); + this.runDetached(desc, session, trimmed); + return "handled"; + } + /** Open the session's popup for one contribution or decoration (menu pick / bare enter). */ + openPopup(name, ui, session, segment) { + const actx = this.scopeFor(session.sessionId); + if (actx === void 0) return; + this.popupFor(actx).open(name, ui, session, segment); + } + /** Build the leadingInput claim: token `/name ` + the command.execute submit transaction. */ + leadingClaim(desc, session) { + const token = `/${desc.name} `; + return { + token, + ...desc.input !== void 0 ? { hint: desc.input.hint } : {}, + submit: (args, _actx) => this.execute(session, token + args) + }; + } + /** + * The command.execute transaction, addressed to the session's agent — pure + * admission semantics. An unmatched line reports an error outcome (the + * composer's immediate admission feedback); an admitted command reports + * plain success regardless of its handler outcome, because the host + * executor durably logged the lifecycle (`command/run`/`command/done`) and + * the outcome renders as a persistent flow node — the composer never + * echoes it. Transport failures throw. + */ + async execute(session, line) { + const result = await this.ctx.remote.commands.execute(session.sessionId, line); + if (!result.ok) throw new Error(`command.execute failed: ${result.error.code}: ${result.error.message}`); + if (result.value === void 0) return { + kind: "error", + text: `unknown or malformed command: ${line}` + }; + this.notifyExecuted(session.sessionId, submittedCommandName(line), result.value.result); + return { kind: "success" }; + } + /** Publish the local acknowledgment without letting an observer change command admission. */ + notifyExecuted(sessionId, name, result) { + const args = [ + "command/executed", + sessionId, + name, + result + ]; + for (const listener of this.ctx.events.dispatch("emit", args)) try { + const returned = listener(sessionId, name, result); + if (returned != null && typeof returned.then === "function") Promise.resolve(returned).then(void 0, (error) => { + this.warnExecutedListenerFailure(name, error); + }); + } catch (error) { + this.warnExecutedListenerFailure(name, error); + } + } + /** Log one contained `command/executed` observer failure. */ + warnExecutedListenerFailure(name, error) { + this.ctx.logger.warn("client command: a command/executed listener for \"%s\" failed", name); + this.ctx.logger.warn(error); + } + /** + * Fire-and-forget execute for the internal ('handled') paths. Outcomes are + * NOT surfaced here: the host executor durably logs the command lifecycle + * (`command/run`/`command/done`), and the mux-broadcast events render as a + * persistent flow node on every tab. Only a transport/admission failure — + * which never entered a handler and therefore never logged — falls back to + * the composer notice as immediate feedback. + */ + runDetached(desc, session, line) { + this.execute(session, line).then((outcome) => { + if (outcome.kind === "error") this.noticeFor(session.sessionId, "error", outcome.text ?? `/${desc.name} failed`); + }, (error) => { + this.noticeFor(session.sessionId, "error", error instanceof Error ? error.message : String(error)); + }); + } + /** Dispatch a consume-token event to one session (menu-pick / bare-enter execute paths). */ + consumeVia(id, segment) { + const actx = this.scopeFor(id); + if (actx === void 0) return; + actx.bail(actx, "slash/input-consume-token", { guard: segment.via === "menu" ? { + kind: "span", + span: segment.span + } : { + kind: "bare-token", + token: segment.token + } }); + } + /** Route an admission/transport failure to the session's composer notice channel (scope gone = attempt died with it). */ + noticeFor(id, level, text) { + const actx = this.scopeFor(id); + if (actx === void 0) return; + const conversation = actx.get("conversation"); + if (conversation === void 0) return; + conversation.input.for(actx).notify(level, text); + } + /** id → actx interchange (registered exchange point: this service coordinates for projection-only sources). */ + scopeFor(id) { + return this.sessions().scope(id); + } + sessions() { + const sessions = this.ctx.get("sessions"); + if (sessions === void 0) throw new Error("ui-commands: sessions service unavailable"); + return sessions; + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-commands/src/client/PopupSelectView.module.css.mjs + const css = ".mufS8W_card{z-index:100;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);min-width:min(220px,100%);max-width:100%;max-height:320px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;outline:none;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;overflow:hidden}.mufS8W_viewport{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.mufS8W_row{cursor:pointer;color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.mufS8W_rowActive{background:var(--dsw-alias-interactive-bg-hover)}.mufS8W_label{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.mufS8W_detail{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.mufS8W_check{color:var(--dsw-alias-label-primary);flex:none;display:inline-flex}.mufS8W_status{color:var(--dsw-alias-label-tertiary);padding:8px 10px;font-size:13px}.mufS8W_search{border:1px solid var(--dsw-alias-border-inverted);color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;outline:none;margin:2px 2px 4px;padding:6px 8px;font-size:13px}.mufS8W_error{color:var(--dsw-alias-state-error-primary);align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.mufS8W_errorText{text-overflow:ellipsis;flex:1;overflow:hidden}.mufS8W_retry{border:1px solid var(--dsw-alias-border-inverted);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:6px;padding:2px 8px;font-size:12px}"; + const tagId = "@deepseek-ai/dsh-client-ui-commands/PopupSelectView.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-commands"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var PopupSelectView_module_css_default = { + "errorText": "mufS8W_errorText", + "status": "mufS8W_status", + "search": "mufS8W_search", + "row": "mufS8W_row", + "error": "mufS8W_error", + "check": "mufS8W_check", + "card": "mufS8W_card", + "viewport": "mufS8W_viewport", + "retry": "mufS8W_retry", + "rowActive": "mufS8W_rowActive", + "label": "mufS8W_label", + "detail": "mufS8W_detail" + }; + //#endregion + //#region lib/types/client/PopupSelectView.js + /** + * Official popupSelect shell: renders one session's PopupSelectController + * store into the conversation.input.overlay anchor. Unlike the slash menu + * (combobox — textarea keeps focus), this shell HOLDS focus while open: the + * inner search input takes focus, plain typing filters the loaded options + * locally, Enter/↑↓ drive the filtered highlight (scrolled into view), Escape + * dismisses back to the composer, and â†�→ keep the search input's native + * caret. Any pointer interaction outside the box dismisses (the click's own + * target takes focus). Closed state renders null; the overlay slot stays + * mounted. The card height clamps to the space above the composer. + */ + /** Design cap on the card height (same MenuDropdown family as the slash menu). */ + const MAX_HEIGHT = 320; + /** + * Render the popupSelect shell overlay entry. + * @param props - injected face: the session's shell controller; `t` rides the standard locale seat. + * @returns the select card while open; null while closed. + */ + function PopupSelectView({ popup, t }) { + const state = (0, react.useSyncExternalStore)((fn) => popup.state.subscribe(fn), () => popup.state.getSnapshot()); + const cardRef = (0, react.useRef)(null); + const searchRef = (0, react.useRef)(null); + const maxHeight = (0, _deepseek_ai_dsh_client_ui_primitives.useAnchoredMaxHeight)(cardRef, MAX_HEIGHT, state); + const active = state.open ? state.active : null; + (0, react.useEffect)(() => { + if (active === null) return; + cardRef.current?.querySelector("[aria-selected=\"true\"]")?.scrollIntoView({ block: "nearest" }); + }, [active]); + (0, react.useEffect)(() => { + if (!state.open || state.confirming !== null) return; + const onPointerDown = (ev) => { + if (cardRef.current !== null && ev.target instanceof Node && cardRef.current.contains(ev.target)) return; + popup.dismiss(); + }; + document.addEventListener("pointerdown", onPointerDown, true); + return () => { + document.removeEventListener("pointerdown", onPointerDown, true); + }; + }, [ + state.open, + state.confirming, + popup + ]); + (0, react.useEffect)(() => { + if (state.open && state.confirming === null) searchRef.current?.focus(); + }, [state.open, state.confirming]); + if (!state.open) return null; + const rows = filterOptions(state.options, state.search); + const confirmation = state.confirming?.confirmation; + const onKeyDown = (ev) => { + switch (ev.key) { + case "ArrowDown": + ev.preventDefault(); + popup.move(1); + return; + case "ArrowUp": + ev.preventDefault(); + popup.move(-1); + return; + case "Enter": + ev.preventDefault(); + popup.select(state.active); + return; + case "Escape": + ev.preventDefault(); + popup.dismiss({ focusComposer: true }); + return; + default: + } + }; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [state.confirming === null && (0, react_jsx_runtime.jsxs)("div", { + ref: cardRef, + className: PopupSelectView_module_css_default.card, + style: { maxHeight }, + "aria-label": t("overlay.aria", { command: String(state.command) }), + onKeyDown, + children: [ + (0, react_jsx_runtime.jsx)("input", { + ref: searchRef, + className: PopupSelectView_module_css_default.search, + type: "text", + placeholder: t("search.placeholder"), + "aria-label": t("search.aria"), + value: state.search, + readOnly: state.submitting, + onChange: (ev) => { + popup.setSearch(ev.currentTarget.value); + } + }), + state.error !== null && (0, react_jsx_runtime.jsxs)("div", { + className: PopupSelectView_module_css_default.error, + role: "alert", + children: [(0, react_jsx_runtime.jsx)("span", { + className: PopupSelectView_module_css_default.errorText, + children: state.error + }), state.status === "failed" && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: PopupSelectView_module_css_default.retry, + onClick: () => { + popup.retry(); + }, + children: t("retry") + })] + }), + state.status === "pending" && (0, react_jsx_runtime.jsx)("div", { + className: PopupSelectView_module_css_default.status, + children: t("status.loading") + }), + state.submitting && (0, react_jsx_runtime.jsx)("div", { + className: PopupSelectView_module_css_default.status, + children: t("status.applying") + }), + state.status === "ready" && rows.length === 0 && (0, react_jsx_runtime.jsx)("div", { + className: PopupSelectView_module_css_default.status, + children: t("status.empty") + }), + state.status === "ready" && (0, react_jsx_runtime.jsx)("div", { + role: "listbox", + "aria-label": t("listbox.aria", { command: String(state.command) }), + className: PopupSelectView_module_css_default.viewport, + children: rows.map((option, index) => (0, react_jsx_runtime.jsxs)("div", { + role: "option", + "aria-selected": index === state.active, + className: clsx(PopupSelectView_module_css_default.row, index === state.active && PopupSelectView_module_css_default.rowActive), + onClick: () => { + popup.select(index); + }, + onMouseEnter: () => { + popup.highlight(index); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: PopupSelectView_module_css_default.label, + children: option.label + }), + option.detail !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: PopupSelectView_module_css_default.detail, + children: option.detail + }), + option.active === true && (0, react_jsx_runtime.jsx)("span", { + className: PopupSelectView_module_css_default.check, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, {}) + }) + ] + }, option.id)) + }) + ] + }), confirmation !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, { + open: true, + title: confirmation.title, + description: confirmation.description, + acknowledgeLabel: confirmation.acknowledgeLabel, + cancelLabel: confirmation.cancelLabel, + confirmLabel: confirmation.confirmLabel, + acknowledged: state.acknowledged, + onAcknowledgedChange: (value) => { + popup.acknowledge(value); + }, + onCancel: () => { + popup.cancelConfirmation(); + }, + onConfirm: () => { + popup.confirm(); + } + })] }); + } + //#endregion + //#region lib/types/client/locales.js + /** `command` namespace dictionaries (the popupSelect shell's copy). */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "search.placeholder": "æ�œç´¢â€¦", + "search.aria": "筛选选项", + "status.loading": "正在加载选项…", + "status.applying": "正在应用…", + "status.empty": "无选项", + "overlay.aria": "/{command} 选项", + "listbox.aria": "/{command} 匹é…�项" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "search.placeholder": "Search…", + "search.aria": "Filter options", + "status.loading": "Loading options…", + "status.applying": "Applying…", + "status.empty": "No options", + "overlay.aria": "/{command} options", + "listbox.aria": "/{command} matches" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin. */ + const NS = "command"; + /** Required services: the '/' source registry, session scopes, commands Remote, and locale registry. */ + const inject = [ + "inputTriggers", + "sessions", + "remote", + "remote.commands", + "locale" + ]; + /** + * Client plugin body: mount the service, then register the popupSelect shell + * into the input overlay once its declarer is up. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-commands: dictionaries"); + ctx.plugin(CommandUiRuntime); + ctx.inject([ + "slots", + "commandUi", + "sessions" + ], (scope) => { + const command = scope.commandUi; + const sessions = scope.sessions; + scope.slots.inject("conversation.input.overlay", () => scope.slots.register({ + name: "conversation.input.overlay", + id: "command-popup", + order: 1, + locale: NS, + inject: (sessionId) => { + const actx = sessions.scope(sessionId); + if (actx === void 0) throw new Error(`ui-commands: session "${String(sessionId)}" resolved no scope`); + return { popup: command.popupFor(actx) }; + } + }, PopupSelectView)); + }); + } + //#endregion + exports.CommandDirectory = CommandDirectory; + exports.CommandUiRuntime = CommandUiRuntime; + exports.PopupSelectController = PopupSelectController; + exports.apply = apply; + exports.filterOptions = filterOptions; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000019 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000019 new file mode 100644 index 0000000..6870d8f --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000019 @@ -0,0 +1,710 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-subagent", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-subagent/src/client/SubagentCatalogAction.module.css.mjs + const css$1 = ".h8S2Va_root{position:relative}.h8S2Va_trigger{min-height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:3px;padding:3px 2px;font-size:12px;line-height:18px;display:inline-flex}.h8S2Va_count{margin:0 5px}.h8S2Va_activitySlot{flex:none;width:10px;height:10px;display:inline-flex}.h8S2Va_trigger:hover,.h8S2Va_trigger:focus-visible{color:var(--dsw-alias-label-secondary)}.h8S2Va_trigger svg{transition:transform .12s}.h8S2Va_triggerOpen{transform:rotate(180deg)}.h8S2Va_menu{z-index:100;box-sizing:border-box;background:var(--dsw-specific-menu);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);width:336px;max-width:min(400px,100vw - 32px);max-height:min(560px,100vh - 140px);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 5px);left:0;overflow:auto}.h8S2Va_node{min-width:0;position:relative}.h8S2Va_menu>.h8S2Va_node{margin-left:-3px}.h8S2Va_row{box-sizing:border-box;width:100%;min-height:50px;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;outline:none;align-items:flex-start;gap:8px;padding:7px 8px 7px 11px;font-size:13px;line-height:18px;display:flex;position:relative}.h8S2Va_row:hover>.h8S2Va_clickarea,.h8S2Va_row:focus-visible>.h8S2Va_clickarea{background:var(--dsw-alias-interactive-bg-hover)}.h8S2Va_clickarea{box-sizing:border-box;border-radius:8px;flex:1;align-self:stretch;align-items:flex-start;gap:8px;min-width:0;margin:-7px -8px;padding:7px 8px;display:flex}.h8S2Va_row>[data-state],.h8S2Va_clickarea>[data-state]{margin-top:4px}.h8S2Va_disabled{color:var(--dsw-alias-label-dimmed);cursor:not-allowed}.h8S2Va_disabled:hover{background:0 0}.h8S2Va_loadingRow{cursor:default}.h8S2Va_disclosure,.h8S2Va_disclosureSpace{flex:none;width:14px;height:18px}.h8S2Va_disclosure{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:transform .12s;display:inline-flex}.h8S2Va_disclosure:hover{color:var(--dsw-alias-label-primary)}.h8S2Va_disclosureOpen{transform:rotate(90deg)}.h8S2Va_content{flex-direction:column;flex:1;min-width:0;display:flex}.h8S2Va_label,.h8S2Va_summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.h8S2Va_label{color:inherit;font-weight:400}.h8S2Va_summary,.h8S2Va_metrics{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.h8S2Va_metrics{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;flex:none;grid-template-rows:18px 16px;display:grid}.h8S2Va_metricToken{grid-row:1;line-height:18px}.h8S2Va_metricDuration{grid-row:2}.h8S2Va_children{margin-left:18px;padding-left:4px;position:relative}.h8S2Va_children:before,.h8S2Va_children>.h8S2Va_node:before{content:\"\";border-left:1px solid var(--dsw-alias-border-l2);position:absolute;left:0}.h8S2Va_children:before{height:26px;top:-26px}.h8S2Va_children[aria-busy=true]:before{content:none}.h8S2Va_children>.h8S2Va_node:before{top:0;bottom:0;left:-4px}.h8S2Va_children>.h8S2Va_node:last-child:before{height:17px;bottom:auto}.h8S2Va_children>.h8S2Va_node>.h8S2Va_row:before{content:\"\";border-top:1px solid var(--dsw-alias-border-l2);width:14px;position:absolute;top:16px;left:-4px}.h8S2Va_notice,.h8S2Va_error{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}.h8S2Va_error{color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:12px;display:flex}.h8S2Va_refresh{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;align-items:center;gap:4px;padding:4px 6px;display:inline-flex}.h8S2Va_refresh:hover{background:var(--dsw-alias-interactive-bg-hover)}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-subagent/SubagentCatalogAction.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-subagent"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var SubagentCatalogAction_module_css_default = { + "triggerOpen": "h8S2Va_triggerOpen", + "loadingRow": "h8S2Va_loadingRow", + "clickarea": "h8S2Va_clickarea", + "children": "h8S2Va_children", + "metricToken": "h8S2Va_metricToken", + "root": "h8S2Va_root", + "count": "h8S2Va_count", + "activitySlot": "h8S2Va_activitySlot", + "node": "h8S2Va_node", + "menu": "h8S2Va_menu", + "metrics": "h8S2Va_metrics", + "notice": "h8S2Va_notice", + "disclosureOpen": "h8S2Va_disclosureOpen", + "disclosure": "h8S2Va_disclosure", + "disabled": "h8S2Va_disabled", + "error": "h8S2Va_error", + "content": "h8S2Va_content", + "label": "h8S2Va_label", + "row": "h8S2Va_row", + "summary": "h8S2Va_summary", + "trigger": "h8S2Va_trigger", + "refresh": "h8S2Va_refresh", + "disclosureSpace": "h8S2Va_disclosureSpace", + "metricDuration": "h8S2Va_metricDuration" + }; + //#endregion + //#region lib/types/client/SubagentCatalogAction.js + function diagnosticReason(entry, t) { + switch (entry.reason) { + case "corrupt": return t("diagnostic.corrupt"); + case "unsupported": return t("diagnostic.unsupported"); + case "unavailable": return t("diagnostic.unavailable"); + } + } + function treeItems(root) { + return root === null ? [] : Array.from(root.querySelectorAll("[role=\"treeitem\"]:not([aria-disabled=\"true\"])")); + } + /** Compact token count shared in shape with the conversation stats strip. */ + function formatTokens(value) { + const scaled = (next) => next >= 100 ? String(Math.round(next)) : String(Math.round(next * 10) / 10); + if (value < 1e3) return String(value); + if (value < 1e6) return `${scaled(value / 1e3)}K`; + return `${scaled(value / 1e6)}M`; + } + /** Sum the four disjoint durable provider-usage buckets. */ + function tokenTotal(usage) { + return usage === void 0 ? void 0 : usage.uncachedInputTokens + usage.outputTokens + usage.cacheReadTokens + usage.cacheWriteTokens; + } + /** Exact whole-second active-turn duration for one catalog row. */ + function activityDuration(summary, activity, now) { + if (summary === void 0) return void 0; + const timing = summary.projectionValues?.subagentTiming; + if (timing === void 0) return void 0; + if (timing.active === void 0) return timing.settledMs; + const end = activity === "running" ? now : timing.active.through; + return timing.settledMs + Math.max(0, end - timing.active.since); + } + function splitDuration(ms) { + const totalSeconds = Math.floor(Math.max(0, ms) / 1e3); + const totalMinutes = Math.floor(totalSeconds / 60); + const totalHours = Math.floor(totalMinutes / 60); + return { + seconds: totalSeconds % 60, + minutes: totalMinutes % 60, + hours: totalHours % 24, + days: Math.floor(totalHours / 24), + totalMinutes, + totalHours + }; + } + /** Format a duration with decreasing visual precision at larger scales. */ + function formatDuration(ms, t) { + const { seconds, minutes, hours, days, totalMinutes, totalHours } = splitDuration(ms); + if (days >= 365) { + const years = Math.floor(days / 365); + const months = Math.floor(days % 365 / 30); + return months === 0 ? t("duration.years", { years }) : t("duration.yearsMonths", { + years, + months + }); + } + if (days >= 30) { + const months = Math.floor(days / 30); + const remainingDays = days % 30; + return remainingDays === 0 ? t("duration.months", { months }) : t("duration.monthsDays", { + months, + days: remainingDays + }); + } + if (days > 0) return hours === 0 ? t("duration.days", { days }) : t("duration.daysHours", { + days, + hours + }); + if (totalHours > 0) return t("duration.hours", { + hours: totalHours, + minutes: String(minutes).padStart(2, "0"), + seconds: String(seconds).padStart(2, "0") + }); + if (totalMinutes > 0) return t("duration.minutes", { + minutes: totalMinutes, + seconds: String(seconds).padStart(2, "0") + }); + return t("duration.seconds", { seconds }); + } + /** Preserve exact whole seconds for hover and accessible naming. */ + function formatExactDuration(ms, t) { + const { seconds, minutes, hours, days } = splitDuration(ms); + return days === 0 ? formatDuration(ms, t) : t("duration.exactDays", { + days, + hours: String(hours).padStart(2, "0"), + minutes: String(minutes).padStart(2, "0"), + seconds: String(seconds).padStart(2, "0") + }); + } + const NO_DESCENDANTS = { + count: 0, + runningCount: 0 + }; + /** Render the known direct-child shape while its authoritative catalog hydrates. */ + function CatalogLoadingRows({ parentSessionId, summaries, level, t }) { + const children = Object.values(summaries).filter((summary) => summary.origin === "subagent" && summary.parentId === parentSessionId); + if (children.length === 0) return (0, react_jsx_runtime.jsx)("div", { + className: SubagentCatalogAction_module_css_default.notice, + children: t("loading.label") + }); + return children.map((summary) => (0, react_jsx_runtime.jsx)("div", { + className: SubagentCatalogAction_module_css_default.node, + children: (0, react_jsx_runtime.jsxs)("div", { + role: "treeitem", + "aria-disabled": "true", + "aria-level": level, + "aria-label": t("loading.aria"), + className: `${SubagentCatalogAction_module_css_default.row} ${SubagentCatalogAction_module_css_default.disabled} ${SubagentCatalogAction_module_css_default.loadingRow}`, + children: [ + (0, react_jsx_runtime.jsx)("span", { className: SubagentCatalogAction_module_css_default.disclosureSpace }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: summary.running ? "ongoing" : "done" }), + (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.content, + children: (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.label, + children: t("loading.label") + }) + }) + ] + }) + }, summary.id)); + } + /** Render one catalog level and recurse only through explicitly expanded rows. */ + function CatalogRows({ parentSessionId, catalog, catalogs, summaries, expanded, level, now, openChild, refresh, toggleBranch, closeCatalog, t }) { + const emptyLoading = catalog.state === "loading" && catalog.entries.length === 0; + const reserveDisclosure = catalog.entries.some((entry) => entry.kind === "child" && entry.hasChildren); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + emptyLoading && (0, react_jsx_runtime.jsx)(CatalogLoadingRows, { + parentSessionId, + summaries, + level, + t + }), + catalog.state === "error" && (0, react_jsx_runtime.jsxs)("div", { + className: SubagentCatalogAction_module_css_default.error, + children: [(0, react_jsx_runtime.jsx)("span", { children: catalog.error?.message ?? t("load.error") }), (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: SubagentCatalogAction_module_css_default.refresh, + onClick: () => { + refresh(parentSessionId); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline14, {}), t("retry")] + })] + }), + catalog.entries.map((entry) => { + if (entry.kind === "diagnostic") { + const reason = diagnosticReason(entry, t); + return (0, react_jsx_runtime.jsx)("div", { + className: SubagentCatalogAction_module_css_default.node, + children: (0, react_jsx_runtime.jsxs)("div", { + role: "treeitem", + "aria-disabled": "true", + "aria-level": level, + "aria-label": `${entry.id} ${reason}`, + className: `${SubagentCatalogAction_module_css_default.row} ${SubagentCatalogAction_module_css_default.disabled}`, + title: reason, + children: [ + reserveDisclosure && (0, react_jsx_runtime.jsx)("span", { className: SubagentCatalogAction_module_css_default.disclosureSpace }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }), + (0, react_jsx_runtime.jsxs)("span", { + className: SubagentCatalogAction_module_css_default.content, + children: [(0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.label, + children: entry.id + }), (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.summary, + children: reason + })] + }) + ] + }) + }, entry.id); + } + const childCatalog = catalogs[entry.id]; + const isExpanded = expanded.has(entry.id); + const knownLeaf = !entry.hasChildren; + const childLoading = childCatalog === void 0 || childCatalog.state === "loading" && childCatalog.entries.length === 0; + const summary = summaries[entry.id]; + const label = entry.label ?? entry.id; + const mode = entry.mode === "one-shot" ? t("mode.oneShot") : t("mode.continuable"); + const activity = entry.activity === "running" ? t("activity.running") : t("activity.inactive"); + const secondary = [ + summary?.title, + mode, + activity + ].filter((value) => value !== void 0).join(" · "); + const totalTokens = tokenTotal(summary?.projectionValues?.tokenUsage); + const durationMs = activityDuration(summary, entry.activity, now); + const tokenMetric = totalTokens === void 0 ? void 0 : `${formatTokens(totalTokens)} tok`; + const durationMetric = durationMs === void 0 ? void 0 : { + compact: formatDuration(durationMs, t), + exact: formatExactDuration(durationMs, t) + }; + const metrics = [tokenMetric, durationMetric?.exact].filter((value) => value !== void 0).join(" · "); + const open = () => { + openChild({ + parentSessionId, + childSessionId: entry.id, + mode: entry.mode + }); + closeCatalog(); + }; + const handleKey = (event) => { + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + event.stopPropagation(); + open(); + } else if (event.key === "ArrowRight" && !knownLeaf && !isExpanded || event.key === "ArrowLeft" && isExpanded) { + event.preventDefault(); + event.stopPropagation(); + toggleBranch(entry.id); + } + }; + const toggle = (event) => { + event.preventDefault(); + event.stopPropagation(); + toggleBranch(entry.id); + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: SubagentCatalogAction_module_css_default.node, + children: [(0, react_jsx_runtime.jsxs)("div", { + role: "treeitem", + tabIndex: 0, + "aria-level": level, + "aria-label": [ + label, + secondary, + metrics + ].filter((value) => value !== "").join(" "), + ...knownLeaf ? {} : { "aria-expanded": isExpanded }, + className: SubagentCatalogAction_module_css_default.row, + onClick: open, + onKeyDown: handleKey, + children: [knownLeaf ? reserveDisclosure && (0, react_jsx_runtime.jsx)("span", { className: SubagentCatalogAction_module_css_default.disclosureSpace }) : (0, react_jsx_runtime.jsx)("button", { + type: "button", + tabIndex: -1, + className: `${SubagentCatalogAction_module_css_default.disclosure} ${isExpanded ? SubagentCatalogAction_module_css_default.disclosureOpen : ""}`, + "aria-label": t(isExpanded ? "branch.collapse" : "branch.expand", { label }), + onClick: toggle, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}) + }), (0, react_jsx_runtime.jsxs)("div", { + className: SubagentCatalogAction_module_css_default.clickarea, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: entry.activity === "running" ? "ongoing" : "done" }), + (0, react_jsx_runtime.jsxs)("span", { + className: SubagentCatalogAction_module_css_default.content, + children: [(0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.label, + children: label + }), (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.summary, + children: secondary + })] + }), + metrics !== "" && (0, react_jsx_runtime.jsxs)("span", { + className: SubagentCatalogAction_module_css_default.metrics, + children: [tokenMetric !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.metricToken, + children: tokenMetric + }), durationMetric !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.metricDuration, + title: t("duration.exactTitle", { duration: durationMetric.exact }), + children: durationMetric.compact + })] + }) + ] + })] + }), isExpanded && !knownLeaf && (0, react_jsx_runtime.jsx)("div", { + role: "group", + className: SubagentCatalogAction_module_css_default.children, + "aria-busy": childLoading || void 0, + children: childCatalog === void 0 ? (0, react_jsx_runtime.jsx)(CatalogLoadingRows, { + parentSessionId: entry.id, + summaries, + level: level + 1, + t + }) : (0, react_jsx_runtime.jsx)(CatalogRows, { + parentSessionId: entry.id, + catalog: childCatalog, + catalogs, + summaries, + expanded, + level: level + 1, + now, + openChild, + refresh, + toggleBranch, + closeCatalog, + t + }) + })] + }, entry.id); + }) + ] }); + } + /** + * Render the current session's direct catalog and lazily expanded descendants. + * @param props - session standard props plus catalog navigation actions. + * @returns The action while the catalog is pending or summaries establish descendants. + */ + function SubagentCatalogAction({ sessionId, useSessions, openChild, refresh, setCatalogOpen, t }) { + const catalogs = useSessions((state) => state.subagentsByParent); + const summaries = useSessions((state) => state.byId); + const catalog = catalogs[sessionId]; + const [open, setOpen] = (0, react.useState)(false); + const [now, setNow] = (0, react.useState)(() => Date.now()); + const [expanded, setExpanded] = (0, react.useState)(() => /* @__PURE__ */ new Set()); + const rootRef = (0, react.useRef)(null); + const triggerRef = (0, react.useRef)(null); + const observedCatalogs = (0, react.useRef)(/* @__PURE__ */ new Set()); + const setCatalogOpenRef = (0, react.useRef)(setCatalogOpen); + setCatalogOpenRef.current = setCatalogOpen; + const healthy = catalog?.entries.filter((entry) => entry.kind === "child") ?? []; + const descendants = (0, react.useMemo)(() => (0, _deepseek_ai_dsh_client_runtime_client.indexSubagentDescendants)(summaries).get(sessionId) ?? NO_DESCENDANTS, [sessionId, summaries]); + const descendantCount = Math.max(healthy.length, descendants.count); + const totalCountKey = descendantCount === 1 ? "count.total.one" : "count.total.other"; + const runningCountKey = descendants.runningCount === 1 ? "count.running.one" : "count.running.other"; + const presentedCatalog = descendants.count > 0 && (catalog === void 0 || catalog.state === "ready" && catalog.entries.length === 0) ? { + entries: [], + parentAvailable: catalog?.parentAvailable ?? false, + state: "loading", + error: null + } : catalog; + const observeCatalog = (parentSessionId, next) => { + if (next) observedCatalogs.current.add(parentSessionId); + else observedCatalogs.current.delete(parentSessionId); + setCatalogOpen(parentSessionId, next); + }; + const closeAllCatalogs = () => { + for (const parentSessionId of observedCatalogs.current) setCatalogOpen(parentSessionId, false); + observedCatalogs.current.clear(); + setExpanded(/* @__PURE__ */ new Set()); + }; + const changeOpen = (next, restoreFocus = false) => { + setOpen(next); + if (next) { + setNow(Date.now()); + observeCatalog(sessionId, true); + } else closeAllCatalogs(); + if (restoreFocus) queueMicrotask(() => { + triggerRef.current?.focus(); + }); + }; + const closeBranch = (root) => { + const closing = /* @__PURE__ */ new Set(); + const visit = (parentSessionId) => { + if (closing.has(parentSessionId) || !expanded.has(parentSessionId)) return; + closing.add(parentSessionId); + const branch = catalogs[parentSessionId]; + for (const entry of branch?.entries ?? []) if (entry.kind === "child") visit(entry.id); + }; + visit(root); + for (const parentSessionId of closing) observeCatalog(parentSessionId, false); + setExpanded((current) => new Set([...current].filter((id) => !closing.has(id)))); + }; + const toggleBranch = (childSessionId) => { + if (expanded.has(childSessionId)) { + closeBranch(childSessionId); + return; + } + setExpanded((current) => new Set(current).add(childSessionId)); + observeCatalog(childSessionId, true); + }; + (0, react.useEffect)(() => { + if (!open) return; + const closeOutside = (event) => { + if (event.target instanceof Node && !rootRef.current?.contains(event.target)) changeOpen(false); + }; + document.addEventListener("pointerdown", closeOutside); + return () => { + document.removeEventListener("pointerdown", closeOutside); + }; + }, [open]); + (0, react.useEffect)(() => { + if (!open || descendants.runningCount === 0) return; + const timer = setInterval(() => { + setNow(Date.now()); + }, 1e3); + return () => { + clearInterval(timer); + }; + }, [open, descendants.runningCount]); + (0, react.useEffect)(() => () => { + for (const parentSessionId of observedCatalogs.current) setCatalogOpenRef.current(parentSessionId, false); + observedCatalogs.current.clear(); + }, []); + const visible = presentedCatalog !== void 0 && (presentedCatalog.state === "error" || presentedCatalog.entries.length > 0 || descendantCount > 0); + (0, react.useEffect)(() => { + if (visible || !open) return; + setOpen(false); + closeAllCatalogs(); + }, [visible, open]); + if (!visible) return null; + const focusAt = (index) => { + const items = treeItems(rootRef.current); + if (items.length === 0) return; + items[(index + items.length) % items.length]?.focus(); + }; + const navigate = (event) => { + const items = treeItems(rootRef.current); + const index = items.indexOf(document.activeElement); + if (event.key === "Escape") { + event.preventDefault(); + changeOpen(false, true); + } else if (event.key === "Home") { + event.preventDefault(); + focusAt(0); + } else if (event.key === "End") { + event.preventDefault(); + focusAt(items.length - 1); + } else if (event.key === "ArrowDown") { + event.preventDefault(); + focusAt(index + 1); + } else if (event.key === "ArrowUp") { + event.preventDefault(); + focusAt(index < 0 ? items.length - 1 : index - 1); + } + }; + return (0, react_jsx_runtime.jsxs)("div", { + className: SubagentCatalogAction_module_css_default.root, + ref: rootRef, + onKeyDown: navigate, + children: [(0, react_jsx_runtime.jsxs)("button", { + ref: triggerRef, + type: "button", + className: SubagentCatalogAction_module_css_default.trigger, + "aria-haspopup": "tree", + "aria-expanded": open, + "aria-label": t(descendants.runningCount > 0 ? runningCountKey : totalCountKey, { count: descendants.runningCount > 0 ? descendants.runningCount : descendantCount }), + onClick: () => { + changeOpen(!open); + }, + onKeyDown: (event) => { + if (event.key !== "ArrowDown") return; + event.preventDefault(); + if (!open) changeOpen(true); + queueMicrotask(() => { + focusAt(0); + }); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.activitySlot, + children: descendants.runningCount > 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: SubagentCatalogAction_module_css_default.count, + children: t(totalCountKey, { count: descendantCount }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: open ? SubagentCatalogAction_module_css_default.triggerOpen : void 0 }) + ] + }), open && (0, react_jsx_runtime.jsx)("div", { + className: SubagentCatalogAction_module_css_default.menu, + role: "tree", + "aria-label": t("tree.aria"), + children: (0, react_jsx_runtime.jsx)(CatalogRows, { + parentSessionId: sessionId, + catalog: presentedCatalog, + catalogs, + summaries, + expanded, + level: 1, + now, + openChild, + refresh, + toggleBranch, + closeCatalog: () => { + changeOpen(false); + }, + t + }) + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-subagent/src/client/SubagentReadOnlyComposer.module.css.mjs + const css = ".XJ7liG_frame{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);min-height:54px;color:var(--dsw-alias-label-tertiary);border-radius:14px;justify-content:center;align-items:center;gap:8px;margin:0 24px 20px;padding:10px 16px;font-size:13px;line-height:20px;display:flex}.XJ7liG_frame strong{color:var(--dsw-alias-label-primary);font-weight:510}"; + const tagId = "@deepseek-ai/dsh-client-ui-subagent/SubagentReadOnlyComposer.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-subagent"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var SubagentReadOnlyComposer_module_css_default = { "frame": "XJ7liG_frame" }; + //#endregion + //#region lib/types/client/SubagentReadOnlyComposer.js + /** + * Explain why the normal composer is unavailable for an addressed child. + * @param props - selector-owned read-only reason plus standard slot props. + * @returns A read-only composer replacement. + */ + function SubagentReadOnlyComposer({ matched, t }) { + const oneShot = matched.reason === "one-shot"; + return (0, react_jsx_runtime.jsxs)("div", { + className: SubagentReadOnlyComposer_module_css_default.frame, + role: "status", + children: [(0, react_jsx_runtime.jsx)("strong", { children: t(oneShot ? "readonly.oneShot.title" : "readonly.title") }), (0, react_jsx_runtime.jsx)("span", { children: t(oneShot ? "readonly.oneShot.body" : "readonly.body") })] + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `subagent` namespace dictionaries. */ + /** Dictionary namespace owned by this plugin. */ + const NS = "subagent"; + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "diagnostic.corrupt": "会è¯�记录æ�Ÿå��", + "diagnostic.unsupported": "å­�代ç�†è®°å½•版本ä¸�å�—支æŒ�", + "diagnostic.unavailable": "会è¯�记录暂ä¸�å�¯ç”¨", + "duration.seconds": "{seconds}ç§’", + "duration.minutes": "{minutes}分{seconds}ç§’", + "duration.hours": "{hours}å°�æ—¶{minutes}分{seconds}ç§’", + "duration.days": "{days}天", + "duration.daysHours": "{days}天{hours}å°�æ—¶", + "duration.months": "约{months}个月", + "duration.monthsDays": "约{months}个月{days}天", + "duration.years": "约{years}å¹´", + "duration.yearsMonths": "约{years}å¹´{months}个月", + "duration.exactDays": "{days}天{hours}å°�æ—¶{minutes}分{seconds}ç§’", + "duration.exactTitle": "总活跃耗时:{duration}", + "loading.label": "正在加载å­�代ç�†â€¦", + "loading.aria": "正在加载å­�代ç�†", + "load.error": "无法加载å­�代ç�†", + "retry": "é‡�试", + "mode.oneShot": "一次性", + "mode.continuable": "å�¯ç»§ç»­", + "activity.running": "正在è¿�行", + "activity.inactive": "当å‰�未è¿�行", + "branch.collapse": "æ”¶èµ· {label} 的下级å­�代ç�†", + "branch.expand": "展开 {label} 的下级å­�代ç�†", + "count.total.one": "{count} 个å­�代ç�†", + "count.total.other": "{count} 个å­�代ç�†", + "count.running.one": "{count} 个å­�代ç�†ï¼Œæ­£åœ¨è¿�行", + "count.running.other": "{count} 个å­�代ç�†ï¼Œæ­£åœ¨è¿�行", + "tree.aria": "å­�代ç�†ä¼šè¯�", + "readonly.oneShot.title": "一次性å­�代ç�†è®°å½•", + "readonly.title": "æ­¤å­�代ç�†æš‚æ—¶å�ªè¯»", + "readonly.oneShot.body": "一次性任务ä¸�支æŒ�å�Žç»­æ¶ˆæ�¯ï¼Œå�¯åœ¨è¿™é‡ŒæŸ¥çœ‹å®Œæ•´æ‰§è¡Œè®°å½•。", + "readonly.body": "父会è¯�当å‰�ä¸�在线,é‡�新打开父会è¯�å�Žå�³å�¯ç»§ç»­å�‘é€�消æ�¯ã€‚" + }; + /** English dictionary, key-identical to the Chinese source of truth. */ + const en = { + "diagnostic.corrupt": "corrupted session record", + "diagnostic.unsupported": "unsupported subagent record version", + "diagnostic.unavailable": "session record temporarily unavailable", + "duration.seconds": "{seconds}s", + "duration.minutes": "{minutes}m {seconds}s", + "duration.hours": "{hours}h {minutes}m {seconds}s", + "duration.days": "{days}d", + "duration.daysHours": "{days}d {hours}h", + "duration.months": "~{months}mo", + "duration.monthsDays": "~{months}mo {days}d", + "duration.years": "~{years}y", + "duration.yearsMonths": "~{years}y {months}mo", + "duration.exactDays": "{days}d {hours}h {minutes}m {seconds}s", + "duration.exactTitle": "Total active duration: {duration}", + "loading.label": "Loading subagents…", + "loading.aria": "Loading subagents", + "load.error": "Unable to load subagents", + "retry": "Retry", + "mode.oneShot": "one-shot", + "mode.continuable": "continuable", + "activity.running": "running", + "activity.inactive": "not running", + "branch.collapse": "Collapse {label} descendants", + "branch.expand": "Expand {label} descendants", + "count.total.one": "{count} subagent", + "count.total.other": "{count} subagents", + "count.running.one": "{count} subagent running", + "count.running.other": "{count} subagents running", + "tree.aria": "Subagent sessions", + "readonly.oneShot.title": "One-shot subagent record", + "readonly.title": "This subagent is read-only for now", + "readonly.oneShot.body": "One-shot tasks do not accept follow-ups; review the full execution record here.", + "readonly.body": "The parent session is offline; reopen it to continue sending messages." + }; + //#endregion + //#region lib/types/client/index.js + /** Required services for references, conversation slots, and session navigation. */ + const inject = [ + "inputTriggers", + "sessions", + "slots", + "locale" + ]; + /** Claim the composer for one-shot history or an unavailable continuation owner. */ + function selectReadOnlySubagent(owner) { + const subagent = owner.session?.subagent; + if (subagent === void 0 || subagent === null) return null; + if (subagent.address.mode === "one-shot") return { reason: "one-shot" }; + if (subagent.parentAvailable) return null; + return owner.session?.running === true ? null : { reason: "parent-unavailable" }; + } + /** + * Client plugin body: register the '@' subagent source over the root session list. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-subagent: dictionaries"); + const sessions = ctx.sessions; + const childLabels = (session, query) => { + const { byId } = sessions.list.getSnapshot(); + return Object.values(byId).filter((child) => child.parentId === session.sessionId && child.running && child.displayTitle.includes(query)).map((child) => child.displayTitle); + }; + const source = { + trigger: "@", + name: "subagent", + candidates(session, { query }) { + return Promise.resolve(childLabels(session, query).map((name) => ({ name }))); + }, + lexicon(session) { + return childLabels(session, ""); + }, + subscribeLexicon(_session, listener) { + return sessions.list.subscribe(listener); + }, + onPick({ candidate }) { + return { text: `@${candidate.name} ` }; + }, + codec: { + clipboardText: (ref) => `@${ref}`, + serialize: (ref) => Promise.resolve(`@${ref}`) + } + }; + const inputTriggers = ctx.get("inputTriggers"); + ctx.effect(() => inputTriggers.registerSource(source), "ui-subagent: @ source"); + const catalogActions = (_parentSessionId) => ({ + openChild(address) { + sessions.openSubagent(address); + }, + refresh(parentSessionId) { + sessions.refreshSubagents(parentSessionId); + }, + setCatalogOpen(parentSessionId, open) { + sessions.setSubagentCatalogOpen(parentSessionId, open); + } + }); + ctx.slots.inject("conversation.session.header.actions", () => ctx.slots.register({ + name: "conversation.session.header.actions", + id: "subagent-catalog", + order: 10, + locale: NS, + inject: catalogActions + }, SubagentCatalogAction)); + ctx.slots.inject("conversation.composer", () => ctx.slots.register({ + name: "conversation.composer", + priority: -10, + locale: NS, + select: selectReadOnlySubagent + }, SubagentReadOnlyComposer)); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001a b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001a new file mode 100644 index 0000000..1cfb62c --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001a @@ -0,0 +1,448 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-goal", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-goal/src/client/GoalBar.module.css.mjs + const css$1 = ".nLMEza_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto}.nLMEza_bar{box-sizing:border-box;width:100%;max-width:calc(var(--dsh-composer-card-max-width) - 4 * var(--dsh-composer-dock-inset));border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-specific-tip);border-radius:12px;align-items:center;gap:10px;height:36px;margin:0 auto;padding:4px 5px 4px 12px;display:flex}.nLMEza_goalGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}.nLMEza_label{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}.nLMEza_objective{min-width:0;color:var(--dsw-alias-label-primary-dimmed);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;line-height:20px;overflow:hidden}.nLMEza_error{min-width:0;color:var(--dsw-alias-state-error-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:20px;overflow:hidden}.nLMEza_objectiveInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;flex:1;padding:0 8px;font-size:13px;line-height:20px}.nLMEza_objectiveInput:focus{border-color:var(--dsw-alias-state-business-primary)}.nLMEza_objectiveInput::placeholder{color:var(--dsw-alias-label-caption)}.nLMEza_actions{flex:none;align-items:center;gap:10px;display:flex}.nLMEza_iconBtn{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.nLMEza_iconBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.nLMEza_iconBtn:disabled{opacity:.4;cursor:default}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-goal/GoalBar.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-goal"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var GoalBar_module_css_default = { + "dock": "nLMEza_dock", + "objective": "nLMEza_objective", + "objectiveInput": "nLMEza_objectiveInput", + "label": "nLMEza_label", + "iconBtn": "nLMEza_iconBtn", + "actions": "nLMEza_actions", + "error": "nLMEza_error", + "goalGlyph": "nLMEza_goalGlyph", + "bar": "nLMEza_bar" + }; + //#endregion + //#region lib/types/client/GoalBar.js + /** + * GoalBar: the goal indicator docked above the message composer (input dock + * strip). A present goal shows a goal glyph, a phase label, the truncated + * objective, and icon actions — resume when paused, edit (inline form in the + * same strip), and clear. Goal creation lives on the `/goal` command, not + * here: loading (undefined), no goal (null), and complete goals render + * nothing. Live state arrives as the projected whole snapshot; the verbs are + * the injected face. + */ + /** Strip label keys per visible phase; complete goals render nothing. */ + const PHASE_LABELS = { + active: "phase.active", + paused: "phase.paused", + blocked: "phase.blocked" + }; + function GoalBar({ goal, onEdit, onPause, onResume, onClear, t }) { + const [editing, setEditing] = (0, react.useState)(false); + const [draft, setDraft] = (0, react.useState)(""); + const [pending, setPending] = (0, react.useState)(false); + const [actionError, setActionError] = (0, react.useState)(null); + const [clearedGoalId, setClearedGoalId] = (0, react.useState)(null); + const pendingRef = (0, react.useRef)(false); + const goalId = goal?.id; + (0, react.useEffect)(() => { + setEditing(false); + setActionError(null); + setClearedGoalId(null); + }, [goalId]); + const runAction = (0, react.useCallback)(async (action) => { + if (pendingRef.current) return void 0; + pendingRef.current = true; + setPending(true); + setActionError(null); + const result = await action(); + pendingRef.current = false; + setPending(false); + if (!result.ok) setActionError(`${result.error.message} (${result.error.code})`); + return result; + }, []); + const handleEdit = (0, react.useCallback)(async () => { + const trimmed = draft.trim(); + if (trimmed === "") return; + if ((await runAction(() => onEdit(trimmed)))?.ok) setEditing(false); + }, [ + draft, + onEdit, + runAction + ]); + const handleClear = (0, react.useCallback)(async (clearedId) => { + if ((await runAction(onClear))?.ok) setClearedGoalId(clearedId); + }, [onClear, runAction]); + if (goal === void 0 || goal === null || goal.phase === "complete" || goal.id === clearedGoalId) return null; + if (editing) return (0, react_jsx_runtime.jsx)("div", { + className: GoalBar_module_css_default.dock, + "data-goal-bar": true, + children: (0, react_jsx_runtime.jsxs)("div", { + className: GoalBar_module_css_default.bar, + children: [ + (0, react_jsx_runtime.jsx)("input", { + className: GoalBar_module_css_default.objectiveInput, + type: "text", + "aria-label": t("objective.aria"), + value: draft, + onChange: (e) => { + setDraft(e.target.value); + }, + onKeyDown: (e) => { + if (e.key === "Enter") handleEdit(); + if (e.key === "Escape") setEditing(false); + }, + autoFocus: true + }), + actionError !== null && (0, react_jsx_runtime.jsx)("span", { + className: GoalBar_module_css_default.error, + role: "alert", + children: actionError + }), + (0, react_jsx_runtime.jsxs)("div", { + className: GoalBar_module_css_default.actions, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.save"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + onClick: () => { + handleEdit(); + }, + disabled: pending || draft.trim() === "", + "aria-label": t("action.save"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) + }) + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.cancel"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + onClick: () => { + setEditing(false); + }, + disabled: pending, + "aria-label": t("action.cancel"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 }) + }) + })] + }) + ] + }) + }); + const title = goal.phase === "blocked" ? goal.blockedReason?.message : void 0; + return (0, react_jsx_runtime.jsx)("div", { + className: GoalBar_module_css_default.dock, + "data-goal-bar": true, + children: (0, react_jsx_runtime.jsxs)("div", { + className: GoalBar_module_css_default.bar, + title, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: GoalBar_module_css_default.goalGlyph, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconGoalOutline16, { size: 14 }) + }), + (0, react_jsx_runtime.jsx)("span", { + className: GoalBar_module_css_default.label, + children: t(PHASE_LABELS[goal.phase]) + }), + (0, react_jsx_runtime.jsx)("span", { + className: GoalBar_module_css_default.objective, + children: goal.objective + }), + actionError !== null && (0, react_jsx_runtime.jsx)("span", { + className: GoalBar_module_css_default.error, + role: "alert", + children: actionError + }), + (0, react_jsx_runtime.jsxs)("div", { + className: GoalBar_module_css_default.actions, + children: [ + goal.phase === "active" && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.pause"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + disabled: pending, + onClick: () => { + runAction(onPause); + }, + "aria-label": t("action.pause"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPauseOutline16, { size: 14 }) + }) + }), + goal.phase === "paused" && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.resume"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + disabled: pending, + onClick: () => { + runAction(onResume); + }, + "aria-label": t("action.resume"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlayOutline16, { size: 14 }) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.edit"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + disabled: pending, + onClick: () => { + setDraft(goal.objective); + setEditing(true); + }, + "aria-label": t("action.edit"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: t("action.clear"), + side: "bottom", + delayMs: 500, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: GoalBar_module_css_default.iconBtn, + disabled: pending, + onClick: () => { + handleClear(goal.id); + }, + "aria-label": t("action.clear"), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 14 }) + }) + }) + ] + }) + ] + }) + }); + } + /** Dock adapter: reads the host-computed 'goal' projection (whole value; absent or null renders nothing). */ + function GoalDock({ useProjection, onEdit, onPause, onResume, onClear, t }) { + const projection = useProjection("goal"); + return (0, react_jsx_runtime.jsx)(GoalBar, { + goal: projection === void 0 ? void 0 : projection === null ? null : projection.goal, + onEdit, + onPause, + onResume, + onClear, + t + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-goal/src/client/GoalCommandInputView.module.css.mjs + const css = ".oRe1gG_row{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.oRe1gG_stack{flex-direction:column;align-items:flex-end;min-width:0;max-width:min(525px,82%);display:flex}.oRe1gG_bubble{overflow-wrap:anywhere;background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code);white-space:pre-wrap;border-radius:22px;padding:10px 16px}"; + const tagId = "@deepseek-ai/dsh-client-ui-goal/GoalCommandInputView.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-goal"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var GoalCommandInputView_module_css_default = { + "stack": "oRe1gG_stack", + "bubble": "oRe1gG_bubble", + "row": "oRe1gG_row" + }; + //#endregion + //#region lib/types/client/GoalCommandInputView.js + /** Right-aligned `/goal` input bubble without ordinary message actions. */ + const GoalCommandInputView = (0, react.memo)(function GoalCommandInputView({ node, t }) { + const data = node.data; + return (0, react_jsx_runtime.jsx)("div", { + className: GoalCommandInputView_module_css_default.row, + "data-command-input": "", + role: "group", + "aria-label": t("commandInput.aria"), + children: (0, react_jsx_runtime.jsx)("div", { + className: GoalCommandInputView_module_css_default.stack, + children: (0, react_jsx_runtime.jsx)("div", { + className: GoalCommandInputView_module_css_default.bubble, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MessageText, { text: data.text }) + }) + }) + }); + }); + //#endregion + //#region lib/types/client/goal-command-input.js + /** + * Derive the visible command line from its structured durable run. + * @param event - `/goal` command run. + * @returns command text with trailing parser whitespace removed. + */ + function goalCommandText(event) { + return `/${event.data.name}${(event.data.args ?? "").trimEnd()}`; + } + /** Goal-owned command input projection; the generic command Definition retains the result row. */ + const goalCommandInputDefinition = { + kind: "goal-command-input", + target: "chat", + match: (event) => event.type === "command/run" && event.data.name === "goal" ? { + id: String(event.data.commandId), + role: "start" + } : null, + start: (_context, match) => { + if (match.event.type !== "command/run") throw new Error("goal-command-input start requires command/run"); + return { + commandId: match.event.data.commandId, + seq: match.event.seq, + time: match.event.time, + text: goalCommandText(match.event) + }; + }, + update: (context) => context.state, + buildViewNode: (context) => { + if (context.state === void 0) return null; + return { + key: context.key, + kind: "command-input", + id: context.id, + target: "chat", + anchorSeq: context.state.seq - .1, + location: context.start?.location ?? { kind: "unresolved" }, + visibility: "visible", + data: { + commandId: context.state.commandId, + text: context.state.text, + time: context.state.time + } + }; + } + }; + //#endregion + //#region lib/types/client/locales.js + /** `goal` namespace dictionaries. */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "phase.active": "进行中的目标", + "phase.paused": "已暂å�œçš„目标", + "phase.blocked": "å�—阻的目标", + "objective.aria": "目标内容", + "commandInput.aria": "命令输入", + "action.save": "ä¿�存目标", + "action.cancel": "å�–消编辑", + "action.pause": "æš‚å�œç›®æ ‡", + "action.resume": "æ�¢å¤�目标", + "action.edit": "编辑目标", + "action.clear": "清除目标" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "phase.active": "Ongoing Goal", + "phase.paused": "Paused Goal", + "phase.blocked": "Blocked Goal", + "objective.aria": "Goal objective", + "commandInput.aria": "Command input", + "action.save": "Save goal", + "action.cancel": "Cancel edit", + "action.pause": "Pause goal", + "action.resume": "Resume goal", + "action.edit": "Edit goal", + "action.clear": "Clear goal" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin. */ + const NS = "goal"; + /** Required services for the Goal dock, command-input projection, Remote mutations, and copy. */ + const inject = [ + "slots", + "sessions", + "remote", + "remote.goals", + "locale", + "conversationEvents" + ]; + /** + * Client plugin body: the GoalBar dock entry with its mutation verbs. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.conversationEvents.register(goalCommandInputDefinition); + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-goal: dictionaries"); + ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({ + name: "conversation.chat.node", + key: "command-input", + locale: NS + }, GoalCommandInputView)); + const sessions = ctx.sessions; + /** The session's current projected CAS ref, read at verb call time (no staleness fence: the RPC's CAS is the guard). */ + const refOf = (sessionId) => { + const projection = (sessions.binding(sessionId)?.session.projections.faceOf("goal"))?.getSnapshot(); + if (projection == null) return void 0; + return { + id: projection.goal.id, + revision: projection.goal.revision + }; + }; + const noCurrentGoal = { + ok: false, + error: { + code: "no-current-goal", + message: "no current goal to mutate", + details: {} + } + }; + ctx.slots.inject("conversation.input.dock", () => ctx.slots.register({ + name: "conversation.input.dock", + id: "goal", + order: 10, + locale: NS, + inject: (sessionId) => ({ + onEdit: async (objective) => { + const ref = refOf(sessionId); + if (ref === void 0) return noCurrentGoal; + return await ctx.remote.goals.edit(sessionId, ref, { objective }); + }, + onPause: async () => { + const ref = refOf(sessionId); + if (ref === void 0) return noCurrentGoal; + return await ctx.remote.goals.pause(sessionId, ref); + }, + onResume: async () => { + const ref = refOf(sessionId); + if (ref === void 0) return noCurrentGoal; + return await ctx.remote.goals.resume(sessionId, ref); + }, + onClear: async () => { + const ref = refOf(sessionId); + if (ref === void 0) return noCurrentGoal; + return await ctx.remote.goals.clear(sessionId, ref); + } + }) + }, GoalDock)); + } + //#endregion + exports.GoalBar = GoalBar; + exports.GoalDock = GoalDock; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001b b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001b new file mode 100644 index 0000000..8106409 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001b @@ -0,0 +1,461 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-permission-presets", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let _deepseek_ai_dsh_client_schema_form = require("@deepseek-ai/dsh-client-schema-form"); + //#region lib/types/client/presentation.js + /** Machine value of the preset that requires an explicit GUI risk gate. */ + const FULL_ACCESS_PRESET = "danger-full-access"; + /** + * Convert conventional kebab-case preset names into user-facing title case. + * @param name - host-supplied preset label or key. + * @returns the title-cased conventional key, or a non-kebab label unchanged. + */ + function displayPresetName(name) { + if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(name)) return name; + return name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" "); + } + /** + * Render a permission preset under its product label. + * @param value - preset machine value. + * @param name - host-supplied preset name. + * @returns the Full access product label or the conventional display name. + */ + function displayPermissionPreset(value, name) { + return value === "danger-full-access" ? "Full access" : displayPresetName(name); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-permission-presets/src/client/PermissionRow.module.css.mjs + const css = ".oY77xG_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.oY77xG_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.oY77xG_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.oY77xG_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.oY77xG_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.oY77xG_selector:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.oY77xG_selector:disabled{cursor:default}.oY77xG_chevron{flex:none}"; + const tagId = "@deepseek-ai/dsh-client-ui-permission-presets/PermissionRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-permission-presets"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var PermissionRow_module_css_default = { + "selector": "oY77xG_selector", + "row": "oY77xG_row", + "chevron": "oY77xG_chevron", + "rowText": "oY77xG_rowText", + "title": "oY77xG_title", + "desc": "oY77xG_desc" + }; + //#endregion + //#region lib/types/client/PermissionRow.js + /** + * Permission preference row: the default preset for subsequently created + * sessions. Current-session switches remain on the composer `/permission` + * control. + */ + /** + * Render the new-session Permission default selector. + * @param props - composed slot props. + * @returns the row, or null when the host does not expose permission settings. + */ + function PermissionRow({ load, select, usePermission, t }) { + const state = usePermission((snapshot) => snapshot); + const [open, setOpen] = (0, react.useState)(false); + const [confirmingFullAccess, setConfirmingFullAccess] = (0, react.useState)(false); + const [acknowledged, setAcknowledged] = (0, react.useState)(false); + (0, react.useEffect)(() => { + load(); + }, [load]); + (0, react.useEffect)(() => { + if (state.writable && state.status !== "unavailable") return; + setOpen(false); + setAcknowledged(false); + setConfirmingFullAccess(false); + }, [state.status, state.writable]); + if (state.status === "unavailable") return null; + const selected = state.options.find((option) => option.id === state.currentValue); + const busy = state.status === "loading" || state.status === "saving" || confirmingFullAccess; + const label = selected?.label ?? (busy ? t("loading") : t("unavailable")); + const description = state.error ?? t("description"); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("div", { + className: PermissionRow_module_css_default.row, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: PermissionRow_module_css_default.rowText, + children: [(0, react_jsx_runtime.jsx)("div", { + className: PermissionRow_module_css_default.title, + children: t("title") + }), (0, react_jsx_runtime.jsx)("div", { + className: PermissionRow_module_css_default.desc, + role: state.error === null ? void 0 : "alert", + children: description + })] + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + setOpen(false); + }, + items: state.options.map((option) => ({ + id: option.id, + label: option.label + })), + selectedId: state.currentValue, + onSelect: (id) => { + setOpen(false); + if (id === state.currentValue) return; + if (id === "danger-full-access") { + setAcknowledged(false); + setConfirmingFullAccess(true); + return; + } + select(id); + }, + align: "end", + portal: true, + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: PermissionRow_module_css_default.selector, + "aria-haspopup": "menu", + "aria-expanded": open, + disabled: busy || !state.writable || state.options.length === 0, + onClick: () => { + setOpen((value) => !value); + }, + children: [label, (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: PermissionRow_module_css_default.chevron })] + }) + })] + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, { + open: confirmingFullAccess, + title: t("confirm.title"), + description: t("confirm.description"), + acknowledgeLabel: t("confirm.acknowledge"), + cancelLabel: t("confirm.cancel"), + confirmLabel: t("confirm.enable"), + acknowledged, + disabled: !state.writable || state.status === "saving", + onAcknowledgedChange: setAcknowledged, + onCancel: () => { + setAcknowledged(false); + setConfirmingFullAccess(false); + }, + onConfirm: () => { + setAcknowledged(false); + setConfirmingFullAccess(false); + select(FULL_ACCESS_PRESET); + } + })] }); + } + //#endregion + //#region lib/types/client/locales.js + /** `settings.permission` namespace dictionaries (the Permission row's copy). */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "title": "æ�ƒé™�", + "description": "选择新会è¯�的默认æ�ƒé™�模å¼�", + "loading": "加载中", + "unavailable": "ä¸�å�¯ç”¨", + "confirm.title": "确认å�¯ç”¨ Full access?", + "confirm.description": "å�¯ç”¨ Full access å�Žï¼Œæ–°ä¼šè¯�å°†å‡�少确认步骤,并且å�¯ä»¥ç›´æŽ¥æ‰§è¡Œæ›´å¤šæ“�作,包括æ•�感æ“�作ã€�文件修改或外部命令。仅建议在你信任å�Žç»­ä»»åŠ¡æ—¶ä½¿ç”¨ã€‚", + "confirm.acknowledge": "我已了解风险,并愿æ„�ç»§ç»­", + "confirm.cancel": "å�–消", + "confirm.enable": "å�¯ç”¨ Full access" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "title": "Permission", + "description": "Choose the default permission mode for new sessions", + "loading": "Loading", + "unavailable": "Unavailable", + "confirm.title": "Enable Full access?", + "confirm.description": "Full access lets new sessions reduce confirmation steps and perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust subsequent tasks.", + "confirm.acknowledge": "I understand the risks and want to continue", + "confirm.cancel": "Cancel", + "confirm.enable": "Enable Full access" + }; + /** Simplified Chinese dictionary for the current-session popup gate. */ + const accessZh = { + "confirm.title": "确认å�¯ç”¨ Full access?", + "confirm.description": "å�¯ç”¨ Full access å�Žï¼Œagent å°†å‡�少确认步骤,并且å�¯ä»¥ç›´æŽ¥æ‰§è¡Œæ›´å¤šæ“�作,包括æ•�感æ“�作ã€�文件修改或外部命令。仅建议在你信任当å‰�任务时使用。", + "confirm.acknowledge": "我已了解风险,并愿æ„�ç»§ç»­", + "confirm.cancel": "å�–消", + "confirm.enable": "å�¯ç”¨ Full access" + }; + /** English dictionary for the current-session popup gate. */ + const accessEn = { + "confirm.title": "Enable Full access?", + "confirm.description": "Full access reduces confirmation steps and lets the agent perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust the current task.", + "confirm.acknowledge": "I understand the risks and want to continue", + "confirm.cancel": "Cancel", + "confirm.enable": "Enable Full access" + }; + //#endregion + //#region lib/types/client/settings-store.js + /** + * Permission default-settings controller. The host descriptor supplies the + * current value and the dynamic preset enum; writes target only + * `defaultPreset` and carry the descriptor revision. + */ + /** Permission's settings namespace on the host wire. */ + const PERMISSION_SETTINGS_NS = "permission"; + /** + * Read the dynamic preset enum encoded by the host's `defaultPreset` schema. + * @param view - permission namespace descriptor. + * @returns current value and selectable options. + */ + function permissionDefaultOf(view) { + const value = view.value?.defaultPreset; + if (typeof value !== "string") throw new Error("permission settings has no defaultPreset value"); + const node = (0, _deepseek_ai_dsh_client_schema_form.nodeAtPath)((0, _deepseek_ai_dsh_client_schema_form.rehydrateSchema)(view.schema), ["defaultPreset"]); + if (node === void 0) throw new Error("permission settings schema has no defaultPreset field"); + const options = (node.type === "union" ? node.list ?? [] : [node]).flatMap((candidate) => { + const choice = candidate; + if (choice.type !== "const" || typeof choice.value !== "string") return []; + const described = choice.meta?.description; + return [{ + id: choice.value, + label: typeof described === "string" && described.length > 0 ? displayPermissionPreset(choice.value, described) : displayPermissionPreset(choice.value, choice.value) + }]; + }); + if (options.length === 0 || !options.some((option) => option.id === value)) throw new Error("permission settings schema does not advertise its current preset"); + return { + currentValue: value, + options + }; + } + /** Controller joining Settings reads, writes, and pushed invalidations. */ + var PermissionPresetSettingsController = class { + api; + /** Row snapshot consumed through a bound selector hook. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)({ + status: "idle", + error: null, + writable: false, + currentValue: "", + options: [], + revision: 0 + }); + generation = 0; + view; + /** @param api - Settings wire face. */ + constructor(api) { + this.api = api; + } + /** + * Refresh the permission descriptor. Latest request wins. + * @returns nothing; {@link store} carries success or failure. + */ + async load() { + const generation = ++this.generation; + this.store.update((state) => { + state.status = "loading"; + state.error = null; + }); + try { + const response = await this.api.settings.describe({}); + if (!response.result.ok) throw new Error(response.result.error.message); + if (generation !== this.generation) return; + const view = response.result.value.namespaces.find((entry) => entry.ns === PERMISSION_SETTINGS_NS); + if (view === void 0) { + this.view = void 0; + this.store.update((state) => { + state.status = "unavailable"; + state.writable = false; + state.currentValue = ""; + state.options = []; + }); + return; + } + this.accept(view, response.result.value.writable); + } catch (error) { + if (generation !== this.generation) return; + this.fail(error); + } + } + /** + * Persist one preset as the default for subsequently created sessions. + * @param preset - advertised preset key. + * @returns nothing; {@link store} carries success or failure. + */ + async select(preset) { + const view = this.view; + const state = this.store.getSnapshot(); + if (view === void 0 || !state.writable) return; + const generation = ++this.generation; + this.store.update((draft) => { + draft.status = "saving"; + draft.error = null; + }); + try { + const response = await this.api.settings.mutate({ + ns: PERMISSION_SETTINGS_NS, + ops: [{ + op: "set", + path: ["defaultPreset"], + value: preset + }], + expectedRevision: view.revision + }); + if (generation !== this.generation) return; + if (!response.result.ok) throw new Error(response.result.error.message); + this.accept(response.result.value, true); + } catch (error) { + if (generation !== this.generation) return; + this.fail(error); + } + } + /** Stop in-flight responses from publishing after plugin disposal. */ + dispose() { + this.generation += 1; + this.view = void 0; + } + accept(view, writable) { + const resolved = permissionDefaultOf(view); + this.view = view; + this.store.update((state) => { + state.status = "ready"; + state.error = null; + state.writable = writable; + state.currentValue = resolved.currentValue; + state.options = resolved.options; + state.revision = view.revision; + }); + } + fail(error) { + this.store.update((state) => { + state.status = "error"; + state.error = error instanceof Error ? error.message : String(error); + }); + } + }; + /** + * Refetch only after the row has opened once. + * @param controller - permission settings controller. + */ + function refreshPermissionIfLoaded(controller) { + if (controller.store.getSnapshot().status === "idle") return; + controller.load(); + } + //#endregion + //#region lib/types/client/index.js + /** Required services (cordis fiber inject). */ + const inject = [ + "commandUi", + "sessions", + "slots", + "locale", + "connection", + "remote" + ]; + const ACCESS_NS = "permission.access"; + /** Read one session's current permissions projection value (undefined = capability absent). */ + function selectOf(session) { + return session?.projections.faceOf("permissions").getSnapshot(); + } + /** Flatten the projection select into popup rows; `custom` is display state, never a target. */ + function optionsOf(value, t) { + return value.options.filter((option) => option.value !== "custom").map((option) => ({ + id: option.value, + label: displayPermissionPreset(option.value, option.name), + ...option.description !== void 0 ? { detail: option.description } : {}, + ...option.value === value.currentValue ? { active: true } : {}, + ...option.value === "danger-full-access" ? { confirmation: { + title: t("confirm.title"), + description: t("confirm.description"), + acknowledgeLabel: t("confirm.acknowledge"), + cancelLabel: t("confirm.cancel"), + confirmLabel: t("confirm.enable") + } } : {} + })); + } + /** + * Client plugin body: register the /permission popup picker over the + * permissions projection. + * @param ctx - client root context. + */ + function apply(ctx) { + const command = ctx.get("commandUi"); + const sessions = ctx.sessions; + ctx.effect(() => { + const disposers = [ctx.locale.register(ACCESS_NS, "zh", { + "confirm.title": accessZh["confirm.title"], + "confirm.description": accessZh["confirm.description"], + "confirm.acknowledge": accessZh["confirm.acknowledge"], + "confirm.cancel": accessZh["confirm.cancel"], + "confirm.enable": accessZh["confirm.enable"] + }), ctx.locale.register(ACCESS_NS, "en", { + "confirm.title": accessEn["confirm.title"], + "confirm.description": accessEn["confirm.description"], + "confirm.acknowledge": accessEn["confirm.acknowledge"], + "confirm.cancel": accessEn["confirm.cancel"], + "confirm.enable": accessEn["confirm.enable"] + })]; + return () => { + for (const dispose of disposers) dispose(); + }; + }, "ui-permission: Full access confirmation dictionaries"); + const t = ctx.locale.bind(ACCESS_NS); + const sessionFor = (session) => sessions.binding(session.sessionId)?.session; + ctx.effect(() => ctx.locale.register("settings.permission", { + zh, + en + }), "ui-permission: settings row dictionaries"); + const controller = new PermissionPresetSettingsController(ctx.get("connection").api); + const load = () => controller.load(); + const select = (preset) => controller.select(preset); + const injected = () => ({ + hooks: { permission: controller.store }, + load, + select + }); + ctx.effect(() => { + const refresh = () => { + refreshPermissionIfLoaded(controller); + }; + const disposers = [ctx.remote.$on("settings/document-updated", (ns) => { + if (ns !== "permission") return; + refresh(); + }), ctx.on("connection/reset", () => { + refresh(); + })]; + return () => { + controller.dispose(); + for (const dispose of disposers) dispose(); + }; + }, "ui-permission: settings invalidations"); + ctx.slots.inject("settings.general.item", () => ctx.slots.register({ + name: "settings.general.item", + id: "permission", + order: -20, + locale: "settings.permission", + inject: injected + }, PermissionRow)); + ctx.effect(() => command.decorate({ + name: "permission", + available: (session) => selectOf(sessionFor(session)) !== void 0, + ui: { + kind: "popupSelect", + options: (session) => { + const value = selectOf(sessionFor(session)); + if (value === void 0) throw new Error("permission presets are not available on this host"); + return Promise.resolve(optionsOf(value, t)); + }, + onSelect: async (option, session) => { + const live = sessionFor(session); + if (live === void 0) throw new Error("this session is not materialized yet"); + const result = await live.command(`/permission ${option.id}`); + if (!result.ok) throw new Error(`permission switch failed: ${result.error.code}: ${result.error.message}`); + if (!result.value.matched) throw new Error("the host offers no /permission command"); + } + } + }), "ui-permission: /permission decoration"); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001c b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001c new file mode 100644 index 0000000..95765c7 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001c @@ -0,0 +1,611 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-message-feedback", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/client/controller.js + const INITIAL_VIEW = Object.freeze({ + status: "cold", + items: /* @__PURE__ */ new Map(), + error: null + }); + const OK = Object.freeze({ ok: true }); + const DISPOSED = Object.freeze({ + ok: false, + error: Object.freeze({ + code: "disposed", + message: "feedback controller is disposed" + }) + }); + /** Human-readable text for one business failure code. */ + function describe(code) { + switch (code) { + case "session-not-found": return "this session is no longer persisted"; + case "target-not-found": return "this message is not a persisted assistant message"; + case "version-conflict": return "feedback changed elsewhere"; + case "note-blank": return "a note must contain a non-whitespace character"; + case "note-too-large": return "the note is too long"; + default: return code; + } + } + /** Build the rejected branch for one business failure code. */ + function fail(code) { + return { + ok: false, + error: { + code, + message: describe(code) + } + }; + } + /** Carrier failure rendered with the Host-supplied code and message. */ + function carrierFailure(error) { + return { + ok: false, + error: { + code: error.code, + message: error.message + } + }; + } + /** + * Per-session feedback object layer. One instance backs every per-message + * control in that Session, so a single list read seeds them all. + */ + var MessageFeedbackController = class { + remote; + sessionId; + view = INITIAL_VIEW; + listeners = /* @__PURE__ */ new Set(); + loadPromise = null; + operationTail = Promise.resolve(); + disposed = false; + /** + * @param remote - the messageFeedback Remote namespace. + * @param sessionId - Session owning every addressed assistant message. + */ + constructor(remote, sessionId) { + this.remote = remote; + this.sessionId = sessionId; + } + /** Return the cached immutable view. */ + getSnapshot = () => this.view; + /** Subscribe to view replacement. */ + subscribe = (listener) => { + this.listeners.add(listener); + return () => { + this.listeners.delete(listener); + }; + }; + /** + * Load once; a failed load stays retryable. + * @returns the settled load result, shared by concurrent callers. + */ + ensure() { + if (this.view.status === "ready") return Promise.resolve(OK); + return this.refresh(); + } + /** + * Re-read the authoritative list, collapsing concurrent callers onto one + * in-flight read. + * + * This is the unserialized read used to seed a cold controller, where no + * mutation can be in flight yet. A reconnect must use {@link resync} instead: + * an unserialized list response can otherwise arrive after a newer mutation's + * reply and overwrite the version that mutation just committed. + * @returns the settled reload result. + */ + refresh() { + if (this.loadPromise !== null) return this.loadPromise; + this.publish({ + status: "loading", + items: this.view.items, + error: null + }); + const pending = this.load(); + this.loadPromise = pending; + return pending.finally(() => { + this.loadPromise = null; + }); + } + /** + * Re-read the list behind this Session's queued mutations, so a reconnect + * cannot resurrect a version an in-flight mutation already replaced. + * @returns the settled reload result. + */ + resync() { + return this.mutate(() => this.refresh(), { seed: false }); + } + /** + * Create or replace feedback for one message, comparing against the version + * this controller last observed. + * + * The note is resolved here rather than by the caller: `mutate` awaits the + * one list read first, so this body always sees the committed item, while a + * control that rendered before that read completed would still be holding + * `undefined`. Omitting `note` therefore keeps whatever is stored; only + * {@link clearNote} removes one. + * @param messageId - target assistant message. + * @param rating - desired judgment. + * @param note - replacement explanation; omitted keeps the stored note. + * @returns the settled mutation result. + */ + rate(messageId, rating, note) { + return this.mutate(async () => { + const observed = this.view.items.get(messageId); + return await this.putCommitted(messageId, rating, note ?? observed?.note, observed); + }); + } + /** + * Replace one message's rating with the opposite judgment, or retract it when + * the committed rating already matches. The decision reads the committed item + * inside the serialized mutation, so a click that lands before the first list + * read still toggles against the stored value rather than the empty view a + * cold control rendered. + * @param messageId - target assistant message. + * @param rating - the judgment the human asked for. + * @returns the settled mutation result. + */ + toggle(messageId, rating) { + return this.mutate(async () => { + const observed = this.view.items.get(messageId); + if (observed?.rating === rating) return await this.deleteCommitted(messageId, observed); + return await this.putCommitted(messageId, rating, observed?.note, observed); + }); + } + /** + * Drop the note while keeping the rating. Absent feedback needs no call. + * @param messageId - target assistant message. + * @returns the settled mutation result. + */ + clearNote(messageId) { + return this.mutate(async () => { + const observed = this.view.items.get(messageId); + if (observed === void 0 || observed.note === void 0) return OK; + return await this.putCommitted(messageId, observed.rating, void 0, observed); + }); + } + /** + * Remove feedback for one message. A message with no known item is already + * in the requested state, so no call is made. + * @param messageId - target assistant message. + * @returns the settled mutation result. + */ + clear(messageId) { + return this.mutate(async () => { + const observed = this.view.items.get(messageId); + if (observed === void 0) return OK; + return await this.deleteCommitted(messageId, observed); + }); + } + /** Commit one put against the observed version and reconcile a conflict. */ + async putCommitted(messageId, rating, note, observed) { + const carried = await this.remote.put({ + sessionId: this.sessionId, + messageId, + rating, + ...note === void 0 ? {} : { note }, + ifVersion: observed?.version ?? null + }); + if (!carried.ok) return carrierFailure(carried.error); + const result = carried.value; + if (result.ok) { + this.commit(messageId, result.value); + return OK; + } + if (result.error.code === "version-conflict") this.commit(messageId, result.error.current); + return fail(result.error.code); + } + /** Commit one delete against the observed version and reconcile a conflict. */ + async deleteCommitted(messageId, observed) { + const carried = await this.remote.delete({ + sessionId: this.sessionId, + messageId, + ifVersion: observed.version + }); + if (!carried.ok) return carrierFailure(carried.error); + const result = carried.value; + if (result.ok) { + this.commit(messageId, null); + return OK; + } + if (result.error.code === "version-conflict") this.commit(messageId, result.error.current); + return fail(result.error.code); + } + /** Drop subscribers and refuse further work when the owning fiber unloads. */ + dispose() { + this.disposed = true; + this.listeners.clear(); + } + /** Fetch the whole sidecar and publish it as the seeded view. */ + async load() { + try { + const carried = await this.remote.list({ sessionId: this.sessionId }); + if (this.disposed) return OK; + if (!carried.ok) { + this.publish({ + status: "error", + items: this.view.items, + error: carried.error.message + }); + return carrierFailure(carried.error); + } + const result = carried.value; + if (!result.ok) { + this.publish({ + status: "error", + items: this.view.items, + error: describe(result.error.code) + }); + return fail(result.error.code); + } + const items = /* @__PURE__ */ new Map(); + for (const item of result.value.items) items.set(item.messageId, item); + this.publish({ + status: "ready", + items, + error: null + }); + return OK; + } catch (error) { + if (this.disposed) return OK; + const message = error instanceof Error ? error.message : "message feedback list failed"; + this.publish({ + status: "error", + items: this.view.items, + error: message + }); + return { + ok: false, + error: { + code: "transport", + message + } + }; + } + } + /** + * Serialize one mutation behind this Session's prior mutation so queued + * operations always compare against the committed version, and translate a + * transport throw into the same settled shape the controls already render. + */ + mutate(operation, options = {}) { + const guarded = async () => { + if (this.disposed) return DISPOSED; + if (options.seed !== false) { + const loaded = await this.ensure(); + if (!loaded.ok) return loaded; + if (this.disposed) return DISPOSED; + } + try { + return await operation(); + } catch (error) { + return { + ok: false, + error: { + code: "transport", + message: error instanceof Error ? error.message : "message feedback mutation failed" + } + }; + } + }; + const result = this.operationTail.then(guarded, guarded); + this.operationTail = result.then(() => void 0); + return result; + } + /** + * Replace one message's entry, keeping every other entry's identity. Only a + * `mutate` operation reaches this, and `mutate` refuses admission once the + * controller is disposed, so no disposal guard belongs here; `publish` is + * the single place that stops notifying after listeners are dropped. + */ + commit(messageId, item) { + const items = new Map(this.view.items); + if (item === null) items.delete(messageId); + else items.set(messageId, item); + this.publish({ + status: "ready", + items, + error: null + }); + } + /** Replace the view and contain subscriber failures at the observable boundary. */ + publish(view) { + this.view = Object.freeze(view); + for (const listener of this.listeners) try { + listener(); + } catch (error) { + console.error("[ui-message-feedback] subscriber threw:", error); + } + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-message-feedback/src/client/MessageFeedbackActions.module.css.mjs + const css = "._8_XoUG_action{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}._8_XoUG_action:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._8_XoUG_action:disabled{cursor:default;opacity:.4}._8_XoUG_action[data-active]{color:var(--dsw-alias-label-primary)}._8_XoUG_noteOpen{max-width:220px;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;border-radius:14px;padding:0 8px;font-size:13px;line-height:28px;overflow:hidden}._8_XoUG_noteOpen:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._8_XoUG_noteEditor{align-items:flex-start;gap:6px;display:inline-flex}._8_XoUG_noteInput{border:1px solid var(--dsw-alias-border-secondary);background:var(--dsw-alias-bg-primary);width:260px;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:8px;padding:6px 8px;font-size:13px}._8_XoUG_noteSave,._8_XoUG_noteCancel{cursor:pointer;border:none;border-radius:14px;height:28px;padding:0 10px;font-size:13px}._8_XoUG_noteSave{background:var(--dsw-alias-interactive-bg-primary);color:var(--dsw-alias-label-inverse)}._8_XoUG_noteSave:disabled{cursor:default;opacity:.4}._8_XoUG_noteCancel{color:var(--dsw-alias-label-tertiary);background:0 0}._8_XoUG_noteCancel:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._8_XoUG_failure{color:var(--dsw-alias-label-tertiary);padding-left:4px;font-size:13px;line-height:28px}"; + const tagId = "@deepseek-ai/dsh-client-ui-message-feedback/MessageFeedbackActions.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-message-feedback"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var MessageFeedbackActions_module_css_default = { + "noteSave": "_8_XoUG_noteSave", + "noteInput": "_8_XoUG_noteInput", + "noteCancel": "_8_XoUG_noteCancel", + "action": "_8_XoUG_action", + "noteOpen": "_8_XoUG_noteOpen", + "failure": "_8_XoUG_failure", + "noteEditor": "_8_XoUG_noteEditor" + }; + //#endregion + //#region lib/types/client/MessageFeedbackActions.js + /** + * Per-message feedback controls: a Like/Dislike pair plus an optional note. + * Rendered inside the assistant message's IconActions row, so the buttons + * reuse that row's chrome and sit between copy and branch. + * @module @deepseek-ai/dsh-client-ui-message-feedback/client/MessageFeedbackActions + */ + /** + * One message's feedback controls. + * @param props - the owner's message identity, the injected verbs, and the + * shared feedback hook. + * @returns the rating buttons, plus the note editor while it is open. + */ + function MessageFeedbackActions({ messageId, ensure, rate, toggle, clearNote, useFeedback, t }) { + const item = useFeedback((view) => view.items.get(messageId)); + const loadFailed = useFeedback((view) => view.status === "error"); + const rating = item?.rating; + const [noteOpen, setNoteOpen] = (0, react.useState)(false); + const [draft, setDraft] = (0, react.useState)(""); + const [pending, setPending] = (0, react.useState)(false); + const [failure, setFailure] = (0, react.useState)(null); + const seeded = (0, react.useRef)(false); + const seed = (0, react.useCallback)(() => { + if (seeded.current) return; + seeded.current = true; + ensure(); + }, [ensure]); + const alive = (0, react.useRef)(true); + (0, react.useEffect)(() => () => { + alive.current = false; + }, []); + const settle = (0, react.useCallback)((result) => { + if (!alive.current) return; + setPending(false); + if (result.ok) { + setFailure(null); + return; + } + setFailure(result.error?.code === "version-conflict" ? t("error.conflict") : t("error.generic")); + }, [t]); + const onRate = (0, react.useCallback)((next) => { + setPending(true); + setFailure(null); + setNoteOpen(false); + toggle(messageId, next).then(settle); + }, [ + messageId, + settle, + toggle + ]); + const onSaveNote = (0, react.useCallback)((current) => { + const trimmed = draft.trim(); + setPending(true); + setFailure(null); + (trimmed.length === 0 ? clearNote(messageId) : rate(messageId, current, trimmed)).then((result) => { + settle(result); + if (result.ok && alive.current) setNoteOpen(false); + }); + }, [ + clearNote, + draft, + messageId, + rate, + settle + ]); + const openNote = (0, react.useCallback)(() => { + setDraft(item?.note ?? ""); + setNoteOpen(true); + }, [item?.note]); + const likeLabel = rating === "positive" ? t("action.likeActive") : t("action.like"); + const dislikeLabel = rating === "negative" ? t("action.dislikeActive") : t("action.dislike"); + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: likeLabel, + side: "bottom", + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageFeedbackActions_module_css_default.action, + "aria-label": likeLabel, + "aria-pressed": rating === "positive", + "data-active": rating === "positive" || void 0, + disabled: pending, + onFocus: seed, + onPointerEnter: seed, + onClick: () => { + onRate("positive"); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLikeOutline16, {}) + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: dislikeLabel, + side: "bottom", + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageFeedbackActions_module_css_default.action, + "aria-label": dislikeLabel, + "aria-pressed": rating === "negative", + "data-active": rating === "negative" || void 0, + disabled: pending, + onFocus: seed, + onPointerEnter: seed, + onClick: () => { + onRate("negative"); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDislikeOutline16, {}) + }) + }), + rating !== void 0 && !noteOpen && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageFeedbackActions_module_css_default.noteOpen, + onClick: openNote, + children: item?.note === void 0 ? t("note.open") : item.note + }), + rating !== void 0 && noteOpen && (0, react_jsx_runtime.jsxs)("span", { + className: MessageFeedbackActions_module_css_default.noteEditor, + children: [ + (0, react_jsx_runtime.jsx)("textarea", { + className: MessageFeedbackActions_module_css_default.noteInput, + "aria-label": t("note.aria"), + placeholder: t("note.placeholder"), + value: draft, + rows: 2, + onChange: (event) => { + setDraft(event.target.value); + } + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageFeedbackActions_module_css_default.noteSave, + disabled: pending, + onClick: () => { + onSaveNote(rating); + }, + children: t("note.save") + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: MessageFeedbackActions_module_css_default.noteCancel, + onClick: () => { + setNoteOpen(false); + }, + children: t("note.cancel") + }) + ] + }), + failure === null && loadFailed && (0, react_jsx_runtime.jsx)("span", { + className: MessageFeedbackActions_module_css_default.failure, + role: "status", + children: t("error.load") + }), + failure !== null && (0, react_jsx_runtime.jsx)("span", { + className: MessageFeedbackActions_module_css_default.failure, + role: "status", + children: failure + }) + ] }); + } + //#endregion + //#region lib/types/client/locales.js + /** `feedback` namespace dictionaries. */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "action.like": "好的回答", + "action.likeActive": "å�–消标记", + "action.dislike": "有问题的回答", + "action.dislikeActive": "å�–消标记", + "note.open": "补充说明", + "note.placeholder": "è¿™æ�¡å›žç­”哪里好,或哪里有问题?(å�¯é€‰ï¼‰", + "note.save": "ä¿�å­˜", + "note.cancel": "å�–消", + "note.aria": "å��馈说明", + "error.conflict": "è¿™æ�¡å��馈已在别处改动,已显示最新状æ€�", + "error.load": "å��馈状æ€�加载失败", + "error.generic": "å��馈ä¿�存失败" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "action.like": "Good response", + "action.likeActive": "Remove rating", + "action.dislike": "Bad response", + "action.dislikeActive": "Remove rating", + "note.open": "Add a note", + "note.placeholder": "What was good, or what went wrong? (optional)", + "note.save": "Save", + "note.cancel": "Cancel", + "note.aria": "Feedback note", + "error.conflict": "This feedback changed elsewhere; the latest state is shown", + "error.load": "Could not load feedback", + "error.generic": "Could not save feedback" + }; + //#endregion + //#region lib/types/client/index.js + /** + * Message feedback plugin, browser half: the Like/Dislike entry in the + * conversation.chat.assistant-actions strip. One MessageFeedbackController per + * Session backs every message control in that Session, so a single list read + * seeds the whole transcript. Mutations go through the generated + * messageFeedback Remote; the Host owns per-item compare-and-set. + * @module @deepseek-ai/dsh-client-ui-message-feedback/client + */ + /** Dictionary namespace owned by this plugin. */ + const NS = "feedback"; + /** Required services: the slot registry, the Remote namespace, and the copy. */ + const inject = [ + "slots", + "remote", + "remote.messageFeedback", + "locale" + ]; + /** + * Client plugin body: the per-message feedback entry and its per-session + * object layer. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-message-feedback: dictionaries"); + const controllers = /* @__PURE__ */ new Map(); + const controllerFor = (sessionId) => { + let controller = controllers.get(sessionId); + if (controller === void 0) { + controller = new MessageFeedbackController(ctx.remote.messageFeedback, sessionId); + controllers.set(sessionId, controller); + } + return controller; + }; + ctx.on("connection/reset", () => { + for (const controller of controllers.values()) if (controller.getSnapshot().status !== "cold") controller.resync(); + }); + ctx.slots.inject("conversation.chat.assistant-actions", () => { + const dispose = ctx.slots.register({ + name: "conversation.chat.assistant-actions", + id: "feedback", + order: 10, + locale: NS, + inject: (sessionId) => { + const controller = controllerFor(sessionId); + return { + hooks: { feedback: controller }, + ensure: () => controller.ensure(), + rate: (messageId, rating, note) => controller.rate(messageId, rating, note), + toggle: (messageId, rating) => controller.toggle(messageId, rating), + clearNote: (messageId) => controller.clearNote(messageId), + clear: (messageId) => controller.clear(messageId) + }; + } + }, MessageFeedbackActions); + return () => { + dispose(); + for (const controller of controllers.values()) controller.dispose(); + controllers.clear(); + }; + }); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001d b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001d new file mode 100644 index 0000000..1f29484 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001d @@ -0,0 +1,804 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-model-selection", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_cordis = require("@deepseek-ai/cordis"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/client/directory.js + /** One session's shared directory controller; disposed with the session scope. */ + var ModelDirectory = class { + sessions; + sessionId; + available; + /** The shared snapshot both entries render from (uSES-safe store). */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)({ + current: null, + routable: null, + groups: [], + failures: [], + status: "idle", + error: null + }); + /** Latest operation wins; an older response never overwrites a newer one. */ + generation = 0; + disposed = false; + /** + * @param sessions - the session wire face (captured from the plugin's root connection). + * @param sessionId - the owning session. + * @param available - whether this session may use Agent-bound model RPCs. + */ + constructor(sessions, sessionId, available) { + this.sessions = sessions; + this.sessionId = sessionId; + this.available = available; + } + /** + * Refresh the advisory directory (both entries call this on open). + * Failure preserves the last good groups and current selection. + * @returns the fresh directory value. + */ + async load() { + this.assertAvailable(); + const generation = ++this.generation; + this.store.update((s) => { + s.status = "loading"; + s.error = null; + }); + const { result } = await this.sessions.models({ sessionId: this.sessionId }); + if (this.disposed || generation !== this.generation) { + if (!result.ok) throw new Error(`${result.error.code}: ${result.error.message}`); + return result.value; + } + if (!result.ok) { + this.store.update((s) => { + s.status = "error"; + s.error = `${result.error.code}: ${result.error.message}`; + }); + throw new Error(`session.models failed: ${result.error.code}: ${result.error.message}`); + } + const { current, routable, groups, failures } = result.value; + this.store.update((s) => { + s.current = current; + s.routable = routable; + s.groups = groups; + s.failures = failures; + s.status = "ready"; + s.error = null; + }); + return result.value; + } + /** + * Select the complete provider/model/reasoning selection (both entries submit through here). Success + * updates the shared current; failure surfaces on the store and throws so + * each entry's own retry surface engages. + * @param selection - provider, provider-owned model id, and optional adapter-owned effort. + */ + async select(selection) { + this.assertAvailable(); + const generation = ++this.generation; + this.store.update((s) => { + s.status = "selecting"; + s.error = null; + }); + const { result } = await this.sessions.selectModel({ + sessionId: this.sessionId, + provider: selection.provider, + model: selection.model, + ...selection.reasoningEffort === void 0 ? {} : { reasoningEffort: selection.reasoningEffort } + }); + if (this.disposed || generation !== this.generation) { + if (!result.ok) throw new Error(`${result.error.code}: ${result.error.message}`); + return; + } + if (!result.ok) { + this.store.update((s) => { + s.status = "error"; + s.error = `${result.error.code}: ${result.error.message}`; + }); + throw new Error(`session.selectModel failed: ${result.error.code}: ${result.error.message}`); + } + this.store.update((s) => { + s.current = result.value.selected; + s.routable = true; + s.status = "ready"; + s.error = null; + }); + } + /** + * Drop the previous Host generation's projection and repull it. Clearing + * first prevents an unconsumed process-local selection from being displayed + * while the restarted Host has restored the last logged model selection. + */ + resetConnected() { + if (this.disposed) return; + ++this.generation; + this.store.update((s) => { + s.current = null; + s.routable = null; + s.groups = []; + s.failures = []; + s.status = "idle"; + s.error = null; + }); + if (!this.available()) return; + this.load().catch(() => {}); + } + /** Scope teardown: late settlements lose write access to the store. */ + dispose() { + this.disposed = true; + } + assertAvailable() { + if (!this.available()) throw new Error("model selection is unavailable for addressed subagent sessions"); + } + }; + //#endregion + //#region lib/types/client/service.js + /** + * ModelDirectoryResolver (`ctx.modelDirectories`): the root owner of per-session + * {@link ModelDirectory} instances. Both selection entries (the /model popup + * and the composer model seat) resolve their session's directory through + * this service, which is what makes the dual entry one shared state. + * + * Per-session storage follows the client service pattern (InputTriggerService / + * CommandUiRuntime): a lazy service-internal map whose entry is deleted by the + * owning scope's disposer. The host `dsh-scope` ScopedLayers registry does + * does not belong here: it derives scope from the host carrier mechanism + * (object-keyed), while client scopes tag contexts with branded SessionId + * strings, and it models global+shadow named registries — this is a + * per-session singleton with no global layer to merge. + */ + /** The `ctx.modelDirectories` session model-selection service. */ + var ModelDirectoryResolver = class extends _deepseek_ai_cordis.Service { + static inject = [ + "connection", + "sessions", + "remote" + ]; + live = { directories: /* @__PURE__ */ new Map() }; + /** Localized composer-block copy; this plugin owns the string it raises. */ + blockReason; + /** + * @param ctx - owning root context (the service registers itself as `models`). + * @param config - the bound translator for this plugin's own dictionary. + */ + constructor(ctx, config) { + super(ctx, "modelDirectories"); + this.blockReason = config.blockReason; + ctx.on("connection/reset", () => { + for (const directory of this.live.directories.values()) directory.resetConnected(); + }); + const refresh = () => { + for (const directory of this.live.directories.values()) directory.load().catch(() => void 0); + }; + ctx.remote.$on("llm/adapters-updated", refresh); + ctx.remote.$on("settings/document-updated", refresh); + } + /** + * Resolve the per-session shared directory (lazy; the scope disposer + * removes and disposes it). Unknown sessions fail loud. + * @param sessionId - the owning session. + * @returns the resident directory both entries share. + */ + directoryFor(sessionId) { + const { live } = this; + const existing = live.directories.get(sessionId); + if (existing !== void 0) return existing; + const sessions = this.ctx.get("sessions"); + const actx = sessions.scope(sessionId); + if (actx === void 0) throw new Error(`ui-model-selection: session "${String(sessionId)}" resolved no scope`); + const directory = new ModelDirectory(this.ctx.get("connection").api.sessions, sessionId, () => sessions.subagentAddress(sessionId) === void 0); + live.directories.set(sessionId, directory); + const conversation = this.ctx.get("conversation"); + if (conversation !== void 0) { + const publish = () => { + conversation.blocks.set(sessionId, directory.store.getSnapshot().routable === false ? { reason: this.blockReason() } : void 0); + }; + publish(); + actx.effect(() => { + const stop = directory.store.subscribe(publish); + return () => { + stop(); + conversation.blocks.set(sessionId, void 0); + }; + }, "ui-model-selection: composer block"); + } + actx.effect(() => () => { + directory.dispose(); + live.directories.delete(sessionId); + }, "ui-model-selection: session directory"); + return directory; + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-model-selection/src/client/ModelSelect.module.css.mjs + const css = "._7KE1Ra_root{min-width:0;position:relative}._7KE1Ra_trigger{min-width:0;max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:flex}._7KE1Ra_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._7KE1Ra_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-border-l3)}._7KE1Ra_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}._7KE1Ra_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._7KE1Ra_triggerEffort{color:var(--dsw-alias-label-caption);flex:none}._7KE1Ra_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s}._7KE1Ra_chevronOpen{transform:rotate(180deg)}._7KE1Ra_menu{z-index:20;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);width:min(240px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden}._7KE1Ra_status,._7KE1Ra_empty{color:var(--dsw-alias-label-tertiary);padding:10px;font-size:13px;line-height:20px}._7KE1Ra_error,._7KE1Ra_warning{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;padding:7px 8px;font-size:12px;line-height:18px;display:flex}._7KE1Ra_warning{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-state-warn-label)}._7KE1Ra_retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600}._7KE1Ra_groups{min-height:0;overflow-y:auto}._7KE1Ra_group+._7KE1Ra_group{margin-top:4px}._7KE1Ra_groupTitle{z-index:1;background:var(--dsw-specific-menu);color:var(--dsw-alias-label-tertiary);padding:5px 8px 3px;font-size:12px;font-weight:500;line-height:18px;position:sticky;top:0}._7KE1Ra_option{width:100%;min-height:38px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;outline:none;align-items:center;gap:8px;padding:6px 8px;display:flex}._7KE1Ra_option:hover:not(:disabled),._7KE1Ra_option:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}._7KE1Ra_selected{background:0 0}._7KE1Ra_option:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}._7KE1Ra_optionCopy{flex-direction:column;flex:1;min-width:0;display:flex}._7KE1Ra_modelName{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}._7KE1Ra_description{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}._7KE1Ra_check{color:var(--dsw-alias-label-primary);flex:0 0 18px;place-items:center;display:grid}._7KE1Ra_cell{width:100%;height:40px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-size:14px;line-height:22px;display:flex}._7KE1Ra_cell:hover{background:var(--dsw-alias-interactive-bg-hover)}._7KE1Ra_cellLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._7KE1Ra_cellValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:0 auto;overflow:hidden}._7KE1Ra_cellChevron{color:var(--dsw-alias-label-tertiary);flex:none}"; + const tagId = "@deepseek-ai/dsh-client-ui-model-selection/ModelSelect.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-model-selection"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var ModelSelect_module_css_default = { + "optionCopy": "_7KE1Ra_optionCopy", + "triggerEffort": "_7KE1Ra_triggerEffort", + "retry": "_7KE1Ra_retry", + "description": "_7KE1Ra_description", + "root": "_7KE1Ra_root", + "cellValue": "_7KE1Ra_cellValue", + "cellChevron": "_7KE1Ra_cellChevron", + "option": "_7KE1Ra_option", + "group": "_7KE1Ra_group", + "chevronOpen": "_7KE1Ra_chevronOpen", + "status": "_7KE1Ra_status", + "error": "_7KE1Ra_error", + "check": "_7KE1Ra_check", + "cell": "_7KE1Ra_cell", + "triggerLabel": "_7KE1Ra_triggerLabel", + "modelName": "_7KE1Ra_modelName", + "chevron": "_7KE1Ra_chevron", + "trigger": "_7KE1Ra_trigger", + "menu": "_7KE1Ra_menu", + "warning": "_7KE1Ra_warning", + "cellLabel": "_7KE1Ra_cellLabel", + "groupTitle": "_7KE1Ra_groupTitle", + "groups": "_7KE1Ra_groups", + "selected": "_7KE1Ra_selected", + "empty": "_7KE1Ra_empty" + }; + //#endregion + //#region lib/types/client/ModelSelect.js + /** + * ModelSelect: the composer's named model seat (`conversation.input.model`). + * Two-level selection per figma 496:26454's MenuDropdown: the root menu is + * the Model / Effort row pair (label + current value + a right chevron), + * each drilling into its own list — the provider-grouped model list over + * the shared directory, and the effort levels. The trigger (313:14108's + * ToggleButton) shows both: model name + effort in the caption tone. + * Data and submission ride the SAME per-session ModelDirectory as the + * /model popup; exact-model reasoning metadata and the selected effort come + * from the Host rather than a client-owned vocabulary. A rejected selection + * announces through the shared transient Toast anchored to the composer + * card; the in-menu strip with Retry remains the catalog-load surface. + */ + /** + * Render the composer model seat. + * @param props - owner share (locked) + injected face (shared directory + * store/verbs) + the standard locale seat. + * @returns the trigger and, while open, the two-level menu. + */ + function ModelSelect({ locked, available, directory, load, select, t }) { + const state = (0, react.useSyncExternalStore)((fn) => directory.subscribe(fn), () => directory.getSnapshot()); + const [open, setOpen] = (0, react.useState)(false); + const [pane, setPane] = (0, react.useState)("root"); + const lastActionRef = (0, react.useRef)("load"); + const [toast, setToast] = (0, react.useState)(null); + const toastSeq = (0, react.useRef)(0); + const rootRef = (0, react.useRef)(null); + const triggerRef = (0, react.useRef)(null); + const itemRefs = (0, react.useRef)([]); + const id = (0, react.useId)(); + const choices = (0, react.useMemo)(() => state.groups.flatMap((group) => group.models.map((model) => ({ + group, + model, + selection: { + provider: group.id, + model: model.id, + ...model.reasoning?.defaultEffort === void 0 ? {} : { reasoningEffort: model.reasoning.defaultEffort } + } + }))), [state.groups]); + const currentChoice = choices[state.current === null ? -1 : choices.findIndex((c) => c.selection.provider === state.current?.provider && c.selection.model === state.current.model)]; + const reasoning = currentChoice?.model.reasoning; + const effectiveEffort = state.current?.reasoningEffort ?? reasoning?.defaultEffort; + const effortLabel = reasoning === void 0 ? void 0 : effectiveEffort === void 0 ? t("effort.providerDefault") : reasoning.efforts.find((level) => level.id === effectiveEffort)?.name ?? effectiveEffort; + const effortChoices = (0, react.useMemo)(() => reasoning === void 0 ? [] : [...reasoning.defaultEffort === void 0 ? [{ + key: "provider-default", + effort: void 0, + label: t("effort.providerDefault") + }] : [], ...reasoning.efforts.map((effort) => ({ + key: `effort:${effort.id}`, + effort: effort.id, + label: effort.name, + ...effort.description === void 0 ? {} : { description: effort.description } + }))], [reasoning, t]); + const busy = state.status === "selecting"; + const reload = () => { + lastActionRef.current = "load"; + load(); + }; + (0, react.useEffect)(() => { + if (available) { + lastActionRef.current = "load"; + load(); + } + }, [available, load]); + (0, react.useEffect)(() => { + if (!open) return; + const closeOutside = (event) => { + if (!rootRef.current?.contains(event.target)) setOpen(false); + }; + document.addEventListener("mousedown", closeOutside); + return () => { + document.removeEventListener("mousedown", closeOutside); + }; + }, [open]); + if (!available) return null; + const show = () => { + setPane("root"); + setOpen(true); + reload(); + }; + const close = (restoreFocus = false) => { + setOpen(false); + setPane("root"); + if (restoreFocus) queueMicrotask(() => { + triggerRef.current?.focus(); + }); + }; + const moveFocus = (offset) => { + const items = itemRefs.current.filter((item) => item !== null); + if (items.length === 0) return; + const active = items.findIndex((item) => item === document.activeElement); + items[(Math.max(active, 0) + offset + items.length) % items.length]?.focus(); + }; + const onRootKeyDown = (event) => { + if (event.key === "Escape" && open) { + event.preventDefault(); + if (pane !== "root") setPane("root"); + else close(true); + return; + } + if (!open) return; + if (event.key === "ArrowDown" || event.key === "ArrowUp") { + event.preventDefault(); + moveFocus(event.key === "ArrowDown" ? 1 : -1); + } + }; + const onBlur = (event) => { + if (event.relatedTarget instanceof Node && rootRef.current?.contains(event.relatedTarget)) return; + close(); + }; + const settleSelection = (accepted) => { + if (accepted) { + if (rootRef.current !== null) close(true); + return; + } + const message = directory.getSnapshot().error; + if (message !== null) { + toastSeq.current += 1; + setToast({ + seq: toastSeq.current, + text: t("error.action", { message }) + }); + } + }; + const choose = (selection) => { + if (state.current?.provider === selection.provider && state.current.model === selection.model) { + close(true); + return; + } + lastActionRef.current = "select"; + select(selection).then(settleSelection); + }; + const chooseEffort = (effort) => { + if (state.current === null) return; + if (effectiveEffort === effort) { + close(true); + return; + } + const selection = { + provider: state.current.provider, + model: state.current.model, + ...effort === void 0 ? {} : { reasoningEffort: effort } + }; + lastActionRef.current = "select"; + select(selection).then(settleSelection); + }; + const modelLabel = currentChoice?.model.name ?? t("trigger.fallback"); + const triggerLabel = effortLabel === void 0 ? modelLabel : `${modelLabel} · ${effortLabel}`; + const triggerAria = currentChoice === void 0 ? t("trigger.selectAria") : effortLabel === void 0 ? t("trigger.aria", { model: modelLabel }) : t("trigger.ariaEffort", { + model: modelLabel, + effort: effortLabel + }); + itemRefs.current = []; + let itemIndex = 0; + const itemRef = () => { + const at = itemIndex++; + return (node) => { + itemRefs.current[at] = node; + }; + }; + return (0, react_jsx_runtime.jsxs)("div", { + ref: rootRef, + className: ModelSelect_module_css_default.root, + onKeyDown: onRootKeyDown, + onBlur, + children: [ + (0, react_jsx_runtime.jsxs)("button", { + ref: triggerRef, + type: "button", + className: ModelSelect_module_css_default.trigger, + "aria-label": triggerAria, + "aria-haspopup": "menu", + "aria-expanded": open, + "aria-controls": open ? `${id}-menu` : void 0, + title: triggerLabel, + disabled: locked, + onClick: () => { + if (open) close(); + else show(); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.triggerLabel, + children: modelLabel + }), + effortLabel !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.triggerEffort, + children: effortLabel + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: clsx(ModelSelect_module_css_default.chevron, open && ModelSelect_module_css_default.chevronOpen) }) + ] + }), + open && (0, react_jsx_runtime.jsxs)("div", { + id: `${id}-menu`, + className: ModelSelect_module_css_default.menu, + role: "menu", + "aria-label": t("menu.aria"), + "aria-busy": state.status === "loading" || busy, + children: [ + pane === "root" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("button", { + ref: itemRef(), + type: "button", + role: "menuitem", + className: ModelSelect_module_css_default.cell, + onClick: () => { + setPane("model"); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.cellLabel, + children: t("menu.model") + }), + (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.cellValue, + children: modelLabel + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { className: ModelSelect_module_css_default.cellChevron }) + ] + }), reasoning !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + ref: itemRef(), + type: "button", + role: "menuitem", + className: ModelSelect_module_css_default.cell, + onClick: () => { + setPane("effort"); + }, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.cellLabel, + children: t("menu.effort") + }), + (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.cellValue, + children: effortLabel + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { className: ModelSelect_module_css_default.cellChevron }) + ] + })] }), + pane === "model" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + state.status === "loading" && (0, react_jsx_runtime.jsx)("div", { + className: ModelSelect_module_css_default.status, + children: t("status.loading") + }), + state.error !== null && lastActionRef.current === "load" && (0, react_jsx_runtime.jsxs)("div", { + className: ModelSelect_module_css_default.error, + children: [(0, react_jsx_runtime.jsx)("span", { children: t("error.action", { message: state.error }) }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelSelect_module_css_default.retry, + onClick: reload, + children: t("retry") + })] + }), + state.failures.map((failure) => (0, react_jsx_runtime.jsxs)("div", { + className: ModelSelect_module_css_default.warning, + children: [(0, react_jsx_runtime.jsx)("span", { children: t("warning.groupLoad", { + name: failure.name, + message: failure.message + }) }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelSelect_module_css_default.retry, + onClick: reload, + children: t("retry") + })] + }, failure.id)), + (0, react_jsx_runtime.jsx)("div", { + className: clsx(ModelSelect_module_css_default.groups, "scrollable"), + children: state.groups.map((group) => { + const headingId = `${id}-${group.id}`; + return (0, react_jsx_runtime.jsxs)("section", { + role: "group", + "aria-labelledby": headingId, + className: ModelSelect_module_css_default.group, + children: [(0, react_jsx_runtime.jsx)("div", { + className: ModelSelect_module_css_default.groupTitle, + id: headingId, + children: group.name + }), group.models.map((model) => { + const selected = state.current?.provider === group.id && state.current.model === model.id; + return (0, react_jsx_runtime.jsxs)("button", { + ref: itemRef(), + type: "button", + role: "menuitemradio", + "aria-checked": selected, + className: clsx(ModelSelect_module_css_default.option, selected && ModelSelect_module_css_default.selected), + title: model.name, + disabled: busy, + onClick: () => { + choose({ + provider: group.id, + model: model.id + }); + }, + children: [(0, react_jsx_runtime.jsxs)("span", { + className: ModelSelect_module_css_default.optionCopy, + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.modelName, + children: model.name + }), model.description !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.description, + children: model.description + })] + }), (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.check, + children: selected ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, {}) : null + })] + }, model.id); + })] + }, group.id); + }) + }), + state.status === "ready" && choices.length === 0 && (0, react_jsx_runtime.jsx)("div", { + className: ModelSelect_module_css_default.empty, + children: t("empty.models") + }) + ] }), + pane === "effort" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [state.error !== null && lastActionRef.current === "load" && (0, react_jsx_runtime.jsxs)("div", { + className: ModelSelect_module_css_default.error, + children: [(0, react_jsx_runtime.jsx)("span", { children: t("error.action", { message: state.error }) }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: ModelSelect_module_css_default.retry, + onClick: reload, + children: t("action.reload") + })] + }), effortChoices.length === 0 ? (0, react_jsx_runtime.jsx)("div", { + className: ModelSelect_module_css_default.empty, + children: t("empty.efforts") + }) : effortChoices.map((level) => (0, react_jsx_runtime.jsxs)("button", { + ref: itemRef(), + type: "button", + role: "menuitemradio", + "aria-checked": effectiveEffort === level.effort, + className: clsx(ModelSelect_module_css_default.option, effectiveEffort === level.effort && ModelSelect_module_css_default.selected), + disabled: busy, + onClick: () => { + chooseEffort(level.effort); + }, + children: [(0, react_jsx_runtime.jsxs)("span", { + className: ModelSelect_module_css_default.optionCopy, + children: [(0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.modelName, + children: level.label + }), level.description !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.description, + children: level.description + })] + }), (0, react_jsx_runtime.jsx)("span", { + className: ModelSelect_module_css_default.check, + children: effectiveEffort === level.effort ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, {}) : null + })] + }, level.key))] }) + ] + }), + toast !== null && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Toast, { + text: toast.text, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, {}), + anchor: rootRef.current?.closest("[data-composer-card]") ?? null, + onDone: () => { + setToast(null); + } + }, toast.seq) + ] + }); + } + //#endregion + //#region lib/types/client/locales.js + /** + * `model` namespace dictionaries. + * + * `trigger.selectAria` reads identically to `trigger.fallback` today and is + * still a separate key: the visible fallback label and the accessible name of + * an unset trigger are free to diverge per locale, and folding it into + * `trigger.aria` would announce the degenerate "Select model, current Select + * model". + */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "command.description": "选择本会è¯�使用的模型", + "option.loadError": "目录加载失败:{message}", + "trigger.fallback": "选择模型", + "trigger.selectAria": "选择模型", + "trigger.aria": "选择模型,当å‰� {model}", + "trigger.ariaEffort": "选择模型,当å‰� {model},推ç�†ç­‰çº§ {effort}", + "menu.aria": "模型与推ç�†ç­‰çº§", + "menu.model": "模型", + "menu.effort": "推ç�†ç­‰çº§", + "effort.providerDefault": "Default", + "status.loading": "正在刷新模型列表…", + "error.action": "模型æ“�作失败:{message}", + "action.reload": "é‡�新加载", + "warning.groupLoad": "{name} 加载失败:{message}", + "empty.models": "没有å�¯ç”¨çš„æ¨¡åž‹ã€‚", + "blocked.composer": "当å‰�模型ä¸�å�¯ç”¨ï¼Œè¯·å…ˆé€‰æ‹©æ¨¡åž‹", + "empty.efforts": "当å‰�模型未æ��供推ç�†ç­‰çº§ã€‚" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "command.description": "Select the model for this conversation", + "option.loadError": "Catalog failed to load: {message}", + "trigger.fallback": "Select model", + "trigger.selectAria": "Select model", + "trigger.aria": "Select model, current {model}", + "trigger.ariaEffort": "Select model, current {model}, reasoning effort {effort}", + "menu.aria": "Model and reasoning effort", + "menu.model": "Model", + "menu.effort": "Effort", + "effort.providerDefault": "Default", + "status.loading": "Refreshing model list…", + "error.action": "Model operation failed: {message}", + "action.reload": "Reload", + "warning.groupLoad": "{name} failed to load: {message}", + "empty.models": "No models available.", + "blocked.composer": "This model is unavailable — select one to continue", + "empty.efforts": "This model provides no reasoning effort levels." + }; + //#endregion + //#region lib/types/client/index.js + /** One selectable row's id: an opaque row key (resolved by lookup, never parsed). */ + function rowId(providerId, modelId) { + return `${providerId}/${modelId}`; + } + /** Flatten the directory into popup rows; failure rows are listed for visibility but never selectable. */ + function optionsOf(directory, t) { + const rows = []; + for (const group of directory.groups) for (const model of group.models) rows.push({ + id: rowId(group.id, model.id), + label: model.name, + detail: model.description !== void 0 ? `${group.name} · ${model.description}` : group.name, + ...directory.current.provider === group.id && directory.current.model === model.id ? { active: true } : {} + }); + for (const failure of directory.failures) rows.push({ + id: `failure/${failure.id}`, + label: failure.name, + detail: t("option.loadError", { message: failure.message }) + }); + return rows; + } + /** + * Resolve a picked row back to its model selection by matching against the loaded + * groups (the same data the rows were built from — ids stay opaque). + * @param state - the session's directory snapshot. + * @param id - the picked row id. + * @returns the row's model selection, or undefined for failure rows / stale ids. + */ + function selectionOf(state, id) { + for (const group of state.groups) for (const model of group.models) { + if (rowId(group.id, model.id) !== id) continue; + const reasoningEffort = state.current?.provider === group.id && state.current.model === model.id ? state.current?.reasoningEffort ?? model.reasoning?.defaultEffort : model.reasoning?.defaultEffort; + return { + provider: group.id, + model: model.id, + ...reasoningEffort === void 0 ? {} : { reasoningEffort } + }; + } + } + /** Dictionary namespace owned by this plugin. */ + const NS = "model"; + /** Required services: the contribution registry, the seat's slot registry, locale, and the service's own faces. */ + const inject = [ + "commandUi", + "connection", + "locale", + "sessions", + "slots", + "remote" + ]; + /** + * Client plugin body: mount ModelDirectoryResolver, register the `model` dictionaries, + * then register the /model popup contribution and the composer model seat + * over the service. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-model-selection: dictionaries"); + const t = ctx.locale.bind(NS); + ctx.plugin(ModelDirectoryResolver, { blockReason: () => t("blocked.composer") }); + ctx.inject(["commandUi", "modelDirectories"], (scope) => { + const command = scope.get("commandUi"); + const models = scope.modelDirectories; + const sessions = scope.sessions; + scope.effect(() => command.register({ + name: "model", + description: t("command.description"), + available: (session) => sessions.subagentAddress(session.sessionId) === void 0, + ui: { + kind: "popupSelect", + options: async (session) => { + if (sessions.subagentAddress(session.sessionId) !== void 0) throw new Error("model selection is unavailable for addressed subagent sessions"); + return optionsOf(await models.directoryFor(session.sessionId).load(), t); + }, + onSelect: async (option, session) => { + if (sessions.subagentAddress(session.sessionId) !== void 0) throw new Error("model selection is unavailable for addressed subagent sessions"); + const directory = models.directoryFor(session.sessionId); + const selection = selectionOf(directory.store.getSnapshot(), option.id); + if (selection === void 0) throw new Error("this provider's catalog failed to load — pick a model from a loaded group"); + await directory.select(selection); + } + } + }), "ui-model-selection: /model contribution"); + }); + ctx.inject(["slots", "modelDirectories"], (scope) => { + const models = scope.modelDirectories; + const sessions = scope.sessions; + scope.slots.inject("conversation.input.model", () => scope.slots.register({ + name: "conversation.input.model", + locale: NS, + inject: (sessionId) => { + const directory = models.directoryFor(sessionId); + const available = sessions.subagentAddress(sessionId) === void 0; + return { + available, + directory: directory.store, + load: () => { + if (available) directory.load().catch(() => {}); + }, + select: (selection) => available ? directory.select(selection).then(() => true, () => false) : Promise.resolve(false) + }; + } + }, ModelSelect)); + }); + } + //#endregion + exports.ModelDirectory = ModelDirectory; + exports.ModelDirectoryResolver = ModelDirectoryResolver; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001e b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001e new file mode 100644 index 0000000..9f92ac8 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001e @@ -0,0 +1,1725 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-agent-preset", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region lib/types/client/locales.js + /** Locale bundles for the agent-preset settings row, hero chip, header label, and management section. */ + /** English copy. */ + const en = { + title: "Agent preset", + description: "Applies to sessions you start from now on. Running sessions keep the preset they began with.", + loading: "Loading presets…", + error: "Could not load agent presets.", + userTrust: "Custom", + seatHint: "Agent preset for the session you are about to start", + headerHint: "The agent preset this session runs, fixed when it started", + nav: "Agent presets", + sectionIntro: "A preset is the plugin composition one session's agent runs — its tools, prompt, and capabilities. Duplicate an existing one and make it yours, or let the agent draft one for you in Creator mode.", + builtIn: "Built-in", + setDefault: "Set as default", + view: "View", + presetStandardName: "Standard mode", + presetStandardDescription: "Full coding agent with file editing, shell, file and web search, skills, planning, goals, subagents, and workflows.", + presetCodeName: "Code mode", + presetCodeDescription: "All Standard mode capabilities, with tools exposed through the Code Mode SDK so the model can combine multi-step operations in one TypeScript program.", + presetMinimalName: "Minimal mode", + presetMinimalDescription: "Two-tool coding agent with persistent bash and str_replace_editor.", + presetCordisName: "Creator mode", + presetCordisDescription: "Built for creating custom agent presets, with all Standard mode capabilities plus runtime inspection, plugin experiments, and preset-authoring guidance.", + duplicate: "Duplicate", + duplicateUnavailable: "This deployment has no writable preset directory", + delete: "Delete", + presetId: "Identifier", + presetIdPlaceholder: "my-agent", + displayName: "Name", + displayNamePlaceholder: "Shown in the picker; defaults to the identifier", + inUse: "In use", + builtInGroup: "Built-in", + customGroup: "Custom", + noDescription: "No description.", + brokenBadge: "Failed to load", + brokenNoCopy: "A preset that failed to load cannot be duplicated", + copyOf: "Copied from", + composition: "Composition (agent.cordis.yml)", + cancel: "Cancel", + close: "Close", + retry: "Retry", + copyTitle: "Duplicate preset", + copyIntro: "The whole preset is copied on this machine. The identifier becomes its directory name and cannot be changed later; everything else is edited in the preset's own files.", + create: "Create", + creating: "Creating…", + creatorDraft: "Draft a custom preset with Creator mode", + openLocation: "Open folder", + showLocation: "Show location", + revealedPathLabel: "Preset files:", + idRequired: "Give the preset an identifier.", + idInvalid: "Use lowercase letters, digits, and hyphens, starting with a letter or digit.", + idTaken: "A preset with this identifier already exists.", + deleteTitle: "Delete this preset?", + deleteDescription: "The preset directory is deleted. Sessions already running on it keep working; new sessions cannot select it.", + deleteConfirm: "Delete", + deleting: "Deleting…" + }; + /** Simplified Chinese copy. */ + const zh = { + title: "Agent 预设", + description: "对此å�Žæ–°å»ºçš„会è¯�生效。è¿�行中的会è¯�ä¿�æŒ�它开始时的预设。", + loading: "正在加载预设…", + error: "无法加载 Agent 预设。", + userTrust: "自定义", + seatHint: "å�³å°†å¼€å§‹çš„这个会è¯�所用的 Agent 预设", + headerHint: "本会è¯�è¿�行的 Agent 预设,开始时å�³å›ºå®š", + nav: "Agent 预设", + sectionIntro: "预设å�³ä¸€ä¸ªä¼šè¯�çš„ Agent 所è¿�行的æ�’件组装 —— 它的工具ã€�æ��示è¯�与能力。å¤�制一份既有预设改æˆ�自己的,或用「创造模å¼�ã€�让 Agent 帮你创建。", + builtIn: "内置", + setDefault: "设为默认", + view: "查看", + presetStandardName: "标准模å¼�", + presetStandardDescription: "功能完整的编ç � Agent,支æŒ�文件编辑ã€�Shellã€�文件与网页检索ã€�Skillsã€�计划ã€�目标ã€�å­�代ç�†å’Œå·¥ä½œæµ�。", + presetCodeName: "PTC 模å¼�", + presetCodeDescription: "具备标准模å¼�的全部能力,并通过 Code Mode SDK 呈现工具,让模型用一个 TypeScript 程åº�组å�ˆå¤šæ­¥æ“�作。", + presetMinimalName: "æž�简模å¼�", + presetMinimalDescription: "ä»…æ��ä¾›æŒ�ä¹… bash 与 str_replace_editor çš„å�Œå·¥å…·ç¼–ç � Agent。", + presetCordisName: "创造模å¼�", + presetCordisDescription: "用于创建自定义 Agent preset:具备标准模å¼�的全部能力,并æ��ä¾›è¿�行时检查ã€�æ�’件实验和 preset 创作指导。", + duplicate: "å¤�制", + duplicateUnavailable: "此部署未é…�ç½®å�¯å†™çš„预设目录", + delete: "删除", + presetId: "标识符", + presetIdPlaceholder: "my-agent", + displayName: "å��ç§°", + displayNamePlaceholder: "选择器中显示的å��字,缺çœ�用标识符", + inUse: "当å‰�使用", + builtInGroup: "内置", + customGroup: "自定义", + noDescription: "暂无æ��述。", + brokenBadge: "加载失败", + brokenNoCopy: "预设加载失败,ä¸�能å¤�制", + copyOf: "å¤�制自", + composition: "组装(agent.cordis.yml)", + cancel: "å�–消", + close: "关闭", + retry: "é‡�试", + copyTitle: "å¤�制预设", + copyIntro: "整个预设会在本机å¤�制一份。标识符将æˆ�为目录å��,事å�Žæ— æ³•更改;其余内容之å�Žç›´æŽ¥åœ¨é¢„设自己的文件里编辑。", + create: "创建", + creating: "正在创建…", + creatorDraft: "用「创造模å¼�ã€�创作自定义预设", + openLocation: "打开目录", + showLocation: "查看路径", + revealedPathLabel: "预设文件:", + idRequired: "请填写标识符。", + idInvalid: "å�ªèƒ½ä½¿ç”¨å°�写字æ¯�ã€�数字与连字符,且以字æ¯�或数字开头。", + idTaken: "该标识符已被å� ç”¨ã€‚", + deleteTitle: "删除该预设?", + deleteDescription: "预设目录将被删除。已在其上è¿�行的会è¯�ä¸�å�—å½±å“�;新会è¯�将无法å†�选择它。", + deleteConfirm: "删除", + deleting: "正在删除…" + }; + const BUILT_IN_PRESET_KEYS = { + standard: { + name: "presetStandardName", + description: "presetStandardDescription" + }, + code: { + name: "presetCodeName", + description: "presetCodeDescription" + }, + minimal: { + name: "presetMinimalName", + description: "presetMinimalDescription" + }, + cordis: { + name: "presetCordisName", + description: "presetCordisDescription" + } + }; + /** + * Resolve preset display copy without making user-authored metadata translatable. + * @param preset - roster row whose copy is being rendered. + * @param t - active Web locale lookup. + * @returns localized copy for a known shipped preset, otherwise file metadata. + */ + function presetDisplayText(preset, t) { + const keys = preset.trust === "system" ? BUILT_IN_PRESET_KEYS[preset.id] : void 0; + if (keys !== void 0) return { + name: t(keys.name), + description: t(keys.description) + }; + return { + name: preset.name ?? preset.id, + ...preset.description === void 0 ? {} : { description: preset.description } + }; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-agent-preset/src/client/AgentPresetLabel.module.css.mjs + const css$3 = ".SVAs4q_label{background:var(--dsw-alias-fill-tsp-secondary);max-width:180px;height:22px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;padding:0 2px 0 0;font-size:12px;line-height:22px;display:inline-flex;overflow:hidden}.SVAs4q_icon{opacity:.7;flex:none}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetLabel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-agent-preset"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var AgentPresetLabel_module_css_default = { + "icon": "SVAs4q_icon", + "label": "SVAs4q_label" + }; + //#endregion + //#region lib/types/client/AgentPresetLabel.js + /** + * The session header's agent-preset label. + * + * Read-only by construction: a session's composition is fixed once its + * conversation starts, and a header is only worth reading after that. Offering + * a control here would promise a switch the host refuses; naming what the + * session runs is the honest affordance, and the choice itself lives on the + * new-session screen ({@link AgentPresetSeat}). + */ + /** + * Render this session's agent-preset name beside its title. + * @param props - composed slot props. + * @returns the label, or null when the session records no preset. + */ + function AgentPresetLabel({ sessionId, useSessions, useAgentPresets, load, t }) { + const preset = useSessions((state) => state.byId[sessionId]?.agentPreset); + const options = useAgentPresets((state) => state.options); + (0, react.useEffect)(() => { + if (preset !== void 0) load(); + }, [preset, load]); + if (preset === void 0) return null; + const option = options.find((entry) => entry.id === preset); + const text = option === void 0 ? void 0 : presetDisplayText(option, t); + return (0, react_jsx_runtime.jsxs)("span", { + className: AgentPresetLabel_module_css_default.label, + title: text?.description ?? t("headerHint"), + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconAgentPresetOutline16, { + size: 14, + className: AgentPresetLabel_module_css_default.icon + }), text?.name ?? preset] + }); + } + //#endregion + //#region lib/types/client/PresetMenu.js + /** + * The preset picker both surfaces render: a menu of presets over a button + * naming the current one. + * + * The settings row and the composer seat differ in where they sit, what they + * call the current value, and when they refuse a pick — not in how the picker + * itself behaves. Trust is the one thing the list always says: a locally + * authored preset is exactly as privileged as the plugins it names, so the + * label marks it rather than presenting every preset as shipped and vetted. + */ + /** + * Render the preset picker. + * @param props - the calling surface's copy, styling, and handlers. + * @returns the menu and its trigger. + */ + function PresetMenu({ options, selectedId, label, t, buttonClassName, chevronClassName, disabled, open, onOpenChange, onSelect }) { + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + onOpenChange(false); + }, + items: options.map((option) => { + const name = presetDisplayText(option, t).name; + return { + id: option.id, + label: option.trust === "user" ? `${name} · ${t("userTrust")}` : name + }; + }), + selectedId, + onSelect: (id) => { + onOpenChange(false); + onSelect(id); + }, + align: "end", + portal: true, + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: buttonClassName, + "aria-haspopup": "menu", + "aria-expanded": open, + disabled, + onClick: () => { + onOpenChange(!open); + }, + children: [label, (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: chevronClassName })] + }) + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-agent-preset/src/client/AgentPresetRow.module.css.mjs + const css$2 = "._5QVD0a_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}._5QVD0a_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}._5QVD0a_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}._5QVD0a_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}._5QVD0a_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._5QVD0a_selector:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._5QVD0a_selector:disabled{cursor:default}._5QVD0a_chevron{flex:none}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetRow.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-agent-preset"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var AgentPresetRow_module_css_default = { + "row": "_5QVD0a_row", + "title": "_5QVD0a_title", + "rowText": "_5QVD0a_rowText", + "desc": "_5QVD0a_desc", + "chevron": "_5QVD0a_chevron", + "selector": "_5QVD0a_selector" + }; + //#endregion + //#region lib/types/client/AgentPresetRow.js + /** + * Agent-preset preference row: the preset new sessions are composed from. + * A running session keeps the composition it began with, so this row never + * disturbs work in progress. + */ + /** + * Render the new-session agent-preset selector. + * @param props - composed slot props. + * @returns the row, or null when the deployment composes no presets. + */ + function AgentPresetRow({ load, select, useAgentPreset, t }) { + const state = useAgentPreset((snapshot) => snapshot); + const [open, setOpen] = (0, react.useState)(false); + (0, react.useEffect)(() => { + load(); + }, [load]); + (0, react.useEffect)(() => { + if (state.writable && state.status !== "unavailable") return; + setOpen(false); + }, [state.status, state.writable]); + if (state.status === "unavailable") return null; + const busy = state.status === "loading" || state.status === "saving"; + const chosen = state.options.find((option) => option.id === state.currentValue); + const chosenText = chosen === void 0 ? void 0 : presetDisplayText(chosen, t); + const label = state.currentValue === "" ? t("loading") : chosenText?.name ?? state.currentValue; + const description = state.error ?? t("description"); + return (0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetRow_module_css_default.row, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetRow_module_css_default.rowText, + children: [(0, react_jsx_runtime.jsx)("div", { + className: AgentPresetRow_module_css_default.title, + children: t("title") + }), (0, react_jsx_runtime.jsx)("div", { + className: AgentPresetRow_module_css_default.desc, + role: state.error === null ? void 0 : "alert", + children: description + })] + }), (0, react_jsx_runtime.jsx)(PresetMenu, { + options: state.options, + selectedId: state.currentValue, + label, + t, + buttonClassName: AgentPresetRow_module_css_default.selector, + chevronClassName: AgentPresetRow_module_css_default.chevron, + disabled: busy || !state.writable || state.options.length === 0, + open, + onOpenChange: setOpen, + onSelect: (id) => { + select(id); + } + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-agent-preset/src/client/AgentPresetSeat.module.css.mjs + const css$1 = ".cubgiG_seat{max-width:min(100%,240px);min-height:28px;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex;overflow:hidden}.cubgiG_seat:not(:disabled):hover,.cubgiG_seat[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.cubgiG_seat:disabled{cursor:default;color:var(--dsw-alias-label-quaternary)}.cubgiG_seatIcon{color:var(--dsw-alias-label-primary);flex:none}.cubgiG_introIcon{animation:.15s cubic-bezier(.16,1,.3,1) both cubgiG_seat-icon-in}@keyframes cubgiG_seat-icon-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.cubgiG_introText{white-space:pre;display:inline-block}.cubgiG_introChar{white-space:pre;opacity:0;animation:.4s ease-out forwards cubgiG_seat-char-in;display:inline-block}@keyframes cubgiG_seat-char-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cubgiG_introIcon,.cubgiG_introChar{opacity:1;animation:none}}.cubgiG_chevron{color:var(--dsw-alias-label-caption);flex:none}.cubgiG_item{flex-direction:column;gap:2px;max-width:280px;display:flex}.cubgiG_itemName{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.cubgiG_itemDesc{color:var(--dsw-alias-label-caption);white-space:normal;font-size:12px;line-height:16px}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetSeat.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-agent-preset"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var AgentPresetSeat_module_css_default = { + "introChar": "cubgiG_introChar", + "chevron": "cubgiG_chevron", + "seat": "cubgiG_seat", + "seat-icon-in": "cubgiG_seat-icon-in", + "item": "cubgiG_item", + "seat-char-in": "cubgiG_seat-char-in", + "introIcon": "cubgiG_introIcon", + "itemDesc": "cubgiG_itemDesc", + "seatIcon": "cubgiG_seatIcon", + "introText": "cubgiG_introText", + "itemName": "cubgiG_itemName" + }; + //#endregion + //#region lib/types/client/AgentPresetSeat.js + /** + * The agent-preset chip on the new-session screen, beside the workspace + * picker. + * + * It lives here rather than in the composer because the choice is only + * available before a conversation starts: once a turn has run, the session's + * history was produced under that preset's tools and the host refuses to swap + * them. A control that spends most of its life disabled belongs on the screen + * where it still works. + * + * The menu opens on the staged choice, which starts as the deployment default. + * Picking stages; the choice reaches a session when one becomes current. + */ + const INTRO_TEXT_DELAY_MS = 150; + const INTRO_CHAR_STAGGER_MS = 40; + const INTRO_TEXT_REVEAL_MS = 200; + const INTRO_CHAR_FADE_MS = 400; + /** + * Per-character start offset for the introduce reveal. + * @param count - character count of the shown preset name. + * @returns milliseconds between successive character starts. + */ + function introStaggerMs(count) { + if (count <= 1) return 0; + return Math.min(INTRO_CHAR_STAGGER_MS, INTRO_TEXT_REVEAL_MS / (count - 1)); + } + /** + * Render the new-session agent-preset chip. + * @param props - composed slot props. + * @returns the chip, or null when the deployment composes no presets. + */ + function AgentPresetSeat({ load, select, introduced, useAgentPresetSeat, t }) { + const state = useAgentPresetSeat((snapshot) => snapshot); + const [open, setOpen] = (0, react.useState)(false); + (0, react.useEffect)(() => { + load(); + }, [load]); + const chosen = state.options.find((option) => option.id === state.current); + const label = (chosen === void 0 ? void 0 : presetDisplayText(chosen, t))?.name ?? state.current; + const ready = state.options.length > 0 && state.current !== ""; + const [introducing, setIntroducing] = (0, react.useState)(false); + (0, react.useEffect)(() => { + if (!state.introduce || !ready) return; + const characters = Array.from(label); + if (characters.length === 0 || window.matchMedia("(prefers-reduced-motion: reduce)").matches) { + introduced(); + return; + } + setIntroducing(true); + const done = window.setTimeout(() => { + setIntroducing(false); + introduced(); + }, INTRO_TEXT_DELAY_MS + (characters.length - 1) * introStaggerMs(characters.length) + INTRO_CHAR_FADE_MS); + return () => { + window.clearTimeout(done); + }; + }, [ + state.introduce, + ready, + label, + introduced + ]); + if (!ready) return null; + const characters = Array.from(label); + const stagger = introStaggerMs(characters.length); + const shownLabel = introducing ? (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSeat_module_css_default.introText, + children: characters.map((character, index) => (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSeat_module_css_default.introChar, + style: { animationDelay: `${INTRO_TEXT_DELAY_MS + index * stagger}ms` }, + children: character + }, index)) + }) : label; + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, { + open, + onClose: () => { + setOpen(false); + }, + items: state.options.map((option) => { + const text = presetDisplayText(option, t); + return { + id: option.id, + label: (0, react_jsx_runtime.jsxs)("span", { + className: AgentPresetSeat_module_css_default.item, + children: [(0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSeat_module_css_default.itemName, + children: text.name + }), (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSeat_module_css_default.itemDesc, + children: text.description ?? t("noDescription") + })] + }) + }; + }), + selectedId: state.current, + onSelect: (id) => { + setOpen(false); + select(id); + }, + align: "start", + portal: true, + anchor: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: AgentPresetSeat_module_css_default.seat, + "aria-haspopup": "menu", + "aria-expanded": open, + title: state.error ?? t("seatHint"), + disabled: state.busy, + onClick: () => { + setOpen((value) => !value); + }, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconAgentPresetOutline16, { className: introducing ? `${AgentPresetSeat_module_css_default.seatIcon} ${AgentPresetSeat_module_css_default.introIcon}` : AgentPresetSeat_module_css_default.seatIcon }), + shownLabel, + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: AgentPresetSeat_module_css_default.chevron }) + ] + }) + }); + } + //#endregion + //#region lib/types/client/settings-store.js + /** + * Agent-preset default-settings controller. + * + * Options and the current default both come from one `agentPreset.list` call: + * the roster already reports which id a session with no explicit choice gets, + * so the row needs no schema introspection. Writes target the settings + * namespace's `default` field, which is what the host resolves at creation. + */ + /** The agent-preset settings namespace on the host wire. */ + const AGENT_PRESET_SETTINGS_NS = "agent-presets"; + /** + * Human text for a rejected wire call. A transport failure rejects with an + * Error; a host or a runtime can reject with anything, and the surface still + * has to say something. + * @param error - the rejection value. + * @returns the message to show. + */ + function messageOf(error) { + return error instanceof Error ? error.message : String(error); + } + /** + * Persist one preset as the default for sessions created later. + * + * The default is a settings field rather than a preset property, so both the + * General row and the management section write it here — one home for which + * namespace and field the host resolves at session creation. + * @param api - the settings wire face. + * @param id - the preset to make default. + * @returns the failure message, or undefined once the write landed. + */ + async function writeDefaultPreset(api, id) { + let response; + try { + response = await api.settings.update({ + ns: AGENT_PRESET_SETTINGS_NS, + patch: { default: id } + }); + } catch (error) { + return messageOf(error); + } + return response.result.ok ? void 0 : response.result.error.message; + } + /** + * Read the roster, folding both refusal shapes into one message. + * + * The wire refuses in two ways — the transport rejects, or it answers an + * `ok: false` envelope — and every surface treats them identically. Folding + * them here keeps each store's `load` about what it does with a roster rather + * than about how the call can fail. + * @param api - the agent-preset wire face. + * @returns the roster, or the message to show in its place. + */ + async function readRoster(api) { + try { + const response = await api.agentPresets.list({}); + return response.result.ok ? { + ok: true, + value: response.result.value + } : { + ok: false, + error: response.result.error.message + }; + } catch (error) { + return { + ok: false, + error: messageOf(error) + }; + } + } + /** + * The opening move every roster-backed surface makes: refuse a read that is + * already in flight, mark the store loading, then read. + * + * A surface that gets `undefined` returns without touching its snapshot + * further — either another read owns it, or this one already wrote the + * failure. What differs between surfaces starts after this. + * @param api - the agent-preset wire face. + * @param store - the surface's own snapshot store. + * @returns the roster, or undefined when the caller should return. + */ + async function beginRosterRead(api, store) { + const before = store.getSnapshot(); + if (before.status === "loading") return void 0; + store.set({ + ...before, + status: "loading", + error: null + }); + const roster = await readRoster(api); + if (roster.ok) return roster.value; + store.set({ + ...store.getSnapshot(), + status: "error", + error: roster.error + }); + } + /** + * The roster entries as the pickers render them: healthy presets only. + * + * The chip and the row exist to choose the NEXT session's composition, and a + * broken preset cannot compose one — offering it would defer the discovery + * of that fact to a failed session start. The management section renders the + * full roster (broken rows included) from its own store instead. + * + * The chip, the row, and the management section all show the same facts, and + * `exactOptionalPropertyTypes` makes "absent" and "present as undefined" + * different shapes — so the spread dance belongs in one place rather than + * once per store. + * @param presets - the roster the host answered with. + * @returns one option per selectable preset, in roster order. + */ + function presetOptions(presets) { + return presets.filter((preset) => preset.broken === void 0).map((preset) => ({ + id: preset.id, + trust: preset.trust, + ...preset.name === void 0 ? {} : { name: preset.name }, + ...preset.description === void 0 ? {} : { description: preset.description } + })); + } + const INITIAL$2 = { + status: "idle", + error: null, + writable: true, + currentValue: "", + options: [] + }; + /** Reads the roster and persists the chosen default. */ + var AgentPresetSettingsController = class { + api; + /** Row snapshot the renderer subscribes to. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(INITIAL$2); + constructor(api) { + this.api = api; + } + set(patch) { + this.store.set({ + ...this.store.getSnapshot(), + ...patch + }); + } + /** + * Load the roster. An empty roster means the deployment composes no + * presets, which is a valid deployment rather than a failure — the row + * reports `unavailable` and renders nothing. + * @returns once the snapshot reflects the host. + */ + async load() { + const roster = await beginRosterRead(this.api, this.store); + if (roster === void 0) return; + const { presets } = roster; + const [first] = presets; + if (first === void 0) { + this.set({ + status: "unavailable", + options: [], + currentValue: "" + }); + return; + } + try { + const described = await this.api.settings.describe({}); + this.set({ + status: "ready", + error: null, + writable: described.result.ok && described.result.value.writable, + options: presetOptions(presets), + currentValue: presets.find((preset) => preset.isDefault)?.id ?? first.id + }); + } catch (error) { + this.set({ + status: "error", + error: messageOf(error) + }); + } + } + /** + * Persist one preset as the default for sessions created later. Running + * sessions keep the composition they were created with, so this never + * disturbs work in progress. + * @param id - the preset to make default. + * @returns once the write settled and the roster was re-read. + */ + async select(id) { + const before = this.store.getSnapshot(); + if (before.status === "saving" || id === before.currentValue) return; + this.set({ + status: "saving", + error: null, + currentValue: id + }); + const failure = await writeDefaultPreset(this.api, id); + if (failure !== void 0) { + this.set({ + status: "ready", + currentValue: before.currentValue, + error: failure + }); + return; + } + await this.load(); + } + }; + //#endregion + //#region lib/types/client/section-store.js + /** + * Agent-preset management controller: the roster as a list, a copy dialog as + * the only way a preset is created, and a read-only viewer over the shipped + * compositions. + * + * The browser edits no composition text. A new preset is a host-side copy of + * an existing one (`{ from, id, name? }` is all that crosses the wire), and + * everything after creation happens in the preset's own files — which is why + * the page's other job is getting the user TO those files: open the directory + * where the host has a desktop, show its path where it does not. + * + * The host stays the single fact source. Every mutation writes through the + * wire and the page re-reads the roster afterwards, because a copy changes + * more than the row it targeted. + */ + /** Ids a preset directory may be named, mirroring the host's own rule. */ + const PRESET_ID = /^[a-z0-9][a-z0-9-]*$/; + const INITIAL$1 = { + status: "idle", + error: null, + authorable: false, + hasDocument: false, + rows: [], + copy: null, + view: null, + pendingDelete: null, + deleting: false, + revealedPaths: {} + }; + /** + * Why this copy cannot be submitted yet, as a locale key, or undefined when + * it can. Client-side only: the host re-checks the id and its answer is what + * the dialog reports on failure. + * @param draft - the open copy dialog. + * @param rows - the roster, for the collision check. + * @returns the blocking reason's locale key, or undefined when submittable. + */ + function draftBlocker(draft, rows) { + if (draft.id === "") return "idRequired"; + if (!PRESET_ID.test(draft.id)) return "idInvalid"; + if (rows.some((row) => row.id === draft.id)) return "idTaken"; + } + /** Reads the roster and drives the copy dialog, viewer, and location reveals. */ + var AgentPresetSectionController = class { + api; + rosterChanged; + /** Page snapshot the renderer subscribes to. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(INITIAL$1); + constructor(api, rosterChanged = () => {}) { + this.api = api; + this.rosterChanged = rosterChanged; + } + set(patch) { + this.store.set({ + ...this.store.getSnapshot(), + ...patch + }); + } + patchCopy(patch) { + const { copy } = this.store.getSnapshot(); + if (copy === null) return; + this.set({ copy: { + ...copy, + ...patch + } }); + } + /** + * Load the roster. An empty roster means the deployment composes no + * presets, which is a valid deployment rather than a failure — the section + * reports `unavailable` and renders nothing. + * @returns once the snapshot reflects the host. + */ + async load() { + const roster = await beginRosterRead(this.api, this.store); + if (roster === void 0) return; + const { presets, authorable, hasDocument } = roster; + if (presets.length === 0) { + this.set({ + status: "unavailable", + rows: [], + authorable, + hasDocument, + copy: null, + view: null + }); + return; + } + const revealed = this.store.getSnapshot().revealedPaths; + const kept = Object.fromEntries(Object.entries(revealed).filter(([id]) => presets.some((preset) => preset.id === id))); + this.set({ + status: "ready", + error: null, + authorable, + hasDocument, + rows: presets.map((preset) => ({ ...preset })), + revealedPaths: kept + }); + } + /** + * Open one shipped preset's composition in the read-only viewer. + * @param id - the preset to view. + * @returns once the composition loaded or the failure is on the page. + */ + async view(id) { + this.set({ error: null }); + try { + const response = await this.api.agentPresets.read({ agentPreset: id }); + if (!response.result.ok) { + this.set({ error: response.result.error.message }); + return; + } + const { name, content } = response.result.value; + this.set({ view: { + id, + title: name ?? id, + content + } }); + } catch (error) { + this.set({ error: messageOf(error) }); + } + } + /** Close the read-only viewer. */ + closeView() { + this.set({ view: null }); + } + /** + * Open the copy dialog over one preset. + * @param from - the preset the copy will start from. + */ + beginCopy(from) { + const row = this.store.getSnapshot().rows.find((candidate) => candidate.id === from); + this.set({ + error: null, + copy: { + from, + fromTitle: row?.name ?? from, + id: "", + name: "", + saving: false, + error: null + } + }); + } + /** Close the copy dialog, discarding whatever was typed. */ + cancelCopy() { + this.set({ copy: null }); + } + /** + * Name the preset the copy creates. + * @param id - the id typed into the dialog. + */ + setCopyId(id) { + this.patchCopy({ + id, + error: null + }); + } + /** + * Name the copy's display name. + * @param name - the display name typed into the dialog. + */ + setCopyName(name) { + this.patchCopy({ + name, + error: null + }); + } + /** + * Submit the copy, re-read the roster, then take the user to the new + * preset's files — the directory opens where the host has a desktop, and + * its path appears on the new row where it does not. + * @returns once the copy settled and the page reflects it. + */ + async confirmCopy() { + const draft = this.store.getSnapshot().copy; + if (draft === null || draft.saving) return; + if (draftBlocker(draft, this.store.getSnapshot().rows) !== void 0) return; + this.patchCopy({ + saving: true, + error: null + }); + try { + const name = draft.name.trim(); + const response = await this.api.agentPresets.copy({ + from: draft.from, + agentPreset: draft.id, + ...name === "" ? {} : { name } + }); + if (!response.result.ok) { + this.patchCopy({ + saving: false, + error: response.result.error.message + }); + return; + } + this.set({ copy: null }); + await this.load(); + this.rosterChanged(); + await this.openLocation(draft.id); + } catch (error) { + this.patchCopy({ + saving: false, + error: messageOf(error) + }); + } + } + /** + * Open one preset's directory on the host desktop, or reveal its path on + * the row where the deployment has no opener to hand it to. + * @param id - the preset whose files the user wants. + * @returns once the host answered and the page reflects it. + */ + async openLocation(id) { + try { + const response = await this.api.agentPresets.openDocument({ agentPreset: id }); + if (!response.result.ok) { + this.set({ error: response.result.error.message }); + return; + } + if (response.result.value.opened) return; + const { path } = response.result.value; + this.set({ revealedPaths: { + ...this.store.getSnapshot().revealedPaths, + [id]: path + } }); + } catch (error) { + this.set({ error: messageOf(error) }); + } + } + /** + * Ask for confirmation before deleting one preset. + * @param id - the preset to delete, or null to dismiss the confirmation. + */ + confirmDelete(id) { + if (this.store.getSnapshot().deleting) return; + this.set({ pendingDelete: id }); + } + /** + * Delete the preset awaiting confirmation, then re-read the roster. + * + * A session already composed from it keeps running: its composition was + * mounted at creation and nothing re-reads the file. + * @returns once the delete settled and the page reflects it. + */ + async remove() { + const { pendingDelete, deleting } = this.store.getSnapshot(); + if (pendingDelete === null || deleting) return; + this.set({ + deleting: true, + error: null + }); + try { + const response = await this.api.agentPresets.remove({ agentPreset: pendingDelete }); + if (!response.result.ok) { + this.set({ + deleting: false, + pendingDelete: null, + error: response.result.error.message + }); + return; + } + this.set({ + deleting: false, + pendingDelete: null + }); + await this.load(); + this.rosterChanged(); + } catch (error) { + this.set({ + deleting: false, + pendingDelete: null, + error: messageOf(error) + }); + } + } + /** + * Make one preset the default for sessions created later. Running sessions + * keep the composition they began with, so this never disturbs work. + * @param id - the preset to make default. + * @returns once the write settled and the roster was re-read. + */ + async makeDefault(id) { + const failure = await writeDefaultPreset(this.api, id); + if (failure !== void 0) { + this.set({ error: failure }); + return; + } + await this.load(); + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-agent-preset/src/client/AgentPresetSection.module.css.mjs + const css = ".rtSEdW_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.rtSEdW_title{margin:0;font-size:18px;font-weight:600}.rtSEdW_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px}.rtSEdW_group{flex-direction:column;gap:10px;display:flex}.rtSEdW_group+.rtSEdW_group{margin-top:20px}.rtSEdW_groupHead{letter-spacing:.06em;text-transform:uppercase;color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:600}.rtSEdW_cards{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));grid-auto-rows:1fr;gap:12px;margin:0;padding:0;list-style:none;display:grid}.rtSEdW_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;transition:border-color .16s,background .16s;display:flex}.rtSEdW_card:hover:not(.rtSEdW_cardActive){border-color:var(--dsw-alias-label-dimmed)}.rtSEdW_cardActive{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-primary)}.rtSEdW_cardBroken,.rtSEdW_cardBroken:hover{border-color:var(--dsw-alias-state-error-primary)}.rtSEdW_brokenBadge{white-space:nowrap;background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-bg-layer-3);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.rtSEdW_cardBrokenReason{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px;line-height:1.5}.rtSEdW_cardMain{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px 12px 0 0;flex-direction:column;flex:1;gap:8px;padding:14px 16px 12px;display:flex}.rtSEdW_cardMain:disabled{cursor:default}.rtSEdW_cardMain:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.rtSEdW_cardHead{align-items:center;gap:8px;display:flex}.rtSEdW_cardName{font-size:15px;font-weight:600;line-height:1.4}.rtSEdW_badge,.rtSEdW_inUse{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.rtSEdW_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary)}.rtSEdW_inUse{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);margin-left:auto}.rtSEdW_cardDesc{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:4;overflow-wrap:anywhere;-webkit-box-orient:vertical;min-height:42px;font-size:13px;line-height:1.55;display:-webkit-box;overflow:hidden}.rtSEdW_cardId{font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--dsw-alias-label-dimmed);margin-top:auto;font-size:11px}.rtSEdW_cardFoot{border-top:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;gap:2px;padding:6px 10px;display:flex}.rtSEdW_iconButton{appearance:none;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;padding:6px;display:inline-flex;position:relative}.rtSEdW_iconButton:disabled{opacity:.4;cursor:default}.rtSEdW_iconButton:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.rtSEdW_iconButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-1px}.rtSEdW_iconButton:after{content:attr(data-tip);background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:11px;line-height:17px;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.rtSEdW_iconButton:hover:after,.rtSEdW_iconButton:focus-visible:after{opacity:1}.rtSEdW_iconDanger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.rtSEdW_revealedPath{color:var(--dsw-alias-label-tertiary);align-items:baseline;gap:6px;margin:0;padding:6px 16px 10px;font-size:11px;display:flex}.rtSEdW_revealedPath code{font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--dsw-alias-label-secondary);user-select:all;overflow-wrap:anywhere}.rtSEdW_revealedPathLabel{white-space:nowrap}.rtSEdW_secondaryButton{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 8px;font-size:12.5px}.rtSEdW_secondaryButton:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1)}.rtSEdW_secondaryButton:disabled{opacity:.5;cursor:default}.rtSEdW_field{flex-direction:column;gap:6px;display:flex}.rtSEdW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500}.rtSEdW_input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);font:inherit;background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);border-radius:10px;padding:9px 12px;font-size:13px}.rtSEdW_input:focus{border-color:var(--dsw-alias-brand-primary);outline:none}.rtSEdW_input::placeholder{color:var(--dsw-alias-label-dimmed)}.rtSEdW_dialog{width:min(560px,100%)}.rtSEdW_dialogFields{flex-direction:column;gap:12px;display:flex}.rtSEdW_viewerCode{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-height:min(52vh,480px);color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:pre;tab-size:2;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:10px;margin:0;padding:12px;font-size:12.5px;line-height:1.5;overflow:auto}.rtSEdW_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}.rtSEdW_deleteDialog{width:min(480px,100%)}.rtSEdW_deleteConfirm:not(:disabled){border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.rtSEdW_deleteConfirm:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}.rtSEdW_creatorButton{box-sizing:border-box;border:1px dashed var(--dsw-alias-border-l3);height:44px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-self:stretch;align-items:center;gap:6px;font-size:14px;line-height:22px;display:flex}.rtSEdW_creatorButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.rtSEdW_creatorButton:disabled{opacity:.4;cursor:default}"; + const tagId = "@deepseek-ai/dsh-client-ui-agent-preset/AgentPresetSection.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-agent-preset"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var AgentPresetSection_module_css_default = { + "cardMain": "rtSEdW_cardMain", + "field": "rtSEdW_field", + "cardDesc": "rtSEdW_cardDesc", + "dialog": "rtSEdW_dialog", + "cardActive": "rtSEdW_cardActive", + "title": "rtSEdW_title", + "group": "rtSEdW_group", + "cards": "rtSEdW_cards", + "viewerCode": "rtSEdW_viewerCode", + "deleteConfirm": "rtSEdW_deleteConfirm", + "inUse": "rtSEdW_inUse", + "cardId": "rtSEdW_cardId", + "revealedPathLabel": "rtSEdW_revealedPathLabel", + "deleteDialog": "rtSEdW_deleteDialog", + "cardHead": "rtSEdW_cardHead", + "secondaryButton": "rtSEdW_secondaryButton", + "card": "rtSEdW_card", + "brokenBadge": "rtSEdW_brokenBadge", + "cardBrokenReason": "rtSEdW_cardBrokenReason", + "iconDanger": "rtSEdW_iconDanger", + "cardName": "rtSEdW_cardName", + "iconButton": "rtSEdW_iconButton", + "fieldLabel": "rtSEdW_fieldLabel", + "input": "rtSEdW_input", + "error": "rtSEdW_error", + "badge": "rtSEdW_badge", + "cardBroken": "rtSEdW_cardBroken", + "intro": "rtSEdW_intro", + "cardFoot": "rtSEdW_cardFoot", + "creatorButton": "rtSEdW_creatorButton", + "groupHead": "rtSEdW_groupHead", + "dialogFields": "rtSEdW_dialogFields", + "section": "rtSEdW_section", + "revealedPath": "rtSEdW_revealedPath" + }; + //#endregion + //#region lib/types/client/AgentPresetSection.js + /** + * Agent-presets settings section: the roster as cards, a copy dialog as the + * only way a preset is created, and a read-only viewer over the shipped + * compositions. + * + * The browser edits no composition text — a shipped preset opens read-only to + * be READ (it is the known-good composition a copy starts from), and a custom + * preset is edited in its own files, which is what the location action leads + * to. Deleting a preset leaves running sessions alone: a composition is + * mounted once at session creation and nothing re-reads the file. + */ + function CopyDialog({ state, t, actions }) { + const draft = state.copy; + const blocker = draft === null ? void 0 : draftBlocker(draft, state.rows); + const message = draft === null ? null : draft.error ?? (blocker === void 0 ? null : t(blocker)); + const source = draft === null ? void 0 : state.rows.find((row) => row.id === draft.from); + const sourceTitle = source === void 0 ? draft?.fromTitle : presetDisplayText(source, t).name; + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: draft !== null, + onClose: () => { + actions.cancelCopy(); + }, + title: draft === null ? t("copyTitle") : `${t("copyTitle")} · ${t("copyOf")} ${sourceTitle}`, + closeLabel: t("close"), + description: t("copyIntro"), + className: AgentPresetSection_module_css_default.dialog, + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + disabled: draft?.saving === true, + onClick: () => { + actions.cancelCopy(); + }, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + disabled: draft === null || draft.saving || blocker !== void 0, + onClick: () => { + actions.confirmCopy(); + }, + children: draft?.saving === true ? t("creating") : t("create") + })] }), + children: draft === null ? null : (0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetSection_module_css_default.dialogFields, + children: [ + (0, react_jsx_runtime.jsxs)("label", { + className: AgentPresetSection_module_css_default.field, + children: [(0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.fieldLabel, + children: t("presetId") + }), (0, react_jsx_runtime.jsx)("input", { + className: AgentPresetSection_module_css_default.input, + value: draft.id, + autoFocus: true, + spellCheck: false, + placeholder: t("presetIdPlaceholder"), + onChange: (event) => { + actions.setCopyId(event.target.value); + } + })] + }), + (0, react_jsx_runtime.jsxs)("label", { + className: AgentPresetSection_module_css_default.field, + children: [(0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.fieldLabel, + children: t("displayName") + }), (0, react_jsx_runtime.jsx)("input", { + className: AgentPresetSection_module_css_default.input, + value: draft.name, + spellCheck: false, + placeholder: t("displayNamePlaceholder"), + onChange: (event) => { + actions.setCopyName(event.target.value); + } + })] + }), + message === null ? null : (0, react_jsx_runtime.jsx)("p", { + className: AgentPresetSection_module_css_default.error, + role: "alert", + children: message + }) + ] + }) + }); + } + /** + * Render one card's description, clamped by CSS and offered in full on hover. + * The tooltip is attached only while the text is actually cut off, so a short + * description does not answer a hover with a bubble repeating the card. + * @param props.text - the description as rendered, already localized. + * @returns the description element, tooltip-anchored while it overflows. + */ + function CardDescription({ text }) { + const ref = (0, react.useRef)(null); + const [truncated, setTruncated] = (0, react.useState)(false); + (0, react.useLayoutEffect)(() => { + const el = ref.current; + /* v8 ignore next -- the ref is attached before layout effects run. */ + if (el === null) return; + const measure = () => { + setTruncated(el.scrollHeight > el.clientHeight); + }; + measure(); + if (typeof ResizeObserver === "undefined") return; + const observer = new ResizeObserver(measure); + observer.observe(el); + return () => { + observer.disconnect(); + }; + }, [text]); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: text, + side: "bottom", + delayMs: 400, + disabled: !truncated, + maxWidth: 360, + children: (0, react_jsx_runtime.jsx)("span", { + ref, + className: AgentPresetSection_module_css_default.cardDesc, + title: "", + children: text + }) + }); + } + /** + * Render the Agent presets section content column. + * @param props - composed slot props. + * @returns the section, or null when the deployment composes no presets. + */ + function AgentPresetSection(props) { + const { useAgentPresetSection, t, load } = props; + const state = useAgentPresetSection((snapshot) => snapshot); + const viewedId = state.view?.id; + const viewedRow = viewedId === void 0 ? void 0 : state.rows.find((row) => row.id === viewedId); + const viewedTitle = state.view === null ? "" : viewedRow === void 0 ? state.view.title : presetDisplayText(viewedRow, t).name; + (0, react.useEffect)(() => { + load(); + }, [load]); + if (state.status === "unavailable") return null; + if (state.status === "error") { + /* v8 ignore next -- an error status always carries text; the fallback satisfies the nullable type */ + const detail = state.error ?? ""; + return (0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetSection_module_css_default.section, + children: [(0, react_jsx_runtime.jsx)("p", { + className: AgentPresetSection_module_css_default.error, + role: "alert", + children: `${t("error")} ${detail}` + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: AgentPresetSection_module_css_default.secondaryButton, + onClick: () => { + load(); + }, + children: t("retry") + })] + }); + } + const creatorButton = props.startCreatorDraft !== void 0 && state.rows.some((row) => row.id === "cordis") ? (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: AgentPresetSection_module_css_default.creatorButton, + disabled: !state.authorable, + title: state.authorable ? void 0 : t("duplicateUnavailable"), + onClick: () => { + props.startCreatorDraft?.(); + props.close(); + }, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, { size: 14 }), t("creatorDraft")] + }) : null; + return (0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetSection_module_css_default.section, + children: [ + (0, react_jsx_runtime.jsx)("h2", { + className: AgentPresetSection_module_css_default.title, + children: t("nav") + }), + (0, react_jsx_runtime.jsx)("p", { + className: AgentPresetSection_module_css_default.intro, + children: t("sectionIntro") + }), + state.error === null ? null : (0, react_jsx_runtime.jsx)("p", { + className: AgentPresetSection_module_css_default.error, + role: "alert", + children: state.error + }), + [["system", t("builtInGroup")], ["user", t("customGroup")]].map(([trust, heading]) => { + const group = state.rows.filter((row) => row.trust === trust).map((row) => ({ + row, + text: presetDisplayText(row, t) + })); + const tail = trust === "user" ? creatorButton : null; + if (group.length === 0 && tail === null) return null; + return (0, react_jsx_runtime.jsxs)("section", { + className: AgentPresetSection_module_css_default.group, + children: [ + (0, react_jsx_runtime.jsx)("h3", { + className: AgentPresetSection_module_css_default.groupHead, + children: heading + }), + group.length === 0 ? null : (0, react_jsx_runtime.jsx)("ul", { + className: AgentPresetSection_module_css_default.cards, + children: group.map(({ row, text }) => (0, react_jsx_runtime.jsxs)("li", { + className: row.broken !== void 0 ? `${AgentPresetSection_module_css_default.card} ${AgentPresetSection_module_css_default.cardBroken}` : row.isDefault ? `${AgentPresetSection_module_css_default.card} ${AgentPresetSection_module_css_default.cardActive}` : AgentPresetSection_module_css_default.card, + children: [ + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: AgentPresetSection_module_css_default.cardMain, + "aria-pressed": row.isDefault, + disabled: row.isDefault || row.broken !== void 0, + "aria-label": `${row.broken !== void 0 ? t("brokenBadge") : row.isDefault ? t("inUse") : t("setDefault")}: ${text.name}`, + title: row.broken ?? (row.isDefault ? t("inUse") : t("setDefault")), + onClick: () => { + props.makeDefault(row.id); + }, + children: [ + (0, react_jsx_runtime.jsxs)("span", { + className: AgentPresetSection_module_css_default.cardHead, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.cardName, + children: text.name + }), + row.broken !== void 0 ? (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.brokenBadge, + children: t("brokenBadge") + }) : null, + (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.badge, + children: row.trust === "user" ? t("userTrust") : t("builtIn") + }), + row.isDefault ? (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.inUse, + children: t("inUse") + }) : null + ] + }), + (0, react_jsx_runtime.jsx)(CardDescription, { text: text.description ?? t("noDescription") }), + row.broken === void 0 ? null : (0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.cardBrokenReason, + role: "alert", + children: row.broken + }), + (0, react_jsx_runtime.jsx)("code", { + className: AgentPresetSection_module_css_default.cardId, + children: row.id + }) + ] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: AgentPresetSection_module_css_default.cardFoot, + children: [ + row.trust === "system" ? row.broken === void 0 ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: AgentPresetSection_module_css_default.iconButton, + "data-tip": t("view"), + "aria-label": `${t("view")}: ${text.name}`, + onClick: () => { + props.view(row.id); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, {}) + }) : null : (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: AgentPresetSection_module_css_default.iconButton, + "data-tip": state.hasDocument ? t("openLocation") : t("showLocation"), + "aria-label": `${state.hasDocument ? t("openLocation") : t("showLocation")}: ${text.name}`, + onClick: () => { + props.openLocation(row.id); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderOpenOutline16, {}) + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: AgentPresetSection_module_css_default.iconButton, + disabled: !state.authorable || row.broken !== void 0, + "data-tip": row.broken !== void 0 ? t("brokenNoCopy") : state.authorable ? t("duplicate") : t("duplicateUnavailable"), + "aria-label": `${t("duplicate")}: ${text.name}`, + onClick: () => { + props.beginCopy(row.id); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCopyOutline16, {}) + }), + row.trust === "user" ? (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: `${AgentPresetSection_module_css_default.iconButton} ${AgentPresetSection_module_css_default.iconDanger}`, + "data-tip": t("delete"), + "aria-label": `${t("delete")}: ${text.name}`, + onClick: () => { + props.confirmDelete(row.id); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, {}) + }) : null + ] + }), + state.revealedPaths[row.id] === void 0 ? null : (0, react_jsx_runtime.jsxs)("p", { + className: AgentPresetSection_module_css_default.revealedPath, + children: [(0, react_jsx_runtime.jsx)("span", { + className: AgentPresetSection_module_css_default.revealedPathLabel, + children: t("revealedPathLabel") + }), (0, react_jsx_runtime.jsx)("code", { children: state.revealedPaths[row.id] })] + }) + ] + }, row.id)) + }), + tail + ] + }, trust); + }), + (0, react_jsx_runtime.jsx)(CopyDialog, { + state, + t, + actions: { + cancelCopy: props.cancelCopy, + confirmCopy: props.confirmCopy, + setCopyId: props.setCopyId, + setCopyName: props.setCopyName + } + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: state.view !== null, + onClose: () => { + props.closeView(); + }, + title: state.view === null ? "" : `${t("view")} · ${viewedTitle}`, + closeLabel: t("close"), + description: t("composition"), + className: AgentPresetSection_module_css_default.dialog, + footer: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + autoFocus: true, + onClick: () => { + props.closeView(); + }, + children: t("close") + }), + children: state.view === null ? null : (0, react_jsx_runtime.jsx)("pre", { + className: AgentPresetSection_module_css_default.viewerCode, + children: state.view.content + }) + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, { + open: state.pendingDelete !== null, + onClose: () => { + props.confirmDelete(null); + }, + title: t("deleteTitle"), + closeLabel: t("close"), + description: t("deleteDescription"), + className: AgentPresetSection_module_css_default.deleteDialog, + footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + autoFocus: true, + disabled: state.deleting, + onClick: () => { + props.confirmDelete(null); + }, + children: t("cancel") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + className: AgentPresetSection_module_css_default.deleteConfirm, + disabled: state.deleting, + onClick: () => { + props.remove(); + }, + children: state.deleting ? t("deleting") : t("deleteConfirm") + })] }) + }) + ] + }); + } + //#endregion + //#region lib/types/client/seat-store.js + /** + * Hero-chip controller: which preset the NEXT session gets. + * + * The new-session screen has no session, so a pick is staged rather than + * applied. It reaches a session when one becomes current and is still blank — + * whether the workspace connect created it or reused an existing blank one, + * which is why staging cannot simply ride along on `sessions.create`. + * + * The stage is forgotten once applied: the next new session starts from the + * deployment default again, matching the workspace picker beside it. + */ + const INITIAL = { + options: [], + current: "", + error: null, + busy: false, + introduce: false + }; + /** Stages the next session's preset and applies it when one appears. */ + var AgentPresetSeatController = class { + api; + currentSession; + onApplied; + /** Chip snapshot the renderer subscribes to. */ + store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(INITIAL); + /** + * The deployment default, so a consumed stage can fall back to it without + * re-reading the roster. + */ + fallback = ""; + /** Set while a pick is waiting for a session; cleared once applied. */ + staged; + constructor(api, currentSession, onApplied) { + this.api = api; + this.currentSession = currentSession; + this.onApplied = onApplied; + } + set(patch) { + this.store.set({ + ...this.store.getSnapshot(), + ...patch + }); + } + /** + * Read the roster and open the chip on the deployment default. + * @returns once the snapshot reflects the host. + */ + async load() { + try { + const response = await this.api.agentPresets.list({}); + if (!response.result.ok) { + this.set({ error: response.result.error.message }); + return; + } + const { presets } = response.result.value; + this.fallback = presets.find((preset) => preset.isDefault)?.id ?? presets[0]?.id ?? ""; + this.set({ + options: presetOptions(presets), + current: this.staged ?? this.currentSession()?.agentPreset ?? this.fallback, + error: null + }); + } catch (error) { + this.set({ error: messageOf(error) }); + } + } + /** + * Stage one preset for the next session, applying it immediately when a + * blank session is already current. + * @param id - the preset to stage. + * @returns once the stage settled, and the apply too when one happened. + */ + async select(id) { + if (this.store.getSnapshot().busy) return; + this.stage(id); + await this.apply(); + } + /** + * Stage a pick WITHOUT the immediate apply, for a flow that starts the + * receiving session after the pick (the settings section's creator entry). + * `select()`'s immediate apply would meet the still-current running session + * and drop the stage as unservable; staging alone leaves it for the + * list-change applier, which fires when the started session becomes + * current. + * @param id - the preset to stage. + * @param introduce - true when the stage came from another screen and the + * chip should announce itself on the session it lands on. + */ + stage(id, introduce = false) { + this.staged = id; + this.set({ + current: id, + error: null, + introduce + }); + } + /** Acknowledge the introduction cue once the chip has played it. */ + introduced() { + if (!this.store.getSnapshot().introduce) return; + this.set({ introduce: false }); + } + /** + * Hand the staged choice to the current session, if there is one to take it. + * + * Called both by `select()` and by whoever observes the current session + * changing, because the session may appear either before or after the pick. + * @returns once the switch settled, or immediately when there is nothing to do. + */ + async apply() { + const staged = this.staged; + const session = this.currentSession(); + if (staged === void 0 || session === void 0) return; + if (!session.blank || session.agentPreset === staged) { + this.staged = void 0; + return; + } + this.set({ + busy: true, + error: null + }); + try { + const response = await this.api.agentPresets.select({ + sessionId: session.id, + agentPreset: staged + }); + this.staged = void 0; + if (!response.result.ok) { + this.set({ + busy: false, + error: response.result.error.message, + current: this.fallback + }); + return; + } + this.set({ + busy: false, + current: response.result.value.agentPreset + }); + this.onApplied?.(session.id, response.result.value.agentPreset); + } catch (error) { + this.staged = void 0; + this.set({ + busy: false, + error: messageOf(error), + current: this.fallback + }); + } + } + }; + //#endregion + //#region lib/types/client/index.js + /** + * Agent-preset surface plugin, browser half — four surfaces over one roster: + * a General-settings row for the default preset, a chip on the new-session + * screen for the session about to start, a read-only label in the session + * header, and a settings section that manages the roster (copy, delete, + * default, and the way into a preset's own files). + * + * A running session keeps the composition it began with (the host refuses to + * adopt an existing session under a different preset). That is what splits + * the choice from the display: the General row and the hero chip are both + * before-the-fact, while the header only reports what a session already runs. + */ + /** Required services (cordis fiber inject). */ + const inject = [ + "slots", + "locale", + "connection", + "remote" + ]; + /** + * Mount the General-settings row. + * @param ctx - the browser plugin context. + */ + function apply(ctx) { + const { api } = ctx.get("connection"); + const controller = new AgentPresetSettingsController(api); + const rosterReaders = /* @__PURE__ */ new Set(); + const section = new AgentPresetSectionController(api, () => { + controller.load(); + for (const read of rosterReaders) read(); + }); + ctx.effect(() => ctx.locale.register("settings.agentPreset", { + zh, + en + }), "ui-agent-preset: settings row dictionaries"); + const injected = () => ({ + hooks: { agentPreset: controller.store }, + load: () => controller.load(), + select: (id) => controller.select(id) + }); + ctx.effect(() => { + const refresh = () => { + controller.load(); + if (section.store.getSnapshot().status !== "idle") section.load(); + }; + const disposers = [ctx.remote.$on("settings/document-updated", (ns) => { + if (ns !== "agent-presets") return; + refresh(); + }), ctx.on("connection/reset", () => { + refresh(); + })]; + return () => { + for (const dispose of disposers) dispose(); + }; + }, "ui-agent-preset: settings refresh"); + let creatorDraft; + ctx.inject([ + "slots", + "conversation", + "sessions", + "workspaces" + ], (scope) => { + const api = scope.get("connection").api; + const seat = new AgentPresetSeatController(api, () => { + const state = scope.sessions.list.getSnapshot(); + const summary = state.current === void 0 ? void 0 : state.byId[state.current]; + return summary === void 0 ? void 0 : { + id: summary.id, + blank: summary.blank, + ...summary.agentPreset === void 0 ? {} : { agentPreset: summary.agentPreset } + }; + }, (sessionId, agentPreset) => { + scope.sessions.noteAgentPreset(sessionId, agentPreset); + }); + const seatInjected = () => ({ + hooks: { agentPresetSeat: seat.store }, + load: () => seat.load(), + select: (id) => seat.select(id), + introduced: () => { + seat.introduced(); + } + }); + const labelInjected = () => ({ + hooks: { agentPresets: controller.store }, + load: () => controller.load() + }); + scope.effect(() => { + const stop = scope.sessions.list.subscribe(() => { + seat.apply(); + }); + const settingsMoved = scope.remote.$on("settings/document-updated", (ns) => { + if (ns !== "agent-presets") return; + seat.load(); + }); + const presetSelected = scope.remote.$on("agent-preset/selected", (sessionId, agentPreset) => { + scope.sessions.noteAgentPreset(sessionId, agentPreset); + }); + const readRoster = () => { + seat.load(); + }; + rosterReaders.add(readRoster); + creatorDraft = () => { + seat.stage("cordis", true); + scope.workspaces.startSession(); + }; + const chip = scope.slots.register({ + name: "conversation.hero.agentPreset", + locale: "settings.agentPreset", + inject: seatInjected + }, AgentPresetSeat); + const label = scope.slots.register({ + name: "conversation.session.header.actions", + id: "agent-preset", + order: -10, + locale: "settings.agentPreset", + inject: labelInjected + }, AgentPresetLabel); + return () => { + stop(); + settingsMoved(); + presetSelected(); + rosterReaders.delete(readRoster); + creatorDraft = void 0; + chip(); + label(); + }; + }, "ui-agent-preset: new-session chip and header label"); + }); + const sectionInjected = () => ({ + hooks: { agentPresetSection: section.store }, + load: () => section.load(), + view: (id) => section.view(id), + closeView: () => { + section.closeView(); + }, + beginCopy: (from) => { + section.beginCopy(from); + }, + cancelCopy: () => { + section.cancelCopy(); + }, + setCopyId: (id) => { + section.setCopyId(id); + }, + setCopyName: (name) => { + section.setCopyName(name); + }, + confirmCopy: () => section.confirmCopy(), + openLocation: (id) => section.openLocation(id), + ...creatorDraft === void 0 ? {} : { startCreatorDraft: creatorDraft }, + confirmDelete: (id) => { + section.confirmDelete(id); + }, + remove: () => section.remove(), + makeDefault: (id) => section.makeDefault(id) + }); + ctx.slots.inject("settings.general.item", () => ctx.slots.register({ + name: "settings.general.item", + id: "agent-preset", + order: -25, + locale: "settings.agentPreset", + inject: injected + }, AgentPresetRow)); + ctx.slots.inject("settings.section", () => ctx.slots.register({ + name: "settings.section", + id: "agent-presets", + order: 20, + label: () => ctx.locale.bind("settings.agentPreset")("nav"), + locale: "settings.agentPreset", + inject: sectionInjected + }, AgentPresetSection)); + } + //#endregion + exports.AGENT_PRESET_SETTINGS_NS = AGENT_PRESET_SETTINGS_NS; + exports.apply = apply; + exports.draftBlocker = draftBlocker; + exports.inject = inject; + exports.writeDefaultPreset = writeDefaultPreset; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001f b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001f new file mode 100644 index 0000000..2735fa5 --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_00001f @@ -0,0 +1,1241 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-settings-plugins", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let _deepseek_ai_dsh_client_ui_slots = require("@deepseek-ai/dsh-client-ui-slots"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-plugins/src/client/fields.module.css.mjs + const css$2 = ".At1oFq_field{flex-direction:column;gap:6px;padding:12px 0;display:flex}.At1oFq_field+.At1oFq_field{border-top:1px solid var(--dsw-alias-border-l2)}.At1oFq_head{align-items:center;gap:8px;display:flex}.At1oFq_label{min-width:0;color:var(--dsw-alias-label-primary);flex:1;font-size:13px;font-weight:500;line-height:1.5}.At1oFq_badges{align-items:center;gap:8px;display:inline-flex}.At1oFq_badge{white-space:nowrap;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.At1oFq_badgeMuted{white-space:nowrap;color:var(--dsw-alias-label-tertiary);border-radius:999px;padding:1px 8px;font-size:11px;line-height:17px}.At1oFq_reset{font:inherit;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.5}.At1oFq_reset:hover:not(:disabled){color:var(--dsw-alias-label-primary)}.At1oFq_reset:disabled{cursor:default}.At1oFq_input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);height:34px;font:inherit;color:var(--dsw-alias-label-primary);border-radius:8px;padding:0 12px;font-size:13px;line-height:1.5}.At1oFq_input:focus-visible{border-color:var(--dsw-alias-brand-primary);outline:none}.At1oFq_input:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.At1oFq_inputInvalid{border-color:var(--dsw-alias-label-error);}.At1oFq_invalid{color:var(--dsw-alias-label-error);margin:0;font-size:12px;line-height:1.5}.At1oFq_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-settings-plugins/fields.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-plugins"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var fields_module_css_default = { + "badgeMuted": "At1oFq_badgeMuted", + "reset": "At1oFq_reset", + "head": "At1oFq_head", + "hint": "At1oFq_hint", + "label": "At1oFq_label", + "badges": "At1oFq_badges", + "field": "At1oFq_field", + "badge": "At1oFq_badge", + "input": "At1oFq_input", + "inputInvalid": "At1oFq_inputInvalid", + "invalid": "At1oFq_invalid" + }; + //#endregion + //#region lib/types/client/fields.js + /** + * Hand-written controls for the plugin configuration forms. Each renders one + * field's label, its staged text, whether saving would leave an override, and + * — when one stands — the reset that stages a clear back to the composition + * layer. Nothing here writes: a control reports what the user typed, and the + * card's save is the single point where a draft becomes a document mutation. + */ + /** + * A staged value field. `numeric` only hints the keypad: which drafts a field + * accepts is decided by its spec, so the control never silently rewrites what + * the user typed. + * @param props - the field's copy, its staged text, and the edit actions. + * @returns the labelled control. + */ + function ValueField(props) { + return (0, react_jsx_runtime.jsxs)("div", { + className: fields_module_css_default.field, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: fields_module_css_default.head, + children: [(0, react_jsx_runtime.jsx)("label", { + className: fields_module_css_default.label, + htmlFor: props.id, + children: props.label + }), props.overridden ? (0, react_jsx_runtime.jsxs)("span", { + className: fields_module_css_default.badges, + children: [(0, react_jsx_runtime.jsx)("span", { + className: fields_module_css_default.badge, + children: props.overriddenLabel + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: fields_module_css_default.reset, + disabled: props.disabled, + onClick: props.onReset, + children: props.resetLabel + })] + }) : null] + }), + (0, react_jsx_runtime.jsx)("input", { + id: props.id, + className: props.invalid ? fields_module_css_default.inputInvalid : fields_module_css_default.input, + type: "text", + ...props.numeric === true ? { inputMode: "numeric" } : {}, + ...props.invalid ? { "aria-invalid": true } : {}, + value: props.text, + placeholder: props.placeholder ?? "", + disabled: props.disabled, + onChange: (event) => { + props.onEdit(event.target.value); + } + }), + (0, react_jsx_runtime.jsx)("p", { + className: props.invalid ? fields_module_css_default.invalid : fields_module_css_default.hint, + children: props.invalid ? props.invalidLabel : props.hint + }) + ] + }); + } + /** + * A write-only credential control. The value never rides a response, so the + * control reports only whether one is configured and starts blank; a blank + * draft writes nothing, which keeps the stored key rather than clearing it. + * @param props - the field's copy, its staged text, and the configured state. + * @returns the labelled control. + */ + function SecretField(props) { + return (0, react_jsx_runtime.jsxs)("div", { + className: fields_module_css_default.field, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: fields_module_css_default.head, + children: [(0, react_jsx_runtime.jsx)("label", { + className: fields_module_css_default.label, + htmlFor: props.id, + children: props.label + }), (0, react_jsx_runtime.jsx)("span", { + className: fields_module_css_default.badges, + children: (0, react_jsx_runtime.jsx)("span", { + className: props.configured ? fields_module_css_default.badge : fields_module_css_default.badgeMuted, + children: props.stateLabel + }) + })] + }), + (0, react_jsx_runtime.jsx)("input", { + id: props.id, + className: fields_module_css_default.input, + type: "password", + autoComplete: "off", + value: props.text, + disabled: props.disabled, + onChange: (event) => { + props.onEdit(event.target.value); + } + }), + (0, react_jsx_runtime.jsx)("p", { + className: fields_module_css_default.hint, + children: props.hint + }) + ] + }); + } + //#endregion + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-plugins/src/client/PluginCard.module.css.mjs + const css$1 = ".YyYd_a_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;list-style:none;transition:border-color .16s,background .16s}.YyYd_a_card:hover{border-color:var(--dsw-alias-label-dimmed)}.YyYd_a_cardOpen{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-dimmed)}.YyYd_a_header{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;display:flex}.YyYd_a_header:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.YyYd_a_headText{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.YyYd_a_name{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600;line-height:1.4}.YyYd_a_description{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:1.5}.YyYd_a_chevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .16s}.YyYd_a_chevronOpen{transform:rotate(180deg)}.YyYd_a_body{border-top:1px solid var(--dsw-alias-border-l2);margin:0 16px;padding-bottom:8px}.YyYd_a_readOnly{color:var(--dsw-alias-label-tertiary);margin:12px 0 0;font-size:12px;line-height:1.5}.YyYd_a_pending{white-space:nowrap;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.YyYd_a_footer{border-top:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;align-items:center;gap:8px;padding:12px 0 4px;display:flex}.YyYd_a_failed{min-width:0;color:var(--dsw-alias-label-error);flex:1;margin:0;font-size:12px;line-height:1.5}.YyYd_a_discard,.YyYd_a_save{appearance:none;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:5px 14px;font-size:13px;line-height:1.5}.YyYd_a_discard{border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:0 0}.YyYd_a_discard:hover:not(:disabled){color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed)}.YyYd_a_save{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3)}.YyYd_a_discard:disabled,.YyYd_a_save:disabled{opacity:.4;cursor:default}.YyYd_a_discard:focus-visible,.YyYd_a_save:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-settings-plugins/PluginCard.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-plugins"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var PluginCard_module_css_default = { + "chevronOpen": "YyYd_a_chevronOpen", + "failed": "YyYd_a_failed", + "readOnly": "YyYd_a_readOnly", + "footer": "YyYd_a_footer", + "header": "YyYd_a_header", + "description": "YyYd_a_description", + "save": "YyYd_a_save", + "name": "YyYd_a_name", + "chevron": "YyYd_a_chevron", + "cardOpen": "YyYd_a_cardOpen", + "headText": "YyYd_a_headText", + "card": "YyYd_a_card", + "pending": "YyYd_a_pending", + "discard": "YyYd_a_discard", + "body": "YyYd_a_body" + }; + //#endregion + //#region lib/types/client/PluginCard.js + /** + * One plugin's card: a header naming the plugin and what its settings govern, + * disclosing that plugin's controls in place, with the save that writes them. + * + * The header is its own button rather than a shared disclosure row because a + * card stacks its name over its description, while that row lays the two side + * by side — the layout, not the behavior, is what differs. Disclosure is + * card-local state: which card a user has open is a reading gesture, not + * something the Host or the section has any stake in. Staged edits outlive + * collapsing, so the header marks a card holding unsaved edits. + * + * A card renders nothing while its namespace is unavailable: a deployment that + * does not compose the owning plugin should show no trace of it, rather than a + * disabled card the user cannot act on. + */ + /** + * Render one plugin card. + * @param props - the plugin's copy keys, its form state, and its controls. + * @returns the card, or nothing when the namespace is unavailable. + */ + function PluginCard(props) { + const [open, setOpen] = (0, react.useState)(false); + const { state } = props; + if (!state.available) return null; + const title = props.t(props.titleKey); + const blocked = !state.dirty || state.invalid || state.saving; + return (0, react_jsx_runtime.jsxs)("li", { + className: clsx(PluginCard_module_css_default.card, open && PluginCard_module_css_default.cardOpen), + children: [(0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: PluginCard_module_css_default.header, + "aria-expanded": open, + "aria-label": `${props.t(open ? "collapse" : "expand")}: ${title}`, + onClick: () => { + setOpen(!open); + }, + children: [ + (0, react_jsx_runtime.jsxs)("span", { + className: PluginCard_module_css_default.headText, + children: [(0, react_jsx_runtime.jsx)("span", { + className: PluginCard_module_css_default.name, + children: title + }), (0, react_jsx_runtime.jsx)("span", { + className: PluginCard_module_css_default.description, + children: props.t(props.descriptionKey) + })] + }), + state.dirty ? (0, react_jsx_runtime.jsx)("span", { + className: PluginCard_module_css_default.pending, + children: props.t("unsaved") + }) : null, + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: clsx(PluginCard_module_css_default.chevron, open && PluginCard_module_css_default.chevronOpen) }) + ] + }), open ? (0, react_jsx_runtime.jsxs)("div", { + className: PluginCard_module_css_default.body, + children: [ + !state.writable ? (0, react_jsx_runtime.jsx)("p", { + className: PluginCard_module_css_default.readOnly, + role: "status", + children: props.t("readOnly") + }) : null, + props.children, + (0, react_jsx_runtime.jsxs)("div", { + className: PluginCard_module_css_default.footer, + children: [ + state.failed ? (0, react_jsx_runtime.jsx)("p", { + className: PluginCard_module_css_default.failed, + role: "status", + children: props.t("saveFailed") + }) : null, + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: PluginCard_module_css_default.discard, + disabled: !state.dirty || state.saving, + onClick: props.onDiscard, + children: props.t("discard") + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: PluginCard_module_css_default.save, + disabled: blocked, + onClick: props.onSave, + children: props.t(state.saving ? "saving" : "save") + }) + ] + }) + ] + }) : null] + }); + } + //#endregion + //#region lib/types/client/AgentLoopCard.js + /** + * Render the agent-loop card. + * @param props - locale copy, the card snapshot, and its form actions. + * @returns the card. + */ + function AgentLoopCard(props) { + const { t } = props; + const state = props.useAgentLoopCard((snapshot) => snapshot); + return (0, react_jsx_runtime.jsx)(PluginCard, { + t, + titleKey: "agentLoopTitle", + descriptionKey: "agentLoopDescription", + state, + onSave: props.save, + onDiscard: props.discard, + children: (0, react_jsx_runtime.jsx)(ValueField, { + id: "plugin-config-agent-loop-parallel", + label: t("agentLoopMaxParallel"), + hint: t("agentLoopMaxParallelHint"), + overriddenLabel: t("overridden"), + resetLabel: t("reset"), + invalidLabel: t("invalidNumber"), + numeric: true, + disabled: !state.writable, + ...state.maxParallelToolCalls, + onEdit: (text) => { + props.edit("maxParallelToolCalls", text); + }, + onReset: () => { + props.resetField("maxParallelToolCalls"); + } + }) + }); + } + //#endregion + //#region lib/types/client/BashCard.js + /** + * Render the shell card. + * @param props - locale copy, the card snapshot, and its form actions. + * @returns the card. + */ + function BashCard(props) { + const { t } = props; + const state = props.useBashCard((snapshot) => snapshot); + const disabled = !state.writable; + return (0, react_jsx_runtime.jsxs)(PluginCard, { + t, + titleKey: "bashTitle", + descriptionKey: "bashDescription", + state, + onSave: props.save, + onDiscard: props.discard, + children: [(0, react_jsx_runtime.jsx)(ValueField, { + id: "plugin-config-bash-timeout", + label: t("bashTimeoutMs"), + hint: t("bashTimeoutMsHint"), + overriddenLabel: t("overridden"), + resetLabel: t("reset"), + invalidLabel: t("invalidNumber"), + numeric: true, + disabled, + ...state.timeoutMs, + onEdit: (text) => { + props.edit("timeoutMs", text); + }, + onReset: () => { + props.resetField("timeoutMs"); + } + }), (0, react_jsx_runtime.jsx)(ValueField, { + id: "plugin-config-bash-output", + label: t("bashMaxOutputBytes"), + hint: t("bashMaxOutputBytesHint"), + overriddenLabel: t("overridden"), + resetLabel: t("reset"), + invalidLabel: t("invalidNumber"), + numeric: true, + disabled, + ...state.maxOutputBytes, + onEdit: (text) => { + props.edit("maxOutputBytes", text); + }, + onReset: () => { + props.resetField("maxOutputBytes"); + } + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-plugins/src/client/PluginsSettingsSection.module.css.mjs + const css = ".pbvGtq_section{max-width:760px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.pbvGtq_heading{margin:0;font-size:18px;font-weight:600}.pbvGtq_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px}.pbvGtq_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:flex-end;gap:22px;margin-top:2px;display:flex}.pbvGtq_tab{color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:0;padding:7px 1px 9px;font-size:13px;line-height:20px;position:relative}.pbvGtq_tab:hover,.pbvGtq_tab[data-active=true]{color:var(--dsw-alias-label-primary)}.pbvGtq_tab[data-active=true]:after,.pbvGtq_tab:focus-visible:after{background:var(--dsw-alias-label-primary);content:\"\";border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.pbvGtq_tab:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px;color:var(--dsw-alias-label-primary);border-radius:2px}.pbvGtq_panel{min-width:0;padding-top:2px}.pbvGtq_cards{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pbvGtq_empty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:13px}"; + const tagId = "@deepseek-ai/dsh-client-ui-settings-plugins/PluginsSettingsSection.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-settings-plugins"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var PluginsSettingsSection_module_css_default = { + "heading": "pbvGtq_heading", + "cards": "pbvGtq_cards", + "intro": "pbvGtq_intro", + "tabs": "pbvGtq_tabs", + "panel": "pbvGtq_panel", + "empty": "pbvGtq_empty", + "tab": "pbvGtq_tab", + "section": "pbvGtq_section" + }; + //#endregion + //#region lib/types/client/ConfigurablePluginsTab.js + /** Render cards registered by plugins that expose editable settings. */ + function ConfigurablePluginsTab({ t, renderSlot, cardCount }) { + return cardCount === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: PluginsSettingsSection_module_css_default.empty, + children: t("empty") + }) : (0, react_jsx_runtime.jsx)("ul", { + className: PluginsSettingsSection_module_css_default.cards, + children: renderSlot("settings.plugin.item", {}) + }); + } + //#endregion + //#region lib/types/client/PluginsSettingsSection.js + /** Plugins settings section: localized tabs around feature-owned pages. */ + /** Render one Plugins page whose contents arrive from feature-owned tabs. */ + function PluginsSettingsSection({ t, renderSlot, useTabs }) { + const tabsId = (0, react.useId)(); + const tabRefs = (0, react.useRef)([]); + const rows = useTabs((value) => value); + const [activeId, setActiveId] = (0, react.useState)(); + const [visitedIds, setVisitedIds] = (0, react.useState)(() => /* @__PURE__ */ new Set()); + const active = rows.find((row) => row.id === activeId)?.id ?? rows[0]?.id; + (0, react.useEffect)(() => { + if (active === void 0) return; + setVisitedIds((previous) => { + if (previous.has(active)) return previous; + return new Set([...previous, active]); + }); + }, [active]); + return (0, react_jsx_runtime.jsxs)("div", { + className: PluginsSettingsSection_module_css_default.section, + children: [ + (0, react_jsx_runtime.jsx)("h2", { + className: PluginsSettingsSection_module_css_default.heading, + children: t("title") + }), + (0, react_jsx_runtime.jsx)("p", { + className: PluginsSettingsSection_module_css_default.intro, + children: t("intro") + }), + rows.length === 0 ? (0, react_jsx_runtime.jsx)("p", { + className: PluginsSettingsSection_module_css_default.empty, + children: t("empty") + }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", { + className: PluginsSettingsSection_module_css_default.tabs, + role: "tablist", + "aria-label": t("tabs"), + children: rows.map((row, index) => { + const selected = row.id === active; + return (0, react_jsx_runtime.jsx)("button", { + ref: (element) => { + tabRefs.current[index] = element; + }, + id: `${tabsId}-tab-${row.id}`, + type: "button", + role: "tab", + className: PluginsSettingsSection_module_css_default.tab, + "aria-selected": selected, + "aria-controls": `${tabsId}-panel-${row.id}`, + "data-active": selected ? "true" : void 0, + tabIndex: selected ? 0 : -1, + onClick: () => { + setActiveId(row.id); + }, + onKeyDown: (event) => { + let nextIndex; + switch (event.key) { + case "ArrowRight": + nextIndex = (index + 1) % rows.length; + break; + case "ArrowLeft": + nextIndex = (index - 1 + rows.length) % rows.length; + break; + case "Home": + nextIndex = 0; + break; + case "End": + nextIndex = rows.length - 1; + break; + default: return; + } + event.preventDefault(); + const nextRow = rows[nextIndex]; + const nextTab = tabRefs.current[nextIndex]; + setActiveId(nextRow.id); + nextTab.focus(); + }, + children: row.label + }, row.id); + }) + }), rows.filter((row) => row.id === active || visitedIds.has(row.id)).map((row) => { + const selected = row.id === active; + return (0, react_jsx_runtime.jsx)("div", { + id: `${tabsId}-panel-${row.id}`, + className: PluginsSettingsSection_module_css_default.panel, + role: "tabpanel", + "aria-labelledby": `${tabsId}-tab-${row.id}`, + hidden: !selected, + children: renderSlot("settings.plugins.tab", {}, { only: row.id }) + }, row.id); + })] }) + ] + }); + } + //#endregion + //#region lib/types/client/WebSearchCard.js + /** + * Render the web-search card. + * @param props - locale copy, the card snapshot, and its form actions. + * @returns the card. + */ + function WebSearchCard(props) { + const { t } = props; + const state = props.useWebSearchCard((snapshot) => snapshot); + const disabled = !state.writable; + return (0, react_jsx_runtime.jsxs)(PluginCard, { + t, + titleKey: "webSearchTitle", + descriptionKey: "webSearchDescription", + state, + onSave: props.save, + onDiscard: props.discard, + children: [ + (0, react_jsx_runtime.jsx)(SecretField, { + id: "plugin-config-web-search-key", + label: t("webSearchApiKey"), + hint: t("webSearchApiKeyHint"), + disabled: !state.apiKeyWritable, + text: state.apiKey.text, + configured: state.apiKeyConfigured, + stateLabel: state.apiKeyConfigured ? t("webSearchApiKeySet") : t("webSearchApiKeyUnset"), + onEdit: (text) => { + props.edit("apiKey", text); + } + }), + (0, react_jsx_runtime.jsx)(ValueField, { + id: "plugin-config-web-search-endpoint", + label: t("webSearchBaseUrl"), + hint: t("webSearchBaseUrlHint"), + overriddenLabel: t("overridden"), + resetLabel: t("reset"), + invalidLabel: t("invalidNumber"), + disabled, + ...state.baseURL, + onEdit: (text) => { + props.edit("baseURL", text); + }, + onReset: () => { + props.resetField("baseURL"); + } + }), + (0, react_jsx_runtime.jsx)(ValueField, { + id: "plugin-config-web-search-max-uses", + label: t("webSearchMaxUses"), + hint: t("webSearchMaxUsesHint"), + overriddenLabel: t("overridden"), + resetLabel: t("reset"), + invalidLabel: t("invalidNumber"), + numeric: true, + disabled, + ...state.maxUses, + onEdit: (text) => { + props.edit("maxUses", text); + }, + onReset: () => { + props.resetField("maxUses"); + } + }) + ] + }); + } + //#endregion + //#region lib/types/client/card-form.js + /** + * Shared form model behind every plugin card. + * + * A card stages what the user types and writes it only when they save. Each + * settings write is a durable, revision-fenced document mutation, so a control + * that committed as it settled turned one edit into a write the user never + * asked for and could not preview; staged text makes what is on screen exactly + * what a save would store. + * + * A field shows its effective value — the user layer over the composition + * layer over the schema default — and whether the user layer carries it. That + * presence, not a value comparison, is what marks a field overridden: an + * override equal to the composition default is still an override. + */ + /** + * A whole-number field. An empty draft clears the field; any other draft that + * is not a finite number blocks the save. + * @param field - field name inside the namespace section. + * @returns the field's conversion spec. + */ + function numberField(field) { + return { + field, + format: (value) => typeof value === "number" ? String(value) : "", + parse: (text) => { + const trimmed = text.trim(); + if (trimmed === "") return { kind: "clear" }; + const parsed = Number(trimmed); + return Number.isFinite(parsed) ? { + kind: "set", + value: parsed + } : void 0; + } + }; + } + /** + * A free-text field. An empty draft clears the field, so emptying the control + * and saving is the same gesture as resetting it. + * @param field - field name inside the namespace section. + * @returns the field's conversion spec. + */ + function textField(field) { + return { + field, + format: (value) => typeof value === "string" ? value : "", + parse: (text) => { + const trimmed = text.trim(); + return trimmed === "" ? { kind: "clear" } : { + kind: "set", + value: trimmed + }; + } + }; + } + /** + * Stages one card's edits over one settings namespace and writes them on save. + * + * The form publishes through a snapshot store because slot components read + * through a snapshot selector, while both the scope and the local drafts + * change underneath; every projection is rebuilt from the two together. + */ + var CardForm = class { + scope; + specs; + secretSpecs; + staged = /* @__PURE__ */ new Map(); + listeners = /* @__PURE__ */ new Set(); + saving = false; + failed = false; + /** + * @param scope - the bound settings scope for this card's namespace. + * @param specs - the section fields this card edits. + * @param secrets - the card's write-only controls, written outside the section. + */ + constructor(scope, specs, secrets = []) { + this.scope = scope; + this.specs = new Map(specs.map((spec) => [spec.field, spec])); + this.secretSpecs = new Map(secrets.map((spec) => [spec.field, spec])); + scope.subscribe(() => { + this.publish(); + }); + } + /** + * Publish a projection of this form, rebuilt whenever the scope or a draft changes. + * @param project - build the card's state from the form's current reads. + * @returns the store the card's component reads through its bound selector. + */ + bind(project) { + const store = (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(project()); + this.listeners.add(() => { + store.set(project()); + }); + return store; + } + /** + * Read the card-level state: what the Host serves, and what a save would do. + * @returns the form state every card shares. + */ + shell() { + const snapshot = this.scope.getSnapshot(); + const plan = this.plan(); + return { + available: snapshot.status === "ready", + writable: snapshot.writable, + dirty: plan.length > 0, + invalid: plan.some((item) => item.run === void 0), + saving: this.saving, + failed: this.failed + }; + } + /** + * Read one control's state. + * @param field - field name of a section field or of a write-only control. + * @returns the draft text, whether a save would leave an override, and whether it is invalid. + */ + field(field) { + const staged = this.staged.get(field); + if (this.secretSpecs.has(field)) return { + text: staged?.text ?? "", + overridden: false, + invalid: false + }; + const spec = this.spec(field); + if (staged === void 0) return { + text: spec.format(this.sectionValue(field)), + overridden: this.stored(field), + invalid: false + }; + const write = staged.clear ? { kind: "clear" } : spec.parse(staged.text); + return { + text: staged.text, + overridden: write?.kind === "set", + invalid: write === void 0 + }; + } + /** + * Build the edit, reset, save, and discard actions bound to this form. + * @returns the actions a card's slot entry injects. + */ + actions() { + return { + edit: (field, text) => { + this.stage(field, { + text, + clear: false + }); + }, + resetField: (field) => { + this.stage(field, { + text: this.spec(field).format(this.baseValue(field)), + clear: true + }); + }, + save: () => { + this.save(); + }, + discard: () => { + if (this.staged.size === 0 && !this.failed) return; + this.staged.clear(); + this.failed = false; + this.publish(); + } + }; + } + /** + * Write every staged edit, then re-seed from what the Host accepted. + * + * The Host is the only authority on whether a value was accepted — its + * validators own the constraints no schema can express — so the outcome is + * read back from the section rather than predicted here. A save that did not + * land keeps its drafts, so the user can correct them instead of retyping. + * @returns settlement after every write and the read-back. + */ + async save() { + const plan = this.plan(); + const writes = plan.flatMap((item) => item.run === void 0 ? [] : [item.run]); + if (plan.length === 0 || this.saving || writes.length !== plan.length) return; + this.saving = true; + this.failed = false; + this.publish(); + let landed = true; + for (const write of writes) landed = await write() && landed; + if (landed) this.staged.clear(); + this.saving = false; + this.failed = !landed; + this.publish(); + } + /** + * Every staged edit a save would write. An entry whose draft is not a value + * its field accepts carries no write: the form is still dirty, and the save + * refuses rather than dropping the edit. + * @returns the planned writes, in the order the fields were staged. + */ + plan() { + const plan = []; + for (const [field, staged] of this.staged) { + const secret = this.secretSpecs.get(field); + if (secret !== void 0) { + const value = staged.text.trim(); + if (value !== "") plan.push({ + field, + run: () => secret.write(value) + }); + continue; + } + const spec = this.spec(field); + if (staged.clear) { + if (this.stored(field)) plan.push({ + field, + run: () => this.clear(field) + }); + continue; + } + if (staged.text === spec.format(this.sectionValue(field))) continue; + const write = spec.parse(staged.text); + if (write === void 0) plan.push({ + field, + run: void 0 + }); + else if (write.kind === "clear") plan.push({ + field, + run: () => this.clear(field) + }); + else plan.push({ + field, + run: () => this.store(field, write.value) + }); + } + return plan; + } + async clear(field) { + await this.scope.unset(field); + return !this.stored(field); + } + async store(field, value) { + await this.scope.set(field, value); + return this.userLayer()?.[field] === value; + } + stage(field, edit) { + this.staged.set(field, edit); + this.failed = false; + this.publish(); + } + spec(field) { + const spec = this.specs.get(field); + if (spec === void 0) throw new Error(`plugin card has no field ${field}`); + return spec; + } + snapshotOf() { + return this.scope.getSnapshot(); + } + sectionValue(field) { + return this.snapshotOf().value?.[field]; + } + baseValue(field) { + return this.snapshotOf().base?.[field]; + } + userLayer() { + return this.snapshotOf().user; + } + stored(field) { + const user = this.userLayer(); + return user !== void 0 && Object.hasOwn(user, field); + } + publish() { + for (const listener of this.listeners) listener(); + } + }; + //#endregion + //#region lib/types/client/agent-loop-card-controller.js + /** The agent-loop card's staged form over the `agent-loop` settings namespace. */ + /** + * Namespace of the agent loop's user-owned settings. Spelled here rather than + * imported: a client package must not depend on a Host package. + */ + const AGENT_LOOP_NS = "agent-loop"; + /** Bridges the `agent-loop` scope onto the card's staged form. */ + var AgentLoopCardController = class { + form; + store; + /** @param scope - the bound settings scope for the `agent-loop` namespace. */ + constructor(scope) { + this.form = new CardForm(scope, [numberField("maxParallelToolCalls")]); + this.store = this.form.bind(() => this.projection()); + } + projection() { + return { + ...this.form.shell(), + maxParallelToolCalls: this.form.field("maxParallelToolCalls") + }; + } + /** + * Build the face the card's slot registration injects. + * @returns the card's snapshot and its form actions. + */ + inject() { + return { + hooks: { agentLoopCard: this.store }, + ...this.form.actions() + }; + } + }; + //#endregion + //#region lib/types/client/bash-card-controller.js + /** The shell card's staged form over the `bash` settings namespace. */ + /** + * Namespace of the shell capability. Spelled here rather than imported: a + * client package must not depend on a Host package, and the executor families + * that own it spell the same value. + */ + const SHELL_NS = "shell"; + /** Bridges the `bash` scope onto the shell card's staged form. */ + var BashCardController = class { + form; + store; + /** @param scope - the bound settings scope for the `bash` namespace. */ + constructor(scope) { + this.form = new CardForm(scope, [numberField("timeoutMs"), numberField("maxOutputBytes")]); + this.store = this.form.bind(() => this.projection()); + } + projection() { + return { + ...this.form.shell(), + timeoutMs: this.form.field("timeoutMs"), + maxOutputBytes: this.form.field("maxOutputBytes") + }; + } + /** + * Build the face the card's slot registration injects. + * @returns the card's snapshot and its form actions. + */ + inject() { + return { + hooks: { bashCard: this.store }, + ...this.form.actions() + }; + } + }; + //#endregion + //#region lib/types/client/web-search-card-controller.js + /** + * The web-search card's staged form over the `web-search-deepseek` settings + * namespace. + * + * The key is the one control that does not live in the section: its literal + * never rides a response, so the card learns only whether one is configured + * and writes it through the credentials domain, addressed by the reference the + * section names. It is still staged with the rest of the form, so one save + * covers everything the card shows. + */ + /** + * Namespace of the DeepSeek search provider. Spelled here rather than + * imported: a client package must not depend on a Host package. + */ + const WEB_SEARCH_NS = "web-search-deepseek"; + /** Credential reference the provider resolves when the section names none. */ + const DEFAULT_API_KEY_REF = "DEEPSEEK_API_KEY"; + /** Form field the credential control stages under. */ + const API_KEY_FIELD = "apiKey"; + /** Bridges the `web-search-deepseek` scope and the credentials domain onto the card. */ + var WebSearchCardController = class { + scope; + api; + form; + store; + credential = { + ref: "", + configured: false, + writable: true + }; + /** + * @param scope - the bound settings scope for the `web-search-deepseek` namespace. + * @param api - wire face used for the credential the section references. + */ + constructor(scope, api) { + this.scope = scope; + this.api = api; + this.form = new CardForm(scope, [textField("baseURL"), numberField("maxUses")], [{ + field: API_KEY_FIELD, + write: (text) => this.writeKey(text) + }]); + this.store = this.form.bind(() => this.projection()); + scope.subscribe(() => { + this.readCredential(); + }); + this.readCredential(); + } + projection() { + return { + ...this.form.shell(), + baseURL: this.form.field("baseURL"), + maxUses: this.form.field("maxUses"), + apiKey: this.form.field(API_KEY_FIELD), + apiKeyConfigured: this.credential.configured, + apiKeyWritable: this.credential.writable + }; + } + /** + * Ask the credentials domain about the reference the section currently names. + * + * The answer is stored with the reference it describes: `apiKeyEnv` can + * change between the request and its response, and two reads can settle out + * of order, so a response is published only while it still answers for the + * reference in force. + */ + async readCredential() { + const ref = refOf(this.scope.getSnapshot()); + if (ref !== this.credential.ref) { + this.credential = { + ref, + configured: false, + writable: true + }; + this.store.set(this.projection()); + } + let response; + try { + response = await this.api.credentials.describe({ refs: [ref] }); + } catch (_credentialReadFailure) { + return; + } + if (!response.result.ok || ref !== refOf(this.scope.getSnapshot())) return; + const view = response.result.value.credentials[ref]; + const next = { + ref, + configured: view?.configured ?? false, + writable: view?.writable ?? true + }; + if (next.configured === this.credential.configured && next.writable === this.credential.writable) return; + this.credential = next; + this.store.set(this.projection()); + } + /** + * Re-read after the Host reports a change to the reference this card watches. + * + * A key can be written from somewhere else — the Models page addresses the + * same reference — and the settings section does not change when it is, so + * without this the badge keeps reporting a state the Host already replaced. + * @param ref - the reference the Host reports as changed. + */ + refreshCredential(ref) { + if (ref !== this.credential.ref) return; + this.readCredential(); + } + /** + * Build the face the card's slot registration injects. + * @returns the card's snapshot and its form actions. + */ + inject() { + return { + hooks: { webSearchCard: this.store }, + ...this.form.actions() + }; + } + /** + * Write the staged key, then re-read whether the Host now holds one. + * @param value - the staged credential literal. + * @returns whether the Host reports a configured credential afterwards. + */ + async writeKey(value) { + try { + await this.api.credentials.set({ + ref: refOf(this.scope.getSnapshot()), + value + }); + } catch (_credentialWriteFailure) {} + await this.readCredential(); + return this.credential.configured; + } + }; + /** + * The credential reference the section names, or the provider's default. + * @param snapshot - the current scope snapshot. + * @returns the reference to address. + */ + function refOf(snapshot) { + const declared = snapshot.value?.apiKeyEnv; + return declared !== void 0 && declared.length > 0 ? declared : DEFAULT_API_KEY_REF; + } + //#endregion + //#region lib/types/client/locales.js + /** Locale bundles for the plugin configuration section and its plugin cards. */ + /** English copy. */ + const en = { + nav: "Plugins", + title: "Plugins", + intro: "Configure and inspect the plugins installed in this deployment.", + tabs: "Plugin views", + configurableTab: "Plugin configuration", + empty: "This deployment exposes no plugin settings.", + overridden: "Overridden", + reset: "Reset to default", + readOnly: "This deployment stores settings read-only.", + expand: "Show settings", + collapse: "Hide settings", + save: "Save", + saving: "Saving…", + discard: "Discard", + unsaved: "Unsaved", + saveFailed: "The deployment did not accept these values; they were left for you to correct.", + invalidNumber: "Enter a number, or leave blank to use the default.", + bashTitle: "Shell", + bashDescription: "Limits every command the agent runs.", + bashTimeoutMs: "Command timeout (ms)", + bashTimeoutMsHint: "How long one command may run before it is terminated.", + bashMaxOutputBytes: "Output cap per stream (bytes)", + bashMaxOutputBytesHint: "Output beyond this spills to a temporary file rather than being lost.", + agentLoopTitle: "Agent loop", + agentLoopDescription: "How the agent dispatches tool calls.", + agentLoopMaxParallel: "Parallel tool calls", + agentLoopMaxParallelHint: "Upper bound on parallel-safe calls running at once within one step.", + webSearchTitle: "Web search", + webSearchDescription: "The DeepSeek search provider.", + webSearchApiKey: "API key", + webSearchApiKeyHint: "Stored outside the settings file. Leave blank to keep the current key.", + webSearchApiKeySet: "A key is configured.", + webSearchApiKeyUnset: "No key is configured; search is unavailable until one is.", + webSearchBaseUrl: "Endpoint", + webSearchBaseUrlHint: "Leave blank to use the provider default.", + webSearchMaxUses: "Max searches per request", + webSearchMaxUsesHint: "How many times one request may search before it must answer." + }; + /** Simplified Chinese copy. */ + const zh = { + nav: "æ�’ä»¶", + title: "æ�’ä»¶", + intro: "é…�置和查看本部署已安装的æ�’件。", + tabs: "æ�’件视图", + configurableTab: "æ�’ä»¶é…�ç½®", + empty: "本部署没有开放任何æ�’件设置。", + overridden: "已覆盖", + reset: "æ�¢å¤�默认", + readOnly: "本部署的设置为å�ªè¯»ã€‚", + expand: "展开设置", + collapse: "收起设置", + save: "ä¿�å­˜", + saving: "ä¿�存中…", + discard: "放弃修改", + unsaved: "未ä¿�å­˜", + saveFailed: "本部署没有接å�—这些值,已ä¿�留供你修改。", + invalidNumber: "请填数字;留空表示使用默认值。", + bashTitle: "终端", + bashDescription: "é™�制 agent è¿�行的æ¯�一æ�¡å‘½ä»¤ã€‚", + bashTimeoutMs: "命令超时(毫秒)", + bashTimeoutMsHint: "å�•æ�¡å‘½ä»¤å…�许è¿�行多久,超时å�³ç»ˆæ­¢ã€‚", + bashMaxOutputBytes: "å�•æµ�输出上é™�(字节)", + bashMaxOutputBytesHint: "超出部分会转存到临时文件,而ä¸�是被丢弃。", + agentLoopTitle: "Agent 循环", + agentLoopDescription: "Agent 如何派å�‘工具调用。", + agentLoopMaxParallel: "并行工具调用数", + agentLoopMaxParallelHint: "å�Œä¸€æ­¥å†…最多å�Œæ—¶è¿�行多少个å�¯å¹¶è¡Œçš„调用。", + webSearchTitle: "网页æ�œç´¢", + webSearchDescription: "DeepSeek æ�œç´¢æ��供方。", + webSearchApiKey: "API Key", + webSearchApiKeyHint: "ä¸�写入设置文件。留空表示ä¿�æŒ�当å‰�密钥。", + webSearchApiKeySet: "å·²é…�置密钥。", + webSearchApiKeyUnset: "未é…�置密钥;é…�置之å‰�æ�œç´¢ä¸�å�¯ç”¨ã€‚", + webSearchBaseUrl: "接å�£åœ°å�€", + webSearchBaseUrlHint: "留空则使用æ��供方默认地å�€ã€‚", + webSearchMaxUses: "å�•次请求最多æ�œç´¢æ¬¡æ•°", + webSearchMaxUsesHint: "一次请求在必须作答å‰�最多å�¯ä»¥æ�œç´¢å¤šå°‘次。" + }; + //#endregion + //#region lib/types/client/index.js + /** + * Plugins settings surface, browser half — one section whose feature-owned + * tabs include configurable Host plugin cards and read-only inventory. + * + * The section declares `settings.plugins.tab`; its own `configurable` tab then + * declares `settings.plugin.item` and renders whatever cards were registered + * into it. The three cards this package ships are the host-plane sections the + * deployment already exposes; each binds its namespace through the client + * settings scope, which keeps them unaware of one another and of other tabs. + */ + /** Dictionary namespace owned by this plugin. */ + const NS = "settings.plugins"; + /** Required services (cordis fiber inject). */ + const inject = [ + "slots", + "locale", + "connection", + "remote", + "settingsScope" + ]; + /** + * Mount the plugin configuration section and the cards this package ships. + * @param ctx - the browser plugin context. + */ + function apply(ctx) { + const { api } = ctx.get("connection"); + const t = ctx.locale.bind(NS); + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-settings-plugins: section dictionaries"); + const bash = new BashCardController(ctx.settingsScope.bind({ namespace: SHELL_NS })); + const agentLoop = new AgentLoopCardController(ctx.settingsScope.bind({ namespace: AGENT_LOOP_NS })); + const webSearch = new WebSearchCardController(ctx.settingsScope.bind({ namespace: WEB_SEARCH_NS }), api); + ctx.effect(() => ctx.remote.$on("credentials/updated", (ref) => { + webSearch.refreshCredential(ref); + }), "ui-settings-plugins: credential invalidations"); + let tabsVersion = -1; + let tabsRevision = -1; + let tabs = []; + const sectionInjected = () => ({ hooks: { tabs: { + getSnapshot: () => { + const version = ctx.slots.getVersion("settings.plugins.tab"); + const revision = ctx.locale.getSnapshot().revision; + if (version !== tabsVersion || revision !== tabsRevision) { + tabsVersion = version; + tabsRevision = revision; + tabs = ctx.slots.entries("settings.plugins.tab").map((entry) => ({ + /* v8 ignore next -- list-slot registration requires id */ + id: entry.options.id ?? "", + order: entry.options.order ?? 0, + label: (0, _deepseek_ai_dsh_client_ui_slots.resolveSlotLabel)(entry.options.label) ?? "" + })).sort((a, b) => a.order - b.order); + } + return tabs; + }, + subscribe: (listener) => { + const offLedger = ctx.slots.subscribe("settings.plugins.tab", listener); + const offLocale = ctx.locale.subscribe(listener); + return () => { + offLedger(); + offLocale(); + }; + } + } } }); + ctx.slots.inject("settings.section", () => ctx.slots.register({ + name: "settings.section", + id: "plugins", + order: 15, + label: () => t("nav"), + locale: NS, + inject: sectionInjected, + children: { "settings.plugins.tab": { + kind: "list", + scope: "root" + } } + }, PluginsSettingsSection)); + ctx.slots.inject("settings.plugins.tab", () => ctx.slots.register({ + name: "settings.plugins.tab", + id: "configurable", + order: 0, + label: () => t("configurableTab"), + locale: NS, + inject: () => ({ cardCount: ctx.slots.entries("settings.plugin.item").length }), + children: { "settings.plugin.item": { + kind: "list", + scope: "root" + } } + }, ConfigurablePluginsTab)); + ctx.slots.inject("settings.plugin.item", function* () { + yield ctx.slots.register({ + name: "settings.plugin.item", + id: "bash", + order: 0, + locale: NS, + inject: () => bash.inject() + }, BashCard); + yield ctx.slots.register({ + name: "settings.plugin.item", + id: "agent-loop", + order: 10, + locale: NS, + inject: () => agentLoop.inject() + }, AgentLoopCard); + yield ctx.slots.register({ + name: "settings.plugin.item", + id: "web-search", + order: 20, + locale: NS, + inject: () => webSearch.inject() + }, WebSearchCard); + }); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000020 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000020 new file mode 100644 index 0000000..c69658b --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000020 @@ -0,0 +1,679 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-user-questions", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs + function r(e) { + var t, f, n = ""; + if ("string" == typeof e || "number" == typeof e) n += e; + else if ("object" == typeof e) if (Array.isArray(e)) { + var o = e.length; + for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); + } else for (f in e) e[f] && (n && (n += " "), n += f); + return n; + } + function clsx() { + for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); + return n; + } + //#endregion + //#region lib/types/client/contract/slots.js + /** + * Narrow a request to a renderable plan review, or return undefined to leave it + * to the generic question flow. + * + * The card is one decision over one plan, and it claims a request only when it + * can send every answer that request allows — an intent changes the layout, + * never which answers are reachable. So the batch must be a single question + * that declares the intent, carries the plan as its detail, offers the approve + * label the intent names, and is a binary single choice: at most one option + * besides approve, and not multi-select. A third option or a multi-select batch + * has answers two buttons cannot express, so the generic flow keeps it — as it + * keeps any request whose intent the asker's own service would have rejected, + * because the client sits downstream of a wire boundary and every request must + * stay answerable. + * + * @param questions - the request's whole question batch. + * @returns The narrowed review, or undefined when the generic flow owns it. + */ + function planReviewOf(questions) { + if (questions.length !== 1) return void 0; + const question = questions[0]; + const intent = question.intent; + if (intent?.kind !== "plan-review" || question.detail === void 0) return void 0; + if (question.multiSelect === true) return void 0; + const options = question.options ?? []; + if (options.length > 2) return void 0; + const approve = options.find((option) => option.label === intent.approve); + if (approve === void 0) return void 0; + const decline = options.find((option) => option.label !== intent.approve); + return { + id: question.id, + question: question.question, + plan: question.detail, + approve, + ...decline === void 0 ? {} : { decline } + }; + } + /** + * Question domain face over the carrier: render identity and questions + * transparently forwarded; answer/cancel own the wire encoding (the success + * fields and the cancelled error) and turn a rejected carrier receipt into a + * thrown error. Components mint one per carrier via useMemo (never inside a + * select — a per-dispatch mint would churn identity and break memoization). + */ + var PendingQuestion = class { + wait; + /** + * @param wait - the runtime carrier for one pending question request. + */ + constructor(wait) { + this.wait = wait; + } + /** Opaque render identity (React key / draft remount axis), forwarded from the carrier. */ + get key() { + return this.wait.key; + } + /** The request's question list, forwarded from the carrier payload. */ + get questions() { + return this.wait.payload.questions; + } + /** + * Deliver the whole answer batch; a rejected carrier receipt throws. + * @param answer - complete structured answer batch. + */ + async answer(answer) { + const receipt = await this.wait.respond({ + ok: true, + value: { + sessionId: this.wait.sessionId, + answer + } + }); + if (!receipt.accepted) throw new Error(`question response rejected: ${receipt.reason}`); + } + /** Reject the whole wait (the host resolves the tool call as cancelled); a rejected receipt throws. */ + async cancel() { + const receipt = await this.wait.respond({ + ok: false, + error: { + code: "cancelled", + message: "the user closed this question request", + details: {} + } + }); + if (!receipt.accepted) throw new Error(`question cancellation rejected: ${receipt.reason}`); + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-user-questions/src/client/PlanReviewPanel.module.css.mjs + const css$1 = ".LVzXQa_frame{padding:6px calc(var(--dsh-composer-side-clearance) + 16px) 10px;justify-content:center;display:flex}.LVzXQa_card{width:100%;max-width:var(--dsh-chat-content-width);border:1px solid var(--dsw-alias-state-warn-secondary);background:var(--dsw-specific-input-major);max-height:min(60vh,520px);box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.LVzXQa_card,.LVzXQa_card *{box-sizing:border-box}.LVzXQa_strip{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-primary);flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;line-height:18px;display:flex}.LVzXQa_dot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;width:8px;height:8px}.LVzXQa_body{overscroll-behavior:contain;flex:auto;min-height:0;padding:12px 16px 4px;font-size:14px;line-height:22px;overflow-y:auto}.LVzXQa_footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px 12px;display:flex}.LVzXQa_feedback{min-height:16px;color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:16px}.LVzXQa_actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.LVzXQa_discuss{color:var(--dsw-alias-label-secondary);gap:6px}.LVzXQa_discuss:hover:not(:disabled){color:var(--dsw-alias-label-primary)}@media (width<=720px){.LVzXQa_card{border-radius:16px}.LVzXQa_body{padding:10px 12px 4px}.LVzXQa_footer{align-items:flex-end;padding:8px 12px 10px}}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-user-questions/PlanReviewPanel.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-user-questions"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var PlanReviewPanel_module_css_default = { + "dot": "LVzXQa_dot", + "feedback": "LVzXQa_feedback", + "frame": "LVzXQa_frame", + "strip": "LVzXQa_strip", + "body": "LVzXQa_body", + "card": "LVzXQa_card", + "actions": "LVzXQa_actions", + "discuss": "LVzXQa_discuss", + "footer": "LVzXQa_footer" + }; + //#endregion + //#region lib/types/client/PlanReviewPanel.js + /** + * Optional-prop spread for a decision button's tooltip: `title` is optional on + * the DOM props, and exactOptionalPropertyTypes rejects an explicit undefined. + * + * @param description - the asker's option description, when it carries one. + * @returns The `title` prop to spread, or nothing. + */ + function tooltip(description) { + return description === void 0 ? {} : { title: description }; + } + /** + * Render a plan review as a decision card. + * + * @param props - the question domain face, the narrowed plan review, and `t`. + * @returns The plan-review takeover for this request. + */ + function PlanReviewPanel({ pending, review, t }) { + const [busy, setBusy] = (0, react.useState)(false); + const [error, setError] = (0, react.useState)(null); + const settle = (send) => { + setBusy(true); + setError(null); + send().catch((cause) => { + setBusy(false); + setError(cause instanceof Error ? cause.message : String(cause)); + }); + }; + const decide = (label) => { + settle(() => pending.answer({ answers: [{ + id: review.id, + selected: [label] + }] })); + }; + const decline = review.decline; + return (0, react_jsx_runtime.jsx)("div", { + className: PlanReviewPanel_module_css_default.frame, + "data-plan-review-key": pending.key, + children: (0, react_jsx_runtime.jsxs)("section", { + className: PlanReviewPanel_module_css_default.card, + "aria-label": review.question, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: PlanReviewPanel_module_css_default.strip, + children: [(0, react_jsx_runtime.jsx)("span", { className: PlanReviewPanel_module_css_default.dot }), t("plan.header")] + }), + (0, react_jsx_runtime.jsx)("div", { + className: PlanReviewPanel_module_css_default.body, + "data-plan-review-scroll": true, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text: review.plan }) + }), + (0, react_jsx_runtime.jsxs)("div", { + className: PlanReviewPanel_module_css_default.footer, + children: [(0, react_jsx_runtime.jsx)("div", { + className: PlanReviewPanel_module_css_default.feedback, + role: "status", + children: error + }), (0, react_jsx_runtime.jsxs)("div", { + className: PlanReviewPanel_module_css_default.actions, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "ghost", + className: PlanReviewPanel_module_css_default.discuss, + icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 14 }), + disabled: busy, + onClick: () => { + settle(() => pending.cancel()); + }, + children: t("plan.discuss") + }), + decline !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + ...tooltip(decline.description), + disabled: busy, + onClick: () => { + decide(decline.label); + }, + children: t("plan.decline") + }), + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + ...tooltip(review.approve.description), + disabled: busy, + onClick: () => { + decide(review.approve.label); + }, + children: t("plan.approve") + }) + ] + })] + }) + ] + }) + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-user-questions/src/client/QuestionComposer.module.css.mjs + const css = ".Mbwy4a_frame{padding:6px calc(var(--dsh-composer-side-clearance) + 16px) 10px;justify-content:center;display:flex}.Mbwy4a_card{width:100%;max-width:var(--dsh-chat-content-width);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major);max-height:min(60vh,520px);box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:20px;flex-direction:column;padding:0 0 10px;display:flex;overflow:hidden}.Mbwy4a_card,.Mbwy4a_card *{box-sizing:border-box}.Mbwy4a_header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 16px 0 24px;display:flex}.Mbwy4a_headingBlock{min-width:0}.Mbwy4a_eyebrow{color:var(--dsw-alias-label-tertiary);margin-bottom:5px;font-size:11px;line-height:16px}.Mbwy4a_title{margin:0;font-size:16px;font-weight:500;line-height:22px}.Mbwy4a_detail{margin:0 2px 8px}.Mbwy4a_footerActions{flex-shrink:0;align-items:center;gap:12px;display:flex}.Mbwy4a_pager{flex-shrink:0;align-items:center;gap:6px;display:flex}.Mbwy4a_progress{color:var(--dsw-alias-label-secondary);white-space:nowrap;word-spacing:-2px;padding:0 4px;font-size:14px;font-weight:500;line-height:24px}.Mbwy4a_iconButton{width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;place-items:center;padding:0;display:grid}.Mbwy4a_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.Mbwy4a_iconButton:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.Mbwy4a_body{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.Mbwy4a_options{flex-direction:column;gap:1px;margin:8px 0 0;padding:4px 12px;display:flex}.Mbwy4a_option{width:100%;min-height:40px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-shrink:0;align-items:flex-start;gap:8px;padding:8px 12px 8px 8px;transition:background-color .12s,border-color .12s;display:flex}.Mbwy4a_option:hover:not(:disabled),.Mbwy4a_optionSelected{background:var(--dsw-alias-interactive-bg-hover)}.Mbwy4a_optionSelected{border-color:var(--dsw-alias-border-l2)}.Mbwy4a_option:disabled{cursor:default}.Mbwy4a_number{background:var(--dsw-alias-bg-overlay);width:20px;height:20px;color:var(--dsw-alias-label-secondary);border-radius:6px;flex:0 0 20px;place-items:center;margin-top:2px;font-size:12px;font-weight:500;line-height:18px;display:grid}.Mbwy4a_checkbox{flex:0 0 20px;place-items:center;width:20px;height:20px;margin-top:2px;display:grid}.Mbwy4a_checkbox:before{content:\"\";border:1px solid var(--dsw-alias-border-l4);border-radius:4px;grid-area:1/1;width:14px;height:14px;transition:background-color .12s,border-color .12s}.Mbwy4a_checkbox>svg{grid-area:1/1}.Mbwy4a_checkboxChecked{color:var(--dsw-alias-label-primary-foreground)}.Mbwy4a_checkboxChecked:before{border-color:var(--dsw-alias-label-primary);background:var(--dsw-alias-label-primary)}.Mbwy4a_optionCopy{flex:1;min-width:0}.Mbwy4a_optionLine{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.Mbwy4a_optionLabel{font-size:14px;font-weight:500;line-height:24px}.Mbwy4a_badge{background:var(--dsw-specific-sidebar-nav-item-active-accent);color:var(--dsw-alias-button-info-fill);border-radius:6px;padding:0 4px;font-size:11px;font-weight:600;line-height:18px}.Mbwy4a_description{color:var(--dsw-alias-label-tertiary);font-size:14px;font-weight:400;line-height:24px}.Mbwy4a_customRow{border:1px solid #0000;border-radius:12px;flex-shrink:0;align-items:flex-start;gap:8px;width:100%;min-height:40px;padding:8px 12px 8px 8px;transition:background-color .12s,border-color .12s;display:flex}.Mbwy4a_customRow:hover,.Mbwy4a_customRow:focus-within,.Mbwy4a_customRowActive{background:var(--dsw-alias-interactive-bg-hover)}.Mbwy4a_customRow:focus-within,.Mbwy4a_customRowActive{border-color:var(--dsw-alias-border-l2)}.Mbwy4a_customInput{min-width:0;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px;line-height:24px}.Mbwy4a_customInput::placeholder{color:var(--dsw-alias-label-caption)}.Mbwy4a_customTextarea{resize:none;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);min-height:64px;max-height:140px;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);font:inherit;border-radius:10px;outline:none;flex-shrink:0;margin:0 12px;padding:8px 12px;font-size:14px;line-height:24px;display:block}.Mbwy4a_customTextarea:focus{border-color:var(--dsw-alias-state-business-primary)}.Mbwy4a_customTextarea::placeholder{color:var(--dsw-alias-label-caption)}.Mbwy4a_footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:0 10px 0 18px;display:flex}.Mbwy4a_feedback{min-height:16px;color:var(--dsw-alias-state-error-primary);text-align:right;flex:1;font-size:11px;line-height:16px}@media (width<=720px){.Mbwy4a_card{border-radius:16px}.Mbwy4a_header{padding:10px 12px 0 18px}.Mbwy4a_options{padding:4px 8px}.Mbwy4a_title{font-size:15px;line-height:21px}.Mbwy4a_option,.Mbwy4a_customRow{padding:8px 6px}.Mbwy4a_footer{align-items:flex-end;padding:0 10px}.Mbwy4a_footerActions{flex-shrink:0}}@media (prefers-reduced-motion:reduce){.Mbwy4a_option,.Mbwy4a_customRow{transition:none}}"; + const tagId = "@deepseek-ai/dsh-client-ui-user-questions/QuestionComposer.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-user-questions"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var QuestionComposer_module_css_default = { + "pager": "Mbwy4a_pager", + "optionCopy": "Mbwy4a_optionCopy", + "footer": "Mbwy4a_footer", + "iconButton": "Mbwy4a_iconButton", + "option": "Mbwy4a_option", + "description": "Mbwy4a_description", + "optionLine": "Mbwy4a_optionLine", + "card": "Mbwy4a_card", + "customRow": "Mbwy4a_customRow", + "eyebrow": "Mbwy4a_eyebrow", + "options": "Mbwy4a_options", + "body": "Mbwy4a_body", + "customRowActive": "Mbwy4a_customRowActive", + "detail": "Mbwy4a_detail", + "customInput": "Mbwy4a_customInput", + "title": "Mbwy4a_title", + "checkbox": "Mbwy4a_checkbox", + "feedback": "Mbwy4a_feedback", + "headingBlock": "Mbwy4a_headingBlock", + "progress": "Mbwy4a_progress", + "checkboxChecked": "Mbwy4a_checkboxChecked", + "header": "Mbwy4a_header", + "optionLabel": "Mbwy4a_optionLabel", + "badge": "Mbwy4a_badge", + "customTextarea": "Mbwy4a_customTextarea", + "footerActions": "Mbwy4a_footerActions", + "optionSelected": "Mbwy4a_optionSelected", + "number": "Mbwy4a_number", + "frame": "Mbwy4a_frame" + }; + //#endregion + //#region lib/types/client/QuestionComposer.js + /** + * Split the conventional recommendation suffix without changing the answer value. + * @param label - Original option label returned if selected. + * @returns Display label plus recommendation state. + */ + function parseRecommendedLabel(label) { + const suffix = /\s*(?:\((?:recommended|推è��)\)|((?:recommended|推è��)))\s*$/i; + return suffix.test(label) ? { + label: label.replace(suffix, ""), + recommended: true + } : { + label, + recommended: false + }; + } + /** Return whether a text-field key event belongs to an active IME composition. */ + function isComposing(event) { + return event.nativeEvent.isComposing || event.nativeEvent.keyCode === 229; + } + /** + * Composer takeover boundary; the carrier key keys local drafts, so a + * same-request replay (same key, new carrier object) preserves them. + * + * One takeover, two shapes: a request that declares a presentation intent this + * package renders takes that shape (a plan review is one decision over one + * plan, not a question set), and every other request takes the generic flow. + * The routing lives here, at the one entry that owns the composer seat, so + * neither shape can claim a request the other is already rendering. + * + * @param props - the selector-matched pending question carrier plus the framework standard kit. + * @returns The question flow, or the intent's own surface, for this request. + */ + function QuestionComposer(props) { + const question = (0, react.useMemo)(() => new PendingQuestion(props.matched), [props.matched]); + const review = (0, react.useMemo)(() => planReviewOf(question.questions), [question]); + return review === void 0 ? (0, react_jsx_runtime.jsx)(QuestionFlow, { + pending: question, + t: props.t + }, question.key) : (0, react_jsx_runtime.jsx)(PlanReviewPanel, { + pending: question, + review, + t: props.t + }, question.key); + } + function QuestionFlow({ pending, t }) { + const questions = pending.questions; + const [index, setIndex] = (0, react.useState)(0); + const [drafts, setDrafts] = (0, react.useState)(() => questions.map(() => ({ + selected: [], + custom: "", + skipped: false + }))); + const [busy, setBusy] = (0, react.useState)(null); + const [error, setError] = (0, react.useState)(null); + const question = questions[index]; + const draft = drafts[index]; + const hasOptions = (question.options?.length ?? 0) > 0; + const cancelFlow = () => { + setBusy("cancel"); + setError(null); + pending.cancel().catch((cause) => { + setBusy(null); + setError({ text: cause instanceof Error ? cause.message : String(cause) }); + }); + }; + const updateDraft = (update) => { + setDrafts((current) => current.map((item, itemIndex) => itemIndex === index ? update(item) : item)); + setError(null); + }; + const choose = (label) => { + updateDraft((current) => { + if (question.multiSelect === true) { + const selected = current.selected.includes(label) ? current.selected.filter((item) => item !== label) : [...current.selected, label]; + return { + ...current, + selected, + skipped: false + }; + } + return { + selected: [label], + custom: "", + skipped: false + }; + }); + if (question.multiSelect !== true && index < questions.length - 1) setIndex((current) => current + 1); + }; + const answered = (item) => item.selected.length > 0 || item.custom.trim() !== ""; + const completed = (item) => answered(item) || item.skipped; + const submitDrafts = (values) => { + const missing = values.findIndex((item) => !completed(item)); + if (missing >= 0) { + setIndex(missing); + setError({ key: "error.incomplete" }); + return; + } + const answer = { answers: questions.map((item, itemIndex) => { + const value = values[itemIndex]; + if (value.skipped) return { + id: item.id, + selected: [] + }; + const custom = value.custom.trim(); + return { + id: item.id, + selected: custom === "" || item.multiSelect === true ? value.selected : [], + ...custom === "" ? {} : { custom } + }; + }) }; + setBusy("answer"); + setError(null); + pending.answer(answer).catch((cause) => { + setBusy(null); + setError({ text: cause instanceof Error ? cause.message : String(cause) }); + }); + }; + const continueFlow = () => { + if (!answered(draft)) { + setError({ key: "error.unanswered" }); + return; + } + if (index < questions.length - 1) { + setIndex((current) => current + 1); + setError(null); + return; + } + submitDrafts(drafts); + }; + const draftCustom = (event) => { + const value = event.target.value; + updateDraft((current) => ({ + ...current, + selected: question.multiSelect === true ? current.selected : [], + custom: value, + skipped: false + })); + }; + const continueFromCustom = (event) => { + if (event.key !== "Enter" || event.shiftKey || isComposing(event)) return; + event.preventDefault(); + continueFlow(); + }; + const skipQuestion = () => { + const nextDrafts = drafts.map((item, itemIndex) => itemIndex === index ? { + selected: [], + custom: "", + skipped: true + } : item); + setDrafts(nextDrafts); + setError(null); + if (index < questions.length - 1) { + setIndex((current) => current + 1); + return; + } + submitDrafts(nextDrafts); + }; + return (0, react_jsx_runtime.jsx)("div", { + className: QuestionComposer_module_css_default.frame, + "data-question-key": pending.key, + children: (0, react_jsx_runtime.jsxs)("section", { + className: QuestionComposer_module_css_default.card, + "aria-labelledby": `question-${pending.key}-${String(index)}`, + children: [ + (0, react_jsx_runtime.jsxs)("header", { + className: QuestionComposer_module_css_default.header, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: QuestionComposer_module_css_default.headingBlock, + children: [question.header !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: QuestionComposer_module_css_default.eyebrow, + children: question.header + }), (0, react_jsx_runtime.jsx)("h2", { + className: QuestionComposer_module_css_default.title, + id: `question-${pending.key}-${String(index)}`, + children: question.question + })] + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QuestionComposer_module_css_default.iconButton, + "aria-label": t("nav.cancel"), + title: t("nav.cancel"), + disabled: busy !== null, + onClick: cancelFlow, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, {}) + })] + }), + (0, react_jsx_runtime.jsxs)("div", { + className: QuestionComposer_module_css_default.body, + "data-question-scroll": true, + children: [question.detail !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: QuestionComposer_module_css_default.detail, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text: question.detail }) + }), (0, react_jsx_runtime.jsxs)("div", { + className: QuestionComposer_module_css_default.options, + role: question.multiSelect === true ? "group" : "radiogroup", + children: [(question.options ?? []).map((option, optionIndex) => { + const selected = draft.selected.includes(option.label); + const display = parseRecommendedLabel(option.label); + return (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: clsx(QuestionComposer_module_css_default.option, selected && question.multiSelect !== true && QuestionComposer_module_css_default.optionSelected), + role: question.multiSelect === true ? "checkbox" : "radio", + "aria-checked": selected, + "aria-label": display.label, + disabled: busy !== null, + onClick: () => { + choose(option.label); + }, + onKeyDown: (event) => { + if (event.key !== "Enter" || !drafts.every(completed)) return; + event.preventDefault(); + submitDrafts(drafts); + }, + children: [question.multiSelect === true ? (0, react_jsx_runtime.jsx)("span", { + className: clsx(QuestionComposer_module_css_default.checkbox, selected && QuestionComposer_module_css_default.checkboxChecked), + "aria-hidden": "true", + children: selected && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline14, { size: 12 }) + }) : (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.number, + children: optionIndex + 1 + }), (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.optionCopy, + children: (0, react_jsx_runtime.jsxs)("span", { + className: QuestionComposer_module_css_default.optionLine, + children: [ + (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.optionLabel, + children: display.label + }), + display.recommended && (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.badge, + children: t("option.recommended") + }), + option.description !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.description, + children: option.description + }) + ] + }) + })] + }, `${option.label}-${String(optionIndex)}`); + }), hasOptions ? (0, react_jsx_runtime.jsxs)("div", { + className: clsx(QuestionComposer_module_css_default.customRow, draft.custom !== "" && QuestionComposer_module_css_default.customRowActive), + children: [question.multiSelect === true ? (0, react_jsx_runtime.jsx)("span", { + className: clsx(QuestionComposer_module_css_default.checkbox, draft.custom !== "" && QuestionComposer_module_css_default.checkboxChecked), + "aria-hidden": "true", + children: draft.custom !== "" && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline14, { size: 12 }) + }) : (0, react_jsx_runtime.jsx)("span", { + className: QuestionComposer_module_css_default.number, + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, { size: 12 }) + }), (0, react_jsx_runtime.jsx)("input", { + type: "text", + className: QuestionComposer_module_css_default.customInput, + value: draft.custom, + disabled: busy !== null, + placeholder: t("custom.placeholder"), + onChange: draftCustom, + onKeyDown: continueFromCustom + })] + }) : (0, react_jsx_runtime.jsx)("textarea", { + autoFocus: true, + className: QuestionComposer_module_css_default.customTextarea, + value: draft.custom, + disabled: busy !== null, + rows: 2, + placeholder: t("custom.placeholder"), + onChange: draftCustom, + onKeyDown: continueFromCustom + })] + })] + }), + (0, react_jsx_runtime.jsxs)("footer", { + className: QuestionComposer_module_css_default.footer, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: QuestionComposer_module_css_default.pager, + children: [ + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QuestionComposer_module_css_default.iconButton, + "aria-label": t("nav.prev"), + disabled: index === 0 || busy !== null, + onClick: () => { + setIndex(index - 1); + setError(null); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronLeftOutline14, {}) + }), + (0, react_jsx_runtime.jsxs)("span", { + className: QuestionComposer_module_css_default.progress, + children: [ + index + 1, + " / ", + questions.length + ] + }), + (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: QuestionComposer_module_css_default.iconButton, + "aria-label": t("nav.next"), + disabled: index === questions.length - 1 || busy !== null, + onClick: () => { + setIndex(index + 1); + setError(null); + }, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {}) + }) + ] + }), + (0, react_jsx_runtime.jsx)("div", { + className: QuestionComposer_module_css_default.feedback, + role: "status", + children: error === null ? null : "key" in error ? t(error.key) : error.text + }), + (0, react_jsx_runtime.jsxs)("div", { + className: QuestionComposer_module_css_default.footerActions, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "outline", + disabled: busy !== null, + onClick: skipQuestion, + children: t("action.skip") + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, { + variant: "primary", + disabled: busy !== null || !answered(draft), + onClick: continueFlow, + children: busy === "answer" ? t("submitting") : index === questions.length - 1 ? t("submit") : t("action.next") + })] + }) + ] + }) + ] + }) + }); + } + //#endregion + //#region lib/types/client/locales.js + /** `question` namespace dictionaries. */ + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "error.incomplete": "请先完æˆ�è¿™é�“问题。", + "error.unanswered": "请选择一个选项或填写自定义答案。", + "nav.prev": "上一题", + "nav.next": "下一题", + "nav.cancel": "放弃整组问题", + "option.recommended": "推è��", + "custom.placeholder": "输入你的答案", + "action.skip": "跳过本题", + "action.next": "下一题", + "plan.header": "计划待审", + "plan.approve": "确认执行", + "plan.decline": "æ‹’ç»�", + "plan.discuss": "去è�Šå¤©é‡Œè¯´" + }; + /** English dictionary, checked complete against the zh key set. */ + const en = { + "error.incomplete": "Please complete this question first.", + "error.unanswered": "Please select an option or enter a custom answer.", + "nav.prev": "Previous question", + "nav.next": "Next question", + "nav.cancel": "Dismiss all questions", + "option.recommended": "Recommended", + "custom.placeholder": "Type your answer", + "action.skip": "Skip this question", + "action.next": "Next", + "plan.header": "Plan review", + "plan.approve": "Approve", + "plan.decline": "Refuse", + "plan.discuss": "Chat about it" + }; + //#endregion + //#region lib/types/client/index.js + /** Dictionary namespace owned by this plugin. */ + const NS = "question"; + /** Required services: the slot registry and the question composer's copy. */ + const inject = ["slots", "locale"]; + /** Chain routing: claim the composer while a question wait is pending (pure — owner props only). */ + function selectQuestion({ interactions }) { + return interactions.find((i) => i.kind === "question") ?? null; + } + /** + * Client plugin body: register the `question` dictionaries and the question + * composer into the composer chain. Zero business face — data and verbs live + * on the matched carrier; t rides the standard locale seat. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-user-questions: dictionaries"); + ctx.slots.inject("conversation.composer", () => ctx.slots.register({ + name: "conversation.composer", + select: selectQuestion, + locale: NS + }, QuestionComposer)); + } + //#endregion + exports.PendingQuestion = PendingQuestion; + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000021 b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000021 new file mode 100644 index 0000000..0fd7d6d --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/Cache_Data/f_000021 @@ -0,0 +1,7370 @@ +window.__ModuleLoader__.load({ + id: "@deepseek-ai/dsh-client-ui-trajectory", + factory: (require) => { + var module = { exports: {} }; + var exports = module.exports; + Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); + //#region \0rolldown/runtime.js + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true + }) : target, mod)); + //#endregion + let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client"); + let react_jsx_runtime = require("react/jsx-runtime"); + let react = require("react"); + react = __toESM(react, 1); + let react_dom = require("react-dom"); + let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives"); + //#region lib/types/client/duration-store.js + /** + * Create the browser-wide trajectory duration preference source. + * @returns a persisted source shared by every session view in one plugin lifecycle. + */ + function createTrajectoryDurationStore() { + return (0, _deepseek_ai_dsh_client_runtime_client.createSnapshotStore)(false, { persist: { name: "dsh.trajectory.duration" } }); + } + //#endregion + //#region lib/types/client/locales.js + /** `trajectory` namespace dictionaries (view tab label + toolbar strings). */ + /** Dictionary namespace owned by this plugin. */ + const NS = "trajectory"; + /** Simplified Chinese dictionary (the key-set source of truth). */ + const zh = { + "view.trajectory": "轨迹", + "toolbar.aria": "轨迹工具æ �", + "toolbar.duration": "Duration", + "toolbar.useActualDuration": "Use actual duration", + "toolbar.useEqualWidth": "Use equal-width operations", + "toolbar.actualTime": "实际时间", + "toolbar.turns": "Turns", + "toolbar.expandTurns": "Expand turns", + "toolbar.collapseTurns": "Collapse turns", + "toolbar.calls": "Calls", + "toolbar.expandCalls": "Expand calls", + "toolbar.collapseCalls": "Collapse calls", + "toolbar.search": "æ�œç´¢è½¨è¿¹", + "toolbar.searchPlaceholder": "æ�œç´¢" + }; + /** English dictionary. */ + const en = { + "view.trajectory": "Trajectory", + "toolbar.aria": "Trajectory toolbar", + "toolbar.duration": "Duration", + "toolbar.useActualDuration": "Use actual duration", + "toolbar.useEqualWidth": "Use equal-width operations", + "toolbar.actualTime": "Actual time", + "toolbar.turns": "Turns", + "toolbar.expandTurns": "Expand turns", + "toolbar.collapseTurns": "Collapse turns", + "toolbar.calls": "Calls", + "toolbar.expandCalls": "Expand calls", + "toolbar.collapseCalls": "Collapse calls", + "toolbar.search": "Search trajectory", + "toolbar.searchPlaceholder": "Search" + }; + //#endregion + //#region lib/types/client/trajectory-definition-common.js + /** + * Wrap one contribution in the Engine-owned target envelope. + * + * @param context - Context that owns the contribution identity. + * @param anchorSeq - Sequence used to order the contribution. + * @param data - Trajectory-specific contribution payload. + * @returns The contribution wrapped as a Trajectory view node. + */ + function trajectoryNode(context, anchorSeq, data) { + return { + key: context.key, + kind: context.kind, + id: context.id, + target: "trajectory", + anchorSeq, + location: context.start?.location ?? { kind: "unresolved" }, + data + }; + } + //#endregion + //#region lib/types/client/trajectory-assistant-definition.js + function initialState(turn, step, startSeq, startTime, started) { + return { + turn, + step, + startSeq, + startTime, + started, + sawChunk: false, + blocks: [], + firstVisibleSeq: void 0, + firstVisibleTime: void 0, + firstTokenTime: void 0, + final: void 0, + usage: void 0, + retry: void 0, + stepEnd: void 0 + }; + } + function compactBlocks(blocks) { + return blocks.filter((block) => block !== void 0); + } + function hasVisibleContent(blocks) { + return blocks.some((block) => { + if (block.kind === "tool-call") return false; + if (block.kind === "text" || block.kind === "reasoning") return block.text.trim() !== ""; + return true; + }); + } + function hasInterruptionEvidence(blocks) { + return blocks.some((block) => { + if (block.kind === "text" || block.kind === "reasoning") return block.text.trim() !== ""; + return true; + }); + } + function addUsage$1(current, next) { + return { + inputTokens: (current?.inputTokens ?? 0) + next.inputTokens, + outputTokens: (current?.outputTokens ?? 0) + next.outputTokens, + ...current?.cacheReadTokens === void 0 && next.cacheReadTokens === void 0 ? {} : { cacheReadTokens: (current?.cacheReadTokens ?? 0) + (next.cacheReadTokens ?? 0) }, + ...current?.cacheWriteTokens === void 0 && next.cacheWriteTokens === void 0 ? {} : { cacheWriteTokens: (current?.cacheWriteTokens ?? 0) + (next.cacheWriteTokens ?? 0) }, + ...current?.reasoningTokens === void 0 && next.reasoningTokens === void 0 ? {} : { reasoningTokens: (current?.reasoningTokens ?? 0) + (next.reasoningTokens ?? 0) } + }; + } + function updateChunk(state, match) { + if (match.event.type !== "assistant/chunk") return state; + const chunk = match.event.data.chunk; + if (chunk.type === "usage") return { + ...state, + sawChunk: true, + usage: addUsage$1(state.usage, chunk.usage) + }; + const blocks = [...state.blocks]; + switch (chunk.type) { + case "block-start": + blocks[chunk.index] = (0, _deepseek_ai_dsh_client_runtime_client.emptyAssistantBlock)(chunk.blockType); + break; + case "text-delta": { + const previous = blocks[chunk.index]; + blocks[chunk.index] = { + kind: "text", + text: (previous?.kind === "text" ? previous.text : "") + chunk.text + }; + break; + } + case "reasoning-delta": { + const previous = blocks[chunk.index]; + blocks[chunk.index] = { + kind: "reasoning", + text: (previous?.kind === "reasoning" ? previous.text : "") + chunk.text + }; + break; + } + case "tool-call-delta": { + const previous = blocks[chunk.index]; + const base = previous?.kind === "tool-call" ? previous : { + kind: "tool-call", + callId: "", + name: "", + argsRaw: "" + }; + blocks[chunk.index] = { + kind: "tool-call", + callId: base.callId || String(chunk.id), + name: chunk.name ?? base.name, + argsRaw: base.argsRaw + chunk.argumentsDelta + }; + break; + } + case "block-end": + blocks[chunk.index] = (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlock)(chunk.block); + break; + default: return { + ...state, + sawChunk: true + }; + } + const visible = hasVisibleContent(compactBlocks(blocks)); + return { + ...state, + sawChunk: true, + blocks, + ...visible && state.firstVisibleSeq === void 0 ? { + firstVisibleSeq: match.event.seq, + firstVisibleTime: match.event.time + } : {}, + ...(0, _deepseek_ai_dsh_client_runtime_client.isTokenDelta)(chunk) && state.firstTokenTime === void 0 ? { firstTokenTime: match.event.time } : {} + }; + } + function closedBoundary(context) { + if (context.state?.stepEnd?.event.type === "step/end") return context.state.stepEnd.event; + const location = context.start?.location ?? context.matches.at(-1)?.location; + if (location?.kind === "step" && location.step.status === "closed") return location.step.end; + if ((location?.kind === "step" || location?.kind === "turn") && location.turn.status === "closed") return location.turn.end; + } + function fallbackState$1(context) { + let state; + for (const match of context.matches) { + const event = match.event; + if (event.type === "assistant/chunk") { + state ??= initialState(event.data.turn, event.data.step, event.seq, event.time, false); + state = updateChunk(state, match); + } else if (event.type === "assistant/message") { + state ??= initialState(event.data.turn, event.data.step, event.seq, event.time, false); + state = { + ...state, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(event.data.message.content), + final: match, + usage: state.usage ?? event.data.usage + }; + } else if (event.type === "step/end" && state !== void 0) state = { + ...state, + stepEnd: match + }; + } + return state; + } + function finalNode(state, context) { + const final = state.final; + if (final?.event.type === "assistant/message") { + const event = final.event; + return { + kind: "assistant", + seq: event.seq, + messageId: event.data.message.id, + time: event.time, + turn: state.turn, + step: state.step, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(event.data.message.content), + usage: event.data.usage, + provenance: { + provider: event.data.message.source.provider, + model: event.data.message.source.model + }, + timing: { + stepStartTime: state.started ? state.startTime : null, + firstTokenTime: state.firstTokenTime ?? null, + completedTime: event.time + } + }; + } + const boundary = closedBoundary(context); + const blocks = compactBlocks(state.blocks); + if (boundary === void 0 || !hasInterruptionEvidence(blocks)) return void 0; + return { + kind: "assistant", + seq: boundary.seq - .9, + time: boundary.time, + turn: state.turn, + step: state.step, + blocks, + interrupted: true + }; + } + function assistantRequest(state, node, boundary) { + if (!state.started) return void 0; + const status = node !== void 0 && node.interrupted !== true ? "complete" : state.retry !== void 0 || boundary !== void 0 ? "error" : "running"; + return { + purpose: "assistant", + startSeq: state.startSeq, + turn: state.turn, + step: state.step, + startedAt: state.startTime, + completedAt: node?.time ?? boundary?.time ?? null, + status, + ...state.retry === void 0 ? {} : { + error: state.retry.message, + retry: state.retry.retry, + ...state.retry.maxRetries === void 0 ? {} : { maxRetries: state.retry.maxRetries }, + retryDelayMs: state.retry.delayMs + }, + ...node === void 0 || node.interrupted === true ? {} : { + resultSeq: node.seq, + ...node.provenance === void 0 ? {} : { provenance: node.provenance } + }, + ...state.usage === void 0 ? {} : { usage: state.usage } + }; + } + /** Trajectory-owned Assistant streaming, settlement, and request lifecycle. */ + const trajectoryAssistantDefinition = { + kind: "trajectory-assistant-step", + target: "trajectory", + match: (event) => { + if (event.type === "step/start") return { + id: `${event.data.turn}:${event.data.step}`, + role: "start" + }; + if (event.type === "assistant/chunk" || event.type === "assistant/message" || event.type === "llm/retry" || event.type === "step/end") return { + id: `${event.data.turn}:${event.data.step}`, + role: "update" + }; + return null; + }, + start: (_context, match) => { + if (match.event.type !== "step/start") throw new Error("trajectory-assistant-step start requires step/start"); + return initialState(match.event.data.turn, match.event.data.step, match.event.seq, match.event.time, true); + }, + update: (context, match) => { + if (match.event.type === "assistant/chunk") return updateChunk(context.state, match); + if (match.event.type === "assistant/message") return { + ...context.state, + blocks: (0, _deepseek_ai_dsh_client_runtime_client.toAssistantBlocks)(match.event.data.message.content), + final: match, + usage: context.state.usage ?? match.event.data.usage + }; + if (match.event.type === "step/end") return { + ...context.state, + stepEnd: match + }; + if (match.event.type !== "llm/retry") return context.state; + const data = match.event.data; + return { + ...initialState(context.state.turn, context.state.step, context.state.startSeq, context.state.startTime, true), + firstTokenTime: context.state.firstTokenTime, + usage: context.state.usage, + retry: { + message: (0, _deepseek_ai_dsh_client_runtime_client.displayFailureMessage)(data.failure), + retry: data.retry, + ...data.mode === "normal" ? { maxRetries: data.maxRetries } : {}, + delayMs: data.delayMs + } + }; + }, + publication: (match) => { + if (match.event.type === "step/start") return "none"; + if (match.event.type !== "assistant/chunk") return "immediate"; + const type = match.event.data.chunk.type; + return type === "usage" || type === "finish" ? "none" : "animation-frame"; + }, + buildViewNode: (context) => { + const state = context.state ?? fallbackState$1(context); + if (state === void 0) return null; + const node = finalNode(state, context); + const boundary = closedBoundary(context); + const partial = node === void 0 && boundary === void 0 && state.sawChunk ? { + turn: state.turn, + step: state.step, + blocks: compactBlocks(state.blocks) + } : null; + const request = assistantRequest(state, node, boundary); + if (node === void 0 && partial === null && request === void 0) return null; + return trajectoryNode(context, state.startSeq, { + kind: "assistant", + ...node === void 0 ? {} : { node }, + partial, + ...request === void 0 ? {} : { request } + }); + } + }; + const trajectoryTurnEndDefinition = { + kind: "trajectory-turn-end", + target: "trajectory", + match: (event) => event.type === "turn/end" ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match) => { + if (match.event.type !== "turn/end") throw new Error("trajectory-turn-end start requires turn/end"); + const reason = match.event.data.reason; + return { + turn: match.event.data.turn, + seq: match.event.seq, + time: match.event.time, + ...reason.kind === "error" ? { error: (0, _deepseek_ai_dsh_client_runtime_client.displayFailureMessage)(reason.error) } : {} + }; + }, + update: (context) => context.state, + buildViewNode: (context) => context.state === void 0 ? null : trajectoryNode(context, context.state.seq, { + kind: "turn-end", + turn: context.state.turn, + time: context.state.time, + ...context.state.error === void 0 ? {} : { error: context.state.error } + }) + }; + /** + * Register the Trajectory Assistant lifecycle. + * + * @param ctx - Plugin context receiving the Definitions. + */ + function registerTrajectoryAssistantDefinition(ctx) { + ctx.conversationEvents.register(trajectoryAssistantDefinition); + ctx.conversationEvents.register(trajectoryTurnEndDefinition); + } + //#endregion + //#region lib/types/client/trajectory-compaction-definition.js + function checkpointId(event) { + if (event.type !== "user/message") return void 0; + const source = event.data.source; + return source.kind === "plugin" && source.plugin === "compact" && typeof source.compactionId === "string" && source.compactionId !== "" ? source.compactionId : void 0; + } + function eventCompactionId(event) { + if (event.type !== "compaction/start" && event.type !== "compaction/summary" && event.type !== "compaction/end") return void 0; + const value = event.data.compactionId; + return typeof value === "string" && value !== "" ? value : void 0; + } + function requestFromState(state) { + const start = state.start.event; + if (start.type !== "compaction/start") return void 0; + const summary = state.summary?.event; + const end = state.end?.event; + const checkpoint = state.checkpoint?.event; + return { + purpose: "compaction", + startSeq: start.seq, + turn: start.data.turn, + step: 0, + startedAt: start.time, + completedAt: end?.type === "compaction/end" ? end.time : null, + status: end?.type !== "compaction/end" ? "running" : end.data.error === void 0 ? "complete" : "error", + ...end?.type === "compaction/end" && end.data.error !== void 0 ? { error: end.data.error } : {}, + ...summary?.type !== "compaction/summary" ? {} : { + resultSeq: summary.seq, + summary: summary.data.summary, + ...summary.data.rawOutput === void 0 ? {} : { rawOutput: summary.data.rawOutput }, + provenance: { + provider: summary.data.provider, + model: summary.data.model + }, + requestConfig: { + provider: summary.data.provider, + model: summary.data.model, + purpose: "compaction", + ...summary.data.maxTokens === void 0 ? {} : { maxTokens: summary.data.maxTokens } + }, + ...summary.data.usage === void 0 ? {} : { usage: summary.data.usage } + }, + ...checkpoint?.type === "user/message" ? { replacementSeq: checkpoint.seq } : {} + }; + } + const trajectoryCompactionDefinition = { + kind: "trajectory-compaction", + target: "trajectory", + match: (event) => { + const compactId = eventCompactionId(event); + if (compactId !== void 0) return { + id: compactId, + role: event.type === "compaction/start" ? "start" : "update" + }; + const checkpoint = checkpointId(event); + return checkpoint === void 0 ? null : { + id: checkpoint, + role: "update" + }; + }, + start: (_context, match) => { + if (match.event.type !== "compaction/start") throw new Error("trajectory-compaction start requires compaction/start"); + return { start: match }; + }, + update: (context, match) => { + if (match.event.type === "compaction/summary") return { + ...context.state, + summary: match + }; + if (match.event.type === "compaction/end") return { + ...context.state, + end: match + }; + return checkpointId(match.event) === void 0 ? context.state : { + ...context.state, + checkpoint: match + }; + }, + buildViewNode: (context) => { + if (context.state === void 0) return null; + const request = requestFromState(context.state); + return request === void 0 ? null : trajectoryNode(context, request.startSeq, { + kind: "compaction", + request + }); + } + }; + const trajectorySessionEndDefinition = { + kind: "trajectory-session-end", + target: "trajectory", + match: (event) => event.type === "session/end-seed" ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match) => ({ + seq: match.event.seq, + time: match.event.time + }), + update: (context) => context.state, + buildViewNode: (context) => context.state === void 0 ? null : trajectoryNode(context, context.state.seq, { + kind: "session-end", + seq: context.state.seq, + time: context.state.time + }) + }; + /** + * Register Trajectory compaction requests and session boundaries. + * + * @param ctx - Plugin context receiving the Definitions. + */ + function registerTrajectoryCompactionDefinitions(ctx) { + ctx.conversationEvents.register(trajectoryCompactionDefinition); + ctx.conversationEvents.register(trajectorySessionEndDefinition); + } + //#endregion + //#region lib/types/client/trajectory-message-definitions.js + function applySplice(previous, splice) { + const pending = [...previous?.state.pending ?? []]; + const claimed = new Set(previous?.state.claimed ?? []); + const removed = pending.splice(splice.start, splice.removedCount ?? 0, ...splice.inserted); + for (const identity of splice.inserted) claimed.delete(identity.id); + if (splice.outcome !== "canceled") for (const identity of removed) claimed.add(identity.id); + return { + pending, + claimed + }; + } + const trajectoryInboxDefinition = { + kind: "trajectory-inbox-next-step", + match: (event) => event.type === "agent/inbox/spliced" && event.data.target === "next-step" ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match, reader) => { + if (match.event.type !== "agent/inbox/spliced") throw new Error("trajectory-inbox-next-step start requires agent/inbox/spliced"); + return applySplice(reader.previous("trajectory-inbox-next-step"), match.event.data); + }, + update: (context) => context.state, + publication: () => "none" + }; + const trajectoryMessageDefinition = { + kind: "trajectory-input-message", + target: "trajectory", + match: (event) => event.type === "user/message" ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match, reader) => { + if (match.event.type !== "user/message") throw new Error("trajectory-input-message start requires user/message"); + const event = match.event; + if (event.data.source.kind !== "user") return { + kind: "context", + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source, + provenance: (0, _deepseek_ai_dsh_client_runtime_client.contextProvenance)(event.data.source), + form: (0, _deepseek_ai_dsh_client_runtime_client.contextForm)(event.data.source) + }; + return reader.previous("trajectory-inbox-next-step")?.state.claimed.has(String(event.data.id)) === true ? { + kind: "steering", + messageId: event.data.id, + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source + } : { + kind: "user", + seq: event.seq, + time: event.time, + content: event.data.content, + source: event.data.source + }; + }, + update: (context) => context.state, + buildViewNode: (context) => context.state === void 0 ? null : trajectoryNode(context, context.state.seq, { + kind: "node", + node: context.state + }) + }; + /** + * Register Trajectory-owned inbox classification and message records. + * + * @param ctx - Plugin context receiving the Definitions. + */ + function registerTrajectoryMessageDefinitions(ctx) { + ctx.conversationEvents.register(trajectoryInboxDefinition); + ctx.conversationEvents.register(trajectoryMessageDefinition); + } + //#endregion + //#region lib/types/client/trajectory-request-header-definition.js + function requestPrompt(match) { + if (match.event.type !== "request/header") throw new Error("trajectory-request-header start requires request/header"); + const header = match.event.data.header; + const tools = header.tools; + return { + config: header.config, + system: header.system ?? "", + tools: Array.isArray(tools) ? tools : [] + }; + } + function promptChange(previous, prompt, match) { + if (match.event.type !== "request/header") return void 0; + if (previous === void 0 && match.event.data.reason !== "initial") return void 0; + const systemChanged = previous !== void 0 && previous.system !== prompt.system; + const toolsChanged = previous !== void 0 && JSON.stringify(previous.tools) !== JSON.stringify(prompt.tools); + if (previous !== void 0 && !systemChanged && !toolsChanged) return void 0; + return { + seq: match.event.seq, + time: match.event.time, + kind: previous === void 0 ? "initial" : systemChanged && toolsChanged ? "system-and-tools" : systemChanged ? "system" : "tools", + ...previous === void 0 ? {} : { previous } + }; + } + const trajectoryRequestHeaderDefinition = { + kind: "trajectory-request-header", + target: "trajectory", + match: (event) => event.type === "request/header" ? { + id: String(event.seq), + role: "start" + } : null, + start: (_context, match, reader) => { + const prompt = requestPrompt(match); + const previous = reader.previous("trajectory-request-header")?.state.prompt; + const change = promptChange(previous, prompt, match); + return { + seq: match.event.seq, + time: match.event.time, + prompt, + location: match.location, + ...change === void 0 ? {} : { change } + }; + }, + update: (context) => context.state, + buildViewNode: (context) => context.state === void 0 ? null : trajectoryNode(context, context.state.seq, { + kind: "request-header", + header: context.state + }) + }; + /** + * Register Trajectory request-header facts. + * + * @param ctx - Plugin context receiving the Definition. + */ + function registerTrajectoryRequestHeaderDefinition(ctx) { + ctx.conversationEvents.register(trajectoryRequestHeaderDefinition); + } + //#endregion + //#region lib/types/client/trajectory-snapshot-builder.js + const EMPTY_LIST = []; + /** Stable empty target used until a Session has assembled Trajectory records. */ + const EMPTY_TRAJECTORY_SNAPSHOT = { + eventNodes: EMPTY_LIST, + eventLocations: /* @__PURE__ */ new Map(), + requests: EMPTY_LIST, + callSchemas: /* @__PURE__ */ new Map(), + partial: null, + runningCalls: EMPTY_LIST + }; + function stepKey(turn, step) { + return `${turn}\u0000${step}`; + } + function headerStepKey(header) { + const location = header.location; + return location.kind === "step" ? stepKey(location.turn.turn, location.step.step) : void 0; + } + function headerFor(request, headersByStep, previous) { + return headersByStep.get(stepKey(request.turn, request.step)) ?? (previous !== void 0 && previous.seq < request.startSeq ? previous : void 0); + } + function applyHeader(request, header, includeChange) { + return header === void 0 ? request : { + ...request, + prompt: header.prompt, + requestConfig: header.prompt.config, + ...includeChange && header.change !== void 0 ? { promptChange: header.change } : {} + }; + } + function withRequestConfig(node, prompt) { + return prompt === void 0 ? node : { + ...node, + requestConfig: prompt.config + }; + } + function captureSchemas(block, toolsByName, output) { + const name = "kind" in block ? block.call?.name : block.name; + const schema = name === void 0 ? void 0 : toolsByName.get(name); + if (schema !== void 0) output.set(block.callId, schema); + for (const child of block.subCalls) captureSchemas(child, toolsByName, output); + } + function indexTools(tools) { + return new Map(tools.map((tool) => [tool.name, tool])); + } + function interruptCompactions(requests, boundaries) { + let nextRequest = 0; + const runningCompactions = []; + for (const boundary of boundaries) { + while (nextRequest < requests.length) { + const request = requests[nextRequest]; + if (request === void 0 || request.startSeq >= boundary.seq) break; + if (request.purpose === "compaction" && request.status === "running") runningCompactions.push(nextRequest); + nextRequest++; + } + let index = runningCompactions.pop(); + while (index !== void 0 && requests[index]?.status !== "running") index = runningCompactions.pop(); + if (index === void 0) continue; + const request = requests[index]; + if (request?.purpose !== "compaction") continue; + requests[index] = { + ...request, + completedAt: boundary.time, + status: "error", + error: "Compaction was interrupted before completion." + }; + } + } + function applyTurnErrors(requests, endings) { + const lastAssistantByTurn = /* @__PURE__ */ new Map(); + for (const [index, request] of requests.entries()) if (request.purpose === "assistant") lastAssistantByTurn.set(request.turn, index); + for (const ending of endings) { + if (ending.error === void 0) continue; + const index = lastAssistantByTurn.get(ending.turn); + if (index === void 0) continue; + const request = requests[index]; + if (request?.purpose !== "assistant") continue; + requests[index] = { + ...request, + completedAt: request.completedAt ?? ending.time, + status: "error", + error: ending.error + }; + } + } + /** Simple keyed adapter retaining the old Trajectory snapshot and stage layout. */ + var TrajectorySnapshotBuilder = class { + nodes = /* @__PURE__ */ new Map(); + positions = /* @__PURE__ */ new Map(); + contributions = []; + empty = EMPTY_TRAJECTORY_SNAPSHOT; + replace(input) { + this.nodes.clear(); + for (const node of input.nodes) this.nodes.set(node.key, node); + this.rebuildContributions(); + return this.snapshot(); + } + apply(input) { + let structural = false; + for (const node of input.upserts) { + const previous = this.nodes.get(node.key); + this.nodes.set(node.key, node); + if (previous === void 0 || previous.anchorSeq !== node.anchorSeq) { + structural = true; + continue; + } + const position = this.positions.get(node.key); + if (position === void 0) structural = true; + else this.contributions[position] = node; + } + if (structural) this.rebuildContributions(); + return this.snapshot(); + } + snapshot() { + const headersByStep = /* @__PURE__ */ new Map(); + for (const contribution of this.contributions) { + if (contribution.data.kind !== "request-header") continue; + const key = headerStepKey(contribution.data.header); + if (key !== void 0) headersByStep.set(key, contribution.data.header); + } + const finalized = []; + const eventLocations = /* @__PURE__ */ new Map(); + const requests = []; + const boundaries = []; + const turnEndings = []; + const callSchemas = /* @__PURE__ */ new Map(); + const consumedPromptChanges = /* @__PURE__ */ new Set(); + let previousHeader; + let previousTools = /* @__PURE__ */ new Map(); + let partial = null; + const runningCalls = []; + for (const contribution of this.contributions) { + const data = contribution.data; + if (data.kind === "request-header") { + previousHeader = data.header; + previousTools = indexTools(data.header.prompt.tools); + continue; + } + if (data.kind === "node") { + finalized.push(data.node); + eventLocations.set(data.node.seq, contribution.location); + continue; + } + if (data.kind === "assistant") { + const header = data.request === void 0 ? void 0 : headerFor(data.request, headersByStep, previousHeader); + if (data.node !== void 0) finalized.push(withRequestConfig(data.node, header?.prompt)); + if (data.partial !== null) partial = data.partial; + if (data.request !== void 0) { + const includeChange = header?.change !== void 0 && !consumedPromptChanges.has(header.seq); + requests.push(applyHeader(data.request, header, includeChange)); + if (includeChange) consumedPromptChanges.add(header.seq); + } + continue; + } + if (data.kind === "tool") { + if ("kind" in data.root) finalized.push(data.root); + else runningCalls.push(data.root); + if (previousHeader !== void 0 && previousHeader.seq < contribution.anchorSeq) captureSchemas(data.root, previousTools, callSchemas); + continue; + } + if (data.kind === "compaction") { + requests.push(data.request); + continue; + } + if (data.kind === "session-end") { + boundaries.push({ + seq: data.seq, + time: data.time + }); + continue; + } + turnEndings.push({ + turn: data.turn, + time: data.time, + ...data.error === void 0 ? {} : { error: data.error } + }); + } + requests.sort((left, right) => left.startSeq - right.startSeq); + interruptCompactions(requests, boundaries); + applyTurnErrors(requests, turnEndings); + finalized.sort((left, right) => left.seq - right.seq); + return { + eventNodes: finalized, + eventLocations, + requests, + callSchemas, + partial, + runningCalls + }; + } + rebuildContributions() { + this.contributions = [...this.nodes.values()].sort((left, right) => left.anchorSeq - right.anchorSeq || left.key.localeCompare(right.key)); + this.positions.clear(); + for (const [index, contribution] of this.contributions.entries()) this.positions.set(contribution.key, index); + } + }; + /** Trajectory target factory preserving the existing stage-oriented view model. */ + const trajectoryViewDefinition = { + target: "trajectory", + create: () => new TrajectorySnapshotBuilder() + }; + /** + * Register the stage-oriented Trajectory target builder. + * + * @param ctx - Plugin context receiving the view Definition. + */ + function registerTrajectoryConversationView(ctx) { + ctx.conversationViews.register(trajectoryViewDefinition); + } + //#endregion + //#region lib/types/client/trajectory-tool-definition.js + const MAX_DEPTH = 256; + function rootCall(match) { + if (match.event.type !== "tool/call") throw new Error("trajectory-tool-call start requires tool/call"); + return { + callId: String(match.event.data.callId), + name: match.event.data.name, + argsRaw: match.event.data.arguments, + turn: match.event.data.turn, + step: match.event.data.step, + time: match.event.time, + callView: match.view?.for === "call" ? match.view.view : null, + subCalls: [] + }; + } + function rootResult(match, previous) { + if (match.event.type !== "tool/result") return void 0; + const result = match.event.data.message.content[0]; + return { + kind: "tool-result", + seq: match.event.seq, + time: match.event.time, + callId: String(match.event.data.message.source.callId), + call: previous === void 0 ? null : { + name: previous.name, + argsRaw: previous.argsRaw + }, + callTime: previous?.time ?? null, + content: result.content, + isError: result.isError === true, + ...match.event.data.error === void 0 ? {} : { error: match.event.data.error }, + meta: match.event.data.meta, + callView: previous?.callView ?? null, + resultView: match.view?.for === "result" ? match.view.view : null, + subCalls: [] + }; + } + function locationTurn(match) { + return match.location.kind === "step" || match.location.kind === "turn" ? match.location.turn.turn : 0; + } + function locationStep(match) { + return match.location.kind === "step" ? match.location.step.step : 0; + } + function childCall(match, data) { + return { + callId: data.subCallId, + name: data.name, + argsRaw: JSON.stringify(data.arguments), + turn: locationTurn(match), + step: locationStep(match), + time: match.event.time, + callView: null, + subCalls: [] + }; + } + function childResult(match, data, previous) { + return { + kind: "tool-result", + seq: match.event.seq, + time: match.event.time, + callId: data.subCallId, + call: { + name: data.name, + argsRaw: JSON.stringify(data.arguments) + }, + callTime: previous === void 0 || "kind" in previous ? null : previous.time, + content: data.content ?? [], + isError: data.isError === true, + callView: null, + resultView: null, + subCalls: [] + }; + } + function acceptsEdge(state, parent, child) { + if (parent === child || state.parents.has(child)) return false; + let cursor = parent; + let parentDepth = 0; + const ancestors = /* @__PURE__ */ new Set(); + while (cursor !== void 0) { + if (cursor === child || ancestors.has(cursor)) return false; + ancestors.add(cursor); + parentDepth++; + cursor = state.parents.get(cursor); + } + const pending = [{ + callId: child, + depth: 1 + }]; + const descendants = /* @__PURE__ */ new Set(); + let subtreeDepth = 0; + for (const candidate of pending) { + if (descendants.has(candidate.callId)) return false; + descendants.add(candidate.callId); + subtreeDepth = Math.max(subtreeDepth, candidate.depth); + for (const nested of state.children.get(candidate.callId) ?? []) pending.push({ + callId: nested, + depth: candidate.depth + 1 + }); + } + return parentDepth + subtreeDepth <= MAX_DEPTH; + } + function updateDispatch(state, match) { + const event = match.event; + if (event.type !== "tool/code-dispatch-start" && event.type !== "tool/code-dispatch") return state; + const data = event.data; + const parentId = String(data.parentCallId); + const childId = String(data.subCallId); + const siblings = state.children.get(parentId) ?? []; + const index = siblings.indexOf(childId); + if (index < 0 && !acceptsEdge(state, parentId, childId)) return state; + if (event.type === "tool/code-dispatch-start" && index >= 0) return state; + const calls = new Map(state.calls); + calls.set(childId, event.type === "tool/code-dispatch-start" ? childCall(match, data) : childResult(match, data, calls.get(childId))); + if (index >= 0) return { + ...state, + calls + }; + const children = new Map(state.children); + children.set(parentId, [...siblings, childId]); + const parents = new Map(state.parents); + parents.set(childId, parentId); + return { + ...state, + calls, + children, + parents + }; + } + function interruption(context) { + const location = context.start?.location; + if (location?.kind === "step" && location.step.status === "closed") return location.step.end; + if ((location?.kind === "step" || location?.kind === "turn") && location.turn.status === "closed") return location.turn.end; + } + function projectCall(state, callId, interruptedAt, visited = /* @__PURE__ */ new Set(), depth = 1) { + const block = state.calls.get(callId); + if (block === void 0) return void 0; + if (visited.has(callId) || depth > MAX_DEPTH) return { + ...block, + subCalls: [] + }; + const nextVisited = new Set(visited); + nextVisited.add(callId); + const subCalls = (state.children.get(callId) ?? []).flatMap((childId) => { + const child = projectCall(state, childId, interruptedAt, nextVisited, depth + 1); + return child === void 0 ? [] : [child]; + }); + if ("kind" in block || interruptedAt === void 0) return { + ...block, + subCalls + }; + return { + kind: "tool-result", + seq: interruptedAt.seq - .8, + time: interruptedAt.time, + callId: block.callId, + call: { + name: block.name, + argsRaw: block.argsRaw + }, + callTime: block.time, + content: [], + isError: true, + error: { + name: "Interrupted", + code: "interrupted" + }, + callView: block.callView, + resultView: null, + subCalls + }; + } + function fallbackState(context) { + const resultMatch = context.matches.find((match) => match.event.type === "tool/result"); + const root = resultMatch === void 0 ? void 0 : rootResult(resultMatch); + if (root === void 0) return void 0; + let state = { + rootId: root.callId, + calls: new Map([[root.callId, root]]), + children: /* @__PURE__ */ new Map(), + parents: /* @__PURE__ */ new Map() + }; + for (const match of context.matches) state = updateDispatch(state, match); + return state; + } + /** Trajectory-owned root Tool lifecycle with nested Code Dispatch calls. */ + const trajectoryToolDefinition = { + kind: "trajectory-tool-call", + target: "trajectory", + match: (event) => { + if (event.type === "tool/call") return { + id: String(event.data.callId), + role: "start" + }; + if (event.type === "tool/result") return { + id: String(event.data.message.source.callId), + role: "update" + }; + if (event.type === "tool/code-dispatch-start" || event.type === "tool/code-dispatch") { + const rootCallId = event.data.rootCallId; + return typeof rootCallId === "string" && rootCallId !== "" ? { + id: rootCallId, + role: "update" + } : null; + } + return null; + }, + start: (_context, match) => { + const root = rootCall(match); + return { + rootId: root.callId, + calls: new Map([[root.callId, root]]), + children: /* @__PURE__ */ new Map(), + parents: /* @__PURE__ */ new Map() + }; + }, + update: (context, match) => { + if (match.event.type !== "tool/result") return updateDispatch(context.state, match); + const previous = context.state.calls.get(context.state.rootId); + const result = rootResult(match, previous !== void 0 && !("kind" in previous) ? previous : void 0); + if (result === void 0) return context.state; + const calls = new Map(context.state.calls); + calls.set(context.state.rootId, result); + return { + ...context.state, + calls + }; + }, + buildViewNode: (context) => { + const state = context.state ?? fallbackState(context); + if (state === void 0) return null; + const root = projectCall(state, state.rootId, interruption(context)); + if (root === void 0) return null; + return trajectoryNode(context, context.start?.event.seq ?? ("kind" in root ? root.seq : context.matches[0]?.event.seq ?? 0), { + kind: "tool", + root + }); + } + }; + /** + * Register the Trajectory Tool lifecycle. + * + * @param ctx - Plugin context receiving the Definition. + */ + function registerTrajectoryToolDefinition(ctx) { + ctx.conversationEvents.register(trajectoryToolDefinition); + } + //#endregion + //#region ../../../node_modules/.pnpm/@tanstack+virtual-core@3.17.7/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js + function createLazyMeasurementsView(count, flat, getItemKey) { + const cache = new Array(count); + return new Proxy(cache, { get(target, prop, receiver) { + if (typeof prop === "string") { + const c = prop.charCodeAt(0); + if (c >= 48 && c <= 57) { + const i = +prop; + if (Number.isInteger(i) && i >= 0 && i < count) { + let v = target[i]; + if (!v) { + const s = flat[i * 2]; + v = target[i] = { + index: i, + key: getItemKey(i), + start: s, + size: flat[i * 2 + 1], + end: s + flat[i * 2 + 1], + lane: 0 + }; + } + return v; + } + } + if (prop === "length") return count; + } + return Reflect.get(target, prop, receiver); + } }); + } + //#endregion + //#region ../../../node_modules/.pnpm/@tanstack+virtual-core@3.17.7/node_modules/@tanstack/virtual-core/dist/esm/utils.js + function memo$1(getDeps, fn, opts) { + let deps = opts.initialDeps ?? []; + let result; + let isInitial = true; + function memoizedFunction() { + const newDeps = getDeps(); + if (!(newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep))) return result; + deps = newDeps; + result = fn(...newDeps); + if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) opts.onChange(result); + isInitial = false; + return result; + } + memoizedFunction.updateDeps = (newDeps) => { + deps = newDeps; + }; + return memoizedFunction; + } + function notUndefined(value, msg) { + if (value === void 0) throw new Error(`Unexpected undefined${msg ? `: ${msg}` : ""}`); + else return value; + } + const approxEqual = (a, b) => Math.abs(a - b) < 1.01; + const debounce = (targetWindow, fn, ms) => { + let timeoutId; + return function(...args) { + targetWindow.clearTimeout(timeoutId); + timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms); + }; + }; + //#endregion + //#region ../../../node_modules/.pnpm/@tanstack+virtual-core@3.17.7/node_modules/@tanstack/virtual-core/dist/esm/index.js + let _isIOSResult; + const isIOSWebKit = () => { + if (_isIOSResult !== void 0) return _isIOSResult; + if (typeof navigator === "undefined") return _isIOSResult = false; + if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true; + const mtp = navigator.maxTouchPoints; + return _isIOSResult = navigator.platform === "MacIntel" && mtp !== void 0 && mtp > 0; + }; + const getRect = (element) => { + const { offsetWidth, offsetHeight } = element; + return { + width: offsetWidth, + height: offsetHeight + }; + }; + const defaultKeyExtractor = (index) => index; + const defaultRangeExtractor = (range) => { + const start = Math.max(range.startIndex - range.overscan, 0); + const len = Math.min(range.endIndex + range.overscan, range.count - 1) - start + 1; + const arr = new Array(len); + for (let i = 0; i < len; i++) arr[i] = start + i; + return arr; + }; + const observeElementRect = (instance, cb) => { + const element = instance.scrollElement; + if (!element) return; + const targetWindow = instance.targetWindow; + if (!targetWindow) return; + const handler = (rect) => { + const { width, height } = rect; + cb({ + width: Math.round(width), + height: Math.round(height) + }); + }; + handler(getRect(element)); + if (!targetWindow.ResizeObserver) return () => {}; + const observer = new targetWindow.ResizeObserver((entries) => { + const run = () => { + const entry = entries[0]; + if (entry == null ? void 0 : entry.borderBoxSize) { + const box = entry.borderBoxSize[0]; + if (box) { + handler({ + width: box.inlineSize, + height: box.blockSize + }); + return; + } + } + handler(getRect(element)); + }; + instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run(); + }); + observer.observe(element, { box: "border-box" }); + return () => { + observer.unobserve(element); + }; + }; + const addEventListenerOptions = { passive: true }; + const supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window; + const observeOffset = (instance, cb, readOffset) => { + const element = instance.scrollElement; + if (!element) return; + const targetWindow = instance.targetWindow; + if (!targetWindow) return; + const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend; + let offset = 0; + const fallback = registerScrollendEvent ? null : debounce(targetWindow, () => cb(offset, false), instance.options.isScrollingResetDelay); + const createHandler = (isScrolling) => () => { + offset = readOffset(element); + fallback?.(); + cb(offset, isScrolling); + }; + const handler = createHandler(true); + const endHandler = createHandler(false); + element.addEventListener("scroll", handler, addEventListenerOptions); + if (registerScrollendEvent) element.addEventListener("scrollend", endHandler, addEventListenerOptions); + return () => { + element.removeEventListener("scroll", handler); + if (registerScrollendEvent) element.removeEventListener("scrollend", endHandler); + }; + }; + const observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => { + const { horizontal, isRtl } = instance.options; + return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop; + }); + const measureElement = (element, entry, instance) => { + if (instance.options.useCachedMeasurements) { + const index = instance.indexFromElement(element); + const key = instance.options.getItemKey(index); + return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index); + } + if (entry == null ? void 0 : entry.borderBoxSize) { + const box = entry.borderBoxSize[0]; + if (box) return Math.round(box[instance.options.horizontal ? "inlineSize" : "blockSize"]); + } + if (!entry) { + const index = instance.indexFromElement(element); + const key = instance.options.getItemKey(index); + const cachedSize = instance.itemSizeCache.get(key); + if (cachedSize !== void 0) return cachedSize; + } + return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"]; + }; + const scrollWithAdjustments = (offset, { adjustments = 0, behavior }, instance) => { + var _a, _b; + (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null || _b.call(_a, { + [instance.options.horizontal ? "left" : "top"]: offset + adjustments, + behavior + }); + }; + const elementScroll = scrollWithAdjustments; + var Virtualizer = class { + constructor(opts) { + this.unsubs = []; + this.scrollElement = null; + this.targetWindow = null; + this.isScrolling = false; + this.scrollState = null; + this.measurementsCache = []; + this._flatMeasurements = null; + this.itemSizeCache = /* @__PURE__ */ new Map(); + this.itemSizeCacheVersion = 0; + this.laneAssignments = /* @__PURE__ */ new Map(); + this.pendingMin = null; + this.prevLanes = void 0; + this.lanesChangedFlag = false; + this.lanesSettling = false; + this.pendingScrollAnchor = null; + this.scrollRect = null; + this.scrollOffset = null; + this.scrollDirection = null; + this.scrollAdjustments = 0; + this._iosDeferredAdjustment = 0; + this._iosTouching = false; + this._iosJustTouchEnded = false; + this._iosTouchEndTimerId = null; + this._intendedScrollOffset = null; + this.elementsCache = /* @__PURE__ */ new Map(); + this.now = () => { + var _a, _b, _c; + return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now(); + }; + this.observer = /* @__PURE__ */ (() => { + let _ro = null; + const get = () => { + if (_ro) return _ro; + if (!this.targetWindow || !this.targetWindow.ResizeObserver) return null; + return _ro = new this.targetWindow.ResizeObserver((entries) => { + entries.forEach((entry) => { + const run = () => { + const node = entry.target; + const index = this.indexFromElement(node); + if (!node.isConnected) { + this.observer.unobserve(node); + for (const [cacheKey, cachedNode] of this.elementsCache) if (cachedNode === node) { + this.elementsCache.delete(cacheKey); + break; + } + return; + } + if (this.shouldMeasureDuringScroll(index)) this.resizeItem(index, this.options.measureElement(node, entry, this)); + }; + this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run(); + }); + }); + }; + return { + disconnect: () => { + var _a; + (_a = get()) == null || _a.disconnect(); + _ro = null; + }, + observe: (target) => { + var _a; + return (_a = get()) == null ? void 0 : _a.observe(target, { box: "border-box" }); + }, + unobserve: (target) => { + var _a; + return (_a = get()) == null ? void 0 : _a.unobserve(target); + } + }; + })(); + this.range = null; + this.setOptions = (opts2) => { + var _a, _b; + const merged = { + debug: false, + initialOffset: 0, + overscan: 1, + paddingStart: 0, + paddingEnd: 0, + scrollPaddingStart: 0, + scrollPaddingEnd: 0, + horizontal: false, + getItemKey: defaultKeyExtractor, + rangeExtractor: defaultRangeExtractor, + onChange: () => {}, + measureElement, + initialRect: { + width: 0, + height: 0 + }, + scrollMargin: 0, + gap: 0, + indexAttribute: "data-index", + initialMeasurementsCache: [], + lanes: 1, + anchorTo: "start", + followOnAppend: false, + scrollEndThreshold: 1, + isScrollingResetDelay: 150, + enabled: true, + isRtl: false, + useScrollendEvent: false, + useAnimationFrameWithResizeObserver: false, + laneAssignmentMode: "estimate", + useCachedMeasurements: false + }; + for (const key in opts2) { + const v = opts2[key]; + if (v !== void 0) merged[key] = v; + } + const prevOptions = this.options; + let anchor = null; + let followOnAppend = null; + let edgeKeysChanged = false; + if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === "end" && this.scrollElement !== null) { + const prevCount = prevOptions.count; + const nextCount = merged.count; + const measurements = this.getMeasurements(); + const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null; + const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null; + if (nextCount !== prevCount || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey)) { + edgeKeysChanged = true; + const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null; + if (item) anchor = [item.key, this.getScrollOffset() - item.start]; + const behavior = merged.followOnAppend === true ? "auto" : merged.followOnAppend || null; + if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) followOnAppend = behavior; + } + } + this.options = merged; + if (edgeKeysChanged) { + this.pendingMin = 0; + this.itemSizeCacheVersion++; + } + let anchorResolved = false; + let anchorDelta = 0; + if (anchor && this.scrollOffset !== null) { + const [anchorKey, anchorOffset] = anchor; + const newMeasurements = this.getMeasurements(); + const { count, getItemKey } = this.options; + let idx = 0; + while (idx < count && getItemKey(idx) !== anchorKey) idx++; + if (idx < count) { + const anchorItem = newMeasurements[idx]; + if (anchorItem) { + const newOffset = Math.max(0, anchorItem.start + anchorOffset); + if (newOffset !== this.scrollOffset) { + anchorDelta = newOffset - this.scrollOffset; + this.scrollOffset = newOffset; + anchorResolved = true; + } + } + } + } + if (anchorResolved || followOnAppend) this.pendingScrollAnchor = [ + anchorResolved ? anchor[0] : null, + anchorResolved ? anchor[1] : 0, + followOnAppend, + anchorDelta + ]; + }; + this.notify = (sync) => { + var _a, _b; + (_b = (_a = this.options).onChange) == null || _b.call(_a, this, sync); + }; + this.maybeNotify = memo$1(() => { + this.calculateRange(); + return [ + this.isScrolling, + this.range ? this.range.startIndex : null, + this.range ? this.range.endIndex : null + ]; + }, (isScrolling) => { + this.notify(isScrolling); + }, { + key: false, + debug: () => this.options.debug, + initialDeps: [ + this.isScrolling, + this.range ? this.range.startIndex : null, + this.range ? this.range.endIndex : null + ] + }); + this.cleanup = () => { + this.unsubs.filter(Boolean).forEach((d) => d()); + this.unsubs = []; + this.observer.disconnect(); + if (this.rafId != null && this.targetWindow) { + this.targetWindow.cancelAnimationFrame(this.rafId); + this.rafId = null; + } + this.scrollState = null; + this._iosDeferredAdjustment = 0; + this._iosTouching = false; + this._iosJustTouchEnded = false; + this.scrollElement = null; + this.targetWindow = null; + }; + this._didMount = () => { + return () => { + this.cleanup(); + }; + }; + this._willUpdate = () => { + var _a; + const scrollElement = this.options.enabled ? this.options.getScrollElement() : null; + if (this.scrollElement !== scrollElement) { + this.cleanup(); + if (!scrollElement) { + this.maybeNotify(); + return; + } + this.scrollElement = scrollElement; + if (this.scrollElement && "ownerDocument" in this.scrollElement) this.targetWindow = this.scrollElement.ownerDocument.defaultView; + else this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null; + this.elementsCache.forEach((cached) => { + this.observer.observe(cached); + }); + this.unsubs.push(this.options.observeElementRect(this, (rect) => { + this.scrollRect = rect; + this.maybeNotify(); + })); + this.unsubs.push(this.options.observeElementOffset(this, (offset, isScrolling) => { + if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) return; + if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) offset = this._intendedScrollOffset; + this._intendedScrollOffset = null; + this.scrollAdjustments = 0; + const prevOffset = this.getScrollOffset(); + this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? "forward" : "backward" : null; + this.scrollOffset = offset; + this.isScrolling = isScrolling; + this._flushIosDeferredIfReady(); + if (this.scrollState) this.scheduleScrollReconcile(); + this.maybeNotify(); + })); + if ("addEventListener" in this.scrollElement) { + const scrollEl = this.scrollElement; + const onTouchStart = () => { + this._iosTouching = true; + this._iosJustTouchEnded = false; + if (this._iosTouchEndTimerId !== null && this.targetWindow != null) { + this.targetWindow.clearTimeout(this._iosTouchEndTimerId); + this._iosTouchEndTimerId = null; + } + }; + const onTouchEnd = () => { + this._iosTouching = false; + if (!isIOSWebKit() || this.targetWindow == null) return; + this._iosJustTouchEnded = true; + this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => { + this._iosJustTouchEnded = false; + this._iosTouchEndTimerId = null; + this._flushIosDeferredIfReady(); + }, 150); + }; + scrollEl.addEventListener("touchstart", onTouchStart, addEventListenerOptions); + scrollEl.addEventListener("touchend", onTouchEnd, addEventListenerOptions); + this.unsubs.push(() => { + scrollEl.removeEventListener("touchstart", onTouchStart); + scrollEl.removeEventListener("touchend", onTouchEnd); + if (this._iosTouchEndTimerId !== null && this.targetWindow != null) { + this.targetWindow.clearTimeout(this._iosTouchEndTimerId); + this._iosTouchEndTimerId = null; + } + }); + } + this._scrollToOffset(this.getScrollOffset(), { + adjustments: void 0, + behavior: void 0 + }); + } + const anchor = this.pendingScrollAnchor; + this.pendingScrollAnchor = null; + if (anchor && this.scrollElement && this.options.enabled) { + const [key, _offset, followOnAppend, anchorDelta] = anchor; + if (key !== null && !followOnAppend) if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) { + if (anchorDelta !== 0) this._iosDeferredAdjustment += anchorDelta; + } else this._scrollToOffset(this.getScrollOffset(), { + adjustments: void 0, + behavior: void 0 + }); + if (followOnAppend) this.scrollToEnd({ behavior: followOnAppend }); + } + }; + this._flushIosDeferredIfReady = () => { + if (this._iosDeferredAdjustment === 0) return; + if (this.isScrolling) return; + if (this._iosTouching) return; + if (this._iosJustTouchEnded) return; + const cur = this.getScrollOffset(); + const max = this.getMaxScrollOffset(); + if (cur < 0 || cur > max) return; + if (this._iosDeferredAdjustment < 0 && cur >= max - 1) { + this._iosDeferredAdjustment = 0; + return; + } + const delta = this._iosDeferredAdjustment; + this._iosDeferredAdjustment = 0; + this._scrollToOffset(cur, { + adjustments: this.scrollAdjustments += delta, + behavior: void 0 + }); + }; + this.rafId = null; + this.getSize = () => { + if (!this.options.enabled) { + this.scrollRect = null; + return 0; + } + this.scrollRect = this.scrollRect ?? this.options.initialRect; + return this.scrollRect[this.options.horizontal ? "width" : "height"]; + }; + this.getScrollOffset = () => { + if (!this.options.enabled) { + this.scrollOffset = null; + return 0; + } + this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset); + return this.scrollOffset; + }; + this.getMeasurementOptions = memo$1(() => [ + this.options.count, + this.options.paddingStart, + this.options.scrollMargin, + this.options.getItemKey, + this.options.enabled, + this.options.lanes, + this.options.laneAssignmentMode, + this.options.gap + ], (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => { + if (this.prevLanes !== void 0 && this.prevLanes !== lanes) this.lanesChangedFlag = true; + this.prevLanes = lanes; + this.pendingMin = null; + return { + count, + paddingStart, + scrollMargin, + getItemKey, + enabled, + lanes, + laneAssignmentMode, + gap + }; + }, { key: false }); + this.getMeasurements = memo$1(() => [this.getMeasurementOptions(), this.itemSizeCacheVersion], ({ count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap }, _itemSizeCacheVersion) => { + const itemSizeCache = this.itemSizeCache; + if (!enabled) { + this.measurementsCache = []; + this.itemSizeCache.clear(); + this.laneAssignments.clear(); + return []; + } + if (this.laneAssignments.size > count) { + for (const index of this.laneAssignments.keys()) if (index >= count) this.laneAssignments.delete(index); + } + if (this.lanesChangedFlag) { + this.lanesChangedFlag = false; + this.lanesSettling = true; + this.measurementsCache = []; + this.itemSizeCache.clear(); + this.laneAssignments.clear(); + this.pendingMin = null; + } + if (this.measurementsCache.length === 0 && !this.lanesSettling) { + this.measurementsCache = this.options.initialMeasurementsCache; + this.measurementsCache.forEach((item) => { + this.itemSizeCache.set(item.key, item.size); + }); + } + const min = this.lanesSettling ? 0 : this.pendingMin ?? 0; + this.pendingMin = null; + if (this.lanesSettling && this.measurementsCache.length === count) this.lanesSettling = false; + if (lanes === 1) { + const need = count * 2; + let flat = this._flatMeasurements; + if (!flat || flat.length < need) { + const next = new Float64Array(need); + if (flat && min > 0) next.set(flat.subarray(0, min * 2)); + flat = next; + this._flatMeasurements = flat; + } + let runningStart; + if (min === 0) runningStart = paddingStart + scrollMargin; + else { + const prevIdx = min - 1; + runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap; + } + for (let i = min; i < count; i++) { + const key = getItemKey(i); + const measuredSize = itemSizeCache.get(key); + const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i); + flat[i * 2] = runningStart; + flat[i * 2 + 1] = size; + runningStart += size + gap; + } + const view = createLazyMeasurementsView(count, flat, getItemKey); + this.measurementsCache = view; + return view; + } + const measurements = this.measurementsCache.slice(0, min); + const laneLastIndex = new Array(lanes).fill(void 0); + const laneEnds = new Float64Array(lanes); + let filledLanes = 0; + for (let m = 0; m < min; m++) { + const item = measurements[m]; + if (item) { + if (laneLastIndex[item.lane] === void 0) filledLanes++; + laneLastIndex[item.lane] = m; + laneEnds[item.lane] = item.end; + } + } + for (let i = min; i < count; i++) { + const key = getItemKey(i); + const cachedLane = this.laneAssignments.get(i); + let lane; + let start; + const shouldCacheLane = laneAssignmentMode === "estimate" || itemSizeCache.has(key); + if (cachedLane !== void 0 && this.options.lanes > 1) { + lane = cachedLane; + const prevIndex = laneLastIndex[lane]; + const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0; + start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin; + } else if (filledLanes === lanes) { + let bestLane = 0; + let bestEnd = laneEnds[0]; + let bestIdx = laneLastIndex[0]; + for (let l = 1; l < lanes; l++) { + const e = laneEnds[l]; + if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) { + bestLane = l; + bestEnd = e; + bestIdx = laneLastIndex[l]; + } + } + lane = bestLane; + start = bestEnd + gap; + if (shouldCacheLane) this.laneAssignments.set(i, lane); + } else { + lane = i % this.options.lanes; + start = paddingStart + scrollMargin; + if (shouldCacheLane) this.laneAssignments.set(i, lane); + } + const measuredSize = itemSizeCache.get(key); + const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i); + const end = start + size; + measurements[i] = { + index: i, + start, + size, + end, + key, + lane + }; + if (laneLastIndex[lane] === void 0) filledLanes++; + laneLastIndex[lane] = i; + laneEnds[lane] = end; + } + this.measurementsCache = measurements; + return measurements; + }, { + key: false, + debug: () => this.options.debug + }); + this.calculateRange = memo$1(() => [ + this.getMeasurements(), + this.getSize(), + this.getScrollOffset(), + this.options.lanes + ], (measurements, outerSize, scrollOffset, lanes) => { + if (measurements.length === 0 || outerSize === 0) { + this.range = null; + return null; + } + this.range = calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null); + return this.range; + }, { + key: false, + debug: () => this.options.debug + }); + this.getVirtualIndexes = memo$1(() => { + let startIndex = null; + let endIndex = null; + const range = this.calculateRange(); + if (range) { + startIndex = range.startIndex; + endIndex = range.endIndex; + } + this.maybeNotify.updateDeps([ + this.isScrolling, + startIndex, + endIndex + ]); + return [ + this.options.rangeExtractor, + this.options.overscan, + this.options.count, + startIndex, + endIndex + ]; + }, (rangeExtractor, overscan, count, startIndex, endIndex) => { + return startIndex === null || endIndex === null ? [] : rangeExtractor({ + startIndex, + endIndex, + overscan, + count + }); + }, { + key: false, + debug: () => this.options.debug + }); + this.indexFromElement = (node) => { + const attributeName = this.options.indexAttribute; + const indexStr = node.getAttribute(attributeName); + if (!indexStr) { + console.warn(`Missing attribute name '${attributeName}={index}' on measured element.`); + return -1; + } + return parseInt(indexStr, 10); + }; + this.shouldMeasureDuringScroll = (index) => { + var _a; + if (!this.scrollState || this.scrollState.behavior !== "smooth") return true; + const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index); + if (scrollIndex !== void 0 && this.range) { + const bufferSize = Math.max(this.options.overscan, Math.ceil((this.range.endIndex - this.range.startIndex) / 2)); + const minIndex = Math.max(0, scrollIndex - bufferSize); + const maxIndex = Math.min(this.options.count - 1, scrollIndex + bufferSize); + return index >= minIndex && index <= maxIndex; + } + return true; + }; + this.measureElement = (node) => { + if (!node) { + this.elementsCache.forEach((cached, key2) => { + if (!cached.isConnected) { + this.observer.unobserve(cached); + this.elementsCache.delete(key2); + } + }); + return; + } + const index = this.indexFromElement(node); + const key = this.options.getItemKey(index); + const prevNode = this.elementsCache.get(key); + if (prevNode !== node) { + if (prevNode) this.observer.unobserve(prevNode); + this.observer.observe(node); + this.elementsCache.set(key, node); + } + if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) this.resizeItem(index, this.options.measureElement(node, void 0, this)); + }; + this.resizeItem = (index, size) => { + var _a, _b; + if (index < 0 || index >= this.options.count) return; + let cachedSize; + let itemStart; + let key; + const flat = this._flatMeasurements; + if (this.options.lanes === 1 && flat !== null) { + key = this.options.getItemKey(index); + itemStart = flat[index * 2]; + cachedSize = flat[index * 2 + 1]; + } else { + const item = this.measurementsCache[index]; + if (!item) return; + key = item.key; + itemStart = item.start; + cachedSize = item.size; + } + const itemSize = this.itemSizeCache.get(key) ?? cachedSize; + const delta = size - itemSize; + if (delta !== 0) { + const wasAtEnd = this.options.anchorTo === "end" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== "smooth" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold; + const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0; + const scrollOffsetWithAdj = this.getScrollOffset() + this.scrollAdjustments; + const defaultShouldAdjust = !this.itemSizeCache.has(key) ? itemStart < scrollOffsetWithAdj : itemStart + itemSize <= scrollOffsetWithAdj && this.scrollDirection !== "backward"; + const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[index] ?? { + index, + key, + start: itemStart, + size: cachedSize, + end: itemStart + cachedSize, + lane: 0 + }, delta, this) : defaultShouldAdjust); + if (this.pendingMin === null || index < this.pendingMin) this.pendingMin = index; + this.itemSizeCache.set(key, size); + this.itemSizeCacheVersion++; + let adjustedSync = false; + if (wasAtEnd) adjustedSync = this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize); + else if (shouldAdjustScroll) adjustedSync = this.applyScrollAdjustment(delta); + this.notify(adjustedSync); + } + }; + this.getVirtualItems = memo$1(() => [this.getVirtualIndexes(), this.getMeasurements()], (indexes, measurements) => { + const virtualItems = []; + for (let k = 0, len = indexes.length; k < len; k++) { + const measurement = measurements[indexes[k]]; + virtualItems.push(measurement); + } + return virtualItems; + }, { + key: false, + debug: () => this.options.debug + }); + this.getVirtualItemForOffset = (offset) => { + const measurements = this.getMeasurements(); + if (measurements.length === 0) return; + const flat = this._flatMeasurements; + const useFlat = this.options.lanes === 1 && flat != null; + return notUndefined(measurements[findNearestBinarySearch(0, measurements.length - 1, useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start, offset)]); + }; + this.getMaxScrollOffset = () => { + if (!this.scrollElement) return 0; + if ("scrollHeight" in this.scrollElement) return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight; + else { + const doc = this.scrollElement.document.documentElement; + return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight; + } + }; + this.getVirtualDistanceFromEnd = () => { + return Math.max(this.getTotalSize() - this.getSize() - this.getScrollOffset(), 0); + }; + this.getDistanceFromEnd = () => { + return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0); + }; + this.isAtEnd = (threshold = this.options.scrollEndThreshold) => { + return this.getDistanceFromEnd() <= threshold; + }; + this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => { + if (!this.scrollElement) return 0; + const size = this.getSize(); + const scrollOffset = this.getScrollOffset(); + if (align === "auto") align = toOffset >= scrollOffset + size ? "end" : "start"; + if (align === "center") toOffset += (itemSize - size) / 2; + else if (align === "end") toOffset -= size; + const maxOffset = this.getMaxScrollOffset(); + return Math.max(Math.min(maxOffset, toOffset), 0); + }; + this.getOffsetForIndex = (index, align = "auto") => { + index = Math.max(0, Math.min(index, this.options.count - 1)); + const size = this.getSize(); + const scrollOffset = this.getScrollOffset(); + const item = this.measurementsCache[index]; + if (!item) return; + if (align === "auto") if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) align = "end"; + else if (item.start <= scrollOffset + this.options.scrollPaddingStart) align = "start"; + else return [scrollOffset, align]; + if (align === "end" && index === this.options.count - 1) return [this.getMaxScrollOffset(), align]; + const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart; + return [this.getOffsetForAlignment(toOffset, align, item.size), align]; + }; + this.scrollToOffset = (toOffset, { align = "start", behavior = "auto" } = {}) => { + this._iosDeferredAdjustment = 0; + const offset = this.getOffsetForAlignment(toOffset, align); + const now = this.now(); + this.scrollState = { + index: null, + align, + behavior, + startedAt: now, + lastTargetOffset: offset, + stableFrames: 0 + }; + this._scrollToOffset(offset, { + adjustments: void 0, + behavior + }); + this.scheduleScrollReconcile(); + }; + this.scrollToIndex = (index, { align: initialAlign = "auto", behavior = "auto" } = {}) => { + this._iosDeferredAdjustment = 0; + index = Math.max(0, Math.min(index, this.options.count - 1)); + const offsetInfo = this.getOffsetForIndex(index, initialAlign); + if (!offsetInfo) return; + const [offset, align] = offsetInfo; + const now = this.now(); + this.scrollState = { + index, + align, + behavior, + startedAt: now, + lastTargetOffset: offset, + stableFrames: 0 + }; + this._scrollToOffset(offset, { + adjustments: void 0, + behavior + }); + this.scheduleScrollReconcile(); + }; + this.scrollBy = (delta, { behavior = "auto" } = {}) => { + const offset = this.getScrollOffset() + delta; + const now = this.now(); + this.scrollState = { + index: null, + align: "start", + behavior, + startedAt: now, + lastTargetOffset: offset, + stableFrames: 0 + }; + this._scrollToOffset(offset, { + adjustments: void 0, + behavior + }); + this.scheduleScrollReconcile(); + }; + this.scrollToEnd = ({ behavior = "auto" } = {}) => { + if (this.options.count > 0) { + this.scrollToIndex(this.options.count - 1, { + align: "end", + behavior + }); + return; + } + this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), { behavior }); + }; + this.getTotalSize = () => { + var _a; + const measurements = this.getMeasurements(); + let end; + if (measurements.length === 0) end = this.options.paddingStart; + else if (this.options.lanes === 1) { + const lastIdx = measurements.length - 1; + const flat = this._flatMeasurements; + if (flat != null) end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1]; + else end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0; + } else { + const endByLane = Array(this.options.lanes).fill(null); + let endIndex = measurements.length - 1; + while (endIndex >= 0 && endByLane.some((val) => val === null)) { + const item = measurements[endIndex]; + if (endByLane[item.lane] === null) endByLane[item.lane] = item.end; + endIndex--; + } + end = Math.max(...endByLane.filter((val) => val !== null)); + } + return Math.max(end - this.options.scrollMargin + this.options.paddingEnd, 0); + }; + this.takeSnapshot = () => { + const snapshot = []; + if (this.itemSizeCache.size === 0) return snapshot; + const m = this.getMeasurements(); + for (const item of m) if (item && this.itemSizeCache.has(item.key)) snapshot.push({ + index: item.index, + key: item.key, + start: item.start, + size: item.size, + end: item.end, + lane: item.lane + }); + return snapshot; + }; + this._scrollToOffset = (offset, { adjustments, behavior }) => { + this._intendedScrollOffset = offset + (adjustments ?? 0); + this.options.scrollToFn(offset, { + behavior, + adjustments + }, this); + }; + this.measure = () => { + this.pendingMin = null; + this.itemSizeCache.clear(); + this.laneAssignments.clear(); + this.itemSizeCacheVersion++; + this.notify(false); + }; + this.setOptions(opts); + } + applyScrollAdjustment(delta, behavior) { + if (delta === 0) return false; + if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) { + this._iosDeferredAdjustment += delta; + return false; + } else { + this._scrollToOffset(this.getScrollOffset(), { + adjustments: this.scrollAdjustments += delta, + behavior + }); + if (this.scrollOffset !== null) { + this.scrollOffset += this.scrollAdjustments; + if (this.scrollOffset < 0) this.scrollOffset = 0; + this.scrollAdjustments = 0; + } + return true; + } + } + scheduleScrollReconcile() { + if (!this.targetWindow) { + this.scrollState = null; + return; + } + if (this.rafId != null) return; + this.rafId = this.targetWindow.requestAnimationFrame(() => { + this.rafId = null; + this.reconcileScroll(); + }); + } + reconcileScroll() { + if (!this.scrollState) return; + if (!this.scrollElement) return; + if (this.now() - this.scrollState.startedAt > 5e3) { + this.scrollState = null; + return; + } + const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0; + const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset; + const STABLE_FRAMES = 1; + const targetChanged = targetOffset !== this.scrollState.lastTargetOffset; + if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) { + this.scrollState.stableFrames++; + if (this.scrollState.stableFrames >= STABLE_FRAMES) { + if (this.getScrollOffset() !== targetOffset) this._scrollToOffset(targetOffset, { + adjustments: void 0, + behavior: "auto" + }); + this.scrollState = null; + return; + } + } else { + this.scrollState.stableFrames = 0; + if (targetChanged) { + const viewport = this.getSize() || 600; + const distance = Math.abs(targetOffset - this.getScrollOffset()); + const keepSmooth = this.scrollState.behavior === "smooth" && distance > viewport; + this.scrollState.lastTargetOffset = targetOffset; + if (!keepSmooth) this.scrollState.behavior = "auto"; + this._scrollToOffset(targetOffset, { + adjustments: void 0, + behavior: keepSmooth ? "smooth" : "auto" + }); + } + } + this.scheduleScrollReconcile(); + } + }; + const findNearestBinarySearch = (low, high, getCurrentValue, value) => { + while (low <= high) { + const middle = (low + high) / 2 | 0; + const currentValue = getCurrentValue(middle); + if (currentValue < value) low = middle + 1; + else if (currentValue > value) high = middle - 1; + else return middle; + } + if (low > 0) return low - 1; + else return 0; + }; + function findNearestBinarySearchFlat(flat, high, value) { + let low = 0; + while (low <= high) { + const middle = (low + high) / 2 | 0; + const currentValue = flat[middle * 2]; + if (currentValue < value) low = middle + 1; + else if (currentValue > value) high = middle - 1; + else return middle; + } + return low > 0 ? low - 1 : 0; + } + function calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) { + const lastIndex = measurements.length - 1; + if (measurements.length <= lanes) return { + startIndex: 0, + endIndex: lastIndex + }; + if (lanes === 1 && flat !== null) { + const startIndex2 = findNearestBinarySearchFlat(flat, lastIndex, scrollOffset); + let endIndex2 = startIndex2; + const limit = scrollOffset + outerSize; + while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) endIndex2++; + return { + startIndex: startIndex2, + endIndex: endIndex2 + }; + } + const getStart = (index) => measurements[index].start; + let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset); + let endIndex = startIndex; + if (lanes === 1) while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) endIndex++; + else if (lanes > 1) { + const endPerLane = Array(lanes).fill(0); + while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) { + const item = measurements[endIndex]; + endPerLane[item.lane] = item.end; + endIndex++; + } + const startPerLane = Array(lanes).fill(scrollOffset + outerSize); + while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) { + const item = measurements[startIndex]; + startPerLane[item.lane] = item.start; + startIndex--; + } + startIndex = Math.max(0, startIndex - startIndex % lanes); + endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes)); + } + return { + startIndex, + endIndex + }; + } + //#endregion + //#region ../../../node_modules/.pnpm/@tanstack+react-virtual@3.14.9_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-virtual/dist/esm/index.js + const useIsomorphicLayoutEffect = typeof document !== "undefined" ? react.useLayoutEffect : react.useEffect; + function useVirtualizerBase({ useFlushSync = true, directDomUpdates = false, directDomUpdatesMode = "transform", ...options }) { + const rerender = react.useReducer((x) => x + 1, 0)[1]; + const directRef = react.useRef({ + enabled: directDomUpdates, + mode: directDomUpdatesMode, + container: null, + lastSize: null, + lastPositions: /* @__PURE__ */ new WeakMap(), + prevRange: null + }); + directRef.current.enabled = directDomUpdates; + directRef.current.mode = directDomUpdatesMode; + const applyContainerSize = (instance2) => { + const state = directRef.current; + if (!state.enabled || !state.container) return; + const totalSize = instance2.getTotalSize(); + if (totalSize !== state.lastSize) { + state.lastSize = totalSize; + const sizeAxis = instance2.options.horizontal ? "width" : "height"; + state.container.style[sizeAxis] = `${totalSize}px`; + } + }; + const applyDirectStyles = (instance2) => { + const state = directRef.current; + if (!state.enabled || !state.container) return; + applyContainerSize(instance2); + const horizontal = !!instance2.options.horizontal; + const useTransform = state.mode === "transform"; + const posAxis = horizontal ? "left" : "top"; + const scrollMargin = instance2.options.scrollMargin; + const items = instance2.getVirtualItems(); + for (const item of items) { + const next = item.start - scrollMargin; + const el = instance2.elementsCache.get(item.key); + if (!el) continue; + if (state.lastPositions.get(el) === next) continue; + state.lastPositions.set(el, next); + if (useTransform) el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`; + else el.style[posAxis] = `${next}px`; + } + }; + const resolvedOptions = { + ...options, + onChange: (instance2, sync) => { + var _a; + const state = directRef.current; + let shouldRerender = true; + if (state.enabled) { + applyDirectStyles(instance2); + const range = instance2.range; + const prev = state.prevRange; + shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex); + if (shouldRerender) state.prevRange = range ? { + startIndex: range.startIndex, + endIndex: range.endIndex, + isScrolling: instance2.isScrolling + } : null; + } + if (shouldRerender) if (useFlushSync && sync) (0, react_dom.flushSync)(rerender); + else rerender(); + (_a = options.onChange) == null || _a.call(options, instance2, sync); + } + }; + const [instance] = react.useState(() => { + const v = new Virtualizer(resolvedOptions); + return Object.assign(v, { containerRef: (node) => { + const state = directRef.current; + state.container = node; + state.lastSize = null; + if (node && state.enabled) { + const total = v.getTotalSize(); + state.lastSize = total; + const axis = v.options.horizontal ? "width" : "height"; + node.style[axis] = `${total}px`; + } + } }); + }); + instance.setOptions(resolvedOptions); + useIsomorphicLayoutEffect(() => { + return instance._didMount(); + }, []); + useIsomorphicLayoutEffect(() => { + applyContainerSize(instance); + return instance._willUpdate(); + }); + useIsomorphicLayoutEffect(() => { + applyDirectStyles(instance); + }); + return instance; + } + function useVirtualizer(options) { + return useVirtualizerBase({ + observeElementRect, + observeElementOffset, + scrollToFn: elementScroll, + ...options + }); + } + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js + var Diff = class { + diff(oldStr, newStr, options = {}) { + let callback; + if (typeof options === "function") { + callback = options; + options = {}; + } else if ("callback" in options) callback = options.callback; + const oldString = this.castInput(oldStr, options); + const newString = this.castInput(newStr, options); + const oldTokens = this.removeEmpty(this.tokenize(oldString, options)); + const newTokens = this.removeEmpty(this.tokenize(newString, options)); + return this.diffWithOptionsObj(oldTokens, newTokens, options, callback); + } + diffWithOptionsObj(oldTokens, newTokens, options, callback) { + var _a; + const done = (value) => { + value = this.postProcess(value, options); + if (callback) { + setTimeout(function() { + callback(value); + }, 0); + return; + } else return value; + }; + const newLen = newTokens.length, oldLen = oldTokens.length; + let editLength = 1; + let maxEditLength = newLen + oldLen; + if (options.maxEditLength != null) maxEditLength = Math.min(maxEditLength, options.maxEditLength); + const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity; + const abortAfterTimestamp = Date.now() + maxExecutionTime; + const bestPath = [{ + oldPos: -1, + lastComponent: void 0 + }]; + let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options); + if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens)); + let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity; + const execEditLength = () => { + for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) { + let basePath; + const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1]; + if (removePath) bestPath[diagonalPath - 1] = void 0; + let canAdd = false; + if (addPath) { + const addPathNewPos = addPath.oldPos - diagonalPath; + canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen; + } + const canRemove = removePath && removePath.oldPos + 1 < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) basePath = this.addToPath(addPath, true, false, 0, options); + else basePath = this.addToPath(removePath, false, true, 1, options); + newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options); + if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true; + else { + bestPath[diagonalPath] = basePath; + if (basePath.oldPos + 1 >= oldLen) maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1); + if (newPos + 1 >= newLen) minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1); + } + } + editLength++; + }; + if (callback) (function exec() { + setTimeout(function() { + if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) return callback(void 0); + if (!execEditLength()) exec(); + }, 0); + })(); + else while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) { + const ret = execEditLength(); + if (ret) return ret; + } + } + addToPath(path, added, removed, oldPosInc, options) { + const last = path.lastComponent; + if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) return { + oldPos: path.oldPos + oldPosInc, + lastComponent: { + count: last.count + 1, + added, + removed, + previousComponent: last.previousComponent + } + }; + else return { + oldPos: path.oldPos + oldPosInc, + lastComponent: { + count: 1, + added, + removed, + previousComponent: last + } + }; + } + extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) { + const newLen = newTokens.length, oldLen = oldTokens.length; + let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) { + newPos++; + oldPos++; + commonCount++; + if (options.oneChangePerToken) basePath.lastComponent = { + count: 1, + previousComponent: basePath.lastComponent, + added: false, + removed: false + }; + } + if (commonCount && !options.oneChangePerToken) basePath.lastComponent = { + count: commonCount, + previousComponent: basePath.lastComponent, + added: false, + removed: false + }; + basePath.oldPos = oldPos; + return newPos; + } + equals(left, right, options) { + if (options.comparator) return options.comparator(left, right); + else return left === right || !!options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + removeEmpty(array) { + const ret = []; + for (let i = 0; i < array.length; i++) if (array[i]) ret.push(array[i]); + return ret; + } + castInput(value, options) { + return value; + } + tokenize(value, options) { + return Array.from(value); + } + join(chars) { + return chars.join(""); + } + postProcess(changeObjects, options) { + return changeObjects; + } + get useLongestToken() { + return false; + } + buildValues(lastComponent, newTokens, oldTokens) { + const components = []; + let nextComponent; + while (lastComponent) { + components.push(lastComponent); + nextComponent = lastComponent.previousComponent; + delete lastComponent.previousComponent; + lastComponent = nextComponent; + } + components.reverse(); + const componentLen = components.length; + let componentPos = 0, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + const component = components[componentPos]; + if (!component.removed) { + if (!component.added && this.useLongestToken) { + let value = newTokens.slice(newPos, newPos + component.count); + value = value.map(function(value, i) { + const oldValue = oldTokens[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + component.value = this.join(value); + } else component.value = this.join(newTokens.slice(newPos, newPos + component.count)); + newPos += component.count; + if (!component.added) oldPos += component.count; + } else { + component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + } + } + return components; + } + }; + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/character.js + var CharacterDiff = class extends Diff {}; + new CharacterDiff(); + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js + function longestCommonPrefix(str1, str2) { + let i; + for (i = 0; i < str1.length && i < str2.length; i++) if (str1[i] != str2[i]) return str1.slice(0, i); + return str1.slice(0, i); + } + function longestCommonSuffix(str1, str2) { + let i; + if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) return ""; + for (i = 0; i < str1.length && i < str2.length; i++) if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) return str1.slice(-i); + return str1.slice(-i); + } + function replacePrefix(string, oldPrefix, newPrefix) { + if (string.slice(0, oldPrefix.length) != oldPrefix) throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`); + return newPrefix + string.slice(oldPrefix.length); + } + function replaceSuffix(string, oldSuffix, newSuffix) { + if (!oldSuffix) return string + newSuffix; + if (string.slice(-oldSuffix.length) != oldSuffix) throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`); + return string.slice(0, -oldSuffix.length) + newSuffix; + } + function removePrefix(string, oldPrefix) { + return replacePrefix(string, oldPrefix, ""); + } + function removeSuffix(string, oldSuffix) { + return replaceSuffix(string, oldSuffix, ""); + } + function maximumOverlap(string1, string2) { + return string2.slice(0, overlapCount(string1, string2)); + } + function overlapCount(a, b) { + let startA = 0; + if (a.length > b.length) startA = a.length - b.length; + let endB = b.length; + if (a.length < b.length) endB = a.length; + const map = Array(endB); + let k = 0; + map[0] = 0; + for (let j = 1; j < endB; j++) { + if (b[j] == b[k]) map[j] = map[k]; + else map[j] = k; + while (k > 0 && b[j] != b[k]) k = map[k]; + if (b[j] == b[k]) k++; + } + k = 0; + for (let i = startA; i < a.length; i++) { + while (k > 0 && a[i] != b[k]) k = map[k]; + if (a[i] == b[k]) k++; + } + return k; + } + /** + * Split a string into segments using a word segmenter, merging consecutive + * segments if they are both whitespace segments. Whitespace segments can + * appear adjacent to one another for two reasons: + * - newlines always get their own segment + * - where a diacritic is attached to a whitespace character in the text, the + * segment ends after the diacritic, so e.g. " \u0300 " becomes two segments. + * This function therefore runs the segmenter's .segment() method and then + * merges consecutive segments of whitespace into a single part. + */ + function segment(string, segmenter) { + const parts = []; + for (const segmentObj of Array.from(segmenter.segment(string))) { + const segment = segmentObj.segment; + if (parts.length && /\s/.test(parts[parts.length - 1]) && /\s/.test(segment)) parts[parts.length - 1] += segment; + else parts.push(segment); + } + return parts; + } + function trailingWs(string, segmenter) { + if (segmenter) return leadingAndTrailingWs(string, segmenter)[1]; + let i; + for (i = string.length - 1; i >= 0; i--) if (!string[i].match(/\s/)) break; + return string.substring(i + 1); + } + function leadingWs(string, segmenter) { + if (segmenter) return leadingAndTrailingWs(string, segmenter)[0]; + const match = string.match(/^\s*/); + return match ? match[0] : ""; + } + function leadingAndTrailingWs(string, segmenter) { + if (!segmenter) return [leadingWs(string), trailingWs(string)]; + if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\""); + const segments = segment(string, segmenter); + const firstSeg = segments[0]; + const lastSeg = segments[segments.length - 1]; + return [/\s/.test(firstSeg) ? firstSeg : "", /\s/.test(lastSeg) ? lastSeg : ""]; + } + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js + const extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}"; + const tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug"); + var WordDiff = class extends Diff { + equals(left, right, options) { + if (options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left.trim() === right.trim(); + } + tokenize(value, options = {}) { + let parts; + if (options.intlSegmenter) { + const segmenter = options.intlSegmenter; + if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\""); + parts = segment(value, segmenter); + } else parts = value.match(tokenizeIncludingWhitespace) || []; + const tokens = []; + let prevPart = null; + parts.forEach((part) => { + if (/\s/.test(part)) if (prevPart == null) tokens.push(part); + else tokens.push(tokens.pop() + part); + else if (prevPart != null && /\s/.test(prevPart)) if (tokens[tokens.length - 1] == prevPart) tokens.push(tokens.pop() + part); + else tokens.push(prevPart + part); + else tokens.push(part); + prevPart = part; + }); + return tokens; + } + join(tokens) { + return tokens.map((token, i) => { + if (i == 0) return token; + else return token.replace(/^\s+/, ""); + }).join(""); + } + postProcess(changes, options) { + if (!changes || options.oneChangePerToken) return changes; + let lastKeep = null; + let insertion = null; + let deletion = null; + changes.forEach((change) => { + if (change.added) insertion = change; + else if (change.removed) deletion = change; + else { + if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter); + lastKeep = change; + insertion = null; + deletion = null; + } + }); + if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter); + return changes; + } + }; + new WordDiff(); + function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) { + if (deletion && insertion) { + const [oldWsPrefix, oldWsSuffix] = leadingAndTrailingWs(deletion.value, segmenter); + const [newWsPrefix, newWsSuffix] = leadingAndTrailingWs(insertion.value, segmenter); + if (startKeep) { + const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix); + startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix); + deletion.value = removePrefix(deletion.value, commonWsPrefix); + insertion.value = removePrefix(insertion.value, commonWsPrefix); + } + if (endKeep) { + const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix); + endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix); + deletion.value = removeSuffix(deletion.value, commonWsSuffix); + insertion.value = removeSuffix(insertion.value, commonWsSuffix); + } + } else if (insertion) { + if (startKeep) { + const ws = leadingWs(insertion.value, segmenter); + insertion.value = insertion.value.substring(ws.length); + } + if (endKeep) { + const ws = leadingWs(endKeep.value, segmenter); + endKeep.value = endKeep.value.substring(ws.length); + } + } else if (startKeep && endKeep) { + const newWsFull = leadingWs(endKeep.value, segmenter), [delWsStart, delWsEnd] = leadingAndTrailingWs(deletion.value, segmenter); + const newWsStart = longestCommonPrefix(newWsFull, delWsStart); + deletion.value = removePrefix(deletion.value, newWsStart); + const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd); + deletion.value = removeSuffix(deletion.value, newWsEnd); + endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd); + startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length)); + } else if (endKeep) { + const endKeepWsPrefix = leadingWs(endKeep.value, segmenter); + const overlap = maximumOverlap(trailingWs(deletion.value, segmenter), endKeepWsPrefix); + deletion.value = removeSuffix(deletion.value, overlap); + } else if (startKeep) { + const overlap = maximumOverlap(trailingWs(startKeep.value, segmenter), leadingWs(deletion.value, segmenter)); + deletion.value = removePrefix(deletion.value, overlap); + } + } + var WordsWithSpaceDiff = class extends Diff { + tokenize(value) { + const regex = new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`, "ug"); + return value.match(regex) || []; + } + }; + new WordsWithSpaceDiff(); + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js + var LineDiff = class extends Diff { + constructor() { + super(...arguments); + this.tokenize = tokenize; + } + equals(left, right, options) { + if (options.ignoreWhitespace) { + if (!options.newlineIsToken || !left.includes("\n")) left = left.trim(); + if (!options.newlineIsToken || !right.includes("\n")) right = right.trim(); + } else if (options.ignoreNewlineAtEof && !options.newlineIsToken) { + if (left.endsWith("\n")) left = left.slice(0, -1); + if (right.endsWith("\n")) right = right.slice(0, -1); + } + return super.equals(left, right, options); + } + }; + const lineDiff = new LineDiff(); + function diffLines(oldStr, newStr, options) { + return lineDiff.diff(oldStr, newStr, options); + } + function tokenize(value, options) { + if (options.stripTrailingCr) value = value.replace(/\r\n/g, "\n"); + const retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) linesAndNewlines.pop(); + for (let i = 0; i < linesAndNewlines.length; i++) { + const line = linesAndNewlines[i]; + if (i % 2 && !options.newlineIsToken) retLines[retLines.length - 1] += line; + else retLines.push(line); + } + return retLines; + } + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js + function isSentenceEndPunct(char) { + return char == "." || char == "!" || char == "?"; + } + var SentenceDiff = class extends Diff { + tokenize(value) { + var _a; + const result = []; + let tokenStartI = 0; + for (let i = 0; i < value.length; i++) { + if (i == value.length - 1) { + result.push(value.slice(tokenStartI)); + break; + } + if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\s/)) { + result.push(value.slice(tokenStartI, i + 1)); + i = tokenStartI = i + 1; + while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\s/)) i++; + result.push(value.slice(tokenStartI, i + 1)); + tokenStartI = i + 1; + } + } + return result; + } + }; + new SentenceDiff(); + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/css.js + var CssDiff = class extends Diff { + tokenize(value) { + return value.split(/([{}:;,]|\s+)/); + } + }; + new CssDiff(); + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/json.js + var JsonDiff = class extends Diff { + constructor() { + super(...arguments); + this.tokenize = tokenize; + } + get useLongestToken() { + return true; + } + castInput(value, options) { + const { undefinedReplacement, stringifyReplacer = (k, v) => typeof v === "undefined" ? undefinedReplacement : v } = options; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, " "); + } + equals(left, right, options) { + return super.equals(left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options); + } + }; + new JsonDiff(); + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) obj = replacer(key === void 0 ? "" : key, obj); + let i; + for (i = 0; i < stack.length; i += 1) if (stack[i] === obj) return replacementStack[i]; + let canonicalizedObj; + if ("[object Array]" === Object.prototype.toString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i)); + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) obj = obj.toJSON(); + if (typeof obj === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + const sortedKeys = []; + let key; + for (key in obj) + /* istanbul ignore else */ + if (Object.prototype.hasOwnProperty.call(obj, key)) sortedKeys.push(key); + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + key = sortedKeys[i]; + canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key); + } + stack.pop(); + replacementStack.pop(); + } else canonicalizedObj = obj; + return canonicalizedObj; + } + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/array.js + var ArrayDiff = class extends Diff { + tokenize(value) { + return value.slice(); + } + join(value) { + return value; + } + removeEmpty(value) { + return value; + } + }; + new ArrayDiff(); + //#endregion + //#region ../../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/patch/create.js + function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + let optionsObj; + if (!options) optionsObj = {}; + else if (typeof options === "function") optionsObj = { callback: options }; + else optionsObj = options; + if (typeof optionsObj.context === "undefined") optionsObj.context = 4; + const context = optionsObj.context; + if (optionsObj.newlineIsToken) throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions"); + if (!optionsObj.callback) return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj)); + else { + const { callback } = optionsObj; + diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => { + callback(diffLinesResultToPatch(diff)); + } })); + } + function diffLinesResultToPatch(diff) { + if (!diff) return; + diff.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + const hunks = []; + let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + for (let i = 0; i < diff.length; i++) { + const current = diff[i], lines = current.lines || splitLines(current.value); + current.lines = lines; + if (current.added || current.removed) { + if (!oldRangeStart) { + const prev = diff[i - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + for (const line of lines) curRange.push((current.added ? "+" : "-") + line); + if (current.added) newLine += lines.length; + else oldLine += lines.length; + } else { + if (oldRangeStart) if (lines.length <= context * 2 && i < diff.length - 2) for (const line of contextLines(lines)) curRange.push(line); + else { + const contextSize = Math.min(lines.length, context); + for (const line of contextLines(lines.slice(0, contextSize))) curRange.push(line); + const hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + oldLine += lines.length; + newLine += lines.length; + } + } + for (const hunk of hunks) for (let i = 0; i < hunk.lines.length; i++) if (hunk.lines[i].endsWith("\n")) hunk.lines[i] = hunk.lines[i].slice(0, -1); + else { + hunk.lines.splice(i + 1, 0, "\\ No newline at end of file"); + i++; + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; + } + } + /** + * Split `text` into an array of lines, including the trailing newline character (where present) + */ + function splitLines(text) { + const hasTrailingNl = text.endsWith("\n"); + const result = text.split("\n").map((line) => line + "\n"); + if (hasTrailingNl) result.pop(); + else result.push(result.pop().slice(0, -1)); + return result; + } + //#endregion + //#region lib/types/client/trajectory-record.js + /** Shared trajectory record data and formatting contracts. */ + /** + * Resolve the identity that survives prepending older projected records. + * @param cell - Projected trajectory record. + * @returns Stable identity from the owning event or tool call, with a fixture fallback. + */ + function trajectoryRecordId(cell) { + if (cell.recordId !== void 0) return cell.recordId; + if (cell.callId !== void 0) return `${cell.kind}\u0000call\u0000${cell.callId}`; + if (cell.sourceSeq !== void 0) return `${cell.kind}\u0000seq\u0000${cell.sourceSeq}`; + return `${cell.kind}\u0000index\u0000${cell.index}`; + } + /** + * Format a duration in milliseconds with thousands separators. + * @param milliseconds - Duration in milliseconds, or `null` when absent. + * @returns `—` when unknown, otherwise an integer-millisecond label. + */ + function formatDurationMillis(milliseconds) { + if (milliseconds === null || !Number.isFinite(milliseconds)) return "—"; + return `${String(Math.round(milliseconds)).replace(/\B(?=(\d{3})+(?!\d))/g, ",")} ms`; + } + /** + * Format an elapsed duration given in seconds as a millisecond label. + * @param seconds - Duration seconds, or `null` when absent. + * @returns `—` when unknown, otherwise an integer-millisecond label. + */ + function formatElapsedSeconds(seconds) { + return formatDurationMillis(seconds === null ? null : seconds * 1e3); + } + //#endregion + //#region lib/types/client/trajectory-virtual-rows.js + /** Pure projection from trajectory records to measurable virtual ledger rows. */ + const CONTENT_ROW_HEIGHT = 30; + const COLLAPSED_SUMMARY_HEIGHT = 20; + const TERMINAL_BOUNDARY_HEIGHT = 9; + /** + * Derive the DOM-safe row identity shared by React, the virtualizer, and + * browser scroll contracts. + * @param record - Display record whose identity is required. + * @returns Stable record identity with a suffix for synthetic fold summaries. + */ + function trajectoryVirtualRecordKey(record) { + const identity = encodeURIComponent(trajectoryRecordId(record.cell)); + return record.collapsedSummaryKind === void 0 ? identity : `${identity}\u0000summary\u0000${record.collapsedSummaryKind}`; + } + /** + * Attach separator-only records to the next content row so the virtualizer + * never owns a zero-height item. A terminal separator retains its CSS-owned + * lower-marker clearance as a standalone item. + * @param records - Final search/fold projection in ledger order. + * @returns Measurable virtual rows with original logical positions retained. + */ + function groupTrajectoryVirtualRows(records) { + const rows = []; + let pending = []; + for (const [logicalIndex, record] of records.entries()) { + const entry = { + logicalIndex, + record + }; + if (record.cell.requestOnly === true) { + pending.push(entry); + continue; + } + const entries = [...pending, entry]; + pending = []; + rows.push({ + entries, + height: record.collapsedSummaryKind === void 0 ? CONTENT_ROW_HEIGHT : COLLAPSED_SUMMARY_HEIGHT, + key: trajectoryVirtualRecordKey(record) + }); + } + if (pending.length > 0) rows.push({ + entries: pending, + height: TERMINAL_BOUNDARY_HEIGHT, + key: pending.map((candidate) => trajectoryVirtualRecordKey(candidate.record)).join("|") + }); + return rows; + } + //#endregion + //#region lib/types/client/trajectory-preview.js + /** Bounded Markdown-to-text projection shared by trajectory consumers. */ + const PREVIEW_SOURCE_CHARACTERS = 2048; + const PREVIEW_OUTPUT_CHARACTERS = 512; + /** + * Build a bounded one-line preview without parsing the complete Markdown document. + * @param text - Untrusted message, reasoning, payload, or result text. + * @returns A compact preview capped independently from the retained source. + */ + function trajectoryPreviewText(text) { + const source = text.slice(0, PREVIEW_SOURCE_CHARACTERS); + const compact = (0, _deepseek_ai_dsh_client_ui_primitives.extractMarkdownPlainText)(source).replace(/\s+/g, " ").trim(); + const preview = compact.slice(0, PREVIEW_OUTPUT_CHARACTERS).trimEnd(); + return source.length < text.length || preview.length < compact.length ? `${preview}…` : preview; + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-trajectory/src/client/TrajectoryTable.module.css.mjs + const css$3 = ".Y0dWHa_split{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);background:var(--dsw-alias-bg-layer-1);flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.Y0dWHa_tablePane{min-width:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);flex:1;position:relative;overflow:hidden auto;container:Y0dWHa_trajectory-table/inline-size}.Y0dWHa_historyLoading{z-index:5;pointer-events:none;height:0;position:sticky;top:0;overflow:visible}.Y0dWHa_historyLoadingBar{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;height:30px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadingSpinner{box-sizing:border-box;border:1.5px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-state-business-primary);border-radius:50%;width:10px;height:10px;animation:.7s linear infinite Y0dWHa_history-loading-spin}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow td{height:30px;padding:0}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow+tr[data-turn-start=true] td:before{content:none}.Y0dWHa_historyLoadButton{background:var(--dsw-alias-bg-layer-1);width:100%;height:29px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xxs-12);border:0;justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.Y0dWHa_historyLoadButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px}.Y0dWHa_historyLoadButton:disabled{cursor:default}.Y0dWHa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Y0dWHa_table:not([data-scroll-ready=true]){visibility:hidden}@keyframes Y0dWHa_history-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.Y0dWHa_historyLoadingSpinner{animation:none}}.Y0dWHa_table{--trajectory-turn-accent:color-mix(in srgb, var(--dsw-static-blue-500) 22%, var(--dsw-alias-bg-layer-1));border-spacing:0;table-layout:fixed;width:100%;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xxs-12)}.Y0dWHa_eventColumn{width:122px}.Y0dWHa_contentColumn{width:auto}.Y0dWHa_table th{z-index:3;box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);height:30px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-specific-sidebar-fill);font:var(--dsw-font-xxs-12);text-align:left;text-overflow:ellipsis;user-select:none;white-space:nowrap;padding:0 8px;font-weight:500;position:sticky;top:0;overflow:hidden}.Y0dWHa_eventHeader{text-align:right!important;padding-right:4px!important}.Y0dWHa_table td{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;height:30px;padding:0 8px;overflow:hidden}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer{pointer-events:none}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer td{height:var(--trajectory-virtual-spacer-height);border:0;padding:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]){cursor:default;transition:background-color .12s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-timeline-focus=outside]{opacity:.24}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]):not([data-selected=true]):hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-request-only=true]:hover{background:0 0}.Y0dWHa_table tbody tr[data-request-only=true] td{border-bottom:0;height:0;padding-top:0;padding-bottom:0}.Y0dWHa_table tbody tr[data-terminal-request-boundary=true] td{height:9px}.Y0dWHa_table tbody tr[data-request-only=true] .Y0dWHa_turnRail{top:-15px;bottom:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_table tbody tr[data-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:12px;z-index:6;top:-8px;left:calc(var(--request-boundary-base-left) + var(--request-boundary-offset,0px));cursor:pointer;background:0 0;border:0;width:16px;height:16px;padding:0;position:absolute}.Y0dWHa_requestBoundaryControl:before{background:var(--dsw-alias-label-caption);width:5px;height:5px;box-shadow:0 0 0 2px var(--dsw-alias-bg-layer-1), 0 0 0 3px transparent;content:\"\";transition:background .12s var(--ds-ease-in-out), box-shadow .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:5.5px;left:5.5px}.Y0dWHa_requestBoundaryControl:after{border:1px solid var(--dsw-alias-border-l1);width:max-content;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);content:attr(data-label);font:9px/12px var(--ds-font-family-code);opacity:0;pointer-events:none;transition:opacity .12s var(--ds-ease-in-out), transform .12s var(--ds-ease-in-out);user-select:none;white-space:nowrap;border-radius:2px;padding:0 4px;position:absolute;top:2px;left:17px;transform:translate(-2px);box-shadow:0 2px 6px #0000001f}.Y0dWHa_requestBoundaryControl:hover:before,.Y0dWHa_requestBoundaryControl:focus-visible:before{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControlActive:before,.Y0dWHa_requestBoundaryControlActive:hover:before,.Y0dWHa_requestBoundaryControlActive:focus-visible:before{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 18%, var(--dsw-alias-bg-layer-1));box-shadow:0 0 0 1.5px var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControl[data-request-status=error]:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:hover:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:focus-visible:before{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_requestBoundaryControl:hover:after,.Y0dWHa_requestBoundaryControl:focus-visible:after{opacity:1;transform:translate(0)}.Y0dWHa_requestBoundaryControl:focus-visible{outline:none}.Y0dWHa_table tbody tr:has(.Y0dWHa_requestBoundaryControl:hover):not([data-selected=true]){background:0 0}.Y0dWHa_event{position:relative}.Y0dWHa_turnRail,.Y0dWHa_selectionRail{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color);pointer-events:none;position:absolute;left:0}.Y0dWHa_turnRail{z-index:4;background:var(--trajectory-turn-accent);width:2px;top:-1px;bottom:-1px}.Y0dWHa_table tbody tr[data-turn-end=true] .Y0dWHa_turnRail{bottom:0}.Y0dWHa_selectionRail{z-index:5;width:3px;top:0;bottom:0}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_turnRail{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 22%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_selectionRail{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_table tbody tr[data-turn-start=true] td{position:relative;overflow:visible}.Y0dWHa_table tbody tr[data-turn-start=true]:not(:first-child) td:before{z-index:1;background:var(--dsw-alias-border-l1);content:\"\";pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.Y0dWHa_event{padding-left:36px!important;padding-right:4px!important;overflow:visible!important}.Y0dWHa_turnLabel{z-index:3;box-sizing:border-box;width:max-content;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-module-platform);font:8px/10px var(--ds-font-family-code);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap;border-radius:0 0 2px;flex:none;align-items:center;padding:1px 5px;display:inline-grid;position:absolute;top:0;left:0}.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{opacity:1;white-space:nowrap;grid-area:1/1;max-width:64px;overflow:hidden}.Y0dWHa_turnLabelCompact{opacity:0;max-width:0}.Y0dWHa_turnLabelActive{color:color-mix(in srgb, var(--dsw-static-blue-500) 55%, var(--dsw-alias-label-tertiary));background:var(--trajectory-turn-accent)}.Y0dWHa_eventInner{justify-content:flex-start;align-items:center;min-width:0;height:100%;display:flex}.Y0dWHa_kindSlot{flex:none;justify-content:flex-end;align-items:flex-end;width:76px;display:flex}.Y0dWHa_kindSlot [role=tooltip]{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary)}.Y0dWHa_content{color:var(--dsw-alias-label-primary);padding-left:4px!important}.Y0dWHa_kindTag{box-sizing:border-box;letter-spacing:.035em;user-select:none;border:1px solid #0000;border-radius:4px;flex:none;align-items:center;height:19px;padding:0 5px;font-size:10px;font-weight:650;line-height:16px;display:inline-flex}.Y0dWHa_kindTagIcon{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:13px;display:inline-flex;overflow:hidden;transform:scale(.8)}.Y0dWHa_kindTagLabel{opacity:1;white-space:nowrap;max-width:72px;display:inline-block;overflow:hidden}.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:100%}@container Y0dWHa_trajectory-table (width<=620px){.Y0dWHa_eventColumn{width:50px}.Y0dWHa_event{padding-left:28px!important;padding-right:3px!important}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:6px}.Y0dWHa_kindSlot{width:19px}.Y0dWHa_kindTag,.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:19px;padding-left:0;padding-right:0}.Y0dWHa_kindTagIcon{opacity:1;width:13px;transform:scale(1)}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull{opacity:0;max-width:0}.Y0dWHa_turnLabelCompact{opacity:1;max-width:64px}}@media (prefers-reduced-motion:no-preference){.Y0dWHa_eventColumn,.Y0dWHa_event,.Y0dWHa_requestBoundaryControl,.Y0dWHa_kindSlot,.Y0dWHa_kindTag,.Y0dWHa_kindTagIcon,.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-duration:.18s;transition-timing-function:var(--ds-ease-in-out)}.Y0dWHa_eventColumn,.Y0dWHa_kindSlot{transition-property:width}.Y0dWHa_event{transition-property:padding-right,padding-left}.Y0dWHa_requestBoundaryControl{transition-property:left}.Y0dWHa_kindTag{transition-property:padding-right,padding-left}.Y0dWHa_kindTagIcon{transition-property:width,opacity,transform}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-property:max-width,opacity}}.Y0dWHa_user{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-state-business-tertiary)}.Y0dWHa_systemNeutral{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_contextGreen{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 68%, var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_compacted{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_compactedSummary{font:var(--dsw-font-xs-13);margin-top:12px;padding:0 0 14px}.Y0dWHa_promptDiffSections{flex-direction:column;gap:14px;max-height:100%;padding:10px 14px 14px;display:flex;overflow:auto}.Y0dWHa_promptDiffSection{min-width:0}.Y0dWHa_promptDiffTitle{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0 0 6px}.Y0dWHa_promptDiff{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:11px/17px var(--ds-font-family-code);white-space:pre;margin:0;overflow:auto}.Y0dWHa_promptDiff span{min-width:max-content;padding:0 6px;display:block}.Y0dWHa_promptDiffLinemeta{color:var(--dsw-alias-label-caption);background:var(--dsw-alias-bg-module-platform);user-select:none}.Y0dWHa_promptDiffLinecontext{color:var(--dsw-alias-label-secondary)}.Y0dWHa_promptDiffLineadded{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 72%, var(--dsw-alias-label-primary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_promptDiffLineremoved{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_assistantVioletBright{color:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 60%, var(--dsw-alias-state-error-secondary));background:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 55%, var(--dsw-alias-state-error-secondary)) 15%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_toolAmber{color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary)}.Y0dWHa_subtoolAmber{color:color-mix(in srgb, var(--dsw-alias-state-warn-label) 62%, var(--dsw-alias-label-tertiary));background:color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 58%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_contentText{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.Y0dWHa_toolCallOnly{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_table tbody tr[data-collapsed-summary=turn] td,.Y0dWHa_table tbody tr[data-collapsed-summary=assistant] td{height:20px}.Y0dWHa_table tbody tr[data-collapsed-summary]{cursor:pointer;transition:background-color .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-collapsed-summary]:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-collapsed-summary]:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_collapsedTurnContent{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;font-size:12px;line-height:16px;display:flex}.Y0dWHa_collapsedTurnEllipsis{color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;margin-right:6px;font-weight:600}.Y0dWHa_collapsedTurnText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_resultPreview{grid-template-columns:clamp(180px, var(--trajectory-tool-request-width,calc(36cqw - 56px)), 480px) minmax(0, 1fr);align-items:center;gap:8px;min-width:0;display:grid}.Y0dWHa_resultRequest,.Y0dWHa_inlineResultText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_toolCallNameTypeface{color:var(--dsw-alias-label-primary);font:400 12px/18px Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei}.Y0dWHa_toolCallPayload{color:var(--dsw-alias-label-secondary);font:400 12px/18px var(--ds-font-family-code);margin-left:7px}.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_resultPreview,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_resultPreview{font-family:var(--ds-font-family-code);font-size:12px}.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_content{padding-left:26px}.Y0dWHa_inlineResult{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;display:flex}.Y0dWHa_noOutputText{color:var(--dsw-alias-label-caption)}.Y0dWHa_arrow{color:var(--dsw-alias-label-caption);flex:none;margin-right:8px}.Y0dWHa_error,.Y0dWHa_overview dd.Y0dWHa_error,.Y0dWHa_details .Y0dWHa_errorPayload{color:var(--dsw-alias-state-error-primary)}.Y0dWHa_details .Y0dWHa_errorPayload .Y0dWHa_resultBlockText{color:inherit}.Y0dWHa_details .Y0dWHa_jsonPayload.Y0dWHa_errorPayload,.Y0dWHa_details .Y0dWHa_jsonPreview.Y0dWHa_errorPayload{--json-tree-property:var(--dsw-alias-state-error-primary);--json-tree-string:var(--dsw-alias-state-error-primary);--json-tree-number:var(--dsw-alias-state-error-primary);--json-tree-keyword:var(--dsw-alias-state-error-primary);--json-tree-punctuation:var(--dsw-alias-state-error-primary);--json-tree-icon:var(--dsw-alias-state-error-primary)}.Y0dWHa_details{border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:none;width:clamp(320px,38%,440px);min-width:0;max-width:calc(100% - 280px);min-height:0;display:flex;position:relative}.Y0dWHa_detailsResizeHandle{z-index:6;cursor:col-resize;touch-action:none;user-select:none;background:0 0;border:0;width:8px;padding:0;position:absolute;top:0;bottom:0;left:-4px}.Y0dWHa_detailsResizeHandle:focus-visible{outline:none}.Y0dWHa_detailsHeader{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 8px 0 12px;display:flex}.Y0dWHa_detailsTitle{min-width:0;color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.Y0dWHa_requestDetailsDot{background:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;width:5px;height:5px}.Y0dWHa_requestDetailsName{font:500 12px/16px var(--ds-font-family-code);flex:none}.Y0dWHa_detailsLocation{min-width:0;color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:18px;display:inline-flex}.Y0dWHa_close:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabs{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);overscroll-behavior-x:contain;scrollbar-width:none;white-space:nowrap;flex:none;gap:1px;width:100%;min-width:0;max-width:100%;height:34px;padding:0 8px;display:flex;overflow:auto hidden}.Y0dWHa_detailTabs::-webkit-scrollbar{display:none}.Y0dWHa_detailTab{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xs-13);background:0 0;border:0;flex:none;padding:0 9px;position:relative}.Y0dWHa_detailTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabActive{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_detailTabActive:after{background:var(--dsw-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:9px;right:9px}.Y0dWHa_close:focus-visible,.Y0dWHa_detailTab:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_detailBody{min-height:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);scrollbar-gutter:stable;flex:1;overflow:hidden auto}.Y0dWHa_detailBodySummary{box-sizing:border-box;padding-bottom:calc(12px + var(--dsh-trajectory-bottom-clearance,0px));flex-direction:column;display:flex;overflow:hidden}.Y0dWHa_detailBodySummary>.Y0dWHa_overview{overscroll-behavior:contain;flex:0 auto;min-height:0;overflow:auto}.Y0dWHa_detailBodySummary>.Y0dWHa_compactedSummary{flex:1;min-height:0;overflow:auto}.Y0dWHa_summaryScrollRegion{--dsh-scrollbar-thumb:transparent;--dsh-scrollbar-thumb-hover:transparent}.Y0dWHa_summaryScrollRegion:hover,.Y0dWHa_summaryScrollRegion:focus-within{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2)}.Y0dWHa_compactedSummary .Y0dWHa_markdownPayload{padding-right:18px}.Y0dWHa_overview{font:var(--dsw-font-xs-13);margin:0;padding:8px 0}.Y0dWHa_overviewParentLinks{gap:14px;display:flex}.Y0dWHa_overviewHierarchyNavLink{all:unset;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;opacity:1;align-items:center;gap:1px;display:inline-flex}.Y0dWHa_overviewHierarchyNavLink:hover{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewHierarchyNavLink:hover .Y0dWHa_overviewHierarchyJumpIconTight,.Y0dWHa_overviewHierarchyNavLink:focus-visible .Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyNavLink:focus-visible{color:var(--dsw-alias-label-primary);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overview>div{grid-template-columns:94px minmax(0,1fr);align-items:center;min-height:22px;padding:0 14px;display:grid}.Y0dWHa_overview>.Y0dWHa_requestTokenDetail dt{padding-left:12px}.Y0dWHa_usagePanel{padding:4px 0 10px}.Y0dWHa_usageGroup+.Y0dWHa_usageGroup{margin-top:8px}.Y0dWHa_usageHeading{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0;padding:4px 14px 1px}.Y0dWHa_usageGroup .Y0dWHa_overview{padding:0}.Y0dWHa_overview dt{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_overview dd{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.Y0dWHa_timestampToggle{all:unset;color:inherit;cursor:pointer;font:inherit;user-select:text}.Y0dWHa_timestampToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewSections{border-top:0;flex-direction:column;flex:1;min-height:min-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection{flex-direction:column;flex:1 1 0;min-height:28px;max-height:max-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection+.Y0dWHa_overviewSection{padding-top:8px}.Y0dWHa_overviewHeading{box-sizing:border-box;width:100%;height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xs-strong-13);user-select:none;flex:none;align-items:flex-end;margin:0;padding:0 0 3px 14px;display:flex}.Y0dWHa_overviewTitle{width:max-content;height:auto;color:inherit;cursor:pointer;font:inherit;user-select:none;background:0 0;border:0;flex:none;align-items:center;gap:3px;padding:0;line-height:1;display:inline-flex}.Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewTitle:hover .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewTitle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewTitle:focus-visible .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_overviewPreview{overscroll-behavior:contain;background:var(--dsw-alias-bg-layer-1);flex:1;min-height:0;overflow:auto}.Y0dWHa_overviewPreview>:last-child{margin-bottom:0;padding-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_jsonPreview>:first-child,.Y0dWHa_overviewPreview .Y0dWHa_schemaTree>:first-child{padding-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_schemaTree{margin-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_overview{padding:2px 0 0}.Y0dWHa_overviewPreview .Y0dWHa_overview>div{min-height:22px}.Y0dWHa_markdownPreview,.Y0dWHa_markdownPayload{color:var(--dsw-alias-label-primary)}.Y0dWHa_markdownPreview>div,.Y0dWHa_markdownPayload>div{font:var(--dsw-font-xs-13);gap:8px}.Y0dWHa_markdownPreview>div h1,.Y0dWHa_markdownPayload>div h1{font:600 16px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div h2,.Y0dWHa_markdownPayload>div h2{font:600 15px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div :where(h3,h4,h5,h6),.Y0dWHa_markdownPayload>div :where(h3,h4,h5,h6){font:600 14px/20px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div :not(pre)>code,.Y0dWHa_markdownPayload>div :not(pre)>code{font:12px/18px var(--ds-font-family-code)}.Y0dWHa_markdownPreview>div table,.Y0dWHa_markdownPayload>div table{font:var(--dsw-font-xs-13)}.Y0dWHa_markdownPreview>div>:first-child{margin-top:0}.Y0dWHa_markdownPreview>div>:last-child{margin-bottom:0}.Y0dWHa_markdownPreview>div :where(h1,h2,h3){margin:12px 0 6px}.Y0dWHa_markdownPreview>div :where(h4,h5,h6){margin:10px 0 5px}.Y0dWHa_markdownPreview>div :where(p,ul,ol){margin:8px 0}.Y0dWHa_markdownPreview>div li:not(:first-child){margin-top:3px}.Y0dWHa_markdownPreview>div blockquote{margin-top:8px}.Y0dWHa_markdownPreview>div hr{margin:14px 0}.Y0dWHa_markdownPreview>div>.md-code-block{margin:10px 0}.Y0dWHa_assistantContent .Y0dWHa_markdownPayload,.Y0dWHa_assistantContent .Y0dWHa_payload{min-height:0}.Y0dWHa_thinkingQuote{border-left:2px solid var(--dsw-alias-markdown-citation);color:var(--dsw-alias-label-secondary);background:0 0;margin:6px 14px 0 12px;padding-left:6px}.Y0dWHa_thinkingQuoteOnlyPreview{margin-bottom:8px}.Y0dWHa_detailBody>.Y0dWHa_assistantContentRendered .Y0dWHa_thinkingQuote{margin-top:14px}.Y0dWHa_thinkingToggle{width:max-content;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:600 12px/18px var(--dsw-font-family);user-select:none;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:flex}.Y0dWHa_thinkingChevron{transition:transform .12s var(--ds-ease-in-out);flex:none}.Y0dWHa_thinkingToggle[aria-expanded=true] .Y0dWHa_thinkingChevron{transform:rotate(90deg)}.Y0dWHa_thinkingToggle:hover{color:var(--dsw-alias-label-secondary)}.Y0dWHa_thinkingToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_thinkingQuote .Y0dWHa_markdownPreview,.Y0dWHa_thinkingQuote .Y0dWHa_markdownPayload,.Y0dWHa_thinkingQuote .Y0dWHa_payload{min-height:0;color:var(--dsw-alias-label-secondary);background:0 0;padding:2px 0}.Y0dWHa_assistantOutput{background:var(--dsw-alias-bg-layer-1)}.Y0dWHa_markdownPreview{padding:6px 14px 8px}.Y0dWHa_markdownPayload{min-height:100%;padding:14px}.Y0dWHa_jsonPayload{min-height:100%}.Y0dWHa_jsonPreview{min-height:0}.Y0dWHa_schema{background:var(--dsw-alias-bg-layer-1);min-height:100%}.Y0dWHa_schemaPreview{min-height:0}.Y0dWHa_schemaIntro{padding:12px 14px 6px}.Y0dWHa_schemaPreview .Y0dWHa_schemaIntro{padding-top:6px}.Y0dWHa_schemaName{color:var(--dsw-alias-label-primary);font:600 12px/18px var(--ds-font-family-code);margin:0}.Y0dWHa_schemaDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:2px 0 0}.Y0dWHa_schemaParameters{min-width:0}.Y0dWHa_schemaParametersTitle{color:var(--dsw-alias-label-tertiary);font:600 11px/16px var(--dsw-font-family);user-select:none;margin:0;padding:4px 14px 2px}.Y0dWHa_schemaTree{margin:0 6px 8px 0}.Y0dWHa_payload{box-sizing:border-box;overflow-wrap:anywhere;min-height:100%;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;margin:0;padding:14px}.Y0dWHa_payloadPreview{min-height:0;padding:6px 14px 8px}.Y0dWHa_sourceBlocks{box-sizing:border-box;min-height:100%;padding:12px 14px}.Y0dWHa_sourceBlock+.Y0dWHa_sourceBlock{margin-top:14px}.Y0dWHa_sourceBlockHeader,.Y0dWHa_sourceBlockJumpTarget{user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockJumpTarget{all:unset;cursor:pointer;user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockLabel{color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code)}.Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_sourceBlockJumpTarget:hover .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_sourceBlockJumpTarget:focus-visible{outline:none}.Y0dWHa_sourceBlockJumpTarget:focus-visible .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_sourceBlockContent{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_panelImageLink{cursor:zoom-in;border-radius:4px;width:auto;max-width:100%;display:block;overflow:hidden}.Y0dWHa_panelImageLinkPreview{max-height:140px}.Y0dWHa_panelImage{border-radius:inherit;background:var(--dsw-alias-bg-base);object-fit:contain;width:auto;max-width:100%;height:auto;max-height:320px;margin:0;display:block}.Y0dWHa_panelImageLinkPreview .Y0dWHa_panelImage{max-height:140px}.Y0dWHa_messageImages{flex-direction:column;gap:8px;margin:8px 14px 14px;display:flex}.Y0dWHa_messageImagesPreview{gap:6px;margin:6px 14px 8px}.Y0dWHa_assistantToolCalls{box-sizing:border-box;max-width:100%;color:var(--dsw-alias-label-secondary);font:11px/17px var(--ds-font-family-code);margin:2px 14px 12px;padding:0;list-style:none}.Y0dWHa_assistantToolCallsPreview{margin-top:2px;margin-bottom:8px}.Y0dWHa_assistantToolCalls li{min-width:0}.Y0dWHa_assistantToolCallButton{all:unset;box-sizing:border-box;cursor:pointer;border-radius:3px;align-items:center;width:calc(100% + 4px);min-width:0;height:19px;margin-left:-4px;padding:0 4px;display:flex}.Y0dWHa_assistantToolCallButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_assistantToolCallButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-caption);flex:none;margin-right:5px}.Y0dWHa_assistantToolCallButton:hover .Y0dWHa_assistantToolCallIcon,.Y0dWHa_assistantToolCallButton:focus-visible .Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-secondary)}.Y0dWHa_assistantToolCallText{white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.Y0dWHa_assistantToolCallName{color:var(--dsw-alias-label-secondary);flex:none;margin-right:5px;font-weight:500}.Y0dWHa_assistantToolCallArgs{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_systemPrompt{box-sizing:border-box}.Y0dWHa_toolCatalog{min-height:100%;padding:8px 0 16px}.Y0dWHa_toolCatalogItem{border-bottom:1px solid var(--dsw-alias-border-l1)}.Y0dWHa_toolCatalogSummary{box-sizing:border-box;cursor:pointer;user-select:none;grid-template-columns:12px 12px max-content minmax(0,1fr);align-items:center;gap:5px;min-height:30px;padding:4px 12px;list-style:none;display:grid}.Y0dWHa_toolCatalogSummary::-webkit-details-marker{display:none}.Y0dWHa_toolCatalogSummary:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_toolCatalogSummary:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_toolCatalogChevron,.Y0dWHa_toolCatalogIcon{color:var(--dsw-alias-label-caption)}.Y0dWHa_toolCatalogChevron{transition:transform .1s var(--ds-ease-in-out)}.Y0dWHa_toolCatalogItem[open] .Y0dWHa_toolCatalogChevron{transform:rotate(90deg)}.Y0dWHa_toolCatalogName{color:var(--dsw-alias-label-primary);font:500 12px/18px var(--ds-font-family-code)}.Y0dWHa_toolCatalogDescription{min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_toolCatalogDefinition{background:var(--dsw-alias-bg-base);padding:0 0 8px 29px}.Y0dWHa_toolCatalogFullDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:0;padding:7px 14px 4px 0}.Y0dWHa_toolCatalogTree{margin-left:-14px;margin-right:6px}.Y0dWHa_resultBlocks{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100%;padding:14px;display:flex}.Y0dWHa_resultBlocksPreview{gap:6px;min-height:0;padding:6px 14px 8px}.Y0dWHa_resultBlockText{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_overviewPreview .Y0dWHa_noPayload{padding:6px 14px 8px}.Y0dWHa_noPayload{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);margin:0;padding:18px 14px}@media (width<=760px){.Y0dWHa_details{z-index:5;border-left-color:var(--dsw-alias-border-l3);width:min(92%,420px);max-width:92%;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #00000024}}"; + const tagId$3 = "@deepseek-ai/dsh-client-ui-trajectory/TrajectoryTable.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-trajectory"; + tag.dataset.pluginCss = tagId$3; + tag.textContent = css$3; + document.head.appendChild(tag); + } + var TrajectoryTable_module_css_default = { + "event": "Y0dWHa_event", + "sourceBlockJumpIcon": "Y0dWHa_sourceBlockJumpIcon", + "detailsTitle": "Y0dWHa_detailsTitle", + "schema": "Y0dWHa_schema", + "promptDiffSections": "Y0dWHa_promptDiffSections", + "sourceBlockHeader": "Y0dWHa_sourceBlockHeader", + "assistantToolCallName": "Y0dWHa_assistantToolCallName", + "panelImageLinkPreview": "Y0dWHa_panelImageLinkPreview", + "toolCatalogIcon": "Y0dWHa_toolCatalogIcon", + "schemaTree": "Y0dWHa_schemaTree", + "assistantToolCallText": "Y0dWHa_assistantToolCallText", + "overviewSections": "Y0dWHa_overviewSections", + "toolCatalogChevron": "Y0dWHa_toolCatalogChevron", + "schemaIntro": "Y0dWHa_schemaIntro", + "systemNeutral": "Y0dWHa_systemNeutral", + "toolCallOnly": "Y0dWHa_toolCallOnly", + "turnLabelCompact": "Y0dWHa_turnLabelCompact", + "contextGreen": "Y0dWHa_contextGreen", + "virtualSpacer": "Y0dWHa_virtualSpacer", + "overviewHierarchyJumpIconTight": "Y0dWHa_overviewHierarchyJumpIconTight", + "promptDiff": "Y0dWHa_promptDiff", + "promptDiffLineadded": "Y0dWHa_promptDiffLineadded", + "error": "Y0dWHa_error", + "errorPayload": "Y0dWHa_errorPayload", + "requestDetailsName": "Y0dWHa_requestDetailsName", + "toolCatalogSummary": "Y0dWHa_toolCatalogSummary", + "assistantToolCallArgs": "Y0dWHa_assistantToolCallArgs", + "table": "Y0dWHa_table", + "turnLabel": "Y0dWHa_turnLabel", + "systemPrompt": "Y0dWHa_systemPrompt", + "turnLabelFull": "Y0dWHa_turnLabelFull", + "panelImage": "Y0dWHa_panelImage", + "toolCallPayload": "Y0dWHa_toolCallPayload", + "toolCatalogItem": "Y0dWHa_toolCatalogItem", + "assistantToolCallIcon": "Y0dWHa_assistantToolCallIcon", + "promptDiffLinecontext": "Y0dWHa_promptDiffLinecontext", + "schemaParameters": "Y0dWHa_schemaParameters", + "history-loading-spin": "Y0dWHa_history-loading-spin", + "eventHeader": "Y0dWHa_eventHeader", + "kindTagLabel": "Y0dWHa_kindTagLabel", + "usageGroup": "Y0dWHa_usageGroup", + "compacted": "Y0dWHa_compacted", + "overviewTitleIcon": "Y0dWHa_overviewTitleIcon", + "assistantToolCalls": "Y0dWHa_assistantToolCalls", + "detailsLocation": "Y0dWHa_detailsLocation", + "turnLabelActive": "Y0dWHa_turnLabelActive", + "markdownPayload": "Y0dWHa_markdownPayload", + "promptDiffTitle": "Y0dWHa_promptDiffTitle", + "messageImages": "Y0dWHa_messageImages", + "eventInner": "Y0dWHa_eventInner", + "sourceBlockLabel": "Y0dWHa_sourceBlockLabel", + "toolCatalogDescription": "Y0dWHa_toolCatalogDescription", + "historyLoadingBar": "Y0dWHa_historyLoadingBar", + "thinkingChevron": "Y0dWHa_thinkingChevron", + "payload": "Y0dWHa_payload", + "detailBody": "Y0dWHa_detailBody", + "summaryScrollRegion": "Y0dWHa_summaryScrollRegion", + "contentText": "Y0dWHa_contentText", + "arrow": "Y0dWHa_arrow", + "details": "Y0dWHa_details", + "sourceBlockJumpTarget": "Y0dWHa_sourceBlockJumpTarget", + "toolCatalogName": "Y0dWHa_toolCatalogName", + "sourceBlockContent": "Y0dWHa_sourceBlockContent", + "promptDiffLinemeta": "Y0dWHa_promptDiffLinemeta", + "collapsedTurnText": "Y0dWHa_collapsedTurnText", + "requestDetailsDot": "Y0dWHa_requestDetailsDot", + "compactedSummary": "Y0dWHa_compactedSummary", + "usageHeading": "Y0dWHa_usageHeading", + "requestBoundaryControlActive": "Y0dWHa_requestBoundaryControlActive", + "thinkingToggle": "Y0dWHa_thinkingToggle", + "visuallyHidden": "Y0dWHa_visuallyHidden", + "user": "Y0dWHa_user", + "overviewHeading": "Y0dWHa_overviewHeading", + "assistantContent": "Y0dWHa_assistantContent", + "kindTag": "Y0dWHa_kindTag", + "assistantContentRendered": "Y0dWHa_assistantContentRendered", + "toolCatalogDefinition": "Y0dWHa_toolCatalogDefinition", + "collapsedTurnEllipsis": "Y0dWHa_collapsedTurnEllipsis", + "detailTabActive": "Y0dWHa_detailTabActive", + "schemaParametersTitle": "Y0dWHa_schemaParametersTitle", + "overview": "Y0dWHa_overview", + "trajectory-table": "Y0dWHa_trajectory-table", + "assistantToolCallsPreview": "Y0dWHa_assistantToolCallsPreview", + "resultPreview": "Y0dWHa_resultPreview", + "requestBoundaryControl": "Y0dWHa_requestBoundaryControl", + "promptDiffSection": "Y0dWHa_promptDiffSection", + "overviewParentLinks": "Y0dWHa_overviewParentLinks", + "toolCatalogFullDescription": "Y0dWHa_toolCatalogFullDescription", + "eventColumn": "Y0dWHa_eventColumn", + "selectionRail": "Y0dWHa_selectionRail", + "message": "Y0dWHa_message", + "tablePane": "Y0dWHa_tablePane", + "resultBlocks": "Y0dWHa_resultBlocks", + "historyLoadRow": "Y0dWHa_historyLoadRow", + "subtoolAmber": "Y0dWHa_subtoolAmber", + "kindTagIcon": "Y0dWHa_kindTagIcon", + "overviewHierarchyNavLink": "Y0dWHa_overviewHierarchyNavLink", + "content": "Y0dWHa_content", + "inlineResultText": "Y0dWHa_inlineResultText", + "promptDiffLineremoved": "Y0dWHa_promptDiffLineremoved", + "resultRequest": "Y0dWHa_resultRequest", + "split": "Y0dWHa_split", + "sourceBlocks": "Y0dWHa_sourceBlocks", + "assistantOutput": "Y0dWHa_assistantOutput", + "toolCatalog": "Y0dWHa_toolCatalog", + "usagePanel": "Y0dWHa_usagePanel", + "markdownPreview": "Y0dWHa_markdownPreview", + "overviewPreview": "Y0dWHa_overviewPreview", + "assistantVioletBright": "Y0dWHa_assistantVioletBright", + "noPayload": "Y0dWHa_noPayload", + "historyLoadingSpinner": "Y0dWHa_historyLoadingSpinner", + "detailsResizeHandle": "Y0dWHa_detailsResizeHandle", + "collapsedTurnContent": "Y0dWHa_collapsedTurnContent", + "jsonPreview": "Y0dWHa_jsonPreview", + "thinkingQuoteOnlyPreview": "Y0dWHa_thinkingQuoteOnlyPreview", + "sourceBlock": "Y0dWHa_sourceBlock", + "messageImagesPreview": "Y0dWHa_messageImagesPreview", + "assistantToolCallButton": "Y0dWHa_assistantToolCallButton", + "kindSlot": "Y0dWHa_kindSlot", + "toolAmber": "Y0dWHa_toolAmber", + "requestTokenDetail": "Y0dWHa_requestTokenDetail", + "historyLoading": "Y0dWHa_historyLoading", + "timestampToggle": "Y0dWHa_timestampToggle", + "resultBlocksPreview": "Y0dWHa_resultBlocksPreview", + "detailsHeader": "Y0dWHa_detailsHeader", + "noOutputText": "Y0dWHa_noOutputText", + "detailTabs": "Y0dWHa_detailTabs", + "detailTab": "Y0dWHa_detailTab", + "jsonPayload": "Y0dWHa_jsonPayload", + "turnRail": "Y0dWHa_turnRail", + "toolCatalogTree": "Y0dWHa_toolCatalogTree", + "close": "Y0dWHa_close", + "resultBlockText": "Y0dWHa_resultBlockText", + "schemaDescription": "Y0dWHa_schemaDescription", + "historyLoadButton": "Y0dWHa_historyLoadButton", + "toolCallNameTypeface": "Y0dWHa_toolCallNameTypeface", + "overviewTitle": "Y0dWHa_overviewTitle", + "thinkingQuote": "Y0dWHa_thinkingQuote", + "panelImageLink": "Y0dWHa_panelImageLink", + "payloadPreview": "Y0dWHa_payloadPreview", + "inlineResult": "Y0dWHa_inlineResult", + "overviewSection": "Y0dWHa_overviewSection", + "detailBodySummary": "Y0dWHa_detailBodySummary", + "schemaPreview": "Y0dWHa_schemaPreview", + "schemaName": "Y0dWHa_schemaName", + "contentColumn": "Y0dWHa_contentColumn" + }; + //#endregion + //#region lib/types/client/TrajectoryTable.js + /** Turn-aware trajectory event ledger with a local record inspector. */ + const BOTTOM_FOLLOW_THRESHOLD_PX = 2; + const OLDER_LOAD_THRESHOLD_PX = 48; + const HISTORY_LOAD_ROW_HEIGHT_PX = 30; + const VIRTUALIZATION_THRESHOLD = 100; + const VIRTUAL_OVERSCAN_ROWS = 12; + const VIRTUAL_INITIAL_VIEWPORT_HEIGHT_PX = 600; + const KIND_LABEL = { + system: "SYSTEM", + user: "USER", + context: "CONTEXT", + compacted: "COMPACTED", + message: "ASSISTANT", + tool: "TOOL", + subtool: "SUBTOOL" + }; + function ToolWrenchIcon() { + return (0, react_jsx_runtime.jsx)("svg", { + width: "13", + height: "13", + viewBox: "0 0 16 16", + fill: "none", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round", + "data-role-icon": "wrench", + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("path", { d: "M14 3.3a3.8 3.8 0 0 1-4.8 4.8l-5.1 5.1a1.6 1.6 0 1 1-2.3-2.3l5.1-5.1A3.8 3.8 0 0 1 11.7 1l-2.3 2.3 2.3 2.3L14 3.3Z" }) + }); + } + function InformationIcon() { + return (0, react_jsx_runtime.jsxs)("svg", { + width: "14", + height: "14", + viewBox: "0 0 16 16", + fill: "none", + stroke: "currentColor", + strokeWidth: "1.4", + strokeLinecap: "round", + "data-role-icon": "information", + "aria-hidden": "true", + children: [ + (0, react_jsx_runtime.jsx)("circle", { + cx: "8", + cy: "8", + r: "6.7" + }), + (0, react_jsx_runtime.jsx)("circle", { + cx: "8", + cy: "5.5", + r: ".85", + fill: "currentColor", + stroke: "none" + }), + (0, react_jsx_runtime.jsx)("path", { + d: "M8 7.75v3.4", + strokeWidth: "1.8" + }) + ] + }); + } + function CompactedIcon() { + return (0, react_jsx_runtime.jsxs)("svg", { + width: "13", + height: "13", + viewBox: "0 0 16 16", + fill: "none", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round", + "data-role-icon": "compacted", + "aria-hidden": "true", + children: [ + (0, react_jsx_runtime.jsx)("path", { d: "m2.5 2.5 3.75 3.75M3 6.25h3.25V3" }), + (0, react_jsx_runtime.jsx)("path", { d: "m13.5 2.5-3.75 3.75M13 6.25H9.75V3" }), + (0, react_jsx_runtime.jsx)("path", { d: "m2.5 13.5 3.75-3.75M3 9.75h3.25V13" }), + (0, react_jsx_runtime.jsx)("path", { d: "m13.5 13.5-3.75-3.75M13 9.75H9.75V13" }) + ] + }); + } + const KIND_ICON = { + system: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutline16, { size: 13 }), + user: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconUserOutline16, { size: 13 }), + context: (0, react_jsx_runtime.jsx)(InformationIcon, {}), + compacted: (0, react_jsx_runtime.jsx)(CompactedIcon, {}), + message: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSparkle16, { size: 13 }), + tool: (0, react_jsx_runtime.jsx)(ToolWrenchIcon, {}), + subtool: (0, react_jsx_runtime.jsx)(ToolWrenchIcon, {}) + }; + function useStableVirtualRowStructure(rows) { + const cache = (0, react.useRef)({ + rows: [], + structure: [] + }); + if (cache.current.rows === rows) return cache.current.structure; + const structure = cache.current.structure.length === rows.length && rows.every((row, index) => { + const previous = cache.current.structure[index]; + return previous?.key === row.key && previous.height === row.height; + }) ? cache.current.structure : rows.map((row) => ({ + key: row.key, + height: row.height + })); + cache.current = { + rows, + structure + }; + return structure; + } + const DETAILS_MIN_WIDTH = 320; + const DETAILS_MAX_WIDTH = 720; + const TABLE_MIN_WIDTH = 280; + const DETAILS_RESIZE_STEP = 16; + const TOOL_REQUEST_SHARE = .58; + const TOOL_REQUEST_MIN_WIDTH = 180; + const TOOL_REQUEST_MAX_WIDTH = 480; + const DEFAULT_TOOL_REQUEST_SHARE = .36; + const DEFAULT_TOOL_REQUEST_OFFSET = 56; + const SYSTEM_PROMPT_TABS = [{ + id: "system-prompt", + label: "System Prompt" + }, { + id: "tools", + label: "Tools" + }]; + const SYSTEM_UPDATE_TABS = [{ + id: "diff", + label: "Diff" + }, ...SYSTEM_PROMPT_TABS]; + const REQUEST_TABS = [ + { + id: "overview", + label: "Summary" + }, + { + id: "options", + label: "Options" + }, + { + id: "usage", + label: "Usage" + }, + { + id: "timing", + label: "Timing" + } + ]; + function clampDetailsWidth(width, splitWidth) { + const maxWidth = Math.max(DETAILS_MIN_WIDTH, Math.min(DETAILS_MAX_WIDTH, splitWidth - TABLE_MIN_WIDTH)); + return Math.round(Math.min(Math.max(width, DETAILS_MIN_WIDTH), maxWidth)); + } + function defaultToolRequestWidth(splitWidth) { + return Math.min(Math.max(splitWidth * DEFAULT_TOOL_REQUEST_SHARE - DEFAULT_TOOL_REQUEST_OFFSET, TOOL_REQUEST_MIN_WIDTH), TOOL_REQUEST_MAX_WIDTH); + } + function formatDurationMs(milliseconds) { + if (milliseconds < 1e3) return `${Math.round(milliseconds)} ms`; + return `${(milliseconds / 1e3).toFixed(milliseconds < 1e4 ? 2 : 1)} s`; + } + function formatStartedAt(timestamp) { + if (timestamp === null || !Number.isFinite(timestamp)) return "Not available"; + const date = new Date(timestamp); + const two = (value) => String(value).padStart(2, "0"); + const three = (value) => String(value).padStart(3, "0"); + const time = `${two(date.getHours())}:${two(date.getMinutes())}:${two(date.getSeconds())}.${three(date.getMilliseconds())}`; + return `${`${date.getFullYear()}-${two(date.getMonth() + 1)}-${two(date.getDate())}`} ${time}`; + } + /** Whether a click lands on an active text selection and should keep it. */ + function clickSelectsText(target) { + const selection = window.getSelection(); + return selection !== null && !selection.isCollapsed && selection.rangeCount > 0 && selection.getRangeAt(0).intersectsNode(target); + } + function StartedAtValue({ timestamp }) { + const [showUnix, setShowUnix] = (0, react.useState)(false); + if (timestamp === null || !Number.isFinite(timestamp)) return (0, react_jsx_runtime.jsx)("dd", { children: "Not available" }); + return (0, react_jsx_runtime.jsx)("dd", { children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: TrajectoryTable_module_css_default.timestampToggle, + title: showUnix ? "Show local time" : "Show Unix timestamp", + onClick: (event) => { + if (clickSelectsText(event.currentTarget)) return; + setShowUnix((current) => !current); + }, + children: showUnix ? (timestamp / 1e3).toFixed(3) : formatStartedAt(timestamp) + }) }); + } + function totalTime(metrics) { + if (!metrics.timingRecorded) return "Not recorded"; + if (metrics.stepStartTime === null) return "Step start unavailable"; + if (metrics.completedTime === null) return "Pending"; + return formatDurationMs(Math.max(0, metrics.completedTime - metrics.stepStartTime)); + } + function ttft(metrics) { + if (!metrics.timingRecorded) return "Not recorded"; + if (metrics.stepStartTime === null) return "Step start unavailable"; + if (metrics.firstTokenTime === null) return "First token unavailable"; + return formatDurationMs(Math.max(0, metrics.firstTokenTime - metrics.stepStartTime)); + } + function generationTime(metrics) { + if (!metrics.timingRecorded || metrics.firstTokenTime === null) return "First token unavailable"; + if (metrics.completedTime === null) return "Pending"; + return formatDurationMs(Math.max(0, metrics.completedTime - metrics.firstTokenTime)); + } + function throughput(metrics) { + if (!metrics.usageProvided) return "Usage unavailable"; + if (metrics.outputTokens === null) return "Output tokens unavailable"; + if (!metrics.timingRecorded || metrics.firstTokenTime === null) return "First token unavailable"; + if (metrics.completedTime === null) return "Pending"; + const generationSeconds = (metrics.completedTime - metrics.firstTokenTime) / 1e3; + if (generationSeconds <= 0) return "Duration too short"; + return `${(metrics.outputTokens / generationSeconds).toFixed(1)} tok/s`; + } + function AssistantTimingPanel({ metrics }) { + return (0, react_jsx_runtime.jsxs)("dl", { + className: TrajectoryTable_module_css_default.overview, + children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Started" }), (0, react_jsx_runtime.jsx)(StartedAtValue, { timestamp: metrics.stepStartTime })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Total duration" }), (0, react_jsx_runtime.jsx)("dd", { children: totalTime(metrics) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "TTFT" }), (0, react_jsx_runtime.jsx)("dd", { children: ttft(metrics) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Generation" }), (0, react_jsx_runtime.jsx)("dd", { children: generationTime(metrics) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Throughput" }), (0, react_jsx_runtime.jsx)("dd", { children: throughput(metrics) })] }) + ] + }); + } + function flattenRecords(turns) { + return turns.flatMap((turn, section) => { + let firstInSection = true; + const records = turn.groups.flatMap((group) => { + return group.cells.map((cell, index) => { + const turnStart = firstInSection && cell.requestOnly !== true && cell.kind !== "system" && (cell.kind !== "compacted" || turn.turn === null); + if (turnStart) firstInSection = false; + return { + turn: turn.turn, + section, + group: group.title, + groupStart: index === 0, + turnStart, + cell, + turnEnd: false + }; + }); + }); + const last = records.at(-1); + if (last !== void 0) last.turnEnd = true; + return records; + }); + } + function filterRecords(records, matches) { + const filtered = records.filter((record) => record.cell.requestOnly !== true && matches.has(record.cell.index)).map((record) => ({ + ...record, + groupStart: false, + turnStart: false, + turnEnd: false + })); + const startedSections = /* @__PURE__ */ new Set(); + for (const [index, record] of filtered.entries()) { + const previous = filtered[index - 1]; + const next = filtered[index + 1]; + record.groupStart = previous === void 0 || previous.section !== record.section || previous.group !== record.group; + record.turnStart = !startedSections.has(record.section) && record.cell.kind !== "system" && (record.cell.kind !== "compacted" || record.turn === null); + if (record.turnStart) startedSections.add(record.section); + record.turnEnd = next === void 0 || next.section !== record.section; + } + return filtered; + } + function requestStep(group) { + if (!group.startsWith("Step ")) return void 0; + const value = Number(group.slice(5)); + return Number.isInteger(value) && value > 0 ? value : void 0; + } + function requestKey(turn, group) { + return `${turn}\u0000${group}`; + } + function indexRequestBoundaries(records) { + const boundaries = /* @__PURE__ */ new Map(); + for (const record of records) { + const key = requestKey(record.turn, record.group); + if (boundaries.has(key)) continue; + if (requestStep(record.group) === void 0) { + if (record.groupStart) boundaries.set(key, record.cell.index); + continue; + } + if (record.cell.kind === "user" || record.cell.kind === "context") continue; + boundaries.set(key, record.cell.index); + } + return boundaries; + } + function sectionLabel(turn) { + return turn === null ? "Between turns" : `Turn ${turn}`; + } + function indexRequestNumbers(records, sessionNumbers, boundaries) { + const numbers = /* @__PURE__ */ new Map(); + for (const request of sessionNumbers ?? []) numbers.set(requestKey(request.turn, request.group), request.number); + let next = Math.max(0, ...numbers.values()) + 1; + const boundaryRecords = records.filter((record) => boundaries.get(requestKey(record.turn, record.group)) === record.cell.index && requestStep(record.group) !== void 0).sort((left, right) => left.cell.index - right.cell.index); + for (const record of boundaryRecords) { + const key = requestKey(record.turn, record.group); + if (!numbers.has(key)) numbers.set(key, next++); + } + return numbers; + } + function indexRequestBoundaryRuns(records) { + const indexes = /* @__PURE__ */ new Map(); + let runLength = 0; + for (const record of records) { + if (record.cell.requestOnly === true) { + indexes.set(record.cell.index, runLength++); + continue; + } + if (runLength > 0 && record.groupStart && requestStep(record.group) !== void 0) indexes.set(record.cell.index, runLength); + runLength = 0; + } + return indexes; + } + function summarizeTurn(records) { + const steps = new Set(records.map((record) => record.group).filter((group) => group.startsWith("Step "))).size; + const toolCalls = records.filter((record) => record.cell.kind === "tool" || record.cell.kind === "subtool").length; + return [`${steps} ${steps === 1 ? "step" : "steps"}`, `${toolCalls} tool ${toolCalls === 1 ? "call" : "calls"}`].join(" · "); + } + function collapseTurnRecords(records, collapsedTurns) { + const recordsByTurn = /* @__PURE__ */ new Map(); + for (const record of records) { + if (record.turn === null) continue; + const turnRecords = recordsByTurn.get(record.turn) ?? []; + turnRecords.push(record); + recordsByTurn.set(record.turn, turnRecords); + } + return records.flatMap((record) => { + if (record.turn === null || !collapsedTurns.has(record.turn)) return [record]; + const turnRecords = recordsByTurn.get(record.turn) ?? [record]; + if (record.cell.requestOnly === true || record.cell.kind === "system") return [record]; + const contentRecords = turnRecords.filter((candidate) => candidate.cell.requestOnly !== true && candidate.cell.kind !== "system"); + if (contentRecords.length <= 1) return [record]; + if (record.cell.index !== contentRecords[0]?.cell.index) return []; + return [{ + ...record, + turnEnd: false + }, { + ...record, + groupStart: false, + turnStart: false, + turnEnd: true, + collapsedSummary: summarizeTurn(contentRecords.slice(1)), + collapsedSummaryKind: "turn" + }]; + }); + } + function assistantToolCalls(records, assistantIndex) { + const at = records.findIndex((record) => record.cell.index === assistantIndex); + if (at === -1 || records[at]?.cell.kind !== "message") return []; + const calls = []; + for (let i = at + 1; i < records.length; i++) { + const record = records[i]; + if (record === void 0) break; + if (record.cell.kind !== "tool" && record.cell.kind !== "subtool") break; + calls.push(record); + } + return calls; + } + function summarizeAssistantTools(records) { + const names = [...new Set(records.map((record) => { + const separator = record.cell.text.indexOf(" · "); + return separator === -1 ? record.cell.text : record.cell.text.slice(0, separator); + }).filter((name) => name !== ""))]; + const count = records.length; + const summary = `${count} tool ${count === 1 ? "call" : "calls"}`; + return names.length > 0 ? `${summary} · ${names.join(", ")}` : summary; + } + function collapseAssistantRecords(records, collapsedAssistants) { + const out = []; + for (let i = 0; i < records.length; i++) { + const record = records[i]; + if (record === void 0) continue; + out.push(record); + if (record.cell.kind !== "message" || !collapsedAssistants.has(trajectoryRecordId(record.cell))) continue; + const calls = []; + for (let j = i + 1; j < records.length; j++) { + const candidate = records[j]; + if (candidate === void 0 || candidate.collapsedSummary !== void 0 || candidate.cell.kind !== "tool" && candidate.cell.kind !== "subtool") break; + calls.push(candidate); + } + if (calls.length === 0) continue; + const last = calls.at(-1); + out[out.length - 1] = { + ...record, + turnEnd: false + }; + out.push({ + ...record, + groupStart: false, + turnStart: false, + turnEnd: last?.turnEnd ?? false, + collapsedSummary: summarizeAssistantTools(calls), + collapsedSummaryKind: "assistant" + }); + i += calls.length; + } + return out; + } + function stateOf(record) { + if (record.cell.isError) return "error"; + if (record.cell.kind === "compacted" && record.cell.timeSeconds === null) return "running"; + if ((record.cell.kind === "tool" || record.cell.kind === "subtool") && record.cell.outputDetail === void 0) return "running"; + return "complete"; + } + function statusLabel(state) { + if (state === "error") return "Failed"; + if (state === "running") return "Pending"; + return "Completed"; + } + function TokenRows({ cell }) { + const content = cell.output !== void 0 && cell.think !== void 0 ? Math.max(0, cell.output - cell.think) : void 0; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Tokens" }), (0, react_jsx_runtime.jsx)("dd", { children: cell.output === void 0 ? "—" : `${cell.output} tok` })] }), + cell.think !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Reasoning" }), (0, react_jsx_runtime.jsxs)("dd", { children: [cell.think, " tok"] })] + }), + content !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Content" }), (0, react_jsx_runtime.jsxs)("dd", { children: [content, " tok"] })] + }) + ] }); + } + function inputTotal(usage) { + if (usage.input === void 0 && usage.cacheRead === void 0 && usage.cacheWrite === void 0) return void 0; + return (usage.input ?? 0) + (usage.cacheRead ?? 0) + (usage.cacheWrite ?? 0); + } + function UsageRows({ usage }) { + if (usage === void 0) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "Usage not reported" + }); + const totalInput = inputTotal(usage); + const otherOutput = usage.output !== void 0 && usage.reasoning !== void 0 ? usage.output - usage.reasoning : void 0; + return (0, react_jsx_runtime.jsxs)("dl", { + className: TrajectoryTable_module_css_default.overview, + children: [ + totalInput !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Input" }), (0, react_jsx_runtime.jsxs)("dd", { children: [totalInput, " tok"] })] }), + usage.cacheRead !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Cached" }), (0, react_jsx_runtime.jsxs)("dd", { children: [usage.cacheRead, " tok"] })] + }), + usage.cacheWrite !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Cache created" }), (0, react_jsx_runtime.jsxs)("dd", { children: [usage.cacheWrite, " tok"] })] + }), + usage.input !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Other" }), (0, react_jsx_runtime.jsxs)("dd", { children: [usage.input, " tok"] })] + }), + usage.output !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Output" }), (0, react_jsx_runtime.jsxs)("dd", { children: [usage.output, " tok"] })] }), + usage.reasoning !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Reasoning" }), (0, react_jsx_runtime.jsxs)("dd", { children: [usage.reasoning, " tok"] })] + }), + otherOutput !== void 0 && (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.requestTokenDetail, + children: [(0, react_jsx_runtime.jsx)("dt", { children: "Content" }), (0, react_jsx_runtime.jsxs)("dd", { children: [otherOutput, " tok"] })] + }) + ] + }); + } + function RequestUsagePanel({ usage, cumulative }) { + return (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.usagePanel, + children: [(0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.usageGroup, + children: [(0, react_jsx_runtime.jsx)("h4", { + className: TrajectoryTable_module_css_default.usageHeading, + children: "This request" + }), (0, react_jsx_runtime.jsx)(UsageRows, { usage })] + }), (0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.usageGroup, + children: [(0, react_jsx_runtime.jsx)("h4", { + className: TrajectoryTable_module_css_default.usageHeading, + children: "Session cumulative" + }), (0, react_jsx_runtime.jsx)(UsageRows, { usage: cumulative })] + })] + }); + } + function RequestOptions({ options, preview = false }) { + if (options === void 0) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "Options not recorded" + }); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: options, + label: "Request options JSON", + className: preview ? TrajectoryTable_module_css_default.jsonPreview : TrajectoryTable_module_css_default.jsonPayload + }); + } + function messageSourceLabel(source) { + if (typeof source !== "object" || source === null || Array.isArray(source)) return "Unknown"; + const properties = source; + const kind = properties.kind; + if (kind === "user") return "User"; + if (kind === "plugin") { + const plugin = properties.plugin; + return typeof plugin === "string" && plugin !== "" ? `Plugin · ${plugin}` : "Plugin"; + } + if (kind === "goal") { + const round = properties.round; + return typeof round === "number" && round > 0 ? `Goal · Round ${round}` : "Goal"; + } + if (typeof kind !== "string" || kind === "") return "Unknown"; + return `${kind[0]?.toUpperCase() ?? ""}${kind.slice(1)}`; + } + function MessageSource({ record }) { + const source = record.cell.messageSource; + if (source === void 0) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "Source not recorded" + }); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: typeof source === "object" && source !== null ? source : { value: source }, + label: "Message source JSON", + className: TrajectoryTable_module_css_default.jsonPayload + }); + } + function isMarkdownRecord(record) { + return record.cell.kind === "user" || record.cell.kind === "context" || record.cell.kind === "message"; + } + function parentRecords(records, record) { + if (record.cell.kind !== "tool" && record.cell.kind !== "subtool") return {}; + const at = records.findIndex((candidate) => candidate.cell.index === record.cell.index); + if (at === -1) return {}; + let tool; + if (record.cell.kind === "subtool") for (let i = at - 1; i >= 0; i--) { + const candidate = records[i]; + if (candidate === void 0 || candidate.turn !== record.turn || candidate.group !== record.group) break; + if (candidate.cell.kind === "tool") { + tool = candidate; + break; + } + } + const parentCallId = tool?.cell.callId ?? record.cell.callId; + let message; + if (parentCallId !== void 0) message = records.find((candidate) => candidate.turn === record.turn && candidate.cell.kind === "message" && candidate.cell.sourceBlocks?.some((block) => block.callId === parentCallId) === true); + return { + ...message === void 0 ? {} : { message }, + ...tool === void 0 ? {} : { tool } + }; + } + function markdownSource(record) { + if (record.cell.kind === "user" || record.cell.kind === "context") return record.cell.inputDetail; + if (record.cell.kind === "message" || record.cell.kind === "compacted") return record.cell.outputDetail; + } + function detailTabs(record) { + if (record.cell.kind === "system") return record.cell.previousPromptDetail === void 0 ? SYSTEM_PROMPT_TABS : SYSTEM_UPDATE_TABS; + if (record.cell.kind === "compacted") return [{ + id: "overview", + label: "Summary" + }, { + id: "raw", + label: "Raw Output" + }]; + if (isMarkdownRecord(record)) return [ + { + id: "overview", + label: "Summary" + }, + { + id: "rendered", + label: "Preview" + }, + { + id: "raw", + label: "Raw" + }, + ...record.cell.messageSource === void 0 ? [] : [{ + id: "source", + label: "Source" + }] + ]; + return [ + { + id: "overview", + label: "Summary" + }, + ...record.cell.inputDetail ? [{ + id: "input", + label: "Payload" + }] : [], + ...record.cell.outputDetail ? [{ + id: "output", + label: "Result" + }] : [], + { + id: "schema", + label: "Schema" + }, + { + id: "timing", + label: "Timing" + } + ]; + } + function recordDisplayText(cell) { + if (isToolCallOnly(cell)) return ""; + if (cell.previewMarkdown !== void 0) { + const preview = trajectoryPreviewText(cell.previewMarkdown); + if (cell.text === "") return preview; + return preview === "" ? cell.text : `${cell.text} · ${preview}`; + } + if (cell.text !== "") return cell.text; + const markdown = cell.kind === "user" || cell.kind === "context" ? cell.inputDetail : cell.kind === "message" ? cell.outputDetail ?? cell.thinkingDetail : void 0; + return markdown === void 0 ? "" : trajectoryPreviewText(markdown); + } + function recordResultText(cell) { + return cell.resultPreviewMarkdown === void 0 ? cell.result : trajectoryPreviewText(cell.resultPreviewMarkdown); + } + function toolCallTextParts(kind, text) { + if (kind !== "tool" && kind !== "subtool") return void 0; + const separator = text.indexOf(" · "); + if (separator === -1) return { name: text }; + return { + name: text.slice(0, separator), + args: text.slice(separator + 3) + }; + } + function isToolCallOnly(cell) { + return cell.kind === "message" && !cell.outputDetail && !cell.thinkingDetail && cell.text === "Tool call only"; + } + function RecordPresentation({ cell, children }) { + const displayText = (0, react.useMemo)(() => recordDisplayText(cell), [ + cell.kind, + cell.text, + cell.previewMarkdown, + cell.inputDetail, + cell.outputDetail, + cell.thinkingDetail + ]); + const resultText = (0, react.useMemo)(() => recordResultText(cell), [cell.result, cell.resultPreviewMarkdown]); + const toolCallOnly = isToolCallOnly(cell); + const toolCallText = toolCallTextParts(cell.kind, displayText); + return children({ + displayText, + listDisplayText: toolCallOnly ? "(tool call only)" : toolCallText === void 0 ? displayText : [toolCallText.name, toolCallText.args].filter(Boolean).join(" "), + resultText, + toolCallOnly, + toolCallText + }); + } + function RecordListText({ displayText, toolCallOnly, toolCallText }) { + if (toolCallOnly) return (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.toolCallOnly, + children: "(tool call only)" + }); + if (toolCallText === void 0) return displayText || "—"; + return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.toolCallNameTypeface, + children: toolCallText.name || "—" + }), toolCallText.args !== void 0 && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.toolCallPayload, + children: toolCallText.args + })] }); + } + function MarkdownFragment({ text, rendered, preview }) { + if (rendered) return (0, react_jsx_runtime.jsx)("div", { + className: preview ? TrajectoryTable_module_css_default.markdownPreview : TrajectoryTable_module_css_default.markdownPayload, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text }) + }); + return (0, react_jsx_runtime.jsx)("pre", { + className: `${TrajectoryTable_module_css_default.payload} ${preview ? TrajectoryTable_module_css_default.payloadPreview : ""}`, + children: text + }); + } + function SourceBlocks({ blocks, onOpenCall }) { + return (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.sourceBlocks, + children: blocks.map((block, index) => (0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.sourceBlock, + children: [block.callId !== void 0 ? (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.sourceBlockJumpTarget, + "aria-label": `Open Block #${index + 1} tool call summary`, + title: "Open tool call summary", + onClick: () => { + if (block.callId !== void 0) onOpenCall(block.callId); + }, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.sourceBlockLabel, + children: `Block #${index + 1} ${block.type}` + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.sourceBlockJumpIcon, + size: 12 + })] + }) : (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.sourceBlockHeader, + children: (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.sourceBlockLabel, + children: `Block #${index + 1} ${block.type}` + }) + }), block.imageSrc !== void 0 ? (0, react_jsx_runtime.jsx)(PanelImage, { block }) : (0, react_jsx_runtime.jsx)("pre", { + className: TrajectoryTable_module_css_default.sourceBlockContent, + children: block.content + })] + }, index)) + }); + } + function PanelImage({ block, preview = false }) { + if (block.imageSrc === void 0) return null; + return (0, react_jsx_runtime.jsx)("a", { + className: preview ? `${TrajectoryTable_module_css_default.panelImageLink} ${TrajectoryTable_module_css_default.panelImageLinkPreview}` : TrajectoryTable_module_css_default.panelImageLink, + href: block.imageSrc, + target: "_blank", + rel: "noopener noreferrer", + title: "Open image", + children: (0, react_jsx_runtime.jsx)("img", { + className: TrajectoryTable_module_css_default.panelImage, + src: block.imageSrc, + alt: block.imageAlt ?? "" + }) + }); + } + function MessageImages({ blocks, preview }) { + const images = blocks?.filter((block) => block.imageSrc !== void 0) ?? []; + if (images.length === 0) return null; + return (0, react_jsx_runtime.jsx)("div", { + className: preview ? `${TrajectoryTable_module_css_default.messageImages} ${TrajectoryTable_module_css_default.messageImagesPreview}` : TrajectoryTable_module_css_default.messageImages, + children: images.map((block, index) => (0, react_jsx_runtime.jsx)(PanelImage, { + block, + preview + }, index)) + }); + } + function AssistantToolCalls({ blocks, preview, onOpenCall }) { + const calls = blocks?.filter((block) => block.type === "tool-call") ?? []; + if (calls.length === 0) return null; + return (0, react_jsx_runtime.jsx)("ul", { + className: preview ? `${TrajectoryTable_module_css_default.assistantToolCalls} ${TrajectoryTable_module_css_default.assistantToolCallsPreview}` : TrajectoryTable_module_css_default.assistantToolCalls, + children: calls.map((call, index) => (0, react_jsx_runtime.jsx)("li", { children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.assistantToolCallButton, + title: "Open tool call summary", + onClick: () => { + if (call.callId !== void 0) onOpenCall(call.callId); + }, + children: [(0, react_jsx_runtime.jsx)("svg", { + className: TrajectoryTable_module_css_default.assistantToolCallIcon, + width: "12", + height: "12", + viewBox: "0 0 24 24", + fill: "none", + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("path", { + d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94z", + stroke: "currentColor", + strokeWidth: "1.8", + strokeLinecap: "round", + strokeLinejoin: "round" + }) + }), (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default.assistantToolCallText, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.assistantToolCallName, + children: call.toolName ?? "tool-call" + }), call.content !== "" && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.assistantToolCallArgs, + children: call.content + })] + })] + }) }, call.callId ?? index)) + }); + } + function ToolGlyph() { + return (0, react_jsx_runtime.jsx)("svg", { + className: TrajectoryTable_module_css_default.toolCatalogIcon, + width: "12", + height: "12", + viewBox: "0 0 24 24", + fill: "none", + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("path", { + d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94z", + stroke: "currentColor", + strokeWidth: "1.8", + strokeLinecap: "round", + strokeLinejoin: "round" + }) + }); + } + function ToolCatalog({ tools }) { + if (tools.length === 0) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "No tools in this request" + }); + return (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.toolCatalog, + children: tools.map((tool, index) => (0, react_jsx_runtime.jsxs)("details", { + className: TrajectoryTable_module_css_default.toolCatalogItem, + children: [(0, react_jsx_runtime.jsxs)("summary", { + className: TrajectoryTable_module_css_default.toolCatalogSummary, + children: [ + (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.toolCatalogChevron, + size: 12 + }), + (0, react_jsx_runtime.jsx)(ToolGlyph, {}), + (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.toolCatalogName, + children: tool.name + }), + (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.toolCatalogDescription, + children: tool.description + }) + ] + }), (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.toolCatalogDefinition, + children: [tool.description !== "" && (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.toolCatalogFullDescription, + children: tool.description + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: tool.parameters, + label: `${tool.name} parameters JSON`, + className: TrajectoryTable_module_css_default.toolCatalogTree + })] + })] + }, `${tool.name}:${index}`)) + }); + } + function promptDiffLines(before, after) { + return structuredPatch("", "", before, after, void 0, void 0, { context: 3 }).hunks.flatMap((hunk, hunkIndex) => [ + ...hunkIndex === 0 ? [] : [{ + kind: "meta", + text: "" + }], + { + kind: "meta", + text: `@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@` + }, + ...hunk.lines.flatMap((line) => { + if (line.startsWith("\\")) return []; + if (line.startsWith("+")) return [{ + kind: "added", + text: line + }]; + if (line.startsWith("-")) return [{ + kind: "removed", + text: line + }]; + return [{ + kind: "context", + text: line + }]; + }) + ]); + } + function PromptDiffSection({ title, before, after }) { + const lines = promptDiffLines(before, after); + if (lines.length === 0) return null; + return (0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.promptDiffSection, + children: [(0, react_jsx_runtime.jsx)("h3", { + className: TrajectoryTable_module_css_default.promptDiffTitle, + children: title + }), (0, react_jsx_runtime.jsx)("pre", { + className: TrajectoryTable_module_css_default.promptDiff, + children: lines.map((line, index) => (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default[`promptDiffLine${line.kind}`], + children: [line.text || " ", "\n"] + }, index)) + })] + }); + } + function SystemPromptDiff({ before, after }) { + const toolsBefore = JSON.stringify(before.tools, null, 2); + const toolsAfter = JSON.stringify(after.tools, null, 2); + return (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.promptDiffSections, + children: [before.system !== after.system && (0, react_jsx_runtime.jsx)(PromptDiffSection, { + title: "System Prompt", + before: before.system, + after: after.system + }), toolsBefore !== toolsAfter && (0, react_jsx_runtime.jsx)(PromptDiffSection, { + title: "Tools", + before: toolsBefore, + after: toolsAfter + })] + }); + } + function ToolOutputBlocks({ blocks, error, preview }) { + return (0, react_jsx_runtime.jsx)("div", { + className: [ + TrajectoryTable_module_css_default.resultBlocks, + preview ? TrajectoryTable_module_css_default.resultBlocksPreview : void 0, + error ? TrajectoryTable_module_css_default.errorPayload : void 0 + ].filter((value) => value !== void 0).join(" "), + children: blocks.map((block, index) => block.imageSrc !== void 0 ? (0, react_jsx_runtime.jsx)(PanelImage, { + block, + preview + }, index) : block.content !== "" ? (0, react_jsx_runtime.jsx)("pre", { + className: TrajectoryTable_module_css_default.resultBlockText, + children: block.content + }, index) : null) + }); + } + function MarkdownRecordContent({ record, rendered, preview = false, thinkingExpanded, onThinkingExpandedChange, onOpenCall }) { + if (!rendered && record.cell.sourceBlocks && record.cell.sourceBlocks.length > 0) return (0, react_jsx_runtime.jsx)(SourceBlocks, { + blocks: record.cell.sourceBlocks, + onOpenCall + }); + if (record.cell.thinkingDetail) { + if (!rendered) return (0, react_jsx_runtime.jsx)(MarkdownFragment, { + text: [record.cell.thinkingDetail, record.cell.outputDetail].filter((value) => value !== void 0 && value !== "").join("\n\n"), + rendered: false, + preview + }); + return (0, react_jsx_runtime.jsxs)("div", { + className: `${TrajectoryTable_module_css_default.assistantContent} ${TrajectoryTable_module_css_default.assistantContentRendered}`, + children: [ + (0, react_jsx_runtime.jsxs)("div", { + className: preview && !record.cell.outputDetail ? `${TrajectoryTable_module_css_default.thinkingQuote} ${TrajectoryTable_module_css_default.thinkingQuoteOnlyPreview}` : TrajectoryTable_module_css_default.thinkingQuote, + children: [(0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.thinkingToggle, + "aria-expanded": thinkingExpanded, + onClick: () => { + onThinkingExpandedChange(!thinkingExpanded); + }, + children: ["Thinking", (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.thinkingChevron, + size: 12 + })] + }), thinkingExpanded && (0, react_jsx_runtime.jsx)(MarkdownFragment, { + text: record.cell.thinkingDetail, + rendered, + preview + })] + }), + record.cell.outputDetail && (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.assistantOutput, + children: (0, react_jsx_runtime.jsx)(MarkdownFragment, { + text: record.cell.outputDetail, + rendered, + preview + }) + }), + (0, react_jsx_runtime.jsx)(AssistantToolCalls, { + blocks: record.cell.sourceBlocks, + preview, + onOpenCall + }), + (0, react_jsx_runtime.jsx)(MessageImages, { + blocks: record.cell.sourceBlocks, + preview + }) + ] + }); + } + const source = markdownSource(record); + const hasImages = record.cell.sourceBlocks?.some((block) => block.imageSrc !== void 0) === true; + const hasToolCalls = record.cell.kind === "message" && record.cell.sourceBlocks?.some((block) => block.type === "tool-call") === true; + if (!source && !hasImages && !hasToolCalls) { + const emptyLabel = isToolCallOnly(record.cell) ? "Tool call only" : record.cell.text || "No content"; + return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: emptyLabel + }); + } + if (!rendered || !hasImages && !hasToolCalls) return (0, react_jsx_runtime.jsx)(MarkdownFragment, { + text: source ?? "", + rendered, + preview + }); + return (0, react_jsx_runtime.jsxs)("div", { children: [ + source && (0, react_jsx_runtime.jsx)(MarkdownFragment, { + text: source, + rendered: true, + preview + }), + record.cell.kind === "message" && (0, react_jsx_runtime.jsx)(AssistantToolCalls, { + blocks: record.cell.sourceBlocks, + preview, + onOpenCall + }), + (0, react_jsx_runtime.jsx)(MessageImages, { + blocks: record.cell.sourceBlocks, + preview + }) + ] }); + } + function RecordTiming({ record }) { + return record.cell.kind === "message" && record.cell.assistantMetrics !== void 0 ? (0, react_jsx_runtime.jsx)(AssistantTimingPanel, { metrics: record.cell.assistantMetrics }) : (0, react_jsx_runtime.jsxs)("dl", { + className: TrajectoryTable_module_css_default.overview, + children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Started" }), (0, react_jsx_runtime.jsx)(StartedAtValue, { timestamp: record.cell.startedAt ?? null })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Duration" }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(record.cell.timeSeconds) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Timing source" }), (0, react_jsx_runtime.jsx)("dd", { children: record.cell.timeSeconds === null ? "Not available" : "Session timestamps" })] }) + ] + }); + } + function RequestTiming({ assistant, anchor, request }) { + if (assistant !== void 0) return (0, react_jsx_runtime.jsx)(RecordTiming, { record: assistant }); + if (request?.startedAt !== void 0) { + const duration = request.completedAt === null || request.completedAt === void 0 ? null : Math.max(0, (request.completedAt - request.startedAt) / 1e3); + return (0, react_jsx_runtime.jsxs)("dl", { + className: TrajectoryTable_module_css_default.overview, + children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Started" }), (0, react_jsx_runtime.jsx)(StartedAtValue, { timestamp: request.startedAt })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Duration" }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(duration) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Timing source" }), (0, react_jsx_runtime.jsx)("dd", { children: duration === null ? "Session timestamps (running)" : "Session timestamps" })] }) + ] + }); + } + return (0, react_jsx_runtime.jsxs)("dl", { + className: TrajectoryTable_module_css_default.overview, + children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Started" }), (0, react_jsx_runtime.jsx)(StartedAtValue, { timestamp: anchor?.cell.startedAt ?? null })] }), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Duration" }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(null) })] })] + }); + } + function RecordPayload({ record, direction, preview = false }) { + const value = direction === "input" ? record.cell.inputDetail : record.cell.outputDetail; + const missing = direction === "input" ? "No payload captured" : "No result captured"; + if (!value) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: missing + }); + const error = direction === "output" && record.cell.isError === true; + const payloadClass = preview ? TrajectoryTable_module_css_default.jsonPreview : TrajectoryTable_module_css_default.jsonPayload; + const payloadClassName = error ? `${payloadClass} ${TrajectoryTable_module_css_default.errorPayload}` : payloadClass; + const json = parseJsonContainer(value); + if (direction === "output" && record.cell.outputBlocks?.length === 1 && record.cell.outputBlocks[0]?.type === "text" && json !== void 0) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: json, + label: "Result JSON", + className: payloadClassName + }); + if (direction === "output" && record.cell.outputBlocks?.some((block) => block.imageSrc !== void 0 || block.content !== "") === true) return (0, react_jsx_runtime.jsx)(ToolOutputBlocks, { + blocks: record.cell.outputBlocks, + error, + preview + }); + if (direction === "input" && (record.cell.kind === "user" || record.cell.kind === "context") || direction === "output" && record.cell.kind === "message") return (0, react_jsx_runtime.jsx)("div", { + className: [preview ? TrajectoryTable_module_css_default.markdownPreview : TrajectoryTable_module_css_default.markdownPayload, error ? TrajectoryTable_module_css_default.errorPayload : void 0].filter((className) => className !== void 0).join(" "), + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text: value }) + }); + if (json !== void 0) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: json, + label: `${direction === "input" ? "Payload" : "Result"} JSON`, + className: payloadClassName + }); + return (0, react_jsx_runtime.jsx)("pre", { + className: [ + TrajectoryTable_module_css_default.payload, + preview ? TrajectoryTable_module_css_default.payloadPreview : void 0, + error ? TrajectoryTable_module_css_default.errorPayload : void 0, + value === "No output" ? TrajectoryTable_module_css_default.noOutputText : void 0 + ].filter((value) => value !== void 0).join(" "), + children: value + }); + } + function RecordSchema({ record, preview = false }) { + if (!record.cell.schemaDetail) return (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "Schema unavailable" + }); + const schema = parseToolSchema(record.cell.schemaDetail); + if (schema !== void 0) return (0, react_jsx_runtime.jsxs)("div", { + className: preview ? `${TrajectoryTable_module_css_default.schema} ${TrajectoryTable_module_css_default.schemaPreview}` : TrajectoryTable_module_css_default.schema, + children: [(0, react_jsx_runtime.jsxs)("header", { + className: TrajectoryTable_module_css_default.schemaIntro, + children: [(0, react_jsx_runtime.jsx)("h3", { + className: TrajectoryTable_module_css_default.schemaName, + children: schema.name + }), (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.schemaDescription, + children: schema.description + })] + }), (0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.schemaParameters, + children: [(0, react_jsx_runtime.jsx)("h4", { + className: TrajectoryTable_module_css_default.schemaParametersTitle, + children: "Parameters" + }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, { + data: schema.parameters, + label: `${schema.name} parameters JSON`, + className: TrajectoryTable_module_css_default.schemaTree + })] + })] + }); + return (0, react_jsx_runtime.jsx)("pre", { + className: `${TrajectoryTable_module_css_default.payload} ${preview ? TrajectoryTable_module_css_default.payloadPreview : ""}`, + children: record.cell.schemaDetail + }); + } + function parseToolSchema(value) { + try { + const parsed = JSON.parse(value); + if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return void 0; + const schema = parsed; + if (typeof schema.name !== "string" || typeof schema.description !== "string" || typeof schema.parameters !== "object" || schema.parameters === null || Array.isArray(schema.parameters)) return void 0; + return { + name: schema.name, + description: schema.description, + parameters: schema.parameters + }; + } catch { + return; + } + } + function parseJsonContainer(value) { + try { + const parsed = JSON.parse(value); + return typeof parsed === "object" && parsed !== null ? parsed : void 0; + } catch { + return; + } + } + function OverviewSection({ label, onOpen, children }) { + return (0, react_jsx_runtime.jsxs)("section", { + className: TrajectoryTable_module_css_default.overviewSection, + children: [(0, react_jsx_runtime.jsx)("h3", { + className: TrajectoryTable_module_css_default.overviewHeading, + children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewTitle, + onClick: onOpen, + children: [(0, react_jsx_runtime.jsx)("span", { children: label }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewTitleIcon, + size: 12 + })] + }) + }), (0, react_jsx_runtime.jsx)("div", { + className: `${TrajectoryTable_module_css_default.overviewPreview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`, + "data-summary-scroll-region": "", + children + })] + }); + } + /** + * Render trajectory events as a dense ledger with turn and step separators. + * Clicking ledger whitespace clears the active record or request selection. + * @param props - Grouped trajectory data and whole-ledger fold state. + * @returns The ledger and an optional local record inspector. + */ + function TrajectoryTable({ requestNumbers: sessionRequestNumbers, turns, streamingCells = [], timelineFocusIndexes = null, searchMatchIndexes = null, onSelectedIndexChange, onRecordSelect, recordSelection = null, recordFocus = null, historyLoading = false, olderHistoryLoading = false, historyStartSeq, hasOlderRecords = false, onLoadOlder, onClearSelection, collapsedTurns, onToggleTurn, collapsedAssistants, onToggleAssistant, inspectCallId = null, onInspectApplied }) { + const [selectedRecordId, setSelectedRecordId] = (0, react.useState)(null); + const [selectedRequest, setSelectedRequest] = (0, react.useState)(null); + const [activeTab, setActiveTab] = (0, react.useState)("overview"); + const [thinkingExpanded, setThinkingExpanded] = (0, react.useState)(false); + const [detailsWidth, setDetailsWidth] = (0, react.useState)(null); + const [toolRequestOffset, setToolRequestOffset] = (0, react.useState)(null); + const detailsResizeDrag = (0, react.useRef)(null); + const appliedRecordSelection = (0, react.useRef)(null); + const appliedRecordFocus = (0, react.useRef)(null); + const tabHistory = (0, react.useRef)(new Set(["overview"])); + const rootRef = (0, react.useRef)(null); + const tablePaneRef = (0, react.useRef)(null); + const followsTableTail = (0, react.useRef)(false); + const tableScrollInitialized = (0, react.useRef)(false); + const [tableScrollReady, setTableScrollReady] = (0, react.useState)(false); + const pendingScrollRecordId = (0, react.useRef)(null); + const loadingOlder = (0, react.useRef)(false); + const [olderLoading, setOlderLoading] = (0, react.useState)(false); + const olderLoadAnchor = (0, react.useRef)(null); + const allRecords = (0, react.useMemo)(() => flattenRecords(turns), [turns]); + const streamingCellsByIndex = (0, react.useMemo)(() => new Map(streamingCells.map((cell) => [cell.index, cell])), [streamingCells]); + const currentRecord = (0, react.useCallback)((record) => { + const cell = streamingCellsByIndex.get(record.cell.index); + return cell === void 0 ? record : { + ...record, + cell + }; + }, [streamingCellsByIndex]); + const selectedTemplate = (0, react.useMemo)(() => selectedRecordId === null ? void 0 : allRecords.find((record) => trajectoryRecordId(record.cell) === selectedRecordId), [allRecords, selectedRecordId]); + const selected = selectedTemplate === void 0 ? void 0 : currentRecord(selectedTemplate); + const selectedIndex = selected?.cell.index ?? null; + (0, react.useEffect)(() => { + onSelectedIndexChange?.(selectedIndex); + }, [onSelectedIndexChange, selectedIndex]); + const requestBoundaries = (0, react.useMemo)(() => indexRequestBoundaries(allRecords), [allRecords]); + const requestNumbers = (0, react.useMemo)(() => indexRequestNumbers(allRecords, sessionRequestNumbers, requestBoundaries), [ + allRecords, + requestBoundaries, + sessionRequestNumbers + ]); + const records = (0, react.useMemo)(() => { + if (searchMatchIndexes !== null) return filterRecords(allRecords, searchMatchIndexes); + const turnRecords = collapsedTurns.size === 0 ? allRecords : collapseTurnRecords(allRecords, collapsedTurns); + return collapsedAssistants.size === 0 ? turnRecords : collapseAssistantRecords(turnRecords, collapsedAssistants); + }, [ + allRecords, + collapsedAssistants, + collapsedTurns, + searchMatchIndexes + ]); + const projectedVirtualRows = (0, react.useMemo)(() => groupTrajectoryVirtualRows(records), [records]); + const virtualRowStructure = useStableVirtualRowStructure(projectedVirtualRows); + const virtualizationEnabled = hasOlderRecords || records.length > VIRTUALIZATION_THRESHOLD; + const virtualScrollMargin = hasOlderRecords ? HISTORY_LOAD_ROW_HEIGHT_PX : 0; + const estimateVirtualRowSize = (0, react.useCallback)((index) => virtualRowStructure[index]?.height ?? 30, [virtualRowStructure]); + const getVirtualRowKey = (0, react.useCallback)((index) => virtualRowStructure[index]?.key ?? index, [virtualRowStructure]); + const getTableScrollElement = (0, react.useCallback)(() => tablePaneRef.current, []); + const rowVirtualizer = useVirtualizer({ + count: virtualizationEnabled ? virtualRowStructure.length : 0, + enabled: virtualizationEnabled, + estimateSize: estimateVirtualRowSize, + getItemKey: getVirtualRowKey, + getScrollElement: getTableScrollElement, + initialRect: { + width: 0, + height: VIRTUAL_INITIAL_VIEWPORT_HEIGHT_PX + }, + anchorTo: "end", + overscan: VIRTUAL_OVERSCAN_ROWS, + scrollMargin: virtualScrollMargin, + scrollEndThreshold: BOTTOM_FOLLOW_THRESHOLD_PX + }); + const virtualIndexByRecordId = (0, react.useMemo)(() => { + const indexes = /* @__PURE__ */ new Map(); + for (const [virtualIndex, row] of projectedVirtualRows.entries()) for (const entry of row.entries) if (entry.record.collapsedSummary === void 0) indexes.set(trajectoryRecordId(entry.record.cell), virtualIndex); + return indexes; + }, [projectedVirtualRows]); + const virtualItems = virtualizationEnabled ? rowVirtualizer.getVirtualItems() : []; + const virtualTop = Math.max(0, (virtualItems[0]?.start ?? 0) - virtualScrollMargin); + const virtualBottom = virtualItems.length === 0 ? 0 : Math.max(0, rowVirtualizer.getTotalSize() + virtualScrollMargin - (virtualItems.at(-1)?.end ?? 0)); + const renderedRecords = virtualizationEnabled ? virtualItems.flatMap((item) => { + const row = projectedVirtualRows[item.index]; + if (row === void 0) return []; + return row.entries.map((entry, entryIndex) => ({ + record: currentRecord(entry.record), + position: entry.logicalIndex, + terminalRequestBoundary: entry.record.cell.requestOnly === true && row.entries.at(-1)?.record.cell.requestOnly === true && entryIndex === row.entries.length - 1 + })); + }) : records.map((record, position) => ({ + record: currentRecord(record), + position, + terminalRequestBoundary: record.cell.requestOnly === true && position === records.length - 1 + })); + const requestBoundaryRuns = (0, react.useMemo)(() => indexRequestBoundaryRuns(records), [records]); + const selectedPrompt = selected?.cell.kind === "system" ? selected.cell.promptDetail : void 0; + const selectedPreviousPrompt = selected?.cell.kind === "system" ? selected.cell.previousPromptDetail : void 0; + const promptSelected = selectedPrompt !== void 0; + const selectedState = selected === void 0 ? void 0 : stateOf(selected); + const selectedRequestRecords = (0, react.useMemo)(() => selectedRequest === null ? [] : allRecords.filter((record) => record.turn === selectedRequest.turn && record.group === selectedRequest.group), [allRecords, selectedRequest]).map(currentRecord); + const selectedRequestAssistant = selectedRequestRecords.find((record) => record.cell.kind === "message"); + const selectedRequestAnchor = selectedRequestAssistant ?? selectedRequestRecords[0]; + const selectedRequestNumber = selectedRequest === null ? void 0 : requestNumbers.get(requestKey(selectedRequest.turn, selectedRequest.group)); + const selectedRequestInfo = selectedRequest === null ? void 0 : sessionRequestNumbers?.find((request) => selectedRequest.seq === void 0 ? request.turn === selectedRequest.turn && request.group === selectedRequest.group : request.seq === selectedRequest.seq); + const selectedRequestState = selectedRequest === null ? void 0 : selectedRequestInfo?.status ?? (selectedRequestAssistant?.cell.assistantMetrics?.completedTime === null ? "running" : selectedRequestAssistant === void 0 && selectedRequestRecords.some((record) => stateOf(record) === "running") ? "running" : "complete"); + const selectedRequestToolCalls = selectedRequestRecords.filter((record) => record.cell.kind === "tool").length; + const selectedRequestSubtoolCalls = selectedRequestRecords.filter((record) => record.cell.kind === "subtool").length; + const selectedRequestResultTemplate = selectedRequestInfo?.resultSeq === void 0 ? selectedRequestAssistant : allRecords.find((record) => record.cell.sourceSeq === selectedRequestInfo.resultSeq); + const selectedRequestResult = selectedRequestResultTemplate === void 0 ? void 0 : currentRecord(selectedRequestResultTemplate); + const selectedRequestUsage = selectedRequestInfo?.usage ?? (selectedRequestAssistant === void 0 ? void 0 : { + ...selectedRequestAssistant.cell.input === void 0 ? {} : { input: selectedRequestAssistant.cell.input }, + ...selectedRequestAssistant.cell.cacheRead === void 0 ? {} : { cacheRead: selectedRequestAssistant.cell.cacheRead }, + ...selectedRequestAssistant.cell.cacheWrite === void 0 ? {} : { cacheWrite: selectedRequestAssistant.cell.cacheWrite }, + ...selectedRequestAssistant.cell.output === void 0 ? {} : { output: selectedRequestAssistant.cell.output }, + ...selectedRequestAssistant.cell.think === void 0 ? {} : { reasoning: selectedRequestAssistant.cell.think } + }); + const selectedRequestCumulativeUsage = selectedRequestInfo?.cumulativeUsage ?? selectedRequestUsage; + const selectedRequestOptions = selectedRequestInfo?.requestConfig; + const activeTurn = selectedRequest === null ? selected?.turn : selectedRequest.turn; + const activeSection = selectedRequest === null ? selected?.section : selectedRequestRecords[0]?.section; + const selectedTabs = selectedRequest !== null ? REQUEST_TABS.filter((tab) => tab.id !== "options" || selectedRequestOptions !== void 0) : selected === void 0 ? [] : detailTabs(selected); + const selectedParents = selected === void 0 ? {} : parentRecords(allRecords, selected); + const selectedParentMessage = selectedParents.message; + const selectedParentTool = selectedParents.tool; + const selectedAssistantRequest = selected?.cell.kind === "message" ? requestNumbers.get(requestKey(selected.turn, selected.group)) : void 0; + const selectedAssistantRequestInfo = selectedAssistantRequest === void 0 ? void 0 : sessionRequestNumbers?.find((request) => request.number === selectedAssistantRequest); + const selectedAssistantRequestTarget = selected !== void 0 && selectedAssistantRequest !== void 0 ? { + turn: selected.turn, + group: selected.group, + ...selectedAssistantRequestInfo?.seq === void 0 ? {} : { seq: selectedAssistantRequestInfo.seq } + } : void 0; + const hasSelectedHierarchy = selectedAssistantRequestTarget !== void 0 || selectedParents.message !== void 0 || selectedParents.tool !== void 0; + const splitStyle = toolRequestOffset === null ? void 0 : { "--trajectory-tool-request-width": `calc(58cqw - ${toolRequestOffset}px)` }; + const activateTab = (tab) => { + tabHistory.current.delete(tab); + tabHistory.current.add(tab); + setActiveTab(tab); + }; + const clearInspectorSelection = () => { + setSelectedRecordId(null); + setSelectedRequest(null); + }; + const clearAllSelections = () => { + clearInspectorSelection(); + onClearSelection?.(); + }; + const selectRecord = (0, react.useCallback)((index) => { + const record = allRecords.find((candidate) => candidate.cell.index === index); + onRecordSelect?.(index); + setSelectedRequest(null); + setSelectedRecordId(record === void 0 ? null : trajectoryRecordId(record.cell)); + if (record === void 0) return; + const tabs = detailTabs(record); + const available = new Set(tabs.map((tab) => tab.id)); + setActiveTab([...tabHistory.current].reverse().find((tab) => available.has(tab)) ?? tabs[0]?.id ?? "overview"); + }, [allRecords, onRecordSelect]); + (0, react.useEffect)(() => { + if (recordSelection === null || appliedRecordSelection.current === recordSelection) return; + appliedRecordSelection.current = recordSelection; + selectRecord(recordSelection.index); + const record = allRecords.find((candidate) => candidate.cell.index === recordSelection.index); + pendingScrollRecordId.current = record === void 0 ? null : trajectoryRecordId(record.cell); + }, [ + allRecords, + recordSelection, + selectRecord + ]); + (0, react.useEffect)(() => { + if (recordFocus === null || appliedRecordFocus.current === recordFocus) return; + appliedRecordFocus.current = recordFocus; + const record = allRecords.find((candidate) => candidate.cell.index === recordFocus.index); + pendingScrollRecordId.current = record === void 0 ? null : trajectoryRecordId(record.cell); + }, [allRecords, recordFocus]); + const selectRequest = (request, tab = "overview") => { + setSelectedRecordId(null); + setSelectedRequest(request); + activateTab(tab); + }; + const openRecordSummary = (target) => { + const targetAt = allRecords.findIndex((record) => record.cell.index === target.cell.index); + if (target.turn !== null && collapsedTurns.has(target.turn)) onToggleTurn(target.turn); + if (target.cell.kind === "tool" || target.cell.kind === "subtool") for (let i = targetAt - 1; i >= 0; i--) { + const candidate = allRecords[i]; + if (candidate === void 0 || candidate.turn !== target.turn) break; + if (candidate.cell.kind !== "message") continue; + const assistantId = trajectoryRecordId(candidate.cell); + if (collapsedAssistants.has(assistantId)) onToggleAssistant(assistantId); + break; + } + setSelectedRequest(null); + setSelectedRecordId(trajectoryRecordId(target.cell)); + activateTab("overview"); + }; + const openCallSummary = (callId) => { + const target = allRecords.find((record) => record.cell.callId === callId); + if (target !== void 0) openRecordSummary(target); + }; + const openRecordSummaryRef = (0, react.useRef)(openRecordSummary); + openRecordSummaryRef.current = openRecordSummary; + (0, react.useEffect)(() => { + if (inspectCallId === null) return; + const target = flattenRecords(turns).find((record) => record.cell.callId === inspectCallId); + if (target === void 0) return; + openRecordSummaryRef.current(target); + pendingScrollRecordId.current = trajectoryRecordId(target.cell); + onInspectApplied?.(); + }, [ + inspectCallId, + turns, + onInspectApplied + ]); + (0, react.useEffect)(() => { + const id = pendingScrollRecordId.current; + if (id === null) return; + const position = records.findIndex((record) => trajectoryRecordId(record.cell) === id && record.collapsedSummary === void 0); + if (position === -1) return; + if (virtualizationEnabled) { + const virtualIndex = virtualIndexByRecordId.get(id); + if (virtualIndex === void 0) return; + pendingScrollRecordId.current = null; + followsTableTail.current = false; + rowVirtualizer.scrollToIndex(virtualIndex, { + behavior: "smooth", + align: "center" + }); + return; + } + pendingScrollRecordId.current = null; + followsTableTail.current = false; + const recordIndex = records[position]?.cell.index; + const row = recordIndex === void 0 ? null : rootRef.current?.querySelector(`tr[data-record-index="${recordIndex}"]`); + /* v8 ignore next -- jsdom lacks scrollIntoView; browsers always have it. */ + if (row !== void 0 && row !== null && typeof row.scrollIntoView === "function") row.scrollIntoView({ + behavior: "smooth", + block: "center" + }); + }, [ + records, + rowVirtualizer, + virtualIndexByRecordId, + virtualizationEnabled + ]); + (0, react.useEffect)(() => { + if (timelineFocusIndexes === null || timelineFocusIndexes.size === 0) return; + const focusedPositions = records.flatMap((record, position) => record.collapsedSummary === void 0 && record.cell.requestOnly !== true && timelineFocusIndexes.has(record.cell.index) ? [position] : []); + const first = focusedPositions.at(0); + const last = focusedPositions.at(-1); + if (first === void 0 || last === void 0) return; + if (!virtualizationEnabled) { + const ledger = rootRef.current; + if (ledger === null) return; + const focusedRows = [...ledger.querySelectorAll("tr[data-timeline-focus=\"inside\"]")]; + const firstRow = focusedRows.at(0); + const lastRow = focusedRows.at(-1); + if (firstRow === void 0 || lastRow === void 0) return; + const focusHeight = lastRow.getBoundingClientRect().bottom - firstRow.getBoundingClientRect().top; + const target = focusHeight > ledger.clientHeight ? firstRow : focusedRows[Math.floor((focusedRows.length - 1) / 2)]; + /* v8 ignore next -- jsdom lacks scrollIntoView; browsers always have it. */ + if (target !== void 0 && typeof target.scrollIntoView === "function") { + followsTableTail.current = false; + target.scrollIntoView({ + behavior: "smooth", + block: focusHeight > ledger.clientHeight ? "start" : "center" + }); + } + return; + } + const focusedVirtualIndexes = [...new Set(focusedPositions.flatMap((position) => { + const record = records[position]; + if (record === void 0) return []; + const virtualIndex = virtualIndexByRecordId.get(trajectoryRecordId(record.cell)); + return virtualIndex === void 0 ? [] : [virtualIndex]; + }))].sort((left, right) => left - right); + const firstVirtual = focusedVirtualIndexes.at(0); + const lastVirtual = focusedVirtualIndexes.at(-1); + if (firstVirtual === void 0 || lastVirtual === void 0) return; + const paneHeight = tablePaneRef.current?.clientHeight ?? 0; + const focusHeight = projectedVirtualRows.slice(firstVirtual, lastVirtual + 1).reduce((height, row) => height + row.height, 0); + followsTableTail.current = false; + rowVirtualizer.scrollToIndex(focusHeight > paneHeight ? firstVirtual : focusedVirtualIndexes[Math.floor((focusedVirtualIndexes.length - 1) / 2)] ?? firstVirtual, { + behavior: "smooth", + align: focusHeight > paneHeight ? "start" : "center" + }); + }, [ + projectedVirtualRows, + records, + rowVirtualizer, + timelineFocusIndexes, + virtualIndexByRecordId, + virtualizationEnabled + ]); + const requestOlder = (0, react.useCallback)((pane, requireTop) => { + if (!hasOlderRecords || onLoadOlder === void 0 || loadingOlder.current || olderHistoryLoading || requireTop && pane.scrollTop > OLDER_LOAD_THRESHOLD_PX) return; + loadingOlder.current = true; + setOlderLoading(true); + olderLoadAnchor.current = { + historyStartSeq, + scrollHeight: pane.scrollHeight, + scrollTop: pane.scrollTop + }; + onLoadOlder().then((advanced) => { + if (!advanced) olderLoadAnchor.current = null; + }).finally(() => { + loadingOlder.current = false; + setOlderLoading(false); + }); + }, [ + hasOlderRecords, + historyStartSeq, + olderHistoryLoading, + onLoadOlder + ]); + (0, react.useLayoutEffect)(() => { + const pane = tablePaneRef.current; + if (pane === null) return; + const anchor = olderLoadAnchor.current; + if (anchor !== null && anchor.historyStartSeq !== historyStartSeq) { + if (!virtualizationEnabled) pane.scrollTop = anchor.scrollTop + pane.scrollHeight - anchor.scrollHeight; + olderLoadAnchor.current = null; + followsTableTail.current = false; + return; + } + if (!tableScrollInitialized.current) { + if (historyLoading) return; + tableScrollInitialized.current = true; + followsTableTail.current = true; + if (virtualizationEnabled) rowVirtualizer.scrollToEnd({ behavior: "auto" }); + else pane.scrollTop = pane.scrollHeight; + setTableScrollReady(true); + return; + } + if (!followsTableTail.current) return; + if (virtualizationEnabled) rowVirtualizer.scrollToEnd({ behavior: "auto" }); + else pane.scrollTop = pane.scrollHeight; + }, [ + historyLoading, + historyStartSeq, + rowVirtualizer, + virtualRowStructure, + virtualizationEnabled + ]); + const olderBusy = olderHistoryLoading || olderLoading; + const showInitialLoading = historyLoading || !tableScrollReady; + const historyRowOffset = hasOlderRecords ? 1 : 0; + return (0, react_jsx_runtime.jsxs)("div", { + ref: rootRef, + className: TrajectoryTable_module_css_default.split, + style: splitStyle, + children: [(0, react_jsx_runtime.jsxs)("div", { + ref: tablePaneRef, + className: TrajectoryTable_module_css_default.tablePane, + "data-trajectory-scroll": "", + onScroll: (event) => { + const pane = event.currentTarget; + followsTableTail.current = pane.scrollHeight - pane.clientHeight - pane.scrollTop <= BOTTOM_FOLLOW_THRESHOLD_PX; + requestOlder(pane, true); + }, + onClick: (event) => { + if (event.target === event.currentTarget) clearAllSelections(); + }, + children: [showInitialLoading && (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.historyLoading, + role: "status", + "aria-live": "polite", + children: (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default.historyLoadingBar, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.historyLoadingSpinner, + "aria-hidden": "true" + }), "Loading trajectory…"] + }) + }), (0, react_jsx_runtime.jsxs)("table", { + className: TrajectoryTable_module_css_default.table, + "data-scroll-ready": tableScrollReady || void 0, + "aria-rowcount": records.length + historyRowOffset, + children: [(0, react_jsx_runtime.jsxs)("colgroup", { children: [(0, react_jsx_runtime.jsx)("col", { className: TrajectoryTable_module_css_default.eventColumn }), (0, react_jsx_runtime.jsx)("col", { className: TrajectoryTable_module_css_default.contentColumn })] }), (0, react_jsx_runtime.jsxs)("tbody", { children: [ + hasOlderRecords && (0, react_jsx_runtime.jsx)("tr", { + className: TrajectoryTable_module_css_default.historyLoadRow, + "data-history-load": "", + "aria-rowindex": 1, + children: (0, react_jsx_runtime.jsx)("td", { + colSpan: 2, + children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.historyLoadButton, + disabled: olderBusy || onLoadOlder === void 0, + "aria-label": olderBusy ? "Loading earlier history…" : "Load earlier history", + onClick: () => { + const pane = tablePaneRef.current; + if (pane !== null) requestOlder(pane, false); + }, + children: [ + olderBusy && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.historyLoadingSpinner, + "aria-hidden": "true" + }), + (0, react_jsx_runtime.jsx)("span", { + "aria-hidden": "true", + children: olderBusy ? "Loading earlier history…" : "Load earlier history" + }), + (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.visuallyHidden, + role: "status", + "aria-live": "polite", + children: olderBusy ? "Loading earlier history…" : "" + }) + ] + }) + }) + }), + virtualTop > 0 && (0, react_jsx_runtime.jsx)("tr", { + className: TrajectoryTable_module_css_default.virtualSpacer, + "data-virtual-spacer": "top", + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("td", { + colSpan: 2, + style: { "--trajectory-virtual-spacer-height": `${virtualTop}px` } + }) + }), + renderedRecords.map(({ record, position, terminalRequestBoundary }) => (0, react_jsx_runtime.jsx)(RecordPresentation, { + cell: record.cell, + children: ({ displayText, listDisplayText, resultText, toolCallOnly, toolCallText }) => { + const isCollapsedSummary = record.collapsedSummary !== void 0; + const isRequestOnly = record.cell.requestOnly === true; + const isInitialSystem = record.cell.kind === "system" && record.cell.index === allRecords[0]?.cell.index; + const key = requestKey(record.turn, record.group); + const request = requestBoundaries.get(key) === record.cell.index && !isCollapsedSummary && (record.turn === null || !collapsedTurns.has(record.turn)) ? requestNumbers.get(key) : void 0; + const requestInfo = request === void 0 ? void 0 : sessionRequestNumbers?.find((candidate) => candidate.number === request); + const requestStatus = requestInfo?.status ?? (record.cell.isError === true ? "error" : void 0); + const requestRunIndex = requestBoundaryRuns.get(record.cell.index) ?? 0; + const requestBoundaryStyle = { "--request-boundary-offset": `${requestRunIndex * 8}px` }; + const requestLabel = request === void 0 ? void 0 : `Request #${request}${requestInfo?.purpose === "compaction" ? " · Compaction" : ""}`; + const requestSelected = request !== void 0 && selectedRequest?.turn === record.turn && selectedRequest.group === record.group; + const sectionActive = record.turn === null ? activeSection === record.section : activeTurn === record.turn; + return (0, react_jsx_runtime.jsxs)("tr", { + tabIndex: isRequestOnly ? -1 : 0, + "aria-rowindex": position + 1 + historyRowOffset, + "aria-label": isCollapsedSummary ? `Collapsed ${record.collapsedSummaryKind} summary, ${record.collapsedSummary}` : isRequestOnly ? `Request ${request ?? ""}, compaction` : `${request === void 0 ? "" : `Request ${request}, `}${KIND_LABEL[record.cell.kind]}, ${listDisplayText || "no content"}`, + "aria-selected": !isCollapsedSummary && !isRequestOnly && selectedIndex === record.cell.index, + "data-kind": record.cell.kind, + "data-trajectory-row-key": trajectoryVirtualRecordKey(record), + "data-virtual-position": virtualizationEnabled ? position : void 0, + "data-record-index": !isCollapsedSummary && !isRequestOnly ? record.cell.index : void 0, + "data-request-only": isRequestOnly || void 0, + "data-terminal-request-boundary": terminalRequestBoundary || void 0, + "data-group-start": record.groupStart || void 0, + "data-turn-start": record.turnStart || void 0, + "data-error": record.cell.isError || void 0, + "data-running": stateOf(record) === "running" || void 0, + "data-turn-end": record.turnEnd || void 0, + "data-collapsed-summary": record.collapsedSummaryKind, + "data-selected": !isCollapsedSummary && selectedIndex === record.cell.index || void 0, + "data-timeline-focus": isCollapsedSummary || timelineFocusIndexes === null ? void 0 : timelineFocusIndexes.has(record.cell.index) ? "inside" : "outside", + onClick: isRequestOnly ? void 0 : isCollapsedSummary ? () => { + if (record.collapsedSummaryKind === "turn" && record.turn !== null) onToggleTurn(record.turn); + else onToggleAssistant(trajectoryRecordId(record.cell)); + } : () => { + selectRecord(record.cell.index); + }, + onDoubleClick: (event) => { + if (isCollapsedSummary || isRequestOnly) return; + if (record.turn !== null && collapsedTurns.has(record.turn)) { + event.preventDefault(); + onToggleTurn(record.turn); + return; + } + if (record.cell.kind === "message" && assistantToolCalls(allRecords, record.cell.index).length > 0) { + event.preventDefault(); + onToggleAssistant(trajectoryRecordId(record.cell)); + return; + } + if (!record.turnStart) return; + if (record.turn === null) return; + if (allRecords.filter((candidate) => candidate.turn === record.turn && candidate.cell.requestOnly !== true && candidate.cell.kind !== "system").length <= 1) return; + event.preventDefault(); + onToggleTurn(record.turn); + }, + onKeyDown: (event) => { + if (isRequestOnly) return; + if (event.key !== "Enter" && event.key !== " ") return; + event.preventDefault(); + if (isCollapsedSummary) { + if (record.collapsedSummaryKind === "turn" && record.turn !== null) onToggleTurn(record.turn); + else onToggleAssistant(trajectoryRecordId(record.cell)); + return; + } + selectRecord(record.cell.index); + }, + children: [(0, react_jsx_runtime.jsxs)("td", { + className: TrajectoryTable_module_css_default.event, + children: [ + request !== void 0 && (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: requestSelected ? `${TrajectoryTable_module_css_default.requestBoundaryControl} ${TrajectoryTable_module_css_default.requestBoundaryControlActive}` : TrajectoryTable_module_css_default.requestBoundaryControl, + "aria-label": requestLabel, + "aria-pressed": requestSelected, + "data-label": requestLabel, + "data-request-run-index": requestRunIndex, + "data-request-status": requestStatus, + style: requestBoundaryStyle, + onClick: (event) => { + event.stopPropagation(); + selectRequest({ + turn: record.turn, + group: record.group, + ...requestInfo?.seq === void 0 ? {} : { seq: requestInfo.seq } + }); + }, + onDoubleClick: (event) => { + event.stopPropagation(); + } + }), + record.turn !== null && activeTurn === record.turn && !isInitialSystem && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.turnRail, + "aria-hidden": "true" + }), + !isCollapsedSummary && selectedIndex === record.cell.index && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.selectionRail, + "aria-hidden": "true" + }), + !isCollapsedSummary && !isRequestOnly && record.turnStart && (0, react_jsx_runtime.jsx)("span", { + className: sectionActive ? `${TrajectoryTable_module_css_default.turnLabel} ${TrajectoryTable_module_css_default.turnLabelActive}` : TrajectoryTable_module_css_default.turnLabel, + "aria-label": sectionLabel(record.turn), + children: record.turn === null ? sectionLabel(record.turn) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.turnLabelFull, + "aria-hidden": "true", + children: sectionLabel(record.turn) + }), (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default.turnLabelCompact, + "aria-hidden": "true", + children: ["#", record.turn] + })] }) + }), + (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.eventInner, + children: !isCollapsedSummary && !isRequestOnly && (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.kindSlot, + children: (0, react_jsx_runtime.jsxs)("span", { + className: `${TrajectoryTable_module_css_default.kindTag} ${record.cell.kind === "system" ? TrajectoryTable_module_css_default.systemNeutral : record.cell.kind === "context" ? TrajectoryTable_module_css_default.contextGreen : record.cell.kind === "compacted" ? TrajectoryTable_module_css_default.compacted : record.cell.kind === "tool" ? TrajectoryTable_module_css_default.toolAmber : record.cell.kind === "message" ? TrajectoryTable_module_css_default.assistantVioletBright : record.cell.kind === "subtool" ? TrajectoryTable_module_css_default.subtoolAmber : TrajectoryTable_module_css_default[record.cell.kind]}`, + "data-role-kind": record.cell.kind, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: KIND_LABEL[record.cell.kind], + side: "right", + children: (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.kindTagIcon, + "aria-hidden": "true", + children: KIND_ICON[record.cell.kind] + }) + }), (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.kindTagLabel, + children: KIND_LABEL[record.cell.kind] + })] + }) + }) + }) + ] + }), (0, react_jsx_runtime.jsx)("td", { + className: TrajectoryTable_module_css_default.content, + children: isRequestOnly ? null : record.collapsedSummary !== void 0 ? (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default.collapsedTurnContent, + title: record.collapsedSummary, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.collapsedTurnEllipsis, + children: "…" + }), (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.collapsedTurnText, + children: record.collapsedSummary + })] + }) : (0, react_jsx_runtime.jsxs)("span", { + className: resultText === void 0 ? TrajectoryTable_module_css_default.contentText : TrajectoryTable_module_css_default.resultPreview, + title: resultText === void 0 ? listDisplayText : `${listDisplayText} → ${resultText}`, + children: [(0, react_jsx_runtime.jsx)("span", { + className: resultText === void 0 ? void 0 : TrajectoryTable_module_css_default.resultRequest, + children: (0, react_jsx_runtime.jsx)(RecordListText, { + displayText, + toolCallOnly, + toolCallText + }) + }), resultText !== void 0 && (0, react_jsx_runtime.jsxs)("span", { + className: record.cell.isError ? `${TrajectoryTable_module_css_default.inlineResult} ${TrajectoryTable_module_css_default.error}` : TrajectoryTable_module_css_default.inlineResult, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.arrow, + children: "→" + }), (0, react_jsx_runtime.jsx)("span", { + className: resultText === "No output" ? `${TrajectoryTable_module_css_default.inlineResultText} ${TrajectoryTable_module_css_default.noOutputText}` : TrajectoryTable_module_css_default.inlineResultText, + children: resultText + })] + })] + }) + })] + }); + } + }, trajectoryVirtualRecordKey(record))), + virtualBottom > 0 && (0, react_jsx_runtime.jsx)("tr", { + className: TrajectoryTable_module_css_default.virtualSpacer, + "data-virtual-spacer": "bottom", + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("td", { + colSpan: 2, + style: { "--trajectory-virtual-spacer-height": `${virtualBottom}px` } + }) + }) + ] })] + })] + }), (selectedRequest !== null || promptSelected || selected !== void 0 && selectedState !== void 0) && (0, react_jsx_runtime.jsxs)("aside", { + className: TrajectoryTable_module_css_default.details, + "aria-label": "Event details", + style: detailsWidth === null ? void 0 : { width: detailsWidth }, + children: [ + (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.detailsResizeHandle, + role: "separator", + "aria-label": "Resize event details", + "aria-controls": "trajectory-detail-panel", + "aria-orientation": "vertical", + tabIndex: 0, + title: "Drag to resize. Double-click to reset.", + onDoubleClick: () => { + setDetailsWidth(null); + setToolRequestOffset(null); + }, + onPointerDown: (event) => { + if (event.button !== 0) return; + const details = event.currentTarget.parentElement; + if (details === null) return; + const split = details.parentElement; + if (split === null) return; + const splitWidth = split.getBoundingClientRect().width; + detailsResizeDrag.current = { + pointerId: event.pointerId, + startX: event.clientX, + startWidth: details.getBoundingClientRect().width, + splitWidth, + startToolRequestOffset: toolRequestOffset ?? splitWidth * TOOL_REQUEST_SHARE - defaultToolRequestWidth(splitWidth) + }; + event.currentTarget.setPointerCapture(event.pointerId); + event.preventDefault(); + }, + onPointerMove: (event) => { + const drag = detailsResizeDrag.current; + if (drag === null || drag.pointerId !== event.pointerId) return; + const nextDetailsWidth = clampDetailsWidth(drag.startWidth + drag.startX - event.clientX, drag.splitWidth); + setDetailsWidth(nextDetailsWidth); + setToolRequestOffset(drag.startToolRequestOffset + (nextDetailsWidth - drag.startWidth) * TOOL_REQUEST_SHARE); + }, + onPointerUp: (event) => { + if (detailsResizeDrag.current?.pointerId !== event.pointerId) return; + detailsResizeDrag.current = null; + event.currentTarget.releasePointerCapture(event.pointerId); + }, + onPointerCancel: () => { + detailsResizeDrag.current = null; + }, + onKeyDown: (event) => { + if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return; + const details = event.currentTarget.parentElement; + if (details === null) return; + const split = details.parentElement; + if (split === null) return; + const direction = event.key === "ArrowLeft" ? 1 : -1; + const currentDetailsWidth = details.getBoundingClientRect().width; + const splitWidth = split.getBoundingClientRect().width; + const nextDetailsWidth = clampDetailsWidth(currentDetailsWidth + direction * DETAILS_RESIZE_STEP, splitWidth); + const currentToolRequestOffset = toolRequestOffset ?? splitWidth * TOOL_REQUEST_SHARE - defaultToolRequestWidth(splitWidth); + setDetailsWidth(nextDetailsWidth); + setToolRequestOffset(currentToolRequestOffset + (nextDetailsWidth - currentDetailsWidth) * TOOL_REQUEST_SHARE); + event.preventDefault(); + } + }), + (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.detailsHeader, + children: [(0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.detailsTitle, + children: selectedRequest !== null ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.requestDetailsDot, + "aria-hidden": "true" + }), + (0, react_jsx_runtime.jsxs)("span", { + className: TrajectoryTable_module_css_default.requestDetailsName, + children: ["Request #", selectedRequestNumber ?? "—"] + }), + (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.detailsLocation, + children: selectedRequestInfo?.purpose === "compaction" ? `Compaction · ${sectionLabel(selectedRequest.turn)}` : sectionLabel(selectedRequest.turn) + }) + ] }) : promptSelected ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: `${TrajectoryTable_module_css_default.kindTag} ${TrajectoryTable_module_css_default.systemNeutral}`, + children: "SYSTEM" + }), (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.detailsLocation, + children: selected?.cell.text + })] }) : selected !== void 0 && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", { + className: `${TrajectoryTable_module_css_default.kindTag} ${selected.cell.kind === "context" ? TrajectoryTable_module_css_default.contextGreen : selected.cell.kind === "compacted" ? TrajectoryTable_module_css_default.compacted : selected.cell.kind === "tool" ? TrajectoryTable_module_css_default.toolAmber : selected.cell.kind === "message" ? TrajectoryTable_module_css_default.assistantVioletBright : selected.cell.kind === "subtool" ? TrajectoryTable_module_css_default.subtoolAmber : TrajectoryTable_module_css_default[selected.cell.kind]}`, + children: KIND_LABEL[selected.cell.kind] + }), (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTable_module_css_default.detailsLocation, + children: selected.cell.kind === "compacted" ? sectionLabel(selected.turn) : `${sectionLabel(selected.turn)} · ${selected.group}` + })] }) + }), (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: TrajectoryTable_module_css_default.close, + "aria-label": "Close details", + onClick: clearInspectorSelection, + children: (0, react_jsx_runtime.jsx)("span", { + "aria-hidden": "true", + children: "×" + }) + })] + }), + (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTable_module_css_default.detailTabs, + role: "tablist", + "aria-label": "Event details", + children: selectedTabs.map((tab) => (0, react_jsx_runtime.jsx)("button", { + id: `trajectory-detail-${tab.id}`, + type: "button", + role: "tab", + "aria-controls": "trajectory-detail-panel", + "aria-selected": activeTab === tab.id, + className: activeTab === tab.id ? `${TrajectoryTable_module_css_default.detailTab} ${TrajectoryTable_module_css_default.detailTabActive}` : TrajectoryTable_module_css_default.detailTab, + onClick: () => { + activateTab(tab.id); + }, + children: tab.label + }, tab.id)) + }), + (0, react_jsx_runtime.jsxs)("div", { + id: "trajectory-detail-panel", + className: activeTab === "overview" ? `${TrajectoryTable_module_css_default.detailBody} ${TrajectoryTable_module_css_default.detailBodySummary}` : TrajectoryTable_module_css_default.detailBody, + role: "tabpanel", + "aria-labelledby": `trajectory-detail-${activeTab}`, + children: [ + selectedRequest !== null && selectedRequestState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("dl", { + className: `${TrajectoryTable_module_css_default.overview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`, + "data-summary-scroll-region": "", + children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Status" }), (0, react_jsx_runtime.jsx)("dd", { + className: selectedRequestState === "error" ? TrajectoryTable_module_css_default.error : void 0, + children: statusLabel(selectedRequestState) + })] }), + selectedRequestInfo?.purpose === "compaction" && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Purpose" }), (0, react_jsx_runtime.jsx)("dd", { children: "Compaction" })] }), + (selectedRequestInfo?.provider ?? selectedRequestInfo?.requestConfig?.provider) !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Provider" }), (0, react_jsx_runtime.jsx)("dd", { children: selectedRequestInfo?.provider ?? selectedRequestInfo?.requestConfig?.provider })] }), + (selectedRequestInfo?.model ?? selectedRequestInfo?.requestConfig?.model) !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Model" }), (0, react_jsx_runtime.jsx)("dd", { children: selectedRequestInfo?.model ?? selectedRequestInfo?.requestConfig?.model })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Tool calls" }), (0, react_jsx_runtime.jsx)("dd", { children: selectedRequestToolCalls })] }), + selectedRequestSubtoolCalls > 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Subtool calls" }), (0, react_jsx_runtime.jsx)("dd", { children: selectedRequestSubtoolCalls })] }), + selectedRequestInfo?.error !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Error" }), (0, react_jsx_runtime.jsx)("dd", { + className: TrajectoryTable_module_css_default.error, + children: selectedRequestInfo.error + })] }), + selectedRequestInfo?.retry !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Retry" }), (0, react_jsx_runtime.jsxs)("dd", { children: [ + "Scheduled ", + selectedRequestInfo.retry, + selectedRequestInfo.maxRetries === void 0 ? "" : ` of ${selectedRequestInfo.maxRetries}` + ] })] }), + selectedRequestInfo?.retryDelayMs !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Retry delay" }), (0, react_jsx_runtime.jsx)("dd", { children: formatDurationMs(selectedRequestInfo.retryDelayMs) })] }), + selectedRequestResult !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Result" }), (0, react_jsx_runtime.jsx)("dd", { + className: TrajectoryTable_module_css_default.overviewParentLinks, + children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewHierarchyNavLink, + onClick: () => { + openRecordSummary(selectedRequestResult); + }, + children: [(0, react_jsx_runtime.jsx)("span", { children: selectedRequestInfo?.purpose === "compaction" ? "Compacted" : "Assistant Message" }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight, + size: 11 + })] + }) + })] }) + ] + }), (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.overviewSections, + children: [ + selectedRequestOptions !== void 0 && (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Options", + onOpen: () => { + activateTab("options"); + }, + children: (0, react_jsx_runtime.jsx)(RequestOptions, { + options: selectedRequestOptions, + preview: true + }) + }), + (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Usage", + onOpen: () => { + activateTab("usage"); + }, + children: (0, react_jsx_runtime.jsx)(UsageRows, { usage: selectedRequestUsage }) + }), + (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Timing", + onOpen: () => { + activateTab("timing"); + }, + children: (0, react_jsx_runtime.jsx)(RequestTiming, { + assistant: selectedRequestAssistant, + anchor: selectedRequestAnchor, + request: selectedRequestInfo + }) + }) + ] + })] }), + selectedRequest !== null && activeTab === "options" && (0, react_jsx_runtime.jsx)(RequestOptions, { options: selectedRequestOptions }), + selectedRequest !== null && activeTab === "usage" && (0, react_jsx_runtime.jsx)(RequestUsagePanel, { + usage: selectedRequestUsage, + cumulative: selectedRequestCumulativeUsage + }), + selectedRequest !== null && activeTab === "timing" && (0, react_jsx_runtime.jsx)(RequestTiming, { + assistant: selectedRequestAssistant, + anchor: selectedRequestAnchor, + request: selectedRequestInfo + }), + promptSelected && selectedPreviousPrompt !== void 0 && activeTab === "diff" && (0, react_jsx_runtime.jsx)(SystemPromptDiff, { + before: selectedPreviousPrompt, + after: selectedPrompt + }), + promptSelected && activeTab === "system-prompt" && (selectedPrompt.system === "" ? (0, react_jsx_runtime.jsx)("p", { + className: TrajectoryTable_module_css_default.noPayload, + children: "No system prompt in this request" + }) : (0, react_jsx_runtime.jsx)("div", { + className: `${TrajectoryTable_module_css_default.markdownPayload} ${TrajectoryTable_module_css_default.systemPrompt}`, + children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, { text: selectedPrompt.system }) + })), + promptSelected && activeTab === "tools" && (0, react_jsx_runtime.jsx)(ToolCatalog, { tools: selectedPrompt.tools }), + !promptSelected && selected?.cell.kind === "compacted" && selectedState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("dl", { + className: `${TrajectoryTable_module_css_default.overview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`, + "data-summary-scroll-region": "", + children: [ + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Status" }), (0, react_jsx_runtime.jsx)("dd", { + className: selectedState === "error" ? TrajectoryTable_module_css_default.error : void 0, + children: statusLabel(selectedState) + })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Duration" }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(selected.cell.timeSeconds) })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Tokens" }), (0, react_jsx_runtime.jsx)("dd", { children: "—" })] }) + ] + }), selected.cell.outputDetail !== void 0 && (0, react_jsx_runtime.jsx)("div", { + className: `${TrajectoryTable_module_css_default.compactedSummary} ${TrajectoryTable_module_css_default.summaryScrollRegion}`, + "data-summary-scroll-region": "", + children: (0, react_jsx_runtime.jsx)(MarkdownRecordContent, { + record: selected, + rendered: true, + thinkingExpanded, + onThinkingExpandedChange: setThinkingExpanded, + onOpenCall: openCallSummary + }) + })] }), + !promptSelected && selected !== void 0 && selected.cell.kind !== "compacted" && selectedState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("dl", { + className: `${TrajectoryTable_module_css_default.overview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`, + "data-summary-scroll-region": "", + children: [ + selected.cell.messageSource !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Source" }), (0, react_jsx_runtime.jsx)("dd", { + className: TrajectoryTable_module_css_default.overviewParentLinks, + children: (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewHierarchyNavLink, + onClick: () => { + activateTab("source"); + }, + children: [(0, react_jsx_runtime.jsx)("span", { children: messageSourceLabel(selected.cell.messageSource) }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight, + size: 11 + })] + }) + })] }), + hasSelectedHierarchy && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: selectedAssistantRequestTarget !== void 0 ? "Source" : "Hierarchy" }), (0, react_jsx_runtime.jsxs)("dd", { + className: TrajectoryTable_module_css_default.overviewParentLinks, + children: [ + selectedAssistantRequestTarget !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewHierarchyNavLink, + onClick: () => { + selectRequest(selectedAssistantRequestTarget); + }, + children: [(0, react_jsx_runtime.jsxs)("span", { children: ["Request #", selectedAssistantRequest ?? "—"] }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight, + size: 11 + })] + }), + selectedParentMessage !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewHierarchyNavLink, + onClick: () => { + openRecordSummary(selectedParentMessage); + }, + children: [(0, react_jsx_runtime.jsx)("span", { children: "Assistant Message" }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight, + size: 11 + })] + }), + selectedParentTool !== void 0 && (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryTable_module_css_default.overviewHierarchyNavLink, + onClick: () => { + openRecordSummary(selectedParentTool); + }, + children: [(0, react_jsx_runtime.jsx)("span", { children: "Tool Call" }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, { + className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight, + size: 11 + })] + }) + ] + })] }), + (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Status" }), (0, react_jsx_runtime.jsx)("dd", { + className: selectedState === "error" ? TrajectoryTable_module_css_default.error : void 0, + children: statusLabel(selectedState) + })] }), + selected.cell.kind === "message" && (0, react_jsx_runtime.jsx)(TokenRows, { cell: selected.cell }), + (selected.cell.kind === "user" || selected.cell.kind === "context") && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: "Duration" }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(selected.cell.timeSeconds) })] }) + ] + }), (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTable_module_css_default.overviewSections, + children: [ + isMarkdownRecord(selected) ? (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Preview", + onOpen: () => { + activateTab("rendered"); + }, + children: (0, react_jsx_runtime.jsx)(MarkdownRecordContent, { + record: selected, + rendered: true, + preview: true, + thinkingExpanded, + onThinkingExpandedChange: setThinkingExpanded, + onOpenCall: openCallSummary + }) + }) }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [ + selected.cell.inputDetail && (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Payload", + onOpen: () => { + activateTab("input"); + }, + children: (0, react_jsx_runtime.jsx)(RecordPayload, { + record: selected, + direction: "input", + preview: true + }) + }), + selected.cell.outputDetail && (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Result", + onOpen: () => { + activateTab("output"); + }, + children: (0, react_jsx_runtime.jsx)(RecordPayload, { + record: selected, + direction: "output", + preview: true + }) + }), + (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Schema", + onOpen: () => { + activateTab("schema"); + }, + children: (0, react_jsx_runtime.jsx)(RecordSchema, { + record: selected, + preview: true + }) + }) + ] }), + selectedAssistantRequestTarget !== void 0 && (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Request Timing", + onOpen: () => { + selectRequest(selectedAssistantRequestTarget, "timing"); + }, + children: (0, react_jsx_runtime.jsx)(RecordTiming, { record: selected }) + }), + (selected.cell.kind === "tool" || selected.cell.kind === "subtool") && (0, react_jsx_runtime.jsx)(OverviewSection, { + label: "Timing", + onOpen: () => { + activateTab("timing"); + }, + children: (0, react_jsx_runtime.jsx)(RecordTiming, { record: selected }) + }) + ] + })] }), + !promptSelected && selected !== void 0 && activeTab === "rendered" && (0, react_jsx_runtime.jsx)(MarkdownRecordContent, { + record: selected, + rendered: true, + thinkingExpanded, + onThinkingExpandedChange: setThinkingExpanded, + onOpenCall: openCallSummary + }), + !promptSelected && selected !== void 0 && activeTab === "raw" && (0, react_jsx_runtime.jsx)(MarkdownRecordContent, { + record: selected, + rendered: false, + thinkingExpanded, + onThinkingExpandedChange: setThinkingExpanded, + onOpenCall: openCallSummary + }), + !promptSelected && selected !== void 0 && activeTab === "source" && (0, react_jsx_runtime.jsx)(MessageSource, { record: selected }), + !promptSelected && selected !== void 0 && activeTab === "input" && (0, react_jsx_runtime.jsx)(RecordPayload, { + record: selected, + direction: "input" + }), + !promptSelected && selected !== void 0 && activeTab === "output" && (0, react_jsx_runtime.jsx)(RecordPayload, { + record: selected, + direction: "output" + }), + !promptSelected && selected !== void 0 && activeTab === "schema" && (0, react_jsx_runtime.jsx)(RecordSchema, { record: selected }), + !promptSelected && selected !== void 0 && activeTab === "timing" && (0, react_jsx_runtime.jsx)(RecordTiming, { record: selected }) + ] + }) + ] + })] + }); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-trajectory/src/client/TrajectoryToolbar.module.css.mjs + const css$2 = ".fV0t5q_root{z-index:4;box-sizing:border-box;width:100%;height:var(--dsh-trajectory-toolbar-height);border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);position:sticky;top:0}.fV0t5q_inner{box-sizing:border-box;align-items:center;gap:8px;width:100%;height:100%;padding:0 6px;display:flex}.fV0t5q_actions{flex:none;align-items:center;gap:2px;display:flex}.fV0t5q_toggle{height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 7px;display:inline-flex}.fV0t5q_toggle:hover,.fV0t5q_toggle[aria-pressed=true]{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.fV0t5q_toggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.fV0t5q_toggleIcon{stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:12px;height:12px}.fV0t5q_control{box-sizing:border-box;width:88px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xxs-12);background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;gap:4px;padding:0 5px;display:inline-flex}.fV0t5q_control[hidden]{display:none}.fV0t5q_control:hover:not(:disabled),.fV0t5q_control[aria-checked=true],.fV0t5q_control[aria-pressed=true]{color:var(--dsw-alias-label-primary)}.fV0t5q_control:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.fV0t5q_control:disabled{color:var(--dsw-alias-label-dimmed);cursor:not-allowed}.fV0t5q_controlTrack{background:var(--dsw-alias-border-l2);width:20px;height:10px;transition:background-color .12s var(--ds-ease-in-out);border-radius:5px;flex:none;display:inline-block;position:relative}.fV0t5q_controlThumb{background:var(--dsw-alias-bg-layer-1);width:6px;height:6px;transition:transform .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:2px;left:2px}.fV0t5q_controlTrack[data-on=true]{background:var(--dsw-alias-state-business-primary)}.fV0t5q_controlTrack[data-on=true] .fV0t5q_controlThumb{transform:translate(10px)}.fV0t5q_action{height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 5px;display:inline-flex}.fV0t5q_action:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.fV0t5q_action:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.fV0t5q_actionIcon{color:var(--dsw-alias-label-tertiary);font:14px/14px var(--ds-font-family-code)}.fV0t5q_search{border:1px solid var(--dsw-alias-border-l2);min-width:84px;height:22px;color:var(--dsw-alias-label-caption);background:var(--dsw-alias-bg-layer-2);border-radius:4px;flex:0 164px;align-items:center;gap:4px;margin-left:auto;padding:0 6px;display:flex}.fV0t5q_search:hover{border-color:var(--dsw-alias-label-caption)}.fV0t5q_search:focus-within{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1)}.fV0t5q_searchIcon{flex:none}.fV0t5q_searchInput{width:100%;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);background:0 0;border:0;outline:0;padding:0}.fV0t5q_searchInput::placeholder{color:var(--dsw-alias-label-caption)}.fV0t5q_searchInput::-webkit-search-cancel-button{cursor:pointer;width:12px;height:12px}"; + const tagId$2 = "@deepseek-ai/dsh-client-ui-trajectory/TrajectoryToolbar.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-trajectory"; + tag.dataset.pluginCss = tagId$2; + tag.textContent = css$2; + document.head.appendChild(tag); + } + var TrajectoryToolbar_module_css_default = { + "actionIcon": "fV0t5q_actionIcon", + "searchIcon": "fV0t5q_searchIcon", + "searchInput": "fV0t5q_searchInput", + "search": "fV0t5q_search", + "inner": "fV0t5q_inner", + "control": "fV0t5q_control", + "controlTrack": "fV0t5q_controlTrack", + "toggleIcon": "fV0t5q_toggleIcon", + "toggle": "fV0t5q_toggle", + "actions": "fV0t5q_actions", + "action": "fV0t5q_action", + "root": "fV0t5q_root", + "controlThumb": "fV0t5q_controlThumb" + }; + //#endregion + //#region lib/types/client/TrajectoryToolbar.js + /** + * Render the sticky trajectory toolbar. + * @param props - rendered counts and whole-list fold state. + * @returns the toolbar element. + */ + function TrajectoryToolbar({ actualDuration, onActualDurationChange, actualTime, onActualTimeChange, allTurnsCollapsed, onToggleAllTurns, allAssistantsCollapsed, onToggleAllAssistants, searchQuery, onSearchQueryChange, t }) { + return (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryToolbar_module_css_default.root, + role: "toolbar", + "aria-label": t("toolbar.aria"), + children: (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryToolbar_module_css_default.inner, + children: [(0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryToolbar_module_css_default.actions, + children: [ + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryToolbar_module_css_default.toggle, + "aria-label": t("toolbar.useActualDuration"), + "aria-pressed": actualDuration, + title: actualDuration ? t("toolbar.useEqualWidth") : t("toolbar.useActualDuration"), + onClick: () => { + onActualDurationChange(!actualDuration); + }, + children: [(0, react_jsx_runtime.jsxs)("svg", { + className: TrajectoryToolbar_module_css_default.toggleIcon, + viewBox: "0 0 16 16", + fill: "none", + "aria-hidden": "true", + children: [(0, react_jsx_runtime.jsx)("circle", { + cx: "8", + cy: "8", + r: "5.25" + }), (0, react_jsx_runtime.jsx)("path", { d: "M8 4.75V8l2.25 1.5" })] + }), t("toolbar.duration")] + }), + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryToolbar_module_css_default.control, + role: "switch", + "aria-checked": actualTime, + hidden: true, + onClick: () => { + onActualTimeChange(!actualTime); + }, + children: [(0, react_jsx_runtime.jsx)("span", { children: t("toolbar.actualTime") }), (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryToolbar_module_css_default.controlTrack, + "data-on": actualTime || void 0, + "aria-hidden": "true", + children: (0, react_jsx_runtime.jsx)("span", { className: TrajectoryToolbar_module_css_default.controlThumb }) + })] + }), + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryToolbar_module_css_default.action, + "aria-label": allTurnsCollapsed ? t("toolbar.expandTurns") : t("toolbar.collapseTurns"), + "aria-pressed": allTurnsCollapsed, + title: allTurnsCollapsed ? t("toolbar.expandTurns") : t("toolbar.collapseTurns"), + onClick: onToggleAllTurns, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryToolbar_module_css_default.actionIcon, + "aria-hidden": "true", + children: allTurnsCollapsed ? "⊞" : "⊟" + }), t("toolbar.turns")] + }), + (0, react_jsx_runtime.jsxs)("button", { + type: "button", + className: TrajectoryToolbar_module_css_default.action, + "aria-label": allAssistantsCollapsed ? t("toolbar.expandCalls") : t("toolbar.collapseCalls"), + "aria-pressed": allAssistantsCollapsed, + title: allAssistantsCollapsed ? t("toolbar.expandCalls") : t("toolbar.collapseCalls"), + onClick: onToggleAllAssistants, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryToolbar_module_css_default.actionIcon, + "aria-hidden": "true", + children: allAssistantsCollapsed ? "⊞" : "⊟" + }), t("toolbar.calls")] + }) + ] + }), (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryToolbar_module_css_default.search, + children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { + size: 11, + className: TrajectoryToolbar_module_css_default.searchIcon + }), (0, react_jsx_runtime.jsx)("input", { + type: "search", + className: TrajectoryToolbar_module_css_default.searchInput, + "aria-label": t("toolbar.search"), + placeholder: t("toolbar.searchPlaceholder"), + value: searchQuery, + onChange: (event) => { + onSearchQueryChange(event.currentTarget.value); + } + })] + })] + }) + }); + } + //#endregion + //#region lib/types/client/timeline.js + /** Operation-sequence and recorded-time projections for the trajectory overview. */ + /** + * Format a timeline duration as an integer-millisecond label. + * @param milliseconds - Non-negative duration in milliseconds. + * @returns Millisecond label with thousands separators. + */ + function formatTimelineOffset(milliseconds) { + return formatDurationMillis(milliseconds); + } + function laneFor(kind) { + if (kind === "tool" || kind === "subtool") return 2; + if (kind === "message" || kind === "compacted") return 1; + return 0; + } + function finite(value) { + return value !== null && value !== void 0 && Number.isFinite(value); + } + function cellRange(cell) { + if (!finite(cell.startedAt)) return null; + const durationMs = finite(cell.timeSeconds) ? Math.max(0, cell.timeSeconds * 1e3) : 0; + return { + start: cell.startedAt, + end: cell.startedAt + durationMs + }; + } + /** + * Project every visible record into a stable three-lane timeline. + * @param turns - Unfiltered trajectory layout. + * @param mode - Independent equal/recorded duration and compressed/complete time projection. + * @returns Timeline model, or `null` when no record is visible. + */ + function deriveTrajectoryTimeline(turns, mode = "sequence") { + if (mode !== "sequence") return deriveTimedTimeline(turns, mode === "duration" || mode === "actual", mode === "duration"); + const spans = []; + const turnBoundaries = []; + for (const turn of turns) { + const cells = turn.groups.flatMap((group) => group.cells.filter((cell) => cell.requestOnly !== true)); + if (cells.length === 0) continue; + if (turn.turn !== null) turnBoundaries.push({ + turn: turn.turn, + time: spans.length + }); + spans.push(...cells.map((cell, offset) => ({ + start: spans.length + offset, + end: spans.length + offset + 1, + index: cell.index, + isError: cell.isError === true, + kind: cell.kind, + label: cell.text, + lane: laneFor(cell.kind) + }))); + } + if (spans.length === 0) return null; + return { + start: 0, + end: spans.length, + spans, + turnBoundaries + }; + } + function deriveTimedTimeline(turns, actualDuration, compressIdle) { + const timedTurns = turns.flatMap((turn) => { + const rawSpans = turn.groups.flatMap((group) => group.cells.flatMap((cell) => { + if (cell.requestOnly === true) return []; + const range = cellRange(cell); + return range === null ? [] : [{ + ...range, + index: cell.index, + isError: cell.isError === true, + kind: cell.kind, + label: cell.text, + lane: laneFor(cell.kind) + }]; + })); + return rawSpans.length === 0 ? [] : [{ + turn: turn.turn, + rawSpans + }]; + }); + const rawSpans = timedTurns.flatMap((turn) => turn.rawSpans); + if (rawSpans.length === 0) return null; + const removedIdleBySpan = /* @__PURE__ */ new Map(); + let removedIdle = 0; + let coveredUntil = null; + for (const span of [...rawSpans].sort((left, right) => left.start - right.start || left.end - right.end)) { + if (compressIdle && coveredUntil !== null && span.start > coveredUntil) removedIdle += span.start - coveredUntil; + removedIdleBySpan.set(span, removedIdle); + coveredUntil = coveredUntil === null ? span.end : Math.max(coveredUntil, span.end); + } + const spans = []; + const turnBoundaries = []; + for (const turn of timedTurns) { + const projected = turn.rawSpans.map((span) => { + const offset = removedIdleBySpan.get(span) ?? 0; + return { + ...span, + start: span.start - offset, + end: (actualDuration ? span.end : span.start) - offset + }; + }); + spans.push(...projected); + if (turn.turn !== null) turnBoundaries.push({ + turn: turn.turn, + time: Math.min(...projected.map((span) => span.start)) + }); + } + return { + start: Math.min(...spans.map((span) => span.start)), + end: Math.max(...spans.map((span) => span.end)), + spans, + turnBoundaries + }; + } + /** + * Identify records active at any point inside an inclusive selected interval. + * @param turns - Unfiltered trajectory layout. + * @param range - Selected interval in the active projection. + * @param mode - Independent equal/recorded duration and compressed/complete time projection. + * @returns Record indexes inside the focus interval. + */ + function trajectoryTimelineFocusIndexes(turns, range, mode = "sequence") { + const model = deriveTrajectoryTimeline(turns, mode); + return new Set(model?.spans.filter((span) => span.start <= range.end && span.end >= range.start).map((span) => span.index)); + } + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-trajectory/src/client/TrajectoryTimeline.module.css.mjs + const css$1 = "._1p9O6q_root{z-index:1;isolation:isolate;border-bottom:1px solid var(--dsw-alias-border-l2);user-select:none;flex:none;position:relative}._1p9O6q_root [role=tooltip]{font:var(--dsw-font-xxxs-11)}._1p9O6q_plot{background:var(--dsw-alias-bg-layer-2);grid-template-columns:44px minmax(0,1fr);height:50px;display:grid;overflow:hidden}._1p9O6q_labels{border-right:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-caption);font:var(--dsw-font-xs-13);font-size:10px;line-height:1;position:relative}._1p9O6q_labels span{text-align:right;justify-content:flex-end;align-items:center;height:8px;display:flex;position:absolute;right:3px}._1p9O6q_labels span:first-child{top:7px}._1p9O6q_labels span:nth-child(2){top:21px}._1p9O6q_labels span:nth-child(3){top:35px}._1p9O6q_track{cursor:crosshair;touch-action:none;position:relative;overflow:hidden}._1p9O6q_track[data-panning=true]{cursor:grabbing}._1p9O6q_earlierHistory{z-index:5;appearance:none;box-sizing:border-box;background:linear-gradient(to right, var(--dsw-alias-bg-layer-2) 0, var(--dsw-alias-bg-layer-2) 38%, transparent 100%);width:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);opacity:.72;cursor:pointer;border:0;outline:none;justify-content:flex-start;align-items:center;padding-left:3px;line-height:1;display:flex;position:absolute;top:0;bottom:0;left:0}._1p9O6q_earlierHistory:hover{opacity:1}._1p9O6q_earlierHistory[aria-disabled=true]{cursor:default}._1p9O6q_earlierHistory:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l2)}._1p9O6q_empty{color:var(--dsw-alias-label-caption);font:var(--dsw-font-xs-13);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._1p9O6q_track:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}._1p9O6q_lanes{z-index:2;top:7px;bottom:7px;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);position:absolute}._1p9O6q_turnBoundaries{z-index:3;top:0;bottom:0;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);pointer-events:none;position:absolute}@media (prefers-reduced-motion:no-preference){._1p9O6q_lanes[data-animate-viewport=true],._1p9O6q_turnBoundaries[data-animate-viewport=true]{transition:left .18s ease-out}}._1p9O6q_turnBoundary{top:0;bottom:0;left:var(--trajectory-turn-left);background:var(--dsw-alias-border-l2);width:1px;position:absolute}._1p9O6q_span{top:calc(var(--trajectory-span-lane) * 14px);left:calc(var(--trajectory-span-left) + var(--trajectory-span-gap));width:max(2px, calc(var(--trajectory-span-width) - var(--trajectory-span-gap) - var(--trajectory-span-gap)));background:var(--dsw-alias-label-secondary);opacity:.78;border-radius:1px;min-width:2px;height:8px;position:absolute}._1p9O6q_span[data-timeline-span=user]{background:var(--dsw-alias-state-business-primary)}._1p9O6q_span[data-timeline-span=context]{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 68%, var(--dsw-alias-label-secondary))}._1p9O6q_span[data-timeline-span=message]{--trajectory-assistant-decoding-color:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 60%, var(--dsw-alias-state-error-secondary));--trajectory-assistant-ttft-color:color-mix(in srgb, var(--trajectory-assistant-decoding-color) 54%, var(--dsw-alias-bg-layer-2));background:var(--trajectory-assistant-decoding-color);opacity:1}._1p9O6q_span[data-timeline-span=message][data-assistant-timing=true]{background:linear-gradient(to right, var(--trajectory-assistant-ttft-color) 0, var(--trajectory-assistant-ttft-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) 100%)}._1p9O6q_span[data-timeline-span=tool],._1p9O6q_span[data-timeline-span=subtool]{background:var(--dsw-alias-state-warn-label);opacity:1}._1p9O6q_span[data-error=true]{background:var(--dsw-alias-state-error-primary)}._1p9O6q_span[data-equal-duration=true]{width:8px;min-width:8px}._1p9O6q_span[data-selected=false]{opacity:.2}._1p9O6q_span[data-hovered=true]:not([data-current=true]){z-index:1;opacity:1;box-shadow:0 0 0 1px var(--dsw-alias-bg-layer-2), 0 0 0 2px color-mix(in srgb, var(--dsw-alias-state-business-primary) 80%, transparent)}._1p9O6q_span[data-current=true]{z-index:1;opacity:1;box-shadow:0 0 0 1px var(--dsw-alias-bg-layer-2), 0 0 0 2px var(--dsw-alias-state-business-primary)}._1p9O6q_span[data-search-match=false]{opacity:.14}._1p9O6q_selection{z-index:1;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 12%, transparent);min-width:1px;box-shadow:-100vw 0 0 100vw color-mix(in srgb, var(--dsw-alias-bg-layer-1) 58%, transparent), 100vw 0 0 100vw color-mix(in srgb, var(--dsw-alias-bg-layer-1) 58%, transparent);pointer-events:none;position:absolute}._1p9O6q_selectionEdges{z-index:4;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);pointer-events:none;min-width:1px;position:absolute}._1p9O6q_hoverLine{z-index:4;top:0;bottom:0;left:clamp(0px, calc(var(--trajectory-hover-left) - 1px), calc(100% - 2px));background:var(--dsw-alias-state-business-primary);pointer-events:none;width:2px;position:absolute}._1p9O6q_selectionEdges:before,._1p9O6q_selectionEdges:after{background:var(--dsw-alias-state-business-primary);content:\"\";width:3px;position:absolute;top:0;bottom:0}._1p9O6q_selectionEdges:before{left:0}._1p9O6q_selectionEdges:after{right:0}._1p9O6q_selectionEdges[data-dragging=true]:before,._1p9O6q_selectionEdges[data-dragging=true]:after{width:2px}._1p9O6q_selection[data-dragging=true]{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 18%, transparent)}"; + const tagId$1 = "@deepseek-ai/dsh-client-ui-trajectory/TrajectoryTimeline.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-trajectory"; + tag.dataset.pluginCss = tagId$1; + tag.textContent = css$1; + document.head.appendChild(tag); + } + var TrajectoryTimeline_module_css_default = { + "turnBoundary": "_1p9O6q_turnBoundary", + "selectionEdges": "_1p9O6q_selectionEdges", + "plot": "_1p9O6q_plot", + "selection": "_1p9O6q_selection", + "turnBoundaries": "_1p9O6q_turnBoundaries", + "labels": "_1p9O6q_labels", + "empty": "_1p9O6q_empty", + "span": "_1p9O6q_span", + "hoverLine": "_1p9O6q_hoverLine", + "lanes": "_1p9O6q_lanes", + "track": "_1p9O6q_track", + "earlierHistory": "_1p9O6q_earlierHistory", + "root": "_1p9O6q_root" + }; + //#endregion + //#region lib/types/client/TrajectoryTimeline.js + /** Chrome-Network-style overview timeline for focusing the trajectory ledger. */ + const MINIMUM_DRAG_PX = 3; + const MINIMUM_ZOOM_OPERATIONS = 4; + const EDGE_PAN_ZONE_FRACTION = .08; + const EDGE_PAN_STEP_FRACTION = .025; + const MAXIMUM_EDGE_PAN_PX = 32; + const TIMELINE_TOOLTIP_DELAY_MS = 500; + function assistantTimingDetail(metrics) { + const start = metrics?.stepStartTime; + const first = metrics?.firstTokenTime; + const completed = metrics?.completedTime; + if (metrics?.timingRecorded !== true || typeof start !== "number" || typeof first !== "number" || typeof completed !== "number" || !Number.isFinite(start) || !Number.isFinite(first) || !Number.isFinite(completed) || first < start || completed < first) return {}; + return { + ttftMs: first - start, + decodingMs: completed - first + }; + } + function timelineRecordDetail(cell) { + const durationMs = cell.timeSeconds === null || !Number.isFinite(cell.timeSeconds) ? void 0 : Math.max(0, cell.timeSeconds * 1e3); + const startedAt = cell.startedAt === null || !Number.isFinite(cell.startedAt) ? void 0 : cell.startedAt; + return { + ...durationMs === void 0 ? {} : { durationMs }, + ...startedAt === void 0 ? {} : { startedAt }, + ...assistantTimingDetail(cell.assistantMetrics) + }; + } + function timelineKindLabel(kind) { + switch (kind) { + case "system": return "SYSTEM"; + case "user": return "USER"; + case "context": return "CONTEXT"; + case "compacted": return "COMPACTED"; + case "message": return "ASSISTANT"; + case "tool": return "TOOL"; + case "subtool": return "SUBTOOL"; + } + } + function formatRecordedTime(timestamp) { + return new Date(timestamp).toLocaleTimeString(void 0, { + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + fractionalSecondDigits: 3 + }); + } + function timelineTooltipLabel(kind, detail) { + const heading = timelineKindLabel(kind); + if (detail === void 0) return heading; + const duration = detail.durationMs === void 0 ? null : `Total ${formatTimelineOffset(detail.durationMs)}`; + return [ + heading, + detail.startedAt === void 0 ? null : detail.durationMs === void 0 ? `Started ${formatRecordedTime(detail.startedAt)}` : `${formatRecordedTime(detail.startedAt)} → ${formatRecordedTime(detail.startedAt + detail.durationMs)}`, + [duration, detail.ttftMs === void 0 || detail.decodingMs === void 0 ? null : `TTFT ${formatTimelineOffset(detail.ttftMs)} · Decoding ${formatTimelineOffset(detail.decodingMs)}`].filter((value) => value !== null).join(" · ") + ].filter((value) => value !== null && value !== "").join("\n"); + } + function orderedRange(left, right) { + return left <= right ? { + start: left, + end: right + } : { + start: right, + end: left + }; + } + function clampFraction(value) { + return Math.min(1, Math.max(0, value)); + } + function centeredRange(center, width, minimum, maximum) { + const clampedWidth = Math.min(maximum - minimum, Math.max(0, width)); + const start = Math.min(Math.max(center - clampedWidth / 2, minimum), maximum - clampedWidth); + return { + start, + end: start + clampedWidth + }; + } + function rangeFraction(range, start, duration, minimum, maximum) { + const bounded = orderedRange(Math.min(maximum, Math.max(minimum, range.start)), Math.min(maximum, Math.max(minimum, range.end))); + return { + start: (bounded.start - start) / duration, + end: (bounded.end - start) / duration + }; + } + function LaneLabels() { + return (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTimeline_module_css_default.labels, + "aria-hidden": "true", + children: [ + (0, react_jsx_runtime.jsx)("span", { children: "Input" }), + (0, react_jsx_runtime.jsx)("span", { children: "Model" }), + (0, react_jsx_runtime.jsx)("span", { children: "Tools" }) + ] + }); + } + function EarlierHistoryBoundary({ loading, onHover, onLoad }) { + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: loading ? "Loading earlier history…" : "Click to load earlier history", + side: "right", + delayMs: TIMELINE_TOOLTIP_DELAY_MS, + children: (0, react_jsx_runtime.jsx)("button", { + type: "button", + className: TrajectoryTimeline_module_css_default.earlierHistory, + "data-earlier-history": true, + "data-loading": loading || void 0, + "aria-label": loading ? "Loading earlier history" : "Load earlier history", + "aria-disabled": loading || onLoad === void 0, + onClick: onLoad, + onPointerEnter: (event) => { + event.stopPropagation(); + onHover(); + }, + onPointerMove: (event) => { + event.stopPropagation(); + }, + onPointerDown: (event) => { + event.stopPropagation(); + }, + children: "…" + }) + }); + } + /** Overview renderer with drag ranges, click-sized focus, and Escape reset. */ + const TrajectoryTimeline = (0, react.memo)(function TrajectoryTimeline({ turns, mode, range, hasEarlierRecords = false, onLoadEarlier, selectedIndex = null, searchMatchIndexes = null, onRangeChange, onRecordSelect, onRecordFocus }) { + const model = (0, react.useMemo)(() => deriveTrajectoryTimeline(turns, mode), [mode, turns]); + const detailByIndex = (0, react.useMemo)(() => new Map(turns.flatMap((turn) => turn.groups.flatMap((group) => group.cells.map((cell) => [cell.index, timelineRecordDetail(cell)])))), [turns]); + const dragRef = (0, react.useRef)(null); + const panRef = (0, react.useRef)(null); + const rootRef = (0, react.useRef)(null); + const trackRef = (0, react.useRef)(null); + const [draft, setDraft] = (0, react.useState)(null); + const [hover, setHover] = (0, react.useState)(null); + const [loadingEarlier, setLoadingEarlier] = (0, react.useState)(false); + const [panning, setPanning] = (0, react.useState)(false); + const [viewport, setViewport] = (0, react.useState)(null); + const [animateViewport, setAnimateViewport] = (0, react.useState)(false); + (0, react.useEffect)(() => { + if (model !== null && range !== null && (range.end < model.start || range.start > model.end)) onRangeChange(null); + }, [ + model, + onRangeChange, + range + ]); + (0, react.useEffect)(() => { + if (model === null) return; + setAnimateViewport(false); + setViewport((current) => current !== null && (current.end < model.start || current.start > model.end) ? null : current); + }, [model]); + (0, react.useEffect)(() => { + if (model === null || selectedIndex === null) return; + const selectedSpan = model.spans.find((span) => span.index === selectedIndex); + if (selectedSpan === void 0) return; + setAnimateViewport(true); + setViewport((current) => { + if (current === null) return current; + if (selectedSpan.end > current.start && selectedSpan.start < current.end) return current; + const duration = Math.max(1, current.end - current.start); + const desiredStart = selectedSpan.end <= current.start ? selectedSpan.start : selectedSpan.end - duration; + const nextStart = Math.min(Math.max(desiredStart, model.start), Math.max(model.start, model.end - duration)); + if (nextStart === current.start) return current; + return { + start: nextStart, + end: nextStart + duration + }; + }); + }, [model, selectedIndex]); + const fullDuration = Math.max(1, (model?.end ?? 0) - (model?.start ?? 0)); + const viewportDuration = Math.min(fullDuration, Math.max(1, (viewport?.end ?? 0) - (viewport?.start ?? 0))); + const viewportStart = model === null || viewport === null ? model?.start ?? 0 : Math.min(Math.max(viewport.start, model.start), model.end - viewportDuration); + const domainDuration = viewport === null ? fullDuration : viewportDuration; + const domainStart = viewport === null ? model?.start ?? 0 : viewportStart; + const showsEarlierBoundary = hasEarlierRecords && model !== null && domainStart === model.start; + const loadEarlier = onLoadEarlier === void 0 || loadingEarlier ? void 0 : () => { + setLoadingEarlier(true); + onLoadEarlier().finally(() => { + setLoadingEarlier(false); + }); + }; + const projectedDomainStyle = model === null ? void 0 : { + "--trajectory-domain-left": `${-(domainStart - model.start) / domainDuration * 100}%`, + "--trajectory-domain-width": `${fullDuration / domainDuration * 100}%` + }; + const committed = model === null || range === null ? null : rangeFraction(range, domainStart, domainDuration, model.start, model.end); + const visibleRange = (model === null || draft === null ? null : rangeFraction(draft, domainStart, domainDuration, model.start, model.end)) ?? committed; + const activeRange = draft ?? range; + (0, react.useEffect)(() => { + const root = rootRef.current; + if (root === null) return; + const onWheel = (event) => { + event.preventDefault(); + const track = trackRef.current; + if (track === null || model === null) return; + setAnimateViewport(false); + const rect = track.getBoundingClientRect(); + const anchorFraction = clampFraction((event.clientX - rect.left) / Math.max(1, rect.width)); + const nextDuration = Math.min(fullDuration, Math.max(Math.min(mode === "sequence" ? MINIMUM_ZOOM_OPERATIONS : 20, fullDuration), domainDuration * Math.exp(event.deltaY * .0015))); + if (nextDuration >= fullDuration * .999) { + setViewport(null); + return; + } + const anchorTime = domainStart + anchorFraction * domainDuration; + const nextStart = Math.min(Math.max(anchorTime - anchorFraction * nextDuration, model.start), model.end - nextDuration); + setViewport({ + start: nextStart, + end: nextStart + nextDuration + }); + }; + root.addEventListener("wheel", onWheel, { passive: false }); + return () => { + root.removeEventListener("wheel", onWheel); + }; + }, [ + domainDuration, + domainStart, + fullDuration, + mode, + model + ]); + if (model === null) return (0, react_jsx_runtime.jsx)("section", { + ref: rootRef, + className: TrajectoryTimeline_module_css_default.root, + "aria-label": "Trajectory timeline", + children: (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTimeline_module_css_default.plot, + children: [(0, react_jsx_runtime.jsx)(LaneLabels, {}), (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTimeline_module_css_default.track, + children: [(0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTimeline_module_css_default.empty, + children: "No timing data" + }), hasEarlierRecords && (0, react_jsx_runtime.jsx)(EarlierHistoryBoundary, { + loading: loadingEarlier, + onHover: () => { + setHover(null); + }, + onLoad: loadEarlier + })] + })] + }) + }); + const minimumSelectionDuration = Math.min(domainDuration, fullDuration / model.spans.length); + const fractionAt = (event) => { + const rect = event.currentTarget.getBoundingClientRect(); + return clampFraction((event.clientX - rect.left) / Math.max(1, rect.width)); + }; + const recordIndexAt = (event) => { + const value = (event.target instanceof HTMLElement ? event.target : null)?.closest("[data-timeline-record-index]")?.dataset.timelineRecordIndex; + if (value === void 0) return null; + const index = Number(value); + return Number.isFinite(index) ? index : null; + }; + const commit = (nextRange) => { + onRangeChange(nextRange); + }; + const onPointerDown = (event) => { + if (event.button === 2) { + panRef.current = { + anchorClientX: event.clientX, + anchorStart: domainStart, + moved: false, + pannable: viewport !== null, + pointerId: event.pointerId + }; + if (viewport !== null) setAnimateViewport(false); + setPanning(true); + if (typeof event.currentTarget.setPointerCapture === "function") event.currentTarget.setPointerCapture(event.pointerId); + return; + } + if (event.button !== 0) return; + const anchor = fractionAt(event); + const anchorTime = domainStart + anchor * domainDuration; + const recordIndex = recordIndexAt(event); + setHover({ + fraction: anchor, + recordIndex + }); + dragRef.current = { + pointerId: event.pointerId, + anchorTime, + anchorClientX: event.clientX, + recordIndex + }; + if (typeof event.currentTarget.setPointerCapture === "function") event.currentTarget.setPointerCapture(event.pointerId); + setDraft({ + start: anchorTime, + end: anchorTime + }); + }; + const onPointerMove = (event) => { + const rect = event.currentTarget.getBoundingClientRect(); + const fraction = fractionAt(event); + setHover({ + fraction, + recordIndex: recordIndexAt(event) + }); + const pan = panRef.current; + if (pan !== null && pan.pointerId === event.pointerId) { + if (Math.abs(event.clientX - pan.anchorClientX) >= MINIMUM_DRAG_PX) pan.moved = true; + if (!pan.pannable) return; + const delta = (event.clientX - pan.anchorClientX) / Math.max(1, rect.width); + const nextStart = Math.min(Math.max(pan.anchorStart - delta * domainDuration, model.start), model.end - domainDuration); + setViewport({ + start: nextStart, + end: nextStart + domainDuration + }); + return; + } + const drag = dragRef.current; + if (drag === null || drag.pointerId !== event.pointerId) return; + let nextDomainStart = domainStart; + if (viewport !== null) { + const localX = event.clientX - rect.left; + const edgeWidth = Math.min(MAXIMUM_EDGE_PAN_PX, Math.max(1, rect.width * EDGE_PAN_ZONE_FRACTION)); + const direction = localX < edgeWidth ? -1 : localX > rect.width - edgeWidth ? 1 : 0; + if (direction !== 0) { + const strength = clampFraction((direction < 0 ? edgeWidth - localX : localX - (rect.width - edgeWidth)) / edgeWidth); + const desiredStart = domainStart + direction * domainDuration * EDGE_PAN_STEP_FRACTION * Math.max(.2, strength); + nextDomainStart = Math.min(Math.max(desiredStart, model.start), model.end - domainDuration); + if (nextDomainStart !== domainStart) { + setAnimateViewport(false); + setViewport({ + start: nextDomainStart, + end: nextDomainStart + domainDuration + }); + } + } + } + const pointTime = nextDomainStart + fraction * domainDuration; + setDraft(orderedRange(drag.anchorTime, pointTime)); + }; + const onPointerEnd = (event) => { + const pan = panRef.current; + if (pan !== null && pan.pointerId === event.pointerId) { + const moved = pan.moved || Math.abs(event.clientX - pan.anchorClientX) >= MINIMUM_DRAG_PX; + panRef.current = null; + setPanning(false); + if (!moved) onRangeChange(null); + return; + } + const drag = dragRef.current; + if (drag === null || drag.pointerId !== event.pointerId) return; + const pointFraction = fractionAt(event); + const pointTime = domainStart + pointFraction * domainDuration; + const selected = orderedRange(drag.anchorTime, pointTime); + setHover({ + fraction: pointFraction, + recordIndex: recordIndexAt(event) + }); + dragRef.current = null; + setDraft(null); + const click = Math.abs(event.clientX - drag.anchorClientX) < MINIMUM_DRAG_PX; + const clickedSpan = click && drag.recordIndex !== null ? model.spans.find((span) => span.index === drag.recordIndex) : void 0; + if (clickedSpan !== void 0) { + onRangeChange(null); + onRecordSelect?.(clickedSpan.index); + return; + } + commit(selected.end - selected.start < minimumSelectionDuration ? centeredRange(click ? selected.start : (selected.start + selected.end) / 2, minimumSelectionDuration, model.start, model.end) : selected); + if (click) { + const timelinePoint = selected.start; + const nearest = model.spans.reduce((candidate, span) => { + const candidateDistance = timelinePoint < candidate.start ? candidate.start - timelinePoint : timelinePoint > candidate.end ? timelinePoint - candidate.end : 0; + return (timelinePoint < span.start ? span.start - timelinePoint : timelinePoint > span.end ? timelinePoint - span.end : 0) < candidateDistance ? span : candidate; + }); + onRecordFocus?.(nearest.index); + } + }; + const onKeyDown = (event) => { + if (event.key !== "Escape" || range === null) return; + event.preventDefault(); + onRangeChange(null); + }; + const onPointerCancel = () => { + dragRef.current = null; + panRef.current = null; + setDraft(null); + setHover(null); + setPanning(false); + }; + return (0, react_jsx_runtime.jsx)("section", { + ref: rootRef, + className: TrajectoryTimeline_module_css_default.root, + "aria-label": "Trajectory timeline", + children: (0, react_jsx_runtime.jsxs)("div", { + className: TrajectoryTimeline_module_css_default.plot, + children: [(0, react_jsx_runtime.jsx)(LaneLabels, {}), (0, react_jsx_runtime.jsxs)("div", { + ref: trackRef, + className: TrajectoryTimeline_module_css_default.track, + "data-panning": panning || void 0, + "aria-label": "Timeline overview; drag horizontally to focus events", + tabIndex: 0, + onKeyDown, + onPointerDown, + onPointerMove, + onPointerUp: onPointerEnd, + onPointerCancel, + onPointerLeave: () => { + if (dragRef.current === null && panRef.current === null) setHover(null); + }, + onDoubleClick: (event) => { + event.preventDefault(); + onRangeChange(null); + }, + onContextMenu: (event) => { + event.preventDefault(); + }, + children: [ + showsEarlierBoundary && (0, react_jsx_runtime.jsx)(EarlierHistoryBoundary, { + loading: loadingEarlier, + onHover: () => { + setHover(null); + }, + onLoad: loadEarlier + }), + hover !== null && hover.recordIndex === null && draft === null && (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTimeline_module_css_default.hoverLine, + "data-timeline-hover-line": true, + "aria-hidden": "true", + style: { "--trajectory-hover-left": `${hover.fraction * 100}%` } + }), + visibleRange !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTimeline_module_css_default.selection, + "data-dragging": draft === null ? void 0 : "true", + "aria-hidden": "true", + style: { + "--trajectory-selection-left": `${visibleRange.start * 100}%`, + "--trajectory-selection-width": `${(visibleRange.end - visibleRange.start) * 100}%` + } + }), (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTimeline_module_css_default.selectionEdges, + "data-dragging": draft === null ? void 0 : "true", + "aria-hidden": "true", + style: { + "--trajectory-selection-left": `${visibleRange.start * 100}%`, + "--trajectory-selection-width": `${(visibleRange.end - visibleRange.start) * 100}%` + } + })] }), + (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTimeline_module_css_default.turnBoundaries, + "data-animate-viewport": animateViewport || void 0, + "aria-hidden": "true", + style: projectedDomainStyle, + children: model.turnBoundaries.filter((boundary) => boundary.time > model.start && boundary.time >= domainStart && boundary.time <= domainStart + domainDuration).map((boundary) => (0, react_jsx_runtime.jsx)("span", { + className: TrajectoryTimeline_module_css_default.turnBoundary, + "data-turn": boundary.turn, + style: { "--trajectory-turn-left": `${(boundary.time - model.start) / fullDuration * 100}%` } + }, boundary.turn)) + }), + (0, react_jsx_runtime.jsx)("div", { + className: TrajectoryTimeline_module_css_default.lanes, + "data-animate-viewport": animateViewport || void 0, + "data-timeline-domain": true, + style: projectedDomainStyle, + children: model.spans.filter((span) => span.index === selectedIndex || span.end >= domainStart && span.start <= domainStart + domainDuration).map((span) => { + const left = (span.start - model.start) / fullDuration; + const widthPercent = (span.end - span.start) / fullDuration * 100; + const detail = detailByIndex.get(span.index); + const ttftMs = detail?.ttftMs; + const decodingMs = detail?.decodingMs; + const ttftFraction = ttftMs === void 0 || decodingMs === void 0 || ttftMs + decodingMs <= 0 ? null : ttftMs / (ttftMs + decodingMs); + return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, { + label: () => timelineTooltipLabel(span.kind, detail), + side: "bottom", + delayMs: TIMELINE_TOOLTIP_DELAY_MS, + children: (0, react_jsx_runtime.jsx)("span", { + "aria-hidden": "true", + className: TrajectoryTimeline_module_css_default.span, + "data-timeline-span": span.kind, + "data-timeline-record-index": span.index, + "data-assistant-timing": ttftFraction === null ? void 0 : "true", + "data-error": span.isError || void 0, + "data-equal-duration": mode === "time" || void 0, + "data-current": span.index === selectedIndex || void 0, + "data-hovered": hover?.recordIndex === span.index || void 0, + "data-search-match": searchMatchIndexes === null ? void 0 : searchMatchIndexes.has(span.index) ? "true" : "false", + "data-selected": activeRange === null ? void 0 : span.start <= activeRange.end && span.end >= activeRange.start ? "true" : "false", + style: { + "--trajectory-span-left": `${left * 100}%`, + "--trajectory-span-width": `${widthPercent}%`, + "--trajectory-span-gap": `min(${widthPercent * .08}%, 1px)`, + "--trajectory-span-lane": span.lane, + ...ttftFraction === null ? {} : { "--trajectory-assistant-ttft": `${ttftFraction * 100}%` } + } + }) + }, span.index); + }) + }) + ] + })] + }) + }); + }); + //#endregion + //#region lib/types/client/layout.js + function layoutEntryOrder(entry) { + return entry.kind === "system" && entry.change.kind === "initial" ? Number.NEGATIVE_INFINITY : entry.seq; + } + function inputCellDetail(node) { + const previewMarkdown = previewContent(node.content); + return { + text: "", + ...previewMarkdown === void 0 ? {} : { previewMarkdown }, + sourceSeq: node.seq, + messageSource: node.source, + inputDetail: detailContent(node.content), + sourceBlocks: node.content.map((block) => sourceBlock(block)), + timeSeconds: 0, + startedAt: finiteTime(node.time) + }; + } + /** + * Fold a snapshot into turn → Message/Step groups with expanded cells. + * @param input - nodes plus in-flight partial/runningCalls. + * @returns turns ordered by first appearance. + */ + function deriveTrajectoryLayout(input) { + const { nodes, eventLocations, partial, runningCalls, requests = [], callSchemas } = input; + const resultByCall = indexResults(nodes); + const callById = new Map(resultByCall); + for (const call of runningCalls) callById.set(call.callId, call); + const emittedCallIds = indexAssistantCallIds(nodes); + const followingAssistants = indexFollowingAssistants(nodes); + const callStartById = /* @__PURE__ */ new Map(); + for (const result of resultByCall.values()) { + const startedAt = finiteTime(result.callTime); + if (startedAt !== null) callStartById.set(result.callId, startedAt); + } + for (const call of runningCalls) { + const startedAt = finiteTime(call.time); + if (startedAt !== null) callStartById.set(call.callId, startedAt); + } + const turns = /* @__PURE__ */ new Map(); + const standaloneCompactions = []; + let index = 0; + let prevAbsTime = null; + let lastAssistantTurn = null; + const bucket = (turn) => { + let entry = turns.get(turn); + if (entry === void 0) { + entry = { groups: [] }; + turns.set(turn, entry); + } + return entry; + }; + const pushMessage = (turn, laid) => { + const groups = bucket(turn).groups; + const last = groups.at(-1); + if (last?.title === "Message") { + last.laid.push(laid); + return; + } + groups.push({ + title: "Message", + laid: [laid] + }); + }; + const pushStep = (turn, step, laid) => { + if (laid.length === 0) return; + const groups = bucket(turn).groups; + const title = `Step ${step}`; + const existing = groups.find((group) => group.title === title); + if (existing !== void 0) { + existing.laid.push(...laid); + return; + } + groups.push({ + title, + laid: [...laid] + }); + }; + const pushStepInput = (turn, step, laid) => { + if (laid.length === 0) return; + const groups = bucket(turn).groups; + const title = `Step ${step}`; + const existing = groups.find((group) => group.title === title); + if (existing === void 0) { + groups.push({ + title, + laid: [...laid] + }); + return; + } + const request = existing.laid.findIndex((entry) => entry.cell.requestOnly === true); + if (request === -1) existing.laid.push(...laid); + else existing.laid.splice(request, 0, ...laid); + }; + const representedRequests = /* @__PURE__ */ new Set(); + for (const node of nodes) if (node.kind === "assistant" && node.step > 0) representedRequests.add(`${node.turn}\u0000${node.step}`); + if (partial !== null && partial.step > 0) representedRequests.add(`${partial.turn}\u0000${partial.step}`); + for (const call of runningCalls) if (call.step > 0) representedRequests.add(`${call.turn}\u0000${call.step}`); + const entries = [ + ...nodes.map((node, nodeIndex) => ({ + kind: "node", + seq: node.seq, + node, + nodeIndex + })), + ...requests.filter((request) => request.purpose === "compaction").map((request) => ({ + kind: "compaction", + seq: request.startSeq, + request + })), + ...requests.flatMap((request) => request.purpose !== "assistant" || request.promptChange === void 0 || request.prompt === void 0 ? [] : [{ + kind: "system", + seq: request.promptChange.seq, + request, + change: request.promptChange + }]), + ...requests.filter((request) => request.purpose === "assistant").filter((request) => !representedRequests.has(`${request.turn}\u0000${request.step}`)).map((request) => ({ + kind: "request", + seq: request.startSeq, + request + })) + ].sort((left, right) => layoutEntryOrder(left) - layoutEntryOrder(right)); + for (const entry of entries) { + if (entry.kind === "request") { + const { request } = entry; + pushStep(request.turn, request.step, [{ + absTime: finiteTime(request.startedAt), + cell: { + index: ++index, + kind: "message", + text: "", + sourceSeq: request.startSeq, + requestOnly: true, + timeSeconds: request.completedAt === null ? null : durationSeconds(request.completedAt, request.startedAt), + startedAt: finiteTime(request.startedAt), + ...request.status === "error" ? { isError: true } : {} + } + }]); + prevAbsTime = finiteTime(request.completedAt) ?? finiteTime(request.startedAt) ?? prevAbsTime; + continue; + } + if (entry.kind === "system") { + const { change, request } = entry; + pushMessage(change.kind === "initial" ? firstVisibleTurn(nodes, partial) : enclosingPromptTurn(nodes, change.seq, partial), { + absTime: finiteTime(change.time), + cell: { + index: ++index, + kind: "system", + text: promptChangeLabel(change), + sourceSeq: change.seq, + ...request.prompt === void 0 ? {} : { promptDetail: request.prompt }, + ...change.previous === void 0 ? {} : { previousPromptDetail: change.previous }, + timeSeconds: 0, + startedAt: finiteTime(change.time) + } + }); + prevAbsTime = finiteTime(change.time) ?? prevAbsTime; + continue; + } + if (entry.kind === "compaction") { + const request = entry.request; + const rawOutput = request.rawOutput ?? request.summary; + const thinkingDetail = rawOutput === void 0 ? "" : detailReasoning(rawOutput); + const cell = { + index: ++index, + kind: "compacted", + text: request.status === "running" ? "Compacting context…" : request.status === "error" ? request.error ?? "Compaction failed" : request.summary === void 0 ? "Context compacted" : "", + ...request.status === "complete" && request.summary !== void 0 ? previewContentProperty(request.summary) : {}, + sourceSeq: request.startSeq, + ...request.summary === void 0 ? {} : { + outputDetail: detailContent(request.summary), + outputBlocks: request.summary.map((block) => sourceBlock(block)) + }, + ...thinkingDetail === "" ? {} : { thinkingDetail }, + ...rawOutput === void 0 ? {} : { sourceBlocks: rawOutput.map((block) => sourceBlock(block)) }, + ...request.status === "error" ? { isError: true } : {}, + timeSeconds: request.completedAt === null ? null : durationSeconds(request.completedAt, request.startedAt), + startedAt: finiteTime(request.startedAt) + }; + attachUsage(cell, request.usage); + const compaction = { groups: [{ + title: `Compaction ${request.startSeq}`, + laid: [{ + absTime: finiteTime(request.startedAt), + cell + }] + }] }; + if (request.turn === null) standaloneCompactions.push(compaction); + else bucket(request.turn).groups.push(...compaction.groups); + prevAbsTime = finiteTime(request.completedAt) ?? finiteTime(request.startedAt) ?? prevAbsTime; + continue; + } + const { node, nodeIndex: i } = entry; + if (node.kind === "user") { + pushMessage(enclosingUserTurn(followingAssistants[i], partial, lastAssistantTurn), { + absTime: finiteTime(node.time), + cell: { + index: ++index, + kind: "user", + ...inputCellDetail(node), + opensTurn: true + } + }); + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + continue; + } + if (node.kind === "steering") { + const placement = steeringPlacement(followingAssistants[i], partial, lastAssistantTurn, eventLocations?.get(node.seq)); + const laid = { + absTime: finiteTime(node.time), + cell: { + index: ++index, + kind: "user", + ...inputCellDetail(node) + } + }; + if (placement.step === void 0) pushMessage(placement.turn, laid); + else pushStepInput(placement.turn, placement.step, [laid]); + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + continue; + } + if (node.kind === "assistant") { + const laidList = withSubCalls(expandAssistant(node, index + 1, prevAbsTime, resultByCall, callStartById, callById)); + if (node.step > 0) pushStep(node.turn, node.step, laidList); + else for (const laid of laidList) pushMessage(node.turn, laid); + const last = laidList[laidList.length - 1]; + if (last !== void 0) index = last.cell.index; + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + lastAssistantTurn = node.turn; + continue; + } + if (node.kind === "context") { + pushMessage(enclosingUserTurn(followingAssistants[i], partial, lastAssistantTurn), { + absTime: finiteTime(node.time), + cell: { + index: ++index, + kind: "context", + ...inputCellDetail(node) + } + }); + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + continue; + } + if (node.kind === "compaction") { + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + continue; + } + if (node.kind === "tool-result") { + if (!emittedCallIds.has(node.callId)) { + const toolName = node.call?.name; + const resultPreview = summarizeResult(node); + const laidList = [{ + absTime: finiteTime(node.callTime ?? node.time), + ...toolName !== void 0 ? { toolName } : {}, + callId: node.callId, + subCalls: node.subCalls, + cell: { + index: ++index, + kind: "tool", + sourceSeq: node.seq, + ...node.call !== null ? summarizeCall(node.call.name, node.call.argsRaw) : resultAsText(resultPreview), + ...node.call !== null ? { inputDetail: node.call.argsRaw } : {}, + outputDetail: detailResult(node), + outputBlocks: node.content.map((block) => sourceBlock(block)), + ...resultPreview, + callId: node.callId, + isError: node.isError, + timeSeconds: durationSeconds(node.time, node.callTime), + startedAt: finiteTime(node.callTime) + } + }]; + for (const laid of expandSubCalls(node.subCalls, index)) { + laidList.push(laid); + index = laid.cell.index; + } + pushStep(0, 1, laidList); + } + prevAbsTime = finiteTime(node.time) ?? prevAbsTime; + } + } + if (partial !== null) { + const laidList = withSubCalls(expandAssistant({ + kind: "assistant", + seq: Number.MAX_SAFE_INTEGER, + time: 0, + turn: partial.turn, + step: partial.step, + blocks: partial.blocks + }, index + 1, prevAbsTime, resultByCall, callStartById, callById, { streaming: true })); + if (partial.step > 0) pushStep(partial.turn, partial.step, laidList); + else for (const laid of laidList) pushMessage(partial.turn, laid); + const last = laidList[laidList.length - 1]; + if (last !== void 0) index = last.cell.index; + } + const seenCalls = collectCallIds(turns); + for (const call of runningCalls) { + if (seenCalls.has(call.callId)) continue; + const laidList = [{ + absTime: null, + toolName: call.name, + callId: call.callId, + subCalls: call.subCalls, + cell: { + index: ++index, + kind: "tool", + ...summarizeCall(call.name, call.argsRaw), + inputDetail: call.argsRaw, + callId: call.callId, + timeSeconds: null, + startedAt: finiteTime(call.time) + } + }]; + for (const laid of expandSubCalls(call.subCalls, index)) { + laidList.push(laid); + index = laid.cell.index; + } + if (call.step > 0) pushStep(call.turn, call.step, laidList); + else for (const laid of laidList) pushMessage(call.turn, laid); + } + const prologue = turns.get(0); + if (prologue !== void 0) { + turns.delete(0); + const emptyTurn = () => ({ groups: [] }); + const first = turns.get(1) ?? emptyTurn(); + first.groups = [...prologue.groups, ...first.groups]; + turns.set(1, first); + } + for (const entry of [...turns.values(), ...standaloneCompactions]) for (const group of entry.groups) for (const laid of group.laid) attachToolSchema(laid, callSchemas); + return [...[...turns.entries()].map(([turn, entry]) => toTurnModel(turn, entry)), ...standaloneCompactions.map((entry) => toTurnModel(null, entry))].sort((left, right) => firstCellIndex(left) - firstCellIndex(right)); + } + /** + * Append the changing in-flight assistant cells to a stable finalized layout. + * @param turns - Finalized layout derived with an empty-block partial anchor. + * @param partial - Current in-flight assistant projection. + * @param lastIndex - Highest cell index in the finalized layout. + * @returns The original layout without a partial, otherwise a layout sharing every unaffected turn. + */ + function appendTrajectoryPartialLayout(turns, partial, lastIndex) { + if (partial === null) return turns; + const partialTurn = deriveTrajectoryLayout({ + nodes: [], + partial, + runningCalls: [] + }).at(0); + if (partialTurn === void 0) return turns; + const streamed = { + ...partialTurn, + groups: partialTurn.groups.map((group) => ({ + ...group, + cells: group.cells.map((cell) => ({ + ...cell, + index: cell.index + lastIndex + })) + })) + }; + const turnIndex = turns.findIndex((turn) => turn.turn === streamed.turn); + if (turnIndex === -1) return [...turns, streamed]; + const current = turns[turnIndex]; + /* v8 ignore next -- findIndex proved the dense array position exists. */ + if (current === void 0) return turns; + const groups = [...current.groups]; + for (const streamedGroup of streamed.groups) { + const groupIndex = groups.findIndex((group) => group.title === streamedGroup.title); + if (groupIndex === -1) { + groups.push(streamedGroup); + continue; + } + const group = groups[groupIndex]; + /* v8 ignore next -- findIndex proved the dense array position exists. */ + if (group === void 0) continue; + const streamedCallIds = new Set(streamedGroup.cells.flatMap((cell) => cell.callId === void 0 ? [] : [cell.callId])); + groups[groupIndex] = { + ...streamedGroup, + cells: [...group.cells.filter((cell) => cell.requestOnly !== true && (cell.callId === void 0 || !streamedCallIds.has(cell.callId))), ...streamedGroup.cells] + }; + } + const updated = [...turns]; + updated[turnIndex] = { + ...current, + groups + }; + return updated; + } + function attachToolSchema(laid, callSchemas) { + if (laid.callId === void 0 || callSchemas === void 0) return; + const schema = callSchemas.get(laid.callId); + if (schema === void 0) return; + laid.cell.schemaDetail = JSON.stringify(schema, null, 2); + } + function toTurnModel(turn, entry) { + return { + turn, + groups: entry.groups.map(({ title, laid }) => { + const description = groupDescription(laid); + return { + title, + ...description !== void 0 ? { description } : {}, + cells: laid.map((l) => l.cell) + }; + }) + }; + } + /** Chronological section position from the fold's monotonically assigned cell indexes. */ + function firstCellIndex(turn) { + return Math.min(...turn.groups.flatMap((group) => group.cells.map((cell) => cell.index)), Number.POSITIVE_INFINITY); + } + /** Wall-span duration + tool histogram, e.g. `1.5 s bash×6`. */ + function groupDescription(laid) { + const parts = []; + const times = []; + for (const l of laid) { + if (l.absTime === null || !Number.isFinite(l.absTime)) continue; + times.push(l.absTime); + if (l.cell.kind === "tool" && l.cell.timeSeconds !== null && Number.isFinite(l.cell.timeSeconds)) times.push(l.absTime + l.cell.timeSeconds * 1e3); + } + if (times.length >= 2) { + const span = formatGroupDuration((Math.max(...times) - Math.min(...times)) / 1e3); + if (span !== void 0) parts.push(span); + } else if (times.length === 1) { + const own = laid.find((l) => l.absTime === times[0])?.cell.timeSeconds; + const span = own !== null && own !== void 0 ? formatGroupDuration(own) : void 0; + if (span !== void 0) parts.push(span); + } + const tools = /* @__PURE__ */ new Map(); + for (const l of laid) { + if (l.toolName === void 0 || l.cell.kind !== "tool") continue; + tools.set(l.toolName, (tools.get(l.toolName) ?? 0) + 1); + } + for (const [name, count] of tools) parts.push(count > 1 ? `${name}×${count}` : name); + return parts.length === 0 ? void 0 : parts.join(" "); + } + function formatGroupDuration(seconds) { + if (!Number.isFinite(seconds)) return void 0; + return formatElapsedSeconds(seconds); + } + /** Own-duration seconds from two epoch-ms stamps; null when either is unusable. */ + function durationSeconds(later, earlier) { + if (earlier === null || !Number.isFinite(later) || !Number.isFinite(earlier)) return null; + return Math.max(0, (later - earlier) / 1e3); + } + /** Epoch-ms usable as an absolute time, else null. */ + function finiteTime(time) { + return typeof time === "number" && Number.isFinite(time) ? time : null; + } + function expandAssistant(node, startIndex, prevAbsTime, results, callStarts, calls, opts) { + if (opts?.streaming === true && node.blocks.length === 0) return []; + const out = []; + let index = startIndex - 1; + const usage = node.usage; + const streaming = opts?.streaming === true; + const recordedStart = finiteTime(node.timing?.stepStartTime); + const messageDuration = streaming ? null : durationSeconds(node.time, recordedStart ?? prevAbsTime); + const nodeAbs = streaming ? null : finiteTime(node.time); + const messageText = node.blocks.filter((block) => block.kind === "text" && (!streaming || block.text !== "")).map((block) => block.kind === "text" ? block.text : "").join("\n\n"); + const thinkingText = node.blocks.filter((block) => block.kind === "reasoning" && (!streaming || block.text !== "")).map((block) => block.kind === "reasoning" ? block.text : "").join("\n\n"); + const message = { + index: ++index, + recordId: `assistant\u0000${node.turn}\u0000${node.step}`, + kind: "message", + sourceSeq: node.seq, + text: messageText !== "" || thinkingText !== "" ? "" : summarizeAssistantActivity(node.blocks), + ...messageText !== "" ? { previewMarkdown: messageText } : thinkingText !== "" ? { previewMarkdown: thinkingText } : {}, + ...messageText !== "" ? { outputDetail: messageText } : {}, + ...thinkingText !== "" ? { thinkingDetail: thinkingText } : {}, + sourceBlocks: node.blocks.map((block) => assistantSourceBlock(block)), + timeSeconds: messageDuration, + startedAt: recordedStart + }; + attachUsage(message, usage); + message.assistantMetrics = { + timingRecorded: node.timing !== void 0, + stepStartTime: node.timing?.stepStartTime ?? null, + firstTokenTime: node.timing?.firstTokenTime ?? null, + completedTime: streaming ? null : finiteTime(node.time), + usageProvided: usage !== void 0, + outputTokens: Number.isFinite(usage?.outputTokens) ? usage?.outputTokens ?? null : null + }; + out.push({ + absTime: nodeAbs, + cell: message + }); + for (const block of node.blocks) { + if (block.kind !== "tool-call") continue; + const result = results.get(block.callId); + const toolDuration = streaming || result === void 0 ? null : durationSeconds(result.time, result.callTime); + const callAbs = finiteTime(callStarts.get(block.callId)); + const call = calls.get(block.callId); + const resultPreview = result === void 0 ? void 0 : summarizeResult(result); + out.push({ + absTime: callAbs, + toolName: block.name, + callId: block.callId, + ...call === void 0 ? {} : { subCalls: call.subCalls }, + cell: { + index: ++index, + kind: "tool", + ...summarizeCall(block.name, block.argsRaw), + inputDetail: block.argsRaw, + callId: block.callId, + ...result !== void 0 ? { + outputDetail: detailResult(result), + outputBlocks: result.content.map((block) => sourceBlock(block)), + ...resultPreview, + isError: result.isError + } : {}, + timeSeconds: toolDuration, + startedAt: callAbs + } + }); + } + return out; + } + function summarizeAssistantActivity(blocks) { + const tools = /* @__PURE__ */ new Map(); + for (const block of blocks) { + if (block.kind !== "tool-call") continue; + tools.set(block.name, (tools.get(block.name) ?? 0) + 1); + } + if (tools.size > 0) return "Tool call only"; + return ""; + } + function promptChangeLabel(change) { + if (change.kind === "initial") return "Initial System Prompt"; + if (change.kind === "system") return "System Prompt Updated"; + if (change.kind === "tools") return "Tools Updated"; + return "System Prompt and Tools Updated"; + } + function assistantSourceBlock(block) { + switch (block.kind) { + case "text": return { + type: "text", + content: block.text + }; + case "reasoning": return { + type: "thinking", + content: block.text + }; + case "tool-call": return { + type: "tool-call", + content: block.argsRaw, + callId: block.callId, + toolName: block.name + }; + case "image": return { + type: "image", + content: stringifySourceValue(block.attachment) + }; + case "other": return sourceBlock(block.block); + } + } + function sourceBlock(value) { + if (typeof value !== "object" || value === null) return { + type: "unknown", + content: stringifySourceValue(value) + }; + const block = value; + const type = typeof block.type === "string" ? block.type : "unknown"; + if (typeof block.text === "string") return { + type: type === "reasoning" ? "thinking" : type, + content: block.text + }; + const imageSrc = sourceImage(block); + const imageAlt = typeof block.alt === "string" ? block.alt : void 0; + return { + type, + content: imageSrc === void 0 ? stringifySourceValue(value) : "", + ...imageSrc !== void 0 ? { imageSrc } : {}, + ...imageAlt !== void 0 ? { imageAlt } : {} + }; + } + function sourceImage(block) { + if (typeof block.type !== "string" || !block.type.toLowerCase().includes("image")) return void 0; + for (const candidate of [block.url, block.image_url]) if (typeof candidate === "string") return safeImageSource(candidate); + if (typeof block.data === "string") { + const mediaType = [ + block.mimeType, + block.mediaType, + block.media_type + ].find((candidate) => typeof candidate === "string") ?? "image/png"; + return safeImageSource(block.data.startsWith("data:") ? block.data : `data:${mediaType};base64,${block.data}`); + } + if (typeof block.source !== "object" || block.source === null) return void 0; + const source = block.source; + if (typeof source.url === "string") return safeImageSource(source.url); + if (typeof source.data !== "string") return void 0; + return safeImageSource(`data:${typeof source.media_type === "string" ? source.media_type : "image/png"};base64,${source.data}`); + } + function safeImageSource(value) { + if (value.startsWith("data:image/") || value.startsWith("blob:")) return value; + try { + const protocol = new URL(value).protocol; + return protocol === "http:" || protocol === "https:" ? value : void 0; + } catch { + return; + } + } + function stringifySourceValue(value) { + return JSON.stringify(value, null, 2) || String(value); + } + /** + * Turn that encloses a user/message: next assistant turn, else the + * in-flight partial, else the turn after the last finalized assistant (or 1). + */ + function enclosingUserTurn(followingAssistant, partial, lastAssistantTurn) { + if (followingAssistant !== void 0) return followingAssistant.turn; + if (partial !== null) return partial.turn; + if (lastAssistantTurn !== null) return lastAssistantTurn + 1; + return 1; + } + function steeringPlacement(followingAssistant, partial, lastAssistantTurn, location) { + if (location?.kind === "step") return { + turn: location.turn.turn, + step: location.step.step + }; + const locatedTurn = location?.kind === "turn" ? location.turn.turn : void 0; + if (followingAssistant !== void 0 && (locatedTurn === void 0 || followingAssistant.turn === locatedTurn)) return { + turn: followingAssistant.turn, + ...followingAssistant.step > 0 ? { step: followingAssistant.step } : {} + }; + if (partial !== null && (locatedTurn === void 0 || partial.turn === locatedTurn)) return { + turn: partial.turn, + ...partial.step > 0 ? { step: partial.step } : {} + }; + if (locatedTurn !== void 0) return { turn: locatedTurn }; + return { turn: lastAssistantTurn ?? 1 }; + } + function indexFollowingAssistants(nodes) { + const following = new Array(nodes.length); + let assistant; + for (let index = nodes.length - 1; index >= 0; index--) { + following[index] = assistant; + const node = nodes[index]; + if (node?.kind === "assistant") assistant = node; + } + return following; + } + function enclosingPromptTurn(nodes, seq, partial) { + const next = nodes.find((node) => node.seq > seq && node.kind === "assistant" && node.step > 0); + if (next?.kind === "assistant") return next.turn; + return partial?.turn ?? 1; + } + /** Earliest raw turn represented by the selected trajectory branch. */ + function firstVisibleTurn(nodes, partial) { + const turns = nodes.flatMap((node) => node.kind === "assistant" && node.turn > 0 ? [node.turn] : []); + if (partial !== null && partial.turn > 0) turns.push(partial.turn); + return turns.length === 0 ? 1 : Math.min(...turns); + } + /** Copy provider usage onto a Message cell when present. */ + function attachUsage(cell, usage) { + if (usage === void 0) return; + if (usage.inputTokens !== void 0) cell.input = usage.inputTokens; + if (usage.cacheReadTokens !== void 0) cell.cacheRead = usage.cacheReadTokens; + if (usage.cacheWriteTokens !== void 0) cell.cacheWrite = usage.cacheWriteTokens; + if (usage.outputTokens !== void 0) cell.output = usage.outputTokens; + if (usage.reasoningTokens !== void 0) cell.think = usage.reasoningTokens; + } + function indexResults(nodes) { + const map = /* @__PURE__ */ new Map(); + for (const node of nodes) if (node.kind === "tool-result") map.set(node.callId, node); + return map; + } + function indexAssistantCallIds(nodes) { + const ids = /* @__PURE__ */ new Set(); + for (const node of nodes) { + if (node.kind !== "assistant") continue; + for (const block of node.blocks) if (block.kind === "tool-call") ids.add(block.callId); + } + return ids; + } + function collectCallIds(turns) { + const ids = /* @__PURE__ */ new Set(); + for (const entry of turns.values()) for (const group of entry.groups) for (const laid of group.laid) if (laid.callId !== void 0) ids.add(laid.callId); + return ids; + } + /** Interleave each tool cell's nested child calls right after it, reindexing followers. */ + function withSubCalls(laidList) { + if (!laidList.some((laid) => laid.subCalls !== void 0 && laid.subCalls.length > 0)) return laidList; + const out = []; + let index = laidList[0] !== void 0 ? laidList[0].cell.index - 1 : 0; + for (const laid of laidList) { + out.push({ + ...laid, + cell: { + ...laid.cell, + index: ++index + } + }); + for (const sub of expandSubCalls(laid.subCalls, index)) { + out.push(sub); + index = sub.cell.index; + } + } + return out; + } + /** Sub-dispatch cells for one run_code parent, in start order (running = null duration). */ + function expandSubCalls(subs, startIndex) { + if (subs === void 0 || subs.length === 0) return []; + const out = []; + let index = startIndex; + for (const sub of subs) { + const settled = "kind" in sub; + const resultPreview = settled ? summarizeResult(sub) : void 0; + const laid = { + absTime: settled ? finiteTime(sub.callTime ?? sub.time) : finiteTime(sub.time), + toolName: settled ? sub.call?.name ?? sub.callId : sub.name, + callId: sub.callId, + cell: { + index: ++index, + kind: "subtool", + callId: sub.callId, + ...settled ? sub.call !== null ? summarizeCall(sub.call.name, sub.call.argsRaw) : resultAsText(resultPreview) : summarizeCall(sub.name, sub.argsRaw), + ...settled ? sub.call !== null ? { inputDetail: sub.call.argsRaw } : {} : { inputDetail: sub.argsRaw }, + ...settled ? { + outputDetail: detailResult(sub), + outputBlocks: sub.content.map((block) => sourceBlock(block)), + ...resultPreview, + isError: sub.isError + } : {}, + timeSeconds: settled ? durationSeconds(sub.time, sub.callTime) : null, + startedAt: settled ? finiteTime(sub.callTime) : finiteTime(sub.time) + } + }; + out.push(laid); + for (const child of expandSubCalls(sub.subCalls, index)) { + out.push(child); + index = child.cell.index; + } + } + return out; + } + function summarizeCall(name, argsRaw) { + return { + text: name, + ...argsRaw === "" ? {} : { previewMarkdown: argsRaw } + }; + } + function summarizeResult(node) { + if (node.isError) return { result: node.error?.code ?? "error" }; + for (const block of node.content) if (block.type === "text" && typeof block.text === "string" && block.text !== "") return { + result: "", + resultPreviewMarkdown: block.text + }; + return { result: "No output" }; + } + function resultAsText(result) { + return { + text: result?.result ?? "", + ...result?.resultPreviewMarkdown === void 0 ? {} : { previewMarkdown: result.resultPreviewMarkdown } + }; + } + function detailResult(node) { + if (node.isError) return node.error === void 0 ? "error" : `${node.error.name}: ${node.error.code}`; + const text = node.content.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.type === "text" ? block.text : "").join("\n"); + if (text !== "") return text; + if (node.content.length === 0 || node.content.every((block) => block.type === "text" && (typeof block.text !== "string" || block.text === ""))) return "No output"; + return JSON.stringify(node.content, null, 2); + } + function detailContent(content) { + return content.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.text ?? "").join("\n"); + } + function detailReasoning(content) { + return content.filter((block) => block.type === "reasoning" && typeof block.text === "string").map((block) => block.text ?? "").join("\n"); + } + function previewContent(content) { + for (const block of content) if (block.type === "text" && typeof block.text === "string") return block.text; + } + function previewContentProperty(content) { + const previewMarkdown = previewContent(content); + return previewMarkdown === void 0 ? {} : { previewMarkdown }; + } + //#endregion + //#region lib/types/client/trajectory-search-index.js + /** Incremental full-text index for the trajectory ledger. */ + function searchableJson(value) { + if (value === void 0) return ""; + try { + return JSON.stringify(value); + } catch { + return ""; + } + } + function sameSources(left, right) { + return left.length === right.length && left.every((value, index) => value === right[index]); + } + function markdownPreview(cell) { + if (cell.previewMarkdown === void 0) return ""; + const preview = trajectoryPreviewText(cell.previewMarkdown); + if (cell.text === "") return preview; + return preview === "" ? cell.text : `${cell.text} · ${preview}`; + } + function resultPreview(cell) { + return cell.resultPreviewMarkdown === void 0 ? cell.result ?? "" : trajectoryPreviewText(cell.resultPreviewMarkdown); + } + function recordSources(turn, group, cell) { + const blocks = [...cell.sourceBlocks ?? [], ...cell.outputBlocks ?? []]; + return [ + turn === null ? "between turns" : `turn ${turn}`, + group, + cell.kind, + cell.kind === "message" ? "assistant" : "", + cell.text, + cell.previewMarkdown ?? "", + cell.inputDetail ?? "", + cell.outputDetail ?? "", + cell.thinkingDetail ?? "", + cell.schemaDetail ?? "", + cell.result ?? "", + cell.resultPreviewMarkdown ?? "", + cell.callId ?? "", + ...blocks.flatMap((block) => [ + block.type, + block.content, + block.callId ?? "", + block.toolName ?? "", + block.imageAlt ?? "" + ]), + searchableJson(cell.messageSource), + searchableJson(cell.promptDetail), + searchableJson(cell.previousPromptDetail) + ]; + } + /** Session-view-local index that reparses Markdown only when one record's source changes. */ + var TrajectorySearchIndex = class { + entries = /* @__PURE__ */ new Map(); + layouts; + /** + * Incrementally synchronize one or more current trajectory layout slices. + * @param layouts - Finalized and optional streaming layouts from the same view. + * @returns Whether the indexed layout version changed. + */ + update(layouts) { + if (this.layouts === layouts) return false; + this.layouts = layouts; + const seen = /* @__PURE__ */ new Set(); + for (const turns of layouts) for (const turn of turns) for (const group of turn.groups) for (const cell of group.cells) { + if (cell.requestOnly === true) continue; + const id = trajectoryRecordId(cell); + const sources = recordSources(turn.turn, group.title, cell); + const previous = this.entries.get(id); + const entry = previous !== void 0 && sameSources(previous.sources, sources) ? previous : { + sources, + text: [ + ...sources, + markdownPreview(cell), + resultPreview(cell) + ].join("\n").toLocaleLowerCase() + }; + this.entries.set(id, entry); + seen.add(id); + } + for (const id of this.entries.keys()) if (!seen.has(id)) this.entries.delete(id); + return true; + } + /** + * Match a query against the latest committed index version. + * @param query - Space-separated case-insensitive search terms. + * @returns Matching stable record identities, or `null` without a query. + */ + search(query) { + const terms = query.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean); + if (terms.length === 0) return null; + const matches = /* @__PURE__ */ new Set(); + for (const [id, entry] of this.entries) if (terms.every((term) => entry.text.includes(term))) matches.add(id); + return matches; + } + }; + //#endregion + //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-trajectory/src/client/views.module.css.mjs + const css = ".qBU-ya_root{--dsh-trajectory-toolbar-height:32px;box-sizing:border-box;width:100%;height:100%;min-height:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;overflow:hidden}.qBU-ya_ledger{z-index:0;isolation:isolate;--dsh-trajectory-bottom-clearance:calc(var(--dsh-composer-height,152px) + 16px);flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}"; + const tagId = "@deepseek-ai/dsh-client-ui-trajectory/views.module.css"; + if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) { + const tag = document.createElement("style"); + tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-trajectory"; + tag.dataset.pluginCss = tagId; + tag.textContent = css; + document.head.appendChild(tag); + } + var views_module_css_default = { + "root": "qBU-ya_root", + "ledger": "qBU-ya_ledger" + }; + //#endregion + //#region lib/types/client/TrajectoryView.js + /** Trajectory view: compact summary over a turn-aware event ledger. */ + const EMPTY_TURN_IDS = /* @__PURE__ */ new Set(); + const EMPTY_RECORD_IDS = /* @__PURE__ */ new Set(); + const SEARCH_INDEX_THROTTLE_MS = 3e3; + function lastCellIndex(turns) { + let last = 0; + for (const turn of turns) for (const group of turn.groups) for (const cell of group.cells) last = Math.max(last, cell.index); + return last; + } + function timelineBlock(block) { + switch (block.kind) { + case "text": return { + kind: "text", + text: "" + }; + case "reasoning": return { + kind: "reasoning", + text: "" + }; + case "image": return block; + case "tool-call": return { + kind: "tool-call", + callId: block.callId, + name: block.name, + argsRaw: "" + }; + case "other": return { + kind: "other", + block: null + }; + } + } + function partialStructureSignature(partial) { + if (partial === null) return ""; + return partial.blocks.map((block) => block.kind === "tool-call" ? `${block.kind}:${block.callId}:${block.name}` : block.kind).join("\0"); + } + function requestUsage(value) { + const usage = value; + if (usage === void 0) return void 0; + return { + ...usage.inputTokens === void 0 ? {} : { input: usage.inputTokens }, + ...usage.cacheReadTokens === void 0 ? {} : { cacheRead: usage.cacheReadTokens }, + ...usage.cacheWriteTokens === void 0 ? {} : { cacheWrite: usage.cacheWriteTokens }, + ...usage.outputTokens === void 0 ? {} : { output: usage.outputTokens }, + ...usage.reasoningTokens === void 0 ? {} : { reasoning: usage.reasoningTokens } + }; + } + function addUsage(total, usage) { + if (usage === void 0) return total; + return { + ...total?.input === void 0 && usage.input === void 0 ? {} : { input: (total?.input ?? 0) + (usage.input ?? 0) }, + ...total?.cacheRead === void 0 && usage.cacheRead === void 0 ? {} : { cacheRead: (total?.cacheRead ?? 0) + (usage.cacheRead ?? 0) }, + ...total?.cacheWrite === void 0 && usage.cacheWrite === void 0 ? {} : { cacheWrite: (total?.cacheWrite ?? 0) + (usage.cacheWrite ?? 0) }, + ...total?.output === void 0 && usage.output === void 0 ? {} : { output: (total?.output ?? 0) + (usage.output ?? 0) }, + ...total?.reasoning === void 0 && usage.reasoning === void 0 ? {} : { reasoning: (total?.reasoning ?? 0) + (usage.reasoning ?? 0) } + }; + } + function TrajectoryView({ useSession, useDuration, loadOlder, setActualDuration, inspect, onInspectDone, t }) { + const [collapsedTurns, setCollapsedTurns] = (0, react.useState)(EMPTY_TURN_IDS); + const [collapsedAssistants, setCollapsedAssistants] = (0, react.useState)(EMPTY_RECORD_IDS); + const [timelineSelection, setTimelineSelection] = (0, react.useState)(null); + const actualDuration = useDuration((value) => value); + const [actualTime, setActualTime] = (0, react.useState)(false); + const [searchQuery, setSearchQuery] = (0, react.useState)(""); + const [searchIndex] = (0, react.useState)(() => new TrajectorySearchIndex()); + const [searchIndexRevision, setSearchIndexRevision] = (0, react.useState)(0); + const searchIndexTimer = (0, react.useRef)(null); + const searchIndexInitialized = (0, react.useRef)(false); + const [selectedTimelineIndex, setSelectedTimelineIndex] = (0, react.useState)(null); + const [timelineRecordSelection, setTimelineRecordSelection] = (0, react.useState)(null); + const [timelineRecordFocus, setTimelineRecordFocus] = (0, react.useState)(null); + const inspection = useSession((snapshot) => snapshot.views.get("trajectory") ?? EMPTY_TRAJECTORY_SNAPSHOT); + const historyLoading = useSession((snapshot) => snapshot.openState === "loading"); + const olderHistoryLoading = useSession((snapshot) => snapshot.loadingOlder); + const hasOlderHistory = useSession((snapshot) => snapshot.hasMore); + const nodes = inspection.eventNodes; + const eventLocations = inspection.eventLocations; + const historyBaseSeq = nodes[0]?.seq ?? 0; + const partial = inspection.partial; + const runningCalls = inspection.runningCalls; + const requests = inspection.requests; + const callSchemas = inspection.callSchemas; + const requestNumbers = (0, react.useMemo)(() => { + const assistantsByStep = /* @__PURE__ */ new Map(); + for (const node of nodes) { + if (node.kind !== "assistant" || node.step <= 0) continue; + assistantsByStep.set(`${node.turn}\u0000${node.step}`, node); + } + const requestsByStep = new Map(requests.filter((request) => request.purpose === "assistant").map((request) => [`${request.turn}\u0000${request.step}`, request])); + const orderedRequests = [...requests.map((request) => ({ + seq: request.startSeq, + request, + node: request.purpose === "assistant" ? assistantsByStep.get(`${request.turn}\u0000${request.step}`) : void 0 + })), ...[...assistantsByStep.entries()].flatMap(([key, node]) => requestsByStep.has(key) ? [] : [{ + seq: node.seq, + request: void 0, + node + }])].sort((left, right) => left.seq - right.seq); + const numbered = []; + let cumulativeUsage; + for (const [index, entry] of orderedRequests.entries()) { + const usage = requestUsage(entry.request?.usage ?? entry.node?.usage); + cumulativeUsage = addUsage(cumulativeUsage, usage); + if (entry.request?.purpose !== "compaction") { + const request = entry.request; + const node = entry.node; + const turn = request?.turn ?? node?.turn; + const step = request?.step ?? node?.step; + if (turn === void 0 || step === void 0) continue; + const provider = request?.provenance?.provider ?? node?.provenance?.provider; + const model = request?.provenance?.model ?? node?.provenance?.model; + const requestConfig = request?.requestConfig ?? node?.requestConfig; + numbered.push({ + seq: entry.seq, + turn, + step, + group: `Step ${step}`, + number: index + 1, + ...request?.status === void 0 ? {} : { status: request.status }, + ...request?.startedAt === void 0 ? {} : { startedAt: request.startedAt }, + ...request?.completedAt === void 0 ? {} : { completedAt: request.completedAt }, + ...request?.error === void 0 ? {} : { error: request.error }, + ...request?.resultSeq === void 0 ? {} : { resultSeq: request.resultSeq }, + ...request?.retry === void 0 ? {} : { retry: request.retry }, + ...request?.maxRetries === void 0 ? {} : { maxRetries: request.maxRetries }, + ...request?.retryDelayMs === void 0 ? {} : { retryDelayMs: request.retryDelayMs }, + ...provider === void 0 ? {} : { provider }, + ...model === void 0 ? {} : { model }, + ...requestConfig === void 0 ? {} : { requestConfig }, + ...usage === void 0 ? {} : { usage }, + ...cumulativeUsage === void 0 ? {} : { cumulativeUsage } + }); + continue; + } + const request = entry.request; + numbered.push({ + seq: request.startSeq, + turn: request.turn, + step: 0, + group: `Compaction ${request.startSeq}`, + number: index + 1, + purpose: "compaction", + status: request.status, + startedAt: request.startedAt, + completedAt: request.completedAt, + ...request.error === void 0 ? {} : { error: request.error }, + resultSeq: request.startSeq, + ...request.provenance?.provider === void 0 ? {} : { provider: request.provenance.provider }, + ...request.provenance?.model === void 0 ? {} : { model: request.provenance.model }, + ...request.requestConfig === void 0 ? {} : { requestConfig: request.requestConfig }, + ...usage === void 0 ? {} : { usage }, + ...cumulativeUsage === void 0 ? {} : { cumulativeUsage } + }); + } + return numbered; + }, [nodes, requests]); + const partialTurn = partial?.turn ?? null; + const partialStep = partial?.step ?? null; + const finalized = (0, react.useMemo)(() => { + const turns = deriveTrajectoryLayout({ + nodes, + eventLocations, + partial: partialTurn === null || partialStep === null ? null : { + turn: partialTurn, + step: partialStep, + blocks: [] + }, + runningCalls, + requests, + callSchemas + }); + return { + turns, + lastIndex: lastCellIndex(turns) + }; + }, [ + nodes, + eventLocations, + partialTurn, + partialStep, + runningCalls, + requests, + callSchemas + ]); + const timelinePartial = (0, react.useMemo)(() => partial === null ? null : { + turn: partial.turn, + step: partial.step, + blocks: partial.blocks.map((block) => timelineBlock(block)) + }, [ + partialStep, + partialTurn, + partialStructureSignature(partial) + ]); + const timelineTurns = (0, react.useMemo)(() => appendTrajectoryPartialLayout(finalized.turns, timelinePartial, finalized.lastIndex), [finalized, timelinePartial]); + const timelineMode = actualDuration ? actualTime ? "actual" : "duration" : actualTime ? "time" : "sequence"; + const partialSearchTurns = (0, react.useMemo)(() => appendTrajectoryPartialLayout([], partial, finalized.lastIndex), [finalized.lastIndex, partial]); + const searchLayouts = (0, react.useMemo)(() => [finalized.turns, partialSearchTurns], [finalized, partialSearchTurns]); + const latestSearchLayouts = (0, react.useRef)(searchLayouts); + latestSearchLayouts.current = searchLayouts; + (0, react.useEffect)(() => { + if (!searchIndexInitialized.current) { + searchIndexInitialized.current = true; + if (searchIndex.update(searchLayouts)) setSearchIndexRevision((revision) => revision + 1); + return; + } + if (searchIndexTimer.current !== null) return; + searchIndexTimer.current = setTimeout(() => { + searchIndexTimer.current = null; + if (searchIndex.update(latestSearchLayouts.current)) setSearchIndexRevision((revision) => revision + 1); + }, SEARCH_INDEX_THROTTLE_MS); + }, [searchIndex, searchLayouts]); + (0, react.useEffect)(() => () => { + if (searchIndexTimer.current !== null) clearTimeout(searchIndexTimer.current); + }, []); + const streamingCells = (0, react.useMemo)(() => partialSearchTurns.flatMap((turn) => turn.groups.flatMap((group) => group.cells)), [partialSearchTurns]); + const searchMatchRecordIds = (0, react.useMemo)(() => searchIndex.search(searchQuery), [ + searchIndex, + searchIndexRevision, + searchQuery + ]); + const searchMatchIndexes = (0, react.useMemo)(() => { + if (searchMatchRecordIds === null) return null; + const indexes = /* @__PURE__ */ new Set(); + for (const turns of searchLayouts) for (const turn of turns) for (const group of turn.groups) for (const cell of group.cells) if (searchMatchRecordIds.has(trajectoryRecordId(cell))) indexes.add(cell.index); + return indexes; + }, [searchLayouts, searchMatchRecordIds]); + const timelineRange = timelineSelection; + const timelineFocusIndexes = (0, react.useMemo)(() => timelineRange === null ? null : trajectoryTimelineFocusIndexes(timelineTurns, timelineRange, timelineMode), [ + timelineMode, + timelineRange, + timelineTurns + ]); + const handleRecordSelect = (0, react.useCallback)((index) => { + if (timelineFocusIndexes !== null && !timelineFocusIndexes.has(index)) setTimelineSelection(null); + }, [timelineFocusIndexes]); + const handleTimelineRangeChange = (0, react.useCallback)((range) => { + setTimelineSelection(range); + }, []); + const handleTimelineRecordSelect = (0, react.useCallback)((index) => { + setTimelineSelection(null); + setTimelineRecordSelection({ index }); + setSelectedTimelineIndex(index); + }, []); + const handleTimelineRecordFocus = (0, react.useCallback)((index) => { + setTimelineRecordFocus({ index }); + }, []); + const collapsibleTurnIds = (0, react.useMemo)(() => timelineTurns.filter((turn) => turn.turn !== null && turn.groups.reduce((count, group) => count + group.cells.filter((cell) => cell.requestOnly !== true && cell.kind !== "system").length, 0) > 1).flatMap((turn) => turn.turn === null ? [] : [turn.turn]), [timelineTurns]); + const allTurnsCollapsed = collapsibleTurnIds.length > 0 && collapsibleTurnIds.every((turn) => collapsedTurns.has(turn)); + const collapsibleAssistantIds = (0, react.useMemo)(() => { + const ids = []; + for (const turn of timelineTurns) { + const cells = turn.groups.flatMap((group) => group.cells); + for (let i = 0; i < cells.length; i++) { + const cell = cells[i]; + if (cell?.kind !== "message") continue; + const next = cells[i + 1]; + if (next?.kind === "tool" || next?.kind === "subtool") ids.push(trajectoryRecordId(cell)); + } + } + return ids; + }, [timelineTurns]); + const allAssistantsCollapsed = collapsibleAssistantIds.length > 0 && collapsibleAssistantIds.every((index) => collapsedAssistants.has(index)); + const toggleTurn = (turn) => { + setCollapsedTurns((current) => { + const collapsed = new Set(current); + if (collapsed.has(turn)) collapsed.delete(turn); + else collapsed.add(turn); + return collapsed; + }); + }; + const toggleAllTurns = () => { + setCollapsedTurns((current) => { + const collapsed = new Set(current); + if (allTurnsCollapsed) for (const turn of collapsibleTurnIds) collapsed.delete(turn); + else for (const turn of collapsibleTurnIds) collapsed.add(turn); + return collapsed; + }); + }; + const toggleAssistant = (id) => { + setCollapsedAssistants((current) => { + const collapsed = new Set(current); + if (collapsed.has(id)) collapsed.delete(id); + else collapsed.add(id); + return collapsed; + }); + }; + const toggleAllAssistants = () => { + setCollapsedAssistants((current) => { + const collapsed = new Set(current); + if (allAssistantsCollapsed) for (const index of collapsibleAssistantIds) collapsed.delete(index); + else for (const index of collapsibleAssistantIds) collapsed.add(index); + return collapsed; + }); + }; + const loadEarlierHistory = (0, react.useCallback)(() => { + return loadOlder(); + }, [loadOlder]); + return (0, react_jsx_runtime.jsxs)("div", { + className: views_module_css_default.root, + "data-conversation-composer-overlay": "", + children: [ + (0, react_jsx_runtime.jsx)(TrajectoryToolbar, { + actualDuration, + onActualDurationChange: (nextActualDuration) => { + setActualDuration(nextActualDuration); + setTimelineSelection(null); + }, + actualTime, + onActualTimeChange: (nextActualTime) => { + setActualTime(nextActualTime); + setTimelineSelection(null); + }, + allTurnsCollapsed, + onToggleAllTurns: toggleAllTurns, + allAssistantsCollapsed, + onToggleAllAssistants: toggleAllAssistants, + searchQuery, + onSearchQueryChange: setSearchQuery, + t + }), + (0, react_jsx_runtime.jsx)(TrajectoryTimeline, { + turns: timelineTurns, + mode: timelineMode, + range: timelineRange, + hasEarlierRecords: hasOlderHistory, + onLoadEarlier: loadEarlierHistory, + selectedIndex: selectedTimelineIndex, + searchMatchIndexes, + onRangeChange: handleTimelineRangeChange, + onRecordSelect: handleTimelineRecordSelect, + onRecordFocus: handleTimelineRecordFocus + }), + (0, react_jsx_runtime.jsx)("div", { + className: views_module_css_default.ledger, + children: (0, react_jsx_runtime.jsx)(TrajectoryTable, { + requestNumbers, + turns: timelineTurns, + streamingCells, + timelineFocusIndexes, + searchMatchIndexes, + onSelectedIndexChange: setSelectedTimelineIndex, + onRecordSelect: handleRecordSelect, + recordSelection: timelineRecordSelection, + recordFocus: timelineRecordFocus, + historyLoading, + olderHistoryLoading, + historyStartSeq: historyBaseSeq, + hasOlderRecords: hasOlderHistory, + onLoadOlder: loadEarlierHistory, + onClearSelection: () => { + setTimelineSelection(null); + }, + collapsedTurns, + onToggleTurn: toggleTurn, + collapsedAssistants, + onToggleAssistant: toggleAssistant, + inspectCallId: inspect?.callId ?? null, + onInspectApplied: onInspectDone + }) + }) + ] + }); + } + //#endregion + //#region lib/types/client/index.js + /** Required services: the conversation slot, registries, ordinary Session paging, and the locale service. */ + const inject = [ + "slots", + "conversationEvents", + "conversationViews", + "sessions", + "locale" + ]; + /** + * Client plugin body: register the trajectory view tab. The registration + * rides the slot service's effect wrapper, so plugin unload removes the tab. + * @param ctx - client root context. + */ + function apply(ctx) { + ctx.effect(() => ctx.locale.register(NS, { + zh, + en + }), "ui-trajectory: dictionaries"); + const t = ctx.locale.bind(NS); + const duration = createTrajectoryDurationStore(); + registerTrajectoryMessageDefinitions(ctx); + registerTrajectoryRequestHeaderDefinition(ctx); + registerTrajectoryAssistantDefinition(ctx); + registerTrajectoryToolDefinition(ctx); + registerTrajectoryCompactionDefinitions(ctx); + registerTrajectoryConversationView(ctx); + ctx.slots.inject("conversation.view", () => ctx.slots.register({ + name: "conversation.view", + id: "trajectory", + order: 10, + locale: NS, + label: () => t("view.trajectory"), + inject: (sessionId) => { + const session = ctx.sessions.binding(sessionId)?.session; + if (session === void 0) throw new Error(`ui-trajectory: session "${sessionId}" is unavailable`); + return { + hooks: { duration }, + loadOlder: async () => { + const before = session.getSnapshot().views.get("trajectory"); + await session.loadOlder(); + return session.getSnapshot().views.get("trajectory") !== before; + }, + setActualDuration: (value) => { + duration.set(value); + } + }; + } + }, TrajectoryView)); + } + //#endregion + exports.apply = apply; + exports.inject = inject; + return module.exports; + } +}); + +//# sourceMappingURL=client.js.map \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/Cache_Data/index b/EBWebView/EBWebView/Default/Cache/Cache_Data/index new file mode 100644 index 0000000..70c5636 Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/Cache_Data/index differ diff --git a/EBWebView/EBWebView/Default/Cache/No_Vary_Search/journal.baj b/EBWebView/EBWebView/Default/Cache/No_Vary_Search/journal.baj new file mode 100644 index 0000000..54fe66e --- /dev/null +++ b/EBWebView/EBWebView/Default/Cache/No_Vary_Search/journal.baj @@ -0,0 +1 @@ +$F~ \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Cache/No_Vary_Search/snapshot.baf b/EBWebView/EBWebView/Default/Cache/No_Vary_Search/snapshot.baf new file mode 100644 index 0000000..8912405 Binary files /dev/null and b/EBWebView/EBWebView/Default/Cache/No_Vary_Search/snapshot.baf differ diff --git a/EBWebView/EBWebView/Default/ClientCertificates/LOCK b/EBWebView/EBWebView/Default/ClientCertificates/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/ClientCertificates/LOG b/EBWebView/EBWebView/Default/ClientCertificates/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Code Cache/js/04c4ffb5cd145715_0 b/EBWebView/EBWebView/Default/Code Cache/js/04c4ffb5cd145715_0 new file mode 100644 index 0000000..ee42b18 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/04c4ffb5cd145715_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/0e6579abacb54870_0 b/EBWebView/EBWebView/Default/Code Cache/js/0e6579abacb54870_0 new file mode 100644 index 0000000..de1254a Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/0e6579abacb54870_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/1269f5ed7c738e8c_0 b/EBWebView/EBWebView/Default/Code Cache/js/1269f5ed7c738e8c_0 new file mode 100644 index 0000000..1e99a2f Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/1269f5ed7c738e8c_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/17d3f2839235f84b_0 b/EBWebView/EBWebView/Default/Code Cache/js/17d3f2839235f84b_0 new file mode 100644 index 0000000..a7b94a2 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/17d3f2839235f84b_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/1f3d0b94b1249604_0 b/EBWebView/EBWebView/Default/Code Cache/js/1f3d0b94b1249604_0 new file mode 100644 index 0000000..7cb2093 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/1f3d0b94b1249604_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/24c78627cd64a046_0 b/EBWebView/EBWebView/Default/Code Cache/js/24c78627cd64a046_0 new file mode 100644 index 0000000..27ebc14 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/24c78627cd64a046_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/2528b547fa1d272d_0 b/EBWebView/EBWebView/Default/Code Cache/js/2528b547fa1d272d_0 new file mode 100644 index 0000000..9a6ee2a Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/2528b547fa1d272d_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/26096c8e895cba30_0 b/EBWebView/EBWebView/Default/Code Cache/js/26096c8e895cba30_0 new file mode 100644 index 0000000..2469fca Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/26096c8e895cba30_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/2949b5ae6b0a5598_0 b/EBWebView/EBWebView/Default/Code Cache/js/2949b5ae6b0a5598_0 new file mode 100644 index 0000000..d9406f6 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/2949b5ae6b0a5598_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/32ba6e2ede19dd09_0 b/EBWebView/EBWebView/Default/Code Cache/js/32ba6e2ede19dd09_0 new file mode 100644 index 0000000..42d67e1 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/32ba6e2ede19dd09_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/346289a1f78b5458_0 b/EBWebView/EBWebView/Default/Code Cache/js/346289a1f78b5458_0 new file mode 100644 index 0000000..076d3d5 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/346289a1f78b5458_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/391c53c7abc05989_0 b/EBWebView/EBWebView/Default/Code Cache/js/391c53c7abc05989_0 new file mode 100644 index 0000000..a7c2ba1 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/391c53c7abc05989_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/40b973145ab29ba5_0 b/EBWebView/EBWebView/Default/Code Cache/js/40b973145ab29ba5_0 new file mode 100644 index 0000000..147f457 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/40b973145ab29ba5_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/41887f9dfcdadac1_0 b/EBWebView/EBWebView/Default/Code Cache/js/41887f9dfcdadac1_0 new file mode 100644 index 0000000..9b1e7ff Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/41887f9dfcdadac1_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/4a8ea54f9dc68b2c_0 b/EBWebView/EBWebView/Default/Code Cache/js/4a8ea54f9dc68b2c_0 new file mode 100644 index 0000000..e76d32e Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/4a8ea54f9dc68b2c_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/69c58796c99c3175_0 b/EBWebView/EBWebView/Default/Code Cache/js/69c58796c99c3175_0 new file mode 100644 index 0000000..cffd6d4 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/69c58796c99c3175_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/7a1deb03ee2a625a_0 b/EBWebView/EBWebView/Default/Code Cache/js/7a1deb03ee2a625a_0 new file mode 100644 index 0000000..b5588aa Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/7a1deb03ee2a625a_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/7bb293b818c578a0_0 b/EBWebView/EBWebView/Default/Code Cache/js/7bb293b818c578a0_0 new file mode 100644 index 0000000..1ef7694 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/7bb293b818c578a0_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/8e7af5e5f08dff14_0 b/EBWebView/EBWebView/Default/Code Cache/js/8e7af5e5f08dff14_0 new file mode 100644 index 0000000..c6b6b7f Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/8e7af5e5f08dff14_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/9a2d52492fe00199_0 b/EBWebView/EBWebView/Default/Code Cache/js/9a2d52492fe00199_0 new file mode 100644 index 0000000..686c19c Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/9a2d52492fe00199_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/b2d91fa9058658dc_0 b/EBWebView/EBWebView/Default/Code Cache/js/b2d91fa9058658dc_0 new file mode 100644 index 0000000..98177d8 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/b2d91fa9058658dc_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/c82882172dbca39e_0 b/EBWebView/EBWebView/Default/Code Cache/js/c82882172dbca39e_0 new file mode 100644 index 0000000..8302f18 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/c82882172dbca39e_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/cc8d8368ddcf53b9_0 b/EBWebView/EBWebView/Default/Code Cache/js/cc8d8368ddcf53b9_0 new file mode 100644 index 0000000..29a90db Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/cc8d8368ddcf53b9_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/cd73360aa8de74d0_0 b/EBWebView/EBWebView/Default/Code Cache/js/cd73360aa8de74d0_0 new file mode 100644 index 0000000..d8c460f Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/cd73360aa8de74d0_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/cd9124c0834dddaa_0 b/EBWebView/EBWebView/Default/Code Cache/js/cd9124c0834dddaa_0 new file mode 100644 index 0000000..15c5969 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/cd9124c0834dddaa_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/d331a29da83ec9a5_0 b/EBWebView/EBWebView/Default/Code Cache/js/d331a29da83ec9a5_0 new file mode 100644 index 0000000..5b802de Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/d331a29da83ec9a5_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/d4585cb1a85e4c97_0 b/EBWebView/EBWebView/Default/Code Cache/js/d4585cb1a85e4c97_0 new file mode 100644 index 0000000..5a558f9 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/d4585cb1a85e4c97_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/dfb21390a70ca3c5_0 b/EBWebView/EBWebView/Default/Code Cache/js/dfb21390a70ca3c5_0 new file mode 100644 index 0000000..e45ddba Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/dfb21390a70ca3c5_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/e51a602b500b9204_0 b/EBWebView/EBWebView/Default/Code Cache/js/e51a602b500b9204_0 new file mode 100644 index 0000000..2365052 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/e51a602b500b9204_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/e5618a5012cb1f4e_0 b/EBWebView/EBWebView/Default/Code Cache/js/e5618a5012cb1f4e_0 new file mode 100644 index 0000000..ef5b8ae Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/e5618a5012cb1f4e_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/e62f55828bf8cbe1_0 b/EBWebView/EBWebView/Default/Code Cache/js/e62f55828bf8cbe1_0 new file mode 100644 index 0000000..57bc361 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/e62f55828bf8cbe1_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/e8bcb6078ae2bf81_0 b/EBWebView/EBWebView/Default/Code Cache/js/e8bcb6078ae2bf81_0 new file mode 100644 index 0000000..3c01d06 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/e8bcb6078ae2bf81_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/ea1adb5c340f6585_0 b/EBWebView/EBWebView/Default/Code Cache/js/ea1adb5c340f6585_0 new file mode 100644 index 0000000..78dc57d Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/ea1adb5c340f6585_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/ed36021f02b91fb5_0 b/EBWebView/EBWebView/Default/Code Cache/js/ed36021f02b91fb5_0 new file mode 100644 index 0000000..e89908b Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/ed36021f02b91fb5_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/f44724142f901080_0 b/EBWebView/EBWebView/Default/Code Cache/js/f44724142f901080_0 new file mode 100644 index 0000000..4cbf7c0 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/f44724142f901080_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/f801e19e62185a7b_0 b/EBWebView/EBWebView/Default/Code Cache/js/f801e19e62185a7b_0 new file mode 100644 index 0000000..7fbbf82 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/f801e19e62185a7b_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/f93ae83493c3b30c_0 b/EBWebView/EBWebView/Default/Code Cache/js/f93ae83493c3b30c_0 new file mode 100644 index 0000000..58fac66 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/f93ae83493c3b30c_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/fae1bbc6bf6ddda9_0 b/EBWebView/EBWebView/Default/Code Cache/js/fae1bbc6bf6ddda9_0 new file mode 100644 index 0000000..4551568 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/fae1bbc6bf6ddda9_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/ffb9cbccaf5b654b_0 b/EBWebView/EBWebView/Default/Code Cache/js/ffb9cbccaf5b654b_0 new file mode 100644 index 0000000..1d17886 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/ffb9cbccaf5b654b_0 differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/index b/EBWebView/EBWebView/Default/Code Cache/js/index new file mode 100644 index 0000000..79bd403 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/index differ diff --git a/EBWebView/EBWebView/Default/Code Cache/js/index-dir/the-real-index b/EBWebView/EBWebView/Default/Code Cache/js/index-dir/the-real-index new file mode 100644 index 0000000..a0bc3f4 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/js/index-dir/the-real-index differ diff --git a/EBWebView/EBWebView/Default/Code Cache/wasm/index b/EBWebView/EBWebView/Default/Code Cache/wasm/index new file mode 100644 index 0000000..79bd403 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/wasm/index differ diff --git a/EBWebView/EBWebView/Default/Code Cache/wasm/index-dir/the-real-index b/EBWebView/EBWebView/Default/Code Cache/wasm/index-dir/the-real-index new file mode 100644 index 0000000..a130105 Binary files /dev/null and b/EBWebView/EBWebView/Default/Code Cache/wasm/index-dir/the-real-index differ diff --git a/EBWebView/EBWebView/Default/DIPS b/EBWebView/EBWebView/Default/DIPS new file mode 100644 index 0000000..b77bb92 Binary files /dev/null and b/EBWebView/EBWebView/Default/DIPS differ diff --git a/EBWebView/EBWebView/Default/DawnGraphiteCache/data_0 b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_0 new file mode 100644 index 0000000..d76fb77 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_0 differ diff --git a/EBWebView/EBWebView/Default/DawnGraphiteCache/data_1 b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_1 new file mode 100644 index 0000000..949fd95 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_1 differ diff --git a/EBWebView/EBWebView/Default/DawnGraphiteCache/data_2 b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_2 new file mode 100644 index 0000000..c7e2eb9 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_2 differ diff --git a/EBWebView/EBWebView/Default/DawnGraphiteCache/data_3 b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_3 new file mode 100644 index 0000000..5eec973 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnGraphiteCache/data_3 differ diff --git a/EBWebView/EBWebView/Default/DawnGraphiteCache/index b/EBWebView/EBWebView/Default/DawnGraphiteCache/index new file mode 100644 index 0000000..03e688e Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnGraphiteCache/index differ diff --git a/EBWebView/EBWebView/Default/DawnWebGPUCache/data_0 b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_0 new file mode 100644 index 0000000..d76fb77 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_0 differ diff --git a/EBWebView/EBWebView/Default/DawnWebGPUCache/data_1 b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_1 new file mode 100644 index 0000000..fedd74e Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_1 differ diff --git a/EBWebView/EBWebView/Default/DawnWebGPUCache/data_2 b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_2 new file mode 100644 index 0000000..c7e2eb9 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_2 differ diff --git a/EBWebView/EBWebView/Default/DawnWebGPUCache/data_3 b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_3 new file mode 100644 index 0000000..5eec973 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnWebGPUCache/data_3 differ diff --git a/EBWebView/EBWebView/Default/DawnWebGPUCache/index b/EBWebView/EBWebView/Default/DawnWebGPUCache/index new file mode 100644 index 0000000..32688b1 Binary files /dev/null and b/EBWebView/EBWebView/Default/DawnWebGPUCache/index differ diff --git a/EBWebView/EBWebView/Default/EdgeSessions/SessionRestoreLog b/EBWebView/EBWebView/Default/EdgeSessions/SessionRestoreLog new file mode 100644 index 0000000..fa21dfe --- /dev/null +++ b/EBWebView/EBWebView/Default/EdgeSessions/SessionRestoreLog @@ -0,0 +1,2 @@ +{"logTime": "0814/073107", "session": "START"} +{"logTime": "0814/073544", "session": "END"} diff --git a/EBWebView/EBWebView/Default/Extension Rules/000003.log b/EBWebView/EBWebView/Default/Extension Rules/000003.log new file mode 100644 index 0000000..4acb4c8 Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension Rules/000003.log differ diff --git a/EBWebView/EBWebView/Default/Extension Rules/CURRENT b/EBWebView/EBWebView/Default/Extension Rules/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension Rules/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension Rules/LOCK b/EBWebView/EBWebView/Default/Extension Rules/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Extension Rules/LOG b/EBWebView/EBWebView/Default/Extension Rules/LOG new file mode 100644 index 0000000..d3b2774 --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension Rules/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.366 8180 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension Rules since it was missing. +2026/08/14-15:31:07.385 8180 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension Rules/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension Rules/MANIFEST-000001 b/EBWebView/EBWebView/Default/Extension Rules/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension Rules/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Extension Scripts/000003.log b/EBWebView/EBWebView/Default/Extension Scripts/000003.log new file mode 100644 index 0000000..4acb4c8 Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension Scripts/000003.log differ diff --git a/EBWebView/EBWebView/Default/Extension Scripts/CURRENT b/EBWebView/EBWebView/Default/Extension Scripts/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension Scripts/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension Scripts/LOCK b/EBWebView/EBWebView/Default/Extension Scripts/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Extension Scripts/LOG b/EBWebView/EBWebView/Default/Extension Scripts/LOG new file mode 100644 index 0000000..bddfff6 --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension Scripts/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.391 8180 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension Scripts since it was missing. +2026/08/14-15:31:07.402 8180 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension Scripts/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension Scripts/MANIFEST-000001 b/EBWebView/EBWebView/Default/Extension Scripts/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension Scripts/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Extension State/000003.log b/EBWebView/EBWebView/Default/Extension State/000003.log new file mode 100644 index 0000000..b248f53 Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension State/000003.log differ diff --git a/EBWebView/EBWebView/Default/Extension State/CURRENT b/EBWebView/EBWebView/Default/Extension State/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension State/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension State/LOCK b/EBWebView/EBWebView/Default/Extension State/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Extension State/LOG b/EBWebView/EBWebView/Default/Extension State/LOG new file mode 100644 index 0000000..b21ac5f --- /dev/null +++ b/EBWebView/EBWebView/Default/Extension State/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.486 5fdc Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension State since it was missing. +2026/08/14-15:31:07.498 5fdc Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Extension State/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Extension State/MANIFEST-000001 b/EBWebView/EBWebView/Default/Extension State/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Extension State/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/ExtensionActivityComp b/EBWebView/EBWebView/Default/ExtensionActivityComp new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/ExtensionActivityEdge b/EBWebView/EBWebView/Default/ExtensionActivityEdge new file mode 100644 index 0000000..1b4bb2a Binary files /dev/null and b/EBWebView/EBWebView/Default/ExtensionActivityEdge differ diff --git a/EBWebView/EBWebView/Default/ExtensionActivityEdge-journal b/EBWebView/EBWebView/Default/ExtensionActivityEdge-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Favicons b/EBWebView/EBWebView/Default/Favicons new file mode 100644 index 0000000..060d480 Binary files /dev/null and b/EBWebView/EBWebView/Default/Favicons differ diff --git a/EBWebView/EBWebView/Default/Favicons-journal b/EBWebView/EBWebView/Default/Favicons-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Feature Engagement Tracker/AvailabilityDB/LOCK b/EBWebView/EBWebView/Default/Feature Engagement Tracker/AvailabilityDB/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Feature Engagement Tracker/AvailabilityDB/LOG b/EBWebView/EBWebView/Default/Feature Engagement Tracker/AvailabilityDB/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Feature Engagement Tracker/EventDB/LOCK b/EBWebView/EBWebView/Default/Feature Engagement Tracker/EventDB/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Feature Engagement Tracker/EventDB/LOG b/EBWebView/EBWebView/Default/Feature Engagement Tracker/EventDB/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/GPUCache/data_0 b/EBWebView/EBWebView/Default/GPUCache/data_0 new file mode 100644 index 0000000..04abbbd Binary files /dev/null and b/EBWebView/EBWebView/Default/GPUCache/data_0 differ diff --git a/EBWebView/EBWebView/Default/GPUCache/data_1 b/EBWebView/EBWebView/Default/GPUCache/data_1 new file mode 100644 index 0000000..66a537a Binary files /dev/null and b/EBWebView/EBWebView/Default/GPUCache/data_1 differ diff --git a/EBWebView/EBWebView/Default/GPUCache/data_2 b/EBWebView/EBWebView/Default/GPUCache/data_2 new file mode 100644 index 0000000..cf95895 Binary files /dev/null and b/EBWebView/EBWebView/Default/GPUCache/data_2 differ diff --git a/EBWebView/EBWebView/Default/GPUCache/data_3 b/EBWebView/EBWebView/Default/GPUCache/data_3 new file mode 100644 index 0000000..5eec973 Binary files /dev/null and b/EBWebView/EBWebView/Default/GPUCache/data_3 differ diff --git a/EBWebView/EBWebView/Default/GPUCache/index b/EBWebView/EBWebView/Default/GPUCache/index new file mode 100644 index 0000000..5bc0f2b Binary files /dev/null and b/EBWebView/EBWebView/Default/GPUCache/index differ diff --git a/EBWebView/EBWebView/Default/History b/EBWebView/EBWebView/Default/History new file mode 100644 index 0000000..4ee1a05 Binary files /dev/null and b/EBWebView/EBWebView/Default/History differ diff --git a/EBWebView/EBWebView/Default/History-journal b/EBWebView/EBWebView/Default/History-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/LOCK b/EBWebView/EBWebView/Default/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/LOG b/EBWebView/EBWebView/Default/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Local Storage/leveldb/000003.log b/EBWebView/EBWebView/Default/Local Storage/leveldb/000003.log new file mode 100644 index 0000000..ad7b67d Binary files /dev/null and b/EBWebView/EBWebView/Default/Local Storage/leveldb/000003.log differ diff --git a/EBWebView/EBWebView/Default/Local Storage/leveldb/CURRENT b/EBWebView/EBWebView/Default/Local Storage/leveldb/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Local Storage/leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Local Storage/leveldb/LOCK b/EBWebView/EBWebView/Default/Local Storage/leveldb/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Local Storage/leveldb/LOG b/EBWebView/EBWebView/Default/Local Storage/leveldb/LOG new file mode 100644 index 0000000..c7fcfb8 --- /dev/null +++ b/EBWebView/EBWebView/Default/Local Storage/leveldb/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.460 6e34 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Local Storage\leveldb since it was missing. +2026/08/14-15:31:07.489 6e34 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 b/EBWebView/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Login Data b/EBWebView/EBWebView/Default/Login Data new file mode 100644 index 0000000..b413cfc Binary files /dev/null and b/EBWebView/EBWebView/Default/Login Data differ diff --git a/EBWebView/EBWebView/Default/Login Data For Account b/EBWebView/EBWebView/Default/Login Data For Account new file mode 100644 index 0000000..b413cfc Binary files /dev/null and b/EBWebView/EBWebView/Default/Login Data For Account differ diff --git a/EBWebView/EBWebView/Default/Login Data For Account-journal b/EBWebView/EBWebView/Default/Login Data For Account-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Login Data-journal b/EBWebView/EBWebView/Default/Login Data-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network Action Predictor b/EBWebView/EBWebView/Default/Network Action Predictor new file mode 100644 index 0000000..6c044d9 Binary files /dev/null and b/EBWebView/EBWebView/Default/Network Action Predictor differ diff --git a/EBWebView/EBWebView/Default/Network Action Predictor-journal b/EBWebView/EBWebView/Default/Network Action Predictor-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network/Cookies b/EBWebView/EBWebView/Default/Network/Cookies new file mode 100644 index 0000000..b2630a4 Binary files /dev/null and b/EBWebView/EBWebView/Default/Network/Cookies differ diff --git a/EBWebView/EBWebView/Default/Network/Cookies-journal b/EBWebView/EBWebView/Default/Network/Cookies-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network/Device Bound Sessions b/EBWebView/EBWebView/Default/Network/Device Bound Sessions new file mode 100644 index 0000000..358c4e1 Binary files /dev/null and b/EBWebView/EBWebView/Default/Network/Device Bound Sessions differ diff --git a/EBWebView/EBWebView/Default/Network/Device Bound Sessions-journal b/EBWebView/EBWebView/Default/Network/Device Bound Sessions-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network/Network Persistent State b/EBWebView/EBWebView/Default/Network/Network Persistent State new file mode 100644 index 0000000..a9b9662 --- /dev/null +++ b/EBWebView/EBWebView/Default/Network/Network Persistent State @@ -0,0 +1 @@ +{"net":{"http_server_properties":{"servers":[],"version":5},"network_qualities":{"CAESABiAgICA+P////8B":"3G"}}} \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Network/NetworkDataMigrated b/EBWebView/EBWebView/Default/Network/NetworkDataMigrated new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network/Reporting and NEL b/EBWebView/EBWebView/Default/Network/Reporting and NEL new file mode 100644 index 0000000..7778697 Binary files /dev/null and b/EBWebView/EBWebView/Default/Network/Reporting and NEL differ diff --git a/EBWebView/EBWebView/Default/Network/Reporting and NEL-journal b/EBWebView/EBWebView/Default/Network/Reporting and NEL-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Network/SCT Auditing Pending Reports b/EBWebView/EBWebView/Default/Network/SCT Auditing Pending Reports new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/EBWebView/EBWebView/Default/Network/SCT Auditing Pending Reports @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Network/Sdch Dictionaries b/EBWebView/EBWebView/Default/Network/Sdch Dictionaries new file mode 100644 index 0000000..8bca100 --- /dev/null +++ b/EBWebView/EBWebView/Default/Network/Sdch Dictionaries @@ -0,0 +1 @@ +{"SDCH":{"dictionaries":{},"version":2}} \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Network/Trust Tokens b/EBWebView/EBWebView/Default/Network/Trust Tokens new file mode 100644 index 0000000..d066c48 Binary files /dev/null and b/EBWebView/EBWebView/Default/Network/Trust Tokens differ diff --git a/EBWebView/EBWebView/Default/Network/Trust Tokens-journal b/EBWebView/EBWebView/Default/Network/Trust Tokens-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/PersistentOriginTrials/LOCK b/EBWebView/EBWebView/Default/PersistentOriginTrials/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/PersistentOriginTrials/LOG b/EBWebView/EBWebView/Default/PersistentOriginTrials/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Preferences b/EBWebView/EBWebView/Default/Preferences new file mode 100644 index 0000000..7383109 --- /dev/null +++ b/EBWebView/EBWebView/Default/Preferences @@ -0,0 +1 @@ +{"aadc_info":{"age_group":0},"accessibility":{"captions":{"headless_caption_enabled":false}},"account_tracker_service_last_update":"13431166267480024","autocomplete":{"retention_policy_last_version":151},"autofill":{"autofill_ai":{"opt_in_status":{}},"edge_autofill_advanced_ml_enabled":false,"edge_autofill_purge_low_quality_profiles_by_timeline":false,"last_version_deduped":151},"bookmark":{"storage_computation_last_update":"13431166267366166"},"browser":{"available_dark_theme_options":"All","recent_theme_color_list":[4293914607.0,4293914607.0,4293914607.0,4293914607.0,4293914607.0],"show_downloads_hub_pinned":false,"show_toolbar_edge_generic_sidebar_button":false,"user_level_features_context":{}},"commerce_daily_metrics_last_update_time":"13431166267366923","countryid_at_install":17230,"credentials_enable_service":false,"edge":{"bookmarks":{"last_dup_info_record_time":"13431166277374023"},"msa_sso_info":{"allow_for_non_msa_profile":true},"profile_sso_info":{"is_msa_first_profile":true,"msa_sso_algo_state":1},"services":{"signin_scoped_device_id":"478aadf5-858b-4544-aa75-c105d7190d7f"}},"edge_rewards":{"cache_data":"CAA=","hva_webui_action_status_dict":{},"refresh_status_muted_until":"13431771067325041"},"edge_ux_config":{"assignmentcontext":"","dataversion":"0","experimentvariables":{},"flights":{}},"edge_vpn":{"available":true},"edge_wallet":{"passwords":{"password_lost_report_date":"13431166297329921"}},"enterprise_profile_guid":"43135fe7-d30c-43ff-8bb4-d9fbbc4f4d9a","extension":{"installed_extension_count":2},"extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"last_chrome_version":"151.0.4129.78","pdf_upsell_triggered":false,"pinned_extension_migration":true,"pinned_extensions":[]},"fsd":{"retention_policy_last_version":151},"gaia_cookie":{"periodic_report_time_2":"13431166267324597"},"in_product_help":{"recent_session_enabled_time":"13431166267419298","recent_session_start_times":["13431166267419298"],"session_last_active_time":"13431166446504467","session_number":2,"session_start_time":"13431166267419298"},"intl":{"selected_languages":"zh-CN,en,en-GB,en-US"},"language_dwell_time_average":{"zh-CN":21.0},"language_usage_count":{"zh-CN":1},"management":{"profile":{"last_log_time":"13431166267323919"}},"media":{"engagement":{"schema_version":5}},"muid":{"last_sync":"13431166267366084","values_seen":[]},"optimization_guide":{"hintsfetcher":{"hosts_successfully_fetched":{}},"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"AUTOFILL_ACTOR_IFRAME_ORIGIN_ALLOWLIST":true,"GLIC_ACTION_PAGE_BLOCK":true,"LOADING_PREDICTOR":true,"MERCHANT_TRUST_SIGNALS_V2":true,"PRICE_TRACKING":true,"SAVED_TAB_GROUP":true}},"password_manager":{"account_store_backup_password_cleaning_last_timestamp":"13431166327340159","account_store_migrated_to_os_crypt_async":true,"profile_store_backup_password_cleaning_last_timestamp":"13431166327348205","profile_store_migrated_to_os_crypt_async":true},"personalization_data_consent":{"personalization_in_context_consent_can_prompt":true,"personalization_in_context_count":0},"profile":{"avatar_index":20,"background_password_check":{"check_fri_weight":9,"check_interval":"864000000000","check_mon_weight":4,"check_sat_weight":4,"check_sun_weight":4,"check_thu_weight":9,"check_tue_weight":9,"check_wed_weight":9,"next_check_time":"13431569245717821"},"content_settings":{"exceptions":{"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"anti_abuse":{},"app_banner":{},"ar":{},"are_suspicious_notifications_allowlisted_by_user":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"clear_browsing_data_cookies_exceptions":{},"client_hints":{},"clipboard":{},"controlled_frame":{},"cookie_controls_metadata":{"http://127.0.0.1,*":{"last_modified":"13431166267631157","setting":{}}},"cookies":{},"direct_sockets":{},"direct_sockets_private_network_access":{},"display_media_system_audio":{},"disruptive_notification_permissions":{},"durable_storage":{},"edge_ad_targeting":{},"edge_ad_targeting_data":{},"edge_all_file_read_access":{},"edge_browser_action":{},"edge_notification_referrer_chain_blocked":{},"edge_sdsm":{},"edge_split_screen":{},"edge_tech_scam_detection":{},"edge_u2f_api_request":{},"edge_user_agent_token":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"geolocation_with_options":{},"hand_tracking":{},"has_migrated_local_network_access":true,"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"initialized_translations":{},"inline_cue_menu":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"legacy_cookie_scope":{},"local_fonts":{},"local_network":{},"local_network_access":{},"loopback_network":{},"media_engagement":{"http://127.0.0.1:3080,*":{"expiration":"13438942543912155","last_modified":"13431166543912172","lifetime":"7776000000000","setting":{"hasHighScore":false,"lastMediaPlaybackTime":0.0,"mediaPlaybacks":0,"visits":1}}},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"ondevice_languages_downloaded":{},"password_protection":{},"payment_handler":{},"permission_actions_history":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"secure_network":{},"secure_network_sites":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"http://127.0.0.1:3080,*":{"last_modified":"13431166457053065","setting":{"lastEngagementTime":1.3431166457053028e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":4.2,"rawScore":4.2}}},"sleeping_tabs":{},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"sub_apps_without_prompts":{},"subresource_filter":{},"subresource_filter_data":{},"suspicious_notification_ids":{},"suspicious_notification_show_original":{},"top_level_storage_access":{},"trackers":{},"trackers_data":{},"tracking_org_exceptions":{},"tracking_org_relationships":{},"typosquatting":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"web_app_installation":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"151.0.4129.78","creation_time":"13431166267290783","default_content_setting_values":{"has_migrated_local_network_access":true},"edge_password_is_using_new_login_db_path":false,"edge_password_login_db_path_flip_flop_count":0,"edge_profile_id":"99c2fa01-8d58-4385-8b0a-28862621969e","edge_user_with_non_zero_passwords":false,"exit_type":"Normal","has_seen_signin_fre":false,"is_relative_to_aad":false,"last_engagement_time":"13431166457053028","last_time_obsolete_http_credentials_removed":1786692727.341987,"last_time_password_store_metrics_reported":1786692697.329054,"managed_user_id":"","name":"用户é…�ç½® 1","network_pbs":{},"observed_session_time":{"feedback_rating_in_product_help_observed_session_time_key_151.0.4129.78":22.0},"password_hash_data_list":[],"signin_fre_seen_time":"13431166267314669","were_old_google_logins_removed":true},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"reset_prepopulated_engines":false,"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"saved_tab_groups":{"did_enable_shared_tab_groups_in_last_session":false,"specifics_to_data_migration":true},"sessions":{"event_log":[{"crashed":false,"time":"13431166267333268","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13431166543946947","type":2,"window_count":0}],"session_data_status":3},"signin":{"accounts_metadata_dict":{},"allowed":true},"spellcheck":{"dictionaries":["zh-CN"]},"syncing_theme_prefs_migrated_to_non_syncing":true,"total_passwords_available_for_account":0,"total_passwords_available_for_profile":0,"typosquatting":{"allowlist_migration_done":true},"user_experience_metrics":{"personalization_data_consent_enabled_last_known_value":false},"webrtc":{"udp_port_range":"0-0"}} \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/README b/EBWebView/EBWebView/Default/README new file mode 100644 index 0000000..4a34402 --- /dev/null +++ b/EBWebView/EBWebView/Default/README @@ -0,0 +1 @@ +Microsoft Edge settings and storage represent user-selected preferences and information and MUST not be extracted, overwritten or modified except through Microsoft Edge defined APIs. \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/Secure Preferences b/EBWebView/EBWebView/Default/Secure Preferences new file mode 100644 index 0000000..57ec88e --- /dev/null +++ b/EBWebView/EBWebView/Default/Secure Preferences @@ -0,0 +1 @@ +{"extensions":{"settings":{"dgiklkfkllikcanfonkcabmbdfmgleag":{"account_extension_type":0,"active_permissions":{"api":[],"explicit_host":[],"manifest_permissions":[],"scriptable_host":[]},"commands":{},"content_settings":[],"creation_flags":1,"disable_reasons":[],"events":[],"first_install_time":"13431166267352048","from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"last_loaded_browser_version":"151.0.4129.78","last_update_time":"13431166267352048","location":5,"manifest":{"content_capabilities":{"include_globs":["https://*excel.officeapps.live.com/*","https://*onenote.officeapps.live.com/*","https://*powerpoint.officeapps.live.com/*","https://*word-edit.officeapps.live.com/*","https://*excel.officeapps.live.com.mcas.ms/*","https://*onenote.officeapps.live.com.mcas.ms/*","https://*word-edit.officeapps.live.com.mcas.ms/*","https://*excel.partner.officewebapps.cn/*","https://*onenote.partner.officewebapps.cn/*","https://*powerpoint.partner.officewebapps.cn/*","https://*word-edit.partner.officewebapps.cn/*","https://*excel.gov.online.office365.us/*","https://*onenote.gov.online.office365.us/*","https://*powerpoint.gov.online.office365.us/*","https://*word-edit.gov.online.office365.us/*","https://*excel.dod.online.office365.us/*","https://*onenote.dod.online.office365.us/*","https://*powerpoint.dod.online.office365.us/*","https://*word-edit.dod.online.office365.us/*","https://*visio.partner.officewebapps.cn/*","https://*visio.gov.online.office365.us/*","https://*visio.dod.online.office365.us/*"],"matches":["https://*.officeapps.live.com/*","https://*.officeapps.live.com.mcas.ms/*","https://*.partner.officewebapps.cn/*","https://*.gov.online.office365.us/*","https://*.dod.online.office365.us/*","https://*.app.whiteboard.microsoft.com/*","https://*.whiteboard.office.com/*","https://*.app.int.whiteboard.microsoft.com/*","https://*.whiteboard.office365.us/*","https://*.dev.whiteboard.microsoft.com/*"],"permissions":["clipboardRead","clipboardWrite"]},"default_locale":"en","description":"This extension grants Microsoft web sites permission to read and write from the clipboard.","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCz4t/X7GeuP6GBpjmxndrjtzF//4CWeHlC68rkoV7hP3h5Ka6eX7ZMNlYJkSjmB5iRmPHO5kR1y7rGY8JXnRPDQh/CQNLVA7OsKeV6w+UO+vx8KGI+TrTAhzH8YGcMIsxsUjxtC4cBmprja+xDr0zVp2EMgqHu+GBKgwSRHTkDuwIDAQAB","manifest_version":2,"minimum_chrome_version":"77","name":"Microsoft Clipboard Extension","version":"1.0"},"path":"C:\\Program Files (x86)\\Microsoft\\EdgeWebView\\Application\\151.0.4129.78\\resources\\edge_clipboard","preferences":{},"regular_only_preferences":{},"was_installed_by_default":false,"was_installed_by_oem":false},"mhjfbmdgcfjbbpaeojofohoefgiehjai":{"account_extension_type":0,"active_permissions":{"api":["contentSettings","fileSystem","fileSystem.write","metricsPrivate","tabs","resourcesPrivate","pdfViewerPrivate","fileSystem.readFullPath","errorReporting","edgeLearningToolsPrivate","fileSystem.getCurrentEntry","edgePdfPrivate","edgeCertVerifierPrivate","edgeFeedbackPrivate"],"explicit_host":["edge://resources/*","edge://webui-test/*"],"manifest_permissions":[],"scriptable_host":[]},"commands":{},"content_settings":[],"creation_flags":1,"disable_reasons":[],"events":[],"first_install_time":"13431166267350790","from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"last_loaded_browser_version":"151.0.4129.78","last_update_time":"13431166267350790","location":5,"manifest":{"content_security_policy":"script-src 'self' 'wasm-eval' blob: filesystem: chrome://resources chrome://webui-test; object-src * blob: externalfile: file: filesystem: data:; trusted-types edge-internal fast-html pdf-url edge-pdf-static-policy edge_common;","description":"","incognito":"split","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN6hM0rsDYGbzQPQfOygqlRtQgKUXMfnSjhIBL7LnReAVBEd7ZmKtyN2qmSasMl4HZpMhVe2rPWVVwBDl6iyNE/Kok6E6v6V3vCLGsOpQAuuNVye/3QxzIldzG/jQAdWZiyXReRVapOhZtLjGfywCvlWq7Sl/e3sbc0vWybSDI2QIDAQAB","manifest_version":2,"mime_types":["application/pdf"],"mime_types_handler":"edge_pdf/index.html","name":"Microsoft Edge PDF Viewer","offline_enabled":true,"permissions":["errorReporting","chrome://resources/","chrome://webui-test/","contentSettings","edgeFeedbackPrivate","metricsPrivate","edgeCertVerifierPrivate","edgeLearningToolsPrivate","edgePdfPrivate","pdfViewerPrivate","resourcesPrivate","tabs",{"fileSystem":["write","readFullPath","getCurrentEntry"]}],"version":"1","web_accessible_resources":["pdf_embedder.css"]},"path":"C:\\Program Files (x86)\\Microsoft\\EdgeWebView\\Application\\151.0.4129.78\\resources\\edge_pdf","preferences":{},"regular_only_preferences":{},"was_installed_by_default":false,"was_installed_by_oem":false}}},"protection":{"macs":{"browser":{"show_home_button":"5A18813EC95C07014320AAFC51306A4435C475DB6A93F721BEA57F7146F682AC","show_home_button_encrypted_hash":"djEwExsVlI6Dep62xv0g0GnzhpkjkSF6VA58qgIudgrn5AMbXvCo1URUkTUBjpumwMwWaNYtKHlTntskzt1m"},"default_search_provider_data":{"template_url_data":"6B60E44369CF23C543AAD2DD06C90B62C55FC7DFAFA4A9E6AA4944CB109F6438","template_url_data_encrypted_hash":"djEwM3v9PUEKQzrmyPJUUghEu9hu4u5ehFmBYzyFeI2SP/yaxZSAQa0FUuerHIry8tyvSwIz70r2rah/Vayj"},"edge":{"services":{"account_id":"005CB5B795A110C0484EBD31D3D0A6B2BE4E597FFCB045767577F35B8F8736D1","account_id_encrypted_hash":"djEwY9fJv7O03Q7cwMY+//fQc1Yd7wnS/HNYizYva46gFwOopJB5ozUBVSigD8GDR2csReHQU2g+lurEAN4u","last_username":"8420AF75EBBB742CC66682164A9516DCE453BA832B9F373862AEBA61361880FE","last_username_encrypted_hash":"djEwZgPjl9Hv4qeQVmhFPPJClsGESKK58CVgXm0yChwcmmp3nEE7SYIrTjn4TycaUqX7VMjrCQ+kng9dPYvd"}},"enterprise_signin":{"policy_recovery_token":"262651C91DA80CCF087069298917ECC355EA9BCE22E1BF280DFD09EC1EFD5702","policy_recovery_token_encrypted_hash":"djEwMElW8GkOePCbgxsO0o3O59XKF0UP+sb/BheSWzTI+6RBItU1G6qO48sxinWGosQnnrITWcoV+rGmMvRo"},"extensions":{"install":{"initiallist":"3064507419D6B1512C197E3CA41FBCB1B651F4BA652254D90F58192A7243A6B7","initiallist_encrypted_hash":"djEwef+e4i0UpsXy+rMvCD6wtuCtApGCyfbx9Ac06/j25djXNaRpQeKNW4ndWPHX61sCTx0jMaXVvgFw7fZT","initialprovidername":"8BE34CEF9DC3F8975095A5086251144A7245BAE4C802A18A91E3FD29AA2E6A9A","initialprovidername_encrypted_hash":"djEw6rSpf6ONusPNNvR5tBU65s8Gdrrwbfaf2TYgQzqsizZqEEiAFNw1yICTlx5LKc2LWnTBgfZ9OdQv8Vy+"},"settings":{"dgiklkfkllikcanfonkcabmbdfmgleag":"13B091D46FED0754B70F8C6016E575673AA24D120D98D1C35B59E282D2AF1B39","mhjfbmdgcfjbbpaeojofohoefgiehjai":"A0D9D2A3945A8BEDCB41471037A289FC1909EAEA0CA1227D1245F8C74D12C271"},"settings_encrypted_hash":{"dgiklkfkllikcanfonkcabmbdfmgleag":"djEwLimISQfFcQF3lfRHfjc7HWsuoYKowFuAlEDlcuW6DI+UgX2UYn66qQ3y9Of+ibANo52wdk2PxYCePiP8","mhjfbmdgcfjbbpaeojofohoefgiehjai":"djEw69G0xoSOQZcCDLHQQHpLUoTxwbvV8vwQnmHjfgmqRCYRyPbCO+/K7kQgV+IxTIjCtE14qVg8wFewR7dJ"},"ui":{"developer_mode":"3EAC419C7F8CC9147B5BD76CC16898AC348BFBB7C30BD90B9E1DE6277024D959","developer_mode_encrypted_hash":"djEwNdu1yMQiC73NyogqAPQSWjuWoyWFJDVmXmmj1Z26e79Aru+yyIImIlTNib+5Q0ESQGhsPtvEkH/pY9ne"}},"google":{"services":{"last_signed_in_username":"65CFF9B84F3D7E8E2B5451B673E1FF45BDB23B4560A975C8339C86A09B0340A8","last_signed_in_username_encrypted_hash":"djEwELBxu+GAAg982r5dsNRTv9Htb0zQxc/1w8CwyT4Z+u3NY8fC2XmeVIunGA+G/LkGaT/2y4Fk50R6iyPW"}},"homepage":"C6AB6788620F789C069530E461A720E2D3BCDBF18F0A1B4392997A53E47CAB37","homepage_encrypted_hash":"djEwCyy9DYzc+jlKJUvXlJHeWvJ2GCQBSiNRS1G6+mCtvfRvqzSZOx3oQDsGFPCjdFvvj/JBRy5fc2TF2xg8","homepage_is_newtabpage":"81A16EABBDA4C216E8029E3DD44A4FDCC5440711A07E1D5B6163D3EEA833D00F","homepage_is_newtabpage_encrypted_hash":"djEw5TJbq/acoCt8RMTJ3mZQB/cQoPX2cSKRmSx3SG6IwJzDEdnrTFOqLZlVJxBk7ikwLlhcz6U72KUY9yP6","media":{"cdm":{"origin_data":"45EEBF082710B8856F9D3B195EB6E30F84CE2F690A9E36A5286ECA398A2AE5CB","origin_data_encrypted_hash":"djEwCTtOeG2+mQSD1HgkOjvGRcRjaXdGltxBwgA6QM6Fbuhn5wDOeI5hJhO1cR2nDvgIc477BwLy//4cwdxk"},"storage_id_salt":"D299667F851093D247FCF1BBC8D85F2C57229A905BB3FE6A17C451E4965A2A3B","storage_id_salt_encrypted_hash":"djEweFmmaYnxbHUfohLFlkrbuTRXboF96vZczJKfkFbVVFcnzstWljMeBFcWxDc2XT6F7LD2t6ummzacFL4L"},"pinned_tabs":"FF4329A04ACCB54242F4C378B607E12ECA2E6F106C8FE1C5F2332F45EFF23774","pinned_tabs_encrypted_hash":"djEwGoSQBYgd0MHG5+L0k1fRl0oNXRRB4AYV8I6Sm8Ze+K1f0mMX2jPOwNsOThJy2XbAkIb4/ZT+GImKmbxH","prefs":{"preference_reset_time":"DAEEEB10114C5F1E8B781268BCBBAA6B2044410EFEAE3DF73C28CDF0686A4616","preference_reset_time_encrypted_hash":"djEwtPjkiddTu/K6Jea++fAjAmRHNStecd6Tm1rqF8g8wdd8+hlKfwBYNCZZmU4tHL0YKhX/GfjGz2rDymla"},"safebrowsing":{"incidents_sent":"3B17576D042C0381F7DA0DD28279CA5D3C2C0F4513146F7945277A9BDDAA3DCC","incidents_sent_encrypted_hash":"djEw6qBTTf5ZUDKG2lQlnWekis5c+TmiQQ7f89TmA+Yq6xSObIRE7uiCWI6jcRKHf8QxGPwGhtOHRE9aqGgj"},"schedule_to_flush_to_disk":"EF041DC104C9F6319D7306F6BED6E5D014EF56CC927869BEE84B8D51AB6CB77B","schedule_to_flush_to_disk_encrypted_hash":"djEwL1GYUxXJh8HxqDOb+Am9vGcc0yNhAXrfiZi2ji5AFK337GdEL7mXPbEgt+UcMNgqCW306/twjQpTlOeL","search_provider_overrides":"18745B752AF412EF714AEF0D69924545D0BC3FF99863322320D90A04C30F6733","search_provider_overrides_encrypted_hash":"djEwCK+kYw8ZFOfsuKDoBoWSHWdWAbWHS61Bd8hH4RL8PNoKRriT23mz6xFrlzQyZUDUUIuu+6L/6kKB+y7i","session":{"restore_on_startup":"50444949CB24D8912B0377FF300B0D3FAD0B2F4E9D946E0D5B28A130FDDB139E","restore_on_startup_encrypted_hash":"djEwgkCKIyWjNxBcrlhQzJGjLLze2kTwA38HEQ9T8hFbADtCWNl7MU1KSLPuTtCLsqT1LLnyoC1sVcAnIalN","startup_urls":"EBDE9A2233239613E8426D577251C1C2E5486626283C5C1F79ABD33FDB7AE7FE","startup_urls_encrypted_hash":"djEwR9jKAsjp34vG1W4+j7QYgIt5gPA4ziWJAhCa0tA9uvW+8HHT/zxs0QnjX1opGC18FGbnp8ENHCKjXCWa"}},"super_encrypted_hash":"djEw4xR9gIkpehEOrZJTPup9tUdIePo0OEBznERMrLshB3l08GYMwOwtBYIxePlLub8huUwIeRo2hwNdTk1/","super_mac":"63EC1950CF2F8F0DBE596E8139577C55608485B5B8BED57A1304832759A4858E"},"schedule_to_flush_to_disk":"13431166267365754"} \ No newline at end of file diff --git a/EBWebView/EBWebView/Default/ServerCertificate b/EBWebView/EBWebView/Default/ServerCertificate new file mode 100644 index 0000000..82ada95 Binary files /dev/null and b/EBWebView/EBWebView/Default/ServerCertificate differ diff --git a/EBWebView/EBWebView/Default/ServerCertificate-journal b/EBWebView/EBWebView/Default/ServerCertificate-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Session Storage/000003.log b/EBWebView/EBWebView/Default/Session Storage/000003.log new file mode 100644 index 0000000..59560f5 Binary files /dev/null and b/EBWebView/EBWebView/Default/Session Storage/000003.log differ diff --git a/EBWebView/EBWebView/Default/Session Storage/CURRENT b/EBWebView/EBWebView/Default/Session Storage/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Session Storage/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Session Storage/LOCK b/EBWebView/EBWebView/Default/Session Storage/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Session Storage/LOG b/EBWebView/EBWebView/Default/Session Storage/LOG new file mode 100644 index 0000000..c2270a6 --- /dev/null +++ b/EBWebView/EBWebView/Default/Session Storage/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.563 6e34 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Session Storage since it was missing. +2026/08/14-15:31:07.582 6e34 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Session Storage/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Session Storage/MANIFEST-000001 b/EBWebView/EBWebView/Default/Session Storage/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Session Storage/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Shared Dictionary/cache/index b/EBWebView/EBWebView/Default/Shared Dictionary/cache/index new file mode 100644 index 0000000..79bd403 Binary files /dev/null and b/EBWebView/EBWebView/Default/Shared Dictionary/cache/index differ diff --git a/EBWebView/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index b/EBWebView/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index new file mode 100644 index 0000000..1bb8db6 Binary files /dev/null and b/EBWebView/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index differ diff --git a/EBWebView/EBWebView/Default/Shared Dictionary/db b/EBWebView/EBWebView/Default/Shared Dictionary/db new file mode 100644 index 0000000..b84ab02 Binary files /dev/null and b/EBWebView/EBWebView/Default/Shared Dictionary/db differ diff --git a/EBWebView/EBWebView/Default/Shared Dictionary/db-journal b/EBWebView/EBWebView/Default/Shared Dictionary/db-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/SharedStorage b/EBWebView/EBWebView/Default/SharedStorage new file mode 100644 index 0000000..73a0692 Binary files /dev/null and b/EBWebView/EBWebView/Default/SharedStorage differ diff --git a/EBWebView/EBWebView/Default/Site Characteristics Database/000003.log b/EBWebView/EBWebView/Default/Site Characteristics Database/000003.log new file mode 100644 index 0000000..2362544 Binary files /dev/null and b/EBWebView/EBWebView/Default/Site Characteristics Database/000003.log differ diff --git a/EBWebView/EBWebView/Default/Site Characteristics Database/CURRENT b/EBWebView/EBWebView/Default/Site Characteristics Database/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Site Characteristics Database/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Site Characteristics Database/LOCK b/EBWebView/EBWebView/Default/Site Characteristics Database/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Site Characteristics Database/LOG b/EBWebView/EBWebView/Default/Site Characteristics Database/LOG new file mode 100644 index 0000000..21eb26b --- /dev/null +++ b/EBWebView/EBWebView/Default/Site Characteristics Database/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.335 2914 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Site Characteristics Database since it was missing. +2026/08/14-15:31:07.365 2914 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Site Characteristics Database/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Site Characteristics Database/MANIFEST-000001 b/EBWebView/EBWebView/Default/Site Characteristics Database/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Site Characteristics Database/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Sync Data/LevelDB/000003.log b/EBWebView/EBWebView/Default/Sync Data/LevelDB/000003.log new file mode 100644 index 0000000..fcf31e3 Binary files /dev/null and b/EBWebView/EBWebView/Default/Sync Data/LevelDB/000003.log differ diff --git a/EBWebView/EBWebView/Default/Sync Data/LevelDB/CURRENT b/EBWebView/EBWebView/Default/Sync Data/LevelDB/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/Sync Data/LevelDB/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Sync Data/LevelDB/LOCK b/EBWebView/EBWebView/Default/Sync Data/LevelDB/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Sync Data/LevelDB/LOG b/EBWebView/EBWebView/Default/Sync Data/LevelDB/LOG new file mode 100644 index 0000000..a6dd3ab --- /dev/null +++ b/EBWebView/EBWebView/Default/Sync Data/LevelDB/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.339 8488 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Sync Data\LevelDB since it was missing. +2026/08/14-15:31:07.367 8488 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 b/EBWebView/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/Top Sites b/EBWebView/EBWebView/Default/Top Sites new file mode 100644 index 0000000..d1c1bde Binary files /dev/null and b/EBWebView/EBWebView/Default/Top Sites differ diff --git a/EBWebView/EBWebView/Default/Top Sites-journal b/EBWebView/EBWebView/Default/Top Sites-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Vpn Tokens b/EBWebView/EBWebView/Default/Vpn Tokens new file mode 100644 index 0000000..a145ede Binary files /dev/null and b/EBWebView/EBWebView/Default/Vpn Tokens differ diff --git a/EBWebView/EBWebView/Default/Vpn Tokens-journal b/EBWebView/EBWebView/Default/Vpn Tokens-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/Web Data b/EBWebView/EBWebView/Default/Web Data new file mode 100644 index 0000000..6b16ab1 Binary files /dev/null and b/EBWebView/EBWebView/Default/Web Data differ diff --git a/EBWebView/EBWebView/Default/Web Data-journal b/EBWebView/EBWebView/Default/Web Data-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/commerce_subscription_db/LOCK b/EBWebView/EBWebView/Default/commerce_subscription_db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/commerce_subscription_db/LOG b/EBWebView/EBWebView/Default/commerce_subscription_db/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/declarative_performance_observer.db b/EBWebView/EBWebView/Default/declarative_performance_observer.db new file mode 100644 index 0000000..33e70f7 Binary files /dev/null and b/EBWebView/EBWebView/Default/declarative_performance_observer.db differ diff --git a/EBWebView/EBWebView/Default/declarative_performance_observer.db-journal b/EBWebView/EBWebView/Default/declarative_performance_observer.db-journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/discount_infos_db/LOCK b/EBWebView/EBWebView/Default/discount_infos_db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/discount_infos_db/LOG b/EBWebView/EBWebView/Default/discount_infos_db/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/discounts_db/LOCK b/EBWebView/EBWebView/Default/discounts_db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/discounts_db/LOG b/EBWebView/EBWebView/Default/discounts_db/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/favorites_diagnostic.log b/EBWebView/EBWebView/Default/favorites_diagnostic.log new file mode 100644 index 0000000..e26daca --- /dev/null +++ b/EBWebView/EBWebView/Default/favorites_diagnostic.log @@ -0,0 +1,9 @@ +2026-08-14 07:31:07.366: [INFO] CurrentProfilePath: C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default +2026-08-14 07:31:07.366: [INFO] Profiles total count: 1 +2026-08-14 07:31:07.366: [INFO] Profile: name=用户é…�ç½® 1 path=C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default lastActive=null +2026-08-14 07:31:07.366: [INFO] LastUsedProfileDir: C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default +2026-08-14 07:31:07.366: [INFO] OnDoneLoading sync enabled: 0 +2026-08-14 07:31:07.366: [INFO] BookmarkModelLoaded, ids_reassigned: 0 +2026-08-14 07:31:07.366: [INFO] BookmarksLoadDropped droppedNodes=0 +2026-08-14 07:31:07.366: [INFO] BookmarksSnapshot Startup total=0 bar=0 other=0 mobile=0 showBar=0 showBarNTP=1 +2026-08-14 07:35:44.036: [INFO] BookmarksSnapshot Shutdown total=0 bar=0 other=0 mobile=0 showBar=0 showBarNTP=1 diff --git a/EBWebView/EBWebView/Default/optimization_guide_hint_cache_store/LOCK b/EBWebView/EBWebView/Default/optimization_guide_hint_cache_store/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/optimization_guide_hint_cache_store/LOG b/EBWebView/EBWebView/Default/optimization_guide_hint_cache_store/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/parcel_tracking_db/LOCK b/EBWebView/EBWebView/Default/parcel_tracking_db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/parcel_tracking_db/LOG b/EBWebView/EBWebView/Default/parcel_tracking_db/LOG new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/000003.log b/EBWebView/EBWebView/Default/shared_proto_db/000003.log new file mode 100644 index 0000000..4d40a34 Binary files /dev/null and b/EBWebView/EBWebView/Default/shared_proto_db/000003.log differ diff --git a/EBWebView/EBWebView/Default/shared_proto_db/CURRENT b/EBWebView/EBWebView/Default/shared_proto_db/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/shared_proto_db/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/LOCK b/EBWebView/EBWebView/Default/shared_proto_db/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/LOG b/EBWebView/EBWebView/Default/shared_proto_db/LOG new file mode 100644 index 0000000..41a4941 --- /dev/null +++ b/EBWebView/EBWebView/Default/shared_proto_db/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.394 29f8 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\shared_proto_db since it was missing. +2026/08/14-15:31:07.404 29f8 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\shared_proto_db/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/MANIFEST-000001 b/EBWebView/EBWebView/Default/shared_proto_db/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/shared_proto_db/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/Default/shared_proto_db/metadata/000003.log b/EBWebView/EBWebView/Default/shared_proto_db/metadata/000003.log new file mode 100644 index 0000000..56dc289 Binary files /dev/null and b/EBWebView/EBWebView/Default/shared_proto_db/metadata/000003.log differ diff --git a/EBWebView/EBWebView/Default/shared_proto_db/metadata/CURRENT b/EBWebView/EBWebView/Default/shared_proto_db/metadata/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/EBWebView/EBWebView/Default/shared_proto_db/metadata/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/metadata/LOCK b/EBWebView/EBWebView/Default/shared_proto_db/metadata/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/metadata/LOG b/EBWebView/EBWebView/Default/shared_proto_db/metadata/LOG new file mode 100644 index 0000000..d71e7e8 --- /dev/null +++ b/EBWebView/EBWebView/Default/shared_proto_db/metadata/LOG @@ -0,0 +1,2 @@ +2026/08/14-15:31:07.377 29f8 Creating DB C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\shared_proto_db\metadata since it was missing. +2026/08/14-15:31:07.387 29f8 Reusing MANIFEST C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\EBWebView\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001 diff --git a/EBWebView/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 b/EBWebView/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/EBWebView/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 differ diff --git a/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.db b/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.db new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.db-wal b/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.db-wal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.journal b/EBWebView/EBWebView/GPUPersistentCache/DawnGraphiteCache/MNKH2GB5WDS5GZ2BBXPYMFLF2FW5PAPZ/cache.journal new file mode 100644 index 0000000..e69de29 diff --git a/EBWebView/EBWebView/GrShaderCache/data_0 b/EBWebView/EBWebView/GrShaderCache/data_0 new file mode 100644 index 0000000..27976c9 Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/data_0 differ diff --git a/EBWebView/EBWebView/GrShaderCache/data_1 b/EBWebView/EBWebView/GrShaderCache/data_1 new file mode 100644 index 0000000..31e6142 Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/data_1 differ diff --git a/EBWebView/EBWebView/GrShaderCache/data_2 b/EBWebView/EBWebView/GrShaderCache/data_2 new file mode 100644 index 0000000..c7e2eb9 Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/data_2 differ diff --git a/EBWebView/EBWebView/GrShaderCache/data_3 b/EBWebView/EBWebView/GrShaderCache/data_3 new file mode 100644 index 0000000..ba62612 Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/data_3 differ diff --git a/EBWebView/EBWebView/GrShaderCache/f_000001 b/EBWebView/EBWebView/GrShaderCache/f_000001 new file mode 100644 index 0000000..4839e7d Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/f_000001 differ diff --git a/EBWebView/EBWebView/GrShaderCache/index b/EBWebView/EBWebView/GrShaderCache/index new file mode 100644 index 0000000..c61bf80 Binary files /dev/null and b/EBWebView/EBWebView/GrShaderCache/index differ diff --git a/EBWebView/EBWebView/Last Version b/EBWebView/EBWebView/Last Version new file mode 100644 index 0000000..cff6178 --- /dev/null +++ b/EBWebView/EBWebView/Last Version @@ -0,0 +1 @@ +151.0.4129.78 \ No newline at end of file diff --git a/EBWebView/EBWebView/Local State b/EBWebView/EBWebView/Local State new file mode 100644 index 0000000..56a16a8 --- /dev/null +++ b/EBWebView/EBWebView/Local State @@ -0,0 +1 @@ +{"accessibility":{"captions":{"common_models_path":"","soda_translation_binary_path":""}},"autofill":{"ablation_seed":"JMvUXHHsBpA="},"breadcrumbs":{"enabled":true,"enabled_time":"13431166267285294"},"default_browser":{"browser_name_enum":5},"desktop_session_duration_tracker":{"last_session_end_timestamp":"1786692860"},"domain_actions_config":"H4sIAAAAAAAAAL1bbY/bNhL+KwvjPjRFrN0kbXOXQ1AUuRxSoEWDtEUPaHrGiBxLE5MchqQsaZv89wP9srEjiTGV4j5kY3PnmeHLcF65fy6E1CveonMkcfHkzwVYq0hAIDZ+8eT3wwDKlWVFol88WfxkVP+8s+zxpYL+FYLsF/cXkjWQWTxZeEWmKgTrxfv7SfRvJHFLBk/BgZsibOcgNXSSNRYS56ChFLOnvC0iAufiFTwuKMxBdmsyFPq5glsIog7bQnA3lwVVhgKGbeG4QufnsilVg6Jx28jJ19AWAuawqVFRV2xJIgfHZu5shKOAjtiIGoxBNZePCRDqqJJzz4db69CjCd6qZvbmbutu5pWqG9XMlQrWFm8bEpsalZ3L5F/k6+9M39boDrv4x/3FDku4N04GNE6apNDb+Ms45HZDcQoDxIngA+BuJIrbovPEZvHkwfv7C8ESRaa5fEESf1y/wK14FtF5piMBNmQCGsnJjRniD2s8HRxZpo47syKjyGCue7DhpyZ8rAuVA63BqZS1GgB9DQ4tkwnzUEu5zgEajssqPF8KULRN3e4BPa/XJGYgHn3z9WxQoQX4QvuLwQalm7cug1NubIAQihtZaBKOPa8vhu02PENMQND+g5iZutdcvHmCtWYT9Z1ddSmoxbJoawg+4jJmKNiS4qxFgeQy62TBiQLo4hmB2ULWEsCKJmsFogYHIqDLmVYNobJ5YhQ0EnNk8AcndRlCIlqgHEWJiFQ0MgrwiJtCTwXF05AcMQR5C0GFWzQKSl/QxcZWg9sItn3GoWgMWeqoG7fOYd8bMm8gA2H+bjJWzCFPzy06q7CLKUEGiLO09hCR7gOAHDGOvM7ZqrcNKVXmmbe3LZoMEQ41b7EoL9Zb15gWep11B31jOGNOvjehRk+QoScBuyDYBUzlcUO3s0tzchA9p9KBAfktWMoTcPRosxx2oE3gLLtVpgsVwx1r26JirpK5/gBVoSZDM4CN9emkZ48Yid5jYhBWa1IB3YrNitfrlW8piPqyEP7ZnsO/dwzOLN75wUxM7Bw+mB8Km5lSvFRA5hfswq+vfvAxczvLUsFU3AT/yR1Ocokxwudx8ApEQv2S2DUILDmlvUl4i7vpzwVTR4liSRL89u1sqWXKXKWx7GT0Q4mSSBIfWgpJ05dES/KCnUzegDEGh8T7+bOXcWBHEQ4UI3ckZlSERvQrzTI3BS8Vi81ZpbBM1fgG5FZBX1S4ZifQcJuBVI2BAjTcpspvA1Q0rFGm38cVGci0CR+QZziYITZeMbZogDJQF1r/4cIctx5diUbU06H1+E46MoKsQhlQ1IYVV4SJuzJkgmVRgscYcWfANN+SUlBUFOqmnIxfBrg6aPV1QJ9zGAaFYw0m1KnC6Oj2tOSSJbcBiEUAg3GCMUGv0fGmSabqI6rjWFOjs7dmL7posYxn4Qsy60uhwvtHmZu6JoW+aGJP4ZHMOXi/u7LXX17HSzxpFI84h+CjnVt8MIqL+4stqGb3cWALSapM+3coBTtcU4fy+Y/Pz1UnrGOfYHJ9l6B9aCRxQvWSTHTjSXwwk8Ub+xcwaTafz+SzFzPVfbucA04U2y7nsHafy4HMZ3OYKFFmHMZECyzrOItyzl58ooObxEYHSVKwMShCdCRw2zhssfQU0O9rtxP2YYzvsYVzHNQjTRnSUOFKQ2Vo3a8cVthl2gvFLfqzMCYOFF+Orx9L6ElXZwWt/dAUQjigyivy59nu3egULujbs7hV305SgqvwPB3ejUzRl+Uu1jprKB3HpjCWTHB4vgYqLJm48kltiQoRoFRnjT2Hnm7RFRwOIifhQK405Uc6LkDUCQ+u0YCTZwcqpCn2wyIZuB814eiNXr/+Ns706RdavuvUvav9t65Tp73EDwpxhPml+uL1a/nlvSu/VA++ubk5JT/ThiNi9ejmpnt0c/P6dXG1evDw5qb7x81NcQrbK8MdvZY70k6dEx314Ej3379dfduSfBpZnhKeKMCR9J8auhdIVR2e7icfB34jGerD96tTBifacGRw/fDRN9311fXj+N8p7akOHIm/0Cip0e9UnPG7zmtQ6t71Vd1UeIa9U4A7Kd+SXrVPHz+8uTp8fPDVV2dr+3D+d8J+3Av7OUp590MUee/66j+7D9dDi7IrVq6ws4pdrKB8Zv/zoZYmp2tFulr6pfZmGU04bEAD3aLMYTFidS+viS2xs1NG4K+pogkg73GJFlxlcNJjj1UIJVrMKaILhxBwXklR4hqNROfglrMKmRI9VQbdTLFsKnDS5BVPZSM28V/FOahPV55GMA5xGX8IVGrpWVEAymt+HfLhi5VsT+97Iw+XL0cYVbxsYy4NLtAG1eViI5LLNxi8bcosmHW8pjxJ1rHmDITxAeKzipytUGQ2KMlcLib3jYMG+7bB6ZhmpCl2SMguBsx9RgHW+iL7zYZF44BUbPxAVl+fm1A6+ER4NNbF61ClXnsNe0YITtSFgW2exTjgeqg5y2bMfJaz4S1l2Zmo39Ed7XxSlHaxhvjADirMPmy/FRlPZXxfTUfLY206UccHIrsCy/+rx/XJWvdf9x6lB62zG4qhyXuQcmhuFQrz/JwFF6JDzcX5mm1RPiznAFvHrLOBCisQfY2gQqLyOxKHgVIYghd1o3DJ6BRtop+sLz53UmD8ps8RqqEisVQxafhUr/J7c5rPk9fPD/H1L73F/e9PYvg7UQnEaPez8ehWUMUGaF7c/iwWafHX787CDsfHlu/i/sJCqFcadm3U3xfXAhyiW0qHoNFdx6e+14s/RjdujLcnVXODIeAy3rhJDRnD6r5o+9v0m9gT3GEPUVb4C2/QvEKrQKBGE5KV1xbLVXwUuT7sXG7b1rG2g9jfoZSUalaOogIqrBzYmoykxKOeITqQRs/rPW73czeSw8I2vkZTRY+SO+0oynBrsM2SuEuSuLFsHJhEv2kc2das0LPGvklEh+NY8BsFpLK2OOI8aM0lJdvno0AUDWzJZwlsbgtvm2Bos9tY1+QINHL3Rw95k1SkLThBkHj8Mw61vAWHhjeZ04z9JgmcLOMOkaw6CxvyAUzBvgji4msSH+XlHgOrzOntNKwjX4JJPXYY4HQTGlDrxsgCJIUeSnIKBFgK+SdywWuLUdwFGdc4UKP3aKpUcPS9EazJVM9AqfNjGXnBPPXq4Cj8YO/t/vuJV/1IyoGODqMrEYdPyPcMvzNyHLfnvwIjVx+xOHck7/8HGKo1fmY2AAA=","edge":{"mitigation_manager":{"renderer_app_container_compatible_count":1},"retrigger_features":[],"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0},"taskbar":{"pin_status":2}},"edge_ci":{"num_healthy_browsers_since_failure":1},"hardware_acceleration_mode_previous":true,"identity_combined_status":{"aad":1,"ad":1},"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"management":{"platform":{"azure_active_directory_device":0,"last_log_time":"13431166267323899"}},"microsoft":{"os":{"cached_education_environment":0,"cached_windows_lockdown_mode":0}},"network_time":{"network_time_mapping":{"local":1.786692671427163e+12,"network":1.786692671e+12,"ticks":28863303972.0,"uncertainty":2120419.0}},"optimization_guide":{"model_execution":{"last_usage_by_feature":{}},"model_store_metadata":{},"on_device":{"last_version":"151.0.4129.78","model_crash_count":0}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAABOhTPRv37wQbRLC3FERp/4EAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAACL1BUyMp37SpaG8y1MlwjtYRPcuCGczhcPJKmQm8ve4gAAAAAOgAAAAAIAACAAAABGkpm/QGIvxDkix3ekME2tPRkStiBkkASetUVpBIIc9jAAAACUALzuS8wZOT9bEXGl6DXgn046gLF982Dxy6zRMGaq/MkhMfrO8aq2Mpmh16loVTFAAAAAoPIk2Ho32lgwR5bQJh4gFoS9G9RTxqYzQe5ULRQ47YiyWGM/gjjpRu2idYl6qrMJabhvAERSBKc/Fy1ANoFm6A=="},"performance_intervention":{"last_daily_sample":"13431166267358905"},"policy":{"last_statistics_update":"13431166267283497"},"profile":{"info_cache":{"Default":{"active_time":1786692850.425265,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_environment_string":"","edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_create_profile_shortcut":false,"edge_profile_can_be_deleted":true,"edge_profile_can_be_edited":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"force_signin_profile_locked":false,"gaia_id":"","is_consented_primary_account":false,"is_ephemeral":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"用户é…�ç½® 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13431166267256939","profiles_order":["Default"]},"profiles":{"edge":{"guided_switch_pref":[],"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"151.0.4129.78","signin_last_updated_time":1786692667.353443},"sentinel_creation_time":"0","session_id_generator_last_value":"352045769","signin":{"active_accounts_last_emitted":"13431166267208209"},"startup_boost":{"last_browser_open_time":"13431166543919624"},"subresource_filter":{"ruleset_version":{"checksum":850843177,"content":"10.34.0.84","format":38}},"tab_stats":{"discards_expired":0,"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13431166267268830","max_tabs_per_window":1,"reloads_expired":0,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":1,"window_count_max":1},"telemetry_client":{"cloned_install":{"user_data_dir_id":12894272},"governance":{"last_dma_change_date":"13431166267252565","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTUxLjAuNDEyOS43OFx0ZWxjbGllbnQuZGxs","sample_id":87457410},"uninstall_metrics":{"installation_date2":"1786692667"},"updateclientdata":{"apps":{"alpjnmnfbgfkmmpcfpejmmoebdndedno":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"46.0.0.0"},"eeobbhfgfagbclfofmgbdfoicabjdbkn":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.0.0.12"},"fgbafbciocncjfbbonhocjaohoknlaco":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"2026.8.3.1"},"fppmbhmldokgmleojlplaaodlkibgikh":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"1.15.0.1"},"jbfaflocpnkhbgcijpkiafdpbjkedane":{"cohort":"","cohortname":"","installdate":-1},"kpfehajjjbbcifeehjgfgnabifknmdad":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"120.0.6050.0"},"laoigpblnllgcgjnjnllmfolckpjlhki":{"cohort":"","cohortname":"","installdate":-1},"ndikpojcjlepofdkaaldkinkjbeeebkl":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"10.34.0.84"},"oankkpibpaokgecfckkdkgaoafllipag":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"6498.2025.9.4"},"ohckeflnhegojcjlcpbfpciadgikcohk":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"0.0.0.0","pv":"0.0.1.7"},"ojblfafjmiikbkepnnolpgbbhejhlcim":{"cohort":"","cohortname":"","fp":"","installdate":-1,"max_pv":"4.10.2934.0","pv":"4.10.3050.0"}}},"updateclientlastupdatecheckerror":0,"updateclientlastupdatecheckerrorcategory":0,"updateclientlastupdatecheckerrorextracode1":0,"user_experience_metrics":{"chrome_download_action_count":0,"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\VanuSystems-Mu0s:0B56B85C-23D8-4B77-AC30-9E3A7E9A4052","consent_restructure_feature_state":false,"diagnostics":{"last_data_collection_level_on_launch":1},"limited_entropy_randomization_source":"51BD7FE940581C251AD41F0BA7164653","low_entropy_source3":4776,"machine_id":294019,"payload_counter":1,"pseudo_low_entropy_source":3649,"reporting_enabled":false,"reset_client_id_deterministic":true,"session_id":0,"stability":{"browser_last_live_timestamp":"13431166543968294","exited_cleanly":true,"stats_buildtime":"1786297945","stats_version":"151.0.4129.78-64","system_crash_count":0}},"variations_compressed_seed":"H4sIAAAAAAAAAJVW23IaORD9FZdeM3KN5g5becAYHDbYsY0v2dqkXGKmGRRrJCxpwKyLf9/SaIwhMXvhgaJb53QfdbckXtCgP0HdF9TnDITpSzFjZa2oYVLcLgpqYLAEYSziFLihY1kOBJ1yKFB3RrkGDw1rzidgDq8MFTzVIPI16hLf33ho8JzzuoDBswElKHdJR4UeibEsUdeoGjzkvGNZ3lBVgkFdBEUJD9rYHMhGKUpwIKvu2ubQ5hPQAtRIGCgVM+trybmsG/nQiBsCNbUCjbp/HqCg7x5aUEUrMKAs7gUJWoHNzwrkoSXltbVOyh9X47ve4Iv/+9c/ftDiSp78dZENbpNw9RFtvm88NFkA5POzQf8OlGZSvIn9VUul7XZaBoiaCbCOG/kI4lJJI3PJ2zCHBS5a4MOyRb6pDZykU6Zt5rHMKb8As5LqsZfnoHV/DvmjlVY4xK62A2iNbMTVMphQUUzl8wH2SEtODbQgKEYzK92RWzlDxmGy1gaqnfCcaXMg5M/4U6YgN1KtRwbc6J5w6SK4fdlcbjjv74JeUTCLofxSSUv/zDiH4gY4VGDU+lCD7mF6x2D17/ym90U+dxn/sd9FPm/gV7ejvgW+39d8ToUAvtPOIdp4b3O5kPl8ZzH03WcXo8AoKnTFTHN+HqR4WDEFD4ZVIGvzUDHOmYZcikLvjo2NYgV+WYJSrHC3gT64p2a1x7lcjW37Dk5qC32N2oDfsp6zXEktZ+b4HqYnSq40qOPmFEzr2fHt5/Nj1/1LJWeMg+d7JP7tP5AMNfp4LMuJocp4vhf9H1JfVgsOBhqeK8q25ZdyMaF2uflm4uAhH0qVw5a2RXuo0vamA21uBZtJVZ0ybRSb1nbQPjFtZKlodbiepZL1ItjK2Ovg7hgUMKM1N2cW/h56D1w/VgdDft+0N/CQKW2u653LbVAtzPr9pV9LAjBTOWqiTaCsQJjm/FrwUElhGKheXTAQuc18IYUVct4b9ThHXdS8M8hD9/eDfYfOF7Paevzmd1lTVbwaS1DNz/MwiftSwT6zL4UBYSagliwH/VMemH692XedMFHue+zW9z3bKbvVNnfr33jIPT3NcRrc0BJ10Td0fgXmaTIe5R/uknLtj5ZnJ+uKZzN+VsUL8/XD/Yd5pkYXT0/B6OM3ZPM9L1hTTTRUzDsi0VGvLo8CP0iO/Kwbkq7fOTo7v2n2Vguj1n1Z2GJOzpCH7HjXuvU0p/315R2dOl327wG6xNeYpDGJEx8TTLzG9rMgThvbOk5xFIRZhgOcoP3H2bE7JOr4HUxwx7GzNEozH4c4cXYaJnFEcIxjZ4ckjjKCCc6cHUeEpAQnr/w4yALf8iNnExLGIcFRu55kURrhDiaBM/2EpDjDgdMexWEa4gxnKXp/jJ1mP42zJMYRztDP89mWhCQpCTHxXQ2uMYnS0CfJm2wSdzpZjMnrtggJOyTGQbxl+J0sDCNM2kIkiZ9mmOBwa6VbduJnWYAJdnuKQj8LcNiuRUEa2SgB2mz+BseSoZDWCQAA","variations_crash_streak":0,"variations_failed_to_fetch_seed_streak":1,"variations_google_groups":{"Default":[]},"variations_last_fetch_time":"13431166270716838","variations_last_runtime_fetch_time":"13431166271934844","variations_runtime_compressed_seed":"H4sIAAAAAAAAAG2PwU7CQBCG32WudOLuzna628QDtoCYmFREYyIeqoyIQmtKS9KQvruBws3j93//ZGYOkJTF53o1TXcQQ4Yz1MpY9oQaNQV94MnYEDUaPgeOlUWNFJ04cqT42Hc9EpsT9pZJc4j2MhySsYQGe2mV8oR0keQiazFC31vSzns0HkOlggxT1Dp0rC0atOdLyEWs0KBWEMBouZJZU9TrrfRfQXyA0fa3bv81UuTvGxlLXjeV7CB+BZHqA966LoBbyZdS7Y61pGyKumqTcikQw+PkuGieryCGBUx/9jLIxi+TsdR8L1w2T5xmV27Dw/3d/KbdDoZfNqfnh+/h9QKg6/4AbSp2xXABAAA=","variations_runtime_config_ids":"P-R-1024693-1-13,P-R-1093245-1-26,P-R-108604-1-37,P-R-78306-1-18,P-R-73626-1-17,P-R-63165-4-26,P-R-53243-2-7,P-R-40093-3-26,P-R-38744-7-97,P-R-31899-29-500,P-D-1158614-2-4,P-R-1038760-2-10","variations_seed_client_version_at_store":"151.0.4129.78","variations_seed_date":"13431166271000000","variations_seed_milestone":151,"variations_seed_runtime_etag":"\"Ikve+PFXGFet6Me6ouU6DP/8l6AvJTBym+Ah4a3VQjA=\"","variations_seed_runtime_serial_number":"\"Ikve+PFXGFet6Me6ouU6DP/8l6AvJTBym+Ah4a3VQjA=\"","variations_seed_serial_number":"\"MQetqSLIc+V6gy0IvGByml8flGm5ptX+W+h8rINqq2I=\"","variations_seed_signature":"","was":{"restarted":false}} \ No newline at end of file diff --git a/EBWebView/EBWebView/OriginTrials/0.0.1.7/manifest.json b/EBWebView/EBWebView/OriginTrials/0.0.1.7/manifest.json new file mode 100644 index 0000000..297204e --- /dev/null +++ b/EBWebView/EBWebView/OriginTrials/0.0.1.7/manifest.json @@ -0,0 +1 @@ +{"version": "0.0.1.7", "origin-trials": {}} \ No newline at end of file diff --git a/EBWebView/EBWebView/PKIMetadata/46.0.0.0/crs.pb b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/crs.pb new file mode 100644 index 0000000..0fa087b Binary files /dev/null and b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/crs.pb differ diff --git a/EBWebView/EBWebView/PKIMetadata/46.0.0.0/ct_config.pb b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/ct_config.pb new file mode 100644 index 0000000..2efb88e Binary files /dev/null and b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/ct_config.pb differ diff --git a/EBWebView/EBWebView/PKIMetadata/46.0.0.0/kp_pinslist.pb b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/kp_pinslist.pb new file mode 100644 index 0000000..e7b8a2b Binary files /dev/null and b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/kp_pinslist.pb differ diff --git a/EBWebView/EBWebView/PKIMetadata/46.0.0.0/manifest.json b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/manifest.json new file mode 100644 index 0000000..d778938 --- /dev/null +++ b/EBWebView/EBWebView/PKIMetadata/46.0.0.0/manifest.json @@ -0,0 +1,5 @@ +{ + "description" : "Microsoft PKI Metadata", + "name" : "PKIMetadata", + "version" : "46.0.0.0" +} diff --git a/EBWebView/EBWebView/ShaderCache/data_0 b/EBWebView/EBWebView/ShaderCache/data_0 new file mode 100644 index 0000000..d76fb77 Binary files /dev/null and b/EBWebView/EBWebView/ShaderCache/data_0 differ diff --git a/EBWebView/EBWebView/ShaderCache/data_1 b/EBWebView/EBWebView/ShaderCache/data_1 new file mode 100644 index 0000000..34e8280 Binary files /dev/null and b/EBWebView/EBWebView/ShaderCache/data_1 differ diff --git a/EBWebView/EBWebView/ShaderCache/data_2 b/EBWebView/EBWebView/ShaderCache/data_2 new file mode 100644 index 0000000..c7e2eb9 Binary files /dev/null and b/EBWebView/EBWebView/ShaderCache/data_2 differ diff --git a/EBWebView/EBWebView/ShaderCache/data_3 b/EBWebView/EBWebView/ShaderCache/data_3 new file mode 100644 index 0000000..5eec973 Binary files /dev/null and b/EBWebView/EBWebView/ShaderCache/data_3 differ diff --git a/EBWebView/EBWebView/ShaderCache/index b/EBWebView/EBWebView/ShaderCache/index new file mode 100644 index 0000000..d1550b3 Binary files /dev/null and b/EBWebView/EBWebView/ShaderCache/index differ diff --git a/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings b/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings new file mode 100644 index 0000000..a89ca1f --- /dev/null +++ b/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings @@ -0,0 +1 @@ +edgeSettings_2.0-0 \ No newline at end of file diff --git a/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 b/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 new file mode 100644 index 0000000..3db8ccb --- /dev/null +++ b/EBWebView/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 @@ -0,0 +1 @@ +{"models":[],"geoidMaps":{"gw_my":"https://malaysia.smartscreen.microsoft.com/","gw_tw":"https://taiwan.smartscreen.microsoft.com/","gw_at":"https://austria.smartscreen.microsoft.com/","gw_es":"https://spain.smartscreen.microsoft.com/","gw_pl":"https://poland.smartscreen.microsoft.com/","gw_se":"https://sweden.smartscreen.microsoft.com/","gw_kr":"https://southkorea.smartscreen.microsoft.com/","gw_br":"https://brazil.smartscreen.microsoft.com/","au":"https://australia.smartscreen.microsoft.com/","dk":"https://denmark.smartscreen.microsoft.com/","gw_sg":"https://singapore.smartscreen.microsoft.com/","gw_fr":"https://france.smartscreen.microsoft.com/","gw_ca":"https://canada.smartscreen.microsoft.com/","gw_il":"https://israel.smartscreen.microsoft.com/","gw_au":"https://australia.smartscreen.microsoft.com/","gw_ffl4mod":"https://unitedstates4.ss.wd.microsoft.us/","gw_ffl4":"https://unitedstates1.ss.wd.microsoft.us/","gw_eu":"https://europe.smartscreen.microsoft.com/","gw_gr":"https://greece.smartscreen.microsoft.com/","gw_de":"https://germany.smartscreen.microsoft.com/","br":"https://brazil.smartscreen.microsoft.com/","gw_uk":"https://unitedkingdom.smartscreen.microsoft.com/","gw_it":"https://italy.smartscreen.microsoft.com/","gw_us":"https://unitedstates.smartscreen.microsoft.com/","il":"https://israel.smartscreen.microsoft.com/","es":"https://spain.smartscreen.microsoft.com/","ch":"https://switzerland.smartscreen.microsoft.com/","at":"https://austria.smartscreen.microsoft.com/","jp":"https://japan.smartscreen.microsoft.com/","kr":"https://southkorea.smartscreen.microsoft.com/","nz":"https://newzealand.smartscreen.microsoft.com/","gw_cl":"https://chile.smartscreen.microsoft.com/","pl":"https://poland.smartscreen.microsoft.com/","eu":"https://europe.smartscreen.microsoft.com/","de":"https://germany.smartscreen.microsoft.com/","gw_no":"https://norway.smartscreen.microsoft.com/","ffl4mod":"https://unitedstates4.ss.wd.microsoft.us/","gw_jp":"https://japan.smartscreen.microsoft.com/","mx":"https://mexico.smartscreen.microsoft.com/","gw_ffl5":"https://unitedstates2.ss.wd.microsoft.us/","se":"https://sweden.smartscreen.microsoft.com/","gw_ch":"https://switzerland.smartscreen.microsoft.com/","gw_ae":"https://uae.smartscreen.microsoft.com/","my":"https://malaysia.smartscreen.microsoft.com/","gw_nz":"https://newzealand.smartscreen.microsoft.com/","ca":"https://canada.smartscreen.microsoft.com/","fr":"https://france.smartscreen.microsoft.com/","gw_mx":"https://mexico.smartscreen.microsoft.com/","no":"https://norway.smartscreen.microsoft.com/","gr":"https://greece.smartscreen.microsoft.com/","gw_qa":"https://qatar.smartscreen.microsoft.com/","gw_in":"https://india.smartscreen.microsoft.com/","in":"https://india.smartscreen.microsoft.com/","tw":"https://taiwan.smartscreen.microsoft.com/","sg":"https://singapore.smartscreen.microsoft.com/","ffl5":"https://unitedstates2.ss.wd.microsoft.us/","ae":"https://uae.smartscreen.microsoft.com/","gw_dk":"https://denmark.smartscreen.microsoft.com/","gw_za":"https://southafrica.smartscreen.microsoft.com/","uk":"https://unitedkingdom.smartscreen.microsoft.com/","cl":"https://chile.smartscreen.microsoft.com/","us":"https://unitedstates.smartscreen.microsoft.com/","qa":"https://qatar.smartscreen.microsoft.com/","za":"https://southafrica.smartscreen.microsoft.com/","ffl4":"https://unitedstates1.ss.wd.microsoft.us/","it":"https://italy.smartscreen.microsoft.com/"},"sampleBuckets":{"evaluateModel":1.0,"error":1.0,"uriLookup":0.01,"userAction":1.0,"topTrafficHit":0.00007}} \ No newline at end of file diff --git a/EBWebView/EBWebView/Speech Recognition/1.15.0.1/Microsoft.CognitiveServices.Speech.core.dll b/EBWebView/EBWebView/Speech Recognition/1.15.0.1/Microsoft.CognitiveServices.Speech.core.dll new file mode 100644 index 0000000..a51e7c0 Binary files /dev/null and b/EBWebView/EBWebView/Speech Recognition/1.15.0.1/Microsoft.CognitiveServices.Speech.core.dll differ diff --git a/EBWebView/EBWebView/Speech Recognition/1.15.0.1/manifest.json b/EBWebView/EBWebView/Speech Recognition/1.15.0.1/manifest.json new file mode 100644 index 0000000..84ae713 --- /dev/null +++ b/EBWebView/EBWebView/Speech Recognition/1.15.0.1/manifest.json @@ -0,0 +1 @@ +{"manifest_version": 2,"name": "Speech Recognition","version": "1.15.0.1"} diff --git a/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/LICENSE b/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/LICENSE new file mode 100644 index 0000000..a9fd017 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/LICENSE @@ -0,0 +1,383 @@ +EasyList Repository Licences + + Unless otherwise noted, the contents of the EasyList repository + (https://github.com/easylist) is dual licensed under the GNU General + Public License version 3 of the License, or (at your option) any later + version, and Creative Commons Attribution-ShareAlike 3.0 Unported, or + (at your option) any later version. You may use and/or modify the files + as permitted by either licence; if required, "The EasyList authors + (https://easylist.to/)" should be attributed as the source of the + material. All relevant licence files are included in the repository. + + Please be aware that files hosted externally and referenced in the + repository, including but not limited to subscriptions other than + EasyList, EasyPrivacy, EasyList Germany and EasyList Italy, may be + available under other conditions; permission must be granted by the + respective copyright holders to authorise the use of their material. + + +Creative Commons Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO + WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS + LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS + CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS + PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK + OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS + PROHIBITED. + + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND + AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS + LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE + RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS + AND CONDITIONS. + + 1. Definitions + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may + be recast, transformed, or adapted including in any form + recognizably derived from the original, except that a work that + constitutes a Collection will not be considered an Adaptation for + the purpose of this License. For the avoidance of doubt, where the + Work is a musical work, performance or phonogram, the + synchronization of the Work in timed-relation with a moving image + ("synching") will be considered an Adaptation for the purpose of + this License. + b. "Collection" means a collection of literary or artistic works, such + as encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works + listed in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, + in which the Work is included in its entirety in unmodified form + along with one or more other contributions, each constituting + separate and independent works in themselves, which together are + assembled into a collective whole. A work that constitutes a + Collection will not be considered an Adaptation (as defined below) + for the purposes of this License. + c. "Creative Commons Compatible License" means a license that is + listed at https://creativecommons.org/compatiblelicenses that has + been approved by Creative Commons as being essentially equivalent + to this License, including, at a minimum, because that license: (i) + contains terms that have the same purpose, meaning and effect as + the License Elements of this License; and, (ii) explicitly permits + the relicensing of adaptations of works made available under that + license under this License or a Creative Commons jurisdiction + license with the same License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license + attributes as selected by Licensor and indicated in the title of + this License: Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities + that offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who created + the Work or if no individual or entity can be identified, the + publisher; and in addition (i) in the case of a performance the + actors, singers, musicians, dancers, and other persons who act, + sing, deliver, declaim, play in, interpret or otherwise perform + literary or artistic works or expressions of folklore; (ii) in the + case of a phonogram the producer being the person or legal entity + who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits + the broadcast. + h. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any production + in the literary, scientific and artistic domain, whatever may be + the mode or form of its expression including digital form, such as + a book, pamphlet and other writing; a lecture, address, sermon or + other work of the same nature; a dramatic or dramatico-musical + work; a choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which + are assimilated works expressed by a process analogous to + cinematography; a work of drawing, painting, architecture, + sculpture, engraving or lithography; a photographic work to which + are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, + sketch or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a + copyrightable work; or a work performed by a variety or circus + performer to the extent it is not otherwise considered a literary + or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + j. "Publicly Perform" means to perform public recitations of the Work + and to communicate to the public those public recitations, by any + means or process, including by wire or wireless means or public + digital performances; to make available to the public Works in such + a way that members of the public may access these Works from a + place and at a place individually chosen by them; to perform the + Work to the public by any means or process and the communication to + the public of the performances of the Work, including by public + digital performance; to broadcast and rebroadcast the Work by any + means including signs, sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage + of a protected performance or phonogram in digital form or other + electronic medium. + + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes + reasonable steps to clearly label, demarcate or otherwise identify + that changes were made to the original Work. For example, a + translation could be marked "The original work was translated from + English to Spanish," or a modification could indicate "The original + work has been modified."; + c. to Distribute and Publicly Perform the Work including as + incorporated in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + i. Non-waivable Compulsory License Schemes. In those + jurisdictions in which the right to collect royalties through + any statutory or compulsory licensing scheme cannot be waived, + the Licensor reserves the exclusive right to collect such + royalties for any exercise by You of the rights granted under + this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives + the exclusive right to collect such royalties for any exercise + by You of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that + the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, + from any exercise by You of the rights granted under this + License. + + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make + such modifications as are technically necessary to exercise the rights + in other media and formats. Subject to Section 8(f), all rights not + expressly granted by Licensor are hereby reserved. + + 4. Restrictions. The license granted in Section 3 above is expressly + made subject to and limited by the following restrictions: + a. You may Distribute or Publicly Perform the Work only under the + terms of this License. You must include a copy of, or the Uniform + Resource Identifier (URI) for, this License with every copy of the + Work You Distribute or Publicly Perform. You may not offer or + impose any terms on the Work that restrict the terms of this + License or the ability of the recipient of the Work to exercise the + rights granted to that recipient under the terms of the License. + You may not sublicense the Work. You must keep intact all notices + that refer to this License and to the disclaimer of warranties with + every copy of the Work You Distribute or Publicly Perform. When You + Distribute or Publicly Perform the Work, You may not impose any + effective technological measures on the Work that restrict the + ability of a recipient of the Work from You to exercise the rights + granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, + but this does not require the Collection apart from the Work itself + to be made subject to the terms of this License. If You create a + Collection, upon notice from any Licensor You must, to the extent + practicable, remove from the Collection any credit as required by + Section 4(c), as requested. If You create an Adaptation, upon + notice from any Licensor You must, to the extent practicable, + remove from the Adaptation any credit as required by Section 4(c), + as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License + with the same License Elements as this License; (iii) a Creative + Commons jurisdiction license (either this or a later license + version) that contains the same License Elements as this License + (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons + Compatible License. If you license the Adaptation under one of the + licenses mentioned in (iv), you must comply with the terms of that + license. If you license the Adaptation under the terms of any of + the licenses mentioned in (i), (ii) or (iii) (the "Applicable + License"), you must comply with the terms of the Applicable License + generally and the following provisions: (I) You must include a copy + of, or the URI for, the Applicable License with every copy of each + Adaptation You Distribute or Publicly Perform; (II) You may not + offer or impose any terms on the Adaptation that restrict the terms + of the Applicable License or the ability of the recipient of the + Adaptation to exercise the rights granted to that recipient under + the terms of the Applicable License; (III) You must keep intact all + notices that refer to the Applicable License and to the disclaimer + of warranties with every copy of the Work as included in the + Adaptation You Distribute or Publicly Perform; (IV) when You + Distribute or Publicly Perform the Adaptation, You may not impose + any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of + the Applicable License. This Section 4(b) applies to the Adaptation + as incorporated in a Collection, but this does not require the + Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations + or Collections, You must, unless a request has been made pursuant + to Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) + the name of the Original Author (or pseudonym, if applicable) if + supplied, and/or if the Original Author and/or Licensor designate + another party or parties (e.g., a sponsor institute, publishing + entity, journal) for attribution ("Attribution Parties") in + Licensor's copyright notice, terms of service or by other + reasonable means, the name of such party or parties; (ii) the title + of the Work if supplied; (iii) to the extent reasonably + practicable, the URI, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and (iv) , + consistent with Ssection 3(b), in the case of an Adaptation, a + credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4(c) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, + at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then + as part of these credits and in a manner at least as prominent as + the credits for the other contributing authors. For the avoidance + of doubt, You may only use the credit required by this Section for + the purpose of attribution in the manner set out above and, by + exercising Your rights under this License, You may not implicitly + or explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution + Parties, as appropriate, of You or Your use of the Work, without + the separate, express prior written permission of the Original + Author, Licensor and/or Attribution Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute + or Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify + or take other derogatory action in relation to the Work which would + be prejudicial to the Original Author's honor or reputation. + Licensor agrees that in those jurisdictions (e.g. Japan), in which + any exercise of the right granted in Section 3(b) of this License + (the right to make Adaptations) would be deemed to be a distortion, + mutilation, modification or other derogatory action prejudicial to + the Original Author's honor and reputation, the Licensor will waive + or not assert, as appropriate, this Section, to the fullest extent + permitted by the applicable national law, to enable You to + reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + + 5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF + LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF + ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW + THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO + YOU. + + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR + ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES + ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 7. Termination + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or + Collections from You under this License, however, will not have + their licenses terminated provided such individuals or entities + remain in full compliance with those licenses. Sections 1, 2, 5, 6, + 7, and 8 will survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here + is perpetual (for the duration of the applicable copyright in the + Work). Notwithstanding the above, Licensor reserves the right to + release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the + terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + + 8. Miscellaneous + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to the + Work on the same terms and conditions as the license granted to You + under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, + Licensor offers to the recipient a license to the original Work on + the same terms and conditions as the license granted to You under + this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability + of the remainder of the terms of this License, and without further + action by the parties to this agreement, such provision shall be + reformed to the minimum extent necessary to make such provision + valid and enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + e. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in + this License were drafted utilizing the terminology of the Berne + Convention for the Protection of Literary and Artistic Works (as + amended on September 28, 1979), the Rome Convention of 1961, the + WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms + Treaty of 1996 and the Universal Copyright Convention (as revised + on July 24, 1971). These rights and subject matter take effect in + the relevant jurisdiction in which the License terms are sought to + be enforced according to the corresponding provisions of the + implementation of those treaty provisions in the applicable + national law. If the standard suite of rights granted under + applicable copyright law includes additional rights not granted + under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict + the license of any rights under applicable law. + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no + warranty whatsoever in connection with the Work. Creative Commons + will not be liable to You or any party on any legal theory for any + damages whatsoever, including without limitation any general, + special, incidental or consequential damages arising in connection + to this license. Notwithstanding the foregoing two (2) sentences, if + Creative Commons has expressly identified itself as the Licensor + hereunder, it shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of + doubt, this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/Ruleset Data b/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/Ruleset Data new file mode 100644 index 0000000..b05b77d Binary files /dev/null and b/EBWebView/EBWebView/Subresource Filter/Indexed Rules/38/10.34.0.84/Ruleset Data differ diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules new file mode 100644 index 0000000..1af8837 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules @@ -0,0 +1,58077 @@ +À +ÿï08@R +&rb=&uuid= +÷ï08@R -ad-manager/ +08@R -ad-sidebar. + 08@R-ad.jpg.pagespeed. +0ÿï* + wordpress.org08@R -ads-manager/ ++* + web-ads.org08@R -ads/assets/ +ýï08@R -assets/ads. +ýï08@R -banner-ads- +÷ï08@R -contrib-ads. +08@R -sponsor-ad. +08@R -web-advert- +)ïï* + +adriver.co08@R .adriver. + 08@R.ads.controller.js +yÿï* + advert.org.pl* + advert.media* + advert.ae* + advert.ge* + advert.io* + advert.ly08@R.advert. +ßï08@R.ar/ads/ +ÿï08@R .ashx?AdID= +ÿï08@R .aspx?adid= +ßï08@R.az/adv/ +ÿï08@R .biz/?ce= +ÿï08@R .biz/?re= +ÿï08@R .biz/?te= +ßï08@R.br/ads/ +ßï08@R.ca/ads/ +ÿï08@R.cfm?ad= +ÿï08@R.cgi?ad= +ÿï08@R .click/cuid/? +ÿï08@R +.click/rf/ +"08@R.club/js/popunder.js +08@R .cn/sc/*?n= +#ÿï08@R.com/*=bT1zdXY1JnI9 +ÿï08@R +.com/4/js/ +Jûï* + mediaplex.com* + warpwire.com* +wsj.com08@R.com/ad/ +‹ÿï* +advantabankcorp.com* +alltransistors.com* +archiproducts.com* +tritondigital.com* + adv.asahi.com08@R .com/adv/ +%ÿï08@R.com/api/posts?token= +ÿï08@R.com/exload.js +08@R .com/sc/*?n= + ÿï08@R.com/script/a.js +$ÿï08@R.com/script/asset.js +"ÿï08@R.com/script/cdn.js +,ÿï08@R.com/script/compatibility.js +'ÿï08@R.com/script/document.js +#ÿï08@R.com/script/file.js +)ÿï08@R.com/script/foundation.js +*ÿï08@R.com/script/frustration.js +$ÿï08@R.com/script/image.js +"ÿï08@R.com/script/mui.js +%ÿï08@R.com/script/script.js +$ÿï08@R.com/script/utils.js +#ÿï08@R.com/script/xbox.js +$ÿï08@R.com/watch.*.js?key= +#* +caoh.cz08@R.cz/adv/ +08@R +.cz/affil/ +08@R .cz/bannery/ + ßï08@R.fuse-cloud.com/ +ÿï08@R.html?clicktag= +'ÿï* + hs-exp.jp08@R.jp/ads/ +"ÿï08@R.lol/js/pub.min.js +ÿï08@R +.lol/sw.js +ßï08@R .net/ad2/ +*ÿï* + ylilauta.org08@R.org/ad/ +ßï08@R .org/ads/ +,ÿï08@R.org/script/compatibility.js +ÿï08@R.php?ad= +ÿï08@R .php?adsid=˜ +ÿï08@R .php?adv= +ÿï08@R.php?clicktag= +ßï08@R .php?zone_id= +ÿï08@R .php?zoneid= +ßï08@R.pk/ads/ +ßï08@R.pw/ads/ +ßï08@R.ru/ads/ +ÿï08@R .shop/gd/ +ÿï08@R +.shop/tsk/ +ÿï08@R .top/cuid/? +ÿï08@R .top/gd/*?md= +ÿï08@R /?abt_opts=1& +€08@R /?fp=*&poru= +ÿï08@R /?view=ad + 08@R /_fd?subid1= +ÿï08@R/a-ads. +ÿï08@R/a/?ad= +08@R/a/display.php? +08@R /ab_fl.js +08@R /aclib.js +ÿï08@R /ad--unit.htm +08@R /ad-choices- +08@R/ad-choices.png +08@R /ad-scripts-- +08@R /ad-scroll.js +ýï08@R /ad-server. +ßï08@R/ad.cgi? +08@R/ad.css? +ßï08@R /ad.html? +08@R +/ad.min.js +08@R/ad/ad_common.js +08@R /ad/getban? +08@R +/ad/image/ +/* +studiocalling.it08@R /ad/images/ +5* + eki-net.com* +jiji.com08@R/ad/img/ +08@R +/ad300.jpg +08@R +/ad728.png +ÿï08@R +/ad?count= +08@R /ad_728.jpg +08@R +/ad_728.js +)* + +ccf.com.cn08@R /ad_banner/ +08@R/ad_bottom.jpg +08@R /ad_bottom.js +€08@R/ad_counter.aspx +08@R /ad_header.js +08@R /ad_home.js +8* + dietnavi.com* +5nd.com08@R /ad_images/ +08@R/ad_img/ +08@R /ad_manager/ +ÿï08@R/ad_pos= +ÿï08@R /ad_position= +€08@R +/ad_right. +0* +spokane.exchange08@R /ad_rotator/ +€08@R/ad_server.cgi +ßï08@R /ad_side. + 08@R/ad_skyscraper.gif +08@R /ad_top.jpg +08@R +/ad_top.js +08@R/adanalytics.js +3ÿï08@R#/adaptive_components.ashx?type=ads& + 08@R/adaptvadplayer.js +08@R /adasync.js +08@R/adasync.min.js +08@R /adbanners/ª +08@R /adchoice.png +08@R /adcount.js + ÿï08@R/addyn|*;adtech; + ÿï08@R/addyn|*|adtech; +08@R /adengine.js +08@R/adfox/loader.js +"08@R/adfx.loader.bind.js +ÿî08@R /adhandler/ +#ÿï08@R/adiframe|*|adtech; +08@R /adimage. +08@R +/adimages. +08@R /adjs.php +08@R /adlayer.php +08@R +/adlog.php +08@R /admanager.js +08@R/admanager.min.js +SÏï* +admanager.line.biz* + blog.google* + sevio.com08@R /admanager/ +08@R /admgr.js +08@R /admitad.js +08@R /adocean.js +08@R/adpartner.min.js +** + adplayer.pro08@R +/adplayer. +08@R/adrecover-new.js +08@R /adrecover.js +@ßï* +aaahaltontaxi.ca* + adright.com08@R /adright. +08@R /ads-250. +08@R /ads-async. +08@R /ads-common. +08@R/ads-front.min.js +"08@R/ads-frontend.min.js +08@R/ads-native.js +!08@R/ads-templateslist. +!08@R/ads-vast-vpaid.js? +08@R/ads.bundle.js + 08@R/ads.bundle.min.js +€08@R /ads.cfm? +08@R /ads.jplayer. +ßï08@R/ads.pl? +ÿï08@R/ads/!rotator/ +€08@R /ads/300. +ÿï08@R /ads/acctid= +08@R /ads/banners/ +08@R /ads/cbr.js + 08@R/ads/custom_ads.js +ßï08@R /ads/footer. +08@R/ads/gam_prebid- +-ÿï08@R/ads/get-ads-by-zones/?zones% +08@R /ads/image/ +** + +eoffcn.com08@R /ads/images/ +ßï08@R /ads/index. +/ßï* +kuchechina.com08@R /ads/index/ +!ßï08@R/ads/leaderboard- +€08@R/ads/rectangle_ +08@R /ads/revgen. +08@R /ads/serve? +08@R +/ads/show. +08@R /ads/slideup. +08@R /ads/spacer. +08@R /Ads/sponsor. +0* +spoolimports.com08@R /ads/square- +ÿï08@R/ads/ta_wppas/ +ÿï08@R /ads/targeted +08@R /ads/video/ +%ßï* + ads-i.org08@R/ads1.ü +08@R/ads468. +08@R /ads468x60. +08@R/ads728. +08@R /ads728x90. +ÿï08@R /ads?client= +ÿï08@R/ads?id= +08@R /ads?object_ +ÿï08@R /ads?param= +ÿï08@R +/ads?zone= +ÿï08@R /ads?zone_id= +08@R /ads_banners/ +08@R/ads_bg. + 08@R/ads_controller.js +€08@R /ads_iframe. +08@R /ads_image/ +6* +wildlifeauctions.co.za08@R /ads_images/ +08@R +/adsAPI.js +08@R /adsbanner- +08@R /adsbanner/ +08@R/adscontroller.js +08@R /adscroll.js +€08@R /adsdelivery/ +08@R/adserv. +08@R /adserve/ +×ï08@R +/adserver. +08@R /adserver3. +%08@R/adsforwp-front.min.css +N* +theatreticketsdirect.co.uk* +kamaz-service.kz08@R +/adsimage/ +.* +bdjobstoday.com08@R /adsimages/ +08@R/adsimg/ +08@R /adslide.js +08@R/adsmanager.css +08@R/adsmanager.nsf/ +08@R/adsplugin/js/ +08@R /adsscript. +08@R /adsTracking. +08@R/adsWrapper.js +ÿï08@R /ads~adsize~ +ÿï08@R/adtech; +08@R /adtools.js +@ÿï* +adtrack.yacast.fr* + +adtrack.ca08@R /adtrack. +108@R#/adultdvdparadisecompopinsecound.js +"ÿï08@R/adunit/track-view +08@R +/adutil.js +08@R /adv-banner- +$08@R/adv-scroll-sidebar.js +08@R /adv-scroll. +ÿï08@R /adv_out.js +08@R /adv_vert.js + +08@R +/AdvAdsV3/ +A +* + wordpress.org* + transinfo.pl08@R/advanced-ads- +$08@R/advbanner.frontend.js +µÝï* +motortrader.com.my* + advert.com.tr* + advert.org.pl* + advert.media* + advert.club* + advert.ae* + advert.ee* + advert.ge* + advert.io08@R/advert. +'08@R/advertising/ad-shield.js +#08@R/advertising/banners/ +mÝï* +adverts.org.ua* + +0xacab.org* + +adverts.ie* + +github.com* + +gitlab.com08@R /adverts. +ßï08@R /adverts/ ++€08@R/advrotator_banner_largo.htm +08@R /adz/js/adz. +08@R /aff/banners/ +08@R /aff/images/ +08@R/aff_ad? +08@R /aff_banner/ +08@R /aff_banners/ò +08@R /affbanners/ +08@R/affiliate/ad/ +08@R/affiliate/ads/ + 08@R/affiliate/banner/ +!08@R/affiliate/banners/ +08@R/affiliateads/ + 08@R/affiliates/banner +ßï08@R /afr.php? +08@R +/afx_prid/ + 08@R/ajax/banner/vpn +! 08@R/ajax/banners?page= +# 08@R/ajax/embed-4/banners +08@R /ajs.php? +ÿï08@R /ajs?zoneid= +08@R/amazon-ad-link- +(÷ï08@R/amazon-associates-link- +ÿï08@R/amazonjs.css? +08@R/amp-ad- +08@R/amp-auto-ads- +08@R/amp-connatix- +08@R/amp-sticky-ad- +"08@R/amp-story-auto-ads- +!08@R/amp4ads-host-v0.js +'08@R/ane-popup-1/ane-popup.js +"08@R/ane-popup-banner.js +?* +ads.instacart.com* + www.ads.com08@R /api.ads. +08@R/api/ad. +08@R/api/direct/*?s1= + €08@R/api/users?token= +#ÿï08@R/api/v2/items/*?ev= +08@R /apopwin.js +08@R +/apstag.js +08@R /apu.php? +08@R +/arcads.js +08@R +/asset/ad/ +2ûï* +outlook.live.com08@R /assets/ads/ +08@R /asyncjs.php +ÿï08@R /asyncspc.php +08@R/awaps-ad-sdk- +ßï08@R /ban.php? +08@R /ban728x90. +08@R/banman/ad.aspx +Ýï08@R /banner-ad. +" +08@R/banner-ads-rotator/ ++* + 1agosto.com08@R /banner-ads/ + 08@R/banner-affiliate- +ÿï08@R /banner.asp? +08@R /banner.cgi? +8ßï* +research.hchs.hc.edu.tw08@R /banner.php +!„08@R/banner/affiliate/ +&ÿï08@R/banner/html/zone?zid= +08@R /banner_468. +-ßï* + clickbd.com08@R /banner_ads/ +8ßï* +coldwellbankerhomes.com08@R /bannerads/ +ßï08@R /banners.cgi? +08@R /banners/468 +08@R /banners/728 +ßï08@R /banners/ads- +ßï08@R /banners/ads. +ßï08@R /banners/adv/ +08@R/banners/affil/ +!08@R/banners/affiliate/ +&ÿï08@R/bobs/iframe.php?site= +6* +saltwaterisland.com08@R/bottom-ads.jpg¥ +08@R/bottom-ads.png +08@R /bottomad.png +08@R /bottomads.js +<08@R./bsa-plugin-pro-scripteo/frontend/js/script.js +508@R'/bsa-pro-scripteo/frontend/js/script.js +ÿï08@R /btag.min.js +(ÿï08@R/bundle/trafee/prelands/ +08@R/buysellads.js +#08@R/calcalist_gpt_ads.js +08@R/campaigns-ad/js/ +ßï08@R /cgi-bin/ad/ +ÿï08@R /click?adv= +08@R /cms_ads.js +&ÿï08@R/code/https-v2.js?uid= + 08@R/code/native.js?h= +08@R/code/pops.js?h= + 08@R/code/silent.js?h= +08@R /common/ad.js +08@R /common_ad.js +08@R /concert_ads- +08@R/content-ads.js +ßï08@R /content/ads/ +08@R/cpmbanners.js +08@R /css/ads- +08@R /css/adsense. +08@R /css/adv. +08@R/curveball/ads/ +(ÿï08@R/customer/ads/ad.php?id= +08@R/deliverad/fc.js +#ÿï08@R/delivery.php?zone= +‚08@R/delivery/ag.php + ‚08@R/delivery/apu.php + ‚08@R/delivery/avw.php +‚08@R/delivery/fc.php +†08@R/delivery/lg.php +ÿï08@R /dfp.min.js +08@R /dfp_async.js +08@R/dfpNew.min.js +08@R/didna_config.js +ÿï08@R /direct.hd?n= +"08@R/discourse-adplugin- +08@R/dist/adscript.js +08@R/dmcads_ +08@R/doubleclick.min +&08@R/drsup-admanager-ajax.js +08@R/ec5bcb7487ff.js +08@R /exitpop.js +08@R /exitpopup.js +08@R/exitsplash.php +08@R/exoads/ +PÝï* +exoclick.bamboohr.co.uk* +exoclick.kayako.com08@R +/exoclick. +08@R/exonb/ +08@R/exonob/ +ÿï08@R/exports/tour/ + €08@R/exports/tour_20/ +08@R /external/ad. +08@R/external/ads/ +08@R +/fel456.js +08@R /fgh1ijKl.js +€08@R /flashad.asp +08@R /flashad.js +08@R /float_ad.js +08@R +/floatads. +# +08@R/floating-ad-rotator-¹ +08@R/floatingad.js +08@R/floatingads.js +/* +streamruby.com08@R /footer_ad.js +€08@R/footer_ads.php +08@R/footerads.php +08@R +/fro_lo.js +!08@R/frontend_loader.js +08@R /ftt2/js.php +#ÿï08@R/funcript*.php?pub= + 08@R/gdpr-ad-script.js + 08@R/geniee-adblock.js +€08@R/get/?go=1&data= +€08@R/get?go=1&data= + 08@R/globals_ps_afc.js +08@R/google_adsense- + ÿï08@R/gospel2Truth.js +08@R/gpt.js + 08@R/gpt_ads-public.js + 08@R/GunosyAdsSDKv2.js +08@R /house-ads/ +08@R /hoverad.js +!ÿï08@R/hserver/channel= +ÿï08@R/hserver/site= +08@R /ht.js?site_ +08@R +/image/ad/ +)* + +edatop.com08@R /image/ads/ +08@R/image/affiliate/ +08@R +/imageads/ +08@R /images2/Ads/ +9ßï* + novelgame.jp* + weblio.jp08@R/img/ad/ +08@R /img/aff/ +9* + ehonnavi.net* + daily.co.jp08@R/img_ad/ +ÿï08@R +/in/?tour= +ÿï08@R/in/show/?mid= +!ÿï08@R/in/show/?tag_ab= +08@R /include/ad/ +08@R/includes/ads/ +08@R +/index-ad- +08@R /index-ad.js +08@R +/index_ad/ + 08@R/infinity.js.aspx? +08@R /inhouse_ads/ +€08@R/inlineads.aspx +08@R /insertads.js +08@R/internAds.css +08@R/istripper.gif +ÿï08@R/jquery.adi.js +ÿï08@R/jquery.adx.js? +ÿï08@R/jquery.dfp.js? +#ÿï08@R/jquery.dfp.min.js? +"08@R/jquery.lazyload-ad- +&ÿï08@R/jquery.lazyload-ad.js +#ÿï08@R/jquery.openxtag.js +$ÿï08@R/jquery.overlayad.js +#ÿï08@R/jquery.popunder.js +08@R/js/ad_common.js +08@R/js/adpopup.js +08@R/js/advRotator.js +08@R +/js/dfp.js +ÿï08@R /js/flyad.js +.ÿï08@R/js/pushjs/1.0.0/subscriber.js +08@R/jsAds-1.4.min.js +ÿï08@R/jshexi.hj?lb= +08@R/jspopunder.js˜ + 08@R/jspopunder.min.js +08@R/lazyad-loader.js +#08@R/lazyad-loader.min.js +08@R /left_ads.js +08@R +/leftad.js +08@R /leftad.png +-08@R/legion-advertising-atlasastro/ +%08@R/li.blogtrottr.com/imp? +€08@R/link?z= +0ßï* +livejasmin.com08@R /livejasmin. + 08@R/lmaz-ads-bannesr/ +€08@R /mads.php +08@R /maven/am.js +08@R /media/ads/ +08@R /media_ads/ +08@R /microad.js +08@R /mnpw3.js ++ßï08@R/mod_ijoomla_adagency_zone/ +#08@R/mod_pagepeel_banner/ +08@R/module-ads-html- +ßï08@R /module/ads/ +ßï08@R /modules/ad/ +ßï08@R /modules/ads/ +08@R/MPUAdHelper.js +ÿï08@R /mw.min.js?z= +*08@R/mysimpleads/mysa_output.php +!€08@R/native/ts-master. +08@R/nativeads-v2.js +08@R /nativeads.js + 08@R/nativeads/script/ +008@R"/nativebanner/ane-native-banner.js +08@R/nb/frot_lud.js +08@R /neverblock/ +08@R/new/floatadv.js +ÿï08@R/ntv.json?key= +08@R/nwm-pw2.min.js +@ÿï08@R0/nxst-advertising/dist/htlbid-advertising.min.js +#08@R/oiopub-direct/js.php +08@R /oncc-ad.js +08@R/oncc-adbanner.js +ÿï08@R +/p?zoneId= +ßï08@R +/page-peel +#08@R/pagead/1p-user-list/ +#08@R/pagead/conversion.js +08@R /pageear.js +08@R /pageear/ +ßï08@R +/pagepeel. +08@R/pagepeelpro.js? +08@R/partnerads/js/ + €08@R/partneradwidget. +/ßï* + +toltech.cn08@R/partnerbanner. +08@R/partners/ads/ +08@R +/peel.php? +08@R /peelads/ +ÿï08@R /pfe/current/ +08@R/phpads/ +08@R /phpadsnew/ +ßï08@R /phpbb_ads/ +08@R /pix/ads/ +ÿï08@R /pixel/puclc? +ÿï08@R /pixel/pure +ÿï08@R /pixel/purs? +ÿï08@R /pixel/purst? +ÿï08@R /pixel/sbe?· +ßï08@R /player/ads/ + +08@R/plg_adbutlerads/ +08@R /plugin/ad/ +208@R$/plugins/ad-invalid-click-protector/ ++08@R/plugins/adrotate-pro-latest/ +$08@R/plugins/adrotate-pro/ + 08@R/plugins/adrotate/ +ßï08@R /plugins/ads/ + 08@R/plugins/adsanity- +Kÿï* + wordpress.org* + transinfo.pl08@R/plugins/advanced-ads/ +/ +08@R!/plugins/ane-banners-entre-links/ +$ßï08@R/plugins/ane-preroll +" +08@R/plugins/cactus-ads/ +"08@R/plugins/cpx-advert/ +08@R/plugins/dx-ads/ +  +08@R/plugins/easyazon- +,08@R/plugins/meks-easy-ads-widget/ +* +08@R/plugins/mts-wp-in-post-ads/ +#08@R/plugins/popunderpro/ +) +08@R/plugins/thirstyaffiliates/ ++÷ï08@R/plugins/ultimate-popunder/ +08@R /pop_8/pop_8_ +08@R /popin-min.js +#ÿï08@R/popunder/in/click/ +08@R /popunder1.js +08@R/popunder1000.js + 08@R/popup-domination/ +08@R +/popup2.js +08@R +/popup3.js +08@R /popup_ad.js +08@R/popup_code.php +08@R /popupads.js + ÿï08@R/prbt/v1/ads/?_= +08@R +/prism_ad/ +*08@R/processing/impressions.asp? +08@R/production/ad- +08@R/production/ads/ +ÿï08@R /promo.php?c= +ßï08@R /promo/ads/ +€08@R /promotools. +08@R /public/ad/ +08@R /public/ads/ +ßï08@R /publicidad/ +ßï08@R /publicidade. +ßï08@R /publicidade/ +ßï08@R/publicidades/ +ÿï08@R /push/p.js? +#08@R/rad_singlepageapp.js +$ÿï08@R/rb/agent2.php?spot= +08@R /RdmAdFeed.js +!ÿï08@R/rdrr/renderer.js +ßï08@R/RealMedia/ads/ +#ÿï08@R/redirect/?spot_id= +Oßï* +cloudflare.com* + reklam.com.tr* + +github.com08@R/reklam/ +08@R /reklama2.jpg ++* + +aerokuz.ru08@R /reklama2.png +08@R /reklama3.jpg +08@R /reklama3.png +08@R /reklama4.jpg +08@R /reklama4.png +ßï08@R /reklame/ +08@R /ren.gif? +ßï08@R/resources/ads/ +€08@R/responsive/ad_¬ + 08@R/responsive_ads.js +ÿï08@R/revopush_v2.js +ßï08@R /right_ads. +08@R /rightad.js +08@R /s.ashx?btag +ÿï08@R/sbar.json?key= +08@R/sc-tagmanager/ + ÿï08@R/script/aclib.js +ÿï08@R/script/antd.js +'ÿï08@R/script/app_settings.js +ÿï08@R/script/atg.js +ÿï08@R/script/atga.js +ÿï08@R/script/g0D.js +&ÿï08@R/script/g0dL0vesads.js + ÿï08@R/script/intrf.js +ÿï08@R/script/ippg.js + 08@R/script/java.php? + ÿï08@R/script/jeSus.js +ÿï08@R/script/liB1.js +ÿï08@R/script/liB2.js +ÿï08@R/script/naN.js +(ÿï08@R/script/native_render.js +(ÿï08@R/script/native_server.js +#ÿï08@R/script/npa2.min.js +ÿï08@R/script/nwsu.js + ÿï08@R/script/suv4r.js +#ÿï08@R/script/thankYou.js +!ÿï08@R/script/uBlock.js +! 08@R/script/wait.php?*= + ÿï08@R/script/xxAG1.js +!ÿï08@R/scripts/FlyAd.js + 08@R/scripts/js3caf.js +#ÿï08@R/scripts/lchjs.php? +#ÿï08@R/scripts/tr2.min.js +#ÿï08@R/sdk/push_web/?zid= + ‚08@R/servead/request/ +08@R /serveads.php +08@R/servlet/view/ +08@R /set_adcode? +08@R /show-ad.js +08@R /show_ad.js +08@R /showban.asp? +08@R/showbanner.js +ßï08@R +/side-ads- +ßï08@R +/side-ads/ +ßï08@R +/side_ads/ +08@R +/sidead.js +08@R /sidead1.js +08@R /sideads.js +08@R/sidebar_ad.jpg +08@R/sidebar_ad.png +ßï08@R /sidebar_ads/ +&ÿï08@R/site=*/size=*/viewid= +&ÿï08@R/site=*/viewid=*/size= +(ÿï08@R/size=*/random=*/viewid= +08@R /skin/ad/ +ßï08@R +/skin/adv/ +08@R/skyscraperad. +%08@R/slide_in_ads_close.gif +08@R /slider_ad.js +08@R /sliderad.js +'* + eh-ic.com08@R +/small_ad. +08@R /sp/delivery/ +ÿï08@R /spacedesc=£ +08@R /spc.php? +08@R +/spcjs.php +%08@R/special/specialCtrl.js +08@R /sponsor-ad +08@R/sponsorad.jpg +-* + hmassoc.org08@R/sponsorad.png +!08@R/sponsored_link.gif +08@R/sponsors/ads/ +08@R /squaread.jpg +08@R/sticky_ads.js +08@R /stickyad.js +08@R /stickyads.js +08@R /style_ad.css +ÿï08@R /suurl4.php? +ÿï08@R /suurl5.php +ÿï08@R/suv4.js +ÿï08@R/suv5.js +08@R/Sw_commonAD.js + 08@R/taboola-footer.js + 08@R/taboola-header.js +08@R/taboola_8.9.1.js +08@R/targetingAd.js +08@R/targetpushad.js +08@R/tmbi-a9-header- +08@R /tncms/ads/ +08@R /tnt.ads. +ßï08@R/top-ad. +)ßï* + sunco.co.jp08@R/top_ad. +ßï08@R /top_ads. +€08@R /topad.html +‚08@R/triadshow.asp +ÿï08@R/ttj?id= +008@R"/umd/advertisingWebRenderer.min.js +ÿï08@R +/ut.js?cb= +ÿï08@R/utx?cb= +ÿï08@R/v2/a/push/js/ +ÿï08@R +/v2/a/skm/ +ÿï08@R /vast/?zid= +"08@R/velvet_stack_cmp.js +ÿï08@R /vendors~ads. +08@R /video_ads. +)ßï* + +videoad.in08@R /videoad. +08@R /videoad/ +ßï08@R +/videoads/ + +08@R /videojs.ads- +08@R/videojs.ads.css +08@R/videojs.sda.js +€08@R /view/ad/ +08@R/view_banner.php +08@R/virtuagirlhd. +"ÿï08@R/waWQiOjE*=eyJ.js^ +08@R /web/ads/ +08@R /web_ads/ +:* +meatingplace.com* +cccc.edu08@R/webads/ +€08@R/widget-advert? +% +08@R/wordpress-ads-plug-in/ +' +08@R/wp-auto-affiliate-links/ + +08@R/wp-bannerize- + +08@R/wp-bannerize. + +08@R/wp-bannerize/ + ßï08@R/wp-content/ads/ +%08@R/wp-content/mbp-banner/ +4 +08@R&/wp-content/plugins/amazon-auto-links/ +Dÿï08@R4/wp-content/plugins/amazon-product-in-a-post-plugin/¯& +<ÿï08@R,/wp-content/plugins/automatic-social-locker/ +108@R#/wp-content/plugins/banner-manager/ +>ÿï08@R./wp-content/plugins/bookingcom-banner-creator/ +:ÿï08@R*/wp-content/plugins/bookingcom-text2links/ +3ßï08@R#/wp-content/plugins/fasterim-optin/ +-08@R/wp-content/plugins/m-wp-popup/ +0 +08@R"/wp-content/plugins/platinumpopup/ +( +08@R/wp-content/plugins/popad/ +108@R#/wp-content/plugins/the-moneytizer/ +:ÿï08@R*/wp-content/plugins/useful-banner-manager/ +- +08@R/wp-content/plugins/wp-ad-guru/ +508@R'/wp-content/plugins/wp-super-popup-pro/ +108@R#/wp-content/plugins/wp-super-popup/ +Bÿï08@R2/wp-content/uploads/useful_banner_manager_banners/ +" +08@R/wp-popup-scheduler/ +* +08@R/wp_pro_ad_system/templates/ + 08@R/wpadgu-adblock.js +08@R/wpadgu-clicks.js +!08@R/wpadgu-frontend.js +!08@R/wpbanners_show.php +08@R/wppas.min.css +08@R /wppas.min.js +08@R/wpxbz-theme.js +‚08@R/www/delivery/ +08@R +/xpopup.js +$ÿï08@R/zone?pub=*&zone_id= +ÿï08@R +/~cdn/ads/ +%ÿï08@R://a.*/ad-provider.js +ÿï08@R ://a.ads. +ÿï08@R +://ad-api- +ÿï08@R://ad1. +€08@R://adn.*/zone/ +áÛï* +ads.atmosphere.copernicus.eu* +ads.realizeperformance.com* +ads.elevateplatform.co.uk* +ads.mercadolivre.com.br* +ads.colombiaonline.com* +ads.viksaffiliates.com* +ads.siriusxmmedia.com* +ads.socialtheater.com* +ads.buscaempresas.co* +ads.business.bell.ca* +ads.adstream.com.ro* +ads.mojagazetka.com* +ads.studyplus.co.jp* +ads.8designers.com* +ads.bestprints.biz* +ads.scotiabank.com* +ads.cafebazaar.ir* +ads.instacart.com* +ads.microsoft.com* +ads.midwayusa.com* +ads.mobilebet.com* +ads.pinterest.com* +ads.shopee.com.br* +ads.shopee.com.mx* +ads.shopee.com.my* +ads.smartnews.com* +ads.us.tiktok.com* +ads.bikepump.com* +ads.doordash.com* +ads.jiosaavn.com* +ads.listonic.com* +ads.rohlik.group* +ads.safi-gmbh.ch* +ads.shopee.co.th* +ads.snapchat.com* +ads.dosocial.ge* +ads.dosocial.me* +ads.harvard.edu* +ads.kaipoke.biz* +ads.luarmor.net* +ads.msstate.edu* +ads.spotify.com* +ads.taboola.com* +ads.twitter.com* +ads.allegro.pl* +ads.comeon.com* +ads.google.com* +ads.gurkerl.at* +ads.magalu.com* +ads.nipr.ac.jp* +ads.selfip.com* +ads.tiktok.com* +ads.typepad.jp* + ads.apple.com* + ads.brave.com* + ads.chewy.com* + ads.google.cn* + ads.knuspr.de* + ads.rohlik.cz* + ads.shopee.cn* + ads.shopee.kr* + ads.shopee.ph* + ads.shopee.pl* + ads.shopee.sg* + ads.shopee.tw* + ads.shopee.vn* + ads.watson.ch* + reempresa.org* + ads.gree.net* + ads.kifli.hu* + ads.mgid.com* + ads.remix.es* + ads.route.cc* + ads.tuver.ru* + ads.axon.ai* + ads.cvut.cz* + ads.finance* + +ads.amazon* + +ads.mst.dk* + +ads.olx.pl* + +ads.vk.com* + +ads.yandex* + ads.ac.uk* + ads.vk.ru* + ads.x.com* +ads.band* +ads.fund* + +ads.am* + +ads.mt* + +ads.nc08@R://ads. +ÿï08@R://ads2. +ÿï08@R ://adsbb. +ÿï08@R ://adserving. +ÿï08@R ://adsrv. +ÿï08@R ://adsserver. +„ÿï* +adv.peronihorowicz.com.br* +adv.hokkaido-np.co.jp* +advancedradiology.com* +adv.cryptonetlabs.it* +adv.neosystem.co.uk* +adv.chunichi.co.jp* +adv.michaelgat.com* +adv.lack-girl.com* +adv.yomiuri.co.jp* +adv.digimatix.ru* +adv.cincsys.com* +adv.mcu.edu.tw* + adv.asahi.com* + adv.kompas.id* + adv.trinet.ru* + adv.mcr.club* + typeform.com* + welaika.com* + +adv.design* + +adv.msk.ru* + +farapp.com* + adv.tools* + advids.co* + pracuj.pl* +adv.blue* +adv.rest* +adv.bet* + +adv.ec* + +adv.ee* + +adv.gg* + +adv.ru* + +adv.ua* + +adv.vg* + +r7.com08@R://adv. +ÿï08@R ://aff-ads. +ÿï08@R ://affiliate. +ÿï08@R://affiliates. +ÿï08@R://affiliates2. +ÿï08@R +://banner. +ÿï08@R ://banners. +(ÿï08@R://news-*/process.js?id= +"ÿï08@R://news-*/v2-sw.js +ÿï08@R://oascentral. +bÿë* +shopifycloud.com* + myshopify.com* + slidely.com* + promo.com08@R ://promo. +ÿï08@R ://pt.*?psid= +08@R://sli.*/imp?s= + 08@R://uads. +ÿï08@R ?ab=1&zoneid= +,ÿï* +sponichi.co.jp08@R?adspot_ +6ÿï* +ads.pinterest.com08@R?advertiser_id= +%ÿï08@R?cs=*&abt=0&red=1&sm= +€08@R ?key=*&uuid= +ÿï08@R ?service=ad& +ÿï08@R ?usid=*&utid= +"ÿï08@R?whichAd=freestar& +ÿï08@R ?wppaszoneid= + ÿï08@R?wpstealthadsjs= +08@R_ad_250. +08@R_ad_300.µ +-ÿï* + linkedin.com08@R _advertise- +ßï08@R_advertisment. +08@R _images/ad. +*ÿï* + youtube.com08@R _reklama_ +*ÿï08@Rcacheserve.*/promodisplay/ +*ÿï08@Rcacheserve.*/promodisplay? ++ÿï08@Ronline.*/promoredirect?key= +%ÿï08@R/render-ad.php?ad_id= +-ÿï08@R/render-sidebar-ad.php?ad_id= +08@R /ad-shield/e/ +)¢08@R://www.*.xyz/content/*/-1/ +(€08@R://www.*.xyz/content/*/a/ +'08@R://www.*.xyz/content/*?h= +*08@R://www.*.xyz/script/*.com.js +#ÿï08@Rwss://www.*.xyz/ws^ +08@R.com/ed/java.js +08@R /ed/fol457. +208@R$/plugins/ad-ace/assets/js/coupons.js +708@R)/plugins/ad-ace/assets/js/slot-slideup.js +808@R*/plugins/ad-ace/includes/shoppable-images/ + €08@R/Ads/bid300a.aspx + €08@R/Ads/bid300b.aspx + €08@R/Ads/bid300c.aspx +€08@R/Ads/bid728.aspx +€08@R/e/cm? +08@R/e/ir? +ÿï08@R/in/track?data= +%ÿï08@R/senddata?site=banner +%ÿï08@R/senddata?site=inpage +08@R +/ntfc.php? +ÿï08@R .com/src/ppu/ +ÿï08@R/aas/r45d/vki/ +!ÿï08@R/bultykh/ipp24/7/ +!ÿï08@R/ceef/gdt3g0/tbt/ +$ÿï08@R/fyckld0t/ckp/fd3w4/ +08@R /i/npage/ +08@R /lv/esnk/ +%ÿï08@R/pn07uscr/f/tr/zavbn/ +ÿï08@R/q/tdl/95/dnt/ +!ÿï08@R/sc4fr/rwff/f9ef/ +"ÿï08@R/script/awesome.js +ÿï08@R/ssp/req/*/?pb= + ÿï08@R/t/9/heis/svewg/ +08@R/tabu/display.js +‚08@R/myvids/click/ +‚08@R/myvids/mltbn/ +‚08@R/myvids/mltbn2/ +‚08@R /myvids/rek/ +2ÿï08@R"://rs-stripe.wsj.com/stripe/image? + 08@R/?l=*&s=*&mprtr= +$08@R/push-skin/skin.min.js +$ÿï08@R/search/tsc.php?ses= +"08@R/full-page-script.js +€08@R /earn.php?z= +08@R /pop2.js?r= +)08@R/beardeddragon/armadillo.js +%08@R/beardeddragon/drake.js ++08@R/beardeddragon/gilamonster.js +&08@R/beardeddragon/iguana.js +(08@R/beardeddragon/tortoise.js +&08@R/beardeddragon/turtle.js +&08@R/beardeddragon/wyvern.js +(08@R/detroitchicago/anaheim.js +(08@R/detroitchicago/augusta.js¢ ++08@R/detroitchicago/birmingham.js +&08@R/detroitchicago/boise.js +'08@R/detroitchicago/cmbdv2.js +&08@R/detroitchicago/cmbv2.js +'08@R/detroitchicago/denver.js +(08@R/detroitchicago/gateway.js +(08@R/detroitchicago/houston.js +&08@R/detroitchicago/kenai.js +(08@R/detroitchicago/memphis.js +,08@R/detroitchicago/minneapolis.js +)08@R/detroitchicago/portland.js +(08@R/detroitchicago/raleigh.js +*08@R/detroitchicago/reportads.js +*08@R/detroitchicago/rochester.js +,08@R/detroitchicago/sidebarwall.js +,08@R/detroitchicago/springfield.js +*08@R/detroitchicago/stickyfix.js +&08@R/detroitchicago/tampa.js +&08@R/detroitchicago/tulsa.js +'08@R/detroitchicago/tuscon.js +&08@R/detroitchicago/vista.js +&08@R/detroitchicago/vpp.gif? +(08@R/detroitchicago/wichita.js +08@R/edmonton.webp +08@R /ezcl.webp? +08@R /ezf-min. +_* + +yandex.com* + yandex.by* + yandex.kz* + yandex.ru* + yandex.ua08@R/ezo/ +08@R/ezoic/ +08@R/jellyfish.webp +&08@R/parsonsmaize/abilene.js +&08@R/parsonsmaize/chanute.js +&08@R/parsonsmaize/mulvane.js +%08@R/parsonsmaize/olathe.js +(08@R/tardisrocinante/austin.js ++08@R/tardisrocinante/surgeonv2.js +(08@R/tardisrocinante/vitals.js +08@R.prebid-bundle.js +(ÿï* + +prebid.org08@R.prebid. +#08@R/ad/postbid_handler1. +08@R /ads/prebid8- +"08@R/ads_prebid_async.js + 08@R/dist/adsPrebid.js +08@R/gpt-prebid.js +#08@R/pbjsandwichdirecta9- + 08@R/plugins/prebidjs/ +08@R /porpoiseant/ +08@R /prebid-js- +08@R/prebid-load.js +08@R /prebid-min- + 08@R/prebid-wrapper.js +&* + +prebid.org08@R/prebid. +08@R/prebid/ +08@R /prebid1. +08@R /prebid2. +08@R /prebid3. +08@R /prebid4. +08@R /prebid5. +08@R /prebid6. +08@R /prebid7. +08@R /prebid8. +08@R /prebid9. +08@R/prebid_ +08@R /prebidlink/ +*ÿï* + abelssoft.de08@R/tagman/´ +08@R +_prebid.js +ÿï08@R&sadbl=1&abtg= +ÿï08@R &sadbl=1&chu= +-08@R/webservices/jsparselinks.aspx? +08@R/jquery.peelback. +# +08@R/ad-blocking-advisor/ +!08@R/ad-blocking-alert/ +08@R/adblock-detect. +&08@R/adblock-detector.min.js +& +08@R/adblock-notify-by-bweb/ +!08@R/adblock_detector2. +08@R/adblock_logger. +08@R/adblockdetect.js +08@R/adBlockDetector/ +%08@R/ads-blocking-detector. +÷ï08@R/anti-adblock/ +.08@R /blockblock/blockblock.jquery.js +08@R/jgcabd-detect- + +08@R /no-adblock/ +ÿï08@R -120-600. +ÿï08@R -120_600_ +ÿï08@R -120x600- +ÿï08@R -120x600. +ÿï08@R -120x600_ +ÿï08@R -160-600. +„08@R -160x600- +ÿï08@R -160x600. +ÿï08@R -160x600_ +ÿï08@R -300-250. +08@R -300x250- +ÿï08@R -300x250_ +ÿï08@R -300x600. +ÿï08@R-460x68. +ÿï08@R -468-100. +ÿï08@R-468-60- +ÿï08@R-468-60. +ÿï08@R-468-60_ +ÿï08@R-468_60. +ÿï08@R-468x60- +ÿï08@R-468x60. +ÿï08@R-468x60/ +ÿï08@R-468x60_ +ÿï08@R-468x70. +08@R-468x80- +ÿï08@R-468x80. +ÿï08@R-468x80/ +ÿï08@R-468x80_ +ÿï08@R-468x90. +ÿï08@R-480x60- +ÿï08@R-480x60. +ÿï08@R-480x60/ +ÿï08@R-480x60_ +ÿï08@R-486x60. +ÿï08@R -500x100. +ÿï08@R-600x70. +ÿï08@R-600x90- +ÿï08@R-720x90- +ÿï08@R-720x90. +ÿï08@R-728-90- +ÿï08@R-728-90. +ÿï08@R-728.90. +ÿï08@R-728x90- +ÿï08@R-728x90. +ÿï08@R-728x90/ª +ÿï08@R-728x90_ +ÿï08@R-729x91- +ÿï08@R-780x90- +ÿï08@R-980x60- +ÿï08@R-988x60. +ÿï08@R .120x600. +ÿï08@R .160x600. +ÿï08@R .160x600_ +ÿï08@R .300x250. +ÿï08@R .300x250_ +ÿï08@R.468x60- +ÿï08@R.468x60. +ÿï08@R.468x60/ +ÿï08@R.468x60_ +ÿï08@R.468x80- +ÿï08@R.468x80. +ÿï08@R.468x80/ +ÿï08@R.468x80_ +ÿï08@R.480x60- +ÿï08@R.480x60. +ÿï08@R.480x60/ +ÿï08@R.480x60_ +ÿï08@R.728x90- +ÿï08@R.728x90/ +ÿï08@R.728x90_ +ÿï08@R .900x100. +ÿï08@R /120-600- +ÿï08@R /120-600. +ÿï08@R /120_600/ +ÿï08@R /120_600_ +ÿï08@R /120x600- +ÿï08@R /120x600. +ÿï08@R /120x600/ +ÿï08@R /120x600_ +ÿï08@R /125x600- +ÿï08@R /125x600_ +ÿï08@R /130x600- +ÿï08@R /160-600- +ÿï08@R /160-600. +ÿï08@R /160_600_ +ÿï08@R /160x400- +ÿï08@R /160x400_ +ÿï08@R /160x600- +ÿï08@R /160x600. +ÿï08@R /160x600/ +ÿï08@R /160x600_ +ÿï08@R /190_900. +ÿï08@R /300-250- +ÿï08@R /300-250. +ÿï08@R /300-600_ +ÿï08@R /300_250_ +ÿï08@R /300x150_ +ÿï08@R /300x250- +08@R /300x250. +ÿï08@R /300x250_ +ÿï08@R +/300x250b. +ÿï08@R /300x350. +ÿï08@R /300x600- +ÿï08@R /300x600_ +ÿï08@R +/300xx250. +08@R /320x250. +ÿï08@R /335x205_ +ÿï08@R /336x280- +ÿï08@R /336x280.� +ÿï08@R /336x280_ +ÿï08@R/428x60. +ÿï08@R/460x60. +ÿï08@R/460x80_ +ÿï08@R/468-20. +ÿï08@R/468-60- +ÿï08@R/468-60. +ÿï08@R/468-60_ +08@R/468_60. +ÿï08@R/468_60_ +ÿï08@R/468_80. +ÿï08@R/468_80/ +ÿï08@R /468x060. +ÿï08@R /468x060_ +ÿï08@R /468x150- +ÿï08@R /468x280. +ÿï08@R /468x280_ +ÿï08@R/468x60- +ýï08@R/468x60. +ÿï08@R/468x60/ +ÿï08@R/468x60_ +ÿï08@R/468x72. +ÿï08@R/468x72_ +ÿï08@R/468x80- +ÿï08@R/468x80. +ÿï08@R/468x80_ +ÿï08@R /470x030_ +ÿï08@R /480x030. +ÿï08@R /480x030_ +ÿï08@R/480x60- +ÿï08@R/480x60. +ÿï08@R/480x60/ +ÿï08@R/480x60_ +ÿï08@R/480x70_ +ÿï08@R/486x60_ +ÿï08@R/496_98_ +ÿï08@R /600-160- +ÿï08@R/600-60. +ÿï08@R/600-90. +ÿï08@R /600_120_ +ÿï08@R/600_90_ +ÿï08@R/600x75_ +08@R/600x90. +ÿï08@R/60x468. +ÿï08@R /640x100/ +ÿï08@R/640x80- +ÿï08@R /660x120_ +ÿï08@R /700_100_ +ÿï08@R /700_200. +ÿï08@R /700x100. +ÿï08@R/728-90- +ÿï08@R/728-90. +ÿï08@R/728-90/ +ÿï08@R/728-90_ +ÿï08@R /728_200. +ÿï08@R /728_200_ +ÿï08@R/728_90. +ÿï08@R/728_90/ +ÿï08@R/728_90_ +ÿï08@R/728x90- +08@R/728x90. +ÿï08@R/728x90/ +ÿï08@R/728x90_ +ÿï08@R /750-100.¯ +ÿï08@R /750_150. +ÿï08@R /750x100. +ÿï08@R /760x120. +ÿï08@R /760x120_ +ÿï08@R/760x90_ +ÿï08@R/768x90- +ÿï08@R/768x90. +ÿï08@R/780x90. +ÿï08@R /800x160/ +ÿï08@R/80x468_ +ÿï08@R/960_60_ +ÿï08@R/980x90. +ÿï08@R /w300/h250/ +ÿï08@R +/w728/h90/ +ÿï08@R =300x250/ +ÿï08@R =336x280, +ÿï08@R=468x60/ +ÿï08@R=468x60_ +ÿï08@R=468x80_ +ÿï08@R=728x90/ +ÿï08@R _120_600. +ÿï08@R _120_600_ +ÿï08@R _120x240. +ÿï08@R _120x500. +ÿï08@R _120x600- +ÿï08@R _120x600. +ÿï08@R _120x600_ +ÿï08@R _125x600_ +ÿï08@R _128x600. +ÿï08@R _140x600. +ÿï08@R _140x600_ +ÿï08@R _150x700_ +ÿï08@R _160-600. +ÿï08@R _160_600. +ÿï08@R _160_600_ +ÿï08@R _160x300. +ÿï08@R _160x300_ +ÿï08@R _160x350. +ÿï08@R _160x400. +ÿï08@R _160x600- +ÿï08@R _160x600. +ÿï08@R _160x600/ +ÿï08@R _160x600_ +ÿï08@R _300-250- +ÿï08@R _300x250- +ÿï08@R _300x250. +ÿï08@R _300x250_ +ÿï08@R _300x600. +ÿï08@R _300x600_ +ÿï08@R _320x250_ +ÿï08@R _323x120_ +ÿï08@R _336x120. +ÿï08@R _350_100. +ÿï08@R _350_100_ +ÿï08@R _350x100. +ÿï08@R_400-80. +ÿï08@R_400x60. +ÿï08@R_400x68. +ÿï08@R_420x80. +ÿï08@R_420x80_ +ÿï08@R_438x50. +ÿï08@R_438x60. +ÿï08@R_438x60_ +ÿï08@R_460_60.Š +ÿï08@R_460x60. +ÿï08@R_468-60. +ÿï08@R_468-60_ +ýï08@R_468_60- +ÿï08@R_468_60. +ÿï08@R_468_60_ +ÿï08@R_468_80. +ÿï08@R_468_80_ +ÿï08@R _468x060- +ÿï08@R _468x060. +ÿï08@R _468x060_ +ÿï08@R _468x100. +ÿï08@R _468x100_ +ÿï08@R _468x118. +ÿï08@R _468x120. +ÿï08@R_468x60- +ÿï08@R_468x60. +ÿï08@R_468x60/ +ÿï08@R_468x60_ +ÿï08@R _468x60b. +ÿï08@R_468x80- +ÿï08@R_468x80. +ÿï08@R_468x80/ +ÿï08@R_468x80_ +ÿï08@R_468x90. +ÿï08@R_468x90_ +ÿï08@R_480_60. +ÿï08@R_480_80_ +ÿï08@R_480x60- +ÿï08@R_480x60. +ÿï08@R_480x60/ +ÿï08@R_480x60_ +ÿï08@R_486x60. +ÿï08@R_486x60_ +ÿï08@R _700_100_ +ÿï08@R _700_150_ +ÿï08@R _700_200_ +ÿï08@R_720_90. +ÿï08@R_720x90. +ÿï08@R_720x90_ +ÿï08@R_728-90. +ÿï08@R_728-90_ +ÿï08@R_728_90. +ÿï08@R_728_90_ +ÿï08@R_728x60. +ÿï08@R_728x90- +ÿï08@R_728x90. +ÿï08@R_728x90/ +ÿï08@R_728x90_ +ÿï08@R _750x100. +ÿï08@R _760x100. +ÿï08@R_768x90_ +ÿï08@R _800x100. +ÿï08@R_800x80_ +#AC_ad #AD_160 #AD_300 +#AD_468x60 #AD_G #AD_L #AD_ROW #AD_Top #AD_text +#ADboxê #Ad-3-Slider #Ad-4-Slider #Ad-Container #Ad-Content #Ad-Top  #AdBanner +#AdBar  #AdBigBox #AdBillboard#AdBottomLeader#AdBottomRight #AdBox2  #AdColumn#AdContainerTop +#AdContent #AdDisclaimer  #AdHeader  #AdMiddle #AdPopUp#AdRectangleBanner  #AdSense1  #AdSense2  #AdSense3  #AdServer #AdSkyscraper#AdSlot_megabanner#AdSpaceLeaderboard +#AdTop #AdTopLeader#AdWidgetContainer#AdWrapperSuperCA #AdZone1 #AdZone2#Ad_BelowContent  #Ad_Block#Ad_TopLeaderboard  #Adbanner #Adlabel #AdsBannerTop #AdsBillboard#AdsBottomContainer #AdsContent #AdsDiv  #AdsFrame#AdsPubperform  #AdsRight #AdsSky#AdsTopContainer #AdsWrap +#Ads_BA_BS #Ads_BA_BUT #Ads_BA_BUT2#Ads_BA_BUT_box #Ads_BA_CAD #Ads_BA_CAD2 #Ads_BA_FLB #Ads_BA_SKY #Ads_BA_VID #Ads_TFM_BS#Ads_google_bottom_wide#Adsense300x250#AdsenseBottom #AdsenseTop  #Adsterraÿ +#Adv10 +#Adv11 #Adv8 #Adv9 #AdvContainer +#AdvFooter +#AdvHeader #Adv_Footer #AdvertMid1 #AdvertMid2 +#AdvertMpu #AdvertPanel #AdvertText#AdvertiseFrame#Advertisement1#Advertisement2#AdvertisementDiv#AdvertisementLeaderboard#Advertisements#AdvertisingDiv_0 #Advertorial #Advertorials  #AnchorAd#ArticleContentAd #Banner728x90  #BannerAd +#BannerAds #BannerAdvert#BannerAdvertisement  #BigBoxAd #BigboxAdUnit #BodyAd #BodyTopAds#Body_Ad8_divAdd +#BotAd#BottomAdContainer#BottomRightAdWrapper  #ButtonAd +#ContentAd#Content_CA_AD_0_BC#Content_CA_AD_1_BC#DFP_top_leaderboard  #FooterAd#FooterAdBlock#FooterAdContainer  #GoogleAd +#GoogleAd1 +#GoogleAd2 +#GoogleAd3#GoogleAdRight #GoogleAdTop#GoogleAdsense #HP1-ad #HP2-ad #HeadAd  #HeaderAD  #HeaderAd#HeaderAdBlock#HeaderAdsBlock #HeroAd #HomeAd1  #IFrameAd +#IFrameAd1 #IK-ad-areaº  #IK-ad-block +#IM_AD#LayoutBottomAdBox#LayoutHomeAdBoxBottom #LeftAd #LeftAd1 #MPUAdSpace#MPUadvertising #MainAd #NR-Ads#PromotionAdBox #RightAd #RightAdBlock #RightAdSpace#RightAdvertisement +#SidebarAd#SidebarAdContainer#SitenavAdslot +#SkyAd #SkyscraperAD #SponsoredAd #SponsoredAds#SponsoredLinks #SponsorsAds#StickyBannerAd #Top-ad #TopADs +#TopAd #TopAd0  #TopAdBox#TopAdContainer#TopAdPlacement  #TopAdPos #TopAdTable +#TopAdvert #TopBannerAd#TopRightRadvertisement +#VPNAdvert +#WelcomeAd #aad-header-1 #aad-header-2 #aad-header-3 #ab_adblock#above-comments-ad#above-fold-ad#above-footer-ads #aboveAd #aboveNodeAds#above_button_ad#aboveplayerad #abovepostads,(#acm-ad-tag-lawrence_dfp_mobile_arkadium/+#ad--article--home-mobile-paramount-wrapper#ad--article-bottom-wrapper#ad--article-top #ad--sidebar #ad-0 #ad-1 #ad-125x125 #ad-160 #ad-160x600 #ad-2 #ad-2-160x600 #ad-250ý #ad-250x300 #ad-3 #ad-3-300x250 #ad-300 #ad-300-250#ad-300-additional#ad-300-detail#ad-300-sidebar #ad-300X250-2 #ad-300a #ad-300b #ad-300x250 #ad-300x250-0 #ad-300x250-2 #ad-300x250-b#ad-300x250-sidebar#ad-300x250-wrapper#ad-300x250_mid#ad-300x250_mobile#ad-300x250_top#ad-300x600_top #ad-4 #ad-5 #ad-6 #ad-7 #ad-728 +#ad-728-90 +#ad-728x90 #ad-8 #ad-9 #ad-Content_1 #ad-Content_2#ad-Rectangle_1#ad-Rectangle_2#ad-Superbanner #ad-a #ad-ads#ad-advertorial #ad-affiliate  #ad-after +#ad-anchor#ad-around-the-web #ad-article#ad-article-in #ad-aside-1#ad-background #ad-ban #ad-banner-1#ad-banner-atf#ad-banner-bottom#ad-banner-btf#ad-banner-desktop#ad-banner-image#ad-banner-placement#ad-banner-top#ad-banner-wrap#ad-banner_atf-label #ad-bar #ad-base#ad-bb-content#ad-below-content +#ad-bg #ad-big +#ad-bigbox˜ + #ad-bigsize #ad-billboard#ad-billboard-atf#ad-billboard-bottom#ad-billboard01  #ad-blade  #ad-block #ad-block-125 #ad-block-2 #ad-block-aa#ad-block-bottom#ad-block-container +#ad-border +#ad-bottom#ad-bottom-banner#ad-bottom-fixed#ad-bottom-right-container#ad-bottom-wrapper #ad-box  #ad-box-1  #ad-box-2#ad-box-bottom#ad-box-halfpage#ad-box-leaderboard #ad-box-left#ad-box-rectangle#ad-box-rectangle-2 #ad-box-right #ad-box1 #ad-box2  #ad-boxes  #ad-break +#ad-bs #ad-btm #ad-buttons #ad-campaign #ad-carousel #ad-case +#ad-center  #ad-chips#ad-circfooter #ad-code #ad-col#ad-container-banner#ad-container-fullpage#ad-container-inner#ad-container-leaderboard#ad-container-mpu#ad-container-outer#ad-container-overlay!#ad-container-top-placeholder#ad-container1 #ad-contentad#ad-desktop-bottom#ad-desktop-takeover-home#ad-desktop-takeover-int#ad-desktop-top#ad-desktop-wrap #ad-discover#ad-display-ad#ad-display-ad-placeholder#ad-div-leaderboard +#ad-drawer #ad-earÙ +#ad-extra-flat#ad-featured-right#ad-fixed-bottom #ad-flex-top +#ad-flyout#ad-footer-728x90#ad-framework-top #ad-front-btf#ad-front-footer#ad-full-width#ad-fullbanner-btf#ad-fullbanner-outer#ad-fullbanner2 #ad-fullwidth#ad-googleAdSense#ad-gutter-left#ad-gutter-right #ad-halfpage #ad-halfpage1 #ad-halfpage2 #ad-head #ad-header-1 #ad-header-2 #ad-header-3#ad-header-left#ad-header-mad#ad-header-mobile#ad-header-right +#ad-holder#ad-horizontal#ad-horizontal-header#ad-horizontal-top #ad-incontent  #ad-index#ad-inline-block +#ad-label2#ad-large-banner-top#ad-large-header#ad-lb-secondary #ad-lead#ad-leadboard1#ad-leadboard2 +#ad-leader#ad-leader-atf#ad-leader-container#ad-leader-wrapper#ad-leaderboard#ad-leaderboard-atf#ad-leaderboard-bottom#ad-leaderboard-container#ad-leaderboard-footer#ad-leaderboard-header#ad-leaderboard-spot#ad-leaderboard-top#ad-leaderboard970x90home#ad-leaderboard970x90int#ad-leaderboard_bottom #ad-leadertop #ad-lrec#ad-m-rec-content #ad-main#ad-main-bottom #ad-main-top #ad-manager‰  #ad-masthead +#ad-medium#ad-medium-lower#ad-medium-rectangle +#ad-medrec#ad-medrec__first #ad-mid #ad-mid-rect +#ad-middle #ad-midpage #ad-minibar +#ad-module #ad-mpu #ad-mrec  #ad-mrec2 #ad-new  #ad-north #ad-one  #ad-other +#ad-output #ad-overlay +#ad-p3 +#ad-page-1  #ad-pan3l  #ad-panel +#ad-pencil#ad-performance#ad-performanceFullbanner1#ad-performanceRectangle1#ad-placeholder#ad-placeholder-horizontal#ad-placeholder-vertical #ad-placement  #ad-plate +#ad-player  #ad-popup#ad-popup-home #ad-popup-int #ad-post  #ad-promo #ad-push #ad-pushdown #ad-r #ad-rec-atf #ad-rec-btf#ad-rec-btf-top #ad-rect #ad-rectangle#ad-rectangle1#ad-rectangle1-outer#ad-rectangle2#ad-rectangle3 #ad-results  #ad-right#ad-right-bar-tall#ad-right-container#ad-right-sidebar #ad-right-top +#ad-right2 +#ad-right3 #ad-rotator #ad-row #ad-section #ad-separator©  #ad-shop #ad-side #ad-side-text #ad-sidebar#ad-sidebar-btf#ad-sidebar-container#ad-sidebar-mad#ad-sidebar-mad-wrapper #ad-sidebar1 #ad-sidebar2#ad-site-header #ad-skin#ad-skm-below-content #ad-sky#ad-skyscraper #ad-slideshow#ad-slideshow2 #ad-slot +#ad-slot-1 +#ad-slot-2 +#ad-slot-3 +#ad-slot-4 +#ad-slot-5 #ad-slot-502 #ad-slot-lb#ad-slot-right #ad-slot-top  #ad-slot1  #ad-slot2  #ad-slot4#ad-slug-wrapper#ad-small-banner  #ad-space #ad-space-big +#ad-splash #ad-sponsors #ad-spot#ad-spot-bottom #ad-spot-one #ad-standard#ad-standard-wrap #ad-stickers#ad-sticky-footer-container#ad-story-right #ad-story-top +#ad-stripe +#ad-target +#ad-teaser #ad-text  #ad-three #ad-top #ad-top-250#ad-top-300x250 #ad-top-728#ad-top-banner#ad-top-leaderboard #ad-top-left #ad-top-lock #ad-top-low #ad-top-right#ad-top-right-container#ad-top-text-low #ad-top-wrap#ad-top-wrapperÚ  #ad-tower #ad-two #ad-undefined!#ad-unit-right-bottom-160-600!#ad-unit-right-middle-300-250#ad-unit-top-banner#ad-vip-article #ad-west#ad-wide-leaderboard #ad-wrap  #ad-wrap2 #ad-wrapper#ad-wrapper-728x90#ad-wrapper-footer-1#ad-wrapper-main-1#ad-wrapper-sidebar-1#ad-wrapper-top-1#ad1-placeholder +#ad125x125 +#ad160  #ad160600 +#ad160x600 +#ad250 +#ad300 +#ad300-250 +#ad300_250 +#ad336 +#ad336x280 +#ad468  #ad468x60  #ad480x60#ad6 +#ad600 +#ad728 #ad72890  #ad728Box #ad728Header  #ad728Mid  #ad728Top #ad728Wrapper  #ad728X90 +#ad728foot #ad728h  #ad728top  #ad728x90 #ad728x90_1 #ad90 +#ad900 +#ad970 #ad970x90_exp #adATF300x250 #adATF728x90#adATFLeaderboard #adAside #adBTF300x250  #adBadges +#adBanner1#adBanner336x280#adBannerBottom#adBannerHeader#adBannerSpacer#adBannerTable #adBannerTop +#adBar© #adBelt #adBillboard +#adBlock01#adBlockBanner#adBlockContainer#adBlockContent#adBlockOverlay  #adBlocks  #adBottom +#adBox #adBrandDev#adBrandingStation #adBreak #adCarousel +#adChannel#adChoiceFooter +#adChoices#adChoicesIcon#adChoicesLogo +#adCol  #adColumn +#adColumn3#adComponentWrapper #adContainer#adContainer_1#adContainer_2#adContainer_3 +#adContent#adContentHolder +#adContext +#adDiv #adDiv0 #adDiv1  #adDiv300 #adDiv4  #adDiv728#adDivContainer  #adFiller #adFlashDiv  #adFooter +#adFot #adFrame +#adGallery #adGoogleText  #adHeader #adHeaderTop#adHeaderWrapper +#adHeading#adHeightstory  #adHolder +#adHolder1 +#adHolder2 +#adHolder3 +#adHolder4 +#adHolder5 +#adHolder6 #adHome +#adHomeTop  #adIframe +#adInhouse  #adIsland #adLB #adLabel #adLarge´ #adLayer #adLayerTop  #adLayout  #adLeader #adLeaderTop#adLeaderboard#adLeaderboard-middle #adLeft #adLink #adLink1  #adLounge #adLrec #adMOBILETOP +#adMPU #adMPUHolder #adMain#adMarketplace +#adMed +#adMedRect#adMediumRectangle #adMeld +#adMessage #adMid2 #adModal +#adMpu #adMpuBottom #adOuter#adPartnerLinks#adPlaceHolder1#adPlaceHolder2#adPlacement_1#adPlacement_2#adPlacement_3#adPlacement_4#adPlacement_7#adPlacement_8#adPlacement_9  #adPlacer +#adPopover #adPopup #adPosition0 #adPosition14 #adPosition5 #adPosition6 #adPosition7 #adPosition9 #adPush #adPushdown1 #adReady #adRight  #adRight1  #adRight2  #adRight3  #adRight4  #adRight5 +#adScraper +#adSection #adSenseBox#adSenseModule#adSenseWrapper +#adSet #adSide#adSide1-container #adSideButtonú +#adSidebar #adSite #adSkin#adSkinBackdrop #adSkinLeft #adSkinRight +#adSky#adSkyPosition #adSkyscraper  #adSlider #adSlot-dmpu#adSlot-dontMissLarge#adSlot-leader#adSlot-leaderBottom #adSlot1 #adSlot2 #adSlot3 #adSlot4 #adSlug #adSpace#adSpaceBottom#adSpaceHeight  #adSpacer +#adSpecial +#adSqb  #adSquare #adStrip#adSuperbanner +#adTag #adText #adTextLink #adTile +#adTop #adTopContent +#adTopLREC #adTopLarge #adTopModule #adTower#adUnderArticle #adUnit#adWideSkyscraper #adWrap +#adWrapper #adWrapperSky #ad_1 #ad_160 #ad_160_600 #ad_160_600_2 #ad_160x160 #ad_160x600 #ad_2 #ad_250 #ad_250x250 #ad_3 #ad_300 #ad_300_250 #ad_300_250_1 #ad_300x250 #ad_336 #ad_4 +#ad_468_60 +#ad_468x60 #ad_5 #ad_728Ó +#ad_728_90 +#ad_728x90 #ad_8 #ad_9 +#ad_B1 +#ad_Banner +#ad_Bottom#ad_LargeRec01 +#ad_Middle #ad_Middle1 #ad_Pushdown +#ad_R1  #ad_Right #ad_Top #ad_Wrap#ad__billboard +#ad_ad #ad_adsense#ad_after_header_1 +#ad_anchor #ad_area#ad_article1_1#ad_article1_2#ad_article2_1#ad_article2_2#ad_article3_1#ad_article3_2 +#ad_banner #ad_banner_1#ad_banner_468x60#ad_banner_728x90#ad_banner_bot#ad_banner_top #ad_banners #ad_bar #ad_bar_rect#ad_before_header +#ad_bg #ad_bg_image #ad_big +#ad_bigbox#ad_bigbox_companion#ad_bigrectangle #ad_billboard  #ad_block #ad_block_0 #ad_block_1 #ad_block_2 #ad_block_mpu#ad_bnr_atf_01#ad_bnr_atf_02#ad_bnr_atf_03#ad_bnr_btf_07#ad_bnr_btf_08 #ad_body +#ad_bottom #ad_box #ad_box_top #ad_branding #ad_bsb #ad_bsb_cont #ad_btmslot +#ad_button #ad_buttonsä  #ad_cell +#ad_center #ad_choices  #ad_close #ad_closebtn #ad_comments #ad_cont#ad_cont_superbanner #ad_container#ad_container_0#ad_container_300x250#ad_container_side#ad_container_sidebar#ad_container_top #ad_content #ad_content_1 #ad_content_2 #ad_content_3#ad_content_fullsize#ad_content_primary#ad_content_right#ad_content_top#ad_content_wrap#ad_contentslot_1#ad_contentslot_2#ad_creative_2#ad_creative_3#ad_creative_5 #ad_dfp_rec1#ad_display_300_250#ad_display_728_90 #ad_div#ad_div_bottom #ad_div_top #ad_feedback #ad_foot +#ad_footer #ad_footer1 #ad_footerAd  #ad_frame +#ad_frame1#ad_from_bottom#ad_fullbanner #ad_gallery#ad_gallery_bot#ad_global_300x250#ad_global_above_footer#ad_global_header#ad_global_header1#ad_global_header2 +#ad_h3 #ad_halfpage #ad_head +#ad_header #ad_header_1#ad_header_container +#ad_holder #ad_home#ad_home_middle#ad_horizontal#ad_houseslot_a#ad_houseslot_b +#ad_hp #ad_imgò#ad_interthread +#ad_island #ad_island2  #ad_label  #ad_large#ad_large_rectangular #ad_lateral  #ad_layer #ad_ldb  #ad_lead1 +#ad_leader#ad_leaderBoard#ad_leaderboard#ad_leaderboard_top #ad_left +#ad_left_1 +#ad_left_2 +#ad_left_3#ad_left_skyscraper #ad_left_top #ad_leftslot #ad_link  #ad_links#ad_links_footer #ad_lnk #ad_lrec#ad_lwr_square #ad_main#ad_main_leader #ad_main_top #ad_marginal +#ad_marker #ad_mast #ad_med_rect +#ad_medium#ad_medium_rectangle#ad_medium_rectangular#ad_mediumrectangle #ad_message +#ad_middle#ad_middle_bottom #ad_midstrip +#ad_mobile +#ad_module #ad_mpu #ad_mpu2#ad_mpu300x250 #ad_mrec  #ad_mrec1  #ad_mrec2#ad_mrec_intext#ad_mrec_intext2 #ad_new#ad_news_article#ad_newsletter #ad_one #ad_overlay #ad_overlayer  #ad_panel#ad_panorama_top +#ad_pencil  #ad_place#ad_placeholder +#ad_playerû  #ad_plugs#ad_popup_background#ad_popup_wrapper #ad_post +#ad_poster #ad_primary#ad_publicidad #ad_rail +#ad_rec_01 #ad_rect  #ad_rect1  #ad_rect2  #ad_rect3 #ad_rect_body#ad_rect_bottom#ad_rect_btf_01#ad_rect_btf_02#ad_rect_btf_03#ad_rect_btf_04#ad_rect_btf_05 #ad_rectangle #ad_region1 #ad_region2 #ad_region3 #ad_region5 #ad_results  #ad_right #ad_right_box #ad_right_top #ad_rightslot #ad_rotator-2 #ad_rotator-3 #ad_row #ad_row_home #ad_rr_1 #ad_sec #ad_sec_div #ad_secondary  #ad_short #ad_sidebar #ad_sidebar1 #ad_sidebar2 #ad_sidebar3 #ad_sidebar_1#ad_sidebar_left_container#ad_sidebar_news#ad_sidebar_top #ad_sidebody#ad_site_header #ad_sitebar #ad_skin #ad_slot#ad_slot_bottom#ad_slot_leaderboard  #ad_small #ad_space_top #ad_sponsored +#ad_spot_a +#ad_spot_b #ad_spotlight +#ad_square #ad_squares +#ad_ss #ad_stckæ#ad_sticky_wrap  #ad_strip#ad_superbanner  #ad_table #ad_takeover #ad_tall #ad_tbl #ad_top #ad_topBanner#ad_topScroller#ad_top_728x90#ad_top_banner #ad_top_bar#ad_top_holder #ad_topbanner +#ad_topmob +#ad_topnav #ad_topslot #ad_two #ad_txt#ad_under_game #ad_unit  #ad_unit1  #ad_unit2 #ad_vertical#ad_video_abovePlayer#ad_video_belowPlayer#ad_video_large#ad_video_root #ad_wallpaper #ad_wide #ad_wide_box #ad_wideboard +#ad_widget #ad_widget_1 +#ad_window +#ad_wp #ad_wp_base #ad_wrap #ad_wrapper #ad_wrapper1 #ad_wrapper2 #ad_xrail_top #ad_zone#adaptvcompanion #adb_bottom #adbackground#adbanner-container +#adbanner1 #adbannerbox #adbannerdiv #adbannerleft#adbannerright#adbannerwidget +#adbar +#adbig #adblade #adblade_ad #adblock-big#adblock-leaderboard#adblock-small  #adblock1  #adblock2  #adblock4ú#adblockbottom #adbn +#adbnr #adboard #adbody  #adbottom #adbottomleft#adbottomright +#adbox#adbox--hot_news_ad#adbox--page_bottom_ad#adbox--page_top_ad#adbox-inarticle#adbox-topbanner #adbox1 #adbox2#adbox_content #adbox_right  #adbutton +#adbuttons #adcell  #adcenter +#adcenter2 +#adcenter4#adchoices-icon #adchoicesBtn #adclear #adclose #adcode #adcolContent  #adcolumn #adcontainer #adcontainer1 #adcontainer2 #adcontainer3 #adcontainer5#adcontainerRight#adcontainer_ad_content_top #adcontent1 #adcontent2#adcontextlinks#addbottomleft#addemam-wrapper #addvert#adfactor-label #adfloat  #adfooter#adfooter_728x90#adframe:not(frameset) #adframetop#adfreeDeskSpace #adhalfpage #adhead  #adheader  #adhesion#adhesionAdSlot #adhesionUnit #adhide  #adholder#adholderContainerHeader #adhome #adhomepage +#adjacency #adlabelº#adlabelFooter#adlabelfooter#adlabelheader +#adlanding #adlayer#adlayerContainer +#adlayerad#adleaderboard #adleft #adlinks #adlrec#adm-inline-article-ad-1#adm-inline-article-ad-2 #admain #admasthead +#admid #admobilefoot#admobilefootinside#admobilemiddle #admobiletop#admobiletopinside #admod2 #admpubottom #admpubottom2 +#admpufoot #admpumiddle #admpumiddle2 +#admputop2 +#admsg +#adnet #adnorth +#ados1 +#ados2 +#ados3 +#ados4 #adplace #adplacement +#adpos-top #adpos2 #adposition #adposition1 #adposition10#adposition1_container #adposition2 #adposition3 #adposition4#adpositionbottom #adrect #adright  #adright2#adrightbottom #adrightrail#adriver_middle #adriver_top +#adrotator +#adrow #adrow1 #adrow3 +#ads-1 #ads-125 #ads-200 #ads-250 #ads-300 #ads-300-250¶  #ads-336x280 #ads-468 +#ads-5 #ads-728x90#ads-728x90-I3#ads-728x90-I4  #ads-area#ads-article-left #ads-banner#ads-banner-top #ads-bar#ads-before-content #ads-bg#ads-bg-mobile#ads-billboard +#ads-block  #ads-blog #ads-bot #ads-bottom #ads-col#ads-container#ads-container-2#ads-container-anchor#ads-container-single#ads-container-top #ads-content#ads-content-double #ads-footer#ads-footer-inner#ads-footer-wrap #ads-google #ads-header#ads-header-728 #ads-home-468#ads-horizontal #ads-inread#ads-inside-content #ads-leader#ads-leaderboard#ads-leaderboard1  #ads-left #ads-left-top  #ads-lrec  #ads-main  #ads-menu #ads-middle #ads-mpu +#ads-outer #ads-pagetop +#ads-panel #ads-pop #ads-position-header-desktop +#ads-right#ads-right-bottom#ads-right-skyscraper#ads-right-top  #ads-slot +#ads-space#ads-superBanner  #ads-text #ads-top #ads-top-728 #ads-top-wrap#ads-under-rotator· #ads-vertical#ads-vertical-wrapper  #ads-wrap #ads-wrapper #ads1 #ads120 #ads125  #ads1_box #ads2 #ads2_block  #ads2_box#ads2_container #ads3 #ads300 #ads300-250 #ads300x200 #ads300x250 #ads300x250_2 #ads336x280 #ads4 +#ads468x60 +#ads50 #ads7 #ads728 #ads728bottom +#ads728top +#ads728x90 #ads728x90_2 #ads728x90top #adsBar +#adsBottom #adsContainer #adsContent #adsDisplay +#adsHeader #adsHeading #adsLREC #adsLeft#adsLinkFooter#adsMobileFixed #adsMpu  #adsPanel  #adsRight #adsRightDiv#adsSectionLeft#adsSectionRight +#adsSquare +#adsTG +#adsTN #adsTop #adsTopLeft#adsTopMobileFixed #adsZone  #adsZone1  #adsZone2GC#ads[style^="position: absolute; z-index: 30; width: 100%; height"]#ads_0_container #ads_160 +#ads_3 #ads_300 #ads_300x250 +#ads_4 #ads_728 #ads_728x90þ#ads_728x90_top #ads_banner #ads_banner1#ads_banner_header #ads_belownav #ads_big +#ads_block #ads_body_1 #ads_body_2 #ads_body_3 #ads_body_4 #ads_body_5 #ads_body_6 #ads_bottom #ads_box  #ads_box1  #ads_box2#ads_box_bottom#ads_box_right #ads_box_top #ads_button #ads_campaign #ads_catDiv #ads_center#ads_center_banner #ads_central #ads_combo2#ads_container #ads_content#ads_desktop_r1#ads_desktop_r2 #ads_expand #ads_footer #ads_fullsize +#ads_h #ads_h1 #ads_h2 #ads_halfsize #ads_header +#ads_horiz#ads_horizontal  #ads_horz #ads_in_modal #ads_in_video #ads_inline_z +#ads_inner#ads_insert_container#ads_layout_bottom #ads_lb #ads_lb_frame#ads_leaderbottom  #ads_left #ads_left_top  #ads_line #ads_medrect #ads_notice #ads_overlay #ads_page_top +#ads_place#ads_placeholder #ads_player +#ads_popup +#ads_right#ads_right_sidebar  #ads_right_top#ads_slide_div +#ads_space#ads_space_header#ads_superbanner1#ads_superbanner2 #ads_superior #ads_td  #ads_text#ads_textlinks +#ads_title #ads_top  #ads_top2#ads_top_banner#ads_top_container#ads_top_content#ads_top_right #ads_top_sec#ads_topbanner #ads_tower1#ads_tower_top  #ads_vert +#ads_video  #ads_wide #ads_wrapper #adsbot +#adsbottom #adsbox #adsbox-left #adsbox-right +#adscenter +#adscolumn #adscontainer #adscontent #adsdiv +#adsection +#adsense-2#adsense-468x60 #adsense-area#adsense-bottom#adsense-container-bottom#adsense-header #adsense-link#adsense-links#adsense-middle #adsense-post#adsense-right#adsense-sidebar #adsense-tag #adsense-text #adsense-top #adsense-wrap  #adsense1  #adsense2 #adsense468  #adsense6 #adsense728 #adsenseArea#adsenseContainer#adsenseHeader #adsenseLeft #adsenseWrap#adsense_banner_top#adsense_blockÓ #adsense_bottom_ad #adsense_box #adsense_box2#adsense_center#adsense_image#adsense_inline#adsense_leaderboard#adsense_overlay$ #adsense_r_side_sticky_container#adsense_sidebar #adsense_top#adsenseheader#adsensehorizontal #adsensempu#adsenseskyscraper #adsensetext #adsensetop #adsensewide #adserv #adsframe_2 #adside  #adsimage #adsitem +#adskeeper #adskinleft #adskinlink #adskinright +#adskintop +#adsky #adskyscraper#adskyscraper_flex  #adsleft1  #adslider #adslist#adslot-below-updated#adslot-download-abovefiles#adslot-half-page#adslot-homepage-middle#adslot-infobox#adslot-left-skyscraper#adslot-side-mrec#adslot-site-footer#adslot-site-header#adslot-sticky-headerbar#adslot-top-rectangle #adslot1 #adslot2 #adslot3#adslot300x250ATF#adslot300x250BTF #adslot4 #adslot5 #adslot6 #adslot7  #adslot_1  #adslot_2 #adslot_left #adslot_rect #adslot_top #adsmgid +#adsmiddle #adsonar #adspace +#adspace-1ü +#adspace-2#adspace-300x250 #adspace-728#adspace-728x90#adspace-bottom#adspace-leaderboard-top #adspace-one #adspace-top#adspace300x250 #adspaceBox #adspaceRow#adspace_header#adspace_leaderboard #adspace_top  #adspacer #adspan +#adsplace1 +#adsplace2 +#adsplace4  #adsplash #adspot#adspot-bottom #adspot-top  #adsquare +#adsquare2  #adsright #adsside  #adsspace  #adstext2 #adstrip +#adtab #adtext +#adtop +#adtxt #adunit#adunit-article-bottom #adunit_video #adunitl #adv-01 #adv-300 #adv-Bottom  #adv-BoxP #adv-Middle #adv-Middle1 #adv-Middle2#adv-Scrollable #adv-Top #adv-banner #adv-banner-r #adv-box#adv-companion-iframe#adv-container#adv-gpt-box-container1%!#adv-gpt-masthead-skin-container1 #adv-halfpage #adv-header#adv-leaderblock#adv-leaderboard  #adv-left #adv-masthead #adv-middle #adv-middle1 #adv-midroll #adv-nativeì #adv-preroll +#adv-right #adv-right1#adv-scrollable #adv-sticky-1 #adv-sticky-2  #adv-text +#adv-title #adv-top #adv-top-skin #adv300x250#adv300x250container +#adv468x90 #adv728 +#adv728x90 +#adv768x90 #advBoxBottom #advCarrousel #advHome#advHook-Middle1 #advRectangle#advRectangle1 #advSkin #advTop #advWrapper #adv_300 #adv_728 #adv_728x90#adv_BoxBottom #adv_Inread#adv_IntropageOvl#adv_LdbMastheadPush #adv_Reload  #adv_Skin #adv_bootom #adv_border #adv_center #adv_config #adv_contents #adv_footer #adv_holder#adv_leaderboard #adv_mob  #adv_mpu1  #adv_mpu2 #adv_network #adv_overlay#adv_overlay_content +#adv_r +#adv_right  #adv_skin #adv_sky #adv_textlink #adv_top#adv_wallpaper#adv_wallpaper2#advads_ad_widget-18#advads_ad_widget-19#advads_ad_widget-8 +#adver +#adver-top #adverFrame  #advert-1 #advert-120� +  #advert-2 #advert-ahead#advert-article#advert-article-1#advert-article-2#advert-article-3#advert-banner#advert-banner-container#advert-banner-wrap#advert-banner2 #advert-block#advert-boomer #advert-box#advert-column#advert-container-top#advert-display#advert-fireplace#advert-footer#advert-footer-hidden#advert-header#advert-island#advert-leaderboard #advert-left #advert-mpu#advert-posterad#advert-rectangle #advert-right #advert-sky#advert-skyscaper#advert-skyscraper#advert-slider-top #advert-text #advert-top#advert-top-banner#advert-wrapper #advert1 #advert2 #advertBanner +#advertBox#advertBoxRight#advertBoxSquare #advertColumn#advertContainer  #advertDB#advertOverlay #advertRight#advertSection +#advertTop#advertTopLarge#advertTopSmall #advertTower#advertWrapper  #advert_1#advert_banner#advert_belowmenu #advert_box#advert_container#advert_header#advert_leaderboard #advert_mid #advert_mpu#advert_right1 #advert_sky #advert_top°  #advertblock #advertborder#adverticum_r_above!#adverticum_r_above_container #adverticum_r_side_container +#advertise#advertise-block#advertise-here#advertise-sidebar #advertise1 #advertise2#advertiseBanner#advertiseLink#advertise_top #advertisediv#advertisement-300x250#advertisement-bottom#advertisement-content#advertisement-large#advertisement-placement#advertisement-text#advertisement1#advertisement2#advertisement3#advertisement728x90#advertisementArea#advertisementBox#advertisementHorizontal#advertisementRight#advertisementTop#advertisement_banner##advertisement_belowscreenshots#advertisement_block#advertisement_box#advertisement_container#advertisement_label#advertisement_notice#advertisement_title#advertisements_bottom#advertisements_sidebar#advertisements_top#advertisementsarticle#advertiser-container#advertiserLinks #advertisetop#advertising-160x600#advertising-300x250#advertising-728x90#advertising-banner#advertising-caption#advertising-container#advertising-right#advertising-skyscraper#advertising-top#advertisingHrefTop#advertisingLeftLeft#advertisingLink#advertisingRightColumn#advertisingRightRight#advertisingTop#advertisingTopWrapper#advertising_300#advertising_320#advertising_728� +!#advertising__banner__content#advertising_column#advertising_container#advertising_contentad#advertising_div#advertising_header#advertising_holder#advertising_leaderboard#advertising_top_container#advertising_wrapper#advertisment-horizontal#advertisment-text#advertisment1#advertisment_content#advertisment_panel #advertleft #advertorial#advertorial-box#advertorial-wrap #advertorial1#advertorial_links #adverts#adverts--footer#adverts-top-container#adverts-top-left#adverts-top-middle#adverts-top-right #adverts_base#adverts_post_content#adverts_right #advertscroll #advertsingle #advertspace#advertssection +#adverttop  #advframe #advr_mobile +#advsingle #advt #advt_bottom #advtbar  #advtcell #advtext #advtop #advtopright #adwallpaper  #adwidget #adwidget-5 #adwidget-6 +#adwidget1 +#adwidget2 +#adwrapper  #adxBigAd +#adxBigAd2#adxLeaderboard +#adxMiddle#adxMiddleRight#adxToolSponsor #adx_ad #adxtop2 +#adzbanner #adzone#adzone-middle1#adzone-middle2ã + #adzone-right #adzone-top#adzone_content #adzone_wall #adzonebanner #adzoneheader#afc-container #affiliate_2 #affiliate_ad#after-dfp-ad-mid1#after-dfp-ad-mid2#after-dfp-ad-mid3#after-dfp-ad-mid4#after-dfp-ad-top#after-header-ads#after-top-menu-ads  #after_ad#after_bottom_ad#after_heading_ad#after_title_ad#aigirlfriendad #amazon-ads +#amazon_ad #analytics_ad +#anchor-ad  #anchorAd #aniview-ads#aom-ad-right_side_1#aom-ad-right_side_2 #aom-ad-top#apiBackgroundAd #article-ad#article-ad-container#article-ad-content #article-ads#article-advert#article-aside-top-ad#article-billboard-ad-1#article-bottom-ad#article-box-ad#article-content-ad#article-footer-ad#article-footer-sponsors#article-island-ad#article-sidebar-ad +#articleAd#articleAdReplacement#articleBoard-ad#articleBottom-ads#articleLeftAdColumn#articleSideAd#articleTop-ads #article_ad #article_ad_1 #article_ad_3#article_ad_bottom#article_ad_container#article_ad_top #article_ad_w#article_adholder #article_ads#article_advert#article_banner_ad#article_body_ad1Œ +#article_box_ad #articlead1 #articlead2#articlead300x250r#articleadblock#articlefootad#articletop_ad#aside-ad-container #asideAd  #aside_ad  #asideads +#asinglead #ax-billboard#ax-billboard-bottom#ax-billboard-sub#ax-billboard-top #backad#background-ad-cover#background-adv#background_ad_left#background_ad_right#background_ads#backgroundadvert #banADbanner#banner-300x250#banner-468x60 #banner-728#banner-728x90 +#banner-ad#banner-ad-container#banner-ad-large #banner-ads#banner-advert #banner-lg-ad#banner-native-ad#banner-skyscraper#banner300x250 +#banner468 #banner468x60 +#banner728 #banner728x90  #bannerAd#bannerAdFrame #bannerAdTop #bannerAdWrap#bannerAdWrapper +#bannerAds#bannerAdsense #bannerAdvert #bannerGoogle#banner_ad_bottom#banner_ad_footer#banner_ad_module#banner_ad_placeholder#banner_ad_top #banner_ads#banner_adsense #banner_adv#banner_advertisement#banner_adverts#banner_content_ad #banner_sedo #banner_slot#banner_spacerÞ  #banner_topad#banner_videoad#banner_wrapper_top#bannerad-bottom #bannerad-top +#bannerad2 #banneradrow +#bannerads#banneradspace#banneradvert3#banneradvertise#bannerplayer-wrap #baseboard-ad#baseboard-ad-wrapper #bbContentAds#bb_ad_container +#bb_top_ad  #bbadwrap#before-footer-ad#below-listings-ad#below-menu-ad-header#below-post-ad#below-title-ad #belowAd#belowContactBoxAd #belowNodeAds#below_content_ad_container #belowad#belowheaderad #bg-custom-ad #bgad #big-box-ad +#bigAd #bigAd1 #bigAd2  #bigAdDiv  #bigBoxAd #bigBoxAdCont #big_ad #big_ad_label #big_ads +#bigad  #bigadbox #bigads #bigadspace +#bigadspot #bigboard_ad +#bigsidead #billboard-ad#billboard-atf #billboard_ad#bingadcontainer2 #blkAds1 #blkAds2 #blkAds3 #blkAds4 #blkAds5#block-ad-articles#block-adsense-0#block-adsense-2($#block-adsense-banner-article-bottom($#block-adsense-banner-channel-bottom#block-adsenseleaderboard#block-advertisement² +#block-advertorial#block-articlebelowtextad#block-articlefrontpagead#block-articletopadvert#block-dfp-top##block-frontpageabovepartnersad#block-frontpagead#block-frontpagesideadvert1#block-google-ads#block-googleads3#block-googleads3-2#block-openads-0#block-openads-1#block-openads-13#block-openads-14#block-openads-2#block-openads-3#block-openads-4#block-openads-5#block-sponsors #blockAd  #blockAds  #block_ad +#block_ad2#block_ad_container #block_advert#block_advert1#block_advert2#block_advertisement #blog-ad #blog-advert #blogad#blogad-wrapper #blogads #bm-HeaderAd +#bn_ad #bnr-300x250 #bnr-468x60 #bnr-728x90 +#bnrAd  #body-ads #bodyAd1 #bodyAd2 #bodyAd3 #bodyAd4 #body_ad#body_centered_ad +#bottom-ad #bottom-ad-1#bottom-ad-area#bottom-ad-banner#bottom-ad-container#bottom-ad-leaderboard#bottom-ad-slot#bottom-ad-tray#bottom-ad-wrapper #bottom-add#bottom-adhesion#bottom-adhesion-container #bottom-ads#bottom-ads-bar#bottom-ads-container#bottom-adspot#bottom-advertisingŠ + #bottom-boxad#bottom-not-ads#bottom-side-ad#bottom-sponsor-add  #bottomAd #bottomAd300#bottomAdBlcok#bottomAdContainer#bottomAdSection#bottomAdSense#bottomAdSenseDiv#bottomAdWrapper +#bottomAds #bottomAdvBox#bottomBannerAd#bottomContentAd #bottomDDAd #bottomLeftAd +#bottomMPU#bottomRightAd +#bottom_ad#bottom_ad_728#bottom_ad_area#bottom_ad_box#bottom_ad_region#bottom_ad_unit#bottom_ad_wrapper #bottom_adbox #bottom_ads#bottom_adwrapper#bottom_banner_ad#bottom_fixed_ad_overlay#bottom_leader_ad#bottom_player_adv#bottom_sponsor_ads#bottom_sponsored_links#bottom_text_ad  #bottomad #bottomad300#bottomad_table#bottomadbanner #bottomadbar#bottomadholder +#bottomads #bottomadsdiv#bottomadsense #bottomadvert#bottomadwrapper#bottomcontentads#bottomleaderboardad#bottommpuAdvert#bottommpuSlot #bottomsponad#bottomsponsoredresults #box-ad#box-ad-section#box-ad-sidebar#box-content-ad #box1ad #box2ad +#boxAD +#boxAd  #boxAd300#boxAdContainerö +#boxAdvert #boxLREC #box_ad#box_ad_container#box_ad_middle #box_ads#box_advertisement#box_advertisment#box_articlead #box_text_ads +#boxad #boxads #bpAd #br-ad-header#breadcrumb_ad #breakbarad#bsa_add_holder_g +#bt-ad #bt-ad-header  #btfAdNew #btm_ad #btm_ads +#btmad #btnAdDP #btnAds #btnads #btopads #button-ads#button_ad_container #button_ads #buy-sell-ads #buySellAds #buysellads#carbon-ads-container-bg#carbonadcontainer +#carbonads#carbonads-container #card-ads-top #category-ad#category-sponsor #cellAd +#center-ad#center-ad-group +#centerads#ch-ad-outer-right #ch-ads #channel_ad #channel_ads #circ_ad#circ_ad_holder#circad_wrapper#classifiedsads #clickforad +#clientAds #closeAdsDiv #closeable-ad #cloudAdTag #col-right-ad +#colAd#colombiaAdBox  #columnAd#commentAdWrapper #commentTopAd#comment_ad_zoneà #comments-ad-container #comments-ads#comments-standalone-mpu#compAdvertisement #companion-ad #companionAd#companionAdDiv #companion_Ad #companionad  #connatix#connatix-moveable!#connatix_placeholder_desktop #container-ad #container_ad #content-ad#content-ad-side #content-ads#content-adver#content-contentad#content-header-ad#content-left-ad#content-right-ad +#contentAd#contentAdSense #contentAdTwo #contentAds #contentBoxad #content_Ad #content_ad #content_ad_1 #content_ad_2#content_ad_block#content_ad_container#content_ad_placeholder #content_ads#content_ads_top #content_adv#content_bottom_ad#content_bottom_ads #content_mpu +#contentad!#contentad-adsense-homepage-1#contentad-commercial-1#contentad-content-box-1#contentad-footer-tfm-1'##contentad-lower-medium-rectangle-1#contentad-story-middle-1#contentad-superbanner-1#contentad-top-adsense-1#contentad-topbanner-1#contentadcontainer #contentads +#contextad#contextual-ads#contextual-ads-block #contextualad  #cornerad  #coverads  #criteoAd#crt-adblock-a#crt-adblock-b?;#ctl00_ContentPlaceHolder1_ucAdHomeRightFO_divAdvertisement=9#ctl00_ContentPlaceHolder1_ucAdHomeRight_divAdvertisement#ctl00_adFooter¦ %!#ctl00_leaderboardAdvertContainer$ #ctl00_skyscraperAdvertContainer #ctl00_topAd3/#ctl00_ucFooter_ucFooterBanner_divAdvertisement #cubeAd #cube_ad  #cube_ads  #customAd +#customAds  #customad #darazAd +#ddAdZone2#desktop-ad-top#desktop-sidebar-ad#desktop_middle_ad_fixed#desktop_top_ad_fixed#dfp-ad-bottom-wrapper#dfp-ad-container#dfp-ad-floating#dfp-ad-leaderboard#dfp-ad-leaderboard-wrapper#dfp-ad-medium_rectangle#dfp-ad-mediumrect-wrapper #dfp-ad-mpu1 #dfp-ad-mpu2#dfp-ad-right1#dfp-ad-right1-wrapper#dfp-ad-right2#dfp-ad-right2-wrapper#dfp-ad-right3#dfp-ad-right4-wrapper #dfp-ad-slot2 #dfp-ad-slot3#dfp-ad-slot3-wrapper#dfp-ad-slot4-wrapper #dfp-ad-slot5#dfp-ad-slot5-wrapper #dfp-ad-slot6#dfp-ad-slot6-wrapper #dfp-ad-slot7#dfp-ad-slot7-wrapper#dfp-ad-top-wrapper#dfp-ap-2016-interstitial#dfp-article-mpu #dfp-atf#dfp-atf-desktop #dfp-banner#dfp-banner-popup#dfp-billboard1#dfp-billboard2 #dfp-btf#dfp-btf-desktop#dfp-footer-desktop #dfp-header#dfp-header-container  #dfp-ia01  #dfp-ia02#dfp-interstitial#dfp-leaderboard#dfp-leaderboard-desktop #dfp-masthead #dfp-middle #dfp-middle1 #dfp-mtfª +#dfp-mtf-desktop#dfp-rectangle#dfp-rectangle1!#dfp-ros-res-header_container #dfp-tlb#dfp-top-banner +#dfpAd #dfp_ad_mpu +#dfp_ads_4 +#dfp_ads_5 #dfp_bigbox_2#dfp_bigbox_recipe_top#dfp_container#dfp_leaderboard #dfpad-0#dfpslot_tow_2-0#dfpslot_tow_2-1#dfrads-widget-3#dfrads-widget-6#dfrads-widget-7#dianomiNewsBlock  #dict-adv +#direct-ad#disable-ads-container #display-ads +#displayAd #displayAdSet #display_ad#displayad_carousel#displayad_rectangle #div-ad-1x1#div-ad-bottom #div-ad-flex#div-ad-inread#div-ad-leaderboard  #div-ad-r +#div-ad-r1 #div-ad-top#div-ad-top_banner#div-adcenter1#div-adcenter2 #div-advert#div-contentad_1#div-footer-ad #div-gpt-LDB1 #div-gpt-MPU1 #div-gpt-MPU2 #div-gpt-MPU3 #div-gpt-Skin#div-gpt-inline-main#div-gpt-mini-leaderboard1 #div-gpt-mrec#div-insticator-ad-1#div-insticator-ad-2#div-insticator-ad-3#div-insticator-ad-4#div-insticator-ad-5#div-insticator-ad-6#div-insticator-ad-9#div-leader-ad#div-social-ads +#divAd #divAdDetail +#divAdHereÝ #divAdHorizontal +#divAdLeft +#divAdMain #divAdRight #divAdWrapper #divAds +#divAdsTop#divAdv300x250#divAdvertisement #divDoubleAd #divFoldersAd #divFooterAd #divFooterAds #divSponAds#divSponsoredLinks#divStoryBigAd1#divThreadAdBox  #divTopAd +#divTopAds#divWrapper_Ad#div_ad_TopRight #div_ad_float#div_ad_holder#div_ad_leaderboard#div_advt_right #div_belowAd #div_bottomad#div_bottomad_container #div_googlead #divadfloat +#dnn_adSky +#dnn_adTop#dnn_ad_banner#dnn_ad_island1#dnn_ad_skyscraper#dnn_sponsoredLinks #downloadAd #download_ad #download_ads #dragads #ds-mpu +#dsStoryAd#dsk-banner-ad-a#dsk-banner-ad-b#dsk-banner-ad-c#dsk-banner-ad-d #dsk-box-ad-c #dsk-box-ad-d #dsk-box-ad-f #dsk-box-ad-g#dv-gpt-ad-bigbox-wrap #dynamicAdDiv#em_ad_superbanner #embedAD  #embedADS +#event_ads#events-adv-side1#events-adv-side2#events-adv-side3#events-adv-side4#events-adv-side5#events-adv-side6 +#exoAd #externalAdè  #ezmobfooter +#featureAd#featureAdSpace #featureAds #feature_ad +#featuread #featured-ads #featuredAds +#first-ads  #first_ad #firstad  #fixed-ad #fixedAd  #fixedban #floatAd  #floatads#floating-ad-wrapper #floating-ads#floating-advert #floatingAd#floatingAdContainer #floatingAds #floating_ad#floating_ad_container*&#floating_ads_bottom_textcss_container#floorAdWrapper #foot-ad-wrap#foot-ad2-wrap #footAd #footAdArea #footAds #footad +#footer-ad#footer-ad-728#footer-ad-block#footer-ad-box#footer-ad-col#footer-ad-google#footer-ad-large#footer-ad-slot#footer-ad-unit#footer-ad-wrapper #footer-ads#footer-adspace #footer-adv#footer-advert#footer-advert-area#footer-advertisement#footer-adverts#footer-adwrapper #footer-affl#footer-banner-ad#footer-leaderboard-ad#footer-sponsored#footer-sponsors  #footerAd#footerAdBottom #footerAdBox #footerAdDiv #footerAdWrap +#footerAdd +#footerAds#footerAdsPlacement #footerAdvertã #footerAdvertisement#footerAdverts#footerGoogleAd#footer_AdArea +#footer_ad#footer_ad_block#footer_ad_container#footer_ad_frame#footer_ad_holder#footer_ad_modules#footer_adcode #footer_add#footer_addvertise #footer_ads#footer_ads_holder#footer_adspace #footer_adv#footer_advertising#footer_leaderboard_ad#footer_text_ad  #footerad #footerad728 +#footerads #footeradsbox #footeradvert#forum-top-ad-bar #frameAd #frmSponsAds#front-ad-cont#front-page-ad#front-page-advert #frontPageAd #front_advert +#front_mpu +#ft-ad #ft-ads#full_banner_ad #fwAdBox #fwdevpDiv0 #fwdevpDiv1 #fwdevpDiv2 #gAds +#gStickyAd #g_ad +#g_adsense #gad300x250 +#gad728x90 #gads300x250#gadsOverlayUnit #gads_middle #gallery-ad#gallery-ad-container#gallery-advert#gallery-below-line-advert#gallery-sidebar-advert #gallery_ad #gallery_ads#gallery_header_ad #galleryad1 #gam-ad-ban1#gam-ad-doubleMpu-1 #gam-ad-mpu-1 #gam-ad-mpu-2 #gam-ad-mpu-3�  #gam-ad-mpu-4($#gam-ad-mpuLeaderboard-leaderboard-1($#gam-ad-mpuLeaderboard-leaderboard-2($#gam-ad-mpuLeaderboard-leaderboard-3#gam-ad-topLeaderboard-1 #game-ad #gamead #gameads #gasense +#geoAd +#gg_ad #ggl-ad #glamads#global-banner-ad#globalLeftNavAd#globalTopNavAd#global_header_ad#global_header_ad_area +#goad1 +#goads  #gooadtop +#google-ad #google-ads#google-ads-bottom #google-ads-bottom-container#google-ads-container#google-ads-detailsRight"#google-ads-directoryViewRight#google-ads-header#google-adsense#google-adwords #google-afc#google-dfp-bottom#google-dfp-top#google-post-ad#google-post-adbottom#google-top-ads  #googleAd #googleAdArea#googleAdBottom #googleAdBox #googleAdTop +#googleAds#googleAdsense#googleAdsenseAdverts#googleSearchAds #google_ad_1 #google_ad_2 #google_ad_3#google_ad_container#google_ad_slot #google_ads #google_ads_1#google_ads_box#google_ads_frame#google_ads_frame1_anchor#google_ads_frame2_anchor#google_ads_frame3_anchor#google_ads_frame4_anchor#google_ads_frame5_anchor#google_ads_frame6_anchor#google_adsense#google_adsense_ad  #googleadø  +#googlead2 #googleadleft +#googleads #googleads1#googleadsense #googleadstop #googlebanner#googlesponsor#googletextads  #gpt-ad-1#gpt-ad-banner#gpt-ad-halfpage#gpt-ad-outofpage-wp#gpt-ad-rectangle1#gpt-ad-rectangle2#gpt-ad-side-bottom#gpt-ad-skyscraper#gpt-instory-ad#gpt-leaderboard-ad #gpt-mpu #gpt-sticky #grdAds#gridAdSidebar #grid_ad #half-page-ad #halfPageAd#half_page_ad_300x600 #halfpagead #head-ad#head-ad-text-wrap#head-ad-timer  #head-ads#head-advertisement #headAd #headAds #headAdv #head_ad  #head_ads #head_advert #headad #headadvert +#header-ad#header-ad-background#header-ad-block#header-ad-bottom#header-ad-container#header-ad-holder#header-ad-label#header-ad-left#header-ad-placeholder#header-ad-right#header-ad-slot#header-ad-wrap#header-ad-wrapper #header-ad2 #header-ads#header-ads-container#header-ads-holder#header-ads-wrapper#header-adsense#header-adserve#header-adspace #header-adv#header-advertÕ +#header-advert-panel#header-advertisement#header-advertising#header-adverts #header-advrt#header-banner-728-90#header-banner-ad#header-banner-ad-wrapper#header-block-ads#header-box-ads  #headerAd#headerAdBackground#headerAdContainer#headerAdSpace #headerAdUnit #headerAdWrap +#headerAds#headerAdsWrapper +#headerAdv #headerAdvert #headerTopAd +#header_ad#header_ad_728#header_ad_728_90#header_ad_banner#header_ad_block#header_ad_container#header_ad_leaderboard#header_ad_units#header_ad_widget#header_ad_wrap #header_adbox#header_adcode #header_ads #header_ads2#header_adsense #header_adv#header_advert#header_advertisement#header_advertisement_top#header_advertising#header_adverts#header_bottom_ad#header_publicidad#header_right_ad#header_sponsors#header_top_ad  #headerad#headerad_large #headeradbox#headeradcontainer +#headerads #headeradsbox#headeradsense#headeradspace#headeradvertholder #headeradwrap#headergooglead#headersponsors +#headingAd #headline_ad#hearst-autos-ad-wrapper #home-ad#home-ad-block´ + #home-ad-slot#home-advert-module#home-advertise#home-banner-ad #home-left-ad#home-rectangle-ad #home-side-ad #home-top-ads #homeAd #homeAdLeft #homeAds #homeSideAd #home_ad#home_ads_vert#home_advertising_block#home_bottom_ad#home_contentad  #home_mpu#home_sidebar_ad#home_top_right_ad #homead #homeheaderad #homepage-ad#homepage-adbar#homepage-footer-ad#homepage-header-ad#homepage-sidebar-ad#homepage-sidebar-ads#homepage-sponsored #homepageAd#homepageAdsTop#homepageFooterAd#homepageGoogleAds #homepage_ad#homepage_ad_listing#homepage_rectangle_ad#homepage_right_ad #homepage_right_ad_container#homepage_top_ad#homepage_top_ads#homepageadvert #hometopads +#horAd #hor_ad +#horadslot #horizad #horizads728#horizontal-ad#horizontal-adspace#horizontal-banner-ad #horizontalAd#horizontalAdvertisement#horizontal_ad#horizontal_ad2#horizontal_ad_top #horizontalad#horizontalads#hottopics-advert  #hours_ad #houseAd#hovered_sponsored#hp-desk-after-header-ad #hp-header-ad #hp-right-ad  #hp-store-ad +#hpAdVideo#humix-vid-ezAutoMatch #idDivAd #id_SearchAds +#iframe-ad #iframeAd_2 #iframe_ad_2 #imPopup #im_popupDiv +#ima_ads-2 +#ima_ads-3 +#ima_ads-4#imgAddDirectLink #imgad1#imu_ad_module#in-article-ad#in-article-mpu#in-content-ad #inArticleAdv #inarticlead#inc-ads-bigbox#incontent-ad-2#incontent-ad-3 #incontentAd1 #incontentAd2 #incontentAd3  #index-ad#index-bottom-advert#indexSquareAd  #index_ad #indexad#indexad300x250l#indexsmallads#indiv_adsense #infoBottomAd#infoboxadwrapper +#inhousead #initializeAd +#inline-ad#inline-ad-label#inline-advert#inline-story-ad#inline-story-ad2  #inlineAd #inlineAdCont #inlineAdtop#inlineAdvertisement#inlineBottomAd +#inline_ad#inline_ad_section  #inlinead +#inlineads  #inner-ad#inner-ad-container#inner-advert-row#inner-top-ads #innerad #innerpage-ad#inside-page-ad #insideCubeAd #instant_ad#insticator-container +#instoryad† + #int-ad #int_ad  #interads#intermediate-ad#internalAdvert #internalads#interstitial-shade#interstitialAd#interstitialAdContainer#interstitialAdUnit#interstitial_ad#interstitial_ad_container#interstitial_ads +#intext_ad  #introAds #intro_ad_1  #invid_ad +#ipadv +#iq-AdSkin#iqadcontainer #iqadoverlay +#iqadtile1 #iqadtile11 #iqadtile14 #iqadtile15 #iqadtile16 +#iqadtile2 +#iqadtile3 +#iqadtile4 #iqadtile41 +#iqadtile6 +#iqadtile8 +#iqadtile9 #iqadtile99  #islandAd #islandAdPan #islandAdPane#islandAdPane2#island_ad_top  #islandad #jobs-ad#js-ad-billboard#js-ad-leaderboard#js-image-ad-mpu#js-page-ad-top #js-wide-ad#js_commerceInsetModule)%#jsid-ad-container-post_above_comment)%#jsid-ad-container-post_below_comment +#large-ads #large-bottom-leaderboard-ad#large-leaderboard-ad #large-middle-leaderboard-ad#large-rectange-ad#large-rectange-ad-2#large-skyscraper-ad #largeAd  #largeAds#large_rec_ad1 #largead  #layer_ad#layer_ad_content #layerad #layeradsense’ +#layout-header-ad-wrapper #layout_topad +#lb-ad#lb-sponsor-left#lb-sponsor-right #lbAdBar #lbAdBarBtm #lblAds  #lead-ads #lead_ad  #leadad_1  #leadad_2 +#leader-ad#leader-board-ad#leader-companion > a[href]  #leaderAd#leaderAdContainer#leaderAdContainerOuter#leaderBoardAd +#leader_ad#leader_board_ad  #leaderad#leaderad_section #leaderadvert#leaderboard-ad#leaderboard-advert#leaderboard-advertisement#leaderboard-atf#leaderboard-bottom-ad#leaderboard.ad#leaderboardAd#leaderboardAdTop#leaderboardAds#leaderboardAdvert#leaderboard_728x90#leaderboard_Ad#leaderboard_ad#leaderboard_ads#leaderboard_bottom_ad#leaderboard_top_ad#leaderboardad#leatherboardad #left-ad +#left-ad-1 +#left-ad-2 #left-ad-col#left-ad-iframe #left-ad-skin#left-bottom-ad#left-col-ads-1#left-content-ad #leftAD#leftAdAboveSideBar +#leftAdCol#leftAdContainer#leftAdMessage #leftAdSpace #leftAd_fmt #leftAd_rdr #leftAds #leftAdsSmall #leftAdvert#leftBanner-ad#leftColumnAdContainerµ #leftGoogleAds#leftTopAdWrapper #left_ad  #left_ads #left_adsense #left_adspace  #left_adv#left_advertisement #left_bg_ad#left_block_ads#left_float_ad#left_global_adspace#left_side_ads#left_sidebar_ads #left_top_ad #leftad #leftadg #leftads +#leftcolAd #leftcolumnad #leftforumad #leftrail_dynamic_ad_wrapper #lg-banner-ad #ligatus #ligatus_adv #ligatusdiv #lightboxAd #linkAdSingle #linkAds  #link_ads #linkads #listadholder#liste_top_ads_wrapper #listing-ad #live-ad  #localAds #localpp#locked-footer-ad-wrapper #logoAd #logoAd2 #logo_ad #long-ad#long-ad-space#long-bottom-ad-wrapper #longAdSpace #longAdWrap#long_advert_header#long_advertisement#lower-ad-banner +#lower-ads#lower-advertising#lower-home-ads#lowerAdvertisement#lowerAdvertisementImg  #lower_ad#lower_content_ad_box  #lowerads #lowerthirdad #lrec_ad #lrecad#m-banner-bannerAd #main-ad #main-advert #mainAd¿  #mainAd1 #mainAdUnit #mainAdvert #mainPageAdsHD#mainPlaceHolder_coreContentPlaceHolder_rightColumnAdvert_divControl #main_AD #main_ad  #main_ads#main_content_ad #main_rec_ad #main_top_ad #mainui-ads #mapAdsSwiper +#mapAdvert#marketplaceAds #marquee-ad #marquee_ad #mastAd #mastAdvert #mastad  #masterad #masthead_ad#masthead_ads_container#masthead_topad #med-rect-ad#med-rectangle-ad  #medRecAd  #medReqAd  #media-ad +#medium-ad +#mediumAd1#mediumAdContainer#mediumAdvertisement#mediumRectangleAd#medrec_bottom_ad#medrec_middle_ad#medrec_top_ad +#medrectad#medrectangle_banner #menuad +#menubarad#mgid-container #mgid_iframe#mid-ad-slot-1#mid-ad-slot-3#mid-ad-slot-5 #mid-ads #mid-table-ad +#midAD #midRightAds#midRightTextAds #mid_ad #mid_ad_div #mid_ad_title #mid_left_ads #mid_mpu#mid_roll_ad_holder #midadspace +#midadvert  #midbarad  #midbnrad #midcolumn_ad +#middle-ad#middle-ad-destinã  #middleAd +#middle_ad #middle_ads #middle_mpu  #middlead +#middleads #middleads2 #midpost_ad #midrect_ad #midstrip_ad #mini-ad#mobile-ad-container#mobile-adhesion#mobile-ads-ad#mobile-footer-ad-wrapper#mobileAdContainer#mobile_ads_100_pc#mobile_ads_block #mod_ad #mod_ad_top  #modal-ad#module-ads-01#module-ads-02 +#module_ad#module_box_ad +#monsterAd #mpu-ad #mpu-advert  #mpu-cont #mpu-content #mpu-sidebar #mpu1_parent #mpu2#mpu2_container #mpu2_parent +#mpuAd +#mpuAdvert #mpuContainer #mpuDiv #mpuInContent #mpuSecondary #mpuSlot #mpuWrapper #mpuWrapperAd#mpuWrapperAd2 #mpu_ad #mpu_ad2 #mpu_adv #mpu_banner #mpu_box#mpu_container #mpu_div #mpu_holder #mpu_text_ad #mpu_top +#mpuad #mpubox +#mpuholder#mvp-foot-ad-wrap#mvp-post-bot-ad #my-ads +#narrow-ad#narrow_ad_unit#native-ads-placeholderò #native_ad2 #native_ads#nav-ad-container #navAdBanner #nav_ad#nav_ad_728_mid#navads-container #navbar_ads#navigation-ad +#navlinkad +#newAd +#ng-ad +#ng-ad-lbl +#ni-ad-row +#nk_ad_top +#notify_ad #ntvads#openx-text-ad #openx-widget +#ovadsense#overlay-ad-bg #overlay_ad +#overlayad #overlayadd #p-Ad  #p-advert #p-googlead#p-googleadsense #p2HeaderAd #p2squaread #page-ad-top#page-advertising#page-header-ad #page-top-ad +#pageAdDiv  #pageAdds #pageAds #pageAdsDiv #pageAdvert #pageBannerAd #pageLeftAd#pageMiddleAdWrapper #pageRightAd#page__outside-advertsing #page_ad #page_ad_top #page_top_ad #pageads_top #pagebottomAd#pagination-advert  #panel-ad #panelAd +#panel_ad1 #panoAdBlock #partner-ad +#partnerAd#partnerMedRec #partner_ads  #pause-ad +#pause-ads #pauseAd#pc-div-gpt-ad_728-3 +#pencil-ad#pencil-ad-container–  #perm_ad #permads #persistentAd#personalization_ads #pgAdWrapper +#ph_ad #player-ads#player-advert#player-advertising#player-below-advert#player-midrollAd  #playerAd#playerAdsRight +#player_ad #player_ads#player_middle_ad#player_top_ad  #playerad +#playerads #pop.div_pop #pop_ad +#popadwrap #popback-ad +#popoverAd #popupAd#popupBottomAd#popup_ad_wrapper #popupadunit #post-ad  #post-ads#post-bottom-ads#post-content-ad #post-page-ad#post-promo-ad #postAd#postNavigationAd #post_ad#post_addsense #post_adsense #post_adspace #post_advert  #postads0 #ppcAdverts#ppvideoadvertisement +#pr_ad#pr_advertising #pre-adv#pre-footer-ad#preAds_ad_mrec_intext#preAds_ad_mrec_intext2 #preminumAD #premiumAdTop #premium_ad +#premiumad #premiumads +#prerollAd #preroll_ads#primis-container#primis_player +#print_ads  #printads #privateads  #promo-ad  #promoAdsþ  #promoFloatAd +#promo_ads +#pub468x60 +#pub728x90 #publicidad#publicidadeLREC #pushAd #pushDownAd #pushdownAd#pushdownAdWrapper #pushdown_ad +#pusher-ad#pvadscontainer#quads-ad1_widget#quads-ad2_widget#quads-admin-ads-js#r89-desktop-top-ad#radio-ad-container #rail-ad-wrap#rail-bottom-ad #railAd #rail_ad  #rail_ad1  #rail_ad2#rec_spot_ad_1#recommendAdBox #rect-ad #rectAd #rect_ad #rectad #rectangle-ad #rectangleAd#rectangleAdTeaser1 #rectangle_ad #redirect-ad#redirect-ad-modal #reference-ad#region-node-advert #reklam_buton#reklam_center #reklama #reklama_big#reklama_left_body#reklama_left_up#reklama_right_up #related-ads#related-news-1-bottom-ad#related-news-1-top-ad #related_ad #related_ads#related_ads_box#removeAdsSidebar #removeadlink#responsive-ad$ #responsive-ad-sidebar-container#responsive_ad #responsivead!#result-list-aside-topadsense#resultSponLinks#resultsAdsBottom #resultsAdsSB#resultsAdsTop +#rh-ad#rh-ad-containerú  #rh_tower_ad #rhc_ads #rhs_ads #rhs_adverts #rhsads +#rhsadvert #richad  #right-ad#right-ad-block #right-ad-col#right-ad-iframe#right-ad-skin +#right-ad1 +#right-ads#right-ads-rail #right-advert #right-bar-ad #right-box-ad#right-content-ad#right-featured-ad##right-rail-ad-slot-content-top #right-widget-b-ads_widget-9 #right-widget-c-ads_widget-7!#right-widget-d-ads_widget-36##right-widget-top-ads_widget-23 +#right1-ad  #right1ad #rightAD #rightAd  #rightAd1 #rightAdBar #rightAdBlock#rightAdColumn#rightAdContainer#rightAdHolder #rightAdUnit #rightAd_rdr  #rightAds #rightAdsDiv #rightBlockAd#rightBottomAd #rightColAd#rightColumnAds #rightRailAds #rightSideAd#rightSideAdvert #right_Ads2  #right_ad #right_ad_1 #right_ad_2 #right_ad_box#right_ad_container #right_ad_top#right_ad_wrapper +#right_ads#right_ads_box#right_adsense #right_advert#right_advertisement#right_advertising#right_adverts #right_bg_ad#right_block_ads#right_bottom_adÖ #right_column_ad#right_column_ad_container#right_column_ads#right_column_adverts#right_player_ad#right_side_ad#right_sidebar_ads #right_top_ad#right_top_gad #rightad  #rightad1  #rightad2#rightadBorder#rightadBorder1#rightadBorder2#rightadContainer #rightadcell  #rightadg #rightadhome  #rightads#rightads300x250 #rightadsarea #rightbar-ad #rightbar_ad#rightcol_sponsorad#rightgoogleads #rightrail-ad#rightside-ads #rightside_ad #rightskyad#rm-adslot-bigsizebanner_1#rm-adslot-contentad_1 #rotating_ad #rotatingads #row-ad #rowAdv#rtAdvertisement +#scroll-ad +#scroll_ad +#search-ad #search-ads1#search-google-ads#search-sponsor#search-sponsored-links  #searchAd +#searchAds +#search_ad #search_ads#second_ad_div  #secondad #section-ad#section-ad-bottom #section_ad#section_advertisements #self-ad#sev1mposterad #show-ad#show-sticky-ad #showAd  #show_ads #showads #showcaseAd #side-ad#side-ad-container¿   #side-ads #side-ads-box#side-banner-ad #side-boxad #sideABlock #sideAD #sideAd #sideAd1 #sideAd2 #sideAd3 #sideAd4 #sideAdArea #sideAdLarge #sideAdSmall +#sideAdSub #sideAds #sideBannerAd #sideBar-ads +#sideBarAd #sideSponsors #side_ad#side_ad_module#side_ad_wrapper  #side_ads #side_adverts #side_longads#side_skyscraper_ad#side_sponsors #sidead #sidead1 #sideads#sideads_container #sideadscol #sideadvert #sideadzone #sidebar-ad #sidebar-ad-1 #sidebar-ad-2#sidebar-ad-block#sidebar-ad-boxes#sidebar-ad-middle#sidebar-ad-wrap #sidebar-ad1 #sidebar-ad2 #sidebar-ad3 #sidebar-ads#sidebar-ads-content#sidebar-ads-narrow#sidebar-ads-wide#sidebar-ads-wrapper#sidebar-adspace #sidebar-adv#sidebar-advertise-text#sidebar-advertisement#sidebar-left-ad#sidebar-main-ad#sidebar-sponsors#sidebar-top-ad#sidebar-top-ads +#sidebarAd #sidebarAd1 #sidebarAd2#sidebarAdSense#sidebarAdSpaceƒ +#sidebarAdUnitWidget #sidebarAds#sidebarAdvTop#sidebarAdvert#sidebarSponsors#sidebarTextAds#sidebarTowerAds #sidebar_ad #sidebar_ad_1 #sidebar_ad_2 #sidebar_ad_3#sidebar_ad_big#sidebar_ad_container#sidebar_ad_top#sidebar_ad_widget#sidebar_ad_wrapper#sidebar_adblock #sidebar_ads#sidebar_box_add#sidebar_topad +#sidebarad #sidebarad0#sidebaradpane #sidebarads#sidebaradsense#sidebaradverts#sidebard-ads-wrapper#sidebargooglead#sidebargoogleads#sidebarrectad #sideline-ad #sidepad-ad +#single-ad #single-ad-2#single-adblade #single-mpu  #singleAd#singleAdsContainer  #singlead +#singleads#site-ad-container  #site-ads#site-header__ads#site-leaderboard-ads#site-sponsor-ad#site-sponsors #siteAdHeader#site_bottom_ad_div#site_content_ad_div #site_top_ad #site_wrap_ad #sitead #skcolAdSky #skin-ad #skin-ad-left-rail-container!#skin-ad-right-rail-container +#skinTopAd  #skin_adv #skinad-left #skinad-right #skinningads #sky-ad #sky-ads  #sky-left¬  +#sky-right +#skyAd#skyAdContainer #skyScraperAd#skyScrapperAd#skyWrapperAds #sky_ad #sky_advert #skyads +#skyadwrap +#skybox-ad #skyline_ad #skyscrapeAd#skyscraper-ad #skyscraperAd#skyscraperAdContainer#skyscraperAdWrap#skyscraperAds#skyscraperWrapperAd#skyscraper_ad#skyscraper_advert#skyscraperadblock#skyscrapper-ad #slideAd  #slide_ad #slidead #slideboxad +#slider-ad#sliderAdHolder +#slider_ad #sm-banner-ad #smallAd  #small_ad +#small_ads #smallad  #smallads +#smallerAd#sp-adv-banner-top +#specialAd #special_ads#specialadfeatures #specials_ads +#speed_ads #speeds_ads#splashy-ad-container-top #sponBox #spon_links  #sponlink +#sponlinks  #sponsAds #sponsLinks #spons_links#sponseredlinks#sponsor-box-widget#sponsor-flyout#sponsor-flyout-wrap#sponsor-links#sponsor-partners#sponsor-sidebar-container +#sponsorAd #sponsorAd1 #sponsorAd2 #sponsorAdDiv #sponsorBarÿ +#sponsorBorder#sponsorContainer0#sponsorFooter#sponsorLinkDiv #sponsorLinks#sponsorResults #sponsorSpot #sponsorTab #sponsorText#sponsorTextLink#sponsor_300x250 #sponsor_ad #sponsor_ads #sponsor_bar#sponsor_bottom #sponsor_box#sponsor_deals #sponsor_div#sponsor_footer#sponsor_header #sponsor_link #sponsor_no#sponsor_posts#sponsor_right#sponsored-ads#sponsored-carousel-nucleus#sponsored-footer#sponsored-inline#sponsored-links#sponsored-links-alt#sponsored-links-container#sponsored-listings#sponsored-message#sponsored-products#sponsored-recommendations#sponsored-resources#sponsored-search#sponsored-text-links#sponsored-widget #sponsored1 #sponsoredAd#sponsoredAdvertisement#sponsoredBottom#sponsoredBox1#sponsoredBox2#sponsoredFeaturedHoz #sponsoredHoz#sponsoredLinks#sponsoredLinksBox#sponsoredList#sponsoredResults#sponsoredResultsWide #sponsoredTop#sponsored_ads#sponsored_container#sponsored_content#sponsored_head#sponsored_label#sponsored_link_bottom#sponsored_links#sponsored_native_ad #sponsoredad #sponsoredads#sponsoredlinks× #sponsorfeature #sponsorlink#sponsors-article#sponsors-block#sponsors-home #sponsorsBox#sponsorsContainer#sponsorship-area-wrapper#sponsorship-box#sporsored-results#spotlight-ads #spotlightAds #spotlight_ad #spotlightad +#sprint_ad #sqAd #sq_ads +#square-ad#square-ad-box#square-ad-space #square-ads#square-sponsors  #squareAd#squareAdBottom#squareAdSpace #squareAdTop #squareAdWrap +#squareAds#squareGoogleAd +#square_ad  #squaread#squareadevertise #squareadvert #squared_ad  #staticad +#stationad +#sticky-ad#sticky-ad-bottom#sticky-ad-container#sticky-ad-header#sticky-add-side-block #sticky-ads#sticky-ads-top#sticky-custom-ads#sticky-footer-ad#sticky-footer-ads#sticky-left-ad#sticky-rail-ad  #stickyAd#stickyAdBlock#stickyBottomAd#stickySidebarAd #stickySkyAd#sticky_sidebar_ads  #stickyad +#stickyads #stickyleftad#stickyrightad #stopAdv  #stop_ad3  #story-ad#story-bottom-ad #storyAd  #story_ad» + +#story_ads  #storyad2  #stripadv #subheaderAd #takeover-ad #takeover_ad #takeoverad#td-ad-placeholder +#tdAds #td_adunit2 #td_sponsorAd #team_ad$ #teaser1[style^="width:autopx;"]$ #teaser2[style^="width:autopx;"]zv#teaser3[style="width: 100%;text-align: center;display: scroll;position:fixed;bottom: 0;margin: 0 auto;z-index: 103;"]$ #teaser3[style^="width:autopx;"] #text-ad  #text-ads#text-intext-ads#text-link-ads #textAd #textAd1 #textAds #textAdsTop #text_ad  #text_ads #text_advert #textad #textad3#textlink-advertisement #textsponsor#tfm_admanagerTeaser #tile-ad #tileAds #tmInfiniteAd #toaster_ad #top-ad #top-ad-area#top-ad-banner#top-ad-container#top-ad-content#top-ad-desktop #top-ad-div#top-ad-google#top-ad-iframe #top-ad-rect #top-ad-slot#top-ad-slot-0#top-ad-slot-1 #top-ad-unit#top-ad-wrapper #top-adblock  #top-adds #top-ads +#top-ads-1#top-ads-contain#top-ads-container #top-adspot #top-advert#top-advertisement#top-advertisements#top-advertising-content#top-banner-ad#top-banner-ad-browser… #top-buy-sell-ads #top-dfp #top-head-ad#top-leaderboard-ad #top-left-ad#top-middle-add #top-not-ads #top-right-ad#top-right-ad-slot #top-skin-ad#top-skin-ad-bg#top-sponsor-ad #top-story-ad +#topAD +#topAd #topAd728x90 +#topAdArea #topAdBanner  #topAdBar  #topAdBox#topAdContainer  #topAdDiv#topAdDropdown #topAdHolder +#topAdShow #topAdSpace#topAdSpace_div #topAdWrapper#topAdcontainer #topAds #topAds1 #topAds2#topAdsContainer +#topAdsDiv #topAdsG #topAdv +#topAdvBox +#topAdvert #topBanner-ad #topBannerAd#topBannerAdContainer #topBannerAdv  #topImgAd#topLeaderboardAd #topMPU#topMpuContainer#topSponsorBanner#topSponsoredLinks #top_AD #top_ad #top_ad-360 #top_ad_area#top_ad_banner #top_ad_block #top_ad_box#top_ad_container +#top_ad_td #top_ad_unit#top_ad_wrapper #top_ad_zone #top_add #top_ads #top_ads_box#top_ads_container„ #top_ads_region #top_ads_wrap#top_adsense_cont #top_adspace #top_adv #top_advert#top_advert_box#top_advertise#top_advertising#top_banner_ads#top_container_ad#top_google_ads #top_mpu #top_mpu_ad#top_rectangle_ad #top_right_ad #top_row_ad #top_span_ad#top_sponsor_ads#top_sponsor_text #top_wide_ad +#topad #topad-728x90 #topad-block #topad-wrap #topad1 #topad2  #topad728 #topad_holder #topad_left #topad_right #topad_table #topadbanner #topadbanner2  #topadbar #topadblock +#topadcell#topadcontainer #topaddwide +#topadleft  #topadone#topadplaceholder #topadright#topads-spacer#topads-wrapper #topadsblock +#topadsdiv #topadsense #topadspace +#topadvert +#topadwrap #topadz +#topadzone #topbanner_ad#topbanner_sponsor #topbannerad#topbanneradtitle +#topbar-ad  #topbarAd  #topbarad +#topbarads #topcustomad#topheader_ads #topleaderAdì #topleaderboardad  #topnavad #toppannonse #topright-ad#toprightAdvert #toprightad +#toprow-ad#topsidebar-ad +#topsponad#topsponsorads #topsponsored +#toptextad#tor-footer-ad  #tower1ad#towerAdContainer #towerad#tpd-post-header-ad#tpl_advertising#transparentad#trc_google_ad #txtAdHeader +#upper-ads  #upperMpu#upperRightAds #upper_adbox#upper_advertising#upper_small_ad #upperad#velsof_wheel_container  #vert-ads #vertAd2 #vert_ad#vert_ad_placeholder #vertad1 #vertical.ad #verticalAds #vertical_ad #vertical_ads #verticalads  #video-ad!#video-ad-companion-rectangle +#video-adv#video-adv-wrapper #video-advert#video-embed-ads#video-in-player-ad#video-side-adv#video-sponsor-links#video-under-player-ad #videoAd#videoAdContainer #videoAdvert#videoCompanionAd #videoOverAd#videoOverAd300 #videoPauseAd +#video_adv #video_advert#video_advert_top#video_embed_ads#video_hor_bot_ads#video_overlay_ad #videoad#videoad-script-cnt¦ +  #videoads #viewAd1#viewabilityAdContainer +#visual-ad#vuukle-quiz-and-ad#vuukle_ads_square2 #wTopAd #wallAd #wall_advert #wd-sponsored #weather-ad#weather_sponsor +#weatherad #welcome_ad #wg_ads +#wgtAd#whitepaper-ad #wide-ad #wideAdd #wide_ad_unit#wide_ad_unit2#wide_ad_unit3  #wide_adv#wide_right_ad #widget-ads-3 #widget-ads-4#widget-adv-12#widget-box-ad-1#widget-box-ad-2#widget_Adverts +#widget_ad#widget_advertisement#widget_thrive_ad_default-2#widget_thrive_ad_default-4#widgetwidget_adserve#widgetwidget_adserve2 #wl-pencil-ad #wow-ads#wp-insert-ad-widget-1 +#wp-topAds #wp_ad_marker #wp_adbn_root#wp_ads_gpt_widget-16#wp_ads_gpt_widget-17#wp_ads_gpt_widget-18#wp_ads_gpt_widget-19#wp_ads_gpt_widget-21#wp_ads_gpt_widget-4#wp_ads_gpt_widget-5&"#wpgtr_stickyads_textcss_container +#wpladbox1 +#wpladbox2 #wrapAd #wrapAdRight#wrapCommentAd #wrapper-AD_G #wrapper-AD_L#wrapper-AD_L2#wrapper-AD_L3#wrapper-AD_PUSH #wrapper-AD_R #wrapper-ad#wrapper-ad970#wrapperAdsTopLeftë#wrapperAdsTopRight#wrapperRightAds#wrapper_ad_Top#wrapper_sponsoredlinks#wrapper_topad #wtopad#yahoo-sponsors#yahooAdsBottom#yahooSponsored +#yahoo_ads#yahoo_text_ad  #yahooads +#yandex_ad #yandex_ad2  #yatadsky +#yrail_ads#yreSponsoredLinks#ysm_ad_iframe#zMSplacement1#zMSplacement2#zMSplacement3#zMSplacement4#zMSplacement5#zMSplacement6#zdcFloatingBtn#zeus_top-banner #zone-adsense#zsAdvertisingBanner.-advertsSidebar +.ADBAR +.ADBox  .ADFooter .ADInfo  .ADLeader +.ADMiddle1 +.ADPod  .ADServer .ADStyle +.ADTop .ADVBig .ADVFLEX_250 .ADV_Mobile .AD_2 .AD_area +.ADbox +.ADmid  .ADwidget .ATF_wrapper +.Ad--Align +.Ad--empty .Ad--header .Ad--loading.Ad--presenter .Ad--sidebar.Ad-Advert_Container +.Ad-Header  .Ad-Inner .Ad-adhesive.Ad-hor-height  .Ad-label.Ad-leaderboard.Ad.Leaderboard +.Ad300 .Ad3TileÆ  .Ad728x90 +.AdBar.AdBody:not(body)  .AdBorder .AdBottomPage +.AdBox  .AdBox160 .AdBox7  .AdBox728  .AdCenter .AdCommercial.AdCompactheader .AdContainer.AdContainer-Sidebar  .AdHeader .AdHere  .AdHolder  .AdInline +.AdInsLink .AdLeft1 .AdLeft2  .AdMedium +.AdMessage +.AdMod  .AdModule.AdOneColumnContainer.AdOuterMostContainer .AdPanel.AdPlaceHolder.AdPlaceholder.AdPlacementContainer +.AdProduct  .AdRight1  .AdRight2 .AdSense .AdSenseLeft .AdSlot .AdSpace +.AdSpeedWP .AdTagModule .AdTitle +.AdTop .AdUnit.AdWidget_ImageWidget .Ad_C .Ad_D  .Ad_Label  .Ad_Right .Ad_container .Ads--center .Ads-768x90.Ads-background.Ads-leaderboard  .Ads-slot .Ads-sticky +.AdsBottom .AdsBox .AdsBoxBottom.AdsBoxSection +.AdsBoxTop.AdsLayout__top-container.AdsRectangleWrapper .AdsSlot .Ads__wrapperô  .Ads_header .Adsense .AdsenseBox  .Adsterra .Adtext .Adv468 .Advert-label.Advert300x250.AdvertContainer.AdvertWrapper.AdvertisementAfterHeader.AdvertisementAfterPost.AdvertisementAsidePost.AdvertisementText.AdvertisementTextTag.AdvertisementTop .Advertisment.AdvertorialTeaser .AdvtSample .AdzerkBanner .AffiliateAds.AppFooter__BannerAd .Arpian-ads.Article-advert +.ArticleAd.ArticleAdSide.ArticleAdWrapper.ArticleInlineAd.ArticleInnerAD .Article__Ad .BOX_Ad .BOX_LeadAd.Banner300x250 .Banner468X60  .BigBoxAd.BigBoxAdLabel .Billboard-ad.Billboard-ad-holder.Billboard_2-ad-holder.Billboard_3-ad-holder.Billboard_4-ad-holder.Billboard_5-ad-holder .BlockAd.BottomAd-container.BottomAdContainer.BottomAdsPartial.BottomAffiliate +.BoxAd +.BoxAdWrap .BoxRail-ad  .ButtonAd +.CommentAd .ConnatixAd +.ContentAd .ContentAds.ContentBottomAd.ContentTextAd .ContentTopAd +.DFPad +.DisplayAd .FirstAd  .FooterAd.FooterAdContainer +.FooterAds˜ +.Footer_1-ad-holder +.GRVAd.GRVMpuWrapper.GRVMultiVideo.Gallery-Content-BottomAd .GeminiAdItem.GeminiNativeAd +.GoogleAdv .GoogleDfpAd.GoogleDfpAd-Content.GoogleDfpAd-Float.GoogleDfpAd-container.GoogleDfpAd-wrap.GoogleDfpAd-wrapper.GoogleDfpAdModule".GoogleDoubleClick-SponsorText .GroupAdSense  .HeaderAd +.HeaderAds.HeaderBannerAd.HeadingAdSpace .Hero-Ad .HomeAds .InArticleAd .IndexRightAd .InsertedAd .LastAd.LayoutBottomAds.LayoutHomeAds.LayoutHomeAdsAd.LayoutPromotionAdsNew .LazyLoadAd  .LeaderAd.LeaderAdvertisement.LeaderBoardAd.LearderAd_Border.ListicleAdRow +.MPUHolder +.MPUad.MapLayout_BottomAd.MapLayout_BottomMobiAd.MarketGid_container .MbanAd  .MiddleAd.MiddleAdContainer .MiddleAdvert.MiddleRightRadvertisement +.NA_ad .NR-Ads.NativeAdContainerRegion  .NavBarAd .Normal-add  .OAS_wrap.OcelotAdModule.OcelotAdModule-ad .PPD_ADS_JS .Page-ad +.PageTopAd .PcSideBarAd  .PencilAd .PostAdvertisementBeforePost.PostSidebarAd  .Post__ad.PrimisResponsiveStyleð .PrintAd-Slider +.ProductAd .PushdownAd .RectangleAd.Rectangle_1-ad-holder.Rectangle_2-ad-holder.Rectangle_3-ad-holder .RelatedAds .ResponsiveAd .RightAd  .RightAd1  .RightAd2.RightAdvertisement.RightGoogleAd .RightRailAd .RightRailAds .RightTowerAd .STR_AdBlock .SecondaryAd.SecondaryAdLink .Section-ad.SectionSponsor .SideAd +.SideAdCol .SideAds.SideWidget__ad .Sidebar-ad.Sidebar-ad--300x600 +.SidebarAd.SidebarAdvert.SidebarRightAdvertisement  .SimpleAd.SkyAdContainer .SkyAdContent .SkyScraperAd .SovrnAd.Sponsor-container.SponsorHeader.SponsorIsland .SponsorLink.SponsoredAdTitle.SponsoredArticleAd.SponsoredContent.SponsoredContentWidget.SponsoredLinks.SponsoredLinksModule.SponsoredLinksPadding.SponsoredLinksPanel.SponsoredResults.Sponsored_link  .SquareAd.Sticky-AdContainer.StickyAdRail__Inner.SummaryPage-HeaderAd .TextAd  .TextAdds .Textads +.TopAd  .TopAdBox.TopAdContainer .TopAdL .TopAdR .TopAds .TopBannerAdµ +.TopRightRadvertisement .Top_Ad.TrackedBannerPromo.TrackedSidebarPromo +.TrafficAd.U210-adv-column .UnderAd .VerticalAd  .Video-Ad .VideoAd.WPBannerizeWidget.WP_Widget_Ad_manager .WideAdTile .WideAdsLeft.WidgetAdvertiser .WidthAd>:.\[\&_\.gdprAdTransparencyCogWheelButton\]\:\!pjra-z-\[5\]._SummaryPageHeaderAdView$ ._SummaryPageSidebarStickyAdView ._ads +._ads-full._ap_adrecover_ad._articleAdvert ._bannerAds._bottom_ad_wrapper._fullsquaread  ._has-ads ._popIn_recommend_article_ad)%._popIn_recommend_article_ad_reserved._table_ad_div_wide .a-ad .a-d-250 .a-d-90 +.a-dserver.a-dserver_text +.a-sponsor.ab-ad_placement-article +.ablock300 +.ablock468 +.ablock728.above-header-advert.aboveCommentAds .abovead .ac-banner-ad.ac-widget-placeholder  .ac_adbox.acm-ad-tag-unit .ad--300 .ad--300x250 .ad--468 .ad--468-60 .ad--728x90.ad--970-750-336-300 .ad--970-90 .ad--article.ad--article-top.ad--articlemodule +.ad--b .ad--banner .ad--banner2.ad--banniere_basse.ad--banniere_haute.ad--billboard .ad--bottom¼ .ad--bottom-label.ad--bottommpu.ad--boundries .ad--button +.ad--c .ad--center .ad--centered.ad--container .ad--content.ad--content-ad  .ad--dart .ad--desktop.ad--displayed.ad--droite_basse.ad--droite_haute.ad--droite_middle +.ad--e .ad--fallback .ad--footer .ad--fullsize .ad--google .ad--halfpage .ad--header.ad--homepage-top.ad--in-article.ad--in-content.ad--inArticleBanner .ad--inline +.ad--inner +.ad--large.ad--leaderboard .ad--loading.ad--medium-rectangle.ad--medium_rectangle#.ad--medium_rectangle_outstream.ad--mediumrectangle .ad--mid.ad--mid-content .ad--mobile .ad--mpu .ad--native.ad--nativeFlex +.ad--no-bg .ad--noscroll .ad--object.ad--outstream.ad--overlayer .ad--p1 .ad--p2 .ad--p3 .ad--p4 .ad--p6 .ad--p7.ad--placeholder.ad--pubperform .ad--pushdown  .ad--rail.ad--rectangle.ad--rectangle1.ad--rectangle2 +.ad--right.ad--rightRail .ad--scroll .ad--sectionº .ad--sidebar .ad--sky.ad--skyscraper .ad--slider  .ad--slot.ad--sponsor-content.ad--square-rectangle .ad--sticky .ad--stripe .ad--stroeer.ad--subcontainer .ad--top.ad--top-desktop.ad--top-leaderboard .ad--top-slot.ad--topmobile.ad--topmobile2.ad--topmobile3.ad--wallpaper .ad--widget .ad--wrapper .ad-1 +.ad-120-60 +.ad-120x60 .ad-120x600 +.ad-120x90 .ad-125x125 +.ad-13 .ad-137 +.ad-14 .ad-160 .ad-160-160 .ad-160-600 .ad-160x600 .ad-2 .ad-200 .ad-200x200 .ad-250 .ad-250x300 .ad-3 .ad-300  .ad-300-2.ad-300-250-600 .ad-300-600  .ad-300-b .ad-300-block .ad-300-dummy .ad-300-flex .ad-300-x-250 +.ad-300250 .ad-300X250.ad-300X250-body .ad-300x .ad-300x100 .ad-300x200 .ad-300x250 .ad-300x600 .ad-336 .ad-336x280 .ad-336x280B .ad-350 .ad-4 .ad-468 .ad-468x120· +.ad-468x60 .ad-5 .ad-544x250 +.ad-55 .ad-560 .ad-6 .ad-600  .ad-600-h +.ad-635x40 .ad-7 .ad-728 +.ad-728-90.ad-728-banner .ad-728-x-90 +.ad-728x90 .ad-728x90-1.ad-728x90-top.ad-728x90-top0.ad-728x90-wrapper.ad-728x90_forum .ad-768 .ad-8  .ad-88-60  .ad-88x31 .ad-9 +.ad-90 +.ad-90x600 .ad-970 .ad-970-250 +.ad-970-90 +.ad-970250 .ad-970x250 +.ad-970x90.ad-Advert_Placeholder .ad-E .ad-LREC  .ad-LREC2.ad-Leaderboard .ad-MPU.ad-MediumRectangle +.ad-PENCIL .ad-S +.ad-Square.ad-SuperBanner +.ad-TOPPER .ad-W .ad-a +.ad-ab .ad-abc.ad-above-header .ad-accordion +.ad-active .ad-adSense +.ad-adcode .ad-adhesion.ad-adlink-bottom.ad-adlink-side .ad-adsense.ad-adsense-block-250 .ad-advertisement-horizontal .ad-affiliate.ad-after-content.ad-after-header.ad-align-noneÆ +.ad-aligncenter .ad-alignment.ad-alsorectangle +.ad-anchor .ad-aps-wide .ad-area--pd.ad-area-small.ad-article-breaker.ad-article-inline.ad-article-teaser.ad-article-wrapper.ad-aside-pc-billboard .ad-atf .ad-atf-top.ad-background.ad-background-center.ad-background-container .ad-ban .ad-banner-2.ad-banner-250x600.ad-banner-300.ad-banner-300x250 .ad-banner-5 .ad-banner-6.ad-banner-728x90.ad-banner-bottom-container.ad-banner-box.ad-banner-btf.ad-banner-container.ad-banner-content.ad-banner-full-wrapper.ad-banner-header.ad-banner-image.ad-banner-inlisting.ad-banner-leaderboard.ad-banner-placeholder.ad-banner-single.ad-banner-smaller.ad-banner-static.ad-banner-top.ad-banner-top-wrapper.ad-banner-wrapper .ad-banners .ad-bar.ad-bar-header +.ad-bb.ad-before-header  .ad-below.ad-below-images.ad-below-player.ad-belowarticle +.ad-bg .ad-big .ad-big-box .ad-bigbanner.ad-bigbillboard +.ad-bigbox.ad-bigbox-double-inread.ad-bigbox-fixed .ad-bigsize .ad-billboard  .ad-bline  .ad-block.ad-block--300ð .ad-block--leader .ad-block-300.ad-block-banner-container .ad-block-big.ad-block-bottom .ad-block-btf.ad-block-container.ad-block-header.ad-block-holder.ad-block-inside .ad-block-mod.ad-block-section.ad-block-square.ad-block-sticky-ad.ad-block-wide .ad-block-wk.ad-block-wrapper.ad-block-wrapper-dev .ad-blogads .ad-bnr .ad-body .ad-boombox +.ad-border .ad-bordered.ad-borderless .ad-bot +.ad-bottom.ad-bottom-container.ad-bottom-right-container.ad-bottom728x90.ad-bottomLeft.ad-bottomleader.ad-bottomline  .ad-box-2.ad-box-300x250 .ad-box-auto.ad-box-caption.ad-box-container .ad-box-title +.ad-box-up .ad-box-video.ad-box-wrapper .ad-box1 .ad-box2 .ad-box3'#.ad-box:not(#ad-banner):not(:empty)  .ad-box_h.ad-boxamp-wrapper .ad-boxbottom  .ad-boxes .ad-boxsticky +.ad-boxtop .ad-brdr-btm  .ad-break.ad-break-item .ad-breaker .ad-breakout.ad-browse-rectangle +.ad-bt .ad-btn.ad-btn-heading .ad-bug-300w .ad-burnside +.ad-button¦ + .ad-buttons .ad-c-label .ad-cad .ad-calendar.ad-call-300x250 .ad-callout.ad-callout-wrapper .ad-caption .ad-card.ad-card-container .ad-carousel .ad-cat .ad-catfish .ad-cell .ad-cen .ad-cen2 .ad-cen3 +.ad-center .ad-centered .ad-centering.ad-chartbeatwidget .ad-choices .ad-circ  .ad-click.ad-close-button .ad-cls .ad-cls-fix .ad-cnt .ad-code  .ad-codes .ad-col +.ad-col-02 +.ad-colour +.ad-column .ad-comment .ad-companion .ad-complete .ad-component.ad-component-fullbanner2.ad-component-wrapper .ad-contain.ad-contain-300x250.ad-contain-top.ad-container--inline.ad-container--leaderboard.ad-container--masthead.ad-container--mrec.ad-container--stripe.ad-container--top.ad-container-160x600.ad-container-300x250.ad-container-728.ad-container-728x90.ad-container-adsense.ad-container-banner-top.ad-container-bot.ad-container-bottom.ad-container-box.ad-container-embedded.ad-container-header.ad-container-inner.ad-container-inthread.ad-container-leaderboard.ad-container-leftå +.ad-container-m".ad-container-medium-rectangle.ad-container-middle.ad-container-multiple.ad-container-pave.ad-container-property.ad-container-responsive.ad-container-right.ad-container-side.ad-container-single.ad-container-tool.ad-container-top.ad-container-topad.ad-container-wrapper.ad-container1.ad-container3x.ad-container__ad-slot.ad-container__leaderboard!.ad-container__sticky-wrapper.ad-container_row .ad-content.ad-content-area.ad-content-rectangle.ad-content-slot.ad-content-wrapper .ad-context  .ad-cover .ad-critical .ad-cta .ad-current .ad-curtain.ad-custom-size .ad-d.ad-decoration  .ad-defer .ad-desktop.ad-desktop-in-content.ad-desktop-legacy.ad-desktop-native-1.ad-desktop-native-2.ad-desktop-only.ad-desktop-right +.ad-detail.ad-dfp-column .ad-dfp-row.ad-disclaimer.ad-disclaimer-container.ad-disclaimer-text .ad-display .ad-displayed  .ad-diver .ad-divider .ad-dog.ad-dog__cnx-container.ad-dog__ratio-16x9 +.ad-dt +.ad-dx_wrp .ad-e .ad-element .ad-enabled +.ad-engage.ad-entity-container.ad-entry-wrapper +.ad-exÞ  .ad-exchange +.ad-expand .ad-external +.ad-fadein +.ad-fadeup.ad-feature-content.ad-feature-sponsor.ad-feature-text.ad-featured-video-caption .ad-feedback +.ad-fi  .ad-field +.ad-filler .ad-filmstrip  .ad-first .ad-fix  .ad-fixed .ad-flag .ad-flex.ad-flex-center  .ad-float .ad-floating  .ad-floor +.ad-footer.ad-footer-empty.ad-footer-leaderboard.ad-format-300x250.ad-format-300x600  .ad-forum  .ad-frame.ad-frame-container .ad-full.ad-full-width.ad-fullbanner .ad-fullbanner-btf-container.ad-fullbannernohieght .ad-fullwidth +.ad-gap-sm .ad-giga +.ad-google.ad-google-contextual .ad-gpt.ad-gpt-breaker.ad-gpt-container .ad-gpt-main.ad-gpt-vertical.ad-graphic-large .ad-gray .ad-grey .ad-grid .ad-grid-125.ad-grid-container  .ad-group .ad-halfpage.ad-halfpage-placeholder .ad-hdr .ad-head +.ad-header.ad-header-below.ad-header-container.ad-header-creative.ad-header-inner-wrap.ad-header-pencil.ad-header-placeholder’ +.ad-header-sidebar.ad-header-small-square .ad-heading.ad-height-250.ad-height-280.ad-height-600 .ad-here .ad-hero.ad-hide-mobile .ad-hideable .ad-hint .ad-hldr-tmc +.ad-ho .ad-hold +.ad-holder.ad-holder-center.ad-holder-mob-300.ad-home-bottom$ .ad-home-leaderboard-placeholder.ad-home-right.ad-homeleaderboard .ad-homepage.ad-homepage-1.ad-homepage-2.ad-homepage-one .ad-hor.ad-horizontal.ad-horizontal-large.ad-horizontal-top.ad-horizontal-top-wrapper .ad-hoverable .ad-hpto .ad-icon.ad-identifier +.ad-iframe.ad-iframe-container.ad-in-content.ad-in-content-300 .ad-in-post .ad-in-read.ad-in-results .ad-inStory .ad-incontent.ad-incontent-wrap.ad-index-main.ad-indicator-horiz .ad-info-wrap +.ad-inline.ad-inline-article.ad-inline-block  .ad-inner.ad-inner-container".ad-inner-container-background .ad-innr +.ad-insert.ad-inserter-widget +.ad-inside.ad-integrated-display .ad-internal.ad-interruptor.ad-interstitial +.ad-island .ad-item.ad-item-relatedó   .ad-label  .ad-lable .ad-landscape .ad-large-1.ad-large-game .ad-last .ad-lat .ad-lat2  .ad-layer .ad-lazy +.ad-lb +.ad-ldrbrd .ad-lead.ad-lead-bottom +.ad-leader.ad-leader-board.ad-leader-bottom.ad-leader-plus-top.ad-leader-top.ad-leader-wrap.ad-leader-wrapper.ad-leaderboard.ad-leaderboard-base.ad-leaderboard-companion.ad-leaderboard-container.ad-leaderboard-flex.ad-leaderboard-footer.ad-leaderboard-header.ad-leaderboard-middle.ad-leaderboard-placeholder.ad-leaderboard-slot.ad-leaderboard-splitter.ad-leaderboard-top.ad-leaderboard-wrapper.ad-leaderbody.ad-leaderheader .ad-leadtop +.ad-left-1 .ad-left-top .ad-leftrail .ad-lib-div .ad-line .ad-link.ad-link-block.ad-link-label .ad-link-left.ad-link-right  .ad-links.ad-links-text.ad-list-desktop .ad-list-item +.ad-loaded +.ad-loader .ad-location.ad-location-container .ad-lock.ad-lock-content.ad-lowerboard .ad-lrec .ad-m-banner +.ad-m-mrec  .ad-m-rec .ad-mad .ad-main¦ +.ad-manager-ad.ad-manager-placeholder.ad-manager-wrapper +.ad-margin.ad-marketplace.ad-marketswidget .ad-marquee .ad-masthead.ad-masthead-1.ad-masthead-left +.ad-mb .ad-med .ad-med-rec .ad-med-rect.ad-med-rect-tmp +.ad-medium.ad-medium-container.ad-medium-content.ad-medium-rectangle.ad-medium-rectangle-base.ad-medium-two.ad-medium-widget .ad-medrect .ad-megaboard .ad-message .ad-messaging.ad-microsites .ad-midleader +.ad-mobile.ad-mobile--sticky.ad-mobile-300x150.ad-mobile-300x250.ad-mobile-300x50.ad-mobile-banner.ad-mobile-flex-inc.ad-mobile-flex-pos2 .ad-mobile-incontent-ad-plus%!.ad-mobile-mpu-plus-outstream-inc.ad-mobile-nav-ad-plus .ad-mod.ad-mod-section.ad-mod-section-728-90 +.ad-module  .ad-mount .ad-mpl .ad-mpu.ad-mpu-bottom.ad-mpu-container.ad-mpu-middle.ad-mpu-middle2.ad-mpu-placeholder.ad-mpu-plus-top .ad-mpu-top.ad-mpu__aside .ad-mpufixed.ad-mr-article .ad-mrec  .ad-mrect .ad-msg .ad-msn +.ad-native.ad-native-top-sidebar +.ad-nav-ad.ad-nav-ad-plusà  .ad-new .ad-new-box +.ad-no-css .ad-no-mobile .ad-no-notice .ad-no-style.ad-noBorderAndMargin +.ad-noline .ad-note +.ad-notice.ad-notice-small .ad-observer .ad-oms +.ad-on +.ad-on-top .ad-one  .ad-other  .ad-outer +.ad-outlet .ad-outline.ad-output-middle.ad-output-wrapper .ad-outside .ad-overlay  .ad-packs .ad-padding.ad-page-leader.ad-page-medium.ad-page-setting .ad-pagehead  .ad-panel.ad-panel-wrap.ad-panel__container .ad-panel__container--styled.ad-panel__googlead .ad-panorama .ad-parallax.ad-parent-billboard.ad-parent-class.ad-parent-halfpage +.ad-pb .ad-peg.ad-pencil-margin .ad-permalink.ad-personalise  .ad-place.ad-place-active.ad-place-holder.ad-placeholder--mpu.ad-placeholder-leaderboard.ad-placeholder-wrapper#.ad-placeholder-wrapper-dynamic.ad-placeholder__inner.ad-placement-left.ad-placement-right +.ad-places .ad-plea .ad-poc .ad-poc-admin  .ad-point  .ad-popup.ad-popup-content .ad-pos  .ad-pos-0æ   .ad-pos-1  .ad-pos-2  .ad-pos-3  .ad-pos-4  .ad-pos-5  .ad-pos-6  .ad-pos-7  .ad-pos-8.ad-pos-middle .ad-pos-top .ad-position.ad-position-1.ad-position-2 .ad-poss .ad-post.ad-post-footer .ad-post-top .ad-postText +.ad-poster.ad-posterad-inlisting.ad-preloader-container .ad-preparing.ad-prevent-jump .ad-primary.ad-primary-desktop.ad-primary-sidebar .ad-priority.ad-program-list.ad-program-top  .ad-promo .ad-pub .ad-push .ad-pushdown .ad-r .ad-rac-box .ad-rail.ad-rail-wrapper  .ad-ratio .ad-rb-hover.ad-reader-con-item .ad-rect.ad-rect-atf-01.ad-rect-top-right .ad-rectangle.ad-rectangle-1.ad-rectangle-banner.ad-rectangle-container.ad-rectangle-long.ad-rectangle-long-sky.ad-rectangle-text.ad-rectangle-wide.ad-rectangle-xs.ad-rectangle2.ad-rectanglemed +.ad-region.ad-region-delay-load .ad-related.ad-relatedbottom.ad-render-space.ad-responsive.ad-responsive-slot.ad-responsive-wide +.ad-result.ad-rev-contentï  +.ad-rh  .ad-right.ad-right-header +.ad-right1 +.ad-right2 +.ad-right3.ad-risingstar-container .ad-roadblock .ad-root .ad-rotation .ad-rotator .ad-row .ad-row-box.ad-row-horizontal.ad-row-horizontal-top.ad-row-viewport .ad-s.ad-s-rendered +.ad-sample.ad-script-processed +.ad-scroll.ad-scrollpane.ad-search-grid.ad-secondary-desktop .ad-section.ad-section-body.ad-section-one.ad-section-three.ad-section__skyscraper  .ad-sense .ad-sense-ad .ad-sep .ad-separator .ad-shifted.ad-show-label .ad-showcase .ad-side .ad-side-one .ad-side-top.ad-side-wrapper .ad-sidebar.ad-sidebar-mrec.ad-sidebar-skyscraper .ad-siderail +.ad-signup.ad-single-bottom .ad-sitewide.ad-size-300x600.ad-size-728x90.ad-size-landscape.ad-size-leaderboard.ad-size-medium-rectangle".ad-size-medium-rectangle-flex .ad-size-mpu .ad-skeleton .ad-skin-link .ad-sky .ad-sky-left .ad-sky-right .ad-sky-wrap +.ad-skyscr.ad-skyscraper.ad-skyscraper1.ad-skyscraper2­ +.ad-skyscraper3 +.ad-slider .ad-slot.ad-slot--container.ad-slot--inline.ad-slot--mostpop.ad-slot--mpu-banner-ad.ad-slot--rendered.ad-slot--right .ad-slot--top.ad-slot--top-above-nav.ad-slot--top-banner-ad.ad-slot--wrapper +.ad-slot-1 +.ad-slot-2.ad-slot-234-60.ad-slot-300-250.ad-slot-728-90 +.ad-slot-a.ad-slot-article.ad-slot-banner.ad-slot-bigbox.ad-slot-billboard .ad-slot-box.ad-slot-container.ad-slot-container-1.ad-slot-desktop.ad-slot-full-width.ad-slot-header.ad-slot-horizontal.ad-slot-inview.ad-slot-placeholder .ad-slot-rail.ad-slot-replies.ad-slot-replies-header.ad-slot-responsive.ad-slot-sidebar.ad-slot-sidebar-b .ad-slot-tall .ad-slot-top.ad-slot-top-728.ad-slot-widget.ad-slot-wrapper +.ad-slotRg .ad-slotRgc.ad-slot__ad--top.ad-slot__content.ad-slot__label .ad-slot__oas.ad-slots-wrapper .ad-slug  .ad-small .ad-small-1 .ad-small-2 .ad-smallBP +.ad-source +.ad-sp  .ad-space.ad-space-mpu-box.ad-space-topbanner .ad-spacing .ad-span .ad-speedbump +.ad-splashé  .ad-sponsor.ad-sponsor-large-container.ad-sponsor-text.ad-sponsored-feed-top.ad-sponsored-links.ad-sponsored-post .ad-sponsors .ad-spot .ad-spotlight .ad-spteaser .ad-sq-super +.ad-square.ad-square-placeholder.ad-square2-container .ad-square300 .ad-squares  .ad-stack .ad-standard .ad-statement +.ad-static +.ad-sticky.ad-sticky-banner.ad-sticky-bottom.ad-sticky-container.ad-sticky-slot.ad-sticky-wrapper.ad-stickyhero.ad-stickyhero--standard .ad-stickyhero-enable-mobile.ad-story-inject .ad-story-top .ad-strategic  .ad-strip +.ad-style2.ad-subnav-container .ad-subtitle .ad-summary.ad-superbanner.ad-superbanner-node .ad-t +.ad-t-text  .ad-table .ad-tabs .ad-tag.ad-tag-square.ad-tag__inner.ad-tag__wrapper .ad-takeover.ad-takeover-homepage .ad-tall.ad-tech-widget .ad-temp .ad-text.ad-text-centered.ad-text-label .ad-text-link.ad-text-links .ad-textads .ad-textlink +.ad-thanks +.ad-ticker .ad-tile  .ad-title .ad-tl1œ + .ad-top.ad-top-300x250 .ad-top-728.ad-top-728x90.ad-top-banner.ad-top-billboard.ad-top-billboard-init.ad-top-box-right.ad-top-container.ad-top-desktop.ad-top-featured +.ad-top-in.ad-top-lboard .ad-top-left.ad-top-mobile .ad-top-mpu.ad-top-padding.ad-top-rectangle.ad-top-right-container .ad-top-side .ad-top-slot.ad-top-spacing.ad-top-wrap-inner.ad-top-wrapper .ad-topbanner +.ad-topper .ad-topright  .ad-tower.ad-tower-container +.ad-towers.ad-transition .ad-trck .ad-two .ad-twos .ad-txt .ad-txt-red .ad-type.ad-type-branding .ad-type-cube.ad-type-flex-leaderboard .ad-unit.ad-unit--leaderboard +.ad-unit-2 .ad-unit-300.ad-unit-300-wrapper.ad-unit-container.ad-unit-horisontal.ad-unit-inline-center.ad-unit-label .ad-unit-mpu.ad-unit-panel.ad-unit-secondary.ad-unit-sponsored-bar +.ad-unit-t .ad-unit-text .ad-unit-top.ad-unit-wrapper.ad-unit__inner#.ad-units-single-header-wrapper +.ad-update .ad-vert .ad-vertical.ad-vertical-container.ad-vertical-stack-ad² + .ad-view-zone  .ad-w-300  .ad-w-728  .ad-w-970 .ad-warning .ad-warp .ad-watermark .ad-wgt .ad-wide.ad-wide-bottom .ad-wide-wrap +.ad-widget.ad-widget-area.ad-widget-box.ad-widget-list.ad-widget-sizes.ad-widget-wrapper .ad-widgets .ad-width-300 .ad-width-728 .ad-wireframe.ad-wireframe-wrapper.ad-with-background.ad-with-header-wrapper.ad-with-notice +.ad-wp +.ad-wp-720 .ad-wppr.ad-wppr-container.ad-wrap-leaderboard.ad-wrap-transparent-).ad-wrap:not(#google_ads_iframe_checktag).ad-wrap_wallpaper  .ad-wrapp .ad-wrapper.ad-wrapper--ad-unit-wrap.ad-wrapper--articletop.ad-wrapper--lg.ad-wrapper--sidebar.ad-wrapper-250.ad-wrapper-bg.ad-wrapper-desktop.ad-wrapper-left.ad-wrapper-mobile.ad-wrapper-mobile-atf.ad-wrapper-outer.ad-wrapper-solid.ad-wrapper-sticky.ad-wrapper-top.ad-wrapper-with-text.ad-wrapper__ad-slug .ad-xs-title .ad-zone .ad-zone-ajax.ad-zone-container  .ad.addon.ad.bottomrect .ad.box.ad.brandboard .ad.card +.ad.center.ad.contentboard.ad.desktop-970x250 .ad.element¶.ad.floater-link .ad.gallery .ad.halfpage  .ad.inner .ad.item.ad.leaderboard .ad.maxiboard .ad.maxisky.ad.middlerect +.ad.module.ad.monsterboard .ad.netboard .ad.post-area .ad.promotion .ad.rectangle.ad.rectangle_2.ad.rectangle_3.ad.rectangle_home_1 .ad.section.ad.sidebar-module.ad.size-300x250.ad.skybridgeleft .ad.small-mpu.ad.small-teaser  .ad.super.ad.wideboard_tablet .ad02 .ad03 .ad04 .ad08sky +.ad1-float  .ad1-left +.ad1-right .ad10 +.ad100 .ad1000 .ad1001 +.ad100x100 +.ad120 +.ad120_600 +.ad120x120.ad120x240GrayBorder  .ad120x60 +.ad120x600 +.ad125 +.ad125x125 .ad125x125a .ad125x125b +.ad140 +.ad160  .ad160600 +.ad160_blk .ad160_l .ad160_r .ad160b +.ad160x160 +.ad160x600.ad160x600GrayBorder .ad160x600_1 .ad160x600box  .ad170x30 .ad18 +.ad180  .ad180x80� +.ad185x100 .ad19  .ad1Image .ad1_bottom .ad1_latest .ad1_top .ad1b .ad1left +.ad1x1 +.ad2-float +.ad200  .ad200x60  .ad220x50 +.ad230 +.ad233x224 +.ad234  .ad234x60  .ad236x62 +.ad240 +.ad250 +.ad250wrap +.ad250x250 +.ad250x300 +.ad260  .ad260x60 +.ad284x134 +.ad290.ad2content_box +.ad300 .ad300-hp-top .ad3001  .ad300250 .ad300Block .ad300Wrapper +.ad300X250 .ad300_2 +.ad300_250  .ad300_bg .ad300_ver2 .ad300b .ad300banner .ad300px .ad300shows  .ad300top .ad300w +.ad300x100 +.ad300x120 +.ad300x150 +.ad300x250 .ad300x250-1 .ad300x250-2.ad300x250-inline.ad300x250Module.ad300x250Right .ad300x250Top.ad300x250_box.ad300x250_container .ad300x250a .ad300x250b .ad300x250box.ad300x250box2.ad300x250flex .ad300x250s .ad300x250x2Ë  .ad300x40.ad300x50-right +.ad300x600 .ad300x600cat.ad300x600post  .ad300x77  .ad300x90 +.ad310 +.ad315 +.ad320x250  .ad320x50 +.ad336 .ad336_b +.ad336x250 +.ad336x280 +.ad336x362 +.ad343x290 +.ad350 .ad350r +.ad360 +.ad366 .ad3rdParty +.ad400 .ad400right  .ad400x40 +.ad450 +.ad468  .ad468_60  .ad468box.ad468innerboxadpic  .ad468x60 .ad468x60Wrap.ad468x60_main  .ad470x60 +.ad530  .ad540x90 +.ad590  .ad590x90.ad5_container +.ad600  .ad612x80  .ad620x70  .ad626X35 +.ad640x480 +.ad644 +.ad650x140 +.ad652 .ad70 +.ad728 .ad72890 +.ad728By90  .ad728_90 +.ad728_blk .ad728_cont .ad728_wrap .ad728b +.ad728cont .ad728h  .ad728top  .ad728x90 .ad728x90-1 .ad728x90-2 .ad728x90box .ad728x90btfº +.ad970 +.ad970_250  .adActive .adAlert .adArea  .adAreaLC .adAreaNative.adAreaTopTitle.adArticleBanner.adArticleBody.adArticleSideTop300x250 +.adBan.adBanner300x250.adBanner728x90 .adBillboard .adBkgd .adBlock .adBlock728.adBlockBottom.adBlockSpacer .adBlockSpot  .adBorder +.adBorders +.adBox .adBox-small .adBox1 .adBox2 .adBox5 .adBox6  .adBox728 .adBox728X90.adBox728X90_header +.adBoxBody .adBoxBorder.adBoxContainer .adBoxContent .adBoxFooter .adBoxHeader .adBoxSidebar .adBoxSingle .adBoxTitle .adBox_1 .adBox_3 +.adBtm .adCall.adCaptionText .adCell  .adCenter .adCenterAd .adCentertile  .adChoice .adChoiceLogo.adChoicesLogo  .adChrome .adClose .adCode  .adColumn .adColumnLeft.adColumnRight .adComponent .adCont +.adContTop .adContainer1.adContainerSideÕ +.adContent .adContentAd +.adContour .adCopy .adCreative +.adCreator .adCube +.adDefRect.adDetails_ad336 +.adDiv  .adDrawer +.adDyn +.adElement .adExpanded.adFooterLinks .adFrame .adFrameCnt.adFrameContainer  .adFrames .adFuel-label .adFull .adFullbanner.adGlobalHeader  .adGoogle .adGroup .adHalfPage .adHead  .adHeader.adHeaderAdbanner .adHeaderText.adHeaderblack +.adHeading .adHeadline.adHeadlineSummary +.adHed .adHeight200 .adHeight270 .adHeight280 .adHeight313 .adHeight600  .adHolder +.adHolder2.adHolderStory +.adHoldert.adHome300x250.adHomeSideTop300x250 .adHorisontal.adHorisontalNoBorder.adHorizontalTextAlt.adHplaceholder .adHz .adIDiv  .adIframe.adIframeCount +.adImg .adImgIM .adInArticle .adInContent .adInfo .adInitRemove .adInner.adInnerLeftBottom +.adInsider.adInteractiveÒ  .adIsland .adItem .adLabel .adLabelLine  .adLabels .adLargeRec .adLargeRect +.adLat  .adLeader.adLeaderBoard_container.adLeaderForum.adLeaderboard.adLeaderboardAdContainer .adLeft .adLine .adLink +.adLinkCnt .adListB  .adLoader .adLocal .adLocation +.adMPU +.adMPUHome .adMRECHolder  .adMarker.adMarkerBlock.adMastheadLeft.adMastheadRight +.adMed .adMedRectBox.adMedRectBoxLeft.adMediaMiddle.adMediumRectangle +.adMessage  .adMiddle.adMinHeight280.adMinHeight313 .adMiniTower +.adMod  .adModule.adModule--inner.adModule--outer.adModule-outer .adModule300 .adModuleAd +.adMpu .adMpuHolder.adMrginBottom  .adNarrow .adNoBorder .adNoOutline .adNone .adNote  .adNotice .adNotice90 .adNoticeOut.adNotification +.adObj +.adOne.adOuterContainer +.adOverlay .adPanel.adPanelContent .adPanoramaó.adPlaceholder .adPlacement +.adPod .adPosition +.adPremium .adRecommend.adRecommendRight .adRect .adRectangle.adRectangle-pos-large.adRectangle-pos-medium.adRectangle-pos-small.adRectangleBanner.adRectangleUnit  .adRemove .adRenderer.adRendererInfinite .adResponsive  .adResult +.adResults .adRight .adRightSide .adRightSky  .adRoller +.adRotator +.adRow.adRowTopWrapper +.adSKY +.adSection.adSenceImagePush .adSense.adSense-header  .adSepDiv  .adServer .adSeven .adSide .adSideBarMPU.adSideBarMPUTop.adSidebarButtons .adSizer .adSkin +.adSky .adSkyscaper .adSkyscraper .adSlice .adSlide .adSlot.adSlot-container.adSlotAdition +.adSlotCnt.adSlotContainer.adSlotHeaderContainer .adSlug +.adSpBelow .adSpace.adSpace300x250.adSpace950x90  .adSpacer .adSpec  .adSplash +.adSponsor.adSponsorText.adSponsorhipInfo .adSpot— .adSpot-mrec.adSpot-textBox .adSpotBlock.adSpotFullWidth .adSpotIsland  .adSquare.adStatementText .adStyle  .adStyle1 +.adSub .adSubColPod +.adSummary .adSuperboard .adSupertower .adTD  .adTXTnew +.adTab +.adTag +.adTag-top .adTag-wrap .adTagThree  .adTagTwo .adText.adTextDownload .adTextPmpt.adTextStreaming .adTextWrap  .adTicker .adTile .adTileWrap .adTiler +.adTip .adTitle  .adTitleR +.adTop .adTopBk .adTopFloat +.adTopHome .adTopLB +.adTopLeft .adTopRight .adTopWrapper.adTopboxright +.adTwo +.adTxt .adType2.adUnderArticle .adUnit .adUnitHorz .adUnitVert +.adVar .adVertical .adVideo  .adVideo2 .adVl.adVplaceholder +.adWarning .adWebBoard.adWideSkyscraper.adWideSkyscraperRight  .adWidget.adWidgetBlock +.adWithTab .adWizard-adˆ .adWord .adWords-bg .adWrap  .adWrapLg +.adWrapper .adWrapper1 .adZone .adZoneRight .ad_0 .ad_1 .ad_1000_125 +.ad_120x60 .ad_120x600 +.ad_120x90 .ad_125 +.ad_130x90 .ad_150x150 .ad_160 .ad_160_600 .ad_160x600 .ad_188_inner .ad_1deg5up .ad_2 .ad_200 .ad_240 +.ad_250250 .ad_250x200 .ad_250x250 .ad_290_290 .ad_3 .ad_300 +.ad_300250 .ad_300_250 .ad_300_250_1 .ad_300_250_2.ad_300_250_wrapper .ad_300_600 .ad_300by250 .ad_300x100 .ad_300x250.ad_300x250_container .ad_300x600.ad_320x250_async .ad_336 .ad_336x280 .ad_350x250 .ad_4 .ad_468 +.ad_468x60 .ad_5 .ad_600 .ad_640 .ad_640x480 .ad_728  .ad_72890 .ad_728Home +.ad_728_90 .ad_728_90_1 .ad_728_90b .ad_728_top +.ad_728x90 .ad_728x90-1 .ad_728x90-2.ad_728x90_container¢  .ad_728x90b +.ad_90 .ad_970x250.ad_970x250_300x250.ad_970x250_container +.ad_Bumper .ad_Flex .ad_Left  .ad_Right .ad__300x250 .ad__300x600 .ad__970x250 +.ad__align .ad__centered.ad__container .ad__content.ad__full--width .ad__header .ad__holder +.ad__image.ad__in_article .ad__inline  .ad__item +.ad__label.ad__leaderboard  .ad__mobi.ad__mobile-footer .ad__mpu.ad__placeholder.ad__rectangle.ad__section-border .ad__sidebar +.ad__space .ad__sticky .ad__template .ad__window .ad__wrapper .ad_adv.ad_after_section +.ad_amazon .ad_area .ad_area_two .ad_back.ad_background.ad_background_1.ad_background_true +.ad_banner .ad_banner2 .ad_banner_2.ad_banner_250x250.ad_banner_468.ad_banner_728.ad_banner_728x90_inner.ad_banner_border.ad_banner_div .ad_bar.ad_below_content.ad_belowfirstpost_frame +.ad_bg +.ad_bgskin.ad_big_banner +.ad_bigbox .ad_billboard .ad_blkð  .ad_block .ad_block_1 .ad_block_2.ad_block_widget .ad_body +.ad_border .ad_botbanner +.ad_bottom.ad_bottom_728.ad_bottom_leaderboard.ad_bottom_left.ad_bottom_mpu.ad_bottom_space .ad_box .ad_box1 .ad_box2  .ad_box_2  .ad_box_6  .ad_box_9 +.ad_box_ad .ad_box_div.ad_box_header.ad_box_spacer .ad_box_top  .ad_break.ad_break2_container.ad_break_container .ad_btf .ad_btn .ad_btn-white .ad_btn1 .ad_btn2 +.ad_by .ad_callout .ad_caption +.ad_center.ad_center_bottom .ad_centered +.ad_choice .ad_choices +.ad_cl  .ad_claim  .ad_click .ad_cls_fix .ad_code .ad_col +.ad_column.ad_column_box +.ad_common .ad_con .ad_cont.ad_cont_footer .ad_contain .ad_container.ad_container_body.ad_container_bottom .ad_content.ad_content_below.ad_content_bottom.ad_content_wide.ad_content_wrapper .ad_contents  .ad_crown.ad_custombannerú  .ad_d_big +.ad_db .ad_default.ad_description .ad_desktop.ad_disclaimer .ad_div.ad_div_banner .ad_div_box .ad_div_box2 .ad_element  .ad_embed .ad_feature  .ad_float.ad_floating_box  .ad_fluid +.ad_footer.ad_footer_super_banner  .ad_frame.ad_frame_around .ad_fullwidth .ad_gam.ad_global_header +.ad_google .ad_gpt.ad_grein_botn .ad_grid  .ad_group .ad_half_page .ad_halfpage +.ad_hd .ad_head.ad_head_rectangle +.ad_header.ad_header_top .ad_heading .ad_headline +.ad_holder.ad_horizontal.ad_hover_href .ad_iframe2 .ad_img .ad_imgae_150.ad_in_article .ad_in_text .ad_incontent .ad_index02 .ad_indicator +.ad_inline.ad_inline_wrapper  .ad_inner  .ad_inset +.ad_island .ad_item  .ad_label  .ad_large +.ad_lb +.ad_leader.ad_leader_bottom.ad_leader_plus_top.ad_leaderboard.ad_leaderboard_atf.ad_leaderboard_master.ad_leaderboard_topÌ.ad_leaderboard_wrap .ad_left .ad_left_cell.ad_left_column .ad_lft  .ad_line2 .ad_link  .ad_links .ad_lnks .ad_loc .ad_long .ad_lrec +.ad_lrgsky +.ad_lt .ad_main .ad_maintopad +.ad_margin +.ad_marker .ad_masthead .ad_med.ad_medium_rectangle +.ad_medrec .ad_medrect.ad_megabanner .ad_message.ad_mid_post_body +.ad_middle.ad_middle_banner +.ad_mobile .ad_mod +.ad_module +.ad_mp .ad_mpu .ad_mpu_top +.ad_mr .ad_mrec +.ad_native.ad_native_xrail .ad_news .ad_no_border .ad_note +.ad_notice .ad_oms.ad_on_article .ad_one .ad_one_one .ad_one_third  .ad_outer .ad_overlays .ad_p360 .ad_pagebody  .ad_panel$ .ad_paragraphs_desktop_container .ad_partner .ad_partners  .ad_pause .ad_pic  .ad_place.ad_placeholder.ad_placeholder_d_b.ad_placeholder_d_s.ad_placeholder_d_sticky .ad_placement .ad_plus–  .ad_position .ad_post .ad_primary  .ad_promo +.ad_promo1.ad_promo_spacer .ad_push .ad_r .ad_rec .ad_rect .ad_rectangle.ad_rectangle_300_250.ad_rectangle_medium.ad_rectangular .ad_regular1 .ad_regular2 .ad_regular3 .ad_reminder .ad_response .ad_rhs  .ad_right .ad_rightSky.ad_right_300_250.ad_right_cell .ad_right_col .ad_rightside .ad_row +.ad_scroll .ad_secondary .ad_segment .ad_sense_01.ad_sense_footer_container .ad_share_box .ad_side .ad_side_box.ad_side_rectangle_banner .ad_sidebar.ad_sidebar_bigbox.ad_sidebar_inner.ad_sidebar_left.ad_sidebar_right.ad_size_160x600 .ad_skin .ad_sky .ad_sky2 +.ad_sky2_2 .ad_skyscpr.ad_skyscraper.ad_skyscrapper.ad_slider_out .ad_slot.ad_slot_inread.ad_slot_right .ad_slug  .ad_small  .ad_space.ad_space_300_250 +.ad_spacer .ad_sponsor.ad_sponsor_fp.ad_sponsoredsection .ad_spot +.ad_spot_b +.ad_spot_c…  .ad_spotlight +.ad_square .ad_square_r.ad_square_r_top.ad_square_top  .ad_start +.ad_static .ad_station.ad_story_island +.ad_stream .ad_stream_hd .ad_sub .ad_supersize  .ad_table .ad_tag.ad_tag_middle .ad_text .ad_text_link.ad_text_links.ad_text_vertical +.ad_text_w .ad_textlink1.ad_textlink_box.ad_thumbnail_header  .ad_title.ad_title_small .ad_tlb .ad_to_list .ad_top .ad_top1  .ad_top_1  .ad_top_2  .ad_top_3.ad_top_banner.ad_top_leaderboard .ad_top_left .ad_top_mpu .ad_top_right.ad_topic_content .ad_topmain .ad_topright .ad_topshop  .ad_tower.ad_trailer_header.ad_trick_header.ad_trick_left .ad_ttl .ad_two .ad_two_third .ad_txt2 +.ad_type_1.ad_type_adsense .ad_type_dfp  .ad_under.ad_under_royal_slider .ad_unit .ad_unit_300.ad_unit_300_x_250 .ad_unit_600 .ad_unit_rail.ad_unit_wrapper.ad_unit_wrapper_main .ad_url +.ad_v2—  +.ad_v3.ad_vertisement .ad_w .ad_w300h450  .ad_w300i .ad_w_us_a300 .ad_warn .ad_warning .ad_watch_now .ad_watermark +.ad_wid300 .ad_wide.ad_wide_vertical +.ad_widget.ad_widget_200_100.ad_widget_200_200.ad_widget_image.ad_widget_title .ad_word .ad_wrap .ad_wrapper.ad_wrapper_300.ad_wrapper_970x90.ad_wrapper_box.ad_wrapper_false.ad_wrapper_fixed.ad_wrapper_top .ad_wrp  .ad_xrail .ad_xrail_top .ad_zone.adace-adi-popup-wrapper.adace-slideup-slot-wrap .adace-slot.adace-slot-wrapper.adace-sponsors-box.adace-vignette.adalert-overlayer.adalert-toplayer  .adamazon .adarea .adarea-long +.adarticle .adb-top .adback +.adban .adband.adbanner-300-250.adbanner-bottom +.adbanner1 .adbannerbox.adbannerright .adbannertop .adbase .adbbox +.adbckgrnd +.adbetween.adbetweenarticles .adbkgnd .adblade.adblade-container .adbladeimg +.adblk.adblock-bottom� .adblock-header.adblock-header1 .adblock-main.adblock-popup .adblock-top.adblock-top-left .adblock-wide .adblock300.adblock300250.adblock728x90.adblock__banner.adblock_noborder.adblock_primary .adblockdiv.adblocks-topright .adboard  .adborder.adborderbottom .adbordertop +.adbot.adbot_postbit.adbot_showthread  .adbottom.adbottomright.adbox-300x250 .adbox-468x60.adbox-border-desk +.adbox-box .adbox-header .adbox-outer.adbox-rectangle.adbox-sidebar .adbox-slider .adbox-style .adbox-title.adbox-topbanner.adbox-wrapper .adbox1  .adbox160 .adbox2  .adbox300 .adbox300x250  .adbox336  .adbox600  .adbox728.adboxRightSide.adboxTopBanner +.adboxVert.adbox_300x600.adbox_310x400.adbox_366x280 .adbox_468X60 .adbox_border .adbox_bottom  .adbox_br .adbox_cont.adbox_largerect .adbox_left +.adbox_top .adboxbg  .adboxbot .adboxclass .adboxcm .adboxcontentü.adboxcontentsum .adboxes .adboxesrow .adboxid .adboxlarge +.adboxlong .adboxo  .adboxtop .adbreak  .adbrite2 +.adbtn .adbtns.adbttm_right_300.adbttm_right_label .adbucks +.adbug.adbutler-inline-ad.adbutler-top-banner.adbutler_top_banner  .adbutton.adbutton-block +.adbuttons .adcard  .adcasing  .adcenter  .adchange +.adchoices.adchoices-link .adclass .adcode.adcode-widget .adcode2.adcode300x250 .adcode728x90.adcode_container.adcodetextwrap300x250 +.adcodetop .adcol1 .adcol2  .adcolumn.adcolumn_wrapper +.adcomment +.adcon .adcont.adcontainer-Leaderboard.adcontainer-Rectangle .adcontainer2.adcontainer300x250l.adcontainer300x250r.adcontainer_big.adcontainer_footer .adcopy .add-sidebar .add300 +.add300top .add300x250.addAdvertContainer.add_topbanner .addarea .addarearight +.addbanner .addboxRight .addisclaimer +.addivÍ +.adds2 .adds300x250 .adds620x90  .addtitle .addvert .addwide.adengageadzone +.adenquire .adex-ad-text .adfbox .adfeedback .adfeeds +.adfix .adflag .adflexi .adfliction .adfoot +.adfootbox  .adfooter.adform__topbanner.adfoxly-overlay.adfoxly-place-delay.adfoxly-wrapper .adframe  .adframe2.adframe_banner.adframe_rectangle .adfree .adfront .adfront-head +.adfrp .adfull .adgear.adgmleaderboard.adguru-content-html.adguru-modal-popup .adhalfhome .adhalfpage.adhalfpageright .adhead  .adheader.adheightpromo .adheighttall +.adherebox.adhesion-block.adhesion-header.adhesion:not(body).adhesiveAdWrapper.adhesiveWrapper.adhesive_holder .adhi .adhide .adhint  .adholder .adholder-300 +.adholder2 .adholderban .adhoriz  .adiframe .adindex .adindicator .adinfo .adinjwidget .adinner×  .adinpost  .adinsert .adinsert160  .adinside  .adintext .adintro .adisclaimer  .adisland +.adits .adjlink  .adk-slot  .adkicker +.adkit .adlabel-horz .adlabel-vert  .adlabel1  .adlabel2  .adlabel3 .adlabelleft .adlarge  .adlarger +.adlateral .adlayer  .adleader .adleft1  .adleftph .adlgbox .adline .adlink +.adlinkdiv .adlinks.adlinks-class .adlist .adlist1 .adlist2  .adloaded .adlsot .admain +.adman  .admarker  .admaster .admediumred  .admedrec .admeldBoxAd +.admessage  .admiddle.admiddlesidebar .admngr  .admngrfr  .admngrft .admods  .admodule +.admoduleB +.admpu .admpu-small  .admputop .admz .adnSpot .adname .adnet_area .adnotecenter  .adnotice.adnotification.adnz-ad-placeholderë .adocean.adocean728x90.adocean_desktop_section +.adops .adpacks.adpacks_content +.adpadding .adpane  .adparent +.adpic .adplace.adplace_center.adplaceholder.adplaceholder-top .adplacement.adplate-background .adplugg-tag +.adpod .adpopup.adpos-300-mobile .adpost .adposter_pos .adproxy +.adrec  .adrechts .adrect .adrectangle.adrectwrapper.adrevtising-buttom .adright .adright300 +.adrightlg +.adrightsm .adrighttop.adriverBanner .adroot.adrotate-sponsor.adrotate-widget.adrotate_ads_row.adrotate_top_banner.adrotate_widget.adrotate_widgets .adrotatediv +.adrow .adrule.ads--bottom-spacing .ads--desktop +.ads--full.ads--no-preload .ads--sidebar .ads--single .ads--square .ads--super  .ads--top +.ads-1 .ads-120x600 .ads-125 .ads-160x600.ads-160x600-outer +.ads-2 +.ads-3 .ads-300 .ads-300-250 .ads-300-box‘ + .ads-300x250.ads-300x250-sidebar .ads-300x300 .ads-300x600.ads-300x600-wrapper-en .ads-320-50 .ads-320x250 .ads-336x280 .ads-468 .ads-728 .ads-728-90 .ads-728by90 .ads-728x90 .ads-980x90.ads-above-comments .ads-ad.ads-advertorial.ads-article-right.ads-articlebottom +.ads-aside .ads-banner.ads-banner-bottom.ads-banner-js.ads-banner-middle.ads-banner-spacing.ads-banner-top.ads-banner-top-right  .ads-base.ads-beforecontent.ads-below-content.ads-below-home.ads-below-view-content.ads-between-comments .ads-bg .ads-bigbox.ads-bilboards.ads-bing-bottom .ads-bing-top +.ads-block.ads-block-bottom-wrap.ads-block-link-text.ads-block-panel-tipo-1.ads-block-rightside.ads-block-top.ads-block-top-right .ads-border .ads-bottom.ads-bottom-block.ads-bottom-center.ads-bottom-content.ads-bottom-left.ads-bottom-right .ads-box.ads-box-border .ads-box-cont .ads-bt .ads-btm .ads-by.ads-by-google .ads-callback  .ads-card .ads-carousel .ads-center .ads-centeredš  .ads-cnt  .ads-code .ads-col  .ads-cols  .ads-cont.ads-container-250 .ads-content.ads-core-placer .ads-custom.ads-decorator .ads-desktop .ads-div .ads-el.ads-end-content .ads-favicon  .ads-feed .ads-fieldset .ads-footer .ads-fr.ads-global-header.ads-global-top .ads-google.ads-google-bottom.ads-google-top .ads-grp  .ads-half .ads-header.ads-header-desktop.ads-header-left.ads-header-right  .ads-here +.ads-hints .ads-holder  .ads-home.ads-homepage-2.ads-horizontal.ads-horizontal-banner +.ads-image.ads-inarticle .ads-inline +.ads-inner .ads-instance .ads-internal  .ads-item +.ads-label.ads-label-inverse +.ads-large.ads-leaderboard.ads-leaderboard-border.ads-leaderboard-panel.ads-leaderbord  .ads-left  .ads-line  .ads-list .ads-loaded  .ads-long  .ads-main .ads-margin .ads-marker.ads-medium-rect .ads-middle.ads-middle-top.ads-minheight  .ads-mini� +.ads-mini-3rows .ads-mobile .ads-module.ads-module-alignment +.ads-movie .ads-mpu .ads-narrow.ads-native-wrapper  .ads-note .ads-one +.ads-outer +.ads-panel .ads-parent .ads-pholder.ads-placeholder.ads-placeholder-inside.ads-placeholder-wrapper .ads-placment  .ads-post.ads-post-closing.ads-post-footer.ads-post-full .ads-posting .ads-profile  .ads-rail  .ads-rect.ads-rectangle.ads-relatedbottom.ads-rendering-fix +.ads-right.ads-right-min .ads-rotate .ads-row.ads-scroller-box .ads-section  .ads-side .ads-sidebar.ads-sidebar-boxad.ads-sidebar-widget  .ads-sign .ads-single  .ads-site.ads-size-small  .ads-skin.ads-skin-mobile .ads-sky.ads-skyscraper".ads-skyscraper-container-left#.ads-skyscraper-container-right.ads-skyscraper-left.ads-skyscraper-right +.ads-small.ads-small-horizontal.ads-small-squares.ads-smartphone.ads-social-box.ads-sponsored-title .ads-sponsors .ads-square.ads-square-large.ads-square-small .ads-squares  .ads-star.ads-stick-footerÄ .ads-sticky +.ads-story.ads-story-leaderboard-atf .ads-stripe .ads-styled.ads-superbanner .ads-system  .ads-text +.ads-title .ads-to-hide .ads-top .ads-top-728.ads-top-center.ads-top-content.ads-top-fixed .ads-top-home .ads-top-left .ads-top-main.ads-top-right.ads-top-spacer .ads-topbar .ads-two .ads-txt .ads-ul .ads-verticle.ads-wall-container  .ads-wide .ads-widget.ads-widget-content.ads-widget-content-wrap.ads-widget-link  .ads-wrap .ads-wrapper.ads-wrapper-top .ads-x1  .ads-zone .ads.bottom .ads.box  .ads.cell .ads.cta.ads.grid-layout .ads.square .ads.top .ads.widget +.ads01 .ads1 +.ads10 +.ads11 .ads120 .ads120_600.ads120_600-widget +.ads120_80 .ads120x .ads123 .ads125.ads125-widget .ads160 .ads160-600 .ads2 .ads250 .ads250-250 +.ads2Block .ads3 .ads300Ÿ .ads300-200 .ads300-250 +.ads300250 .ads300_250.ads300_600-widget +.ads300box .ads300x600 .ads336_280 .ads336x280 .ads4 .ads468 +.ads468x60 .ads600 +.ads720x90 .ads728 +.ads728_90 .ads728b +.ads728x90 .ads728x90-1 .ads970 +.adsAdvert .adsArea +.adsBanner.adsBannerLink  .adsBlock .adsBlockContainerHorizontal .adsBot +.adsBottom +.adsBoxTop .adsCap .adsCell +.adsColumn +.adsConfig .adsCont .adsDef .adsDesktop.adsDetailsPage.adsDisclaimer .adsDiv  .adsFirst  .adsFixed .adsFull +.adsHeader .adsHeading.adsHeight300x250.adsHeight720x90 .adsHome-full +.adsImages  .adsInner  .adsLabel .adsLibrary .adsLine .adsList .adsMPU .adsMag +.adsMarker +.adsMiddle.adsMvCarousel .adsNetwork  .adsOuter.adsOverPrimary.adsPlaceHolder .adsPostquare .adsPushdownå.adsRectangleMedium  .adsRight .adsRow +.adsSecond .adsSectionRL .adsSpacing +.adsSticky .adsTag .adsText .adsTop .adsTopBanner .adsTopCont +.adsTower2 .adsTowerWrap .adsTxt +.adsWidget .adsWrap .ads_160 .ads_180 +.ads_2 +.ads_3 .ads_300 .ads_300_250 .ads_300x250 .ads_300x600 +.ads_4 .ads_468 .ads_468x60 .ads_720x90 .ads_728 .ads_728x90 .ads_Header.ads__article__header .ads__aside.ads__container .ads__header.ads__horizontal,(.ads__hyperleaderboard--hyperleaderboard .ads__inline.ads__interstitial +.ads__link .ads__listing  .ads__mid .ads__middle.ads__midpage-fullwidth .ads__native.ads__right-rail-ad .ads__sidebar  .ads__top .ads_ad_box +.ads_after.ads_after_more .ads_amazon  .ads_area .ads_article .ads_ba_cad .ads_banner .ads_bar .ads_before.ads_between_content .ads_bg .ads_big .ads_bigrec +.ads_blocký .ads_border .ads_box.ads_box_headline.ads_box_type1 .ads_center  .ads_code .ads_column.ads_container_top .ads_content .ads_css .ads_div  .ads_div1  .ads_foot .ads_footer .ads_footerad .ads_full_1 .ads_google +.ads_h .ads_h1 .ads_h2 .ads_header.ads_header_bottom .ads_holder  .ads_home.ads_horizontal .ads_inview  .ads_item +.ads_label .ads_lb .ads_leader.ads_leaderboard  .ads_left  .ads_main .ads_main_hp +.ads_media .ads_medium.ads_medium_rectangle .ads_medrect .ads_middle.ads_middle-container.ads_middle_container.ads_mobile_vert .ads_mpu +.ads_outer .ads_outline +.ads_place.ads_place_160.ads_place_top.ads_placeholder .ads_player  .ads_post .ads_prtext.ads_rectangle .ads_remove +.ads_right.ads_rightbar_top  .ads_side .ads_sideba .ads_sidebar.ads_single_center.ads_single_side.ads_single_top.ads_singlepost +.ads_sliceî  .ads_slot +.ads_small.ads_small_rectangle.ads_space_long .ads_spacer .ads_square .ads_takeover  .ads_text .ads_tit +.ads_title .ads_top +.ads_top_1.ads_top_banner .ads_top_both.ads_top_middle .ads_top_nav.ads_topbanner .ads_topleft .ads_topright +.ads_tower .ads_tr.ads_under_data  .ads_unit .ads_up +.ads_video  .ads_wide .ads_widesky .ads_widget  .ads_wrap.ads_wrap-para .ads_wrapper .adsafp.adsanity-alignnone.adsanity-group.adsanity-single .adsarea .adsartical .adsbanner1 .adsbanner2 +.adsbantop .adsbar  .adsbg300 .adsbillboard  .adsblock .adsblockvert .adsbnr .adsbody +.adsborder .adsboth +.adsbottom .adsbottombox.adsbox--masthead.adsbox-square .adsbox970x90 .adsbox990x90 +.adsboxBtn.adsbox_300x250 .adsboxitem .adsbx728x90 +.adsbyadop.adsbyexoclick.adsbyexoclick-wrapper.adsbygalaksion.adsbygoogle-boxƒ +.adsbygoogle-noablate.adsbygoogle-wrapper .adsbygoogle2 .adsbypublift .adsbypubmax.adsbytrafficjunky  .adsbyvli .adsbyxa .adscaleTop +.adscenter.adscentertext  .adsclick .adscontainer.adscontent250.adscontentcenter .adscontntad  .adscreen .adsdelivery .adsdesktop .adsdiv .adsection_a2 .adsection_c2 .adsection_c3  .adsenbox .adsens .adsense-250.adsense-300-600 .adsense-336.adsense-336-280 .adsense-468.adsense-728-90.adsense-ad-results .adsense-ads.adsense-afterpost .adsense-area.adsense-article.adsense-block .adsense-box.adsense-center .adsense-code.adsense-container.adsense-content .adsense-div.adsense-float.adsense-googleAds.adsense-header.adsense-heading.adsense-iframe-container.adsense-inline .adsense-left.adsense-links.adsense-loading.adsense-module.adsense-overlay .adsense-post.adsense-resposivo-meio.adsense-right .adsense-slot.adsense-square.adsense-sticky-slide.adsense-title .adsense-top .adsense-unit.adsense-widgetÚ .adsense-wrapper  .adsense1.adsense160x600 .adsense250  .adsense3 .adsense300.adsense300x250 .adsense728.adsense728x90 .adsenseAds.adsenseBannerArea .adsenseBlock.adsenseContainer .adsenseList .adsenseRow .adsenseSky.adsenseWrapper .adsense_200.adsense_336_280.adsense_728x90_container .adsense_ad.adsense_block.adsense_bottom.adsense_container.adsense_content_300x250.adsense_div_wrapper.adsense_inner.adsense_label.adsense_leader.adsense_media .adsense_menu .adsense_mpu.adsense_rectangle.adsense_results.adsense_right.adsense_sidebar.adsense_sidebar_top.adsense_single .adsense_top.adsense_top_ad .adsense_unit.adsense_wrapper .adsensebig .adsensefloat.adsenseformat .adsenseframe.adsenseleaderboard.adsensemobile .adsenvelope +.adsep .adserve_728 .adserverBox.adserver_zone .adserverad +.adserving +.adset  .adsfloat.adsfloatpanel +.adsforums  .adsghori .adsgrd  .adsgvert.adsheight-250 .adshomeï +.adshowbig .adshowcase +.adshp .adside.adside-box-index.adside-box-single .adside_box +.adsidebar +.adsidebox .adsider  .adsincs2 .adsinfo  .adsingle .adsingle-r .adsingleph .adsitem +.adsize728 .adsizer.adsizewrapper.adskeeperWrap +.adsky.adsleaderboard.adsleaderboardbox .adsleff .adsleft .adsleftblock.adslibraryArticle  .adslider .adslink .adslist .adslisting .adslisting2 .adslistingz .adsload .adsloading  .adslogan .adslot.adslot--leaderboard .adslot-area.adslot-banner.adslot-billboard.adslot-feature.adslot-inline-wide .adslot-mpu.adslot-rectangle.adslot-widget +.adslot970 +.adslotMid  .adslot_1 +.adslot_1m  .adslot_2 +.adslot_2m  .adslot_3 .adslot_300 +.adslot_3d +.adslot_3m  .adslot_4 .adslot_728.adslot__ad-container.adslot__ad-wrapper.adslot_blurred.adslot_bot_300x250.adslot_collapse .adslot_popupš  .adslot_side1 .adslothead .adslotleft .adslotright.adslotright_1.adslotright_2 .adslug .adsmaintop .adsmall +.adsmaller .adsmalltext  .adsmanag  .adsmbody .adsmedrect.adsmedrectright .adsmessage +.adsmobile.adsninja-ad-zone/+.adsninja-ad-zone-container-with-set-height.adsninja-rail-zone.adsnippet_widget +.adsns .adsntl.adsonar-after.adsonofftrigger.adsoptimal-slot  .adsother .adspace.adspace-300x600.adspace-336x280.adspace-728x90 .adspace-MR .adspace-lb.adspace-leaderboard .adspace-lr .adspace-mpu .adspace-mtb .adspace-top.adspace-widget  .adspace1 .adspace180  .adspace2.adspace728x90 +.adspace_2.adspace_bottom.adspace_buysell.adspace_right.adspace_rotate.adspace_skyscraper .adspace_top  .adspacer +.adspacer2 .adspan  .adspanel .adspecial390 .adspeed.adsplash-160x600 .adsplat +.adsponsor .adspop .adspost .adspot .adspot-desk .adspot-titleÏ .adspot1 .adspot200x90 .adspot468x60 .adspot728x90 .adspotGrey.adspot_468x60.adspot_728x90 .adsprefooter .adspreview .adsrecnode.adsresponsive  .adsright .adss  .adss-rel .adssidebar2.adsskyscraper.adsslotcustom2.adsslotcustom4  .adssmall +.adssquare .adssquare2  .adsterra .adstext .adstextpad .adstipt  .adstitle .adstop .adstory .adstrip .adstyle .adsverting  .adsvideo .adswallpapr +.adswidget  .adswiper  .adswitch .adswordatas .adsystem_ad .adszone .adt-300x250 .adt-300x600 .adt-728x90 +.adtab .adtable +.adtag .adtc .adtech.adtech-ad-widget.adtech-banner .adtech-boxad .adtech-copy.adtech-video-2.adtech-wrapper .adtechMobile.adtech_wrapper.adtester-container +.adtext-bg .adtext_gray.adtext_horizontal.adtext_onwhite.adtext_vertical .adtext_white .adtextleft .adtextrightê   .adthrive .adthrive-ad.adthrive-content.adthrive-header.adthrive-header-container!.adthrive-placeholder-content .adthrive-placeholder-header($.adthrive-placeholder-static-sidebar.adthrive-placeholder-video.adthrive-sidebar.adthrive-video-player.adthrive_custom_ad .adtile .adtips .adtips1 .adtitle  .adtoggle +.adtop .adtop-border .adtops .adtower  .adtravel +.adttl +.adtxt .adtxtlinks +.adult-adv .adun .adunit.adunit-300-250.adunit-active.adunit-adbridg.adunit-container.adunit-container_sitebar_1.adunit-googleadmanager .adunit-lazy.adunit-middle.adunit-parent .adunit-purch .adunit-side .adunit-title .adunit-top .adunit-wrap.adunit-wrapper +.adunit125 +.adunit160.adunit300x250 +.adunit468.adunitContainer.adunit_300x250.adunit_728x90.adunit_content.adunit_footer.adunit_leaderboard.adunit_rectangle +.adv--h600 .adv--square .adv-120x600 .adv-160 .adv-160x600 .adv-200-200 .adv-250-250 .adv-300 +.adv-300-1 .adv-300-250§  .adv-300-600 .adv-300x250.adv-300x250-generic .adv-336-280 +.adv-4 .adv-468-60 .adv-468x60 .adv-700 .adv-728 .adv-728-90 .adv-970 .adv-970-250.adv-970-250-2 .adv-980x60 .adv-ad.adv-ads-selfstyle +.adv-aside.adv-background .adv-banner .adv-bar +.adv-block.adv-block-container .adv-border .adv-bottom .adv-box.adv-box-holder.adv-box-wrapper .adv-carousel .adv-center +.adv-click  .adv-cont +.adv-cont1.adv-conteiner .adv-dvb .adv-format-1.adv-full-width .adv-google.adv-gpt-desktop-wrapper.adv-gpt-wrapper-desktop .adv-halfpage .adv-header .adv-holder .adv-in-body +.adv-inset .adv-intext.adv-intext-label .adv-key +.adv-label.adv-leaderboard.adv-leaderboard-banner  .adv-link.adv-link--left.adv-link--right.adv-mobile-wrapper .adv-mpu +.adv-outer +.adv-p +.adv-right.adv-right-300 .adv-rotator.adv-script-container .adv-sidebar.adv-skin-spacer.adv-slot-container�  .adv-text .adv-top.adv-top-banner.adv-top-container .adv-top-page .adv-top-skin.adv-under-video  .adv-unit .adv-videoad .adv-x61 .adv1 .adv120 .adv200 .adv250 .adv300 .adv300-250 .adv300-250-2 +.adv300-70 .adv300left .adv300x100 .adv300x250 +.adv300x60 +.adv300x70 .adv336 .adv350 +.adv460x60 .adv468 +.adv468x90 .adv728 +.adv728x90 +.advBottom.advBottomHome .advBox .advInt.advLeaderboard .advRightBig +.advSquare .advText .advTop .adv_120 .adv_120_600 .adv_120x240 .adv_120x600 .adv_160_600 .adv_160x600 .adv_250 .adv_250_250 .adv_300 .adv_300_300 .adv_300_top .adv_300x250 .adv_336_280 .adv_468_60 .adv_728_90 .adv_728x90  .adv__box.adv__leaderboard .adv__wrapper .adv_aff .adv_banner.adv_banner_hor .adv_bg .adv_box.adv_box_narrow© +  .adv_here .adv_img.adv_leaderboard  .adv_left  .adv_link.adv_main_middle.adv_main_middle_wrapper.adv_main_right_down .adv_main_right_down_wrapper.adv_medium_rectangle .adv_message .adv_msg +.adv_panel +.adv_right +.adv_side1 +.adv_side2 .adv_sidebar +.adv_title .adv_top .adv_txt.adv_under_menu.advads-background.advads-close-button.advads-parallax-container.advads-sticky.advads-target.advads-widget.advads_ad_widget-11.advads_ad_widget-18.advads_ad_widget-2.advads_ad_widget-21.advads_ad_widget-3.advads_ad_widget-4.advads_ad_widget-5.advads_ad_widget-8.advads_ad_widget-9.advads_widget .advance-ads .advart .advbig +.adver .adver-block .adver-header .adver-left .adver-text  .adverTag  .adverTxt +.adver_bot.adver_cont_below .adver_home.advert--background.advert--banner-wrap.advert--fallback.advert--header.advert--in-sidebar.advert--inline.advert--leaderboard.advert--loading.advert--outer.advert--placeholder.advert--right-rail.advert--square.advert--sticky .advert-100» +.advert-120x90.advert-160x600 .advert-300.advert-300-side .advert-728.advert-728-90.advert-728x90.advert-article-bottom.advert-autosize.advert-background.advert-banner.advert-banner-container.advert-banner-holder.advert-bannerad .advert-bar.advert-bg-250 .advert-block.advert-border.advert-bot-box.advert-bottom .advert-box.advert-bronze.advert-bronze-btm .advert-btm .advert-card.advert-center .advert-col.advert-col-center.advert-competitions.advert-container.advert-content.advert-content-item.advert-detail .advert-dfp.advert-featured.advert-footer .advert-gold .advert-group .advert-head.advert-header-728.advert-horizontal .advert-image .advert-info .advert-inner .advert-label.advert-leaderboard.advert-leaderboard2.advert-loader .advert-mini .advert-mpu .advert-mrec .advert-note.advert-overlay .advert-pane .advert-panel.advert-placeholder.advert-placeholder-wrapper.advert-preview-wrapper .advert-right .advert-row.advert-section.advert-sidebar.advert-silver .advert-skyÙ .advert-skyright.advert-skyscraper.advert-slider.advert-spot-container.advert-sticky-wrapper .advert-stub .advert-text .advert-three .advert-title .advert-top.advert-top-footer .advert-txt .advert-unit .advert-wide.advert-wingbanner-left.advert-wingbanner-right .advert-wrap .advert-wrap1 .advert-wrap2.advert-wrapper.advert-wrapper-exco .advert.box.advert.desktop.advert.mobile .advert.mpu.advert.skyscraper .advert1 +.advert120.advert1Banner .advert2 +.advert300 .advert4 .advert5 .advert728_90 .advert728x90 .advert8 .advertBanner +.advertBar .advertBlock .advertBottom +.advertBox.advertCaption .advertColumn .advertCont.advertContainer.advertDownload.advertFullBanner .advertHeader.advertHeadline .advertLink .advertLink1 +.advertMPU .advertMiddle +.advertMpu .advertRight.advertSideBar .advertSign .advertSlider .advertSlot.advertSuperBanner .advertText.advertTitleSky.advertWrapper.advert_300x250ÿ  .advert_336.advert_468x60.advert__container.advert__fullbanner.advert__leaderboard .advert__mpu.advert__sidebar.advert__tagline .advert_area.advert_banner.advert_banners .advert_block .advert_box.advert_caption .advert_cont.advert_container .advert_div .advert_foot.advert_header.advert_home_300 .advert_img .advert_label.advert_leaderboard .advert_line .advert_list .advert_main.advert_main_bottom .advert_mpu .advert_nav .advert_note .advert_pos .advert_small .advert_span .advert_text .advert_title .advert_top .advert_txt.advert_wrapper +.advertbar +.advertbox .adverteaser .advertembed .adverthome.adverticum_container.adverticum_content  .advertis.advertis-left.advertis-right .advertise-1 .advertise-2.advertise-box.advertise-here.advertise-horz.advertise-info.advertise-leaderboard.advertise-link.advertise-list.advertise-pic.advertise-small.advertise-square.advertise-top.advertise-vert.advertiseContainer.advertiseHereà .advertiseText.advertise_ads.advertise_box.advertise_brand.advertise_carousel.advertise_here.advertise_link.advertise_link_sidebar.advertise_links.advertise_sec.advertise_text.advertise_txt.advertise_verRight .advertisebtn .advertisedBy.advertisement-1.advertisement-2.advertisement-250.advertisement-300.advertisement-300x250.advertisement-background.advertisement-banner.advertisement-block.advertisement-bottom.advertisement-box.advertisement-card.advertisement-cell.advertisement-container.advertisement-content.advertisement-copy.advertisement-footer.advertisement-google.advertisement-header.advertisement-holder.advertisement-image.advertisement-label.advertisement-layout.advertisement-leaderboard!.advertisement-leaderboard-lg.advertisement-left.advertisement-link.advertisement-nav.advertisement-placeholder.advertisement-position1.advertisement-right.advertisement-sidebar.advertisement-space.advertisement-sponsor.advertisement-tag.advertisement-text.advertisement-title.advertisement-top.advertisement-txt.advertisement-wrapper.advertisement.leaderboard.advertisement.rectangle .advertisement.under-article.advertisement1.advertisement300x250.advertisement468.advertisementBackground.advertisementBanner.advertisementBar.advertisementBlock‹ .advertisementBox.advertisementBoxBan.advertisementContainer.advertisementFull.advertisementHeader.advertisementImg.advertisementLabel.advertisementPanel.advertisementRotate.advertisementSection.advertisementSmall.advertisementText.advertisementTop.advertisement_160x600.advertisement_300x250.advertisement_728x90.advertisement__header.advertisement__label.advertisement__leaderboard.advertisement__wrapper.advertisement_box.advertisement_container.advertisement_footer.advertisement_header.advertisement_horizontal.advertisement_mobile.advertisement_part.advertisement_post.advertisement_section_top.advertisement_text.advertisement_top.advertisement_wrapper.advertisements-link.advertisements-right.advertisements-sidebar.advertisements_heading.advertisementwrap .advertiser.advertiser-links.advertising--row.advertising--top.advertising-banner.advertising-block.advertising-container.advertising-container-top.advertising-content.advertising-disclaimer.advertising-fixed.advertising-header.advertising-iframe.advertising-inner.advertising-leaderboard.advertising-lrec .advertising-mediumrectangle.advertising-mention.advertising-middle.advertising-middle-i.advertising-notice.advertising-right.advertising-right-d.advertising-right-i.advertising-section.advertising-side.advertising-side-hpµ .advertising-srec.advertising-top.advertising-top-banner.advertising-top-box.advertising-top-category.advertising-top-desktop.advertising-vert.advertising-wrapper .advertising1.advertising160 .advertising2.advertising300_home.advertising300x250.advertising728.advertising728_3.advertisingBanner.advertisingBlock.advertisingLabel.advertisingLegend.advertisingLrec.advertisingMob.advertisingRight.advertisingSlide.advertisingTable.advertisingTop.advertising_300x250.advertising_banner.advertising_block.advertising_bottom_box.advertising_box_bg.advertising_header_1.advertising_hibu_lef.advertising_hibu_mid.advertising_hibu_rig!.advertising_horizontal_title.advertising_images.advertising_square.advertising_top.advertising_vertical_title.advertising_widget.advertising_wrapper.advertisingarea.advertisingarea-homepage.advertisingimage.advertisingimage-extended.advertisingimageextended .advertisment.advertisment-banner.advertisment-label.advertisment-left-panal.advertisment-module.advertisment-rth.advertisment-top.advertismentBox.advertismentContainer.advertismentContent.advertismentText.advertisment_bar.advertisment_caption.advertisment_full.advertisment_notice.advertisment_two +.advertize.advertize_hereÏ .advertizing-banner .advertlabel .advertleft .advertlink .advertnotice  .advertop .advertorial.advertorial-2.advertorial-block.advertorial-image.advertorial-promo-box.advertorial-teaser.advertorial-wrapper .advertorial2.advertorial_728x90.advertorial_red.advertorialitem.advertorialtitle.advertorialview.advertorialwidget .advertouter .advertplay .adverts.adverts--banner .adverts-125.adverts-inline  .adverts2.advertsLeaderboard .adverts_RHS.adverts_footer_advert$ .adverts_footer_scrolling_advert.adverts_header_advert.adverts_side_advert .advertspace .adverttext +.adverttop .advfrm .advg468 .advhere.adviewDFPBanner .advimg160600 .advimg300250 +.advn_zone .advoice .advr .advr-wrapper  .advr_top .advrectangle .advrst .advslideshow .advspot .advt.advt-banner-3 .advt-block .advt-right  .advt-sec .advt300 .advt720 +.advtBlock .advtMsg .advt_160x600.advt_468by60px.advt_indieclick .advt_single…  .advt_widget .advtbox  .advtcell .advtext .advtimg  .advtitle .advtop.advtop-leaderbord .advttopleft  .advv_box .adwblue .adwert .adwhitespace .adwide.adwideskyright  .adwidget .adwithspace .adwobs.adwolf-holder .adword-box.adword-structure .adword-text .adword-title .adword1.adwordListings .adwords.adwords-container.adwordsHeader.adwords_in_content .adworks .adwrap .adwrap-mrec.adwrap-widget .adwrap_MPU.adwrapper--desktop.adwrapper-lrec .adwrapper1 .adwrapper948 .adwrappercls.adwrappercls1.adx-300x250-container.adx-300x600-container .adx-ads .adx-wrapper.adx-wrapper-middle .adx_center +.adxli +.adz-horiz.adz-horiz-ext .adz2 +.adz728x90 +.adzbanner .adzone.adzone-footer.adzone-preview.adzone-sidebar.adzone_skyscraper.af-block-ad-wrapper .af-label-ads .afc-box .aff-big-unit .aff-iframe  .affcodes.afffix-custom-adþ  .affiliate-ad.affiliate-footer.affiliate-link.affiliate-sidebar.affiliate-strip.affiliateAdvertText .affiliate_ad.affiliate_header_ads.after-content-ad.after-intro-ad.after-post-ad.after-post-ads.after-story-ad-wrapper  .after_ad.after_comments_ads .after_content_banner_advert.after_post_ad .afw_ad +.aggads-ad .ahe-ad.ai-top-ad-outer  .aisle-ad .ajax_ad .ajaxads.ajdg_bnnrwidgets.ajdg_grpwidgets .alice-adslot#.alice-root-header-ads__ad--top  .align.Ad  .alignads .alt_ad .alt_ad_block +.altad.am-adContainer +.am-adslot .am-bazaar-ad  .amAdvert .am_ads.amazon-auto-links +.amazon_ad +.amazonads +.ampFlyAdd.ampforwp-sticky-custom-ad +.anchor-ad.anchor-ad-wrapper  .anchorAd.anchored-ad-widget .annonstext +.anyad.anzeige_banner .aoa_overlay .ap-ad-block.ape-ads-container .apexAd .apiAds .app-ad .app_ad_unit.app_advertising_skyscraper.app_nexus_banners_common.ar-header-m-ad.arc-ad-wrapper +.arcAdsBox.arcAdsContainer.arcad-block-container“  .archive-ad .archive-ads.archive-radio-ad-container .areaAd .area_ad +.area_ad03 +.area_ad07 +.area_ad09  .area_ad2 .arena-ad-col .art-text-ad +.artAd .artAdInner .art_ads .artcl_ad_dsk .article--ad.article--content-ad .article-ad.article-ad-align-left.article-ad-blk.article-ad-bottom.article-ad-box.article-ad-cont.article-ad-container.article-ad-holder.article-ad-horizontal.article-ad-left.article-ad-legend.article-ad-main.article-ad-placeholder.article-ad-placement.article-ad-primary.article-ad-row.article-ad-row-inner.article-ad-section .article-ads.article-advert.article-advert--text.article-advert-container.article-advert-dfp.article-aside-ad.article-aside-top-ad.article-content-ad.article-content-adwrap.article-first-ad.article-footer-ad .article-footer-ad-container.article-footer__ad.article-footer__ads.article-header-ad.article-header__railAd.article-inline-ad.article-mid-ad.article-small-ads.article-sponsor.article-sponsorship-header.article-top-ad .articleADbox +.articleAd.articleAdHeader.articleAdTopRight .articleAds .articleAdsL.articleAdvertÊ +.articleBottom-ads.articleEmbeddedAdBox.articleFooterAd.articleHeaderAd.articleTop-ads .articleTopAd.article__ad-holder.article__adblock.article__adhesion .article__adv .article_ad .article_ad_1 .article_ad_2.article_ad_text.article_ad_top.article_adbox.article_ads_banner.article_bottom-ads.article_bottom_ad.article_google-ad.article_google_ads.article_inline_ad.article_inner_ad .article_mpu.article_tower_ad +.articlead .articleads.articles-ad-block.artnet-ads-ad  .aside-ad.aside-ad-space.aside-ad-wrapper +.aside-ads.aside-ads-top .asideAd  .aside_ad.aside_ad_large.async-ad-container .at-header-ad.at-sidebar-ad .atf-ad .atfAds.atf_adWrapper.atomsAdsCellModel.attachment-advert_home .attachment-dm-advert-bronze.attachment-dm-advert-gold .attachment-dm-advert-silver.attachment-sidebar-ad.attachment-squareAd +.avadvslot.avap-ads-container.avert--leaderboard.avert--sidebar .avert-text .azk-adsense .b-ad +.b-ad-main .b-adhesion +.b-adv  .b-advert.b-advertising__down-menu .b-aside-ads .b-header-ad³ +.b-right-rail--ads.bAdvertisement.b_adLastChild +.b_ads .b_ads_cont .b_ads_r +.b_ads_top.background-ad.background-ads.background-adv .backgroundAd .bam-ad-slot .bank-rate-ad  .banmanad .banner--ad .banner-125 .banner-300.banner-300-100.banner-300-250.banner-300x250.banner-300x600.banner-320-100 .banner-468.banner-468-60.banner-468x60 .banner-728.banner-728x90 +.banner-ad .banner-ad-b.banner-ad-below.banner-ad-block.banner-ad-bottom-fixed.banner-ad-container.banner-ad-contianer.banner-ad-footer.banner-ad-image.banner-ad-inner.banner-ad-label.banner-ad-large.banner-ad-pos.banner-ad-row.banner-ad-skeleton-box.banner-ad-space.banner-ad-wrap.banner-ad-wrapper .banner-ad2.banner-ads-right.banner-ads-sidebar.banner-adsense .banner-adv.banner-advert.banner-advert-wrapper.banner-advertisement.banner-advertising.banner-adverts.banner-asd__title.banner-buysellads.banner-img > .pbl.banner-sponsorship.banner-top-ads.banner120x600 +.banner160.banner160x600.banner200x200Ý  +.banner300.banner300x250 +.banner336.banner336x280 +.banner350 +.banner468 +.banner728 .banner728-ad.banner728-container .banner728x90 +.bannerADS +.bannerADV  .bannerAd.bannerAd-module +.bannerAd3.bannerAdContainer.bannerAdLeaderboard.bannerAdRectangle.bannerAdSearch.bannerAdSidebar.bannerAdTower .bannerAdWrap +.bannerAds .bannerAdvert .bannerAside .bannerGoogle.bannerRightAd.banner_160x600.banner_240x400.banner_250x250.banner_300_250.banner_300x250.banner_300x600.banner_468_60.banner_468x60.banner_728_90.banner_ad-728x90.banner_ad_300x250.banner_ad_728x90.banner_ad_container.banner_ad_footer.banner_ad_full.banner_ad_leaderboard.banner_ad_link.banner_ad_wrapper .banner_ads1.banner_reklam.banner_reklam2 .banner_slot  .bannerad +.bannerad3 +.banneradd +.bannerads +.banneradv .bannerandads.bannergroup-ads +.bannermpu .banners_ad .bannervcms .bar_ad .base-ad-mpu .base-ad-slot .base-ad-top .base_ad…  .baseboard-ad +.bb-ad .bb-ad-mrec.bbccom-advert.bbccom_advert .bcom_ad.before-header-ad.before-injected-ad.below-ad-border.below-article-ad-sidebar .below-nav-ad.belowMastheadWrapper .belowNavAds.below_game_ad.below_nav_ad_wrap.below_player_ad .bg-ad-gray .bg-ads .bg-ads-space .bg-grey-ad  .bgAdBlue +.bg_ad .bg_ads .bgcolor_ad.bgr-ad-leaderboard .bh-ads.bh_ad_container .bidbarrel-ad .big-ad .big-ads.big-advertisement .big-box-ad .big-right-ad +.bigAd.bigAdContainer .bigAds .bigAdvBanner .bigBoxAdArea +.bigCubeAd .big_ad .big_ad2 .big_ads +.bigad .bigad1 .bigad2 +.bigadleft .bigadright .bigads +.bigadtxt1 +.bigbox-ad +.bigbox.ad +.bigbox_ad  .bigboxad .bigsponsor .billboard-ad.billboard-ad-one.billboard-ad-space.billboard-ads .billboard.ad .billboardAd.billboard__advert .billboard_ad.billboard_ad_wrap.billboard_adwrapÈ +.bing-ads-wrapper.bing-native-ad  .bl300_ad +.block--ad .block--ads .block--dfp.block--doubleclick.block--simpleads  .block-ad.block-ad-entity.block-ad-header.block-ad-leaderboard.block-ad-wrapper.block-admanager +.block-ads.block-ads-bottom.block-ads-home.block-ads-system.block-ads-top.block-ads-yahoo .block-ads1 .block-ads2 .block-ads3.block-ads_top.block-adsense .block-adtech +.block-adv .block-advert.block-advertisement%!.block-advertisement-banner-block.block-advertising .block-adzerk.block-bg-advertisement.block-boxes-ad.block-cdw-google-ads +.block-dfp .block-dfp-ad.block-dfp-blocks.block-doubleclick_ads.block-fusion-ads.block-google-admanager.block-openads .block-openx.block-quartz-ads.block-reklama.block-simpleads.block-skyscraper-ad.block-sponsor.block-sponsored-links.block-the-dfp.block-wrap-ad .block-yt-ads .blockAd  .blockAds.blockAdvertise.block__ads__ad  .block_ad +.block_ad1.block_ad303x1000_left.block_ad303x1000_right.block_ad_middle .block_ad_top +.block_ads .block_adslotö  +.block_adv .block_advert.block_article_ad .blockad .blocked-ads .blog-ad.blog-ad-image  .blog-ads.blog-advertisement .blogAd.blogAdvertisement .blog_ad .blogads .bmd_advert .bn_ads .bnr_ad .body-ad  .body-ads .body-top-ads .bodyAd .body_ad .bodyads  .bodyads2 .bordered-ad +.botAd .bot_ad .bot_ads +.bottom-ad.bottom-ad--bigbox.bottom-ad-banner.bottom-ad-box.bottom-ad-container.bottom-ad-desktop.bottom-ad-large.bottom-ad-placeholder.bottom-ad-wrapper.bottom-ad-zone .bottom-ad2 .bottom-ads.bottom-ads-container.bottom-ads-sticky.bottom-ads-wrapper .bottom-adv.bottom-adv-container.bottom-banner-ad.bottom-fixed-ad.bottom-left-ad.bottom-main-adsense.bottom-mobile-ad.bottom-mpu-ad.bottom-post-ad-space.bottom-post-ads.bottom-right-advert.bottom-side-advertisement  .bottomAd.bottomAdBlock.bottomAdContainer +.bottomAds .bottomAdvert.bottomAdvertisement +.bottom_ad.bottom_ad_block.bottom_ad_placeholder.bottom_ad_responsiveØ  .bottom_ads.bottom_adsense.bottom_adspace.bottom_banner_ad.bottom_banner_advert_text.bottom_bar_ads.bottom_left_advert.bottom_right_ad.bottom_rightad.bottom_side_ad.bottom_sponsor.bottom_sticky_ad  .bottomad +.bottomads .bottomadvert.botton_advertisement .box-ad.box-ad-middle .box-ads .box-adsense.box-adsense-top .box-advert.box-advertisement.box-advertising .box-adverts.box-bannerads'#.box-bannerads-leaderboard-fallback .box-entry-ad.box-fixed-ads.box-footer-ad +.boxAd.boxAdContainer .boxAds .boxAds2.boxAdvertisement .boxSponsor .box_ad.box_ad_container.box_ad_content.box_ad_horizontal.box_ad_spacer .box_ad_wrap .box_ads .box_adv .box_adv_728 .box_advert.box_advertising.box_content_ad.box_content_ads.box_layout_ad.box_publicidad.box_sidebar-ads +.boxad .boxad1 .boxad2 +.boxadcont .boxads .boxadv.bps-ad-wrapper.bps-advertisement.bq_adleaderboard .bq_rightAd +.br-ad.br-ad-wrapper¾   .breadads +.break-ads .breaker-ad +.breakerAd .briefNewsAd .brn-ads-box.brn-ads-mobile-container.brn-ads-sticky-wrapper +.broker-ad.browse-ad-container +.browsi-ad .btm_ad .btn_ad .bump-ad +.bunyad-ad +.buttom_ad.buttom_ad_size +.button-ad .button-ads  .buttonAd .buttonAdSpot +.buttonAds +.button_ad .button_ads.button_advert.button_left_ad.button_right_ad  .buttonad .buttonadbox +.buttonads.buySellAdsContainer .buysellAds .buzzAd .c-Ad .c-Adhesion .c-ArticleAds .c-ad.c-ad--adStickyContainer .c-ad--bigbox .c-ad--header +.c-ad-flex .c-ad-fluid.c-ad-placeholder .c-ad-size2 .c-ad-size3 .c-adDisplay.c-adDisplay_container .c-adOmnibar +.c-adSense .c-adSkyBox.c-adbutler-ad.c-adbutler-ad__wrapper.c-adcontainer +.c-ads  .c-adunit.c-adunit--billboard.c-adunit--first.c-adunit__container.c-adv3__inner  .c-advert .c-advert-app.c-advert-superbanner.c-advertisement.c-advertisement--billboardÅ +.c-advertisement--rectangle.c-advertising.c-advertising__banner-area +.c-adverts.c-advscrollingzone.c-box--advert.c-gallery-vertical__advert.c-googleadslot  .c-gpt-ad .c-header__ad.c-header__advert-container!.c-pageArticleSingle_bottomAd  .c-prebid.c-sidebar-ad-stream__ad.c-sitenav-adslot.c-sitenavPlaceholder__ad .c_nt_ad  .cableads .cactus-ads.cactus-header-ads .caja_ad.california-ad.california-sidebar-ad +.calloutAd +.carbon-ad .carbon_ads  .carbonad .carbonad-tag.carbonads-widget  .card--ad.card--article-ad .card-ad  .card-ads.card-article-ads .cardAd .catalog_ads/+.category-ad:not(html):not(body):not(.post)0,.category-ads:not(html):not(body):not(.post).categoryMosaic-advertising#.categoryMosaic-advertisingText +.cazAd .cb-ad-banner.cb-ad-container.cbd_ad_manager .cbs-ad +.cc-advert +.center-ad.center-ad-long.center-tag-rightad  .centerAD  .centerAd +.centerAds +.center_ad .center_add .center_ads.center_inline_ad  .centerad +.centerads +.centeradv .centered-ad .ch-ad-item .channel--ad .channel-ad .channel-adv¥ +.channel-icon--ad.channel-icon__ad-buffer.channel-sidebar-big-box-ad.channelBoxAds.channel_ad_2016.chapter-bottom-ads.chapter-top-ads +.chart_ads .chitika-ad.cl-ad-billboard.clAdPlacementAnchorWrapper.clever-core-ads.clickforceads.clickio-side-ad +.client-ad.clsy-c-advsection .cms-ad.cn-advertising .cnbcHeaderAd .cnc-ads .cnx-player.cnx-player-wrapper .coinzilla-ad.coinzilla-ad--mobile .col-ad.col-ad-hidden .col-has-ad .col-line-ad  .col2-ads +.colAd.colBoxAdframe.colBoxDisplayAd .col_ad .colads .collapsed-ad .colombiaAd +.column-ad  .columnAd .columnAdvert .columnBoxAd.columnRightAdvert.combinationAd .comment-ad.comment-ad-wrap.comment-advertisement .comment_ad.comment_ad_box .commercialAd .companion-ad.companion-ads .companionAd .companion_ad .complex-ad#.component-ar-horizontal-bar-ad.components-Ad-___Ad__ad .con_ads  .connatix.connatix-container.connatix-hodler.connatix-holder.connatix-main-container.connatix-wrapper.connatix-wysiwyg-container +.consoleAdÐ  .cont-ad.container--ad.container--ads#.container--ads-leaderboard-atf.container--advert.container--bannerAd.container-ad-600.container-ad-left.container-adds.container-adrotate.container-ads.container-adwords.container-banner-ads.container-bottom-ad.container-first-ads.container-lower-ad.container-rectangle-ad.container-top-adv.containerAdsense.containerSqAd.container__ad.container__box--ads .container_ad.container_ad_v.container_publicidad .containerads .contains-ad.contains-advertisment.content--right-ads .content-ad.content-ad-article.content-ad-box.content-ad-container.content-ad-left.content-ad-right.content-ad-side.content-ad-widget.content-ad-wrapper .content-ads.content-ads-bottom.content-advert.content-advertisment.content-bottom-ad.content-bottom-mpu.content-contentad.content-footer-ad.content-footer-ad-block.content-header-ad.content-kuss-ads.content-leaderboard-ad.content-leaderboard-ads.content-page-ad_wrap.content-result-ads.content-top-ad-item .content1-ad .content2-ad +.contentAd.contentAd--sb1 .contentAdBox.contentAdContainer.contentAdFoot.contentAdIndex .contentAds.contentAdsCommonŠ +.contentAdsWrapper.contentAdvertisement .contentTopAd.contentTopAdSmall.contentTopAds .content__ad.content__ad__content .content_ad.content_ad_728.content_ad_head.content_ad_side .content_ads.content_adsense .content_adsq.content_advert.content_advertising .content_advt.content_bottom_adsense.content_gpt_top_ads.content_inner_ad.content_left_advert +.contentad.contentad-end.contentad-home.contentad-storyad-1.contentad-superbanner-2.contentad-top .contentad2.contentadarticle.contentadleft .contentads1 .contentads2.contentbox_ad.contentleftad .contest_ad .context-ads.contextualAds.contextual_ad_unit  .cornerad.cpmstarHeadline .cpmstarText.crain-advertisement +.criteo-ad.crm-adcontain  .crumb-ad +.cspAd .css--ad .ct-ads +.ct-advert.ct-advertising-footer.ct-bottom-ads +.ct_ad .cta-ad .cube-ad .cubeAd .cube_ad  .cube_ads +.custom-ad.custom-ad-area.custom-ad-container .custom-ads.custom-advert-banner.custom-sticky-ad-container  .customAd¤ + +.custom_ad.custom_ad_responsive .custom_ads.custom_ads_positions.custom_banner_ad.custom_footer_ad .customadvert.customized_ad_module  .cwAdvert.cxAdvertisement .d3-c-adblock.d3-o-adv-block.da-custom-ad-box.dac__banner__wrapper.daily-adlabel .dart-ad.dart-ad-content .dart-ad-grid.dart-ad-title.dart-advertisement.dart-leaderboard.dart-leaderboard-top .dartAdImage .dart_ad  .dart_tag .dartad .dartadbanner .dartadvert .dartiframe +.dc-ad .dcmads +.dd-ad.dd-ad-container .deckAd .deckads.demand-supply .desktop-ad.desktop-ad-banner.desktop-ad-container.desktop-ad-inpage.desktop-ad-slider .desktop-ads.desktop-adunit.desktop-advert.desktop-article-top-ad.desktop-aside-ad-hide.desktop-lazy-ads.desktop-sidebar-ad-wrapper.desktop-top-ad-wrapper .desktop.ad +.desktopAd .desktop_ad .desktop_mpu.desktop_only_ad .desktopads +.detail-ad .detail-ads.detail__ad--small +.detail_ad.detail_article_ad.detail_top_advert.details-advert'#.dfm-featured-bottom-flex-container .dfp-adÐ +.dfp-ad-bigbox2-wrap.dfp-ad-container.dfp-ad-container-box.dfp-ad-container-wide .dfp-ad-full.dfp-ad-hideempty .dfp-ad-lazy.dfp-ad-lead2-wrap.dfp-ad-lead3-wrap.dfp-ad-midbreaker-wrap.dfp-ad-midbreaker2-wrap.dfp-ad-placeholder .dfp-ad-rect.dfp-ad-region-1.dfp-ad-region-2 .dfp-ad-tags.dfp-ad-top-wrapper .dfp-ad-unit.dfp-ad-widget.dfp-ads-ad-article-middle.dfp-ads-embedded .dfp-adspot.dfp-article-ad .dfp-banner.dfp-banner-slot.dfp-billboard-wrapper +.dfp-block .dfp-bottom .dfp-button .dfp-close-ad.dfp-double-mpu.dfp-dynamic-tag .dfp-fixedbar.dfp-here-bottom .dfp-here-top.dfp-interstitial.dfp-leaderboard.dfp-leaderboard-container  .dfp-mrec +.dfp-panel.dfp-plugin-advert .dfp-position  .dfp-slot.dfp-slot-wallpaper +.dfp-space.dfp-super-leaderboard.dfp-tag-wrapper .dfp-top  .dfp-top1.dfp-top1-container.dfp-top_leaderboard  .dfp-wrap .dfp-wrapper +.dfpAd.dfpAdUnitContainer .dfpAds +.dfpAdspot +.dfpAdvert.dfp_ATF_wrapper.dfp_ad--outbrain .dfp_ad_block.dfp_ad_caption.dfp_ad_content_bottom.dfp_ad_content_top– +.dfp_ad_footer.dfp_ad_header .dfp_ad_pos .dfp_ad_unit.dfp_ads_block +.dfp_frame  .dfp_slot +.dfp_strip .dfp_top-ad .dfp_txt  .dfp_unit.dfp_unit--interscroller.dfp_unit-ad_container +.dfpad .dfrads .dfx-ad.dfx-adBlock1Wrapper.dg-gpt-ad-container .dianomi-ad.dianomi-container.dianomi-embed.dianomiScriptContainer.dianomi_context.dikr-responsive-ads-slot.discourse-adplugin.discourse-google-dfp .display-ad.display-ad-block.display-adhorizontal.display-ads-block.display-advertisement +.displayAd.displayAdCode.displayAdSlot.displayAdUnit .displayAds .display_ad.display_ads_right)%.div-gpt-ad-adhesion-leaderboard-wrap.div-insticator-ad +.divAd .divAdright .divAds .divAdsBanner .divAdsLeft .divAdsRight .divReklama  .divRepAd.divSponsoredBox.divSponsoredLinks.divTopADBanner.divTopADBannerWapper.divTopArticleAd.div_advertisement .divad1 .divad2 .divad3 .divads .divider-ad.divider-advert.divider-full-width-ad .divider_ad.dlSponsoredLinks.dm-adSlotBillboard× .dm-adSlotNative1.dm-adSlotNative2.dm-adSlotNative3.dm-adSlotRectangle1.dm-adSlotRectangle2.dm-adSlotSkyscraper.dm-adSlot__sticky.dm_ad-billboard.dm_ad-container.dm_ad-halfpage.dm_ad-leaderboard .dm_ad-link.dm_ad-skyscraper .dmpu-ad .dn-ad-wide +.dotcom-ad +.double-ad .double-ads.doubleClickAd.doubleclickAds .download-ad .downloadAds .download_ad .dsk-box-ad-d .dsq_ad .dt-sponsor.dtads-desktop .dtads-slot  .dual-ads .dualAds.dyn-sidebar-ad .dynamic-ads.dynamicAdvertContainer.dynamicLeadAd.dynamic_adslot .dynamicad1 .dynamicad2 .e-ad .e-advertise +.e3lan +.e3lan-top.e3lan-widget-content .e3lan300-100 .e3lan300-250.e3lan300_250-widget .eaa-ad .eads  .easy-ads .easyAdsBox.easyAdsSinglePosition .ebayads.ebm-ad-target__outer .ecommerce-ad .ecosia-ads .eddy-adunit +.editor_ad +.eg-ad .eg-custom-ad .element--ad .element-ad.element-adplace.element_contentad1.element_contentad2.element_contentad3½ +.element_contentad4.element_contentad50,.elementor-widget-wp-widget-advads_ad_widget +.embAD  .embed-ad.embedded-article-ad .embeddedAd .embeddedAds.embedded_ad_wrapper&".empire-prefill-container-injected".empire-unit-prefill-container  .empty-ad .endAHolder.endti-adlabel  .entry-ad +.entry-ads.entry-bottom-ad.entry-bottom-ads .entry-top-ad .entryAd  .entry_ad .entryad .etn-ad-text.eu-advertisment1.evo-ads-widget +.evolve-ad .ex_pu_iframe .exo_wrapper .external-ad .external-add .ezAdsWidget .ezmob-footer.ezmob-footer-desktop .ezo_ad  .ezoic-ad.ezoic-ad-adaptive.ezoic-adpicker-ad.ezoic-floating-bottom .f-ad +.f-item-ad.f-item-ad-inhouse.fah-btn.nopop.fah-btn__container.fbs-ad--ntv-home-wrapper.fbs-ad--top-wrapper.fbs-ad--topx-wrapper .fc_clmb_ad .fce_ads +.featureAd .feature_ad .featured-ad .featured-ads.featured-sponsors.featured-story-ad.featuredAdBox .featuredAds.featuredBoxAD .featured_ad.featuredadvertising .feed-ad.feed-ad-wrapper.fh_ad_microbuttons.field-59-companion-ad.fig-ad-contentÉ .first-article-ad-block.first-banner-ad.first-leaderbord-adv .first-leaderbord-adv-mobile.firstAd-container  .first_ad.first_party_ad_wrapper.first_post_ad .firstad.firstpost_advert.firstpost_advert_container .fix_ad .fixadheight.fixadheightbottom.fixed-ad-aside.fixed-ad-bottom +.fixed-ads.fixed-bottom-ad.fixed-sidebar-ad  .fixedAds .fixedLeftAd .fixedRightAd  .fixed_ad .fixed_adslot.fixed_advert_banner.fjs-ad-hide-empty .fla-ad .flashAd  .flash_ad .flash_advert .flashad  .flashadd .flex-ad.flex-posts-ads .flexAd .flexAds.flexContentAd .flexad .flexadvert .flexiad .flm-ad .floatad  .floatads .floated-ad.floated_right_ad .floating-ads.floating-advert .floatingAds .fly-ad .fm-badge-ad  .fnadvert .fns_td_wrap  .fold-ads.follower-ad-bottom .following-ad.following-ad-container .foot-ad  .foot-ads.foot-advertisement .foot_adsense .footad.footer-300-ad +.footer-ad.footer-ad-full-wrapperë +.footer-ad-labeling.footer-ad-row.footer-ad-section.footer-ad-squares.footer-ad-unit.footer-ad-wrap .footer-adrow .footer-ads.footer-ads-slide.footer-ads-wrapper.footer-ads_unlocked.footer-adsbar.footer-adsense.footer-advert.footer-advert-large.footer-advertisement.footer-advertisements.footer-advertising.footer-advertising-area.footer-banner-ad.footer-banner-ads.footer-floating-ad .footer-im-ad.footer-leaderboard-ad.footer-post-ad-blk.footer-prebid.footer-text-ads  .footerAd.footerAdModule .footerAdUnit.footerAdWrapper +.footerAds.footerAdsWrap .footerAdslot.footerAdverts.footerBottomAdSec .footerFullAd.footerPageAds .footerTextAd.footer__ads--content.footer__advert +.footer_ad .footer_ad336.footer_ad_container .footer_ads .footer_adv.footer_advertisement.footer_block_ad.footer_bottom_ad.footer_bottomad.footer_line_ad.footer_text_ad.footer_text_adblog  .footerad.footeradspace.footertextadbox.forbes-ad-container.forex_ad_links.fortune-ad-unit  .forum-ad .forum-ad-2.forum-teaser-ad.forum-topic--adsense .forumAdÕ .forum_ad_beneath  .four-ads.fp-ad-nativendo-one-third.fp-ad-rectangle  .fp-ad300 .fp-ads .fp-right-ad.fp-right-ad-list.fp-right-ad-zone .fp_ad_text .fp_adv-box +.frame_adv .framead.freestar-ad-container".freestar-ad-sidebar-container.freestar-ad-wide-container.freestar-incontent-ad +.frn_adbox  .front-ad  .front_ad  .frontads .frontendAd .frontone_ad.frontpage__article--ad.frontpage_ads.fsAdContainer +.fs_ad .fs_ads .fsrads +.ft-ad .full-ad.full-ad-wrapper  .full-ads  .full-adv.full-bleed-ad.full-bleed-ad-container .full-page-ad.full-top-ad-area.full-width-ad.full-width-ad-container.full-width-ads +.fullAdBar .fullBleedAd .fullSizeAd .fullWidthAd .full_AD .full_ad_box .full_ad_row.full_width_ad .fulladblock.fullbanner_ad .fullbannerad .fullpage-ad.fullsize-ad-square.fullwidth-advertisement .fusion-ads.fuv_sidebar_ad_widget  .fwAdTags +.fw_ad .g-ad  .g-ad-fix.g-ad-leaderboard +.g-ad-slot .g-adverÉ .g-advertisement-block .g1-ads.g1-advertisement .g2-adsense .g3-adsense +.gAdMTable.gAdMainParent.gAdMobileTable .gAdOne .gAdOneMobile .gAdRows .gAdSky.gAdThreeDesktop.gAdThreeMobile .gAdTwo .gAds +.gAds1 +.gAdsBlock.gAdsContainer .gAdvertising .g_ad +.g_adv .ga-ads .gaTeaserAds.gaTeaserAdsBox .gabfire_ad.gabfire_simplead_widget.gad-container .gad-right1 .gad-right2 .gad300x600 .gad336x280 .gadContainer.gad_container.gads_container  .gadsense .gadsense-ad .gallery-ad.gallery-ad-container.gallery-ad-counter.gallery-ad-holder$ .gallery-ad-lazyload-placeholder.gallery-ad-overlay.gallery-adslot-top.gallery-injectedAd.gallery-sidebar-ad.gallery-slide-ad .galleryAds.galleryLeftAd.galleryRightAd .gallery_ad.gallery_ad_wrapper.gallery_ads_box +.galleryad .galleryads .gam-ad .gam-ad-hz-bg .gam_ad_slot  .game-ads.game-category-ads .gameAd .gameBottomAd.gamepage_boxad.games-ad-wrapperƒ  +.gb-ad-top .gb_area_ads .general-ad .genericAds .ggl_ads_row .ggl_txt_ads.giant_pushbar_ads_l .glacier-ad  .globalAd .gnm-ad-unit.gnm-ad-unit-container .gnm-ad-zones.gnm-adhesion-ad.gnm-banner-ad +.gnm-bg-ad +.go-ad .goAdMan +.goads .googads .google-2ad-m +.google-ad.google-ad-160-600.google-ad-468-60.google-ad-728-90.google-ad-block.google-ad-container.google-ad-content.google-ad-header2.google-ad-image.google-ad-manager.google-ad-placeholder.google-ad-sidebar.google-ad-space.google-ad-widget .google-ads.google-ads-billboard.google-ads-bottom.google-ads-container.google-ads-footer-01.google-ads-footer-02.google-ads-in_article.google-ads-leaderboard.google-ads-long.google-ads-responsive.google-ads-right.google-ads-sidebar.google-ads-widget.google-ads-wrapper.google-adsense.google-advert-sidebar.google-afc-wrapper.google-bottom-ads.google-dfp-ad-caption.google-dfp-ad-wrapper.google-right-ad.google-sponsored.google-sponsored-ads.google-sponsored-link.google-sponsored-links +.google468  .googleAd .googleAdBox.googleAdContainer.googleAdSearch† +.googleAdSense.googleAdWrapper +.googleAdd +.googleAds.googleAdsContainer.googleAdsense +.googleAdv +.google_ad.google_ad_container.google_ad_label.google_ad_wide .google_add.google_admanager .google_ads.google_ads_content.google_ads_sidebar.google_adsense.google_adsense1.google_adsense_footer .google_afc.google_afc_ad  .googlead .googleadArea.googleadbottom.googleadcontainer .googleaddiv +.googleads.googleads-container.googleads-height.googleadsense.googleadsrectangle +.googleadv.googleadvertisement .googleadwrap +.googleafc +.gpAds .gpt-ad.gpt-ad-container.gpt-ad-sidebar-wrap.gpt-ad-wrapper .gpt-ads.gpt-billboard.gpt-breaker-container.gpt-container.gpt-leaderboard-banner.gpt-mpu-banner.gpt-sticky-sidebar .gpt.top-slot .gptSlot.gptSlot-outerContainer.gptSlot__sticky-footer .gptslot .gradientAd .graphic_ad .grev-ad .grey-ad .grey-ad-line.grey-ad-notice .greyAd .greyad .grid-ad.grid-ad-col__big.grid-advertisement.grid-block-adó .grid-item-ad .gridAd +.gridAdRow .gridSideAd.grid_ad_container .gridad .gridlove-ad.gridstream_ad.ground-ads-shared.group-ad-leaderboard.group-google-ads.group-item-ad  .group_ad .gsAd .gtm-ad-slot.guide__row--fixed-ad.guj-ad--placeholder +.gujAd +.gutterads +.gw-ad .h-adholder +.h-ads .h-adver.h-large-ad-box  .h-top-ad .h11-ad-top +.h_Ads .h_ad .half-ad .half-page-ad.half-page-ad-1.half-page-ad-2 .halfPageAd .half_ad_box .halfpage_ad.halfpage_ad_1.halfpage_ad_container.happy-inline-ad .has-ad .has-adslot.has-fixed-bottom-ad +.hasAD .hdr-ad .hdr-ads +.hdrAd .hdr_ad .head-ad  .head-ads.head-banner468 .head-top-ads .headAd .head_ad.head_ad_wrapper  .head_ads  .head_adv .head_advert .headad.headadcontainer +.header-ad.header-ad-area.header-ad-banner.header-ad-box.header-ad-container.header-ad-desktop‡ .header-ad-frame.header-ad-holder.header-ad-region.header-ad-row.header-ad-space.header-ad-top.header-ad-widget.header-ad-wrap.header-ad-wrapper.header-ad-zone.header-adbanner .header-adbox.header-adcode.header-adplace .header-ads.header-ads-area.header-ads-container.header-ads-holder.header-ads-wrap.header-ads-wrapper.header-adsense.header-adslot-container.header-adspace .header-adv.header-advert.header-advert-wrapper.header-advertise.header-advertisement.header-advertising!.header-and-footer--banner-ad.header-article-ads.header-banner-ad.header-banner-ads.header-banner-advertising.header-bannerad.header-bottom-adboard-area.header-pencil-ad.header-sponsor.header-top-ad.header-top_ads  .headerAd +.headerAd1.headerAdBanner.headerAdContainer.headerAdPosition.headerAdSpacing.headerAdWrapper +.headerAds .headerAds250.headerAdspace .headerAdvert.headerAdvertisement .headerTextAd .headerTopAd .headerTopAds .header__ad .header__ads.header__ads-wrapper.header__advertisement +.header_ad .header_ad1.header_ad_center.header_ad_div.header_ad_spaceµ  .header_ads.header_ads-container.header_ads_box.header_adspace.header_advert.header_advertisement.header_advertisment.header_leaderboard_ad.header_top_ad  .headerad .headeradarea.headeradblock.headeradright +.headerads.heading-ad-space.headline-adblock .headline-ads.headline_advert .hederAd +.herald-ad .hero-ad .hero-ad-slot .hero-advert .heroAd +.hidden-ad .hide-ad .hide_ad .hidead .highlightsAd +.hm-ad .hmad .hn-ads +.holder-ad .holder-ads .home-ad.home-ad-bigbox.home-ad-container.home-ad-inline.home-ad-links.home-ad-region-1.home-ad-section  .home-ads.home-ads-container +.home-ads1 .home-adv-box .home-advert.home-body-ads .home-page-ad.home-sidebar-ad.home-sponsored-links.home-sticky-ad .home-top-ad .homeAd .homeAd1 .homeAd2 +.homeAdBox .homeAdBoxA.homeAdSection.homeBoxMediumAd .homeCentreAd .homeMainAd.homeMediumAdGroup.homePageAdSquare .homePageAdsê +.homeTopAdContainer .home_ad.home_ad_bottom.home_ad_large.home_ad_title .home_adblock .home_advert.home_advertisement .home_mrec_ad.homeadwrapper.homepage--sponsor-content .homepage-ad.homepage-ad-block.homepage-ad-module.homepage-advertisement.homepage-banner-ad.homepage-footer-ad.homepage-footer-ads#.homepage-page__ff-ad-container$ .homepage-page__tag-ad-container&".homepage-page__video-ad-container .homepageAd.homepage__native-ad .homepage_ads.homepage_block_ad .hor-ad .hor_ad .horiAd.horiz_adspace.horizontal-ad.horizontal-ad-container.horizontal-ad-holder.horizontal-ad-wrapper.horizontal-ad2.horizontal-ads .horizontal-advert-container.horizontal-full-ad.horizontal.ad .horizontalAd.horizontalAdText.horizontalAdvert.horizontal_Fullad.horizontal_ad.horizontal_adblock.horizontal_ads.horizontaltextadbox.horizsponsoredlinks .hortad .hotad_bottom  .hotel-ad  .house-ad.house-ad-small.house-ad-unit +.house-ads .houseAd  .houseAd1.houseAdsStyle .housead +.hover_ads .hoverad.hp-ad-container +.hp-ad-grp .hp-adsection .hp-sectionadì  .hpRightAdvt.hp_320-250-ad +.hp_ad_300 +.hp_ad_box .hp_ad_cont .hp_ad_text.hp_adv300x250  .hp_advP1.hp_horizontal_ad.hp_textlink_ad .htl-ad.htl-ad-placeholder.html-advertisement.html5-ad-progress-list .hw-ad--frTop .hyad .hyperAd0,.i-amphtml-element.live-updates.render-embed.i-amphtml-unresolved +.iAdserver .iab300x250 +.iab728x90 .ib-adv .ico-adv.icon-advertise.iconAdChoices.icon_ad_choices .iconads.idgGoogleAdTag +.ie-adtext +.iframe-ad .iframe-ads  .iframeAd +.iframeAds.ima-ad-container.image-advertisement.image-viewer-ad.image-viewer-mpu .imageAd  .imageAds .imagead  .imageads .img-advert .img_ads +.imgad.in-article-ad.in-article-ad-placeholder.in-article-ad-wrapper.in-article-adx.in-between-ad.in-content-ad.in-content-ad-wrapper .in-page-ad .in-slider-ad .in-story-ads .in-text-ad.in-text__advertising .in-thumb-ad.in-thumb-video-ad  .inPageAd +.in_ad.in_article_ad.in_article_ad_wrapper.in_content_ad_containerø .in_content_advert .inarticlead .inc-ad.incontent-ad1 .incontentAd.incontent_ads +.index-adv .index_728_ad  .index_ad .index_ad_a2 .index_ad_a4 .index_ad_a5 .index_ad_a6.index_right_ad .infinity-ad +.inhousead .injected-ad .injectedAd +.inline-ad.inline-ad-card.inline-ad-container.inline-ad-desktop.inline-ad-placeholder.inline-ad-text.inline-ad-wrap.inline-ad-wrapper.inline-adblock.inline-advert.inline-banner-ad.inline-display-ad.inline-google-ad-slot .inline-mpu.inline-story-add  .inlineAd.inlineAdContainer.inlineAdImage.inlineAdInner.inlineAdNotice .inlineAdText .inlineAdvert.inlineAdvertisement.inlinePageAds .inlineSideAd +.inline_ad.inline_ad_container.inline_ad_title .inline_ads  .inlinead.inlinead_lazyload.inlineadsense.inlineadtitle +.inlist-ad  .inlistAd  .inner-ad.inner-ad-disclaimer.inner-ad-section +.inner-adv .inner-advert.inner-post-ad.innerAdWrapper  .innerAds.innerContentAd.innerWidecontentAd  .inner_adï.inner_ad_advertise .inner_big_ad .innerad  .inpostad .inr_top_ads .ins_adwrap.insert-post-ads +.insert_ad.insert_ad_column.insert_advertisement  .insertad +.inside_ad +.insideads .inslide-ad.insticator-ads .instream_ad  .intAdRow +.intad .interAd .internal-ad .internalAd .internal_ad.interstitial-ad .intext-ads.intra-article-ad  .intro-ad .ion-ad.ione-widget-dart-ad .ipc-advert.ipc-advert-class +.ipsAd.ipsAdvertisement.iqadlinebottom .iqadmarker.iqadtile_wrapper +.is-ad .is-carbon-ad.is-desktop-ads .is-mpu.is-preload-ad .is-script-ad .is-sponsored .is-sticky-ad .isAd  .isAdPage  .isad_box .ise-ad +.island-ad  .islandAd .islandAdvert +.island_ad  .islandad  .item--ad .item-ad.item-ad-leaderboard.item-advertising.item-container-ad.itemAdvertise  .item_ads .itsanad .j-ad.jLinkSponsored +.jannah_ad .jg-ad-5Ê + +.jg-ad-970 +.jobbioapp .jobs-ad-box.jobs-ad-marker .jquery-adi.jquery-script-ads +.js-ad.js-ad-banner-container.js-ad-buttons.js-ad-container.js-ad-dynamic .js-ad-frame .js-ad-home.js-ad-loader-bottom .js-ad-slot .js-ad-static .js-ad-unit.js-ad-unit-bottom.js-ad-wrapper .js-ad_iframe.js-adfliction-iframe.js-adfliction-standard .js-ads.js-ads-carousel +.js-advert.js-advert-container +.js-adzone .js-anchor-ad.js-article-advert-injected.js-billboard-advert +.js-dfp-ad.js-dfp-ad-bottom.js-dfp-ad-top +.js-gpt-ad  .js-gptAd .js-header-ad.js-header-ad-wrapper .js-lazy-ad .js-mapped-ad .js-mpu .js-native-ad.js-no-sticky-ad.js-overlay_ad.js-react-simple-ad.js-results-ads.js-right-ad-block.js-sidebar-ads.js-skyscraper-ad.js-slide-right-ad.js-slide-top-ad .js-sticky-ad .js-stream-ad .js-toggle-ad  .jsAdSlot .jsMPUSponsor.js_adContainer.js_ad_wrapper.js_deferred-ad.js_desktop-horizontal-ad.js_midbanner_ad_slot.js_preheader-ad-container.js_slideshow-full-width-ad.js_slideshow-sidebar-ad.js_sticky-top-ad³ .jsx-adcontainer +.jw-ad .jw-ad-block .jw-ad-label.jw-ad-media-container.jw-ad-visible.kakao_ad_area .keen_ad.kiwi-ad-wrapper-300x250.kiwi-ad-wrapper-728x90.kiwi-ad-wrapper-950x80.kumpulads-post.kumpulads-side.kwizly-psb-ad .l-ad  .l-ad-top +.l-ads +.l-adsense.l-article__ad .l-bottom-ads.l-grid--ad-card.l-header-advertising.l-section--ad.l1-ads-wrapper  .label-ad.label_advertising_text  .labelads .large-advert .largeAd.largeRectangleAd .largeUnitAd  .large_ad .lastAdHolder .lastads +.latest-ad +.layout-ad.layout__right-ads .layout_h-ad .lazy-ad .lazy-ad-unit  .lazy-adv .lazyad .lazyadsense .lazyadslot .lazyload-ad .lazyload_ad.lazyload_ad_article +.lb-ad.lb-adhesion-unit.lb-advert-container .lb-item-ad +.ld-ad .ld-ad-inner .ldm_ad .lead-ad  .lead-ads +.leader-ad.leader-ad-728  .leaderAd .leaderAdTop .leaderAdvert.leaderBoardAdWrapper.leaderBoardAdvert +.leader_adÈ  .leader_aol  .leaderad.leaderboard-ad.leaderboard-ad-belt.leaderboard-ad-component.leaderboard-ad-container.leaderboard-ad-dummy.leaderboard-ad-fixed.leaderboard-ad-grid.leaderboard-ad-main.leaderboard-ad-module.leaderboard-ad-pane.leaderboard-ad-placeholder.leaderboard-ad-section.leaderboard-ad-unit.leaderboard-ad-wrapper.leaderboard-adblock.leaderboard-ads.leaderboard-ads-text.leaderboard-advert.leaderboard-advertisement.leaderboard-main-ad.leaderboard-top-ad.leaderboard-top-ad-wrapper.leaderboard.advert.leaderboard1AdWrapper.leaderboardAd.leaderboardAdWrapper.leaderboardFooter_ad.leaderboardRectAdWrapper.leaderboard_ad_container.leaderboard_ad_unit.leaderboard_ads.leaderboard_adsense.leaderboard_adv.leaderboard_banner_ad.leaderboardad.leaderboardadmiddle.leaderboardadtop.leaderboardadwrap.lee-track-ilad .left-ad  .left-ads .left-advert .left-rail-ad.left-sponser-ad .leftAd .leftAdColumn.leftAdContainer .leftAds.leftAdsEnabled .leftAdsFix .leftAdvDiv .leftAdvert.leftCol_advert .leftColumnAd .left_300_ad .left_ad .left_ad_160.left_ad_areas .left_ad_box.left_ad_container.left_add_block .left_adlinkÒ  .left_ads .left_adsense.left_advertisement_block .left_col_ad.left_google_add .leftad .leftadd +.leftadtag .leftbar_ad2 .leftbarads.leftbottomads +.leftnavad.leftrighttopad.leftsidebar_ad .lefttopad1 .legacy-ads.lft_advt_container.lg-ads-160x90.lg-ads-311x500.lg-ads-635x100.lg-ads-skin-container .ligatus .lightad  .lijit-ad .linead .linkAD .linkAds .link_ad .linkads .list-ad .list-adbox  .list-ads.list-feature-ad.list-footer-ad .listad .listicle-instream-ad-holder.listing-item-ad +.listingAd .listings_ad .lite-page-ad .live-ad .lng-ad +.local-ads .localad .location-ad .log_ads.logged_out_ad .logo-ad .logoAds.logo_AdChoices .logoad  .logoutAd.logoutAdContainer  .long-ads .longAd +.longAdBox .longAds .long_ad .longform-ad .loop-ad  .lower-ad +.lower-ads .lowerAd  .lowerAds“   .lower_ad +.lr-ad .lr-pack-ad  .lr_skyad.lrec-container .lst_ads.lyrics-inner-ad-wrap .m-ContentAd .m-ad .m-ad-brick .m-ad-region +.m-ad-unit.m-ad__wrapper.m-adaptive-ad-component  .m-advert.m-advertisement.m-advertisement--container.m-balloon-header--ad .m-block-ad.m-content-advert.m-content-advert-wrap.m-dfp-ad-text .m-header-ad.m-in-content-ad.m-in-content-ad-row  .m-jac-ad .m-sponsored .m1-header-ad .m2n-ads-slot .m_ad +.m_ad1 .m_ad300 .m_banner_ads +.macAd +.macad.mad_adcontainer +.magAd +.magad .main-ad.main-ad-container.main-ad-gallery .main-add-sec  .main-ads .main-advert.main-advertising.main-column-ad.main-footer-ad.main-header-ad.main-header__ad-wrapper.main-right-ads .mainAd.mainAdContainer .mainAds .mainLeftAd .mainLinkAd .mainRightAd .main_ad .main_adbox  .main_ads  .main_adv +.mantis-ad +.mantisadd +.manual-ad .map-adŸ + +.mapped-ad .mar-block-ad.mar-leaderboard--bottom.margin-advertisement .margin0-ads".marginalContentAdvertAddition .marketing-ad.marketplace-ad.marketplaceAd .marquee-ad.masonry-tile-ad .masonry__ad.master_post_advert .masthead-ad .masthead-ads .mastheadAds .masthead__ad  .match-ad +.mb-advert.mb-advert__incontent".mb-advert__leaderboard--large.mb-advert__mpu.mb-advert__tweeny.mb-block--advert-side .mb-list-ad.mc_floating_ad.mc_text_ads_box.md-advertisement .medRect .media-viewer__ads-container .mediaAd.mediaAdContainer.medium-rectangle-ad.medium-top-ad.mediumRectAdWrapper.mediumRectagleAd.mediumRectangleAd.mediumRectangleAdvert +.medium_ad  .mediumad +.medrec-ad .medrect-ad .medrect-ad2 +.medrectAd .medrect_ad .mega-ad .member-ads .menu-ad .menuAd .message_ads .meta-ad .meta_ad.metabet-sponsored .meteored-ads.mf-adsense-leaderboard.mf-adsense-rightrail .mg_box_ads .mgid-wrapper  .mgid_3x2.mid-ad-wrapper .mid-ads .mid-advert.mid-article-banner-ad .mid-post-adó .mid-section-ad +.midAd .midAdv-cont .midAdv-cont2 +.midAdvert .mid_ad.mid_banner_ad +.midad .midarticlead +.middle-ad .middle-ads.middle-ads728.middle-footer-ad  .middleAd .middleAdLeft .middleAdMid.middleAdRight.middleAdWrapper +.middleAds.middleBannerAd +.middle_AD +.middle_ad.middle_ad_responsive .middle_ads  .middlead.middleadouter .midpost-ad.min-height-ad .min_navi_ad .mini-ad  .mini-ads  .mini_ads .miniad .miniads .misc-ad.misc-ad-label .miscAd.mj-floating-ad-wrapper.mks_ads_widget.mm-ad-sponsored.mm-ads-adhesive-ad.mm-ads-gpt-adunit.mm-ads-leaderboard-header.mm-banner970-ad +.mmads.mntl-gpt-adunit.mntl-sc-block-adslot.moads-top-banner .moads-widget.mob-ad-break-text .mob-adspace.mob-hero-banner-ad-wrap .mob_ads .mobads +.mobile-ad.mobile-ad-container.mobile-ad-negative-space.mobile-ad-placeholder.mobile-ad-slider .mobile-ads.mobile-fixed-ad.mobile-instream-ad-holder%!.mobile-instream-ad-holder-single  .mobileAdÜ + .mobileAdWrap .mobileAppAd.mobile_ad_banner.mobile_ad_container.mobile_featuredad.mobile_leaderboard_ad .mobileadbig .mobileadunit.mobilesideadverts .mod-ad .mod-adblock .mod-ads.mod-google-ads.mod-horizontal-ad.mod-sponsored-links.mod-vertical-ad .mod_ad.mod_ad_container .mod_ad_text .mod_ad_top .mod_admodule .mod_ads .mod_advert .mod_index_ad +.mod_js_ad .mod_openads  .mod_r_ad +.mod_r_ad1  .modal-ad .module--ad +.module-ad.module-ad-small .module-ads.module-advert.module-advertisement.module-box-ads.module-image-ad.module-rectangleads.module-sponsored-ads.module1colAds  .moduleAd .moduleAdSpot .moduleAdvert.moduleAdvertContent.moduleBannerAd.module__ad-wide +.module_ad.module_ad_disclaimer.module_box_ad.module_header_sponsored.module_home_ads.module_single_ads +.modulegad.moduletable-adsponsor.moduletable-advert.moduletable-bannerAd6.moduletable-centerad.moduletable-googleads.moduletable-rectangleads.moduletable_ad-right.moduletable_ad300x250.moduletable_adtop.moduletable_advertisement.moduletable_top_ad¿.moduletableadvert.moduletableexclusive-ads.moduletablesquaread.moduletabletowerad .mom-ad .moneyball-ad +.monsterad .mos-ad  .mosaicAd.motherboard-ad .movable-ad .movv-ad +.mp-ad +.mpsponsor .mpu-ad .mpu-ad-con .mpu-ad-river .mpu-ad-top .mpu-advert +.mpu-c .mpu-footer .mpu-fp .mpu-holder.mpu-leaderboard  .mpu-left .mpu-left-bk .mpu-mediatv +.mpu-right +.mpu-title .mpu-top-left.mpu-top-left-banner.mpu-top-right  .mpu-unit  .mpu-wrap .mpu-wrapper +.mpuAd +.mpuAdArea +.mpuAdSlot +.mpuAdvert .mpuArea  .mpuBlock .mpuBox .mpuContainer .mpu_Ad .mpu_ad .mpu_advert.mpu_container .mpu_holder.mpu_placeholder  .mpu_side .mpu_wrapper +.mpuad .mpuads .mr1_adwrap .mr2_adwrap .mr3_adwrap .mr4_adwrap  .mrec-ads .mrec-banners .mrecAds .mrec_advert .mrf-adv.mrf-adv__wrapper .msg-ad±  +.msgad.mt-ad-container +.mt_ad .mt_ads .mtop_adfit.mu-ad-container.mv_atf_ad_holder .mvp-ad-label.mvp-feat1-list-ad .mvp-flex-ad.mvp-post-ad-wrap.mvp-widget-ad.mvp-widget-feat2-side-ad.mvp_ad_widget +.mw-ad .my-ads +.myAds .myAdsGroup.my__container__ad.n1ad-center-300.narrow_ad_unit .narrow_ads .national_ad .nationalad +.native-ad.native-ad-article.native-ad-container.native-ad-item.native-ad-mode.native-ad-slot .native-adv .native-advts.native-leaderboard-ad.native-sidebar-ad +.native.ad  .nativeAd +.native_ad.native_ad_inline.native_ad_wrap .native_ads  .nativead .nav-ad.nav-ad-gpt-container.nav-ad-plus-leader.nav-adWrapper .nav_ad.navbar-ad-section .navbar-ads.navbar-header-ad .naviad  .ndmadkit .netPost_ad1 .netPost_ad3 .netads.netshelter-ad .newHeaderAd .new_ad1 .new_ad_left.new_ad_normal.new_ad_wrapper_all .new_ads_unit +.newad .newad1 .news-ad .news-ad-square-a.news-ad-square-box .news-ads-top.news-item--ad .news_ad_box.news_vibrant_ads_banner .newsad.newsblock-ads.newsfeed_adunit .nfy-ad.nfy-ad-teaser .nfy-ad-tile.nfy-ad-wrapper .nfy-cobo-ad .nfy-col-ad .ng-ad-banner .ng-ad-insert +.nm-ad.nn_mobile_mpu_wrapper .node-ad.node_ad_wrapper +.normalAds .normal_ads  .normalad .northad.not-an-ad-header.note-advertisement +.np-ad.np-ad-background .np-ad-border.np-ads-wrapper.np-adv-container.np-advert_apu.np-advert_apu-double.np-advert_info .np-header-ad.np-header-ads-area .np-right-ad +.nrAds .nsAdRow .nts-ad .ntv-ad .nuffnangad.nuk-ad-placeholder.nv-ads-wrapper +.nw-ad .nw-ad-label.nw-c-leaderboard-ad +.nw-top-ad.nw_adv_square.nx-billboard-ad.nx-placeholder-ad .o-ad.o-ad-banner-top.o-ad-container  .o-advert.o-listing__ad.o-site-header__advert .oad-ad .oas-ad.oas-container.oas-leaderboard-ads .oas_ad .oas_add— +.oas_advertisement +.oasad .oasads.ob_ads_header&".ob_container .item-container-obpd.*.ob_dual_right > .ob_ads_header ~ .odb_div .offads .oi-add-block .oi-header-ad.oio-banner-zone.oio-link-sidebar.oio-openslots.oio-zone-position .oko-adhesion.on_player_ads .oneColumnAd .onet-ad.online-ad-container .opd_adsticky .otd-ad-top.outer-ad-container.outer-ad-unit-wrapper.outerAdWrapper  .outerAds.outer_ad_container .outside_ad .outsider-ad .ov-ad-slot .overflow-ad .overlay-ad.overlay-ad-container .overlay-ads.overlay-box-ad .overlay_ad .p-ad .p-ad-block.p-ad-dfp-banner.p-ad-dfp-middle-rec.p-ad-feature-pr.p-ad-outbreak.p-ad-rectangle.p-ad-thumbnail-txt.p-ads-billboard +.p-ads-rec".p-post-ad:not(html):not(body).p75_sidebar_ads +.p_adv .p_topad.package_adBox .padAdvx .padvertlabel .page-ad  .page-ads .page-advert.page-advertisement.page-bottom-fixed-ads .page-box-ad.page-break-ad.page-footer-ad.page-header-ad.page-header_ad .page-top-ads .pageAd .pageAdSkinˆ +.pageAdSkinUrl .pageAds .pageFooterAd .pageGoogleAd.pageGoogleAds .pageHeaderAd.pageHeaderAds +.pageTopAd.page__top-ad-wrapper .page_ad .pagead.pagepusheradATF +.pages__ad .pane-ad-pane  .pane-ads.pane-sasia-ad.pane-site-ads.pane-sponsored-links .pane_ad_wide  .panel-ad.panel-adsense .panel-advert  .panel.ad  .panel_ad .paneladvert .par-ad .par-adv-slot.parade-ad-container.parent-ad-desktop .partial-ad .partner-ad.partner-ad-module-wrapper.partner-ads-list +.partnerAd .partner_ads.partnerad_container.partnersTextLinks.pauseAdPlacement.pb-slot-container +.pc-ad .pcads_widget .pd-ads-mpu .pdpads .penci-ad-box.penci-ad-image .penci-ad_box.penci-adsense-below-slider.penci-google-adsense.penci-google-adsense-1.penci-promo-link.penci_list_bannner_widget +.pencil-ad.pencil-ad-container.pencil-ad-section +.pencil_ad .perm_ad.pf_content_ad +.pf_sky_ad +.pf_top_ad .pg-ad-block .pg-adnotice .pg-adtarget.pgevoke-fp-bodyad2 .pgevoke-story-rightrail-ad1ë .pgevoke-story-topads.pgevoke-topads +.ph-ad  .photo-ad .photo-ad-pad .photoAd .photoad.phpads_container.phpbb-ads-center .pix_adzone.placeholder-ad.placeholder-dfp.placeholderAd  .plain-ad .plainAd +.player-ad.player-ad-overlay .player-ads .player-ads2 .player-section__ads-banners.player-under-ad  .playerAd +.playerAdv +.player_ad .player_ad2.player_ad_box  .playerad .playerdads +.plugin-ad.plugin-ad-container +.pm-ad .pm-ad-unit .pm-ad-zone.pm-ads-banner.pm-ads-inplayer .pm-banner-ad.pmc-adm-boomerang-pub-div  .polar-ad .polaris-ad--wrapper-desktop.polarisMarketing .polaris__ad%!.polaris__below-header-ad-wrapper .position-ads .post-ad.post-ad-title .post-ad-top .post-ad-type  .post-ads .post-ads-top.post-adsense-bottom .post-advert.post-advert-row.post-advertisement .post-load-ad .post-news-ad.post-sidebar-ad.post-sponsored .postAd .postWideAd .post_ad  .post_ads .post_advert.post_detail_right_advert.post_sponsoredŽ + .postad .postads .postbit-ad +.poster_ad  .posts-ad.pp-ad-container.pp_ad_code_adtxt .ppb_ads($.ppr_priv_footer_banner_ad_billboard.ppr_priv_header_banner_ad.ppr_priv_horizon_ad .pr_adslot_0 .pr_adslot_1.preheader_advert .premium-ad .premium-ads .premium-adv.premium-mpu-container +.priad .priad-1 .primary-ad.primary-ad-widget.primary-advertisment.primis-player-container .primis-video.primis-wrapper.print-ad-wrapper .print-adslot  .printAds .product-ad .product-ads.product-inlist-ad.profile-ad-container.profile-ads-container.profile__ad-wrapper.profile_ad_bottom.profile_ad_top.programtic-ads  .promo-ad +.promo-mpu .promoAd  .promoAds.promoAdvertising  .promo_ad +.promo_ads .promo_border .promoad .promoboxAd.promoted_content_ad.promotionAdContainer.promotionTextAd.proper-ad-insert.proper-ad-unit +.ps-ad.pt-ad--container.pt-ad--scroll .pt_ad03 .pt_col_ad02 .pub_ads.publication-ad.publicidad_horizontal .publicidade .publisher_ad.pubtech-adv-slot‘  .puff-ad.puff-advertorials .pull-ad .pull_top_ad .pullad .purchad  .push--ad .push-ad  .push-adv .pushDownAd .pushdown-ad .pushdownAd .pwa-ad +.pz-ad-box.quads-ad-label .quads-bg-ad.quads-location  .queue_ad +.queued-ad +.quigo  .quigo-ad  .quigoads .r-ad.r-pause-ad-container.r89-outstream-video .r_ad +.r_ads .rail-ad .rail-ads-1.rail-article-sponsored  .rail__ad .rail_ad .railad .railadspace.ray-floating-ads-container .rc-sponsored.rcom-freestar-ads-widget.re-AdTop1Container  .ready-ad .rec_ad +.recent-ad +.recentAds.recent_ad_holder.recipeFeatureAd .rect-ad +.rect-ad-1 +.rectAd300 .rect_ad.rect_ad_module .rect_advert .rectad .rectadv .rectangle-ad.rectangle-ad-container.rectangle-embed-ad .rectangleAd.rectangleAdContainer .rectangle_ad .rectanglead .rectangleads .refreshAds!.region-ad-bottom-leaderboard.region-ad-pan.region-ad-rightÕ .region-ad-top .region-ads.region-ads-content-top.region-banner-ad.region-dfp-ad-footer.region-dfp-ad-header.region-header-ad.region-header-ads.region-top-ad.region-top-ad-block .regular-ads +.regularad +.rekl-left .rekl-right  .rekl-top +.rekl_left .rekl_right  .rekl_top.rekl_top_wrapper .reklam .reklam-block .reklam-kare.reklam-masthead .reklam2 +.reklam728 .reklama .reklama-vert  .reklama1.reklame-wrapper  .reklamka .related-ad .related-ads .relatedAds .related_ad .remnant_ad .remove-ads.remove-ads-link .res_ad.resads-adspot.responsive-ad#.responsive-ad-header-container.responsive-ad-wrapper.responsive-ads.responsiveAdsense.responsive_ad_top.responsive_ads_468x60 +.result-ad.result-sponsored  .resultAd +.result_ad  .resultad .results-ads.revcontent-wrap +.review-ad.reviews-display-ad +.revive-ad +.rh-ad +.rhads .rhs-ad.rhs-ads-panel.rhs-advert-container.rhs-mrec-wrapper .rhs_ad .rhs_ad_titleù  .rhs_ads +.rhsad +.rhsadvert  .right-ad .right-ad-1 .right-ad-2 .right-ad-3 .right-ad-4 .right-ad-5.right-ad-block.right-ad-container.right-ad-holder.right-ad-wrapper +.right-ad2.right-ad350px250px +.right-ads .right-ads2.right-adsense +.right-adv .right-advert.right-advertisement .right-col-ad.right-column-ad.right-column-ads.right-rail-ad.right-rail-ad-container .right-rail-box-ad-container.right-side-ad.right-side-ads.right-sidebar-box-ad.right-sidebar-box-ads.right-sponser-ad .right-top-ad.right-video-dvertisement .rightAD .rightAd  .rightAd1  .rightAd2 .rightAdBlock .rightAdBox.rightAdColumn.rightAdContainer  .rightAds .rightAdsFix .rightAdvert .rightAdverts .rightBoxAd.rightBoxMidAds .rightColAd.rightColAdBox.rightColumnAd.rightColumnAdd.rightColumnAdsTop.rightColumnRectAd.rightHeaderAd .rightRailAd.rightRailMiddleAd .rightSecAds.rightSideBarAd.rightSideSponsor.rightTopAdWrapper  .right_ad .right_ad_1 .right_ad_2¼  .right_ad_box.right_ad_box1.right_ad_text .right_ad_top.right_ad_unit.right_ad_wrap +.right_ads.right_ads_column.right_adsense_box_2 .right_adskin +.right_adv .right_advert.right_advertise_cnt.right_advertisement.right_block_advert .right_box_ad .right_col_ad.right_column_ads.right_content_ad.right_image_ad.right_long_ad.right_outside_ads.right_side_ads.right_side_box_ad.right_sponsor_main .rightad.rightadHeightBottom .rightadblock  .rightadd  .rightads .rightadunit  .rightadv .rightboxads .rightcolads.rightcoladvert.rightrail-ad-placed .rightsideAd.river-item-sponsored.rj-ads-wrapper +.rm-adslot .rolloverad .roof-ad.root-ad-anchor .rotating-ad .rotating-ads .row-ad.row-ad-leaderboard +.rowAd .rowAds.row_header_ads .rpd_ads +.rr-ad .rr_ads +.rs-ad +.rs-advert.rs-advert__container .rs_ad_block +.rs_ad_top +.rt_ad  .rwSideAd.rwdArticleInnerAdBlock .s-ad +.s-ads +.s_adsá  .sadvert +.sagreklam .sal-adv-gpt .sam_ad +.sb-ad .sb-ads .sbAd.sbAdUnitContainer.sbTopadWrapper +.sb_ad .sb_ad_holder +.sc-ad .scad +.script-ad.scroll-ad-item-container .scroll-ads.scroll-track-ad.scrolling-ads +.sda_adbox.sdc-advert__top-1 .se-ligatus +.search-ad.search-advertisement($.search-result-list-item--sidebar-ad#.search-result-list-item--topad.search-results-ad.search-sponsor.search-sponsored  .searchAd .searchAdTop +.searchAds  .searchad +.searchads.secondary-ad-widget.secondary-advertisment .secondary_ad .section-ad.section-ad-unit.section-ad-wrapper .section-ad2 .section-ads.section-adtag .section-adv.section-advertisement.section-sponsor.section-widget-ad .section_ad.section_ad_left .section_ads .seoAdWrapper.servedAdlabel +.serviceAd .sexunder_ads +.sf_ad_box .sg-adblock .sgAd.sh-section-ad.shadvertisment.sheknows-infuse-ad  .shift-ad.shortadvertisement .show-desk-ad.show-sticky-ad .showAdÈ .showAdContainer .showads .showcaseAd .showcasead.shr-ads-container +.sidbaread .side-ad .side-ad-300.side-ad-blocks.side-ad-container.side-ad-inner .side-ad-top  .side-ads.side-ads-block.side-ads-wide.side-adv-block.side-adv-text .side-advert.side-advertising .side-adverts .side-bar-ad .sideAd .sideAdLeft .sideAdWide +.sideBarAd .sideBlockAd +.sideBoxAd  .side__ad .side__ad-box .side_ad  .side_ad2 .side_ad_top.side_add_wrap  .side_ads .side_adsense  .side_adv.side_col_ad_wrap .sidead +.sideadmid .sideads +.sideads_l .sideadsbox .sideadtable .sideadvert .sideadverts.sidebar-ad-area .sidebar-ad-b.sidebar-ad-box .sidebar-ad-c.sidebar-ad-component.sidebar-ad-cont.sidebar-ad-container.sidebar-ad-div.sidebar-ad-label.sidebar-ad-rect.sidebar-ad-slot.sidebar-ad-top.sidebar-ad-wrapper.sidebar-adbox .sidebar-ads.sidebar-ads-block.sidebar-ads-wrap.sidebar-adsdiv.sidebar-adv-container¦ .sidebar-advert.sidebar-advertisement.sidebar-advertisment.sidebar-adverts.sidebar-adverts-header.sidebar-banner-ad.sidebar-below-ad-unit.sidebar-big-ad.sidebar-big-box-ad.sidebar-bottom-ad.sidebar-box-ad.sidebar-box-ads.sidebar-content-ad.sidebar-header-ads.sidebar-skyscraper-ad.sidebar-sponsored.sidebar-sponsors.sidebar-square-ad.sidebar-sticky--ad.sidebar-text-ad.sidebar-top-ad.sidebar-tower-ad +.sidebarAD +.sidebarAd.sidebarAdvert .sidebar__ad .sidebar_ad.sidebar_ad_300.sidebar_ad_300_250.sidebar_ad_container.sidebar_ad_holder.sidebar_ad_leaderboard.sidebar_ad_module .sidebar_ads.sidebar_ads_left.sidebar_ads_right.sidebar_ads_title.sidebar_adsense.sidebar_advert.sidebar_advertising.sidebar_box_ad.sidebar_right_ad.sidebar_skyscraper_ad.sidebar_sponsors +.sidebarad.sidebarad_bottom .sidebaradbox.sidebaradcontent .sidebarads.sidebaradsense.sidebarbox__advertising .sidebarboxad .sidebox-ad .sidebox_ad.sideright_ads +.sideskyad .signad.simple-ad-placeholder.simple_ads_manager_widget.simple_adsense_widget.simplead-container.simpleads-item +.single-ad.single-ad-anchor½ .single-ad-wrap .single-ads.single-ads-section.single-bottom-ads .single-mpu.single-post-ad.single-post-ads.single-post-bottom-ads.single-top-ad  .singleAd .singleAdBox.singleAdsContainer .singlePostAd +.single_ad.single_ad_300x250.single_advert.single_bottom_ad.single_top_ad  .singlead +.singleads.singleadstopcstm2.singlepageleftad .singlepostad.singlepostadsense .singpagead .sister-ads.site-ad-block  .site-ads.site-bottom-ad-slot.site-head-ads.site-header-ad.site-header__ads .site-top-ad .siteWideAd .site_ad.site_ad--gray.site_ad--label  .site_ads.site_sponsers .sitesponsor .skinAd .sky-ad .sky-ad1 +.skyAd .skyAdd +.skyAdvert .skyAdvert2 .sky_ad .sky_ad_top +.skyad.skyscraper-ad.skyscraper-ad-1.skyscraper-ad-container.skyscraper.ad .skyscraperAd.skyscraper_ad.skyscrapper-ads-container  .slate-ad  .slide-ad .slideAd  .slide_ad .slidead .slider-ads.slider-item-ad½ &".slider-right-advertisement-banner  .sliderad .slideshow-ad.slideshow-ad-container.slideshow-ad-wrapper.slideshow-ads .slideshowAd.slideshowadvert +.sm-ad.sm-admgnr-unit .sm-ads.sm-advertisement.sm-widget-ad-holder +.sm_ad  .small-ad.small-ad-header.small-ad-long +.small-ads .smallAd.smallAdContainer  .smallAds.smallAdvertisments  .small_ad .small_ad_bg +.small_ads .smallad .smalladblock  .smallads.smalladscontainer.smallsponsorad  .smart-ad .smartAd .smartad.smn-new-gpt-ad .snhb-ads-en .snippet-ad.snoadrotatewidgetwrap.speakol-widget .spinAdvert.splashy-ad-container +.spon_link +.sponadbox .sponlinkbox .spons-link .spons-wrap  .sponsBox .sponsLinks +.sponsWrap  .sponsbox .sponser-link .sponserLink +.sponslink .sponsor-ads .sponsor-area.sponsor-block.sponsor-bottom .sponsor-box .sponsor-btns.sponsor-inner .sponsor-left .sponsor-link.sponsor-links.sponsor-popup .sponsor-postÄ +.sponsor-right .sponsor-spot .sponsor-text.sponsor-text-container .sponsor-wrap +.sponsorAd .sponsorArea .sponsorBlock.sponsorBottom .sponsorBox.sponsorFooter.sponsorFooter-container .sponsorLabel .sponsorLink .sponsorLinks .sponsorPanel .sponsorPost.sponsorPostWrap .sponsorStrip .sponsorText .sponsorTitle .sponsorTxt .sponsor_ad .sponsor_ad1 .sponsor_ad2.sponsor_ad_area.sponsor_ad_section .sponsor_area .sponsor_bar.sponsor_block.sponsor_columns .sponsor_div.sponsor_footer.sponsor_image.sponsor_label .sponsor_line.sponsor_links .sponsor_logo.sponsor_placement.sponsor_popup .sponsor_post.sponsor_units +.sponsorad.sponsoradlabel .sponsorads.sponsoradtitle .sponsored-ad.sponsored-ad-container.sponsored-ad-label.sponsored-add.sponsored-ads.sponsored-article.sponsored-article-item.sponsored-article-widget.sponsored-block.sponsored-buttons.sponsored-container.sponsored-container-bottom.sponsored-default.sponsored-display-ad.sponsored-header.sponsored-link.sponsored-links.sponsored-postó +.sponsored-post-container.sponsored-result.sponsored-results.sponsored-right.sponsored-slot.sponsored-tag.sponsored-text.sponsored-top.sponsored-widget .sponsoredAd .sponsoredAds.sponsoredBanners .sponsoredBar.sponsoredBottom .sponsoredBox.sponsoredContent.sponsoredEntry.sponsoredFeature.sponsoredInfo.sponsoredInner.sponsoredItem.sponsoredLabel.sponsoredLeft.sponsoredLink.sponsoredLinks.sponsoredLinks2.sponsoredLinksBox.sponsoredListing.sponsoredProduct.sponsoredResults.sponsoredSearch .sponsoredTop .sponsored_ad.sponsored_ads.sponsored_bar_text.sponsored_box .sponsored_by.sponsored_link.sponsored_links.sponsored_links2.sponsored_links_box.sponsored_links_container.sponsored_links_section.sponsored_post.sponsored_result.sponsored_results.sponsored_sidepanel .sponsored_ss.sponsored_text.sponsored_title.sponsored_well .sponsoredby.sponsoredlink.sponsoredlinks.sponsoredresults.sponsorheader.sponsoringbanner .sponsorlink .sponsorlink2 .sponsormsg.sponsors-advertisment .sponsors-box.sponsors-footer.sponsors-moduleˆ +.sponsors-widget.sponsorsBanners.sponsors_box_container.sponsors_links.sponsors_spacer.sponsorsbanner .sponsorsbig.sponsorship-banner-bottom.sponsorship-box.sponsorship-chrome.sponsorship-container.sponsorship-leaderboard.sponsorshipContainer.sponsorship_ad.sponsorshipbox.sponsorwrapper .sponstitle  .sponstop .spot-ad .spotlight-ad .spotlightAd.spt-footer-ad +.sq_ad.sqrd-ad-manager +.square-ad .square-ad-1.square-ad-container.square-ad-pane .square-ads .square-advt.square-adwrap.square-sidebar-ad.square-sponsorship  .squareAd .squareAdWrap +.squareAdd .squareAddtwo +.squareAds +.square_ad  .squaread.squaread-container .squareadMain +.squareads .squared_ad.squirrel_widget .sr-adsense +.sr-advert +.sraAdvert.srp-sidebar-ads .ssp-advert .standalonead.standard-ad-container.standard_ad_slot +.static-ad  .staticAd.static_mpu_wrap  .staticad +.sterra-ad.stick-ad-container .stickad +.sticky-ad.sticky-ad-bottom.sticky-ad-container.sticky-ad-footer± +.sticky-ad-header.sticky-ad-wrapper .sticky-ads.sticky-ads-container.sticky-ads-content.sticky-adsense.sticky-advert-widget.sticky-bottom-ad.sticky-footer-ad.sticky-footer-ad-container.sticky-navbar-ad-container.sticky-rail-ad-container.sticky-side-ad.sticky-sidebar-ad.sticky-top-ad-wrap  .stickyAd.stickyAdWrapper.stickyAdsGroup.stickyContainerMpu .stickyRailAd.sticky_ad_sidebar.sticky_ad_wrapper .sticky_ads  .stickyad +.stickyads +.stickyadv.stky-ad-footer.stm-ad-player.stmAdHeightWidget  .stock_ad.stocks-ad-tag +.store-ads  .story-ad.story-ad-container.story-ad-right.story-inline-advert .storyAd .storyAdvert.story__top__ad .story_ad_div.story_body_advert .storyad .storyad300.storyadHolderAfterLoad +.stpro_ads .str-top-ad .strack_bnr .strack_cli.strawberry-ads%!.strawberry-ads__pretty-container +.stream-ad  .streamAd  .strip-ad .stripad .sub-ad.subAdBannerArea.subAdBannerHeader  .subNavAd +.subad.subheader_adsense .submenu_ad.subnav-ad-layout.subnav-ad-wrapper .subscribeAdú.subscriber-ad.subscribox-ad +.sudoku-ad .sugarad .suggAd  .super-ad.superbanner-adcontent .support_ad +.tabAd .tabAds .tab_ad .tab_ad_area  .table-ad  .tableAd1 +.tablet-ad .tadm_ad_unit .takeover-ad .tallAdvert .tallad  .tappx-ad .tbboxad .tc-adbanner +.tc_ad .tc_ad_unit .tcf-ad .td-a-ad  .td-a-rec +.td-ad .td-ad-m .td-ad-p  .td-ad-tp.td-adspot-title.td-sponsor-title .tdAdHeader +.td_ad.td_footer_ads.td_left_widget_ad .td_leftads.td_reklama_bottom.td_reklama_top.td_spotlight_ads.teaser--advertorial +.teaser-ad.teaser-advertisement.teaser-sponsor  .teaserAd.teaserAdContainer.teaserAdHeadline +.teaser_ad.templates_ad_placement .test-adsense.testAd-holder.text-ad-sitewide .text-ad-top.text-advertisement.text-panel-ad .text-sponsor .textAd3 .textAdBlock +.textAdBox .textAds .textLinkAd .textSponsor.text_ad_title˜ .text_ad_website .text_ads_2.text_ads_wrapper  .text_adv .textad.textadContainer +.textadbox .textadlink.textadscontainer +.textadsds .textadsfoot .textadtext .textlinkads +.th-ad.thb_ad_before_header.thb_ad_header +.theAdvert .theads +.theleftad .themonic-ad1 .themonic-ad2 .themonic-ad3 .themonic-ad6.third-party-ad.thread-ad-align +.thumb-ads  .thumb_ad .thumbnailad .thumbs-adv.thumbs-adv-holder  .tile--ad .tile-ad.tile-ad-container .tile-advert.tileAdContainer .tileAdWrap .tileAds.tile_AdBanner .tile_ad.tile_ad_container.tips_advertisement  .title-ad.tl-ad-container .tmiads .tmo-ad .tmo-ad-ezoic  .tncls_ad .tncls_ad_250 .tncls_ad_300 .tnt-ads.tnt-ads-container.tnt-dmp-reactive .tnw-ad .toaster-ad.toolkit-ad-shell .top-300-ad .top-ad .top-ad-728.top-ad-970x90.top-ad-anchor .top-ad-area.top-ad-banner-wrapper .top-ad-bloc .top-ad-block· +.top-ad-center.top-ad-container.top-ad-content .top-ad-deck.top-ad-desktop .top-ad-div.top-ad-horizontal.top-ad-inside.top-ad-module.top-ad-recirc .top-ad-right.top-ad-sidebar .top-ad-slot .top-ad-space.top-ad-sticky .top-ad-unit .top-ad-wrap.top-ad-wrapper .top-ad-zone .top-ad1.top-ad__sticky-wrapper +.top-adbox .top-ads .top-ads-amp.top-ads-block.top-ads-bottom-bar.top-ads-container.top-ads-mobile.top-ads-wrapper .top-adsense.top-adsense-banner .top-adspace .top-adv.top-adv-container .top-adverbox .top-advert.top-advertisement.top-banner-468.top-banner-ad.top-banner-ad-container.top-banner-ad-wrapper.top-banner-add.top-banner-ads.top-banner-advert.top-bar-ad-related.top-box-right-ad.top-content-adplace.top-dfp-wrapper .top-fixed-ad.top-half-page-ad.top-header-ad.top-header-ad1 .top-horiz-ad.top-horizontal-ad .top-item-ad.top-leaderboard-ad .top-left-ad .top-menu-ads .top-post-ad .top-post-ads .top-right-ad.top-side-advertisement.top-sidebar-ad.top-sidebar-adboxÿ .top-site-ad.top-sponsored-header .top-story-ad.top-topics__ad.top-wide-ad-container .top.ad  .top250Ad  .top300ad +.topAD +.topAd .topAd728x90 .topAdBanner  .topAdBar .topAdBlock .topAdCenter.topAdContainer .topAdIn +.topAdLeft .topAdRight .topAdSpacer +.topAdWrap .topAdWrapper .topAdd .topAds.topAdsWrappper +.topAdvBox +.topAdvert.topAdvertisement.topAdvertistemt .topAdverts .topAlertAds  .topArtAd.topArticleAds .topBannerAd  .topBarAd.topBoxAdvertisement.topLeaderboardAd .topRightAd .top_Ad .top__ad .top_ad .top_ad1 .top_ad_728.top_ad_728_90.top_ad_banner .top_ad_big.top_ad_disclaimer .top_ad_div.top_ad_holder .top_ad_inner .top_ad_label .top_ad_list .top_ad_long .top_ad_post.top_ad_responsive.top_ad_seperate .top_ad_short .top_ad_wrap.top_ad_wrapper .top_adbox1 .top_adbox2 .top_adh .top_ads.top_ads_containerš  .top_adsense .top_adspace .top_adv.top_adv_content .top_advert.top_advertisement.top_advertising_lb.top_advertizing_cnt .top_bar_ad .top_big_ads.top_container_ad.top_corner_ad .top_head_ads.top_header_ad.top_header_ad_inner .top_right_ad .top_rightad .top_side_adv .top_sponsor .topad-area +.topad-bar  .topad-bg .topad1 .topad2  .topadbar .topadblock  .topadbox +.topadcont  .topadrow .topads.topads-spacer  .topadsbx .topadsection .topadspace +.topadspot +.topadtara  .topadtxt +.topadvert .topbannerAd.topbar-ad-parent.topbar-ad-unit .topboardads .topright_ad .topside_ad .topsidebarad .tout-ad.tout-ad-embed  .tower-ad .tower-ad-abs .tower-ad-b.tower-ad-wrapper.tower-ads-container .towerAd .towerAdLeft  .towerAds  .tower_ad.tower_ad_desktop.tower_ad_disclaimer .towerad .tp-ad-label .tp_ads.tpd-banner-ad-container.tpd-banner-desktop .tpd-box-ad-d„ +.trc-content-sponsored.trc-content-sponsoredUB.trend-card-advert.trend-card-advert__title .tsm-ad .tt_ads .ttb_adv_bg .tw-adv-gpt .txt_ads .txtad_area  .txtadbox .txtadvertise .type-ad +.u-ads.u-lazy-ad-wrapper .udn-ads .ue-c-ad.ult_vp_videoPlayerAD.under-header-ad.under-player-ad.under-player-ads +.under_ads.underplayer__ad  .uniAdBox .unionAd .unit-ad .upper-ad-box.upper-ad-space  .upper_ad.upx-ad-placeholder +.us_ad .vadvert .variable-ad.variableHeightAd.vce-ad-below-header.vce-ad-container.vce-header-ads.vce_adsense_expand.vce_adsense_widget.vce_adsense_wrapper .vdvwad .vert-ad  .vert-ads .vertad .vertical-ad .vertical-ads.vertical-adsense.vertical-trending-ads .verticalAd.verticalAdText .vertical_ad .vertical_ads .verticalad.vf-ad-comments .vf-conversation-starter__ad.vf-promo-gtag.vf-promo-wrapper".vf3-conversations-list__promo .vi-sticky-ad.video-ad-bottom.video-ad-container.video-ad-content +.video-ads.video-ads-container³ +.video-ads-grid.video-ads-wrapper +.video-adv .video-advert.video-archive-ad .video-boxad.video-inline-ads.video-page__adv.video-right-ad.video-right-ads.video-side__adv_title.videoAd-wrapper .videoAd300 .videoBoxAd.videoOverAd300.videoOverAdSmall .videoPauseAd .videoSideAds  .video_ad +.video_ads .videoad .videoad-base  .videoad2 +.videos-ad.videos-ad-wrap.view-Advertisment .view-ad  .view-ads.view-advertisement.view-advertisements.view-advertorials .view-adverts.view-article-inner-ads.view-homepage-center-ads.view-id-Advertisment .view-id-ads.view-id-advertisement.view-image-ads.view-site-ads .view_ad.views-field-field-ad +.visibleAd.vjs-ad-iframe.vjs-ad-overlay.vjs-ima3-ad-container.vjs-marker-ad.vjs-overlay.size-300x250 .vl-ad-item.vl-advertisment.vl-header-ads .vlog-ad.vm-ad-horizontal.vmag_medium_ad.vodl-ad__bigsizebanner +.vpnad.vs-advert-300x250 .vsw-ads.vswAdContainer.vuukle-ad-block .vuukle-ads.vw-header__ads  .w-ad-box.w-adsninja-video-player.w-content--adÉ  .wAdvert .w_AdExternal .w_ad .waf-ad +.wahAd .wahAdRight.waldo-display-unit.waldo-placeholder.waldo-placeholder-bottom.wall-ads-control.wall-ads-left.wall-ads-right .wallAd .wall_ad .wcAd.wcfAdLocation +.weatherad .web_ads.webpart-wrap-advert.website-ad-space .well-ad +.werbungAd .wfb-ad .wg-ad-square +.wh-advert +.wh_ad .wh_ad_inner.when-show-ads .wide-ad.wide-ad-container.wide-ad-new-layout.wide-ad-outer.wide-ads-container .wide-advert.wide-footer-ad.wide-header-ad.wide-skyscraper-ad .wideAd .wideAdTable .widePageAd .wide_ad.wide_adBox_footer .wide_ad_unit.wide_ad_unit_top  .wide_ads.wide_google_ads.wide_grey_ad_box.wide_sponsors .widead +.wideadbox .widget--ad.widget--ajdg_bnnrwidgets.widget--local-ads.widget-300x250ad +.widget-ad.widget-ad-codes.widget-ad-image.widget-ad-script.widget-ad-sky.widget-ad-zone.widget-ad300x250.widget-adcode .widget-ads.widget-adsense�  .widget-adv.widget-advads-ad-widget.widget-advert-970.widget-advertisement .widget-dfp.widget-sponsor.widget-sponsor--container.widget-text-ad  .widgetAD +.widgetAds.widgetSponsors!.widget_300x250_advertisement +.widget_ad.widget_ad-widget .widget_ad125 .widget_ad300.widget_ad_300.widget_ad_boxes_widget.widget_ad_layers_ad_widget.widget_ad_rotator.widget_ad_widget.widget_adace_ads_widget.widget_admanagerwidget.widget_adrotate_widgets .widget_ads.widget_ads_entries.widget_ads_widget.widget_adsblock.widget_adsensem.widget_adsensewidget.widget_adsingle$ .widget_adswidget1-quick-adsense$ .widget_adswidget2-quick-adsense$ .widget_adswidget3-quick-adsense.widget_adv_location.widget_adv_text.widget_advads_ad_widget.widget_advert.widget_advert_content.widget_advert_widget.widget_advertisement.widget_advertisements.widget_advertisment.widget_advwidget.widget_alaya_ad .widget_arvins_ad_randomizer*&.widget_awaken_pro_medium_rectangle_ad.widget_better-ads.widget_com_ad_widget.widget_core_ads_desk.widget_cpxadvert_widgets.widget_customad_widget.widget_customadvertising .widget_dfp.widget_doubleclick_widget!.widget_ep_rotating_ad_widget.widget_epcl_ads_fluid .widget_evolve_ad_gpt_widget".widget_html_snippet_ad_widget.widget_ima_ads.widget_ione-dart-ad.widget_ipm_sidebar_ad.widget_island_ad.widget_joblo_complex_ad† .widget_long_ads_widget.widget_njads_single_widget.widget_openxwpwidget.widget_plugrush_widget.widget_pmc-ads-widget.widget_quads_ads_widget.widget_rdc_ad_widget.widget_sej_sidebar_ad/+.widget_sidebar_adrotate_tedo_single_widget.widget_sidebaradwidget.widget_singlead.widget_sponsored_content.widget_supermag_ad.widget_supernews_ad.widget_text_adsense .widget_themoneytizer_widget .widget_thesun_dfp_ad_widget.widget_tt_ads_widget.widget_viral_advertisement.widget_wp-bannerize-widget.widget_wp_ads_gpt_widget.widget_wp_insert_ad_widget.widget_wpex_advertisement.widget_wpstealthads_widget +.widgetads.width-ad-slug  .wikia-ad .wio-xbanner .worldplus-ad.wp-ads-target.wp-block-ad-slot.wp-block-gamurs-ad.wp-block-tpd-block-tpd-ads .wp125ad +.wp125ad_2 .wp_bannerize.wp_bannerize_banner_box.wp_bannerize_container.wpadcenter-ad-container  .wpadvert.wpd-advertisement.wpex-ads-widget +.wppaszone .wpvqgr-a-d-s.wpx-bannerize.wpx_bannerize.wpx_bannerize_banner_box .wrap-ad  .wrap-ads .wrap_boxad .wrapad .wrapper-ad.wrapper-header-ad-slot .wrapper_ad.wrapper_advertisement +.wrapperad .wt-cli-cookie-bar-container.ww_ads_banner_wrapper +.xeiro-ads +.xmlad.xpot-horizontal +.y-ads .y-ads-wide +.yaAdsÓ .yad-sponsored .yahooAd  .yahooAds  .yahoo_ad +.yahoo_ads .yahooad  .yahooads.yan-sponsored .ympb_target .zeus-ad.zeusAdWrapper.zeusAd__container.zmgad-full-width.zmgad-right-rail.zone-advertisement .zoneAds.zox-post-ad-wrap.zox-post-bot-ad.zox-widget-side-ad.zox_ad_widget.zox_adv_widget AD-SLOT +DFP-ADlass^="adDisplay-module"][class^="amp-ad-"][class^="div-gpt-ad"] [data-ad-cls][data-ad-manager-id][data-ad-module][data-ad-name][data-ad-width][data-adblockkey][data-adbridg-ad-class] [data-adshim][data-advadstrackid][data-asg-ins][data-block-type="ad"][data-cl-spot-id]$ [data-css-class="dfp-inarticle"][data-d-ad-id][data-desktop-ad-id][data-dynamic-ads][data-ez-name][data-freestar-ad][id][data-id^="div-gpt-ad"]![data-identity="adhesive-ad"][data-m-ad-id][data-mobile-ad-id]'#[data-name="adaptiveConstructorAd"][data-rc-widget][data-revive-zoneid]![data-role="tile-ads-module"]#[data-template-type="nativead"]$ [data-testid="adBanner-wrapper"][data-testid="ad_testID"]$ [data-testid="prism-ad-wrapper"]+'[data-testid^="section-AdRowBillboard"][data-type="ad-vertical"][data-wpas-zoneid][href$="/sexdating.php"][href="//sexcams.plus/"],([href="https://jdrucker.com/gold"] > img0,[href="https://ourgoldguy.com/contact/"] img*&[href^="http://clicks.totemcash.com/"]Ú($[href^="http://mypillow.com/"] > img,([href^="http://www.mypillow.com/"] > img)%[href^="https://aads.com/campaigns/"]%![href^="https://ad.admitad.com/"].*[href^="https://ad1.adfarm1.adition.com/"]40[href^="https://affiliate.fastcomet.com/"] > img62[href^="https://antiagingbed.com/discount/"] > img40[href^="https://ap.octopuspop.com/click/"] > img"[href^="https://awbbjmp.com/"]+'[href^="https://charmingdatings.life/"]1-[href^="https://clicks.affstrack.com/"] > img,([href^="https://cpa.10kfreesilver.com/"]#[href^="https://glersakr.com/"]"[href^="https://go.xlrdr.com"]2.[href^="https://ilovemyfreedoms.com/landing-"]#[href^="https://istlnkcl.com/"],([href^="https://join.girlsoutwest.com/"]1-[href^="https://join.playboyplus.com/track/"].*[href^="https://join3.bannedsextapes.com"].*[href^="https://mylead.global/stl/"] > img0,[href^="https://mypatriotsupply.com/"] > img)%[href^="https://mypillow.com/"] > img($[href^="https://mystore.com/"] > img*&[href^="https://noqreport.com/"] > img/+[href^="https://optimizedelite.com/"] > img95[href^="https://rapidgator.net/article/premium/ref/"]=9[href^="https://shiftnetwork.infusionsoft.com/go/"] > img'#[href^="https://track.aftrk1.com/"]3/[href^="https://track.fiverr.com/visit/"] > img40[href^="https://turtlebids.irauctions.com/"] img+'[href^="https://url.totaladblock.com/"]%![href^="https://wct.link/click?"]3/[href^="https://wwp.hoqodd.com/redirect-zone/"]51[href^="https://www.avantlink.com/click.php"] img:6[href^="https://www.brighteonstore.com/products/"] img.*[href^="https://www.cloudways.com/en/?id"]/+[href^="https://www.herbanomic.com/"] > img*&[href^="https://www.hostg.xyz/"] > img40[href^="https://www.mypatriotsupply.com/"] > img-)[href^="https://www.mypillow.com/"] > img0,[href^="https://www.profitablegatecpm.com/"]&"[href^="https://www.restoro.com/"]/+[href^="https://www.targetingpartner.com/"]*&[href^="https://zone.gotrackier.com/"])%[href^="https://zstacklife.com/"] img[id^="ad-wrap-"][id^="ad_sky"][id^="ad_slider"][id^="div-gpt-ad"][id^="section-ad-banner"]ame^="google_ads_iframe"];7[onclick^="location.href='https://1337x.vpnonly.site/"]a-ad0,a[data-href^="http://ads.trafficjunky.net/"]+'a[data-url^="https://vulpix.bet/?ref="] a[href*=".adsrv.eacdn.com/"]#a[href*=".engine.adglare.net/"]a[href*=".foxqck.com/"]a[href*=".g2afse.com/"]a[href*="//daichoho.com/"]+'a[href*="//jjgirls.com/sex/Chaturbate"] a[href*="/jump/next.php?r="]0,a[href^=" https://www.friendlyduck.com/AF_"]"a[href^="//ejitsirdosha.net/"]üa[href^="//go.eabids.com/"]a[href^="//s.zlinkd.com/"]*&a[href^="//startgaming.net/tienda/" i] a[href^="//stighoazon.com/"]/+a[href^="http://adultfriendfinder.com/go/"]1-a[href^="http://annulmentequitycereals.com/"]#a[href^="http://avthelkp.net/"]*&a[href^="http://bongacams.com/track?"]1-a[href^="http://cam4com.go2cloud.org/aff_c?"]40a[href^="http://coefficienttolerategravel.com/"] a[href^="http://com-1.pro/"]%!a[href^="http://eslp34af.click/"]1-a[href^="http://handgripvegetationhols.com/"].*a[href^="http://li.blogtrottr.com/click?"]'#a[href^="http://muzzlematrix.com/"])%a[href^="http://partners.etoro.com/"]40a[href^="http://premonitioninventdisagree.com/"]/+a[href^="http://revolvemockerycopper.com/"]($a[href^="http://roadcontagion.com/"])%a[href^="http://sarcasmadvisor.com/"])%a[href^="http://stickingrepute.com/"]0,a[href^="http://tc.tradetracker.net/"] > img($a[href^="http://trk.globwo.online/"]2.a[href^="http://troopsassistedstupidity.com/"]%!a[href^="http://vnte9urn.click/"]PLa[href^="http://www.adultempire.com/unlimited/promo?"][href*="&partner_id="].*a[href^="http://www.friendlyduck.com/AF_"]%!a[href^="http://www.h4trck.com/"]$ a[href^="http://www.iyalc.com/"]&"a[href^="https://123-stream.org/"]($a[href^="https://1betandgonow.com/"]"a[href^="https://1winpb.com/"]%!a[href^="https://6-partner.com/"] a[href^="https://81ac.xyz/"]!a[href^="https://a-ads.com/"]#a[href^="https://a.adtng.com/"]-)a[href^="https://a.bestcontentfood.top/"]2.a[href^="https://a.bestcontentoperation.top/"],(a[href^="https://a.bestcontentweb.top/"]&"a[href^="https://a.candyai.love/"])%a[href^="https://a.medfoodhome.com/"]+'a[href^="https://a.medfoodsafety.com/"]%!a[href^="https://a2.adform.net/"]0,a[href^="https://ab.advertiserurl.com/aff/"])%a[href^="https://activate-game.com/"]*&a[href^="https://ad.doubleclick.net/"].*a[href^="https://ad.zanox.com/ppc/"] > img1-a[href^="https://adclick.g.doubleclick.net/"]51a[href^="https://ads.betfair.com/redirect.aspx?"]($a[href^="https://ads.leovegas.com/"]51a[href^="https://ads.planetwin365affiliate.com/"]0,a[href^="https://adultfriendfinder.com/go/"]%!a[href^="https://aj1070.online/"]'#a[href^="https://ak.hauchiwu.com/"]'#a[href^="https://ak.oalsauwy.net/"]'#a[href^="https://ak.psaltauw.net/"].*a[href^="https://ak.stikroltiltoowi.net/"],(a[href^="https://allhost.shop/aff.php?"]$ a[href^="https://ausoafab.net/"]$ a[href^="https://aweptjmp.com/"]#a[href^="https://awptjmp.com/"]'#a[href^="https://baipahanoop.net/"]0,a[href^="https://banners.livepartners.com/"]a[href^="https://bc.game/"]Á($a[href^="https://believessway.com/"]0,a[href^="https://best-experience-cool.com/"]&"a[href^="https://black77854.com/"]"a[href^="https://bngprm.com/"]!a[href^="https://bngpt.com/"]#a[href^="https://bodelen.com/"]-)a[href^="https://bongacams10.com/track?"],(a[href^="https://bongacams2.com/track?"],(a[href^="https://cam4com.go2cloud.org/"]1-a[href^="https://camfapr.com/landing/click/"]*&a[href^="https://chaturbate.com/in/?"]-)a[href^="https://claring-loccelkin.com/"]-)a[href^="https://click.candyoffers.com/"]*&a[href^="https://click.dtiserv2.com/"]+'a[href^="https://click.ggpickaff.com/"],(a[href^="https://click.ggpickyaff.com/"]($a[href^="https://click.hoolig.app/"]:6a[href^="https://click.linksynergy.com/fs-bin/"] > img'#a[href^="https://clickadilla.com/"]*&a[href^="https://clickins.slixa.com/"]0,a[href^="https://clicks.pipaffiliates.com/"]$ a[href^="https://clixtrac.com/"]$ a[href^="https://combodef.com/"]"a[href^="https://ctjdwm.com/"]"a[href^="https://ctosrd.com/"]"a[href^="https://ctrdwm.com/"]($a[href^="https://datewhisper.life/"]84a[href^="https://disobediencecalculatormaiden.com/"]&"a[href^="https://dl-protect.net/"])%a[href^="https://drumskilxoa.click/"]$ a[href^="https://eergortu.net/"]62a[href^="https://engine.blueistheneworanges.com/"],(a[href^="https://engine.flixtrial.com/"]1-a[href^="https://engine.phn.doublepimp.com/"]($a[href^="https://explore-site.com/"]!a[href^="https://fc.lc/ref/"]-)a[href^="https://financeads.net/tc.php?"]-)a[href^="https://gamingadlt.com/?offer="]$ a[href^="https://get-link.xyz/"]-)a[href^="https://getmatchedlocally.com/"]#a[href^="https://gml-grp.com/"]$ a[href^="https://go.admjmp.com"]$ a[href^="https://go.bbrdbr.com"]'#a[href^="https://go.bushheel.com/"],(a[href^="https://go.cmtaffiliates.com/"]$ a[href^="https://go.dmzjmp.com"]*&a[href^="https://go.etoro.com/"] > img&"a[href^="https://go.goaserv.com/"]($a[href^="https://go.grinsbest.com/"]$ a[href^="https://go.hpyjmp.com"]%!a[href^="https://go.hpyrdr.com/"]1-a[href^="https://go.markets.com/visit/?bta="]%!a[href^="https://go.mnaspm.com/"]&"a[href^="https://go.rmhfrtnd.com"]'#a[href^="https://go.rmhfrtnd.com/"]%!a[href^="https://go.rmishe.com/"]=9a[href^="https://go.skinstrip.net"][href*="?campaignId="]&"a[href^="https://go.strpjmp.com/"]$ a[href^="https://go.tmrjmp.com"]/+a[href^="https://go.trackitalltheway.com/"]$ a[href^="https://go.xlirdr.com"]%!a[href^="https://go.xlivrdr.com"]'#a[href^="https://go.xlviiirdr.com"]&"a[href^="https://go.xlviirdr.com"]©%!a[href^="https://go.xlvirdr.com"],(a[href^="https://go.xtbaffiliates.com/"]&"a[href^="https://go.xxxiijmp.com"]%!a[href^="https://go.xxxijmp.com"]$ a[href^="https://go.xxxjmp.com"]&"a[href^="https://go.xxxvjmp.com/"]$ a[href^="https://golinks.work/"]+'a[href^="https://helmethomicidal.com/"]+'a[href^="https://hot-growngames.life/"]+'a[href^="https://identicaldrench.com/"]&"a[href^="https://in.rabbtrk.com/"]3/a[href^="https://iqbroker.com/"][href*="?aff="]"a[href^="https://ismlks.com/"]'#a[href^="https://italarizege.xyz/"]$ a[href^="https://jaxofuna.com/"].*a[href^="https://join.dreamsexworld.com/"]1-a[href^="https://join.sexworld3d.com/track/"].*a[href^="https://join.virtuallust3d.com/"]3/a[href^="https://join.virtualtaboo.com/track/"]#a[href^="https://juicyads.in/"]$ a[href^="https://kiksajex.com/"]'#a[href^="https://l.hyenadata.com/"]3/a[href^="https://landing.brazzersnetwork.com/"] a[href^="https://lead1.pl/"]$ a[href^="https://lijavaxa.com/"],(a[href^="https://lnkxt.bannerator.com/"]%!a[href^="https://loboclick.com/"]%!a[href^="https://lone-pack.com/"]($a[href^="https://losingoldfry.com/"]'#a[href^="https://m.do.co/c/"] > img+'a[href^="https://maymooth-stopic.com/"]FBa[href^="https://mediaserver.entainpartners.com/renderBanner.do?"]EAa[href^="https://mediaserver.gvcaffiliates.com/renderBanner.do?"]3/a[href^="https://mmwebhandler.aff-online.com/"]%!a[href^="https://myclick-2.com/"]73a[href^="https://natour.naughtyamerica.com/track/"] a[href^="https://ndt5.net/"]'#a[href^="https://offhandpump.com/"]-)a[href^="https://osfultrbriolenai.info/"]$ a[href^="https://pb-front.com/"]"a[href^="https://pb-imc.com/"]$ a[href^="https://pb-track.com/"]73a[href^="https://playnano.online/offerwalls/?ref="]($a[href^="https://porntubemate.com/"]($a[href^="https://postback1win.com/"];7a[href^="https://prf.hn/click/"][href*="/adref:"] > img<8a[href^="https://prf.hn/click/"][href*="/camref:"] > imgA=a[href^="https://prf.hn/click/"][href*="/creativeref:"] > img,(a[href^="https://promerycergerful.com/"]0,a[href^="https://pubads.g.doubleclick.net/"]40a[href^="https://quotationfirearmrevision.com/"]40a[href^="https://random-affiliate.atimaze.com/"]"a[href^="https://rixofa.com/"]%!a[href^="https://s.cant3am.com/"]&"a[href^="https://s.deltraff.com/"]%!a[href^="https://s.eunow4u.com/"]$ a[href^="https://s.ma3ion.com/"]%!a[href^="https://s.optzsrv.com/"]$ a[href^="https://s.zlink3.com/"]$ a[href^="https://s.zlinkd.com/"]$ a[href^="https://s.zlinkn.com/"]-)a[href^="https://serve.awmdelivery.com/"].*a[href^="https://service.bv-aff-trx.com/"]&"a[href^="https://sexynearme.com/"]â"a[href^="https://slkmis.com/"])%a[href^="https://snowdayonline.xyz/"]'#a[href^="https://stardomcoit.com/"]<8a[href^="https://static.fleshlight.com/images/banners/"]3/a[href^="https://streamate.com/landing/click/"]3/a[href^="https://svb-analytics.trackerrr.com/"]40a[href^="https://syndicate.contentsserved.com/"]1-a[href^="https://syndication.dynsrvtbg.com/"]0,a[href^="https://syndication.exoclick.com/"]3/a[href^="https://syndication.optimizesrv.com/"]#a[href^="https://t.acam.link/"]&"a[href^="https://t.adating.link/"]$ a[href^="https://t.ajrkm1.com/"]$ a[href^="https://t.ajrkm3.com/"]$ a[href^="https://t.ajump1.com/"]$ a[href^="https://t.aslnk.link/"]#a[href^="https://t.hrtye.com/"]"a[href^="https://tatrck.com/"]1-a[href^="https://tc.tradetracker.net/"] > img1-a[href^="https://tm-offers.gamingadult.com/"]'#a[href^="https://tour.mrskin.com/"]+'a[href^="https://track.1234sd123.com/"]($a[href^="https://track.adform.net/"]*&a[href^="https://track.afcpatrk.com/"]($a[href^="https://track.aftrk3.com/"])%a[href^="https://track.totalav.com/"]'#a[href^="https://track.wg-aff.com"]0,a[href^="https://tracker.loropartners.com/"]/+a[href^="https://tracking.avapartner.com/"]$ a[href^="https://traffdaq.com/"]3/a[href^="https://trk.nfl-online-streams.club/"])%a[href^="https://trk.softonixs.xyz/"]40a[href^="https://turnstileunavailablesite.com/"]%!a[href^="https://twinrdsrv.com/"]&"a[href^="https://twinrdsyte.com/"]$ a[href^="https://upsups.click/"]%!a[href^="https://vo2.qrlsx.com/"]-)a[href^="https://voluum.prom-xcams.com/"])%a[href^="https://witnessjacket.com/"]-)a[href^="https://wittered-mainging.com/"]($a[href^="https://www.adskeeper.com"]A=a[href^="https://www.adultempire.com/"][href*="?partner_id="]'#a[href^="https://www.adxsrve.com/"])%a[href^="https://www.bang.com/?aff="]:6a[href^="https://www.bet365.com/"][href*="affiliate="]73a[href^="https://www.brazzersnetwork.com/landing/"]3/a[href^="https://www.dating-finder.com/?ai_d="]:6a[href^="https://www.dating-finder.com/signup/?ai_d="]'#a[href^="https://www.dql2clk.com/"]0,a[href^="https://www.effectiveratecpm.com/"]2.a[href^="https://www.endorico.com/Smartlink/"]1-a[href^="https://www.financeads.net/tc.php?"]/+a[href^="https://www.friendlyduck.com/AF_"]62a[href^="https://www.geekbuying.com/dynamic-ads/"]B>a[href^="https://www.googleadservices.com/pagead/aclk?"] > img51a[href^="https://www.highcpmrevenuenetwork.com/"]62a[href^="https://www.highperformancecpmgate.com/"]3/a[href^="https://www.infowarsstore.com/"] > img+'a[href^="https://www.liquidfire.mobi/"].*a[href^="https://www.mrskin.com/account/"]*&a[href^="https://www.mrskin.com/tour"]51a[href^="https://www.nutaku.net/signup/landing/"]2.a[href^="https://www.onlineusershielder.com/"]@ #mgb##kt_player > a[target="_blank"]D@#kt_player > div[style$="display: block;"][style*="inset: 0px;"]#slashboxes > .deals-rail,(.scroll-fixable.rail-right > .deals-rail.click-track.partner&".click-track.shop-window-affiliate'#.index-module_adBeforeContent__UYZT.interstory_first_mobile.interstory_second_mobile #gnt_atomsnc!#gpt-dynamic_native_article_4#gpt-high_impact #gpt-poster.gnt_em_vp__tavp".gnt_em_vp_c[data-g-s="vp_dk"] .gnt_flp .gnt_rr_xpst .gnt_rr_xst.gnt_tb.gnt_tbb.gnt_tbr.gnt_tb +.gnt_x .gnt_x__lbl  .gnt_xmst$ .mntl-block.article__broad-video1-.mntl-jwplayer-broad.article__broad-video--jw0,.mntl-jwplayer-broad.article__broad-video-jw.row-list.banniere¸ .row-list.native#Player_Playoncontent #Player_Playoncontent_footer#aniview--player!#cmg-video-player-placeholder#jwplayer-container-div##jwplayer_contextual_player_div #kargo-player'##mm-player-placeholder-large-screen#mplayer-embed#primis-holder#primis_intext#vidazoo-player.GRVPrimisVideo  .GRVVideo.ac-lre-desktop.ac-lre-player-ph.ac-lre-wrapper.ad-container--hot-video.ae-player__itv.ami-video-wrapper.ampexcoVideoPlayer.aniview-inline-player.anyClipWrapper  .aplvideo.article-connatix-wrap.article-detail-ad.avp-p-wrapper .ck-anyclips.ck-anyclips-article.exco-container.ez-sidebar-wall-ad.ez-video-wrap.htl-inarticle-container.js-widget-distroscale.js-widget-send-to-news .jwPlayer--floatingContainer.legion_primiswrapper.mm-embed--sendtonews.mm-widget--sendtonews.nts-video-wrapper.oovvuu-embed-player$ .playwire-article-leaderboard-ad.pmc-contextual-player.pop-out-eplayer-container.popup-box-ads +.primis-ad.primis-ad-wrap.primis-custom.primis-player.primis-player__container.primis-video-player  .primis_1 .s2nContainer .send-to-news.van_vid_carousel.video--container--aniview.vidible-wrapper.wps-player-wrap[class^="s2nPlayer"].pizza-x.pizza.pizza-y.pizza .BeOpWidget84a[href^="https://billing.purevpn.com/aff.php"] > imgÇB>a[href^="https://fastestvpn.com/lifetime-special-deal?a_aid="]GCa[href^="https://get.surfshark.net/aff_c?"][href*="&aff_id="] > img/+a[href^="https://go.nordvpn.net/aff"] > img1-a[href^="https://torguard.net/aff.php"] > img*&a[href^="https://track.ultravpn.com/"]51a[href^="https://www.get-express-vpn.com/offer/"]MIa[href^="https://www.goldenfrog.com/vyprvpn?offer_id="][href*="&aff_id="];7a[href^="https://www.privateinternetaccess.com/"] > imgA=a[href^="https://www.purevpn.com/"][href*="&utm_source=aff-"])%.grid > .container > #aside-promotion.default_rc_theme.inf-onclickvideo-adbox.inf-onclickvideo-container .add-box-side .add-box-top($.partner-loading-shown.partner-labeldiv[id*="MarketGid"]div[id*="ScriptRoot"] #ezmob_footer.rec-sponsored.rec_article_footer.rec_article_right.rec_container__right.rec_container_footer.rec_container_right.rec_title_footer[onclick*="content.ad/"] .amp-ad.amp-ad-container.amp-ad__wrapper .amp-ads.amp-ads-container.amp-adv-container.amp-adv-wrapper.amp-article-ad-element".amp-flying-carpet-text-border.amp-sticky-ad-custom.amp-sticky-ads.amp-unresolved  .amp_ad_1.amp_ad_header.amp_ad_wrapper +.ampad  .ct_ampad.spotim-amp-list-ad +AMP-AD +amp-ad amp-ad-customamp-connatix-playeramp-fx-flying-carpet#mobile-swipe-banner#banner_pos1_ddb_0#banner_pos2_ddb_0#banner_pos3_ddb_0#banner_pos4_ddb_0#ddb_fluid_native_ddb_0#premium_ddb_0#rightrail_bottom_ddb_0#rightrail_pos1_ddb_0#rightrail_pos2_ddb_0#rightrail_pos3_ddb_0#rightrail_top_ddb_0#story_bottom_ddb_0#story_bottom_ddb_1· #story_top_ddb_0'#.index-module_adBeforeContent__AMXn'#.index-module_rightrailBottom__IJEl$ .index-module_rightrailTop__mag4%!.index-module_sd_background__Um4w$ .premium_PremiumPlacement__2dEp0#ultimedia_wrapper.babel_player_block.brandpost_inarticle.*.container-content__container-relatedlinks#pubexchange_below_content.pubexchange_module#around-the-web #g-outbrain#js-outbrain-ads-module#js-outbrain-module#js-outbrain-relateds  #outbrain #outbrain-id#outbrain-section#outbrain-wrapper +#outbrain1#outbrainAdWrapper#outbrainWidget#outbrain_widget_0.ArticleFooter-outbrain.ArticleOutbrainLocal  .OUTBRAIN  .Outbrain .adv_outbrain.article_OutbrainContent .box-outbrain .c2_outbrain.component-outbrain.js-outbrain-container .mid-outbrain.mntl-outbrain".ob-p.ob-dynamic-rec-container.ob-smartfeed-wrapper.ob-widget-header.outBrainWrapper  .outbrain.outbrain-ad-slot.outbrain-ad-units .outbrain-ads .outbrain-bg.outbrain-bloc.outbrain-content.outbrain-group.outbrain-module.outbrain-placeholder.outbrain-recommended.outbrain-reserved-space.outbrain-single-bottom.outbrain-widget.outbrain-wrap.outbrain-wrapper.outbrain-wrapper-container.outbrain-wrapper-outer.outbrainAdHeight.outbrainWidget.outbrain__main.outbrain_container.outbrain_skyboxž .outbrainad .outbrainbox.promoted-outbrain.responsive-ad-outbrain.sics-component__outbrain.sidebar-outbrain.single__outbrain.voc-ob-wrapper.widget_outbrain.widget_outbrain_widget=9a[data-oburl^="https://paid.outbrain.com/network/redir?"]@ +dmagazine.docomo.ne.jp +dbook.docomo.ne.jp +.ad-button& +livedoorblogstyle.jp +.ad-center + +newegg.com .ad-clickV +job.inshokuten.com +encuentra24.com + flat-ads.com + +backcar.fr .ad-content= +dmagazine.docomo.ne.jp +dbook.docomo.ne.jp .ad-cover! +wallpapers.com .ad-enabled + nolotiro.org.ad-hero  +wallpapers.com +.ad-holder- +transparencyreport.google.com.ad-icon+ + flat-ads.com + lastpass.com.ad-img* + docomo.ne.jp + hicbc.com .ad-label +guloggratis.dk .ad-links& +escortsaffair.com .ad-list-item + so-net.ne.jp +.ad-notice + so-net.ne.jp .ad-outside + letroso.com .ad-padding$ +nicoad.nicovideo.jp .ad-pointø +tapahtumat.siikajokilaakso.fi +tapahtumat.koillissanomat.fi +tapahtumat.pyhajokiseutu.fi +tapahtumat.iijokiseutu.fi +tapahtumat.raahenseutu.fi +tapahtumat.rantalakeus.fi +tapahtumat.lapinkansa.fi +tapahtumat.kaleva.fi .ad-popup + +hulu.com.ad-root& + honor.com +gov.uk .ad-section& +wiki.fextralife.com .ad-sidebar  +wegotads.co.za +.ad-source  + +gqjapan.jp.ad-stickyhero* + +gqjapan.jp.ad-stickyhero--standard. + +gqjapan.jp.ad-stickyhero-enable-mobilex +isewanferry.co.jp +nexco-hoken.co.jp +alliedwindow.com +junkmail.co.za + version2.dk + jreu-h.jp.ad-text# +job.inshokuten.com .ad-title) + videosalon.jp +gov.uk +.ad-widgetP +dailysportscar.com + honor.com).ad-wrap:not(#google_ads_iframe_checktag)d +studentski-servis.com +marginalreport.net +lifeinvader.com +spanishdict.com .ad-wrapper" +xda-developers.com.ad-zone, +xda-developers.com.ad-zone-container + wordparts.ru.ad336 +leffatykki.com .ad728x90 + cw.com.tw .adActive( +thoughtcatalog.com.adChoicesLogo2 +dailymail.co.uk +namesecure.com .adHolder + +ikkaku.net.adImg + hdfcbank.com.adLink + seznam.cz .adMiddle/ +aggeliestanea.gr + +infotel.ca .adResult% + macys.com + news24.jp.adText +burgerking.co.jp.adWrap, + mediafire.com + clien.net +.ad_banner# +interior-hirade.co.jp.ad_bg/ +sozai-good.com + softoxin.com .ad_block +panarmenian.net.ad_bodyC +jabank-tokushima.or.jp + +jtbc.co.kr + joins.com +.ad_bottom +ienohikari.net.ad_btn› +m.nettikaravaani.com +m.nettivaraosa.com +m.nettiauto.com +m.nettikone.com +m.nettimoto.com +m.nettivene.com +nettimokki.com .ad_caption¬ +classy-online.jp + thelocal.at + thelocal.ch + thelocal.de + thelocal.dk + thelocal.es + thelocal.fr + thelocal.it + thelocal.no + thelocal.se .ad_container! +walkingclub.org.uk.ad_div# +admanager.line.biz .ad_frame+ +modelhorseblab.com.ad_global_headerS! +starbuy.sk.data10.websupport.sk +myhouseabroad.com + njuskalo.hr.ad_item  +final-fantasy.cc.ad_left + muzines.co.uk.ad_main( +jabank-tokushima.or.jp +.ad_middle±$ +huffingtonpost.co.uk.ad_spot + kpanews.co.kr.ad_top) +genshinimpactcalculator.com.adban + weatherwx.com .adbutton + boots.com.adcard + mediance.com .adcenter) +biologists.com.adhesion:not(body) +indiatimes.com.adhide2 +kingsinteriors.co.uk + insomnia.gr.adlink + +nejm.org.adplaceholder + +ascii.jp.adrect +epawaweather.com.adrow +gemini.yahoo.com.ads) + moovitapp.com +in.fo .ads-banner  + +bdsmlr.com.ads-container% + happyend.life.ads-core-placer2 +ads.nipr.ac.jp + burzahrane.hr .ads-header + heatware.com +.ads-image +t3.com .ads-inline  +miuithemers.com .ads-left- + hatenacorp.jp + milf300.com .ads-link + +forbes.com .ads-loaded + fireload.com .ads-mobile + fuse-box.info.ads-row + juicesky.com +.ads-title! +mastersclub.jp .ads.widget` +wallpaperaccess.com +wallpapercosmos.com +getwallpapers.com +wallpaperset.com.ads1 +jw.org .adsBlock +cars.mitula.ae.adsList  +oogiri-chaya.com.adsText  + bilinovel.com .ads_ad_box. + bilinovel.com + linovelib.com.ads_box + trustnet.com +.ads_right& +search.conduit.com .ads_wrapper + alluc.org .adsbottombox + +copart.com .adscontainer$ + starbike.com.adsense_wrapper + live365.com.adshome + +javbix.com.adsleft" +cutepdf-editor.com.adtable + gigazine.net.adtag +kmsv.jp.adtitle, +brandexperience-group.com .adv-banner + dobro.systems.adv-box + dobro.systems .adv-list + dobro.systems.advBox + +yuik.net.advads-widget( +bigcommerce.com.advert-container! + labartt.com.advert-detail  +jamesedition.com.advert2 + +rupors.com .advertSlider$ +browsershots.org .advert_list‰ + zalora.com.hk + zalora.com.my + zalora.com.ph + zalora.com.tw + zalora.co.id + zalora.co.th + zalora.sg.advertisement-blockJ + adquick.com + news.com.au + zlinked.com + +buyout.pro .advertiser- + +anobii.com + +ewahlen.eu .advertisment6 + version2.dk + grist.org +ing.dk .advertorial% +stjornartidindi.is .adverttext + videosalon.jp .adwidget + staircase.pl.adwords% +consumerist.com.after-post-ad; +thisismoney.co.uk +dailymail.co.uk.article-advert! +deluxemusic.tv .article_ad + adeam.com .atf-wrapper! +dr.dk.banner-ad-containerÊ + popporn.com .block-ad( +shop.asobistore.jp.block-sponsor + rspro.xyz .body-top-ads + shanjinji.com +.bottom_ad$ + ixbtlabs.com.bottom_ad_block +9l.pl.boxAds! +canonsupports.com.box_ads + +stuff.tv.c-ad$ +thedigestweb.com .c-ad-banner + rspro.xyz.c-adsÞ +dmitrysotnikov.wordpress.com +deployhappiness.com +freedom-shift.net +photopoint.com.ua +posh-samples.com +faravirusi.com +markekaizen.jp + lovepanky.com + netafull.net .category-ad:not(html):not(body)s +iine-tachikawa.net +business-hack.net +clip.m-boso.net + meihong.work!.category-ads:not(html):not(body) + studio55.fi +.column-ad9 +skyrimcommands.com + fontspace.com.container-ads& +verizonwireless.com .contentAds› +freevoipdeal.com +disk.yandex.com +disk.yandex.by +disk.yandex.kz +disk.yandex.ru +disk.yandex.uz + voipstunt.com +yadi.sk .content_adsc +mrmoneymustache.com +thinkcomputers.org +gottabemobile.com +adexchanger.com +.custom-ad + roomclip.jp .display-ad! +anime-japan.jp .display_ad + humix.com.ez-video-wrap% +thestudentroom.co.uk .fixed_ad  +songlyrics.com +.footer-ad- + d-hosyo.co.jp + 634929.jp .footer_ads! +guloggratis.dk .gallery-ad& +davidsilverspares.co.uk.greyAdH +forums.digitalspy.com +marketwatch.com + deep-edge.net.has-ad" +si.com.has-fixed-bottom-ad + naver.com.head_ad/ +infosecurity-magazine.com.header-ad-row + +mobiili.fi +.header_ad + iedrc.org.home-ad% +thelincolnite.co.uk +.inline-ad4 +elektro.info.pl + mashingup.jp .is-sponsored + +gizmodo.jp.l-ad" + vukajlija.com .large-advert% +realgfporn.com.large-right-adN +knowyourmobile.com +ateadirect.com + +nlk.org.np + +atea.com.logo-ad" + insideevs.com .m1-header-ad( +tubefilter.com +doda.jp.mainAdJ +boards.4channel.org +boards.4chan.org +austurfrett.is .middlead- + thespruce.com.mntl-leaderboard-spacer + +sankei.com +.module_ad( + www.msn.com + +seura.fi .nativead$ +platform.liquidus.net.nav_ad + dogva.com.node-ad + kagoya.jp.p-ad" +rottentomatoes.com.page_ad + gumtree.com.postadv +komplettbedrift.no +komplettforetag.se + komplett.dk + komplett.no + komplett.se + +newegg.com .product-ad + +newegg.com .product-ads +ebaumsworld.com.promoAd( +galaopublicidade.com .publicidade1 + jneurosci.org + +eneuro.org.region-ad-top + offmoto.com.reklama" +msn.com.serversidenativead3 +classy-online.jp +audioholics.com.side-ad@ + kissanadu.com + +ekitan.com.sidebar-ad:not(.adsbygoogle)# +independent.com .sidebar-ads- +cadlinecommunity.co.uk.sidebar_advert + proininews.gr +.small-ads + eh-ic.com .small_ad# +hebdenbridge.co.uk .smallads! + geekwire.com .sponsor_post3 +toimitilat.kauppalehti.fi.sponsored-articleš  + zdnet.com.sponsoredItem +kingsofchaos.com.textad + k24tv.co.ke.top-ad +pramborsfm.com.top-ads" + bibliaon.com.top-banner-ad + +cp24.com.topAd% +jabank-tokushima.or.jp.top_ad% +outinthepaddock.com.au.topadsS# +!hassiweb-programming.blogspot.com +codedevstuff.blogspot.com .vertical-ads/ +ads.google.com + youtube.com +.video-ads + javynow.com +.videos-ad7 +elnuevoherald.com + +sacbee.com.wps-player-wrap5 +gumtree.com.au + s.tabelog.com[data-ad-name]& + mebelcheap.ru[data-adblockkey]2 + globsads.com[href^="http://globsads.com/"]8 + mypillow.com$[href^="http://mypillow.com/"] > img< + mypillow.com([href^="http://www.mypillow.com/"] > imgG +mypatriotsupply.com,[href^="https://mypatriotsupply.com/"] > img9 + mypillow.com%[href^="https://mypillow.com/"] > img7 + mystore.com$[href^="https://mystore.com/"] > img; + noqreport.com&[href^="https://noqreport.com/"] > imgI +sinisterdesign.net/[href^="https://secure.bmtmicro.com/servlets/"]A +herbanomic.com+[href^="https://www.herbanomic.com/"] > img: + techradar.com%[href^="https://www.hostg.xyz/aff_c"]K +mypatriotsupply.com0[href^="https://www.mypatriotsupply.com/"] > img= + mypillow.com)[href^="https://www.mypillow.com/"] > img5 + restoro.com"[href^="https://www.restoro.com/"]; +zstacklife.com%[href^="https://zstacklife.com/"] imgÆ +virginaustralia.com +faceyourmanga.com +saitama-np.co.jp +muscatdaily.com +timesofoman.com + +amazon.com + +liverc.com + cancam.jp + +isc2.org +mit.edu +olx.pl[id^="div-gpt-ad"]/ + revimedia.coma[href*=".revimedia.com/"]> +smartadserver.de +dr.dka[href*=".smartadserver.com"]+ +slickdeals.neta[href*="adzerk.net"]@ +sweetdeals.com*a[href*="https://www.sweetdeals.com/"] img= + +legacy.com+a[href^="http://pubads.g.doubleclick.net/"]N +canstar.com.au +mail.yahoo.com&a[href^="https://ad.doubleclick.net/"]6 + badoinkvr.com!a[href^="https://badoinkvr.com/"]< + xbdeals.net)a[href^="https://click.linksynergy.com/"]M +naughtyamerica.com3a[href^="https://natour.naughtyamerica.com/track/"]0 + bookworld.noa[href^="https://ndt5.net/"]R +privateinternetaccess.com1a[href^="https://www.privateinternetaccess.com/"]T +marcpapeghin.comÿï08@R.e-tailwebstores.com/accounts/default1/banners/ +)ÿï08@Rearn-bitcoins.net/banner_ +#ÿï08@Rebayadservices.com^ +ÿï08@R ebayrtm.com^ +&ÿï08@Reclipse-adblocker.pro^ +)ÿï08@Recufiles.com/advertising/ +$ÿï08@Redilportale.com/adv/ +9ÿï08@R)elliottwave.com/fw/regular_leaderboard.js +!ÿï08@Rengine.eroge.com^ +3ÿï08@R#entainpartners.com/renderbanner.do?’ +ÿï08@Repnt.ebay.com^ +%ÿï08@Retrader.kalahari.com^ +%ÿï08@Retrader.kalahari.net^ +0ÿï08@R extensoft.com/artisteer/banners/ +-ÿï08@Rfacebook.com/audiencenetwork/ +1ÿï08@R!familytreedna.com/img/affiliates/ +2ÿï08@R"fancybar.net/ac/fancybar.js?zoneid +%ÿï08@Rfapturbo.com/testoid/ +)ÿï08@Rfc.lc/CustomTheme/img/ref +&ÿï08@Rfeedads.feedblitz.com^ +%ÿï08@Rfileboom.me/images/i/ +/ÿï08@Rfilterforge.com/images/banners/ +%ÿï08@Rfinanceads.net/tb.php +&ÿï08@Rfindcouponspromos.com^ +"ÿï08@Rflirt.com/landing/ +-ÿï08@Rflocdn.com/*/ads-coordinator/ +,ÿï08@Rflowplayer.com/releases/ads/ +$ÿï08@Rfree-btc.org/banner/ +ÿï08@R free.ovl.me^ +.ÿï08@Rfreshbooks.com/images/banners/ ++ÿï08@Rfuturesite.register.com/us? +-ÿï08@Rg.ezoic.net/ezosuigenerisc.js +7ÿï08@R'gadgets360.com/pricee/assets/affiliate/ +.ÿï08@Rgamer-network.net/plugins/dfp/ +&ÿï08@Rgamesports.net/monkey_ +$08@Rgamezop.com/creatives/ +€08@R gamezop.com^ +3ÿï08@R#gamingjobsonline.com/images/banner/ ++ÿï08@Rgeobanner.friendfinder.com^ +'ÿï08@Rget.cryptobrowser.site^ +%ÿï08@Rget.davincisgold.com^ +"ÿï08@Rget.paradise8.com^ +$ÿï08@Rget.thisisvegas.com^ +ÿï08@Rgg.caixin.com^ +'ÿï08@Rgiftandgamecentral.com^ +ÿï08@R glam.com/app/ +ÿï08@R glam.com/gad/ +(ÿï08@Rgo.affiliatesleague.com^ + ÿï08@Rgo.bloxplay.com^ +08@Rgo.onelink.me^ +5ÿï08@R%goldmoney.com/~/media/Images/Banners/ +$ÿï08@Rgoogle.*/pagead/lvz? +1ÿï08@R!google.com/adsense/domains/caf.js +0ÿï08@R google.com/adsense/search/ads.js +6ÿï08@R&google.com/adsense/search/async-ads.js +#ÿï08@Rgoogle.com/afs/ads? +/ÿï08@Rgoogle.com/pagead/1p-user-list/ +5ÿï08@R%google.com/pagead/conversion_async.js +&ÿï08@Rgoogle.com/pagead/drt/ +*ÿï08@Rgoogle.com/pagead/landing? +*ÿï08@Rgoogleadapis.l.google.com^ +$ÿï08@Rgoogleads.github.io^ +-ÿï08@Rgooglesyndication.com/pagead/ +0ÿï08@R googlesyndication.com/safeframe/ +ÿï08@R gopjn.com/b/ +ÿï08@R gopjn.com/i/ +ÿï08@Rgraph.org/file/ +@ÿï08@R0groupon.com/javascripts/common/affiliate_widget/ +)ÿï08@Rgrscty.com/images/banner/ +#ÿï08@Rgsniper.com/images/ +ÿï08@R hb.yahoo.net^ +5ÿï08@R%hbid.ams3.cdn.digitaloceanspaces.com^ +-ÿï08@Rheimalesssinpad.com/overroll/ +%ÿï08@Rhide-my-ip.com/promo/„ +'ÿï08@Rhistais.com/js/15_as.js +)ÿï08@Rhitleap.com/assets/banner +Fÿï* +flamecomics.xyz* + +mgeko.cc08@Rhosted.muses.org/mrp.js +'ÿï08@Rhostmonster.com/src/js/ +/ÿï* + fileditch.com08@Rhostslick.com^ +!ÿï08@Rhotlink.cc/promo/ +-ÿï08@Rhotwire-widget.dailywire.com^ +"08@Rhtml-load.cc/script/ ++ÿï08@Rhttpslink.com/EdgeOfTheFire +(ÿï08@Rhtvapps.com/ad_fallback/ ++€08@Rhuffpost.com/embed/connatix/ +"ÿï08@Rhumix.com/video.js +&ÿï08@Rhvdt8.chimeratool.com^ +&ÿï08@Ribvpn.com/img/banners/ +)ÿï08@Rifoneunlock.com/*_banner_ +-ÿï08@Rin.com/common/script_catch.js +-ÿï08@Rinbound-step.heavenmedia.com^ +0ÿï08@R incrementxplay.com/api/adserver/ +ÿï08@Rindeed.fr/ads/ +'ÿï08@Rinfibeam.com/affiliate/ +ÿï08@R inrdeals.com^ +,ÿï08@Rinstant-gaming.com/affgames/ +6€08@R'ivisa.com/widgets/*utm_medium=affiliate +1ÿï08@R!jam.hearstapps.com/js/renderer.js +(ÿï08@Rjinx.com/content/banner/ +'€08@Rjobs.sciencecareers.org^ +,ÿï08@Rjobtarget.com/distrib_pages/ +%ÿï08@Rjoin.megaphonetv.com^ +&08@Rjokiyo.github.io/stera4/ +!ÿï08@Rjs.bigcomics.win^ +ÿï08@R js.gov.cfd^ +ÿï08@Rjs.kakuyomu.in^ +ÿï08@R js.kkraw.com^ +!ÿï08@Rjs.manga1001.win^ +!ÿï08@Rjs.mangalove.top^ + ÿï08@Rjs.mangaraw.bid^ +$ÿï08@Rjs.phoenixmanga.com^ +.ÿï08@Rjs.surecart.com/v1/affiliates? +=ÿï08@R-jsdelivr.net/gh/InteractiveAdvertisingBureau/ +>ÿï08@R.jsdelivr.net/gh/qxomer/reklam@master/reklam.js +-ÿï08@Rjsdelivr.net/npm/as-essential +(ÿï08@Rjsdelivr.net/npm/prebid- +(ÿï08@Rjvzoo.com/assets/widget/ +.ÿï08@Rjwpcdn.com/player/*/googima.js +2ÿï08@R"jwpcdn.com/player/plugins/bidding/ +2ÿï08@R"jwpcdn.com/player/plugins/googima/ +!ÿï08@Rkarma.mdpcdn.com^ +'ÿï08@Rkeep2share.cc/images/i/ +0ÿï08@R kinguin.net/affiliatepluswidget/ +;ÿï08@R+kontera.com/javascript/lib/KonaLibInline.js +'ÿï08@Rlawdepot.com/affiliate/ +7ÿï08@R'leadfamly.com/campaign/sdk/popup.min.js +Bÿï08@R2leads.media-tools.realestate.com.au/conversions.js ++ÿï08@Rlegitonlinejobs.com/images/ +1ÿï08@R!lesmeilleurs-jeux.net/images/ban/ +*ÿï08@Rlessemf.com/images/banner- +)ÿï08@Rlibcdnjs.com/js/script.js +(ÿï08@Rlibs.outbrain.com/video/ +ÿï08@R link.link.ru^ +%ÿï08@Rlink.oddsscanner.net^ +(ÿï08@Rlinkconnector.com/tr.php +4ÿï08@R$linkconnector.com/traffic_record.php +08@Rlinkshrink.net^ +3ÿï08@R#linkspy.cc/js/fullPageScript.min.jsØ +ÿï08@R linkx.ix.tc^ +'ÿï08@Rlottoelite.com/banners/ +$ÿï08@Rltkcdn.net/ltkrev.js +&ÿï08@Rmagictag.digislots.in^ +"ÿï08@Rmarketing.888.com^ +-ÿï08@Rmarketools.plus500.com/feeds/ +/ÿï08@Rmarketools.plus500.com/Widgets/ +&ÿï08@Rmassariuscdn.com/pubs/ +$ÿï08@Rmbid.marfeelrev.com^ +%ÿï08@Rmcc.godaddy.com/park/ +#ÿï08@Rmedia.netrefer.com^ +!ÿï08@Rmediaplex.com/ad/ +ÿï08@Rmemesng.com/ads +)€08@Rmichel8899.github.io/test/ +ÿï08@Rmmin.io/embed/ +)ÿï08@Rmmosale.com/baner_images/ +%ÿï08@Rmmwebhandler.888.com^ +€08@Rmnuu.nu^ +)ÿï08@Rmps.nbcuni.com/fetch/ext/ +4ÿï08@R$multimovies.cloud/player/jw8/vast.js +#ÿï08@Rmweb-hb.presage.io^ +Nÿï* +my-dirty-hobby.com* +mydirtyhobby.de08@Rmydirtyhobby.com^ +€08@Rmyfinance.com^ +"ÿï08@Rmythdev.b-cdn.net^ +.ÿï08@Rnamecheap.com/graphics/linkus/ +0ÿï08@R nbastreamswatch.com/z-6229510.js +08@Rnetnaija.com/s/ + ÿï08@Rneural.myth.dev^ +ÿï08@R news.smi2.ru^ +€08@R newsiqra.com^ +$ÿï08@Rnewtabextension.com^ ++ÿï08@Rnitroflare.com/img/banners/ +5€* +independent.com.mt08@Rnoagentfees.com^ +(ÿï08@Rogads-pa.googleapis.com^ +-ÿï08@Roilofasia.com/images/banners/ +"ÿï08@Romegadblocker.com^ +ÿï08@R omguk.com/i/ +%ÿï08@Romguk.com/impression/ +$ÿï08@Ronlinepromogift.com^ +$ÿï08@Ronnetwork.tv/widget/ +A * +imasdk.googleapis.com08@Rooproxy.azurewebsites.net^ +)ÿï08@Roptimizer.apiswidget.com^ +/ÿï08@Rorangebuddies.nl/image/banners/ +ÿï08@Roscarey.my.id^ + ÿï08@Rout.betforce.io^ +)€08@Routbrainimg.com/transform/ +ÿï08@Rowebsearch.com^ +1ÿï08@R!p.jwpcdn.com/player/plugins/vast/ +-ÿï08@Rpacontainer.s3.amazonaws.com^ +.ÿï08@Rpagead2.googlesyndication.com^ +"ÿï08@Rpageloadstats.pro^ +(ÿï08@Rpages.etoro.com/widgets/ +$ÿï08@Rparking.godaddy.com^ +/ÿï08@Rpartner-app.softwareselect.com^ +<ÿï08@R,partner.pcloud.com/media/banners/*300250.png +;ÿï08@R+partner.pcloud.com/media/banners/*72890.jpg +%ÿï08@Rpartner.vecteezy.com^ +%ÿï08@Rpartners.dogtime.com^ +#ÿï08@Rpartners.etoro.com^ +'ÿï08@Rpartners.hostgator.com^ +$ÿï08@Rpartners.rochen.com^ +)ÿï08@Rpayza.com/images/banners/ +ÿï08@R pb.s3wfg.com^ +-ÿï08@Rperfectmoney.com/img/banners/Ò +"ÿï08@Rpics.firstload.de^ +!ÿï08@Rpips.taboola.com^ +5ÿï08@R%pixfs.net/js/sticky-sidebar-ad.min.js +08@R +pjatr.com^ +08@R +pjtra.com^ +„08@Rplay-asia.com^ +<08@R.player.globalsun.io/player/videojs-contrib-ads +ÿï08@R plchldr.co^ +(ÿï08@Rplista.com/async_lib.js? + ÿï08@Rplista.com/tiny/ +*ÿï08@Rplus.net/images/referrals/ +Nÿï08@R>pngmart.com/files/10/Download-Now-Button-PNG-Free-Download.png +08@R +pntra.com^ +08@R pntrac.com^ +08@R +pntrs.com^ +ÿï08@R popmog.com^ +"ÿï08@Rpr.costaction.com^ +ÿï08@Rprebid.cwi.re^ +)ÿï08@Rpress-start.com/affgames/ +("08@Rprivateinternetaccess.com^ +4ÿï08@R$privatejetfinder.com/skins/partners/ +ÿï08@R +probid.ai^ +!ÿï08@Rpromos.fling.com^ +)ÿï08@Rpromote.pair.com/88x31.pl +)ÿï08@Rprotected-redirect.click^ +&ÿï08@Rproto2ad.durasite.net^ +(ÿï08@Rproxy6.net/static/img/b/ +.ÿï08@Rproxysolutions.net/affiliates/ +<ÿï08@R,pub-81f2b77f5bc841c5ae64221394d67f53.r2.dev^ +#ÿï08@Rpubfeed.linkby.com^ +ÿï08@Rpublic.porn.fr^ +08@Rpublish0x.com^ +'ÿï08@Rpurevpn.com/affiliates/ +)ÿï08@Rpushtoast-a.akamaihd.net^ +'ÿï08@Rqsearch-a.akamaihd.net^ +'ÿï08@Rracebets.com/media.php? +-ÿï08@Rrandom-affiliate.atimaze.com^ +@ÿï08@R0rapidgator.net/images/pics/510_468%D1%8560_1.gif +#ÿï08@Rreadme.ru/informer/ +!ÿî08@Rredirect-ads.com^ +08@R redtram.com^ +%ÿï08@Rrefershareus.xyz/ads? ++ÿï08@Rrefinery89.com/performance/ +<ÿï08@R,reiclub.com/templates/interviews/exit_popup/ ++ÿï08@Rremax-malta.com/widget_new/ +(ÿï08@Rrentalcars.com/partners/ +:ÿï08@R*resellerratings.com/popup/include/popup.js +(ÿï08@Rrotabanner.kulichki.net^ +)ÿï08@Rrotator.tradetracker.net^ +&ÿï08@Rrubylife.go2cloud.org^ +€08@R +s1.wp.com^ +ÿï08@R saambaa.com^ +-ÿï08@Rsafarinow.com/affiliate-zone/ +.ÿï08@Rsafelinku.com/js/web-script.js +)ÿï08@Rsailthru.com^*/horizon.js +$ÿï08@Rsascdn.com/config.js +08@Rsascdn.com/diff/ +ÿï08@Rsascdn.com/tag/ +ÿï08@Rsaveit.us/img/ +(ÿï08@Rsbitany.com^*/affiliate/ +(ÿï08@Rscreen13.com/publishers/ +4ÿï08@R$sdk.apester.com/*.adsbygoogle.min.js +5ÿï08@R%sdk.apester.com/*.Monetization.min.js +@ÿï08@R0search-carousel-widget.snc-prod.aws.cinch.co.uk^€ +!ÿï08@Rsecure.money.com^ +1ÿï08@R!service.smscoin.com/js/sendpic.js +&ÿï08@Rserving.lookverin.com^ +%ÿï08@Rshareasale.com/image/ +%ÿï08@Rshink.in/js/script.js +ÿï08@Rshopmyshelf.us^ +"€08@Rsignup.asurion.com^ +-ÿï08@Rsiteground.com/img/affiliate/ ++ÿï08@Rsiteground.com/img/banners/ +0ÿï08@R siteground.com/static/affiliate/ +!‚08@Rskimresources.com^ +'ÿï08@Rslysoft.com/img/banner/ +*ÿï08@Rsmartads.statsperform.com^ +)ÿï08@Rsmartdestinations.com/ai/ +-ÿï08@Rsnacklink.co/js/web-script.js +@ÿï* +bannersnack.dev08@Rsnacktools.net/bannersnack/ +(ÿï08@Rsocialmonkee.com/images/ +.ÿï08@Rsorcerers.net/includes/butler/ ++ÿï08@Rsquaremouth.com/affiliates/ +)ÿï08@Rsquirrels.getsquirrel.co^ +%ÿï08@Rsrv.dynamicyield.com^ +(ÿï08@Rsrv.tunefindforfans.com^ +%ÿï08@Rsrv.yeahwebimobi.fun^ +%ÿï08@Rsrx.com.sg/srx/media/ +4ÿï08@R$ssl-images-amazon.com/images/*/DAsf- +4ÿï08@R$ssl-images-amazon.com/images/*/MAsf- +"ÿï08@Rssp.qc.coccoc.com^ +:ÿï08@R*static.ifruplink.net/static_src/mc-banner/ +4ÿï08@R$static.prd.datawars.io/static/promo/ +0ÿï08@R static.sunmedia.tv/integrations/ +(ÿï08@Rstatic.tradetracker.net^ +Dÿï* +onecompiler.com08@R!staticmisc.blob.core.windows.net^ +(ÿï08@Rstay22.com/api/sponsors/ +7ÿï08@R'storage.googleapis.com/admaxvaluemedia/ +.ÿï08@Rstorage.googleapis.com/adtags/ +7ÿï08@R'storage.googleapis.com/ba_utils/stab.js +'ÿï08@Rstreambeast.io/aclib.js +-ÿï08@Rstreambtwp.b-cdn.net/aclib.js +&ÿï08@Rstunserver.net/frun.js +,ÿï08@Rsunflowerbright109.io/sdk.js +4ÿï08@R$supabase.co/rest/v1/promos_available +"ÿï08@Rsupply.upjers.com^ +,ÿï08@Rsurdotly.com/js/Surly.min.js +,ÿï08@Rsurveymonkey.com/jspop.aspx? +/ÿï08@Rsweeva.com/images/banner250.gif +'ÿï08@Rsyndicate.payloadz.com^ +$ÿï08@Rt.babelmedia.global^ +#€* + kshow123.tv08@Rt.co^ +"ÿï08@Rtaboola.com/vpaid/ +0ÿï08@R taboola.com^*/vignette-render.js + ÿï08@Rtag.regieci.com^ +$ÿï08@Rtags.refinery89.com^ +$ÿï08@Rtakefile.link/promo/ +!ÿï08@Rtargeting.vdo.ai^ ++ÿï08@Rtcadserver.rain-digital.ca^ + ÿï08@Rtech426.com/pub/ +-ÿï08@Rtextlinks.com/images/banners/ +/ÿï08@Rthefreesite.com/nov99bannov.gif +)ÿï08@Rthelotter-affiliates.com^ +(ÿï08@Rthemespixel.net/banners/ +ÿï08@Rthscore.fun/mn/ +$ÿï08@Rti.tradetracker.net^ +)ÿï08@Rtillertag-a.akamaihd.net^ +$ÿï08@Rtoplist.raidrush.ws^ƒ +)ÿï08@Rtorrindex.net/images/ads/ +)ÿï08@Rtorrindex.net/images/epv/ +4ÿï08@R$torrindex.net/static/tinysort.min.js +/ÿï08@Rtotalmedia2.ynet.co.il/new_gpt/ +]ÿï08@RMtownnews.com/tucson.com/content/tncms/live/libraries/flex/components/ads_dfp/ +8ÿï08@R(tra.scds.pmdstatic.net/advertising-core/ + ÿï08@Rtrack.10bet.com^ +$08@Rtrack.effiliation.com^ +(ÿï08@Rtraffer.biz/img/banners/ +1ÿï08@R!travel.mediaalpha.com/js/serve.js +-ÿï08@Rtrendads.reactivebetting.com^ +%ÿï08@Rtrip.com/partners/ad/ +#ÿï08@Rtrstx.org/overroll/ +&ÿï08@Rtruex.com/js/client.js +$ÿï08@Rtrvl-px.com/trvl-px/ +&ÿï08@Rturb.cc/fd1/img/promo/ +#ÿï08@Rtypicalstudent.org^ +6ÿï08@R&ubm-us.net/oas/nativead/js/nativead.js +€08@Rummn.nu^ +'ÿï08@Runiversal.wgplayer.com^ +(ÿï08@Ruploaded.net/img/public/ +2ÿï08@R"utility.rogersmedia.com/wrapper.js +)ÿï08@Rvhanime.com/js/bnanime.js +ÿï08@Rviadata.store^ +)08@Rvidcrunch.com/integrations/ +"ÿï08@Rvideo-ads.a2z.com^ +#ÿï08@Rvideosvc.ezoic.com^ +)ÿï08@Rvidoomy.com/api/adserver/ ++ÿï08@Rvidsrc.pro/uwu-js/binged.in +.ÿï08@Rviralize.tv/t-bid-opportunity/ +#ÿï08@Rvirool.com/widgets/ +"ÿï08@Rvpnrice.com/a/p.js +!ÿï08@Rvrixon.com/adsdk/ +&ÿï08@Rvultr.com/media/banner +ÿï08@Rvuukle.com/ads/ +ÿï08@R vv.7vid.net^ +?ÿï08@R/washingtonpost.com/wp-stat/ad/zeus/wp-ad.min.js +*ÿï08@Rweb-hosting.net.my/banner/ + ÿï08@Rweb.adblade.com^ +$ÿï08@Rwebapps.leasing.com^ +ÿï08@Rwebseed.com/WP/ +ÿï08@Rweby.aaas.org^ +ÿï08@Rwhatfinger.com^ +Bÿï08@R2whatismyipaddress.cyou/assets/images/ip-banner.png +$ÿï08@Rwheelify.cartzy.com^ +6ÿï08@R&widget.engageya.com/engageya_loader.js +%ÿï08@Rwidget.golfscape.com^ +0ÿï08@R widget.searchschoolsnetwork.com^ +$ÿï08@Rwidget.sellwild.com^ +%ÿï08@Rwidget.shopstyle.com^ +%ÿï08@Rwidgets.business.com^ +(ÿï08@Rwidgets.lendingtree.com^ +#ÿï08@Rwidgets.monito.com^ +(ÿï08@Rwidgets.oddschecker.com^ +0ÿï08@R widgets.outbrain.com^*/widget.js +%ÿï08@Rwidgets.progrids.com^ +!ÿï08@Rwidgets.tree.com^ +#ÿï08@Rwinonexd.b-cdn.net^ +7ÿï08@R'wistia.com/assets/external/googleAds.js +4ÿï08@R$wixlabs-adsense-v3.uc.r.appspot.com^ +(ÿï08@Rwowtcgloot.com/share/?d= +8ÿï08@R(wp.com/assets.sheetmusicplus.com/banner/ +5ÿï08@R%wp.com/assets.sheetmusicplus.com/smp/ +Tÿï08@RDwp.com/bugsfighter.com/wp-content/uploads/2016/07/adguard-banner.pngª +-ÿï08@Rwp.com/static.shareasale.com/ +!ÿï08@Rwpb.wgplayer.com^ +Nÿï08@R>wpengine.com/wp-json/api/advanced_placement/api-in-article-ad/ +&ÿï08@Rwpzoom.com/images/aff/ +$ÿï08@Rws.amazon.*/widgets/ +)ÿï08@Rwsimg.com/parking-lander/ +$ÿï08@Ryahoo.com/bidRequest +:ÿï08@R*yastatic.net/pcode/adfox/header-bidding.js +8ÿï08@R(yield-op-idsync.live.streamtheworld.com^ +)ÿï08@Ryimg.com/dy/ads/native.js +)ÿï08@Ryimg.com/dy/ads/readmo.js +<ÿï* + biznews.com08@Ryoutube.com/embed/C-iDzdvIg1Y +1ÿï08@R!z3x-team.com/wp-content/*-banner- +#ÿï08@Rzergnet.com/zerg.js +"ÿï08@Rziffstatic.com/pg/ +-ÿï08@Rziffstatic.com/zmg/pogoadk.js +!ÿï08@Rzkcdn.net/ados.js +ÿï08@R zv.7vid.net^ +#ÿï08@Rad.intl.xiaomi.com^ +ÿï08@Rad.xiaomi.com^ +-ÿï08@Rs3.amazonaws.com^*/f10ac63cd7 +,ÿï08@Rs3.amazonaws.com^*/secure.js +ÿï08@Rtsbluebox.com^ +&08@Rcloudfront.net/*.min.css +)08@Rcloudfront.net/css/*.min.js +,08@Rcloudfront.net/images/*-min.js +?ÿï08@R/cloudfront.net/js/script_tag/new/sca_affiliate_ +.ÿï08@Rd10ce3z4vbhcdd.cloudfront.net^ +.ÿï08@Rd10lumateci472.cloudfront.net^ +.ÿï08@Rd10lv7w3g0jvk9.cloudfront.net^ +.ÿï08@Rd10nkw6w2k1o10.cloudfront.net^ +.ÿï08@Rd10wfab8zt419p.cloudfront.net^ +.ÿï08@Rd10zmv6hrj5cx1.cloudfront.net^ +.ÿï08@Rd114isgihvajcp.cloudfront.net^ +.ÿï08@Rd1180od816jent.cloudfront.net^ +.ÿï08@Rd1198dzygjftam.cloudfront.net^ +.ÿï08@Rd11enq2rymy0yl.cloudfront.net^ +.ÿï08@Rd11hjbdxxtogg5.cloudfront.net^ +.ÿï08@Rd11kp34sgosvfa.cloudfront.net^ +.ÿï08@Rd11p7gi4d9x2s0.cloudfront.net^ +.ÿï08@Rd11qytb9x1vnrm.cloudfront.net^ +.ÿï08@Rd11tybz5ul8vel.cloudfront.net^ +.ÿï08@Rd11zevc9a5598r.cloudfront.net^ +.ÿï08@Rd126kahie2ogx0.cloudfront.net^ +.ÿï08@Rd127s3e8wcl3q6.cloudfront.net^ +-ÿï08@Rd12bql71awc8k.cloudfront.net^ +.ÿï08@Rd12czbu0tltgqq.cloudfront.net^ +.ÿï08@Rd12dky1jzngacn.cloudfront.net^ +.ÿï08@Rd12e9f83wyj0ww.cloudfront.net^ +.ÿï08@Rd12t7h1bsbq1cs.cloudfront.net^ +.ÿï08@Rd12tu1kocp8e8u.cloudfront.net^ +.ÿï08@Rd12ylqdkzgcup5.cloudfront.net^ +.ÿï08@Rd12zgccgt6pwjz.cloudfront.net^ +.ÿï08@Rd133y3h5r255gq.cloudfront.net^ +.ÿï08@Rd13gni3sfor862.cloudfront.net^ +.ÿï08@Rd13j11nqjt0s84.cloudfront.net^ +.ÿï08@Rd13k7prax1yi04.cloudfront.net^ +.ÿï08@Rd13pxqgp3ixdbh.cloudfront.net^ +.ÿï08@Rd13r2gmqlqb3hr.cloudfront.net^ +.ÿï08@Rd13uyjvmsvkesh.cloudfront.net^ +.ÿï08@Rd13vul5n9pqibl.cloudfront.net^ +.ÿï08@Rd140sbu1b1m3h0.cloudfront.net^ +.ÿï08@Rd141wsrw9m4as6.cloudfront.net^ +.ÿï08@Rd142i1hxvwe38g.cloudfront.net^€ +.ÿï08@Rd145ghnzqbsasr.cloudfront.net^ +.ÿï08@Rd147t1kg3swfdd.cloudfront.net^ +.ÿï08@Rd14821r0t3377v.cloudfront.net^ +.ÿï08@Rd149mkdvjofx4v.cloudfront.net^ +.ÿï08@Rd14l1tkufmtp1z.cloudfront.net^ +.ÿï08@Rd14osandwrs90r.cloudfront.net^ +.ÿï08@Rd14x46ho6sn9yf.cloudfront.net^ +.ÿï08@Rd14zhsq5aop7ap.cloudfront.net^ +.ÿï08@Rd154nw1c88j0q6.cloudfront.net^ +.ÿï08@Rd15bcy38hlba76.cloudfront.net^ +.ÿï08@Rd15gt9gwxw5wu0.cloudfront.net^ +.ÿï08@Rd15jg7068qz6nm.cloudfront.net^ +.ÿï08@Rd15kdpgjg3unno.cloudfront.net^ +.ÿï08@Rd15kuuu3jqrln7.cloudfront.net^ +.ÿï08@Rd15mt77nzagpnx.cloudfront.net^ +.ÿï08@Rd15skjf5hy9xr6.cloudfront.net^ +.ÿï08@Rd15yg5thi9b6xv.cloudfront.net^ +.ÿï08@Rd162nnmwf9bggr.cloudfront.net^ +.ÿï08@Rd16saj1xvba76n.cloudfront.net^ +.ÿï08@Rd16sobzswqonxq.cloudfront.net^ +.ÿï08@Rd175dtblugd1dn.cloudfront.net^ +.ÿï08@Rd17757b88bjr2y.cloudfront.net^ +.ÿï08@Rd17c5vf4t6okfg.cloudfront.net^ +.ÿï08@Rd17razj7klcrmv.cloudfront.net^ +.ÿï08@Rd183xvcith22ty.cloudfront.net^ +.ÿï08@Rd1856n6bep9gel.cloudfront.net^ +.ÿï08@Rd185vdnhi9xfbl.cloudfront.net^ +.ÿï08@Rd188elxamt3utn.cloudfront.net^ +.ÿï08@Rd188m5xxcpvuue.cloudfront.net^ +.ÿï08@Rd18b5y9gp0lr93.cloudfront.net^ +.ÿï08@Rd18e74vjvmvza1.cloudfront.net^ +.ÿï08@Rd18g6t7whf8ejf.cloudfront.net^ +.ÿï08@Rd18hqfm1ev805k.cloudfront.net^ +.ÿï08@Rd18kg2zy9x3t96.cloudfront.net^ +.ÿï08@Rd18mealirgdbbz.cloudfront.net^ +.ÿï08@Rd18myvrsrzjrd7.cloudfront.net^ +.ÿï08@Rd18ql5xgy7gz3p.cloudfront.net^ +.ÿï08@Rd18t35yyry2k49.cloudfront.net^ +.ÿï08@Rd192g7g8iuw79c.cloudfront.net^ +.ÿï08@Rd192r5l88wrng7.cloudfront.net^ +.ÿï08@Rd199kwgcer5a6q.cloudfront.net^ +.ÿï08@Rd19a04d0igndnt.cloudfront.net^ +.ÿï08@Rd19bpqj0yivlb3.cloudfront.net^ +.ÿï08@Rd19diizb3qce6y.cloudfront.net^ +.ÿï08@Rd19gkl2iaav80x.cloudfront.net^ +.ÿï08@Rd19y03yc9s7c1c.cloudfront.net^ +.ÿï08@Rd1a3jb5hjny5s4.cloudfront.net^ +.ÿï08@Rd1aa9f6zukqylf.cloudfront.net^ +.ÿï08@Rd1ac2du043ydir.cloudfront.net^ +.ÿï08@Rd1aezk8tun0dhm.cloudfront.net^ +.ÿï08@Rd1aiciyg0qwvvr.cloudfront.net^ +.ÿï08@Rd1ap9gbbf77h85.cloudfront.net^ +.ÿï08@Rd1appgm50chwbg.cloudfront.net^ +.ÿï08@Rd1aqvw7cn4ydzo.cloudfront.net^ +.ÿï08@Rd1aukpqf83rqhe.cloudfront.net^ +.ÿï08@Rd1ayv3a7nyno3a.cloudfront.net^ +.ÿï08@Rd1az618or4kzj8.cloudfront.net^ +.ÿï08@Rd1aznprfp4xena.cloudfront.net^ +.ÿï08@Rd1azpphj80lavy.cloudfront.net^ +.ÿï08@Rd1b240xv9h0q8y.cloudfront.net^ +.ÿï08@Rd1b499kr4qnas6.cloudfront.net^ +.ÿï08@Rd1b7aq9bn3uykv.cloudfront.net^ +.ÿï08@Rd1b9b1cxai2c03.cloudfront.net^ +.ÿï08@Rd1bad9ankyq5eg.cloudfront.net^ý +.ÿï08@Rd1bci271z7i5pg.cloudfront.net^ +.ÿï08@Rd1betjlqogdr97.cloudfront.net^ +.ÿï08@Rd1bf1sb7ks8ojo.cloudfront.net^ +.ÿï08@Rd1bi6hxlc51jjw.cloudfront.net^ +.ÿï08@Rd1bioqbsunwnrb.cloudfront.net^ +.ÿï08@Rd1bkis4ydqgspg.cloudfront.net^ +.ÿï08@Rd1bxkgbbc428vi.cloudfront.net^ +.ÿï08@Rd1cg2aopojxanm.cloudfront.net^ +.ÿï08@Rd1clmik8la8v65.cloudfront.net^ +.ÿï08@Rd1crfzlys5jsn1.cloudfront.net^ +.ÿï08@Rd1crt12zco2cvf.cloudfront.net^ +.ÿï08@Rd1csp7vj6qqoa6.cloudfront.net^ +.ÿï08@Rd1d38a26hlyhe3.cloudfront.net^ +.ÿï08@Rd1d7hwtv2l91pm.cloudfront.net^ +.ÿï08@Rd1dcnte8mfzkpv.cloudfront.net^ +.ÿï08@Rd1dh1gvx7p0imm.cloudfront.net^ +.ÿï08@Rd1diqetif5itzx.cloudfront.net^ +.ÿï08@Rd1djrodi2reo2w.cloudfront.net^ +.ÿï08@Rd1dtl43j681tft.cloudfront.net^ +.ÿï08@Rd1e28xq8vu3baf.cloudfront.net^ +.ÿï08@Rd1e3vw6pz2ty1m.cloudfront.net^ +.ÿï08@Rd1e51ovcxdu97v.cloudfront.net^ +.ÿï08@Rd1e9rtdi67kart.cloudfront.net^ +.ÿï08@Rd1ebha2k07asm5.cloudfront.net^ +.ÿï08@Rd1eeht7p8f5lpk.cloudfront.net^ +.ÿï08@Rd1eknpz7w55flg.cloudfront.net^ +-ÿï08@Rd1err2upj040z.cloudfront.net^ +.ÿï08@Rd1esebcdm6wx7j.cloudfront.net^ +.ÿï08@Rd1ev4o49j4zqc3.cloudfront.net^ +.ÿï08@Rd1ev866ubw90c6.cloudfront.net^ +.ÿï08@Rd1eyw3m16hfg9c.cloudfront.net^ +.ÿï08@Rd1ezlc9vy4yc7g.cloudfront.net^ +.ÿï08@Rd1f05vr3sjsuy7.cloudfront.net^ +.ÿï08@Rd1f52ha44xvggk.cloudfront.net^ +.ÿï08@Rd1f5r3d462eit5.cloudfront.net^ +.ÿï08@Rd1f7vr2umogk27.cloudfront.net^ +.ÿï08@Rd1f9tkqiyb5a97.cloudfront.net^ +.ÿï08@Rd1f9x963ud6u7a.cloudfront.net^ +-ÿï08@Rd1fs2ef81chg3.cloudfront.net^ +.ÿï08@Rd1ftkft7iiluq6.cloudfront.net^ +.ÿï08@Rd1g2nud28z4vph.cloudfront.net^ +.ÿï08@Rd1g4493j0tcwvt.cloudfront.net^ +.ÿï08@Rd1g4xgvlcsj49g.cloudfront.net^ +.ÿï08@Rd1g8forfjnu2jh.cloudfront.net^ +.ÿï08@Rd1gof7ug63b1q4.cloudfront.net^ +.ÿï08@Rd1gpi088t70qaf.cloudfront.net^ +-ÿï08@Rd1h2plpxnhapt.cloudfront.net^ +.ÿï08@Rd1ha41wacubcnb.cloudfront.net^ +.ÿï08@Rd1hgdmbgioknig.cloudfront.net^ +.ÿï08@Rd1hh76tqcottqz.cloudfront.net^ +.ÿï08@Rd1hnmxbg6rp2o6.cloudfront.net^ +.ÿï08@Rd1hogxc58mhzo9.cloudfront.net^ +.ÿï08@Rd1i11ea1m0er9t.cloudfront.net^ +.ÿï08@Rd1i1d9hx0883rq.cloudfront.net^ +.ÿï08@Rd1i3h541wbnrfi.cloudfront.net^ +.ÿï08@Rd1i4rchxg0yau7.cloudfront.net^ +.ÿï08@Rd1i76h1c9mme1m.cloudfront.net^ +.ÿï08@Rd1ieffz9zqrn09.cloudfront.net^ +.ÿï08@Rd1igvjcl1gjs62.cloudfront.net^ +.ÿï08@Rd1ilwohzbe4ao6.cloudfront.net^ +.ÿï08@Rd1iy4wgzi9qdu7.cloudfront.net^ +.ÿï08@Rd1iz0b4hmb7usn.cloudfront.net^ +.ÿï08@Rd1j1m9awq6n3x3.cloudfront.net^ +.ÿï08@Rd1j2jv7bvcsxqg.cloudfront.net^ý +.ÿï08@Rd1j47wsepxe9u2.cloudfront.net^ +.ÿï08@Rd1j6limf657foe.cloudfront.net^ +.ÿï08@Rd1j818d3wapogd.cloudfront.net^ +.ÿï08@Rd1j9qsxe04m2ki.cloudfront.net^ +.ÿï08@Rd1jcj9gy98l90g.cloudfront.net^ +.ÿï08@Rd1jd9usa22o1l7.cloudfront.net^ +.ÿï08@Rd1jnvfp2m6fzvq.cloudfront.net^ +.ÿï08@Rd1juimniehopp3.cloudfront.net^ +.ÿï08@Rd1jwpd11ofhd5g.cloudfront.net^ +-ÿï08@Rd1k8mqc61fowi.cloudfront.net^ +.ÿï08@Rd1kfcch39h5g0x.cloudfront.net^ +.ÿï08@Rd1krgg9nh7vzxg.cloudfront.net^ +.ÿï08@Rd1ks8roequxbwa.cloudfront.net^ +.ÿï08@Rd1ktmtailsv07c.cloudfront.net^ +.ÿï08@Rd1kttpj1t6674w.cloudfront.net^ +.ÿï08@Rd1kwkwcfmhtljq.cloudfront.net^ +.ÿï08@Rd1kx6hl0p7bemr.cloudfront.net^ +.ÿï08@Rd1kzm6rtbvkdln.cloudfront.net^ +.ÿï08@Rd1l906mtvq85kd.cloudfront.net^ +.ÿï08@Rd1lihuem8ojqxz.cloudfront.net^ +.ÿï08@Rd1lky2ntb9ztpd.cloudfront.net^ +.ÿï08@Rd1lnjzqqshwcwg.cloudfront.net^ +.ÿï08@Rd1lo4oi08ke2ex.cloudfront.net^ +.ÿï08@Rd1lxhc4jvstzrp.cloudfront.net^ +.ÿï08@Rd1mahxde95gw5l.cloudfront.net^ +.ÿï08@Rd1mar6i7bkj1lr.cloudfront.net^ +.ÿï08@Rd1mbgf0ge24riu.cloudfront.net^ +.ÿï08@Rd1mbihpm2gncx7.cloudfront.net^ +.ÿï08@Rd1mcwmzol446xa.cloudfront.net^ +.ÿï08@Rd1mikxzr3lp4va.cloudfront.net^ +.ÿï08@Rd1my7gmbyaxdyn.cloudfront.net^ +.ÿï08@Rd1myn4ixnn41tz.cloudfront.net^ +.ÿï08@Rd1n1ppeppre6d4.cloudfront.net^ +.ÿï08@Rd1n3aexzs37q4s.cloudfront.net^ +.ÿï08@Rd1n3tk65esqc4k.cloudfront.net^ +-ÿï08@Rd1n5jb3yqcxwp.cloudfront.net^ +.ÿï08@Rd1n6jx7iu0qib6.cloudfront.net^ +.ÿï08@Rd1ndpste0fy3id.cloudfront.net^ +.ÿï08@Rd1nkvehlw5hmj4.cloudfront.net^ +.ÿï08@Rd1nmxiiewlx627.cloudfront.net^ +-ÿï08@Rd1nnhbi4g0kj5.cloudfront.net^ +.ÿï08@Rd1now6cui1se29.cloudfront.net^ +.ÿï08@Rd1nr5af9lc58ok.cloudfront.net^ +.ÿï08@Rd1nssfq3xl2t6b.cloudfront.net^ +.ÿï08@Rd1nubxdgom3wqt.cloudfront.net^ +.ÿï08@Rd1nv2vx70p2ijo.cloudfront.net^ +.ÿï08@Rd1nx2jii03b4ju.cloudfront.net^ +.ÿï08@Rd1o1guzowlqlts.cloudfront.net^ +.ÿï08@Rd1of5w8unlzqtg.cloudfront.net^ +.ÿï08@Rd1okyw2ay5msiy.cloudfront.net^ +.ÿï08@Rd1ol7fsyj96wwo.cloudfront.net^ +.ÿï08@Rd1on4urq8lvsb1.cloudfront.net^ +.ÿï08@Rd1or04kku1mxl9.cloudfront.net^ +.ÿï08@Rd1oykxszdrgjgl.cloudfront.net^ +.ÿï08@Rd1p0vowokmovqz.cloudfront.net^ +.ÿï08@Rd1p3zboe6tz3yy.cloudfront.net^ +.ÿï08@Rd1p7gp5w97u7t7.cloudfront.net^ +.ÿï08@Rd1pdf4c3hchi80.cloudfront.net^ +.ÿï08@Rd1pn3cn3ri604k.cloudfront.net^ +.ÿï08@Rd1pvpz0cs1cjk8.cloudfront.net^ +.ÿï08@Rd1pwvobm9k031m.cloudfront.net^ +.ÿï08@Rd1pxzgs3x2bh98.cloudfront.net^ +.ÿï08@Rd1q0x5umuwwxy2.cloudfront.net^ +.ÿï08@Rd1q4x2p7t0gq14.cloudfront.net^ÿ +.ÿï08@Rd1q9g9zqq1ieco.cloudfront.net^ +.ÿï08@Rd1qc76gneygidm.cloudfront.net^ +.ÿï08@Rd1qggq1at2gusn.cloudfront.net^ +.ÿï08@Rd1qk9ujrmkucbl.cloudfront.net^ +.ÿï08@Rd1qow5kxfhwlu8.cloudfront.net^ +.ÿï08@Rd1r3ddyrqrmcjv.cloudfront.net^ +.ÿï08@Rd1r90st78epsag.cloudfront.net^ +.ÿï08@Rd1r9f6frybgiqo.cloudfront.net^ +.ÿï08@Rd1rczqt4tdkw1g.cloudfront.net^ +.ÿï08@Rd1rgi5lmynkcm4.cloudfront.net^ +.ÿï08@Rd1rguclfwp7nc8.cloudfront.net^ +.ÿï08@Rd1rkd1d0jv6skn.cloudfront.net^ +.ÿï08@Rd1rkf0bq85yx06.cloudfront.net^ +.ÿï08@Rd1rnknz34k1ko0.cloudfront.net^ +.ÿï08@Rd1rp4yowwe587e.cloudfront.net^ +.ÿï08@Rd1rsh847opos9y.cloudfront.net^ +.ÿï08@Rd1s4mby8domwt9.cloudfront.net^ +.ÿï08@Rd1sboz88tkttfp.cloudfront.net^ +.ÿï08@Rd1sfclevshpbro.cloudfront.net^ +.ÿï08@Rd1sjz3r2x2vk2u.cloudfront.net^ +.ÿï08@Rd1sowp9ayjro6j.cloudfront.net^ +.ÿï08@Rd1spc7iz1ls2b1.cloudfront.net^ +.ÿï08@Rd1sqvt36mg3t1b.cloudfront.net^ +.ÿï08@Rd1sytkg9v37f5q.cloudfront.net^ +.ÿï08@Rd1t1fxgxazche8.cloudfront.net^ +.ÿï08@Rd1t38ngzzazukx.cloudfront.net^ +.ÿï08@Rd1t671k72j9pxc.cloudfront.net^ +-ÿï08@Rd1t8it0ywk3xu.cloudfront.net^ +.ÿï08@Rd1tafuajjg33f8.cloudfront.net^ +.ÿï08@Rd1tizxwina1bjc.cloudfront.net^ +.ÿï08@Rd1tjcziy9n8hnk.cloudfront.net^ +.ÿï08@Rd1tjxs5ylo6ah7.cloudfront.net^ +.ÿï08@Rd1tlfk2mmne2t6.cloudfront.net^ +.ÿï08@Rd1tt3ye7u0e0ql.cloudfront.net^ +.ÿï08@Rd1tttug1538qv1.cloudfront.net^ +.ÿï08@Rd1twn22x8kvw17.cloudfront.net^ +.ÿï08@Rd1u1byonn4po0b.cloudfront.net^ +.ÿï08@Rd1u5ibtsigyagv.cloudfront.net^ +.ÿï08@Rd1uae3ok0byyqw.cloudfront.net^ +.ÿï08@Rd1uc64ype5braa.cloudfront.net^ +.ÿï08@Rd1ue5xz1lnqk0d.cloudfront.net^ +.ÿï08@Rd1ugiptma3cglb.cloudfront.net^ +.ÿï08@Rd1ukp4rdr0i4nl.cloudfront.net^ +.ÿï08@Rd1upt0rqzff34l.cloudfront.net^ +.ÿï08@Rd1ux93ber9vlwt.cloudfront.net^ +.ÿï08@Rd1uzjiv6zzdlbc.cloudfront.net^ +.ÿï08@Rd1voskqidohxxs.cloudfront.net^ +.ÿï08@Rd1vqm5k0hezeau.cloudfront.net^ +.ÿï08@Rd1vy7td57198sq.cloudfront.net^ +.ÿï08@Rd1w24oanovvxvg.cloudfront.net^ +.ÿï08@Rd1w5452x8p71hs.cloudfront.net^ +.ÿï08@Rd1w9uux77ifu8k.cloudfront.net^ +.ÿï08@Rd1wbjksx0xxdn3.cloudfront.net^ +.ÿï08@Rd1wc0ojltqk24g.cloudfront.net^ +.ÿï08@Rd1wd81rzdci3ru.cloudfront.net^ +.ÿï08@Rd1wi563t0137vz.cloudfront.net^ +.ÿï08@Rd1wjz6mrey9f5v.cloudfront.net^ +.ÿï08@Rd1wv5x2u0qrvjw.cloudfront.net^ +.ÿï08@Rd1x45wsn95e4gp.cloudfront.net^ +.ÿï08@Rd1x7c4wlneyax0.cloudfront.net^ +.ÿï08@Rd1xdxiqs8w12la.cloudfront.net^ +.ÿï08@Rd1xivydscggob7.cloudfront.net^ +.ÿï08@Rd1xkyo9j4r7vnn.cloudfront.net^ +.ÿï08@Rd1xo0f2fdn5no0.cloudfront.net^þ +.ÿï08@Rd1xw8yqtkk9ae5.cloudfront.net^ +.ÿï08@Rd1y3xnqdd6pdbo.cloudfront.net^ +.ÿï08@Rd1yaf4htak1xfg.cloudfront.net^ +-ÿï08@Rd1ybdlg8aoufn.cloudfront.net^ +.ÿï08@Rd1yeqwgi8897el.cloudfront.net^ +.ÿï08@Rd1ygczx880h5yu.cloudfront.net^ +.ÿï08@Rd1ytalcrl612d7.cloudfront.net^ +.ÿï08@Rd1yyhdmsmo3k5p.cloudfront.net^ +.ÿï08@Rd1z1vj4sd251u9.cloudfront.net^ +.ÿï08@Rd1z2jf7jlzjs58.cloudfront.net^ +.ÿï08@Rd1z58p17sqvg6o.cloudfront.net^ +.ÿï08@Rd1zjpzpoh45wtm.cloudfront.net^ +.ÿï08@Rd1zjr9cc2zx7cg.cloudfront.net^ +.ÿï08@Rd1zrs4deyai5xm.cloudfront.net^ +.ÿï08@Rd1zvjxpgjx3irs.cloudfront.net^ +.ÿï08@Rd1zw85ny9dtn37.cloudfront.net^ +.ÿï08@Rd1zw8evbrw553l.cloudfront.net^ +.ÿï08@Rd1zy4z3rd7svgh.cloudfront.net^ +.ÿï08@Rd1zzcae3f37dfx.cloudfront.net^ +.ÿï08@Rd200108c6x0w2v.cloudfront.net^ +.ÿï08@Rd204slsrhoah2f.cloudfront.net^ +.ÿï08@Rd205jrj5h1616x.cloudfront.net^ +.ÿï08@Rd20903hof2l33q.cloudfront.net^ +.ÿï08@Rd20kfqepj430zj.cloudfront.net^ +.ÿï08@Rd20nuqz94uw3np.cloudfront.net^ +.ÿï08@Rd20tam5f2v19bf.cloudfront.net^ +.ÿï08@Rd213cc9tw38vai.cloudfront.net^ +.ÿï08@Rd219kvfj8xp5vh.cloudfront.net^ +.ÿï08@Rd21f25e9uvddd7.cloudfront.net^ +.ÿï08@Rd21m5j4ptsok5u.cloudfront.net^ +.ÿï08@Rd21rpkgy8pahcu.cloudfront.net^ +.ÿï08@Rd21rudljp9n1rr.cloudfront.net^ +.ÿï08@Rd21uxxljl9m8ns.cloudfront.net^ +.ÿï08@Rd223xrf0cqrzzz.cloudfront.net^ +.ÿï08@Rd227cncaprzd7y.cloudfront.net^ +.ÿï08@Rd227n6rw2vv5cw.cloudfront.net^ +.ÿï08@Rd22ffr6srkd9zx.cloudfront.net^ +-ÿï08@Rd22jxozsujz6m.cloudfront.net^ +.ÿï08@Rd22lbkjf2jpzr9.cloudfront.net^ +.ÿï08@Rd22lo5bcpq2fif.cloudfront.net^ +.ÿï08@Rd22rmxeq48r37j.cloudfront.net^ +.ÿï08@Rd22sfab2t5o9bq.cloudfront.net^ +.ÿï08@Rd22xmn10vbouk4.cloudfront.net^ +.ÿï08@Rd22z575k8abudv.cloudfront.net^ +.ÿï08@Rd232dy72shugnx.cloudfront.net^ +.ÿï08@Rd235m8fpdlskx9.cloudfront.net^ +.ÿï08@Rd236v5t33fsfwk.cloudfront.net^ +.ÿï08@Rd23a1izvegnhq4.cloudfront.net^ +.ÿï08@Rd23d7sc86jmil5.cloudfront.net^ +.ÿï08@Rd23guct4biwna6.cloudfront.net^ +.ÿï08@Rd23h3o5tkgytgm.cloudfront.net^ +.ÿï08@Rd23i0h7d50duv0.cloudfront.net^ +.ÿï08@Rd23pdhuxarn9w2.cloudfront.net^ +.ÿï08@Rd23rx8p5l6yry7.cloudfront.net^ +.ÿï08@Rd23spca806c5fu.cloudfront.net^ +.ÿï08@Rd23xhr62nxa8qo.cloudfront.net^ +.ÿï08@Rd24502rd02eo9t.cloudfront.net^ +.ÿï08@Rd2483bverkkvsp.cloudfront.net^ +.ÿï08@Rd24g87zbxr4yiz.cloudfront.net^ +.ÿï08@Rd24iusj27nm1rd.cloudfront.net^ +.ÿï08@Rd24lwiav9pbaw7.cloudfront.net^ +.ÿï08@Rd24qbn28utpewb.cloudfront.net^ +.ÿï08@Rd25dfknw9ghxs6.cloudfront.net^ +.ÿï08@Rd25xkbr68qqtcn.cloudfront.net^ÿ +.ÿï08@Rd25yl3zz7cfmzs.cloudfront.net^ +.ÿï08@Rd261u4g5nqprix.cloudfront.net^ +.ÿï08@Rd264dxqvolp03e.cloudfront.net^ +.ÿï08@Rd26adrx9c3n0mq.cloudfront.net^ +.ÿï08@Rd26e5rmb2qzuo3.cloudfront.net^ +.ÿï08@Rd26p9ecwyy9zqv.cloudfront.net^ +.ÿï08@Rd26yfyk0ym2k1u.cloudfront.net^ +.ÿï08@Rd27genukseznht.cloudfront.net^ +.ÿï08@Rd27gtglsu4f4y2.cloudfront.net^ +.ÿï08@Rd27pxpvfn42pgj.cloudfront.net^ +.ÿï08@Rd27qffx6rqb3qm.cloudfront.net^ +-ÿï08@Rd27tbpngbwa8i.cloudfront.net^ +.ÿï08@Rd27tzcmp091qxd.cloudfront.net^ +.ÿï08@Rd27x9po2cfinm5.cloudfront.net^ +.ÿï08@Rd28bcu8ltt2bxh.cloudfront.net^ +.ÿï08@Rd28exbmwuav7xa.cloudfront.net^ +.ÿï08@Rd28quk6sxoh2w5.cloudfront.net^ +.ÿï08@Rd28s7kbgrs6h2f.cloudfront.net^ +.ÿï08@Rd28tav62yh5xjt.cloudfront.net^ +.ÿï08@Rd28u86vqawvw52.cloudfront.net^ +.ÿï08@Rd28uhswspmvrhb.cloudfront.net^ +.ÿï08@Rd28xpw6kh69p7p.cloudfront.net^ +.ÿï08@Rd2906506rwyvg2.cloudfront.net^ +.ÿï08@Rd29bsjuqfmjd63.cloudfront.net^ +.ÿï08@Rd29dbajta0the9.cloudfront.net^ +.ÿï08@Rd29dzo8owxlzou.cloudfront.net^ +.ÿï08@Rd29gqhzevia104.cloudfront.net^ +.ÿï08@Rd29i6o40xcgdai.cloudfront.net^ +.ÿï08@Rd29mhxfd390ueb.cloudfront.net^ +.ÿï08@Rd29mxewlidfjg1.cloudfront.net^ +.ÿï08@Rd2a0tn74luqqde.cloudfront.net^ +.ÿï08@Rd2a0wk9ahruyzx.cloudfront.net^ +.ÿï08@Rd2a4qm4se0se0m.cloudfront.net^ +.ÿï08@Rd2a80scaiwzqau.cloudfront.net^ +.ÿï08@Rd2b12e9gh7m9il.cloudfront.net^ +.ÿï08@Rd2b4jmuffp1l21.cloudfront.net^ +.ÿï08@Rd2bbq3twedfo2f.cloudfront.net^ +.ÿï08@Rd2bkkt3kqfmyo0.cloudfront.net^ +.ÿï08@Rd2bvfdz3bljcfk.cloudfront.net^ +.ÿï08@Rd2bxqnokimz7h9.cloudfront.net^ +.ÿï08@Rd2bxxk33t58v29.cloudfront.net^ +.ÿï08@Rd2byenqwec055q.cloudfront.net^ +.ÿï08@Rd2byrpuyl3x3q4.cloudfront.net^ +.ÿï08@Rd2c2pscv8ayc0e.cloudfront.net^ +.ÿï08@Rd2c4ylitp1qu24.cloudfront.net^ +.ÿï08@Rd2c8v52ll5s99u.cloudfront.net^ +.ÿï08@Rd2camyomzxmxme.cloudfront.net^ +.ÿï08@Rd2cgumzzqhgmdu.cloudfront.net^ +.ÿï08@Rd2cmh8xu3ncrj2.cloudfront.net^ +.ÿï08@Rd2cq71i60vld65.cloudfront.net^ +.ÿï08@Rd2cqjjokdc31wb.cloudfront.net^ +.ÿï08@Rd2d8qsxiai9qwj.cloudfront.net^ +.ÿï08@Rd2db10c4rkv9vb.cloudfront.net^ +.ÿï08@Rd2dkurdav21mkk.cloudfront.net^ +.ÿï08@Rd2dyjetg3tc2wn.cloudfront.net^ +.ÿï08@Rd2e30rravz97d4.cloudfront.net^ +.ÿï08@Rd2e5x3k1s6dpd4.cloudfront.net^ +.ÿï08@Rd2e7rsjh22yn3g.cloudfront.net^ +.ÿï08@Rd2edfzx4ay42og.cloudfront.net^ +.ÿï08@Rd2ei3pn5qbemvt.cloudfront.net^ +.ÿï08@Rd2eklqgy1klqeu.cloudfront.net^ +.ÿï08@Rd2ele6m9umnaue.cloudfront.net^ +.ÿï08@Rd2elslrg1qbcem.cloudfront.net^ +.ÿï08@Rd2enprlhqqv4jf.cloudfront.net^ý +.ÿï08@Rd2eq4x4u2q3fwc.cloudfront.net^ +.ÿï08@Rd2er1uyk6qcknh.cloudfront.net^ +.ÿï08@Rd2ers4gi7coxau.cloudfront.net^ +.ÿï08@Rd2eyuq8th0eqll.cloudfront.net^ +.ÿï08@Rd2ezb29y2sin9e.cloudfront.net^ +.ÿï08@Rd2f0ixlrgtk7ff.cloudfront.net^ +.ÿï08@Rd2f0uviei09pxb.cloudfront.net^ +.ÿï08@Rd2fbkzyicji7c4.cloudfront.net^ +.ÿï08@Rd2fbvay81k4ji3.cloudfront.net^ +.ÿï08@Rd2fhrdu08h12cc.cloudfront.net^ +.ÿï08@Rd2fmtc7u4dp7b2.cloudfront.net^ +.ÿï08@Rd2focgxak1cn74.cloudfront.net^ +.ÿï08@Rd2foi16y3n0s3e.cloudfront.net^ +.ÿï08@Rd2fsfacjuqds81.cloudfront.net^ +.ÿï08@Rd2g6dhcga4weul.cloudfront.net^ +.ÿï08@Rd2g8ksx1za632p.cloudfront.net^ +.ÿï08@Rd2g9nmtuil60cb.cloudfront.net^ +.ÿï08@Rd2ga0x5nt7ml6e.cloudfront.net^ +.ÿï08@Rd2gc6r1h15ux9j.cloudfront.net^ +.ÿï08@Rd2ghscazvn398x.cloudfront.net^ +.ÿï08@Rd2glav2919q4cw.cloudfront.net^ +.ÿï08@Rd2h2t5pll64zl8.cloudfront.net^ +.ÿï08@Rd2h7xgu48ne6by.cloudfront.net^ +.ÿï08@Rd2h85i07ehs6ej.cloudfront.net^ +.ÿï08@Rd2hdyssxn6lpj2.cloudfront.net^ +.ÿï08@Rd2ho1n52p59mwv.cloudfront.net^ +.ÿï08@Rd2hvwfg7vv4mhf.cloudfront.net^ +.ÿï08@Rd2i4wzwe8j1np9.cloudfront.net^ +.ÿï08@Rd2i55s0cnk529c.cloudfront.net^ +-ÿï08@Rd2idmzrhlqydr.cloudfront.net^ +.ÿï08@Rd2it3a9l98tmsr.cloudfront.net^ +.ÿï08@Rd2izcn32j62dtp.cloudfront.net^ +.ÿï08@Rd2j042cj1421wi.cloudfront.net^ +.ÿï08@Rd2j45sh7zpklsw.cloudfront.net^ +.ÿï08@Rd2j71mqxljhlck.cloudfront.net^ +.ÿï08@Rd2jgbcah46jjed.cloudfront.net^ +.ÿï08@Rd2jgp81mjwggyr.cloudfront.net^ +.ÿï08@Rd2jp0uspx797vc.cloudfront.net^ +.ÿï08@Rd2jp87c2eoduan.cloudfront.net^ +.ÿï08@Rd2jtzjb71xckmj.cloudfront.net^ +.ÿï08@Rd2juccxzu13rax.cloudfront.net^ +.ÿï08@Rd2jw88zdm5mi8i.cloudfront.net^ +.ÿï08@Rd2k487jakgs1mb.cloudfront.net^ +.ÿï08@Rd2k7b1tjy36ro0.cloudfront.net^ +.ÿï08@Rd2k7gvkt8o1fo8.cloudfront.net^ +.ÿï08@Rd2kadvyeq051an.cloudfront.net^ +-ÿï08@Rd2kd9y1bp4zc6.cloudfront.net^ +.ÿï08@Rd2kecuadujf2df.cloudfront.net^ +.ÿï08@Rd2kgzdmv0vdycp.cloudfront.net^ +.ÿï08@Rd2khpmub947xov.cloudfront.net^ +.ÿï08@Rd2kk0o3fr7ed01.cloudfront.net^ +.ÿï08@Rd2kldhyijnaccr.cloudfront.net^ +.ÿï08@Rd2klx87bgzngce.cloudfront.net^ +.ÿï08@Rd2km1jjvhgh7xw.cloudfront.net^ +.ÿï08@Rd2kpucccxrl97x.cloudfront.net^ +.ÿï08@Rd2ksh1ccat0a7e.cloudfront.net^ +.ÿï08@Rd2kv6n94eruxg9.cloudfront.net^ +-ÿï08@Rd2l3f1n039mza.cloudfront.net^ +.ÿï08@Rd2lahoz916es9g.cloudfront.net^ +.ÿï08@Rd2lg0swrp15nsj.cloudfront.net^ +.ÿï08@Rd2lkw9p1eo8fp2.cloudfront.net^ +.ÿï08@Rd2lmura4qilvko.cloudfront.net^ +.ÿï08@Rd2lmzq02n8ij7j.cloudfront.net^ +.ÿï08@Rd2lp70uu6oz7vk.cloudfront.net^ÿ +.ÿï08@Rd2ltukojvgbso5.cloudfront.net^ +.ÿï08@Rd2lxammzjarx1n.cloudfront.net^ +.ÿï08@Rd2m6mzhbzc72b5.cloudfront.net^ +.ÿï08@Rd2m785nxw66jui.cloudfront.net^ +.ÿï08@Rd2m94lbnm5w6s8.cloudfront.net^ +.ÿï08@Rd2mic0r0bo3i6z.cloudfront.net^ +.ÿï08@Rd2mqdhonc9glku.cloudfront.net^ +.ÿï08@Rd2muzdhs7lpmo0.cloudfront.net^ +.ÿï08@Rd2mw3lu2jj5laf.cloudfront.net^ +.ÿï08@Rd2n2qdkjbbe2l7.cloudfront.net^ +.ÿï08@Rd2na2p72vtqyok.cloudfront.net^ +.ÿï08@Rd2nin2iqst0txp.cloudfront.net^ +.ÿï08@Rd2nlytvx51ywh9.cloudfront.net^ +.ÿï08@Rd2nz8k4xyoudsx.cloudfront.net^ +.ÿï08@Rd2o03z2xnyxlz5.cloudfront.net^ +.ÿï08@Rd2o51l6pktevii.cloudfront.net^ +.ÿï08@Rd2ob4whwpjvvpa.cloudfront.net^ +.ÿï08@Rd2ob6t3bgjo11t.cloudfront.net^ +.ÿï08@Rd2ohmkyg5w2c18.cloudfront.net^ +.ÿï08@Rd2ojfulajn60p5.cloudfront.net^ +.ÿï08@Rd2oouw5449k1qr.cloudfront.net^ +.ÿï08@Rd2osk0po1oybwz.cloudfront.net^ +.ÿï08@Rd2ov8ip31qpxly.cloudfront.net^ +.ÿï08@Rd2ovgc4ipdt6us.cloudfront.net^ +.ÿï08@Rd2oxs0429n9gfd.cloudfront.net^ +.ÿï08@Rd2oy22m6xey08r.cloudfront.net^ +.ÿï08@Rd2p0a1tiodf9z9.cloudfront.net^ +.ÿï08@Rd2p3vqj5z5rdwv.cloudfront.net^ +.ÿï08@Rd2p6p61as37cfr.cloudfront.net^ +.ÿï08@Rd2pdbggfzjbhzh.cloudfront.net^ +.ÿï08@Rd2pnacriyf41qm.cloudfront.net^ +.ÿï08@Rd2psma0az3acui.cloudfront.net^ +.ÿï08@Rd2pspvbdjxwkpo.cloudfront.net^ +.ÿï08@Rd2pxbld8wrqyrk.cloudfront.net^ +.ÿï08@Rd2q52i8yx3j68p.cloudfront.net^ +.ÿï08@Rd2q7jbv4xtaizs.cloudfront.net^ +.ÿï08@Rd2q9y3krdwohfj.cloudfront.net^ +.ÿï08@Rd2qf34ln5axea0.cloudfront.net^ +.ÿï08@Rd2qfd8ejsuejas.cloudfront.net^ +.ÿï08@Rd2qhuw8qcxnldj.cloudfront.net^ +.ÿï08@Rd2qn0djb6oujlt.cloudfront.net^ +.ÿï08@Rd2qnx6y010m4rt.cloudfront.net^ +.ÿï08@Rd2qqc8ssywi4j6.cloudfront.net^ +.ÿï08@Rd2qz7ofajpstv5.cloudfront.net^ +.ÿï08@Rd2r2yqcp8sshc6.cloudfront.net^ +.ÿï08@Rd2r3rw91i5z1w9.cloudfront.net^ +.ÿï08@Rd2rd7z2m36o6ty.cloudfront.net^ +.ÿï08@Rd2rseg7z47iaz3.cloudfront.net^ +.ÿï08@Rd2rsvcm1r8uvmf.cloudfront.net^ +.ÿï08@Rd2rx475ezvxy0h.cloudfront.net^ +.ÿï08@Rd2s31asn9gp5vl.cloudfront.net^ +.ÿï08@Rd2s9nyc35a225l.cloudfront.net^ +.ÿï08@Rd2sbzwmcg5amr3.cloudfront.net^ +.ÿï08@Rd2sffavqvyl9dp.cloudfront.net^ +.ÿï08@Rd2sj2q93t0dtyb.cloudfront.net^ +.ÿï08@Rd2sn24mi2gn24v.cloudfront.net^ +.ÿï08@Rd2sp5g360gsxjh.cloudfront.net^ +.ÿï08@Rd2sucq8qh4zqzj.cloudfront.net^ +.ÿï08@Rd2t3s3gh1l6poi.cloudfront.net^ +.ÿï08@Rd2t47qpr8mdhkz.cloudfront.net^ +.ÿï08@Rd2t72ftdissnrr.cloudfront.net^ +-ÿï08@Rd2taktuuo4oqx.cloudfront.net^ +.ÿï08@Rd2tbszkvx1p56e.cloudfront.net^ +.ÿï08@Rd2tc1zttji8e3a.cloudfront.net^þ +.ÿï08@Rd2tkdzior84vck.cloudfront.net^ +.ÿï08@Rd2tvgfsghnrkwb.cloudfront.net^ +.ÿï08@Rd2u2lv2h6u18yc.cloudfront.net^ +.ÿï08@Rd2u4fn5ca4m3v6.cloudfront.net^ +.ÿï08@Rd2uaktjl22qvg4.cloudfront.net^ +-ÿï08@Rd2uap9jskdzp2.cloudfront.net^ +.ÿï08@Rd2udkjdo48yngu.cloudfront.net^ +.ÿï08@Rd2uhnetoehh304.cloudfront.net^ +.ÿï08@Rd2uu46itxfd65q.cloudfront.net^ +.ÿï08@Rd2uy8iq3fi50kh.cloudfront.net^ +.ÿï08@Rd2uyi99y1mkn17.cloudfront.net^ +.ÿï08@Rd2v02itv0y9u9t.cloudfront.net^ +.ÿï08@Rd2v4wf9my00msd.cloudfront.net^ +.ÿï08@Rd2va1d0hpla18n.cloudfront.net^ +.ÿï08@Rd2vmavw0uawm2t.cloudfront.net^ +.ÿï08@Rd2vorijeeka2cf.cloudfront.net^ +.ÿï08@Rd2vptth0euqbxm.cloudfront.net^ +.ÿï08@Rd2vvyk8pqw001z.cloudfront.net^ +.ÿï08@Rd2vwl2vhlatm2f.cloudfront.net^ +.ÿï08@Rd2vwsmst56j4zq.cloudfront.net^ +.ÿï08@Rd2w92zbcg4cwxr.cloudfront.net^ +.ÿï08@Rd2w9cdu84xc4eq.cloudfront.net^ +.ÿï08@Rd2werg7o2mztut.cloudfront.net^ +.ÿï08@Rd2wexw25ezayh1.cloudfront.net^ +.ÿï08@Rd2wpx0eqgykz4q.cloudfront.net^ +.ÿï08@Rd2x0u7rtw4p89p.cloudfront.net^ +.ÿï08@Rd2x19ia47o8gwm.cloudfront.net^ +.ÿï08@Rd2xct5bvixoxmj.cloudfront.net^ +.ÿï08@Rd2xng9e6gymuzr.cloudfront.net^ +.ÿï08@Rd2y1lr6nqzfgkq.cloudfront.net^ +.ÿï08@Rd2y8ttytgze7qt.cloudfront.net^ +.ÿï08@Rd2yc6hxtq0phup.cloudfront.net^ +.ÿï08@Rd2yeczd6cyyd0z.cloudfront.net^ +.ÿï08@Rd2ykons4g8jre6.cloudfront.net^ +.ÿï08@Rd2ywv53s25fi6c.cloudfront.net^ +.ÿï08@Rd2z51a9spn09cw.cloudfront.net^ +.ÿï08@Rd2zbpgxs57sg1k.cloudfront.net^ +.ÿï08@Rd2zbrsgwxpxcye.cloudfront.net^ +.ÿï08@Rd2zcblk8m9mzq5.cloudfront.net^ +.ÿï08@Rd2zf5gu5e5mp87.cloudfront.net^ +-ÿï08@Rd2zh7okxrw0ix.cloudfront.net^ +.ÿï08@Rd2zi8ra5rb7m89.cloudfront.net^ +.ÿï08@Rd2zk8mk8hghu3d.cloudfront.net^ +.ÿï08@Rd2zrhnhjlfcuhf.cloudfront.net^ +.ÿï08@Rd2zzazjvlpgmgi.cloudfront.net^ +.ÿï08@Rd300jm499woj5o.cloudfront.net^ +.ÿï08@Rd301cxwfymy227.cloudfront.net^ +.ÿï08@Rd30sxnvlkawtwa.cloudfront.net^ +.ÿï08@Rd30tme16wdjle5.cloudfront.net^ +.ÿï08@Rd30ts2zph80iw7.cloudfront.net^ +.ÿï08@Rd30vnp3fqcdhq5.cloudfront.net^ +.ÿï08@Rd30yd3ryh0wmud.cloudfront.net^ +.ÿï08@Rd313lzv9559yp9.cloudfront.net^ +.ÿï08@Rd31h09ditj91uf.cloudfront.net^ +.ÿï08@Rd31m6w8i2nx65e.cloudfront.net^ +.ÿï08@Rd31mxuhvwrofft.cloudfront.net^ +.ÿï08@Rd31o2k8hutiibd.cloudfront.net^ +.ÿï08@Rd31ph8fftb4r3x.cloudfront.net^ +.ÿï08@Rd31rse9wo0bxcx.cloudfront.net^ +.ÿï08@Rd31s5xi4eq6l6p.cloudfront.net^ +.ÿï08@Rd31vxm9ubutrmw.cloudfront.net^ +.ÿï08@Rd31y1abh02y2oj.cloudfront.net^ +.ÿï08@Rd325d2mtoblkfq.cloudfront.net^ +.ÿï08@Rd3291gn845t5h9.cloudfront.net^ƒ +.ÿï08@Rd32bug9eb0g0bh.cloudfront.net^ +.ÿï08@Rd32d89surjhks4.cloudfront.net^ +.ÿï08@Rd32h65j3m1jqfb.cloudfront.net^ +.ÿï08@Rd32hwlnfiv2gyn.cloudfront.net^ +.ÿï08@Rd32kwu6pkckni5.cloudfront.net^ +.ÿï08@Rd32t6p7tldxil2.cloudfront.net^ +.ÿï08@Rd333p98mzatwjz.cloudfront.net^ +.ÿï08@Rd33bakhpv0qxhf.cloudfront.net^ +.ÿï08@Rd33fc9uy0cnxl9.cloudfront.net^ +.ÿï08@Rd33gmheck9s2xl.cloudfront.net^ +.ÿï08@Rd33otidwg56k90.cloudfront.net^ +.ÿï08@Rd33u55zn5p3wfg.cloudfront.net^ +.ÿï08@Rd33vskbmxds8k1.cloudfront.net^ +.ÿï08@Rd347nuc6bd1dvs.cloudfront.net^ +.ÿï08@Rd34cixo0lr52lw.cloudfront.net^ +.ÿï08@Rd34gjfm75zhp78.cloudfront.net^ +.ÿï08@Rd34opff713c3gh.cloudfront.net^ +.ÿï08@Rd34qb8suadcc4g.cloudfront.net^ +.ÿï08@Rd34rdvn2ky3gnm.cloudfront.net^ +.ÿï08@Rd34s743ec78v2w.cloudfront.net^ +.ÿï08@Rd34zwq0l4x27a6.cloudfront.net^ +.ÿï08@Rd351vdyu7tl62o.cloudfront.net^ +1ÿï08@R!d3584kspbipfh3.cloudfront.net/cm/ +.ÿï08@Rd359rg6zejsvwi.cloudfront.net^ +.ÿï08@Rd359wjs9dpy12d.cloudfront.net^ +.ÿï08@Rd35fnytsc51gnr.cloudfront.net^ +.ÿï08@Rd35kbxc0t24sp8.cloudfront.net^ +.ÿï08@Rd35nmq1qnoxdb9.cloudfront.net^ +.ÿï08@Rd35ve945gykp9v.cloudfront.net^ +.ÿï08@Rd362plazjjo29c.cloudfront.net^ +.ÿï08@Rd36gnquzy6rtyp.cloudfront.net^ +.ÿï08@Rd36s9tmu0jh8rd.cloudfront.net^ +.ÿï08@Rd36un5ytqxjgkq.cloudfront.net^ +.ÿï08@Rd36zfztxfflmqo.cloudfront.net^ +.ÿï08@Rd370hf5nfmhbjy.cloudfront.net^ +.ÿï08@Rd379fkejtn2clk.cloudfront.net^ +.ÿï08@Rd37abonb6ucrhx.cloudfront.net^ +.ÿï08@Rd37ax1qs52h69r.cloudfront.net^ +.ÿï08@Rd37byya7cvg7qr.cloudfront.net^ +.ÿï08@Rd37pempw0ijqri.cloudfront.net^ +.ÿï08@Rd37sevptuztre3.cloudfront.net^ +.ÿï08@Rd37tb4r0t9g99j.cloudfront.net^ +.ÿï08@Rd38190um0l9h9v.cloudfront.net^ +.ÿï08@Rd38b9p5p6tfonb.cloudfront.net^ +.ÿï08@Rd38goz54x5g9rw.cloudfront.net^ +.ÿï08@Rd38itq6vdv6gr9.cloudfront.net^ +.ÿï08@Rd38psrni17bvxu.cloudfront.net^ +.ÿï08@Rd38rrxgee6j9l3.cloudfront.net^ +.ÿï08@Rd390icj1ta4x0p.cloudfront.net^ +.ÿï08@Rd396osuty6rfec.cloudfront.net^ +.ÿï08@Rd399jvos5it4fl.cloudfront.net^ +.ÿï08@Rd39hdzmeufnl50.cloudfront.net^ +.ÿï08@Rd39xdhxlbi0rlm.cloudfront.net^ +.ÿï08@Rd39xkyrc56llbg.cloudfront.net^ +.ÿï08@Rd39xxywi4dmut5.cloudfront.net^ +.ÿï08@Rd3a49eam5ump99.cloudfront.net^ +.ÿï08@Rd3a781y1fb2dm6.cloudfront.net^ +.ÿï08@Rd3aajkp07o1e4y.cloudfront.net^ +.ÿï08@Rd3ahinqqx1dy5v.cloudfront.net^ +.ÿï08@Rd3akmxskpi6zai.cloudfront.net^ +.ÿï08@Rd3asksgk2foh5m.cloudfront.net^ +.ÿï08@Rd3b2hhehkqd158.cloudfront.net^ +.ÿï08@Rd3b4u8mwtkp9dd.cloudfront.net^ +.ÿï08@Rd3bbyfw7v2aifi.cloudfront.net^ÿ +.ÿï08@Rd3beefy8kd1pr7.cloudfront.net^ +.ÿï08@Rd3bfricg2zhkdf.cloudfront.net^ +.ÿï08@Rd3boleenfhg2gk.cloudfront.net^ +.ÿï08@Rd3bviecoc049je.cloudfront.net^ +-ÿï08@Rd3c3uihon9kmp.cloudfront.net^ +.ÿï08@Rd3c8j8snkzfr1n.cloudfront.net^ +.ÿï08@Rd3cesrg5igdcgt.cloudfront.net^ +.ÿï08@Rd3cl0ipbob7kki.cloudfront.net^ +.ÿï08@Rd3cod80thn7qnd.cloudfront.net^ +.ÿï08@Rd3cpib6kv2rja7.cloudfront.net^ +.ÿï08@Rd3cwzq09n68ejj.cloudfront.net^ +.ÿï08@Rd3cynajatn2qbc.cloudfront.net^ +.ÿï08@Rd3d0wndor0l4xe.cloudfront.net^ +.ÿï08@Rd3d54j7si4woql.cloudfront.net^ +.ÿï08@Rd3d9gb3ic8fsgg.cloudfront.net^ +.ÿï08@Rd3d9pt4go32tk8.cloudfront.net^ +.ÿï08@Rd3dq1nh1l1pzqy.cloudfront.net^ +.ÿï08@Rd3ea0dyj1ehgcr.cloudfront.net^ +.ÿï08@Rd3ec0pbimicc4r.cloudfront.net^ +.ÿï08@Rd3efeah7vk80fy.cloudfront.net^ +.ÿï08@Rd3ej838ds58re9.cloudfront.net^ +.ÿï08@Rd3ejxyz09ctey7.cloudfront.net^ +.ÿï08@Rd3eksfxlf7bv9h.cloudfront.net^ +.ÿï08@Rd3ep3jwb1mgn3k.cloudfront.net^ +.ÿï08@Rd3ept9mddcbuhi.cloudfront.net^ +.ÿï08@Rd3eub2e21dc6h0.cloudfront.net^ +.ÿï08@Rd3evio1yid77jr.cloudfront.net^ +.ÿï08@Rd3eyi07eikbx0y.cloudfront.net^ +.ÿï08@Rd3f1m03rbb66gy.cloudfront.net^ +.ÿï08@Rd3f1wcxz2rdrik.cloudfront.net^ +.ÿï08@Rd3f4nuq5dskrej.cloudfront.net^ +.ÿï08@Rd3f57yjqilgssy.cloudfront.net^ +.ÿï08@Rd3ff60r8himt67.cloudfront.net^ +.ÿï08@Rd3flai6f7brtcx.cloudfront.net^ +.ÿï08@Rd3frqqoat98cng.cloudfront.net^ +.ÿï08@Rd3g4s1p0bmuj5f.cloudfront.net^ +.ÿï08@Rd3g5ovfngjw9bw.cloudfront.net^ +.ÿï08@Rd3gaegctu6cvoa.cloudfront.net^ +.ÿï08@Rd3gi4w10ruedfh.cloudfront.net^ +.ÿï08@Rd3glbzj5024wpt.cloudfront.net^ +.ÿï08@Rd3glxtkdbno0so.cloudfront.net^ +.ÿï08@Rd3h2eyuxrf2jr9.cloudfront.net^ +.ÿï08@Rd3hfiiy55cbi5t.cloudfront.net^ +.ÿï08@Rd3hib26r77jdus.cloudfront.net^ +.ÿï08@Rd3hitamb7drqut.cloudfront.net^ +.ÿï08@Rd3hj4iyx6t1waz.cloudfront.net^ +.ÿï08@Rd3hnq31zdoi8ks.cloudfront.net^ +.ÿï08@Rd3hs51abvkuanv.cloudfront.net^ +.ÿï08@Rd3hv9xfqzxy46o.cloudfront.net^ +.ÿï08@Rd3hyjqptbt9dpx.cloudfront.net^ +.ÿï08@Rd3hyoy1d16gfg0.cloudfront.net^ +.ÿï08@Rd3i28n8laz9lyd.cloudfront.net^ +.ÿï08@Rd3ikgzh4osba2b.cloudfront.net^ +.ÿï08@Rd3imksvhtbujlm.cloudfront.net^ +.ÿï08@Rd3ithbwcmjcxl7.cloudfront.net^ +.ÿï08@Rd3j3yrurxcqogk.cloudfront.net^ +.ÿï08@Rd3j7esvm4tntxq.cloudfront.net^ +.ÿï08@Rd3j9574la231rm.cloudfront.net^ +.ÿï08@Rd3jdulus8lb392.cloudfront.net^ +.ÿï08@Rd3jdzopz39efs7.cloudfront.net^ +.ÿï08@Rd3jzhqnvnvdy34.cloudfront.net^ +.ÿï08@Rd3k2wzdv9kuerp.cloudfront.net^ +.ÿï08@Rd3kblkhdtjv0tf.cloudfront.net^ +.ÿï08@Rd3kd7yqlh5wy6d.cloudfront.net^‰ +.ÿï08@Rd3klfyy4pvmpzb.cloudfront.net^ +.ÿï08@Rd3kpkrgd3aj4o7.cloudfront.net^ +.ÿï08@Rd3l320urli0p1u.cloudfront.net^ +.ÿï08@Rd3lcz8vpax4lo2.cloudfront.net^ +.ÿï08@Rd3lk5upv0ixky2.cloudfront.net^ +.ÿï08@Rd3lliyjbt3afgo.cloudfront.net^ +.ÿï08@Rd3ln1qrnwms3rd.cloudfront.net^ +.ÿï08@Rd3lppnezw695ey.cloudfront.net^ +.ÿï08@Rd3lvr7yuk4uaui.cloudfront.net^ +.ÿï08@Rd3lw2k94jnkvbs.cloudfront.net^ +.ÿï08@Rd3lwdybbvxc4v9.cloudfront.net^ +.ÿï08@Rd3m4hp4bp4w996.cloudfront.net^ +.ÿï08@Rd3m8nzcefuqu7h.cloudfront.net^ +.ÿï08@Rd3m9ng807i447x.cloudfront.net^ +;ÿï08@R+d3mmnnn9s2dcmq.cloudfront.net/shim/embed.js +-ÿï08@Rd3mqyj199tigh.cloudfront.net^ +.ÿï08@Rd3mr7y154d2qg5.cloudfront.net^ +.ÿï08@Rd3mshiiq22wqhz.cloudfront.net^ +.ÿï08@Rd3mt4q5p9blrvc.cloudfront.net^ +.ÿï08@Rd3mzokty951c5w.cloudfront.net^ +.ÿï08@Rd3n3a4vl82t80h.cloudfront.net^ +.ÿï08@Rd3n4krap0yfivk.cloudfront.net^ +.ÿï08@Rd3n7ct9nohphbs.cloudfront.net^ +.ÿï08@Rd3n9c6iuvomkjk.cloudfront.net^ +.ÿï08@Rd3nel6rcmq5lzw.cloudfront.net^ +.ÿï08@Rd3ngt858zasqwf.cloudfront.net^ +.ÿï08@Rd3nj94pigtgs7y.cloudfront.net^ +.ÿï08@Rd3numuoibysgi8.cloudfront.net^ +.ÿï08@Rd3nvrqlo8rj1kw.cloudfront.net^ +.ÿï08@Rd3nz96k4xfpkvu.cloudfront.net^ +.ÿï08@Rd3o9njeb29ydop.cloudfront.net^ +.ÿï08@Rd3og8t183i1vbg.cloudfront.net^ +.ÿï08@Rd3ohee25hhsn8j.cloudfront.net^ +.ÿï08@Rd3op2vgjk53ps1.cloudfront.net^ +.ÿï08@Rd3oq85vya4e39p.cloudfront.net^ +-ÿï08@Rd3otiqb4j0158.cloudfront.net^ +.ÿï08@Rd3ou4areduq72f.cloudfront.net^ +.ÿï08@Rd3oy68whu51rnt.cloudfront.net^ +.ÿï08@Rd3p8w7to4066sy.cloudfront.net^ +.ÿï08@Rd3p9nm1ictat1y.cloudfront.net^ +.ÿï08@Rd3pe8wzpurrzss.cloudfront.net^ +.ÿï08@Rd3phzb7fk3uhin.cloudfront.net^ +.ÿï08@Rd3pk1qkob3uzgp.cloudfront.net^ +.ÿï08@Rd3pvcolmug0tz6.cloudfront.net^ +-ÿï08@Rd3q33rbmdkxzj.cloudfront.net^ +.ÿï08@Rd3q762vmkbqrah.cloudfront.net^ +.ÿï08@Rd3qeaw5w9eu3lm.cloudfront.net^ +-ÿï08@Rd3qgd3yzs41yp.cloudfront.net^ +.ÿï08@Rd3qilfrpqzfrg4.cloudfront.net^ +.ÿï08@Rd3qinhqny4thfo.cloudfront.net^ +.ÿï08@Rd3qoo9sgtleqbe.cloudfront.net^ +.ÿï08@Rd3qqmto1pjgya6.cloudfront.net^ +.ÿï08@Rd3qttli028txpv.cloudfront.net^ +.ÿï08@Rd3qu0b872n4q3x.cloudfront.net^ +.ÿï08@Rd3qxd84135kurx.cloudfront.net^ +.ÿï08@Rd3qygewatvuv28.cloudfront.net^ +.ÿï08@Rd3rb9wasp2y8gw.cloudfront.net^ +.ÿï08@Rd3rjndf2qggsna.cloudfront.net^ +.ÿï08@Rd3rkkddryl936d.cloudfront.net^ +.ÿï08@Rd3rlh0lneatqqc.cloudfront.net^ +.ÿï08@Rd3rr3d0n31t48m.cloudfront.net^ +.ÿï08@Rd3rxqouo2bn71j.cloudfront.net^ +.ÿï08@Rd3s40ry602uhj1.cloudfront.net^ +.ÿï08@Rd3sdfpysdncs72.cloudfront.net^ó +.ÿï08@Rd3sdg6egu48sqx.cloudfront.net^ +.ÿï08@Rd3skqyr7uryv9z.cloudfront.net^ +.ÿï08@Rd3sof4x9nlmbgy.cloudfront.net^ +.ÿï08@Rd3srxd2wvksmqd.cloudfront.net^ +.ÿï08@Rd3t16rotvvsanj.cloudfront.net^ +.ÿï08@Rd3t3bxixsojwre.cloudfront.net^ +.ÿï08@Rd3t3lxfqz2g5hs.cloudfront.net^ +.ÿï08@Rd3t3z4teexdk2r.cloudfront.net^ +.ÿï08@Rd3t5ngjixpjdho.cloudfront.net^ +.ÿï08@Rd3t87ooo0697p8.cloudfront.net^ +.ÿï08@Rd3t9wb555jg65y.cloudfront.net^ +.ÿï08@Rd3tfeohk35h2ye.cloudfront.net^ +.ÿï08@Rd3tfz9q9zlwk84.cloudfront.net^ +.ÿï08@Rd3tjml0i5ek35w.cloudfront.net^ +.ÿï08@Rd3tnmn8yxiwfkj.cloudfront.net^ +.ÿï08@Rd3tozt7si7bmf7.cloudfront.net^ +.ÿï08@Rd3u0wd7ppfhcxv.cloudfront.net^ +.ÿï08@Rd3u598arehftfk.cloudfront.net^ +.ÿï08@Rd3ubdcv1nz4dub.cloudfront.net^ +.ÿï08@Rd3ud741uvs727m.cloudfront.net^ +.ÿï08@Rd3ugwbjwrb0qbd.cloudfront.net^ +.ÿï08@Rd3uj0uhi43axgb.cloudfront.net^ +.ÿï08@Rd3uqm14ppr8tkw.cloudfront.net^ +.ÿï08@Rd3uvwdhukmp6v9.cloudfront.net^ +.ÿï08@Rd3v3bqdndm4erx.cloudfront.net^ +.ÿï08@Rd3vnm1492fpnm2.cloudfront.net^ +.ÿï08@Rd3vp85u5z4wlqf.cloudfront.net^ +.ÿï08@Rd3vpf6i51y286p.cloudfront.net^ +.ÿï08@Rd3vsc1wu2k3z85.cloudfront.net^ +.ÿï08@Rd3vvrup2jpfiep.cloudfront.net^ +.ÿï08@Rd3vw4uehoh23hx.cloudfront.net^ +-ÿï08@Rd3x0jb14w6nqz.cloudfront.net^ +-ÿï08@Rd3yl7tmbqe1mq.cloudfront.net^ +-ÿï08@Rd3zd5ejbi4l9w.cloudfront.net^ +-ÿï08@Rd415l8qlhk6u6.cloudfront.net^ +,ÿï08@Rd41j1hzuhqg2.cloudfront.net^ +-ÿï08@Rd4bt5tknhzghh.cloudfront.net^ +-ÿï08@Rd4eqyxjqusvjj.cloudfront.net^ +-ÿï08@Rd4ngwggzm3w7j.cloudfront.net^ +-ÿï08@Rd5d3sg85gu7o6.cloudfront.net^ +-ÿï08@Rd5onopbfw009h.cloudfront.net^ +-ÿï08@Rd5wxfe8ietrpg.cloudfront.net^ +-ÿï08@Rd5xsfddfzb99g.cloudfront.net^ +-ÿï08@Rd63a3au5lqmtu.cloudfront.net^ +,ÿï08@Rd6cto2pyf2ks.cloudfront.net^ +-ÿï08@Rd6deij4k3ikap.cloudfront.net^ +-ÿï08@Rd6l5p6w9iib9r.cloudfront.net^ +-ÿï08@Rd6sav80kktzcx.cloudfront.net^ +-ÿï08@Rd6wzv57amlrv3.cloudfront.net^ +-ÿï08@Rd7016uqa4s0lw.cloudfront.net^ +-ÿï08@Rd7dza8s7j2am6.cloudfront.net^ +-ÿï08@Rd7gse3go4026a.cloudfront.net^ +-ÿï08@Rd7jpk19dne0nn.cloudfront.net^ +-ÿï08@Rd7oskmhnq7sot.cloudfront.net^ +-ÿï08@Rd7po8h5dek3wm.cloudfront.net^ +-ÿï08@Rd7tst6bnt99p2.cloudfront.net^ +Dÿï* +wrapbootstrap.com08@Rd85wutc1n854v.cloudfront.net^ +-ÿï08@Rd8a69dni6x2i5.cloudfront.net^ +-ÿï08@Rd8bsqfpnw46ux.cloudfront.net^ +-ÿï08@Rd8cxnvx3e75nn.cloudfront.net^ +,ÿï08@Rd8dcj5iif1uz.cloudfront.net^ +-ÿï08@Rd8dkar87wogoy.cloudfront.net^ +-ÿï08@Rd8hdm94ldw8yr.cloudfront.net^ +-ÿï08@Rd8sllv1cwflbw.cloudfront.net^À +-ÿï08@Rd8xy39jrbjbcq.cloudfront.net^ +-ÿï08@Rd91i6bsb0ef59.cloudfront.net^ +-ÿï08@Rd9b5gfwt6p05u.cloudfront.net^ +-ÿï08@Rd9c5dterekrjd.cloudfront.net^ +-ÿï08@Rd9cshxmf0qazr.cloudfront.net^ +-ÿï08@Rd9leupuz17y6i.cloudfront.net^ +-ÿï08@Rd9qjkk0othy76.cloudfront.net^ +-ÿï08@Rd9r4lqt28t1fm.cloudfront.net^ +-ÿï08@Rd9yk47of1efyy.cloudfront.net^ +-ÿï08@Rda26k71rxh0kb.cloudfront.net^ +-ÿï08@Rda327va27j0hh.cloudfront.net^ +-ÿï08@Rda3uf5ucdz00u.cloudfront.net^ +-ÿï08@Rda5h676k6d22w.cloudfront.net^ +-ÿï08@Rda656buijq2gw.cloudfront.net^ +-ÿï08@Rda6zbf1armlme.cloudfront.net^ +-ÿï08@Rdagd0kz7sipfl.cloudfront.net^ +-ÿï08@Rdal9hkyfi0m0n.cloudfront.net^ +-ÿï08@Rday13vh1xl0gh.cloudfront.net^ +-ÿï08@Rdazu57wmpm14b.cloudfront.net^ +-ÿï08@Rdb033pq6bj64g.cloudfront.net^ +-ÿï08@Rdb4zl9wffwnmb.cloudfront.net^ +-ÿï08@Rdba9ytko5p72r.cloudfront.net^ +-ÿï08@Rdbcdqp72lzmvj.cloudfront.net^ +-ÿï08@Rdbfu2bd09j3ln.cloudfront.net^ +-ÿï08@Rdbfv8ylr8ykfg.cloudfront.net^ +-ÿï08@Rdbrpevozgux5y.cloudfront.net^ +-ÿï08@Rdbujksp6lhljo.cloudfront.net^ +-ÿï08@Rdbw7j2q14is6l.cloudfront.net^ +-ÿï08@Rdby7kx9z9yzse.cloudfront.net^ +-ÿï08@Rdc08i221b0n8a.cloudfront.net^ +-ÿï08@Rdc5k8fg5ioc8s.cloudfront.net^ +-ÿï08@Rdcai7bdiz5toz.cloudfront.net^ +-ÿï08@Rdcbbwymp1bhlf.cloudfront.net^ +-ÿï08@Rdczhbhtz52fpi.cloudfront.net^ +-ÿï08@Rdd6ym5in4ovm3.cloudfront.net^ +-ÿï08@Rddlh1467paih3.cloudfront.net^ +-ÿï08@Rddmuiijrdvv0s.cloudfront.net^ +-ÿï08@Rddrvjrfwnij7n.cloudfront.net^ +-ÿï08@Rddvbjehruuj5y.cloudfront.net^ +-ÿï08@Rddvfoj5yrl2oi.cloudfront.net^ +-ÿï08@Rddxwjtou7avz0.cloudfront.net^ +-ÿï08@Rddzswov1e84sp.cloudfront.net^ +-ÿï08@Rde2nsnw1i3egd.cloudfront.net^ +-ÿï08@Rdea9webxhb7gu.cloudfront.net^ +-ÿï08@Rdefppmasu35cw.cloudfront.net^ +-ÿï08@Rdeguxtdhf6d01.cloudfront.net^ +-ÿï08@Rdeisd5o6v8rgq.cloudfront.net^ +-ÿï08@Rdesgao1zt7irn.cloudfront.net^ +-ÿï08@Rdew9ckzjyt2gn.cloudfront.net^ +-ÿï08@Rdf80k0z3fi8zg.cloudfront.net^ +-ÿï08@Rdfh48z16zqvm6.cloudfront.net^ +-ÿï08@Rdfidhqoaunepq.cloudfront.net^ +-ÿï08@Rdfiqvf0syzl54.cloudfront.net^ +-ÿï08@Rdfqcp2awt0947.cloudfront.net^ +-ÿï08@Rdfwbfr2blhmr5.cloudfront.net^ +-ÿï08@Rdfwp6qatulz0p.cloudfront.net^ +-ÿï08@Rdg0hrtzcus4q4.cloudfront.net^ +-ÿï08@Rdg6gu9iqplusg.cloudfront.net^ +-ÿï08@Rdg7k1tpeaxzcq.cloudfront.net^ +-ÿï08@Rdg9sw33hxt5i7.cloudfront.net^ +-ÿï08@Rdgw7ae5vrovs7.cloudfront.net^ +-ÿï08@Rdgyrizngtcfck.cloudfront.net^ +-ÿï08@Rdh6dm31izb875.cloudfront.net^ +-ÿï08@Rdhcmni6m2kkyw.cloudfront.net^¾ +-ÿï08@Rdhrhzii89gpwo.cloudfront.net^ +-ÿï08@Rdi028lywwye7s.cloudfront.net^ +-ÿï08@Rdi2e2m1cmrtc9.cloudfront.net^ +-ÿï08@Rdi2xlfgjbl0v7.cloudfront.net^ +-ÿï08@Rdihutyaiafuhr.cloudfront.net^ +-ÿï08@Rdil4q0t0blrf8.cloudfront.net^ +-ÿï08@Rdilvyi2h98h1q.cloudfront.net^ +,ÿï08@Rdiqftdf1fp8u.cloudfront.net^ +-ÿï08@Rdita6jhhqwoiz.cloudfront.net^ +-ÿï08@Rdivekcl7q9fxi.cloudfront.net^ +-ÿï08@Rdiz4z73aymwyp.cloudfront.net^ +-ÿï08@Rdjm080u34wfc5.cloudfront.net^ +-ÿï08@Rdjnaivalj34ub.cloudfront.net^ +-ÿï08@Rdjr4k68f8n55o.cloudfront.net^ +-ÿï08@Rdjucew6ul1t0k.cloudfront.net^ +-ÿï08@Rdjv99sxoqpv11.cloudfront.net^ +-ÿï08@Rdjvby0s5wa7p7.cloudfront.net^ +-ÿï08@Rdjz9es32qen64.cloudfront.net^ +-ÿï08@Rdk4w74mt6naf3.cloudfront.net^ +-ÿï08@Rdk57sacpbi4by.cloudfront.net^ +-ÿï08@Rdkgp834o9n8xl.cloudfront.net^ +-ÿï08@Rdkm6b5q0h53z4.cloudfront.net^ +-ÿï08@Rdknnlu3s1bnz7.cloudfront.net^ +-ÿï08@Rdkre4lyk6a9bt.cloudfront.net^ +-ÿï08@Rdktr03lf4tq7h.cloudfront.net^ +-ÿï08@Rdkvtbjavjme96.cloudfront.net^ +-ÿï08@Rdkyp75kj7ldlr.cloudfront.net^ +-ÿï08@Rdl37p9e5e1vn0.cloudfront.net^ +-ÿï08@Rdl5ft52dtazxd.cloudfront.net^ +-ÿï08@Rdlem1deojpcg7.cloudfront.net^ +-ÿï08@Rdlh8c15zw7vfn.cloudfront.net^ +-ÿï08@Rdlmr7hpb2buud.cloudfront.net^ +-ÿï08@Rdlne6myudrxi1.cloudfront.net^ +-ÿï08@Rdlooqrhebkjoh.cloudfront.net^ +-ÿï08@Rdlrioxg1637dk.cloudfront.net^ +-ÿï08@Rdltqxz76sim1s.cloudfront.net^ +-ÿï08@Rdltvkwr7nbdlj.cloudfront.net^ +-ÿï08@Rdlvds9i67c60j.cloudfront.net^ +-ÿï08@Rdlxk2dj1h3e83.cloudfront.net^ +-ÿï08@Rdm0acvguygm9h.cloudfront.net^ +-ÿï08@Rdm0ly9ibqkdxn.cloudfront.net^ +-ÿï08@Rdm0t14ck8pg86.cloudfront.net^ +-ÿï08@Rdm50eugvywuiu.cloudfront.net^ +-ÿï08@Rdm62uysn32ppt.cloudfront.net^ +-ÿï08@Rdm7gsepi27zsx.cloudfront.net^ +-ÿï08@Rdm7ii62qkhy9z.cloudfront.net^ +-ÿï08@Rdmeq7blex6x1u.cloudfront.net^ +-ÿï08@Rdmg0877nfcvqj.cloudfront.net^ +-ÿï08@Rdmkdtkad2jyb9.cloudfront.net^ +-ÿï08@Rdmmzkfd82wayn.cloudfront.net^ +-ÿï08@Rdmz3nd5oywtsw.cloudfront.net^ +-ÿï08@Rdn3uy6cx65ujf.cloudfront.net^ +-ÿï08@Rdn6rwwtxa647p.cloudfront.net^ +-ÿï08@Rdn7u3i0t165w2.cloudfront.net^ +-ÿï08@Rdn9uzzhcwc0ya.cloudfront.net^ +-ÿï08@Rdne6rbzy5csnc.cloudfront.net^ +-ÿï08@Rdnf06i4y06g13.cloudfront.net^ +-ÿï08@Rdnhfi5nn2dt67.cloudfront.net^ +-ÿï08@Rdnks065sb0ww6.cloudfront.net^ +-ÿï08@Rdnre5xkn2r25r.cloudfront.net^ +-ÿï08@Rdo0digwedphcm.cloudfront.net^ +-ÿï08@Rdo1dns3y1w33m.cloudfront.net^ +,ÿï08@Rdo6256x8ae75.cloudfront.net^ +-ÿï08@Rdo69ll745l27z.cloudfront.net^¿ +-ÿï08@Rdoc830ytc7pyp.cloudfront.net^ +-ÿï08@Rdodk8rb03jif9.cloudfront.net^ +-ÿï08@Rdof9zd9l290mz.cloudfront.net^ +-ÿï08@Rdog89nqcp3al4.cloudfront.net^ +-ÿï08@Rdoinntz6jwzoh.cloudfront.net^ +-ÿï08@Rdojx47ab4dyxi.cloudfront.net^ +-ÿï08@Rdojy0dg181308.cloudfront.net^ +-ÿï08@Rdoo9gpa5xdov2.cloudfront.net^ +-ÿï08@Rdp45nhyltt487.cloudfront.net^ +-ÿï08@Rdp94m8xzwqsjk.cloudfront.net^ +-ÿï08@Rdpd9yiocsyy6p.cloudfront.net^ +-ÿï08@Rdpirwgljl6cjp.cloudfront.net^ +-ÿï08@Rdpjlvaveq1byu.cloudfront.net^ +-ÿï08@Rdpsq2uzakdgqz.cloudfront.net^ +-ÿï08@Rdpst35vkvd2u3.cloudfront.net^ +-ÿï08@Rdpuz3hexyabm1.cloudfront.net^ +-ÿï08@Rdq3yxnlzwhcys.cloudfront.net^ +-ÿï08@Rdqd5t8xfxmhi7.cloudfront.net^ +-ÿï08@Rdqv45r33u0ltv.cloudfront.net^ +-ÿï08@Rdr3k6qonw2kee.cloudfront.net^ +-ÿï08@Rdr6su5ow3i7eo.cloudfront.net^ +-ÿï08@Rdr8pk6ovub897.cloudfront.net^ +-ÿï08@Rdrbccw04ifva6.cloudfront.net^ +-ÿï08@Rdrda5yf9kgz5p.cloudfront.net^ +-ÿï08@Rdrf8e429z5jzt.cloudfront.net^ +-ÿï08@Rdrulilqe8wg66.cloudfront.net^ +-ÿï08@Rdrvdb9rcebidk.cloudfront.net^ +-ÿï08@Rds02gfqy6io6i.cloudfront.net^ +-ÿï08@Rds88pc0kw6cvc.cloudfront.net^ +-ÿï08@Rdsb6jelx4yhln.cloudfront.net^ +-ÿï08@Rdscex7u1h4a9a.cloudfront.net^ +-ÿï08@Rdsghhbqey6ytg.cloudfront.net^ +-ÿï08@Rdsh7ky7308k4b.cloudfront.net^ +-ÿï08@Rdsnymrk0k4p3v.cloudfront.net^ +-ÿï08@Rdsuyzexj3sqn9.cloudfront.net^ +-ÿï08@Rdt3y1f1i1disy.cloudfront.net^ +-ÿï08@Rdtakdb1z5gq7e.cloudfront.net^ +-ÿï08@Rdtmm9h2satghl.cloudfront.net^ +-ÿï08@Rdtpbt6teapmm3.cloudfront.net^ +-ÿï08@Rdtq9oy2ckjhxu.cloudfront.net^ +-ÿï08@Rdtu2kitmpserg.cloudfront.net^ +-ÿï08@Rdtv5loup63fac.cloudfront.net^ +-ÿï08@Rdtv5ske218f44.cloudfront.net^ +,ÿï08@Rdtyry4ejybx0.cloudfront.net^ +-ÿï08@Rdu002iv2rxh4h.cloudfront.net^ +-ÿï08@Rdu01z5hhojprz.cloudfront.net^ +-ÿï08@Rdu0pud0sdlmzf.cloudfront.net^ +-ÿï08@Rdu2uh7rq0r0d3.cloudfront.net^ +-ÿï08@Rdu99h8anpnevg.cloudfront.net^ +-ÿï08@Rdue5a6x777z0x.cloudfront.net^ +-ÿï08@Rdufai4b1ap33z.cloudfront.net^ +-ÿï08@Rduh0b8nl8uhfn.cloudfront.net^ +-ÿï08@Rdupcczkfziyd3.cloudfront.net^ +-ÿï08@Rduqamtr9ifv5t.cloudfront.net^ +-ÿï08@Rduz64ud8y8urc.cloudfront.net^ +-ÿï08@Rdv663fc06d35i.cloudfront.net^ +-ÿï08@Rdv7t7qyvgyrt5.cloudfront.net^ +-ÿï08@Rdv8v1cvc98vkm.cloudfront.net^ +-ÿï08@Rdvc8653ec6uyk.cloudfront.net^ +-ÿï08@Rdvh66m0o7et0z.cloudfront.net^ +-ÿï08@Rdvl8xapgpqgc1.cloudfront.net^ +-ÿï08@Rdvmdwmnyj3u4h.cloudfront.net^ +-ÿï08@Rdvwowtnmyluv4.cloudfront.net^ +-ÿï08@Rdw55pg05c2rl5.cloudfront.net^‹ +-ÿï08@Rdw7vmlojkx16k.cloudfront.net^ +-ÿï08@Rdw85st0ijc8if.cloudfront.net^ +-ÿï08@Rdw9uc6c6b8nwx.cloudfront.net^ +-ÿï08@Rdwd11wtouhmea.cloudfront.net^ +-ÿï08@Rdwebwj8qthne8.cloudfront.net^ +-ÿï08@Rdwene4pgj0r33.cloudfront.net^ +-ÿï08@Rdwfbs38k9z6bu.cloudfront.net^ +-ÿï08@Rdwnm2295blvjq.cloudfront.net^ +,ÿï08@Rdwr3zytn850g.cloudfront.net^ +-ÿï08@Rdxgo95ahe73e8.cloudfront.net^ +,ÿï08@Rdxh2ivs16758.cloudfront.net^ +-ÿï08@Rdxj6cq8hj162l.cloudfront.net^ +-ÿï08@Rdxk5g04fo96r4.cloudfront.net^ +-ÿï08@Rdxkkb5tytkivf.cloudfront.net^ +-ÿï08@Rdxprljqoay4rt.cloudfront.net^ +-ÿï08@Rdxz454z33ibrc.cloudfront.net^ +-ÿï08@Rdy5t1b0a29j1v.cloudfront.net^ +-ÿï08@Rdybxezbel1g44.cloudfront.net^ +-ÿï08@Rdyh1wzegu1j6z.cloudfront.net^ +-ÿï08@Rdyj8pbcnat4xv.cloudfront.net^ +-ÿï08@Rdykwdhfiuha6l.cloudfront.net^ +-ÿï08@Rdyodrs1kxvg6o.cloudfront.net^ +-ÿï08@Rdyrfxuvraq0fk.cloudfront.net^ +-ÿï08@Rdysuze6ljcmcr.cloudfront.net^ +-ÿï08@Rdyv1bugovvq1g.cloudfront.net^ +-ÿï08@Rdz6uw9vrm7nx6.cloudfront.net^ +-ÿï08@Rdzbkl37t8az8q.cloudfront.net^ +-ÿï08@Rdzdgfp673c1p0.cloudfront.net^ +-ÿï08@Rdzr4v2ld8fze2.cloudfront.net^ +-ÿï08@Rdzu5p9pd5q24b.cloudfront.net^ +-ÿï08@Rdzupi9b81okew.cloudfront.net^ +-ÿï08@Rdzv1ekshu2vbs.cloudfront.net^ +-ÿï08@Rdzxr711a4yw31.cloudfront.net^ +#08@Rgoogleapis.com/qmftp/ ++ÿï08@Ranti-adblock.herokuapp.com^ +2ÿï08@R"18onlygirls.tv/wp-content/banners/ +*ÿï08@R365.freeonlinegayporn.com^ +1ÿï08@R!3xplanetimg2.com/promo/iIRT8d.gif +"ÿï08@R3xtraffic.com/ads/ +.ÿï08@R3xtraffic.com/common/000/cads/ +'ÿï08@R444.thebussybandit.com^ +!ÿï08@R4tube.com/iframe/ +%ÿï08@R69games.xxx/ajax/skr? +'ÿï08@R879.thebussybandit.com^ +ÿï08@R a.aylix.xyz^ +ÿï08@R a.cemir.site^ +ÿï08@R a.cylek.site^ +ÿï08@R a.debub.site^ +ÿï08@R a.fimoa.xyz^ +ÿï08@R a.gemen.site^ +ÿï08@R a.groox.xyz^ +ÿï08@R a.herto.xyz^ +ÿï08@R a.hymin.xyz^ +ÿï08@R a.jamni.xyz^ +%ÿï08@Ra.picsnakedgirls.com^ +ÿï08@Ra.teencfnm.com^ +ÿï08@Ra.xvidxxx.com^ +€08@Ra1tb.com/300x250 +!ÿï08@Radspy.hdthot.com^ +08@R +adult.xyz^ +)ÿï08@Radultfriendfinder.com/go/ +.ÿï08@Radultfriendfinder.com/piclist? +2ÿï08@R"adultfriendfinder.com^*/affiliate/ +"ÿï08@Raff-jp.dxlive.com^¡ +&ÿï08@Raffiliate.dtiserv.com^ +(ÿï08@Raffiliates.cupidplc.com^ +'ÿï08@Raffiliates.thrixxx.com^ +$ÿï08@Ramarotic.com/Banner/ +(€08@Ramateur.tv/cacheableAjax/ +#ÿï08@Ramateur.tv/freecam/ + ÿï08@Ramateurporn.net^ +$ÿï08@Ranacams.com/cdn/top. +*ÿï08@Rapi.bluerunningshadow.com^ +(ÿï08@Rapi.dancedogwhisper.com^ +(ÿï08@Rapi.fastmoonclimbed.com^ +ÿï08@Rapp.phimvu.app^ + ÿï08@Rapps.dfgtfv.com^ +"ÿï08@Rapu.hentaibox.xyz^ +ÿï08@R asg.aphex.me^ +#ÿï08@Rasg.bhabhiporn.pro^ +!ÿï08@Rasg.irontube.net^ +#ÿï08@Rasg.prettytube.net^ + ÿï08@Rasg.sdtraff.com^ +*ÿï08@Rasianbutterflies.com/potd/ +'ÿï08@Rasktiava.com/promotion/ +*ÿï08@Ratlasfiles.com^*/sp3_ep.js +!ÿï08@Rav.sharktube.net^ +!ÿï08@Ravatraffic.com/b/ +%ÿï08@Rawestat.com^*/banner/ +ÿï08@Rb.seksohub.com^ +ÿï08@Rb.xlineker.com^ +/ÿï08@Rbabes-mansion.s3.amazonaws.com^ +ÿï08@R bangdom.com^ ++ÿï08@Rbanner.themediaplanets.com^ +.ÿï08@Rbanners.adultfriendfinder.com^ + ÿï08@Rbanners.alt.com^ +#ÿï08@Rbanners.amigos.com^ +&ÿï08@Rbanners.fastcupid.com^ +,ÿï08@Rbanners.fuckbookhookups.com^ +.ÿï08@Rbanners.nostringsattached.com^ +)ÿï08@Rbanners.outpersonals.com^ +$ÿï08@Rbanners.passion.com^ +%ÿï08@Rbanners.payserve.com^ +)ÿï08@Rbanners.videosecrets.com^ +0ÿï08@R bannershotlink.perfectgonzo.com^ +ÿï08@Rbans.bride.ru^ +$ÿï08@Rbiggie.theblank.net^ +*ÿï* +boyfriendtv.com08@Rbit.ly^ +,ÿï08@Rblacksonblondes.com/banners/ +'ÿï08@Rbongacams.com/promo.php +-ÿï08@Rbongacash.com/tools/promo.php +ÿï08@R br.fling.com^ +!ÿï08@Rbrazzers.com/ads/ +ÿï08@R +broim.xyz^ +'ÿï08@Rbullz-eye.com/blog_ads/ +)ÿï08@Rbullz-eye.com/images/ads/ +!ÿï08@Rbursa.conxxx.pro^ +*ÿï08@Rbyxxxporn.com/300x250.html +ÿï08@Rc.seksohub.com^ +ÿï08@R c.tubegf.tv^ +$ÿï08@Rc3s.bionestraff.pro^ +ÿï08@Rca.fapnow.xxx^ +'ÿï08@Rcam-content.com/banner/ +ÿï08@R cams.com/go/ +ÿï08@Rcams.enjoy.be^ +ÿï08@Rcamsaim.com/in/ +#ÿï08@Rcamsoda.com/promos/ +)ÿï08@Rcamspacelive.com/widgets/Á + ÿï08@Rcash.femjoy.com^ + ÿï08@Rcdn.007moms.com^ +#ÿï08@Rcdn.sphinxtube.com^ +$ÿï08@Rcdn.throatbulge.com^ +*ÿï08@Rcdn.turboviplay.com/ads.js +$ÿï08@Rcdn3.hentaihand.com^ +*ÿï08@Rchaturbate.com/affiliates/ +(ÿï08@Rchaturbate.com/creative/ +"ÿï08@Rchaturbate.com/in/ +.ÿï* +androidadult.com08@R +cldup.com^ +!ÿï08@Rcmix.org/teasers/ +)ÿï08@Rcrakrevenue.go2cloud.org^ +&ÿï08@Rcreamgoodies.com/potd/ +%ÿï08@Rcreative.141live.com^ +&ÿï08@Rcreative.camonade.com^ +,ÿï08@Rcreative.camsplanetlive.com^ +"ÿï08@Rcreative.favy.cam^ ++€08@Rcreative.imagetwistcams.com^ +(ÿï08@Rcreative.javhdporn.live^ +$ÿï08@Rcreative.kbnmnl.com^ +*ÿï08@Rcreative.live.javdock.com^ +.ÿï08@Rcreative.myasian.live/widgets/ +&ÿï08@Rcreative.myavlive.com^ +(ÿï08@Rcreative.nudelive.store^ +&ÿï08@Rcreative.ohmycams.com^ +#ÿï08@Rcreative.reebr.com^ +$ÿï08@Rcreative.strip.chat^ +'ÿï08@Rcreative.stripchat.com^ +*ÿï08@Rcreative.stripchat.global^ +%ÿï08@Rcreative.strpjmp.com^ +(ÿï08@Rcreative.tklivechat.com^ +(ÿï08@Rcreative.usasexcams.com^ +&ÿï08@Rcrumpet.xxxpornhd.pro^ +9ÿï08@R)cuckoldland.com/CuckoldLand728-X-90-2.gif +ÿï08@Rd.seksohub.com^ +ÿï08@R ddfcash.com^ +$ÿï08@Rdeliver.ptgncdn.com^ +-ÿï08@Rdq06u9lt5akr2.cloudfront.net^ +ÿï08@Re.seksohub.com^ +-ÿï08@Relitepaysites.com/ae-banners/ +&ÿï08@Rero-labs.com/adIframe/ +*€08@Reroan.xyz/wp-comment/?form= +,€08@Rerokuni.xyz/wp-comment/?form= +#ÿï08@Rf5w.prettytube.net^ +&ÿï08@Rfansign.streamray.com^ +$ÿï08@Rfaphouse.com/widget/ +€08@R faphouse.com^ +)ÿï08@Rfaptrex.com/fire/popup.js +ÿï08@Rfbooksluts.com^ +"ÿï08@Rfeeds.videosz.com^ +.ÿï08@Rfleshlight.com/images/banners/ ++ÿï08@Rfpcplugs.com/do.cgi?widget= +ÿï08@Rfree.srcdn.xyz^ +%ÿï08@Rfreesexcam365.com/in/ +:ÿï08@R*funniestpins.com/istripper-black-small.jpg +.€08@Rgames-direct.skynetworkcdn.com^ +'ÿï08@Rgammae.com/famedollars/ +0ÿï08@R geobanner.adultfriendfinder.com^ +"ÿï08@Rgeobanner.alt.com^ +,ÿï08@Rgeobanner.blacksexmatch.com^ +.ÿï08@Rgeobanner.fuckbookhookups.com^ +(ÿï08@Rgeobanner.hornywife.com^ +(ÿï08@Rgeobanner.sexfinder.com^ +#ÿï08@Rgeorealcdn.com/exo/© +ÿï08@Rgettubetv.com^ +'ÿï08@Rgfrevenge.com/vbanners/ +-ÿï08@Rgirlsfuck-tube.com/js/aobj.js +!ÿï08@Rgo.clicknplay.to^ ++ÿï08@Rgo.telorku.xyz/hls/iklan.js +!ÿï08@Rgo2cdn.org/brand/ +"ÿï08@Rgpt.milftube.mobi^ +$ÿï08@Rgpt.throatbulge.com^ +"ÿï08@Rgpt.tubetruck.com^ +(ÿï08@Rhardbritlads.com/banner/ +'ÿï08@Rhardcoreluv.com/hmt.gif +'ÿï08@Rhcjs.nv7s.com/dewijzyo/ +0ÿï08@R hdpornphotos.com/images/728x180_ +/ÿï08@Rhdpornphotos.com/images/banner_ +08@Rhentaibaka.one^ +Oÿï08@R?hentaiboner.com/wp-content/uploads/2022/07/hentai-boner-gif.gif +-ÿï08@Rhentaikey.com/images/banners/ +Lÿï08@Rÿï08@R.bestlittlesites.com/plugins/advertising/getad/ +)ÿï08@Rbettingads.365scores.com^ +&ÿï08@Rbibleatlas.org/botmenu +!ÿï08@Rbibleh.com/b2.htm +$ÿï08@Rbiblehub.com/botmenu +&ÿï08@Rbiblemenus.com/adframe +Dÿï08@R4bigsquidrc.com/wp-content/themes/bsrc2/js/adzones.js +$ÿï08@Rbigwarp.io/js/big.js +6ÿï08@R&bioinformatics.org/images/ack_banners/ +*ÿï08@Rbirdforum.net/data/siropu/ +$08@Rbit.com.au/scripts/js_ +2ÿï08@R"bitchute.com/slot1/value?adDataKey +3ÿï08@R#bitchute.com/static/ad-sidebar.html +9ÿï08@R)bitchute.com/static/ad-sticky-footer.html +%ÿï08@Rbitcotasks.com/je.php +%ÿï08@Rbitcotasks.com/yo.php +9ÿï08@R)bizjournals.com/static/dist/js/gpt.min.js +6ÿï08@R&blbclassic.org/assets/images/*banners/ +5ÿï08@R%blsnet.com/plugins/advertising/getad/ +ÿï08@Rblue.ktla.com^ +(ÿï08@Rbolamucha.xyz/buceta.php +&ÿï08@Rbookforum.com/api/ads/ +Qÿï* +happywayfarer.com08@R,booking.com/flexiproduct.html?product=banner +'ÿï08@Rbordeaux.futurecdn.net^ +9ÿï08@R)borneobulletin.com.bn/wp-content/banners/ +-ÿï08@Rboxing-social.com^*/takeover/„" +(ÿï08@Rbrighteon.tv/Assets/ARF/ +-ÿï08@Rbrudirect.com/images/banners/ +0ÿï08@R brushexpert.com/getimage/banners +,ÿï08@Rbscscan.com/images/gen/*.gif +Rÿï08@RBbugsfighter.com/wp-content/uploads/2020/07/malwarebytes-banner.jpg +%ÿï08@Rbullchat.com/sponsor/ +.ÿï08@Rbusinesskorea.co.kr/bannerpop/ +;ÿï08@R+c21media.net/wp-content/plugins/sam-images/ +6ÿï08@R&cafonline.com/image/upload/*/sponsors/ +%ÿï08@Rcalguns.net/images/ad +#ÿï08@Rcalmclinic.com/srv/ ++ÿï08@Rcaranddriver.com/inventory/ +1ÿï08@R!cards.thriftytraveler.com/widget/ +508@R'cdn.autodoc.de/uploads/traffic-banners/ +@€* +uktvplay.co.uk08@Rcdn.http.anno.channel4.com/m/1/ +ÿï08@Rcdn.manga9.co^ +Hÿï* + jolinne.com08@R)cdn.shopify.com^*/assets/spreadrwidget.js +-ÿï08@Rcdn.streambeast.io/angular.js +-ÿï* +pricebefore.com08@R +cdn77.org^ +)ÿï08@Rcdnads.geeksforgeeks.org^ +Aÿï* + freepik.com08@R"cdnpk.net/freepik/images/creative? +1ÿï* + freepik.com08@Rcdnpk.net/sponsor/ +:ÿï* + freepik.com08@Rcdnpk.net/v2/images/search? +*ÿï08@Rcdnpure.com/static/js/ads- +.ÿï08@Rcelebjihad.com/celeb-jihad/pu_ +Eÿï08@R5celebstoner.com/assets/components/bdlistings/uploads/ +808@R*celebstoner.com/assets/images/img/sidebar/ +$ÿï08@Rcentent.stemplay.cc^ +'ÿï08@Rchasingcars.com.au/ads/ +#ÿï08@Rcinemadeck.com/ifr/ ++ÿï08@Rclarksvilleonline.com/cols/ +3ÿï* + wdwmagic.com08@Rcloudfront.net/ads/ +7ÿï* +wsj.com08@Rcloudfront.net/j/wsj-prod.js +Ü€* + amazon.com.au* + amazon.com.br* + amazon.com.mx* + amazon.com.tr* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.in* + amazon.it* + amazon.nl* + amazon.pl* + amazon.sa* + amazon.se* + amazon.sg08@R%cloudfront.net/transcode/storyTeller/ +>ÿï* + rexdlbox.com* + titantv.com08@Rcloudfront.net^ +5ÿï* +pbs.org08@Rcloudfront.net^*/sponsors/ +2ÿï08@R"cms-assets.nodecraft.com/f/*png/m/ +=ÿï08@R-cnbcfm.com/dist/components-PcmModule-Taboola- +fÿï08@RVcnx-software.com/wp-content/uploads/*/cexpress-asl-COM-Express-Amston-Lake-module.webp +Zÿï08@RJcnx-software.com/wp-content/uploads/*/EmbeddedTS-TS-7180-embedded-SBC.webp +Xÿï08@RHcnx-software.com/wp-content/uploads/*/Forlinx-NXP-System-on-Modules.webp +Zÿï08@RJcnx-software.com/wp-content/uploads/*/gateworks-rugged-industrial-iot.webp +oÿï08@R_cnx-software.com/wp-content/uploads/*/GrapeRain-Samsun-Rockchip-Qualcomm-System-on-Modules.webp +Xÿï08@RHcnx-software.com/wp-content/uploads/*/I-Pi-SMARC-Amston-Lake-devkit.webp +^ÿï08@RNcnx-software.com/wp-content/uploads/*/Jetway-JPIC-ADN1-N97-industrial-SBC.webp +Jÿï08@R:cnx-software.com/wp-content/uploads/*/Mekotronics-R58.webp +Yÿï08@RIcnx-software.com/wp-content/uploads/*/Orange-Pi-Single-Board-Computer.jpg +Lÿï08@Rÿï08@R.generalblue.com/js/pages/shared/lazyads.min.js +'ÿï08@Rgentent.stre4mplay.one^ +<ÿï08@R,getconnected.southwestwifi.com/ads_video.xml +.ÿï08@Rglobovision.com/js/ads-home.js +.ÿï08@Rgocdkeys.com/images/background +.ÿï08@Rgocharting.com/ads_google.html +#ÿï08@Rgogoanime.me/zenny/ +Cÿï* + youtube.com* + +blogto.com08@Rgooglesyndication.com^ ++ÿï08@Rgovevents.com/display-file/ +;€* +mail.yahoo.com08@Rgpt.mail.yahoo.net/sandbox +2ÿï08@R"graphicdesignforums.co.uk/banners/ +/ÿï08@Rgreatandhra.com/images/landing/ +%ÿï08@Rgrow.gab.com/galahad/ +! 08@Rgsmarena.com/*.php3 +,ÿï08@Rgsmarena.com/deals-json.php3 +Fÿï08@R6hamodia.co.uk/images/worldfirst-currencyconversion.jpg +;ÿï08@R+healthcentral.com/common/ads/generateads.js +8ÿï08@R(hearstapps.com/moapt/moapt-hdm.latest.js +;ÿï08@R+helpnetsecurity.com/wp-admin/admin-ajax.php +'ÿï08@Rhentent.stre4mplay.one^ +'ÿï08@Rhideip.me/src/img/rekl/ +$08@Rhltv.org/partnerimage/ ++ÿï08@Rhltv.org/staticimg/*?ixlib= +,ÿï08@Rholyfamilyradio.org/banners/ +%ÿï08@Rhomeschoolmath.net/a/ +-ÿï08@Rhorizonsunlimited.com/alogos/ +!ÿï08@Rhortidaily.com/b/ +(ÿï08@Rhostsearch.com/creative/ +&ÿï08@Rhotstar.com^*/midroll? +&ÿï08@Rhotstar.com^*/preroll? +#ÿï08@Rhowtogeek.com/emv2/ +Eÿï08@R5huddlesapp.co/wp-content/plugins/brave-popup-builder/ +3ÿï08@R#i-tech.com.au/media/wysiwyg/banner/ +3ÿï08@R#iamcdn.net/players/custom-banner.js +Gÿï* +player-cdn.com08@R%iamcdn.net/players/playhydraxs.min.js +&ÿï* + ghostbin.me08@Ribb.co^ +,ÿï08@Rice.hockey/images/sponsoren/ +)ÿï08@Riceinspace.com.au/iisads/ +2ÿï08@R"iconfinder.com/static/js/istock.js +-ÿï08@Ridlebrain.com/images4/footer- ++ÿï08@Ridlebrain.com/images5/main- +*ÿï08@Ridlebrain.com/images5/sky- +;ÿï08@R+idrive.com/include/images/idrive-120240.png +'ÿï08@Rientent.stre4mplay.one^ +$ÿï08@Rigg-games.com/maven/ +#ÿï08@Rih1.fileforums.com^ +"€08@Rillicium.web.money^ +'€08@Rillicium.wmtransfer.com^ +&ÿï08@Rimagetwist.com/b9ng.js +&ÿï08@Rimdb.com/_json/getads/ +!ÿï08@Rimgadult.com/ea2/ +,ÿï08@Rimgdrive.net/a78bc9401d16.js +"ÿï08@Rimgdrive.net/anex/ + ÿï08@Rimgdrive.net/ea/ +ÿï08@Rimgtaxi.com/ea/ +,ÿï08@Rimgtaxi.com/ttb02673583fb.jsÓ +7ÿï* + ghostbin.me* + +up-load.io08@R +imgur.com^ +!ÿï08@Rimgwallet.com/ea/ +!ÿï08@Rimmoweb.be/*/dpg/ +*ÿï08@Rimp-adedge.i-mobile.co.jp^ +!ÿï08@Rimp.accesstra.de^ +ÿï08@Rimp.pixiv.net^ +Tÿï08@RDimpressivetimes.com/wp-content/uploads/2024/07/primary-plus-advt.jpg +6ÿï08@R&independent.co.uk/internal-api/indy100 +$ÿï08@Rindiadesire.com/bbd/ +-ÿï08@Rindiansinkuwait.com/Campaign/ +#ÿï08@Rindiatimes.com/ads_ +%ÿï08@Rindiatimes.com/itads_ +%ÿï08@Rindiatimes.com/lgads_ +)ÿï08@Rindiatimes.com/manageads/ +&ÿï08@Rindiatimes.com/toiads_ +*ÿï08@Rinfobetting.com/bookmaker/ +:ÿï08@R*instagram.com/api/v1/injected_story_units/ +7ÿï* + +hltv.org08@Rintersc.igaming-service.io^ +$ÿï08@Rinvesting.com/jp.php +ÿï08@R iono.fm/ads/ +%ÿï08@Rip-secrets.com/img/nv +A08@R3islandecho.co.uk/uploads/*/vipupgradebackground.jpg +"ÿï08@Risohunt.app/a/b.js +4ÿï08@R$italiangenealogy.com/images/banners/ +0ÿï08@R itweb.co.za/static/misc/toolbox/ +&ÿï08@Ritweb.co.za^*/sponsors +"ÿï08@Rj8jp.com/fhfjfj.js +)ÿï08@Rjamanetwork.com/AMA/AdTag +8ÿï08@R(japfg-trending-content.uc.r.appspot.com^ +'ÿï08@Rjobsora.com/img/banner/ +%ÿï08@Rjordantimes.com/accu/ +3ÿï08@R#jpg.church/quicknoisilyheadbites.js +ÿï08@R js.cmoa.pro^ +ÿï08@Rjs.mangajp.top^ +ÿï08@Rjs.syosetu.top^ +[ÿï* +firefox-stats.com* +chrome-stats.com* +edge-stats.com08@Rjsdelivr.net/gh/ +ÿï08@Rkaas.am/hhapia/ +/* + +filepv.com08@Rkatfile.com/images/ +3ÿï08@R#kendrickcoleman.com/images/banners/ +'ÿï08@Rkentent.stre4mplay.one^ +(ÿï08@Rkickassanimes.info/a_im/ +-ÿï08@Rkissanime.com.ru/api/pop*.php + €08@Rkissanimes.net/30 +'ÿï08@Rkissasians.org/banners/ +*ÿï08@Rkisscartoon.sh/api/pop.php +&ÿï08@Rkissmanga.org/rmad.php +-ÿï08@Rkitco.com/jscripts/popunders/ +*ÿï08@Rkitsune-rush.overbuff.com^ +'ÿï08@Rkitz.co.uk/files/jump2/ +-ÿï08@Rkompass.com/getAdvertisements +$ÿï08@Rkoreatimes.co.kr/ad/ +"ÿï08@Rkta.etherscan.com^ +,ÿï08@Rkuwaittimes.com/uploads/ads/ +Aÿï08@R1lagacetanewspaper.com/wp-content/uploads/banners/ +)ÿï08@Rlapresse.ca/webparts/ads/ +1ÿï08@R!lasentinel.net/static/img/promos/ +,ÿï08@Rlatestlaws.com/frontend/ads/ +308@R%learn-cpp.org/static/img/banners/cfk/ +3ÿï08@R#lespagesjaunesafrique.com/bandeaux/ ++ÿï08@Rletour.fr/img/dyn/partners/ +,ÿï08@Rlifehack.org/Tm73FWA1STxF.js +*ÿï08@Rlinkedin.com/tscp-serving/ +)ÿï08@Rlinkshare.pro/img/btc.gif +.ÿï08@Rlinuxtracker.org/images/dw.pngÀ ++ÿï08@Rlivescore.az/images/banners ++ÿï08@Rloader.crosswordsolver.com^ +(ÿï08@Rloader.worldhistory.org^ +'ÿï08@Rlordchannel.com/adcash/ +808@R*lowfuelmotorsport.com/assets/img/partners/ +#ÿï08@Rlw.musictarget.com^ +!ÿï08@Rlycos.com/catman/ +,ÿï08@Rmachineseeker.com/data/ofni/ +Aÿï08@R1macys.com/sitemonetization/v1/sponsored-products/ +,ÿï08@Rmafvertizing.crazygames.com^ +$ÿï08@Rmail-ads.google.com^ +3ÿï08@R#mail.aol.com/d/gemini_api/?adCount= +3ÿï08@R#majorgeeks.com/mg/slide/mg-slide.js +6ÿï08@R&mallorca.com/user/data/advertisements/ +'ÿï08@Rmanga1000.top/hjshds.js +'ÿï08@Rmanga1001.top/gdh/dd.js +2ÿï08@R"manga18.me/usd2023/usd_frontend.js +-ÿï08@Rmanga18fx.com/js/main-v001.js +-ÿï08@Rmangadistrict.com/super-boat- +#ÿï08@Rmangahub.io/iframe/ +,ÿï08@Rmanhwascan.net/my2023/my2023 +"08@Rmanytoon.com/script/ +/ÿï08@Rmarineterms.com/images/banners/ +4ÿï08@R$marketscreener.com/content_openx.php +8ÿï* +mail.yahoo.com08@Rmas.martech.yahoo.com^ +.ÿï08@Rmasternodes.online/baseimages/ +)ÿï08@Rmaxgames.com/img/sponsor_ +=ÿï08@R-mbauniverse.com/sites/default/files/shree.png +<08@R.media-amazon.com/images/S/apesafeframe/ape/sf/ +)ÿï08@Rmedia.babylonbee.com/ads/ +(ÿï08@Rmedia.notthebee.com/ads/ +2ÿï08@R"media.tickertape.in/websdk/*/ad.js +3ÿï08@R#mediatrias.com/assets/js/vypopme.js +)ÿï08@Rmediaupdate.co.za/banner/ +/€08@R mictests.com/myshowroom/view.php +/ÿï08@Rmobilesyrup.com/RgPSN0siEWzj.js +4ÿï08@R$monkeygamesworld.com/images/banners/ +"ÿï08@Rmoviekhhd.biz/ads/ +0ÿï08@R moviekhhd.biz/images/DownloadAds +$ÿï08@Rmp3fiber.com/*ml.jpg +ÿï08@Rmpgh.net/idsx2/ +ÿï08@Rmr-jatt.im/ads/ +,* + mrskincdn.com08@R mrskin.com^ +.ÿï08@Rmusicstreetjournal.com/banner/ +!ÿï08@Rmutaz.pro/img/ba/ +0ÿï08@R myabandonware.com/media/img/gog/ +1ÿï08@R!myanimelist.net/c/i/images/event/ +.ÿï08@Rmybrowseraddon.com/ads/core.js +%ÿï08@Rmyeongbeauty.com/ads/ +(ÿï08@Rmyflixer.is/ajax/banner^ +)ÿï08@Rmyflixer.is/ajax/banners^ +3ÿï08@R#myunique.info/wp-includes/js/pop.js +"ÿï08@Rmyvidster.com/ads/ +1ÿï08@R!myvidster.com/js/myv_ad_camp2.php +#ÿï08@Rn.gemini.yahoo.com^ +/ÿï08@Rnameproscdn.com/images/backers/ +/ÿï08@Rnativetimes.com/images/banners/ +B08@R4naturalnews.com/wp-content/themes/naturalnews-child/ +<ÿï08@R,navyrecognition.com/images/stories/customer/ +.ÿï08@Rnemosa.co.za/images/mad_ad.png +%08@Rnesmaps.com/images/ads/ +,ÿï08@Rnewagebd.net/assets/img/ads/ +,ÿï08@Rnewkerala.com/banners/amazon +;ÿï08@R+news.itsfoss.com/assets/images/pikapods.jpg” +'ÿï08@Rnewsnow.co.uk/pharos.js +5ÿï08@R%nexvelar.b-cdn.net/videoplayback_.mp4 +.ÿï08@Rnorthsidesun.com/init-2.min.js +-ÿï08@Rnorwaypost.no/images/banners/ +1* +businessworld.in08@Rnotebrains.com^ +/ÿï08@Rnrl.com/siteassets/sponsorship/ +#ÿï08@Rnrl.com^*/sponsors/ +#ÿï08@Rnu2.nu/gfx/sponsor/ +$08@Rnumista.com/*/banners/ +'ÿï08@Rnyaa.land/static/p2.jpg +Lÿï08@Rÿï08@R.rswebsols.com/wp-content/uploads/rsws-banners/ +:ÿï08@R*s-opgg-kit.op.gg/gnb/config/*/lol.ads.json +&08@Rs.radioreference.com/sm/ +2* +mail.yahoo.com08@Rs.yimg.com/zh/mrr/ +J* + runguides.com08@R+s3.amazonaws.com/runguides2/site_takeovers/ +:ÿï08@R*saabsunited.com/wp-content/uploads/*banner + 08@Rsamba.org/banners/ +,ÿï08@Rsasinator.realestate.com.au^ +)ÿï08@Rsat-universe.com/wos2.png +)ÿï08@Rsat-universe.com/wos3.gif +(ÿï08@Rsave-editor.com/b/in/ad/ +;ÿï08@R+sbfull.com/assets/jquery/jquery-3.2.min.js? +'ÿï08@Rsbfull.com/js/mainpc.js +0€08@R!sciencefocus.com/pricecomparison/ +(ÿï08@Rscoot.co.uk/delivery.php +'ÿï08@Rscores24.live/o/offers? +3ÿï08@R#scrolller.com/scrolller/affiliates/ +4ÿï08@R$seafood.media/fis/shared/banner.asp? +)ÿï08@Rsearch.brave.com/api/ads/ +=ÿï08@R-search.brave.com/serp/v1/static/serp-js/paid/ +Aÿï08@R1search.brave.com/serp/v1/static/serp-js/shopping/ +/08@R!searchenginereports.net/theAdGMC/ +7ÿï* +sedoparking.com08@Rsedo.cachefly.net^ +/ÿï08@Rsegmentnext.com/LhfdY3JSwVQ8.js +0ÿï08@R sermonaudio.com/images/sponsors/ +Gÿï08@R7sfgate.com/juiceExport/production/sfgate.com/loadAds.js +8ÿï08@R(sgtreport.com/wp-content/uploads/*Banner +#ÿï08@Rsharecast.ws/cum.js +$ÿï08@Rsharecast.ws/fufu.js +!ÿï08@Rshield.knowt.com^ +-ÿï08@Rshort-wave.info/html/adsense- +1ÿï08@R!siberiantimes.com/upload/banners/ ++ÿï08@Rsicilianelmondo.com/banner/ +(ÿï08@Rslickdeals.net/ad-stats/ +.08@R smallseotools.com/webimages/a12/ +,ÿï08@Rsmn-news.com/images/banners/ +1ÿï08@R!snipercentral.com/images/banners/ +'ÿï08@Rsoccerinhd.com/aclib.js +&ÿï08@Rsocket.streamable.com^ +'ÿï08@Rsoftcab.com/google.php? +$ÿï08@Rsonichits.com/tf.phpÈ +)ÿï08@Rsorcerers.net/images/aff/ +)ÿï08@Rsoundcloud.com/audio-ads? +3ÿï08@R#soundstageultra.com/images/banners/ +7ÿï08@R'southfloridagaynews.com/images/banners/ +*ÿï08@Rspike-plant.valorbuff.com^ +#ÿï08@Rsponsors.vuejs.org^ +,ÿï08@Rsportlemon24.com/img/301.jpg +:ÿï08@R*sportshub.to/player-source/images/banners/ +!ÿï08@Rspox.com/daznpic/ + ÿï08@Rspys.one/fpe.png +2ÿï08@R"srilankamirror.com/images/banners/ +.ÿï08@Rsrware.net/iron/assets/img/av/ +A08@R3ssl-images-amazon.com/images/S/apesafeframe/ape/sf/ +1ÿï08@R!star-history.com/assets/sponsors/ +)ÿï08@Rstartpage.com/sp/adsense/ +'ÿï08@Rstatic.ad.libimseti.cz^ +"€08@Rstatic.fastpic.org^ +<ÿï08@R,static.getmodsapk.com/cloudflare/ads-images/ +G* + +flickr.com08@R+staticflickr.com/ap/build/javascripts/prbd- +1ÿï08@R!steamanalyst.com/steeem/delivery/ +"ÿï08@Rstirr.com/api/ads/ +Wÿï* + newsfirst.lk08@R7storage.googleapis.com/cdn.newsfirst.lk/advertisements/ +)ÿï08@Rstore-api.mumuglobal.com^ +8ÿï08@R(straitstimes.com/_web2/betterads_head.js +(ÿï08@Rstrcloud.club/mainstream +8ÿï08@R(streamingsites.com/images/adverticement/ +(08@Rstreamoupload.*/api/spots/ +.ÿï08@Rstreams.tv/js/slidingbanner.js +%ÿï08@Rstrtpe.link/ppmain.js +,ÿï08@Rstuff.co.nz/static/adnostic/ +4ÿï08@R$stuff.co.nz/static/stuff-adfliction/ +Tÿï08@RDsundayobserver.lk/sites/default/files/pictures/COVID19-Flash-1_0.gif + ÿï08@Rsurfmusic.de/anz +-ÿï08@Rsurvivalblog.com/marketplace/ +/€* + +adfoc.us08@Rsurvivalservers.com^ +3ÿï* +christianity.com08@Rswncdn.com/ads/ +6 08@R(sync.amperwave.net/api/get/magnite/auid= +ÿï08@Rszm.com/reklama +ÿï08@Rt.police1.com^ +/ÿï08@Rtaadd.com/files/js/site_skin.js +Zÿï* +independent.co.uk* +technobuffalo.com* +outlook.live.com08@R taboola.com^ +"ÿï08@Rtakefile.link/fld/ +%ÿï08@Rtampermonkey.net/s.js +'ÿï08@Rtashanmp3.com/api/pops/ +/ÿï08@Rtechgeek365.com/advertisements/ +1ÿï08@R!techonthenet.com/javascript/pb.js +2ÿï08@R"techporn.ph/wp-content/uploads/Ad- +)ÿï08@Rtechsparx.com/imgz/udemy/ +(ÿï08@Rteluguwebsite.com/CE.jpg +*ÿï08@Rteluguwebsite.com/dhal.jpg +Cÿï08@R3teluguwebsite.com/MaaTeluguTallikiMallePoodanda.jpg +2ÿï08@R"teluguwebsite.com/MeeruTelugaa.gif ++ÿï08@Rteluguwebsite.com/radio.jpg +;ÿï08@R+tempr.email/public/responsive/gfx/awrapper/ +<ÿï08@R,tennis.com/assets/js/libraries/render-adv.js +#ÿï08@Rterabox.app/api/ad/ +#ÿï08@Rterabox.com/api/ad/ +7ÿï08@R'thanks.viewfr.com/webroot/ads/adsterra/ +4ÿï08@R$the75andztclub.co.uk/forum/banner.js +=ÿï* +ratemyprofessors.com08@Rthecontentserver.com^ +3ÿï08@R#thedailysheeple.com/images/banners/ +[ÿï08@RKthedailysheeple.com/wp-content/plugins/tds-ads-plugin/assets/js/campaign.js +Dÿï08@R4thefinancialexpress.com.bd/images/rocket-250-250.png +:ÿï08@R*theindependentbd.com/assets/images/banner/Û +/ÿï08@Rthephuketnews.com/photo/banner/ +%ÿï08@Rtheplatform.kiwi/ads/ +,ÿï08@Rtheseoultimes.com/ST/banner/ ++ÿï08@Rthespike.gg/images/bc-game/ +6ÿï08@R&thisgengaming.com/Scripts/widget2.aspx ++ÿï08@Rtimesnownews.com/dfpamzn.js ++ÿï08@Rtineye.com/api/v1/affiliate +1ÿï08@R!tineye.com/api/v1/keyword_search/ + ÿï08@Rtorrent911.ws/z- +Cÿï08@R3torrenteditor.com/img/graphical-network-monitor.gif +4ÿï08@R$torrentfreak.com/wp-content/banners/ +*08@Rtotalcsgo.com/site-takeover/ +*ÿï08@Rtpc.googlesyndication.com^ +ÿï08@R tr.7vid.net^ +%ÿï08@Rtracking.police1.com^ +6ÿï08@R&traditionalmusic.co.uk/images/banners/ ++ÿï08@Rtrahkino.cc/static/js/li.js +2ÿï08@R"triangletribune.com/cache/sql/fba/ +$ÿï08@Rtruck1.eu/_BANNERS_/ +2ÿï08@R"trucknetuk.com/phpBB2old/sponsors/ +2 08@R$truepeoplesearch.com/search/widgets? +#ÿï08@Rtrumparea.com/_adz/ +'ÿï08@Rtubeoffline.com/itbimg/ +-ÿï08@Rtubeoffline.com/js/hot.min.js +'ÿï08@Rtubeoffline.com/vpn.php +(ÿï08@Rtubeoffline.com/vpn2.php +'ÿï08@Rtubeoffline.com/vpnimg/ +!ÿï08@Rturbobit.net/pus/ +9ÿï08@R)turkmenportal.com/images/uploads/banners/ +'ÿï08@Rtwitter.com/*/videoads/ +>* +washingtontimes.com08@Rtwt-assets.washtimes.com^ +1ÿï08@R!ubuntugeek.com/images/ubuntu1.png +0ÿï08@R uefa.com/imgml/uefacom/sponsors/ +*ÿï08@Ruhdmovies.foo/onewinpop.js +>ÿï08@R.uitvconnect.com/wp-content/uploads/2023/01/2-2 +>ÿï08@R.uitvconnect.com/wp-content/uploads/2023/01/3-2 +>ÿï08@R.uitvconnect.com/wp-content/uploads/2023/01/4-2 +)ÿï08@Rukcampsite.co.uk/banners/ +&ÿï08@Runmoor.com/config.json +&ÿï08@Ruploadcloud.pro/altad/ +$ÿï08@Ruserscript.zone/s.js +Eÿï* +melophobemusic.com* +dannydutch.com08@R usrfiles.com^ +)ÿï08@Rutil-*.simply-hentai.com^ +7ÿï08@R'utilitydive.com/static/js/prestitial.js +.ÿï08@Ruxmatters.com/images/sponsors/ +'ÿï08@Rv3cars.com/load-ads.php +,ÿï08@Rvastz.b-cdn.net/hsr/HSR*.mp4 +Iÿï08@R9vectips.com/wp-content/themes/vectips-theme/js/adzones.js +,ÿï08@Rvideogameschronicle.com/ads/ +*ÿï08@Rvidzstore.com/popembed.php +*ÿï08@Rvobium.com/images/banners/ +ÿï08@Rvoodc.com/avurc +#ÿï08@Rvtube.to/api/spots/ +,ÿï08@Rwafvertizing.crazygames.com^ +ÿï08@R wall.vgr.com^ +,ÿï08@Rweb-oao.ssp.yahoo.com/admax/ +4ÿï08@R$webcamtests.com/MyShowroom/view.php? +0ÿï08@R webstick.blog/images/images-ads/ +3ÿï08@R#weloma.art/uploads/aichattings.webp +3ÿï08@R#welovemanga.one/uploads/bannerv.gif +/ÿï* + +flysat.com08@Rwidenetworks.net^ +'ÿï08@Rwikihow.com/x/zscsucgm? +6ÿï* +hortidaily.com08@Rwindows.net/banners/ +&ÿï08@Rwinxclub.com^*/dfp.js?ñ +Gÿï* +torrentgalaxy.to08@R#wonkychickens.org/data/statics/s2g/ +3ÿï08@R#worldhistory.org/js/ay-ad-loader.js +/ÿï08@Rworldofmods.com/wompush-init.js +-ÿï08@Rworthplaying.com/ad_left.html +(ÿï08@Rwqah.com/images/banners/ +,ÿï08@Rwsj.com/asset/ace/ace.min.js +2ÿï08@R"www.google.*/adsense/search/ads.js +ÿï08@Rx.castanet.net^ +!ÿï08@Rx.com/*/videoads/ +.ÿï08@Rxboxone-hq.com/images/banners/ +ÿï08@R xing.com/xas/ +%ÿï08@Rxingcdn.com/crate/ad- + ÿï08@Rxingcdn.com/xas/ + ÿï08@Rxinhuanet.com/s? +5ÿï* + +yallo.tv08@Ry3o.tv/nevarro/video-ads/ +'ÿï08@Ryahoo.com/m/gemini_api/ +!ÿï08@Ryahoo.com/pdarla/ +!ÿï08@Ryahoo.com/sdarla/ +4ÿï08@R$yellowpages.com.lb/uploaded/banners/ +/ÿï* + yahoo.com08@Ryimg.com/rq/darla/ +ÿï08@Rynet.co.il/gpt/ +!ÿï08@Ryouswear.com/ads/ +#ÿï08@Ryoutube.com/pagead/ +7ÿï08@R'youtube.com/youtubei/v1/player/ad_break +#ÿï08@Rytconvert.me/pop.js +$ÿï08@Rytmp3.cc/js/inner.js +ÿï08@R ytmp3.plus/ba +*ÿï08@Rzillastream.com/api/spots/ +.ÿï08@Rzmescience.com/1u8t4y8jk6rm.js +)ÿï08@Rzmovies.cc/bc1ea2a4e4.php +"ÿï08@Rzvela.filegram.to^ +ÿï08@R url.rw/*&a= +ÿï08@R url.rw/*&mid= +#€08@Rfreeplayervideo.com^ +€08@Rgogoplay5.com^ +€08@Rgomoplayer.com^ +  08@Rlshstream.xyz/hls/ +,ÿï08@R/rest/carbon/api/scripts.js? +*ÿï08@Rframeperfect.speedrun.com^ +*ÿï08@Rjunkrat-tire.overbuff.com^ +0ÿï08@R breitbart.com/t/assets/js/prebid +$ÿï08@Rbustle.com^*/prebid- +4ÿï08@R$jwplatform.com/libraries/tdeymorh.js +2ÿï08@R"purexbox.com/javascript/gn/prebid- + ÿï08@Rwsj.net/pb/pb.js +0ÿï* + boldsky.com08@Rfireworkapi1.com^ +Ýÿï* +clickondetroit.com* +click2houston.com* +video.timeout.com* +clickorlando.com* +therealdeal.com* +dictionary.com* + news4jax.com* +heute.at* +ksat.com* +wsls.com08@R anyclip.com^ +8ÿï* +philstarlife.com08@Rapi.dailymotion.com^ +ÿï08@R +api.fw.tv^ +!ÿï08@Ravantisvideo.com^ +?ÿï08@R/blockchain.info/explorer-gateway/advertisements +³* +thechelseachronicle.com* +nottinghamforest.news* +geordiebootboys.com* +deepdaledigest.com* +realitytitbit.com* +forevergeek.com* +tbrfootball.com* +thepinknews.com* +67hailhail.com* +rangersnews.uk* + molineux.news* + thefocus.news* + hammers.news* + +hitc.com* + +spin.com08@Rbrid.tv^ +$ÿï08@Rcaffeine.tv/embed.js +ÿï08@R +cdn.ex.co^ ++08@Rcdn.thejournal.ie/media/hpto/ +'ÿï08@Rchannelexco.com/player/ +Öÿï* +olhardigital.com.br* +elnuevoherald.com* +miamiherald.com* + heraldsun.com* + deadline.com* + huffpost.com* + +cheddar.tv* + +lmaoden.tv* + +sacbee.com* +loot.tv08@R connatix.com^ +*ÿï08@Rdelivery.vidible.tv/jsonp/ +ÿï08@R dywolfer.de^ +/ÿï* + fangoria.com08@Relements.video^ +ÿï08@R embed.ex.co^ +5ÿï* + +shmoop.com08@Rembed.sendtonews.com^ +8ÿï08@R(floridasportsman.com/video_iframev9.aspx +ÿï08@R +fqtag.com^¸ +$ÿï08@Rfwcdn1.com/js/fwn.js ++ÿï08@Rfwcdn1.com/js/storyblock.js +5ÿï08@R%g.ibtimes.sg/sys/js/minified-video.js +O* +philstarlife.com* + mb.com.ph08@R geo.dailymotion.com/libs/player/ +¡ÿï* +monitordomercado.com.br* +oantagonista.com.br* +canaltech.com.br* +noataque.com.br* +omelete.com.br* + ig.com.br08@R go.trvdp.com^ +ÿï08@R +gpv.ex.co^ ++ÿï* + inverse.com08@R imgix.video^ +Hÿï08@R8interestingengineering.com/partial/connatix_desktop.html +B* + decider.com* + dexerto.com* +bgr.com08@R jwpcdn.com^ +­ÿï* +americansongwriter.com* +spokesman-recorder.com* +tomshardware.com* +thecooldown.com* +soulbounce.com* + infoworld.com* + kiplinger.com* + thestreet.com* + lifewire.com* + whathifi.com* + dexerto.com* + variety.com* + +tennis.com* + imfdb.org* + +evoke.ie* +ginx.tv08@R jwplayer.com^ +!ÿï08@Rlive.primis.tech^ +ÿï08@R +minute.ly^ +'ÿï08@Rminutemedia-prebid.com^ +(ÿï08@Rminutemediaservices.com^ ++* + +wepc.com08@Rnitroscripts.com^ +-ÿï08@Rplay.springboardplatform.com^ +!08@Rplaybuzz.com/embed/ +"08@Rplaybuzz.com/player/ +$ÿï08@Rplayer.avplayer.com^ +ÿï08@R player.ex.co^ +&ÿï08@Rplayer.sendtonews.com^ +F* + pedestrian.tv* + military.com08@Rplayers.brightcove.net^ +!ÿï08@Rplayoncenter.com^ +#08@Rplaywire.com/bolt/js/ +ÿï08@R poptok.com^ +*ÿï* + tiphero.com08@R rumble.com^ +Ôÿï* +jeanmarcmorandini.com* +futura-sciences.com* +lesnumeriques.com* + aufeminin.com* + gamekult.com* + marmiton.org* + the-race.com* + +nextplz.fr* +melty.fr08@Rsonar.viously.com^ +-ÿï08@Rsportrecs.com/redirect/embed/ +.08@R ultimedia.com/js/common/smart.js + 08@Rvidazoo.com/basev/ +*ÿï08@Rvideo-streaming.ezoic.com^ +ÿï08@R vidora.com^ +08@R viewdeos.com^ +$ÿï08@Rvoqally.com/hub/app/ +)ÿï08@Rvplayer.newseveryday.com^ +Bÿï08@R2www-idm.com/wp-content/uploads/2022/02/bitcoin.png +Mÿï* +hiphopwired.com* +madamenoire.com* + +bossip.com08@R zype.com^ +#ÿï08@Rcentent.streamp1ay. +#ÿï08@Rcintent.streanplay. +P * +music.youtube.com* +tv.youtube.com08@Ryoutube.com/get_video_info? +9ÿï* + youtube.com08@Rm.youtube.com/get_midroll_ +;ÿï* + youtube.com08@Rwww.youtube.com/get_midroll_ +2ÿï08@R"youtube.com/get_video_info?*adunit +c* + megaupload.nz* + rapidshare.nu* + filechan.org* + lolabits.se* + +hotfile.io08@R/sw.js +(¦* + +vidoza.net* + vidoza.co08@ +G* + +vidoza.net* + vidoza.co08@Rajax.googleapis.com/ajax/libs/ +:* + +vidoza.net* + vidoza.co08@Rcdn.vidoza.co/js/ +H* + +vidoza.net* + vidoza.co08@Rcdnjs.cloudflare.com/ajax/libs/ +¦* + +megaup.net08@ +Aÿï* +download.megaup.net08@Rchallenges.cloudflare.com^ +"* + +govid.co08@ +8* + +govid.co08@Rajax.googleapis.com/ajax/libs/ +4ÿï* +canyoublockit.com08@Rakamaiedge.net^ +2 +* +canyoublockit.com08@Rcloudflare.com^ +3 +* +canyoublockit.com08@Rfluidplayer.com^ +2 +* +canyoublockit.com08@Rgoogleapis.com^ +/ÿï* +canyoublockit.com08@R +hwcdn.net^ ++®* +canyoublockit.com08@Rhttp:// +,®* +canyoublockit.com08@Rhttps:// +"* + up-4ever.net08@ +2* + up-4ever.net08@Rajax.googleapis.com^ +3* + up-4ever.net08@Rconnect.facebook.net^ +1ÿï* + up-4ever.net08@Rup4ever.download^ + * +rule34hentai.net08@º +6* +rule34hentai.net08@Rajax.googleapis.com^ +1* +rule34hentai.net08@Rcloudflare.com^ +2* +rule34hentai.net08@Rfluidplayer.com^ +$"* + urlcash.net08@Rhttp:// +%"* + urlcash.net08@Rhttps:// +$08@Rgelbooru.com*/license. +!08@Rgelbooru.com*/tryt. +'ÿï08@Rgelbooru.com/halloween/ +"* +bc.vc08@Rhttp:// +"* +bc.vc08@Rhttps:// +"* + abcvideo.cc08@ +#"* + ouo.press* +ouo.io08@ +ÿï08@Rouo.io/js/*.js? +ÿï08@Rouo.io/js/pop. +!ÿï08@Rouo.press/js/pop. +* + +imgbox.com08@ +0* + +imgbox.com08@Rajax.googleapis.com^ +_®* +thepiratebay10.org* +pirateproxy.live* +thehiddenbay.com* +thepiratebay.org08@ +-"* +thepiratebay.org08@R apibay.org^ +/* +thepiratebay.org08@R jsdelivr.net^ +oÿï* +pirateproxy.live* +thehiddenbay.com* +thepiratebay.org08@R#thepiratebay.*/static/js/details.js +qÿï* +pirateproxy.live* +thehiddenbay.com* +thepiratebay.org08@R%thepiratebay.*/static/js/prototype.js +Mÿï* +thepiratebay.org08@R)thepiratebay.*/static/js/scriptaculous.js +-08@Rthepiratebay.org/static/main.js +>ÿï* +thepiratebay.org08@Rtorrindex.net/images/*.gif +>ÿï* +thepiratebay.org08@Rtorrindex.net/images/*.jpg +0 +* +thepiratebay.org08@Rtorrindex.net^ +*ÿï08@Rthepirate-bay3.org/banner_ +W* +pirateproxy.live* +thehiddenbay.com* +thepiratebay.org08@R thepiratebay. +%€08@Rthepiratebay.*/static/ +?ÿï08@R/thepiratebay10.org/static/js/UYaf3EPOVwZS3PP.js +ˆ€ * +pornhubthbh7ap3u.onion* +roadracerunner.com* +olympicstreams.me* +colourlovers.com* +allthetests.com* +filmlinks4u.is* +tribune.com.pk* + boards2go.com* + pocketnow.com* + 4archive.org* + imagefap.com* + powvideo.net* + keepvid.com* + pornhub.com* + vidtodo.com* + +fastpic.ru* + +fileone.tv* + +megaup.net* + +vcpost.com* + +vidmax.com* + +vidoza.net* + shorte.st* +tune.pk08@ +Ä * + kinox.digital* + kinox.express* + kinox.direct* + kinox.gratis* + kinox.click* + kinox.cloud* + +kinox.club* + +kinox.mobi* + +kinox.tube* + kinox.fun* + kinox.fyi* + kinox.lat* + kinox.lol* + kinox.pub* + kinox.wtf* + +kinos.to* + +kinox.am* + +kinox.io* + +kinox.me* + +kinox.sh* + +kinox.to* + +kinox.tv* + +kinoz.to08@ +Oÿï08@R?raw.githubusercontent.com/easylist/easylist/master/docs/1x1.gif +Oÿï08@R?raw.githubusercontent.com/easylist/easylist/master/docs/2x2.png +7ÿï08@R'testpages.eyeo.com*js/test-script-regex +4ÿï08@R$testpages.eyeo.com*js/test-script.js +3ÿï* +justthegays.com08@R/agent.php?spot= +(ÿï* + nozomi.la08@R /nozomi4.js +#08@R://*.justthegays.com/ +;ÿï08@R+037jav.com/wp-content/uploads/2021/04/*.gif +%ÿï08@R1069jp.com/js/script_ +"ÿï08@R123av.*/assets/ad/ +#ÿï08@R18porn.sex/ptr18.js + ÿï08@R18pussy.porn/ab/ ++€08@R18teensex.tv/player/html.php +!ÿï08@R1av.to/assets/ad/ +$ÿï08@R2watchmygf.com/spot/ +ÿï08@R3movs.com/2ff/ +ÿï08@R3movs.xxx/2ff/ +ÿï08@R3naked.com/nb/ +#ÿï08@R3prn.com/even/ok.js +"ÿï08@R429men.com/zdoink/ +$ÿï08@R444.bussyhunter.com^ +&ÿï08@R4tube.com/assets/abpe- +%ÿï08@R4tube.com/assets/adf- +%ÿï08@R4tube.com/assets/adn- +&ÿï08@R4tube.com/assets/padb- +#ÿï08@R4tube.com/nyordo.js +ÿï08@R4wank.com/bump/ +ÿï08@R4wank.net/bump/ +ÿï08@R 777av.cc/og/ +!ÿï08@R8boobs.com/flr.js +"ÿï08@R8muses.com/banner/ò + ÿï08@Ra.crazyporn.xxx^ +ÿï08@Ra.suptube.com^ +ÿï08@Raa.fapnado.xxx^ +"ÿï08@Raab.taboohome.com^ +ÿï08@Rab.fapnado.xxx^ ++ÿï08@Rabsoluporn.com/code/script/ +"ÿï08@Rad.pornutopia.org^ +#ÿï08@Rad69.com/analytics/ +ÿï08@R adf.uhn.cx^ +)ÿï08@Radrotic.girlonthenet.com^ +7ÿï08@R'adult-sex-games.com/images/adult-games/ +1ÿï08@R!adult-sex-games.com/images/promo/ +*ÿï08@Radultasianporn.com/puty3s/ +;ÿï08@R+adultfilmdatabase.com/graphics/porndude.png +)ÿï08@Raffiliates.goodvibes.com^ +-ÿï08@Rakiba-online.com/data/siropu/ +$ÿï08@Ralaska.xhamster.com^ +%ÿï08@Ralaska.xhamster.desi^ +%ÿï08@Ralaska.xhamster2.com^ +%ÿï08@Ralaska.xhamster3.com^ +!ÿï08@Ralrincon.com/nbk/ +-ÿï08@Ramateur.tv/misc/mYcLBNp7fx.js +0ÿï08@R analdin.xxx/player/html.php?aid= +$ÿï08@Ranalsexstars.com/og/ +)ÿï08@Ranybunny.tv/js/main.ex.js +ÿï08@Ranyporn.com/aa/ +ÿï08@Ranysex.com/*/js +#ÿï08@Ranysex.com/*/script +€08@R anysex.com^ +.ÿï08@Rapi.adultdeepfakes.cam/banners +0ÿï08@R api.redgifs.com/v2/gifs/promoted +ÿï08@Rar.429men.com^ +ÿï08@R ar.4wank.com^ +$ÿï08@Rar.lesbianbliss.com^ +#ÿï08@Rar.thepornstar.com^ +!ÿï08@Rar.transhero.com^ +ÿï08@Ras.hobby.porn^ +!ÿï08@Rasg.faperoni.com^ +0ÿï08@R asiandolls.co.uk/images/banners/ +*ÿï08@Ratube.xxx/static/js/abb.js +%€* + +clgt.one08@R +aucdn.net^ +ÿï08@Ravn.com/server/ +€08@R b1.tubexo.tv^ +*ÿï08@Rb8ms7gkwq7g.crocotube.com^ +(ÿï08@Rbabepedia.com/iStripper/ +,ÿï08@Rbabepedia.com/iStripper2023/ +.ÿï08@Rbabesandstars.com/img/banners/ +'ÿï08@Rbabeshows.co.uk^*banner +,ÿï08@Rbabesinporn.com^*/istripper/ +Fÿï08@R6babesmachine.com/images/babesmachine.com/friendimages/ +ÿï08@Rbadjojo.com/d5 +!ÿï08@Rbanners.cams.com^ +*ÿï08@Rbetween-legs.com/banners2/ ++ÿï08@Rbetween-legs.com^*/banners/ +%ÿï08@Rbigcock.one/worker.js +#ÿï08@Rbigdick.tube/tpnxa/ +6ÿï08@R&bigtitsgallery.net/qbztdpxulhkoicd.php +1ÿï08@R!bigtitslust.com/lap70/s/s/suo.php ++ÿï08@Rbionestraff.pro/300x250.php +Bÿï* + +javdesu.tv08@R$blogger.googleusercontent.com/img/b/ ++ÿï08@Rbodsforthemods.com/srennab/ +;ÿï08@R+bootyheroes.com//static/assets/img/banners/ ++ÿï08@Rboyfriend.show/widgets/Spot +$ÿï08@Rboyfriendtv.com/ads/þ +'ÿï08@Rboyfriendtv.com/bftv/b/ +-ÿï08@Rboyfriendtv.com/bftv/paysite/ +9ÿï08@R)boyfriendtv.com/bftv/www/js/*.min.js?url= +$ÿï08@Rboysfood.com/d5.html +"ÿï08@Rbravoteens.com/ta/ +!ÿï08@Rbravotube.net/cc/ +-ÿï08@Rbravotube.net/js/clickback.js +#ÿï08@Rbrick.xhamster.com^ +$ÿï08@Rbrick.xhamster.desi^ +$ÿï08@Rbrick.xhamster2.com^ +$ÿï08@Rbrick.xhamster3.com^ +'ÿï08@Rbunnylust.com/sponsors/ +6ÿï08@R&buondua.com/templatesygfo76jp36enw15_/ +0ÿï08@R cambay.tv/contents/other/player/ +)ÿï08@Rcamcaps.ac/33a9020b46.php +)ÿï08@Rcamcaps.io/024569284e.php +)ÿï08@Rcamcaps.to/400514f2db.php +/ÿï08@Rcamhub.cc/static/js/bgscript.js +-€08@Rcams.imagetwist.com/in/?track= +!ÿï08@Rcams.imgtaxi.com^ +$ÿï08@Rcamvideos.tv/tpd.png +€08@R camvideos.tv^ +0ÿï08@R cdn3x.com/xxxdan/js/xxxdan.vast. +0ÿï08@R celeb.gate.cc/assets/bilder/bann +)ÿï08@Rcheemsporn.com^*/banners/ +/ÿï08@Rcherrynudes.com/t33638ba5008.js +)ÿï08@Rchikiporn.com/sqkqzwrecy/ +(ÿï08@Rclicknplay.to/q3gSxw5.js +2ÿï* +mrdeepfakes.com08@Rclips4sale.com^ +7€08@R(cloud.hentai-moon.com/contents/hdd337st/ +#ÿï08@Rcluster.xhspot.com^ +'ÿï08@Rcover.ydgal.com/axfile/ +(ÿï08@Rcreative.live.javmix.tv^ +)ÿï08@Rcreative.live.missav.com^ +)ÿï08@Rcreative.live.tktube.com^ +$ÿï08@Rcreative.live7mm.tv^ +(ÿï08@Rcreative.thefaplive.com^ +)ÿï08@Rcreative.upskirtlive.com^ +'08@Rcrossdresserhub.com/*.php +&ÿï08@Rcumlouder.com/nnubb.js +$ÿï08@Rcuntlick.net/banner/ +6ÿï08@R&cutegurlz.com/promos-royal-slider/aff/ +0ÿï08@R dads-banging-teens.com/polished- + ÿï08@Rdaftporn.com/nb_ +*ÿï08@Rdailyporn.club/at/code.php +#ÿï08@Rdailyporn.club/nba/ +'ÿï08@Rdarknessporn.com/prrls/ +#ÿï08@Rdcraddock.uk/frame/ +&ÿï08@Rdcraddock.uk/images/b/ +#ÿï08@Rdeepxtube.com/zips/ +'ÿï08@Rdefinebabe.com/sponsor_ +"ÿï08@Rdelivery.porn.com^ +,ÿï08@Rdepvailon.com/sponsored.html +)ÿï08@Rdirtyvideo.fun/js/script_ +%ÿï08@Rdixyporn.com/include/ +ÿï08@Rdl.4kporn.xxx^ +!ÿï08@Rdl.crazyporn.xxx^ +ÿï08@R dl.hoes.tube^ +!ÿï08@Rdl.love4porn.com^ +"ÿï08@Rdofap.com/banners/ ++ÿï08@Rdoseofporn.com/img/jerk.gif +.ÿï08@Rdoseofporn.com/t63fd79f7055.js +%ÿï08@Rdpfantasy.org/k2s.gif +'ÿï08@Rdporn.com/edraovnjqohv/î + ÿï08@Rdporn.com/tpnxa/ +*ÿï08@Rdragonthumbs.com/adcode.js +&ÿï08@Rdrivevideo.xyz/advert/ +#ÿï08@Rdrtuber.com/footer_ + ÿï08@Rdyn.empflix.com^ + ÿï08@Rdyn.tnaflix.com^ +ÿï08@Rea-tube.com/i2/ +,ÿï08@Reasypic.com/js/easypicads.js +!ÿï08@Reasyporn.xxx/tmp/ +#ÿï08@Rempflix.com/mew.php +Aÿï08@R1enporn.org/system/theme/AnyPorn/js/popcode.min.js +#ÿï08@Rentensity.net/crap/ +&ÿï08@Renter.javhd.com/track/ +,ÿï08@Repicgfs.com/pocoloco_epic.js + ÿï08@Reporner.com/dot/ +%ÿï08@Reporner.com/event.php +%ÿï08@Reporner.com/xhr/vast/ +€08@R eporner.com^ +"ÿï08@Rerowall.com/126.js ++ÿï08@Rerowall.com/tf558550ef6e.js +,ÿï08@Rescortdirectory.com//images/ +Jÿï08@R:exgirl.net/wp-content/themes/retrotube/assets/img/banners/ +:ÿï08@R*extremescatporn.com/static/images/banners/ +0ÿï08@R fakings.com/tools/get_banner.php +*ÿï08@Rfamilyporner.com/prerolls/ +$ÿï08@Rfapclub.sex/js/hr.js + ÿï08@Rfapnado.com/api/ + ÿï08@Rfapnado.com/bump +,ÿï08@Rfappenist.com/fojytyzzkm.php +ÿï08@Rfaptor.com/api/ + ÿï08@Rfaptor.com/bump/ +)ÿï08@Rfastfuckgames.com/aff.htm +'ÿï08@Rfennyboy.com/js/dabt.js +#ÿï08@Rfennyboy.com/negco- +3ÿï08@R#fetishshrine.com/js/customscript.js +6ÿï* +hentaigasm.com08@Rfiles.wordpress.com^ +ÿï08@Rflw.camcaps.ac^ + ÿï08@Rfootztube.com/b_ + ÿï08@Rfootztube.com/f_ +;ÿï08@R+for-iwara-tools.tyamahori.com/ninjaFillter/ +"ÿï08@Rfreehqsex.com/ads/ +'ÿï08@Rfreelivesex.tv/imgs/ad/ +308@R%freeones.com/build/freeones/adWidget. +5ÿï08@R%freeones.com/static-assets/istripper/ +/ÿï08@Rfreepornxxx.mobi/popcode.min.js +,ÿï08@Rfreepublicporn.com/prerolls/ + ÿï08@Rfreeteen.sex/ab/ +/ÿï08@Rfreeuseporn.com/tceb29242cf7.js +$ÿï08@Rfrprn.com/even/ok.js +!ÿï08@Rftopx.com/345.php +,ÿï08@Rftopx.com/isttf558550ef6e.js +)ÿï08@Rftopx.com/tf558550ef6e.js +)ÿï08@Rfuwn782kk.alphaporno.com^ +1ÿï08@R!galleries-pornstar.com/thumb_top/ +%ÿï08@Rgamcore.com/ajax/abc? +%ÿï08@Rgamcore.com/js/ipp.js +%ÿï08@Rgamcore.com/z0mb24.js +#ÿï08@Rgay.bingo/agent.php + ÿï08@Rgay4porn.com/ai/ +"08@Rgayforfans.com^*.php +"ÿï08@Rgaygo.tv/gtv/frms/ +%ÿï08@Rgays-cruising.com/nb/ +%ÿï08@Rgaystream.pw/juicy.js +&ÿï08@Rgaystream.pw/pemsrv.jsô +'ÿï08@Rgaystream.pw/pushtop.js +$ÿï08@Rgelbooru.com/extras/ +*ÿï08@Rgirlsofdesire.org/blr3.php +)ÿï08@Rgirlsofdesire.org/flr2.js +)ÿï08@Rgirlsofdesire.org/flr6.js +#ÿï08@Rgo.celebjihad.live^ +ÿï08@Rgo.pornav.net^ +ÿï08@Rgo.redgifs.com^ +&ÿï08@Rgo.stripchat.beeg.com^ +ÿï08@Rgo.strpjmp.com^ +0ÿï08@R haberprofil.biz/assets/*/vast.js +$ÿï08@Rhaes.tech/js/script_ +Kÿï08@R;hanime.xxx/wp-content/cache/wpfc-minified/fggil735/fa9yi.js +Dÿï08@R4hd21.*/templates/base_master/js/jquery.shows2.min.js +&ÿï08@Rhdporn24.org/vcrtlrvw/ +#ÿï08@Rhdpornfree.xxx/rek/ +"ÿï08@Rhdpornmax.com/tmp/ +!ÿï08@Rhdtube.porn/fork/ +!ÿï08@Rhdtube.porn/rods/ +$ÿï08@Rhellporno.com/_a_xb/ +€08@Rhellporno.com^ +%ÿï08@Rhentai2w.com/ark2023/ +0ÿï08@R hentaibooty.com/uploads/banners/ +2ÿï08@R"hentaicdn.com/cdn/v2.assets/js/exc +Aÿï08@R1hentaidude.xxx/wp-content/plugins/script-manager/ +'ÿï08@Rhentaifox.com/js/ajs.js +*ÿï08@Rhentaifox.com/js/slider.js +&ÿï08@Rhentaihere.com/arkNVB/ +%ÿï08@Rhentaini.com/img/ads/ +(ÿï08@Rhentairider.com/banners/ +>ÿï08@R.hentairules.net/gal/new-gallery-dump-small.gif +0ÿï08@R hentaiworld.tv/banners-script.js +$ÿï08@Rherexxxtube.com/tmp/ +"ÿï08@Rhitomi.la/ebJqXsy/ +ÿï08@R hitprn.com/c_ +'ÿï08@Rhitslut.b-cdn.net/*.gif +ÿï08@R hoes.tube/ai/ +*ÿï08@Rhome-xxx-videos.com/snowy- +1ÿï08@R!homemade.xxx/player/html.php?aid= +3ÿï08@R#homeprivatevids.com/js/580eka426.js +Dÿï08@R4hornygamer.com/includes/gamefile/sw3d_hornygamer.gif +0ÿï08@R hornygamer.com/play_horny_games/ +&ÿï08@Rhornyjourney.com/fr.js +&ÿï08@Rhot-sex-tube.com/sp.js +/ÿï08@Rhotgirlclub.com/assets/vendors/ +1ÿï08@R!hotgirlsdream.com/tf40bbdd1767.js +&ÿï08@Rhotmovs.com/fzzgbzhfm/ +"ÿï08@Rhotmovs.com/suhum/ +-ÿï08@Rhottystop.com/f9de7147b187.js +-ÿï08@Rhottystop.com/t33638ba5008.js +ÿï08@Rhqbang.com/api/ +!ÿï08@Rhqporn.su/myvids/ +%ÿï08@Rhqpornstream.com/pub/ +*ÿï08@Rhypnohub.net/assets/hub.js +.ÿï* +hentaitube.icu08@R i.imgur.com^ +-ÿï08@Riceporn.com/player_right_ntv_ +$ÿï08@Rimagepost.com/stuff/ +5ÿï08@R%imagetwist.com/img/1001505_banner.png +)ÿï08@Rimageweb.ws/whaledate.gif +.ÿï* +tongabonga.com08@R imageweb.ws^ +)ÿï08@Rimgbox.com/images/tpd.png +2ÿï08@R"imgderviches.work/exclusive/bayou_ +,ÿï08@Rimgdrive.net/xb02673583fb.js +%ÿï08@Rimgtaxi.com/frame.php� +)ÿï08@Rimhentai.xxx/js/slider.js +%ÿï08@Rinporn.com/8kl7mzfgy6 +1ÿï08@R!internationalsexguide.nl/banners/ +Jÿï08@R:internationalsexguide.nl/forum/clientscript/PopUnderISG.js +1ÿï08@R!interracial-girls.com/chaturbate/ +&08@Rinterracial-girls.com/i/ +&ÿï08@Rintporn.com/js/siropu/ +!ÿï08@Rintporn.com/lj.js +'ÿï08@Rinxxx.com/api/get-spot/ +;ÿï08@R+jav-bukkake.net/images/download-bukkake.jpg +'ÿï08@Rjavenglish.net/tcads.js +'ÿï08@Rjavfor.tv/av/js/aapp.js +Dÿï08@R4javgg.me/wp-content/plugins/1shortlink/js/shorten.js +(ÿï08@Rjavhub.net/av/js/aapp.js +'ÿï08@Rjavhub.net/av/js/cpp.js +'ÿï08@Rjavhub.net/ps/UJXTsc.js +$ÿï08@Rjavideo.net/js/popup +&ÿï08@Rjavlibrary.com/js/bnr_ +&ÿï08@Rjavmost.com/src/jpm.js +@ÿï08@R0javpornclub.com/images/banners/takefile72890.gif +(ÿï08@Rjavslon.com/clacunder.js +/ÿï08@Rjavynow.com/images/caribian.jpg +-ÿï08@Rjennylist.xyz/t63fd79f7055.js + ÿï08@Rjizzberry.com/65 +)ÿï08@Rjustthegays.com/agent.php +*ÿï08@Rjustthegays.com/api/spots/ +*ÿï08@Rjustthegays.com/api/users/ +ÿï08@R jzzo.com/_ad +ÿï08@R k2s.tv/cu.js +*ÿï08@Rkawai-jav.com/en/load-ads? +0ÿï08@R kawai-jav.com/public/upload/ads/ +3ÿï08@R#kbjfree.com/assets/scripts/popad.js +'ÿï08@Rkindgirls.com/banners2/ +*ÿï08@Rkompoz2.com/js/take.max.js +#ÿï08@Rkoushoku.org/proxy? +*ÿï08@Rkurakura21.space/js/baf.js +"ÿï08@Rl4s.love4porn.com^ +$ÿï08@Rlesbianstate.com/ai/ +!ÿï08@Rletsporn.com/sda/ +%ÿï08@Rlewdspot.com/img/aff_ +-ÿï08@Rlolhentai.net/tceb29242cf7.js +3ÿï08@R#lustypuppy.com/includes/popunder.js +)ÿï08@Rmadmen2.alastonsuomi.com^ +'ÿï08@Rmanga18fx.com/tkmo2023/ +%ÿï08@Rmanhwa18.cc/main2023/ +*ÿï08@Rmansurfer.com/flash_promo/ +&ÿï08@Rmanysex.com/ha10y0dcss +(ÿï08@Rmanysex.tube/soc/roll.js +/ÿï08@Rmarawaresearch.com/js/wosevu.js +$ÿï08@Rmarine.xhamster.com^ +%ÿï08@Rmarine.xhamster.desi^ +%ÿï08@Rmarine.xhamster2.com^ +%ÿï08@Rmarine.xhamster3.com^ +4ÿï08@R$mature-chicks.com/floral-truth-c224/ +.ÿï08@Rmatureworld.ws/images/banners/ +G * +indiansexstories2.net08@R mediax.dscgirls.live/p/live/vast +"ÿï08@Rmegatube.xxx/atrm/ +ÿï08@Rmilffox.com/ai/ +(08@Rmilfnut.net/assets/jquery/ +-ÿï08@Rmilfz.club/qpvtishridusvt.php +*ÿï08@Rmilkmanbook.com/dat/promo/ +0ÿï08@R momvids.com/player/html.php?aid= +%ÿï08@Rmonsnode.com/ad_star_ +#ÿï08@Rmopoga.com/img/aff_ø +Gÿï08@R7mylistcrawler.com/wp-content/plugins/elfsight-popup-cc/ +ÿï08@Rmylust.com/092- ++ÿï08@Rmylust.com/assets/script.js +0"08@R"myreadingmanga.info/wp-admin/*.php +2ÿï08@R"mysexgames.com/pix/best-sex-games/ +&ÿï08@Rmysexgames.com/plop.js +"ÿï08@Rmyvideos.club/api/ +ÿï08@Rn.hnntube.com^ +6ÿï08@R&naughtyblog.org/wp-content/images/k2s/ +%ÿï08@Rnet.sexstories69.com^ +/ÿï08@Rnigged.com/tools/get_banner.php +,ÿï08@Rnsfwalbum.com/efds435m432.js ++ÿï08@Rnudepatch.net/dynbak.min.js +,ÿï08@Rnudepatch.net/edaea0fd3b2c.j +ÿï08@Rnvdst.com/adx_ +ÿï08@Roi.429men.com^ +$ÿï08@Roi.lesbianbliss.com^ +ÿï08@Roj.fapnado.xxx^ +!ÿï08@Roldies.name/oldn/ +-ÿï08@Rorgyxxxhub.com/js/965eka57.js +*ÿï08@Rorgyxxxhub.com/js/arjlk.js +<ÿï08@R,otomi-games.com/wp-content/uploads/*-Ad-728- +"ÿï08@Rpacaka.conxxx.pro^ +6ÿï08@R&pantyhosepornstars.com/foon/pryf003.js +6ÿï08@R&phonerotica.com/resources/img/banners/ +$ÿï08@Rpicshick.com/b9ng.js +€08@Rpimpandhost.com^ +)ÿï08@Rpisshamster.com/prerolls/ +-ÿï08@Rplayer.javboys.cam/js/script_ +&ÿï08@Rpleasuregirl.net/bload +Iÿï08@R9plibcdn.com/templates/base_master/js/jquery.shows2.min.js + ÿï08@Rplx.porndig.com^ +ÿï08@R plx.tik.porn^ +&ÿï08@Rporn-star.com/buttons/ + ÿï08@Rpornalin.com/skd +#ÿï08@Rporndoe.com/banner/ +0ÿï08@R porndoe.com/wp-contents/channel? +&ÿï08@Rpornerbros.com/lolaso/ ++ÿï08@Rpornforrelax.com/kiadtgyzi/ +$ÿï08@Rporngals4.com/img/b/ +*ÿï08@Rporngames.tv/js/hs43jgM.js +(ÿï08@Rporngo.tube/tdkfiololwb/ +#ÿï08@Rpornhat.com/banner/ +!ÿï08@Rpornhub.*/_xa/ads +!ÿï08@Rpornicom.com/jsb/ + ÿï08@Rpornid.name/ffg/ +#ÿï08@Rpornid.name/polstr/ +!ÿï08@Rpornid.xxx/azone/ +ÿï08@Rpornid.xxx/pid/ +#ÿï08@Rpornj.com/wimtvggp/ +/ÿï08@Rpornjam.com/assets/js/renderer. +ÿï08@Rpornjv.com/doe/ +%ÿï08@Rpornktube.tv/js/kt.js +.ÿï08@Rpornmastery.com/*/img/banners/ +ÿï08@Rpornmix.org/cs/ +)ÿï08@Rporno666.com/code/script/ +%ÿï08@Rpornogramxxx.com/out/ +-ÿï08@Rpornorips.com/4e6d8469754a.js +-ÿï08@Rpornorips.com/9fe1a47dbd42.js +'ÿï08@Rpornpapa.com/extension/ +€08@R pornpics.com^ +'ÿï08@Rpornpics.de/api/banner/ +1ÿï08@R!pornpoppy.com/jss/external_pop.js +€08@Rpornrabbit.com^â +)ÿï08@Rpornsex.rocks/league.aspx +0ÿï08@R pornstargold.com/9f3e5bbb8645.js +0ÿï08@R pornstargold.com/af8b32fc37c0.js +0ÿï08@R pornstargold.com/e7e5ed47e8b4.js +.ÿï08@Rpornstargold.com/tf2b6c6c9a44/ +*ÿï08@Rpornv.xxx/static/js/abb.js ++ÿï08@Rpornve.com/img/300x250g.gif + ÿï08@Rpornxbox.com/cs/ +ÿï08@Rpornxp.com/2.js +ÿï08@Rpornxp.com/sp/ +#ÿï08@Rpornxp.net/spnbf.js +'ÿï08@Rpornyhd.com/hillpop.php +#ÿï08@Rport7.xhamster.com^ +$ÿï08@Rport7.xhamster.desi^ +$ÿï08@Rport7.xhamster2.com^ +$ÿï08@Rport7.xhamster3.com^ +*ÿï08@Rpowe.asian-xxx-videos.com^ +6ÿï08@R&pregchan.com/.static/pages/dlsite.html +:ÿï08@R*projectjav.com/scripts/projectjav_newpu.js +!ÿï08@Rps0z.com/300x250b +)ÿï08@Rpunishworld.com/prerolls/ +%ÿï08@Rpuporn.com/xahnqhalt/ +"ÿï08@Rpurp.sukaporn.com^ +.ÿï08@Rpussycatxx.com/tab49fb22988.js +"ÿï08@Rpussyspace.com/fub +(ÿï08@Rqovua60gue.tubewolf.com^ ++ÿï08@Rrabbitsreviews.com/banners/ +#ÿï08@Rrambo.xhamster.com^ +ÿï08@R rat.xxx/sofa/ +ÿï08@R rat.xxx/wwp2/ +2ÿï08@R"realgfporn.com/js/bbbasdffdddf.php +,ÿï08@Rredgifs.com/assets/js/goCtrl +#ÿï08@Rredtube.com/_xa/ads +€08@R redtube.com^ ++ÿï08@Rredtube.fm/advertisment.htm +*ÿï08@Rredtube.fm/lcgldrbboxj.php +'ÿï08@Rrest.sexypornvideo.net^ +,ÿï08@Rrintor.space/t2632cd43215.js +'ÿï08@Rrockpoint.xhaccess.com^ +'ÿï08@Rrockpoint.xhamster.com^ +(ÿï08@Rrockpoint.xhamster.desi^ +(ÿï08@Rrockpoint.xhamster2.com^ +(ÿï08@Rrockpoint.xhamster3.com^ +*ÿï08@Rrockpoint.xhamster42.desi^ + ÿï08@Rrst.pornyhd.com^ +$ÿï08@Rrtb-1.jizzberry.com^ +!ÿï08@Rrtb-1.mylust.com^ + ÿï08@Rrtb-1.xcafe.com^ +"ÿï08@Rrtb-3.xgroovy.com^ +'ÿï08@Rruedux.com/code/script/ +.ÿï08@Rrule34.xxx/images/r34_doll.png + €08@Rrule34hentai.net^ ++ÿï08@Rrusdosug.com/Fotos/Banners/ +"ÿï08@Rs.everydayporn.co^ +0ÿï* +hentaidays.com08@Rsavefiles.com^ +6ÿï08@R&scatxxxporn.com/static/images/banners/ +(ÿï08@Rschoolasiagirls.net/ban/ +&ÿï08@Rscoreland.*/tranny.jpg +'ÿï08@Rsdhentai.com/marketing/ +#ÿï08@Rsee.xxx/pccznwlnrs/ +$ÿï08@Rser.everydayporn.co^ +(ÿï08@Rservice.iwara.tv/z/z.php +8ÿï08@R(sex-techniques-and-positions.com/banners +&ÿï08@Rsex3.com/ee/s/s/im.phpœ +&ÿï08@Rsex3.com/ee/s/s/js/ssu +"ÿï08@Rsex3.com/ee/s/s/su +;ÿï08@R+sexcelebrity.net/contents/restfiles/player/ +.ÿï08@Rsextubebox.com/js/239eka836.js +.ÿï08@Rsextubebox.com/js/580eka426.js +%ÿï08@Rsextvx.com/*/ads/web/ + ÿï08@Rsexvid.pro/knxx/ +ÿï08@Rsexvid.pro/rrt/ + ÿï08@Rsexvid.xxx/ghjk/ +'ÿï08@Rsimply-hentai.com/prod/ +8ÿï08@R(sleazyneasy.com/contents/images-banners/ +$ÿï08@Rsleazyneasy.com/jsb/ +"ÿï08@Rsli.crazyporn.xxx^ +ÿï08@Rslit.lewd.rip^ +ÿï08@Rslview.psne.jp^ +-ÿï08@Rsmutgamer.com/ta2b8ed9c305.js +ÿï08@Rsmutty.com/n.js +$ÿï08@Rsonorousporn.com/nb/ +!ÿï08@Rstarwank.com/api/ +*ÿï08@Rstream-69.com/code/script/ +%ÿï08@Rstriptube.net/images/ +-ÿï08@Rstriptube.net/te9e85dc6853.js +?ÿï08@R/sunporno.com/api/cams/get-spot-js-full-content/ +'ÿï08@Rsunporno.com/api/spots/ +$ÿï08@Rsunporno.com/blb.php +,ÿï08@Rsunporno.com/sunstatic/frms/ +&ÿï08@Rsupport.streamjav.top^ +" 08@Rtaxidrivermovie.com^ +ÿï08@Rtbib.org/tbib. +!ÿï08@Rteenporno.xxx/ab/ +%ÿï08@Rthegay.porn/gdtatrco/ +#ÿï08@Rthehun.net/banners/ +.ÿï08@Rthenipslip.com/b6c0cc29df5a.js +"ÿï08@Rthisvid.com/enblk/ +&ÿï08@Rthumbzilla.com/_xa/ads +.ÿï08@Rtits-guru.com/js/istripper4.js +)ÿï08@Rtitsintops.com/phpBB2/nb/ +!ÿï08@Rtktube.com/adlib/ +(ÿï08@Rtnaflix.com/azUhsbtsuzm? +&ÿï08@Rtnaflix.com/js/mew.js? +(ÿï08@Rtopescort.com/static/bn/ +"ÿï08@Rtranny.one/bhb.php +,ÿï08@Rtranny.one/trannystatic/ads/ + ÿï08@Rtrannygem.com/ai + ÿï08@Rts.globtube.com^ +#08@Rtsmodelstube.com/fun/ +0ÿï08@R tubator.com/lookout/ex_rendr3.js +<ÿï08@R,tube.hentaistream.com/wp-includes/js/pop4.js +ÿï08@Rtube8.*/_xa/ads +Fÿï08@R6tubeon.*/templates/base_master/js/jquery.shows2.min.js +#ÿï08@Rtuberel.com/looppy/ +Cÿï08@R3tubev.sex/td24f164e52654fc593c6952240be1dc210935fe/ ++ÿï08@Rturboviplay.com/ads_gala.js +'ÿï08@Rtxxx.com/api/input.php? +(ÿï08@Rupornia.com/yxpffpuqtjc/ +!ÿï08@Rurgayporn.com/bn/ +ÿï08@R uviu.com/_xd/ +#ÿï08@Rvi1.prettytube.net^ +.ÿï08@Rvideosection.com/adv-agent.php +#ÿï08@Rvietpub.com/banner/ +5ÿï08@R%vikiporn.com/contents/images-banners/ +/ÿï08@Rvikiporn.com/js/customscript.js +3ÿï08@R#vipergirls.to/clientscript/popcode_ +6ÿï08@R&vipergirls.to/clientscript/poptrigger_­ +-ÿï08@Rviptube.com/player_right_ntv_ +Hÿï08@R8vivatube.*/templates/base_master/js/jquery.shows2.min.js +0ÿï08@R vndevtop.com/lvcsm/abck-banners/ +)ÿï08@Rvoyeurhit.com/ffpqvfaczp/ +(ÿï08@Rvuwjv7sjvg7.zedporn.com^ +8ÿï08@R(warashi-asian-pornstars.fr/wapdb-img/ep/ +%ÿï08@Rwatch-my-gf.com/list/ +&ÿï08@Rwatchmygf.mobi/best.js +"ÿï08@Rwcareviews.com/bh/ +"ÿï08@Rwcareviews.com/bv/ ++ÿï08@Rweescorts.com/html5banners/ +1ÿï08@R!wetpussygames.com/t78d42b806a3.js +Gÿï08@R7winporn.*/templates/base_master/js/jquery.shows2.min.js +ÿï08@R ww.hoes.tube^ +%ÿï08@Rwww8.upload-pics.com^ +&ÿï08@Rwwwxxx.uno/pop-code.js +'ÿï08@Rwwwxxx.uno/taco-code.js +$ÿï08@Rx-hd.video/vcrtlrvw/ +ÿï08@R x.xxxbp.tv^ +ÿï08@Rx.xxxbule.com^ +%ÿï08@Rx0r.urlgalleries.net^ +.ÿï08@Rx1hub.com/alexia_anders_jm.gif +$ÿï08@Rxanimu.com/prerolls/ +)ÿï08@Rxcity.org/tc2ca02c24c5.js +%ÿï08@Rxfree.com/api/banner/ +#ÿï08@Rxgirls.agency/pg/c/ +ÿï08@Rxgroovy.com/65 +/ÿï08@Rxgroovy.com/static/js/script.js +$ÿï08@Rxhaccess.com^*/vast? +#ÿï08@Rxhamster.com*/vast? +$ÿï08@Rxhamster.desi*/vast? +$ÿï08@Rxhamster2.com*/vast? +$ÿï08@Rxhamster3.com*/vast? +&ÿï08@Rxhamster42.desi*/vast? +.ÿï08@Rxhand.com/player/html.php?aid= +)ÿï08@Rxhcdn.com/site/*/ntvb.gif +"ÿï08@Rxis.vipergirls.to^ +&ÿï08@Rxjav.tube/ps/Hij2yp.js +%ÿï08@Rxmilf.com/0eckuwtxfr/ +!ÿï08@Rxnxx.tv/zoneload/ +'ÿï08@Rxnxxporn.video/nb39.12/ +*€08@Rxozilla.com/player/html.php +"ÿï08@Rxpics.me/everyone. +$ÿï08@Rxrares.com/xopind.js +%ÿï08@Rxvideos.com/zoneload/ +$ÿï08@Rxvideos.es/zoneload/ +*ÿï08@Rxvideos.name/istripper.jpg +"ÿï08@Rxxxbox.me/vcrtlrvw ++ÿï08@Rxxxdessert.com/34l329_fe.js +-ÿï08@Rxxxfetish24.com/helper/tos.js +(ÿï08@Rxxxgirlspics.com/load.js +-ÿï08@Rxxxshake.com/assets/f_load.js +0ÿï08@R xxxshake.com/static/js/script.js + ÿï08@Rxxxvogue.net/_ad + ÿï08@Rxxxxsx.com/sw.js +Gÿï08@R7yeptube.*/templates/base_master/js/jquery.shows2.min.js +=ÿï08@R-yespornpleasexxx.com/wp-content/litespeed/js/ +$ÿï08@Ryotta.scrolller.com^ +$ÿï08@Ryou-porn.com/_xa/ads +#ÿï08@Ryouporn.com/_xa/ads +<‚* +youporngay.com* + youporn.com08@R youporn.com^ +#ÿï08@Ryourlust.com*/serve +-ÿï08@Ryourlust.com/assets/script.js +*ÿï08@Ryourlust.com/js/scripts.js© +'ÿï08@Ryporn.tv/grqoqoswxd.php +3ÿï08@R#zazzybabes.com/istr/t2eff4d92a2d.js +ÿï08@Rzbporn.com/ttt/ +ÿï08@Rzzup.com/ad.php +[ÿï* + +thegay.com08@R=thegay.com/assets//jwplayer-*/jwplayer.core.controls.html5.js +Uÿï* + +thegay.com08@R7thegay.com/assets//jwplayer-*/jwplayer.core.controls.js +Gÿï* + +thegay.com08@R)thegay.com/assets//jwplayer-*/jwplayer.js +Mÿï* + +thegay.com08@R/thegay.com/assets//jwplayer-*/provider.hlsjs.js +Zÿï* + +thegay.com08@R div > div > div[id^="comp-"] + webmd.com#ContentPane40# +new-kissanime.me #CvBNILUxis+ + dailydot.com#DD_Desktop_HP_Content1+ + dailydot.com#DD_Desktop_HP_Content2+ + dailydot.com#DD_Desktop_HP_Content3  + tweaktown.com #DesktopTop) + promiseee.com#DetailButtonFloatAd& + investing.com#Digioh_Billboard& + +newser.com#DivStoryAdContainer: +satisfactory-calculator.com#DynamicInStream-Slot-17 +satisfactory-calculator.com#DynamicWidth-Slot-17 +satisfactory-calculator.com#DynamicWidth-Slot-2 + stripes.com +#FeatureAdP +howlongagogo.com + neatorama.com + +esports.gg#FreeStarVideoAdContainer/ + +esports.gg#FreeStarVideoAdContainer_VCT! + +ranker.com#GRID_AD_SLOT_1 + titantv.com #GridPlayer, +gamescensor.com + appatic.com#HTML2/ +fanlesstech.com#HTML2 > .widget-content + messitv.net#HTML23 +fanlesstech.com#HTML3/ +fanlesstech.com#HTML4 > .widget-content/ +fanlesstech.com#HTML5 > .widget-content +gamescensor.com#HTML6/ +fanlesstech.com#HTML6 > .widget-content + vintag.es#HTML7 + breitbart.com#HavDWû= +semiconductor-today.com#Header-Standard-Middle-Evatec( + sitelike.org#HeaderAdsenseCLSFix0 + +kstp.com + +whec.com +kob.com #Header_1' + promiseee.com#HomeButtonFloatAd" + royalroad.com #HomePage_Top% +stockinvest.us#IC_d_300x250_1$ +stockinvest.us#IC_d_728x90_1 + messitv.net#Image5 +80.lv#Image_Banner_Mid1 +80.lv#Image_Banner_Mid3( +newstarget.com#Index06 > .Widget( +newstarget.com#Index07 > .Widget! +supremacy1914.com#KzTtoWW! + engadget.com #LB-MULTI_ATF  + fortune.com #Leaderboard0$ +naturalnews.com #MastheadRowB + stripes.com +#MidPageAd/ +medicalnewstoday.com + +cnet.com#MyFiAd$ +medicalnewstoday.com#MyFiAd0; + neatorama.com&#Neatorama_300x250_300x600_160x600_ATF; + neatorama.com&#Neatorama_300x250_300x600_160x600_BTFB + neatorama.com-#Neatorama_300x250_336x280_320x50_Incontent_1# + mainichi.jp#PC-english-rec1% + kohls.com#PDP_monetization_HL% + kohls.com#PMP_monetization_HL, +physicsandmathstutor.com #PMT_PDF_Top( +physicsandmathstutor.com#PMT_Top + +snwa.com #PolicyNotice! +audioz.download +#PromoHead' +newstarget.com#PromoTopFeatured) +officedepot.com#PromoteIqCarousel& +sciencealert.com#Purch_D_R_0_1? +randomwordgenerator.com #RWG_Bottom_Banner_Desktop_970px@ +randomwordgenerator.com!#RWG_Sidebar_Banner_Desktop_970px6 +randomwordgenerator.com#RWG_Under_Video_Player +edn.com #SideBarWrap  + soapcalc.net #SidebarLeft) +daringfireball.net#SidebarMartini! + soapcalc.net #SidebarRight! + imcdb.org#SiteLifeSupportr +puzzle-minesweeper.com +puzzle-skyscrapers.com +puzzle-nonograms.com +puzzle-aquarium.com #Skyscraper& + +roblox.com#Skyscraper-Abp-Left' + +roblox.com#Skyscraper-Abp-Right+ +thecourier.com#TCFO_Middle2_300x250* +thecourier.com#TCFO_Middle_300x250( + +today.az#TODAY_Slot_Top_1000x120/ + +today.az#TODAY_Slot_Vertical_01_240x400 + gearspace.com #Takeover +road.cc#Top-Billboard! +the-scientist.com#Torpedo# + +utne.com#URTK_Bottom_728x90$ + +utne.com#URTK_Middle_300x250# + +utne.com#URTK_Right_300x600! +scrabble-solver.com#Upper% +breakingnews.ie#\30 _pweumum7 + turbobit.net #__bgd_linkJ +outlookindia.com +news-daily.com + stripes.com#_snup-rtdx-ldgr1 + +ytmp3.cc #a-320-50 + egotastic.com #a46c6331$ +egotasticsports.com #a83042c4 + +krunker.io#aHolder + +tokder.org#aaaa! + imagebam.com #aad-header-1! + imagebam.com #aad-header-2�! + imagebam.com #aad-header-3  + kshow123.tv #ab-sider-bar$ +travelpulse.com #ab_container$ +uinterview.com#above-content/ +slideshare.net#above-recs-desktop-ad-sm4 +smartertravel.com#above-the-fold-leaderboard3 +pastemagazine.com + jezebel.com #above_logo- +peacemakeronline.com#above_top_banner! + breitbart.com #accontainer= + usatoday.com)#acm-ad-tag-lawrence_dfp_desktop_arkadiumI + usatoday.com5#acm-ad-tag-lawrence_dfp_desktop_arkadium_after_share# + nextdoor.com + +sptfy.be#adL +touchdownwire.usatoday.com +ftw.usatoday.com#ad--home-well-wrapper  +lasvegassun.com #ad-colB-# +getmodsapk.com #ad-container + astrolis.com #ad-daily + uploadfox.net #ad-gs-05D +sickchirpse.com +thetimes.co.uk + retrostic.com +#ad-header5 + livescore.com #ad-holder-gad-news-article-item> +nationalrail.co.uk$#ad-homepage-advert-a-grey-b-wrapper> +nationalrail.co.uk$#ad-homepage-advert-d-grey-b-wrapper. +healthbenefitstimes.com#ad-image-below0 +thetimes.co.uk#ad-intravelarticle-inline1 +mayoclinic.org#ad-mobile-bottom-container. +mayoclinic.org#ad-mobile-top-container% +dvdsreleasedates.com #ad-movie  + dappradar.com #ad-nft-topF +thedailymash.co.uk + thepoke.co.uk + +thetab.com #ad-sidebar-1F +thedailymash.co.uk + thepoke.co.uk + +thetab.com #ad-sidebar-2F +thedailymash.co.uk + thepoke.co.uk + +thetab.com #ad-sidebar-3F +thedailymash.co.uk + thepoke.co.uk + +thetab.com #ad-sidebar-4" +stackabuse.com #ad-snigel-1" +stackabuse.com #ad-snigel-2" +stackabuse.com #ad-snigel-3" +stackabuse.com #ad-snigel-4 + wordplays.com +#ad-stickyü +repairalmostanything.com +notbanksyforum.com +realgearonline.com +wordreference.com +pimpandhost.com +timeanddate.com +freeforums.net + investing.com + proboards.com + wordhippo.com + agegeek.com + mtaeta.info + +boards.net#ad1; +pimpandhost.com + investing.com + agegeek.com#ad21 +exchangerates.org.uk + investing.com#ad3+ +comicbookmovie.com#adATFLeaderboard† +primeraescuela.com +dltk-holidays.com + chortle.co.uk + dltk-kids.com + coloring.ws + pcsteps.com + +kidzone.ws #adBanner  + +mdpi.com#adBannerContent + moomoo.io#adCard + globimmo.net#adConH + perchance.org#adCtn+ +spanishdict.com#adMiddle2-container6 +sainsburysmagazine.co.uk#adSlot-featuredInBlue + sherdog.com#adViAi! +myevreview.com #ad_aside_1! +cheatcodes.com #ad_atf_970, + musescore.com#ad_cs_12219747_300_250+ + musescore.com#ad_cs_12219747_728_90j +filesharingtalk.com +all-nettools.com +kiwibiker.co.nz + printroot.com#ad_global_below_navbar% +myevreview.com#ad_main_bottom% +myevreview.com#ad_main_middle+ +free-icon-rainbow.com#ad_responsive‹ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca #ad_sidebar_2& + hulkshare.com#ad_user_banner_2# +coinarbitragebot.com#adathm +webextension.org#adb% + offidocs.com#adbottomoffidocs" +canadianlisted.com#adcsacl  + 4qrcode.com #addContainer% +odditycentral.com #add_160x600û + lifenews.com#adds$ + livemint.com#adfreeDeskSpace +oisd.nl#adgb# +seowebstat.com #adhead-block- + freepik.com#adobe-pagination-mkt-copy  + onworks.net #adonworksbot +favouriteus.uk #adop_bfd& +tutorialspoint.com #adp_top_ads" + globimmo.net#adplus-anchor1 +192-168-1-1-ip.co + receivesms.co#adresp +dict.cc#adrigˆ@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +craigclassifiedads.com +kildare-nationalist.ie +carlow-nationalist.ie +photographyreview.com +laois-nationalist.ie +roscommonherald.ie +g.doubleclick.net +irannewsdaily.com +waterford-news.ie +audioreview.com +cellmapper.net +duckduckgo.com +ip-address.org +lorempixel.com + quiz4fun.com#adst +birdsandblooms.com +familyhandyman.com +tasteofhome.com +thehealthy.com +rd.com#ads-container-single! +seechamonix.com +#ads-inner +unn.ua #ads-sidebar +unn.ua #ads-sidebar2  +gocharting.com +#ads-table2 + mouthshut.com#ads_customheader_dvRightGads( +funkypotato.com#ads_header_games- +funkypotato.com#ads_header_home_970px' + lingojam.com#adsense-area-label# +194.233.68.230 #adsimgxatass +ip-address.org#adsleft + digitimes.com#adspace0 + byjus.com#adtech-related-links-container- + byjus.com#adtech-top-banner-container$ + dict.leo.org#adv-drectangle1$ + dict.leo.org#adv-drectangle2  + dict.leo.org #adv-sitebar +leo.org #adv-wbanner' + linuxblog.io#advads_ad_widget-3 +agma.io#advertDialog1' +radioonline.fm#advertise_center1 +leiterreports.typepad.com#advertise_on_lr+ +steamcardexchange.net#advertisement& + lifenews.com#advertisement-topU +allthetests.com +cadenaazul.com +lapoderosa.com + +bom.gov.au #advertising + offidocs.com#adxx +thebugle.co.za#adz! +emojiterra.com #adz-header- +hindustantimes.com#affiliate-shop-now< +purplepainforums.com +snow-forecast.com #affiliates# +exportfromnigeria.info#affs# +slickdeals.net #afscontainer. +downinspector.com#after-header-wrapper, + +scmp.com#after-page-layout-container. +prepostseo.com#after_button_ad_desktop% +plagiarismchecker.co #afterbox +agar.io#agar-io_160x600! +agar.io#agar-io_160x600_2 +agar.io#agar-io_300x250 +agar.io#agar-io_970x90! + 1000logos.net #ai_widget-4 + +klz9.com#aigirlfriendad7 + alchetron.com"#alchetronFreeStarVideoAdContainer! + myandroid.org #amazon-icon + djchuang.com#amazon3 + usamega.com #anchorPanel( +entrepreneur.com#anchorcontainer! + slashdot.org #announcement/ +ancient-origins.net#ao-article-outbrain/ +ancient-origins.net#ao-sidebar-outbrain +partnerkin.com#ap_bck( + filmibeat.com#are-slot-rightrailê7 +mybanktracker.com#article-content > .lazyloaded4 + thesun.co.uk #article-footer div[id*="-ads-"]* +timesofmalta.com#article-sponsored# + +forbes.com#article-stream-1c +brisbanetimes.com.au +watoday.com.au + theage.com.au + +smh.com.au#articlePartnerStories" + thehindu.com#articledivrec$ + +fool.com#articles-incontent2 + +fool.com #articles-top +findmysoft.com#as_336 + flyordie.com#asf2 +stakingrewards.com#asset-calculator-banner, +domaintoipconverter.com #associates-1# + tvtropes.org#asteri-sidebar+ +downforeveryoneorjustme.com#asurion( +assamtribune.com#async_body_tags( +addictivetips.com#at_popup_modal% +timesnownews.com #atf103388570' +cityandstateny.com #atlas-module! + +adverts.ie#av_detail_side( +manga-zip.info + +dlraw.to#avfap +teamfortress.tv#aw + gulte.com #awt_landing + +filext.com#b1c + +filext.com#b2c + +filext.com#b4c + +ytmp3.mobi#ba + +filext.com#ba1c +encycarpedia.com#baa +unknowncheats.me#bab + gayvegas.com #background& + presearch.com#background-cover) +soccerbase.com#ball_splash_holder$ +gamepressure.com #baner-outer¬ +greatbritishchefs.com +moviesfoundonline.com +dealsonwheels.co.nz +eth-converter.com +sundayobserver.lk +farmtrader.co.nz +allthetests.com +mp3-convert.org +techconnect.com +allmyfaves.com +vstreamhub.com + dailynews.lk + goosegame.io + freealts.pw + +pajiba.com#banner% +euroweeklynews.com #banner-970( +interest.co.nz#banner-ad-wrapperM +bbcamerica.com +sundancetv.com + +wetv.com +ifc.com#banner-bottomH +thecarconnection.com +hypergames.top +op.gg#banner-container“ +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +chatnewstoday.ca +everythinggp.com +northeastnow.com +vernonmatters.ca +larongenow.com + cfjctoday.com + rdnewsnow.com + ckpgtoday.ca + huskiefan.ca + sasknow.com + panow.com#banner-header% +uhdmovies.tips#banner-section' +sourceforge.net#banner-sterling, +israelnationalnews.com#banner-sticky` +onlinesearches.com +bbcamerica.com +sundancetv.com + +wetv.com +ifc.com #banner-top$ + 4teachers.org#banner-wrapper + gamesfree.com +#banner300 + adgully.com #bannerImage. +planetanalog.com +edn.com #bannerWrap% +webtoolhub.com#banner_719_105 + +today.az#banner_750x90 + asmag.com #banner_C + asmag.com +#banner_C2 + nitrome.com +#banner_ad + nitrome.com #banner_box& + nitrome.com#banner_description' +freshnewgames.com#banner_header+ +baltic-course.com#banner_master_top! + autoplius.lt #banner_right! + nitrome.com#banner_shadowG +cdn.ampproject.org +thesuburban.com + linguee.com #banner_top# +workawesome.com #banner_wrapd +deutschland.fm + nederland.fm + +danmark.fm + belgie.fm + espana.fm + italia.fm #bannerbg& +baltic-course.com #bannerbottom' +komikcast.site#bannerhomefooter$ +baltic-course.com #bannerleft‚2 +baltic-course.com + webfail.com +#bannertop + h-online.com #bannerzone$ +uinterview.com#below-content4 +smartertravel.com#below-the-fold-leaderboardÒ +lehighvalleylive.com +newyorkupstate.com +oregonlive.com + cleveland.com + gulflive.com + masslive.com + pennlive.com + syracuse.com + +silive.com + mlive.com +al.com +nj.com#below-toprail3 +post-gazette.com#benn-poll-iframe-container. +safetydetectives.com#best_deals_widget4 + dcnewsnow.com + +ktla.com#bestreviews-widget2 +slideshare.net#between-recs-ad-1-container2 +slideshare.net#between-recs-ad-2-container + +usnews.com +#bfad-slot5 +hindimearticles.net +solution-hub.com#bfix2" + shellshock.io #big-house-adZ +dailyrepublicannews.com +bentoneveningnews.com +dailyregister.com #billBoardATF + +versus.com #bill_bottomy +thefootballnetwork.net +cricketnetwork.co.uk +pop.inquirer.net +rugbynetwork.net + f1network.net +#billboardf +canberratimes.com.au +examiner.com.au +theland.com.au + whoscored.com#billboard-container% +thegazette.com#billboard-wrap- +the-independent.com#billboard-wrapper& + inquirer.net#billboard_article" + gumtree.com#bing-text-ad-1" + gumtree.com#bing-text-ad-2" + gumtree.com#bing-text-ad-3 +chilltracking.com#blink + +afro.com #block-10' +hawaiisbesttravel.com +#block-103" +raspberrytips.com #block-11) +theneworleanstribune.com #block-15" +dodi-repacks.site #block-17! +appleworld.today #block-26 + raspians.com #block-29 + raspians.com #block-31 +upfivedown.com#block-4 + club386.com #block-43 + club386.com #block-47 + club386.com #block-49  +game-news24.com #block-50 + club386.com #block-51$ +securityonline.info #block-595 +ericpetersautos.com +upfivedown.com#block-6  +systutorials.com#block-7 +upfivedown.com#block-8 + +oann.com #block-953 + leopathu.com#block-accuwebhostingcontenttop3 + leopathu.com#block-accuwebhostingsidebartop* +videogamer.com#block-aside-ad-unit" + slideme.org#block-block-31* +ancient-origins.net#block-block-49= +insidehighered.com##block-dfptagarticle-sidebar-bottom: +insidehighered.com #block-dfptagarticle-sidebar-top5 +spine-health.com#block-dfptagbottomanchorads1  + mothership.sg #block-imu1+ +infoplease.com#block-ipabovethefold$ +infoplease.com#block-ipbtfad, +infoplease.com#block-ipleaderboardad+ +infoplease.com#block-ipmiddlewaread. + leopathu.com#block-listscleaningbanner> +romania-insider.com##block-nodepagebelowfromourpartners9 +romania-insider.com#block-nodepagebelowlatespress> +romania-insider.com##block-nodepagebelowtrendingcontent, + newsweek.com#block-nw-content-recirc& + mothership.sg#block-outstream1& + mothership.sg#block-outstream27 +encyclopedia.com#block-trustme-rightcolumntopad³4 + +enca.com$#block-views-block-sponsored-block-1: +mbauniverse.com##block-views-home-page-banner-blockF + bmwblog.com3#bmwbl-mobileArticleLeaderboardBeforeFirstParagraph# +smbc-comics.com #boardleader' +forum.wordreference.com#botSupp# +coinarbitragebot.com#botfix + +pymnts.com +#bottom-ad5 +investorplace.com + +cheese.com#bottom-banner@ +000webhost.com*#bottom-banner-with-counter-holder-desktopy +itbusinessedge.com +techrepublic.com +serverwatch.com +linuxtoday.com + eweek.com#bottom-footer-fixed-slot* +audioreview.com#bottom-leaderboard' + reverso.net#bottom-mega-rca-box +crn.com#bottom-ribbon" + nytimes.com#bottom-wrapper) +streetinsider.com#bottom_ad_fixed- +funkypotato.com#bottom_banner_wrapperR +jamaicaobserver.com +bleedingcool.com + heatmap.news#bottom_leaderboard, +bleedingcool.com#bottom_leaderboard20 +bleedingcool.com#bottom_medium_rectangle( + numista.com#bottom_pub_container' + numista.com#bottompub_container# +atomic-robo.com #bottomspaceŒ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca#box_2_300x600& +planetminecraft.com #box_300btfŒ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca#box_3_300x600* +planetminecraft.com#box_pmc_300btf +comicbookrealm.com#brad- +bicycleretailer.com#brain-leader-slot$ + brobible.com#bro-leaderboard + justetf.com #brokerAd# + dailydot.com#browsi-topunit + +techpp.com #brxe-ninhwq + +techpp.com #brxe-wtwlmm' +downforeveryoneorjustme.com#bsa- +icon-icons.com#bsa-placeholder-search3 + befonts.com #bsa-zone_1706688539968-4_123456l +puzzle-minesweeper.com +puzzle-skyscrapers.com +puzzle-nonograms.com +puzzle-aquarium.com#btIn +w3newspapers.com#btmaddí +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +everythinggp.com +northeastnow.com +vernonmatters.ca +larongenow.com + cfjctoday.com + rdnewsnow.com + huskiefan.ca + sasknow.com + panow.com #bumper-cars, +northcountrypublicradio.org #business" +music-news.com #buy-tickets! +digminecraft.com #c1069c34 + channel4.com #c4ad-Top; +comicsands.com%#c7da91bc-8e44-492f-b7fd-c382c0e55bda +allrecipes.com#cal-app$ + bitdegree.org#campaign-modal$ + chordify.net#campaign_banner$ + thecanary.co#canaryInTextAd1# +academictorrents.com#carbon- +downforeveryoneorjustme.com +#carbonDiv1 +coinlisting.info#carousel-example-generic +csdb.dk +#casdivhor +csdb.dk +#casdivver# +cbn.com#cbn_leaderboard_atf/ +guitaradvise.com +cloudwards.net#cbox$ +linuxinsider.com #cboxOverlay" +curseforge.com #cdm-zone-03" + inquirer.net#cdn-life-mrec/ + +deeplol.gg#center_content_bottom_ad_box + godbolt.org#ces# +tradingview.com #charting-ad+ +romsmania.games#click-widget-banner9 +animetrilogy.com +xcalibrscans.com #close-teaser" + oneindia.com#closePopupDiv– + slashdot.org#cloud8 +globalconstructionreview.com#cm-jobs-block-inner0 + crypto.news#cn-footer-sticky-placeholder) + crypto.news#cn-header-placeholder +whocallsme.com#cnt_1 +whocallsme.com#cnt_2 +whocallsme.com#cnt_btm! +linuxinsider.com #colorbox/ +smbc-comics.com#comicright > div[style]= + themirror.com + mirror.co.uk#comments-standalone-mpu3 + +kotaku.com +qz.com#commerce-inset-wrapper& +blackbeltmag.com#comp-loxyxvrt" + seatguru.com#comparePrices + cpuid.com #console_log$ +miniwebtool.com #contain300-1$ +miniwebtool.com #contain300-22 + gearspace.com#container__DesktopFDAdBanner; + gearspace.com&#container__DesktopForumdisplayHalfway- + coinhub.wiki#container_coinhub_sidead, + scanboat.com#content > .margin-tb-25, +allnewspipeline.com#content > [href]+ + outputter.io#content > section.html$ +fextralife.com#content-add-a. +blastingnews.com#content-banner-dx1-p1% +classicreload.com #content-top3 +kbb.com$#contentFor_kbbAdsSimplifiedNativeAd% +lineageos18.com#contentLocker + indy100.com +#content_1 + indy100.com +#content_2 + indy100.com +#content_3 + indy100.com +#content_4 + indy100.com +#content_5 + indy100.com +#content_6 + indy100.com +#content_7" +notebookcheck.net #contentaJ +unblock-it.com + theproxy.lol + uproxy2.biz#cookieConsentUR99472+ + alt-codes.net#copyModal .modal-body +wsj.com #coupon-links# + boots.com#criteoSpContainer + +lordz.io#crossPromotion) +croxyproxy.rocks#croxyExtraZapper + +pcwdld.com #ct-popup + toolslib.net#cta-box + +forbes.com #cta-builder? + asmag.com.#ctl00_en_footer1_bannerPopUP1_panel_claudebro + +digit.in #cubewrapid7 +timesofindia.indiatimes.com#custom_ad_wrapper_0i +reneweconomy.com.au +miloserdov.org + playstore.pw + winaero.com + +wpneon.com#custom_html-105 +miloserdov.org + playstore.pw#custom_html-11% +thethaiger.com#custom_html-12( +theregister.co.nz#custom_html-13c +colombiareports.com +mostlyblogging.com +miloserdov.org + cdromance.com#custom_html-14@ +sonyalpharumors.com +mostlyblogging.com#custom_html-153 +miloserdov.org + +eetimes.eu#custom_html-16B +budgetbytes.com +miloserdov.org +ets2.lt#custom_html-20 +blissfuldomestication.com#custom_html-22* +sonyalpharumors.com#custom_html-25M +mostlyblogging.com +sarkarideals.com + tvarticles.me#custom_html-3$ +godisageek.com#custom_html-4$ + mangaread.org#custom_html-48) +comicsheatingup.net#custom_html-5‰ +filmschoolrejects.com +colombiareports.com +sarkarideals.com +hongkongfp.com +weatherboy.com + phoneia.com#custom_html-6& +medievalists.net#custom_html-7" + theteche.com#custom_html-8Ý# +wsj.com#cx-deloitte-insight. +cyclingflash.com#cyclingflash_web_down/ +cyclingflash.com#cyclingflash_web_mid_1- +cyclingflash.com#cyclingflash_web_top/ +dailycaller.com#dailycaller_incontent_1/ +dailycaller.com#dailycaller_incontent_2/ +dailycaller.com#dailycaller_incontent_3/ +dailycaller.com#dailycaller_incontent_4$ +laineygossip.com #date-banner  +helpwithwindows.com#desc +eatwell101.com#desk1, +fastfoodnutrition.org#desk_leader_ad# +deccanherald.com #desktop-ad/ +republicworld.com#desktop-livetv-728-90& + +infotel.ca#desktopBannerBottom& + +infotel.ca#desktopBannerFooter# + +infotel.ca#desktopBannerTop9 +eldersweather.com.au#desktop_new_forecast_top_wxh( + homestuck.com#desktop_skyscraper! +pikalytics.com #dex-list-0 + scoop.co.nz #dfp-shadow + flyordie.com#dgad" +datagenetics.com +#dgsidebar + webgames.io #di-ai-left + webgames.io #di-ai-right# + webgames.io#di-ai-right-big' +lust-goddess.com#dialog-partner +wsj.com#dianomi-module +diep.io#diep-io_300x250 + +tmo.report #directad/ +realclearpolitics.com#distro_right_rail1 +tribunnews.com#div-Inside-MediumRectangle) +designtaxi.com#div-center-wrapper7 + allafrica.com"#div-clickio-ad-superleaderboard-a. + scoop.co.nz#div-gpt-ad-1493962836337-6. + scoop.co.nz#div-gpt-ad-1510201739461-45 + herfamily.ie + sportsjoe.ie#div-gpt-top_page1 +abovethelaw.com#div-id-for-middle-300x250. +abovethelaw.com#div-id-for-top-300x250, +pch.com#div-pch-gpt-placement-bottom. +pch.com#div-pch-gpt-placement-multiple) +pch.com#div-pch-gpt-placement-top + +newser.com #divImageAd$ + +newser.com#divMobileHeaderAd  + +newser.com#divNavAdFixed¾ +newbrunswickgasprices.com +newfoundlandgasprices.com +abbotsfordgasprices.com +novascotiagasprices.com +quebeccitygasprices.com +saskatoongasprices.com +vancouvergasprices.com +edmontongasprices.com +hamiltongasprices.com +manitobagasprices.com +montrealgasprices.com +victoriagasprices.com +winnipeggasprices.com +albertagasprices.com +calgarygasprices.com +halifaxgasprices.com +ontariogasprices.com +torontogasprices.com +barriegasprices.com +londongasprices.com +ottawagasprices.com +quebecgasprices.com +reginagasprices.com +saskgasprices.com +nwtgasprices.com +peigasprices.com +bcgasprices.com +kwgasprices.com + gasbuddy.com#divSky! + +newser.com#divStoryBigAd1& + +newser.com#divWhizzcoRightRail. +hometheaterreview.com#div_block-382-13* +hindustantimes.com#divshopnowRight) +rednationonline.ca#dnn_BannerPane! + uploadfox.net #downloadxaa) +indiatvnews.com#ds_default_anchor + unite-db.com#ds_lb1 + unite-db.com#ds_lb2 +thedailystar.net#dsspHS  +permanentstyle.com#dttop + jigzone.com#dz2 +sashares.co.za#elementor-popup-modal-893859 + asmag.com(#en_footer1_bannerPopUP1_panel_claudebro, +energyforecastonline.co.za +#endorsers0 + geekwire.com#engineering-centers-sidebar  + +evoke.ie#ev_desktop_mpu1 + jigzone.com#fH·  + +csstats.gg#faceit-banner> +restaurantbusinessonline.com +cspdailynews.com#faded" + enjoy4fun.com #fake-ads-dom" +openloading.com #fakeplayer& +theroar.com.au#fan-tech-anchor) +asianjournal.com#fancybox-overlay& +asianjournal.com#fancybox-wrap# +thedrinknation.com #fcBanner) +247checkers.com#feature-ad-holder$ +perezhilton.com #feature-spot$ + +forbes.com#featured-partners3 + +fandom.com!#featured-video__player-containerT +thecubexguide.com + miuiflash.com + +djxmaza.in + +jytechs.in#featuredimage& +en.numista.com#fiche_buy_links" + +getyarn.io#filtered-bottom' + finbold.com#finbold\.com_middle! + investing.com #findABroker$ +healthshots.com #fitnessTools) +healthshots.com#fitnessToolsAdBot) +thisismoney.co.uk#fiveDealsWidget + thefa.com #fixedAdLeft + thefa.com #fixedAdRight5 +propertyshark.com +point2homes.com #fixedban" +cnx-software.com +#fixeddbar- +topsporter.net#fl-ai-widget-placement( + +vscode.one#flamelab-convo-widget2 + apkmody.mobi + +apkmody.io#flirtwith-modal% +nanoreview.net#float-sb-right$ +animetrilogy.com #floatcenter# + editpad.org#floorad-wrapperW +thetimestribune.com +ottumwacourier.com +clintonherald.com#floorboard_block! + +streams.tv#flowerInGarden  +12tomatoes.com +#footboard + mybib.com #footer > div  +fanlesstech.com #footer-1" + metasrc.com#footer-content) +bundesliga.com#footer-partnerlogo# +warcraftpets.com #footer-top$ + ksstradio.com#footer-widgets + fixya.com #footerBanner' +techrounder.com#footerFixBanner" + atptour.com#footerPartners+ + phpbb.com#footer_banner_leaderboardx +forums.tomshardware.com +forums.anandtech.com +forums.tomsguide.com +forums.pcgamer.com#footer_leaderboard! + feedicons.com #footerboard% +wanderlustcrew.com #fpub-popup3 +blenderartists.org + stonetoss.com#friends5 +peacemakeronline.com#front_mid_right > center + thefa.com #ft-adverts" +tarladalal.com #ftr_adspace% + +imgbox.com#full-page-redirect$ +datareportal.com #fuse-sticky! +scienceabc.com #fusenative! + clocktab.com #fv_left-side) +chromecastappstips.com #fwdevpDiv0, +pacificcitizen.org#fws_6848546968120, +pacificcitizen.org#fws_68485551c135f& + fxleaders.com#fxl-popup-banner/ + fxstreet.com#fxs-sposorBroker-topBanner( +colourlovers.com#ga-above-footer( +colourlovers.com#ga-below-header + +9bis.net#gad1 +gaiaonline.com#gaiaonline_leaderboard_atf& +cheatcodes.com#game_details_adúx +birdsandblooms.com +familyhandyman.com +tasteofhome.com +thehealthy.com +rd.com#gch-prearticle-container + geekwire.com #geekwork$ + investing.com#generalOverlay, +thecountersignal.com#geo-header-ad-1: +getvideobot.com##getvideobot_com_300x250_responsiveD +getvideobot.com-#getvideobot_com_980x250_billboard_responsive2 +thingstodovalencia.com#getyourguide-widget7 +progameguides.com +dotesports.com #gg-masthead) + glowstery.com#ghostery-highlights + freegames.org#gla +wordcounter.net#glya, + mediamass.net + gearlive.com#google7 +propertyshark.com#google-ads-directoryViewRight. +healthbenefitstimes.com#google-adv-top + photojpl.com #google01 + mediamass.net#google3* +windows2universe.org#google_mockup: +desmoinesregister.com#gpt-dynamic_native_article_4- +desmoinesregister.com#gpt-high_impact1 +malaysiakini.com#gpt-layout-top-container( +desmoinesregister.com #gpt-poster + justdial.com#gptAds2 + justdial.com +#gptAdsDiv  +spellcheck.net +#grmrl_one# +nintendoworldreport.com#hAd" +streamingrant.com #hb-strip. +cadenaazul.com +lapoderosa.com#hcAdd + castanet.net#hdad@ +inventorspot.com + mothering.com + wordfind.com#header% + fxempire.com#header-ads-block& + olympics.com#header-adv-banner* + khelnow.com#header-adwords-section² +frontlinesoffreedom.com +directindustry.com +stakingrewards.com +aeroexpo.online +agriexpo.online +droidgamers.com + fonearena.com + winemag.com#header-banner) +dominicantoday.com#header-banners; +bestvpnserver.com +techitout.co.za#header-content$ + govevents.com#header-display% +nagpurtoday.in#header-sidebar7 +sailingmagazine.net + looperman.com #header-top + +nisnews.nl #header-wrap" + +newser.com#headerAdSection$ +lokmattimes.com #headerBanner/ +realestate.com.au#headerLeaderBoardSlotÔ +forums.androidcentral.com +forums.tomshardware.com +forums.anandtech.com +forums.tomsguide.com +forums.whathifi.com +forums.pcgamer.com +forums.space.com +redflagdeals.com#header_leaderboard& +digitalpoint.com#header_middle! + +coolors.co#header_nav + a" +writerscafe.org #header_payj +conjugacao-de-verbos.com +the-conjugation.com +die-konjugation.de +conjugacion.es #header_pub& + deckstats.net#header_right_big" + metasrc.com#header_wrapper] +smallscreenscoop.com +revizoronline.com + nikktech.com + hwhills.com #headerbanner% + sat24.com#headercontent-onder0 +hometheaterreview.com#headerhorizontalad +nnn.ng#hfgad1 +nnn.ng#hfgad2" +thegazette.com #high-impact  +stackoverflow.com#hireme + techmeme.com#hiring' + heatmap.news#hmn_sponsored_post' + gunbroker.com#home-ad-a-wrapper +dailysocial.id #home-ads2 +transfermarkt.com#home-rectangle-spotlight& + shobiddak.com#homeShobiddakAds6 +sslshopper.com #home_quick_search_buttons > div2 +hometheaterreview.com#homepagehorizontalad÷C +packaginginsights.com +nutritioninsight.com#horizontalblk# +skylinewebcams.com #hostedby# +hostelgeeks.com #hostelModal# + ukutabs.com#howtoreadbutton' +whatismyip.com#hp-ad-banner-top! + webmd.com#hp-ad-containerÜ +laredoute.co.uk + laredoute.com + laredoute.be + laredoute.ch + laredoute.de + laredoute.es + laredoute.fr + laredoute.gr + laredoute.it + laredoute.nl + laredoute.pt + laredoute.ru#hp-sponsored-banner + +krdo.com #hp_promobox< +blog.hubspot.com$#hs_cos_wrapper_blog_post_sticky_cta¦ +nettikaravaani.com +nettimarkkina.com +nettivuokraus.com +nettimokki.com + nettiauto.com + nettikone.com + nettimoto.com + nettivene.com #huge_banner' + autotrader.ca#hulkTileBottomRow + y2mate.nu + +ytmp3.nu#i" +robbreport.com #icon-sprite' +maxsports.site#id-custom_banner# +dailysabah.com #id_d_300x250, + rakuten.com#id_parent_rrPlacementTop$ +gaiaonline.com#iframeDisplay  +igeeksblog.com +#ig_header  +unitconversion.org#ileft' + furbooru.org +4f.to +#imagespns# + +linksly.co#imgAddDirectLink* +blackbeltmag.com#img_comp-loxyxvrt + mydorpie.com #imgbcont +crn.com#imu1forarticles + scoop.co.nz#in-cont& + astrolis.com#in-house-ad-daily, +supremacy1914.com#inGameAdsContainer“ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca#in_article_300x250_1' +thefastmode.com#inarticlemodule +metabattle.com#inca1 +metabattle.com#inca2 + +manga18.me #index_natvmo# +droidinformer.org +#inf_bnr_1# +droidinformer.org +#inf_bnr_2# +droidinformer.org +#inf_bnr_3i +esecurityplanet.com +serverwatch.com +datamation.com + webopedia.com + eweek.com #inline-top+ +howstuffworks.com#inline-video-wrap + +koimoi.com +#inline_ad + +krnb.com #inner-footer& +workhouses.org.uk #inner-top-ad+ +thefinancialexpress.com.bd #innerAds( +timesofmalta.com#inscroll-banner" + imagebam.com#inter > [src]/ + booklife.com + +yabeat.org #interstitial+ +rightmove.co.uk#interstititalSlot-0+ +rightmove.co.uk#interstititalSlot-1+ +rightmove.co.uk#interstititalSlot-2L + +lcpdfr.com:#ipsLayout_mainArea > .uBlockBrokeOurSiteIpsAreaBackground0 + osbot.org#ipsLayout_mainArea > div > div9 + uk420.com(#ipsLayout_sidebar > div[align="center"]( + osbot.org#ips_footer > div > div! +unitconversion.org#iright# +allnewspipeline.com#isg_add. +icon-icons.com#istockphoto-placeholder +fakeupdate.net#itemz% + winaero.com#jkhskdfsdf-iycc-40 +cnn.com!#js-outbrain-rightrail-ads-module0 + +9gag.com #jsid-ad-container-page_adhesion! +dhakatribune.com #jw-popup + +food52.com +#jw_iframe2 + variety.com#jwplayer_xH3PjHXT_plsZnDJi_div + jigzone.com#jz# +ceoexpress.com #kalamazooDiv + msguides.com #kknbnpcvä8 + kohls.com'#kmnsponsoredbrand-sponsored_top-anchor& +karryon.com.au#ko-ads-takeover + kvraudio.com +#kvr300600 + freeads.co.uk#l_sk1- + inc42.com#large_leaderboard_desktop-01 +peacemakeronline.com#latest_news > center! + flaticon.com #layer_coupon# + +elfaro.net#layout-ad-header& +screengeek.net#layoutContainer + +friv.com#lba + +friv.com#lbaTop + irishnews.com#lbtop; +unblockedstreaming.net +piraproxy.info #lbxUR99472  +123unblock.bar +#lbxVPN666 + dailydooh.com#leaddivC +motherproof.com +sansabanews.com +kontraband.com#leader& +techrepublic.com#leader-bottom( +techrepublic.com#leader-plus-top" +ugstandard.com #leader-wrap& +techgeek365.com#leader-wrapper# +pistonheads.com #leaderBoard% + +whdh.com + +wsvn.com #leader_1• +publishersweekly.com +newcartestdrive.com +news.tvguide.co.uk +thedrinknation.com +allwomenstalk.com +theserverside.com +penny-arcade.com +onthesnow.co.nz +onthesnow.co.uk +12tomatoes.com +hockeybuzz.com +vacations.info + bloomberg.com + onthesnow.com + skysports.com + koreaboo.com + news.sky.com + onthesnow.ca + sportsnet.ca + datpiff.com + +logotv.com #leaderboard/ +open.spotify.com#leaderboard-ad-element0 +thebaltimorebanner.com#leaderboard-ad-v2! + +vocm.com#leaderboard-area) +bbc.com#leaderboard-aside-content¨ +vancouverisawesome.com +revelstokereview.com +reddeeradvocate.com +surreynowleader.com +kelownacapnews.com +orilliamatters.com +timescolonist.com +lakelandtoday.ca +theprogress.com + abbynews.com + sootoday.com + vicnews.com + +time.com +biv.com#leaderboard-container- +farooqkperogi.com#leaderboard-content* + variety.com#leaderboard-no-padding, + alternet.org#leaderboard-placeholder( +foodnetwork.com#leaderboard-wrap. +washingtonpost.com#leaderboard-wrapper  + drdobbs.com #leaderboard18 +babycenter.com + fixya.com#leaderboardContainer& + sportsnet.ca#leaderboardMaster& +macrotrends.net#leaderboardTag( +games2jolly.com#leaderboard_area- +games2jolly.com#leaderboard_area_home+ +planetminecraft.com#leaderboard_atf` +canadianbusiness.com +yardbarker.com + macleans.ca + vidio.com#leaderboard_container- +spoonuniversity.com#leaderboard_fixed' + sportsnet.ca#leaderboard_masteri +deutschland.fm + nederland.fm + +danmark.fm + belgie.fm + espana.fm + italia.fm#leaderboardbg +eel.surf7.net.my#left' + news9live.com#left_before_story/ +assamtribune.com#left_level_before_tags- + nitrome.com#left_skyscraper_container* + nitrome.com#left_skyscraper_shadow + kitco.com #left_square/ +liverpoolfc.com#lfc_ads_article_pos_one, +liverpoolfc.com#lfc_ads_home_pos_one& + jestful.net#list-imga > centerZ +lifeandstylemag.com +intouchweekly.com +closerweekly.com#listProductWidgetData + slidesgo.com +#list_ads1 + slidesgo.com +#list_ads2 + slidesgo.com +#list_ads3) +lightnovelcave.com#lnvidcontainer# + +wormate.io#loa831pibur0w4gv5 + hilltimes.com #locked-sponsored-stories-inline! + +lordz.io#lordz-io_300x250# + +lordz.io#lordz-io_300x250_2  + +lordz.io#lordz-io_728x90# +rxresource.org #lowerdrugsAdú5 + lowes.com$#lws_hp_recommendations_belowimage_1 + hackerbot.net#madiv + hackerbot.net#madiv2 + hackerbot.net#madiv3) + animehub.ac#main-content > center( + slashdot.org#main-nav-badge-link! +proprivacy.com #main-popup2 + w3schools.com + w3big.com#mainLeaderboardG +the-express.com + express.co.uk#mantis-recommender-placeholder( +planefinder.net#map-ad-container% +themeforest.net#market-banner4 + citynews.ca + +citytv.com#master-leaderboard + vpforums.org#master11 +defenseworld.net +marketbeat.com#mb-bar# +koreaherald.com #mbpAd022303  +bmj.com#mdgxWidgetiFrame! + +active.com#med_rec_bottom + +active.com #med_rec_top5 +wakingtimes.com + ymcinema.com#media_image-2) +airfactsjournal.com#media_image-3, +palestinechronicle.com#media_image-4( +mostlyblogging.com#media_image-5) + chess.com#medium-rectangle-atf-ad+ + moomoo.io#menuContainer > .menuCard + voiranime.com#mg_vd! +webpronews.com #mid-art-ad" + forward.com#middle-of-page2 +peacemakeronline.com#middle_banner_section0 +bleedingcool.com#middle_medium_rectangle9 +pastemagazine.com + jezebel.com#middle_rectangle* +thefastmode.com#middlebanneropenet' + cyberdaily.au#mm-azk560023-zone( + +mmorpg.com#mmorpg_desktop_list_1( + +mmorpg.com#mmorpg_desktop_list_3 +si.com#mmvid. +appleinsider.com#mobile-article-anchor) +pocketgamer.com#mobile-background# + accuradio.com#mobile-bottom + tvtropes.org #mobile_1 + tvtropes.org #mobile_2! +permanentstyle.com#mobmid! +permanentstyle.com#mobtop# +coinarbitragebot.com#modal1' +cellmapper.net#modal_av_details! +mytuner-radio.com#move-adI +moviemistakes.com0#moviemistakes_300x600_300x250_160x600_sidebar_2X +thefootballnetwork.net +pcgamingwiki.com +consobaby.co.uk + gumtree.com#mput +truesteamachievements.com +trueachievements.com +truetrophies.com + skysports.com + news.sky.com#mpu-1S +truesteamachievements.com +trueachievements.com +truetrophies.com#mpu-2S +truesteamachievements.com +trueachievements.com +truetrophies.com#mpu-3& +bbc.com#mpu-side-aside-content- +standard.co.uk#mpu_bottom_sb_2_parent% +gmanetwork.com#mrec-container +spin.ph#mrec3" + nitrome.com#mu_2_container" + nitrome.com#mu_3_container% +wrestlingnews.co #mvp-head-topÇ +footballleagueworld.co.uk +barrettsportsmedia.com +marijuanamoment.net +atlantatribune.com +ripplecoinnews.com +srilankamirror.com +tribune.net.ph + ioncinema.com#mvp-leader-wrapQ +europeangaming.eu8#mvp-leader-wrap > a[href^="https://www.softswiss.com/"], +twinfinite.net#mvp-main-content-wrap4 + hotklix.com!#mvp-main-nav-top > .mvp-main-box( +dailyboulder.com#mvp-post-bot-ad, +barrettsportsmedia.com#mvp-wallpaper$ +polygonscan.com #my-banner-adã +mangareader.cc#myModal +fileproinfo.com#myNav$ +mediaupdate.co.za #mycarousel + coveteur.com #native_1 + coveteur.com #native_2 +techrepublic.com#nav-ad! +planetizen.com #navbar-top' + gearspace.com#navbar_notice_730* + needpix.com#needpix_com_top_banner  + my.juno.com #newsCarousel + +livelaw.in #news_on_exit  + farminguk.com #newsadvertM +canberratimes.com.au +theland.com.au#newswell-leaderboard-container3 + nextshark.com#nextshark_com_leaderboard_top +searchfiles.de#nextuse& +nanoreview.net#nfloat-sb-right" +seroundtable.com +#ninja_box1 +unite.pvpoke.com#nitro-unite-sidebar-left2 +unite.pvpoke.com#nitro-unite-sidebar-rightv +pcgamebenchmark.com +pockettactics.com +thedigitalfix.com + pcgamesn.com + wargamer.com#nn_astro_wrapper- +techraptor.net + unite-db.com#nn_lb1- +techraptor.net + unite-db.com#nn_lb2 +techraptor.net#nn_lb3 +techraptor.net#nn_lb42 +nintendoeverything.com#nn_mobile_mpu4_tempM +nintendoeverything.com +steamidfinder.com +gamertweak.com#nn_mpu18 +nintendoeverything.com +gamertweak.com#nn_mpu2& +nintendoeverything.com#nn_mpu3& +nintendoeverything.com#nn_mpu40 +techraptor.net + tftactics.gg +#nn_player+ +steamidfinder.com#nn_player_wrapper1 + +asura.gg + +nacm.xyz#noktaplayercontainer‰ +cricketstreams.cc +formula1stream.cc +boxingstreams.cc +crackstreams.gg + footybite.cc + mlbshow.com + nbabite.com#nordd/ +forums.somethingawful.com#notregistered& +ekathimerini.com#nx-stick-help9 +allaboutcookies.org#offer-review-widget-container´ +freeemailvalidator.com +freephonevalidator.com +freecarrierlookup.com +freeaddresscheck.com +freecallerlookup.com +freegenderlookup.com +freeiplookup.com#offers0 +streetdirectory.com#offers_splash_screen! + +gizbot.com#oi-custom-camp + kohls.com #open-drawer7 +livestreamfails.com#oranum_livefeed_container_0 +ckk.ai#orquidea-slideup< + streamplay.to + powvideo.net + uxstyle.com#overlay# + megacloud.tv#overlay-center; +rabbitstream.net + mzzcloud.life#overlay-container# + tokyvideo.com#overlay-video  + mp4upload.com #overlayads +drivevideo.xyz #overlays1 +animetrilogy.com + animexin.vip #overplay +explainxkcd.com#p-Ads" + phpbb.com#page-footer > h3( + accuradio.com#pageSidebarWrapper5 +leiterreports.typepad.com#paid_advertisements6 +leiterreports.typepad.com#paid_advertisements_ + cyclenews.com#pamnew¤ +footballorgin.com +devdiscourse.com +justthenews.com +gadgets360.com + oneindia.com + wionews.com + +aninews.in + +zeebiz.com + +ndtv.com #parentDiv0  + +mg.co.za#partner-content# +standard.co.uk #partner-ctas + hwbot.org#partner-tiles +cnn.com #partner-zone7 +fastseduction.com +independent.co.uk #partners$ +kingsleague.pro #partnersGrid, +arrivealive.co.za#partners_container" +binaries4all.com +#payserverÑ& +forums.golfwrx.com #pb-slot-top:" + genshin-impact-map.appsample.com#pc-br-300x250-gim9" + genshin-impact-map.appsample.com#pc-br1-float-gim + +demap.info#pcad + +shine.cn #pdfModal2 +investopedia.com#performance-marketing_1-0! +webnovelworld.org#pfvidad( +premierguitar.com#pg_leaderboard% +tutorialspoint.com #pg_top_ads1 +radiocaroline.co.uk#photographsforeverDiv# +bleepingcomputer.com#pinned$ + accuradio.com#pl_leaderboardD +giantfreakinrobot.com'#playwire-homepage-takeover-leaderboard  + issuu.com#playwire-video + +files.im#plyrrr% +pikalytics.com#pokedex-top-ad  + politico.com #pol-01-wrap. +standard.co.uk#polar-sidebar-sponsored* +standard.co.uk#polarArticleWrapper* +welovemanga.one + +weloma.art#poly + +pons.com#pons-ad-footer/ + +pons.com#pons-ad-leaderboard__container + epicload.com +#popconlkr" +safetydetectives.com#popup9 +bankinfosecurity.com#popup-interstitial-full-page! +chaseyoursport.com#popup1 + ducky.bio #popupOverlayR + quickmeme.com=#post[style="display: block;min-height: 290px; padding:0px;"]' +ultrabookreview.com #postadsside$ +ultrabookreview.com #postzzif# +the-scientist.com +#preHeader + +playok.com#pread + +adlice.com #preview-div% + talkbass.com#primary-products + +deepai.org #primis-ads& + slashfilm.com#primis-container$ + walgreens.com#prod-sponsoredŽ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca#promo-container" +sslshopper.com #promo-outer3 +thestreamable.com#promo-signup-bottom-sheet" +dailymail.co.uk #promo-unit# + proxyium.com#proxyscrape_ad+ +frequence-radio.com#pub_listing_top/ +elevationmap.net#publift_home_billboard0 +fxsforexsrbijaforum.com#pun-announcement* + pc-builds.com#pushdown_placeholder& + bobvila.com#pw-iab-leaderboard~ +taskandpurpose.com +outdoorlife.com + thedrive.com + bobvila.com + +popsci.com +twz.com#pw-top-right-sidebar-aib" +sparknotes.com #pwDeskLbAtf* + lambgoat.com#pwDeskLbAtf-container  + +onmsft.com#pwDeskSkyBtf1% + d4builds.gg#pwParentContainer$ +thefastmode.com #quick_survey* + sporcle.com#quiz-right-rail-unit-2 + techmeme.com#qwdbfwh +comicbookrealm.com#rad% + coincarp.com#random_sponsored/ + rawstory.com#rawstory_front_2_container + reverso.net#rca* +businessgreen.com#rdm-below-header +slideserve.com#readl, +shortwaveschedule.com#reclama_mijloc +time.is#recover + scoop.co.nz#rect‚ +dict.cc #recthome +dict.cc #recthomebot +ip-tracker.org#rekl# + tapatalk.com#relatedblogbar! + plurk.com#resp_banner_ads% + +immoweb.be#result-list-header& + homedepot.com#revjet_container2 +10minutemail.net +eel.surf7.net.my#right& + msguides.com#right-bottom-camp/ +comicbookrealm.com#right-rail > .module! + purewow.com#right-rail-ad$ +gogetaroomie.com #right-space+ +online-translator.com#rightAdvBlock# +openspeedtest.com +#rightArea# +icon-icons.com #right_column) +medicaldialogues.in#right_level_8 + numista.com +#right_pub- +collegedunia.com#right_side_barslot_1- +collegedunia.com#right_side_barslot_2 + calcudoku.org #right_td' +yardbarker.com#right_top_stickyC +forums.tomshardware.com +forums.space.com#rightcol_bottomº +forums.androidcentral.com +forums.tomshardware.com +forums.anandtech.com +forums.tomsguide.com +forums.whathifi.com +forums.pcgamer.com +forums.space.com #rightcol_top + numista.com #rightpub' +road.cc#roadcc_Footer-Billboard) + box-core.net + mma-core.com#rrec + anisearch.com#rrightX0 + glennbeck.com#sPost_0_0_5_0_15_5_0_1_2_0> + glennbeck.com)#sPost_Default_Layout_0_0_6_0_0_9_0_1_2_0; +spectrum.ieee.org"#sSS_Default_Post_0_0_20_0_0_1_4_27 +flatpanelshd.com#sb-site > .hidden-xs.container; +centurylink.net + +wowway.net#sc_home_header_banner& + +wowway.net#sc_home_news_banner- + +wowway.net#sc_home_recommended_banner( + +wowway.net#sc_read_header_banner + my.juno.com #scienceTile% +coinarbitragebot.com #screener- + +adverts.ie#search_results_leaderboard9 +nagpurtoday.in##secondary aside.widget_custom_html  +pao.gr#section--sponsors' +racingamerica.com#section-159222 +hometheaterreview.com#section-20297-1919920 +hometheaterreview.com#section-246-102074% + neoseeker.com#section-pagetop2 +searchenginejournal.com#sej-pop-wrapper_v3c +analyticsinsight.net +moviedokan.lol +shortorial.com##sgpb-popup-dialog-main-div-wrapper) + wordhippo.com#sgwDesktopBottomDiv# +v3rmillion.net #sharingPlace) + fedex.com#shop-runner-banner-link! +search.brave.com #shopping. +shareinvestor.com#sic_superBannerAdTop/ +filedropper.com + lifenews.com#sidebar? +whatsondisneyplus.com"#sidebar > .widget_text.amy-widget+ +tellymix.co.uk#sidebar > div[style]+ +globalwaterintel.com#sidebar-banner( +spiceworks.com#sidebar-bottom-ad' + ftvlive.com#sidebar-one-wrapper$ + carmag.co.za#sidebar-primary' +saharareporters.com #sidebar-top5 +interest.co.nz + metasrc.com#sidebar-wrapper + +koimoi.com #sidebar1  + scotsman.com #sidebarMPU1  + scotsman.com #sidebarMPU2' + ubergizmo.com#sidebar_card_sponŒ# +trucknetuk.com #sidebarright  + image.pi7.org #sidebarxad- + +disqus.com#siderail-sticky-ads-moduleÅ +germanautoforums.com +hondaaccordforum.com +minicooperforums.com +hondacivicforum.com +landroverforums.com +mitsubishiforum.com +montecarloforum.com +oldsmobileforum.com +volkswagenforum.com +corvetteforums.com +kawasakiforums.com +cadillacforum.com +chryslerforum.com +mustangboards.com +4runnerforum.com +camaroforums.com +hummerforums.com +mercuryforum.com +acuraforums.com +blazerforum.com +civicforums.com +isuzuforums.com +nissanforum.com +pontiactalk.com +saturnforum.com +truckforums.com +volvoforums.com +buickforum.com +hondaforum.com +lexusforum.com +mazdaforum.com +saabforums.com + fordforum.com + cbrforum.com#sidetilewidth8 +gephardtdaily.com#simple-sticky-footer-container9 +newcountry963.com +995thewolf.com#simpleimage-3$ +hot933hits.com#simpleimage-5( +yourharlow.com#single_rhs_ad_col& + inoreader.com#sinner_container' +pocketgamer.com#site-background2 +webkinznewz.ganzworld.com#site-description + dead-frog.com #site_top/ +2oceansvibe.com +pocketgamer.biz#skin- +breakingdefense.com#skin-clickthrough + +ebar.com +#skin-left + +ebar.com #skin-right + +namemc.com #skin_wrapper' + pinkvilla.com#skinnerAdClosebtn + +dafont.com#sky? +thisismoney.co.uk +dailymail.co.uk#sky-left-container! +dailymail.co.uk +#sky-right@ +thisismoney.co.uk +dailymail.co.uk#sky-right-container. +skylinewebcams.com#skylinewebcams-ads2 + dailydooh.com#skysbarW +holiday-weather.com + w3schools.com + omniglot.com + zerochan.net #skyscraper" + nitrome.com#skyscraper_box% + nitrome.com#skyscraper_shadow( +scrabble-solver.com #skywideupper! + surfline.com #sl-header-ad# + slashdot.org#slashdot_deals  +gunsamerica.com #slidebox6 +compleatgolfer.com +sacricketmag.com#slidein" + accuradio.com #slot2Wrapper' +orteil.dashnet.org #smallSupport" +point2homes.com #smartAsset +apkmoddone.com #sn-Notif( +givemesport.com#sn_gg_ad_wrapper- +forums.bluemoon-mcfc.co.uk #snack_dmpu: +forums.bluemoon-mcfc.co.uk + +gpfans.com +#snack_ldb: +forums.bluemoon-mcfc.co.uk + +gpfans.com +#snack_mpu, +forums.bluemoon-mcfc.co.uk +#snack_sky, + +ghacks.net#snhb-snhb_ghacks_bottom-0* +who-called.co.uk#snigel_ads-mobile) + thedriven.io#solarchoice_banner_1  + +wcny.org#soliloquy-12716 + toumpano.net #sp-feature! + hilltimes.com #sp-mini-box + toumpano.net #sp-right! + vuejs.org#special-sponsor + coingape.com#spinbtn  +fastseduction.com#splash1 +streetdirectory.com#splash_screen_overlay +downloads.codefi.re#spo  +downloads.codefi.re#spo2 + bitchute.com#spoSide +firmwarefile.com#spon+ + cssbattle.dev + +slitaz.org#sponsor% +meteocentrale.ch #sponsor-info; + nordstrom.com&#sponsored-carousel-sponsored-carousel( + newsfirst.lk#sponsored-content-1$ +cnn.com#sponsored-outbrain-1' + hiphopkit.com#sponsored-sidebar$ + philstar.com#sponsored_posts! + techmeme.com #sponsorpostsºd +fastseduction.com +whenitdrops.com +landreport.com + geekwire.com + vuejs.org #sponsors' +system-rescue.org#sponsors-left' +colourlovers.com#sponsors-links/ +ourworldofenergy.com#sponsors_container +rent.ie#sresult_banner + +tokder.org#ssss( +stocktwits.com#st-bottom-content  +torrentgalaxy.to#startad. + geekwire.com#startup-resources-sidebar6 +newcartestdrive.com#static-asset-placeholder-26 +newcartestdrive.com#static-asset-placeholder-3 + tvtropes.org #stick-cont# +dvdsreleasedates.com#sticky% +guelphmercury.com #sticky-ad-1 + thestar.com #sticky-ad-2% +rudrascans.com#sticky-ad-head + +ktbs.com#sticky-anchorl +esecurityplanet.com +serverwatch.com +datamation.com + webopedia.com + eweek.com#sticky-bottom( +stakingrewards.com#sticky-footer0 +gadgethacks.com#sticky-footer--container" +datamation.com #sticky-railS +the-independent.com +independent.co.uk +standard.co.uk#stickyFooterRoot! +afr.com#stickyLeaderboard + vintag.es #sticky_ads3 +bostonglobe.com#sticky_container.width_fullM +rockpapershotgun.com + eurogamer.net + vg247.com#sticky_leaderboard& +lethbridgeherald.com +#stickybox- +medicinehatnews.com#stickyleaderboard + +news18.com#stkad8 +zoomtventertainment.com +timesnownews.com#stky& +sun-sentinel.com#stnWrapperDiv# +westernjournal.com #stnvideo! + rawstory.com #story-top-ad% +healthshots.com#storyBlockOne& +healthshots.com#storyBlockZero4 +suffolknewsherald.com#story_one_by_one_group" + +krunker.io#streamContainer +web-capture.net#stw_ad + arenaev.com +#subHeader + gsmarena.com #subHeader2) +macrotrends.net#subLeaderboardTag- +ebaumsworld.com#subheader_atf_wrapper + +streams.tv +#sunGarden$ +eenewseurope.com #superBanner + dashnet.org#support" +vk.com +vk.ru #system_msg6 +polygonscan.com + etherscan.io#t8xt5pt6kr-0-1 + gumtree.com#tBanner5 + cbsnews.com"#taboola-around-the-web-video-door +comicbookrealm.com#tad0 +cyclingtips.com + mirror.co.uk #takeover( + romsgames.net#td-top-leaderboard" +based-politics.com#tdi_107 +linuxtoday.com#tdi_46# +depressionforums.org#tdi_72! +cornish-times.co.uk#teads +the-star.co.ke#teasers, + eetimes.com#techpaperSliderContainer% + tecmint.com#tecmint_incontent3 + tecmint.com #tecmint_leaderboard_article_top  +cnx-software.com#text-10! +worldtribune.com #text-101( +geeky-gadgets.com#text-105335641 +godisageek.com#text-11Ö + hpcwire.com #text-115g +cryptoreporter.info +wakingtimes.com +cathnews.co.nz + net-load.com + vgleaks.com#text-12M +thewashingtonstandard.com +radiosurvivor.com + vgleaks.com#text-13$ +ericpetersautos.com #text-133 + vgleaks.com#text-14! +geeksforgeeks.org#text-150 +geeksforgeeks.org + vgleaks.com#text-16" +cleantechnica.com #text-165  +weekender.com.sg#text-17 + vgleaks.com#text-180 +5movierulz.band +populist.press#text-2! +freecourseweb.com#text-20 + net-load.com#text-25^ +2smsupernetwork.com +cryptoreporter.info +cnx-software.com + net-load.com#text-267 +cryptoreporter.info +cnx-software.com#text-27# +2smsupernetwork.com#text-289 +2smsupernetwork.com +westseattleblog.com#text-3 +needsomefun.net#text-36  +wrestlingnews.co#text-38' +conversanttraveller.com#text-39N +thewashingtonstandard.com +postnewsgroup.com + tvarticles.me#text-4' +conversanttraveller.com#text-40: +conversanttraveller.com +needsomefun.net#text-41& +bigblueball.com#text-416290631 +needsomefun.net#text-42# +premiumtimesng.com #text-429  +kollelbudget.com#text-43# +premiumtimesng.com #text-440( +foodsforbetterhealth.com#text-46 + eevblog.com#text-49M +technipages.com + computips.org + techlife.com + +tennews.in#text-5# +2smsupernetwork.com#text-50v +theconservativetreehouse.com +2smsupernetwork.com +treesofblue.com +snowbrains.com + times.co.zm#text-6 + yugatech.com#text-69 +treesofblue.com#text-7  +kollelbudget.com#text-70  +kollelbudget.com#text-78d +thewashingtonstandard.com +westseattleblog.com +playco-opgame.com + sadeempc.com#text-8  +kollelbudget.com#text-82  +kollelbudget.com#text-83= +thewashingtonstandard.com +bestvpnserver.com#text-9$ +nanoreview.net#the-app > .mbB +bestfriendsclub.ca(#theme-bottom-section > .section-content? +bestfriendsclub.ca%#theme-top-section > .section-content  + indy100.com #thirdparty01+ +standard.co.uk#thirdparty_03_parent! + +siasat.com#tie-block_3274* + box-core.net + mma-core.com#tlbrd  +technewsworld.com#tnavadA +bramptonguardian.com%#tncms-region-global-container-bottom- +thenationalpulse.com#tnp_leaderboard1, +whatismyip.com#tool-what-is-my-ip-ad- +accuweather.com +phonescoop.com#top) +crn.com#top-ad-fragment-container& + zap-map.com#top-advert-content$ + bookriot.com#top-alt-content- + coingecko.com#top-announcement-header² +theportugalnews.com +investorplace.com +foodlovers.co.nz +fantasypros.com +thedailywtf.com +foodnetwork.ca + kurocore.com + +cheese.com + skift.com #top-banner- +globalwaterintel.com#top-banner-imageC +the-independent.com +independent.co.uk#top-banner-wrapper! +missingremote.com#top-bar+ +returnyoutubedislike.com #top-donors& +breakingdefense.com #top-header  +openspeedtest.com#top-lbÈ/ +capetownmagazine.com#top-leader-wrappers +austinchronicle.com +vodacomsoccer.com +thegazette.com + shawlocal.com + carmag.co.za#top-leaderboard" +gogetaroomie.com +#top-space6 +progameguides.com#top-sticky-sidebar-container. + gamepur.com#top-sticky-sidebar-wrapper + sporcle.com #top-unit + nytimes.com #top-wrapper2 +digitalartsonline.co.uk#topLeaderContainer$ + mautofied.com#topLeaderboard" + +krunker.io#topLeftAdHolder# + +krunker.io#topRightAdHolder' +forum.wordreference.com#topSupp  +walterfootball.com#top_S! +yourharlow.com #top_ad_row" + +utne.com#top_advertisement4 +chicagotribune.com#top_article_fluid_wrapper0 +tarladalal.com + indy100.com #top_banner+ +caribpress.com#top_banner_container" + +cfoc.org#top_custom_banner, +chicagotribune.com#top_fluid_wrapperT +jamaicaobserver.com +pastemagazine.com +bleedingcool.com#top_leaderboard- +bleedingcool.com#top_medium_rectangle6 +pastemagazine.com + jezebel.com#top_rectangle + +imdb.com#top_rhs# +bleedingcool.com #top_spacer! + bookriot.com #top_takeover +w3newspapers.com#topads¥ +absolutelyrics.com +realitywanted.com +revizoronline.com +exiledonline.com +findtheword.info + snapfiles.com + cdrlabs.com + eonline.com +#topbannerÆ +radiome.com.do +radiome.com.ec +radiome.com.gr +radiome.com.ni +radiome.com.pa +radiome.com.py +radiome.com.sv +radiome.com.ua +radiome.com.uy + radiome.org + radyome.com + +radiome.ar + +radiome.at + +radiome.bo + +radiome.ch + +radiome.cl + +radiome.cz + +radiome.de + +radiome.fr + +radiome.gt + +radiome.hn + +radiome.ht + +radiome.lu + +radiome.ml + +radiome.pe + +radiome.si + +radiome.sk + +radiome.sn#topbanner-container5 +deccanherald.com#topbar > .hide-desktop + div + armenpress.am#topbnnr! + coinlean.com #topcontainer# + iconeye.com#topheaderadvert! +worldtimebuddy.com#toprek +privacywall.org#topse* +semiconductor-today.com #topsectionm +oxfordlearnersdictionaries.com +macmillandictionary.com +macmillanthesaurus.com#topslot_container  +atomic-robo.com #topspace  +charlieintel.com#topunit9 + autodoc.co.uk$#traffic_banner_wrapper_interstitial# +bmj.com#trendmd-suggestions + devast.io#trevda' +jigsawplanet.com#tsi-9c55f80e-3' + techhive.com + pcworld.com#tso + trumparea.com#udmvid& +planetminecraft.com #ultra_wide) +semiconductor-today.com +#undermenu7 +dailytrust.com + thequint.com#unitDivWrapper-05 + upworthy.com!#upworthyFreeStarVideoAdContainer + my.juno.com #usWorldTile- +videocardz.com#vc-intermid-desktop-ad* +videocardz.com#vc-maincontainer-ad- +videocardz.com#vc-maincontainer-midad+ + sammobile.com#venatus-hybrid-banner& + afkgaming.com#venatus-takeover( +nutritioninsight.com #verticlblks0 + oneindia.com + +mykhel.com#verticleLinks! + ghgossip.com #vi-sticky-ad + investing.com#video% +forums.tomsguide.com #video_ad: +gumtree.com.au$#view-item-page__leaderboard-wrapper@ +playstationtrophies.org +xboxachievements.com #vnt-lb-a8 +counselheal.com +mobilenapps.com#vplayer_large! +browserleaks.com #vpn_text£ + +1337x.to#vpnvpn2 +w2g.tv#w2g-square-adL +nextnewssource.com +igberetvnews.com +mediaweek.com.au +#wallpaper! + eeweb.com#wallpaper_image. +realclearhistory.com#warning_empty_div& +opensubtitles.org #watch_online# + xxxporn.tube#watch_sidevide% + xxxporn.tube#watch_undervideo& +worldcrunch.com#wc_leaderboard# +topfiveforex.com #wcfloatDiv( +the-express.com#web-strip-banner$ + webfail.com#wf-d-300x250-sb1& +walterfootball.com #wf_brow_box* +sportscardforum.com#wgo_affiliatesB +whatismyipaddress.com%#whatismyipaddress_728x90_Desktop_ATF+ + itnews.com.au#whitepapers-container% +tribunnews.com#wideskyscraper. + shawlocal.com#widget-html-box-ownlocal2 +watnopaarpunjabinews.com#widget_sp_image-22 +conversanttraveller.com#widget_sp_image-282 +watnopaarpunjabinews.com#widget_sp_image-31 +conversanttraveller.com#widget_sp_image-4) +ultrabookreview.com#widgetad2-top4 +etherealgames.com#widgets-wrap-after-content5 +etherealgames.com#widgets-wrap-before-content3 +gaynewzealand.com#wn-insurance-quote-editor + +rediff.com #world_right1 + +rediff.com #world_right2 + +rediff.com +#world_topP +worldrecipes.eu9#worldrecipeseu_970x90_desktop_sticky_no_closeplaceholder( + forward.com#wp_piano_top_wrapperQ +wavepublication.com +todayheadline.co"#wpgtr_stickyads_textcss_container$ + eteknix.com#wrapper > headerk +cranestodaymagazine.com +tunnelsonline.info +hoistmagazine.com + ttjonline.com#wrapper_banners/ + xdaforums.com#xdaforums_leaderboard_atf/ + xdaforums.com#xdaforums_leaderboard_btf' + xdaforums.com#xdaforums_right_1' + xdaforums.com#xdaforums_right_2 +blasternation.com#xobda  +yardbarker.com +#yb_recirc1 +yardbarker.com#yb_recirc_container_mobile" +transfermarkt.com #zLHXgnIj% +croxyproxy.rocks #zapperSquare% +miamiherald.com#zoneContainer5 +beyondgames.biz + ecoustics.com #zox-lead-bot+ +cleantechnica.com#zox-top-head-wrap$ +marketscreener.com +#zppFooter% +marketscreener.com #zppMiddle2$ +marketscreener.com +#zppRight2$ +ultrabookreview.com #zzifhome% +ultrabookreview.com +#zzifhome2 + arydigital.tv#zzright/ +talkingpointsmemo.com.--span\:12.AdSlot + bigissue.com.-ad + gamejolt.com .-ad-widget + olympics.com.-adv) + porndoe.com.-h-banner-svg-desktop +nhl.com .-leaderboard +nhl.com.-mrec? +hellomagazine.com + +hola.com.-variation-bannerinferior; +hellomagazine.com + +hola.com.-variation-megabanner1 +hellomagazine.com.-variation-robainferior0 +hellomagazine.com.-variation-robapaginas + +yelp.com.ABPƒ. +gamesadshopper.com + varsity.co.uk.AD3 + advfn.com".APS_TOP_BANNER_468_X_60_container2 +timesofindia.indiatimes.com.ATF_mobile_ads/ +timesofindia.indiatimes.com .ATF_wrapper“ +gamedeveloper.com +iotworldtoday.com +tucsonweekly.com +darkreading.com +sevendaysvt.com + buzzfeed.com + +imgur.io + +tasty.co.Ad +mui.com.Ad-root + deseret.com .Ad-space +jagranjosh.com .Ad720x901 +thingiverse.com.AdBanner__adBanner--GpB5d) + surfline.com.AdBlock_modal__QwIcG +jagranjosh.com.AdCont= +ratemyprofessors.com!.AdNoBid__AdContainer-sc-7ofdbw-0 + +tvnz.co.nz +.AdOnPause2 +racingamerica.com + issuu.com .AdPlacement +manabadi.co.in.AdSW. +hbr.org.AdSlotZone_ad-container__eXYUjD + petfinder.com/.AdUnitParagraph-module--adunitContainer--2b7a63 +therealdeal.com.AdUnit_adUnitWrapper__vhOwH) + barrons.com.AdWrapper-sc-9rx3gf-0B + complex.com/.AdWrapper__AdPlaceholderContainer-sc-15idjh1-0& + earth.com.AdZone_adZone__2w4TC) + thescore.com.Ad__container--MeQWT8 +interestingengineering.com.Ad_adContainer__XNCwI/ +interestingengineering.com .Ad_ad__hm0Ut# +newspointapp.com .Ad_wrapper% + aleteia.org.Ad_wrapper__B_hxA" +greatandhra.com .AdinHedare +jagranjosh.com.Ads) + +rivals.com.Ads_adContainer__l_sg0, + sportsnet.ca.Ads_card-wrapper__KyXLu + iogames.onl.Adv + +yandex.com +.AdvOffersE +airportinfo.live +audiokarma.org + audizine.com .AdvallyTagg +themichiganstar.com +theminnesotasun.com +tennesseestar.com +theohiostar.com .AdvancedText + iogames.onl.Advc3 +world-nuclear-news.org + +tvnz.co.nz.Advert' +suffolknews.co.uk.AdvertisementC +thesouthafrican.com(.Advertisement__AdsContainer-sc-4s7fst-03 + bbcearth.com.Advertisement_container__K7Jcq( +phoenixnewtimes.com .AirBillboardR +dallasobserver.com +houstonpress.com$.AirBillboardInlineContentresponsiveŸ +browardpalmbeach.com +phoenixnewtimes.com +dallasobserver.com +miaminewtimes.com + westword.com1.AirLeaderboardMediumRectanglesComboInlineContent“ +browardpalmbeach.com +phoenixnewtimes.com +dallasobserver.com +miaminewtimes.com + westword.com%.AirMediumRectangleComboInlineContent# +technicalarp.com .Arpian-ads' +rankedboost.com.Article-A-AlignV +cruisecritic.com.au +cruisecritic.com'.ArticleItem_scrollTextContainer__GrBC_3 + whatcar.com .ArticleTemplate_masthead__oY950! +indiatimes.com .BIG_ADS_JS$ +naturalnews.com .BNVSYDQLCTIG$ + photonics.com.BOX_CarouselAd + imgur.com.BannerAd-cont1 + dashfight.com.BannerPlayware_block__up1Ra+ +coffeeordie.com.BannerPromo-desktopE +video-to-mp3-converter.com#.BannerReAds_horizontal-area__5JNuE0 + bloomberg.com.BaseAd_baseAd-dXBqvbLRJy0-0 + +cnbc.com .BoxRail-styles-makeit-ad--lyuQB +latestdeals.co.uk.BrD5q$ +80.lv.BrandingPromo_skeleton6 + petfinder.com!.CardGrid-module--breakOut--a18cf) +timesofindia.indiatimes.com.CeUoi5 +thedailybeast.com.CheatSheetList__placeholder' +thedailybeast.com.Cheat__top-ad" + tutiempo.net.ContBannerTop. + dappradar.com.Container--bottomBannersŽ+ +songmeanings.com.Container_ATFR_300* +songmeanings.com.Container_ATF_970$ + emarketer.com.ContentRightAd +swarajyamag.com.CrIrA" + +ulta.com.CriteoProductRail- +calcalistech.com.Ctech_general_banner + +lithub.com .Custom_Ads@ +johnogroat-journal.co.uk +inverness-courier.co.uk.DMPU$ +drudgereport.com .DR-AD-SPACE$ +naturalnews.com .DVFNRYKUTQEP8 +nationalworld.com.Dailymotion__Inner-sc-gmjr3r-1' +realityblurb.com.Desktop-Sticky$ + tweaktown.com.DesktopRightBA) + thekitchn.com.DesktopStickyFooter  + +yandex.com.DirectFeatureV +games.washingtonpost.com +games.mashable.com .DisplayAd__container___lyvUfeBNU +additivemanufacturing.media +compositesworld.com + ptonline.com .DisplayBar + plumbers.nz +.FBJoinbox1 +thedailybeast.com.Footer__coupons-wrapper + askapache.com.GAD5 + modrinth.com!.GBBNWLJVGRHFLYVGSZKSSKNTHFYXHMBD + google.co.uk .GBTLFYRDM0P + +google.com>.GC3LC41DERB + div[style="position: relative; height: 170px;"] + +google.com .GGQPGYLCD5 + +google.com .GGQPGYLCMCB + +google.com .GISRH3UDHB& +goodmenproject.com .GMP_728_top  +yiv.com.GUIAdvertisement. + meduza.io.GeneralMaterial-module-aside + cargurus.com.Gi1Z6i + coin360.com.GuYYbg- +seattletimes.com.H0FqVZjh86HAsl61ps5e$ +naturalnews.com .HALFBYEISCRJ + +news18.com .Had262x218 +metservice.com.HeaderI +planningportal.co.uk-.HeaderAdArea__HeaderAdContainer-sc-1lqw6d0-07 +news.bloomberglaw.com.HeaderAdSpot_height_1B2M2= +games.washingtonpost.com.HomeCategory__ads___aFdrmx_3% +mope.io.Home__home-ad-wrapper- +semiconductor-today.com.Horiba-banner + artsy.net.IITnS + sporcle.com.IMGgi' +streamingsites.com .IPdetectCard  +80.lv.ImagePromo_default* + +yandex.com.ImagesViewer-SidebarAdv0 + +genius.com.InreadContainer-sc-b078f8b1-0: + +doodle.com(.JupiterLayout__left-placement-container; + +doodle.com).JupiterLayout__right-placement-container& +inverness-courier.co.uk.LLKGTX# +kentonline.co.uk .LeaderBack< + fivebooks.com + varsity.co.uk.Leaderboard-container, + +genius.com.Leaderboard-sc-78e1105d-0& +theurbanlist.com.LeaderboardAd* +nationalgeographic.com .LinkedImageX +johnogroat-journal.co.uk +inverness-courier.co.uk +stamfordmercury.co.uk.MPUX +abergavennychronicle.com +tenby-today.co.uk#.MPUstyled__MPUWrapper-sc-1cdmm4p-0  + engadget.com .Mih\(90px\)- +medievalists.net.Mnet_TopLeft_970x250/ + wired.com.MobileProductCardOuter-kMqsSf< + accuradio.com'.MobileSquareAd__Container-sc-1p4cjdt-0& +metservice.com.Mrec-min-height7 +boardgameoracle.com.MuiContainer-root > .jss232# +tvtv.us.MuiPaper-root.jss128 + ahaan.co.uk%.MuiSnackbar-anchorOriginBottomCenterå + +news18.com.NAT_add+ +business-standard.com.Nws_banner_Hp0 +manhuaplus.com + mangasect.com .OUTBRAIN( + chronicle.com.OneColumnContainer! +newscientist.com .Outbrain +kentonline.co.uk.PSDRGC" + govtech.com.Page-billboard  + +afar.com.Page-header-hat, + +apnews.com.Page-header-leaderboardAd' + chronicle.com.PageHeaderMegaHat# + nameberry.com.Pagination-ad$ +ask.com.PartialKelkooResults5 +hbr.org&.PartnerCenter-module_container__w6Ige% + +hulu.com.PauseAdCreative-wrap0 + thekitchn.com.Post__inPostVideoAdDesktop- +hbr.org.PrimaryAd_ad-container__YHDwJ. +stocktwits.com.Primis_container__KwtjV6 +tech.hindustantimes.com.ProductAffilateWrapper! + +yandex.com.ProductGalleryX +atlasobscura.com@.ProgrammaticMembershipCallout--taboola-member-article-container( + icodrops.com.Project-Card--promo + icodrops.com .Promo-Line7 +plainenglish.io .PromoContainer_container__sZ3lsA +clevescene.com + citybeat.com + cltampa.com .PromoTopBar0 +sciencealert.com.Purch_Y_C_0_1-container + +tumblr.com.Qrht9 + tvzoneuk.com.R38Z80' +forum.ragezone.com .RZBannerUnit7 + barrons.com$.RenderBlock__AdWrapper-sc-1vrmc5r-03 + whatcar.com .ReviewHero_mastheadStyle__Bv8X0% +charismanews.com .RightBnrWrap + +newser.com .RightRailAds? +games.mashable.com%.RightRail__displayAdRight___PjhV3mIW +geometrydash.io.RowAdv +clutchpoints.com.RzKEf + toonstream.co.SH-Ads< +dictionary.com + thesaurus.com.SZjJlj7dd7R6mDTODwIT2 +gq.com$.SavingsUnitedCouponsWrapper-gPnqA-d + lbcgroup.tv +.ScriptDiv8 + staples.com%.SearchRootUX2__bannerAndSkuContainer! +m.mouthshut.com +.SecondAds2 + +genius.com .SectionLeaderboard-sc-dbc68f4-03 + simkl.com".SimklTVDetailEpisodeLinksItemHref* +ultimate-guitar.com.SiteWideBanner +thedailybeast.com.Sizer) +web.telegram.org.SponsoredMessage1 + goodreads.com.SponsoredProductAdContainer? +streetsblog.org(.Sponsorship_articleBannerWrapper__wV_1S' + thetimes.com.Sticky-AdContainer" + +abc7ny.com.StickyAdWrapperM +apartmenttherapy.com +cubbyathome.com + thekitchn.com .StickyFooter? +slideshare.net).StickyVerticalInterstitialAd_root__f7Qki( + +slant.co.SummaryPage-LustreEmbed) + westword.com.SurveyLinkSlideModal + +newser.com .TaboolaP1P2# + icodrops.com.Tbl-Row--promo+ +dictionary.com.TeixwVbjB8cchva8bDlg + imgur.com .Top300x600$ + +cnbc.com.TopBanner-containerZ +abergavennychronicle.com +tenby-today.co.uk%.TopBannerstyled__Wrapper-sc-x2ypns-0 + +ndtv.com .TpGnAd_ad-wr: + dappradar.com%.Tracker__StyledSmartLink-sc-u8v3nu-0+ + meduza.io.UnderTheSun-module-banner1 +moodyradio.org.Underwriting-content-block»! + vitepress.dev .VPCarbonAds# +thegearpage.net .VSForumList# +thegearpage.net .VSForumView! +thegearpage.net +.VSPostbit + poebuilds.net.W_tBwY< +britannicaenglish.com.WordFromSponsor_content_enToar! + +this.org.Wrap-leaderboard + +tumblr.com.XJ7bf + +tumblr.com.Yc2Sp, +desmoinesregister.com.ZJBvMP__ZJBvMP/ +natlawreview.com.\#div\.block-native_bf( + getpocket.com.\'syndication-ad\' + olympics.com .\-partners% +blockchair.com.\|.á´�kane-top + freepik.com ._1286nb18b + freepik.com ._1286nb1rx +swarajyamag.com._1eNH8 +gadgetsnow.com._1edxh +gadgetsnow.com._1pjMr + afkgaming.com._2-COY +jeffdornik.com._2kEVY +gadgetsnow.com._2slKI + coderwall.com ._300x250) + dwell.com._33Pu0EaGxY8sv1vuyBCypGT +brisbanetimes.com.au +watoday.com.au + theage.com.au + +smh.com.au._34z61 +timesnownews.com._3n1p + thequint.com._4xQrn- +outlook.live.com._BAY1XlyQSIe6kyKPlYP% +gadgets360.com.__wdgt_rhs_kpc +gadgets360.com._ad+ +makeitmeme.com._adContainer_f810z_1 + timeout.com ._ad_1elek_1! + carscoops.com ._ap_apex_ad + +vscode.one ._flamelab-ad + tampafp.com ._ning_outer! + filerox.com._ozxowqadvert$ + coingraph.us + +filext.com.a + startpage.com.a-bg + +rumble.com.a-break + abcya.com .a-leaderÒ +mallorcasunshineradio.com +runwaygirlnetwork.com +defence-industry.eu +southsideweekly.com +talkradioeurope.com +theshoesnobblog.com +newsindiatimes.com +chimpreports.com +islandecho.co.uk +baptistnews.com +douglasnow.com +eltecolote.org + kbla1580.com + spaceref.com + collive.com + locklab.com .a-single + abcya.com .a-skyscraper' +krebsonsecurity.com .a-statement +tellymix.co.uk.a-textö +cryptoreporter.info +backthetruckup.com +androidtrends.com +buffalorising.com +techcentral.co.za +vedantbhoomi.com +aviationa2z.com +streamsgeek.com +trendstorys.com + bingehulu.com + techrushi.com + tecadmin.net.a-wrap + breitbart.com +.a-wrapper + chordify.net .a1p2y5ib + informer.com.a2 + +wmtips.com.a3f17! + crypto.news.a49292cf69626 +thechinaproject.com.a4d + westword.com .a65vezphb1 + breitbart.com.a8d +localtiger.com.a9gy_lt + scoredle.com.aHeader + fastweb.com.a_cls_s& +fastfoodnutrition.org .a_leader! +premierguitar.com.a_promo$ +fastfoodnutrition.org.a_rect + informer.com.aa-728 +diep.io.aa-unit + informer.com.aa0( +absoluteanime.com.aa_leaderboard +romsmania.games.aawp€<. +servertest.online +ncomputers.org.ab# +freedownloadmanager.org.ab1% +freedownloadmanager.org.ab320 +partnerkin.com .ab_ghost3 +whitecoatinvestor.com +slickdeals.net.abc1 +merriam-webster.com +britannica.com.abl + imgbb.com.abnr +itc.ua +.about-noa- +rankedboost.com.above-article-section) + oilcity.news.above-footer-widgets- +hollywoodreporter.com.above-header-ad" +creativeuncut.com .abox-s_i# +creativeuncut.com +.abox-s_i2 + +roblox.com.abp& +manualslib.com.abp_adv_s-title +pocketgamer.com.absM +albertsons.com7.abs-carousel-proxy > [aria-label="Promo or Ad Banner"]% + +tfn.scot.absolute-leaderboard' + +tfn.scot.absolute-mid-page-unit  + breitbart.com .acadnotice* +gamesystemrequirements.com.act_eng( +sneakernews.com.active-footer-ad +christianpost.com.acw«& +scholarlykitchen.sspnet.org +geelongadvertiser.com.au +timeshighereducation.com +businessdailyafrica.com +booksourcemagazine.com +washingtonexaminer.com +dynamicwallpaper.club +weeklytimesnow.com.au +winnipegfreepress.com +homebeautiful.com.au +ratemyprofessors.com +theeastafrican.co.ke +americanprofile.com +associationsnow.com +biometricupdate.com +businessinsider.com +edmontonjournal.com +newscentermaine.com +roadsideamerica.com +smartcompany.com.au +washingtontimes.com +weatheronline.co.uk +adelaidenow.com.au +businesstech.co.za +chemistryworld.com +cnnphilippines.com +couriermail.com.au +discordbotlist.com +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +excellence-mag.com +firstcoastnews.com +gamesadshopper.com +looktothestars.org +pressgazette.co.uk +simpledesktops.com +thefirearmblog.com +thestarphoenix.com +tribalfootball.com +autoevolution.com +autotrader.com.au +bradleybraves.com +carcomplaints.com +femalefirst.co.uk +finance.yahoo.com +letsgodigital.org +mangarockteam.com +minecraftmods.com +mybroadband.co.za +playtictactoe.org +powernationtv.com +salisburypost.com +streetinsider.com +thedigitalfix.com +themercury.com.au +theringreport.com +ultimatespecs.com +appleinsider.com +btimesonline.com +businessworld.in +cknxnewstoday.ca +colourlovers.com +dailytarheel.com +deccanherald.com +defensescoop.com +downdetector.com +familydoctor.org +flightglobal.com +funeraltimes.com +gamepressure.com +heraldsun.com.au +lonestarlive.com +newstatesman.com +proremodeler.com +seattletimes.com +vancouversun.com +worthplaying.com +5newsonline.com +abovethelaw.com +arstechnica.com +bostonglobe.com +ch-aviation.com +dailycaller.com +dailyparent.com +downdetector.in +downdetector.sg +flowermanga.net +foxbusiness.com +golfweather.com +indiatvnews.com +interfax.com.ua +m.famousfix.com +marketwatch.com +modernretail.co +motherjones.com +planelogger.com +segmentnext.com +sundayworld.com +the-decoder.com +thegrocer.co.uk +tntsports.co.uk +windsorstar.com +yorkpress.co.uk +attheraces.com +automation.com +beinsports.com +celebified.com +chargedevs.com +cyberscoop.com +defenseone.com +fxnowcanada.ca +gmanetwork.com +jscompress.com +leaderpost.com +monkeytype.com +mygaming.co.za +namibtimes.net +nzherald.co.nz +redmondmag.com +refinery29.com +slickdeals.net +slippedisc.com +soranews24.com +spryliving.com +statescoop.com +usmagazine.com +watzatsong.com +webestools.com + 12newsnow.com + 13newsnow.com + aero-news.net + airportia.com + asianwiki.com + autoguide.com + celebdigs.com + crosswalk.com + dailylobo.com + earlygame.com + eurosport.com + filehippo.com + heraldnet.com + inhabitat.com + koreabang.com + kpopstarz.com + lifezette.com + myfoxzone.com + myrecipes.com + newbeauty.com + petfinder.com + playsnake.org + pokertube.com + revolver.news + softpedia.com + statenews.com + statscrop.com + tripadvisor.* + tweaktown.com + ultiworld.com + wfmynews2.com + x17online.com + barchart.com + bdnews24.com + briskoda.net + c21media.net + createtv.com + crossmap.com + dealnews.com + dpreview.com + fedscoop.com + gayvegas.com + gtplanet.net + hodinkee.com + hoodline.com + infobyip.com + maxpreps.com + news.sky.com + pcgamesn.com + politico.com + straight.com + thefader.com + townhall.com + triblive.com + uptodown.com + xatakaon.com + 11alive.com + aiscoop.com + bobvila.com + cracked.com + edscoop.com + filerox.com + fox6now.com + foxnews.com + godtube.com + huckmag.com + inc-aus.com + insider.com + mprnews.org + news.com.au + newsday.com + nytimes.com + patheos.com + politico.eu + quackit.com + ratemds.com + scworld.com + toonado.com + vulture.com + +12news.com + +13wmaz.com + +adtmag.com + +askmen.com + +elpais.com + +fanpop.com + +kagstv.com + +kare11.com + +kcentv.com + +kiiitv.com + +mcpmag.com + +myfox8.com + +neowin.net + +picmix.com + +ranker.com + +silive.com + +sltrib.com + +thecut.com + +tracker.gg + +usnews.com + +wdhafm.com + +whas11.com + +wzzm13.com + 9news.com + abc10.com + boats.com + dcist.com + kens5.com + king5.com + nymag.com + patch.com + thedp.com + thv11.com + today.com + webmd.com + wgntv.com + wusa9.com + wwltv.com + +arazu.io + +cbs19.tv + +emoji.gg + +khou.com + +krem.com + +ksdk.com + +ktvb.com + +kvue.com + +lagom.nl + +liga.net + +nejm.org + +time.com + +vogue.in + +wamu.org + +wbir.com + +wcnc.com + +wfaa.com + +wgnt.com + +wgrz.com + +wkyc.com + +wltx.com + +wnep.com + +wqad.com + +wral.com + +wrif.com + +wtsp.com +ans.org +cnn.com +crn.com +joc.com +kgw.com +leaf.tv +spot.im +as.com +bab.la +bgr.in +cbc.ca +go.com +stv.tv.ad( +comicbookmovie.com.ad > .blur-up+ +independent.ie.ad--articlerectangle  + +gbnews.com.ad--billboard) +washingtonpost.com.ad--enterpriseA +hifi-classic.net).ad--google_adsense > .ad--google_adsense2 +hifi-classic.net.ad--google_adsense_bottom( +hollywoodlife.com.ad--horizontal + mothership.sg.ad--imu + mothership.sg.ad--lb + mothership.sg .ad--side# +paryatanbazar.com +.ad--space +allbusiness.com.ad--tag +ip-address.org .ad-1-728! +ip-tracker.org .ad-1-drzac +ip-address.org .ad-2-336, +gamepressure.com.ad-2020-rec-alt-mob +ip-address.org .ad-3-728  + archdaily.com .ad-300-250 +ip-address.org .ad-5-300  + geotastic.net .ad-970x2507 +birdwatchingdaily.com.ad-advertisement-vertical! + buzzfeed.com .ad-awareness& +deccanherald.com.ad-background¡ +diabetesjournals.org +courthousenews.com +topperlearning.com +welovemanga.one +britannica.com +radiotimes.com + nicomanga.com + soundguys.com + linkedin.com + mangagun.net + pilot007.org + infobel.com + +imgmak.com + +rawinu.com + +weloma.art + kuioo.com +.ad-banner- +radiopaedia.org.ad-banner-desktop-row@ +home-designing.com +trustpilot.com +inc.com .ad-block& + fangoria.com.ad-block--300x250  + issuu.com.ad-block--wide> +sciencenews.org'.ad-block-leaderboard__freestar___Ologr( + fangoria.com.ad-block__container, +sciencenews.org.ad-block__mq-wrapper* + slashdot.org.ad-blocked-newsletter+ +cryptodaily.co.uk.ad-bottom-spacing +save.ca.ad-box +am5.com .ad-box-pc-3! +am5.com.ad-box-right-pc-1 + mv-voice.com .ad-break# + +imsa.com.ad-close-container( +thisiscolossal.com.ad-code-block +npr.org +.ad-config•(- + valetmag.com.ad-constrained-container÷ +thebaltimorebanner.com +engineeringnews.co.za +greatbritishchefs.com +greatitalianchefs.com +metrophiladelphia.com +thenationonlineng.net +athleticbusiness.com +centralbucksnews.com +modernhealthcare.com +allaboutcookies.org +britishheritage.com +businessinsider.com +euromaidanpress.com +lifeandstylemag.com +longislandpress.com +partners.disney.com +worldsoccertalk.com +capemaynjdaily.com +equipmentworld.com +footyheadlines.com +gfinityesports.com +minecraftforum.net +themarketherald.ca +willowgrovenow.com +highdefdigest.com +howstuffworks.com +intouchweekly.com +perkvalleynow.com +podcastaddict.com +thedailybeast.com +beeradvocate.com +fox10phoenix.com +fox26houston.com +fox32chicago.com +fox35orlando.com +irishcentral.com +mangakakalot.app +miningweekly.com +northpennnow.com +realsport101.com +roadandtrack.com +seattletimes.com +bizjournals.com +fastcompany.com +fox2detroit.com +fox5atlanta.com +foxbusiness.com +funkidslive.com +grammarbook.com +mobilesyrup.com +newrepublic.com +phillydaily.com +seaislenews.com +sportskeeda.com +vanguardngr.com +wildtangent.com +9to5google.com +audiokarma.org +breakingac.com +ccjdigital.com +dailytrust.com +fox7austin.com +globalspec.com +gmanetwork.com +historynet.com +horshamnow.com +insidehook.com +macstories.net +mixed-news.com +nzherald.co.nz +physiology.org +refinery29.com +thenewstack.io +usmagazine.com + beliefnet.com + downbeach.com + fishermap.org + fox13news.com + ocnjdaily.com + oneesports.gg + allnovel.net + delconow.com + driven.co.nz + dutchnews.nl + etcanada.com + fox4news.com + huffpost.com + memuplay.com + papermag.com + songkick.com + thetimes.com + uploadvr.com + 9to5mac.com + biznews.com + bolavip.com + electrek.co + foxnews.com + insider.com + karanpc.com + nbcnews.com + outkick.com + punchng.com + thelocal.at + thelocal.ch + thelocal.de + thelocal.dk + thelocal.es + thelocal.fr + thelocal.it + thelocal.no + thelocal.se + +12news.com + +all3dp.com + +delish.com + +fox5dc.com + +fox5ny.com + +ibtimes.sg + +namemc.com + +reason.com + +toofab.com + 9news.com + advfn.com + ecr.co.za + fox29.com + foxla.com + msnbc.com + pixiv.net + scroll.in + +amny.com + +cbs8.com + +fox9.com + +khou.com + +koat.com + +ktvu.com + +mail.com + +metro.us + +queye.co + +wogx.com + +wral.com +aad.org +hbr.org +inc.com +opb.org +qns.com +tmz.com +cc.com .ad-container$ + huffpost.com.ad-container--1$ + apponic.com.ad-container-atf$ + sportsnet.ca.ad-container-bb( + apponic.com.ad-container-compact) +24timezones.com.ad-container-diff( +newthinking.com.ad-container-mpu. +24timezones.com.ad-container-top-index' +wheelofnames.com.ad-declaration* +sciencealert.com.ad-desktop\:block' +firepunchmangafree.com .ad-div-1' +firepunchmangafree.com .ad-div-2" +cnn.com.ad-feedback__modal* +simracingsetup.com.ad-fixed-bottom% + 404media.co.ad-fixed__wrapper + pixiv.net +.ad-footer$ + pixiv.net.ad-frame-container+ + valetmag.com.ad-full_span-container4 + valetmag.com .ad-full_span_homepage-container3 + valetmag.com.ad-full_span_section-container$ +mobilesyrup.com .ad-goes-here/ +business-standard.com.ad-height-desktop& + roadtovr.com.ad-height-sidebar + carsauce.com +.ad-holder +wago.io .ad-in-search' + +symbl.cc.ad-incontent-rectangle) + andscape.com.ad-incontent-wrapper +dailyuptea.com.ad-info  + kenyans.co.ke .ad-kenyans( + kenyans.co.ke.ad-kenyans-wrapper +cbc.ca .ad-landing! + +heise.de.ad-ldb-container+ +revolvermag.com.ad-leaderboard-foot+ +revolvermag.com.ad-leaderboard-head + +apksum.com.ad-left$ +radiopaedia.org .ad-link-grey + citynews.ca.ad-load +cbc.ca .ad-load-more$ +mariopartylegacy.com.ad-long" + olympics.com.ad-margin-big" + pixiv.net.ad-mobile-anchor1 +houstonchronicle.com.ad-module--ad--16cf1" + pedestrian.tv .ad-no-mobile1 +constructionenquirer.com.ad-page-takeover4 + themirror.com + mirror.co.uk.ad-placeholder$ +gadgethacks.com .ad-placementU +olivemagazine.com +bbcgoodfood.com +radiotimes.com.ad-placement-inline--2 + +fanfox.net +.ad-reader' +mydramalist.com.ad-removal-info/ +atlasobscura.com.ad-site-top-full-width& +nationalreview.com .ad-skeleton& +accesswdun.com.ad-slider-block( + imresizer.com.ad-slot-1-fixed-ad( + imresizer.com.ad-slot-2-fixed-ad( + imresizer.com.ad-slot-3-fixed-ad +cnn.com.ad-slot-dynamic' +cnn.com.ad-slot-header__wrapper8 +barandbench.com!.ad-slot-row-m__ad-Wrapper__cusCS" + +oann.com.ad-slot__ad-label# +cnn.com.ad-slot__ad-wrapper$ +freepressjournal.in .ad-slots2 + +usnews.com .ad-spacer__AdSpacer-sc-nwg9sv-0' +techinformed.com.ad-text-stylesª% + playbuzz.com.ad-top-1-wrapper$ +companiesmarketcap.com.ad-tr0 +windowscentral.com + +forbes.com.ad-unitI +ndtvprofit.com3.ad-with-placeholder-m__place-holder-wrapper__--JIwF + bqprime.com3.ad-with-placeholder-m__place-holder-wrapper__1_rkH$ +trueachievements.com.ad-wrap? +smithsonianmag.com + +gbnews.com + +tasty.co .ad-wrapper" + uncrate.com.ad-wrapper-9708 +insurancebusinessmag.com.ad-wrapper-billboard-v20 +gamingdeputy.com.ad-wrapper-parent-videoø +famouslyscandalous.com +allscrabblewords.com +famouslyarrested.com +gamesadshopper.com +vijaykarnataka.com +famously-dead.com +timesofindia.com +iamgujarat.com +lolcounter.com + mpog100.com + newszop.com + samayam.com.ad1 +ukclimbing.com.ad12195 +ukclimbing.com.ad12249 + +urih.com.ad193v +famouslyscandalous.com +allscrabblewords.com +famouslyarrested.com +famously-dead.com + mpog100.com.ad2/ +allscrabblewords.com + mpog100.com.ad3 + +news18.com +.ad300x250 + india.com.ad5% +cricketcountry.com .ad90mob300+ + ptonline.com.adBlock--center-column* + ptonline.com.adBlock--right-column  + medibang.com .adBlock__pc$ +emojiphrasebook.com .adBottom  +bigislandnow.com.adBreak% + kijiji.ca.adChoices-804693302/ + economist.com.adComponent_advert__kPVUI~ +forums.sufficientvelocity.com +m.economictimes.com +someecards.com +trailspace.com +wabetainfo.com .adContainer) +etymonline.com.adContainer--6CVz1- +graziadaily.co.uk.adContainer--inline2 +hellomagazine.com.adContainerClass_acvudum* +clashofstats.com.adContainer_Y58xc + anews.com.tr +.adControl& +carsdirect.com.adFooterWrapperˆ +thepeterboroughexaminer.com +stcatharinesstandard.ca +insideottawavalley.com +niagarafallsreview.ca +bramptonguardian.com +niagarathisweek.com +guelphmercury.com +wellandtribune.ca + therecord.com + thespec.com + thestar.com.adLabelWrapperÓ +thepeterboroughexaminer.com +stcatharinesstandard.ca +insideottawavalley.com +niagarafallsreview.ca +bramptonguardian.com +wellandtribune.ca + therecord.com + thestar.com.adLabelWrapperManual! +cosmopolitan.in +.adMainWrp$ + sammobile.com.adRoot-loop-ad+ +coloradotimesrecorder.com +.adSidebar +golfdigest.com.adSlot+ +bramptonguardian.com.adSlot___3IQ8M6 + drive.com.au".adSpacing_drive-ad-spacing__HdaBg) +thestockmarketwatch.com +.adSpotPad" +healthnfitness.net.adTrack + sofascore.com +.adUnitBox + dailyo.in.adWrapp + +romper.com +.adWrapper$ + barrons.com.adWrapperTopLead( + forecast7.com.ad[align="center"] + m.thewire.in.ad_20 + indy100.com .ad_300x250 + digiday.com.ad_960 + +food.com.ad__ad" + +disqus.com.ad__adh-wrapper6 +nationalpost.com +vancouversun.com +.ad__inner + politico.eu .ad__mobile$ + dailykos.com.ad__placeholder( +asianjournal.com.ad_before_title* + kyivpost.com.ad_between_paragraphs! +cheatcodes.com .ad_btf_728% +tribuneindia.com .ad_div_incls +ntvkenya.co.ke.ad_flex + auto-data.net .ad_incar. + dailykos.com.ad_leaderboard__container3 + advocate.com +out.com.ad_leaderboard_wrapÚ• +gamereactor.com.tr +gamereactor.asia +gamereactor.cn +gamereactor.cz +gamereactor.de +gamereactor.dk +gamereactor.es +gamereactor.eu +gamereactor.fi +gamereactor.fr +gamereactor.gr +gamereactor.it +gamereactor.jp +gamereactor.kr +gamereactor.me +gamereactor.nl +gamereactor.no +gamereactor.pl +gamereactor.pt +gamereactor.se +gamereactor.vn.ad_mobilebigwrap- +bigislandnow.com.ad_mobileleaderboard + numista.com .ad_picture' + housing.com.ad_pushup_paragraph& + housing.com.ad_pushup_subtitle( +base64decode.org.ad_right_bottom" + dailykos.com.ad_right_rail% +base64decode.org .ad_right_top +upi.com.ad_slot_inread + kitco.com .ad_space_730 + advocate.com.ad_tag' +outlookindia.com.ad_unit_728x90' + geoguessr.com.ad_wrapper__3DZ7k +webextension.org.adb! + queerty.com.adb-box-large# + outsports.com.adb-os-lb-top + queerty.com .adb-top-lb +tellymix.co.uk.adb_top + wordfind.com.adbla +dataversity.net +songlyrics.com +yallamotor.com + ippmedia.com + +sakshi.com.adblock$ + bookriot.com.adblock-content" +darkreader.org .adblock-pro­ +telegraphindia.com +carcomplaints.com +entrepreneur.com +sourcedigit.com +dolldivine.com +pricespy.co.nz + interglot.com + +news18.com + +shared.com.adbox + moviechat.org.adc$ +boards.4channel.org .adc-resp' +boards.4channel.org .adc-resp-bg + +ar15.com.adcol½ +videogameschronicle.com +politicalcompass.org +videogamemods.com +worldhistory.org +dailycaller.com +gamertweak.com + fanatix.com + gematsu.com + +ancient.eu .adcontainer + sumanasa.com +.adcontent% +thegatewaypundit.com .adcovery- +thegatewaypundit.com.adcovery-home-012 +thegatewaypundit.com.adcovery-postbelow-01C +online-image-editor.com + thehindu.com + watcher.guru.add + mid-day.com .add-300x250 + mid-day.com .add-970x250& +securityaffairs.com .add-bannerA +theweekendsun.co.nz + irishpost.com +buzz.ie +.add-block" +cricketcountry.com.add-box$ +morningstar.in.add-container# +indianexpress.com +.add-first + watcher.guru .add-header +ians.in +.add-inneri +businessesview.com.au +realestateview.com.au +holidayview.com.au +ruralview.com.au .add-item) +zeenews.india.com.add-placeholder + +ndtv.com .add-section! +moneycontrol.com .add-spot! +media4growth.com .add-text  +brandingmag.com .add-wrap + +ndtv.com.add-wrp + newindian.in .add160x600% + newindian.in.add160x600-right +muslimobserver.com.add2$ +projectorcentral.com.addDiv2$ +projectorcentral.com.addDiv3 + +ndtv.com .add__txt + +ndtv.com .add__wrp  +harpersbazaar.in.add_box$ +bridestoday.in.add_container + +ndtv.com .add_dxt-non6 +longevity.technology + +news18.com .add_section$ +harpersbazaar.in .add_wrapper( +citationmachine.net .adds-wrapper* +longevity.technology.addvertisment + +immoweb.be.adfocusç" +nesabamedia.com .adfullwrap' +fastcompany.com.adhesive-banner! + +aish.com.adholder-sidebar + auto-data.net.adin$ +watchcartoononline.bz.adkiss +boards.4channel.org.adlq +portlandmonthlymag.com +sportsmediawatch.com +animalfactguide.com + romsgames.net +msn.com.adlabel + tedium.co .adlayout + gemoo.com .adlet_mobile + prokerala.com .adm-unit + goldderby.com.adma + brickset.com +.admin.buy +adn.com .adn-adwrap$ +web-dev-qa-db-fra.com.adn-ar* + freepik.com.adobe-coupon-container  + freepik.com .adobe-detail% + freepik.com.adobe-grid-design. +flightglobal.com +thriftyfun.com.adp +lol.ps.adpage + +vice.com.adph + +cell.com.adplaceholdersñ  +energyforecastonline.co.za +downloadtorrentfile.com +miningprospectus.co.za +onlinerekenmachine.com +climatechangenews.com +cosmeticsbusiness.com +achieveronline.co.za +meta-calculator.com +readcomicsonline.ru +bestcrazygames.com +currencyrate.today +eventcinemas.co.nz +gamesadshopper.com +russia-insider.com +7billionworld.com +canstarblue.co.nz +economictimes.com +marinetraffic.com +medicalxpress.com +ozbargain.com.au +straitstimes.com +tellerreport.com +cointribune.com +cryptonomist.ch +islamchannel.tv +mega4upload.com +nsfwyoutube.com +tehrantimes.com +viamichelin.com +canstar.com.au +hockeyfeed.com +indiatimes.com +mini-ielts.com +robuxtousd.com +thenews.com.pk +thestar.com.my +viamichelin.ie + 9jaflaver.com + daily-sun.com + hentaikun.com + inspirock.com + mangasect.com + sgcarmart.com + teamblind.com + gramfeed.com + mehrnews.com + mugshots.com + savevideo.me + cheapies.nz + esports.com + govtrack.us + news.nom.co + piliapp.com + recipes.net + sherdog.com + +i24news.tv + +icons8.com + +motogp.com + +unb.com.bd + +vijesti.me + 1sale.com + ezgif.com + flashx.tv + idiva.com + mb.com.ph + +yummy.ph +1v1.lol +geo.tv +nbc.na +y8.com.ads# +moneycontrol.com .ads-320-50, +dallasinnovates.com.ads-article-body( +nationthailand.com.ads-billboard( + founderoo.co.ads-block_component3 + dnaindia.com + wionews.com.ads-box-300x2501 +zeenews.india.com.ads-box-300x250::before# + wionews.com.ads-box-300x3002 + dnaindia.com + wionews.com.ads-box-970x904 + dnaindia.com + wionews.com.ads-box-d90-m300 + hubcloud.club .ads-btns9 +thefinancialexpress.com.bd.ads-carousel-container2 + mangabats.com + nelomanga.net .ads-contain­ +indianexpress.com +medicalxpress.com +philstarlife.com +matrixcalc.org +techxplore.com + gosunoob.com + spotify.com + +roblox.com + +phys.org.ads-container0 + pcquest.com + wionews.com.ads-div-style1 +freemalaysiatoday.com.ads-dynamic-desktop) +samehadaku.email.ads-float-bottom, +thetruthaboutcars.com.ads-fluid-wrap + spambox.xyz .ads-four + +bluewin.ch +.ads-group + +fintech.tv.ads-img  + india.com.ads-in-content# +freeconvert.com .ads-in-page* +nationthailand.com.ads-inarticle-2% +readcomicsonline.ru +.ads-large + kiz10.com .ads-medium0 +freemalaysiatoday.com.ads-medium-desktop/ +theasianparent.com.ads-open-placeholder2 +zeenews.india.com.ads-placeholder-internal# +bangkokpost.com .ads-related + gameshub.com .ads-slot  +batimes.com.ar +.ads-space' +lowfuelmotorsport.com +.ads-stats. +freemalaysiatoday.com.ads-tall-desktop# +wallpapers.com .ads-unit-fts +karryon.com.au .ads-wrap + +ndtv.com.ads-wrp& +dna-launcher.apkrabi.com.ads12$ +bestcrazygames.com +.ads160600" +m.mouthshut.com .adsBoxRpt2' + +solscan.io.adsHeaderTextWrapper0 +auto.hindustantimes.com.adsHeight300x600/ +tech.hindustantimes.com.adsHeight720x90­0 +auto.hindustantimes.com.adsHeight970x250 + dailyo.in.adsWrp + radaris.com .ads_160_600/ +games2jolly.com.ads_310_610_sidebar_new& +jpeg-optimizer.com .ads_A1_warp& +jpeg-optimizer.com .ads_A2_warp +kbb.com.ads__container* +kbb.com.ads__container-kbbLockedAd/ +indiatodaygaming.com.ads__container_rhs0 + metro.co.uk.ads__index__adWrapper--cz7QL# + vccircle.com.ads_ads__qsWIu3 +collegedunia.com.ads_body_ad_code_container$ + mediapost.com.ads_inline_640$ + allevents.in.ads_place_right! + psypost.org.ads_shortcode + +skyve.io +.ads_space  + gameplay.tips .ads_sticky4 +101soundboards.com.ads_top_container_publift; + informer.com + +adlice.com + waqi.info .adsbygoogle- +harvardmagazine.com.adsbygoogle-block% +thartribune.com.adsbypubpower1 +aitextpromptgenerator.com.adsbyus_wrapper¬ +thebarentsobserver.com +looktothestars.org +geekhistory.com +nintandbox.net + rockpasta.com + gayvegas.com + tolonews.com + plurk.com + webtor.io.adsense- + radaris.com.adsense-responsive-bottom2 +temporary-phone-number.com.adsense-top-7282 +101soundboards.com.adsense_matched_content) +awesomeopensource.com .adsense_uas# +eatwell101.com .adsenseright$ + libble.eu.adserver-container + bolnews.com .adsheading# +nepallivetoday.com .adsimage! +indianexpress.com.adsizes + search.b1.org .adslabel# +washingtonpost.com .adslot-c/ +insidehighered.com.adslot-top-container& +ev-database.org.adslot_detail1& +ev-database.org.adslot_detail2( + offerinfo.net + cdrab.com.adslr + bolnews.com .adspadding + downzen.com.adt% +makemytrip.com.adtech-desktopG +miamitodaynews.com +cosmopolitan.in +indiatodayne.in.adtext- + wdwmagic.com.adthrive-homepage-header3 + wdwmagic.com.adthrive-homepage-in_content_18 +quadraphonicquad.com.adthrive-placeholder-header@ +quadraphonicquad.com$.adthrive-placeholder-static-sidebar) +pinchofyum.com.adthrive_header_ad +stockanalysis.com.adu" + wdwmagic.com.adunit-header1 +cooking.nytimes.com.adunit_ad-unit__IhpkS +ip-address.org.aduns +ip-address.org.aduns2 +ip-address.org.aduns6ˆ +baltic-course.com +gatewaynews.co.za +railcolornews.com +maritimejobs.com +prohaircut.com + idealista.com + jetphotos.com + ansamed.info + futbol24.com + gsmarena.com + gulfnews.com + newagebd.net + +karger.com + +titter.com + zbani.com.adv  + mrw.co.uk.adv-banner-top + apkgk.com .adv-block2( +blastingnews.com.adv-box-content& +healthleadersmedia.com.adv-con + junauza.com.adv-hd† +elements.visualcapitalist.com +londonnewsonline.co.uk +tampabayparenting.com +theaudiophileman.com +clevercreations.org +smallarmsreview.com +laprensalatina.com +manageditmag.co.uk +opensourceforu.com +sportsspectrum.com +sundayworld.co.za +forexcracked.com +coinedition.com +creativecow.net +overclock3d.net +audiobacon.net +mondoweiss.net + cnaw2news.com + coinquora.com + fxleaders.com + kdnuggets.com + ottverse.com + 48hills.org + bhamnow.com + iconeye.com .adv-link" +sneakernews.com .adv-parent# +chaseyoursport.com .adv-slot< +greencarreports.com +motorauthority.com .adv-spacer( +worldarchitecture.org .adv1WA1440Ù; + futbol24.com.adv2( +worldarchitecture.org .adv2WA1440" + coinalpha.app .advBannerDiv + yesasia.com.advHr) +hurriyetdailynews.com .advMasthead( +moneycontrol.com.advSlotsGrayBox! +imagetotext.info .adv_text% + operawire.com.advads-post_ads& +moneycontrol.com.advbannerWrapì ' +%wymondhamandattleboroughmercury.co.uk +becclesandbungayjournal.co.uk +barkinganddagenhampost.co.uk +wattonandswaffhamtimes.co.uk +saffronwaldenreporter.co.uk +eastlondonadvertiser.co.uk +greatyarmouthmercury.co.uk +northsomersettimes.co.uk +cardealermagazine.co.uk +stowmarketmercury.co.uk +videogameschronicle.com +developingtelecoms.com +islingtongazette.co.uk +lowestoftjournal.co.uk +northnorfolknews.co.uk +dunmowbroadcast.co.uk +romfordrecorder.co.uk +wisbechstandard.co.uk +exmouthjournal.co.uk +hackneygazette.co.uk +ilfordrecorder.co.uk +newhamrecorder.co.uk +sidmouthherald.co.uk +sudburymercury.co.uk +eveningnews24.co.uk +fakenhamtimes.co.uk +midweekherald.co.uk +derehamtimes.co.uk +gobankingrates.com +royston-crow.co.uk +burymercury.co.uk +crimemagazine.com +dissmercury.co.uk +elystandard.co.uk +ipswichstar.co.uk +morningstar.co.uk +cambstimes.co.uk +newstalkzb.co.nz +trucksplanet.com +huntspost.co.uk +proxcskiing.com +datalounge.com +football.co.uk +stylecraze.com +thinkspain.com + dermnetnz.org + economist.com + gearspace.com + hamhigh.co.uk + hertsad.co.uk + maltapark.com + tbivision.com + thejournal.ie + varsity.co.uk + whtimes.co.uk + wtatennis.com + dailyedge.ie + thecomet.net + wccftech.com + edp24.co.uk + gematsu.com + podtail.com + thedrum.com + +blogto.com + +eadt.co.uk + +pinkun.com + +tineye.com + icaew.com + iol.co.za + lgr.co.uk + +the42.ie +etf.com.advert% +saucemagazine.com .advert-elem' +saucemagazine.com.advert-elem-1$ +gozofinder.com.advert-iframe! + farminguk.com .advert-word& +who-called.co.uk.advertLeftBigL +graziadaily.co.uk +empireonline.com.advertWrapper_billboard__npTvz! + m.thewire.in .advert_text16 +momjunction.com +stylecraze.com .advertinsideà +freeemailvalidator.com +freephonevalidator.com +freecarrierlookup.com +zimbabwesituation.com +freeaddresscheck.com +freecallerlookup.com +freegenderlookup.com +freeiplookup.com + kpopping.com +.advertise" + +gpfans.com.advertise-panel6 +cointelegraph.com.advertise-with-us-link_O9rIX  + salon.com.advertise_textê +readinternationalfootball.com +foodsforbetterhealth.com +readamericanfootball.com +readnottinghamforest.com +prospectmagazine.co.uk +therighthairstyles.com +jewishworldreview.com +readcrystalpalace.com +readmiddlesbrough.com +huffingtonpost.co.uk +readchampionship.com +readhuddersfield.com +thecatholicthing.org +offshore-energy.biz +readbournemouth.com +readhorseracing.com +readliverpoolfc.com +readsouthampton.com +investmentnews.com +readastonvilla.com +readbasketball.com +readbundesliga.com +readmotorsport.com +readrugbyunion.com +readsunderland.com +smithsonianmag.com +streamingmedia.com +weatherwatch.co.nz +philosophynow.org +readeverything.co +readleicester.com +readnewcastle.com +readtottenham.com +redvoicemedia.com +the-scientist.com +inspiredminds.de +magtheweekly.com +readbrighton.com +readolympics.com +readussoccer.com +readwestbrom.com +additudemag.com +animax-asia.com +audioxpress.com +readarsenal.com +readbetting.com +readburnley.com +readchelsea.com +readcricket.com +readeverton.com +readfootball.co +readmancity.com +readnorwich.com +readrangers.com +readswansea.com +readwatford.com +readwestham.com +whichcar.com.au +worldofbitco.in +citiblog.co.uk +controleng.com +readboxing.com +readceltic.com +readfashion.co +readlaliga.com +readmanutd.com +readseriea.com +readshowbiz.co +rogerebert.com + curiosmos.com + escapeatx.com + gemtvasia.com + lifezette.com + onetvasia.com + readgaming.co + readstoke.com + readtennis.co + revolver.news + topsmerch.com + 456movie.net + apkforpc.com + axn-asia.com + cnbctv18.com + dwturkce.com + huffpost.com + inqld.com.au + livestly.com + moneyland.ch + readgolf.com + readhull.com + readmusic.co + readsport.co + bravotv.com + downzen.com + readcars.co + readfilm.co + readfood.co + readmma.com + readtech.co + readwsl.com + +legion.org + +oxygen.com + +readpl.com + +reason.com + cnn59.com + readtv.co + wheels.ca + +aarp.org + +agbi.com + +woot.com +aan.com +hcn.org +pch.com +dw.com.advertisement& + topsmerch.com.advertisement--6) + topsmerch.com.advertisement-2-box+ +devdiscourse.com.advertisement-area. +business-standard.com.advertisement-bg1 +atlasobscura.com.advertisement-disclaimer3 + radiocity.in.advertisement-horizontal-small( + trumparea.com.advertisement-list- +atlasobscura.com.advertisement-shadow6 + radiocity.in + mid-day.com.advertisement-text) + dermnetnz.org.advertisement__wrap% +structurae.net.advertisements + +scmp.com .advertisers± +premierchristianradio.com +afrsmartinvestor.com.au +premierchristianity.com +premiergospel.org.uk +online-convert.com +yourdictionary.com +imageupscaler.com +orangecounty.com +spine-health.com +petrolplaza.com +afternoondc.in +ocregister.com +premier.org.uk + allmovie.com + allmusic.com + pornicom.com + sidereel.com + bolnews.com + +brw.com.au + +mja.com.au + radio.com + +gq.co.za .advertising4 +theloadout.com.advertising_slot_video_player# +gadgets360.com .advertisment + satdl.com.advertizement7 +hurriyetdailynews.com.advertorial-square-type-1 + 148apps.com.advnote" + swisscows.com .advrts--texth +bearingarms.com + redstate.com + townhall.com + pjmedia.com + twitchy.com + +hotair.com.advs + allevents.in +.advt-text + pravda.com.ua.advtext + slashdot.org.adwrapd +videogameschronicle.com +toocool2betrue.com +groovyhistory.com + lifebuzz.com +.adwrapper; +mail.google.com$.aeF > .nH > .nH[role="main"] > .aKB# + revolver.news.af-slim-promo$ +promocodie.com.afc-container + real-fix.com +.afc_popup$ + +fandom.com.aff-unit__wrapper  +secureblitz.com .affcoups +f1i.com.affiche+ +hindustantimes.com.affilaite-widget + linuxize.com +.affiliate) + romsgames.net.affiliate-container( + thebeet.com.affiliate-disclaimer- + usatoday.com.affiliate-widget-wrapper' + topsmerch.com.affix-placeholder) + jambase.com.affixed-sidebar-adzzzú +trovitargentina.com.ar + trovit.com.br + trovit.com.co + trovit.com.ec + trovit.com.hk + trovit.com.kw + trovit.com.mx + trovit.com.pa + trovit.com.pe + trovit.com.pk + trovit.com.qa + trovit.com.sg + trovit.com.tr + trovit.com.tw + trovit.com.uy + trovit.com.vn + trovit.co.cr + trovit.co.id + trovit.co.in + trovit.co.ke + trovit.co.nz + trovit.co.uk + trovit.co.ve + trovit.co.za + +trovit.com + trovit.ae + trovit.be + trovit.ca + trovit.ch + trovit.cl + trovit.cz + trovit.dk + trovit.es + trovit.fr + trovit.hu + trovit.ie + trovit.it + trovit.jp + trovit.lu + trovit.ma + trovit.my + trovit.ng + trovit.nl + trovit.no + trovit.ph + trovit.pl + trovit.pt + trovit.ro + trovit.se.afs-container-skeleton" +promocodie.com .afs-wrapper' +domainnamewire.com .after-header�! +insidemydream.com.afxshop + venea.net +.ag_banner + venea.net.ag_line + nexusmods.com.agroup + stripes.com .ahm-rotd  + +techpp.com.ai-attributes' +thegatewaypundit.com .ai-dynamic# +radiomixer.net .ai-placement5 + kuncomic.com + uploadvr.com.ai-sticky-widget~ +constructionreviewonline.com +tyretradenews.co.uk +cryptobriefing.com +androidpolice.com + dereeze.com .ai-track™ +thisisanfield.com +unfinishedman.com +windowsreport.com +getdroidtips.com +journeybytes.com +thebeaverton.com + +vice.com.ai-viewport-1� +constructionreviewonline.com +theamericantribune.com +roadaheadonline.co.za +windowslatest.com +bizpacreview.com +boxingnews24.com +journeybytes.com +planetanalog.com +anoopcnair.com +beckernews.com +browserhow.com +hard-drive.net + 9to5linux.com + apkmirror.com + askpython.com + crankers.com + maxblizz.com + net-load.com + yugatech.com +.ai_widgetO +station-drivers.com +tennistemple.com + petitchef.com.akcelo-wrapper + allkpop.com +.akp2_wrap +yts.mx .aksdj483csd + lingohut.com .al-board" +lyricsmode.com .al-c-banner + wikihow.com +.al_method + altfi.com.alert" + accessnow.org .alert-banner% + apkmb.com.alert-noty-download+ + rapidsave.com.alert.col-md-offset-2! +peoplematters.in .alertBar* +majorgeeks.com.alford > tbody > tr. + shortlist.com.align-xl-content-between% + dailywire.com.all-page-banner" +livejournal.com .allbanners# +silverprice.org .alt-content + thejc.com.altura_header  + thejc.com.altura_midpage + antimusic.com +.am-center, +music-news.com + thebeet.com.amazon% +orschlurch.net.amazon-wrapper+ +indiatimes.com.amazonProductSidebar, +tech.hindustantimes.com .amazonWidget3 +americafirstreport.com.ameri-before-contentl +lifeandstylemag.com +intouchweekly.com +closerweekly.com +usmagazine.com.ami-video-placeholder4 +faroutmagazine.co.uk.amp-next-page-separator$ + cyberciti.biz.amp-wp-4ed0dd1' +thepostemail.com.amp-wp-b194b9a+ + gocomics.com.amu-ad-leaderboard-atf + archpaper.com.an-ads + +letras.com.an-pubñ +folhetospromocionais.com +reklambladerbjudanden.se +catalogosofertas.com.ar +catalogosofertas.com.br +catalogosofertas.com.co +catalogosofertas.com.ec +catalogosofertas.com.mx +catalogosofertas.com.pe +catalogueoffers.com.au +tilbudsaviseronline.dk +catalogueoffers.co.uk +flugblattangebote.at +kundeavisogtilbud.no +catalogosofertas.cl +offertevolantini.it +prospektangebote.de +folletosofertas.es +ofertelecatalog.ro +promocatalogues.fr + adspecials.us + akcniletak.cz + flyerdeals.ca + promotions.ae + ajanlatok.hu + promotiez.be + +folderz.nl + +gazetki.pl.anchor-wrapper) +streetdirectory.com.anchor_bottom + rok.guide .ancr-sticky! + rok.guide.ancr-top-spacer +eprinkside.com.annons$ +phonearena.com.announcements, +tokyoweekender.com.anymind-ad-banner +yts.mx.aoiwjs + +motor1.com.apX +chargedretail.co.uk +thinkcomputers.org +foodstuffsa.co.za.apPluginContainer' + insideevs.com + +motor1.com.apb% +thetoyinsider.com .apb-adblock# + eurogamer.net.apester_block! +pd3.gg.app-ad-placeholder( + d4builds.gg.app__ad__leaderboard! + classicfm.com .apple_music + happymod.com.appx( +560theanswer.com.aptivada-widget +icon-icons.com.apu& +icon-icons.com.apu-mixed-packsÕ +beaumontenterprise.com +houstonchronicle.com +stamfordadvocate.com +middletownpress.com +registercitizen.com +mysanantonio.com +expressnews.com +nhregister.com +timesunion.com + ctinsider.com + lmtonline.com + newstimes.com + seattlepi.com + thehour.com + +ctpost.com + +sfgate.com + chron.com +mrt.com.ar16-9ön +springfieldnewssun.com +daytondailynews.com +journal-news.com +bostonglobe.com +ajc.com.arc_adH +businessoffashion.com +irishtimes.com +adn.com.arcad-feature/ +bloomberglinea.com.arcad-feature-custom$ +biz.chosun.com.arcad-wrapperÐ +actionnewsjax.com +boston25news.com + wsbradio.com + 1news.co.nz + hits973.com + +easy93.com + +wsoctv.com + fox23.com + kiro7.com + wsbtv.com + +wftv.com + +whio.com + +wpxi.com.arcad_feature( +theepochtimes.com.arcanum-widget' + +necn.com.archive-ad__full-width% +whatculture.com.area-x__large + thehindu.com +.artShrEnd  + ggrecon.com .artSideBgBox# + ggrecon.com.artSideBgBoxBig( + ggrecon.com.artSideWrapBoxSticky! + +scmp.com.article--sponsor€ + thelocal.at + thelocal.ch + thelocal.de + thelocal.es + thelocal.fr + thelocal.it + thelocal.no.article--sponsored + thehindu.com .article-ad+ + 19thnews.org.article-ad-default-top + +phys.org.article-banner2 +worldsoccertalk.com.article-banner-desktop' + wishesh.com.article-body-banner@ +manilatimes.net).article-body-content > .fixed-gray-color  +crn.com.article-cards-ad( + coindesk.com.article-com-wrapperG + +kmbc.com + +wlky.com+.article-content--body-wrapper-side-floater, +lrt.lt.article-content__inline-blockD +firstforwomen.com+.article-content__sponsored_tout_ad___1iSJm5 + eonline.com".article-detail__right-rail--topad. + eonline.com.article-detail__segment-ad) +christianpost.com.article-divider) + purewow.com.article-in-content-ad) + aerotime.aero.article-leaderboard2 +squaremile.com.article-leaderboard-wrapper$ + scoop.co.nz.article-left-box& + slashdot.org.article-nel-12935& +spectator.com.au.article-promo2 +newmobility.com.article-sidebar--sponsored& +iai.tv.article-sidebar-adimage. +phillyvoice.com.article-sponsor-stickyD + thelocal.com + thelocal.dk + thelocal.se.article-sponsored) + +people.com.articleContainer__rail + audizine.com .articleIMGB +onlyinyourstate.com'.articleText-space-body-marginBottom-sm' +therecord.media.article__adunit9 +accessonline.com!.article__content__desktop_banner0 +seafoodsource.com.article__in-article-ad/ +financemagnates.com.article__mpu-banner; +empireonline.com#.article_adContainer--filled__vtAYeN +livefortheoutdoors.com +graziadaily.co.uk.article_adContainer__qr_Hd + pianu.com .article_add1 +empireonline.com.article_billboard__X_edx+ + ubergizmo.com.article_card_promoted' +indiatimes.com.article_first_ad2 + wikiwand.com.article_footerStickyAd__wvdui + +news18.com .article_mad& +gamewatcher.com.article_middle- + wikiwand.com.article_sectionAd__rMyBc& +lasvegassun.com.articletoolset% +news.artnet.com.artnet-ads-ad + +piokok.com.as-bar# +arcadespot.com .as-incontent +arcadespot.com .as-label +arcadespot.com.as-unit +theinertia.com.asc-ad + rentry.co.asd_1% +asianjournal.com .asian-widgetª$ +designboom.com.aside-adv-box, +pickmypostcode.com.aside-right.aside% + +goal.com.aside_ad-rail__cawG6 + +decrypt.co .aspect-video@ +postandcourier.com +theadvocate.com.asset-breakout-ads$ + macleans.ca.assmbly-ad-block& +chatelaine.com.assmbly-ad-text. +fashionmagazine.com.assmbly-ad-wrapper, +releasestv.com.ast-above-header-wrap, +animalcrossingworld.com .at-sidebar-1 +guidingtech.com.at1 +guidingtech.com.at2 + fedex.com.atTile1 +san.com.atf-top-bannerB +zoomtventertainment.com +timesnownews.com.atfAdContainer + atptour.com.atp_ad  + atptour.com .atp_partners + usamega.com.aud# +audiobacon.net .audio-widget +mbl.is.augl +thepopverse.com.autoad + +wvnews.com .automatic-ad +iai.tv.auw--container' +theblueoceansgroup.com .av-label, +hostingreviews24.com.av_pop_modals_1 + tutsplus.com.avert& +airfactsjournal.com .avia_image) +kisscenter.net + kissorg.net.avm* +whatsondisneyplus.com .awac-wrapper + tempr.email .awrapper + +siasat.com .awt_ad_code! + gulte.com.awt_side_sticky$ + factinate.com.aySlotLocation. +auctionzip.com.az-header-ads-container+ +conservativefiringline.com .az6l2zz4+ +hosty.uprwssp.org + coingraph.us.b! + irishnews.com .b-ads-block> +bnnbloomberg.ca + +ctvnews.ca + +cp24.com .b-ads-custom +dailyvoice.com .b-banner( + ownedcore.com.b-below-so-contentE + informer.com1.b-content-btm > table[style="margin-left: -5px"] + hypestat.com.b-errorî +beaumontenterprise.com +houstonchronicle.com +stamfordadvocate.com +middletownpress.com +registercitizen.com +mysanantonio.com +expressnews.com +sfchronicle.com +nhregister.com +timesunion.com + ctinsider.com + lmtonline.com + newstimes.com + seattlepi.com + thehour.com + +ctpost.com + +sfgate.com + chron.com +mrt.com .b-gray300.bt% + china.ahk.de.b-header__banner@ +dnserrorassist.att.net +searchguide.level3.com.b-links + azscore.com.b-odds! + ownedcore.com .b-postbit-w + kyivpost.com.b-titleY +mortgagebusiness.com.au +investordaily.com.au + cyberdaily.au.b-topLeaderboard$ +bizcommunity.com .b-topbanner# + ssyoutube.com.b-widget-left) +maritimeprofessional.com .b300x250 + coin360.com.b5BiRm+ + crypto.news + +nft.news .b6470de94dc + iol.co.za.bDEZXQ" +copilot.microsoft.com.b_ad + vidcloud9.me .backdropX +thessdreview.com +technologyx.com + kitguru.net + mcvuk.com.background-cover. +ign.com.background-image.content-blockƒ +allkeyshop.com +keyforsteam.de + +cdkeyit.it + +cdkeynl.nl + +cdkeypt.pt + +clavecd.es + +goclecd.fr.background-link-left„ +allkeyshop.com +keyforsteam.de + +cdkeyit.it + +cdkeynl.nl + +cdkeypt.pt + +clavecd.es + +goclecd.fr.background-link-right$ +gayexpress.co.nz .backstretch' +beincrypto.com.badge--sponsored + izismile.com.ban_top². +saabplanet.com.baner) +realestate-magazine.rs .banerright + rhumbarlv.com.banlinkë +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +footballtradedirectory.com +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +starradionortheast.co.uk +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +israelnationalnews.com +laserpointerforums.com +northamptonchron.co.uk +scientificamerican.com +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +filmmakermagazine.com +lincolnshireworld.com +onlineconvertfree.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +thefringepodcast.com +totallysnookered.com +unblockstreaming.com +falkirkherald.co.uk +nottinghamworld.com +sussexexpress.co.uk +weatheronline.co.uk +worldtimeserver.com +yorkshirepost.co.uk +armageddonexpo.com +bedfordtoday.co.uk +bikechatforums.com +birminghamworld.uk +burnleyexpress.net +dominicantoday.com +forexpeacearmy.com +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +smartcarfinder.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +diffordsguide.com +liverpoolworld.uk +meltontimes.co.uk +nationalworld.com +newryreporter.com +pulsesports.co.ke +surreyworld.co.uk +toyworldmag.co.uk +bristolworld.com +caixinglobal.com +coryarcangel.com +derbyworld.co.uk +derryjournal.com +elyricsworld.com +glasgowworld.com +hemeltoday.co.uk +hyipexplorer.com +imedicalapps.com +insidefutbol.com +japantimes.co.jp +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +slidescorner.com +theoldreader.com +eurochannel.com +farminglife.com +fifetoday.co.uk +garticphone.com +koreaherald.com +londonworld.com +pharmatimes.com +powerboat.world +sputniknews.com +timeslive.co.za +alistapart.com +arcadebomb.com +btcmanager.com +caribvision.tv +cinemadeck.com +euobserver.com +hortidaily.com +ipwatchdog.com +kissasians.org +marinelink.com +mercopress.com +pulsesports.ng +pulsesports.ug +walesworld.com +wigantoday.net + 1001games.com + ca-flyers.com + gsprating.com + ibtimes.co.in + ibtimes.co.uk + irishpost.com + speedcafe.com + thefanhub.com + thestar.co.uk + vibilagare.se + weekly-ads.us + hiphopdx.com + livescore.in + oncyprus.com + scotsman.com + subscene.com + sweeting.org + townhall.com + ynetnews.com + exalink.fun + flvtomp3.cc + gizmodo.com + +chad.co.uk + +cmo.com.au + +csstats.gg + +drops.live + +mmorpg.com + +news12.com + +roblox.com + +thehun.com + funpic.hu + gartic.io + jpost.com + lep.co.uk + myflr.org + sat24.com + +bsc.news + +news.net + +swzz.xyz + +tass.com + +vloot.io + +xbiz.com +dump.li +mob.org +news.am +gr8.cc +tmi.me.banner, + papermag.com.banner--ad__placeholder# + dayspedia.com.banner--aside) +onlineradiobox.com.banner--header# + oilprice.com.banner--inPage' +puzzlegarage.com.banner--inside" + dayspedia.com .banner--main+ +onlineradiobox.com.banner--vertical% +euroweeklynews.com .banner-970) +online-convert.com.banner-ad-size% +headlineintime.com .banner-add  + freepik.com .banner-adobe/ +dailysocial.id + +tiktok.com .banner-ads + +buoyant.io .banner-aside$ +schoolguide.co.za .banner-bar( +schoolguide.co.za.banner-bar-bot  +pretoria.co.za +.banner-bg0 +defence-ua.com + crash.net .banner-block& +dailycoffeenews.com .banner-box# +theshovel.com.au .banner-col‚ +nscreenmedia.com +countdown.co.nz +welovemanga.one + whoscored.com + +rawinu.com +jns.org +op.gg.banner-container$ + soccerway.com.banner-content- +insidebitcoins.com.banner-cta-wrapper/ + weatherin.org.banner-desktop-full-width + jpost.com .banner-h-270 + jpost.com .banner-h-880* + 411mania.com.banner-homebottom-all) + security.org.banner-img-container* + wireshark.org.banner-img-downloads* +balkangreenenergynews.com .banner-l + amoledo.com .banner-link# + weatherin.org.banner-mobile, + web3wire.news + +bsc.news .banner-one, +timesofisrael.com.banner-placeholder2 +tweakreviews.com.banner-placement__article0 +balkangreenenergynews.com.banner-premium! + +gg.deals.banner-side-link& +bikepacking.com.banner-sidebar" +livescores.biz .banner-slot) +livescores.biz.banner-slot-filled + vedantu.com .banner-text¡ +israelnationalnews.com +usahealthcareguide.com +spaceweatherlive.com +historydaily.org + metricool.com + pwinsider.com + spaceref.com .banner-top + +wpneon.com .banner-week + +news.net +.banner-wr" +admonsters.com .banner-wrapg +archiproducts.com +primewire.link + benzinga.com + slashdot.org + aki-h.com.banner-wrapper- +depositfiles.com + dfiles.eu.banner1 + gsprating.com.banner2 + coinalpha.app +.bannerAdv + brutal.io +.bannerBox + +arras.io .bannerHolder$ +alternativeto.net .bannerLink. +securenetsystems.net.bannerPrerollArea# +mumbrella.com.au .bannerSide + ivote.co.za .bannerSm + thejc.com .banner__! + thejc.com.banner__article1 +financemagnates.com.banner__outer-wrapper1 + forexlive.com + +tass.com.banner__wrapper + asmag.com +.banner_ab/ +inspiredot.net + hannity.com +.banner_adš- + +snopes.com.banner_ad_between_sections3 +businesskorea.co.kr + asmag.com .banner_box +news.am .banner_click, +dosgamesarchive.com.banner_container& +barnstormers.com.banner_holder  + camfuze.com .banner_inner$ +livecharts.co.uk .banner_long# +barnstormers.com .banner_mid' +weatheronline.co.uk .banner_oben" +barnstormers.com +.banner_rh\ +nationaljeweler.com +radioyacht.com + hwcooling.net + bflixto.top.banner_wrapper# + wdwmagic.com.bannerad_300px + +mamul.am.bannerb  +gamertweak.com +.bannerdiv* +flatpanelshd.com.bannerdiv_twopage  +arcadebomb.com +.bannerextë +southfloridagaynews.com +forums.limesurvey.org +digitalmediaworld.tv +armyrecognition.com +killerdirectory.com +soundstageultra.com +i-programmer.info +pamplinmedia.com +thepatriot.co.bw +dailynews.co.tz +rapidtvnews.com +usedcarnews.com +finchannel.com + 2merkato.com + eprop.co.za + cbn.co.za + +2mfm.org +aps.dz .bannergroup& + saigoneer.com.bannergroup-main/ +convertingcolors.com.bannerhead_desktopr +marengo-uniontimes.com +catholicregister.org +asianmirror.lk + nikktech.com + crown.co.za .banneritem +mir.az .bannerreklamú +marinetechnologynews.com +maritimepropulsion.com +domainnamewire.com +mumbrella.com.au +radiopaedia.org +rapidtvnews.com +travelpulse.com + petapixel.com + telesurtv.net + +i24news.tv + mutaz.pro + +paste.fo + +paste.pm.banners' +theportugalnews.com .banners-250 +rt.com.banners__border  + unixmen.com .banners_home) +m.economictimes.com.bannerwrapper- + barrons.com.barrons-body-ad-placement +marketscreener.com.bas +teamfortress.tv.bau +propublica.org.bb-ad +doge-faucet.com.bbb +imagetostl.com.bc1 +britannica.com.bc-article-inline-dialogue, +dissentmagazine.org.bc_random_banner + h-online.com.bcadv! +digminecraft.com .bccace1b" +fakenamegenerator.com.bcsw  + boldsky.com .bd-header-ad/ +userbenchmark.com.be-lb-page-top-bannerŸ +outdoorguide.com +wrestlinginc.com +moneydigest.com + chowhound.com + slashgear.com + thelist.com + +mashed.com + +glam.com +svg.com +.before-ad; +haitiantimes.com + +renonr.com.below-header-widgets$ +theinertia.com.below-post-ad& +lonestarlive.com.below-toprail, +gobankingrates.com.bestbanks-slidein + aiscore.com.bet3650 + azscore.com.bettingTip__buttonsContainer+ + +scribd.com.between_page_portal_root  +nationalworld.com.bfQGof  +mindbodygreen.com.bftiFX) +theepochtimes.com.bg-\[\#f8f8f8\]' +hotnewhiphop.com.bg-ad-bg-color# +batimes.com.ar .bg-ads-space +bgr.com .bg-black" +whatismyisp.com .bg-blue-500 +officialcharts.com.bg-design-hoverGreige# +republicworld.com +.bg-f0f0f0+ +amgreatness.com.bg-gray-200.mx-auto+ +kongregate.com.bg-gray-800.mx-4.p-1" + wccftech.com.bg-horizontal2 +imagetotext.info.bg-light.mt-2.text-centerF +charlieintel.com + dexerto.com.bg-neutral-grey-4.items-centerF +charlieintel.com + dexerto.com.bg-neutral-grey.justify-center" + mapquest.com.bg-primary-12' +businessinsider.in .bg-slate-100� + wccftech.com +.bg-square% + wccftech.com.bg-square-mobile0 + wccftech.com.bg-square-mobile-without-bgu + ewn.co.zad.bg-surface-03.text-content-secondary.space-y-\[0\.1875rem\].p-spacing-s.flex.flex-col.w-max.mx-auto  + wccftech.com .bg-vertical! + +time.com.bg-warm-grey-ads) +copyprogramming.com.bg-yellow-400 +overclock3d.net.bglink! + bhamnow.com.bhamn-adlabel + bhamnow.com .bhamn-story& +investmentweek.co.uk +.bhide-768, +blackhatworld.com.bhw-advertise-link% +blackhatworld.com .bhw-banners + +viva.co.nz .big-banner. +qpbriefing.com + ipolitics.ca.big-box +cbc.ca.bigBoxContainer + +newzit.com +.big_WcxYT" +gamemodding.com .big_banner* +hellenicshippingnews.com +.bigbanner' + advocate.com.bigbox_top_ad-wrap% +scienceabc.com.bigincontentad + snokido.com +.bigsquareþ +blackpoolgazette.co.uk +northamptonchron.co.uk +thescottishsun.co.uk +shieldsgazette.com +techforbrains.com +farminglife.com +bundesliga.com +qpbriefing.com + aerotime.aero + autotrader.ca + talksport.com + thestar.co.uk + ipolitics.ca + scotsman.com + thesun.co.uk + hotstar.com + the-sun.com + lep.co.uk + thesun.ie + +9gag.com +dev.to +.billboard3 + pagesix.com + +nypost.com.billboard-overlay- +electronicproducts.com.billboard-wrap( +weatherpro.com.billboard-wrapperb +thetruthaboutcars.com +upgradedhome.com +motorcycle.com + autoguide.com.billboardSize. + techspot.com.billboard_placeholder_min  + netweather.tv .billheight + azscore.com.bkw% +bundesliga.com.bl-broadcaster% + softonic.com.black-friday-ads + ehftv.com .blackPlayer  + +nowsci.com.black_overlay + +tvmaze.com.blad +allkeyshop.com .blc-left  +allkeyshop.com +.blc-right + +fastpic.ru.bleft + +kottke.org .bling-title + wearedore.com .bloc-pub + rpgsite.net.block( +soundonsound.com.block---managed1 +worldviewweekend.com.block--advertisement% +analyticsinsight.net .block-10 + club386.com .block-25 + club386.com .block-30 + club386.com .block-39 + megagames.com.block-4 + club386.com .block-413 + visordown.com + crash.net.block-ad-manager, +thebaltimorebanner.com.block-ad-zone7 + autocar.co.uk".block-autocar-ads-lazyloaded-mpu25 + autocar.co.uk .block-autocar-ads-mpu-flexible15 + autocar.co.uk .block-autocar-ads-mpu-flexible2, + autocar.co.uk.block-autocar-ads-mpu1I +thescore1260.com1.block-content > a[href*="sweetdealscumulus.com"]W + indysmix.com + +wzpl.com7.block-content > a[href^="https://sweetjack.com/local"]/ +natlawreview.com.block-content-ad_block. +commonwealmagazine.org.block-custom-ad! +webbikeworld.com .block-da6 +whosdatedwho.com.block-global-adDFP_HomeFooter# +mondoweiss.net .block-head-c' + newsweek.com.block-ibtmedia-dfpA +practicalpainmanagement.com +endocrineweb.com +.block-oasÓ  + +kaotic.com.block-toplist8 + theonion.com$.block-visibility-hide-medium-screen2 + 9to5linux.com + maxblizz.com .block-widget! +worldtimebuddy.com.block2  + macmusic.org .block440Adv# +betaseries.com .blockPartner + soccerway.com .block_ad + informer.com +.block_ad1* +myrealgames.com.block_adv_mix_top2% +gametracker.com.blocknewnopad! + simkl.com.blockplacecente + wowhead.com.blocks + +mail.com .blocks-36 + +wowway.net$.blocks_container-size_containerSize# + blackview.hk.blog-ad-banner- +plainenglish.io.blog-banner-container" + failory.com.blog-column-ad9 + +oxygen.com + +syfy.com.blog-post-section__zergnet' + +blogto.com.blogto-sticky-banner + manhwaindo.id.blox0 +waterworld.com.blueconic-recommendations' + bmwblog.com.bmwbl-after-content% + azscore.com + bescore.com.bn + firstpost.com.bn-add0 +surattimes.com + savefree.in .bn-content( +nilechronicles.com.bn-lg-sidebar@ +weather-forecast.com +snow-forecast.com.bn-placeholder" + flaticon.com.bn-space-gads + +roll20.net.bna! + gearspace.com .bnb--inline# + gearspace.com.bnb-container  + bnonews.com .bnone-widget- +mediamanager.co.za + evertiq.com.bnr0" + thecompleteuniversityguide.co.uk.bnr_out" + armenpress.am .bnrcontainer4 + apkmody.mobi + +apkmody.io.body-fixed-footer' +saharareporters.com .body-inject/ +boingboing.net.boing-amp-triple13-amp-1A +boingboing.net+.boing-homepage-after-first-article-in-list3 +boingboing.net.boing-leaderboard-below-menu< +boingboing.net&.boing-primis-video-in-article-content< +livescores.biz + azscore.com.bonus-offers-container" +btcmanager.com .boo_3oo_6oo3 +myanimelist.net.bookstores-recommend-plugin + +cmo.com.au.boombox1 + tomsguide.com.bordeaux-anchored-container# + tomsguide.com.bordeaux-slot* +everydayrussianlanguage.com.border4 +washingtonpost.com.border-box.dn-hp-sm-to-mx. +washingtonpost.com.border-box.dn-hp-xs' +thedailymash.co.uk .border-brand1 +standardmedia.co.ke.border-thick-branding" +myanimelist.net .border_top +appleinsider.com.bottom0 +blockchair.com.bottom--buttons-containerP +downforeveryoneorjustme.com +health.clevelandclinic.org.bottom-0.fixed' +indiatimes.com.bottom-ad-height& +livescores.biz.bottom-bk-links% + reverso.net.bottom-horizontal0 +photographyreview.com.bottom-leaderboard% + dappradar.com.bottom-networks$ +codeproject.com .bottom-promo2 + huffpost.com.bottom-right-sticky-container +crn.com.bottom-sectionõ" + cnbctv18.com.bottom-sticky- +gamingdeputy.com.bottom-sticky-offset + coincodex.com.bottom7& +openguessr.com.bottomFooterAds, +auto.hindustantimes.com .bottomSticky& + softicons.com.bottom_125_block* + softicons.com.bottom_600_250_block + imgtaxi.com .bottom_abs& + collive.com.bottom_leaderboard8 +allmonitors24.com +streamable.com .bottombanner  +arcadebomb.com +.bottombox% +timesofindia.com .bottomnative +canonsupports.com.box0 +filmbooster.com + +ghacks.net .box-banner' +mybroadband.co.za.box-sponsored + kiz10.com.box-topads-x2+ + fctables.com.box-width > .hidden-xs3 + cubdomain.com.box.mb-2.mh-300px.text-center + +wahm.com.box2! +brushexpert.com +.boxAdvert$ +tribunnews.com.box__reserved + flipline.com .box_grey  + flipline.com .box_grey_bl  + flipline.com .box_grey_br  + flipline.com .box_grey_tl  + flipline.com .box_grey_tr% +functions-online.com .box_wide + kiz10.com .boxadsmedium> +worldsoccertalk.com + bolavip.com.boxbanner_container' + kodinerds.net.boxesSidebarRight, +retailgazette.co.uk.boxzilla-overlay1 +retailgazette.co.uk.boxzilla-popup-advert + +wbur.org .bp--native + +wbur.org +.bp--outer + +wbur.org.bp--rec + +wbur.org.bp--responsive + +wbur.org .bp-label# +slickdeals.net .bp-p-adBlock+ +businessplus.ie.bp_billboard_single + petkeen.com.br-105 +inherentlyfunny.com +eightieskids.com.break+ +breakingbelizenews.com .break-target+ +breakingbelizenews.com .break-widget2 +broadsheet.com.au.breakout-section-inverse& + brobible.com.bro_caffeine_wrap% + brobible.com.bro_vidazoo_wrap/ + moco360.media.broadstreet-story-ad-text1 +sainsburys.co.uk.browse-citrus-above-grid) + vaughn.live.browsePageAbvs300x600% +femalefirst.co.uk .browsi_home! + +techpp.com.brxe-shortcode) +christianpost.com.bs-article-cell + moco360.media .bs_zones+ +sslshopper.com.bsaStickyLeaderboard/ +barakbulletin.com + arydigital.tv.bsac +doge-faucet.com.bspot  +businesstoday.in.btPlyer + autoblog.com .btf-native + cricwaves.com.btm7283 + snaptik.app .btn-download-hd[data-ad="true"] + +files.im .btn-success + +sbenny.com .btnDownload5A + vipleague.im-.btn[data-openuri*="/4/"][data-open="_blank"]. + pollunit.com.btn[href$="?feature=ads"]ˆ + youloveit.com.btop- +lifestyleasia.com.btt-top-add-section + livemint.com +.budgetBox+ +business-standard.com.budgetWrapper  + bulinews.com .bulinews-ad$ +frankspeech.com .bunny-banner1 +businessmirror.com.ph.busin-after-content2 +businessmirror.com.ph.busin-before-content< +business2community.com.busin-coinzilla-after-contentA +business2community.com#.busin-news-placement-2nd-paragraph0 +switchboard.com.business_premium_results  +imac-torrents.com.button/ +thisismoney.co.uk.button-style > [href]# + abbaspc.net.buttonPress-116 + overclock.net.buy-now) + coinalpha.app.buyTokenExchangeDiv# + bobvila.com.bv-unit-wrapper& + wgnsradio.com.bw-special-image. + wgnsradio.com.bw-special-image-wrapper  +scalemates.com +.bwx.hrspb. + forbes.com.au.bz-viewability-container  +insurancejournal.com.bzn+ +hosty.uprwssp.org + coingraph.us.c + +dagens.com .c-1 > .i-2& + globalnews.ca + +stuff.tv.c-ad& +theglobeandmail.com .c-ad--base! + +stuff.tv.c-ad--mpu-bottom + +stuff.tv.c-ad--mpu-top' +theglobeandmail.com .c-ad-sticky! + globalnews.ca .c-adChoices9 + zdnet.com(.c-adDisplay_container_incontent-all-top$ + +tuko.co.ke + +legit.ng.c-adv) + +legit.ng.c-adv--video-placeholder+ +euroweeklynews.com.c-advert__sticky& + +cnet.com.c-asurionBottomBanner+ + +cnet.com.c-asurionInteractiveBanner3 + +cnet.com#.c-asurionInteractiveBanner_wrapper% +newstalkzb.co.nz .c-background +elnacional.cat .c-banner + truck1.eu +.c-banners# + euronews.com.c-card-sponsor& +euroweeklynews.com .c-inblog_ad% + thehustle.co.c-layout--trends3 +download.cnet.com.c-pageFrontDoor_adWrapper7 +download.cnet.com.c-pageProductDetail-sidebarAdB +download.cnet.com).c-pageProductDetail_productAlternativeAd' + +cnet.com.c-pageReviewContent_ad( +smashingmagazine.com .c-promo-box' +mmafighting.com.c-promo-breaker, +smashingmagazine.com.c-promotion-box + webtoon.xyz +.c-sidebar/ +umassathletics.com.c-sticky-leaderboard" + globalnews.ca .c-stickyRailÕ +betternutrition.com +pelotonmagazine.com +vegetariantimes.com +cleaneatingmag.com +trailrunnermag.com +outsideonline.com +womensrunning.com +yogajournal.com +backpacker.com +gymclimber.com +rockandice.com +triathlete.com + oxygenmag.com + climbing.com + velonews.com + betamtb.com + +skimag.com .c-thinbanner@ +mangarockteam.com +nitroscans.com.c-top-second-sidebarq +freecomiconline.me +readfreecomics.com +mangahentai.me + lordmanga.com + manytoon.com.c-top-sidebar. + tvguide.com.c-tvListingsSchedule_adRow. + tvguide.com.c-tvListingsSchedule_video  +softarchive.is +.c-un-link& + +stuff.tv.c-video-ad__container  +convertingcolors.com.c30" + canada411.ca.c411TopBanner! +techonthenet.com .c79ee2c9" +sussexexpress.co.uk.cIffkqË" + filepuma.com.cRight_footer% + fmforums.com.cWidgetContainer + money.com.ca-pcu-inline + engadget.com.caas-da  + thecable.ng .cableads_mid +encycarpedia.com.cac. +strategie-bourse.com.cadre_encadre_pub( + cafonline.com.caf-o-sponsors-nav1 +merriam-webster.com.cafemedia-ad-slot-top6 +clutchpoints.com.cafemedia-clutchpoints-header + challonge.com +.cake-unit# + apkcombo.com.calc-container$ + calculat.io.calc67-container# +skylinewebcams.com .cam-vert( +thedalesreport.com.cap-container" + dllme.com.captchabox > div + +coolors.co .carbon-cad) + +icons8.com.carbon-card-ad__loader( +speakerdeck.com.carbon-container% + buzzfeed.com.card--article-ad" +u.today.card--something-md% +nrl.com.card-content__sponsor# +thepointsguy.com .cardWidget2 +realestatemagazine.ca.caroufredsel_wrapper! +devdiscourse.com .carousel' + eetimes.com.carousel-ad-wrapper6 +faroutmagazine.co.uk + +hitc.com.carpet-border! + numista.com.catawiki_list5 +chemistwarehouse.com.au.category-product-mrecF +hyperallergic.com + +ghacks.net + +afro.com.category-sponsored- + +renonr.com.category-sponsored-content + notebooks.com .cb-block5 +wandering-bird.com +thegoodchoice.ca.cb-box/ + +guru99.com.cb-box__wrapper-center_modal% + carbuzz.com.cb-video-ad-block  +supercheats.com .cboth_sm+ + cricbuzz.com.cbz-leaderboard-banner + waptrick.one +.cent_list + +digit.in .center-add  + seeklogo.com .centerAdsWp+ +siberiantimes.com.centerBannerRight& +giveawayoftheday.com +.center_ab5 + mirrored.to".centered > form[target^="_blank"]+ +whattomine.com.centered-image-short! +spiceworks.com .centerthe1 +ceo.ca +.ceoBanner! +digminecraft.com .cf47a252( +contactform7.com.cf7com-bsa-zone' +top.gg.chakra-stack.css-15xujv4' + +tlgrm.eu.channel-card--promoted& + thetimes.com.channel-header-ad$ +thefastmode.com .channel_long% +thefastmode.com.channel_small# +officialcharts.com .chart-ad! +crn.com.chartbeat-wrapper2 + cheknews.ca.chek-advertisement-placeholder. +sevenforums.com + tenforums.com.chill> +cdmediaworld.com +gametarget.net + lnkworld.com.chk( +cheezburger.com.chz-ad-container& + hannaford.com.citrus_ad_banner> +apps.jeurissen.co%.cja-landing__content > .cja-sqrimage +hodinky-365.com.cl-ban +gunsamerica.com.cl_ga# +businessinsider.in .clmb_eoaâ2( +kissanime.com.ru.close_ad_button + cdromance.com.clsY +computerweekly.com +theserverside.com +techtarget.com.cls-hlb-wrapper-desktop* + +lcpdfr.com.clsReductionBlockHeight0 + +lcpdfr.com.clsReductionLeaderboardHeight1 +mayoclinic.org.cmp-advertisement__wrapper  +classcentral.com.cmpt-adI +nativeplanet.com + boldsky.com + +gizbot.com.cmscontent-article1I +nativeplanet.com + boldsky.com + +gizbot.com.cmscontent-article2’ +nativeplanet.com +drivespark.com +goodreturns.in + filmibeat.com + oneindia.com + boldsky.com + +gizbot.com.cmscontent-left-articleŒ +nativeplanet.com +drivespark.com +goodreturns.in + filmibeat.com + oneindia.com + boldsky.com + +gizbot.com.cmscontent-right1& +careerindia.com.cmscontent-top  +cricketnmore.com.cmtopad +thisismoney.co.uk.cnr5  + +letras.com.cnt-space-top- +groceries.asda.com.co-product-dynamic> + +asda.com..co-product-list[data-module-type="HookLogic"]( +map.riftkit.net.coachify_wrapperˆ +australiangeographic.com.au +conservativefiringline.com +americanmilitarynews.com +cryptointelligence.co.uk +engineering-designer.com +indianhealthyrecipes.com +trendingpoliticsnews.com +pcoptimizedsettings.com +americansongwriter.com +theblueoceansgroup.com +conservativebrief.com +hollywoodunlocked.com +roadaheadonline.co.za +bipartisanreport.com +dailynewshungary.com +flowmountainbike.com +hollywoodinsider.com +meaningfulspaces.com +reptilesmagazine.com +thecricketlounge.com +thegatewaypundit.com +trendingpolitics.com +100percentfedup.com +aiarticlespinner.co +chillinghistory.com +cryptoreporter.info +freefontsfamily.net +libertyunlocked.com +linuxfordevices.com +reneweconomy.com.au +statisticsbyjim.com +streamingbetter.com +thelibertydaily.com +washingtonblade.com +bakeitwithlove.com +cryptobriefing.com +firstcuriosity.com +flickeringmyth.com +gadgetinsiders.com +jojolandsmanga.com +notalwaysright.com +premiumtimesng.com +redrightvideos.com +simscommunity.info +small-screen.co.uk +thecinemaholic.com +thepeoplesvoice.tv +walletinvestor.com +animatedtimes.com +chromeunboxed.com +circuitbasics.com +corrosionhour.com +dorohedoro.online +freemagazines.top +gameinfinitus.com +gatewaynews.co.za +geekdashboard.com +greekreporter.com +inspiredtaste.net +journeyjunket.com +jujustukaisen.com +rightwingnews.com +snipercentral.com +superwatchman.com +thewincentral.com +windowslatest.com +autodaily.com.au +boxingnews24.com +charlieintel.com +cryptopotato.com +gamingdeputy.com +getdroidtips.com +harrowonline.org +jessicagavin.com +journeybytes.com +medicotopics.com +medievalists.net +mycariboonow.com +mymotherlode.com +nationalfile.com +organicfacts.net +patriotfetch.com +protrumpnews.com +pureinfotech.com +respawnfirst.com +sciencenotes.org +thebeaverton.com +tvtonight.com.au +twistedvoxel.com +247media.com.ng +academicful.com +allaboutfpl.com +alltechnerd.com +androidsage.com +coincodecap.com +cryptoslate.com +firstsportz.com +mymodernmet.com +talkandroid.com +tech-latest.com +techrounder.com +thegamehaus.com +thegeekpage.com +welovetrump.com +anoopcnair.com +asurascans.com +browserhow.com +crimereads.com +cryptotimes.io +dcenquirer.com +fandomwire.com +gamertweak.com +hard-drive.net +iotwreport.com +politizoom.com +saabplanet.com +snowbrains.com +thenipslip.com +zerohanger.com + addapinch.com + askpython.com + dafontfree.io + ecoportal.net + ecoticias.com + flyingmag.com + goodyfeed.com + ifoodreal.com + mangaread.org + storypick.com + techaeris.com + techviral.net + waves4you.com + wltreport.com + bohemian.com + borncity.com + epicdope.com + gamebyte.com + ipatriot.com + nexdrive.lol + thedriven.io + theoilrig.ca + whynow.co.uk + helihub.com + rezence.com + talkers.com + ziperto.com + +eurweb.com + +lithub.com + +nxbrew.com + +sdnews.com + +techpp.com + +wisden.com + mb.com.ph + nsw2u.com + rok.guide + +exeo.app + +mpost.io + +wbiw.com + +wepc.com +cjr.org +wnd.com +win.gg .code-block„ +thefamilybreeze.com +thetravelbreeze.com +theworldreads.com +womensmethod.com +storytohear.com.code-block > center p: +cookingwithdog.com +streamtelly.com .code-block-1" + powerpyx.com.code-block-14( +patriotnewsfeed.com .code-block-4# +scienceabc.com .code-block-5& + wltreport.com.code-block-label( +coinmarketcap.com.coin-ad-banner + holyrood.com.col--ad) +mydramalist.com.col-lg-4 > .clear! +upi.com.col-md-12 > table + roseindia.net .col-md-4 + +disqus.com .col-promoted + +lapa.ninja .col-sm-1' + +tineye.com.collection.match-row> +collegedunia.com&.college-sidebar .course-finder-bannerh +vijaykarnataka.com +gadgetsnow.com +iamgujarat.com +indiatimes.com + samayam.com .colombia, +businessinsider.in.colombia-rhs-wdgt + +i24news.tv .column-ads1 + atalayar.com.column-content > .megabanner' +rateyourmusic.com.column_filler  + 2pass.co.uk .column_right +arcadebomb.com .colunit1' +bollywoodlife.com.combinedslots) +googlesightseeing.com .comm-square! +slickdeals.net .commentsAdB +businessinsider.com + insider.com.commerce-coupons-module1 +thisislondon.co.uk + +goal.com .commercial, +dailystar.co.uk.commercial-box-style' +telegraph.co.uk.commercial-unit" +mega.nz.commercial-wrapper> +miaminewtimes.com + westword.com.comp-shell-stnplayer + hiphopdx.com.compact+ + bitdegree.org.comparison-suggestion/ + +audacy.com.component--google-ad-manager) +linguisticsociety.org .component-3 + +goal.com .component-adO +livestrong.com + +hunker.com+.component-article-section-jwplayer-wrapper_ +jessekellyshow.com +steveharveyfm.com + binnews.com + +iheart.com.component-pushdowne +jessekellyshow.com +steveharveyfm.com + binnews.com + +iheart.com.component-recommendation' + +kqed.org.components-Ad-__Ad__ad- + theverge.com.connatix-feature-desktop= +thisismoney.co.uk +dailymail.co.uk.connatix-wrapper# +realsport101.com .connatixPS$ + dpreview.com.connatixWrapper( +rateyourmusic.com.connatix_videoÜ- +washingtontimes.com.connatixcontainer2 + pcgamesn.com.constellation_promoted_iframe# +beincrypto.com .cont-wrapper- +whatismyip.net.container > .panel[id]) +redditsave.com.container > centerF + flaticon.com2.container > section[data-term].soul-a.soul-p-nsba, +marketwatch.com.container--sponsored7 +mangakakalot.com.container-chapter-reader > div$ +snazzymaps.com.container-gas< +font-generator.com".container-home-int > .text-center/ +thejournal-news.net.container.lightblue/ + coinhub.wiki.container_coinhub_footerad2 + coinhub.wiki.container_coinhub_topwidgetad4 +jokersupdates.com.container_contentrightspan- + rawstory.com.container_proper-ad-unit- +worldscreen.com.contains-sticky-video9 + pastebin.com%.content > [style^="padding-bottom:"]* +amateurphotographer.com .content-ad& +receive-sms.cc.content-adsense3 +floridasportsman.com.content-banner-sectionM +technewsworld.com + crmbuyer.com + ectnews.com.content-block-slinks* +usmagazine.com.content-card-footer' + bloomberg.com.content-cliff__ad1 + bloomberg.com.content-cliff__ad-container6 +journeyjunket.com.content-container-after-post, +computerweekly.com.content-continues" + gostream.site .content-kuss' + cookist.com.content-leaderboard" + pwinsider.com .content-left# + pwinsider.com.content-right$ + +flv2mp3.by.content-right-barK +technewsworld.com + crmbuyer.com + ectnews.com.content-tab-slinks, +searchenginejournal.com .content-unit& +highsnobiety.com.contentAdWrapC +newmexicomagazine.org&.contentRender_name_plugins_dtn_gam_ad- +ancient-origins.net.content_add_block, + wikiwand.com.content_headerAd__USjzd/ +nationalmemo.com.content_nm_placeholder( +insta-stories-viewer.com.context  +usedcarnews.com .continut$ + metar-taf.com.controls-right  +live-tennis.eu +.copyright! + +imdb.com.cornerstone_slot+ +physicsworld.com.corporate-partners& +corrosionhour.com .corro-widget + pcworld.com.coupons. +creativecow.net.cowtracks-interstitial< +creativecow.net%.cowtracks-sidebar-with-cache-busting( +creativecow.net.cowtracks-target- +runtothefinish.com.cp-popup-container- +coinpaprika.com.cp-table__row--ad-row + nextpit.com.cpgSlot% +cpomagazine.com.cpoma-adlabel) +cpomagazine.com.cpoma-main-header$ +cpomagazine.com .cpoma-target! + chronline.com .cq-creative" +theweather.net .creatividad + mma-core.com.crec- + currys.co.uk.cretio-sponsored-product  + +meijer.com.criteo-banner. +davidjones.com.criteo-carousel-wrapper- + currys.co.uk.criteoproducts-container  +irishtimes.com +.cs-teaser  +staradvertiser.com.csMon�0 + +c-span.org.cspan-ad-still-prebid-wrapper) + +c-span.org.cspan-ad-still-wrapper" +healthline.com .css-12efcmn + nytimes.com .css-142l3g4 + tft.op.gg .css-16y0h5z + pgatour.com .css-18v0in8 +mui.com .css-19m7kbw^ +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com .css-1cg0byz" +crazygames.com .css-1h6nq0a + pgatour.com .css-1t41kwh  + infowars.com .css-1upmbem  + infowars.com .css-1vj1npn" +gamingbible.com .css-1z9hhh] +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com .css-20w1gi + +delish.com .css-3oqygl# +news.abs-cbn.com .css-a5foyt + nytimes.com .css-bs95eu + nytimes.com .css-oeful5 + +sbs.com.au .css-p21i0dP +cruisecritic.com.au +cruisecritic.co.uk +cruisecritic.com .css-v0ecl7 + nytimes.com +.css-wmyc1 +op.gg .css-zpq3c5! + thestreet.com .csw-ae-wide( +christianitytoday.com .ct-ad-slot +comparitech.com.ct089( +unmineablesbest.com .ct_ipd728x90& +comparitech.com.ct_popup_modalF +amateurphotographer.com +cryptoslate.com + techspot.com.cta( + dailydot.com.cta-article-wrapper + +w3docs.com .cta-bookduck" +simracingsetup.com.cta-box  + thelines.com .cta-content + finbold.com +.cta-etoro! +poweroutage.us .cta-inline + thelines.com.cta-row6 +timesofindia.indiatimes.com.ctn-workaround-div& +u.today.ctyptopcompare__widget + +genius.com.cujBpY& + pcgamesn.com.curated-spotlight + speedrun.com.curse  +pokebattler.com .curse-ad+ +indiabusinessjournal.com .cus-ad-img& +dexscreener.com.custom-1hol5du% +dexscreener.com.custom-1ii6w9& +dexscreener.com.custom-1l0hqwu% +dexscreener.com.custom-97cj9d& +slidehunter.com.custom-ad-text% +fastestvpns.com.custom-bannerr +simscommunity.info +addictivetips.com + news365.co.za + coinweek.com + lmanime.com.custom-html-widget= +patriotnewsfeed.com".custom-html-widget [href] > [src]* +thestudentroom.co.uk.custom-jucdap% +thehackernews.com .custom-link, +breakingnews.ie.custom-mpu-container" + ehitavada.com .custom-popup% +dexscreener.com.custom-torcf3+ +total-croatia-news.com .custombanneri +thescottishsun.co.uk + thesun.co.uk + the-sun.com + thesun.ie!.customiser-v2-layout-1-billboardw +thescottishsun.co.uk + thesun.co.uk + the-sun.com + thesun.ie/.customiser-v2-layout-three-native-ad-container, +f150lightningforum.com.customizedBox + coincarp.com .customspon" + citywire.com.cw-top-advert1 +futurecurrencyforecast.com.cwc-tor-widget& +marketwatch.com.cxense-loading$ +usmagazine.com.cy-storyblockÏ) +bleepingcomputer.com .cz-toa-wrapp+ +hosty.uprwssp.org + coingraph.us.d +blockchair.com.d-block- + freesteam.io + +fastpic.ru .d-lg-block5 +calendar-canada.ca + osgamers.com .d-md-block# +thestreamable.com +.d-md-flex+ + publish0x.com.d-md-none.text-center7 + arbiscan.io$.d-none.text-center.pl-lg-4.pl-xll-5> + onlineocr.net + publish0x.com + cutyt.com .d-xl-block! +techonthenet.com .d0230ed3 + artsy.net.dDusYa + yourstory.com.dJEWSq + fxempire.com.dKBfBG. + royalroad.com.dKKumhSnWiFq75vPUVtmTanQ +standard.co.uk.dXaqls + vogue.com.au.dYmYok/ +timesofindia.indiatimes.com .d_jsH.mPws3! +androidauthority.com.d_um- +lindaikejisblog.com + counter.dev.da! + engadget.com .da-container +hackernoon.com.dabytagz +capitalxtra.com +smoothradio.com + capitalfm.com + classicfm.com + goldradio.com + heart.co.uk.dac__mpu-card + smartprix.com +.dadow-box + lifewire.com .daily-deal, +dailycaller.com.dailycaller_adhesion3 +boards.4channel.org + 4chan.org .danbo-slot! + cnbctv18.com .davos-top-ad- +sportshub.stream.db783ekndd812sdz-ads +foobar2000.org.db_link +wuxiaworld.site.dcads +driverscloud.com.dcpub# +theguardian.com .dcr-1aq0rzi +dailydriven.ro.dd-dda +datedatego.com.ddg +datedatego.com.ddg0 +darkreader.org.ddgr + sgcarmart.dealer_banner" + slashdot.org.deals-wrapper' +defiantamerica.com .defia-widget + nettv4u.com +.desk_only + newindian.in.deskad' +cardealermagazine.co.uk.desktop- +livesoccertv.com.desktop-ad-container( + medscape.com.desktop-ad-position& + vitalmtb.com.desktop-header-ad& + rok.guide.desktop-promo-banner$ + tiermaker.com.desktop-stickyX +buzzfeednews.com + buzzfeed.com0.desktop-sticky-ad_desktopStickyAdWrapper__a_tyF + hanime.tv.desktop.htvad< +randomarchive.com#.desktop[style="text-align:center"]$ + yeggi.com.desktop_content_ad2 +australiangolfdigest.com.au.desktop_header# + yeggi.com.desktop_header_ad( +news24online.com.desktop_new_ads+ + inquirer.net.desktop_smdc-FT-surveyE +techforbrains.com +cyclingstage.com + +news18.com +.desktopad + +news18.com .desktopadh + coingape.com +.desktopds + +news18.com .desktopflex$ +ancient-origins.net .desktops  + giphy.com.device-desktop  +floridapolitics.com.dfad  +infosecurity-magazine.com +nationaljeweler.com +pastemagazine.com +gadgetsnow.com + splinter.com + theonion.com + jezebel.com + +avclub.com.dfp* + thehindu.com + gazette.com.dfp-adä  +vox.com.dfp-ad--connatix + ibtimes.com .dfp-ad-lazy! + +lemonde.fr.dfp__container +yts.mx.dfskieurjkc23a( + dailyfx.com.dfx-article__sidebar- +dollargeneral.com.dgsponsoredcarousel+ + decripto.org.dialog-lightbox-widget+ +politicspa.com.dialog-type-lightbox& +financefeeds.com.dialog-widget- + kiplinger.com.dianomi_gallery_wrapper + kmplayer.com +.dim-layerU +temporary-phone-number.com3.direct-chat-messages > div[style="margin:15px 0;"]C +disk.yandex.com +disk.yandex.ru.direct-public__sticky-box$ + +notes.io.directMessageBanner) +premiumtimesng.com.directcampaign$ +happywayfarer.com .disclosure# + oneindia.com.discounts-head2 +audiokarma.org.discussionListItem > center! + apkcombo.com .diseanmevrtt? +protipster.com + govevents.com + airmail.news.display + drugs.com .display-ad) +flightconnections.com .display-box+ +flightconnections.com.display-box-2" + +legacy.com.displayOverlay1# +designtaxi.com .displayboard+ +theodysseyonline.com.distroscale_p2- +theodysseyonline.com.distroscale_side6 +nottinghampost.com.div-gpt-ad-vip-slot-wrapper& +readcomiconline.li .divCloseBut + jpost.com .divConnatix) +tigerdroppings.com.divHLeaderFull% + +newser.com.divNColAdRepeating0 +sailingmagazine.net.divclickingdivwidget4 +greedyfinance.com +ebaumsworld.com.divider- + thelist.com.divider-heading-container  +karachicorner.com.divimg + fruitnet.com +.dk-ad-250 +meteologix.com.dkpw: +meteologix.com + +weather.us.dkpw-billboard-margin# + dongknows.com.dkt-amz-deals$ + dongknows.com.dkt-banner-ads" +wallpaperbetter.com.dld_ad( +globalgovernancenews.com.dlopiqu + crash.net.dmpu  + crash.net.dmpu-container3 +nationalworld.com + scotsman.com +.dmpu-item% + +vice.com.docked-slot-renderer! +thehackernews.com.dog_two* + quora.com.dom_annotate_ad_image_ad1 + quora.com .dom_annotate_ad_promoted_answer) + quora.com.dom_annotate_ad_text_ad# +domaingang.com .domai-target1 +thenationonlineng.net.dorvekp-post-bottom + gearlive.com.double0 +smoothradio.com + radiox.co.uk .download< +zeroupload.com&.download-page a[rel="noopener"] > img) +thepiratebay3.to.download_buutoon + thesun.co.uk .dpa-slot + +immoweb.be.dpg$ +radiopaedia.org .drive-banner + +dola.com .ds-brand + +dola.com.ds-display-ad +cryptonews.com.dslot# +kickasstorrents.to .dssdffds’ + crash.net.dt4 +digitaltrends.com + themanual.com +.dt-primis( +digitaltrends.com.dtads-location( +digitaltrends.com.dtcc-affiliate +yts.mx.durs-bordered + bloomberg.com +.dvz-v0-ad! + daniweb.com.dw-inject-bsa + ubereats.com.dw.ec  + +dmarge.com.dx-ad-wrapper" +coinpaprika.com .dynamic-ad" + dailydot.com.dynamic-block" + nomadlist.com .dynamic-fill + coingraph.us.e1 +dailyvoice.com.e-freestar-video-container) +dailyvoice.com.e-nativo-container +hosty.uprwssp.org.e10 +op.gg +.e17e77tq6 +op.gg +.e17e77tq8( + nytimes.com.e1xxpj0j1.css-4vtjtj! +techonthenet.com .e388ecbdx +nigerianobservernews.com +arabtimesonline.com +independent.co.ug +udaipurkiran.com +songslover.vip.e3lan# +presskitaquat.com +.e3lan-top0 +tiresandparts.net.e3lanat-layout-rotator! +techonthenet.com .e72e4713 + artsy.net.ePrLqP( + euractiv.com.ea-gat-slot-wrapper + expats.cz.eas2 +nativenewsonline.net + +itwire.com.eb-init' +ablogtowatch.com.ebay-placement( +gfinityesports.com.ecommerceUnit! + newagebd.net .editorialMid + editpad.org.edsec  +theepochtimes.com.eet-ad + cryptorank.io.egJLJA- +clutchpoints.com.ehgtMe.sc-ed3f1eaf-1 + filmibeat.com.ele-ad& +sashares.co.za.elementor-486123 +cryptopolitan.com.elementor-element-094410a/ + hilltimes.com.elementor-element-5818a097 +analyticsindiamag.com.elementor-element-8e2d1f0/ + waamradio.com.elementor-element-f389212E +granitegrok.com..elementor-image > [data-wpel-link="external"]; +ringsidenews.com + optimyz.com.elementor-shortcodeA +canyoublockit.com(.elementor-widget-container > center > p8 +vedantbhoomi.com .elementor-widget-smartmag-codesK +radiotimes.com5.elementor-widget-wp-widget-section_full_width_advert) + azscore.com.email-popup-container +worldscreen.com.embdad) + +phys.org.embed-responsive-trendmd+ +autostraddle.com.end-of-article-ads) +endtimeheadlines.org .endti-widget/ +floridianpress.com.enhanced-text-widget$ + cathstan.org.enticement-linkM +upfivedown.com7.entry > hr.wp-block-separator + .has-text-align-center4 +malwarefox.com.entry-content > .gb-container( + kupondo.com.entry-content > .row> +nagpurtoday.in(.entry-content > div[style*="max-width"]P +huffingtonpost.co.uk + huffpost.com$.entry__right-rail-width-placeholder + euronews.com.enw-MPU3 +essentiallysports.com.es-ad-space-container + techspot.com.es3s' +marcadores247.com.es_top_banner + esports.net .esports-adL +alevelgeography.com + shtfplan.com + yournews.com.et_pb_code_inner‰ +navajotimes.com.etad + mothership.sg.events' + +evoke.ie.evoke_billboard_single' +appleinsider.com.exclusive-wrap + mashable.com.exco( + +nypost.com.exco-video__container% +executivegov.com .execu-target% +executivegov.com .execu-widget% +metric-conversions.org.exists& +gobankingrates.com .exit-intent2 +proprivacy.com.exit-popup.modal-background! +streamingmedia.com.expand3 +thejakartapost.com.expandable-bottom-sticky" + appuals.com.expu-protipeop' + appuals.com.expu-protipmiddle_2! +thepostemail.com .external" + pixabay.com.external-mediaI +charlieintel.com + dexerto.com".external\:bg-custom-ad-background" +yourbittorrent.com.extneed+ +navajotimes.com.extra-hp-skyscraper' +textcompare.org.ez-sidebar-wall% +futuregaming.io.ez-video-wrap# +wsj.com.ez6zued3.css-sw5cyu +wsj.com .ez6zued6/ + cgpress.org.ezlazyloaded.header-wrapper + chorus.fm.f-soc* + formula1.com.f1-dfp-banner-wrapper! +techonthenet.com .f16bdbce- +audiophilereview.com.f7e65-midcontent4 +audiophilereview.com.f7e65-sidebar-ad-widget + globimmo.net.fAdW +greenmatters.com.fBAwDM< +dictionary.com + thesaurus.com.fHACXxic9xvQeSNITiwH + datenna.com.fPHZZA  +btcmanager.com +.f_man_728 + infoq.com.f_spbox_top_1 + infoq.com.f_spbox_top_2 + freeads.co.uk .fa_box_m0 + evite.com.fabric-free-banner-ad__wrapper + tvtropes.org.fad, +slideshare.net.fallback-ad-container- + tokyvideo.com.fan--related-videos.fan, +channelnewsasia.com.fast-ads-wrapper + imgur.com .fast-grid-ad' +thepointsguy.com.favorite-cards" + +futbin.com.fb-ad-placement% +triangletribune.com +.fba_links* +newspointapp.com.fbgooogle-wrapper2 + +forbes.com .fbs-ad--mobile-medianet-wrapper2 + +forbes.com .fbs-ad--ntv-deskchannel-wrapper+ + +forbes.com.fbs-ad--ntv-home-wrapper0 +whatismyipaddress.com.fbx-player-wrapper* +businessinsider.in.fc_clmb_ad_mrec* + filmdaily.co.fd-article-sidebar-ad* + filmdaily.co.fd-article-top-banner0 + filmdaily.co.fd-home-sidebar-inline-rect( + foodbeast.com.fdbst-ad-placementT +riverfronttimes.com +metrotimes.com + citybeat.com.fdn-gpt-inline-contentZ +orlandoweekly.com + sacurrent.com + cltampa.com!.fdn-interstitial-slideshow-block‡ +browardpalmbeach.com +phoenixnewtimes.com +dallasobserver.com +miaminewtimes.com + westword.com.fdn-site-header-ad-block< +metrotimes.com + citybeat.com.fdn-teaser-row-gpt-adA +riverfronttimes.com + citybeat.com.fdn-teaser-row-teaser + w3techs.com.feat +convertcase.net.featurežD + +costco.com2.feature-carousel-container[data-rm-format-beacon]# +softarchive.is .feature-usnt& +mumbrella.com.au.featureBanner$ + eagle1065.com.featureRotator( + insidehpc.com.featured-728x90-ad$ + +news24.com.featured-category& +cnn.com.featured-product__card9 +apexcharts.com +ar12gaming.com.featured-sponsor* + eetimes.com.featured-techpaper-box; +thenationonlineng.net.featured__advert__desktop_res  + +motor1.com.featured__apb  +chess-results.com.fedAdv! + tvfanatic.com .feed_holder* +forum.lowyat.net.feedgrabbr_widget# +whosdatedwho.com .ff-adblock + gq.com.au.ffNDsR + +newser.com.fiavur2 + webmd.com.fifth-para-ad) + filecrypt.cc.filItheadbIockgueue39 + filecrypt.cc + filecrypt.co.filItheadbIockqueue3" +telugupeople.com +.fineprint8 +bestlifeonline.com +zeenews.india.com .first-ad + proprofs.com .firstadd# +thestranger.com .fish-butter& + fiskerati.com.fiskerati-target) +khaleejtimes.com.fix-billboard-nf# +khaleejtimes.com .fix-mpu-nf + +vice.com .fixed-slot6 +liverpoolecho.co.uk + dorset.live .fixed-slots& +star-history.com.fixed.right-0 + theblock.co +.fixedUnit- +cgdirector.com.fixed_ad_container_420 + 2conv.com .fixed_banner: +timesofindia.indiatimes.com.fixed_elements_on_page( + fixya.com.fixya_primis_container5 +whatismyipaddress.com.fl-module-wipa-concerns& +whatismyipaddress.com .fl-photo# + omniglot.com.flex-container# + libhunt.com.flex.mt-5.boxed) + +ice.hockey.flex_container_werbung/ +recipes.timesofindia.com.flipkartbanner8 + jestful.net + shareae.com + klto9.com .float-ck' + bdnews24.com.floating-ad-bottom' +chaseyoursport.com .floating-adv~ +clickondetroit.com +click2houston.com +clickorlando.com + news4jax.com + local10.com + +ksat.com.floatingWrapper  + thehindu.com .flooting-ad# +frankspeech.com .flyer-space& +golinuxcloud.com.flying-carpet? +momjunction.com +stylecraze.com.flying-carpet-wrapper, +emergencyemail.org +out.com.footerG +allthatsinteresting.com +scientificamerican.com.footer-banner +wst.tv .footer-logos + +game8.co.footer-overlay. +dhakatribune.com.footer-pop-up-ads-sec" + supercars.com .footer-promo( + coinpedia.org.footer-side-sticky% + wtatennis.com.footer-sponsors= +skidrowcodexreloaded.com + tbsnews.net.footer-sticky) +searchcommander.com.footer-widget + gelbooru.com +.footerAd2X +igamingcapital.mt +businessnow.mt + maltaceos.mt + +whoswho.mt.footer__second +pbs.org .footer__sub" + satbeams.com.footer_banner' +techopedia.com.footer_inner_adsÙ3 +realmadrid.com.footer_rm_sponsors_container+ +tiresandparts.net.footer_top_banner# + ocado.com.fops-item--advert4 + morrisons.com.fops-item--externalPlaceholder) + morrisons.com.fops-item--featuredF +nintendolife.com +pushsquare.com + purexbox.com .for-desktop? +pushsquare.com + purexbox.com.for-mobile.below-article% +flatpanelshd.com .forsideboks2( + letsrun.com.forum-page-right-bar$ + permies.com.forum-top-banner' +newsroom.co.nz.foundingpartners' +freepresskashmir.news +.fpkdonate$ +the-express.com .fr-container% + mathgames.com.frame-container$ + ranobes.top.free-support-top + looperman.com .freestar4 + +esports.gg".freestar-esports_between_articles3 + +esports.gg!.freestar-esports_leaderboard_atf( + upworthy.com.freestar-in-content$ +moviemistakes.com .freestarad: +sciencenews.org#.from-nature-index__wrapper___2E2Z9+ + 19thnews.org.front-page-ad-takeover1 +cryptocompare.com.front-page-info-wrapper. +slickdeals.net.frontpageGrid__bannerAd& +tripstodiscover.com .fs-dynamic- +tripstodiscover.com.fs-dynamic__label( + +j-14.com.fs-gallery__leaderboard$ + alphr.com.fs-pushdown-sticky# + +newser.com.fs-sticky-footer + +bossip.com .fsb-desktop + +bossip.com .fsb-toggle + +ghacks.net .ftd-item + +newser.com .fu4elsh1yd+ +livability.com.full-width-off-white$ + theblock.co.fullWidthDisplay8 +greatandhra.com!.full_width_home.border-topbottom  + +zoonek.com.fullwidth-ads+ +whatismybrowser.com.fun-info-footer% +whatismybrowser.com +.fun-inner +artscanvas.org.funders +ferrarichat.com.funzone, +savemyexams.co.uk.fuse-desktop-h-250# +savemyexams.co.uk +.fuse-h-90( +snowbrains.com.fuse-slot-dynamic+ + psypost.org.fuse-slot-mini-scroller' +stylecraze.com.fx-flying-carpet$ + fxstreet.com.fxs_leaderboard… +jacksonvillefreepress.com +newpittsburghcourier.com +richmondshiretoday.co.uk +virtualrealitieshub.com +illustrationmaster.com +animationmagazine.net +borneobulletin.com.bn +coralspringstalk.com +chicagodefender.com +defence-industry.eu +savannahtribune.com +talkradioeurope.com +womensagenda.com.au +blackvoicenews.com +businessofapps.com +marionmugshots.com +thegolfnewsnet.com +gatewaynews.co.za +marshallradio.net +mediaplaynews.com +postnewsgroup.com +aviacionline.com +brewmasterly.com +chimpreports.com +dailysport.co.uk +gayexpress.co.nz +islandecho.co.uk +dailynews.co.zw +dallasvoice.com +dieworkwear.com +businessday.ng +chargedevs.com +gadgetbuzz.net +moviemaker.com +utdmercury.com + aframnews.com + carstopia.net + sammobile.com + waamradio.com + coinweek.com + kbla1580.com + spaceref.com + webpokie.com + collive.com + gematsu.com + hamodia.com + talkers.com + +nondoc.com + +swling.com + draxe.com + +afro.com + +aurn.com.g + coinweek.com.g-389$ +dailyjournalonline.com.g-dyn + nytimes.com.g-paidJ +domainnamewire.com +goodthingsguy.com +douglasnow.com .g-single$ + yellowise.com.g-widget-block + titantv.com.gAd$ +theweathernetwork.com.gGthWi’ +bowenislandundercurrent.com +delta-optimist.com +coastreporter.net +richmond-news.com +squamishchief.com +tricitynews.com.ga-ext" +getgreenshot.org +.ga-ldrbrd# +getgreenshot.org .ga-skscrpr7 +html-code-generator.com +elevenforum.com.gads1 + eonline.com.gallery-rail-sticky-container + vicnews.com.gam + drive.com.au.gam-ad( +thechainsaw.com.gam-ad-container> +locksmithledger.com +waterworld.com.gam-slot-builder—# + komikindo.tv.gambar_pemanisB + cdromance.com-.game-container[style="grid-column: span 2;"]- + geoguessr.com.game-layout__in-game-ad( + chess.com.game-over-ad-component + pokernews.com +.gameCards( +monstertruckgames.org .gamecatbox" + yourstory.com .gap-\[10px\]6 +home-assistant-guide.com.gb-container-429fcb036 +home-assistant-guide.com.gb-container-5698cb9d6 +home-assistant-guide.com.gb-container-bbc771af% +amtraktrains.com .gb-sponsored_ +kitchenknifeforums.com +quadraphonicquad.com +homebrewtalk.com.gb-sponsored-wrapper# + gocomics.com.gc-deck--is-ad! + 1001games.com .gc-halfpage$ + 1001games.com.gc-leaderboard) + 1001games.com.gc-medium-rectangle' + gocomics.com.gc-top-advertising& +letsdopuzzles.com .gda-home-boxF +ftw.usatoday.com +kansascity.com + rotowire.com .gdcg-oplistw +retail-insight-network.com +railway-technology.com + just-food.com + verdict.co.uk.gdm-company-profile-unitp +retail-insight-network.com +railway-technology.com + just-food.com + verdict.co.uk.gdm-orange-banner4 +naval-technology.com.gdm-recommended-reports$ +gearpatrol.com.gearpatrol-ad. + geekflare.com.geekflare-core-resources" + autoblog.com.gemini-native! + +hltv.org.gen-firstcol-box) +thefederalist.com.general-callout$ + investing.com.generalOverlay% +perfectdailygrind.com.gengpdg) +perfectdailygrind.com .gengpdg-col, +perfectdailygrind.com.gengpdg-single( +romaniajournal.ro.geoc-container! + +geo-fs.com.geofs-adbanner  +livescores.biz +.get-bonus- +thingstodovalencia.com.get-your-guide# + getcomics.org.getco-content% + getcomics.org.getco-content_2$ + +flickr.com.getty-search-view$ + +flickr.com.getty-widget-view) +marketsfarm.com.gfm-ad-network-ad +law.cornell.edu.gfs: +ganjingworld.com".ggAdZone_gg-banner-ad_zone__wK3kF  + cometbird.com .gg_250x250I +cornish-times.co.uk +farnhamherald.com +iomtoday.co.im.ggzoWi + +ghacks.net +.ghacks-ad! + +ghacks.net.ghacks_ad_code + +mql5.com +.giyamx4tr + getcomics.org.gjqry# + wjunction.com.global-banner8 +researchgate.net .global-leaderboard-ad-container’ +stcatharinesstandard.ca +niagarafallsreview.ca +wellandtribune.ca + therecord.com + thespec.com + thestar.com.globalHeaderBillboard, +goodmenproject.com.gmp-instream-wrap( +militaryleak.com.gmr-floatbanner +givemesport.com.gms-ad/ +givemesport.com.gms-billboard-container& +givemesport.com.gms-sidebar-ad= +guides.gamepressure.com.go20-pl-guide-right-baner-fix  +coinmarketcap.com.goXFFkL +dallasinnovates.com +thecoastnews.com +watchesbysjx.com .gofollow + +golf.com.golf-ad& +golinuxcloud.com.golin-content, +golinuxcloud.com.golin-video-contentA +africanadvice.com +sudantribune.com + pspad.com.google+ + apkmirror.com.google-ad-leaderboardÙ6 +secretchicago.com.google-ad-manager-ads-header$ + safeway.com.google-adManager% +videocardz.com.google-sidebar# +manabadi.co.in .googleAdsdiv& + mediamass.net.googleresponsive- +css3generator.com.gotta-pay-the-bills) +spiceworks.com.gp-standard-header% +perfectdailygrind.com.gpdgeng +di.fm .gpt-slot< +travelsupermarket.com.gptAdUnit__Wrapper-sc-f3ta69-0 + kijiji.ca.gqNGFh" +beforeitsnews.com .gquuuu5a1 +searchenginereports.net.grammarly-overall + +balls.ie.gray-ad-titleB +greatandhra.com+.great_andhra_logo_panel > div.center-align7 +greatandhra.com .great_andhra_logo_panel_top_box1 +greatandhra.com.great_andhra_main_041022_: +greatandhra.com#.great_andhra_main_add_rotator_new28 +greatandhra.com!.great_andhra_main_local_rotator1 + mma-core.com.grec( +greekcitytimes.com.greek-adlabel. +greekcitytimes.com.greek-after-content +curioustic.com.grey  + rabble.ca.grey-cta-block, +topminecraftservers.org .grey-section& + +sltrib.com.grid-ad-container-2/ + +teleboy.ch.grid-col-content-leaderboard, + newsnow.co.uk.grid-column__container, + issuu.com.grid-layout__ad-by-details+ + issuu.com.grid-layout__ad-by-reader* + issuu.com.grid-layout__ad-in-shelf$ +groovypost.com.groov-adlabel + leetcode.com .group\/ads + issuu.com.grtzHH  +cnx-software.com.gsonoff! + gulftoday.ae .gt-ad-center' +gulf-times.com.gt-horizontal-ad+ +gulf-times.com.gt-square-desktop-ad% +gulf-times.com.gt-vertical-ad + giphy.com.guIlWP# +animenewsnetwork.com.gutter" +attheraces.com .gutter-left# +attheraces.com .gutter-right* +timesnownews.com.gutterAdContainer +thetimes.co.uk.gyLkkj& +worldpopulationreview.com.h-64 +tvcancelrenew.com.h-728 +thenewdaily.com.au +indaily.com.au .h-\[100px\]9 +nextchessmove.com .h-\[112px\].flex.justify-center5 +posemaniacs.com +indaily.com.au .h-\[250px\]) +freemalaysiatoday.com .h-\[260px\]" +emojipedia.org .h-\[282px\] +op.gg .h-\[287px\]& +businessinsider.in .h-\[300px\]" +emojipedia.org .h-\[312px\]' +canberratimes.com.au .h-\[50px\]" +lolalytics.com .h-\[600px\]' +supercarblondie.com .h-\[660px\]¥ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.ca +lolalytics.com +xe.com .h-\[90px\]0 +thenewdaily.com.au.h-home-ad-height-stop( + +buzzly.art.h-min.overflow-hidden* + +target.com.h-position-fixed-bottom$ +copyprogramming.com .h-screen +lyricsmode.com.h113Ö + +tetris.com .hAxContainer + opoyi.com.hLYYlN% +marketscreener.com .hPubRight2 +clutchpoints.com.hYrQwu— +imagecompressor.com +gifcompressor.com +mylocation.org +webptojpeg.com +wordtojpeg.com + heic2jpg.com + jpg2png.com + png2jpg.com.ha +anime-planet.com.halo + cyclonis.com .has-banner# +whistleout.com.au +.has-hoverE +defence-industry.eu*.has-small-font-size.has-text-align-center$ + apps.npr.org.has-sponsorship- + tomsguide.com.hawk-main-editorialised- + techradar.com.hawk-main-editorialized: + tomsguide.com%.hawk-master-widget-hawk-main-wrapper: +windowscentral.com .hawk-master-widget-hawk-wrapper9 + techradar.com$.hawk-merchant-link-widget-container + techradar.com +.hawk-nest) + linuxblog.io.hayden-inpost_bottom& + linuxblog.io.hayden-inpost_end& + linuxblog.io.hayden-inpost_top" + linuxblog.io.hayden-widget( + linuxblog.io.hayden-widget_top_10 +girlswithmuscle.com.hb-static-banner-div  +screenbinge.com .hb-strip' +girlswithmuscle.com .hb-video-ad  +cryptodaily.co.uk.hbs-ad +trendhunter.com.hcamp$ +webtoolhub.com.hdShade > div' +highdefdigest.com.hdd-square-ad# +biztechmagazine.com.hdr-btm( +analyticsinsight.net .head-banner + +plos.org .head-top% +hindustantimes.com .headBanner$ +realmadrid.com.head_sponsors, +lewrockwell.com.header [data-ad-loc]7 +ahajournals.org .header--advertisment__containerE +organicfacts.net +additudemag.com + vinepair.com +.header-ad# + boldsky.com.header-ad-block/ + olympics.com + +scmp.com.header-ad-slot] +waikatotimes.co.nz +thepress.co.nz + thepost.co.nz + stuff.co.nz.header-ads-block +worldpress.org .header-bÝ +freemalaysiatoday.com +runt-of-the-web.com +pointblanknews.com +radiotoday.com.au +techworldgeek.com +arcadepunks.com +landandfarm.com +warisboring.com +rxresource.org + adswikia.com.header-banner. +gamingdeputy.com.header-banner-desktop' + revolt.tv.header-banner-wrapper4 +mercurynews.com + +nssmag.com.header-bannersò +lawlessrepublic.com +stormininnorman.com +winteriscoming.net +amazonadviser.com +hiddenremote.com +mlsmultiplex.com +playingfor90.com +lastnighton.com +netflixlife.com +apptrigger.com + fansided.com.header-billboard# +lyricsmode.com .header-block' +historiccity.com.header-block-1! +worldpress.org .header-bnr! + kveller.com.header-bottom& +counterpunch.org.header-center* +thetoyinsider.com.header-drop-zone& + autental.com.header-grid-itemsN +realestate.com.au +theoldie.co.uk + allmovie.com.header-leaderboard3 +realestate.com.au.header-leaderboard-portal# +sdxcentral.com .header-lemur7 +nationalheraldindia.com.header-m__ad-top__36Hpg$ +thenewspaper.gr .header-promo + times.co.zm .header-pub5 +cnx-software.com +newtimes.co.rw .header-top+ +kollywoodtoday.net.header-top-right, +knowyourmeme.com.header-unit-wrapper( +maketecheasier.com.header-widget" +hd-trailers.net .header-win% +torquenews.com.header-wrapperŽ- +cointelegraph.com.header-zone__flower + gelbooru.com .headerAd% +dailytrust.com.header__advert" + thehits.co.nz .header__mainy +gifcompressor.com +webptojpeg.com +wordtojpeg.com + heic2jpg.com + jpg2png.com + png2jpg.com.header__right" + m.thewire.in.header_adcode( + manofmany.com.header_banner_wrap" +koreaherald.com .header_bnn' +techopedia.com.header_inner_ads  + steroid.com .header_right$ +everythingrf.com .headerblock, +semiconductor-today.com .headermiddle# +collegedunia.com .headerslot +darkreader.org.heading# +phonearena.com .heading-deal + autoplius.lt.headtop0 + 247wallst.com + cubdomain.com +.hello-bar. +onlinevideoconverter.pro.helper-widgetS +lincolnshireworld.com +nationalworld.com!.helper__AdContainer-sc-12ggaoi-0U +newcastleworld.com +farminglife.com(.helper__DesktopAdContainer-sc-12ggaoi-1; +samehadaku.email#.hentry.has-post-thumbnail > [href]" + igorslab.de.herald-sidebar- +provideocoalition.com.hero-promotions" + newsnow.co.uk .hero-wrapper2 +azuremagazine.com.hero__metadata-left-rail" + freeads.co.uk .hero_banner10 + hwcooling.net.heureka-affiliate-category+ + filecrypt.cc + filecrypt.co.hghspd/ + filecrypt.cc + filecrypt.co .hghspd + *) +daijiworld.com.hidden-xs > [href]" +miragenews.com .hide-in-mob9 +windowsreport.com +moneycontrol.com .hide-mobile% +gadgethacks.com.hide-on-empty> +business-standard.com +johncodeos.com.hide-on-mobile + simpasian.net.hideme# + coindesk.com.high-impact-ad8 +majorgeeks.com".highlight.content > center > fontl@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com.highlight_sponsored! + westword.com .hil28zhf1wyd! + 48hills.org.hills-adlabel% +highwayradio.com .hiway-widget +deccanherald.com.hizmZ" + +hola.com.hm-sticky-sidebar + +ndtv.com .hmpage_rhs! + seattlepi.com .hnpad-Flex1" + seattlepi.com .hnpad-Inline6 +radiocaroline.co.uk + wishesh.com .home-banner. + +manutd.com.home-content-panel__sponsor/ +pcgamingwiki.com.home-gamesplanet-promo' + freespoke.com.home-page-message, +merriam-webster.com.home-redesign-ad6 +israelnationalnews.com.home-subsections-banner* +christianpost.com.home-videoplayer7 +freepressjournal.in.homeMobileMiddleAdContainer) + newagebd.net.homeSlideRightSecTwo! +jagranjosh.com .homeSlider +pbs.org.home__logo-pond. +socialcounts.org.home_sticky-ad__Aa_yD' +bonginoreport.com.homepage-ad-25 +smallbusiness.co.uk.homepage-banner-container( + +invezz.com.homepage-beneath-hero) +interest.co.nz.homepage-billboard9 +gumtree.com.au#.homepage-gallery__mrec-placeholder( + globalrph.com.homepage-middle-adí* +designspiration.com.homepageBanner0 + homes.co.nz.homepageTopLeader__container, +artandeducation.net.homepage__banner( + coinpedia.org.homepage_banner_ad' + swimswam.com.homepage_block_ads, + coinpedia.org.homepage_sidebanner_ad, +hometheaterreview.com.homet-sidebars + +mensxp.com .hometop-ads$ + radiocity.in.horiozontal-addL + flvto.com.mx + +flv2mp3.by + 2conv.com + flvto.biz.horizontal-area( + getmyuni.com.horizontalRectangle& +nofilmschool.com.horizontal_ad, +ultimatespecs.com.horizontal_add_728 + +aarp.org +.hot-deals +makemytrip.com .hotDeals! +dailyrecord.co.uk.hotjobs  +comparitech.com .how_test +darkreader.org.hr! + +adweek.com.htl-ad-wrapper, +barstoolsports.com.htl-ad__container% + mtgrocks.com.htl-inarticle-ad* + nameberry.com.htlad-InContent_Flex, + nameberry.com.htlad-Leaderboard_Flex3 + splinter.com + +avclub.com.htlad-above_logo9 + splinter.com + +avclub.com.htlad-bottom_rectangle< +destructoid.com%.htlad-destructoidcom_leaderboard_atf9 + splinter.com + +avclub.com.htlad-middle_rectangle^ +pastemagazine.com + splinter.com + jezebel.com + +avclub.com.htlad-sidebar_rectangle4 +themarysue.com.htlad-themarysuecom_incontent6 + splinter.com + +avclub.com.htlad-top_rectangle# + +wtop.com.hubb-at-rad-header- + huddle.today.huddle-big-box-placement" + techspree.net .hustle-popup) +cryptoslate.com.hypelab-container +myabandonware.com.i528" +bleepingcomputer.com.ia_ad  +animenewsnetwork.com.iab + atptour.com .iab-wrapper( +iai.tv.iai-article--footer-image + luzmedia.co.iam-ad  +infobetting.com .ibBanner) +timesofindia.indiatimes.com.icNFc + +ice.hockey.ice_ner + +ice.hockey .ice_werbung +darkreader.org.icons8# +indianexpress.com +.ie-adsbox+ +indianexpress.com.ie-banner-wrapper+ +indianexpress.com.ie-int-campign-ad +fifetoday.co.uk.iehxDO+ +guides.gamepressure.com .if-no-baner + techmeme.com.ifsp +streetinsider.com.im-ad + coingape.com +.image-ads+ + instacart.com.image-banner-a-9l2sjs* + instacart.com.image-banner-a-ak0wn! +flicksmore.com .image_auto" +miragenews.com .img-450_250' +marketwatch.com.imonaid_context' +lifesitenews.com.important-info! +exchangerates.org.uk.imt4$ + carscoops.com.in-asd-content" + thecanary.co.in-content-ad, +thepostmillennial.com.in-content-top) +outlookindia.com.in-house-banner1à + letsrun.com .in-post-ad9 +businessinsider.com + insider.com.in-post-sticky! + faithpot.com .inarticle-ad# + crash.net.inarticle-wrapper# +lokmattimes.com .inarticleAd; +knowyourmeme.com#.incontent-leaderboard-unit-wrapper' +motherjones.com.incontent-promo& +truckinginfo.com.incontent02Ad" +scienceabc.com .incontentad" + brudirect.com .index-banner' +lgbtqnation.com.index-bottom-ad2 + +katv.com".index-module_adAfterContent__1cww/ +194.233.68.230.indositusxxi-floatbanner) +theinertia.com.inertia-ad-300x250) +theinertia.com.inertia-ad-300x270) +theinertia.com.inertia-ad-300x600' +theinertia.com.inertia-ad-label% +theinertia.com.inertia-ad-top! + inews.co.uk.inews__advert + inews.co.uk .inews__mpu! +motorcycle.com .infeed-ads +sevenforums.com.infeed1$ + +wepc.com.infin-wepc-channels6 + heatmap.news + theweek.com.infinite-containerC +mylocation.org-.info a[href^="https://go.expressvpn.com/c/"] + stocksnap.io .info-col +bab.la .info-panel/ +gameworldobserver.com.information-block3 +gameworldobserver.com.information-block-top0 +gameworldobserver.com.information-blocks7 +careerindia.com + oneindia.com.inhouse-content" + asheville.com .injected-ads0 +bestlifeonline.com + eatthis.com.inline' +manitobacooperator.ca +.inline--2 + +pexels.com .inline-ads0 + +forbes.com.inline-article-ed-placeholdero +swiftcurrentonline.com +discoverhumboldt.com +portageonline.com +cochranenow.com.inline-billboard  + dexerto.com .inline-block. +freebeacon.com.inline-campaign-wrapper" + stocksnap.io.inline-carbon3 + parkers.co.uk.inline-leaderboard-ad-wrapper- + sportsrec.com.inline-parent-container  + +forbes.com.inline__zephr4 +pockettactics.com + pcgamesn.com .inlinerail + nzbindex.com.innerE +technologynetworks.com'.inner_content_olp_on_site_landing_page + inquirer.com.inno-ad  + inquirer.com .inno-ad__ad& +donegaldaily.com.inpage_banner! + +heise.de.inread-cls-reduc + allradio.net.insWrapV +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com.insert\ +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com .insert-label" + +lithub.com.insert-post-ads! +canarymedia.com +.inset-x-0 + tvarticles.me.inside: +udaipurkiran.com".inside-right-sidebar .widget_text" + allmusic.com.insticator_ct# +darkreader.org .instinctools% + flixboss.com.instream-dynamic  +lol.ps.instream-video-adR +lookfantastic.com + dermstore.com(.integration-sponsored-ads-pdp-container' + coincarp.com.interact-mobileBox* +monochrome-watches.com .interscrollà6 +newsbusters.org + mrctv.org.intranet-mid-size4 +interactives.stuff.co.nz.intro_adside__in8il +fileplanet.com.invwb' + allnurses.com.ipsAreaBackground" +1tamilmv.click .ipsCarousel1 + briskoda.net.ipsData__item--advertisement; + uk420.com*.ipsLayout_container > div[align="center"]3 + allnurses.com + dcfcfans.uk.ipsSpacer_bothJ +1tamilblasters.com0.ipsWidget_inner.ipsPad.ipsType_richText > p > a# +freeiptvplayer.net .iptv_ads! +houstoniamag.com .is-cream + alibaba.com .is-creativeZ +bringmethenews.com +athlonsports.com +meidastouch.com +si.com.is-exco-player0 + pcworld.com.is-half-width.product-widget + estnn.com +.isDesktop$ +speedcheck.org.isg-container' +icon-icons.com.istock-container. +iconfinder.com.istockphoto-placeholder" + itdmusics.com .itdmu-widget\ +marketstreetunited.com +unitedsupermarkets.com +albertsonsmarket.com .item-citrusF +nintendolife.com +pushsquare.com + purexbox.com .item-insert  +explorecams.com .item-row& +cryptocompare.com .item-specialÑ +bowenislandundercurrent.com +princegeorgecitizen.com +piquenewsmagazine.com +alaskahighwaynews.ca +delta-optimist.com +coastreporter.net +moosejawtoday.com +richmond-news.com +squamishchief.com +griceconnect.com +newwestrecord.ca +tricitynews.com +burnabynow.com + +nsnews.com + +prpeak.com.item-sponsored% + +newegg.com.item-sponsored-box! +pocketgamer.com +.item-unit1 + presearch.com.items-center.bg-transparent+ +businesstoday.in.itgdAdsPlaceholder +slidehunter.com.itm-ads + itweb.co.za.itw-ad# + india.com.iwplhdbanner-wrap + kijiji.ca.jOwRwk +ticketmaster.com.jTNWic +ticketmaster.com.jUIMbR0 + jambase.com.jb-homev3-sense-sidebar-wrap" + techstory.in.jeg_blocklink + psypost.org .jeg_midbar + sabcnews.com .jeg_topbar +distractify.com.jhPEsL$ +romania-insider.com .job-item +dot.la .job-wrapper$ +marketingweek.com .jobs-lists# +johncodeos.com .johnc-widgete +maritimepropulsion.com +yachtingjournal.com +maritimejobs.com +marinelink.com +.jq-bannerY +readjujutsukaisen.com +demonslayermanga.com +readneverland.com.js-a-container) +ultimate-guitar.com.js-ab-regular& + buzzfeed.com.js-bfa-impression# +live94today.com .js-demo-avd2 + musescore.com.js-musescore-hb-728--wrapper$ + overtake.gg.js-notice.notice% +beermoneyforum.com .js-notices" + formula1.com.js-promo-item% + nicelocal.com.js-results-slot% +theguardian.com.js-top-banner! + extratv.com.js-track-link' + chewy.com.js-tracked-ad-productS +theinventory.com + theroot.com + +kotaku.com +qz.com.js_ad-sticky-footerD + theroot.com + +kotaku.com +qz.com.js_related-stories-inset + iobroker.net.jss125# +paycalculator.com.au.jss336 +calorieking.com.jss356* + iobroker.net + iobroker.pro.jss43# +paycalculator.com.au.jss546& +garticphone.com.jsx-2397783008¾# + autolist.com.jsx-2866408628& +garticphone.com.jsx-3256658636, +essentiallysports.com.jsx-4249843366) +conservativefiringline.com.jtpp53Y + +doodle.comG.jupiter-placement-header-module_jupiter-placement-header__label__caUpc6 +theartnewspaper.com.justify-center.flex.w-full' + aiscore.com.justify-center.w100/ +fastcompany.com.jw-floating-dismissible + anandtech.com .jw-reset + fortune.com.jzcxNo +mamieastuce.com.k39oyi +qz.com.k3mqd + +news12.com.kBEazG + ticketmaster.kOwduY, + easypet.com.kadence-conversion-inner! +plagiarismchecker.co.kaka + +piokok.com.kaksgon# +hellogiggles.com .karma_unit" + koreaboo.com.kba-container +standard.co.uk.kcdphh +tekno.kompas.com.kcm- + kdnuggets.com.kdnug-med-rectangle-ros + goldprice.org.kenbi4 +onlinelibrary.wiley.com.kevel-ad-placeholder& +physicsworld.com.key-suppliers( +trustedreviews.com.keystone-deal1 +trustedreviews.com.keystone-single-widget( +gamertweak.com.kfzyntmcd-caption& + overkill.wtf.kg-blockquote-alt9 +linuxhandbook.com + itsfoss.com.kg-bookmark-card! + +hltv.org.kgN8P9bvyb2EqDJR6 +thelibertydaily.com + toptenz.net .kgbwvoqfwag +koreaherald.com.kh_ad +koreaherald.com.khadv1) +khmertimeskh.com.khmer-content_28- +ytfreedownloader.com.kl-before-header + kiryuu.id.kln+ +wantedinafrica.com.kn-widget-banner% +karryon.com.au.ko-ads-wrapper$ + kvraudio.com.kvrblockdynamic+ + read.amazon.*.kw-ads-ftue-container  +businessinsider.com.l-ad2 + +tuko.co.ke + +legit.ng.l-adv-branding__top  +pdc.tv.l-featured-bottom +iphonelife.com .l-header  + globalnews.ca .l-headerAd, +wwe.com.l-hybrid-col-frame_rail-wrap# + aerotime.aero.l-side-banner + keybr.com .l6Z8JM3mch& +letssingit.com.lai_all_special) +letssingit.com.lai_desktop_header) +letssingit.com.lai_desktop_inline) + purewow.com.lander-interstital-ad) + +wzstats.gg.landscape-ad-container# + 3dprint.com.lap-block-items, + ptonline.com.large-horizontal-banner( +weatherpro.com.large-leaderboardB +thelincolnianonline.com +dispatchtribunal.com .large-show5 +fantasygames.nascar.com.larger-banner-wrapper. +golfworkoutprogram.com.lasso-container( +business-standard.com .latstadvbg" + laweekly.com.law_center_ad$ + +apkpac.com.layout-beyond-ads* +crn.com.layout-right > .ad-wrapperæ$k +mixonline.co.nz + hauraki.co.nz + thehits.co.nz + zmonline.com + flava.co.nz.layout__background& + racingtv.com.layout__promotion$ + mytempsms.com.layui-col-md12/ + flotrack.org.lazy-leaderboard-containerJ + benzinga.com6.lazyload-wrapper[style="min-height:170px;width:100%"] + iol.co.za.lbMtEmW +truesteamachievements.com +trueachievements.com +truetrophies.com +.lb_holder! + leetcode.com .lc-ads__241X + coincodex.com .ldb-top4 + soaphub.com.ldm_ad% +lethbridgenewsnow.com.lead-in + +versus.com .lead_top + sgcarmart.com .leadbadv$ +bleachernation.com +.leadboard +thepcguild.com.leader) + autoplius.lt.leader-board-wrapper + etonline.com .leader-inc( +mediaweek.com.au.leader-wrap-out+ +blaauwberg.net.leaderBoardContainer% + coveteur.com.leaderboar_promoà " + europeanpharmaceuticalreview.com +searchenginesuggestions.com +precisionvaccinations.com +playstationlifestyle.net +allthatsinteresting.com +roulettereactions.com +yoimaletyoufinish.com +drugtargetreview.com +explainthisimage.com +tutorialrepublic.com +passedoutphotos.com +ballstatedaily.com +broadcastnow.co.uk +chemistryworld.com +thefashionspot.com +autoaction.com.au +boardgamegeek.com +coolmathgames.com +gamesindustry.biz +iamdisappoint.com +moviemistakes.com +spoiledphotos.com +suffolknews.co.uk +tattoofailure.com +cantbeunseen.com +funnytipjars.com +imedicalapps.com +japanisweird.com +liveoutdoors.com +morefailat11.com +sparesomelol.com +straitstimes.com +chairmanlol.com +foodandwine.com +newsonjapan.com +objectiface.com +retail-week.com +stopdroplol.com +allrecipes.com +bdonline.co.uk +bravewords.com +comingsoon.net +gmanetwork.com +sportsvite.com +supersport.com +thestar.com.my + funnyexam.com + itnews.com.au + lifezette.com + milesplit.com + shinyshiny.tv + spokesman.com + agcanada.com + allmusic.com + foodista.com + gcaptain.com + rollcall.com + shitbrix.com + sportsnet.ca + thedriven.io + cattime.com + citynews.ca + diyfail.com + dogtime.com + edmunds.com + itnews.asia + macleans.ca + monocle.com + titantv.com + +crn.com.au + +legion.org + +nbl.com.au + +uproxx.com + +autos.ca + +nfcw.com + +where.ca +jta.org .leaderboard( + kijiji.ca.leaderboard-1322657443$ + edarabia.com.leaderboard-7286 +abcnews.go.com + edarabia.com.leaderboard-970" + +roblox.com.leaderboard-abp- + gothamist.com.leaderboard-ad-backdrop, + chess.com.leaderboard-atf-ad-wrapper, +howstuffworks.com.leaderboard-banner$ + poe.ninja.leaderboard-bottom, + chess.com.leaderboard-btf-ad-wrapper$ + mxdwn.com.leaderboard-bucket® +forum.audiogon.com +arabiaweather.com +gamesindustry.biz +atlasobscura.com +golfdigest.com + zerohedge.com + news957.com + +apnews.com.leaderboard-containerI +huffingtonpost.co.uk + huffpost.com.leaderboard-flex-placeholderQ +huffingtonpost.co.uk + huffpost.com%.leaderboard-flex-placeholder-desktop( + bluesnews.com.leaderboard-gutter0 + jobrapido.com.leaderboard-header-wrapper0 +manitobacooperator.ca.leaderboard-height+ +medpagetoday.com.leaderboard-region: +businessinsider.in .leaderboard-scrollable-btf-cont6 +businessinsider.in.leaderboard-scrollable-cont* +consequence.net.leaderboard-sticky! + poe.ninja.leaderboard-top„ +nowthisnews.com + cbssports.com + thrillist.com + popsugar.com + thedodo.com + +seeker.com + scout.com.leaderboard-wrap\ +wordfinder.yourdictionary.com +weatherpro.com + bloomberg.com.leaderboard-wrapper� +abc7chicago.com + abc7news.com + +abc7ny.com + abc11.com + abc13.com + abc30.com + +6abc.com + +abc7.com .leaderboard2& +save.ca.leaderboardMainWrapper) +cargurus.co.uk.leaderboardWrapper% +t3.com.leaderboard__container  + revolt.tv.leaderboard_ad) + lookbook.nu.leaderboard_container. +rottentomatoes.com.leaderboard_wrapper  + +gpfans.com.leaderboardbg* + ubergizmo.com.leaderboardcontainerh +theprospectordaily.com +dailyegyptian.com +northernstar.info + theorion.com.leaderboardwrap  + dnsleak.com .leak__submit" + ecaytrade.com .leatherboard$ +homehound.com.au .left-banner" +overthecap.com .left-fa-ads + zerohedge.com +.left-rail> +republicbroadcasting.org.left-sidebar-padder > #text-8# +gogetaroomie.com .left-space +10minutemail.net.leftXL2 +ultimatespecs.com.left_column_sky_scrapper  + livemint.com .leftblockAd²( +thehansindia.com.level-after-1-2  +websitedown.info.lftleft9 + esports.op.gg$.lg\:bg-gray-800.lg\:rounded.lg\:p-2% + axios.com.lg\:min-h-\[200px\]; +charlieintel.com + dexerto.com.lg\:min-h-\[290px\]' + gizmodo.com.lg\:min-h-\[300px\]# + mumsnet.com.lg\:w-billboard% + dailyo.in.lhsAdvertisement300' + latestly.com.lhs_adv_970x90_div% +gadgets360.com.lhs_top_banner( +nationthailand.com.light-box-ads, + royalroad.com.light.margin-bottom-20' +iheartradio.ca.lightbox-wrapper + +lilo.org.lilo-ad-result + getbukkit.org.limit + linuxize.com.linaff0 +architecturesideas.com.linkpub_right_imgE +worldtimeserver.com +babynamegenie.com + forless.com.links# +weatherpro.com .list-city-ad6 + apkmirror.com!.listWidget > .promotedAppListing) +nationalmemo.com.listicle--ad-tag" +spiceworks.com .listing-ads" + +mynbc5.com.listing-page-ad) +gosearchresults.com.listing-right: +privateproperty.co.za.listingResultPremiumCampaign) +researchgate.net.lite-page__above* +reviewparking.com.litespeed-loaded& + ottverse.com.livevideostack-ad +leftlion.co.uk.ll-ad! + +vice.com.lngtd-dynamic-rr" + dayspring.com .loading-mask + reverso.net .locd-rca% +torrentleech.org .login-banner$ +siberiantimes.com .logoBanner& + shacknews.com.lola-affirmation% + rpgsite.net.long-block-footer  +topservers.com +.long_wrap + netwerk24.com +.love2meet" +tigerdroppings.com.lowLead  + bikeroar.com .lower-panel  + +core77.com.lower_ad_wrap1 +greatbritishlife.co.uk.lp_track_vertical2$ +foodandwine.com .lrs__wrapper3 + lowes.com".lws_pdp_recommendations_southdeep + phpbb.com +.lynkorama3 + theverge.com.m-ad__btf_leaderboard_variable& + thestreet.com.m-balloon-header" +politifact.com .m-billboard3 +fashionista.com.m-fixedbottom-ad--container  +aol.com.m-gam__container +aol.com.m-healthgrades@ +bitcoinmagazine.com + thestreet.com.m-in-content-ad-row +techraptor.net.m-lg-70! +meidasnews.com .m-outbrain( +tech.hindustantimes.com .m-to-add" + thestreet.com .m-video-unit' +thegatewaypundit.com .m0z4dhxja2 + insideevs.com.m1-apb + +motor1.com .m1_largeMPU + poebuilds.net.m6lHKI + net-load.com .m7s-81.m7s' +hindustantimes.com .m_headBanner' +morningagclips.com .mac-ad-group= +macdailynews.com%.macdailynews-after-article-ad-holder� + antimusic.com.mad' +reset-scans.co.madara-ad-banner" + pride.com.magazine__banner( + imyfone.com.magicmic-banner-2024% +curseforge.com.maho-container +methodshop.com.mai-aec) + wccftech.com.main-background-wrap- + mathgames.com.main-banner-adContainer- + sporcle.com.main-content-unit-wrapper1 + +numuki.com.main-header-responsive-wrapper. + ggrecon.com.mainVenatusBannerContainer + +nordot.app .main__ad+ +gzeromedia.com.main__post-sponsored$ + azscore.com.make-a-bet__wrap& +livescores.biz.make-a-bet_wrap, +gfinityesports.com.manifold-takeover. +get.pixelexperience.org.mantine-arewlw4 +whatsgabycooking.com.manual-adthrive-sidebar. +linkvertise.com.margin-bottom-class-20 + color-hex.com .margin10* +theadvocate.com.marketing-breakout + +fandom.com .marketplace! +nintendolife.com .mastfoot1 +pushsquare.com +songlyrics.com .mastheadP +powerelectronicsnews.com +korinthostv.gr + +eetimes.eu.masthead-banner( + augustman.com.masthead-container! +cloudwards.net .max-mediumD +buzzheavier.com-.max-w-\[60rem\] > p.mt-5.text-center.text-lg  + +spin.com.max-w-\[970px\]' +mayoclinic.org.mayoad > .policy) + poe2db.tw.mb-1 > [href^="/s/tl3"] + racgp.org.au .mb-1.small + wccftech.com.mb-11 + coinlean.com.mb-3A + gamedev.net..mb-3.align-items-center.justify-content-start/ +urbandictionary.com.mb-4.justify-center$ +themoscowtimes.com +.mb-4.py-3" + techbone.net.mb-5.bg-light0 +yardbarker.com.mb_promo_responsive_right + firstpost.com.mblad + +news18.com.mc-ad9 +mastercomfig.com!.md-typeset[style^="background:"]$ + ctinsider.com.md\:block.y100# +bmj.com.md\:min-h-\[250px\]  + medibang.com .mdbnAdBlock* +online-translator.com .mddlAdvBlock3 +livejournal.com.mdspost-aside__item--banner +thestar.com.my.med-rec  + gamezone.com .med-rect-ph# + ghanaweb.com.med_rec_lg_min) +bleedingcool.com.med_rect_wrapper' +ipwatchdog.com.meda--sidebar-ad% +tasfia-tarbia.org .media-links/ +realestate.com.au.media-viewer__sidebar  + picuki.me.media-wrap-h12 + webmd.com .medianet-ctr. +stealthoptional.com.mediavine_blockAds8 +gfinityesports.com.mediavine_sidebar-atf_wrapper% + allmusic.com.medium-rectangle* + chess.com.medium-rectangle-ad-slot1 + chess.com .medium-rectangle-btf-ad-wrapper1 +weatherpro.com.medium-rectangle-wrapper-2" +ebaumsworld.com .mediumRect) + ubergizmo.com.mediumbox_containerÛ + allnurses.com.medrec* +compoundsemiconductor.net .mega-bar + kompass.com .megaBannerH +yourweather.co.uk +theweather.com +theweather.net .megabanner# +mentalmars.com .menta-target +2ip.me .menu_banner! +gadgetsnow.com .mercwapper) +audiokarma.org.message > center b + eawaz.com .metasliderJ +yourweather.co.uk +theweather.com +theweather.net .meteored-ads# + metro.co.uk.metro-discounts$ + metro.co.uk.metro-ow-modules" + moviefone.com .mf-incontent, +desmoinesregister.com.mfFsRn__mfFsRn# +moneycontrol.com .mf_radarad# +analyticsinsight.net.mfp-bg! + wethegeek.com .mfp-content& +analyticsinsight.net +.mfp-ready + earth911.com .mg-sidebar; +timesofindia.indiatimes.com.mgid_second_mrec_parentH +palestinechronicle.com +cryptoreporter.info.mh-header-widget-2& +citizen.digital.mid-article-ad + +hltv.org.mid-container + investing.com +.midHeader + newsday.com.midPg€ +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +chatnewstoday.ca +everythinggp.com +northeastnow.com +vernonmatters.ca +larongenow.com + cfjctoday.com + rdnewsnow.com + huskiefan.ca + sasknow.com + panow.com .midcontent3 + manofmany.com + scanwith.com.middle-banner- +tradetrucks.com.au.middle-banner-list( + ibtimes.co.uk.middle-leaderboard% +spectator.com.au .middle-promo + coincodex.com.middle7' + heatmap.news.middle_leaderboard" + fruitnet.com.midpageAdvert +golfdigest.com.midslot  +extremetech.com .min-h-24= +imagecolorpicker.com +copyprogramming.com +.min-h-250$ + gizmodo.com.min-h-\[1000px\]3 +thenewdaily.com.au +op.gg.min-h-\[100px\]7 +charlieintel.com + dexerto.com.min-h-\[114px\]! + axios.com.min-h-\[200px\]$ + blanktext.co.min-h-\[230px\]X + blanktext.co + finbold.com + gizmodo.com + radio.net +op.gg.min-h-\[250px\]U + radiome.*D.min-h-\[250px\].mx-auto.w-full.hidden.my-1.lg\:flex.center-children# + uwufufu.com.min-h-\[253px\]7 +charlieintel.com + dexerto.com.min-h-\[278px\]* +thenewdaily.com.au.min-h-\[280px\]J +republicworld.com1.min-h-\[290px\].flex.justify-center.items-center# + uwufufu.com.min-h-\[300px\] +op.gg.min-h-\[50px\] +op.gg.min-h-\[66px\]+ +businesstimes.com.sg.min-h-\[90px\]I +republicworld.com0.min-h-\[90px\].flex.justify-center.items-center0 +insiderintelligence.com.min-h-top-banner + stripes.com.min-h90 + letsrun.com .min-w-300pxG +motortrend.com +stocktwits.com + mumsnet.com.min-w-\[300px\]! +theland.com.au .min-w-mrec# +moviemeter.com .minheight250+ + phpbb.com.mini-panel:not(.sections)) + kitco.com.mining-banner-container + +ar15.com.minis& + 247sports.com.minutely-wrapper0 +revolutionsoccer.net.mls-o-adv-container! + +mmegi.bw.mmegi-web-banner™+  + inhabitat.com .mn-wrapper¥ +beaumontenterprise.com +houstonchronicle.com +stamfordadvocate.com +middletownpress.com +registercitizen.com +mysanantonio.com +expressnews.com +nhregister.com + ctinsider.com + lmtonline.com + newstimes.com + thehour.com + +ctpost.com + chron.com +mrt.com.mnh90px* +allrecipes.com.mntl-jwplayer-broadu +southernliving.com +foodandwine.com +eatingwell.com +realsimple.com +bhg.com.mntl-notification-banner# + thoughtco.com.mntl-outbrain" +procyclingstats.com.mob-ad  + putlockers.do .mobile-btn7 +birdwatchingdaily.com.mobile-incontent-ad-label) +businessplus.ie.mobile-mpu-widget/ + +forbes.com.mobile-sticky-ed-placeholder2 +wordreference.com.mobileAd_holderContainer! +pcmacstore.com .mobileHide$ +serverstoplist.com +.mobile_ad/ + tipranks.com.mobile_displaynone.flexccc) +thedailybeast.com.mobiledoc-sizer, +wordreference.com.mobiletopContainer5 +criminaljusticedegreehub.com.mobius-container) + +etxt.biz.mod-cabinet__sidebar-adv* + +etxt.biz.mod-cabinet__sidebar-info" +hot-dinners.com .mod-custom% +notateslaapp.com .mod-sponsors$ +snowmagazine.com .mod_banners& +lakeconews.com.mod_ijoomlazone +civilsdaily.com.modalE +breakingenergy.com + epicload.com + +shine.cn.modal-backdrop+ + cleaner.com.modal__intent-container$ +autoevolution.com .modeladmid0 +duckduckgo.com.module--carousel-products7 +duckduckgo.com!.module--carousel-toursactivities$ + finextra.com.module--sponsor + webmd.com .module-f-hs" + webmd.com.module-top-picks0 +fxsforexsrbijaforum.com.module_ahlaejaba" + dfir.training .moduleid-307" + dfir.training .moduleid-347" + dfir.training .moduleid-358C +beckershospitalreview.com".moduletable > .becker_doubleclick4 +dailymail.co.uk.mol-fe-vouchercodes-redesign$ + manofmany.com.mom-ads__inner# +tiresandparts.net +.mom-e3lan+ +monsoonjournal.com.mom-e3lanat-wrap$ + manofmany.com.mom-gpt__inner& + manofmany.com.mom-gpt__wrapper  + pc-builds.com .mon-holder' +mondoweiss.net.mondo-ads-widget: +consumerreports.org.monetate_selectorHTML_48e69fae( + +forbes.com.monito-widget-wrapper% + joindota.com.monkey-container( + +flickr.com.moola-search-div.main# +hindustantimes.com .moreFrom' + +immoweb.be.mortgage-bank-banner˜ +winteriscoming.net +mlsmultiplex.com +playingfor90.com +lastnighton.com +netflixlife.com +apptrigger.com + fansided.com.mosaic-banner, +radioyacht.com.mpc-carousel__wrapperˆ# +!newburyandthatchamchronicle.co.uk +readinternationalfootball.com +wiltshirebusinessonline.co.uk +redhillandreigatelife.co.uk +entertainmentdaily.co.uk +forzaitalianfootball.com +readamericanfootball.com +readnottinghamforest.com +warringtonguardian.co.uk +dumbartonreporter.co.uk +eastlothiancourier.com +readingchronicle.co.uk +strathallantimes.co.uk +pressandjournal.co.uk +readcrystalpalace.com +readmiddlesbrough.com +southwestfarmer.co.uk +windsorobserver.co.uk +dunfermlinepress.com +readchampionship.com +readhuddersfield.com +rochdaleonline.co.uk +sloughobserver.co.uk +bordertelegraph.com +readbournemouth.com +readhorseracing.com +readliverpoolfc.com +readsouthampton.com +airqualitynews.com +directory247.co.uk +readastonvilla.com +readbasketball.com +readbundesliga.com +readmotorsport.com +readrugbyunion.com +readsunderland.com +cultofandroid.com +durhamtimes.co.uk +gamesindustry.biz +readeverything.co +readleicester.com +readnewcastle.com +readtottenham.com +realradioxs.co.uk +smartertravel.com +spinsouthwest.com +thevillager.co.uk +barrheadnews.com +econsultancy.com +kentonline.co.uk +metoffice.gov.uk +newscientist.com +physicsworld.com +readbrighton.com +readolympics.com +readussoccer.com +readwestbrom.com +sportsmole.co.uk +thisisfutbol.com +audioreview.com +findanyfilm.com +readarsenal.com +readbetting.com +readburnley.com +readchelsea.com +readcricket.com +readeverton.com +readfootball.co +readmancity.com +readnorwich.com +readrangers.com +readswansea.com +readwatford.com +readwestham.com +musicradio.com +readboxing.com +readceltic.com +readfashion.co +readlaliga.com +readmanutd.com +readseriea.com +readshowbiz.co +sundaypost.com +videocelts.com + eurogamer.net + readgaming.co + readstoke.com + readtennis.co + toffeeweb.com + directory.im + herfamily.ie + readgolf.com + readhull.com + readmusic.co + readsport.co + spin1038.com + sportsjoe.ie + bobfm.co.uk + readcars.co + readfilm.co + readfood.co + readmma.com + readtech.co + readwsl.com + +dcsuk.info + +readpl.com + +uktv.co.uk + dplay.com + joe.co.uk + readtv.co + +98fm.com + +tcmuk.tv +her.ie +joe.ie +rte.ie.mpu + news.sky.com.mpu-1 + edarabia.com.mpu-300$ +physicsworld.com .mpu-300x250" +arabiaweather.com .mpu-card( +dailymail.co.uk.mpu_puff_wrapper) + mapquest.com.mq-bizLocs-container9 +mapquest.co.uk + mapquest.com.mqBizLocsContainer + nysun.com .mr-\[-50vw\] +runt-of-the-web.com +thewest.com.au +topgear.com.ph + 10play.com.au + jozifm.co.za + nwherald.com +geo.tv.mrec7# +!auto.economictimes.indiatimes.com.mrec-ads-slotæ +gmanetwork.com.mrect +motorsport.com.ms-ap + autosport.com.ms-apb" +motorsport.com .ms-apb-dmpu/ +motorsport.com + autosport.com.ms-hapb0 + autosport.com.ms-side-items--with-banner# +codeproject.com .msg-300x250' +cryptoticker.io.mso-cls-wrapper) +marinetraffic.com.mt-desktop-mode# +textcompare.org .mui-19wbou7* + +forbes.com.multi-featured-products, +myinstants.com.multiaspect-banner-ad! +spy.com.multiple-products% + zerolives.com.munder-fn5udnsn9 +cutecoloringpagesforkids.com.mv-trellis-feed-unit4 +cannabishealthnews.co.uk.mvp-side-widget img) +marijuanamoment.net.mvp-widget-ad +malwaretips.com.mwt_ads/ +reviewparking.com + +invezz.com.mx-auto) +smallseotools.com.mx-auto.d-block  +theawesomer.com .mxyptext0 + +decrypt.co.my-10.xl\:flex.justify-center  +standardmedia.co.ke.my-2ê + radio.net + +radio.at + +radio.de + +radio.dk + +radio.es + +radio.fr + +radio.it + +radio.pl + +radio.pt + +radio.sem.my-\[5px\].mx-auto.w-full.hidden.md\:flex.md\:min-h-\[90px\].lg\:min-h-\[250px\].items-center.justify-center4 +healthline.com + +cnet.com.myFinance-ad-unit9 +psychcentral.com + greatist.com.myFinance-widget= +tastesbetterfromscratch.com.mysticky-welcomebar-fixed4 + troypoint.com.mysticky-welcomebar-fixed-wrap. +koreaherald.com.mythiell-mid-container' +exportfromnigeria.info .mytopads" +mypunepulse.com .n2-padding% +hoteldesigns.net .n2-ss-slider* +news24online.com.n24_ads_div_title# +naturalblaze.com .n553lfzn75 +mail.google.com.nH.PS' +cryptobriefing.com .na-item.item' +nanoreview.net.nad_only_desktop" + nextdoor.com.nas-container@ + +jayski.com + +nascar.com + +imsa.com.nascar-ad-container + zerohedge.com.native* +old.reddit.com.native-ad-container* +allthatsinteresting.com .native-box& +blockchair.com.native-sentence& +phillyvoice.com.native-sponsor$ +tekno.kompas.com .native-wrap8 + +ranker.com&.nativeAdSlot_nativeAdContainer__NzSO_$ + +seura.fi.nativead:not(.list)( + +vice.com.nav-bar__article-spacer' +majorgeeks.com.navigation-light) +notebookcheck.net.nbc-right-float + +vocm.com +.nccBigBox5 +aceshowbiz.com + cmr24.net.ne-banner-layout1* +meilleurpronostic.fr.ne4u07a96r5c3! +danpatrick.com .needsclick  + +newegg.com.negspa-brands4 +horriblevideos.com.netloop-ad-banner-300-250- +nevadamagazine.com.nevad-article-tall" +chaseyoursport.com.new-adv) +play.typeracer.com.newNorthWidget( + pcgamesn.com.new_affiliate_embed + firstpost.com.newadd. + farminguk.com.news-advert-button-click- +hurriyetdailynews.com.news-detail-adv* + sammobile.com.news-for-you-wrapper¡ + myflixer.to .news-iframe( +blabbermouth.net.news-single-ads, +dailysocial.id.news__detail-ads-subs& +newskarnataka.com .newsk-target, +worldcrunch.com.newspack-placeholder1 +washingtoninformer.com.newspack_global_ad + firstpost.com +.newtopadd! + moddb.com.nextmediaboxtop* +nhl.com.nhl-c-editorial-list__mrec% +nhl.com.nhl-l-section-bg__adv + hulkshare.com +.nhsBotBan + afterdawn.com.ni_box1 +bizasialive.com.nipl-sticky-footer-banner* +bizasialive.com.nipl-top-sony-banr. +bizasialive.com.nipl_add_banners_inner + +tumblr.com.njwip4 + quipmag.com!.nlg-sidebar-inner > .widget_text! + newsmax.com.nmsponsorlink+ + newsmax.com.nmsponsorlink + [class]+ + pcgamesn.com.nn_mobile_mpu2_wrapper* + pcgamesn.com.nn_mobile_mpu_wrapperW +truesteamachievements.com +trueachievements.com +truetrophies.com +.nn_player- +publishedreporter.com.no-bg-box-model4 +shinigami09.com.no-gaps.page-break > a[href]) +sloanreview.mit.edu.no-mobile--ad$ +hindustantimes.com +.noAdLabel$ +ferrarichat.com .node_sponsor- +greyhound-data.com.non-sticky-publift + unogs.com +.nordvpnAd# +miniwebtool.com .normalvideo% + chipchick.com.noskim.ntv-moap* + 4dayweek.io.notadvert-tile-wrapper' +cookingforengineers.com.nothing% +moodiedavittreport.com.notice + +mlsbd.shop .notice-board  + +cityam.com.notice-headerJ +businessgreen.com +computing.co.uk.notice-slot-full-below-header + torrends.to .notice-top + +all3dp.com .notification +mondoweiss.net.notrack% +bleepingcomputer.com .noty_bar( +pcgamebenchmark.com .nova_wrapper  + nextpit.com .np-top-dealsW +unblock-it.com + dirproxy.com + theproxy.lol + uproxy2.biz.nrd-general-d-box +designtaxi.com.nt$ +nowtoronto.com.nt-ad-wrapper& +designtaxi.com.nt-displayboard' +newtimes.co.rw.nt-horizontal-ad% +newtimes.co.rw.nt-vertical-ad' + english.nv.ua.nts-video-wrapper + +forbes.com .ntv-loadingD +marinetechnologynews.com +marineelectronics.com .nwm-banner@ +trendexposed.com +wackojacko.com + kueez.com .nya-slot" + +nypost.com.nyp-s2n-wrapper$ + decider.com.nyp-video-player& +golfdigest.com.o-ArticleRecirc* + france24.com.o-ad-container__label% +drivencarguide.co.nz .o-adunit4 +lawandcrime.com + mediaite.com .o-promo-unit + afkgaming.com.o-yqC +deccanherald.com.oPxJA" +webnovelworld.org .oQryfqWK& + sentres.com.oax_ad_leaderboard, + +comiko.net.ob-widget-items-containeró$ + +tennis.com.oc-c-article__adv= +officedepot.com&.od-search-criteo-banner-ads__siderailF +officedepot.com/.od-search-criteo-banner-ads__upper-leaderboardC +officedepot.com,.od-search-piq-banner-ads__lower-leaderboard + gizmodo.com .od-wrapper" +livescores.biz .odds-market. +worldsoccertalk.com.odds-slider-widget + kijiji.ca.ofGHbE +gault-millau.nl +gaultmillau.be +gaultmillau.lu +.off-brand9 +guelphmercury.com .offcanvas-inner > .tncms-region + softexia.com.offer! + oneindia.com .oi-add-block& + oneindia.com.oi-recom-art-wrap  + oneindia.com .oi-spons-adƒ +nativeplanet.com +drivespark.com +goodreturns.in + oneindia.com + boldsky.com + +gizbot.com + +mykhel.com .oi-wrapper1| +nativeplanet.com +drivespark.com +goodreturns.in + oneindia.com + boldsky.com + +gizbot.com + +mykhel.com.oiad + +gizbot.com.oiadv" + hamodia.com.oiomainlisting  +blockchair.com +.okane-top +thehackernews.com.okfix) +forums.somethingawful.com.oma_pal7 + etonline.com#.omni-skybox-plus-stick-placeholder + oneindia.com.one-ad. +magnoliastatelive.com.one_by_one_group + techspot.com.onejob + +decrypt.co .opacity-75% +lowtoxlife.com.openpay-footer& + huffpost.com.openweb-container) +politicalsignal.com.os9x6hrd9qngz& +indianexpress.com .osv-ad-class# + ecowatch.com.ot-vscat-C0004* +thedigitalfix.com.ot-widget-banner) +otakuusamagazine.com .otaku_big_ad8 +dictionary.com + thesaurus.com.otd-item__bottom + mma-core.com .outVidAd# + +egmnow.com.outbrain-wrapper* +businesstoday.in.outer-add-section$ + salon.com.outer_ad_container5 +pricespy.co.nz +pricespy.co.uk .outsider-adsD +valorant.op.gg..overflow-hidden.rounded.bg-darkpurple-800.p-23 + aminoapps.com.overflow-scroll-sidebar > div& + shtfplan.com.overlay-container + isidewith.com +.overlayBG$ + isidewith.com.overlayContent) +sports.ndtv.com.overlay__side-nav# + operawire.com.ow-archive-ad! +golfweather.com +.ox300x250 + afkgaming.com.ozw5N' +breakingnews.ie.p-2.bg-gray-100) + +annodz.com.p-banner-wrapper.first) +beermoneyforum.com.p-body-sidebar" +whatitismyip.net +.p-hza6800$ + +annodz.com.p-sidebar-wrapper* +phonearena.com.pa-sticky-container5 +islamicfinder.org.pad-xs.box.columns.large-12+ +republicworld.com.pad3010.txtcenter" + topsmerch.com .padding-50px+ + topsmerch.com.padding-top-20px.br-tC +republicworld.com*.padtop10.padright10.padleft10.minheight908 +republicworld.com.padtop20.txtcenter.minheight90# +realtytoday.com .page-bottom9 + +scmp.com).page-container__left-native-ad-container) + bitdegree.org.page-coupon-landing" +iheartradio.ca .page-footer¬8 +technobuffalo.com +carsales.com.au .page-header# +realtytoday.com .page-middle' +boxing-social.com.page-takeover + seeklogo.com +.pageAdsWpG + +krcrtv.com + +wcti12.com + +ktxs.com + +wcyb.com.pageHeaderRow1 + military.com +.page__top- +rateyourmusic.com.page_creative_frame0 +trustedreviews.com.page_header_container! +mynorthwest.com +.pagebreak( +canadianlisted.com.pageclwideadv& +gadgets360.com.pagepusheradATF  +calculatorsoup.com.pages+ + topic.com.pages-Article-adContainer( +livejournal.com.pagewide-wrapper" +departures.com .paid-banner+ +thelibertydaily.com.paid-subscriber1 +timesofindia.indiatimes.com.paisa-wrapperJ + onetvasia.com + axn-asia.com%.pane-dart-dart-tag-300x250-rectangle# +insidehighered.com .pane-dfp) +thebarentsobserver.com .pane-title5 +comedycentral.com.au.pane-vimn-coda-gpt-panes= +wunderground.com%.pane-wu-fullscreenweather-ad-box-atf( +khmertimeskh.com.panel-grid-cell  +panarmenian.net .panner_2ü +everythinglifestyle.ca +fraservalleytoday.ca +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +chatnewstoday.ca +everythinggp.com +northeastnow.com +vernonmatters.ca +farmnewsnow.com +larongenow.com + cfjctoday.com + rdnewsnow.com + ckpgtoday.ca + huskiefan.ca + rocketfan.ca + royalsfan.ca + sasknow.com + panow.com.parallax-breakout# + +pons.com.parallax-container' +squaremile.com.parallax-wrapper> +myfigurecollection.net +prolificnotion.co.uk.partner* +bottradionetwork.com.partner-block +hbr.org.partner-center" + +mail.com.partner-container8 +globalwaterintel.com + +mavin.io.partner-content5 +globalwaterintel.com.partner-content-carousel +nrl.com.partner-groups) + dzone.com.partner-resources-block$ + nationtalk.ca.partner-slides + cross.bet .partnerLink* +sparknotes.com.partner__pw__header, +artasiapacific.com.partner_container9 +ordertracker.com +motachashma.com.partnerbanner! +bundesliga.com .partnerbar, +freshnewgames.com.partnercontent_box% +investopedia.com .partnerlinksE +travelweekly.com +2oceansvibe.com + speedcafe.com .partners: +letsgodigital.org +letsgomobile.org .partners-bar +cbn.com.partners-block/ +practicalecommerce.com.partners-sidebar( + advocate.com.partners__container) +arrivealive.co.za.partnersheading + liveuamap.com.passby +writerscafe.org.pay% + nhentai.com.pb-0.w-100[style], + comick.io.pb-10.pt-2 > .text-xs.py-2% + newkerala.com.pb-2 .text-mute" +dermatologytimes.com.pb-24N +royalsocietypublishing.org +ahajournals.org +tandfonline.com.pb-ad, + wweek.com.pb-f-phanzu-phanzu-ad-code~ +playstationlifestyle.net +thefashionspot.com +liveoutdoors.com + cattime.com + dogtime.com.pb-in-article-content# + playbuzz.com.pb-site-player( +washingtonpost.com.pb-sm.pt-sm.b% +publicbooks.org.pb_ads_widget* +allthatsinteresting.com .pbh_inline  +recipesandcooker.com.pbl + zonatmo.com.pbmÒ% +caixinglobal.com .pc-ad-left01! +serverstoplist.com.pcOnlyw + lazada.com.my + lazada.com.ph + lazada.co.id + lazada.co.th + lazada.sg + lazada.vn.pdp-block__product-ads0 +thefintechtimes.com.penci-widget-sidebar# + dailynews.lk.penci_topblock! + +bestbuy.ca.pencilAd_EE9DVO +thegatewaypundit.com +westernjournal.com +wnd.com.persistent-footer  + apkmb.com.personalizadas + proxfree.com .pflrgAds1 +post-gazette.com.pg-mobile-adhesionbanner$ +fontsquirrel.com .pgAdWrapper8 +post-gazette.com .pgevoke-flexbanner-innerwrapper8 +post-gazette.com .pgevoke-superpromo-innerwrapper4 +online.pubhtml5.com.ph5---banner---container" +timesofindia.com +.phShimmer/ +drivespark.com + +gizbot.com .photos-add% +drivespark.com.photos-left-ad + cryptorank.io.piRla2 +washingtontimes.com.piano-end-article-reco1 +washingtontimes.com.piano-in-article-reco1 +washingtontimes.com.piano-right-rail-reco8 +washingtontimes.com.piano-right-rail-reco-bottom + reelviews.net +.picHolder + locklab.com.picwrap> + yopmail.com + yopmail.net + +yopmail.fr.pindexhautctn' + 9animetv.to + +hianime.to.pizza9 +pricespy.co.nz +pricespy.co.uk.pjra-w-\[970px\]! + carsized.com .pl_header_ad# + redgifs.com.placard-wrapperU +nofilmschool.com + protothema.gr + gismeteo.com + meteofor.com .placeholder9 +bestlifeonline.com +good.is.placeholder-a-block' + bucksco.today.placeholder-block* +theoldie.co.uk.placeholder-wrapper) +sundayworld.co.za.placeholderPlugK +pcgamebenchmark.com +streetcheck.co.uk + soccerway.com +.placement! +pch.com.placement-content8 +windinmyface.com + diglloyd.com.placementInline4 +windinmyface.com + diglloyd.com .placementTL4 +windinmyface.com + diglloyd.com .placementTR + hagerty.com .placements( +plagiarismtoday.com .plagi-widget + +trakt.tv .playwire + advfn.com.plus500' +thepinknews.com.pn-ad-container +freewebarcade.com.pnum- +radiotoday.co.uk.pnvqryahwk-container1 +wellandtribune.ca + thespec.com .polarAdse +insideottawavalley.com +bramptonguardian.com +guelphmercury.com + thestar.com .polarBlock: +autoexpress.co.uk!.polaris__below-header-ad-wrapperS +autoexpress.co.uk +carbuyer.co.uk + evo.co.uk.polaris__partnership-block/ + bigissue.com.polaris__simple-grid--full" + epmonthly.com .polis-target8 +compoundsemiconductor.net.popular__section-newsx +itc.ua .popup-bottom" + wethegeek.com .popup-dialog" +welovemanga.one .popup-wrap‚ +lethbridgenewsnow.com +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +everythinggp.com +northeastnow.com +vernonmatters.ca +larongenow.com + cfjctoday.com + rdnewsnow.com + huskiefan.ca + sasknow.com + panow.com.pos-top( +buffstreams.sx.position-absolute( +charlieintel.com.position-sticky  + +wtop.com.post--sponsored$ + engadget.com.post-article-ad5 +samehadaku.email.post-body.site-main > [href]* + kiplinger.com.post-gallery-item-ad$ + +dmarge.com.post-infinite-ads—# + hackread.com.post-review-li3 +hellocare.com.au.post-wrapper__portrait-ads' + newagebd.net.postPageRightInTop) + newagebd.net.postPageRightInTopIn& + +thetrek.co.post__in-content-ad' +fastcompany.com.post__promotion, +bleedingcool.com.post_content_spacer% +ultrabookreview.com +.postzzif3# + redketchup.io.potato_sticky# + redketchup.io.potato_viewerO +apartmenttherapy.com +cubbyathome.com + thekitchn.com.pov_recirc__ad0 +power987.co.za.power-leader-board-center + thetowner.com.powered# +thecoinrise.com .pp_ad_block& +theportugalnews.com .ppp-banner, +theportugalnews.com.ppp-inner-banner + oneesports.gg.pr-sm-4) +hindustantimes.com.pramotedWidget) +protrumpnews.com.pre-announcementn +birdsandblooms.com +familyhandyman.com +tasteofhome.com +thehealthy.com +rd.com.pre-article-ad# +foxbusiness.com .pre-content, + vinepair.com.pre-footer-ad-container+ +breakingdefense.com.pre-footer-menu) +sassymamahk.com.pre_header_widget" +livescores.biz .predict_bet +vivo.sx.preload% +anfieldwatch.co.uk .prem-gifts/ +premiumtimesng.com.premi-texem-campaign +flatpickerhangout.com +fiddlehangout.com +banjohangout.org +mandohangout.com +resohangout.com.premiere-sponsors0 + sulekha.com.premium-banner-advertisement" + pixabay.com.present-g-item* +bangpremier.com.presentation-space2 +bangpremier.com.presentation-space-m-panel& + flobzoo.com.preview2bannerspot* + +manutd.com.primary-header-sponsors( +tech.hindustantimes.com .primeDay" + advfn.com.primis-container3 + astrology.com.primis-video-module-horoscope> +rockpapershotgun.com +dicebreaker.com.primis_wrapper& +bostonagentmagazine.com.prm1_w + infoq.com.prmsp + +setlist.fm .prmtnMbanner + +setlist.fm .prmtnTop- +computerweekly.com.pro-downloads-home% +prosettings.net.pro-placement" + kompass.com.prodListBanner' + +ecosia.org.product-ads-carousel" +g2.com.product-head__leads= +cnn.com..product-offer-card-container_related-products0 + skinstore.com.productSponsoredAdsWrapper* +letsgodigital.org.product__wrapper" + nymag.com.products-package) + nymag.com.products-package_single1 + kohls.com .products_grid.sponsored-productT +kitchenknifeforums.com +amtraktrains.com +homebrewtalk.com.productslider3 + filehippo.com.program-actions-header__promo/ + filehippo.com.program-description__slot$ + gokunming.com +as.com.prom4 +delicious.com.au + taste.com.au .prom-headerî +planetsourcecode.com +babynamegenie.com +themuslimvibe.com +comparitech.com +overclock3d.net +nbcbayarea.com + ecaytrade.com + totalxbox.com + nwherald.com + sciagaj.org + varsity.com + w3techs.com +wgxa.tv.promo: +thesaturdaypaper.com.au + +setapp.com .promo-banner + +winscp.net .promo-blocku +forums.minecraftforge.net +staradvertiser.com + nextdoor.com + uploadvr.com + +centris.ca.promo-container& +texasmonthly.com.promo-in-bodyŒ.? +federalnewsnetwork.com +texasmonthly.com .promo-inline + +spin.com .promo-lead& + coveteur.com.promo-placeholder% + ecaytrade.com.promo-processed% +texasmonthly.com .promo-topper4 +lawandcrime.com +themarysue.com .promo-unit" + comedy.co.uk.promo-wrapper( +texasmonthly.com.promo__vertical! + uxmatters.com .promo_block  +reviversoft.com .promo_dr + macworld.com .promo_wrap + +core77.com .promo_zone# + +fool.com.promobox-container* +thedailydigest.com.promocion_celdaw +search.installmac.com +designspiration.com +propertyguru.com.sg +canstar.com.au + investors.com .promoted- + twitter.com +x.com.promoted-accountÄ& +$burnhamandhighbridgeweeklynews.co.uk% +#harwichandmanningtreestandard.co.uk# +!prestwichandwhitefieldguide.co.uk" + darlingtonandstocktontimes.co.uk" + richmondandtwickenhamtimes.co.uk! +chesterlestreetadvertiser.co.uk +clactonandfrintongazette.co.uk +maldonandburnhamstandard.co.uk +braintreeandwithamtimes.co.uk +thetottenhamindependent.co.uk +chardandilminsternews.co.uk +redhillandreigatelife.co.uk +runcornandwidnesworld.co.uk +somersetcountygazette.co.uk +thewestmorlandgazette.co.uk +barryanddistrictnews.co.uk +bromsgroveadvertiser.co.uk +chelmsfordweeklynews.co.uk +eppingforestguardian.co.uk +kidderminstershuttle.co.uk +thetelegraphandargus.co.uk +thisisthewestcountry.co.uk +droitwichadvertiser.co.uk +lancashiretelegraph.co.uk +messengernewspapers.co.uk +basingstokegazette.co.uk +enfieldindependent.co.uk +hampshirechronicle.co.uk +redditchadvertiser.co.uk +southwalesguardian.co.uk +wandsworthguardian.co.uk +warringtonguardian.co.uk +wharfedaleobserver.co.uk +andoveradvertiser.co.uk +bridgwatermercury.co.uk +knutsfordguardian.co.uk +northwichguardian.co.uk +swindonadvertiser.co.uk +thescottishfarmer.co.uk +wiltsglosstandard.co.uk +wimbledonguardian.co.uk +yourlocalguardian.co.uk +basildonstandard.co.uk +bicesteradvertiser.net +borehamwoodtimes.co.uk +ludlowadvertiser.co.uk +romseyadvertiser.co.uk +salisburyjournal.co.uk +southendstandard.co.uk +westerntelegraph.co.uk +bournemouthecho.co.uk +cotswoldjournal.co.uk +freepressseries.co.uk +guardian-series.co.uk +halsteadgazette.co.uk +hillingdontimes.co.uk +ledburyreporter.co.uk +southwalesargus.co.uk +southwestfarmer.co.uk +stourbridgenews.co.uk +tewkesburyadmag.co.uk +thenorthernecho.co.uk +thurrockgazette.co.uk +watfordobserver.co.uk +bucksfreepress.co.uk +campaignseries.co.uk +chorleycitizen.co.uk +eveshamjournal.co.uk +falmouthpacket.co.uk +malverngazette.co.uk +milfordmercury.co.uk +stalbansreview.co.uk +suttonguardian.co.uk +wiltshiretimes.co.uk +brentwoodlive.co.uk +creweguardian.co.uk +gazetteherald.co.uk +gazetteseries.co.uk +halesowennews.co.uk +ilkleygazette.co.uk +theboltonnews.co.uk +witneygazette.co.uk +worcesternews.co.uk +yeovilexpress.co.uk +autoexchange.co.uk +bridportnews.co.uk +cravenherald.co.uk +gazette-news.co.uk +heraldseries.co.uk +keighleynews.co.uk +leighjournal.co.uk +penarthtimes.co.uk +sthelensstar.co.uk +times-series.co.uk +banburycake.co.uk +ealingtimes.co.uk +harrowtimes.co.uk +herefordtimes.com +newsshopper.co.uk +surreycomet.co.uk +wirralglobe.co.uk +asianimage.co.uk +dorsetecho.co.uk +dudleynews.co.uk +oxfordmail.co.uk +thenational.scot +burytimes.co.uk +dailyecho.co.uk +echo-news.co.uk +yorkpress.co.uk +theargus.co.uk.promoted-blockÎ +azolifesciences.com +azocleantech.com +azorobotics.com +azoquantum.com +azosensors.com + azomining.com + azooptics.com + azobuild.com + azonano.com + azoai.com + +azom.com.promoted-item" + +imdb.com.promoted-provider& + coinalpha.app.promoted_content~@ +>reddittorjg6rue252oqsxryoxengawnmo46qy4kyii5wtqnwfj4ooad.onion + +reddit.com*.promotedlink:not([style^="height: 1px;"])B + racingtv.com + twitter.com + +wral.com +x.com +.promotion* + +eetimes.eu.promotion-block-wrapper" + wien.info.promotion-footer) +actionnetwork.com.promotion-table! +bostonreview.net .promotop* + insauga.com.proper-content-dynamic* +highspeedinternet.com .provider-adsE +football365.com +planetrugby.com + planetf1.com .ps-block-a' +indiabusinessjournal.com.pt--20 +kathmandupost.com.pt-0 + gsmarena.com.pt-10 +gonintendo.com.pt-5  +steamladder.com .pt-large + +getyarn.io .pt3p > divw +flash-mp3-player.net +theportugalnews.com +1980-games.com + gameslol.net + tolonews.com + +coleka.com.pub& +starsinsider.com.pub-container + yabiladi.com.pub2 + helis.com +.pub23_all + gameslol.net .pubGside/ + gameslol.net + yabiladi.com .pub_header + devhints.io.pubboxE +desdelinux.net + tutiempo.net + ubunlog.com +as.com.publi! +surinenglish.com .publiTop + catholic.net .publicidad$ + +eitb.eus.publicidad_cabecera' + +eitb.eus.publicidad_robapaginas( +online-stopwatch.com .publift-div, +online-stopwatch.com.publift-unfixed/ +101soundboards.com.publift_in_content_1/ +101soundboards.com.publift_in_content_2$ +decisiondeskhq.com +.publirAds# +dailymail.co.uk .puff_pastel0 + speedtest.net.pure-u-custom-ad-rectangle7 + speedtest.net".pure-u-custom-wifi-recommendation +appleinsider.com.push + 2conv.com .push-offer + happymod.com +.pvpbar_ad + +onmsft.com .pw-gtr-box& +bleedingcool.com.pw-in-article( +pricecharting.com.pw-leaderboard: +giantfreakinrobot.com.pw-leaderboard-atf-container: +giantfreakinrobot.com.pw-leaderboard-btf-container7 +giantfreakinrobot.com.pw-med-rect-atf-container˜7 +giantfreakinrobot.com.pw-med-rect-btf-containerR +canberratimes.com.au +breakingnews.ie +theland.com.au.py-2.bg-gray-100 +fastcompany.com.py-8) +onlyinyourstate.com.py-8.md\:flex + +pymnts.com +.pymnt_ads& + euronews.com.qa-dfpLeaderBoard + infoq.com .qcon_banner$ +thegatewaypundit.com.qh1aqgd$ +revolution935.com .qt-sponsorG +dailyboulder.com + coingape.com + townflex.com.quads-location& + surfline.com.quiver-google-dfp + +dagens.com.r-1) +allthatsinteresting.com +.r-11rk87y + +dagens.com.r-3 + +dagens.com.r-6 + letour.fr .r-rentraps + +tgstat.com.r1-aors* + kmplayer.com + joins.com .r_banner! +check-host.net .ra-elative$ +linuxtopia.org.raCloseButton+ +attheraces.com.race-nav-plus-ad__ad +time.is.rad + +wahm.com +.rad-links +w3newspapers.com.rads" +theparisreview.org.rail-ad/ + bookriot.com.random-content-pro-wrapper% + dappradar.com.rankings-ad-row( + rappler.com.rappler-ad-container) + benzinga.com.raptive-ad-placement, + wdwmagic.com.raptive-custom-sidebar1U +atlantablackstar.com +theshadowleague.com + finurah.com.raptive-ddm-header* + benzinga.com.raptive-header-banner. +leagueofgraphs.com.raptive-log-sidebar3 + epicdope.com.raptive-placeholder-below-post/ + epicdope.com.raptive-placeholder-header, +gobankingrates.com.rate-table-header> +tennisuptodate.com + dartsnews.com.raw-html-component + mydorpie.com .rbancont + forebet.com .rbannerDiv + reverso.net .rcacontent  + bookriot.com .rcp-wrapper! + just-dice.com .realcontent# + +shareus.io.recent-purchased' + advfn.com.recent-stocks-sibling5 +tasteofhome.com.recipe-ingredients-ad-wrapper! +bettycrocker.com .recipeAd$ + +forbes.com.recirc-right-rail3 +goodmorningamerica.com.recirculation-module4 + pride.com#.recirculation__placeholder--latest +videocelebs.net.reclL +nzherald.co.nz6.recommended-articles > .recommended-articles__heading/ +streamtvinsider.com.recommended-content) + slashgear.com.recommended-heading1 +forestriverforums.com.recommended-stories" +last.fm.recs-feed-item--ad" + anisearch.com .rect_sidebar% + zerohedge.com.rectangle-large/ +knowyourmeme.com.rectangle-unit-wrapperB +taskandpurpose.com +twz.com.recurrent-inline-leaderboard + redferret.net.redfads! + +latv.com.reduced-ad-space + +arras.io .referral, +al-monitor.com.region--after-content2 +middleeasteye.net.region-before-navigation‚5 +steveharveyfm.com.region-recommendation-right  + mrctv.org.region-sidebar + futbol24.com.rek  + wcostream.com .reklam_pve- +cyclingnews.com.related-articles-wrap- + engadget.com.related-content-lazyload# + idropnews.com.related-posts4 + gizmodo.com!.related-posts > li.py-4.border-b7 +timesofindia.indiatimes.com.relatedVideoWrapper- + +esports.gg.relative.esports-inarticle! + astrozop.com .relative.z-5 +miragenews.com.rem-i-s + 4shared.com .remove-rekl/ + boldsky.com + +mykhel.com.removeStyleAd6 +runningmagazine.ca.repeater-bottom-leaderboard  + bbjtoday.com .replacement+ +m.tribunnews.com.reserved-topmedium, +holiday-weather.com.resp-leaderboard- + box-core.net + mma-core.com .resp_ban + +arras.io.respawn-banner, + +guru99.com.responsive-guru99-mobile1' +championmastery.gg .responsiveAd= + thetimes.com).responsive__InlineAdWrapper-sc-4v1r4q-14, + riderfans.com.restore.widget-contents@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com.result--ad > .result__body! + jetphotos.com .result--adv$ +myminifactory.com .result-adv& + +immoweb.be.result-section--ads + word.tips.result-top-ad! + word.tips.result-words-ad% + word.tips.result-words-ad-new$ +classifiedads.com .resultmarg5 +inchcalculator.com.results-ad-container-outer3 + infobel.com .results-bottom-banner-container3 + infobel.com .results-middle-banner-container0 + infobel.com.results-top-banner-container$ +curseforge.com.rev-container. +utahgunexchange.com.rev_slider_wrapper: +sandiegouniontribune.com + latimes.com .revcontentº +lehighvalleylive.com +newyorkupstate.com +oregonlive.com + cleveland.com + masslive.com + pennlive.com + syracuse.com + +silive.com + mlive.com +al.com.revenue-display6 +grammar.yourdictionary.com.revenue-placeholder" +therailwayhub.co.uk.revive8 +planetizen.com".revive-sitewide-banner-2__wrapper6 +planetizen.com .revive-sitewide-banner__wrapper& + nordstrom.com.revjet_container! + crypto.news.rexas-presale' +hindustantimes.com .rgtAdSection* +timesofindia.indiatimes.com.rgt_ad +websitedown.info.rgtad + newindian.in.rhs-ad2- +indianexpress.com.rhs-banner-carousel' + cnbctv18.com.rhs-home-second-ad + firstpost.com +.rhs-tp-ad% + dailyo.in.rhsAdvertisement3001 +moneycontrol.com.rhs_banner_300x34_widget + siteslike.com.rif% +terminal.hackernoon.com.right! + cnbctv18.com .right-ad-amp' + mathgames.com.right-ad-override) + +news.net.right-banner-wr > .right# +africanews.com .right-legend+ +essentialenglish.review .right-panel# + newsweek.com.right-rail-ads$ +jta.org.right-rail-containerè5 +businessinsider.com.right-rail-min-height-250) +medpagetoday.com.right-rail-panel0 +supplychainbrain.com.right-rail-sponsors# + jpost.com.right-side-banner* +businesstoday.in.right-side-tabola + livemint.com .rightAdNew- +slickdeals.net.rightRailBannerSection' +babycenter.com.rightRailSegment + boomlive.in .right_ad_4$ +gamemodding.com .right_banner + softicons.com .right_ga& +thehansindia.com.right_level_7' +theportalist.com.right_rail_add! + livemint.com .rightblockAd" +footballdb.com .rightcol_ad$ +leaf.tv.rightrail-display-ad' +smartasset.com.riklam-container +ip.sb.rivencloud_ads2 +rocket-league.com.rlg-footer-ads-container( +rocket-league.com.rlg-trading-ad, +rocket-league.com.rlg-trading-spacer" + +costco.com.rm-grid-productA +chemistwarehouse.com.au".rm__campaign-product__slider-item +windowsreport.com.rmdcb +indiatimes.com.rmfp + sephora.com .rmn-banner  +realitytea.com +.roadblock +surinenglish.com.roba$ + cults3d.com.robots-nocontent + +boxrox.com .rolling-mrt, +beforeitsnews.com.rotating_text_link) +superhumanradio.net.rotating_zone! + atalayar.com .rotulo-publi/ +flightconnections.com.route-display-box$ +nme.com.row-mobile-billboard2 +healthnfitness.net.row-section-game-widget% +elnacional.cat.row-top-banner) +steamanalyst.com.row.tpbcontainer6 +bikechatforums.com.row2[style="padding: 5px;"]4 + onlineocr.net.row[style*="text-align:right"]( +rasmussenreports.com .rr-ad-image" + jdpower.com.rrail__ad-wrap  + wikihow.com .rrdoublewrap +kickassanime.mx.rs +freewebarcade.com.rsads* +gamertweak.com.rsgvqezdh-container) + box-core.net + mma-core.com.rsky* +voxelmatters.com.rss-ads-orizontal) + rswebsols.com.rsws_banner_sidebar + +mykhel.com +.rt-top-ad& +nextofwindows.com .rtsidebar-cm* + roadtovr.com.rtvr_under_feature_ad( + +run247.com.run24-300x250-in-post  + +run247.com.run24-content +freewebarcade.com.rxads +freewebarcade.com.rxse + aerotime.aero .s-banner& +bleepingcomputer.com +.s-ou-wrap& +hope1032.com.au.s-supported-by +japantoday.com.s10r% +nodejs.libhunt.com .saashub-ad +steamladder.com.salad! + salife.com.au .salife-slot. +sherbrookerecord.com.sam-pro-container† + softonic.com .sam-slot! + +f95zone.to.samAlignCenterè +forums.sailinganarchy.com +beermoneyforum.com +sportfishingbc.com +studentdoctor.net +rawdogsports.com +audi-sport.net +clubsearay.com + birdforum.net + geekdoing.com + afflift.com + skitalk.com.samBannerUnit› +forums.bluemoon-mcfc.co.uk +racedepartment.com +satelliteguys.us +audi-sport.net +emtbforums.com + resetera.com + overtake.gg .samCodeUnit& +beermoneyforum.com .samTextUnitF +forums.bluemoon-mcfc.co.uk +anime-sharing.com.samUnitWrapper) + netweather.tv.samsad-Leaderboard2 +teamfortress.tv.sau0 +point2homes.com.saved-search-banner-list, +thebudgetsavvybride.com .savvy-target + pcgamesn.com .saw-wrap  + tvtropes.org .sb-fad-unit + animehub.ac.sb-subs( + sabcsport.com.sbac_header_top_ad + +pcwdld.com +.sbcontent& +mindbodygreen.com .sc-10p0iao-0 + +kotaku.com .sc-6zn1bq-0" +news.bitcoin.com +.sc-cpornS2 +distractify.com + inquisitr.com +.sc-fTZrbU + scotsman.com +.sc-igwadP) + samsclub.com.sc-plp-cards-vast-ad +sankakucomplex.com.scad& +soyacincau.com.scadslot-widget! +bangordailynews.com.scaip  +newindianexpress.com.scc5 +radiotimes.com.schedule__row-list-item-advert# +fantasyalarm.com .scoreboardg +hentaihaven.icu +hentaihaven.xxx +hentaistream.tv + +nhentai.io.script_manager_video_master' +eatsmarter.com.scroll-creatives% + readmng.com.scroll_target_top& +lethbridgenewsnow.com .scroller5 +cyclinguptodate.com +tennisuptodate.com.sda +userscript.zone.searcad8 +chemistwarehouse.com.au.search-product--featured. + dryicons.com.search-related__sponsored* + tempest.com.search-result-item--adS + alibaba.com@.searchx-offer-item[data-aplus-auto-offer*="ad_adgroup_toprank"]* +minecraftservers.org.second-banner) +businesstoday.in.secondAdPosition( + finextra.com.section--minitextad! + finextra.com .section--mpu" + +wbur.org.section--takeover3 +sowetanlive.co.za.section-article-sponsored +bmj.com.section-header% +nzherald.co.nz.section-iframe0 +lawinsider.com.section-inline-partner-ad( + tvarticles.me.section-post-about) + pipeflare.io.section-promo-banner8 + thesun.co.uk$.section-sponsorship-wrapper-article8 + thesun.co.uk$.section-sponsorship-wrapper-section, +seattlepride.org.section_sponsorship% +brandsoftheworld.com .seedling- +searchenginejournal.com.sej-hello-bar, +searchenginejournal.com .sej-ttt-link( +timesofisrael.com.sellwild-label + hypestat.com .sem_banner( +spotifydown.com.semi-transparent + jambase.com.sense  + +shareus.io.seperator-tag' +searchencrypt.com.serp__top-ads8 +minecraftforum.net.server-forum-after-comment-ad, +gadgethacks.com.set-placement-height# +save-editor.com .set_wrapper) +bravenewcoin.com.sevio-ad-wrapperÙ- +nanoreview.net.sewisinad_only_desktop, +nanoreview.net.sewisinad_only_mobile< +sportbusiness.com#.sf-taxonomy-body__advert-container- +pressdemocrat.com.sfb2024-section__adS +analyticsinsight.net +moviedokan.lol +shortorial.com.sgpb-popup-overlay +stockhouse.com.sh-ad# + soaphub.com.sh-sh_belowpost" + soaphub.com.sh-sh_inpost_1" + soaphub.com.sh-sh_inpost_2" + soaphub.com.sh-sh_inpost_3" + soaphub.com.sh-sh_inpost_4" + soaphub.com.sh-sh_inpost_5" + soaphub.com.sh-sh_inpost_6) + soaphub.com.sh-sh_postlist_2_homeG +themeforest.net0.shared-global_footer-cross_sell_component__root + +romzie.com.shcntr5 + bestbuy.com".shop-dedicated-sponsored-carousel$ + bestbuy.com.shop-pushdown-adB +stokesentinel.co.uk'.shop-window[data-impr-tracking="true"]Z +lifeandstylemag.com +intouchweekly.com +usmagazine.com.shop-with-us__container' + rebelnews.com.shopify-buy-frame- + instacart.com.shoppable-list-a-las2t7. + hypebeast.com.shopping-break-container& + indiatoday.in.shopping__widget, +citychicdecor.com.shopthepost-widget& + mirror.co.uk.shopwindow-adslot+ + mirror.co.uk.shopwindow-advertorial, + chess.com.short-sidebar-ad-component# + axios.com.shortFormNativeAd + +tri247.com.show-ad + +fool.com.show-ad-label. +siliconrepublic.com.show-for-medium-up( + spacenews.com.show-street-dialog +thepointsguy.com.showBb" +winx-club-hentai.com.shr34 +nagpurtoday.in .shrcladv' +mbauniverse.com.shriresume-logo$ + seeklogo.com.shutterBannerWp. + +tineye.com.shutterstock-similar-images1 +scriptinghelpers.org.shvertise-skyscraper + +cartoq.com.side-a3 +chaseyoursport.com.side-adv-block-blog-open7 + +nexter.org + +viva.co.nz +news.am .side-banner) + +setapp.com.side-scrolling__banner% + idropnews.com.side-title-wrap+ + vpnmentor.com.side-top-vendors-wrap) + pr0gramm.com.side-wide-skyscraper + seeklogo.com +.sideAdsWp& +israelnationalnews.com.sideInf! +freeseotoolbox.net.sideXd  +thefastmode.com .side_ads + uquiz.com .side_bar# +panarmenian.net .side_panner$ +tutorialrepublic.com.sidebar6 +collegedunia.com.sidebar .course-finder-banner) + coincodex.com.sidebar-2skyscraper) +ganjapreneur.com.sidebar-ad-block* + +oann.com.sidebar-ad-slot__ad-label% +jayisgames.com.sidebar-ad-top7 +motorcycle.com + autoguide.com.sidebar-ad-unit% +computing.co.uk.sidebar-block' +dailycoffeenews.com .sidebar-box* + coingape.com.sidebar-btn-container  + +nfcw.com.sidebar-display»( + thehustle.co.sidebar-feed-trends" + gameflare.com .sidebar-game4 +lawandcrime.com + mediaite.com .sidebar-hook# + spearswms.com.sidebar-mpu-1. +middleeasteye.net.sidebar-photo-extend> +domainnamewire.com +repeatreplay.com.sidebar-primary' + libhunt.com.sidebar-promo-boxed) +davidwalsh.name.sidebar-sda-large! + ldjam.com.sidebar-sponsor) +abovethelaw.com.sidebar-sponsoredÚ +azolifesciences.com +azocleantech.com +azorobotics.com +azoquantum.com +azosensors.com + azomining.com + azooptics.com + azobuild.com + azonano.com + azoai.com + +azom.com.sidebar-sponsored-content( + hypebeast.com.sidebar-spotlights& +proprivacy.com.sidebar-top-vpn: +indianapublicmedia.org.sidebar-upper-underwritings* +mobilesyrup.com.sidebarSponsoredAd# + zap-map.com.sidebar__advert( +wordcounter.icu.sidebar__display" +pbs.org.sidebar__logo-pond% + +hepper.com.sidebar__placementB +breakingdefense.com +medcitynews.com.sidebar__top-sticky + +snopes.com .sidebar_ad1 + pcgamesn.com.sidebar_affiliate_disclaimer +bxr.com.sidebar_promo' +bleedingcool.com.sidebar_spacer- + alternet.org.sidebar_sticky_container" + macrumors.com .sidebarblock# + macrumors.com.sidebarblock2 + linuxize.com +.sideblock! + dbknews.com.sidekick-wrap +kit.co.sidekit-banner- +linuxtopia.org.sidelinks > .sidelinks: +atlasobscura.com".siderail-bottom-affix-placeholder% + thespike.gg.siderail_ad_rightt +classicalradio.com +radiotunes.com + jazzradio.com + rockradio.com + zenradio.com.sidewall-ad-component + +wncv.com .simple-image( +metalsucks.net.single-300-insert( +lgbtqnation.com.single-bottom-ad) + 9to5mac.com.single-custom-post-ad0 + kolompc.com.single-post-content > center. +geoawesome.com.single-post__extra-info< +abovethelaw.com%.single-post__sponsored-post--desktop) +policyoptions.irpp.org .single__ad + mixonline.com.site-ad+ + +gg.deals.site-banner-content-widget# + deshdoaba.com.site-branding@ + winaero.com-.site-content > div > p[style="margin: 22px"]* +archaeology.org.site-header__iykyk$ +emulatorgames.net .site-label + jdpower.com .site-top-ad/ +dailycoffeenews.com.site-top-ad-desktop& +emulatorgames.net .site-unit-lg" + macys.com.siteMonetization' +warcraftpets.com.sitelogo > div3 +garagejournal.com.size-full.attachment-full  + newsnext.live .size-large% +garagejournal.com .size-medium? +canadianbusiness.com +torontolife.com.sjm-dfp-wrapper( +charismanews.com.skinTrackClicks + pinkvilla.com +.skinnerAd +entrepreneur.com.sky + edarabia.com.sky-600) + govexec.com.skybox-item-sponsored( + cbssports.com.skybox-top-wrapper= + gtainside.com + datpiff.com + +cheese.com .skyscraperŒ% + +plos.org.skyscraper-container> +lowfuelmotorsport.com + newsnow.co.uk.skyscraper-left. +lowfuelmotorsport.com.skyscraper-right' +singaporeexpats.com .skyscrapers4 +everythingrf.com + futbol24.com .skyscrapper7 +myfoodbook.com.au.slick--optionset--mfb-banners +as.com.slider-producto + inbox.com.slinksÖ +bowenislandundercurrent.com +princegeorgecitizen.com +townandcountrytoday.com +vancouverisawesome.com +albertaprimetimes.com +piquenewsmagazine.com +alaskahighwaynews.ca +mountainviewtoday.ca +airdriecityview.com +stalbertgazette.com +westerninvestor.com +delta-optimist.com +coastreporter.net +moosejawtoday.com +richmond-news.com +squamishchief.com +cochraneeagle.ca +newwestrecord.ca +thealbertan.com +tricitynews.com +westernwheel.ca +burnabynow.com + rmoutlook.com + sasktoday.ca + fitzhugh.ca + +nsnews.com + +prpeak.com + +theorca.ca.slot$ + nicelocal.com.slot-service-2& + nicelocal.com.slot-service-top) +iheartradio.ca.slot-topNavigation +independent.ie.slot1 +independent.ie.slot42 +boxofficemojo.com + +imdb.com .slot_wrapper +drivereasy.com.sls_pop, + +sltrib.com.sltrib_medrec_sidebar_atf$ + skinnyms.com.sm-above-header, +dermatologytimes.com.sm\:w-\[728px\] + bikeexif.com.small$ + dutchnews.nl.small-add-block2 + +numuki.com .small-banner-responsive-wrapper + +startup.ch .smallbanner" + +food.com.smart-aside-inner! + +food.com.smart-rail-inner0 +watchinamerica.com.smartmag-widget-codes2 +pressdemocrat.com.smiPlugin_rail_ad_widget( +secretchicago.com.smn-new-gpt-ad$ + rugby365.com.snack-container? +small-screen.co.uk +foottheball.com.snackStickyParent, +dailyevergreen.com.sno-hac-desktop-1, +khmertimeskh.com.so-widget-sow-image +u.today +.something  +u.today.something--fixed +u.today.something--wide/ + songfacts.com.songfacts-song-inline-ads: +bloomingdales.com!.sortable-grid-monetization-items/ + macys.com.sortable-grid-sponsored-items0 +greatandhra.com.sortable-item_top_add123) + +salary.com.sovrn-content-research% + +salary.com.sovrn-content-wide$ + +salary.com.sovrn-leaderboard) +khmertimeskh.com.sow-slider-image +freeonlineapps.net.sp + coincarp.com.sp-down& +semiengineering.com .sp_img_div$ +academickids.com .spacer150px. + quora.com.spacing_log_question_page_ad* +nationaltoday.com.sphinx-popup--16 + informer.com.spnsd$ +sundayworld.co.za .spnsorhome + coincarp.com.spo-btn# +worldtimezone.com +.spon-menu& +danmurphys.com.au .sponserTiles± +thefederalistpapers.org +thegatewaypundit.com +westernjournal.com +domainincite.com +europages.co.uk +gamingcloud.com +phillyvoice.com +andrewlock.net +topsurgery.net + speedcafe.com + phish.report + +centos.org + +manutd.com + +kpbs.org + +ufile.io +ijr.com +wnd.com.sponsor' + cssbattle.dev.sponsor-container* +dallasinnovates.com.sponsor-footer' +wralsportsfan.com.sponsor-label + +jquery.com .sponsor-line% +newsroom.co.nz.sponsor-logos2' +fimfiction.net.sponsor-reminder+ +compellingtruth.org.sponsor-sidebar' +cricketireland.ie.sponsor-strip/ +arizonasports.com + +ktar.com +.sponsorBy�& +cryptolovers.me.sponsorContent" +blbclassic.org .sponsorZone  + enginehub.org .sponsorbox* +smartasset.com.sponsorcalc-wrapper’@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +samedicalspecialists.co.za +sportsbusinessjournal.com +naval-technology.com +chicagobusiness.com +dailymaverick.co.za +reviewjournal.com +caixinglobal.com +dailytarheel.com +chronicle.co.zw +lawandcrime.com +motherjones.com +timeslive.co.za +duckduckgo.com +freebmd.org.uk + dunyanews.tv + herald.co.zw + statnews.com + stocksnap.io + 2b2t.online + fifplay.com + libhunt.com + saashub.com + thedp.com +hbr.org +.sponsored# + +newegg.com.sponsored-brands* + crypto.news.sponsored-button-group  + cheknews.ca .sponsored-by- +washingtontimes.com.sponsored-heading( + itweb.co.za.sponsored-highlights, +breakingdefense.com.sponsored-inline) + freesvg.org.sponsored-main-detail@ +lookfantastic.com + dermstore.com.sponsored-product-plp. + justwatch.com.sponsored-recommendation# +crn.com.sponsored-resources! + coincarp.com .sponsored-td/ +search.brave.com.sponsored-unit_wrapper" + coingecko.com .sponsored-v2, +tech.hindustantimes.com .sponsoredBox' +coinmarketcap.com.sponsoredMark/ +lookfantastic.com.sponsoredProductsList' + circleid.com.sponsoredTopicCard' +mynorthwest.com.sponsored_block' + hannaford.com.sponsored_product$ + +meijer.com.sponsoredproductsô +smashingmagazine.com +armageddonexpo.com +hotrodhotline.com +jaguarforums.com +f1gamesetup.com +ferrarichat.com +audiforums.com +thebugle.co.za + waamradio.com + webtorrent.io + +ar15.com + +pypi.org + +wbal.com .sponsors% + vuejs.org.sponsors-aside-text& + salixos.org.sponsors-container) + libhunt.com.sponsors-list-content  + petri.com.sponsorsInline1 +newswiretoday.com + +przoom.com +.sponsortd¦ +fairfaxstationconnection.com +springfieldconnection.com +greatfallsconnection.com +arlingtonconnection.com +mountvernongazette.com +alexandriagazette.com +connection-sports.com +fairfaxconnection.com +herndonconnection.com +reston-connection.com +mcleanconnection.com +viennaconnection.com +burkeconnection.com +potomacalmanac.com +centre-view.com +phonearena.com + coincost.net.spot, +phonearena.com.spot-sticky-container+ +naturalblaze.com.spot_between_posts +darwintube.com.spots + freepik.com .spr-adblock + freepik.com.spr-plc + gemoo.com.sprtadv + collive.com.spu-bg + collive.com.spu-box# +motorauthority.com .sq-block) +reneweconomy.com.au.sq_get_quotes( + ftvlive.com.sqs-block-image-link> +packaginginsights.com +nutritioninsight.com .squarblk@ +autoaction.com.au + royalroad.com + snokido.com.square + digitimes.com +.square-ad: + flvto.com.mx + 2conv.com + flvto.biz .square-area + getmyuni.com +.squareDiv + cathstan.org.squat, + yodobashi.com.srcResultPromotionItem: + ebay.com.au + +ebay.co.uk + +ebay.com .srp-1p__link + +mlsbd.shop.srzads4 +theblueoceansgroup.com.ss-on-media-container, +searchenginejournal.com .sss2_sllo_o3( +aupetitparieur.com.st85ip42z1v3x +cnn.com .stack__ads4 + barrons.com!.standard__AdWrapper-sc-14sjre0-6) +gameworldobserver.com .start-popup' + geoguessr.com.start__display-ad$ +cvs.com.stencil-criteo-shelf  +sourceforge.net .sterling* +bostonglobe.com.stick_1200--tablet + +ar15.com .stickers( +kathmandupost.com.sticky--bottomè- + healthing.ca.sticky-ad-spacer-desktop. +religionnews.com.sticky-ad-white-space. + bmwblog.com.sticky-ad-widget-container% +rugbyonslaught.com .sticky-add+ +thenationonlineng.net.sticky-advert/ +psycatgames.com +gr8.cc.sticky-banner! + note.nkmk.me .sticky-block# + pastpapers.co.sticky-bottomF +thisismoney.co.uk + golfmagic.com +kbb.com.sticky-container$ +goterriers.com.sticky-footer0 +walletinvestor.com.sticky-footer-content* +babylonbee.com.sticky-footer-image. + +kmzu.com.sticky-footer-promo-container, +business2community.com.sticky-headerM + sciencing.com + sportsnet.ca +leaf.tv.sticky-leaderboard-container, +fastcompany.com.sticky-outer-wrapper) +niagarathisweek.com.sticky-parent) +foxweather.com.sticky-pre-content% + foxnews.com.sticky-pre-header+ + foxnews.com.sticky-pre-header-inner& +theportugalnews.com .sticky-pub( + almanac.com.sticky-right-sidebar) +thechinaproject.com.sticky-spacer* + oilcity.news.sticky-sponsors-large# + jpost.com.sticky-top-banner' +litecoin-faucet.com .sticky-top11 + thekitchn.com + theblock.co .stickyFooter% +everythingrf.com .stickyRHSAds$ + +cnet.com.stickySkyboxSpacing+ +fastfoodnutrition.org.sticky_footer# + pcgamesn.com.sticky_rail600' +minecraftlist.org.stickywrapper + +romzie.com.stksht# +seattletimes.com .stn-player$ +dailyherald.com .stnContainer# + stationx.net.stnx-cta-embed% +groceries.asda.com .sto_format/ +dailycoffeenews.com.story-ad-horizontal0 + dailykos.com.story-banner-ad-placeholder; + bqprime.com(.story-base-template-m__vuukle-ad__g1YBt6 +nzherald.co.nz .story-card--sponsored--headline7 +nzherald.co.nz!.story-card--sponsored-text-below+ + wccftech.com.story-products-wrapper4 +stadiumtalk.com.story-section-inStory-inline( +interest.co.nz.story-tag-wrapper% +healthshots.com.storyBlockOne2 + livemint.com.storyPage_storyblockAd__r4wwE$ +businesstoday.in .stoybday-ad‰ +datingscammer.info +thedefensepost.com +kayifamily.net + news365.co.za + ihrc24x7.com + xboxera.com +24fm.ps .stream-item1 + +siasat.com.stream-item-below-post-contentF + twitter.com +x.com*.stream-item-group-start[label="promoted"]; + coinpedia.org + +siasat.com.stream-item-inline-post- +conservativebrief.com.stream-item-mag* +hardwaretimes.com.stream-item-size+ +how2electronics.com.stream-item-top/ +todayuknews.com.stream-item-top-wrapper% + +siasat.com.stream-item-widget0 + news365.co.za.stream-item-widget-content" + coinpedia.org .stream-titleQ + open3dlab.com<.stream[style="align-items:center; justify-content:center;"] + +stellar.ie.stuck! + darko.audio.studio_widget( + news.stv.tv.stv-article-gam-slotB + +dbltap.com0.style_7z5va1-o_O-style_48hmcm-o_O-style_1ts1q2hØ6 +inyourarea.co.uk.style_advertisementMark_1Jki40 +inyourarea.co.uk.style_cardWrapper_ycKf8¶ +arrowheadaddict.com +stormininnorman.com +winteriscoming.net +amazonadviser.com +hiddenremote.com +mlsmultiplex.com +playingfor90.com +bamsmackpow.com +lastnighton.com +netflixlife.com +apptrigger.com +gojoebruin.com + gamesided.com + fansided.com.style_k8mr7b-o_O-style_1ts1q2hE +nationalrail.co.uk+.styled__StyledAdvertContainer-sc-1gkr5jr-2J +nationalrail.co.uk0.styled__StyledFreeFormAdvertWrapper-sc-7prxab-3J +nationalrail.co.uk0.styled__StyledFreeFormAdvertWrapper-sc-7prxab-44 +nationalheraldindia.com.styles-m__dfp__3T0-CB + thetimes.com..styles__PromotedContentContainer-sc-1ul3b7n-3; +streamingsites.com!.styles_adverticementBlock__FINvH1 +streamingsites.com.styles_backdrop__8uFQ4) +egamersworld.com.styles_bb__hb10X, + politico.com.styles_container__zuzL0* +producthunt.com.styles_item__hNPI1. +egamersworld.com.styles_sidebar__m6yLy + troypoint.com.su-box& + +cfoc.org.su-button-style-glass0 + buzzfeed.com.subbuzz-bfp--connatix_video) +proprivacy.com.summary-footer-cta% + monocle.com.super-leaderboardD +the-express.com + express.co.uk + atalayar.com .superbanner* +f1gamesetup.com.supp-footer-banner* +f1gamesetup.com.supp-header-banner- +f1gamesetup.com.supp-sense-desk-large4 +f1gamesetup.com.supp-sense-sidebar-box-large( +f1gamesetup.com.supp-sidebar-box+ +japantimes.co.jp.supplements-binder  + ocado.com.supplierBanner  + cdromance.com .support-us  + fstoppers.com .supportImg* + indiedb.com + moddb.com +.supporter + hyiptop.net .supporthome% + techreen.com.svc_next_content* +survivopedia.com.svp_campaign_main +timesofmalta.com.sw-Top + saltwire.com +.sw-banner$ +securityweek.com .sw-home-ads! + swimswam.com .swimswam-acf4 +khmertimeskh.com.swiper-container-horizontal' +khmertimeskh.com.swiper-wrapper, +top100token.com.swiper_div.right-pad) + presearch.com.sx-top-bar-products  +html-online.com .szekcio4h + +dagens.com + dagens.dkI.t-1 > .con-0 > .r-1 > .row > .c-0 > .generic-widget[class*=" i-"] > .g-0s + +dagens.com + dagens.de + dagens.dkG.t-1 > .con-0 > .r-2 .row > .c-1 > .generic-widget[class*=" i-"] > .g-00 +interestingengineering.com.t-h-\[130px\]0 +interestingengineering.com.t-h-\[176px\]0 +interestingengineering.com.t-h-\[280px\]$ +fiercebiotech.com .t1-ad-slot' +patriotnationpress.com .t2ampmgy + +sbenny.com .t3-masthead +emoneyspace.com.t_a_c +theanalyst.com.ta-ad& + ucompares.com.tablepress-id-46, +posemaniacs.com.tabletL\:w-\[728px\]3 + moco360.media + protocol.com.tag-sponsored- +spectrum.ieee.org.tag-type-whitepaper0 +thefastmode.com + ghanaweb.com .takeover( +thefastmode.com.takeover_message( +literaryreview.co.uk .tall-advert" +seattletimes.com +.tall-rect* + igg-games.com.taxonomy-description + bookriot.com +.tbr-promo) + +tennis.com.tc-video-player-iframe+ + schengen.news + +ghpage.com.td-a-adÖ0 +thediplomat.com.td-ad-container--labeled" +unlockboot.com .td-ads-home% + techgenyz.com.td-adspot-title& +bizasialive.com.td-all-devices, +americanindependent.com .td-banner-bgt +theyeshivaworld.com +gayexpress.co.nz +cgmagonline.com + cycling.today + brila.net.td-banner-wrap-fullC +boxthislap.org + +wtf1.co.uk + ticgn.com.td-footer-wrapper4 + 91mobiles.com + +techyv.com.td-header-header. +healthyceleb.com.td-header-header-fullZ +androidcommunity.com + techworm.net + euro-sd.com + +sfbg.com.td-header-rec-wrap­ +cybersecuritynews.com +babeltechreviews.com +thestonedsociety.com +weekendspecial.co.za +sonorannews.com +5pillarsuk.com + techviral.net.td-header-sp-recsH +runnerstribe.com0.td-post-content a[href^="https://tarkine.com/"]B +antiguanewsroom.com +gadgetstouse.com.td-ss-main-sidebar+ + techgenyz.com.td_block_single_imageH +thecoinrise.com + capsulenz.com + ssbcrack.com.td_spot_img_all' +thedailybeast.com.tdb-ads-block + +arynews.tv.tdi_103 + techgenyz.com.tdi_114 +pakobserver.net.tdi_121 +pakobserver.net.tdi_124  +carnewschina.com.tdi_162  +greekreporter.com.tdi_18 + techgenyz.com.tdi_185! +based-politics.com.tdi_30 +teslaoracle.com.tdi_48 +coinedition.com.tdi_59 + +ghpage.com.tdi_63# +depressionforums.org.tdi_66  +carboncredits.com.tdi_72 +coinedition.com.tdi_95- +coinedition.com.tdm-inline-image-wrap/ +lankanewsweb.net.tdm_block_inline_image +standard.co.uk.teads +who.is .teaser-barh +manchestereveningnews.co.uk +liverpoolecho.co.uk..teaser[data-tmdatatrack-source="SHOP_WINDOW"]0 +eurovisionworld.com.teaser_flex_united245 +semiconductor-today.com.teaserexternal.teaser$ +techopedia.com.techo-adlabel% +technology.org.techorg-banner + sporcle.com +.temp-unit + macrumors.com .tertiary$ + +speedof.me.test-ad-container +tasfia-tarbia.org.text$ +ericpetersautos.com .text-109 +stupiddope.com.text-6 + hackread.com.text-61 + vuejs.org.text-ad + how2shout.com .text-adsF + y2down.cc5.text-center > a[href="https://loader.to/loader.apk"]0 +skylinewebcams.com.text-center.cam-light: +charlieintel.com + dexerto.com.text-center.italic' +ascii-code.com.text-center.mb-3  +upi.com.text-center.mt-5( +thegradcafe.com.text-center.py-3% +whatismyisp.com.text-gray-100# + coincarp.com.text-native-ad9 +mastercomfig.com!.text-start[style^="background:"]/ +geeksforgeeks.org.textBasedMannualAds_2 + putlockers.do.textb! +sciencedaily.com .textrulej +thesportsanimal.com +evilbeetgossip.com +wild1049hd.com + wky930am.com + +kyis.com .textwidget& +tftcentral.co.uk.tftce-adlabel$ +thejakartapost.com +.the-brief( + vaughn.live.theMvnAbvsLowerThirdÆ1 +thedefensepost.com.thede-before-content_2, +steelersdepot.com.theiaStickySidebar[ +serverhunter.comC.this-html-will-keep-changing-these-ads-dont-hurt-you-advertisement. +phillyvoice.com.this-weekend-container2 + gearspace.com.thread__sidebar-ad-container/ +geeksforgeeks.org.three90RightBarBanner$ +nzherald.co.nz.ticker-banner  +aardvark.co.nz +.tinyprint +blendernation.com.title$ +cryptocompare.com .title-hero" +thejakartapost.com.tjp-ads. +thejakartapost.com.tjp-placeholder-ads + kastown.com .tkyrwhgued' +onlinecourse24.com .tl-topromote< + the-tls.co.uk'.tls-single-articles__ad-slot-container + themighty.com.tm-ads, + trademe.co.nz.tm-display-ad__wrapper> + trademe.co.nz).tm-display-sponsored-listing__cards-flex' +thenewstack.io.tns-sponsors-rss + nybooks.com +.toast-cta' +spy.com.todays-top-deals-widget +last.fm .tonefuze1 +medicinehatnews.com +euobserver.com.top< +charlieintel.com + dexerto.com.top-0.justify-center' + mashable.com.top-0.sticky > div. +charlieintel.com + dexerto.com.top-10 + +cartoq.com.top-a +freedomleaf.com.top-ab# + +cartoq.com.top-ad-blank-div# + +forbes.com.top-ad-container  +artistdirect.com.top-add + firstpost.com .top-addd6 + techspy.com +n4g.com.top-ads-container-outer  + india.com.top-ads-expend + +latv.com.top-adverties# +jamieoliver.com .top-avocado! + advfn.com.top-ban-wrapperÞ +howsecureismypassword.net +developer.mozilla.org +automotive-fleet.com +government-fleet.com +fleetfinancials.com +schoolbusfleet.com +seekvectorlogo.net +addictivetips.com +businessfleet.com +snipercentral.com +forbesindia.com + wltreport.com + argonauts.ca + rigzone.com + +pcwdld.com + +ncaa.com +cfl.ca .top-banner% +smartasset.com.top-banner-ctr* + gptoday.net.top-banner-leaderboard0 + +numuki.com.top-banner-responsive-wrapper+ +gamewatcher.com.top-banners-wrapper2 + papermag.com.top-billboard__below-title-ad +livescores.biz.top-bk' +blockchair.com.top-buttons-wrap+ +freedesignresources.net .top-cat-ads$ +procyclingstats.com .top-cont  +foodrenegade.com.top-cta% + +forbes.com.top-ed-placeholder0 + forexlive.com.top-forex-brokers__wrapper6 +theguardian.com.top-fronts-banner-ad-container( + debka.com.top-full-width-sidebar" + reverso.net.top-horizontal' + india.com.top-horizontal-banner. +spectrum.ieee.org.top-leader-container( +thedailystar.net.top-leaderboard( + coinpedia.org.top-menu-advertise* +sportingnews.com.top-mpu-container + webmd.com +.top-picks% + speedtest.net.top-placeholder + techdirt.com +.top-promo: +financemagnates.com + forexlive.com.top-side-unit + horoscope.com .top-slot" +cryptoslate.com .top-sticky¬/ + playbuzz.com.top-stickyplayer-container5 +ganjingworld.com.topAdsSection_wrapper__cgH4h5 +timesofindia.indiatimes.com.topBand_adwrapperZ +techcentral.ie + texteditor.co + globes.co.il + +versus.com +ada.org +.topBanner + pcworld.com .topDeals0 +tech.hindustantimes.com.topGadgetsAppend( +tutorviacomputer.com .topMargin15y +clickondetroit.com +click2houston.com +clickorlando.com + news4jax.com + local10.com + +ksat.com .topWrapper3 +giveawayoftheday.com + informer.com.top_ab! +partnerkin.com .top_ab_box  +theepochtimes.com.top_ad1 +tiresandparts.net + asmag.com .top_banner& +joebucsfan.com.top_banner_cont! +archaeology.org +.top_black( +searchenginejournal.com .top_lead7 +justjaredjr.com + justjared.com.top_rail_shell$ + +fark.com.top_right_containerF +allnigerianrecipes.com + antimusic.com + roadtests.com.topad, + cycleexif.com + thespoken.cc.topban' +eurointegration.com.ua .topban_r" + axisbank.com.topbandBg_New\ +allmonitors24.com +techforbrains.com +algemeiner.com +streamable.com +.topbanner  + drugs.com.topbanner-wrap$ +videogamemods.com .topbanners1 + papermag.com +good.is.topbarplaceholderŸ +manchestereveningnews.co.uk +hertfordshiremercury.co.uk +gloucestershirelive.co.uk +leicestermercury.co.uk +lincolnshirelive.co.uk +coventrytelegraph.net +birminghammail.co.uk +cambridge-news.co.uk +derbytelegraph.co.uk +cheshire-live.co.uk +chroniclelive.co.uk +edinburghlive.co.uk +stokesentinel.co.uk +examinerlive.co.uk +nottinghampost.com +somersetlive.co.uk +belfastlive.co.uk +bristolpost.co.uk +glasgowlive.co.uk +walesonline.co.uk +cornwalllive.com +leeds-live.co.uk +dailypost.co.uk +getsurrey.co.uk + devonlive.com + dublinlive.ie + kentlive.news + liverpool.com + mylondon.news.topbox-cls-placeholder + blabber.buzz.topfeed: +ldoceonline.com + cambridge.org.topslot-container/ +collinsdictionary.com.topslot_container +moviemistakes.com.tower# +brushexpert.com .towerAdvert! + towleroad.com .towletarget/ +utahgunexchange.com.tp-revslider-mainul& +steamanalyst.com.tpbcontainerr. +totalprosports.com.tps-top-leaderboard' + techreen.com.tr-block-header-ad# + techreen.com.tr-block-label + torbay.gov.uk.track# + futurism.com.tracking-wider9 +adsoftheworld.com + futurism.com.tracking-widest! + bincodes.com .transferwise" +sun-sentinel.com +.trb_sf_hl, +coinmarketcap.com.trending-sponsored( +iflscience.com.trendmd-container# +naturalblaze.com .trfkye8nxr# + thumbsnap.com.ts-blurb-wrap" +thesimsresource.com.tsr-ad + yidio.com.tt& +telegraphindia.com .ttdadbox310$ +venturebeat.com .tude-cw-wrap' +tutorialink.com.tutorialink-ad1' +tutorialink.com.tutorialink-ad2' +tutorialink.com.tutorialink-ad3' +tutorialink.com.tutorialink-ad4) + roseindia.net.tutorialsstaticdata% + tvtropes.org.tvtropes-ad-unit+ +drivencarguide.co.nz.tw-bg-gray-200( +todayonline.com.tw-flex-shrink-23 +drivencarguide.co.nz.tw-min-h-\[18\.75rem\]+ +karnalguide.com.two_third > .push20- + geekwire.com.type-sponsor_post.teaser  +theroar.com.au +.u-d-block( +patriotnationpress.com +.u8s470ovl + +tumblr.com.uOyjGÛ& + ubergizmo.com.ubergizmo-dfp-ad$ +unlockboot.com.ubhome-banner + darko.audio .ubm_widget# +unlockboot.com .ubtopheadads/ + barrons.com +wsj.com.uds-ad-container + news.sky.com +.ui-advert; +yourdictionary.com + golflink.com.ui-advertisement* +m.rugbynetwork.net.ui-footer-fixed +businessday.ng.uiazojl  + nullpress.net .uinyk-link% + +zpaste.net.uk-animation-shake. +telegraphindia.com.uk-background-muted- + doodrive.com.uk-margin > [href] > img* + igg-games.com.uk-panel.widget-text +softarchive.is.un-link* +collegedunia.com.unacedemy-wrapper( +uncanceled.news.uncan-content_11 + +pixhost.to .under-image +hidefninja.com .underads# +jakartaglobe.id .underlay-ad + inquinte.ca .unit-block) + bobvila.com.unit-header-container +sciencedaily.com.unit1 +sciencedaily.com.unit2 + gpucheck.com.unitBox& + pravda.com.ua.unit_side_banner/ +thegamerstation.com.universal-js-insert + t.17track.net .up-deals" + t.17track.net .up-deals-img' +thegradcafe.com.upcoming-events@ +pcgamingwiki.com(.upcoming-releases.home-card:first-child$ + filepuma.com.update_software% +letterboxd.com.upgrade-kicker0 + upworthy.com.upworthy_infinite_scroll_ad7 + upworthy.com#.upworthy_infinte_scroll_outer_wrap + +uproxx.com .upx-ad-unit( +vervetimes.com.uyj-before-header + vitalmtb.com +.v-ad-slot +surinenglish.com.v-adv + azscore.com.v-bonus> +militarywatchmagazine.com.v-size--x-small.theme--light! + +tetris.com.vAxContainer-L! + +tetris.com.vAxContainer-R + +zillow.com.vPTHT" + osuskins.net.vad-container" +lasvegassun.com .varWrapper + helis.com.vbar23 +tech.co .vc_col-sm-4. +salaamedia.com.vc_custom_1527667859885. +salaamedia.com.vc_custom_1527841947209. +businessday.ng.vc_custom_1627979893469$ +progamerage.com .vc_separator‰ +battlefordsnow.com +nanaimonewsnow.com +meadowlakenow.com +everythinggp.com +northeastnow.com +vernonmatters.ca +larongenow.com + cfjctoday.com + rdnewsnow.com + filmdaily.co + huskiefan.ca + sasknow.com + panow.com.vc_single_image-wrapper + itmunch.com .vc_slide + ktm2day.com .vc_wp_text* + +cars.com.vehicle-card.inventory-ad! + ggrecon.com.venatus-block* + mobafire.com.venatus-responsive-ad! +theloadout.com .venatus_adÒ +fox10phoenix.com +fox26houston.com +fox32chicago.com +fox35orlando.com +fox2detroit.com +fox5atlanta.com +foxbusiness.com +fox7austin.com + fox13news.com + fox4news.com + fox6now.com + foxnews.com + +fox5dc.com + +fox5ny.com + +q13fox.com + fox29.com + foxla.com + +fox9.com + +ktvu.com + +wogx.com .vendor-unit +realmoasis.com.ver-src" +cryptonews.net .vert-public4 + jezebel.com + +avclub.com.vertical-ad-spacer  + +mmegi.bw.vertical-bannerÙ% + radiocity.in.vertical-big-add' + radiocity.in.vertical-small-add8 + thelancet.com + hashrate.no.verticalAdContainer( +packaginginsights.com .verticlblk + +forbes.com .vestpocket2 + mirror.co.uk.vf3-conversations-list__promo1 +videogameschronicle.com.vgc-productsblock- + express.co.uk.viafoura-standalone-mpu# + +vice.com.vice-ad__container) + +vice.com.vice_D_leaderboard_index0 +victoriabuzz.com.victo-billboard-desktop% +justthenews.com.video--vdo-ai + wikiwand.com .video-ad% + songkick.com.video-ad-wrapper+ + forexlive.com.video-banner__wrapper+ +cyclinguptodate.com.video-container0 +floridasportsman.com.video-detail-player# +emptycharacter.com .video-js2 + +forbes.com + +nasdaq.com.video-placeholder# +flicksmore.com .video_banner% + +guru99.com.videocontentmobile5 +justthenews.com.view--breaking-news-sponsored. + teachit.co.uk.view-advertising-display" +koreabiomed.com .view-aside' + +costco.com.view-criteo-carousel5 +vigilantcitizen.com.vigil-leaderboard-article2 +vigilantcitizen.com.vigil-leaderboard-home + variety.com .vip-banner' + kijiji.ca.vipAdsList-3883764342 + pokernews.com .virgutis6 +coincheckup.com.visible-xs > .ng-isolate-scope) +visualcapitalist.com .visua-target# +roosterteeth.com .vjs-marker# + koreaboo.com.vm-ads-dynamicm +belloflostsouls.net +theloadout.com + paladins.guru + +smite.guru +ginx.tv +op.gg .vm-placement7 +c19-worldnews.com.vmagazine-medium-rectangle-ad +lightnovelcave.com.vnad" +lightnovelcave.com.vnad-in' + gosunoob.com.vntsvideocontainer +darkreader.org.vpnwelt0 +valueresearchonline.com.vr-adv-container' +trueachievements.com .vr-auction! +hentaihaven.xxx +.vrav_a_pc + +fastpic.ru.vright +thegearpage.net.vsBB$ +thegearpage.net .vsBBAdhesion +thegearpage.net.vsLB# +thegearpage.net .vsRRPremium1 + vaughn.live.vs_v9_LTabvsLowerThirdWrapper* + vaughn.live.vs_v9_LTabvsLower_beta + vsbattles.com.vsb_ad  + vsbattles.com .vsb_sticky& +notateslaapp.com.vtwjhpktrbfmw + +wral.com.vw3Klj- +horoscopes.astro-seek.com .vyska-sense" +stocktwits.com .w-\[300px\]" +lolalytics.com .w-\[336px\]) +androidpolice.com.w-pencil-banner +wsj.com.w27771 +userscript.zone.w300 + justetf.com.wAd  + engadget.com .wafer-benji. +swimcompetitive.com.waldo-display-unit  +wetransfer.com +.wallpaper¥+) + goodfon.com.wallpapers__banner2406 +thisismoney.co.uk +dailymail.co.uk +.watermark + watson.ch +.watson-ad + +wbal.com .wbal-banner& + technclub.com.wbyqkx-container# + wccftech.com.wccf_video_tag0 +searchencrypt.com.web-result.unloaded.sr1 + swisscows.com.web-results > .a8r-web-page? +northernvirginiamag.com .website-header__ad--leaderboard! + probuilds.net .welcome-bnr + taskcoach.org.well + gearlive.com .wellvert' + pcguide.com.wepc-takeover-sides% + pcguide.com.wepc-takeover-top> +cpu-monkey.com +gpu-monkey.com + cpu-panda.com.werbL +transfermarkt.co.uk +transfermarkt.com +best-faucets.com.werbung. +transfermarkt.co.uk.werbung-skyscraperM +transfermarkt.co.uk +transfermarkt.com.werbung-skyscraper-container$ +westsiderag.com .wests-widget( +tametimes.co.za.white-backgroundA +gadgethacks.com +wonderhowto.com + reality.news.whtaph +pch.com .wide_banner' +japantoday.com.widget--animated. +headforpoints.com.widget--aside.widget# +japantoday.com .widget--jobs2 +dcrainmaker.com +fijisun.com.fj .widget-1 +fijisun.com.fj .widget-3# + kyivpost.com.widget-300-250) +vodacomsoccer.com.widget-ad-block* +bollywoodhungama.com.widget-advert. +boernestar.com.widget-advert_placement  + wikikeep.com .widget-area: +superdeluxeedition.com.widget-bg-image__deal-alert. +cinemaexpress.com.widget-container-133< +taiyangnews.info$.widget-module__widgetWrapper__Rzg0s$ + thebeet.com.widget-promotion9 +screencrush.com".widget-widget_third_party_content0 +ceoexpress.com.widgetContentIfrWrapperAdO" + live-adexchanger.pantheonsite.io +adexchanger.com.widget_ai_ad_widget> + gsmserver.com).widget_banner-container_three-horizontal— +thestrongtraveller.com +discussingfilm.net +goonhammer.com +usmagazine.com +wiki-topia.com + joemygod.com + shtfplan.com .widget_block + +wplift.com .widget_bsa) +techweekmag.com.widget_codewidgetÿ +trendingpoliticsnews.com +monstersandcritics.com +scienceandliteracy.org +spokesman-recorder.com +theblueoceansgroup.com +guides.wp-bullet.com +iwatchsouthparks.com +precinctreporter.com +corvetteblogger.com +nasaspaceflight.com +planetofreviews.com +backthetruckup.com +prepperwebsite.com +thecinemaholic.com +catcountry941.com +corrosionhour.com +gamingonphone.com +snipercentral.com +techforbrains.com +activistpost.com +motoringfile.com +patriotfetch.com +survivopedia.com +techiecorner.com +torrentfreak.com +arcadepunks.com +dcrainmaker.com +fastestvpns.com +openloading.com +tooxclusive.com +trackalerts.com +girgitnews.com +gizmochina.com +macsources.com +mediachomp.com +metalsucks.net +mmoculture.com +sashares.co.za +scienceabc.com +torrentmac.net +wabetainfo.com + 9to5linux.com + manhuatop.org + aftvnews.com + techdows.com + techjuice.pk + 4sysops.com + discover.is + newsbtc.com + rugbylad.ie.widget_custom_html4 + insidehpc.com.widget_download_manager_widget% +domaingang.com.widget_execphp0 +bitcoinist.com.widget_featured_companiesK +bestlifeonline.com +hellogiggles.com.widget_gm_karmaadunit_widget@ +inlandvalleynews.com$.widget_goodlayers-1-1-banner-widget2 +faroutmagazine.co.uk.widget_grv_mpu_widget% + gizmodo.com.widget_keleops-adû +businessaccountingbasics.co.uk +thecatholictravelguide.com +athleticsillustrated.com +globalgovernancenews.com +marqueesportsnetwork.com +londonnewsonline.co.uk +spokesman-recorder.com +washingtonmonthly.com +foreverconscious.com +jharkhandmirror.net +lifeandstylemag.com +theyucatantimes.com +developer-tech.com +sportsspectrum.com +supertotobet90.com +thedefensepost.com +theoverclocker.com +circuitbasics.com +intouchweekly.com +kashmirreader.com +robinhoodnews.com +appleworld.today +closerweekly.com +levittownnow.com +patriotfetch.com +prajwaldesai.com +teksyndicate.com +247media.com.ng +coincodecap.com +cozyberries.com +glitched.online +granitegrok.com +mensjournal.com +nikonrumors.com +ubuntu101.co.za +wakingtimes.com +rsbnetwork.com +showbiz411.com +stacyknows.com +thethaiger.com +tronweekly.com +webscrypto.com + 9to5linux.com + deshdoaba.com + manhuatop.org + pctechmag.com + pstribune.com + wlevradio.com + palipost.com + raspians.com + dbknews.com + +wgowam.com + ognsc.com + rok.guide + +kkfm.com + +wgow.com.widget_media_imageV +palestinechronicle.com8.widget_media_image > a[href^="https://www.amazon.com/"]2 +cracked-games.org.widget_metaslider_widget: +washingtoncitypaper.com.widget_newspack-ads-widget. + +nypost.com.widget_nypost_dfp_ad_widget6 + +nypost.com$.widget_nypost_vivid_concerts_widget= +bitcoinist.com + newsbtc.com.widget_premium_partners6 +permanentstyle.com.widget_ps-midpage-mobile-ad8 +twistedsifter.com.widget_sifter_ad_bigbox_widget‚ +catcountry951.com +nashfm1065.com + 985kissfm.net + power923.com + +wncv.com + +wskz.com +bxr.com.widget_simpleimage: +mypunepulse.com + optimyz.com.widget_smartslider34 +permanentstyle.com.widget_sow-advertisements‚ +thecatholictravelguide.com +brigantinenow.com +downbeachbuzz.com +acprimetime.com +androidpctv.com.widget_sp_image„G +streamingrant.com +screenbinge.com.widget_sp_image-image-link& +gamertweak.com.widget_srlzycxh¯ +webkinznewz.ganzworld.com +freedesignresources.net +utahgunexchange.com +captainaltcoin.com +ripplecoinnews.com +dailyboulder.com + webpokie.com .widget_text, + +nypost.com.widget_text.no-mobile.box, +tutorialink.com.widget_ti_add_widget: +pacenewsonline.com .widget_webads_displayads_widget< +carpeludum.com&.widget_widget_catchevolution_adwidget6 +cryptoreporter.info.widget_wpstealthads_widget1 + techpout.com.widget_xyz_insert_php_widget +ign.com .wiki-bobble + wethegeek.com.win* + dailywire.com.wisepops-block-image + +gg.deals .with-banner$ +windowsloop.com .wl-prakatana: + reuters.com'.workspace-article-banner__image__2Ibji& +dictionary.com.wotd-widget__ad* +warontherocks.com.wotr_top_lbjspot8 +guitaradvise.com .wp-block-affiliate-plugin-lassoE +thechainsaw.com..wp-block-create-block-pedestrian-gam-ad-block8 + gamepur.com%.wp-block-dotesports-affiliate-button; +dotesports.com +primagames.com.wp-block-gamurs-ad3 +themarysue.com.wp-block-gamurs-ad__creative2 +gearpatrol.com.wp-block-gearpatrol-ad-slot< +gearpatrol.com&.wp-block-gearpatrol-from-our-partners" + club386.com.wp-block-group< +gamingskool.com%.wp-block-group-is-layout-constrainedL +samehadaku.email4.wp-block-group-is-layout-constrained > [href] > img7 +independent.com .wp-block-group__inner-container¥ +millennial-grind.com +defence-industry.eu +houstonherald.com +cryptofeeds.news +survivopedia.com +gamenguides.com +teslaoracle.com.wp-block-image0 +lowcarbtips.org.wp-block-image.size-full/ +livability.com.wp-block-jci-ad-area-two* + hot97.com.wp-block-mediaco-ione-adn +bangordailynews.com +michigandaily.com>.wp-block-newspack-blocks-wp-block-newspack-ads-blocks-ad-unit6 + crikey.com.au!.wp-block-pm-ad-placeholder-blockP +hyperallergic.com +repeatreplay.com +steamdeckhq.com.wp-block-spacer( + thewrap.com.wp-block-the-wrap-ad$ +c19-worldnews.com .wp-caption$ + biznews.com.wp-image-1055350$ + biznews.com.wp-image-1055541) +strangesounds.org.wp-image-281312! + rvguide.com.wp-image-3611! + kiryuu.id.wp-image-465340+ +thecricketlounge.com.wp-image-88221% + weisradio.com.wp-image-931153& + appuals.com.wp-timed-p-content€ +gamersocialclub.ca +hawaiireporter.com +chromoscience.com +michaelsavage.com +conandaily.com + bevmalta.org.wpa + +techyv.com .wpb_raw_code6 +premiumtimesng.com.wpb_raw_code > .wpb_wrapper  + ukutabs.com .wpb_raw_html( +nationalfile.com.wpb_wrapper > p7 +coralspringstalk.com.wpbdp-listings-widget-list +tejanonation.net.wpcnt( +dailynews24.in.wplite-banner-ads> +americanfreepress.net +sashares.co.za.wppopups-whole +theregister.com.wptl +fontawesome.com.wrap-ad8 + warezload.net#.wrapper > center > center > [href]5 +ventureburn.com + memeburn.com.wrapper--grey/ +hotnewhiphop.com.wrapper-Desktop_HeaderI +restaurantbusinessonline.com +cspdailynews.com.wrapper-au-popup" + paultan.org.wrapper-footer  + tftactics.gg .wrapper-lb1# +webtoolhub.com .wth_zad_text" +forums.ventoy.net .wwads-cn¦&- +waterfordwhispersnews.com .wwn-ad-unit( + geekflare.com.x-article-818cc9d4± +beaumontenterprise.com +houstonchronicle.com +myjournalcourier.com +stamfordadvocate.com +theintelligencer.com +middletownpress.com +registercitizen.com +michigansthumb.com +greenwichtime.com +manisteenews.com +mysanantonio.com +expressnews.com +myplainview.com +sfchronicle.com +nhregister.com +ourmidland.com + lmtonline.com + +ctpost.com + +sfgate.com + chron.com +mrt.com.x100.bg-gray100& +beforeitsnews.com .x1x2prx2lbnm# +aupetitparieur.com .x7zry3pb + +mcpmag.com .xContent" +theseotools.net .xd_top_box$ +livejournal.com .xhtml_banner$ +dallasnews.com.xl_right-rail) +stopmandatoryvaccination.com.xoxo# +naturalblaze.com .xtfaoba0u1" + seattlepi.com .y100.package  +mamieastuce.com .y288crhb + coin360.com.y49o7q$ + titantv.com.yRDh6z2_d0DkfsT3â +365economist.com +historictalk.com +visualchase.com +bridewired.com +drgraduate.com +parentmood.com +theecofeed.com +thefunpost.com + 247mirror.com + wackojaco.com + dailybee.com + mvpmode.com.ya-slot + pravda.ru .yaRtbBlock! +yardbarker.com .yb-card-ad* +yardbarker.com.yb-card-leaderboard" +yardbarker.com .yb-card-out‹ +gamereactor.com.tr +gamereactor.asia +gamereactor.cn +gamereactor.cz +gamereactor.de +gamereactor.dk +gamereactor.es +gamereactor.eu +gamereactor.fi +gamereactor.fr +gamereactor.gr +gamereactor.it +gamereactor.jp +gamereactor.kr +gamereactor.me +gamereactor.nl +gamereactor.no +gamereactor.pl +gamereactor.pt +gamereactor.se +gamereactor.vn.yks300, +desmoinesregister.com.ymHyVK__ymHyVK( + shockwave.com.ympb_target_banner' + saltwire.com.youtube_article_ad, +yellowpages.co.za.yp-object-ad-modal +readneverland.com.z-0 + +buzzly.art .z-10.w-max +howstuffworks.com.z-9990 +rightwingnews.com +culturemap.com.z-ad  + tekdeeps.com .zAzfDBzdxq30 + mashable.com + pcmag.com +ign.com.zad, +windows101tricks.com.zanui-container + techspot.com.zenerr + antimusic.com.zerg" + pcmag.com.zmgad-full-widthí +charlotteobserver.com +myrtlebeachonline.com +bellinghamherald.com +ledger-enquirer.com +idahostatesman.com +thenewstribune.com +tri-cityherald.com +elnuevoherald.com +mercedsunstar.com +sanluisobispo.com +star-telegram.com +heraldonline.com +islandpacket.com +newsobserver.com +centredaily.com +mcclatchydc.com +miamiherald.com +theolympian.com +kansascity.com + bradenton.com + fresnobee.com + heraldsun.com + sunherald.com + kentucky.com + thestate.com + cleaner.com + cults3d.com + weekand.com + +kansas.com + +modbee.com + +sacbee.com + macon.com +bnd.com.zoneð +charlotteobserver.com +myrtlebeachonline.com +bellinghamherald.com +ledger-enquirer.com +idahostatesman.com +thenewstribune.com +tri-cityherald.com +elnuevoherald.com +mercedsunstar.com +sanluisobispo.com +star-telegram.com +heraldonline.com +islandpacket.com +newsobserver.com +centredaily.com +mcclatchydc.com +miamiherald.com +theolympian.com +kansascity.com + bradenton.com + fresnobee.com + heraldsun.com + sunherald.com + kentucky.com + thestate.com + cleaner.com + cults3d.com + weekand.com + +kansas.com + +modbee.com + +sacbee.com + macon.com +bnd.com.zone-el + cleaner.com .zone-sky +cnn.com +.zone__ads! +marketscreener.com.zppAds% +wunderground.com AD-TRIPLE-BOX! +tjrwrestling.net [ad-slot]; + cloutgist.com + codesnse.com[alt="AD DESCRIPTION"]* +exchangerates.org.uk[alt="banner"]{ +browardpalmbeach.com +phoenixnewtimes.com +dallasobserver.com +miaminewtimes.com + westword.com [apn-ad-hook]) +gab.com[aria-label*="Sponsored:"]& + issuu.com[aria-label="Advert"]4 +thepointsguy.com[aria-label="Advertisement"]/ + foodlion.comria-label="Sponsored Ad"]. +wsj.com[aria-label="Sponsored Offers"]@ +blackbeltmag.com([aria-label="Wix Monetize with AdSense"]Y +giantfoodstores.com +martinsfoods.com + giantfood.com[aria-label^="Sponsored"]! + odishatv.in[class$="-ad"]* +impressivetimes.com[class$="-ads"]3 +economictimes.indiatimes.com[class*="-ad-"]M +thehansindia.com5[class*="-ad-"]:not(#inside_post_content_ad_1_before)+ +collegedunia.com[class*="-ad-slot"]# +80.lv[class*="BrndigPrmo_"]) + petco.com[class*="SponsoredText"]- + +fotmob.comlass*="TopBannerWrapper"]) +jagranjosh.com[class*="_AdColl_"]) +jagranjosh.com[class*="_BodyAd_"]' +top.gg[class*="__AdContainer-"]N +everydaykoala.com +playjunkie.com#[class*="__adspot-title-container"]‘A +everydaykoala.com +playjunkie.com[class*="__adv-block"]+ + gamezop.com[class*="_ad_container"]9 +cointelegraph.com + +doodle.com[class*="ad-slot"]+ + bmwblog.com[class*="bmwbl-300x250"]+ + bmwblog.com[class*="bmwbl-300x600"]ä +captainaltcoin.com +insidebitcoins.com +cryptopotato.com +news.bitcoin.com +coinpaprika.com +cryptonewsz.com +bitcoinist.com +cryptonews.com + watcher.guru + newsbtc.com + philnews.ph[class*="clickout-"]+ +manabadi.co.in[class*="dsc-banner"]( +startribune.com[class*="htlad-"]) +fullmatch.info[class*="wp-image"]“ + +douglas.at + +douglas.be + +douglas.ch + +douglas.cz + +douglas.de + +douglas.es + +douglas.hr + +douglas.hu + +douglas.it + +douglas.lt + +douglas.lv + +douglas.nl + +douglas.pl + +douglas.pt + +douglas.ro + +douglas.si + +douglas.sk + nocibe.fr[class="cms-criteo"]0 +m.economictimes.com[class="wdt-taboola"]) + topgear.com[class^="AdContainer"]$ +jagranjosh.com[class^="Ad_"]5 + shoprite.com![class^="CitrusBannerXContainer"], + bloomberg.com[class^="FullWidthAd_"]- + +genius.comlass^="InnerSectionAd__"]. + +genius.com[class^="InreadContainer__"]+ + zerohedge.com[class^="PromoButton"]# + uploader.link[class^="ads"]! + +nasdaq.com[class^="ads_"]E +uniladtech.com/[class^="advert-placeholder_advertPlaceholder"]! + +nasdaq.com[class^="btf_"]! + +weather.us[class^="dkpw"]3 +dallasnews.com[class^="dmnc_features-ads-"]/ +romhustler.org[class^="leaderboard_ad"]$ + filmibeat.com[class^="oiad"]4 +nofilmschool.com[class^="rblad-nfs_content"]= +thetimes.co.uk'[class^="responsive__InlineAdWrapper-"]& +nagpurtoday.in[class^="sgpb-"]- + cmswire.com[class^="styles_ad-block"]5 + cmswire.com"[class^="styles_article__text-ad"]< + cmswire.com)[class^="styles_article__top-ad-wrapper"]% + hancinema.net[class^="wmls_"]* + enostech.com[class^="wp-image-41"]! + torlock.com[class^="wrn"]# +newspointapp.com [ctn-style]( +flatpanelshd.com[data-aa-adunit]- + dribbble.com[data-ad-data*="ad_link"]! + +usnews.com[data-ad-props]; +androidauthority.com + soundguys.com[data-ad-type]8 +charlieintel.com + dexerto.com[data-ad-unit-id]& +motortrend.com[data-ad="true"]# +gamelevate.com [data-adpath]/ + coingecko.com[data-ads-target="banner"]2 +timesofindia.indiatimes.com[data-aff-type]) +czechtheworld.com[data-affiliate]) + thesun.co.uk[data-aspc="newBILL"]? +jobstreet.com.sg'[data-automation="homepage-banner-ads"]I +jobstreet.com.sg1[data-automation="homepage-marketing-banner-ads"]3 + groupon.com [data-bhc$="sponsored_carousel"]9 + +costco.com'[data-bi-placement="Criteo_Home_Espot"]H + costco.ca7[data-bi-placement="Criteo_Product_Display_Page_Espot"], +privacywall.org[data-bingads-suffix]] +sfchronicle.com +timesunion.com + seattlepi.com + chron.com[data-block-type="ad"]9 + chewy.com([data-carousel-id="plp_sponsored_brand"]/ + theblaze.comata-category="SPONSORED"]0 +autotrader.com[data-cmp="alphaShowcase"]. +gab.com[data-comment="gab-ad-comment"]- + sephora.com[data-comp*="RMNCarousel"]+ + sephora.com[data-comp*="RmnBanner"]) +bbc.com[data-component="ad-slot"]2 + bloomberg.com[data-component="in-body-ad"]C +lookfantastic.com*[data-component="sponsoredProductsCriteo"]> +vox.com/[data-concert="leaderboard_top_tablet_desktop"]µ@ +vox.com1[data-concert="outbrain_post_tablet_and_desktop"]* + +curbed.com[data-concert="prelude"]2 +vox.com#[data-concert="tablet_leaderboard"]! + polygon.com[data-concert]< +timesofindia.indiatimes.com[data-contentprimestatus]3 + coingecko.com[data-controller="button-ads"]6 +hedgefollow.com[data-dee_type^="large_banner"]@ +digitalspy.com*[data-embed="embed-gallery"][data-node-id]^ +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com [data-empty]4 +badgerandblade.com +ginx.tv[data-ez-ph-id]/ + news.sky.comata-format="leaderboard"]" +cooljugator.com [data-fuse]< +euromaidanpress.com +cumbriacrack.com [data-hbwrap]A +dannydutch.com + tvzoneuk.comata-hook="HtmlComponent"]. +blackbeltmag.com[data-hook="bgLayers"]3 + hackster.io [data-hypernova-key="ModularAd"]: +clevelandclinic.org[data-identity*="billboard-ad"]; +clevelandclinic.org [data-identity="leaderboard-ad"]. +motortrend.com[data-ids="AdContainer"]' + +igraal.com[data-ig-ga-cat="Ad"]' +jeffdornik.com[data-image-info] + phoneia.com [data-index]1 +dailymail.co.uk[data-is-sponsored="true"]j@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com[data-layout="ad"]$ + +motor1.com[data-m1-ad-label]. + +cnet.com[data-meta="placeholder-slot"]; +lightnovelcave.com +lightnovelpub.com [data-mobid]3 +qvc.com$[data-module-feature-name^="CRITEO"]4 + coindesk.com [data-module-name="high-impact"]$ +independent.co.uk [data-mpu1], + +goal.com[data-name="ad-leaderboard"]3 + polygon.com [data-native-ad-id^="container"]$ +jeffdornik.com[data-pin-url], +extremetech.com[data-pogo="sidebar"]% + mashable.com[data-pogo="top"]P + gumtree.com=[data-q="section-middle"] > div[style^="display:grid;margin"]? + +scmp.com/[data-qa="AppBar-renderLayout-AdSlotContainer"]= + +scmp.com-[data-qa="ArticleContentRightSection-AdSlot"]5 +washingtonpost.comata-qa="article-body-ad"]3 +washingtonpost.com[data-qa="right-rail-ad"] +ginx.tv +[data-ref]. +euroweeklynews.com[data-revive-zoneid]5 +chemistwarehouse.com.au[data-rm-beacon-state]* + +disqus.com[data-role="ad-content"]* + news.sky.com[data-role="ad-label"]4 + olympics.com [data-row-type="custom-row-adv"]L +timesofindia.indiatimes.com)[data-scrollga="spotlight_banner_widget"]: +cruisecritic.com"[data-sentry-component="NativeAd"]  + +trakt.tv[data-snigel-id]/ +amp.theguardian.com[data-sort-time="1"]C +timesofindia.indiatimes.com [data-sp-click="stpPgtn(event)"]7 +theinertia.com![data-spotim-module="tag-tester"]% + +vrbo.com[data-stid="meso-ad"]- + etherscan.io[data-t8xt5pt6kr-seq="0"]  +si.com[data-target="ad"]/ + coingecko.com[data-target="ads.banner"], +the-express.com[data-tb-non-consent]A +drivencarguide.co.nz%[data-test-ui="outbrain-suggestions"]: + +woot.com*[data-test-ui^="advertisementLeaderboard"]0 + +target.com[data-test="featuredProducts"]4 + +zillow.com"[data-test="search-list-first-ad"]. + +target.com[data-test="sponsored-text"], + reuters.com[data-testid="CnxPlayer"]. + reuters.comata-testid="Leaderboard"]¿+. + topgear.comata-testid="MpuPremium1"]4 + topgear.com![data-testid="MpuPremium1Single"]. + topgear.comata-testid="MpuPremium2"]4 + topgear.com![data-testid="MpuPremium2Single"]3 + reuters.com [data-testid="ResponsiveAdSlot"]- + nytimes.com[data-testid="StandardAd"]* + topgear.com[data-testid="TopSlot"]< +bleacherreport.com + coles.com.au[data-testid="ad"]8 + nexusmods.com#[data-testid="ad-container-player"]2 + kijiji.ca![data-testid="adsense-container"], +gozofinder.com[data-testid="advert"]4 + gocomics.com [data-testid="advertising-unit"]< + coles.com.au([data-testid="banner-container-desktop"]. + petco.com[data-testid="citrus-widget"]; + argos.co.uk([data-testid="citrus_products-carousel"]A +theweathernetwork.com$[data-testid="content-feed-ad-slot"]h +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com[data-testid="driver"]9 +washingtonpost.com[data-testid="fixed-bottom-ad"]5 + +sbs.com.au#[data-testid="hbs-widget-skeleton"]> +theweathernetwork.com![data-testid="header-ad-content"]t +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com"[data-testid="header-leaderboard"]9 + +forbes.com'[data-testid="locked-top-ad-container"]8 + +imdb.com([data-testid="media-sheet__attr-banner"], +you.com[data-testid="microsoft-ads"]? +tntsports.co.uk([data-testid="molecule-marketing-block"]7 +bedbathandbeyond.comata-testid="newArrivals"]> +bedbathandbeyond.com"[data-testid="ospRecommendations"]2 +washingtonpost.com[data-testid="outbrain"]6 +sportingnews.com[data-testid="outbrain-block"]9 +washingtonpost.com[data-testid="placeholder-box"]8 +theweathernetwork.comata-testid="pre-ad-text"]5 +abcnews.go.com[data-testid="prism-sticky-ad"]/ + +zillow.com[data-testid="right-rail-ad"]1 + freepik.com[data-testid="sponsor-banner"]o +medicalnewstoday.com +psychcentral.com +healthline.com + greatist.com[data-testid="sponsored-bar"]p +manomano.co.uk + manomano.de + manomano.es + manomano.fr + manomano.it[data-testid="spr-brd-banner"]? +therealdeal.com([data-testid="test-div-id-for-pushdown"]6 +duckduckgo.com [data-testid=serp-popover-promo]> + +game8.co.[data-track-nier-keyword="footer_overlay_ads"]< + money.com+[data-trk-company="rocket-mortgage-review"]) + +goal.com[data-type="AdComponent"]È  +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +northamptonchron.co.uk +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +lincolnshireworld.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +totallysnookered.com +falkirkherald.co.uk +nottinghamworld.com +yorkshirepost.co.uk +bedfordtoday.co.uk +burnleyexpress.net +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +liverpoolworld.uk +meltontimes.co.uk +newryreporter.com +surreyworld.co.uk +derbyworld.co.uk +derryjournal.com +glasgowworld.com +hemeltoday.co.uk +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +fifetoday.co.uk +londonworld.com +walesworld.com +wigantoday.net + thestar.co.uk + scotsman.com + +chad.co.uk + lep.co.uk[data-type="AdRowBillboard"]= +thesportsrush.com +search.brave.com[data-type="ad"]8 +dictionary.com"[data-type="ad-horizontal-module"]' +gadgetsnow.com[data-type="mtf"]= +forum.ragezone.com#[data-widget-key="widget_partners"]/ + petco.com[data-widget-type="citrus-ad"]3 + petco.com"[data-widget-type="citrus-banner"]+ + petco.com[data-widget-type^="rmn-"]8 +theautopian.com![data-widget_type="html.default"], + namepros.com[data-xf-init][data-tag]7 +cnn.com([data-zone-label="Paid Partner Content"]B +faroutmagazine.co.uk + +hitc.com[dock="#primis-dock-slot"]c +browardpalmbeach.com +metrotimes.com + leoweekly.com + citybeat.com[gpt-slot-config-id]_ +riverfronttimes.com +metrotimes.com + leoweekly.com + citybeat.com[gpt-slot-div-id]‘ +londonnewsonline.co.uk +german-way.com +power987.co.za + qsaltlake.com + dailynews.lk + fxempire.com + tfetimes.com[height="250"]G +thetruthwins.com + hapskorea.com + ciiradio.com[height="300"]" + fxempire.com[height="398"]L +pointblanknews.com +sharktankblog.com + namepros.com [height="60"]# +bankbazaar.com [height="80"]‡ +economicconfidential.com +1001tracklists.com +airplaydirect.com +roadtester.com.au +cultofcalcio.com +newzimbabwe.com +bankbazaar.com +eve-search.com + dailynews.lk + opednews.com + runechat.com + tfetimes.com + lyngsat.com [height="90"]) + tokopedia.com[href$="src=topads"]6 +yourbittorrent.com[href*="%20"][href$=".html"]( + photopea.com[href*=".ivank.net"]‘&/ + nzbstars.com + upload.ee[href*=".php"]0 +complaintsingapore.com[href*="/adv.php"]1 +utahgunexchange.com[href*="/click.track"]0 +thepiratebay.org[href*="/redirect?tid="]Š +torrentfreak.com +tubeoffline.com +libtorrent.org +speedcheck.org + utorrent.com + mailgen.biz[href*="://go.nordvpn.net/"]' +auto.creavite.co[href*="?aff="]1 +auto.creavite.co[href*="?utm_medium=ads"]8 +gamecopyworld.com +gamecopyworld.eu [href*="@"]6 +cnx-software.com[href*="aliexpress.com/item/"]* + steroid.com[href*="anabolics.com"]( +cnx-software.com[href*="banner"]‘ +digitallydownloaded.net +analyticsinsight.net +ancient-origins.net +arabtimesonline.com +biblestudytools.com +litecoin-faucet.com +myreadingmanga.info +bitcoinworld.co.in +flickeringmyth.com +premiumtimesng.com +resultuniraj.co.in +ripplesnigeria.com +animeidhentai.com +guidedhacking.com +railcolornews.com +alaskapublic.org +christianity.com +cnx-software.com +fresherslive.com +khmertimeskh.com +thinknews.com.ng +glitched.online +mbauniverse.com +timesuganda.com +totemtattoo.com +allkeyshop.com +coingolive.com +domaingang.com +gizmochina.com +hackernoon.com +parkablogs.com +pastemytxt.com +sashares.co.za +trancentral.tv +zmescience.com + 9jaflaver.com + indishare.org + retail.org.nz + rtvonline.com + ryuugames.com + sofascore.com + digitbin.com + downturk.net + mediaite.com + newsfirst.lk + vumafm.co.za + yugatech.com + katfile.com + +csstats.gg + +mgnetu.com + +nexter.org + +owaahh.com + glodls.to + +asura.gg +kaas.am[href*="bit.ly/"]j +thetruedefender.com +beforeitsnews.com +mytruthnews.com + +in5d.comref*="hop.clickbank.net"]4 + +tumblr.com"[href*="smartadserver.com/click?"]A + +tumblr.com/[href*="smartadserver.com/click?"] + div[class]8 +cnx-software.com [href*="url2.cnx-software.com/"]8 +cnx-software.com [href*="url3.cnx-software.com/"], +linuxlookup.com[href="/advertising"]( +audiobookbay.is[href="/ddeaatr"]- +linuxcareers.com[href="/jobs/alert/"]% +mywaifulist.moe[href="/nord"]9 +whatsmyreferer.com[href="http://fakereferer.com"]< +whatsmyreferer.com"[href="http://fakethereferer.com"]; + toumpano.net'[href="http://roz-tilefona.xbomb.net/"]B +warfarehistorynetwork.com![href="http://www.bktravel.com/"]< +daijiworld.com&[href="http://www.expertclasses.org/"]: +gametracker.com#[href="http://www.gameservers.com"]< +allnewspipeline.com![href="http://www.sqmetals.com/"]= + bitcoiner.tv)[href="https://bitcoiner.tv/buy-btc.php"]2 + +cracked.io [href="https://cutt.ly/U7s7Wu8"]2 + +spys.one"[href="https://fineproxy.org/ru/"]6 + summit.news#[href="https://infowarsstore.com/"]? +americafirstreport.com![href="https://jdrucker.com/ira"]; + julieroys.com&[href="https://julieroys.com/restore"]H +conservativeplaybook.com([href="https://ourgoldguy.com/contact/"]; +davidwalsh.name$[href="https://requestmetrics.com/"]: +unknowncheats.me"[href="https://securecheats.com/"]6 + slaynews.com"[href="https://slaynews.com/ads/"]5 + +cracked.io#[href="https://sweet-accounts.com"]A +complaintsingapore.com#[href="https://thechillipadi.com/"]= +photorumors.com&[href="https://topazlabs.com/ref/70/"]L +bleepingcomputer.com0[href="https://try.flare.io/bleeping-computer/"]3 + uncrate.com [href="https://un.cr/advertise"]F +walletinvestor.com,[href="https://walletinvestor.com/u/gnrATE"]A +duplichecker.com)[href="https://www.duplichecker.com/gcl"]4 + wikifeet.com [href="https://www.feetfix.com"]8 + +patio.so([href="https://www.flexpowertools.com/"]@ +barrettsportsmedia.com"[href="https://www.jimcutler.com"]@ +10minutemail.com([href="https://www.remove-metadata.com"]9 +jagoroniya.com#[href="https://www.virtuanic.com/"]; +cnx-software.com#[href="https://www.youyeetoo.com/"]1 + wplocker.com[href^="//namecheap.pxf.io/"]I + mediafire.com4[href^="//static.mediafire.com/dynamic/af_link.php"] + unogs.com[href^="/ad/"]/ +vikingfile.com[href^="/fast-download/"]0 + +ar15.com [href^="/forums/transfers.html"]� +urbanartassociation.com +notbanksyforum.com +tossinggames.com +pooletown.co.uk%[href^="http://redirect.viglink.com"]; + eevblog.com([href^="http://s.click.aliexpress.com/"]3 + learn-cpp.org[href^="http://www.spoj.com/"]> +scribd.vpdfs.com&[href^="https://accounts.binance.com"]7 +windows-noob.com[href^="https://adaptiva.com/"]D +open.spotify.com,[href^="https://adclick.g.doubleclick.net/"]A +topfiveforex.com)[href^="https://affiliate.iqoption.com/"]D + getcomics.org + +weloma.art![href^="https://aichattings.com"]«!9 + brighteon.com$[href^="https://ams.brighteon.com/"]m +shenisha.substack.com +photorumors.com +orschlurch.net + lilymanga.com[href^="https://amzn.to/"]. + fmovies24.to[href^="https://anix.to/"]F + cloutgist.com + codesnse.com![href^="https://app.adjust.com/"]6 +wiki.gg'[href^="https://app.wiki.gg/showcase/"]5 +topfiveforex.com[href^="https://betfury.io/"]2 + seganerds.com[href^="https://betway.com/"]V +greatandhra.com +moviedokan.lol + kitploit.com[href^="https://bit.ly/"] img5 +coingolive.com[href^="https://bitpreco.com/"]G +analyticsindiamag.com*[href^="https://business.louisville.edu/"]i +highdemandskills.com +50gameslike.com +yumyumnews.com([href^="https://click.linksynergy.com/"]7 + learn-cpp.org"[href^="https://codingforkids.io"]C +parametric-architecture.com [href^="https://enscape3d.com/"]8 + yourstory.com#[href^="https://form.jotform.com/"]E +limetorrents.ninjaproxy1.com![href^="https://gamestoday.org/"]t +emailnator.com +whereto.stream + scrolller.com + ahaan.co.uk +myip.is![href^="https://go.nordvpn.net/"]8 +everybithelps.io [href^="https://hi.switchy.io/"]1 + phandroid.com[href^="https://howl.link/"]; +imagetwist.com%[href^="https://imagetwist.com/pxt/"]7 +topfiveforex.com[href^="https://iqoption.com/"]N +theburningplatform.com0[href^="https://libertasbella.com/collections/"]7 +topfiveforex.com[href^="https://luckyfish.io/"]; +crypto-news-flash.com[href^="https://mollars.com/"]W +thelibertydaily.com +abovetopsecret.com&[href^="https://mypatriotsupply.com/"]9 +topfiveforex.com![href^="https://olymptrade.com/"]4 +topfiveforex.com[href^="https://omibet.io/"]8 +windows-noob.com [href^="https://patchmypc.com/"]; +unknowncheats.me#[href^="https://proxy-seller.com/"]. + multi.xxx[href^="https://prtord.com/"]< +cryptonews.com&[href^="https://rapi.cryptonews.com/"]2 + tcbscans.com[href^="https://readcbr.com/"]3 + +rlsbb.cc#[href^="https://rlsbb.cc/link.php"]3 + +rlsbb.ru#[href^="https://rlsbb.ru/link.php"]: +everybithelps.io"[href^="https://shop.ledger.com/"]K +all-free-download.com.[href^="https://shutterstock.7eer.net/c/"] img0 +yts.mx"[href^="https://stARtgAMinG.net/"]E +terraria.wiki.gg-[href^="https://store.steampowered.com/app/"]= + brighteon.com([href^="https://support.brighteon.com/"]P +highshortinterest.com +beforeitsnews.com[href^="https://tinyurl.com/"]7 +tripsonabbeyroad.comref^="https://tp.media/"]@ + +minidl.org.[href^="https://uploadgig.com/premium/index/"]9 + wikifeet.com%[href^="https://vip.stakeclick.com/"]0 + +cracked.io[href^="https://vshield.com/"]= +cnx-software.com%[href^="https://www.aliexpress.com/"]F + spectator.org + thespoken.cc![href^="https://www.amazon.com/"]3 + mailshub.in [href^="https://www.amazon.in/"]> +cnx-software.com&[href^="https://www.armdesigner.com/"]J +bleepingcomputer.com.[href^="https://www.bleepingcomputer.com/go/"]Z +naturalnews.com +newstarget.com + health.news"[href^="https://www.brighteon.tv"]> + +work.ink.[href^="https://www.buff.game/buff-download/"]; + seganerds.com&[href^="https://www.canadacasino.ca/"]8 +onecompiler.com![href^="https://www.datawars.io"]9 +ratemycourses.io![href^="https://www.essaypal.ai"]: + seganerds.com%[href^="https://www.ewinracing.com/"]9 +crackwatcher.com![href^="https://www.kinguin.net"]O +gamecopyworld.com +gamecopyworld.eu"[href^="https://www.kinguin.net/"]R +defenseworld.net:[href^="https://www.marketbeat.com/scripts/redirect.aspx"]= + weberblog.net([href^="https://www.neox-networks.com/"]? +newstarget.com)[href^="https://www.newstarget.com/ARF/"]= +how2electronics.com"[href^="https://www.nextpcb.com/"]F + ownedcore.com1[href^="https://www.ownedcore.com/forums/cb.php"]< +how2electronics.com![href^="https://www.pcbway.com/"]; +news.itsfoss.com#[href^="https://www.pikapods.com/"]† +welovemanga.one + nicomanga.com + hivetoon.com + mangagun.net + +rawinu.com + +weloma.art"[href^="https://www.polybuzz.ai/"]á= + bikeroar.com)[href^="https://www.roaradventures.com/"]I +searchcommander.com.[href^="https://www.searchcommander.com/rec/"]= + shroomery.org([href^="https://www.shroomery.org/ads/"]R +newstarget.com + censored.news+[href^="https://www.survivalnutrition.com"]@ +swimcompetitive.com%[href^="https://www.swimoutlet.com/"]E +screenshot-media.com)[href^="https://www.tryamazonmusic.com/"]9 +protrumpnews.com![href^="https://www.twc.health/"]Z +ultimate-guitar.com?[href^="https://www.ultimate-guitar.com/send?ug_from=redirect"]: + upload.ee)[href^="https://www.upload.ee/click.php"]7 +gametracker.com [href^="https://www.vultr.com/"]A +wakingtimes.com*[href^="https://www.wendymyersdetox.com/"]< +babylonbee.com&[href^="https://www.yrxtrk.com/aff_c"]E +musicbusinessworldwide.com#[href^="https://wynstarks.lnk.to/"]" + +cars.com[id$="-sponsored"]% +lolalytics.com[id$=":inline"] +80.lv[id*="Image_bnnr"]& + homedepot.com[id*="sponsored"]& +producebluebook.com [id^="BBS"]- +ldoceonline.com[id^="ad_contentslot"]< + bestbuy.com + +bestbuy.cad^="atwb-ninja-carousel"]) +beforeitsnews.com[id^="banners_"]6 +pluggedingolf.com[id^="black-studio-tinymce-"]& + shipt.com[id^="cms-ad_banner"]& + +hola.com[id^="div-hola-slot-"]' +designtaxi.com[id^="dt-small-"]! + skyblock.bz[id^="flips-"]# + getcomics.org[id^="getco-"]0 + eatthis.com[id^="gm_karmaadunit_widget"] + +vice.com[id^="htlad-"]+ +designtaxi.com[id^="in-news-link-"]+ + komando.com[id^="leaderboardAdDiv"]$ + dailydooh.com[id^="rectdiv"], +si.com[id^="static-ad-placeholder_"]( +daily-choices.com[id^="sticky_"]% +wuxiaworld.site[id^="wuxia-"]# + samfw.com[name="chimera_b"]) + grabcad.com[ng-if="model.asense"]/ +buzzheavier.com[onclick="downloadAd()"]0 +survivopedia.com[onclick="recordClick("]= +timesofindia.indiatimes.com[onclick="stpPgtn(event)"]6 +qvc.com'[onclick^="cmCreateManualLinkClickTag"]7 + filecrypt.cc + filecrypt.co[onclick^="var lj"]+ +transfermarkt.co.uk[referrerpolicy]¯ +twitch-tools.rootonline.de +euroweeklynews.com +appleinsider.com + dappradar.com + sitepoint.com + tld-list.com + wccftech.com + metro.co.uk[rel*="sponsored"]< +websiteoutlook.com +warecracks.com[rel="nofollow"]4 +myanimelist.net[src*="/c/img/images/event/"]' +audioz.download[src*="/promo/"]F +transfermarkt.com-[src*="https://www.transfermarkt.com/image/"]0 +wallpaperaccess.com[src="/continue.png"]. +audiobookbay.is[src="/images/d-t.gif"]/ +audiobookbay.is[src="/images/dire.gif"]< +webcamtests.com%[src^="/MyShowroom/view.php?medium="]8 +linuxtopia.org"[src^="/includes/index.php/?img="]3 +academictorrents.com[src^="/pic/sponsors/"]D +exportfromnigeria.info&[src^="http://storage.proboards.com/"]E +exportfromnigeria.info'[src^="http://storage2.proboards.com/"]9 + +infotel.ca'[src^="https://infotel.ca/absolutebm/"]E +exportfromnigeria.info'[src^="https://storage.proboards.com/"]F +exportfromnigeria.info([src^="https://storage2.proboards.com/"]@ + +buzzly.art.[src^="https://submissions.buzzly.art/CANDY/"]' + nesmaps.com[src^="images/ads/"]F +tennismajors.com + manhwabtt.com[style$="min-height: 250px;"]/ +livejournal.com[style$="width: 300px;"]% + circleid.com[style*="300px;"]³(% + circleid.com[style*="995px;"]G +news.abs-cbn.com/[style*="background-color: rgb(236, 237, 239)"]‘ +videogameschronicle.com +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com'[style*="content-visibility: visible;"]¤ +videogameschronicle.com +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com:[style*="display: block !important; margin-bottom: 20px;"]F +online-calculator.org +kingmodapk.net[style*="height:300px"]› +videogameschronicle.com +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com1[style*="margin-left: auto; margin-right: auto;"]H + untapped.gg5[style*="min-height: 90px; box-sizing: content-box;"]† +videogameschronicle.com +timeextension.com +nintendolife.com +pushsquare.com + purexbox.com[style*="min-height:250px;"]. + +tetris.com[style*="min-width: 300px;"]. + +tetris.com[style*="min-width: 728px;"]8 + +coolors.co&[style*="position:absolute;top:20px;"]ê +movies-watch.com.pk +sukidesuost.info +gogoanime.co.in +leercapitulo.co + bravoporn.com + miraculous.to + putlockers.li + waploaded.com + harimanga.me + hurawatch.cc + mangadna.com + yts-subs.com + himovies.to + instamod.co + messitv.net + +apkmody.io + +linksly.co + 4anime.gg + nkiri.com + +ytmp3.cc"[style*="width: 100% !important;"]? +news.abs-cbn.com'[style*="width:100%;min-height:300px;"]û +movies-watch.com.pk +sukidesuost.info +gogoanime.co.in +leercapitulo.co + bollyflix.how + bravoporn.com + miraculous.to + putlockers.li + waploaded.com + harimanga.me + hurawatch.cc + mangadna.com + yts-subs.com + himovies.to + instamod.co + messitv.net + zonatmo.com + +apkmody.io + +linksly.co + 4anime.gg + nkiri.com + +ytmp3.cc[style*="z-index:"]U + shotcut.orgB[style="background-color: #fff; padding: 6px; text-align: center"]N +realitytvworld.com4[style="background-color: white; background: white"]v + coin360.comc[style="display:flex;justify-content:center;align-items:center;min-height:100px;position:relative"]4 +guides.wp-bullet.com[style="height: 288px;"]> +forum.lowyat.net&[style="height:120px;padding:10px 0;"]2 +imagecolorpicker.com[style="height:250px"]C +forum.lowyat.net+[style="height:250px;padding:5px 0 5px 0;"], + tenforums.com[style="height:280px;"]+ +geekzone.co.nz[style="height:90px"]C + cycleexif.com + thespoken.cc[style="margin-bottom: 25px;"]Y +builtbybit.comC[style="margin-top: 20px; display: flex; justify-content: center;"]p +realitytvworld.comV[style="margin: 5px 0px 5px; display: inline-block; text-align: center; height: 250;"]z + +gpfans.comh[style="margin:10px auto 10px auto; text-align:center; width:100%; overflow:hidden; min-height: 250px;"]4 +timesnownews.com[style="min-height: 181px;"]- + +namemc.comtyle="min-height: 238px"]/ + africam.com[style="min-height: 250px;"]; + waifu2x.net([style="min-height: 270px; margin: 1em"]3 +mydramalist.com[style="min-height: 600px;"], + +phys.org[style="min-height: 601px;"]F + +adweek.com4[style="min-height: 90px; box-sizing: content-box;"]? + open3dlab.com + africam.comtyle="min-height: 90px;"]W +theartnewspaper.com +calendar-uk.co.uk + +wahm.comtyle="min-height:250px;"]R +theroar.com.au<[style="min-height:260px;max-height:260px;overflow:hidden;"]) +ntd.com[style="min-height:266px"]) +ntd.com[style="min-height:296px"]2 +mydramalist.comtyle="min-height:600px;"]@ +edgegamers.com*[style="padding-bottom:10px;height:90px;"]f +dvdsreleasedates.comJ[style="padding:15px 0 15px 0;width:728px;height:90px;text-align:center;"]W + himovies.sxD[style="text-align: center; margin-bottom: 20px; margin-top: 20px;"]9 +analyticsinsight.net[style="text-align: center;"]3 +kreationnext.comtyle="text-align:center"]Q +forum.nasaspaceflight.com0[style="text-align:center; margin-bottom:30px;"]N +news.bitcoin.com6[style="width: 100%; height: auto; max-width: 300px;"]N +news.bitcoin.com6[style="width: 100%; height: auto; max-width: 690px;"]4 + waifu2x.net![style="width: 90%;height:120px"]… + +law360.coms[style="width:100%;display:flex;justify-content:center;background-color:rgb(247, 247, 247);flex-direction:column;"]A +tennisworldusa.org'[style="width:300px;min-height:250px;"]7 + newagebd.net#[style^="float:left; width:320px;"]0 + hsreplay.net[style^="min-height: 90px;"]. + +decrypt.co[style^="min-width: 728px;"]0 + perchance.orgtyle^="position: fixed;"]… +passiveaggressivenotes.com +integral-calculator.com + filmdaily.co + gelbooru.com + twcenter.net[style^="width: 728px;"]< +alphacoders.com%[style^="width:980px; height:280px;"]: +gametracker.com#[style^="width:980px; height:48px"]& + mrchecker.net[target="_blank"]* + +news12.com[template="leaderboard"]% +myfitnesspal.com [title*="Ad"]$ + +balls.ie[type="doubleclick"] + kiryuu.id[width="1280"]" + fansshare.com [width="300"]÷$Í +topprepperwebsites.com +forum.gsmhosting.com +themediaonline.co.za +cdmediaworld.com +gametarget.net + jeepforum.com + transdict.com + lnkworld.com + flashx.cc + flashx.co [width="468"]h +americanfreepress.net +analyticsindiamag.com +readneverland.com + namepros.com [width="600"]! + drwealth.com [width="640"]È! +artificialintelligence-news.com +gamblingnewsmagazine.com +forexmt4indicators.com +analyticsindiamag.com +cryptoreporter.info +americaoutloud.com +developer-tech.com +autoaction.com.au +irishcatholic.com +runnerstribe.com +tryorthokeys.com + godradio1.com + tntribune.com + +dafont.com [width="728"]$ +elitepvpers.com [width="729"]$ +elitepvpers.com [width="966"], + presearch.com[x-data*="kwrdAdFirst"]* + presearch.com[x-show="showBanner"]& + mobiforge.coma > img[alt="Ad"]; +eztv.tf +eztv.yt!a > img[alt="Anonymous Download"]0 +designtaxi.coma.a-click[target="_blank"]A + +cript.to1a.btn[target="_blank"][href^="https://cript.to/"]! + infowars.com a.css-1yw960t2 +darkreader.orga.logo-link[target="_blank"]+ + hulkshare.coma.nhsIndexPromoteBlock@ + steam.design,a.profile_video[href^="https://duobot.com/"]! +marinelink.com a.sponsored< + cults3d.com)a.tbox-thumb[href^="https://jlc3dp.com/"]; + cults3d.com(a.tbox-thumb[href^="https://shrsl.com/"]F + cults3d.com3a.tbox-thumb[href^="https://us.store.flsun3d.com/"]E + cults3d.com2a.tbox-thumb[href^="https://www.kickstarter.com/"]? + cults3d.com,a.tbox-thumb[href^="https://www.sunlu.com/"]–@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.com@a[ajaxify*="&eid="] + a[href^="https://l.facebook.com/l.php?u="]& +newstalkflorida.com a[alt="Ad"]) + moviekhhd.biza[alt="Sponsor Ads"]u@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.coma[aria-label="Advertiser link"]p@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.coma[aria-label="Advertiser"]A +themainewire.com)a[aria-label^="The Maine Wire Banner Ad"]1 + alibaba.coma[campaignid][target="_blank"], + bernama.coma[class^="banner_photo_"]* + probuilds.neta[class^="dl-blitz-"]: + +trakt.tv*a[class^="hu-ck-s-t-er-"][target="_blank"] + mallorca.com +a[data-ad]0 +sourceforge.neta[data-label="avastjune"]0 +iconfinder.coma[data-tracking^="iStock"]2 +sashares.co.zaa[data-wpel-link="external"]á +pinterest.com.au +pinterest.com.mx +pinterest.co.uk + pinterest.com + pinterest.at + pinterest.ca + pinterest.ch + pinterest.de + pinterest.es + pinterest.fr + pinterest.it + pinterest.pta[href*="&epik="]R +linuxjournal.com +threatpost.com + imgpile.coma[href*="&utm_campaign="]. +hitbullseye.coma[href*="&utm_medium="], + codelist.cca[href*=".pxf.io/"] > img= +chicagoprowrestling.coma[href*="//thecmf.com/"] > imgG +chicagoprowrestling.com(a[href*="//www.aliciashouse.org/"] > img1 +pcgamestorrents.coma[href*="/gameadult/"]Ù +cardealermagazine.co.uk +breakingbelizenews.com +visualcapitalist.com +mikesmoneytalks.ca +theroanokestar.com +sundayworld.co.za +headfonics.com +landline.media + igorslab.dea[href*="/linkout/"]0 +movie-censorship.coma[href*="/out.php?"]& +imagetwist.coma[href*="/par/"]# +pnn.psa[href*="/partners/"]4 +civilserviceindia.coma[href*="/red.php?bu="]d +universityaffairs.ca +amsterdamnews.com +sundayworld.co.zaa[href*="/sponsored-content/"]û +businessdailyafrica.com +financialexpress.com +coastreporter.net +richmond-news.com +newwestrecord.ca +burnabynow.com +irishtimes.com + spokesman.com + komonews.com + biznews.com + +nsnews.com + +prpeak.coma[href*="/sponsored/"]) +distrowatch.coma[href*="3cx.com"]7 + +97rock.com + +wedg.coma[href*="716jobfair.com"]) + +cript.toa[href*="8stream-ai.com"]2 + uploadrar.coma[href*="?"][target="_blank"]: +pc-games.eu.org#a[href*="https://abandonelp.store"]o +upload4earn.org +usersdrive.com + filefleck.com + sadeempc.com + haxnode.neta[href*="javascript:"]? + twitter.com +x.com#a[href*="src=promoted_trend_click"]E + twitter.com +x.com)a[href*="src=promoted_trend_click"] + div/ + +coolors.coa[href*="srv.Buysellads.com"]+ + kemono.sua[href*="tsyndicate.com/"]1 +unitconversion.orga[href="../noads.html"]4 + osradar.com!a[href="http://insiderapps.com/"]D + cryptorank.io/a[href="https://aitechpad.io"][target="_blank"]5 +dailyuploads.neta[href="https://aptoze.com/"]¸ 9 + tpb.party(a[href="https://mysurferprotector.com/"]= +smalldev.tools'a[href="https://sendit.arcana.network"]3 +pc-games.eu.orga[href="javascript:void(0)"]— +pcgamestorrents.com + igg-games.comka[href][aria-label=""], [width="300"][height^="25"], [width="660"][height^="8"], [width="660"][height^="7"]+ + techporn.pha[href][target*="blank"]¬ +rarbgunblocked.org +rarbgunblock.com +rarbgaccess.org +rarbgmirror.com +rarbgmirror.org +rarbgproxy.com +rarbgproxy.org!a[href][target="_blank"] > buttonQ +tractorbynet.com9a[href][target="_blank"] > img[class^="attachment-large"]0 + gelbooru.coma[href^="//tsyndicate.com/"]- + codapedia.coma[href^="/ad-click.cfm"]5 +bestoftelegram.coma[href^="/ads/banner_ads?"]* +graphic.com.gha[href^="/adverts/"]3 +audiobookbay.isa[href^="/dl-14-days-trial"]/ +kickasstorrents.toa[href^="/download/"]. + kinox.lata[href^="/engine/player.php"]' +torrentgalaxy.toa[href^="/hx?"]) +limetorrents.lola[href^="/leet/"]. +pcgamestorrents.coma[href^="/offernf"]0 +tehrantimes.coma[href^="/redirect/ads/"]* + xbox-hq.coma[href^="banners.php?"]W +iamdisappoint.com +tattoofailure.com + shitbrix.coma[href^="http://goo.gl/"]5 +notbanksyforum.coma[href^="http://l-13.org/"]B + +wjbc.com2a[href^="http://sweetdeals.com/bloomington/deals"]J +amazingfoodmadeeasy.com+a[href^="http://www.amazon.com/gp/product"]T +notbanksyforum.com:a[href^="http://www.ebay.co.uk/usr/heartresearchuk_shop/"]I + 1280wnam.com5a[href^="http://www.milwaukeezoo.org/visit/animals/"]9 +2x4u.de*a[href^="http://www.myfreecams.com/?baf="]1 +rpg.net"a[href^="http://www.rpg.net/ads/"]C + +warm98.com1a[href^="http://www.salvationarmycincinnati.org"]@ +tundraheadquarters.com"a[href^="http://www.tkqlhce.com/"]8 +whatfinger.com"a[href^="https://1775coffee.com/"]2 + shareae.coma[href^="https://aejuice.com/"]1 + coincarp.coma[href^="https://bcgame.sk/"]9 +downloadhub.ltd"a[href^="https://bestbuyrdp.com/"]< +detectiveconanworld.coma[href^="https://brave.com/"]W +broadwayworld.com>a[href^="https://cloud.broadwayworld.com/rec/ticketclick.cfm"]1 + +cript.to!a[href^="https://cript.to/goto/"]B + +cript.to2a[href^="https://cript.to/link/"][href*="?token="]L + cryptorank.io7a[href^="https://cryptorank.io/earn/"][target="_blank"]Y + cryptorank.ioDa[href^="https://cryptorank.io/insights/research/"][target="_blank"]6 + sythe.org%a[href^="https://discord.gg/dmwatch"]2 + moddroid.coa[href^="https://doodoo.love/"]= +pluggedingolf.com$a[href^="https://edisonwedges.com/"]7 + +files.im'a[href^="https://galaxyroms.net/?scr="]3 +egamersworld.coma[href^="https://geni.us/"]J + +warm98.com8a[href^="https://giving.cincinnatichildrens.org/donate"]: +disasterscans.com!a[href^="https://go.onelink.me/"]@ + forkast.news,a[href^="https://h5.whalefin.com/landing2/"]A +helpnetsecurity.com&a[href^="https://helpnet.link/"] > img6 + fileditch.com!a[href^="https://hostslick.com/"]1 + douploads.neta[href^="https://href.li/?"]: +embed.listcorp.com a[href^="https://j.moomoo.com/"]L +disasterscans.com3a[href^="https://martialscanssoulland.onelink.me/"]F + metager.org3a[href^="https://metager.org"][href*="/partner/r?"]Q + cryptorank.io img6 +mastercomfig.coma[href^="https://tradeit.gg/"]: + scrolller.com%a[href^="https://trk.scrolller.com/"]0 +primewire.linka[href^="https://url.rw/"]. + +vnkb.coma[href^="https://vnkb.com/e/"]D + 1280wnam.com0a[href^="https://wistatefair.com/fair/tickets/"]’ +ancient-origins.net +catholicculture.org +lewrockwell.com + anisearch.com + ssbcrack.com,a[href^="https://www.amazon."][href*="tag="]D +pooletown.co.uk-a[href^="https://www.easyfundraising.org.uk"]A + +wjbc.com1a[href^="https://www.farmweeknow.com/rfd_radio/"]< + magic1069.com'a[href^="https://www.fetchahouse.com/"]4 + coachhuey.coma[href^="https://www.hudl.com"]S +elamigos-games.net9a[href^="https://www.instant-gaming.com/"][href*="?igr="]I + isitiptv.com5a[href^="https://www.isitiptv.com/recommends/"] > imgW +thecatholictravelguide.com +domaintyper.com"a[href^="https://www.kqzyfj.com/"]8 + +wgrr.com(a[href^="https://www.mccabelumber.com/"]Y + +wbnq.com + +wbwn.com + +wjbc.com1a[href^="https://www.menards.com/main/home.html"]? + +jox2fm.com + joxfm.com a[href^="https://www.milb.com/"]> +thelibertydaily.com#a[href^="https://www.mypillow.com"]7 +who.is)a[href^="https://www.name.com/redirect/"]W +kollelbudget.com?a[href^="https://www.oorahauction.org/"][target="_blank"] > imgO +minecraft-schematics.com/a[href^="https://www.pingperfect.com/aff.php?"]8 + sythe.org'a[href^="https://www.runestake.com/r/"]< +foxcincinnati.com#a[href^="https://www.safeauto.com"]U +sportscardforum.com:a[href^="https://www.sportscardforum.com/rbs_banner.php?"]I +thecatholictravelguide.com'a[href^="https://www.squaremouth.com/"]; + +adfoc.us+a[href^="https://www.survivalservers.com/"]G +linuxhandbook.com + itsfoss.coma[href^="https://www.warp.dev"]3 + yugatech.coma[href^="https://yugatech.ph/"]: +taiyangnews.info"a[href^="javascript:clickTrach('"]$ + kitguru.neta[id^="href-ad-"]T +washingtontimes.com +home-barista.com + himovies.to + +rarpc.co +a[onclick]Q +dailytruthreport.com5a[onclick^="javascript:window.open('https://bit.ly/"]/ +amishamerica.coma[rel="nofollow"] > imgS +gab.comDa[rel="noopener"][target="_blank"][href^="https://grow.gab.com/go/"]5 +downforeveryoneorjustme.coma[rel="sponsored"]H +stackabuse.com + unsplash.com + nslookup.ioa[rel^="sponsored"]C +colombotimes.lk,a[target="_blank"] img:not([src*="app.jpg"])U +opensubtitles.org img¥ +netuplayer.top + abysscdn.com + ntvid.online + megaplay.cc + wiztube.xyz + +meucdn.vip +waaw.to +hqq.ac +hqq.to +hqq.tva[title="Free money easy"], + +kroger.coma[title^="Advertisement:"]! +rottentomatoes.comad-unit +cryptodaily.co.ukadvert# +cooljugator.com amp-auto-ads  + extraetf.com app-ad-block# + unmatched.ggapp-advertisings@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.comarticle[data-ft*="\"ei\":\""]. + linkedin.comarticle[data-is-sponsored]9 + +xing.com)article[data-qa="disco-updates-video-ad"]; + +xing.com+article[data-qa="disco-updates-website-ad"] + greatist.comasideÅ +germanautoforums.com +hondaaccordforum.com +minicooperforums.com +hondacivicforum.com +landroverforums.com +mitsubishiforum.com +montecarloforum.com +oldsmobileforum.com +volkswagenforum.com +corvetteforums.com +kawasakiforums.com +cadillacforum.com +chryslerforum.com +mustangboards.com +4runnerforum.com +camaroforums.com +hummerforums.com +mercuryforum.com +acuraforums.com +blazerforum.com +civicforums.com +isuzuforums.com +nissanforum.com +pontiactalk.com +saturnforum.com +truckforums.com +volvoforums.com +buickforum.com +hondaforum.com +lexusforum.com +mazdaforum.com +saabforums.com + fordforum.com + cbrforum.comaside > centerP +everydayrussianlanguage.com-aside img[src^="/wp-content/themes/edr/img/"]ˆ +helpnetsecurity.commaside[style="position:relative;display:block;box-sizing:border-box;margin:auto;padding:0;text-align:center;"]¨( +Oÿï08@R?bayequest.com#?#.elementor-section:-abp-contains(Advertisement) + vezod.com av-adv-slot’ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.cabam-inline-promotion˜ +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.cabam-inline-promotion-block� +bluejaysnation.com +theleafsnation.com +dailyfaceoff.com +oilersnation.com +canucksarmy.com +flamesnation.cabam-promotion-list* + nbcsports.combsp-reverse-scroll-ad= +buffstreams.sx'button[data-openuri*=".allsportsflix."]+ + +psycom.netcenter > .vh-quiz-qborder8 +dustinabbott.net + turbobits.cccenter > a > img) +mangas-raw.comcenter > div[style]( +sailingmagazine.net center > font, +greekreporter.comcenter > p > [href]2 +pricehistoryapp.comcenter[class^="min-h-"]6 +builtbybit.com center[style="margin-top: 20px"]$ + +hltv.orgcsmoney-skins-widget' +weatherbug.comdisplay-ad-widget4 + +wings.io$div > [href="https://mechazilla.io"]M + etherscan.io9div > a[target="_blank"][rel="nofollow"] > img[alt="Ads"] +readonepiece.comdiv > b. +coffeeordie.comdiv.HtmlModule > [href][ +web.telegram.orgCdiv.bubbles > div.scrollable > div.bubbles-inner > div.is-sponsored  + +sbs.com.audiv.css-1wbfa8' +steamgifts.comdiv.dont_block_me' + sitepoint.comdiv.inline-contentK + easypet.com8div.kt-inside-inner-col > div.wp-block-kadence-rowlayoutI +windows10forums.com +baking-forums.comdiv.message--post.message$ +thehackernews.com div.rocking0 + tld-list.comdiv.row > .text-center > .ib7 +home.cricketwireless.comdiv.skeleton.block-item3 + forward.com div.sticky-container:first-child; + +newegg.com)div.swiper-slide[data-sponsored-catalyst]* + investing.comdiv.text-\[\#5b616e\] + inverse.comdiv.zz, + presearch.comdiv[\:class*="AdClass"]% +boxing-social.com div[ad-slot]7 +liverpoolway.co.ukdiv[align="center"] > a[href]< + informer.com(div[align="center"][style="margin:10px"]& + +yandex.comdiv[aria-label="Ad"]5 +lifehacker.comdiv[aria-label="Products List"]& + +imginn.comdiv[class$="-money"]+ +azuremagazine.comdiv[class$="azoa"]0 +wsj.com!div[class*="WSJTheme--adWrapper"]_ +tomshardware.com +techcrunch.com + tomsguide.com + pcgamer.comdiv[class*="ad-unit"]8 +aajtakcampus.in!div[class*="ads_ads_container__"]0 +dallasnews.comdiv[class*="features-ads"]` +gamingbible.com + ladbible.com + unilad.co.uk + +unilad.comdiv[class*="margin-Advert"]1 +thefiscaltimes.comdiv[class*="pane-dfp-"]H +emojipedia.org2div[class="flex flex-col items-center md:order-1"]4 +timesofindia.comdiv[class^="ATF_container_"]0 + arkadium.comdiv[class^="Ad-adContainer"]- +dailymotion.comdiv[class^="AdBanner"]C +breastcancer.org +emojipedia.orgdiv[class^="AdContainer"]Ç  +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +northamptonchron.co.uk +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +lincolnshireworld.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +totallysnookered.com +falkirkherald.co.uk +nottinghamworld.com +yorkshirepost.co.uk +bedfordtoday.co.uk +burnleyexpress.net +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +liverpoolworld.uk +meltontimes.co.uk +newryreporter.com +surreyworld.co.uk +derbyworld.co.uk +derryjournal.com +glasgowworld.com +hemeltoday.co.uk +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +fifetoday.co.uk +londonworld.com +walesworld.com +wigantoday.net + thestar.co.uk + scotsman.com + +chad.co.uk + lep.co.ukdiv[class^="AdLoadingText"]A +pricespy.co.nz +pricespy.co.ukdiv[class^="AdPlacement"]' + +lataco.comdiv[class^="AdUnit_"]. + +usnews.comdiv[class^="Ad__Container-"]' + +i24news.tvdiv[class^="Advert_"]C +sportinglife.com+div[class^="Article__FlashTalkingWrapper-"]8 + barrons.com%div[class^="BarronsTheme--adWrapper"]; +someecards.com%div[class^="BaseAdSlot_adContainer_"]0 +theglobeandmail.comdiv[class^="BaseAd_"]- + +cnbc.comdiv[class^="BoxRail-Styles-"]@ + +yallo.tv0div[class^="BrandingBackgroundstyled__Wrapper-"]3 + donedeal.ie div[class^="DFP__StyledAdSlot-"]·21 + +genius.comdiv[class^="DfpAd__Container-"]. +dailymotion.comdiv[class^="DisplayAd"]@ +games.dailymail.co.uk +nba.comdiv[class^="DisplayAd_"]. +alternativeto.netdiv[class^="GamAds_"]F +games.dailymail.co.uk)div[class^="GameTemplate__displayAdTop_"]0 + benzinga.comdiv[class^="GoogleAdBlock_"]9 + allradio.net%div[class^="GoogleAdsenseContainer_"]3 + livescore.comdiv[class^="HeaderAdsHolder_"]C +games.dailymail.co.uk&div[class^="HomeCategory__adWrapper_"]I +games.dailymail.co.uk,div[class^="HomeTemplate__afterCategoryAd_"]? +sportinglife.com'div[class^="Layout__TopAdvertWrapper-"]B +nyctourism.com,div[class^="Layout_mobileStickyAdContainer"]6 + +genius.com$div[class^="LeaderboardOrMarquee__"], + +edhrec.comdiv[class^="Leaderboard_"]3 + appsample.comdiv[class^="MapLayout_Bottom"]D +dailymotion.com-div[class^="NewWatchingDiscovery__adSection"]' + dsearch.comdiv[class^="PreAd_"]E +games.dailymail.co.uk(div[class^="RightRail__displayAdRight_"]* + +genius.comdiv[class^="SidebarAd_"]Å  +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +northamptonchron.co.uk +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +lincolnshireworld.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +totallysnookered.com +falkirkherald.co.uk +nottinghamworld.com +yorkshirepost.co.uk +bedfordtoday.co.uk +burnleyexpress.net +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +liverpoolworld.uk +meltontimes.co.uk +newryreporter.com +surreyworld.co.uk +derbyworld.co.uk +derryjournal.com +glasgowworld.com +hemeltoday.co.uk +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +fifetoday.co.uk +londonworld.com +walesworld.com +wigantoday.net + thestar.co.uk + scotsman.com + +chad.co.uk + lep.co.ukdiv[class^="SidebarAds_"], + +lataco.comdiv[class^="Sponsorship_"]; + chloeting.com&div[class^="StickyFooterAds__Wrapper"]7 + newyorker.com"div[class^="StickyHeroAdWrapper-"]+ + scotsman.comdiv[class^="TopBanner"]( + +cnbc.comdiv[class^="TopBanner-"]D +dailymotion.com-div[class^="VideoInfo__videoInfoAdContainer"]3 +cyprus-mail.comdiv[class^="_amHorizontal_"]2 + timeout.comdiv[class^="_inlineAdWrapper_"]5 + timeout.com"div[class^="_sponsoredContainer_"]0 +cyprus-mail.comdiv[class^="_stickyCnt_"]. +crictracker.comdiv[class^="ad-block-"]B +thehulltruth.com + +fodors.comdiv[class^="ad-placeholder"]* + reuters.comdiv[class^="ad-slot__"]1 +gamingdeputy.comdiv[class^="ad-wrapper-"]+ + +goodrx.comdiv[class^="adContainer"], +statsroyale.comdiv[class^="adUnit_"]* + +goodrx.comdiv[class^="adWrapper-"]B + investing.com + newsday.com + 90min.comdiv[class^="ad_"]3 +constative.comdiv[class^="ad_placeholder_"], + ehitavada.comdiv[class^="ad_space_"]( +greatandhra.comdiv[class^="add"]" + +ndtv.comdiv[class^="add_"]C + ntdeals.net + psdeals.net + xbdeals.netdiv[class^="ads-"]) + dnaindia.comdiv[class^="ads-box"]# + giphy.comdiv[class^="ads_"]O + ladbible.com + +unilad.com + +tyla.com!div[class^="advert-placeholder_"]G + 365scores.com2div[class^="all-scores-container_ad_placeholder_"]> +247solitaire.com + 247spades.comdiv[class^="aspace-"]D +stakingrewards.com*div[class^="assetFilters_desktop-banner_"]8 +releasestv.com"div[class^="astra-advanced-hook-"]/ +onlineradiobox.comdiv[class^="banner-"]+ +technical.citydiv[class^="banner_"]< + 365scores.com'div[class^="bookmakers-review-widget_"]8 +historycollection.comdiv[class^="cis_add_block"]3 + filehorse.comdiv[class^="dx-"][class$="-1"]& + +forbes.comdiv[class^="fbs-ad"]F + 365scores.com1div[class^="games-predictions-widget_container_"]# + astro.comdiv[class^="goad"]2 +groovypost.comdiv[class^="groov-adsense-"]h +webpconverter.com +imagetopdf.com +pdftoimage.com + +pdfkit.com + topdf.comdiv[class^="ha"]I +technologyreview.com-div[class^="headerTemplate__leaderboardRow-"]Í  +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +northamptonchron.co.uk +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +lincolnshireworld.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +totallysnookered.com +falkirkherald.co.uk +nottinghamworld.com +yorkshirepost.co.uk +bedfordtoday.co.uk +burnleyexpress.net +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +liverpoolworld.uk +meltontimes.co.uk +newryreporter.com +surreyworld.co.uk +derbyworld.co.uk +derryjournal.com +glasgowworld.com +hemeltoday.co.uk +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +fifetoday.co.uk +londonworld.com +walesworld.com +wigantoday.net + thestar.co.uk + scotsman.com + +chad.co.uk + lep.co.uk!div[class^="helper__AdContainer"]> +localjewishnews.com#div[class^="local-feed-banner-ads"]2 + bloomberg.comdiv[class^="media-ui-BaseAd"]¨(7 + bloomberg.com"div[class^="media-ui-FullWidthAd"]* + +goal.comdiv[class^="open-web-ad_"]$ + +nltimes.nldiv[class^="r89-"]Y +theodysseyonline.com +spectrum.ieee.org +nationalmemo.comdiv[class^="rblad-"]0 +windowsreport.comdiv[class^="refmedprd"]1 +windowsreport.comdiv[class^="refmedprod"]) + kijiji.cadiv[class^="sponsored-"]- + +target.comdiv[class^="styles__PubAd"]* + semafor.comdiv[class^="styles_ad"]4 +unmineablesbest.comdiv[class^="uk-visible@"]) +gamingdeputy.comdiv[class^="vb-"]1 +whatsondisneyplus.comdiv[class^="whats-"]( + podchaser.comdiv[data-aa-adunit]' + unsplash.comdiv[data-ad="true"] + +deeplol.gg div[data-ad]  + +tennews.indiv[data-adid]À  +leightonbuzzardonline.co.uk +northumberlandgazette.co.uk +yorkshireeveningpost.co.uk +harrogateadvertiser.co.uk +rotherhamadvertiser.co.uk +thesouthernreporter.co.uk +doncasterfreepress.co.uk +northantstelegraph.co.uk +northernirelandworld.com +thescarboroughnews.co.uk +lancasterguardian.co.uk +peterboroughtoday.co.uk +anguscountyworld.co.uk +biggleswadetoday.co.uk +blackpoolgazette.co.uk +buxtonadvertiser.co.uk +dewsburyreporter.co.uk +hucknalldispatch.co.uk +northamptonchron.co.uk +stornowaygazette.co.uk +wakefieldexpress.co.uk +banburyguardian.co.uk +daventryexpress.co.uk +derbyshiretimes.co.uk +lincolnshireworld.com +warwickshireworld.com +worksopguardian.co.uk +halifaxcourier.co.uk +harboroughmail.co.uk +hartlepoolmail.co.uk +totallysnookered.com +falkirkherald.co.uk +nottinghamworld.com +yorkshirepost.co.uk +bedfordtoday.co.uk +burnleyexpress.net +manchesterworld.uk +miltonkeynes.co.uk +newcastleworld.com +shieldsgazette.com +sunderlandecho.com +3addedminutes.com +bucksherald.co.uk +liverpoolworld.uk +meltontimes.co.uk +newryreporter.com +surreyworld.co.uk +derbyworld.co.uk +derryjournal.com +glasgowworld.com +hemeltoday.co.uk +lutontoday.co.uk +newsletter.co.uk +portsmouth.co.uk +fifetoday.co.uk +londonworld.com +walesworld.com +wigantoday.net + thestar.co.uk + scotsman.com + +chad.co.uk + lep.co.ukdiv[data-ads-params]4 + +spiegel.de"div[data-advertisement$=":mobile"]1 +999thehawk.comdiv[data-alias="Sweetjack"]M + +bestbuy.ca;div[data-automation^="criteo-sponsored-products-carousel-"]: + +reddit.com(div[data-before-content="advertisement"]9 + artforum.com%div[data-component="ad-unit-gallery"]% + theverge.comdiv[data-concert]D +bedbathandbeyond.com(div[data-cta="plpSponsoredProductClick"]G +gamingbible.com + +unilad.com"div[data-cypress^="sticky-header"]$ +esmmagazine.com div[data-dfp]` +analyticsindiamag.comCdiv[data-elementor-type="header"] > section.elementor-section-boxed1 +thestudentroom.co.ukdiv[data-freestar-ad]< +my.clevelandclinic.orgdiv[data-identity*="board-ad"]$ + briskoda.netdiv[data-ips-ad]) +lightnovelworld.codiv[data-mobid], + +yandex.comdiv[data-name="adWrapper"]. + +uefa.comdiv[data-name="sponsors-slot"]% + nogomania.comdiv[data-ocm-ad]- + +thebay.comdiv[data-piq-toggle="true"], + opentable.*div[data-promoted="true"]/ + +scmp.comdiv[data-qa="AdSlot-Container"]5 + +scmp.com%div[data-qa="AppBar-AdSlotContainer"]> + +scmp.com.div[data-qa="ArticleHeaderAdSlot-Placeholder"]? + +scmp.com/div[data-qa="AuthorPage-HeaderAdSlotContainer"]G + +scmp.com7div[data-qa="GenericArticle-MobileContentHeaderAdSlot"]< + +scmp.com,div[data-qa="GenericArticle-TopPicksAdSlot"]5 + +scmp.com%div[data-qa="InlineAdSlot-Container"]- + +xing.comdiv[data-qa="jobs-inline-ad"]5 + +xing.com%div[data-qa="jobs-recommendation-ad"]C +basschat.co.uk + momondo.* div[data-resultid$="-sponsored"]C +linustechtips.com + briskoda.netdiv[data-role="sidebarAd"]@ +cruisecritic.co.uk&div[data-sentry-component="AdWrapper"]? +cruisecritic.co.uk%div[data-sentry-component="NativeAd"]. + +costco.comdiv[data-source="sponsored"]= +aliexpress.com + aliexpress.usdiv[data-spm="seoads"]8 + +ecosia.org&div[data-test-id="mainline-result-ad"]@ + +ecosia.org.div[data-test-id="mainline-result-productAds"]@ + debenhams.com+div[data-test-id^="sponsored-product-card"]5 + investing.com div[data-test="ad-slot-visible"]3 + symbaloo.comdiv[data-test="homepageBanner"]Q + +costco.com?div[data-testid="AdSet-all-sponsored_products_-_search_bottom"]N + +costco.com div > div[class] > div[class][data-testid="placementTracking"]] + twitter.com +x.comAdiv[data-testid="cellInnerDiv"] a[aria-label="Follow the action"]- + qwant.comdiv[data-testid="heroTiles"]Ãa + qwant.comPdiv[data-testid="homeTrendsContainer"] a[href^="https://api.qwant.com/v3/r/?u="]1 + qwant.com div[data-testid="pam.container"]A + qwant.com0div[data-testid="productAdsMicrosoft.container"]4 + freepik.com!div[data-testid="unicorn-banner"], + +forbes.comdiv[data-testid^="fbs-ad"]( + sitepoint.comdiv[data-unit-code]> +audi-sport.net(div[data-widget-key="Snack_Side_Menu_1"]> +audi-sport.net(div[data-widget-key="Snack_Side_Menu_2"]G +audi-sport.net1div[data-widget-key="forum_home_sidebar_top_ads"]9 +audi-sport.net#div[data-widget-key="right_top_ad"]D +audi-sport.net.div[data-widget-key="sellwild_sidebar_bottom"]% + cults3d.comdiv[data-zone-bsa]@ +miaminewtimes.com + westword.comdiv[gpt-slot-config-id]B +miaminewtimes.com + westword.comdiv[gpt-slot-div-id-base]' + +spin.comdiv[id*="-promo-lead-"]' + +spin.comdiv[id*="-promo-mrec-"]7 +chrome-stats.comdiv[id*="billboard_responsive"]( +thenewspaper.grdiv[id*="thene-"]& +diskingdom.comdiv[id="diski-"]% + namu.wikidiv[id][class]:empty! + +thewire.indiv[id^="ATD_"]+ +geeksforgeeks.orgdiv[id^="GFG_AD_"]2 +kisshentai.net + onworks.net div[id^="ad"]! + newsner.comdiv[id^="ad-"]0 +songlyrics.comdiv[id^="ad-absolute-160"]/ +nationalrail.co.ukdiv[id^="ad-advert-"]F +belloflostsouls.net +overwatch.op.ggdiv[id^="ad-container-"]* + +parade.comdiv[id^="ad-in_content"]' + timeout.comdiv[id^="ad-promo-"]& + timeout.comdiv[id^="ad-side-"]" + nowgoal8.comdiv[id^="ad_"]+ +javacodegeeks.comdiv[id^="adngin-"]  + agoda.comdiv[id^="ads-"]" + pixiv.netdiv[id^="adsdk-"], +antiguanewsroom.comdiv[id^="antig-"]* + slidesgo.comdiv[id^="article_ads"]@ +business-standard.com#div[id^="between_article_content_"]e + wikitechy.com + iplogger.org + wallhere.com + webnots.com + imggen.aidiv[id^="bsa-zone_"]/ +business2community.comdiv[id^="busin-"]+ +competenetwork.comdiv[id^="compe-"], + +elfaro.netdiv[id^="content-ad-body"]( + titantv.comdiv[id^="ctl00_TTLB"]- +timesofindia.comdiv[id^="custom_ad_"]( +cyprus-mail.comdiv[id^="cypru-"]0 +football-tribe.comdiv[id^="da-article-"]$ + +rediff.comdiv[id^="div_ad_"], + memedroid.comdiv[id^="freestar-ad-"]( + gamepix.comdiv[id^="gpx-banner"]# +si.comdiv[id^="inarticle_"]& + maltadaily.mtdiv[id^="malta-"]/ +mediabiasfactcheck.comdiv[id^="media-"]3 + irishnews.com + gamebyte.comdiv[id^="mpu"]& + ai-online.comdiv[id^="onlin-"]) +pretoriafm.co.zadiv[id^="preto-"]( +progamerage.comdiv[id^="proga-"]' + eloshapes.comdiv[id^="promos-"]& + howtogeek.comdiv[id^="purch_"]( +realtalk933.comdiv[id^="realt-"]' +ruralradio.comdiv[id^="rural-"]( +sbstatesman.comdiv[id^="sbsta-"]* +smallnetbuilder.comdiv[id^="snb-"]# + filehorse.comdiv[id^="td-"]4 +birrapedia.comdiv[id^="textoDivPublicidad_"]2 +searchenginereports.netdiv[id^="theBdsy_"]ý*. +theroanoketribune.orgdiv[id^="thero-"]( + yovizag.comdiv[id^="v-yovizag-"]& + weraveyou.comdiv[id^="werav-"]6 +mommypoppins.comdiv[id^="wrapper-div-gpt-ad-"]4 +wallpaperflare.comdiv[itemtype$="WPAdBlock"]: + nashfm100.com%div[onclick*="https://deucepub.com/"]9 +forums.pcsx2.net!div[onclick^="MyAdvertisements."]  + medscape.com div[ssr-ads]J + tft.op.gg9div[style$="min-height:250px;min-width:300px;width:100%"]< + ezgif.com+div[style$="min-height:90px;display:block"]9 + tft.op.gg(div[style$="min-width:970px;width:100%"]H + kuncomic.com4div[style*="height: 2"][style*="text-align: center"]. + castanet.netdiv[style*="height:900px"]M +helpnetsecurity.com2div[style*="max-height: 250px; max-width: 300px;"]3 + worldstar.comdiv[style*="max-height:250px"]? + +news18.com-div[style*="min-height"][style*="background"]1 + +news18.comdiv[style*="min-height: 250px"]= +footballtransfers.com div[style*="min-height: 250px;"]0 + +news18.comdiv[style*="min-height:250px"]7 + gsmarena.com#div[style*="padding-bottom: 24px;"]X + newsbreak.comCdiv[style*="position:relative;width:100%;height:0;padding-bottom:"]B +readcomiconline.li + +news18.comdiv[style*="width: 300px"]• +unexplained-mysteries.com +datacenterdynamics.com +thejournal-news.net +hairboutique.com +iconarchive.com +imagetwist.com +memecenter.com + fansshare.com + neoseeker.com + windsorite.ca + paultan.org + xtra.com.my + +news18.comdiv[style*="width:300px"]. + castanet.netdiv[style*="width:300px;"]. + castanet.netdiv[style*="width:640px;"]8 + clover.fm'div[style*="width:975px; height:90px;"]â +thelatinonewsletter.orgÂdiv[style="align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;margin:0 auto 0 auto;padding-bottom:20px;padding-left:27px;padding-right:27px;padding-top:20px;"]~ +filesharingtalk.comcdiv[style="background-color: white; border-width: 2px; border-style: dashed; border-color: white;"]1 +askdifference.comdiv[style="color: #aaa"]r + manhwabtt.cc^div[style="display: flex; justify-content: space-around; flex-flow: wrap; min-height: 250px;"]g +time.isXdiv[style="display:flex;justify-content:center;width:100%;margin-top:20px;height:250px"]H +aceshowbiz.com2div[style="display:inline-block;min-height:300px"]G + pixiv.net6div[style="font-size: 0px;"] a[target="premium_noads"]¢ +greenmatters.com +distractify.com +radaronline.com +okmagazine.com + inquisitr.comAdiv[style="font-size:x-small;text-align:center;padding-top:10px"]A +beta.riftkit.net)div[style="height: 300px; width: 400px;"]8 + pixiv.net'div[style="height: 540px; opacity: 1;"]L +paraphraser.io6div[style="height:128px;overflow: hidden !important;"]L + wikibrief.org7div[style="height:302px;width:auto;text-align:center;"]* + +comics.orgdiv[style="height:90px"]6 +productreview.com.audiv[style="line-height:0"]J +streamingsites.com0div[style="margin-bottom: 10px; display: flex;"]l + apkcombo.appXdiv[style="margin-bottom: 10px; max-height: 260px; min-height: 260px; overflow: hidden"]F + +upjoke.com4div[style="margin-bottom:0.5rem; min-height:250px;"]U + gsmarena.comAdiv[style="margin-left: -10px; margin-top: 30px; height: 145px;"]L +tuberipper.com6div[style="margin: 0px -15px 30px; overflow: hidden;"]| +theroar.com.aufdiv[style="margin: 0px auto; text-align: center; height: 280px; max-height: 280px; overflow: hidden;"]N + transdict.com9div[style="margin:24px 80px; padding:8px; height:120px;"]› +vr-compare.com„div[style="min-height: 250px; background-color: rgba(0, 0, 0, 0.133); display: flex; justify-content: center; align-items: center;"]B + editpad.org/div[style="min-height: 300px;min-width: 300px"]E + wikiwand.com1div[style="min-height: 325px; max-width: 600px;"]¸ +gamereactor.com.tr +gamereactor.asia +gamereactor.cn +gamereactor.cz +gamereactor.de +gamereactor.dk +gamereactor.es +gamereactor.eu +gamereactor.fi +gamereactor.fr +gamereactor.gr +gamereactor.it +gamereactor.jp +gamereactor.kr +gamereactor.me +gamereactor.nl +gamereactor.no +gamereactor.pl +gamereactor.pt +gamereactor.se +gamereactor.vn4div[style="min-height: 600px; margin-bottom: 20px;"]6 +disneydining.comdiv[style="min-height:125px;"]U +theroar.com.au?div[style="min-height:260px;max-height:260px;overflow:hidden;"]P +online-calculator.org +askdifference.comdiv[style="min-height:280px;"]0 + +newser.comdiv[style="min-height:398px;"]V + etvbharat.com + flotrack.org1div[style="min-width: 300px; min-height: 250px;"]W + etvbharat.com + nicelocal.com1div[style="min-width: 300px; min-height: 600px;"]B + editpad.org/div[style="min-width: 300px;min-height: 300px"]V + etvbharat.com + nicelocal.com0div[style="min-width: 728px; min-height: 90px;"]X +technical.cityBdiv[style="padding-bottom: 20px"] > div[style="min-height: 250px"]y +bitcoin-otc.combdiv[style="padding-left: 10px; padding-bottom: 10px; text-align: center; font-family: Helvetica;"]o + +9gag.com_div[style="position: relative; z-index: 3; width: 640px; min-height: 202px; margin: 0px auto;"]J +navajotimes.com3div[style="text-align: center; margin-top: -35px;"]L + wikibrief.org7div[style="text-align:center;height:302px;width:auto;"]×d +m.koreatimes.co.krJdiv[style="width: 300px; height:250px; overflow: hidden; margin: 0 auto;"][ +ultimatespecs.comBdiv[style="width:100%;display:block;height:290px;overflow:hidden"]- +constative.comdiv[style]:not([class])@ +whatmobile.com.pk'div[style^="background-color:#EBEBEB;"]C + fctables.com/div[style^="background:#e3e3e3;position:fixed"]4 + footybite.cc div[style^="border: 2px solid "]S + pastebin.com?div[style^="color: #999; font-size: 12px; text-align: center;"]D +realpython.com.div[style^="display:block;position:relative;"]A + +newser.com/div[style^="display:inline-block;width:728px;"]4 +elitepvpers.comdiv[style^="font-size:11px;"]4 +drudgereport.comdiv[style^="height: 250px;"]> +crazygames.com + add0n.comdiv[style^="height: 90px;"]� +english-hindi.net +livesoccertv.com +malaysiakini.com +crazygames.com + sporticos.com + apkdone.comdiv[style^="height:250px"]. + titantv.comdiv[style^="height:265px;"]< +marketbeat.com&div[style^="height:270px;width:100%;"]. + altchar.comdiv[style^="height:280px;"]< +marketbeat.com&div[style^="height:300px;width:100%;"]2 +malaysiakini.comdiv[style^="height:600px"]3 +whatmobile.com.pkdiv[style^="height:610px"]N +propertyshark.com +point2homes.com"div[style^="margin-bottom: 10px;"]F +unionpedia.org0div[style^="margin-top: 15px; min-width: 300px"]N +goodreturns.in + +gizbot.com +inc.comdiv[style^="min-height: 250px"]L +propertyshark.com +point2homes.com div[style^="min-height: 360px;"]G +online-calculator.org + add0n.comdiv[style^="min-height:90px"]F + latestly.com2div[style^="min-width: 300px; min-height: 250px;"]C +metabattle.com + +decrypt.codiv[style^="min-width: 300px;"]L + gtaforums.com7div[style^="text-align: center; margin: 0px 0px 10px;"]H +appleinsider.com0div[style^="text-align:center;border-radius:0;"]. + jwire.com.audiv[style^="width:468px;"]. + imgbabes.comdiv[style^="width:604px;"]V +stopmalvertising.com + interglot.com + sodapdf.comdiv[style^="width:728px;"]< +tvtv.us-div[style^="z-index: 1100; position: fixed;"]* + +ebay.comdiv[title="ADVERTISEMENT"]- + presearch.comdiv[x-show*="_ad_click"], +adblock-tester.comembed[width="240"]% + staige.tvfanpage-club-sponsor) +teslaoracle.comfigure.aligncenterN + groupon.com;figure[data-clickurl^="https://api.groupon.com/sponsored/"]/ + imgburn.comfont[face="Arial"][size="1"]6 +realitytvworld.comfont[size="1"][color="gray"] + dailydot.comfooter$ +topcultured.com +law.comh3% + kazwire.comh3.tracking-widest + drive.com.auhr0 + nordstrom.comiframe[data-revjet-options]8 + pixiv.net'iframe[height="300"][name="responsive"]< + pixiv.net+iframe[height="520"][name="expandedFooter"]% +yourbittorrent.com iframe[src]F +realgearonline.com,iframe[src^="http://www.adpeepshosted.com/"]2 + pixiv.net!iframe[width="300"][height="250"]) +premiumtimesng.comimg[alt$=" Ad"]( +f1technical.netimg[alt="Amazon"]e +cnx-software.comMimg[alt="ArmSoM CM5 - Raspberry Pi CM4 alternative with Rockchip RK3576 SoC"]C +cnx-software.com+img[alt="Cincoze industrial GPU computers"]F +cnx-software.com.img[alt="I-PI SMARC Intel Amston Lake devkit"][ +cnx-software.comCimg[alt="Intel Amston Lake COM Express Type 6 Compact Size module"]9 +cnx-software.com!img[alt="Orange Pi Amazon Store"]I +cnx-software.com1img[alt="ROCK 5 ITX RK3588 mini-ITX motherboard"]] +cnx-software.comEimg[alt="Radxa ROCK 5C (Lite) SBC with Rockchip RK3588 / RK3582 SoC"]L +cnx-software.com4img[alt="Rockchip RK3568/RK3588 and Intel x86 SBCs"]( + newagebd.netimg[alt="ads space"]0 + +framed.wtfimg[alt="prime gaming banner"]M + +pasty.info;img[aria-label="Aliexpress partner network affiliate Link"]G + +pasty.info5img[aria-label="Ebay partner network affiliate Link"]ƒ"? +inkbotdesign.com +kuramanime.booimg[decoding="async"]7 + cloutgist.com + codesnse.comimg[fetchpriority]6 +nepallivetoday.com +wjr.comimg[height="100"]B +prawfsblawg.blogs.com +thomhartmann.comimg[height="200"]" + comick.ioimg[height="250"]) +newyorkyimby.comimg[height="280"]( + callofwar.comimg[referrerpolicy]' +nsfwyoutube.comimg[src*="data"]0 +bcmagazine.netimg[style^="width:300px;"]9 + +unb.com.bd'img[style^="width:700px; height:70px;"]% + abpclub.co.ukimg[width="118"]w +lyngsat-stream.com +webhostingtalk.com +lyngsat-logo.com +lyngsat-maps.com + lyngsat.comimg[width="160"]J +fashionpulis.com +techiecorner.com + +swagger.ioimg[width="250"]ô +gamblingnewsmagazine.com +forexmt4indicators.com +cryptomining-blog.com +linuxhostsupport.com +themediaonline.co.za +cryptoreporter.info +financialmirror.com +mycolumbuspower.com +americaoutloud.com +completesports.com +gameplayinside.com +naijaloaded.com.ng +portlandphoenix.me +robhasawebsite.com +thewillnigeria.com +wantedinafrica.com +airplaydirect.com +freedomhacker.net +goodcarbadcar.net +onislandtimes.com +reviewparking.com +espnrichmond.com +theolivepress.es +wantedinrome.com +newzimbabwe.com +sacobserver.com +seguintoday.com +wschronicle.com +flsentinel.com +kiwiblog.co.nz + kenyabuzz.com + tntribune.com + waamradio.com + dotsauce.com + mauitime.com + movin100.com + sdvoice.info + therep.co.za + up-4ever.net + mkvcage.com + punchng.com + bigeye.ug + ouo.press + +oann.comimg[width="300"]< +unknowncheats.me +boxthislap.orgimg[width="300px"]) +independent.co.ugimg[width="320"]. +londonnewsonline.co.ukimg[width="360"]0 +gamblingnewsmagazine.comimg[width="365"]0 + +trans.infoimg[width="500"][height="180"]' +arcadepunks.comimg[width="728"]( +boxthislap.orgimg[width="728px"]0 + +trans.infoimg[width="756"][height="310"]5 +justthenews.comimg[width="798"][height="450"]# + +umod.orgins[data-revive-id]f +unmineablesbest.com + bitzite.com .comment-body[style*="min-height: 250px;"]) + cgpress.orgli > div[id^="cgpre-"]0 + bestbuy.comli.embedded-sponsored-listing* + engadget.comli.lg\:min-h-\[234px\]R +cultbeauty.co.uk + dermstore.com + skinstore.comli.sponsoredProductsList* + laredoute.*li[class*="sponsored-"]0 + linkedin.comli[data-is-sponsored="true"]6 +duckduckgo.com li[data-layout="creditcard_ads"]r@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.comli[data-layout="products"]7 +duckduckgo.com!li[data-layout="products_middle"]+ + opentable.*li[data-promoted="true"]. + +xing.comli[data-qa="notifications-ad"]? + instacart.com*li[data-testid="compact-item-list-header"]* + flaticon.comli[id^="bn-icon-list"], +linkvertise.comlv-redirect-static-ad +escorenews.comnoindex- +adblock-tester.comobject[width="240"]J +forums.golfwrx.com0ol.cTopicList > li.ipsDataItem:not([data-rowid])  + experte.com overlay-block- +americanfreepress.netp > [href] > img! +ft.compg-slot.pg-slot[id]/ + engadget.comsection.md\:min-h-\[310px\]& + mashable.comsection.mt-4 > div: + weather.com'section[aria-label="Sponsored Content"]C +bedbathandbeyond.com'section[class^="showcaseAds_container"]) + olympics.comsection[data-cy="ad"]0 +bbc.com!section[data-e2e="advertisement"]m@ +>reddittorjg6rue252oqsxryoxengawnmo46qy4kyii5wtqnwfj4ooad.onion + +reddit.comshreddit-comments-page-ad" +tempostorm.com side-banners + smartprix.comsm-dap/ +nativeplanet.comspan[class^="oiad-txt"]T + +thewire.inBspan[style*="background: rgb(232, 233, 237); text-align: center;"]2 + fxempire.comspan[style="user-select:none"]. +americanfreepress.netstrong > span > a" + torlock.comtable.hidden-xs9 +realitytvworld.comtable[border="0"][align="left"]/ +thebbqforum.comtable[border="0"][width]/ +thebbqforum.comtable[border="1"][width]¯ +Kÿï08@R;kaufland.*#?#.recommender-wrapper:-abp-contains(Gesponsert); +roadtester.com.au"table[cellpadding="9"][border="0"]* +wifinetnews.comtable[height="260"]+ +softpanorama.orgtable[height="620"]# + afrol.comtable[height="70"]L +automobile-catalog.com + silentera.com +car.comtable[height="90"]D +automobile-catalog.com +itnewsonline.comtable[width="300"]+ +worldtimezone.comtable[width="472"]% + pcstats.comtable[width="866"]= + vpforums.org)td[align="center"][style="padding: 0px;"]+ +schlockmercenary.comtd[colspan="3"]T +geekzone.co.nz>td[colspan="3"].forumRow[style="border-right:solid 1px #fff;"]. + titantv.comtd[id^="menutablelogocell"]> + rextester.com)td[style="width:160px;padding-top:65px;"]3 +wordreference.comtd[style^="height:260px;"]' +itnewsonline.comtd[width="120"]) +greyhound-data.comtd[width="160"]$ + eurometeo.comtd[width="738"]  +radiosurvivor.comtext-18$ +telescopius.com tlc-ad-banner" + trademe.co.nz tm-display-ad© +rarbgunblocked.org +rarbgunblock.com +rarbgaccess.org +rarbgmirror.com +rarbgmirror.org +rarbgproxy.com +rarbgproxy.orgtr > td + td[style*="height:"]; + titantv.com(tr.gridRow > td > [id] > div:first-childI + livetv.sx8tr[height] ~ tr > td[colspan][height][bgcolor="#000000"]% +morningagclips.com ul.logo-nav! +greyhound-data.comul.ppts- +greatandhra.comul.sortable-list > div. +backgrounds.wetransfer.net we-wallpaper5 + autoscout24.* img[referrerpolicy="unsafe-url"]O + douglas.*>.cms-container:has([data-testid="CriteoAdFormatCategoryView"])) + douglas.*.criteo-product-carousel< + douglas.*+.product-grid-column:has(.criteo-spotlight)K + douglas.*:.product-grid-column:has([data-testid="sponsored-button"])J + douglas.*9.swiper-slide:has(button[data-testid="sponsored-button"])b + douglas.*Q[data-testid="product-overview-content-slot"]:has(.criteo-teaser-gold__sponsored)T + douglas.*Cdiv.product-grid-column:has(button[data-testid="sponsored-button"])) + flashscore.*.boxOverContentReviveF + flashscore.* + soccer24.com + livescore.*#box-over-content-a8 + flashscore.* + soccer24.com + livescore.*.zone? +hookerhillstudios.com"div.items-center:has(> #articlead)0 + +kaufland.*.exp-vision__ext-wrapper--spad + +kaufland.* .product--spa% + +kaufland.*.product--sponsored? + +kaufland.*-.product:has(div.product__sponsored-ad-label)K + +kaufland.*9.rd-recommender__tile:has(div.rd-product-tile__badge--ad)N + +kaufland.*<.rd-recommender__tile:has(span.advertiser-info__button-icon)$ + +kaufland.*.spads-recommender5 + +kaufland.*#.sponsored-brand-products-container8 + +kaufland.*&.teaser-orchestration__wrapper--online' + laredoute.*#hp-sponsored-banner' + +lazada.*.pdp-block__product-adsV + +manomano.*Da[href^="/"][href*="?product_id="][title]:has(span > .svg_tamagoshi)2 + +manomano.* div[data-testid="sprbrd-banner"] + momondo.* .WTQR-ad-card7 + momondo.*&.YnaR:has([class$="ProviderAdBanner"])2 + momondo.*!.zZcm:has([class$="-ad-wrapper"])T + momondo.*C[class$="-result-item-container"]:has([aria-label="Ad disclaimer"])S + momondo.*B[class$="result-item-container"]:has([class$="provider-ad-badge"])H + momondo.*7[class*="mod-pres-default"]:has(div[class*="ad-badge"])N + momondo.*=div[role="button"][tabindex="0"]:has(div.c_3eP-badge-content)’ + pinterest.*div[data-grid-item]:has([data-test-pin-id] [data-test-id^="one-tap-desktop"] > a[href^="http"][rel="nofollow"]):not(body > div)c +pv-magazine-australia.com +pv-magazine-usa.com + pv-magazine.*#home-top-rectangle-wrap-1c +pv-magazine-australia.com +pv-magazine-usa.com + pv-magazine.*#home-top-rectangle-wrap-2c +pv-magazine-australia.com +pv-magazine-usa.com + pv-magazine.*#home-top-rectangle-wrap-3º$ + tripadvisor.*.rSJod; + tripadvisor.*&[data-automation="nova-ad-InlineNova"]= + tripadvisor.*([data-sponsored="sponsored"]:has(.txxUo)7 + tripadvisor.*"div[class="ui_container dSjaD _S"]7 + walmart.*&[data-automation="flipkartDisplayAds"], + walmart.*ata-testid="carousel-ad"]( + walmart.*a[href*=".criteo.com/"]J + walmart.*9div[class="mv3 ml3 mv4-xl mh0-xl"][data-testid="sp-item"]: + walmart.*)div[data-automation^="HookLogicCarouses"]2 + walmart.*!div[data-testid^="sba-container"]4 + walmart.*#div[id*="SponsoredProductCarousel"]P + wayfair.*?.CompareSimilarItemsCarousel-item:has(a[href*="&sponsoredid="])3 + wayfair.*".MediaNativePlacement-wrapper-linkP + wayfair.*?[data-hb-id="Card"]:has([data-node-id^="ListingCardSponsored"])7 + wayfair.*&a[data-enzyme-id="WssBannerContainer"]9 + wayfair.*(div[data-enzyme-id="WssBannerContainer"]J + wayfair.*9div[data-hb-id="Grid.Item"]:has(a[href*="&sponsoredid="])D + wayfair.*3div[data-node-id^="SponsoredListingCollectionItem"]$ + +yandex.*._view_advertisement1 + +yandex.*!.business-card-title-view__advertW + +yandex.*G.mini-suggest__item[data-suggest-counter*="/yandex.ru/clck/safeclick/"] + +yandex.*.ProductGalleryG + +yandex.*7.Scroller:has(a[href^="https://yabs.yandex.ru/count/"])$ + +yandex.*.search-advert-badge5 + +yandex.*%.search-business-snippet-view__direct6 + +yandex.*&.search-list-view__advert-offer-banner8 + +yandex.*(a[href^="https://yabs.yandex.ru/count/"]6 + +yandex.*&a[href^="https://yandex.ru/an/count/"]P + +yandex.*@li[class*="_card"]:has(a[href^="https://yabs.yandex.ru/count/"])S + +yandex.*Cli[class*="_card"]:has(a[href^="https://yandex.com/search/_crpd/"])[ + +zoohit.*Kdiv[class^="SearchSuggestion-module_suggestionItem_"]:has(.z-sponsored-tag)B + +zoohit.*2div[data-zta="product-card"]:has(.z-sponsored-tag)\ + zooplus.*Kdiv[class^="SearchSuggestion-module_suggestionItem_"]:has(.z-sponsored-tag)C + zooplus.*2div[data-zta="product-card"]:has(.z-sponsored-tag)| +windowscentral.comb#article-body > .hawk-nest[data-widget-id]:has(a[class^="hawk-affiliate-link-"][class$="-button"])D + +cars.com4#branded-canvas-click-wrapper:has(> #native-ad-html)O + gocomics.com;#header-content-start:has([data-testid="advertising-unit"])± + radio.net + +radio.at + +radio.de + +radio.dk + +radio.es + +radio.fr + +radio.it + +radio.pl + +radio.pt + +radio.se4#headerTopBar ~ div > div:has(div#RAD_D_station_top)@ + gtaforums.com+#ipsLayout_mainArea div:has(> #pwDeskLbAtf)8 + +klz9.com(#list-imga center:has(> a[id^="adLink"])J + +klz9.com:#list-imga center:has(a[href^="https://olimposcans.com/"]); + +noon.com+#modules-renderer:has([class*="sponsored"]): + +noon.com*#noon-modules:has([class*="AdBrandVideo"])B +wsj.com3#other-buckets > div > div:has(> .uds-ad-container)K + momondo.com8#resultWrapper [role="group"]:has(> [class*="-adInner"]); +euobserver.com%#root > div > div:has(#dfp-billboard)4 + aleteia.org!#root > div[class]:has(> .adslot)A + +etsy.com1#search-results li:has([id^="ad-listing-title-"])Q + +scribd.com?#sidebar > div:has(> div > [data-e2e^="dismissible-ad-header"])0 +bbc.com!#sticky-mpu:has(.dotcom-ad-inner)- + gsmarena.com#subHeader:has(> #topAdv)I + gamereactor.*4#videoContainer:has(> [id^="videoContent-videoad-"])d + +kroger.comR.AutoGrid-cell:has(.ProductCard-tags > div > span[data-qa="featured-product-tag"])> + kayak.com + momondo.* .CGMG:has(.CGMG-logo-ad-wrapper)I +nationalgeographic.com+.FrameBackgroundFull--grey:has(.ad-wrapper)2 + +sbs.com.au .MuiBox-root:has(> .desktop-ads)9 + +luxa.org).MuiContainer-root:has(> ins.adsbygoogle)` + +ulta.comP.ProductListingResults__productCard:has(.ProductCard__sponsoredText > p.Text-ds)‹ +manomano.co.uk + manomano.de + manomano.es + manomano.fr + manomano.it9.Ssfiu-:has([data-testid="popoverTriggersponsoredLabel"])w +outlook.live.com_.VdboX[tabindex="0"]:has(img[src="https://res.cdn.office.net/assets/ads/adbarmetrochoice.svg"])”@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.com>._6y8t:has(a[href="/ads/about/?entry_product=ad_preferences"])¦ + pixiv.net”.__top_side_menu_body > div[class^="sc-"] > div[class^="sc-"] > div[class^="sc-"]:has(> div[style$="width: 728px; line-height: 0; font-size: 0px;"])c + pixiv.netR.__top_side_menu_body section[class^="sc-"] li[class^=sc-]:has(> div[id^="adsdk"])8 +haveibeenpwned.com.actionsBar:has(.why1Password)¾&= +barandbench.com&.ad-wrapper-module__adContainer__iD4aI; +slickdeals.net%.announcementBar:has(.sponsorContent)K +mydramalist.com4.app-body > div:has(> div[class*="is-desktop-ads-"])D +thedailywtf.com-.article-body > div:has-text([Advertisement])E + nation.africa0.article-collection-teaser:has(.sponsored-label)M + thesun.co.uk9.article-sidebar .widget-sticky:has([class*="ad_widget"])? +historic-uk.com(.article-sidebar:has-text(Advertisement)K + forexlive.com6.article-slot__wrapper:has(.article-header__sponsored)N + +time.com>.article-small-sidebar > .sticky-container:has(div[id^="ad-"])f +hackernoon.comP.articles-wrapper > div:not([class]):has(a[href^="https://ad.doubleclick.net/"])6 + +blitz.gg&.aside-content-column:has(.display-ad)æ +beaumontenterprise.com +houstonchronicle.com +myjournalcourier.com +stamfordadvocate.com +theintelligencer.com +middletownpress.com +registercitizen.com +michigansthumb.com +greenwichtime.com +manisteenews.com +mysanantonio.com +expressnews.com +myplainview.com +sfchronicle.com +nhregister.com +ourmidland.com + ctinsider.com + lmtonline.com + newstimes.com + thehour.com + +ctpost.com + chron.com +mrt.com".b-gray300:has-text(Advertisement)5 + olympics.com!.b2p-list__item:has(> .adv-fluid)B +beincrypto.com,.before-author-block-bio:has-text(Sponsored); + outsports.com&.bg-gray-100:has(.adb-os-lb-incontent). + dropstab.com.bg-slate-100:has-text(Ad)û +newfoundlandgrocerystores.ca +realcanadiansuperstore.ca +yourindependentgrocer.ca +atlanticsuperstore.ca + fortinos.ca + nofrills.ca + valumart.ca + +provigo.ca + +zehrs.ca +maxi.ca3.block-wrapper:has(.element-header__sponsoredLabel)^ + +loblaws.caL.block-wrapper:has([data-track-product-component="carousel||rmp_sponsored"])= +haveibeenpwned.com#.bodyGradient > :has(.why1Password)F + nexusmods.com1.border-b:has(> div[data-testid^="ad-container"])6 + coincarp.com".border-bottom:has-text(Sponsored)> +thenewdaily.com.au$.border-grey-300:has(> [data-ad-id])M +health.harvard.edu3.border-t:has-text(You might also be interested in)D + dropstab.com0.bottom-0.gap-2:has-text(/Stake Now|Invest Now/). + +chosun.com.box--bg-grey-20:has(.dfpAd)? +radioreference.com%.box.gradient:has(a[href*="&Click="])' + +gpro.net.boxy:has(#blockblockA)F +slickdeals.net0.bp-p-filterGrid_item:has(.bp-c-label--promoted)G + homedepot.com2.browse-search__pod:has([id^="plp_pod_sponsored"])8 +haveibeenpwned.com.card-glow:has-text(Sponsored)@ + +bws.com.au..card-list-item:has(.productTile.is-Sponsored)= + truecar.com*.card:has([href*="marketplace&sponsored"])\ + doordash.comH.carousel-virtual-wrapper:has([href*="collection_type=sponsored_brand"])D + doordash.com0.ccdtLs:has([data-testid="sponsored:Sponsored"])7 +dexscreener.com .chakra-link:has-text(Advertise)8 + +tlgrm.eu(.channel-feed__brick:has(.adsbyexoclick)E + +asda.com5.cms-modules:has([data-module*="Sponsored Products"])7 + +asda.com'.co-item:has(.co-item__sponsored-label)8 +theautopian.com!.code-block:has(.htlad-InContent)8 + wltreport.com#.code-block:has-text(ADVERTISEMENT)C +templateshub.net+.col-lg-4.col-md-6:has(> div.singel-course)> +appleinsider.com&.col-sm-12 > :has([id^="div-gpt-ad-"])U +autotrader.com?.col-xs-12.col-sm-4:has([data-cmp="inventorySpotlightListing"])O + +costco.com=.col-xs-12:has([data-bi-placement^="Criteo_Product_Display"])L +infinitestart.com3.cs-sidebar__inner > .widget:has(> ins.adsbygoogle)E +alphacoders.com..css-grid-content:has(> .in-thumb-ad-css-grid)8 +androidauthority.com.d_3i:has-text(Latest deals)c +dollargeneral.comJ.dg-product-card:has(.dg-product-card__sponsored[style="display: block;"])Y +limetorrents.lolA.downloadareabig:has([title^="An‌on‌ymous Download"])8 +tripsonabbeyroad.com.e-con-inner:has(tp-cascoon)O +bitcoinsensus.com6.e-con-inner:has-text(Our Favourite Trading Platforms)3 +wsj.com$.e1ewmsuz20:has(> .uds-ad-container)+ +wsj.com.e1vnmyci0:has(> .adWrapper)9 +androidauthority.com.e_4j:has-text(See all deals)H +protrumpnews.com0.enhanced-text-widget:has(span.pre-announcement)R +upfivedown.com<.entry > hr.wp-block-separator:has(+ .has-text-align-center)A + morrisons.com,.featured-items:has(.js-productCarouselFops)D + slashdot.org0.fhitem-story.fhitem:has-text(Sponsored Content)< + morrisons.com'.fops-item:has([title="Advertisement"]): + +wings.io*.form-group center:has-text(Advertisement)6 +pigglywigglystores.com.fp-item:has(.fp-tag-ad)L +slickdeals.net6.frontpageGrid__feedItem:has(.dealCardBadge--promoted)$ + +tumblr.com.ge_yK:has(.hM19_)4 + bestbuy.com!.generic-morpher:has(.spns-label)ô,7 +sainsburys.co.uk.gridItem:has(.citrusAdproduct)7 + fortune.com$.homepage:has(> div[id^="InStream"])‹ +manomano.co.uk + manomano.de + manomano.es + manomano.fr + manomano.it9.hrHZYT:has([data-testid="popoverTriggersponsoredLabel"])X +dollargeneral.com?.image__desktop-container:has([data-track-image*="|P&G|Gain|"])? + vpforums.org+.ipsSideBlock.clearfix:has-text(Affiliates)9 + 1tamilmv.tax%.ipsWidget:has([href*="RajbetImage"])D + qwant.com3.is-sidebar:has(a[data-testid="advertiserAdsLink"])6 +stocktwits.com .is-visible:has-text(Remove ads)C +thingiverse.com,.item-card-container:has-text(Advertisement)< + yovizag.com).jeg_column:has(> .jeg_wrapper > .jeg_ad)7 +motortrend.com!.justify-center:has(.nativo-news); + engadget.com'.justify-center:has-text(Advertisement)= + chewy.com,.kib-carousel-item:has(.kib-product-sponsor)6 + pixiv.net%.list-none:has(> div > [id^="adsdk"])9 + euronews.com%.m-object:has(.m-object__spons-quote)0 + justetf.com.m-sep-l:has(#partnerNewsBox)‰ +kingsfoodmarkets.com +acmemarkets.com +andronicos.com +starmarket.com + jewelosco.com + pavilions.com + tomthumb.com + carrsqc.com + +haggen.com + shaws.com + +vons.comN.master-product-carousel:has([data-carousel-api*="search/sponsored-carousel"])µ +kingsfoodmarkets.com +acmemarkets.com +albertsons.com +andronicos.com +starmarket.com + jewelosco.com + pavilions.com + randalls.com + tomthumb.com + carrsqc.com + safeway.com + +haggen.com + shaws.com + +vons.comI.master-product-carousel:has([data-carousel-driven="sponsored-products"])A + songbpm.com..mb-6:has(> section > div[id^="ad--searches"])1 +motortrend.com.mb-6:has([data-ad="true"])ï +beaumontenterprise.com +houstonchronicle.com +myjournalcourier.com +stamfordadvocate.com +theintelligencer.com +middletownpress.com +registercitizen.com +michigansthumb.com +greenwichtime.com +manisteenews.com +mysanantonio.com +expressnews.com +myplainview.com +sfchronicle.com +nhregister.com +ourmidland.com + ctinsider.com + lmtonline.com + newstimes.com + thehour.com + +ctpost.com + +sfgate.com + chron.com +mrt.com.mb32:has-text(Advertisement)B + outsports.com-.min-h-\[100px\]:has(.adb-os-inarticle-block)? + outsports.com*.min-h-\[100px\]:has(.adb-os-lb-incontent)C + +manomano.*1.mt-s.block:has([data-testid="sprbrd-logo-link"])J + boots.com9.oct-listers-hits__item:has(.oct-teaser__listerCriteoAds)L +officedepot.com5.od-col:has(.od-product-card-region-colors-sponsored)3 + pollunit.com.owl-carousel:has(.carousel-ad)F + nicomanga.com1.owl-stage > .owl-item:has([title="ADS Support"])B + hivetoon.com..p-4:has(> [href^="https://www.polybuzz.ai/"])i +property24.comS.p24_tileContainer:has([src^="/Content/images/Optimized/Icons/icon_tag_tile.svg?"])h +andronicos.com + randalls.com + +haggen.com4.pc-grid-prdItem:has(span[data-qa="prd-itm-spnsrd"])l +sainsburys.co.ukT.pd-merchandising-product:has(.product-header--citrus[data-testid="product-header"])E + hannaford.com0.plp_thumb_wrap:has([data-citrusadimpressionid])5 +niagarathisweek.com.polarBlock:has(.polarAds)Q + 404media.co>.post__content > p:has(a[href^="https://srv.buysellads.com/"])I + 404media.co6.post__content > p:has-text(This segment is a paid ad)7 + +myntra.com%.product-base:has(.product-waterMark)C + douglas.*2.product-grid-column:has(.product-tile__sponsored)D +woolworths.com.au+.product-grid-v2--tile:has(.sponsored-text)F + +meijer.com4.product-grid__product:has(.product-tile__sponsored)› +evzuttya.com.ua +eobuwie.com.pl + chaussures.fr + epapoutsia.gr + epantofi.ro + +ecipele.hr + +escarpe.it + +eschuhe.at + +eschuhe.ch + +eschuhe.de + +zapatos.es + eapavi.lv + obuvki.bg + +ecipo.hu + +eobuv.cz + +eobuv.sk + +eskor.se#.product-item:has(.sponsored-label)\ +maxi.caM.product-tile-group__list__item:has([data-track-products-array*="sponsored"])> +pbs.org/.production-and-funding:has(.sponsor-info-link)` +sainsburys.co.ukH.pt-grid-item:has(.product-header--citrus[data-testid="product-header"])i +sainsburys.co.ukQ.pt__swiper--grid-item:has(.product-header--citrus[data-testid="product-header"])f + quora.comU.q-sticky[style*="box-sizing: border-box; position: sticky;"]:has-text(Advertisement)% +ksl.com.queue:has(.sponsored)R + +olx.com.pk@.react-swipeable-view-container:has([href*="http://onelink.to"])H +downforeveryoneorjustme.com%.relative.bg-white:has-text(PolyBuzz)D +laravel-news.com,.relative:has([wire\:key="article-ad-card"])t +builtbybit.com^.resourceSidebar-belowContent > div > .block:has(.block-container a[href="https://tebex.io/"])S + metager.org@.result:has(a[href^="https://metager.org"][href*="/partner/r?"])F + metager.org3.result:has(a[href^="https://r.search.yahoo.com/"])A + qwant.com0.result__ext > div:has([data-testid="adResult"])= + petco.com,.rmn-container:has([class*="SponsoredText"])@ + samsclub.com,.sc-carousel-slide:has(.sc-sponsored-simple)> + samsclub.com*.sc-plp-cards-card:has(.sc-specials-label); + samsclub.com'.sc-sba-modules:has(.sc-specials-label)Q +sfchronicle.com:.scrl-block > .scrl-block-inner:has(.ad-module--ad--16cf1)8 + +yandex.com&.search-list-view__advert-offer-banner; + playpilot.com&.search-preview .side:has(> .provider)J + tempest.com7.search-result-item:has(.search-result-item__title--ad)L + +yandex.com:.search-snippet-view:has(span.search-advert-badge__advert)Q + shipt.com@.searchPageStaticBanner:has([href*="/shop/featured-promotions"])º%> + dribbble.com*.service-result:has([data-promoted-badge])Q + troyhunt.com=.sidebar-featured:has(a[href^="https://pluralsight.pxf.io/"])/ + insidehpc.com.sidebar-sponsored-contentM +bitcointalk.org6.signature:has(a[href]:not([href*="bitcointalk.org"]))1 + bestbuy.com.slContainer:has(> .sponsored)0 + +bing.com .slide:has(.rtb_ad_caritem_mvtr)1 +fastcompany.com.sticky:has(.ad-container)0 + rustlabs.com.sub-info-block:has(#banner)8 +scamwarners.com!.subheader:has(> ins.adsbygoogle)A + thesun.co.uk-.sun-grid-container:has([class*="ad_widget"])@ + myrgv.com/.td_block_wrap:has(a[href*="/ask-the-expert/"])] +the-independent.com +independent.co.uk +standard.co.uk.teads:has(.third-party-ad)j + etherscan.ioV.text-white.text-opacity-75.noindex-section.mb-0:has([style="text-decoration: none;"])P + trademe.co.nz;.tm-stripe__SL-card-container:has([class^="tm-sponsored-"]): +nex-software.com".toolinfo:has(a[href$="/reimage"])# +canberratimes.com.au.top-20. + twitter.com +x.com.tweet:has(.promo)K + wowcher.co.uk6.two-by-two-deal:has(a[href*="src=sponsored_search_"])+ + news.sky.com.ui-box:has(.ui-advert)b +forums.socialmediagirls.com?.uix_nodeList > div[class="block"]:has([href^="/link-forums/"])- +darkreader.org.up:has(.ddg-logo-link)+ +darkreader.org.up:has(.h-logo-link)H +anfieldindex.com0.vc_widget_sidebar .textwidget:has(#newsnowlogo)> + eplindex.com*.vc_widget_sidebar aside:has(#newsnowlogo)U + eplindex.comA.vc_widget_sidebar aside:has(> .textwidget img[decoding="async"])H +duckduckgo.com2.vertical-section-divider:has(span.badge--ad-wrap)= + +noon.com-.visibilitySensorWrapper:has(.adBannerModule)8 +neonheightsservers.com.well:has(ins.adsbygoogle)0 + 9to5linux.com.widget:has([href$=".php"])W +evreporter.comA.widget_media_image:not(:has(a[href^="https://evreporter.com/"]))? +cnx-software.com'.widget_text.widget:has([href*="?utm"])` +themarysue.comJ.wp-block-gamurs-article-group__sidebar__wrapper:has-text(related content)G +dotesports.com1.wp-block-gamurs-article-tile:has-text(Sponsored): +popculture.com$.wp-block-savage-platform-raptive-adS + +bestbuy.caA.x-productListItem:has([data-automation="sponsoredProductLabel"])B +mapquest.co.uk,.z-10.justify-center:has-text(Advertisement)< +sameday.costco.com"[aria-label="Product"]:has(sp-tag)[ +freshdirect.comD[class*="ProductsGrid_grid_item"]:has([data-testid="marketing tag"])@ + petco.com/[class*="atapult-styled"]:has([data-ad-source])W +livejournal.com@[class*="categories"] + div[class]:has(> [class*="-commercial"])D + petco.com3[class*="rmn-banner"]:has([class*="SponsoredText"])M +popularmechanics.com1[class] > :has(> #article-marketplace-horizontal)E +popularmechanics.com)[class] > :has(> #gpt-ad-vertical-bottom)^ +the-independent.com +independent.co.uk +standard.co.uk[class] > :has(> [data-mpu])x +brisbanetimes.com.au +watoday.com.au + theage.com.au + +smh.com.au+[class] > [class]:has(> [data-testid="ad"])t + jalopnik.com + theonion.com + theroot.com + +avclub.com + +kotaku.com%[class] > div:has(> [is="bulbs-dfp"])/ + fortune.com[class]:has(> #Leaderboard0)\ + jalopnik.com + theroot.com + +kotaku.com+[class]:has(> .related-stories-inset-video); + polygon.com +vox.com[class]:has(> [data-concert])8 +standard.co.uk"[class]:has(> [data-fluid-zoneid])[ +the-independent.com +independent.co.uk +standard.co.uk[class]:has(> [data-mpu])/ + nytimes.com[class]:has(> [id="ad-top"])I + thrillist.com4[class^="Container__GridRow-sc-"]:has(> .concert-ad)J + cargurus.com6[class^="_tileFrame_"]:has([data-cg-ft$="-sponsored"])P + petco.com?[class^="citrus-carousel-"]:has([class^="carousel__Sponsored"])H + svgrepo.com5[class^="style_native"]:has([href*="buysellads.com"])\ + tesco.comK[class^="styled__StyledLIProductItem"]:has([class^="styled__StyledOffers"])c +userstyles.orgM[class^="styles-grid_gridItems_"] > .hideInMobile:has(> [class^="GoogleAd_"])d + argos.co.ukQ[class^="styles__LazyHydrateCard"]:has([class*="ProductCardstyles__FlyoutBadge"])W + argos.co.ukD[class^="styles__LazyHydrateCard-sc"]:has([class*="SponsoredBadge"])‰ +outlook.live.comq[data-app-section="MessageList"] div[style^="position: absolute; left: 0px; top: 0px"]:has(.ms-Shimmer-container)L + cargurus.com8[data-cg-ft="car-blade"]:has([data-eyebrow^="FEATURED"])a + cargurus.comM[data-cg-ft="car-blade-link"]:has([data-cg-ft="srp-listing-blade-sponsored"])\ + pixiv.netK[data-gtm-recommend-zone="index"] li:has(> div > iframe[name$="rectangle"])ì'@ + +avxhm.se0[data-localize]:has(a[href^="https://canv.ai/"])T + softonic.com@[data-meta="placeholder-slot"]:has([data-label="Advertisement"])d + +etsy.comT[data-page-type="listing_page_similar_listings_grid"]:has([id^="ad-listing-title-"])c + +etsy.comS[data-page-type="listing_page_similar_listings_row"]:has([id^="ad-listing-title-"])H + +etsy.com8[data-page-type="market"]:has([id^="ad-listing-title-"])V + +etsy.comF[data-page-type="similar-listing-page"]:has([id^="ad-listing-title-"])( + engadget.com[data-test="top-ad"]M + farfetch.com9[data-testid="featured"]:has([data-ffref*="sponsoredBy"])N + petco.com=[data-testid="product-buy-box"]:has([class*="SponsoredText"]); + kayak.com*[role="button"]:has([class*="ad-marking"])7 + kayak.com&[role="tab"]:has([class*="sponsored"])d +crackwatcher.comL[style="background:none !important;"]:has([href^="https://www.kinguin.net"])) + +manomano.*a[class]:has(> .UWP_c8)ƒ +aliexpress.com + aliexpress.usÛa[class^="manhattan--container--"][class*="main--card--"]:has(span[style="background-color:rgba(0,0,0,0.20);position:absolute;top:8px;color:#fff;padding:2px 5px;background:rgba(0,0,0,0.20);border-radius:4px;right:8px"])ÿ +aliexpress.com + aliexpress.us×a[class^="manhattan--container--"][class*="main--card--"]:has(span[style="background: rgba(0, 0, 0, 0.2); position: absolute; top: 8px; color: rgb(255, 255, 255); padding: 2px 5px; border-radius: 4px; right: 8px;"])) + +manomano.*a[href]:has(> .c4iHiiE)8 + +yandex.com&a[href^="https://yandex.ru/an/count/"]& + +9gag.comarticle:has(.promoted). + +mg.co.zaarticle:has(.sponsored-single): + tympanus.net&article:has(header:has(.ct-sponsored)). + tumlook.comarticle:has-text(Sponsored)E + foxnews.com2article[class|="article story"]:has(.sponsored-by)T +bedbathandbeyond.com8article[data-e2e="productTile"]:has(a[rel*="sponsored"])j +cruisecritic.co.ukParticle[data-sentry-component="ContentCard"]:has(a[href^="/sponsored-content/"])i +kijijiautos.caSarticle[data-testid="SearchResultListItem"]:has(span[data-testid="PromotionLabel"])X + twitter.com +x.com div:has(#ad-header)? + +costco.com-article[id][class]:has(img[alt*="Sponsored"])/ +psychcentral.comaside:has([data-empty])W + vidplay.lolDbody > div > div[class][style]:has(> div > div > a[target="_blank"])H + +wolt.com8button:has(> div > div > div > span:has-text(Sponsored))7 +countdown.co.nz cdx-card:has(product-badge-list)4 +creepypasta.comcenter:has(+ #ad-container-1)( + hashrate.nocenter:has(.sevioads)� +manomano.co.uk + manomano.de + manomano.es + manomano.fr + manomano.it/div > div:has([data-testid="banner-spr-label"]), + inverse.comdiv > p + div:has(amp-ad)l +outlook.live.comTdiv.customScrollBar > div > div[id][class]:has(img[src$="/images/ads-olk-icon.png"])_ +flightradar24.comFdiv.items-center.justify-center:has(> div#pb-slot-fr24-airplane:empty)@ +appleinsider.com(div.main-art:has-text(Sponsored Content)T + douglas.*Cdiv.product-grid-column:has(button[data-testid="sponsored-button"])3 + costco.ca"div.product:has(.criteo-sponsored)7 + +thebay.com%div.product:has(div.citrus-sponsored)? + +meijer.com-div.slick-slide:has(.product-tile__sponsored)E +healthyrex.com/div.textwidget:has(a[rel="nofollow sponsored"])H + +bestbuy.ca6div.x-productListItem:has([class^="sponsoredProduct"])G +zoomtventertainment.com +timesnownews.comdiv:has(> .bggrayAd)1 + newsfirst.lkdiv:has(> [class*="hide_ad"])2 +fandomwire.comdiv:has(> [data-openweb-ad])E + doordash.com1div:has(> a[data-anchor-id="SponsoredStoreCard"])N + +wolt.com>div:has(> div > div > div > div > div > p:has-text(Sponsored))5 +outlook.live.comdiv:has(> div > div.fbAdLink)G + tripadvisor.*2div:has(> div > div[class="ui_column ovNFo is-3"])E + tripadvisor.*0div:has(> div[class="ui_columns is-multiline "])7 +heb.com(div:has(> div[id^="hrm-banner-shotgun"])F + +news12.com4div[alignitems="normal"]:has(> div[sizes*="object"])D +webtools.fineaty.com(div[class*=" hidden-"]:has(.adsbygoogle)G + shoprite.com3div[class*="Row--"]:has(img[src*="/PROMOTED-TAG_"])m +aliexpress.com + aliexpress.usFdiv[class*="search-item-card-wrapper-"]:has(span[class^="multi--ad-"])T + qwant.comCdiv[class="_2NDle"]:has(div[data-testid="advertiserAdsDisplayUrl"])n + walmart.*]div[class="mb1 ph1 pa0-xl bb b--near-white w-25"]:has(div[data-ad-component-type="wpa-tile"])º + radio.net + +radio.at + +radio.de + +radio.dk + +radio.es + +radio.fr + +radio.it + +radio.pl + +radio.pt + +radio.se=div[class] > div[class]:has(> div[class] > div[id^="RAD_D_"]), + +manomano.*div[class]:has(> .c4iHiiE); +androidauthority.comdiv[class]:has(> .pw-incontent)N +androidauthority.com2div[class]:has(> [data-ad-type="leaderboard_atf"])É: +oÿï08@R_giantfood.com,giantfoodstores.com,martinsfoods.com#?#[data-product-id]:-abp-contains(Sponsored) +Pÿï08@R@provigo.ca#?#.css-1nhzth8:-abp-contains(/sponsorisé|sponsored/) +dÿï08@RTrome2rio.com#?#div[aria-labelledby="schedules-header"] > div > div:-abp-contains(Ad)V + +scribd.comDdiv[class]:has(> [data-e2e="dismissible-ad-header-scribd_adhesion"])Á +priceritemarketplace.com +dearbornmarket.com +thefreshgrocer.com +fairwaymarket.com +gourmetgarage.com + shoprite.com;div[class^="ColListing"]:has(div[data-testid^="Sponsored"])• + +wish.com„div[class^="ProductGrid__FeedTileWidthWrapper-"]:has(div[class^="DesignSpec__TextSpecWrapper-"][color="#6B828F"]:not([data-testid]))É + +wish.com¸div[class^="ProductTray__ProductStripItem-"]:has(div[class^="DesignSpec__TextSpecWrapper-"][color="#6B828F"][data-testid] + div[class^="DesignSpec__TextSpecWrapper-"][color="#6B828F"])> +virginradio.co.uk%div[class^="css-"]:has(> .ad-outline)q + wikiwand.com]div[class^="footer_wrapper"]:has(> div[class^="wrapper_wrapper"] > div[class^="wrapper_cta"])H + +flickr.com6div[class^="main view"]:has(a[href$="&ref=sponsored"])` + staples.comMdiv[class^="sku-configurator__banner"]:has([aria-label="Sponsored Products"])R + wikiwand.com>div[class^="wrapper_wrapper"]:has(> div[class^="wrapper_cta"])P + wikiwand.com div[id^="ezoic-pub-ad"])é +outlook.live.comÐdiv[data-app-section="MessageList"] div[class][id*="-"]:has(> div:not([class]) > div[class] > div[class] > div[class] > div[class] > div[class] > div[class] > div[class] + .ms-Button--hasMenu.ms-Button--icon)^ + cargurus.comJdiv[data-cg-ft="car-blade"]:has(div[data-cg-ft="sponsored-listing-badge"])l +abcnews.go.comVdiv[data-container="band"]:has(> div > div[data-box-type="fitt-adbox-thinbannerhome"])L + rakuten.com9div[data-productid]:has(div.productList_sponsoredAds_RUS)Y +cruisecritic.co.uk?div[data-sentry-component="CruiseCard"]:has(a[rel="sponsored"])¢ + mail.aol.com�div[data-test-id="virtual-list"] > ul[role="list"][aria-label] > li[style]:has(a[href^="https://api.taboola.com/"][href*="/yahoo-aol-mail/"])a + priceline.comLdiv[data-testid="HTL_NEW_LISTING_CARD_RESP"]:has(a[aria-label*=" Promoted"])W + twitter.com +x.com;div[data-testid="UserCell"]:has(path[d$="10H8.996V8h7v7z"])X + twitter.com +x.com #bannerSide)¹ +puzzle-jigsaw-sudoku.com +puzzle-killer-sudoku.com +puzzle-thermometers.com +puzzle-battleships.com +puzzle-minesweeper.com +puzzle-skyscrapers.com +puzzle-star-battle.com +puzzle-shakashaka.com +puzzle-futoshiki.com +puzzle-nonograms.com +puzzle-aquarium.com +puzzle-dominosa.com +puzzle-galaxies.com +puzzle-heyawake.com +puzzle-kakurasu.com +puzzle-light-up.com +puzzle-norinori.com +puzzle-nurikabe.com +puzzle-shingoki.com +puzzle-stitches.com +puzzle-binairo.com +puzzle-bridges.com +puzzle-shikaku.com +puzzle-hitori.com +puzzle-kakuro.com +puzzle-sudoku.com +puzzle-chess.com +puzzle-masyu.com +puzzle-pipes.com +puzzle-slant.com +puzzle-tents.com +puzzle-words.com +puzzle-lits.com +puzzle-loop.com +puzzle-tapa.comdiv[id]:has(> #bannerTop)h + advocate.com + pride.com +out.com .ad_leaderboard_wrap)N +truthsocial.com7div[item="[object Object]"]:has(path[d="M17 7l-10 10"])¢ +truthsocial.comŠdiv[item="[object Object]"]:has(path[d="M9.83333 1.83398H16.5M16.5 1.83398V8.50065M16.5 1.83398L9.83333 8.50065L6.5 5.16732L1.5 10.1673"])œ@ +>facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion + facebook.comFdiv[style="max-width: 390px; min-width: 190px;"]:has(a[href^="/ads/"])> + thisday.app+div[style="min-height: 340px;"]:has(div.ad)S + nicelocal.com>div[style="min-height: 600px;"]:has(iframe[id^="google_ads_"])R + nicelocal.com=div[style="min-height: 90px;"]:has(iframe[id^="google_ads_"])A + +robtex.com/div[style]:has(> ins.adsbygoogle[data-ad-slot])Z +tartaria-faucet.net?div[style^="display"]:has([src^="https://multiwall-ads.shop/"])H + 90min.com7figure:has(> div > #mm-player-placeholder-large-screen)3 +nex-software.comh4:has(a[href$="/reimage"])S +streeteasy.com=li [class^="ListingCard-module"]:has([class*="sponsoredTag"])L + walmart.*;li.items-center:has(div[data-ad-component-type="wpa-tile"]): + walgreens.com%li.owned-brands:has(figure.sponsored)D + macys.com3li.productThumbnailItem:has(.sponsored-items-label)6 + kohls.com%li.products_grid:has(p.piq-sponsored)N +streeteasy.com8li.searchCardList--listItem:has(.jsSponsoredListingCard)0 + aboutyou.deli:has([data-testid="spons"])s +autotrader.co.uk[li:has(section[data-testid="trader-seller-listing"] > span[data-testid="FEATURED_LISTING"])s +autotrader.co.uk[li:has(section[data-testid="trader-seller-listing"] > span[data-testid="PROMOTED_LISTING"])8 +bbc.com)li[class*="-ListItem"]:has(div.dotcom-ad)R + +yandex.com@li[class*="_card"]:has(a[href^="https://yabs.yandex.ru/count/"])U + +yandex.comCli[class*="_card"]:has(a[href^="https://yandex.com/search/_crpd/"])D + yahoo.com3li[class="first"]:has([data-ylk*="affiliate_link"])K +autotrader.co.uk3li[class]:has(span[data-testid="FEATURED_LISTING"])? + +zillow.com-li[class^="ListItem-"]:has(#nav-ad-container)X + aboutyou.deEli[data-testid^="productTileTracker-"]:has([data-testid="sponsored"])X + aboutyou.deEli[data-testid^="productTileTracker-"]:has(button[data-testid="spo"])W +dictionary.com + thesaurus.com0main div[class]:has(> [data-type="ad-vertical"])A +globalchinaev.com(p.content-center:has-text(ADVERTISEMENT)2 +sciencenews.orgp:has-text(Sponsor Message)Y +windowsreport.com@section.hide-mbl:has(a[href^="https://out.reflectormedia.com/"])C + hwbusters.com.section.widget:has(> div[data-hwbus-trackbid])= +thehansindia.com%section:has(> .to-be-async-loaded-ad): +thehansindia.com"section:has(> [class*="level_ad"])K + tripadvisor.*6section[data-automation$="_AdPlaceholder"]:has(.txxUo)k + homedepot.comVsection[id^="browse-search-pods-"] > div.browse-search__pod:has(div.product-sponsored)Ê' +kÿï08@R[shopee.sg#?#.shopee-header-section:has(> .shopee-header-section__content:-abp-contains(Ad)) +jÿï08@RZstaples.com#?#.side-by-side-carousel__carousel_container:-abp-contains(Sponsored Products) +kÿï08@R[tripadvisor.*#?#[data-automation="crossSellShelf"] div:has(> span:-abp-contains(Sponsored)) +lÿï08@R\tripadvisor.*#?#[data-automation="relatedStories"] div > div:has(a:-abp-contains(SPONSORED))1 +pushsquare.comspan:has-text(or Subscribe)H + fxempire.com4span[display="inline-block"]:has-text(Advertisement)‹ + mirrored.toxtbody > tr:has(> td[data-label="Host"] > img[src="https://www.mirrored.to/templates/mirrored/images/hosts/FilesDL.png"])Y + titantv.comFtr:has(> td[align="center"][valign="middle"][colspan="2"][class="gC"])4 +opensubtitles.orgtr[style]:has([src*="php"])5 + oneindia.com!ul > li:has(> div[class^="adg_"])N +bleepingcomputer.com2ul#bc-home-news-main-wrap > li:has-text(Sponsored)Q + +etsy.comAul[data-results-grid-container] li:has([id^="ad-listing-title-"])L + modrinth.com8.normal-page__content [href*="bisecthosting.com/"] > imgT + modrinth.com@.normal-page__content [href^="http://bloom.amymialee.xyz"] > imgc + modrinth.comO.normal-page__content [href^="https://billing.apexminecrafthosting.com/"] > imgU + modrinth.comA.normal-page__content [href^="https://billing.bloom.host/"] > imgU + modrinth.comA.normal-page__content [href^="https://billing.ember.host/"] > img] + modrinth.comI.normal-page__content [href^="https://billing.kinetichosting.net/"] > imgL + modrinth.com8.normal-page__content [href^="https://mcph.info/"] > imgP + modrinth.com<.normal-page__content [href^="https://meloncube.net/"] > imgO + modrinth.com;.normal-page__content [href^="https://minefort.com/"] > imgP + modrinth.com<.normal-page__content [href^="https://nodecraft.com/"] > imgP + modrinth.com<.normal-page__content [href^="https://scalacube.com/"] > imgc + modrinth.comO.normal-page__content [href^="https://shockbyte.com/"][href*="/partner/"] > imgP + modrinth.com<.normal-page__content [href^="https://www.akliz.net/"] > imgx +curseforge.comb.project-description [href^="/linkout?remoteUrl="][href*="billing.apexminecrafthosting.com"] > imgj +curseforge.comT.project-description [href^="/linkout?remoteUrl="][href*="billing.bloom.host"] > imgj +curseforge.comT.project-description [href^="/linkout?remoteUrl="][href*="billing.ember.host"] > imgr +curseforge.com\.project-description [href^="/linkout?remoteUrl="][href*="billing.kinetichosting.net"] > imgi +curseforge.comS.project-description [href^="/linkout?remoteUrl="][href*="bisecthosting.com"] > imga +curseforge.comK.project-description [href^="/linkout?remoteUrl="][href*="mcph.info"] > imge +curseforge.comO.project-description [href^="/linkout?remoteUrl="][href*="meloncube.net"] > imgd +curseforge.comN.project-description [href^="/linkout?remoteUrl="][href*="minefort.com"] > imge +curseforge.comO.project-description [href^="/linkout?remoteUrl="][href*="nodecraft.com"] > imge +curseforge.comO.project-description [href^="/linkout?remoteUrl="][href*="scalacube.com"] > imge +curseforge.comO.project-description [href^="/linkout?remoteUrl="][href*="shockbyte.com"] > img% +nme.com#taboola-below-article3 + oneindia.com#taboola-mid-article-thumbnails= +the-independent.com"#taboola-mid-article-thumbnails-iiS +the-independent.com +independent.co.uk##taboola-mid-article-thumbnails-iii9 +lifeandstylemag.com#taboola-right-rail-thumbnails + nbsnews.com .TaboolaFeed + +ndtv.com .TpGnAd_ad-cn% +hindustantimes.com .ht_taboola/ +financialexpress.com.ie-network-taboola) +indianexpress.com.o-taboola-story* +abcnews.go.com + +6abc.com.taboolaC + theonion.com + theroot.com + +kotaku.com.taboola-container! + firstpost.com .taboola-div* +israelnationalnews.com .taboola-top + +ndtv.com[class^="ads_"]) + +ndtv.comdiv:has(> [id^="adslot"])- + weather.comdiv[id*="Taboola-sidebar"]+ + weather.comdiv[id^="Taboola-main-"]L +drivespark.com +goodreturns.in + express.co.ukdiv[id^="taboola-"]C + mail.aol.com/li:has(a[data-test-id="pencil-ad-messageList"]). +linkvertise.comlv-taboola-ctr-ad-dummyd + filmibeat.com + oneindia.com + +gizbot.com1ul > li:has(> div[id^="taboola-mid-home-stream"]). + +ndtv.com +ndtv.in[class^="firework"]+ + +ndtv.com +ndtv.in[id^="firework"]ˆ +joinpropeller.com +propellerads.com +adskeeper.co.uk +adsupplyads.com +adsupplyads.net +trafficshop.com +adspyglass.com +chpadblock.com +hilltopads.com + adskeeper.com + ad-maven.com + adsupply.com + exoclick.com + juicyads.com + luckyads.pro + myadcash.com + purpleads.io + admitad.com + monetag.com + +adcash.com + +popads.net + a-ads.com + yavli.comHTML .ad-fallback.ad.reform-top.reform-top-container›: + +amazon.* #nav-swmslot + +amazon.*#sc-rec-bottom + +amazon.* #sc-rec-rightM + +amazon.*=#similarities_feature_div:has(span.sponsored_label_tap_space)/ + +amazon.*#sponsoredProducts2_feature_div. + +amazon.*#sponsoredProducts_feature_div- + +amazon.*#typ-recommendations-stripe-1- + +amazon.*#typ-recommendations-stripe-2) + +amazon.*.AdsCard_container__K6vmo* + +amazon.*.amzn-safe-frame-containerF + +amazon.*6.dp-widget-card-deck:has([data-ad-placement-metadata])? + +amazon.*/.s-result-item:has([data-ad-feedback-label-id])6 + +amazon.*&.s-result-item:has([data-ad-feedback])A + +amazon.*1.s-result-item:has(div.puis-sponsored-label-text)J + +amazon.*:.s-result-list > .a-section:has(.sbv-ad-content-container)) + +amazon.*.sbv-video-single-productB + +amazon.*2[cel_widget_id*="-creative-desktop_loom-desktop-"][ + +amazon.*Kdiv.s-inner-result-item > div.sg-col-inner:has(a.puis-sponsored-label-text)5 + +amazon.*%div[cel_widget_id*="_ad-placements-"]/ + +amazon.*div[cel_widget_id*="Deals3Ads"]1 + +amazon.*!div[cel_widget_id*="desktop-dp-"]_ + +amazon.*Odiv[cel_widget_id="sp-orderdetails-desktop-carousel_desktop-yo-orderdetails_0"]Y + +amazon.*Idiv[cel_widget_id="sp-orderdetails-mobile-list_mobile-yo-orderdetails_0"]T + +amazon.*Ddiv[cel_widget_id="sp-pop-mobile-carousel_mobile-yo-postdelivery_0"]J + +amazon.*:div[cel_widget_id="sp-rhf-desktop-carousel_desktop-rhf_0"]Y + +amazon.*Idiv[cel_widget_id="sp-shiptrack-desktop-carousel_desktop-yo-shiptrack_0"]S + +amazon.*Cdiv[cel_widget_id="sp-shiptrack-mobile-list_mobile-yo-shiptrack_0"]R + +amazon.*Bdiv[cel_widget_id="sp-typ-mobile-carousel_mobile-typ-carousels_2"]= + +amazon.*-div[cel_widget_id="sp_phone_detail_thematic"], + +amazon.*div[cel_widget_id="typ-ads"]3 + +amazon.*#div[cel_widget_id^="adplacements:"]6 + +amazon.*&div[cel_widget_id^="LEFT-SAFE_FRAME-"]? + +amazon.*/div[cel_widget_id^="MAIN-FEATURED_ASINS_LIST-"]2 + +amazon.*"div[cel_widget_id^="multi-brand-"]J + +amazon.*:div[cel_widget_id^="sp-desktop-carousel_handsfree-browse"]6 + +amazon.*&div[class*="_dpNoOverflow_"][data-idt]/ + +amazon.*div[class*="SponsoredProducts"]W + +amazon.*Gdiv[data-a-carousel-options*="\\\"isSponsoredProduct\\\":\\\"true\\\""] + +amazon.*div[data-ad-id]L + +amazon.* div:has([class^="Sponsored"])ÉZ + skyscanner.* + tianxun.com7div > a:has(div[class^="DefaultBanner_sponsorshipRow"])R + skyscanner.* + tianxun.com/div:has(> a[data-testid="inline-brand-banner"])p + skyscanner.* + tianxun.comMdiv[class*="InlineBrandBanner" i]:has(button[class*="SponsoredInfoButton" i])y + skyscanner.* + tianxun.comVdiv[class*="ItineraryInlinePlusWrapper" i]:has(button[class*="SponsoredInfoButton" i])w + skyscanner.* + tianxun.comTdiv[class^="ItineraryInlinePlusWrapper_"]:has(button[class^="SponsoredInfoButton_"])i + skyscanner.* + tianxun.comFdiv[id*="-first-result" i]:has(button[class*="SponsoredInfoButton" i])X + skyscanner.* + tianxun.com5section[data-testid="inline-ad-panel-desktop-layout"]  + www.google.* #google-s-ad: + +esports.gg(#FreeStarVideoAdContainer_BesOfEsportsgg, +gunsandammo.com#VideoPlayerDivIframe# + +usnews.com#ac-lre-player-ph, +ew.com#article__primary-video-jw_1-0 + crash.net #cmg-vsly' + euronews.com#connatix-container + +wral.com#exco& + factinate.com#factinateVidazoo% +ispreview.co.uk#footer-slot-30 +ginx.tv!#ginx-floatingvod-containerspacer/ +latintimes.com + ibtimes.com +#ibt-video& + zerohedge.com#in-content-video% +gunsandammo.com#inline-player3 + pubs.rsc.org#journal-info > .text--centered2 +forums.whathifi.com#jwplayer-container-div8 + express.co.uk##mantis-recommender-top-placeholder# +twistedsifter.com +#mm-player. +ispreview.co.uk#mobile-takeover-slot-8( +newrepublic.com#nxs-video-iframe3 +the-express.com + express.co.uk #ovp-primis¯ +blackamericaweb.com +charlieintel.com +cassiuslife.com +hiphopwired.com +madamenoire.com + dexerto.com + newsone.com + +bossip.com + +tvone.tv#player-wrapper  + bar-planb.com #player_dev6 +essentiallysports.com#player_stn-player__Dybik0 +techlicious.com#primis-incontent-desktop5 +charlieintel.com + dexerto.com#primis-player+ +flightradar24.com#primisAdContainer +freethesaurus.com#qk1 +freethesaurus.com#qk2 +freethesaurus.com#qk5: +realclearpolitics.com#realclear_jwplayer_container$ + whoer.net#render-big-banners& +ispreview.co.uk#sidebar-slot-5. +wideopencountry.com#sv-video-container% + +uproxx.com#upx-mm-player-wrap( +wideopencountry.com #video-header0 +sportskeeda.com#video-player-container--$ +onlyinyourstate.com #video1-1& +newseveryday.com#vplayer_largeB +ratemyprofessors.com&.VideoPlayer__StyledPlayer-sc-2xyxn3-0! + +tvline.com._video_ti56x_1 +hotukdeals.com.adL +sciencetimes.com +musictimes.com + techtimes.com.ad_wrapper_video! + indy100.com.addressed_clsš +unofficialnetworks.com +androidheadlines.com +dailyveganmeal.com +discussingfilm.net +thedebrief.org + gcaptain.com + mp1st.com .adthrive2 +muscleandfitness.com.ami-video-placeholder( +usmagazine.com.ami-video-wrapper/ +arstechnica.com.ars-interlude-container6 +telegraph.co.uk.article-betting-unit-container• +stcatharinesstandard.ca +niagarafallsreview.ca +wellandtribune.ca + therecord.com + thespec.com + thestar.com.article-pe-video-wrapper9 +financemagnates.com.article-sidebar__video-bannerM +sciencetimes.com +latintimes.com + ibtimes.com.article-videoplayer' + +people.com.article__broad-video$ +digitaltrends.com .b-connatix* + bmwblog.com.bmwbl-video-in-content) +tennisworldusa.org.box_adv_primis0 + pedestrian.tv.brightcove-video-containerú- + military.com.brightcove-video-wrapper$ + +cnet.com.c-avLazyStickyVideo- + zdnet.com + +cnet.com.c-avStickyVideo& + +cnet.com.c-shortcodeVideo_wrap! + +stuff.tv.c-squirrel-embed +cartoonbrew.com.cb-ad; +tasteofhome.com +rd.com.cnx-inline-player-wrapper + mb.com.ph .code-block) +dailymail.co.uk.commercial-player@ + techwalla.com+.component-article-section-jwplayer-wrapper5 +livestrong.com.component-article-section-votd' +accuweather.com.connatix-player+ +familystylefood.com.email-highlight8 +taskandpurpose.com.empire-unit-prefill-container;" + europeanpharmaceuticalreview.com.europ-fixed-footer# +accuweather.com .feature-tag! + +ibtimes.sg.featured_video$ + pedestrian.tv.find-dream-job] +sportbible.com +uniladtech.com + +unilad.com'.floating-video-player_container__u4D9_, +dailymail.co.uk.footballco-container + redboing.com.fw-ad# + foxsports.com.fwAdContainer + thestar.co.uk.gOoqzH+ +electricianforum.co.uk .gb-sponsored- +arboristsite.com.gb-sponsored-wrapper, +givemesport.com.gms-videos-container! +gamesradar.com .in-articleQ +bringmethenews.com +mensjournal.com + thestreet.com.is-fallback-player& +gmanetwork.com.ivs-placeholder' + +evoke.ie.jw-player-video-widget2 +sciencefocus.com + anandtech.com .jwplayerc +tomshardware.com +livescience.com +gamesradar.com + whathifi.com.jwplayer__widthsetter# + space.com.jwplayer__wrapper, +southernliving.com.karma-sticky-rail +gearjunkie.com.ldm_ad" + thespun.com.m-video-player* +ispreview.co.uk.midarticle-slot-10) + insideevs.com.minutely_video_wrap( + lifewire.com.mntl-jwplayer-broad8 +historydefined.net +respawnfirst.com +.mv-ad-boxI +bestrecipes.com.au +delicious.com.au + taste.com.au .news-video, +newsnationnow.com.nxs-player-wrapper$ + pagesix.com.nyp-video-player' + insideevs.com.outstream_partnerL +musictimes.com + ibtimes.co.uk + ibtimes.com.page-top-mobile-video( + picrew.me.play-Imagemaker_Footer +sciencetimes.com.player9 +bamsmackpow.com +mentalfloss.com.player-wrapper' + +bossip.com.player-wrapper-inner + swimswam.com +.polls-461- + whoer.net.popup-counter-deal__wrapperœ +pro-football-reference.com +basketball-reference.com +baseball-reference.com +hockey-reference.com +sports-reference.com + fbref.com.primis' +appleinsider.com.primis-ad-wrap. +themarysue.com.primis-player-container$ + eurogamer.net.primis_wrapper + +iheart.com .provider-stn( + pedestrian.tv.recent-jobs-widget& +kidspot.com.au.secondary-video' + pedestrian.tv.sticky-item-group+ + playbuzz.com.stickyplayer-container. +usmagazine.com.storifyme-inline-widget+ +si.com.style_hfl21i-o_O-style_uhlm2) + gazette.com.tnt-section-sponsored& + thegrio.com.tpd-featured-videoÎN +bestlifeonline.com +hellogiggles.com + eatthis.com.vi-video-wrapperW +tomshardware.com +gamesradar.com + tomsguide.com + whathifi.com .vid-present0 +sportskeeda.com.vidazoo-player-container +justthenews.com.video* + petapixel.com.video-aspect-wrapper– +northamericanwhitetail.com +petersenshunting.com +rifleshootermag.com +gameandfishmag.com +shootingtimes.com +firearmsnews.com +flyfisherman.com +in-fisherman.com +gunsandammo.com +handgunsmag.com +wildfowlmag.com + bowhunter.com.video-detail-player + +gbnews.com .video-inbody + +fodors.com .video-inline% +gearjunkie.com.video-jwplayer! + hiphopdx.com .video-player, + bolavip.com.video-player-placeholder) + benzinga.com.video-player-wrapper/ +thepinknews.com.video-player__container + +tasty.co .video-wrap% +miamiherald.com.videoInstance! + dpreview.com .videoWrapper' +consequence.net.video_container + +gbnews.com .vsly-player3 +f1oversteer.com.wp-block-grvmedia-grv-video7 + thewrap.com$.wp-block-post-featured-image--video; + comicbook.com&.wp-block-savage-platform-primis-videoA +thecooldown.com*.wp-block-tcd-multipurpose-gutenberg-block- + bigthink.com.wrapper-connatixElements. + bigthink.com.wrapper-connatixPlayspace+ +global.espreso.tv.ym-video--wrapper6 +totalprosports.com[data-stn-player="n2psbctm"]* +worldsoccertalk.com[id*="primis_"]- + offidocs.com[id^="ja-container-prev"]- +hollywoodreporter.com[id^="jwplayer"]’ + ukrinform.net + ukrinform.de + ukrinform.es + ukrinform.fr + ukrinform.jp + ukrinform.pl + ukrinform.ua[style^="min-height: 280px;"]Q + wlevradio.com .section-hotel-prices-header + yahoo.com #Horizon-ad! + yahoo.com#Lead-0-Ad-Proxy + yahoo.com +#adsStream+ + yahoo.com#commerce-module-containerU +mail.yahoo.com?#commerce_card_group_container:has([data-test-id*="affiliate"]) + yahoo.com #defaultLREC, +finance.yahoo.com#mrt-node-Lead-0-Ad+ +sports.yahoo.com#mrt-node-Lead-1-Ad. +sports.yahoo.com#mrt-node-Primary-0-Ad0 +sports.yahoo.com#mrt-node-Secondary-0-Ad + yahoo.com #sda-Horizon$ + yahoo.com#sda-Horizon-viewer + yahoo.com #sda-LDRB! + yahoo.com#sda-LDRB-iframe + yahoo.com +#sda-LDRB2 + yahoo.com #sda-LREC! + yahoo.com#sda-LREC-iframe + yahoo.com +#sda-LREC2" + yahoo.com#sda-LREC2-iframe + yahoo.com +#sda-LREC3" + yahoo.com#sda-LREC3-iframe + yahoo.com +#sda-LREC4 + yahoo.com #sda-MAST + yahoo.com#sda-MON + yahoo.com +#sda-WFPAD + yahoo.com #sda-WFPAD-1þ" + yahoo.com#sda-WFPAD-iframe' + yahoo.com#sda-top-center-iframe* + yahoo.com#sda-wrapper-COMMENTSLDRB& + yahoo.com#sda-wrapper-WFPAD2-2  +mail.yahoo.com +#slot_LREC + yahoo.com #viewer-LDRB + yahoo.com #viewer-LREC2  + yahoo.com#viewer-LREC2-1% + yahoo.com#viewer-LREC2-iframe + yahoo.com .Feedback" +finance.yahoo.com .ad-lrec3 + yahoo.com.ads + yahoo.com.caas-da + yahoo.com .da-container + yahoo.com.darla! + yahoo.com.darla-container + yahoo.com.darla-lrec-ad + yahoo.com .darla_ad" + yahoo.com.ds_promo_ymobile! + yahoo.com.gam-placeholder + yahoo.com +.gemini-ad$ + yahoo.com.gemini-ad-feedback + yahoo.com .item-beacon3 + yahoo.com".leading-3:has-text(Advertisement)D + yahoo.com3.md\:block.dark\:bg-ramones:has-text(Advertisement) + yahoo.com .mx-\[-50vw\] + yahoo.com .ntk-ad-item( +sports.yahoo.com.post-article-ad& +finance.yahoo.com .sdaContainer' + yahoo.com.searchCenterBottomAds$ + yahoo.com.searchCenterTopAds- +search.yahoo.com.searchRightBottomAds* +search.yahoo.com.searchRightTopAds! + yahoo.com.sys_shopleguide + yahoo.com .top-\[92px\]& + yahoo.com.viewer-sda-container/ + yahoo.com[data-content="Advertisement"]1 +mail.yahoo.comata-test-id="gam-iframe"]< +mail.yahoo.com&[data-test-id="leaderboard-ad-mobile"]1 +mail.yahoo.comata-test-id^="pencil-ad"]3 +mail.yahoo.com[data-test-id^="taboola-ad-"]" + yahoo.com[data-wf-beacons], +finance.yahoo.com[id^="defaultLREC"]* + www.yahoo.com[id^="mid-center-ad"]f +mail.yahoo.comP[rel="noreferrer"][data-test-id][href^="https://a.beap.gemini.yahoo.com/mbclk?"]d +mail.yahoo.comN[rel="noreferrer"][data-test-id][href^="https://beap.gemini.yahoo.com/mbclk?"]1 + yahoo.com a[data-test-id="large-image-ad"]= +mail.yahoo.com'article[aria-labelledby*="-pencil-ad-"]; + www.yahoo.com&body#news-content-app li:has(.inset-0)F + www.yahoo.com1body.font-yahoobeta > div.items-center:has(style)# + yahoo.comdiv[class*="ads-"]( + yahoo.comdiv[class*="gemini-ad"]A + yahoo.com0div[data-beacon] > div[class*="streamBoxShadow"]# + yahoo.comdiv[id*="ComboAd"]( + yahoo.comdiv[id^="COMMENTSLDRB"]# + yahoo.comdiv[id^="LeadAd-"]$ + yahoo.comdiv[id^="darla-ad"]( + yahoo.comdiv[id^="defaultWFPAD"]( + yahoo.comdiv[id^="gemini-item-"]$ + yahoo.comdiv[style*="/ads/"]: + yahoo.com)div[style="height: 250px; width: 300px;"]: + yahoo.com)div[style="height: 250px; width: 970px;"]9 + yahoo.com(div[style="height: 90px; width: 728px;"]6 + yahoo.com%div[style="height:250px;width:300px"]Å6 + yahoo.com%div[style="height:250px;width:970px"]5 + yahoo.com$div[style="height:90px;width:728px"]A +mail.yahoo.com+li:has(a[href^="https://api.taboola.com/"])? + yahoo.com.li[data-test-locator="stream-related-ad-item"]o + youtube.com\#shorts-inner-container > .ytd-shorts:has(> .ytd-reel-video-renderer > ytd-ad-slot-renderer)‡ + youtube.comt.ytReelMetapanelViewModelHost > .ytReelMetapanelViewModelMetapanelItem > .ytShortsSuggestedActionViewModelStaticHost~ + youtube.comk.ytd-section-list-renderer > .ytd-item-section-renderer > ytd-search-pyv-renderer.ytd-item-section-renderery + youtube.comf.ytd-two-column-browse-results-renderer > ytd-rich-grid-renderer > #masthead-ad.ytd-rich-grid-renderer‘ + youtube.com~.ytd-watch-flexy > .ytd-watch-next-secondary-results-renderer > ytd-ad-slot-renderer.ytd-watch-next-secondary-results-renderer_ + youtube.comL.ytd-watch-flexy > ytd-merch-shelf-renderer > #main.ytd-merch-shelf-rendererF + youtube.com3.ytp-suggested-action > .ytp-suggested-action-badge1 + m.youtube.comlazy-list > ad-slot-rendererP + youtube.com=ytd-rich-item-renderer:has(> #content > ytd-ad-slot-renderer)V + m.youtube.comAytm-companion-slot[data-content-type] > ytm-companion-ad-renderer> + m.youtube.com)ytm-rich-item-renderer > ad-slot-renderer‰ + youtube.comv.grid.ytd-browse > #primary > .style-scope > .ytd-rich-grid-renderer > .ytd-rich-grid-renderer > .ytd-ad-slot-renderert + youtube.coma.ytd-rich-item-renderer.style-scope > .ytd-rich-item-renderer > .ytd-ad-slot-renderer.style-scopel + youtube.comYytd-item-section-renderer > .ytd-item-section-renderer > ytd-ad-slot-renderer.style-scope0 +thefreedictionary.com#Content_CA_AD_0_BC0 +thefreedictionary.com#Content_CA_AD_1_BC9 +instapundit.com"#adspace_top > .widget-ad__content + sonichits.com +#bottom_ad$ + sonichits.com#divStickyRight( +spanishdict.com#removeAdsSidebar + sonichits.com #right-ad, +ldoceonline.com#rightslot2-container" + sonichits.com #top-ad-outer  + sonichits.com #top-top-ad# +plagiarismchecker.co#topbox$ +spanishdict.com .ad--1zZdAdPU + tweaktown.com.adcon" +geekzone.co.nz .adsbygoogle+ + apkmirror.com.ains-apkm_outbrain_ad( + tweaktown.com.center-tag-rightad$ + rawstory.com.connatix-hodler + apkmirror.com.ezo_adP +patents.justia.com6.jcard[style="min-height:280px; margin-bottom: 10px;"]g@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com.js-results-adsx@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com .js-sidebar-ads > .nrn-react-div4 +boatsonline.com.au + yachthub.com +.js-sticky( + history.com.m-balloon-header--ad# + history.com.m-in-content-ad' + history.com.m-in-content-ad-row0 + +spiegel.de.ob-dynamic-rec-container.ob-pe@ +>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion +duckduckgo.com .results--adsA +mail.google.com*a[href^="http://li.blogtrottr.com/click?"]/ +geekzone.co.nzdiv.cornered.box > center< +taboolanews.com%div[class*=" trc_elastic_sponsored-"]3 + apkmirror.comdiv[id^="adtester-container-"]& + +yandex.comdiv[id^="yandex_ad"]% + www.google.*#tads[aria-label]& + www.google.*#tadsb[aria-label]< + www.google.*(.commercial-unit-desktop-rhs:not(.mnr-c)C + www.google.*/.commercial-unit-mobile-top > div[data-pla="1"]! + www.google.* .cu-container + www.google.*.ltJjte + www.google.*.OcdnDb% + www.google.*.OcdnDb + .fp2VUc% + www.google.*.OcdnDb + .PbZDve/ + www.google.*.OcdnDb + .PbZDve + .m6QErb + www.google.*.uEierdK + www.google.*7a[href^="/aclk?sa="][href*="&adurl=&placesheetAdFix=1"]T + www.google.*@a[href^="/aclk?sa="][href*="&adurl=&placesheetAdFix=1"] + buttonL + www.google.*8a[href^="https://www.googleadservices.com/pagead/aclk?"]Ù9 + www.google.*%body#yDmH0d [data-is-promoted="true"]Z + www.google.*Fc-wiz[jsrenderer="YTTf6c"] > .bhapoc.oJeWuf[jsname="bN97Pc"][data-ved]P + www.google.* div[jsname="Nf35pd"] > div[class="R09YGb ilovz"]V + www.google.*Bdiv.sh-sr__shop-result-group[data-hveid]:has(g-scrolling-carousel)B + www.google.*.div[class="Nv2PK THOPZb CpccDe "]:has(.OcdnDb)+ + www.google.*div[data-ads-title="1"]; + www.google.*'div[data-attrid="kc:/local:promotions"]A + www.google.*-div[data-crl="true"][data-id^="CarouselPLA-"]' + www.google.*div[data-is-ad="1"]9 + www.google.*%div[data-is-promoted-hotel-ad="true"]0 + www.google.*div[data-section-type="ads"]U + www.google.*Adiv[data-tweed-card]:has(a[href^="https://www.google.com/aclk?"])H + www.google.*4div[jsdata*="CarouselPLA-"][data-id^="CarouselPLA-"]D + www.google.*0div[jsdata*="SinglePLA-"][data-id^="SinglePLA-"]f + www.google.*Rhtml[itemtype="http://schema.org/SearchResultsPage"] #cnt div[class$="sh-sr__bau"]m + www.google.*Yhtml[itemtype="http://schema.org/SearchResultsPage"] #cnt div[class$="sh-sr__tau"][style]) +testpages.adblockplus.org#abptest" +testpages.eyeo.com#test-aa* +testpages.eyeo.com#test-element-id- +testpages.eyeo.com.test-element-class +msn.com#displayAdCard +msn.com #partners +msn.com #promotions! +msn.com.ad-banner-wrapper +msn.com .ad-container= +msn.com..articlePage_bannerAd_wrapper-DS-EntryPoint1-1= +msn.com..articlePage_eoabNativeAd_new-DS-EntryPoint1-1, +msn.com.banner-placeholder-container2 +msn.com#.bannerAdContainer-DS-EntryPoint1-1/ +msn.com .consumption-page-banner-wrapper% +msn.com.display-ads-container +msn.com.drrTopAdWrapper +msn.com .eocb-ads< +msn.com-.galleryPage_eoabContent_new-DS-EntryPoint1-1= +msn.com..galleryPage_eoabNativeAd_new-DS-EntryPoint1-1% +msn.com.intra-article-ad-full% +msn.com.intra-article-ad-halfR +msn.comC.me-stripe-tile-content:has(a[href*="?"] .me-stripe-title-subtitle)B +msn.com3.modernRightRail_stickyTopBannerAd-DS-EntryPoint1-1K +msn.com<.modernRightRail_topAd_container_2col_newRR-DS-EntryPoint1-1  +msn.com.outeradcontainer' +msn.com.qohvco-DS-EntryPoint1-1  +msn.com.river-backgroundm +msn.com^.sportsPageHorizontalTopLevelContainer-DS-EntryPoint1-1:has(> div[id*="banner"] > display-ads), +msn.com.views-right-rail-top-display/ +msn.com .views-right-rail-top-display-ad9 +msn.com*.windowsBannerAdContainer-DS-EntryPoint1-11 +msn.com"[class^="articlePage_eoabContent"]= +msn.com.[data-m*="Infopane_CMSBasicCardstore_article"] +msn.com[id^="nativead"]) +msn.coma[aria-label="AliExpress"]/ +msn.com a[aria-label="Amazon Assistant"]% +msn.coma[aria-label="Amazon"]& +msn.coma[aria-label="Bol.com"]* +msn.coma[aria-label="Booking.com"]& +msn.coma[aria-label="Ricardo"], +msn.coma[aria-label="Today's Deals"]# +msn.coma[aria-label="eBay"]' +msn.coma[href*=".booking.com/"]* +msn.coma[href*="/aff_m?offer_id="]& +msn.coma[href*="?sub_aff_id="]+ +msn.coma[href="https://aka.ms/QVC"]* +msn.coma[href^="https://amzn.to/"]= +msn.com.a[href^="https://clk.tradedoubler.com/click?"]ª? +msn.com0a[href^="https://clkde.tradedoubler.com/click?"]6 +msn.com'a[href^="https://disneyplus.bn5x.net/"]6 +msn.com'a[href^="https://prf.hn/click/camref:"]4 +msn.com%a[href^="https://ww55.affinity.net/"]  +msn.comabove-river-block  +msn.comcs-native-ad-card# +msn.comcs-native-ad-card-24) +msn.comcs-native-ad-card-no-hover2 +msn.com#div.body:has(> img[id^="nativead"])* +msn.comdiv.footer:has(> a.ad-slug)> +msn.com/div[class^="articlePage_topBannerAdContainer_"]E +msn.com6div[class^="card-DS-card"][data-t*="RiverPlaceholder"]1 +msn.com"div[class^="galleryPage_bannerAd"]$ +msn.comdiv[id^="mrr-topad-"]" +msn.comdiv[id^="nativeAd"]/ +msn.com div[id^="watch-feed-native-ad-"]1 +msn.com"li[data-m*="NativeAdItem"] > a > *) +msn.comli[data-provider="gemini"]+ +msn.comli[data-provider="outbrain"]* +msn.commsft-article-card[class=""]4 +msn.com%msft-content-card[data-t*="NativeAd"]B +msn.com3msft-content-card[href^="https://api.taboola.com/"]= +msn.com.msft-content-card[id^="contentcard_nativead-"]= +msn.com.msn-info-pane-panel[id^="tab_panel_nativead-"]" +msn.compartner-upsell-card: + +bing.com*#bepfo.popup[style^="visibility: visible"] + +bing.com.ad_sc + +bing.com.b_ad + +bing.com .b_adBottom + +bing.com.b_adLastChild! + +bing.com.b_adPATitleBlock: + +bing.com*.b_algo:has(> .b_title > h2 > .b_ads1line) + +bing.com.b_spa_adblock# + +bing.com.br-poleoffcarousel + +bing.com .mapsTextAds + +bing.com.mma_il + +bing.com.pa_sb + +bing.com +.productAd# + +bing.com.text-ads-container% + +bing.com[id$="adsMvCarousel"]& + +bing.coma[href*="/aclick?ld="]! + +bing.comcs-native-ad-card- + +bing.comdiv[aria-label$="ProductAds"]( + +bing.comdiv[class="ins_exp tds"]( + +bing.comdiv[class="ins_exp vsp"]* + +bing.comli[data-idx]:has(#mm-ebad) +checkfelix.com + swoodoo.com +kayak.*O#resultWrapper > div > div > [role="button"][tabindex="0"] > .yuAt-pres-rounded5 +checkfelix.com + swoodoo.com +kayak.*.Dp1LŽ +checkfelix.com + swoodoo.com +kayak.*^.ev1_-results-list > div > div > div > div.G-5c[role="tab"][tabindex="0"] > .yuAt-pres-roundedw +checkfelix.com + swoodoo.com +kayak.*G.ev1_-results-list > div > div > div > div[data-resultid$="-sponsored"]5 +checkfelix.com + swoodoo.com +kayak.*.EvBR@ +checkfelix.com + swoodoo.com +kayak.*.IZSg-mod-bannerR +checkfelix.com + swoodoo.com +kayak.*".J8jg:has(.J8jg-provider-ad-badge)^ +checkfelix.com + swoodoo.com +kayak.*..nqHv-pres-three:has(div.nqHv-logo-ad-wrapper)ˆ +checkfelix.com + swoodoo.com +kayak.*X.resultsList > div > div > div > div.G-5c[role="tab"][tabindex="0"] > .yuAt-pres-roundedq +checkfelix.com + swoodoo.com +kayak.*A.resultsList > div > div > div > div[data-resultid$="-sponsored"]5 +checkfelix.com + swoodoo.com +kayak.*.YnaR@ +checkfelix.com + swoodoo.com +kayak.*.zZcm-pres-threeE +checkfelix.com + swoodoo.com +kayak.*div.PzK0-pres-defaultj +checkfelix.com + swoodoo.com +kayak.*:div.YTRJ[role="button"][tabindex="0"] > .yuAt-pres-roundedH +checkfelix.com + swoodoo.com +kayak.*div[class$="-adWrapper"]F +checkfelix.com + swoodoo.com +kayak.*div[class*="-ad-card"]F +checkfelix.com + swoodoo.com +kayak.*div[class*="-adInner"]U +checkfelix.com + swoodoo.com +kayak.*%div[data-resultid]:has(a.IZSg-adlink)Å4 +Vÿï08@RFanfieldindex.com#?#aside[data-animation-event]:-abp-contains(PARTNERS) +Wÿï08@RGcvs.com#?#div[class*="flex-col"]:-abp-has(>h2:-abp-contains(Sponsored)) +Jÿï08@R:bestbuy.com#?#.plp-ninja-carousel:-abp-contains(Sponsored) +;ÿï08@R+qvc.com#?#.qModule:-abp-contains(Sponsored) +Eÿï08@R5newegg.com#?#.product-banner:-abp-contains(Sponsored) +dÿï08@RTtarget.com#?#[data-test="productCardVariantRecommendation"]:-abp-contains(Sponsored) +¹ÿï08@R¨coindesk.com#?#.bg-white.flex.gap-6.w-full.shrink.justify-between.md\:justify-normal.lg\:flex-row-reverse:has(.font-metadata.mr-1.uppercase:-abp-contains(Sponsored by)) +;ÿï08@R+temu.com#?#.splide__slide:-abp-contains(AD) +Jÿï08@R:foodlion.com#?#.product-grid-cell:-abp-contains(Sponsored) +�ÿï08@Rqmanomano.*#?#[data-testid="productCardListing"]:-abp-contains(/Patrocinado|Gesponsert|Sponsorisé|Sponsorizzato/) +fÿï08@RVmanomano.*#?#.Ssfiu-:-abp-contains(/Patrocinado|Gesponsert|Sponsorisé|Sponsorizzato/) +wÿï08@Rggiantfoodstores.com,giantfood.com,martinsfoods.com#?#.pdl-generic-content_full:-abp-contains(Sponsored) +aÿï08@RQheb.com#?#div:has(> div > div[class^="Carousel_wrapper"]:-abp-contains(Promoted)) +mÿï08@R]heb.com#?#div:has(> div > div[class^="ModuleSet_moduleSetContainer"]:-abp-contains(Promoted)) +Uÿï08@REtripadvisor.com#?#[data-test="SL_list_item"]:-abp-contains(Sponsored) +Àÿï08@R¯sainsburys.co.uk#?#section[class="ln-o-section ln-u-hard-bottom ln-u-margin-top*2"]:-abp-contains(Sponsored) + section[class="ln-o-section ln-u-hard-bottom ln-u-margin-top*2"] +nÿï08@R^sainsburys.co.uk#?#section header[data-test="c006-container-wrapper"]:-abp-contains(Sponsored) +Bÿï08@R2fiverr.com#?#.gig-card-layout:-abp-contains(Ad by) +6ÿï08@R&temu.com#?#.EKDT7a3v:-abp-contains(AD) +Lÿï08@R .shopee_ic:-abp-contains(Ad)) +Sÿï08@RCshopee.sg#?#div[class="oMSmr0"]:has(> .shopee_ic:-abp-contains(Ad)) +Eÿï08@R5perplexity.ai#?#.py-sm.group:-abp-contains(Sponsored) +[ÿï08@RKautotrader.co.uk#?#[data-testid="desktop-search"] li:has(span:has-text(Ad)) +Vÿï08@RFdev.to#?#div[data-display-unit]:-abp-has(span:-abp-contains(Promoted)) +Tÿï08@RDtripadvisor.com#?#[aria-label="Map marker"]:-abp-contains(Sponsored) +Aÿï08@R1noon.com#?#.swiper-slide:-abp-contains(Sponsored) +Qÿï08@RAregexlearn.com#?#.w-full.mb-3:has(a[href="/learn/regex-for-seo"]) +`ÿï08@RPkslnewsradio.com,ksltv.com,ktar.com#?#.wrapper:-abp-contains(Sponsored Articles) +Nÿï08@R>shopee.sg#?#.shopee-search-item-result__item:-abp-contains(Ad) +Nÿï08@R>kogan.com#?#.rs-infinite-scroll > div:-abp-contains(Sponsored) +<ÿï08@R,kogan.com#?#._2EeeR:-abp-contains(Sponsored) +Bÿï08@R2kogan.com#?#.slider-slide:-abp-contains(Sponsored) +Íÿï08@R¼euronews.com#?#.m-object:has(.m-object__quote:-abp-contains(/In partnership with|En partenariat avec|Mit Unterstützung von|In collaborazione con|En colaboración con|Em parceria com|СовмеÑ�тно Ñ�|ile birlikte|Σε συνεÏ�γασία με|Együttműködésben a|با همکاری|بالمشاركة مع/)) +sÿï08@Rcnordstrom.com#?#ul[style^="padding: 0px; position: relative;"] > li[class]:-abp-contains(Sponsored) +Vÿï08@RFloblaws.ca#?#[data-testid="product-grid"]>div:-abp-contains(Sponsored) +Rÿï08@RBsemafor.com#?#.suppress-rss:-abp-has(:-abp-contains(Supported by)) +>ÿï08@R.shipt.com#?#li[class]:-abp-contains(Sponsored) +]ÿï08@RMargos.co.uk#?#[data-test^="component-slider-slide-"]:-abp-contains(SPONSORED) +æÿï08@RÕatlanticsuperstore.ca,fortinos.ca,maxi.ca,newfoundlandgrocerystores.ca,nofrills.ca,provigo.ca,realcanadiansuperstore.ca,valumart.ca,yourindependentgrocer.ca,zehrs.ca#?#[data-testid="card"]:-abp-contains(sponsored) +Zÿï08@RJkijiji.ca#?#[data-testid^="listing-card-list-item-"]:-abp-contains(TOP AD) +üÿï08@Rëatlanticsuperstore.ca,fortinos.ca,loblaws.ca,maxi.ca,newfoundlandgrocerystores.ca,nofrills.ca,provigo.ca,realcanadiansuperstore.ca,valumart.ca,yourindependentgrocer.ca,zehrs.ca#?#.product-tile-group__list__item:-abp-contains(Sponsored) +\ÿï08@RLcoles.com.au#?#.coles-targeting-UnitContainer:has(ul.product__top_messaging) +Fÿï08@R6dev.to#?#.crayons-card:-abp-has(.sponsorship-dropdown) +rÿï08@Rbulta.com#?#li.ProductListingResults__productCard:has(.ProductCard__badge:-abp-contains(Sponsored)) +Gÿï08@R7leadership.ng#?#.jeg_postblock:-abp-contains(SPONSORED) +ûÿï08@Rêacmemarkets.com,albertsons.com,andronicos.com,carrsqc.com,haggen.com,jewelosco.com,kingsfoodmarkets.com,pavilions.com,randalls.com,safeway.com,shaws.com,starmarket.com,tomthumb.com,vons.com#?#.product-card-col:-abp-contains(Sponsored) +Sÿï08@RCagoda.com#?#.PropertyCardItem:-abp-has(div:-abp-contains(Promoted)) +Qÿï08@RAalibaba.com#?#.J-offer-wrapper:-abp-contains(Top sponsor listing) +?ÿï08@R/app.daily.dev#?#article:-abp-contains(Promoted) +Kÿï08@R;backpack.tf,backpacktf.com#?#.panel:-abp-contains(createAd) +Vÿï08@RFbelloflostsouls.net#?#span.text-secondary:-abp-contains(Advertisement) +Qÿï08@RAcointelegraph.com#?#li.group-\[\.inline\]\:mb-8:-abp-contains(Ad) +Eÿï08@R5scamwarners.com#?#center:-abp-contains(Advertisement) +Nÿï08@R>infographicjournal.com#?#.et_pb_widget:-abp-contains(Partners) +Nÿï08@R>infographicjournal.com#?#.et_pb_module:-abp-contains(Partners) +^ÿï08@RNinfographicjournal.com#?#.et_pb_module:-abp-contains(Partners) + .et_pb_module +fÿï08@RVtelugupeople.com#?#table:-abp-has(> tbody > tr > td > a:-abp-contains(Advertisements)) +Fÿï08@R6bleepingcomputer.com#?#.post_wrap:-abp-contains(AdBot) +Aÿï08@R1bolnews.com#?#[style*="center"]:-abp-contains(Ad) +eÿï08@RUbooking.com#?#div[data-testid="property-card"]:-abp-has(span:-abp-contains(Promoted))B +checkfelix.com + swoodoo.com +kayak.*div[id^="inline-"]¬ + shoprite.com—div[class^="Row"]:has(div[data-component] a[data-testid] picture source[media="(min-width: 1024px)"] + img[class*="ImageTextButtonImage"][src*=".jpg"])Ë +aliexpress.com#?²card-list > .search-item-card-wrapper-gallery:-abp-has(a.search-card-item[href*="&aem_p4p_detail="] div[class*="cards--image--"] > div[class*="multi--ax--"]:-abp-contains(/^(?:AD|An[uú]ncio|ê´‘ê³ |広告)$/)):-abp-has(+ .search-item-card-wrapper-gallery a.search-card-item:not([href*="&aem_p4p_detail="]))œ; +Dÿï08@R4yourstory.com#?#[width]:-abp-contains(ADVERTISEMENT) +Lÿï08@R div > .ad-background) +fÿï08@RVdeccanherald.com#?#div[style^="min-height"]:-abp-has(> div > div[id*="-ad-separator"]) +Jÿï08@R:qz.com#?#div[class^="sc-"]:-abp-has(> div[is="bulbs-dfp"]) +Kÿï08@R;qz.com#?#div[class^="sc-"]:-abp-has(> div[class="ad-unit"]) +kÿï08@R[china.ahk.de#?#.b-main__section:-abp-has(h2.homepage-headline:-abp-contains(Advertisement)) +Bÿï08@R2producthunt.com#?#.text-12:-abp-contains(Promoted) +Oÿï08@R?cleantechnica.com#?#.zox-side-widget:-abp-contains(/^Advertis/) +@ÿï08@R0mapchart.net#?#.row:-abp-contains(Advertisement) +Rÿï08@RBcoinlisting.info#?#.panel:-abp-has(h3:-abp-contains(Sponsored Ad)) +Kÿï08@R;coolors.co#?#a:-abp-has(div:last-child:-abp-contains(Hide)) +Zÿï08@RJneowin.net#?#.ipsColumns_collapsePhone.classes:-abp-contains(Our Sponsors) +Lÿï08@R h4.block-title > span:-abp-contains(Visit Our Sponsors)) +`ÿï08@RPcruisecritic.co.uk,cruisecritic.com#?#div[role="group"]:-abp-contains(Sponsored) +Rÿï08@RBdeccanherald.com#?#div#container-text:-abp-contains(ADVERTISEMENT) +Sÿï08@RCdeccanherald.com#?#span.container-text:-abp-contains(ADVERTISEMENT) +3ÿï08@R#decrypt.co#?#span:-abp-contains(AD) +Rÿï08@RBdigg.com#?#article.relative:-abp-has(div:-abp-contains(SPONSORED)) +Tÿï08@RDeztv.tf,eztv.yt,123unblock.bar#?#tbody:-abp-contains(WARNING! Use a) +yÿï08@Rifilehippo.com#?#article.card-article:-abp-has(span.card-article__author:-abp-contains(Sponsored Content)) +Hÿï08@R8freshdirect.com#?#.swiper-slide:-abp-contains(Sponsored) +Mÿï08@R=gamersnexus.net#?#.moduleContent:-abp-contains(Advertisement) +Nÿï08@R>hannaford.com#?#.header-2:-abp-contains(Sponsored Suggestions) +mÿï08@R]heb.com#?#div[class^="sc-"]:-abp-has(> div[data-qe-id="productCard"]:-abp-contains(Promoted)) +¥ÿï08@R”instagram.com#?#div[style="max-height: inherit; max-width: inherit; display: none !important;"]:-abp-has(span:-abp-contains(Paid partnership with )) +Ÿÿï08@RŽinstagram.com#?#div[style="max-height: inherit; max-width: inherit; display: none !important;"]:-abp-has(span:-abp-contains(Paid partnership)) +Šÿï08@Rzinstagram.com#?#div[style="max-height: inherit; max-width: inherit;"]:-abp-has(span:-abp-contains(Paid partnership with )) +dÿï08@RTlinkedin.com#?#.msg-overlay-list-bubble__conversations-list:-abp-contains(Sponsored) +õÿï08@Rälinkedin.com#?#div.feed-shared-update-v2:-abp-has(span.update-components-actor__sub-description--tla:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|ПродвигаетÑ�Ñ�|Marknadsfört|Nai-promote|ได้รับà¸�ารโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) +ìÿï08@RÛlinkedin.com#?#div.feed-shared-update-v2:-abp-has(span.update-components-actor__description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|ПродвигаетÑ�Ñ�|Marknadsfört|Nai-promote|ได้รับà¸�ารโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) +ðÿï08@Rßlinkedin.com#?#div.feed-shared-update-v2:-abp-has(span.update-components-actor__sub-description:-abp-contains(/Anzeige|Sponsored|Promoted|Dipromosikan|Propagováno|Promoveret|Gesponsert|Promocionado|促銷內容|Post sponsorisé|프로모션|Post sponsorizzato|广告|プロモーション|Treść promowana|Patrocinado|Promovat|ПродвигаетÑ�Ñ�|Marknadsfört|Nai-promote|ได้รับà¸�ารโปรโมท|Öne çıkarılan içerik|Gepromoot|الترويج/)) +…ÿï08@Ruloblaws.ca,provigo.ca,valumart.ca,yourindependentgrocer.ca,zehrs.ca#?#.chakra-container:-abp-contains(Featured Items) +Dÿï08@R4lovenovels.net#?#center:-abp-contains(Advertisement) +\ÿï08@RLnoelleeming.co.nz#?#div.product-tile:-abp-has(span:-abp-contains(Sponsored)) +`ÿï08@RPnoon.com#?#span[class*="productContaine"]:-abp-has(div:-abp-contains(Sponsored)) +Lÿï08@R header + div > div + div:-abp-contains(Sponsors) +Nÿï08@R>search.yahoo.com#?#div.mb-28:-abp-has(span:-abp-contains(Ads)) +Mÿï08@R=seattleweekly.com#?#.marketplace-row:-abp-contains(Sponsored) +eÿï08@RUsephora.com#?#div[class^="css-"]:-abp-has(>a:-abp-has(span:-abp-contains(Sponsored))) +Oÿï08@R?techonthenet.com#?#div[class] > p:-abp-contains(Advertisements) +Wÿï08@RGdictionary.com,thesaurus.com#?#[class] > p:-abp-contains(Advertisement) +Eÿï08@R5shipt.com#?#div.swiper-slide:-abp-contains(Sponsored) +Xÿï08@RHsprouts.com#?#li.product-wrapper:-abp-has(span:-abp-contains(Sponsored)) +^ÿï08@RNtarget.com#?#.ProductRecsLink-sc-4mw94v-0:-abp-has(p:-abp-contains(sponsored)) +oÿï08@R_target.com#?#div[data-test="@web/ProductCard/ProductCardVariantAisle"]:-abp-contains(Sponsored) +qÿï08@Ratarget.com#?#div[data-test="@web/site-top-of-funnel/ProductCardWrapper"]:-abp-contains(sponsored) +Zÿï08@RJtossinggames.com#?#tbody:-abp-contains(Please visit our below advertisers) +Tÿï08@RDtrends.gab.com#?#li.list-group-item:-abp-contains(Sponsored content) +`ÿï08@RPtripadvisor.com#?#.cAWGu:-abp-has(a:-abp-contains(Similar Sponsored Properties)) +Aÿï08@R1tripadvisor.com#?#.tkvEM:-abp-contains(Sponsored) +îÿï08@RÝtwitter.com,x.com#?#h2[role="heading"]:-abp-contains(/Promoted|Gesponsert|Promocionado|Sponsorisé|Sponsorizzato|Promowane|Promovido|Реклама|Uitgelicht|Sponsorlu|Promotert|Promoveret|Sponsrad|Mainostettu|Sponzorováno|Promovat|Ajánlott|ΠÏ�οωθημένο|Dipromosikan|Ä�ược quảng bá|推廣|推广|推薦|推è��|プロモーション|프로모션|ประชาสมพนธ|परचरत|বজঞপত|تشÛ�یر شدÛ�|مروج|تبلیغی|מקוד×�/) +8ÿï08@R(vofomovies.info#?#a13:-abp-contains( Ad) +?ÿï08@R/tripadvisor.*#?#.AaFRW:-abp-contains(Sponsored) +¤ÿï08@R“modivo.*#?#.banner:-abp-contains(/Sponsorizzato|Sponsorowane|Sponsorizat|Sponzorováno|Szponzorált|СпонÑ�орирани|Sponsored|Gesponsert/) +¥ÿï08@R”modivo.*#?#.product:-abp-contains(/Sponsorizzato|Sponsorowane|Sponsorizat|Sponzorováno|Szponzorált|СпонÑ�орирани|Sponsored|Gesponsert/) +]ÿï08@RMyelp.*#?#main[class^="searchResultsContainer"] li h2:-abp-contains(Sponsored)* + thesaurus.com.SZjJlj7dd7R6mDTODwITà +Eÿï08@R5walmart.*#?#div > div[io-id]:-abp-contains(Sponsored) +bÿï08@RRwalmart.*#?#div[role="group"]:-abp-has(div:-abp-contains(/Sponsored|Commandité/))V + euronews.comB#o-site-hr__leaderboard-wallpaper.u-show-for-xlarge {remove:true;}o + read.amazon.*Z#readerChromeOverlayBottom.readerChromeOverlayBottom-banner-desktop {bottom:0 !important;}: + benzinga.com&.cUDaEv {margin-top:162px !important;}E + benzinga.com1.gZyLpV .mobile-header {margin-top:0 !important;}E + benzinga.com1.iOxiqE .mobile-header {margin-top:0 !important;}W + twitch.tvF.video-player--stream-display-ad_lower-third {height:100% !important;}S +dailystar.co.uk<[data-testid="commercial-above-header-box-1"] {remove:true;}4 +virtuagirlgirls.com#DynamicBackgroundWrapper" + +porndr.com#PD-Under-player$ + deviants.com#_iframe_content + swfchan.com#aaaa  +justthegays.tv +#ad-banner) + xvideos.com + +xnxx.com +#ad-footer + eporner.com +#addesktop + javgg.net#adlink% + eporner.com#admobileoutstream$ + tnaflix.com#ads-under-video_ + h-flash.com#ads_2< +wetpussygames.com##adult-games > div[style*="250px;"] +badassbitch.pics#adv# +flyingjizz.com #adv_inplayer + xpaja.net#advertisement + milffox.com #advertising +instantfap.com#af + pervclips.com +#after-adv% + cockdude.com#after-boxes-ver2' + str8ongay.com#alfa_promo_parent + sunporno.com#atop +literotica.com#b-top$ + thehentai.net#balaoAdDireito) + massfans.cc + massrips.cc#banner& + pornchimp.com#banner-container* + massfans.cc + massrips.cc#banner2* + massfans.cc + massrips.cc#banner4 +filtercams.com #bannerFC + cuntest.net#banners0 + fakings.com + +nigged.com#banners_footer$ +pornstargold.com #basePopping< + lewdspot.com + +mopoga.com#belowGameAdContainerPause& + cockdude.com#beside-video-ver2% +sexyandfunny.com #best-friends +pussyspace.com#bhcr +bgwp.cc#blk1" +18adultgames.com +#block-105" +18adultgames.com +#block-121 + euroxxx.net #block-15! +18adultgames.com #block-20 + hentaiprn.com #block-27 + +jav-jp.com #block-29! +18adultgames.com #block-73! +18adultgames.com #block-75 + deepfucks.com #block-88 + deepfucks.com #block-92 + toppixxx.com#bottom- + xxxdan3.com + +xxxdan.com #bottom-line! +hentaiasmr.moe #bottom-tab$ + cockdude.com#box-txtovka-con + eporner.com#btasd1 +pornogramxxx.com +mobxvideos.com#bubble +gamesofdesire.com#chat) +pornstar-scenes.com#chatCamAjaxV0$ + heavy-r.com#closeable_widget� + sexu.site +#closeplay3 + +anysex.com!#content > .main > .content_right + imagebam.com#cs-link$ + hentaiprn.com#custom_html-19E +celebritymovieblog.com +interracial-girls.com#custom_html-2( +watchjavonline.com#custom_html-3# + zhentube.com#custom_html-388 +hotcelebshome.com + dpfantasy.org#custom_html-4! + hentai7.top#custom_html-6 + +javgg.co#custom_html-7 + 12jav.net#custom_html-8 + +pictoa.com #d-zone-1  + eporner.com #deskadmiddle + cdnm4m.nl +#directAdsI +hentai-cosplays.com +hentai-img.com#display_image_detail > span0 + javguard.xyz#dl > a[target="_blank"][id] + +thehun.net +#dyk_right! +escortbook.com #ebsponAxDS. + xxxvogue.net + +jzzo.com#embed-overlay + youjizz.com +#englishPr# + porntrex.com#exclusive-link' +china-tube.site#extraWrapOverAd# +namethatporn.com #fab_blacko +dailyporn.club #fixedban, +stockingfetishvideo.com #flirtyBubble" +212.32.226.234 #floatcenter* + +anysex.com#fluid_theatre > .center + pussy.org +#footZones + youjizz.com#footer + sunporno.com #footer_a  + +mopoga.com#fpGMcontainer! +girlsofdesire.org#gal_669$ +perfectgirls.net #hat_message + yourlust.com#headC +nangaspace.com#header +aan.xxx#header-banner" +youtubelike.com #header-top +hentai0day.com #headeram +pornpics.network#hidden + javhd.today#ics% +porngameshub.com #im-container/ +guyswithiphones.com#imglist > .noshadow) + +mopoga.com#inTextAdContainerPause& +maturesladies.com #inVideoInner + aniporn.com#in_v + hotmovs.com#in_va, +youngamateursporn.com#inplayer_block# + imgcarry.com#introOverlayBg + hentaiprn.com#l_340 + pornlib.com#lcams2 +escortbook.com#links + xfantasy.su #listing-ba  +livecamrips.com #live-cam( + redtube.com#live_models_row_wrap +bootyoftheday.co#lj  +maturetubehere.com#lotal! + 4tube.com#main-jessy-gridB + jizzberry.com + +anysex.com#main_video_fluid_html_on_pause& + peekvids.com#mediaPlayerBanner* +pornvalleymedia.net#media_image-81* +pornvalleymedia.net#media_image-82* +pornvalleymedia.net#media_image-83* +pornvalleymedia.net#media_image-84* +pornvalleymedia.net#media_image-86ù* +pornvalleymedia.net#media_image-87* +pornvalleymedia.net#media_image-88* +pornvalleymedia.net#media_image-90: +18adultgames.com"#menu-mm [rel="nofollow external"]$ +vpornvideos.com #mn-container + gifsfor.com #mob_banner, +fetishshrine.com#mobile-under-player + whentai.com #modalegames' + eporner.com#movieplayer-box-adv( + cockdude.com#native-boxes-2-ver2/ +maturetubehere.com + amateur8.com#nopp& + +xrares.com + flashx.tv#nuevoa& + scrolller.com#object_container$ + youjizz.com#onPausePrOverlayV +alldeepfake.ink +underhentai.net +watchhentai.net + hentaimama.io#overlay3 +porndroids.com + porn300.com#overlay-video. +imagevenue.com + +22pixx.xyz +#overlayBg + hentaiff.com #overplay  +video.laxd.com +#owDmcIsUc' + xxxvogue.net + +jzzo.com#parrot- + nudevista.com + nudevista.at#paysiteO +redtube.com.br +youporngay.com + redtube.com + redtube.net #pb_blockX +pornhub-com.appspot.com + pornhub.com + pornhub.net + youporn.com #pb_template  +youporngay.com +#pbs_block( + ggjav.com + +ggjav.tv #pc_instant  + +pornx.to#player-api-overT +tsmodelstube.com + hentai2w.com + iporntoo.com + +xhentai.tv#playerOverlayC +maturetubehere.com + lesbian8.com + +ebony8.com #player_add& + redtube.com#popsByTrafficJunky' +javtrailers.com#popunderLinkkkk +pornstargold.com#popup" + +jav321.com#popup-container* + +sextvx.com#porntube_hor_bottom_ads + katestube.com +#pre-block! +sleazyneasy.com +#pre-spots$ + +mopoga.com#preGamescontainer) + javtitan.com + tojav.net#preroll‚ + javbraze.com + javtape.site + javhd.today + +alotav.com + +javdoe.fun + +javseen.tv + javdoe.sh + javhat.tv #previewBox +youporngay.com #producer% + xvideos.name#publicidad-video +celebjihad.com#pud1 +deserttechairconditioning.com #r-ad-banner+ +bootyoftheday.co#random-div-wrapper + h-flash.com #randomzone1. + cockdude.com#related-boxes-footer-ver2> + pornhub.com+#relatedVideosCenter > li[class^="related"] +freebdsmxxx.org#right1 + lewdspot.com#rightSidebarAdContainerPause! + youjizz.com#rightVideoPrs + sexuhot.com #right_div_1 + sexuhot.com #right_div_2 + badjojo.com #rightcol1 + onlyporn.tube + porntop.com #s-suggesters + homemade.xxx #scrollhere# +sexyandfunny.com #sexy-links" + spankbang.com #shorts-frame + javtiful.com#showerm% + 3movs.com#side_col_video_view, + fc2covid.com#sidebar > .widget_block" + vndevtop.com#sidebar_rightG + pornhub.com + pornhub.org%#singleFeedSection > .emptyBlockSpace& +adult-sex-games.com #skyscraper! +porngames.games +#slide-adsQ +adultgamescollector.com +adultgamesworld.com + porngames.tv #slideApple¢ + hentaifox.com#slider + javfor.tv #smac12403o0( +xxxymovies.com + +xbooru.com#smb + instawank.com #snackbar + hdtube.porn +#sp-player& +hd-easyporn.com#special_column# + megatube.xxx#sponsor-widget! + flingtube.com #sponsoredBy  + w3avenue.com #sponsorsbox' + porn4fans.com#spot_player_start3 + winporn.com + +hd21.com#spot_video_livecams? + winporn.com + +hd21.com #spot_video_underplayer_livecams! +xnxxporn.video #spotholder/ +maxjizztube.com + yteenporn.com#spotxt +gotgayporn.com#ss_bar + oldies.name #stop_ad24 +trannyvideosxxx.com +cheemsporn.com#text-2# +yaoimangaonline.com#text-28 + hentaimama.io#text-3 + hentaimama.io#text-5 +fetish-games.com#text-6  +theboobsblog.com#text-74 +cheemsporn.com#text-8! +hentai-sharing.net#text-9  +theboobsblog.com#text-941 +allureamateurs.net + sexmummy.com#topbar + ohentai.org #topdetailad +motherless.com #topsites3 +pussycatxx.com + zhentube.com #tracking-url3 +creampietubeporn.com +fullxxxtube.com#ubr" +hd-easyporn.com #udwysI3c7p$ +usasexguide.nl#uiISGAdFooter + aniporn.com#und_ban! + pervclips.com #under-video" +wetpussygames.com #under728 + fakings.com #undervideo + kisscos.net +#v-overlay" +homemoviestube.com#v_right + xvideos.com #video-right' + xvideos.com#video-sponsor-links% + drtuber.com#video_list_banner& + dofap.com#video_overlay_banner% +hentaiplay.net#video_overlays/ + redtube.com#video_right_col > .clearfix + gosexpod.com#xtw. +porndroids.com.CDjtesb7pU__video-units/ + +bellesa.co.Display__RatioOuter-hkc90m-0 + +beeg.com.GreyFox + redgifs.com.InfoBar) +topinsearch.com.TelkiTeasersBlock6 +hentaivideo.tube.UVPAnnotationJavascriptNormal+ + xtube.com.ZBTBTTr93ez9.ktZk9knDKFfB + porndoe.com .\-f-banners/ + xhamster.com._029ef-containerBottomSpot/ + xhamster.com._80e65-containerBottomSpot. + xhamster.com._80e65-containerPauseSpot- +tubepornclassic.com.___it0h1l3u2se2lo' + pichunter.com.__autofooterwidth + +txxx.com ._ccw-wrapper! +ukadultzone.com +.a--d-slot + sunporno.com.a-block + pornsos.com.a-box( + +7mm001.com + +7mmtv.sx +.a-d-block' + porngem.com + +uiporn.com.a-d-vë +bravoteens.com.a3522 +china-tubex.site +de-sexy-tube.ru.aBlock +namethatporn.com.a_br_b + upornia.com .aa_label +namethatporn.com.aaaabr$ +pimpandhost.com .aaablock_yes" +pimpandhost.com .ablock_yes$ + +pornx.to.above-single-playerâ +tallermaintenancar.com +thehentaiworld.com +chaturbate.com + signbucks.com + playboy.com + tehvids.com + tiktits.com + +rampant.tv + +thehun.net + cambb.xxx + dlgal.com + uflash.tv + xcafe.com +sex.com.adl +urlgalleries.net + sdhentai.com + pinflix.com + +pics-x.com + coomer.su + kemono.su .ad-container + +xnxx.com +.ad-footer + javur.com.ad-h250 + gay.bingo.ad-w + xtube.com .adContainer +boyfriendtv.com.adblock  + iporntoo.com .adbox-inner + ftopx.com +.add-block + +sex3.com.add-box% + playvids.com.add_href_jsclick! +todaygirls.co.uk .addspace— +mobilepornmovies.com +marawaresearch.com +mypornstarbook.net +babesandstars.com +kartavarna.com + cam-video.xxx + crazyporn.xxx + cumlouder.com + love4porn.com + pichunter.com + gosexy.mobi + +4kporn.xxx + +javseen.tv + hoes.tube + javcl.com +hog.tv.ads( + +pornx.to.ads-above-single-player$ +video.laxd.com.ads-container$ + kawai-jav.com.ads-here-right  + cumlouder.com .ads__block + +porn87.com .ads_desktop; + tube8.com + +tube8.es + +tube8.fr.adsbytrafficjunky, + pornpics.com + pornpics.de .adss-rel  +androidadult.com.adswait  + crazyporn.xxx .adswarning0 +hipsternudes.com.adultfriendfinder-block� +webanddesigners.com +pervertslut.com +theyarehuge.com +cartoon-sex.tv + anyporn.com + tiktits.com + +oncam.me.adv + +uiporn.com .adv-in-video + +sex3.com .adv-leftside +roleplayers.co .adv-wrap + gay.bingo .adv-wrapper +freebdsmxxx.org.adv315" +perfectgirls.net +.adv_block, + alohatube.com + reddflix.com.advbox + alohatube.com +.advboxembd +porngameshub.com +gayboystube.com +gayporntube.com +hungangels.com + ftopx.com.adverth +japan-whores.com +flyingjizz.com + cumlouder.com + porntube.com + gotporn.com.advertisementR +sleazyneasy.com + katestube.com + vikiporn.com + +wankoz.com .advertising + +javcab.com +.advt-spot +adultfilmindex.com.aebn + porngals4.com.afb0 + porngals4.com.afb1 + porngals4.com.afb2 + hentai2w.com.aff-col$ + hentai2w.com.aff-content-col + porngals4.com.affl% + cockdude.com.after-boxes-ver2B +sleazyneasy.com + katestube.com + vikiporn.com +.after_adv  +hentaidude.xxx +.ai_widget$ +hentai2read.com .alert-danger$ +dvdgayonline.com .aligncenter + lewdzone.com.alnk! +punishworld.com +.alrt-ver2# +freeadultcomix.com .anuncios + hotmovs.com .app-banners) + hotmovs.tube.app-banners__wrapper + fuqer.com.area + sextb.net .asg-overlay# + +hobby.porn.asg-vast-overlay›< +submityourflicks.com +porndictator.com .aside > div( + str8ongay.com.aside-itempage-col + +ad69.com.aside-section + +sexvid.pro .aside_thumbs + +hd21.com .aside_video” + sexpester.com + babepump.com + fapnfuck.com + fuqster.com + thotcity.su + xmateur.com + povxl.com + w4nkr.com + +w1mp.com .asside-link4 + xhamster.com .auto-generated-banner-container +veev.to .avb-active! +avn.com.avn-article-tower + +mrskin.com.az + +fapeza.com.azz_div) + gayporno.fm.b-content__aside-head# + onlydudes.tv.b-footer-place + onlydudes.tv .b-side-col" +japan-whores.com +.b-sidebar +rat.xxx.b-spot- + redporn.porn + +me-gay.com .b-uvb-spot5 + buondua.com".b1a05af5ade94f4004a7f9ca27d9eeffb5 + buondua.com".b2b4677020d78f744449757a8d9e94f28 + pornburst.xxx +.b44nn3rss5 + buondua.com".b489c672a2974fbd73005051bdd17551f + dofap.com .b_videobot, +justpicsplease.com + xfantasy.su.ba5 +dominationworld.com + femdomzzz.com .ban-tezf + pornburst.xxx .bann3rss� +watchhentaivideo.com +youcanfaptothis.com +adultdeepfakes.com +hiddenhomemade.com +yourdailygirls.com +amateurelders.com +freepornpicss.com +playporngames.com +babesmachine.com +kawaiihentai.com +playsexgames.xxx +legalporn4k.com +paradisehill.cc +submittedgf.com +xgrannypics.com +chaturbate.com +gramateurs.com +grannarium.com +teenextrem.com +video.laxd.com + fboomporn.com + maturator.com + porngames.com + wankerson.com + xnudepics.com + 18teensex.tv + imagezog.com + playvids.com + vikiporn.com + xpornpix.com + amamilf.com + happysex.ch + hdtube.porn + milffox.com + oldies.name + private.com + vidxnet.com + +waybig.com + 3movs.xxx + lyama.net + oldgf.com + xbabe.com + +its.porn + +vjav.com + +xcum.com + +youx.xxx.banner + highporn.net .banner-a + javfor.tv .banner-c6 +ero-anime.website + +jav.guru.banner-container> +vipnudesexygirls.com +thefree3dporn.com .banner-fixed" + cumlouder.com .banner-frame( +grannymommy.com.banner-on-player' + freeones.com.banner-placeholder! + javynow.com.banner-player& +babesandstars.com .banner-right + javfor.tv .banner-top-b + +jav.guru.banner-widget. + pornhat.com +ok.xxx.banner-wrap-desk' +perfectgirls.net.banner-wrapper + tnaflix.com .bannerBlock) +watchhentaivideo.com .bannerBottom + pornshare.biz .banner_1 + pornshare.biz .banner_2 + pornshare.biz .banner_3" + +4pig.com.banner_page_right) + yourlust.com.banner_right_bottomsk +eurogirlsescort.com + camstreams.tv + hdtube.porn + +camporn.to + +camseek.tv + +sexu.com.banners& + xxxvogue.net.banners-containerž +pornodingue.com +voglioporno.com +pornodoido.com +serviporno.com + bubbaporn.com + koloporno.com + pornozot.com + kalporn.com.banners-footer  +paradisehill.cc .banners3  +paradisehill.cc .banners4 +ratemymelons.com.bannus" + fapello.com.barbie_desktop! + fapello.com.barbie_mobile# +yourdarkdesires.com.battery@ + +fuck55.net + fap18.net +tube.ac +tube.bz .bb_desktop + mofosex.net +.bb_show_5. +hotcelebshome.com.bcpsttl_name_listing+ + pornhat.com +ok.xxx.before-playerG + hdtube.porn4.below-player-wrapper > noindex > a[target="_blank"] + porndoe.com .below-video& + cockdude.com.beside-video-ver2+ + wapbold.com + wapbold.net .bhor-box! + hqporner.com .black_fridayˆ + babestare.com.block3 +alphaporno.com + tubewolf.com .block-banner# + urgayporn.com.block-banvert + xxbrits.com .block-offer" + +3prn.com.block-video-aside2 + escortnews.eu + topescort.com .blogBanners + blogvporn.com +.blue-btns + xtube.com .bm6LRcdKEZAE! + +smutty.com.bms_slider_div! + pornhat.com +ok.porn.bn +ok.xxx .bn-title + xbabe.com .bnnrs-asiden +alphaporno.com + crocotube.com + hellporno.com + tubewolf.com + xbabe.com + +xcum.com .bnnrs-player. +pornogratisdiario.com + xcafe.com.bnr  +porngames.games .bnr-side +porngames.games.bnr-top/ + pornhat.com +ok.porn +ok.xxx.bns-bl8 +zingyporntube.com +sexsbarrel.com .bns-place-ob! +xnxxvideoporn.com.bot_bns + jagaporn.com.botad + teenhost.net .bottom-ban" +pornoreino.com .bottom-bang* +hentaigamer.org.bottom-banner-homeY +sleazyneasy.com +alphaporno.com + katestube.com + vikiporn.com.bottom-banners' +elephanttube.world .bottom-block5 +dailyporn.club + risextube.com.bottom-blocks< +fetishshrine.com +sleazyneasy.com.bottom-container" + katestube.com .bottom-items7 +teenpornvideo.xxx + pornwhite.com .bottom-spots% +youtubelike.com.bottom-thumbs" +youtubelike.com .bottom-top* + xhamster.com.bottom-widget-section  + rexxx.com.bottom_banners% + porn-plus.com.bottom_player_a  + dixyporn.com .bottom_spot + +sexvid.xxx .bottom_spots$ +javlibrary.com.bottombanner2 +hd-easyporn.com.box + +zbporn.com.box-f + bravotube.net .box-left + +sexvid.xxx .box_sitex +barscaffolding.co.uk +capitalregionusa.xyz + pornstory.net + dcraddock.uk + sexclips.pro.boxzilla-containerv +barscaffolding.co.uk +capitalregionusa.xyz + pornstory.net + dcraddock.uk + sexclips.pro.boxzilla-overlay* +hentaianimedownloads.com +.bp_detail4 +spanishporn.com.es + bravotube.net .brazzers! + xozilla.com.brazzers-link1 +pornvideos4k.com + kompoz2.com +.brs-block +teensforfree.net.bst1 + aniporn.com +.btn-close +realgfporn.com .btn-info + +xcum.com .btn-ponsor* + weescorts.com.bulletinwp-bulletins + cinemapee.com.button +video.laxd.com .c-ad-103 + pornpics.com.c-model + redporn.porn .c-random# +gays-cruising.com +.c_526x240# +gays-cruising.com +.c_728x265" +gays-cruising.com .c_728x90# +gays-cruising.com +.c_900x250 + tiktits.com .callback-bt( + pornpics.vip + xxxporn.pics.cam  +xnxxvideos.rest .camitems + winporn.com.camsÍ# +theyarehuge.com .cams-button# +sleazyneasy.com .cams-videos + tnapics.com .cams_small( + peekvids.com.card-deck-promotion' +clipsexsub3x.net.catfish-bottom + +sxyprn.com.cbd + stepmom.one .cblidovr + stepmom.one .cblrghts + porntry.com .center-spot + fakings.com .centrado# +thefappeningblog.com.cl-exl' +bigtitsgallery.net .classifiedAd% + teenanal.co.clickable-overlay% + xhamster.com.clipstore-bottom  + sunporno.com .close-invidQ +japaneseasmr.com +fap-nation.com + gamegill.com + +fyptt.to .code-blockA + tube8.com + +tube8.es + +tube8.fr.col-3-lg.col-4-md.col-4& + playvids.com.col-lg-6.col-xl-4( +taxidrivermovie.com .col-pfootban  + whoreshub.com .col-second' +hentaiworld.tv.comments-banners? +perfectgirls.net'.container + div + .additional-block-bgL +fetishshrine.com +sleazyneasy.com + pornwhite.com.container-aside/ +nacktepromis.com.conteiner > .rightside: + senzuri.tube&.content > div > .hv-block-transparentC +sleazyneasy.com + sheshaft.com + +wankoz.com.content-aside# + watchmygf.me.content-footer- +xxxdessert.com.content-gallery_banner' +sexyandfunny.com.content-source& + +iwara.tv.contentBlock__content% +youporngay.com.contentPartner + sexu.site .content__top  + xcafe.com.content_source$ + gottanut.com.coverUpVid-Dskt2 +forced-tube.net +hqasianporn.org.coverup +shemale777.com.covid19 + 4tube.com.cpp' +bootyheroes.com.cross-promo-bnr$ + fapality.com + 3movs.com.cs + +mylust.com.cs-bnr& + zbporn.tv +rat.xxx +.cs-holder! + +zbporn.com.cs-link-holder< + hdtube.porn + +pornid.xxx +rat.xxx.cs-under-player +watchmygf.mobi.cs_info! + watchmygf.me .cs_text_link# + crocotube.com.ct-video-ntvs% + +h2porn.com.cube-thumbs-holder1 + worldsex.com.currently-blokje-block-inner7 +sexygirlspics.com +alloldpics.com .custom-spot% +porngameshub.com .daemonclicks + worldsex.com.dazone + +faptor.com.dblock + +anysex.com .desc.type2W + hdtube.pornD.description__channel > .description__subscribe > a[target="_blank"] + +rule34.xxx.desktop$ +theyarehuge.com .desktop-spot0 +theyarehuge.com + inxxx.com .desktopspot0 +cartoonpornvideos.com.detail-side-banner& +hentaicity.com.detail-side-bnr + xxxporn.pics .download= + sexvid.porn + +sexvid.pro + +sexvid.xxx.download_link2 + drtuber.com + nuvid.com.drt-sponsor-blocki + drtuber.com + iceporn.com + proporn.com + viptube.com + winporn.com + nuvid.com .drt-spot-box + pornsex.rocks.dump¢  +youporngay.com +.e8-column* + +pornx.to.elementor-element-e8dcf4fI +porngifs2u.com3.elementor-widget-posts + .elementor-widget-heading' +rare-videos.net.embed-container# + +vxxx.com.emrihiilcrehehmmll& + tsumino.com.erogames_container' +pornstargold.com.et_bloom_popup7 + upornia.tube + upornia.com.eveeecsvsecwvscceeeE +eromanga-show.com +hentai-one.com + hentaipaw.com .external + lewdzone.com.f8rpo/ + escortnews.eu + topescort.com .fBanners¶ +desi-porn.tube + upornia.tube + hotmovs.com + upornia.com + +bdsmx.tube + +hclips.com + +hdzog.tube + +inporn.com + hdzog.com + vjav.tube + +vjav.com + +vxxx.com.fah-btn + porngem.com .featured-b +sss.xxx .fel-item + tuberel.com .fel-list + javfor.tv.fel-playclose( + camwhores.tv + +txxx.com.fh-line( + hotmovs.com + +thegay.com.fiioed2 +homemoviestube.com.film-item:not(#showpop)# +sexyandfunny.com .firstblock7 + +tranny.one + ah-me.com + +gaygo.tv .flirt-blockO +asiangaysex.net +japangaysex.com + asiangay.tv + gaysex.tv .float-ck + risextube.com .floating& +hentaiworld.tv.floating-banner + xgroovy.com.fluid-b( + yourlust.com.fluid_html_on_pause/ + some.porn.fluid_html_on_pause_container) + xgroovy.com.fluid_next_video_left* + xgroovy.com.fluid_next_video_right/ +stileproject.com.fluid_nonLinear_bottom" + cbhours.com.foo2er-section + +porn.com.foot-zn$ + pornburst.xxx.foot33r-iframeS +tubepornclassic.com + +hclips.com + +thegay.com + tporn.xxx.footer-banners, +hentaiworld.tv.footer-banners-iframe + xcafe.com .footer-block  + pornfaia.com .footer-bnrz> +youporngay.com + youporn.com.footer-element-container# + pornburst.xxx.footer-iframe  + 4tube.com.footer-la-jesi½ +scatxxxporn.com +amateurporn.co +hentai0day.com + camstreams.tv + crazyporn.xxx + alotporn.com + +4kporn.xxx + +danude.com + +xasiat.com + hoes.tube +fpo.xxx.footer-margin' +cliniqueregain.com .footer-promo" + cbhours.com.footer-section + +pornhd.com .footer-zone + +homo.xxx .footer.spot + gelbooru.com .footerAd# + hdtube.porn.footer__banners + badjojo.com.footera" + mansurfer.com .footerbanner- +videocelebs.net + cambay.tv .fp-brand + +xpics.me .frequently + onlyporn.tube.ft0 +jizzbunker2.com +jizzbunker.com.ftrzx1" +teenpornvideo.fun .full-aveH +pornvideos4k.com +roleplayers.co + kompoz2.com.full-bns-block + iceporn.com .furtherance + +xpics.me.future! + hdtube.porn.g-col-banners- +teenextrem.com + teenhost.net.g-link + +youx.xxx .gallery-link6 +youtubelike.com + xxxonxxx.com.gallery-thumbs# +porngamesverse.com .game-aaa! + tubator.com.ggg_container9 +tallermaintenancar.com +cliniqueregain.com.girl–, + pornflix.cc + xnxx.army .global-army6 +bravoteens.com + bravotube.net.good_list_wrap + kbjfree.com .h-\[250px\]{ +mature.community +amateur-vids.eu +bestjavporn.com +milf.community + deepfucks.com + milf.plus .happy-footerF +koreanstreamer.xyz + hdporn92.com + javflix.net .happy-headerf +sexseeimage.com +cheemsporn.com + milfnut.com + +nudeof.com + +yporn.tv.happy-inside-playerH +sexseeimage.com + thisav.video + thisav.me.happy-player-besideG +sexseeimage.com + thisav.video + thisav.me.happy-player-underB +sexseeimage.com + thisav.video + thisav.me.happy-sectionx +deepfake-porn.com +hdpornflix.com + deepfucks.com + x-picture.com + vpornhd.com + +sexkbj.com.happy-sidebarr +camgirl-video.com +mature.community +amateur-vids.eu +milf.community + milf.plus.happy-under-player + redtube.com.hd + +zbporn.com +.head-spot + +anysex.com.headA + xgroovy.com.headP- + coomer.su + kemono.su.header + aside( +myhentaigallery.com .header-image# + megatube.xxx.header-panel-1# + cutegurlz.com.header-widget3 +videosection.com.header__nav-item--adv-link" + mansurfer.com .headerbanner$ +androidadult.com .headerlinks + +txxx.com .herrmhlmolu + +txxx.com .hgggchjcxja6 +porndroids.com + porn300.com.hidden-under-920# + worldsex.com.hide-on-mobile# + hqporner.com.hide_ad_marker& +hentairules.net.hide_on_mobileF + javgg.net + +javgg.co).home_iframead > a[target="_blank"] > img+ + +orgasm.com.horizontal-banner-module$ +underhentai.net .hp-float-skb + eporner.com.hptab +pantiespics.net.hth# +videosection.com .iframe-adv' +gayforfans.com.iframe-container  +recordbate.com +.image-box( + gotporn.com.image-group-vertical + thisav.me.img-ads + top16.net .img_wrap% + trannygem.com.in_player_video" + vivud.com.in_stream_banner + sexu.site.info! + cocoimage.com .inner_right + +javhhh.com .inplayer" + vivud.com.inplayer_bannersM +bravoteens.com + bravoporn.com + bravotube.net + anyporn.com.inplb- + bravotube.net + anyporn.com .inplb3x2+ + cockdude.com.inside-list-boxes-ver2+ +videosection.com.invideo-native-adv1 + playvids.com + pornflip.com .invideoBlock + amateur8.com.is-avO +internationalsexguide.nl +usasexguide.nl.isg_background_border_banner= +internationalsexguide.nl +usasexguide.nl .isg_banner% + e-hentai.org.itd[colspan="4"]2 +amateurporn.me + eachporn.com .item[style] + drtuber.com .item_spots. + nurumayu.net + twidouga.net +.item_w360I +fetishshrine.com +sleazyneasy.com + pornwhite.com .items-holder + +vxxx.com .itrrciecmeh+ +escortdirectory.com.ixs-govazd-item8 +socialmediagirls.com.jamCodeUnitsevenjunetwofour8 +socialmediagirls.com.jamLinkUnitsevenjunetwofour +alastonsuomi.com.jb4 +pornhubpremium.com +babesandstars.com.joinµ + javvr.net.jplayerbutton& +japan-whores.com.js-advConsole! +sexlikereal.com +.js-m-goto! + pornpapa.com .js-mob-popup2 +eurogirlsescort.com.js-stt-click > picture# + freeones.com.js-track-event + ts-tube.net .js-uvb-spot7 + porndig.com$.js_footer_partner_container_wrapper  + pornhub.com .js_promoItem + hnntube.com +.jumbotron' + senzuri.tube.jw-reset.jw-atitle +xxxymovies.com .kt_imgrc  + 4tube.com.la-jessy-frame + +eroprn.com +.landscape + lewdzone.com.lcadsp& +hqpornstream.com.lds-hourglass + +thehun.net .leaderboard/ + aniporn.com + abjav.com.left > section0 + xxxpicss.com + xxxpicz.com .left-banners4 + babepedia.com.left_side > .sidebar_block > a‡ + missav123.com + missav888.com + missav.today + missav.city + missav.loan + missav.wiki + missav.ai + missav.ws +.lg\:blockˆ + missav123.com + missav888.com + missav.today + missav.city + missav.loan + missav.wiki + missav.ai + missav.ws .lg\:hidden! +videosdemadurasx.com.link + xxxvogue.net .link-adv= + escortnews.eu + topescort.com.link-buttons-container„ + sexpester.com + babepump.com + fapnfuck.com + fuqster.com + xmateur.com + povxl.com + w4nkr.com + +w1mp.com .link-offer) +boyfriendtv.com.live-cam-popunder! + spankbang.com .live-rotate5 +sexygirlspics.com +alloldpics.com +.live-spot$ + spankbang.com.livecam-rotate, + vivatube.com + proporn.com .livecams  + loverslab.com .ll_adblock + +vxxx.com.lmetceehehmmll0 + hdsex.org.main-navigation__link--webcams% + hentaipaw.com.max-w-\[720px\]) + peekvids.com.mediaPlayerSponsored' + efukt.com.media_below_containerI +mywebcamsluts.com +lesbianbliss.com + transhero.com .media_spot + porn00.tv .member1link + porn00.tv .member2linkM + visitmama.com8.menu-item > a:not([href^="https://www.visitmama.com/"])  + camcam.cc.menu-item-5880 + thehentai.net +.menu_tags+ + empflix.com + tnaflix.com .mewBlock$ +sopornmovies.com .mexu-bns-bl +avn.com.mfc) +online-xxxmovies.com .middle-spots) +allpornstream.com.min-h-\[237px\] +lic.me .miniplayer +tryindianporn.com.mle +hentaicore.org .mob-lock +rat.xxx .mob-nat-spot9 +gaymovievids.com +verygayboys.com.mobile-random$ +tube-bunny.com.mobile-visionG + javgg.net + +javgg.co*.module > div[style="text-align: center;"]" +yourdarkdesires.com.moment + +txxx.com .mpululuoopp + tikpornk.com.mr-1 +xnxxvideos.rest.mult. + +javhub.net + javfor.tv.my-2.container0 + crazyporn.xxx + +4kporn.xxx .myadswarning + jagaporn.com.nativad! + yourlust.com .native-aside( + +pornhd.com.native-banner-wrapper¯( + cockdude.com.native-boxes-2-ver2& + cockdude.com.native-boxes-ver2F +sleazyneasy.com + pornwhite.com + sheshaft.com.native-holder + ggjav.com .native_ads  + +anysex.com.native_middle  + fapality.com .nativeaside. + +jable.tv.nav-item > a[target="_blank"]" + +fapeza.com.navbar-item-sky6 +new.lewd.ninja .navbar-start a[target="_blank"]( +androidadult.com.navitem.color-3 + analegg.com.network + miohentai.com.new-ntv9 + escortnews.eu + topescort.com.newbottom-fbanners# + xmissy.nl.noclick-small-bnr% + +pornhd.com.ntv-code-container +negozioxporn.com.ntv1 + fapality.com.ntw-a  + +rule34.xxx.nutaku-mobile + boundhub.com.o3pt + +bdsmx.tube.oImef0R + +f95zone.to@.offCanvasMenu-linkHolder > .offCanvasMenu-link[target="_blank"]! + porngames.tv .one-top-link +lustgalore.com.opac_bgN +teenmastube.com +watchmygf.mobi + pornchimp.com + pornxbox.com.opt" +bbporntube.pro .opve-bns-bl, +bbporntube.pro.opve-right-player-col +sexseeimage.com.order-1% +hentaistream.com .othercontent* + eboblack.com + +teenxy.com.out_lnk + beemtube.com .overspot@ + javtiful.com,.p-0[style="margin-top: 0.45rem !important"] + +zbporn.com.p-ig< + +f95zone.to*.p-nav-list .p-navEl-link[target="_blank"]V + hot.co.uk +hot.com:.p-search__action-results.badge-absolute.text-div-wrap.top" + empflix.com.pInterstitialx + +hobby.porn.pad2 + +dessi.co".pages__BannerWrapper-sc-1yt8jfz-0  + xxxdan3.com .partner-site0 + hotmovs.tube + +hclips.com.partners-wrap + xfantazy.com +.partwidg1# + fapnado.xxx.pause-ad-pullup! + empflix.com.pause-overlay + +porn87.com .pc_instant. +maturetubehere.com + +ebony8.com.pignr2 +bigtitslust.com + sortporn.com .pignr.item + boundhub.com.pla4ceK +rare-videos.net + jizzoncam.com + camvideos.tv + exoav.com.place! + 3movs.com.player + .aside$ + alotporn.com.player + center' + xhamster.com.player-add-overlay" + katestube.com .player-aside& + vivud.com.player-aside-banners$ + sexu.site.player-block__line7 + xxxonxxx.com + pornhat.com +ok.xxx +.player-bn + +sexvid.xxx +.player-cs/ +videosection.com.player-detail__banners + +7mmtv.sx.player-overlay' +cliniqueregain.com .player-promo  + sexu.site.player-relatedK +tallermaintenancar.com + blogbugs.org + zuzandra.com .player-right& + gay.bingo.player-section__ad-b + 3movs.com .player-side> + sexvid.porn + +sexvid.pro + +sexvid.xxx.player-sponsor# + hdtube.porn.player-top-line¬< + xvideos.com + +xvideos.es.player-video.xv-cams-block$ +porn18videos.com .playerRight  + gay.bingo.player__inline + +sexu.com .player__side  + pervclips.com .player_adv# +xnxxvideoporn.com +.player_bn + +txxx.com.polumlluluoopp + porntrex.com .pop-fade+ +young-sexy.com + fapnado.com.popup + pornicom.com.pre-ad + porntube.com .pre-footer! +sleazyneasy.com +.pre-spots1 +xnxxvideos.rest.prefixat-player-promo-col +recordbate.com.preload& +japan-whores.com.premium-thumb + +cam4.com .presentation + pornjam.com .productora. +perfectgirls.net + xnostars.com.promo$ + +nablog.org.promo-archive-all" + xhamster.com.promo-message+ + +nablog.org.promo-single-3-2sidebars$ +perfectgirls.net .promo__item + viptube.com +.promotionK + nakedtube.com + pornmaki.com + +3dtube.xxx +milf.dk .promotionbox. +telegram-porn.com.proxy-adv__container +porngameshub.com.prwrp + tnaflix.com +.pspBanner$ + spankbang.com.ptgncdn_holder" + pornjam.com.publ11s-b0ttom + watchmygf.me +.publicity# + freemovies.tv.publis-bottom% + pornjam.com.r11ght-pl4yer-169# + pornjam.com.r1ght-pl4yer-43 + pornpics.com .r2-frame) +tokyonightstyle.com.random-bannerR +gaymovievids.com +verygayboys.com + ts-tube.net + +me-gay.com +.random-td + tnaflix.com.rbsd + pornhub.com.realsex + +vxxx.com.recltiecrrllt +xnxxvideos.rest.refr + svscomics.com.regi + nuvid.com +.rel_right. + cockdude.com.related-boxes-footer-ver2> +bestjavporn.com + javhdporn.net.related-native-banner# + cumlouder.com.related-sites! + +sexhd.pics.relativebottom2 + pervclips.com + vikiporn.com .remove-spots + +cam4.com +.removeAds  + cumlouder.com .resumecard8 +porndroids.com + pornjam.com.resumecard__bannerŒ + onlyporn.tube + javtape.site + hotmovs.com + porntop.com + +bdsmx.tube + +javdoe.fun + abjav.com + javdoe.sh + xnxx.army.right$ +infospiral.com.right-content! +pornoreino.com .right-side$ +definebabe.com.right-sidebar) + +jable.tv.right-sidebar > .mb-e-30$ + empflix.com.rightBarBannersx+ + gottanut.com.rightContent-videoPage8 +analsexstars.com + pussy.org + +porn.com.rmedia( + +jav321.com.row > .col-md-12 > h2( + +jav321.com.row > .col-md-12 > ul; + +erofus.com).row-content > .col-lg-2[style^="height"]/ + lewdspot.com.row.auto-clear.text-center> +elephanttube.world + +pornid.xxx.rsidebar-spots-holderK +jizzbunker2.com +jizzbunker.com + xxxdan3.com + +xxxdan.com.rzx1ÉV +forums.socialmediagirls.com +forum.lewdweb.net +titsintops.com .samCodeUnit + porngals4.com.sb250 + pornflix.cc.sbar: + +7mm001.com + 7mm003.cc + +7mmtv.sx.set_height_250( + sextb.net + sextb.xyz +.sextb_300K +gay-streaming.com + gayvideo.me#.sgpb-popup-dialog-main-div-wrapper; +gay-streaming.com + gayvideo.me.sgpb-popup-overlay +paradisehill.cc.shapka + thehentai.net.showAd + +h2porn.com +.side-spot& +sankakucomplex.com .side300xmlc" +video.laxd.com .side_bannerE +mywebcamsluts.com + familyporn.tv + transhero.com +.side_spot( +queermenow.net.sidebar > #text-2% +flyingjizz.com.sidebar-banner" + pornid.name.sidebar-holder" + vidxnet.com.sidebar_banner" + javedit.com.sidebar_widget + +waybig.com .sidebar_zing' +taxidrivermovie.com .sidebarban1! +myslavegirl.org +.signature + milffox.com.signup! + gayck.com.simple-adv-spot + +supjav.com .simpleToast" +hersexdebut.com .single-bnr$ + porngfy.com.single-sponsored! + babestare.com .single-zone' +rokuhentai.com.site-top-ad-slot + +sexvid.xxx .site_holder$ +porn-monkey.com .size-300x2504 +simply-hentai.com + porngames.tv .skyscraper& +erotichdworld.com .slideContent% + pornhub.com.sniperModeEngaged# +thelittleslush.com .snppopup + boycall.com .source_info@ +amateurfapper.com + pornmonde.com + +iceporn.tv.sources% +hd-easyporn.com.spc_height_80 + gotporn.com.spnsrd. +hotgirlclub.com.spnsrd-block-aside-250Š +izlesimdiporno.com +sexpornimages.com +bigtitslust.com +hentai-moon.com +pervertslut.com +hentai0day.com + freeporn8.com + amateur8.com + eachporn.com + pornmeka.com + sortporn.com + xhamster.com + anyporn.com + area51.porn + fapster.xxx + porngem.com + porntop.com + +18porn.sex + +sexvid.xxx + +tktube.com + +uiporn.com + cambay.tv + +its.porn +fpo.xxx.sponsor+ +teenpornvideo.fun.sponsor-link-desk= +teenpornvideo.fun +youteenporn.net.sponsor-link-mob2 + pornpics.com + pornpics.de.sponsor-type-4) +nakedpornpics.com.sponsor-wrapperL + crazyporn.xxx + love4porn.com + +4kporn.xxx + hoes.tube .sponsorbigK +pornerbros.com + porntube.com + tubedupe.com +fux.com +.sponsored$ + slixa.com.sponsored-filtered + hoes.tube .sponsorsmallß +thefree3dporn.com +sleazyneasy.com +videocelebs.net + bravotube.net + katestube.com + sexpester.com + babepump.com + camvideos.tv + deviants.com + dixyporn.com + fapnfuck.com + pornicom.com + vikiporn.com + fuqster.com + +cluset.com + +hello.porn + +javcab.com + 3movs.com + 3movs.xxx + w4nkr.com + +vjav.com + +w1mp.com.spot + pornicom.com .spot-afterE +hqpornstream.com +magicaltube.com + faptube.xyz .spot-block. +bleachmyeyes.com + kojka.com .spot-box + 3movs.com .spot-header! + katestube.com .spot-holder% +tsmodelstube.com .spot-regular& + fuqer.com.spot-thumbs > .right + porn4fans.com +.spot-wrap + +homo.xxx .spot.column! + drtuber.com.spot_button_m + 3movs.com .spot_large! + pornmeka.com .spot_wrapperG + vivatube.com + drtuber.com + thisvid.com + xxbrits.com.spots' +elephanttube.world .spots-bottom +rat.xxx .spots-titleí + +sexvid.xxx .spots_field + +sexvid.xxx .spots_thumbs +analsexstars.com.sppc +teenasspussy.com.sqs& +pornstarchive.com .squarebanner. + pornpics.com + pornpics.de .stamp-bn-1 + lewdninja.com .stargate# + cumlouder.com.sticky-banner + xxx18.uno .sticky-elem + xxxbule.com.style75 + teenmushi.org.su-box  +definebabe.com +.subheader  + pornsex.rocks .subsequent + tporn.xxx .sug-bnrs + +hclips.com .suggestions" + +pornmd.com.suggestions-box + +txxx.com .sugggestion2 +telegram-porn.com.summary-adv-telNews-link% +simply-hentai.com .superbanner# + holymanga.net.svl_ads_right + tnapics.com .sy_top_wide +exhibporno.com.syn + boundhub.com.t2op + boundhub.com.tab7le£ +onlyhentaistuff.com +japaneseporn.xxx +bigtitslust.com +hentai-moon.com +mrdeepfakes.com +rare-videos.net +sextubespot.com +amateurporn.co +amateurporn.me +hentai0day.com + freeporn8.com + jizzberry.com + pornchimp.com + tabootube.xxx + watchmygf.xxx + 18teensex.tv + alotporn.com + camwhores.tv + javpoint.com + sortporn.com + xxxshake.com + epicgfs.com + heroero.com + intporn.com + javwind.com + pornmix.org + xgroovy.com + xmateur.com + +18porn.sex + +429men.com + +4kporn.xxx + +danude.com + +daporn.com + +fapnow.xxx + +porndr.com + 4wank.com + fuqer.com + gayck.com + hoes.tube + multi.xxx + xcavy.com +fpo.xxx.table + +sxyprn.com.tbdD +amateurvoyeurforum.com&.tborder[width="99%"][cellpadding="6"] + camwhores.tv.tdn + pronpic.org.teaser. + onlytik.com.temporary-real-extra-block! +avn.com.text-center.mb-10  + javfor.tv.text-md-center + cockdude.com .textovka +wichspornos.com.tf-sp + +tranny.one.th-ba + +porn87.com +.three_ads- + chikiporn.com + pornq.com .thumb--adv( + xvideos.com + +xnxx.com .thumb-ad( +pornpictureshq.com.thumb__iframe! + yeswegays.com .thumb_spots + toppixxx.com.thumbad; +tallermaintenancar.com +cliniqueregain.com.thumbs& + +smutty.com.tig_following_tags2# + drtuber.com.title-sponsoredŽ +hentai-moon.com +scatxxxporn.com + epicgfs.com + pornmix.org + xmateur.com + +daporn.com + 4wank.com + cambay.tv +fpo.xxx.top& + pornfaia.com.top-banner-single + +sexvid.xxx .top-cube$ + porn4fans.com.top-links-wrap. + vikiporn.com.top-list > .content-aside" +japan-whores.com +.top-r-all# +motherless.com .top-referers  + lewdspot.com .top-sidebar- + porngem.com + +uiporn.com .top-sponsor% + zbporn.tv +rat.xxx .top-spot1 + escortnews.eu + topescort.com .topBanners + +10movs.com .top_banner+ +perfectgirls.xxx +ok.xxx .top_spot + camwhores.tv.topad + m.mylust.com .topb-100 + m.mylust.com .topb-250 +itsatechworld.com.topd  +babesmachine.com.topline! +babesmachine.com .tradepic! +babesandstars.com.tradersÚ + gayporno.fm.traffic  + proporn.com .trailerspots +adultgamesworld.com.tt + +eroprn.com.tubecor$ + sexjav.tv.twocolumns > aside + +sexhd.pics.tx! + boysfood.com .txt-a-onpage„ +desi-porn.tube + hotmovs.com + +bdsmx.tube + +hclips.com + +hdzog.tube + +inporn.com + hdzog.com + +vxxx.com.under-channel& + +pornid.xxx.under-player-holder% + hdtube.porn.under-player-link$ + +sexvid.xxx.under_player_link9 + upornia.tube + upornia.com.underplayer > section7 + +thegay.com%.underplayer__info > div:not([class])' + videojav.com.underplayer_bannerV + you-porn.com + redtube.com + youporn.com + tube8.com.upgradeButtonContainer +tryindianporn.com.uvk + hentaiprn.com +.v-overlay + javtiful.com .v3sb-box' + tuberel.com +see.xxx .vda-item% +indianpornvideos.com .vdo-unit +xnxxporn.video .vertbars0 + milfporn8.com + ymlporn7.net .vid-ave-pl + ymlporn7.net .vid-ave-th + xvideos.com .video-ad + pornone.com +.video-add; + risextube.com + +eroprn.com + +ad69.com .video-aside) +sexseeimage.com.video-block-happy + pornfaia.com .video-bnrz + +x-hd.video +.video-brs@ +comicsxxxgratis.com +video.javdock.com.video-container* +pornhoarder.tv.video-detail-bspace+ +boyfriendtv.com.video-extra-wrapper# + megatube.xxx.video-filter-1+ +theyarehuge.com.video-holder > .box+ + +porn00.org.video-holder > .headline' + +bdsmx.tube.video-info > section& +videosection.com.video-item--a( +videosection.com.video-item--adv + pornzog.com +.video-ntv# + ooxxx.com.video-ntv-wrapper5 +recordbate.com + pornhdtube.tv.video-overlay4 + hotmovs.tube .video-page > .block_label > divN + upornia.tube + upornia.com + +thegay.com.video-page__content > .right< + upornia.tube + upornia.com.video-page__related + h52 + senzuri.tube.video-page__watchfull-special' + +pornhd.com.video-player-overlay* +peachurbate.com.video-right-banner4 + hotmovs.tube + upornia.tube.video-right-top5 + videojav.com + porntry.com.video-side__spots) + +thegay.com.video-slider-container! + kisscos.net.video-sponsor' + senzuri.tube.video-tube-friends# + xhamster.com.video-view-ads3 +china-tubex.site +china-tube.site.videoAd! + javynow.com.videos-ad__ad( + porntop.com.videos-slider--promo + porndoe.com .videos-tsq + zbporn.tv .view-aside0 + +zbporn.com + zbporn.tv.view-aside-block +tube-bunny.com.visions + yourlust.com .visit_cs* + eporner.com.vjs-inplayer-container  + upornia.tube .voiscscttnn  +japan-whores.com.vp-infoÑ + porndoe.com .vpb-holder + porndoe.com .vpr-section% +gays-cruising.com .w-100.h_250H + +yiffer.xyz6.w-\[160px\].overflow-hidden[style="min-height:226px"] + kbjfree.com .w-\[728px\]- + reddxxx.com.w-screen.backdrop-blur-md + +3prn.com.w-spots + 123av.com.w300 + pornone.com.warp/ + upornia.tube + upornia.com .wcccswvsyvk" + trannygem.com .we_are_sorry" + porntube.com.webcam-shelve +spankingtube.com.well38 +myreadingmanga.info.widget-area[class^="after_"]$ + bustyporn.com.widget-friends# + +rpclip.com.widget-item-wrapI +interviews.adultdvdtalk.com&.widget_adt_performer_buy_links_widget1 + hentaiprn.com + whipp3d.com .widget_block~ +freeadultcomix.com +hotcelebshome.com +pussycatxx.com + javcrave.com + +arcjav.com + +jav.guru.widget_custom_html  + gifsauce.com .widget_live3 +hentaiblue.com + pornifyme.com .widget_text + xhamster.com.wio-p# + xhamster.com.wio-pcam-thumb + xhamster.com +.wio-psp-b1 + xhamster2.com + xhamster.com .wio-xbanner + xhamster2.com .wio-xspa! + xhamster.com .wixx-ebanner$ + xhamster.com.wixx-ecam-thumb& + xhamster.com.wixx-ecams-widget: +teenager365.com#.wps-player__happy-inside-btn-close6 +videosdemadurasx.com + playporn.xxx +.wrap-spot! +pornrabbit.com .wrap-spots# + xjav.tube.wrapper > articleP + upornia.tube + aniporn.com + +bdsmx.tube + abjav.com.wrapper > section* + porn300.com.wrapper__related-sites/ + upornia.tube + upornia.com .wssvkvkyyee + xhamster.com +.xplayer-b& +xhamster18.desi.xplayer-banner( + +megaxh.com.xplayer-banner-bottom' + xhamster.com.xplayer-hover-menu +theyarehuge.com.yellow$ + xhamster.com.yfd-fdcam-thumb& + xhamster.com.yfd-fdcams-widget+ + xhamster.com.yfd-fdclipstore-bottom + xhamster.com .yfd-fdsp-b$ + xhamster.com.yld-mdcam-thumb + xhamster.com .yld-mdsp-b- + xhamster.com.yld-pcxplayer-hover-menu# + xhamster.com.ytd-jcam-thumb% + xhamster.com.ytd-jcams-widget + xhamster.com +.ytd-jsp-a# + xhamster.com.yxd-jcam-thumb% + xhamster.com.yxd-jcams-widget! + xhamster.com .yxd-jdbanner$ + xhamster.com.yxd-jdcam-thumb& + xhamster.com.yxd-jdcams-widget! + xhamster.com .yxd-jdplayer + xhamster.com .yxd-jdsp-b# + xhamster.com.yxd-jdsp-l-tab + xhamster.com +.yxd-jsp-a +justthegays.tv.zd-slot + faponic.com +.zkido_div" + pussy.org + +777av.cc.zone + momxxxfun.com.zone-2¶+ + pinflix.com + +pornhd.com +.zone-area' +hentai2read.com.zonePlaceholder2 + fapnado.com + fapnado.xxx.zpot-horizontal& + +faptor.com.zpot-horizontal-img0 + fapnado.com + fapnado.xxx.zpot-vertical9 +jizzbunker2.com + xxxdan3.com + +xxxdan.com.zx1p + tnaflix.com +.zzMeBplozC +prettygirlpic.top +hotnudedgirl.top[class$="custom-spot"]) +cheemsporno.com[class^="Banner_"]B +cheemsporno.com+[class^="PostCard_post-card__adContainer_"]8 +rabbitsreviews.com[class^="_hero-banner-promo_"]: +rabbitsreviews.com [class^="_notificationConsent_"]8 +pornodiamant.xxx + porn300.com[class^="abcnn_"]$ + beeg.porn[class^="bb_show_"]4 + hotleaks.tv + javrank.com[class^="koukoku"]$ + whoreshub.com[class^="pop-"]" + cumlouder.com [class^="sm"]+ +myreadingmanga.info[class^="top_p"]N + xhamster2.com + xhamster.com + xhamster.one[class^="xplayer-banner"]" + fapnado.com[class^="xpot"] + +porn.com [data-adch]& +hentairead.com[data-jads-slot]. + +xhspot.com[data-role="sponsor-banner"] + tube8.com[data-spot-id] + tube8.com [data-spot]  + +sxyprn.com[href*="/re/"]– +youporngay.com + pornhub.com + redtube.com + xvideos.com + youjizz.com + youporn.com + tube8.com + +tube8.es + +tube8.fr[href*="base64"]• +youporngay.com + pornhub.com + redtube.com + xvideos.com + youjizz.com + youporn.com + tube8.com + +tube8.es + +tube8.fr[href*="data:"]< +doseofporn.com + jennylist.xyz[href="/goto/desire"]> + porn00.tv-[href="http://porn00.org/solcasinoio-bonus/"]6 + +viojav.com$[href="https://idmax.one/77playads"]@ + jav.gallery-[href="https://jjgirls.com/sex/GoChaturbate"]m +wildpictures.net +hardcoreluv.com + imageweb.ws + pezporn.com$[href="https://nudegirlsoncam.com/"]7 +perverttube.com [href="https://usasexcams.com/"]: + coomer.su + kemono.su[href^="//a.adtng.com/get/"]0 +brazz-girls.com[href^="/Site/Brazzers/"]" + sexyico.com[href^="/go4/"]& + footztube.com[href^="/tp/out"]" + sexyico.com[href^="/xo1/"]B +boobieblog.com,[href^="http://join.playboyplus.com/track/"]4 + thotstars.com[href^="http://thotmeet.site/"]J +otomi-games.com + ryuugames.com"[href^="https://aichattings.com/"]O +homemoviestube.com +androidadult.com![href^="https://aoflix.com/Home"]6 +hentai2read.com[href^="https://camonster.com"]> +akiba-online.com&[href^="https://filejoker.net/invite"]2 +sweethentai.comref^="https://gadlt.nl/"]T +otomi-games.com + ryuugames.com + lewdgames.to[href^="https://golove.ai/"]< +usasexguide.nl&[href^="https://instable-easher.com/"]? +adultcomixxx.com'[href^="https://join.hentaisex3d.com/"]X +yaoimangaonline.com + ryuugames.com,[href^="https://l.erodatalabs.com/s/"] > img< +clubsarajay.com%[href^="https://landing.milfed.com/"]= + javgg.net,[href^="https://onlyfans.com/action/trial/"]> +sankakucomplex.com$[href^="https://s.zlink3.com/d.php"]2 + porn00.tv![href^="https://solcasino.io/r/"]7 +freebdsmxxx.org [href^="https://t.me/joinchat/"]6 +otomi-games.com[href^="https://t.trcktr.com/"]H +leakedzone.com + bestthots.com![href^="https://v6.realxxx.com/"]B +porngames.club,[href^="https://www.familyporngames.games/"]J +porngames.club4[href^="https://www.porngames.club/friends/out.php"]= +koreanstreamer.xyz#[href^="https://www.saltycams.com"]K +amateurporn.me + alotporn.com%[id^="list_videos_"] > [class="item"]& +gamesofdesire.com [id^="skin_"]8 +youporngay.com + youjizz.com[img][src*="blob:"]* + tophentai.biz[src*="hentaileads/"]ì.D +hentaigasm.com.[src^="https://add2home.files.wordpress.com/"]F + tubedupe.com2[src^="https://tubedupe.com/player/html.php?aid="]C +hentai-gamer.com+[src^="https://www.hentai-gamer.com/pics/"]$ + pornhub.com[srcset*="bloB:"]ˆ +youporngay.com + pornhub.com + redtube.com + youjizz.com + youporn.com + tube8.com + +tube8.es + +tube8.fr[style*="base64"]’ +youporngay.com + pornhub.com + redtube.com + youjizz.com + youporn.com + tube8.com + +tube8.es + +tube8.frtyle*="blob:"]:not(video)H + xozilla.com5[style="height: 220px !important; overflow: hidden;"]; +hentairider.com$[style="height: 250px;padding:5px;"]L + eporner.com9[style="margin: 20px auto; height: 275px; width: 900px;"]8 + +njavtv.com&[style="width: 300px; height: 250px;"]5 + +vjav.com%[style="width: 728px; height: 90px;"]Y + gelbooru.com + xozilla.com6[style^="height: 250px !important; overflow: hidden;"]> + 123av.com + +123av.ws +1av.to[style^="width:300px;"]m + missav123.com + missav888.com + missav.ai + missav.ws-[x-show$="video_details'"] > div > .list-discT + redtube.com + youporn.com + tube8.com%a[class*="gtm-event-header-paidtabs"]& + pornone.coma[class^="listing"]) + +f95zone.toa[data-nav-id="AIPorn"], + +f95zone.toa[data-nav-id="AISexChat"]. +boyfriendtv.coma[href*="&creativeId="]  + +porn.coma[href*="&ref="]ï +blackhaloadultreviews.com +shemaletubevideos.com +newpornstarblogs.com +pornhubpremium.com +the-new-lagoon.com +babesandstars.com +pornstarchive.com +str8upgayporn.com +sexyandfunny.com +gfycatporn.com +rogreviews.com +wcareviews.com + babepedia.com + mansurfer.com + porn-star.com + spankbang.com + asspoint.com + freeones.com + xxxonxxx.com + dbnaked.com + porndoe.com + youporn.com + javfor.me + tube8.com + +porn.com +ok.porna[href*=".com/track/"]Õ +therealpornwikileaks.com +shemaletubevideos.com +girlsofdesire.org +definebabe.com + boysfood.com + imagepix.org + badjojo.com + fantasti.cc + +pornxs.com + efukt.com + javfor.mea[href*=".php"]Ñ +blackhaloadultreviews.com +boyfriendtv.com +hentaigasm.com +javjunkies.com + missav123.com + missav888.com + masahub.net + +porn-w.org + missav.ai + missav.ws + +phun.orga[href*="//bit.ly/"]) + celeb.gate.cca[href*="//goo.gl/"]0 +taxidrivermovie.coma[href*="/category/"]! +nude.hua[href*="/click/"]- + hdzog.com + xcafe.coma[href*="/cs/"]1 + lewdspot.com + +mopoga.coma[href*="/gm/"]s +agedbeauty.net + vipergirls.to + imgdrive.net + pornpics.com + pornpics.de + +data18.coma[href*="/go/"]' + pornlib.coma[href*="/linkout/"]% + mansurfer.coma[href*="/out/"]% + avgle.coma[href*="/redirect"][ +pornerbros.com + porntube.com + 4tube.com +fux.coma[href*="/redirect-channel/"]/ + cockdude.coma[href*="/tsyndicate.com/"]. + youpornzz.coma[href*="/videoads.php?"]¦ +pornhubpremium.com +xxxymovies.com + spankbang.com + pstargif.com + tube8vip.com + pornhub.com + xozilla.com + +sxyprn.com + tube8.coma[href*="?ats="]@ +adultdvdempire.com&a[href*="?partner_id="][href*="&utm_"]1 +taxidrivermovie.coma[href*="mrskin.com/"]ä +vintage-erotica-forum.com +adultfilmdatabase.com +socialmediagirls.com +thefappeningblog.com +animeidhentai.com +familypornhd.com +hentai2read.com +hotpornfile.org +muchohentai.com +babeforums.org +cheemsporn.com +motherless.com +pandamovies.pw +planetsuzy.org +pussyspace.com +yeapornpls.com + sexgalaxy.net + vipergirls.to + camvideos.tv + camwhores.tv + gifsauce.com + imagebam.com + porntrex.com + simpshub.com + xfantazy.com + analegg.com + devporn.net + fritchy.com + imgtaxi.com + myporn.club + sendvid.com + sexuria.com + simpcity.su + waxtube.com + +f95zone.to + +imgbox.com + +sextvx.com + coomer.su + hpjav.com + kemono.su + +oncam.me +bos.soa[href*="theporndude.com"]D +tsmodelstube.com,a[href="https://tsmodelstube.com/a/tangels"]$ + bravotube.neta[href^="/cs/"]% + +sexhd.picsa[href^="/direct/"]' + drtuber.coma[href^="/partner/"]K + spankbang.com + pornhub.com'a[href^="http://ads.trafficjunky.net/"]: + teenmushi.org%a[href^="http://keep2share.cc/code/"]: +babesandstars.com!a[href^="http://rabbits.webcam/"]« +the-new-lagoon.com +adultgifworld.com +babeshows.co.uk +boobieblog.com +iseekgirls.com + fapnado.com6a[href^="http://refer.ccbill.com/cgi-bin/clicks.cgi?"]H +hentai-imperia.org.a[href^="http://www.adult-empire.com/rs.php?"]R + xcritic.com?a[href^="http://www.adultdvdempire.com/"][href*="?partner_id="]= +hentairules.net&a[href^="http://www.gallery-dump.com"]n +pornhubpremium.com + pornhub.com + redtube.com + +f95zone.to(a[href^="https://ads.trafficjunky.net/"]8 + +imgsen.com&a[href^="https://besthotgayporn.com/"]= +socialmediagirls.com!a[href^="https://bongacams.com/"]> +socialmediagirls.com"a[href^="https://bunnyagent.com/"]/ +imx.to!a[href^="https://camonster.com/"]= +socialmediagirls.com!a[href^="https://camplayer.com/"]@ +imagetwist.com + +f95zone.toa[href^="https://candy.ai/"]. +hog.tv a[href^="https://clickaine.com"]< + spankbang.com'a[href^="https://deliver.ptgncdn.com/"]5 + simpcity.su"a[href^="https://energizeio.com/"]æ +xhamsterporno.mx +xhamster42.desi +xhofficial.com + xhamster.desi + xhamster2.com + xhamster3.com + xhbranch5.com + xhchannel.com + xhlease.world + valuexh.life + xhaccess.com + xhamster.com + xhdate.world + xhtotal.com + xhwide2.com + xhwide5.com + +xhspot.com + +xhtree.com + seexh.com + xhbig.com a[href^="https://flirtify.com/"]9 +socialmediagirls.coma[href^="https://fuqqt.com/"]< + hitbdsm.com)a[href^="https://go.rabbitsreviews.com/"]; +instantfap.com%a[href^="https://go.redgifcams.com/"]ò&6 + +sexhd.pics$a[href^="https://go.stripchat.com/"]B +socialmediagirls.com&a[href^="https://golove.ai/anonAuth?"]8 + +imgsen.com&a[href^="https://hardcoreincest.net/"]? +adultgamesworld.com$a[href^="https://joystick.tv/t/?t="]> +yaoimangaonline.com#a[href^="https://l.hyenadata.com/"]@ +gayforfans.com*a[href^="https://landing.mennetwork.com/"]G + trannygem.com2a[href^="https://landing.transangelsnetwork.com/"]9 +datingpornstar.coma[href^="https://mylinks.fan/"]O +mrdeepfakes.com8a[href^="https://pages.faceplay.fun/ds/index-page?utm_"]4 + babepedia.coma[href^="https://porndoe.com/"]5 + +oncam.me%a[href^="https://pornwhitelist.com/"]D + +oncam.me4a[href^="https://publishers.clickadilla.com/signup"]8 + fans-here.com#a[href^="https://satoshidisk.com/"]J +forums.socialmediagirls.com'a[href^="https://secure.chewynet.com/"]; + smutr.com*a[href^="https://smutr.com/?action=trace"]; + pornlizer.com&a[href^="https://tezfiles.com/store/"]@ +allaboutcd.com*a[href^="https://thebreastformstore.com/"]3 + thotimg.xyz a[href^="https://thotsimp.com/"]7 + +oncam.me'a[href^="https://torguard.net/aff.php"]7 +muchohentai.com a[href^="https://trynectar.ai/"]? +socialmediagirls.com#a[href^="https://undressai.tools/"]> +socialmediagirls.com"a[href^="https://v6.realxxx.com/"]S +forums.socialmediagirls.com0a[href^="https://viralporn.com/"][href*="?utm_"]9 + +oncam.me)a[href^="https://www.clickadu.com/?rfd="]4 + +f95zone.to"a[href^="https://www.deepswap.ai"]= +myreadingmanga.info"a[href^="https://www.dlsite.com/"]H +namethatpornad.com + +vxxx.com"a[href^="https://www.g2fame.com/"]Z +myreadingmanga.info +yaoimangaonline.com(a[href^="https://www.gaming-adult.com/"]C + gotporn.com0a[href^="https://www.gotporn.com/click.php?id="]6 + spankbang.com!a[href^="https://www.iyalc.com/"]K + vipergirls.to + imagebam.com&a[href^="https://www.mrporngeek.com/"]N +pimpandhost.com7a[href^="https://www.myfreecams.com/"][href*="&track="]C +socialmediagirls.com'a[href^="https://www.puatraining.com/"]F +socialmediagirls.com*a[href^="https://www.rabbitsreviews.com/"]D +couplesinternational.com$a[href^="https://www.redhotpie.com"]2 + pornhub.coma[href^="https://www.uviu.com"]2 +spankingtube.com + barelist.com +a[onclick]1 + +rule34.xxx + slixa.coma[rel="sponsored"]B +porngames.games+a[style="color: #9d9d9d;"][target="_blank"]: + h-flash.com'a[style^="width: 320px; height: 250px"]9 + 1escorts.net%a[target="_blank"] > img[width="250"]& + povaddict.coma[title^="FREE "]2 + aniporn.com + +bdsmx.tubearticle > section+ +girlonthenet.comaside[data-adrotic], + xpassd.coaside[id^="tn_ads_widget-"]B +mysexgames.com + xnxxxhd.combody > div[style*="z-index:"]- + xxbrits.combutton[class^="click-fun"]– +wetpussygames.com +boobieblog.com +thenipslip.com + lolhentai.net + picdollar.com + porngames.com + imgadult.com + xvideos.namecanvas + redtube.com div > iframe0 +motherless.comdiv > table[style][border]# +publicflashing.me +div.hentry# + xxxdl.netdiv.in_thumb.thumb* +sexwebvideo.netdiv.trailer-sponsor) +underhentai.netdiv[class*="afi-"]Ÿ  +xhamsterporno.mx +xhamster18.desi +xhamster19.desi +xhamster20.desi +xhamster42.desi +galleryxh.site +xhamster1.desi +xhamster10.com +xhamster12.com +xhamster14.com +xhamster15.com +xhamster19.com +xhamster2.desi +xhamster20.com +xhamster22.com +xhamster23.com +xhamster25.com +xhamster26.com +xhamster27.com +xhamster31.com +xhamster32.com +xhamster34.com +xhamster36.com +xhamster37.com +xhamster38.com +xhamster39.com +xhamster4.desi +xhamster40.com +xhamster5.desi +xhofficial.com +xhwebsite2.com + stripchat.com + xhamster.desi + xhamster2.com + xhamster3.com + xhamster7.com + xhamster8.com + xhamster9.com + xhbranch5.com + xhchannel.com + xhlease.world + xhplanet2.com + interxh.site + valuexh.life + xhaccess.com + xhadult2.com + xhadult3.com + xhamster.com + xhamster.one + xhamster13.* + xhamster16.* + xhamster17.* + xhamster18.* + xhdate.world + openxh1.com + xhamster3.* + xhmoon5.com + xhtotal.com + xhwide1.com + xhwide2.com + xhwide5.com + +megaxh.com + +openxh.com + +xhopen.com + +xhspot.com + +xhtree.com + seexh.com + xhbig.com + xhvid.comdiv[class*="cams-wgt"]8 + redtube.com%div[class*="display: block; height:"]2 + +twiman.net div[class*="my-"][class*="px\]"]* + camsoda.comdiv[class^="AdsRight-"]) + ovacovid.comdiv[class^="Banner-"]6 + +cam4.com +cam4.eudiv[class^="SponsoredAds_"], +hentaicovid.comdiv[class^="banner-"]) + xporno.tvdiv[class^="block_ads_"]A +new.lewd.ninja+div[class^="box ~!@$%^&*()_+-=,./';:?><[]"]% + hpjav.topdiv[class^="happy-"]Ï0 + hentaimama.iodiv[class^="in-between-ad"]8 +sleazyneasy.com + pornwhite.comdiv[data-banner]* +theyarehuge.comdiv[data-nosnippet]; + xhamster.com'div[data-testid="right-banner-section"]7 +hentai2read.com div[data-type="leaderboard-top"]* +hentaistream.comdiv[id^="adx_ad-"]Œ +freepublicporn.com +darknessporn.com +familyporner.com +pisshamster.com +punishworld.com + +xanimu.comdiv[id^="after-boxes"]� +freepublicporn.com +darknessporn.com +familyporner.com +pisshamster.com +punishworld.com + +xanimu.comdiv[id^="beside-video"]) +pornsitetest.comdiv[id^="eroti-"]� +freepublicporn.com +darknessporn.com +familyporner.com +pisshamster.com +punishworld.com + +xanimu.comdiv[id^="native-boxes"]• +freepublicporn.com +darknessporn.com +familyporner.com +pisshamster.com +punishworld.com + +xanimu.comdiv[id^="related-boxes-footer"]7 +pornstarbyface.comdiv[id^="sponcored-content-"]% + lewdgamer.comdiv[id^="spot-"]% + hentaiff.comdiv[id^="teaser"]+ +thefetishistas.comdiv[id^="thefe-"]M +eromanga-show.com +hentai-one.com + hentaipaw.comdiv[id^="ts_ad_"]< +youporngay.com + pornhub.comdiv[onclick*="bp1.com"]` +hentaistream.comHdiv[style$="width:100%;height:768px;overflow:hidden;visibility:hidden;"]/ + +hentai.comdiv[style="cursor: pointer;"]K + xozilla.xxx8div[style="height: 250px !important; overflow: hidden;"]K + porncore.net7div[style="margin:10px auto;height:200px;width:800px;"]^ + javplayer.meJdiv[style="position: absolute; inset: 0px; z-index: 999; display: block;"]E + simpcity.su2div[style="text-align:center;margin-bottom:20px;"]… + missav123.com + missav888.com + aniporn.com + abxxx.com + missav.ai + missav.ws)div[style="width: 300px; height: 250px;"]Z + +sexbot.comHdiv[style="width:300px;height:20px;text-align:center;padding-top:30px;"]4 +pornpics.networkdiv[style^="height: 250px;"]. + gay0day.comdiv[style^="height:250px;"]: + ooxxx.com)div[style^="width: 728px; height: 90px;"]= + thehentai.net(div[style^="width:300px; height:250px;"]= + javtorrent.me(div[style^="width:728px; height: 90px;"]% + javgg.netiframe.lazyloaded.na( + +smutty.comiframe[scrolling="no"] + xcafe.com iframe[src]F +watchteencam.com.iframe[src^="http://watchteencam.com/images/"]U +komikindo.info +motherless.com + manga18fx.com + manhwa18.cc iframe[style]@ + tnaflix.com + 3movs.com + ggjav.comiframe[width="300"]! + avgle.comimg[src*=".php"]† +youporngay.com + pornhub.com + xvideos.com + youjizz.com + tube8.com + +tube8.es + +tube8.frimg[src*="blob:" i]:not(video)' + 4tube.comimg[src][style][width] + pornhub.com img[srcset]V +mature.community +milf.community + pornhub.com + milf.plusimg[width="300"]$ + sexmummy.comimg[width="468"], + mrjav.netli[id^="video-interlacing"]5 + +pictoa.com#nav li[style="position: relative;"] + boundhub.comnoindex! + +pornhd.comphd-floating-ad. +koreanstreamer.xyzsection.korea-widget9 +porngifs2u.com#section[class*="elementor-hidden-"] + redtube.comsvg) +mysexgames.comtable[height="630"]) +mysexgames.comtable[height="640"]0 +motherless.comtable[style*="max-width:"] + exoav.com td > a[href] + xxxcomics.orgvideo= +youporngay.com + +tube8.es + +tube8.frvideo[autoplay]A + porndoe.com + redtube.comvideo[autoplay][src*="blob:" i]A + porndoe.com + redtube.comvideo[autoplay][src*="data:" i]) +cam4.*div[class^="SponsoredAds_"]@ + redgifs.com-.SideBar-Item:has(> [class^="_liveAdButton"])> + +porn-w.org,.align-items-center.list-row:has(.col:empty)C + multporn.net/.block-block:has(> .content > ins[data-zoneid])) + picsporn.net.box:has(> .dip-exms)3 + javtiful.com.col.pb-3:has(.badge.bg-danger)C + porngames.com..contentbox:has(a[href="javascript:void(0);"])§# +Uÿï08@REcrocotube.com#?#.ct-related-videos-title:-abp-contains(Advertisement) +Yÿï08@RIcrocotube.com#?#.ct-related-videos-title:-abp-contains(You may also like) +Mÿï08@R=hdpornpics.net#?#.money:-abp-has(.century:-abp-contains(ADS)) +Mÿï08@R=hotmovs.com#?#.block_label--last:-abp-contains(Advertisement) +Aÿï08@R1okxxx1.com#?#.bn-title:-abp-contains(Advertising) +>ÿï08@R.porn-w.org#?#.row:-abp-contains(Promotion Bot) +Lÿï08@R .layout-simple:has(.gridlove-archive-ad)O + +jable.tv?.gutter-20 > .col-sm-4:has(> .video-img-box a[target="_blank"])I +tokyomotion.com2.is-gapless > .has-text-centered:has(> div > .adv)\ + crazyporn.xxx + love4porn.com + +4kporn.xxx + hoes.tube.item:has(> [class*="ads"])E +stockingfetishvideo.com&.item:has(> [href*="/?action=trace&"]). + vagina.nl.list-item:has([data-idzone])a +adultgamesworld.comF.masonry-layout__panel:has(a[href^="https://access-the-website.com/"])  +freepublicporn.com +darknessporn.com +familyporner.com +pisshamster.com +punishworld.com + +xanimu.com*.no-gutters > .col-6:has(> #special-block)o + +f95zone.to].node:has(> .node-body > .node-main > .node-title > a[href^="/link-forums/"][href*="-slut."])O +adultgamesworld.com4.rel:has(a[href^="https://access-the-website.com/"])G + kbjfree.com4.relative.w-full:has(> .video-card[target="_blank"])I + pornhub.com6.sectionWrapper:has(> #bottomVideos > .wrapVideoBlock): +hentaicomics.pro".single-portfolio:has(.xxx-banner)+ + +xasiat.com.top:has(> [data-zoneid])i + scrolller.comT.vertical-view__column > .vertical-view__item:has(> div[style$="overflow: hidden;"])? + povxl.com..video-holder > div:has([id^="ts_ad_native_"])F + porndoe.com3.video-item:has(a.video-item-link[ng-native-click])) + +jav4tv.comaside:has(.ads_300_250)) + youporn.comaside:has(a.ad-remove)Q + pornhub.com>div[class="video-wrapper"] > .clear.hd:has(.adsbytrafficjunky)Z +rule34.paheal.netAsection[id$="main"] > .blockbody:has(> div[align="center"] > ins)v +otomi-games.com_.clean-grid-grid-post:has(> [id^="otomi-"] + .clean-grid-grid-post-details-full) {remove:true;}I +classic.gamcore.com.#center > .flashes > .wide:has(> a[href][rel]) + 69games.xxx#footer + gamcore.com #preloader_2 + 69games.xxx#right+ + 69games.xxx + gamcore.com #tvnotice# + gamcore.com.add_game.d-none9 + gamcore.com&.item:has(> [href^="/games/fuckyou/"])% + gamcore.com.row > .d-md-block) + 69games.xxx[class^="leaderboard"]" + gamcore.com[href*="/ads/"]# + 69games.xxx[id*="tvadbody"]2 +classic.gamcore.com[id]:has(> .warningbox)< + 69games.xxx)[id^="center"] .I:has(> [class=""][href])R + 69games.xxx + porcore.com0body > [id][style^="position: fixed; top: 0px;"]) + gamcore.comli.d-md-block > a[rel]÷( +rÿï* +adamtheautomator.com* +packinsider.com* +packhacker.com* + mediaite.com08@Rads.adthrive.com/api/ +©ÿï* +laurelberninteriors.com* +adamtheautomator.com* +packinsider.com* +packhacker.com* + mediaite.com08@R1ads.adthrive.com/builds/core/*/js/adthrive.min.js +gÿï* +laurelberninteriors.com* + mediaite.com08@R,ads.adthrive.com/builds/core/*/prebid.min.js +gÿï* +laurelberninteriors.com08@Rÿï08@R.basinnow.com/upload/settings/advertise-img.jpg +Dÿï* +carmagazine.co.uk08@Rbauersecure.com/dist/js/prebid/ +&ÿï08@Rbbc.co.uk^*/adverts.js +** +bbc.com08@Rbbc.gscontxt.net^ +"08@Rbetterads.org/hubfs/ +'08@Rbigfishaudio.com/banners/ +_08@RQbikeportland.org/wp-content/plugins/advanced-ads/public/assets/js/advanced.min.js +2ÿï08@R"bitcoinbazis.hu/advertise-with-us/ +>* + +wral.com08@R$blueconic.net/capitolbroadcasting.js +;* + boats.com08@R boatwizard.com/ads_prebid.min.js +S* +gamesradar.com* + tomsguide.com08@R"bordeaux.futurecdn.net/bordeaux.js +Cÿï08@R3borneobulletin.com.bn/wp-content/banners/bblogo.jpg +&08@Rbrave.com/static-assets/¯! +C08@R5britannica.com/mendel-resources/3-52/js/libs/prebid4. +<&* + +wral.com08@R"capitolbroadcasting.blueconic.net^ +508@R'carandclassic.co.uk/images/free_advert/ +B* + cbsnews.com* + zdnet.com08@Rcbsi.com/dist/optanon.js +9ÿï* +rapid-cloud.co08@Rcc.zorores.com/ad/*.vtt +{ÿï* +hutchgo.com.cn* +hutchgo.com.hk* +hutchgo.com.sg* +hutchgo.com.tw* + hutchgo.com08@Rcdn.advertserve.com^ +=ÿï* +theautopian.com* + mm-watch.com08@R +cdn.ex.co^ +Nÿï* +journal-news.com08@R*cdn.wgchrrammzv.com/prod/ajc/loader.min.js +F* + chycor.co.uk08@R(chycor.co.uk/cms/advert_search_thumb.php ++ÿï08@Rclients.plex.tv/api/v2/ads/ +2ÿï08@R"cloudfront.net/js/common/invoke.js +. 08@R commons.wikimedia.org/w/api.php? +{* +washingtonexaminer.com* +ebaumsworld.com* + funker530.com* + tvinsider.com08@Rconnatix.com*/connatix.player. +/08@R!content.pouet.net/avatars/adx.gif +-08@Rcrackle.com/vendor/AdManager.js +=ÿï08@R-cvs.com/webcontent/images/weeklyad/adcontent/ +E * +imasdk.googleapis.com08@Rd.socdm.com/adsv/*/tver_splive +>ÿï08@R.dcdirtylaundry.com/cdn-cgi/challenge-platform/ +T* + +tunein.com08@R8delivery-cdn-cf.adswizz.com/adswizz/js/SynchroClient*.js +%ÿï08@Rdiscretemath.org/ads/ + 08@Rdiscretemath.org^ +)€08@Rdisqus.com/embed/comments/ +#$08@Rdocs.woopt.com/wgact/ +2* +nookipedia.com08@Rdodo.ac/np/images/ +Y* +mylifetime.com* + history.com* + +aetv.com* +fyi.tv08@Rdoubleclick.net/ddm/ +, * + +tvnz.co.nz08@Rdoubleclick.net/ + 08@Redmodo.com/ads +$08@Reinthusan.tv/prebid.js +. * +espncricinfo.com08@R embed.ex.co^ +6 * + +iheart.com08@Rentitlements.jwplayer.com^ ++ÿï08@Rexperienceleague.adobe.com^ +*08@Rexplainxkcd.com/wiki/images/ +S* +origami-resource-center.com08@R&ezodn.com/tardisrocinante/lazy_load.js +<* + gerweck.net08@Rezoic.net/detroitchicago/cmb.js +'ÿï08@Rf-droid.org/assets/Ads_ +' 08@Rfacebook.com/ads/profile/ +/ÿï08@Rfaculty.uml.edu/klevasseur/ads/ + 08@Rfaculty.uml.edu^ +4* +urbanglasgow.co.uk08@Rfdyn.pubwise.io^ +08@Rfiles.slack.com^ +'08@Rflying-lines.com/banners/ +0 08@R"forum.miuiturkiye.net/konu/reklam. +) 08@Rforums.opera.com/api/topic/ +B* + +wbnq.com08@R(franklymedia.com/*/300x150_WBNQ_TEXT.png +N* +broadsheet.com.au* + friendcafe.jp08@Rfuseplatform.net^*/fuse.js +Ø * +managedhealthcareexecutive.com* +chromatographyonline.com* +physicianspractice.com* +medicaleconomics.com* +journaldequebec.com* +formularywatch.com* + bloomberg.com08@Rg.doubleclick.net/gampad/ads +Uÿï* +imasdk.googleapis.com08@R,g.doubleclick.net/gampad/ads*%20Web%20Player +M * +imasdk.googleapis.com08@R&g.doubleclick.net/gampad/ads?*%2Ftver. +† * +imasdk.googleapis.com08@R_g.doubleclick.net/gampad/ads?*&iu=%2F18190176%2C22509719621%2FAdThrive_Video_Collapse_Autoplay_ +Šÿï* +imasdk.googleapis.com08@Rag.doubleclick.net/gampad/ads?*&iu=%2F18190176%2C22509719621%2FAdThrive_Video_In-Post_ClicktoPlay_ +p * + +spiegel.de08@RTg.doubleclick.net/gampad/ads?*&prev_scp=kw%3Diqdspiegel%2Cdigtransform%2Ciqadtile4%2 +U * +imasdk.googleapis.com08@R.g.doubleclick.net/gampad/ads?*.crunchyroll.com +T * +imasdk.googleapis.com08@R-g.doubleclick.net/gampad/ads?*RakutenShowtime +C * +wunderground.com08@R!g.doubleclick.net/gampad/ads?env= +O * +imasdk.googleapis.com08@R(g.doubleclick.net/gampad/live/ads?*tver. +=€* +sudokugame.org08@Rg.doubleclick.net/pagead/ads +p * +imasdk.googleapis.com08@RIg.doubleclick.net/pagead/ads?*&description_url=https%3A%2F%2Fgames.wkb.jp +:* +g2.com08@R"g2crowd.com/uploads/product/image/ +08@Rgbf.wiki/images/ ++ÿï08@Rgitlab.com/api/v4/projects/ +0ÿï08@R givingassistant.org/Advertisers/ +H* +dimensions.com08@R(global-uploads.webflow.com/*_dimensions- +F* + bbc.co.uk08@R+gn-web-assets.api.bbc.com/bbcdotcom/assets/ +L* +raiderramble.com08@R*go.ezodn.com/tardisrocinante/lazy_load.js?· ++ 08@Rgo.xlirdr.com/api/models/vast +208@R$gocomics.com/assets/ad-dependencies- +-08@Rgoogle.com/images/integrations/ +K* + +zubizu.com08@R/googleadservices.com/pagead/conversion_async.js +<* + wallapop.com08@Rgoogleoptimize.com/optimize.js ++ÿï08@Rgpt-worldwide.com/js/gpt.js +B* +telegraph.co.uk08@R!grapeshot.co.uk/main/channels.cgi +D* +support.google.com08@R gstatic.com/ads/external/images/ +)ÿï08@Rgumtree.co.za/my/ads.html +7ÿï* + hotstar.com08@Rhotstar.com/vs/getad.php + +08@Rhp.com/in/*/ads/ +6ÿï* + hodinkee.com08@Rhtlbid.com^*/htlbid.js +ÿï* +hutchgo.com.cn* +hutchgo.com.hk* +hutchgo.com.sg* +hutchgo.com.tw* + hutchgo.com08@Rhutchgo.advertserve.com^ +5* + datpiff.com08@Rhw-ads.datpiff.com/news/ +3* + +icons8.com08@Rimage.shutterstock.com^ +`ÿï* + games.co.uk* + zigiz.com* + +kizi.com08@R(improvedigital.com/pbw/headerlift.min.js +$08@Rinfotel.ca/images/ads/ +8ÿï08@R(infoworld.com/www/js/ads/gpt_includes.js +' 08@Rinstagram.com/api/v1/ads/ +:08@R,ipinfo.io/static/images/use-cases/adtech.jpg +<ÿï08@R,island.lk/userfiles/image/danweem/island.gif +- 08@Ritv.com/itv/hserver/*/site=itv/ +$ÿï08@Ritv.com/itv/tserver/ +<€ 08@R+jokerly.com/Okidak/adSelectorDirect.htm?id= +3€ 08@R"jokerly.com/Okidak/vastChecker.htm +Cÿï* +sterkinekor.com08@R js.adsrvr.org/up_loader.1.1.0.js +=ÿï* + irctc.co.in08@Rjsdelivr.net^*/videojs.ads.css +P* +video.vice.com* + +iheart.com08@R"jwpcdn.com/player/plugins/googima/ +Fÿï08@R6kotaku.com/x-kinja-static/assets/new-client/adManager. +>€* +chrome-extension-scheme08@Rlastpass.com/ads.php +&08@Rlastpass.com/images/ads/ +-08@Rletocard.fr/wp-content/uploads/ +! 08@Rlinkbucks.com/tmpl/ +�* +independent.co.uk* +screencrush.com* + eurogamer.net* + loudwire.com* + +xxlmag.com* + vg247.com* + +klaq.com08@Rlive.primis.tech^ +- * + +xxlmag.com08@Rlive.primis.tech^ +Xÿï* +player.amperwave.net* + +iheart.com08@R"live.streamtheworld.com/partnerIds +*ÿï08@Rlokopromo.com^*/adsimages/ +(ÿï08@Rlooker.com/api/internal/ +308@R%luminalearning.com/affiliate-content/ +Dÿï08@R4makeuseof.com/public/build/images/bg-advert-with-us. ++08@Rmanageengine.com/images/logo/ +5ÿï08@R%manageengine.com/products/ad-manager/ +308@R%martinfowler.com/articles/asyncJS.css +"08@Rmedia.kijiji.ca/api/ +8ÿï* + +goseek.com08@Rmediaalpha.com/js/serve.js +y"* +gamingbible.co.uk* +sportbible.com* + ladbible.com* + +viki.com08@R(micro.rubiconproject.com/prebid/dynamic/ +4* + +nascar.com* + +imsa.com08@R moatads.com^ +(08@Rmotortrader.com.my/advert/ +Mÿï* +business.facebook.com08@R$mtouch.facebook.com/ads/api/preview/ +Qÿï08@RAnascar.com/wp-content/themes/ndms-2023/assets/js/inc/ads/prebid8. +?ÿï* + +nypost.com08@R!newscgp.com/prod/prebid/nyp/pb.js +' 08@Rnextcloud.com/remote.php/ +0* +nfl.com08@Rnflcdn.com/static/site/ +, 08@Rnpr.org/sponsorship/targeting/ +7ÿï* +mcclatchydc.com08@Rntv.io/serve/load.js +3€* +pch.com08@Roptimatic.com/iframe.html +:ÿï* +pch.com08@Roptimatic.com/redux/optiplayer- +1ÿï* +pch.com08@Roptimatic.com/shell.js +, 08@Roptout.networkadvertising.org^ +)* + +hotair.com08@R p.d.1emn.com^ +­ÿï* +imasdk.googleapis.com08@Rƒpagead2.googlesyndication.com/gampad/ads?*laurelberninteriors.com*&iu=%2F18190176%2C22509719621%2FAdThrive_Video_Collapse_Autoplay_ +¯ÿï* +imasdk.googleapis.com08@R…pagead2.googlesyndication.com/gampad/ads?*laurelberninteriors.com*&iu=%2F18190176%2C22509719621%2FAdThrive_Video_In-Post_ClicktoPlay_ +108@R#pandora.com/images/public/devicead/ +@* + patreon.com08@R#patreonusercontent.com/*.gif?token-� +*08@Rpayload.cargocollective.com^ +#$08@Rpbs.twimg.com/ad_img/ +?* +extrarebates.com08@Rpepperjamnetwork.com/banners/ +%08@Rphotofunia.com/effects/ +.* +extrarebates.com08@R pjtra.com/b/ +B* + +odysee.com* + +pogo.com08@Rplayer.aniview.com/script/ +i* +gamingbible.co.uk* +justthenews.com* + ladbible.com* + explosm.net08@Rplayer.avplayer.com^ +`* +theautopian.com* + mm-watch.com* + usatoday.com* +ydr.com08@Rplayer.ex.co/player/ +2 * + +odysee.com08@Rplayer.odycdn.com/api/ +008@R"playwire.com/bolt/js/zeus/embed.js +08@Rpngimg.com/distr/ +/* +extrarebates.com08@R pntrac.com/b/ +.* +extrarebates.com08@R pntrs.com/b/ +(* +poa.st08@Rpoastcdn.org/ad/ +/ÿï08@Rportal.autotrader.co.uk/advert/ +- * + +go.cnn.com08@Rprebid.adnxs.com^ +.ÿï08@Rpreromanbritain.com/maxymiser/ +€08@Rpromo.com/embed/ +- * + promo.com08@Rpromo.zendesk.com^ +5* + +time.com08@Rpub.doubleverify.com/dvtag/ +R* +independent.co.uk08@R/pub.pixels.ai/wrap-independent-no-prebid-lib.js +008@R"radiotimes.com/static/advertising/ +Nÿï*" + viewscreen.githubusercontent.com08@Rraw.githubusercontent.com^ +N* + zdnet.com* + +cnet.com08@R'redventures.io/lib/dist/prod/bidbarrel- +508@R'renewcanceltv.com/porpoiseant/banger.js +R* +journaldequebec.com* +ask.com08@R"rubiconproject.com/prebid/dynamic/ +08@Rrunescape.wiki^ ++08@Rs.confluency.site/*.com/4/js/ +5ÿï* + titantv.com08@Rs.ntv.io/serve/load.js +D08@R6salfordonline.com/wp-content/plugins/wp_pro_ad_system/ +608@R(schwab.com/scripts/appdynamic/adrum-ext. +C* +scrippsdigital.com08@Rscrippsdigital.com/cms/videojs/ +<ÿï08@R,sdltutorials.com/Data/Ads/AppStateBanner.jpg +0ÿï08@R securenetsystems.net/v5/scripts/ +A08@R3shaka-player-demo.appspot.com/lib/ads/ad_manager.js +/08@R!showcase.codethislab.com/banners/ +/ÿï08@Rshreemaruticourier.com/banners/ +. 08@Rsignin.verizon.com^*/affiliate/ +208@R$somewheresouth.net/banner/banner.php +Kÿï* + sportsnet.ca08@R+sportsnet.ca/wp-content/plugins/bwp-minify/ +6ÿï08@R&standard.co.uk/js/third-party/prebid8. +, 08@Rstartrek.website/pictrs/image/ +Dÿï* + adplayer.pro* + 4shared.com08@Rstat-rock.com/player/ +K* + ignboards.com08@R,static.doubleclick.net/instream/ad_status.js +0€* +crunchyroll.com08@Rstatic.vrv.co^ +9ÿï08@R)summitracing.com/global/images/bannerads/ +-08@Rsundaysportclassifieds.com/ads/ +6* + sporcle.com08@Rsurvey.g.doubleclick.net^ +X* +player.amperwave.net* + +tunein.com08@R$synchrobox.adswizz.com/register2.php +Wÿï08@RGtcbk.com/application/files/4316/7521/1922/Q1-23-CD-Promo-Banner-Ad.png^ +Dÿï* + homedepot.com08@R#thdstatic.com/experiences/local-ad/ +?ÿï08@R/thedailybeast.com/pf/resources/js/ads/arcads.js +<ÿï08@R,thepiratebay.org/cdn-cgi/challenge-platform/ +0* + +tvtime.com08@Rthetvdb.com/banners/ +8* + bestiefy.com08@Rthisiswaldo.com/static/js/ +M* + pjmedia.com08@R0townhall.com/resources/dist/js/prebid-pjmedia.js +{*! +safeframe.googlesyndication.com08@RJtpc.googlesyndication.com/pagead/js/*/elements/html/interstitial_ad_frame_ +0ÿï08@R tractorshed.com/photoads/upload/ +-€* +adx.ae08@Rtradingview.com/adx/ +'08@Rtrustprofile.com/banners/ +/ÿï08@Rukbride.co.uk/css/*/adverts.css +)* + vidsrc.stream08@R +unpkg.com^ +.„08@Rupload.wikimedia.org/wikipedia/ + 08@R v.fwmrm.net/?·J +'08@Rv.fwmrm.net/ad/g/*Nelonen +<ÿï* + +uktv.co.uk* + +vevo.com08@Rv.fwmrm.net/ad/g/1 +- 08@Rv.fwmrm.net/ad/g/1?*mtv_desktop +; 08@R-v.fwmrm.net/ad/g/1?csid=vcbs_cbsnews_desktop_ +Áÿï* +player.theplatform.com* +simpsonsworld.com* +foodnetwork.com* + channel5.com* + eonline.com* + nbcnews.com* + today.com* + +ncaa.com* +cmt.com* +cc.com08@Rv.fwmrm.net/ad/p/1? +) 08@Rv.fwmrm.net/crossdomain.xml +<* +si.com08@R$vms-players.minutemediaservices.com^ +; * +si.com08@R#vms-videos.minutemediaservices.com^ + ÿï08@Rwarpwire.com/AD/ + ÿï08@Rwarpwire.net/AD/ +Qÿï* +weatherbug.com08@R/web-ads.pulse.weatherbug.net/api/ads/targeting/ +608@R(webbtelescope.org/files/live/sites/webb/ +Qÿï* +interestingengineering.com08@R#widgets.jobbio.com^*/display.min.js +.* + hotstar.com08@Rworldgravity.com^ +Gÿï08@R7wrestlinginc.com/wp-content/themes/unified/js/prebid.js +Öÿï* + google.com.ar* + google.com.au* + google.com.br* + google.com.co* + google.com.ec* + google.com.eg* + google.com.hk* + google.com.mx* + google.com.my* + google.com.pe* + google.com.ph* + google.com.pk* + google.com.py* + google.com.sa* + google.com.sg* + google.com.tr* + google.com.tw* + google.com.ua* + google.com.uy* + google.com.vn* + google.co.id* + google.co.il* + google.co.in* + google.co.jp* + google.co.ke* + google.co.kr* + google.co.nz* + google.co.th* + google.co.uk* + google.co.ve* + google.co.za* + +google.com* + google.ae* + google.at* + google.be* + google.bg* + google.by* + google.ca* + google.ch* + google.cl* + google.cz* + google.de* + google.dk* + google.dz* + google.ee* + google.es* + google.fi* + google.fr* + google.gr* + google.hr* + google.hu* + google.ie* + google.it* + google.lt* + google.lv* + google.nl* + google.no* + google.pl* + google.pt* + google.ro* + google.rs* + google.ru* + google.se* + google.sk08@Rwww.google.*/search? +.†08@Rwww.google.com/ads/preferences/ +3ÿï08@R#yaytrade.com^*/chunks/pages/advert/ +=* +whatismyip.com08@Ryieldlove.com/v2/yieldlove.js +;ÿï* + yahoo.com08@Ryimg.com/rq/darla/*/g-r-min.js +08@Rzeebiz.com/ads/ +P * +manageengine.com* +zohopublic.com08@Rzohopublic.com^*/ADManager_ +208@R$challenges.cloudflare.com/turnstile/ ++ÿï08@Rgoogle.com/recaptcha/api.js +2ÿï08@R"google.com/recaptcha/enterprise.js +0ÿï08@R google.com/recaptcha/enterprise/ +&ÿï08@Rgstatic.com/recaptcha/ +$‚08@Rhcaptcha.com/captcha/ +%ÿï08@Rhcaptcha.com^*/api.js +&08@Rrecaptcha.net/recaptcha/ +% 08@Rsearch.brave.com/search +%ÿï08@Rui.ads.microsoft.com^ +(* + wordpress.org08@R ps.w.org^ +2* + wordpress.org08@Rs.w.org/wp-content/ +7ÿï* + wordpress.org08@Rwordpress.org/plugins/ +<ÿï* + wordpress.org08@Rwordpress.org/stats/plugin/ +08@Rsucceedscene.com^ +=ÿï* + akinator.mobi08@Rakinator.mobi.cdn.ezoic.net^ +Gÿï* +doctors.bannerhealth.com08@Rbanner.customer.kyruus.com^ +)* + mp4upload.com08@R +hwcdn.net^ +6„* + ezfunnels.com08@Rezsoftwarestorage.com^ +$€08@Rads.memo2.nl/banners/ +'ÿï08@Roauth.vk.com/authorize? +Õÿï* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +allestoringen.be* +allestoringen.nl* +downdetector.com* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.ru* +downdetector.se* +downdetector.sg* +downdetector.sk* +downdetector.tw08@R#googletagservices.com/tag/js/gpt.js +‘* +pornhubthbh7ap3u.onion* +redtube.com.br* +youporngay.com* + gaytube.com* + pornhub.com* + redtube.com* + youjizz.com* + youporn.com* + tube8.com* + xtube.com* +tube8.es* +tube8.fr08@R0/wp-content/plugins/blockalyzer-adblock-counter/ +*€* + hanime.tv08@Radtng.com/get/ +Jÿï08@R:az.hp.transer.com/content/dam/isetan_mitsukoshi/advertise/ +Oÿï08@R?az.hpcn.transer-cn.com/content/dam/isetan_mitsukoshi/advertise/ +*08@Rcdnqq.net/ad/api/popunder.js +008@R"coinmarketcap.com/static/addetect/ +"‚* +dlh.net08@Rdlh.net^ +=ÿï* +yellowbridge.com08@Rexponential.com^*/tags.js +$08@Ruserload.co/adpopup.js +)08@Rwaaw.to/adv/ads/popunder.js +.08@R yandexcdn.com/ad/api/popunder.js +6* + animedao.to08@Ryimg.com/dy/ads/native.js +&€ 08@Rtab.gladly.io/newtab/ +–* +footballleagueworld.co.uk* +footballfancast.com* +xda-developers.com* +androidpolice.com* +hardcoregamer.com* +backyardboss.net* +dualshockers.com* +simpleflying.com* +thesportster.com* +givemesport.com* +pocket-lint.com* +screenrant.com* +therichest.com* + howtogeek.com* + makeuseof.com* + pocketnow.com* + thethings.com* + thetravel.com* + babygaga.com* + collider.com* + gamerant.com* + movieweb.com* + thegamer.com* + topspeed.com* + carbuzz.com* + hotcars.com* + +moms.com* +cbr.com08@Radsninja.ca/ads_ +¤* +footballleagueworld.co.uk* +footballfancast.com* +xda-developers.com* +androidpolice.com* +hardcoregamer.com* +backyardboss.net* +dualshockers.com* +simpleflying.com* +thesportster.com* +givemesport.com* +pocket-lint.com* +screenrant.com* +therichest.com* + howtogeek.com* + makeuseof.com* + pocketnow.com* + thethings.com* + thetravel.com* + babygaga.com* + collider.com* + gamerant.com* + movieweb.com* + thegamer.com* + topspeed.com* + carbuzz.com* + hotcars.com* + +moms.com* +cbr.com08@Radsninja.ca/adsninja_client.js +’(* +footballleagueworld.co.uk* +footballfancast.com* +xda-developers.com* +androidpolice.com* +hardcoregamer.com* +backyardboss.net* +dualshockers.com* +simpleflying.com* +thesportster.com* +givemesport.com* +pocket-lint.com* +screenrant.com* +therichest.com* + howtogeek.com* + makeuseof.com* + pocketnow.com* + thethings.com* + thetravel.com* + babygaga.com* + collider.com* + gamerant.com* + movieweb.com* + thegamer.com* + topspeed.com* + carbuzz.com* + hotcars.com* + +moms.com* +cbr.com08@R adsninja.ca^ +éÿï* +game.pointmall.rakuten.net* +laurelberninteriors.com* +player.performgroup.com* +pointmall.rakuten.co.jp* +goodmorningamerica.com* +minigame.aeriagames.jp* +maharashtratimes.com* +player.amperwave.net* +southparkstudios.com* +synk-casualgames.com* +video.tv-tokyo.co.jp* +gamebox.gesoten.com* +geo.dailymotion.com* +lemino.docomo.ne.jp* +worldsurfleague.com* +chicagotribune.com* +games.usatoday.com* +player.abacast.net* +player.earthtv.com* +scrippsdigital.com* +tv.finansavisen.no* +asianctv.upns.pro* +howstuffworks.com* +insideedition.com* +paramountplus.com* +success-games.net* +airtelxstream.in* +blastingnews.com* +clickorlando.com* +tv.abcnyheter.no* +tv.rakuten.co.jp* +api.screen9.com* +bloomberg.co.jp* +crunchyroll.com* +farfeshplus.com* +gameplayneo.com* +givemesport.com* +spiele.heise.de* +asianembed.cam* +goodstream.uno* +metacritic.com* +missoulian.com* +paralympic.org* +realmadrid.com* +tv-asahi.co.jp* + 247sports.com* + bloomberg.com* + cbssports.com* + gospodari.com* + ignboards.com* + nettavisen.no* + southpark.lat* + sportsbull.jp* + sportsport.ba* + watch.nba.com* + wellgames.com* + doubtnut.com* + einthusan.tv* + etonline.com* + haberler.com* + maxpreps.com* + utsports.com* + webdunia.com* + autokult.pl* + cbsnews.com* + gamepix.com* + irctc.co.in* + myspace.com* + sonyliv.com* + univtec.com* + weather.com* + +antena3.ro* + +delish.com* + +filmweb.pl* + +gbnews.com* + +iheart.com* + +rumble.com* + +truvid.com* + +tubitv.com* + +tunein.com* + +zeebiz.com* + bsfuji.tv* + digi24.ro* + distro.tv* + humix.com* + locipo.jp* + s.yimg.jp* + stirr.com* + tbs.co.jp* + thecw.com* + wowbiz.ro* + zdnet.com* + +cnet.com* + +ktla.com* + +kxan.com* + +vlive.tv* + +wbal.com* +bbc.com* +klix.ba* +plex.tv* +tdn.com* +tver.jp* +wsj.com* +cbc.ca* +rte.ie* +tvp.pl* +wtk.pl08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +[ÿï* +googleads.g.doubleclick.net08@R,googleads.g.doubleclick.net/ads/preferences/ +“ÿï* +worldsurfleague.com* +paramountplus.com* +clickorlando.com* +tv.rakuten.co.jp* +vk.sportsbull.jp* +bloomberg.co.jp* + 247sports.com* + bloomberg.com* + cbssports.com* + history.com* + +4029tv.com* + +gbnews.com* + +mynbc5.com* + +sbs.com.au* + +wbaltv.com* + +wvtm13.com* + +wxii12.com* + digi24.ro* + s.yimg.jp* + wyff4.com* + +kcci.com* + +kcra.com* + +ketv.com* + +kmbc.com* + +koat.com* + +koco.com* + +ksbw.com* + +wapt.com* + +wcvb.com* + +wdsu.com* + +wesh.com* + +wgal.com* + +wisn.com* + +wjcl.com* + +wlky.com* + +wlwt.com* + +wmtw.com* + +wmur.com* + +wpbf.com* + +wtae.com* +bet.com* +cbc.ca* +cc.com08@R.imasdk.googleapis.com/js/sdkloader/ima3_dai.js +Eÿï* + history.com08@R&pubads.g.doubleclick.net/ondemand/hls/è4 +9€08@R*imasdk.googleapis.com/js/core/bridge*.html +aÿï* + +tunein.com* + stirr.com* + +pluto.tv08@R*imasdk.googleapis.com/pal/sdkloader/pal.js +»ÿï* +embed.sportsline.com* +insideedition.com* +abcnews.go.com* +brightcove.net* + utsports.com* + cbsnews.com* +pch.com08@R0imasdk.googleapis.com/js/sdkloader/ima3_debug.js +.ÿï08@Rpubads.g.doubleclick.net/ssai/ +M* +wunderground.com08@R+pagead2.googlesyndication.com/tag/js/gpt.js +�"* +managedhealthcareexecutive.com* +chromatographyonline.com* +laurelberninteriors.com* +physicianspractice.com* +epaper.timesgroup.com* +adamtheautomator.com* +medicaleconomics.com* +games.coolgames.com* +journaldequebec.com* +formularywatch.com* +digitaltrends.com* +edy.rakuten.co.jp* +wralsportsfan.com* +blastingnews.com* +cornwalllive.com* +accuweather.com* +gearpatrol.com* +standard.co.uk* + bloomberg.com* + bestiefy.com* + devclass.com* + euronews.com* + mediaite.com* + repretel.com* + weather.com* + +filmweb.pl* + +spiegel.de* + nycgo.com* + +hoyme.jp* + +telsu.fi* + +theta.tv* +kino.de* +olx.pl08@Rg.doubleclick.net/tag/js/gpt.js +Èÿï* +epaper.timesgroup.com* +nationalreview.com* +nationalworld.com* +farfeshplus.com* +tv-asahi.co.jp* + chelseafc.com* + nbcsports.com* + windalert.com* + kowb1290.com* + scotsman.com* + k2radio.com* + chegg.com* + vimeo.com* + +koel.com* + +uefa.com* + +vlive.tv* + +voici.fr08@R#googletagservices.com/tag/js/gpt.js +©ÿï* +managedhealthcareexecutive.com* +chromatographyonline.com* +physicianspractice.com* +epaper.timesgroup.com* +medicaleconomics.com* +games.coolgames.com* +formularywatch.com* +game.anymanager.io* +nationalreview.com* +digitaltrends.com* +edy.rakuten.co.jp* +nationalworld.com* +blastingnews.com* +cornwalllive.com* +downdetector.com* +accuweather.com* + bloomberg.com* + chelseafc.com* + nbcsports.com* + mediaite.com* + scotsman.com* + weather.com* + nycgo.com* + +telsu.fi* + +voici.fr08@R"g.doubleclick.net/gpt/pubads_impl_ +˜* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +adamtheautomator.com* +canadianoutages.com* +downdetector.com.ar* +downdetector.com.br* +downdetector.web.tr* +journaldequebec.com* +yorkshirepost.co.uk* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +aussieoutages.com* +allestoringen.be* +allestoringen.nl* +downdetector.com* +downdetector.ae* +downdetector.ca* +downdetector.dk* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.hk* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.no* +downdetector.pl* +downdetector.pt* +downdetector.ru* +downdetector.se* +downdetector.sg* +downdetector.tw* + thestar.co.uk* + euronews.com* + mediaite.com* + ictnews.org* + +filmweb.pl* + +spiegel.de* + +hoyme.jp* +kino.de08@R(g.doubleclick.net/pagead/managed/js/gpt/ +cÿï* +laurelberninteriors.com08@R8g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js +�ÿï* +html5.gamedistribution.com* +thefreedictionary.com* +radioviainternet.nl* +game.anymanager.io* +battlecats-db.com* +tampermonkey.net* +allb.game-db.tw* +slideplayer.com* +knowfacts.info* +real-sports.jp* +sudokugame.org* + cpu-world.com* + megagames.com* + games.wkb.jp* + megaleech.us* + lacoste.com* + newson.us08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +š* +game.anymanager.io* +battlecats-db.com* +sudokugame.org* + games.wkb.jp08@R?pagead2.googlesyndication.com/pagead/managed/js/*/show_ads_impl +€* +game.anymanager.io* +sudokugame.org08@RJpagead2.googlesyndication.com/pagead/managed/js/adsense/*/slotcar_library_ +g* +wunderground.com08@REpagead2.googlesyndication.com/pagead/managed/js/gpt/*/pubads_impl.js? +…ÿï* +independent.co.uk* + bloomberg.com* + repretel.com* + weather.com* + +telsu.fi08@R$g.doubleclick.net/pagead/ppub_config +Lÿï* +factory.pixiv.net* + aussiebum.com08@Rads-twitter.com/uwt.js +)* + achaloto.com08@R /banner/ad/ +Lÿï08@Rÿï* + worldstar.com08@Rjs.assemblyexchange.com/wana. +@ÿï08@R0kabumap.com/servlets/kabumap/html/common/img/ad/ +8ÿï08@R(kanalfrederikshavn.dk^*/jquery.openx.js? +)08@Rkincho.co.jp/cm/img/bnr_ad_ +8* +str.toyokeizai.net08@Rladsp.com/script-sf/ +4ÿï08@R$live.lequipe.fr/thirdparty/prebid.js +Vÿï* +videos.john-livingston.fr08@R)lostpod.space/static/streaming-playlists/ +( 08@Rmail.bg/mail/index/getads/ +6ÿï08@Rµapp.bytedance.com/docs/page-data/ +1ÿï08@R!minigame.aeriagames.jp/*/ae-tpgs- +6ÿï08@R&minigame.aeriagames.jp/css/videoad.css +,08@Rminyu-net.com/parts/ad/banner/ +Cÿï08@R3mistore.jp/content/dam/isetan_mitsukoshi/advertise/ +*08@Rmjhobbymassan.se/r/annonser/ +4ÿï08@R$musictrack.jp/a/ad/banner_member.jpg +,ÿï08@Rmysmth.net/nForum/*/ADAgent_ +&08@Rnetmile.co.jp/ad/images/ +)ÿï08@Rnintendo.co.jp/ring/*/adv ++ÿï08@Rnizista.com/api/v1/adbanner +4ÿï08@R$oishi-kenko.com/kenko/assets/v2/ads/ +8ÿï08@R(point.rakuten.co.jp/img/crossuse/top_ad/ +"08@Rpolitiken.dk/static/ +3ÿï08@R#popin.cc/popin_discovery/recommend? +Aÿï08@R1przegladpiaseczynski.pl/wp-content/plugins/wppas/ +Wÿï* +travel.rakuten.co.jp08@R/r10s.jp/share/themes/ds/js/show_ads_randomly.js +Jÿï08@R:rakudaclub.com/img.php?url=https://img.rakudaclub.com/adv/ +1ÿï08@R!rakuten-bank.co.jp/rb/ams/img/ad/ +Uÿï* + yahoo.co.jp08@R6s.yimg.jp/images/listing/tool/yads/yads-timeline-ex.js +Fÿï* +yuukinohana.co.jp08@R!s0.2mdn.net/ads/studio/Enabler.js +8ÿï08@R(sanyonews.jp/files/image/ad/okachoku.jpg +c * +imasdk.googleapis.com08@Rÿï* + spankbang.com08@Rspankbang.com^*/prebid-ads.js +08@R megaxh.com^ +08@R xhaccess.com^ +08@R xhamster.com^ +08@Rxhamster.desi^ +08@Rxhamster1.desi^ +08@Rxhamster3.com^ +08@R +xhbig.com^ +08@Rxhbranch5.com^ +08@Rxhchannel.com^ +08@R xhmoon5.com^ +08@Rxhofficial.com^ +08@R xhspot.com^ +08@R xhtotal.com^ +08@R +xhvid.com^ +08@R xhwide2.com^ +08@R xhwide5.com^ +08@R ://xhamster.5 + 77kpo.com$a[href*="https://nbk.lm336.com/ack"]G + 77kpo.com6div[data-href*="https://sktt.itchaxun.cn:8080/bbk/sc"] + 77kpo.comiframe[srcdoc]6 +mini.eastday.comiframe[src*="pos.baidu.com/s"]9 +toutiao.eastday.comiframe[src*="pos.baidu.com/s"]3 +jingcaiyuedu6.coma[href*="www.tvbxcg6.com"]5 +jingcaiyuedu6.comdiv[href*="www.tvbxcg6.com"]8 +jingcaiyuedu6.comiframe[href*="www.tvbxcg6.com"]2 +jingcaiyuedu6.comimg[src*="sil.go2yd.com"]! + shuquge.comdiv[id="strl"]7 + xw.qq.com&div[data-boss-expo*="ad&modular=feed"]‹ +?ÿï08@R/redditstatic.com/*/shreddit-dynamic-ad-link*.js) + theverge.comdiv[class="OUTBRAIN"] + +forbes.com $elemhide \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-AA b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-AA new file mode 100644 index 0000000..ef342d0 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-AA @@ -0,0 +1,120295 @@ +ˇ +›^ÿï*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net* +nutsandboltsspeedtraining.com* +environmental-conscience.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +latimescrosswordanswers.com* +perfect-english-grammar.com* +softwaretestingmaterial.com* +communitycollegereview.com* +onlinepersonalitytests.org* +datasciencemadesimple.com* +democraticunderground.com* +emprendiendohistorias.com* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +refrigeratorsreviewed.com* +saltwateraquariumblog.com* +scholarship-positions.com* +theproductiveengineer.net* +boardingschoolreview.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +topwoodworkingadvice.com* +7littlewordsanswers.com* +countertopspecialty.com* +detroitsportsnation.com* +houstoncasemanagers.com* +my-package-tracking.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +privateschoolreview.com* +qualitydogresources.com* +silverlininglessons.com* +spelling-words-well.com* +americansongwriter.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +classicrockhistory.com* +commercialdriverhq.com* +dontwasteyourmoney.com* +everythingreptiles.com* +france-hotel-guide.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +nonphoneworkathome.com* +publicschoolreview.com* +recyclingcenternear.me* +rentalhousingdeals.com* +streetsmartkitchen.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +verifyemailaddress.org* +williamsonhomepage.com* +yummyindiankitchen.com* +aconsciousrethink.com* +aginghealthytoday.com* +birthdaywishes.expert* +californiabeaches.com* +celebdirtylaundry.com* +centraldesermones.com* +coloringpagesonly.com* +dailykillersudoku.com* +franchisesports.co.uk* +futbolenvivochile.com* +historycollection.com* +housingapartments.org* +legalinsurrection.com* +legalinsurrection.com* +motivationandlove.com* +notesfromtheporch.com* +paraphrasing-tool.com* +populareverything.com* +realclearpolitics.com* +realclearpolitics.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +aboutchromebooks.com* +apartmenttherapy.com* +apartmenttherapy.com* +askanydifference.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.net* +codycrossanswers.org* +divinedaolibrary.com* +experthomereport.com* +fanstranslations.com* +fishkeepingworld.com* +gardenloversclub.com* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +imagecolorpicker.com* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +klinikbewertungen.de* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +muscleandfitness.com* +nutrition-charts.com* +oneminuteenglish.org* +oursportscentral.com* +pedigreedatabase.com* +perfectdogbreeds.com* +projectpractical.com* +realcleardefense.com* +realclearscience.com* +removeandreplace.com* +shtfpreparedness.com* +simplypsychology.org* +singletrackworld.com* +tarotalmabarrios.com* +thehockeywriters.com* +thehockeywriters.com* +whats-on-netflix.com* +windows101tricks.com* +wordcrazeanswers.com* +armstrongmywire.com* +camping-experten.de* +crosswordsolver.org* +dataoverhaulers.com* +esportsearnings.com* +famousbirthdays.com* +goodcalculators.com* +goodnewsnetwork.org* +gradecalculator.com* +grandtournation.com* +hacktheminotaur.com* +hometownlocator.com* +itsolutionstuff.com* +lifeandstylemag.com* +mobileinternist.com* +mybendbroadband.com* +myenglishteacher.eu* +npinumberlookup.org* +phonedealstoday.com* +r-graph-gallery.com* +realclearpolicy.com* +soapoperadigest.com* +sportcoaching.co.nz* +sweepsadvantage.com* +totalmotorcycle.com* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +voetbalnederland.nl* +wordscapescheat.com* +wordstodescribe.com* +wordunscrambler.com* +accountinguide.com* +altcodeunicode.com* +badgerandblade.com* +barstoolsports.com* +boiteachansons.net* +carserviceland.com* +childcarecenter.us* +cincinnatibell.net* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +crispyfoodidea.com* +cyclonefanatic.com* +decorhomeideas.com* +diyphotography.net* +diyphotography.net* +exploreclarion.com* +favoredleather.com* +fedsdatacenter.com* +greekmythology.com* +happyvagabonds.com* +havredailynews.com* +lettersformats.com* +listenonrepeat.com* +marrieddivorce.com* +miracomosehace.com* +news5cleveland.com* +nurseteachings.com* +pdfwordconvert.com* +ratemyfishtank.com* +realmenuprices.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +sportfishingbc.com* +sunrise-sunset.org* +taxifarefinder.com* +teamcolorcodes.com* +theblackfriday.com* +theilluminerdi.com* +toocool2betrue.com* +truthorfiction.com* +untappedcities.com* +victoriamgclub.com* +westernjournal.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +xda-developers.com* +yourdailyglobe.com* +10fastfingers.com* +abcactionnews.com* +androidpolice.com* +askthebuilder.com* +broadwayworld.com* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +costcoinsider.com* +crosswordbuzz.com* +dodgersnation.com* +dreamglossary.com* +findnicknames.com* +foodtalkdaily.com* +frugalhotspot.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeguideguru.com* +howstuffworks.com* +ilovedogscute.com* +inmate-lookup.org* +itexamanswers.net* +lainformacion.com* +lifewithjanet.com* +mediacomtoday.com* +minecraftlist.org* +online-python.com* +parkingaccess.com* +pastemagazine.com* +powerlineblog.com* +raspberrytips.com* +scrabblecheat.com* +searchandnews.com* +somosmamas.com.ar* +steelernation.com* +steelernation.com* +swingcompleto.com* +tckpublishing.com* +thecabindiary.com* +thedailybeast.com* +thedisinsider.com* +thelawnreview.com* +thepythoncode.com* +timesofisrael.com* +tiremeetsroad.com* +verseoftheday.com* +acessaber.com.br* +appunwrapper.com* +beatlesbible.com* +bleedingcool.com* +breatheheavy.com* +cakedecorist.com* +celebritydig.com* +closerweekly.com* +dailycrochet.com* +diydoctor.org.uk* +electrical4u.net* +fantasynerds.com* +feelingvegas.com* +freejobalert.com* +funsubstance.com* +gadgetstouse.com* +generatormix.com* +keepinspiring.me* +labex-cortex.com* +livecharts.co.uk* +livetheglory.com* +matchendirect.fr* +michaelsaves.com* +myotakuworld.com* +natlawreview.com* +newschannel5.com* +practicequiz.com* +programcreek.com* +programmingr.com* +researchgate.net* +roadtrailrun.com* +scitechdaily.com* +singlemothers.us* +tabletopjoab.com* +text-compare.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +upstyledaily.com* +walkthroughs.net* +walletgenius.com* +whatispiping.com* +wikibioworth.com* +abovethelaw.com* +abovethelaw.com* +alexusrenee.com* +analyzemath.com* +apnatoronto.com* +askamanager.org* +ballotpedia.org* +blackfriday.com* +bostonglobe.com* +centurylink.net* +chemicalaid.com* +cubsinsider.com* +dailycaller.com* +dailymail.co.uk* +decortweaks.com* +dontpayfull.com* +fantasypros.com* +fifarosters.com* +flgardening.com* +fox17online.com* +georgetakei.com* +govsalaries.com* +hawaiiantel.net* +hotexamples.com* +ignisnatura.org* +justjaredjr.com* +kylonpowell.com* +logosbynick.com* +madbackyard.com* +materialsix.com* +mots-croises.ch* +myswissalps.com* +netflixlife.com* +nilsenreport.ca* +parentsdome.com* +parlerdamour.fr* +pistonheads.com* +primerahora.com* +racetothewh.com* +remodelista.com* +retailmenot.com* +scamadviser.com* +shuttlefare.com* +smartandroid.fr* +studybreaks.com* +tasteofhome.com* +techweekmag.com* +thingiverse.com* +timeanddate.com* +villagenews.com* +yardblogger.com* +activebeat.com* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +campergrid.com* +cartermatt.com* +comingsoon.net* +comingsoon.net* +cookitonce.com* +cultaholic.com* +dailyactor.com* +dazepuzzle.com* +delftstack.com* +discuss.com.hk* +drivingtest.ca* +eliteguias.com* +elnuevodia.com* +gardenista.com* +grammarhow.com* +howtoforge.com* +icebreakers.ws* +infos-geek.com* +iplocation.net* +jaynestars.com* +lawinsider.com* +linuxtechi.com* +live-tennis.eu* +livefutbol.com* +liverampup.com* +mjsbigblog.com* +motorverso.com* +movieplayer.it* +msfsaddons.com* +multiplayer.it* +nichegamer.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +phonesdata.com* +phrases.org.uk* +portal.tds.net* +rccgonline.org* +reve-islam.com* +roofonline.com* +scamcharge.com* +simplemost.com* +suddenlink.net* +tarotforum.net* +thewebdev.info* +triviawell.com* +videocardz.com* +weather-us.com* +wheelssize.com* +windstream.net* +wuxiaworld.com* +yardbarker.com* + ac-illust.com* + allhiphop.com* + altafiber.net* + archisoup.com* + areavibes.com* + asacannes.com* + autohebdo.net* + autotrader.ca* + barnfinds.com* + basketnews.lt* + biznewske.com* + bobcutmag.com* + chipandco.com* + colorcodes.io* + cultofmac.com* + dantri.com.vn* + dissapore.com* + elderguru.com* + escapefan.com* + fangraphs.com* + fox47news.com* + games4esl.com* + gm-trucks.com* + guiasteam.com* + hughesnet.com* + ineskohl.info* + ipaddress.com* + it-connect.fr* + kifarunix.com* + lapatilla.com* + makeuseof.com* + mamapedia.com* + metalwani.com* + osrsguide.com* + rodeosusa.com* + romapress.net* + softgenius.co* + technorms.com* + textfixer.com* + thepricer.org* + tvinsider.com* + wmar2news.com* + 20minutos.es* + 3newsnow.com* + akinator.com* + allclash.com* + allsides.com* + autogidas.lt* + cargurus.com* + cheapism.com* + collider.com* + domoplius.lt* + dotabuff.com* + excelhow.net* + fansided.com* + fedsmith.com* + fox13now.com* + freecads.com* + gamerant.com* + h1bdata.info* + hockeydb.com* + hometalk.com* + hometips.com* + huffpost.com* + learncpp.com* + linuxize.com* + lucianne.com* + luciding.com* + maariv.co.il* + malagahoy.es* + manuals.plus* + mapquest.com* + mygrande.com* + ndnation.com* + newsweek.com* + notinerd.com* + pathofex.com* + photo-ac.com* + plantuml.com* + pngtosvg.com* + price.com.hk* + quizerry.com* + sicem365.com* + stattrek.com* + supermama.lt* + thegamer.com* + tigernet.com* + tulamama.com* + turnto23.com* + 15track.com* + answers.com* + cargurus.ca* + complex.com* + courttv.com* + dogtime.com* + fortune.com* + fox4now.com* + gigafile.nu* + grabien.com* + idrlabs.com* + knifeup.com* + mamanly.com* + neopets.com* + nerdbot.com* + pagesix.com* + play2048.co* + siccode.com* + +10news.com* + +defkey.com* + +draugas.lt* + +fame10.com* + +foot01.com* + +forkly.com* + +itnwwe.com* + +kristv.com* + +larazon.es* + +lespac.com* + +momdot.com* + +nasdaq.com* + +nation.com* + +offers.com* + +rpgbot.net* + +rqeeqa.com* + +texags.com* + +uproxx.com* + +uwants.com* + +waaytv.com* + +wowway.net* + +youpdf.com* + +zwivel.com* + 35mmc.com* + 6sqft.com* + abc15.com* + egriz.com* + ieskok.lt* + jpost.com* + jpost.com* + kgun9.com* + kitco.com* + lex18.com* + lonny.com* + mapio.net* + marsja.se* + names.org* + planet.fr* + uscho.com* + usssa.com* + vitux.com* + wow4u.com* + +check.in* + +delfi.ee* + +exrx.net* + +ifly.com* + +inbox.lt* + +katc.com* + +kbzk.com* + +kjrh.com* + +koaa.com* + +kpax.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ktnv.com* + +ktvq.com* + +kxxv.com* + +millo.co* + +sbxl.com* + +time.com* + +tmj4.com* + +wcpo.com* + +wkbw.com* + +wptv.com* + +wrtv.com* + +wtkr.com* + +wtvr.com* + +wtxl.com* + +wxyz.com* +alfa.lt* +alio.lt* +cbr.com* +ginx.tv* +novi.ba* +pink.rs* +rare.us* +zoo.com* +sny.tv* +xgn.nl* +bb.lv* +ve.lt08@R$c.amazon-adsystem.com/aax2/apstag.js +÷]ÿï*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net* +nutsandboltsspeedtraining.com* +environmental-conscience.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +latimescrosswordanswers.com* +perfect-english-grammar.com* +softwaretestingmaterial.com* +communitycollegereview.com* +onlinepersonalitytests.org* +datasciencemadesimple.com* +democraticunderground.com* +emprendiendohistorias.com* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +refrigeratorsreviewed.com* +saltwateraquariumblog.com* +scholarship-positions.com* +theproductiveengineer.net* +boardingschoolreview.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +topwoodworkingadvice.com* +7littlewordsanswers.com* +countertopspecialty.com* +detroitsportsnation.com* +houstoncasemanagers.com* +my-package-tracking.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +privateschoolreview.com* +qualitydogresources.com* +silverlininglessons.com* +spelling-words-well.com* +americansongwriter.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +classicrockhistory.com* +commercialdriverhq.com* +dontwasteyourmoney.com* +everythingreptiles.com* +france-hotel-guide.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +nonphoneworkathome.com* +publicschoolreview.com* +recyclingcenternear.me* +rentalhousingdeals.com* +streetsmartkitchen.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +verifyemailaddress.org* +williamsonhomepage.com* +yummyindiankitchen.com* +aconsciousrethink.com* +aginghealthytoday.com* +birthdaywishes.expert* +californiabeaches.com* +celebdirtylaundry.com* +centraldesermones.com* +coloringpagesonly.com* +dailykillersudoku.com* +franchisesports.co.uk* +futbolenvivochile.com* +historycollection.com* +housingapartments.org* +legalinsurrection.com* +legalinsurrection.com* +motivationandlove.com* +notesfromtheporch.com* +paraphrasing-tool.com* +populareverything.com* +realclearpolitics.com* +realclearpolitics.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +aboutchromebooks.com* +apartmenttherapy.com* +apartmenttherapy.com* +askanydifference.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.net* +codycrossanswers.org* +divinedaolibrary.com* +experthomereport.com* +fanstranslations.com* +fishkeepingworld.com* +gardenloversclub.com* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +imagecolorpicker.com* +insidepacksports.com* +irishsportsdaily.com* +klinikbewertungen.de* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +muscleandfitness.com* +nutrition-charts.com* +oneminuteenglish.org* +oursportscentral.com* +pedigreedatabase.com* +perfectdogbreeds.com* +projectpractical.com* +realcleardefense.com* +realclearscience.com* +removeandreplace.com* +shtfpreparedness.com* +simplypsychology.org* +singletrackworld.com* +tarotalmabarrios.com* +thehockeywriters.com* +thehockeywriters.com* +whats-on-netflix.com* +windows101tricks.com* +wordcrazeanswers.com* +armstrongmywire.com* +camping-experten.de* +crosswordsolver.org* +dataoverhaulers.com* +esportsearnings.com* +famousbirthdays.com* +goodcalculators.com* +goodnewsnetwork.org* +gradecalculator.com* +grandtournation.com* +hacktheminotaur.com* +hometownlocator.com* +itsolutionstuff.com* +lifeandstylemag.com* +mobileinternist.com* +mybendbroadband.com* +myenglishteacher.eu* +npinumberlookup.org* +phonedealstoday.com* +r-graph-gallery.com* +realclearpolicy.com* +soapoperadigest.com* +sportcoaching.co.nz* +sweepsadvantage.com* +totalmotorcycle.com* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +voetbalnederland.nl* +wordscapescheat.com* +wordstodescribe.com* +wordunscrambler.com* +accountinguide.com* +altcodeunicode.com* +badgerandblade.com* +barstoolsports.com* +boiteachansons.net* +carserviceland.com* +childcarecenter.us* +cincinnatibell.net* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +crispyfoodidea.com* +cyclonefanatic.com* +decorhomeideas.com* +diyphotography.net* +diyphotography.net* +exploreclarion.com* +favoredleather.com* +fedsdatacenter.com* +greekmythology.com* +happyvagabonds.com* +havredailynews.com* +lettersformats.com* +listenonrepeat.com* +marrieddivorce.com* +miracomosehace.com* +news5cleveland.com* +nurseteachings.com* +pdfwordconvert.com* +ratemyfishtank.com* +realmenuprices.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +sportfishingbc.com* +sunrise-sunset.org* +taxifarefinder.com* +teamcolorcodes.com* +theblackfriday.com* +theilluminerdi.com* +toocool2betrue.com* +truthorfiction.com* +untappedcities.com* +victoriamgclub.com* +westernjournal.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +xda-developers.com* +yourdailyglobe.com* +10fastfingers.com* +abcactionnews.com* +androidpolice.com* +askthebuilder.com* +broadwayworld.com* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +costcoinsider.com* +crosswordbuzz.com* +dodgersnation.com* +dreamglossary.com* +findnicknames.com* +foodtalkdaily.com* +frugalhotspot.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeguideguru.com* +howstuffworks.com* +ilovedogscute.com* +inmate-lookup.org* +itexamanswers.net* +lainformacion.com* +lifewithjanet.com* +mediacomtoday.com* +minecraftlist.org* +online-python.com* +parkingaccess.com* +pastemagazine.com* +powerlineblog.com* +raspberrytips.com* +scrabblecheat.com* +searchandnews.com* +somosmamas.com.ar* +steelernation.com* +steelernation.com* +swingcompleto.com* +tckpublishing.com* +thecabindiary.com* +thedailybeast.com* +thedisinsider.com* +thelawnreview.com* +thepythoncode.com* +timesofisrael.com* +tiremeetsroad.com* +verseoftheday.com* +acessaber.com.br* +appunwrapper.com* +beatlesbible.com* +bleedingcool.com* +breatheheavy.com* +cakedecorist.com* +celebritydig.com* +closerweekly.com* +dailycrochet.com* +diydoctor.org.uk* +electrical4u.net* +fantasynerds.com* +feelingvegas.com* +freejobalert.com* +funsubstance.com* +gadgetstouse.com* +generatormix.com* +keepinspiring.me* +labex-cortex.com* +livecharts.co.uk* +livetheglory.com* +matchendirect.fr* +michaelsaves.com* +myotakuworld.com* +natlawreview.com* +newschannel5.com* +practicequiz.com* +programcreek.com* +programmingr.com* +researchgate.net* +roadtrailrun.com* +scitechdaily.com* +singlemothers.us* +tabletopjoab.com* +text-compare.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +upstyledaily.com* +walkthroughs.net* +walletgenius.com* +whatispiping.com* +wikibioworth.com* +abovethelaw.com* +abovethelaw.com* +alexusrenee.com* +analyzemath.com* +apnatoronto.com* +askamanager.org* +ballotpedia.org* +blackfriday.com* +bostonglobe.com* +centurylink.net* +chemicalaid.com* +cubsinsider.com* +dailycaller.com* +dailymail.co.uk* +decortweaks.com* +dontpayfull.com* +fantasypros.com* +fifarosters.com* +flgardening.com* +fox17online.com* +georgetakei.com* +govsalaries.com* +hawaiiantel.net* +hotexamples.com* +ignisnatura.org* +justjaredjr.com* +kylonpowell.com* +logosbynick.com* +madbackyard.com* +materialsix.com* +mots-croises.ch* +myswissalps.com* +netflixlife.com* +nilsenreport.ca* +parentsdome.com* +parlerdamour.fr* +pistonheads.com* +primerahora.com* +racetothewh.com* +remodelista.com* +retailmenot.com* +scamadviser.com* +shuttlefare.com* +smartandroid.fr* +studybreaks.com* +tasteofhome.com* +techweekmag.com* +thingiverse.com* +timeanddate.com* +villagenews.com* +yardblogger.com* +activebeat.com* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +campergrid.com* +cartermatt.com* +comingsoon.net* +comingsoon.net* +cookitonce.com* +cultaholic.com* +dailyactor.com* +dazepuzzle.com* +delftstack.com* +discuss.com.hk* +drivingtest.ca* +eliteguias.com* +elnuevodia.com* +gardenista.com* +grammarhow.com* +howtoforge.com* +icebreakers.ws* +infos-geek.com* +iplocation.net* +jaynestars.com* +lawinsider.com* +linuxtechi.com* +live-tennis.eu* +livefutbol.com* +liverampup.com* +mjsbigblog.com* +motorverso.com* +movieplayer.it* +msfsaddons.com* +multiplayer.it* +nichegamer.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +phonesdata.com* +phrases.org.uk* +portal.tds.net* +rccgonline.org* +reve-islam.com* +roofonline.com* +scamcharge.com* +simplemost.com* +suddenlink.net* +tarotforum.net* +thewebdev.info* +triviawell.com* +videocardz.com* +weather-us.com* +wheelssize.com* +windstream.net* +wuxiaworld.com* +yardbarker.com* + ac-illust.com* + allhiphop.com* + altafiber.net* + archisoup.com* + areavibes.com* + asacannes.com* + autohebdo.net* + autotrader.ca* + barnfinds.com* + basketnews.lt* + biznewske.com* + bobcutmag.com* + chipandco.com* + colorcodes.io* + cultofmac.com* + dantri.com.vn* + dissapore.com* + elderguru.com* + escapefan.com* + fangraphs.com* + fox47news.com* + games4esl.com* + gm-trucks.com* + guiasteam.com* + hughesnet.com* + ineskohl.info* + ipaddress.com* + it-connect.fr* + kifarunix.com* + lapatilla.com* + makeuseof.com* + mamapedia.com* + metalwani.com* + osrsguide.com* + rodeosusa.com* + romapress.net* + softgenius.co* + technorms.com* + textfixer.com* + thepricer.org* + tvinsider.com* + wmar2news.com* + 20minutos.es* + 3newsnow.com* + akinator.com* + allclash.com* + allsides.com* + autogidas.lt* + cargurus.com* + cheapism.com* + collider.com* + domoplius.lt* + dotabuff.com* + excelhow.net* + fansided.com* + fedsmith.com* + fox13now.com* + freecads.com* + gamerant.com* + h1bdata.info* + hockeydb.com* + hometalk.com* + hometips.com* + huffpost.com* + learncpp.com* + linuxize.com* + lucianne.com* + luciding.com* + maariv.co.il* + malagahoy.es* + manuals.plus* + mapquest.com* + mygrande.com* + ndnation.com* + newsweek.com* + notinerd.com* + pathofex.com* + photo-ac.com* + plantuml.com* + pngtosvg.com* + price.com.hk* + quizerry.com* + sicem365.com* + stattrek.com* + supermama.lt* + thegamer.com* + tigernet.com* + tulamama.com* + turnto23.com* + 15track.com* + answers.com* + cargurus.ca* + complex.com* + courttv.com* + dogtime.com* + fortune.com* + fox4now.com* + gigafile.nu* + grabien.com* + idrlabs.com* + knifeup.com* + mamanly.com* + neopets.com* + nerdbot.com* + pagesix.com* + play2048.co* + siccode.com* + +10news.com* + +defkey.com* + +draugas.lt* + +fame10.com* + +foot01.com* + +forkly.com* + +itnwwe.com* + +kristv.com* + +larazon.es* + +lespac.com* + +momdot.com* + +nasdaq.com* + +nation.com* + +nypost.com* + +rpgbot.net* + +rqeeqa.com* + +texags.com* + +uproxx.com* + +uwants.com* + +waaytv.com* + +wowway.net* + +youpdf.com* + +zwivel.com* + 35mmc.com* + 6sqft.com* + abc15.com* + egriz.com* + ieskok.lt* + jpost.com* + kgun9.com* + kitco.com* + lex18.com* + lonny.com* + mapio.net* + marsja.se* + names.org* + planet.fr* + uscho.com* + usssa.com* + vitux.com* + wow4u.com* + +check.in* + +delfi.ee* + +exrx.net* + +ifly.com* + +inbox.lt* + +katc.com* + +kbzk.com* + +kjrh.com* + +koaa.com* + +kpax.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ktnv.com* + +ktvq.com* + +kxxv.com* + +millo.co* + +sbxl.com* + +time.com* + +tmj4.com* + +wcpo.com* + +wkbw.com* + +wptv.com* + +wrtv.com* + +wtkr.com* + +wtvr.com* + +wtxl.com* + +wxyz.com* +alfa.lt* +alio.lt* +cbr.com* +ginx.tv* +novi.ba* +pink.rs* +rare.us* +zoo.com* +sny.tv* +xgn.nl* +bb.lv* +ve.lt08@R%c.amazon-adsystem.com/cdn/prod/config +>€ * +curseforge.com08@Rabr.lngtd.com/display.html^ +j"* +softoniclabs.com* + filehippo.com* + softonic.com* + +ghacks.net08@Rthunderdom-v1.sftapi.com^ +»ÿï* +lelogicielgratuit.com* +windowsreport.com* +softoniclabs.com* +toucharger.com* + filehippo.com* + softonic.com* + +ghacks.net08@R(thunderdom-v1.sftapi.com/px.gif?ch=1&rn= +»ÿï* +lelogicielgratuit.com* +windowsreport.com* +softoniclabs.com* +toucharger.com* + filehippo.com* + softonic.com* + +ghacks.net08@R(thunderdom-v1.sftapi.com/px.gif?ch=2&rn= +qÿï* +coolrom.com.au* +cowcotland.com* + gamestry.com08@R-spn-v1.revampcdn.com/publishers/*.js?modern=1 +f"* +softoniclabs.com* + filehippo.com* + softonic.com* + +ghacks.net08@Rspn-v1.revampcdn.com^ +·ÿï* +lelogicielgratuit.com* +windowsreport.com* +softoniclabs.com* +toucharger.com* + filehippo.com* + softonic.com* + +ghacks.net08@R$spn-v1.revampcdn.com/px.gif?ch=1&rn= +·ÿï* +lelogicielgratuit.com* +windowsreport.com* +softoniclabs.com* +toucharger.com* + filehippo.com* + softonic.com* + +ghacks.net08@R$spn-v1.revampcdn.com/px.gif?ch=2&rn= +|* +footballleagueworld.co.uk* +footballfancast.com08@R:cdn-header-bidding.snack-media.com/assets/js/snack-loader/ +‹ÿï* +realclearpolitics.com* +powerlineblog.com* +ballotpedia.org* + allsides.com* + lucianne.com08@Ra.publir.com/platform/*.js +Bÿï* + sharemods.com08@R!cloud.setupad.com/hb/sharemods.js +=ÿï* + ezgif.com08@R cloud.setupad.com/hb/ezgifcom.js +Eÿï* + cplusplus.com08@R$cloud.setupad.com/hb/cpluspluscom.js +cÿï* +michigan-sportsman.com* +homesteadingtoday.com* +biggeekdad.com08@Rdeployads.com^ +E* +ultimate-guitar.com* + musescore.com08@R/adsbygoogle.js +:* + billboard.com08@Rlib.pgmcdn.com/dark-matter- +>* +hollywoodreporter.com08@Rlib.pgmcdn.com/clarity- +Dÿï* +notalwaysright.com08@Rglobal.proper.io/payloads/*.js +8ÿï* + mapquest.com08@Rcloudfront.net/script.js +ÿï* +theblackfriday.com* +blackfriday.com* +retailmenot.com* + mashable.com* + pcmag.com08@Rcdn.ziffstatic.com/pg^ +Y* +searchenginejournal.com08@R0^wp-content/plugins/*/observer-lazy-load-ads.js^ +®"* +searchenginejournal.com* +hollywoodreporter.com* +magazinedelledonne.it* +dvdsreleasedates.com* +thestudentroom.co.uk* +footballfancast.com* +ultimate-guitar.com* +washingtontimes.com* +www.motorsport.com* +pleated-jeans.com* +convertunits.com* +kleinanzeigen.de* +seattletimes.com* +allthetests.com* +biggeekdad.com* +boredpanda.com* +dotesports.com* +majorgeeks.com* +omnifurgone.it* +spikeybits.com* +twinfinite.net* + 247wallst.com* + Insideevs.com* + billboard.com* + inquisitr.com* + mediafire.com* + musescore.com* + sammobile.com* + sharemods.com* + speedtest.net* + gamepress.gg* + mashable.com* + resetera.com* + allkpop.com* + gamepur.com* + titantv.com* + +Motor1.com* + +legacy.com* + ezgif.com* + +index.hr* +blic.rs* +ccm.net08@R%pagead2.googlesyndication.com/pagead/ +±ÿï* +searchenginejournal.com* +hollywoodreporter.com* +magazinedelledonne.it* +dvdsreleasedates.com* +thestudentroom.co.uk* +footballfancast.com* +ultimate-guitar.com* +washingtontimes.com* +www.motorsport.com* +pleated-jeans.com* +convertunits.com* +kleinanzeigen.de* +seattletimes.com* +allthetests.com* +biggeekdad.com* +boredpanda.com* +dotesports.com* +majorgeeks.com* +omnifurgone.it* +spikeybits.com* +twinfinite.net* + 247wallst.com* + Insideevs.com* + billboard.com* + inquisitr.com* + mediafire.com* + musescore.com* + sammobile.com* + sharemods.com* + speedtest.net* + gamepress.gg* + mashable.com* + resetera.com* + allkpop.com* + gamepur.com* + titantv.com* + +Motor1.com* + +legacy.com* + ezgif.com* + +index.hr* +blic.rs* +ccm.net08@R&adservice.google.*/adsid/integrator.js +É€ * +searchenginejournal.com* +hollywoodreporter.com* +magazinedelledonne.it* +dvdsreleasedates.com* +thestudentroom.co.uk* +footballfancast.com* +ultimate-guitar.com* +washingtontimes.com* +www.motorsport.com* +pleated-jeans.com* +convertunits.com* +kleinanzeigen.de* +seattletimes.com* +allthetests.com* +biggeekdad.com* +boredpanda.com* +dotesports.com* +majorgeeks.com* +omnifurgone.it* +spikeybits.com* +twinfinite.net* + 247wallst.com* + Insideevs.com* + billboard.com* + inquisitr.com* + mediafire.com* + musescore.com* + sammobile.com* + sharemods.com* + speedtest.net* + gamepress.gg* + mashable.com* + resetera.com* + allkpop.com* + gamepur.com* + titantv.com* + +Motor1.com* + +legacy.com* + ezgif.com* + +index.hr* +blic.rs* +ccm.net08@R=g.doubleclick.net/pagead/ads^*client=ca-pub-8655001720710332^ +] * +ultimate-guitar.com* + billboard.com08@R'pagead2.googlesyndication.com/getconfig +V* +ultimate-guitar.com* + billboard.com08@R tpc.googlesyndication.com/sodar^ +F* +kleinanzeigen.de08@R$ebay-kleinanzeigen.de^*/advertising. +o* + billboard.com08@RPdarkmatter.billboard.com/wp-content/uploads/ad-tech/dark-matter-billboard-com.js +Eÿï* + speedtest.net08@R$speedtest.net/javascript/adscript.js +@* + speedtest.net08@R!speedtest.net/javascript/adsjs.js +?* + speedtest.net08@R b.cdnst.net/javascript/ads/ad.js +ä* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +allestoringen.be* +allestoringen.nl* +downdetector.com* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk08@R+cdn2.downdetector.com^*/javascript/adsjs.js +r* +lelogicielgratuit.com* +windowsreport.com* +toucharger.com08@R$thunderdom-v1.sftapi.com/publishers^ +~* +lelogicielgratuit.com* +windowsreport.com* +toucharger.com* + softonic.com08@R spn-v1.revampcdn.com/publishers^ +* +navbharattimes.indiatimes.com* +economictimes.indiatimes.com* +timesofindia.indiatimes.com08@R/javascript/ad.js +Pÿï* +washingtontimes.com08@R)twt-assets.washtimes.com/v4/js/ads/config +8ÿï* +menshealth.com* + +delish.com08@R/ad-api^ +2* +macworld.co.uk08@R^ads/dynamicAds.js +u* +kochenmituns.com* + cplusplus.com* + freecads.com* + lexulous.com* + ezgif.com08@Rstpd.cloud/assets/hb^ ++* + ezgif.com08@Rstpd.cloud/saas^ +1* + basketusa.com08@Rcdn.appconsent.io^ +Xÿï* +wetteronline.at* +wetteronline.ch* +wetteronline.de08@Rindexww.com/ht^ +v* +wetteronline.at* +wetteronline.ch* +wetteronline.de08@R/st.wetteronline.*/mdr/p_adplace/*/js/showAds.js +z* +wetteronline.at* +wetteronline.ch* +wetteronline.de08@R3st.wetteronline.*/mdr/p_adplace/*/js/wodasHeader.js +�* +wetteronline.at* +wetteronline.ch* +wetteronline.de08@R:st.wetteronline.*/mdr/p_adplace/*/js/wodasHeaderDfp_www.js +Oÿï* +motorsport.com* + +motor1.com08@Rconsole.adgrid.io/adgrid-build^ +Iÿï* +gala.fr08@R.tra.scds.pmdstatic.net/adblock-check/1/main.js +Eÿï* + +pcworld.pl08@R'^g1/global/a/dfp/jquery.lazyload-ad.js^ +_* +timesofisrael.com08@Rÿï* + +inbox.lt08@R"b.adbox.lv/emiter/bx_placement.js^ +:ÿï* + +inbox.lt08@Rb.adbox.lv/bxlib/js/emiter.js^ +:ÿï* + +inbox.lt08@Rb.adbox.lv/bxlib/js/loader.js^ +Z* + thehill.com08@R=/wp-content/themes/*/client/build/js/ad-loader.bundle.min.js^ +?ÿï* +infofamouspeople.com08@Rnc.pubpowerplatform.io^ +cÿï* +infofamouspeople.com* + gamestry.com08@R+imasdk.googleapis.com/js/sdkloader/ima3.js^ +•ÿï* +bestblackfriday.com* +theblackfriday.com* +blackfriday.com* +retailmenot.com08@R2securepubads.g.doubleclick.net/pagead/ppub_config^ +Xÿï* + lapatilla.com08@R7tags.newdreamglobal.com/admanager/newglobal.sdk.min.js^ +Nÿï* + lapatilla.com08@R-tags.newdreamglobal.com/admanager/prebid*.js^ +Lÿï* + lapatilla.com08@R+tags.newdreamglobal.com/admanager/cfg/*.js^ +�ÿï* +timesofindia.indiatimes.com* +researchgate.net* +bostonglobe.com* + cargurus.com08@R*ads.pubmatic.com/AdServer/js/pwt/*/pwt.js^ +£ÿï* +bostonglobe.com* +dailymail.co.uk* +villagenews.com* + huffpost.com* + newsweek.com* + pagesix.com* + kitco.com08@Rtagan.adlightning.com/*/op.js^ +Žÿï* +celebdirtylaundry.com* +realclearpolitics.com* +muscleandfitness.com* +whats-on-netflix.com* +soapoperadigest.com* +barstoolsports.com* +bostonglobe.com* +dailymail.co.uk* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +villagenews.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + huffpost.com* + newsweek.com* + pagesix.com* + +nypost.com* + +uproxx.com* + +waaytv.com* + kitco.com* +sny.tv08@R3static-cdn.spot.im/production/ads/tags/*/ads/ads.js +Åÿï* +lifeandstylemag.com* +closerweekly.com* +closerweekly.com* +dailycaller.com* + fansided.com* + maariv.co.il* + complex.com* + jpost.com08@R'static-cdn.spot.im/production/ads/tags^ +¾ÿï* +celebdirtylaundry.com* +realclearpolitics.com* +apartmenttherapy.com* +muscleandfitness.com* +thehockeywriters.com* +whats-on-netflix.com* +soapoperadigest.com* +barstoolsports.com* +bleedingcool.com* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + +uproxx.com* + +waaytv.com* +sny.tv08@R"static-cdn.spot.im/production/*.js +‹* +celebdirtylaundry.com* +realclearpolitics.com* +muscleandfitness.com* +whats-on-netflix.com* +soapoperadigest.com* +barstoolsports.com* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + +uproxx.com* + +waaytv.com* +sny.tv08@R5static-cdn.spot.im/production/ads/tags/v*/ads/ads.css +Ûÿï* +bostonglobe.com* +dailymail.co.uk* +villagenews.com* + huffpost.com* + newsweek.com* + pagesix.com* + +nypost.com* + kitco.com08@RHpublisher-assets.spot.im/ad/event-tracking/pixel-ads-google-adsense.html +–ÿï* +celebdirtylaundry.com* +realclearpolitics.com* +muscleandfitness.com* +whats-on-netflix.com* +lifeandstylemag.com* +soapoperadigest.com* +barstoolsports.com* +closerweekly.com* +closerweekly.com* +bostonglobe.com* +dailycaller.com* +dailymail.co.uk* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +villagenews.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + fansided.com* + huffpost.com* + maariv.co.il* + newsweek.com* + complex.com* + pagesix.com* + +nypost.com* + +uproxx.com* + +waaytv.com* + jpost.com* + kitco.com* +sny.tv08@R-player.spotim.market/prebidlink/*/wrapper_hb_ +�ÿï* +celebdirtylaundry.com* +realclearpolitics.com* +muscleandfitness.com* +whats-on-netflix.com* +lifeandstylemag.com* +soapoperadigest.com* +barstoolsports.com* +closerweekly.com* +closerweekly.com* +bostonglobe.com* +dailycaller.com* +dailymail.co.uk* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +villagenews.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + fansided.com* + huffpost.com* + maariv.co.il* + newsweek.com* + complex.com* + pagesix.com* + +nypost.com* + +uproxx.com* + +waaytv.com* + jpost.com* + kitco.com* +sny.tv08@R$player.spotim.market/prebidlink/*/hb +áÿï* +celebdirtylaundry.com* +realclearpolitics.com* +apartmenttherapy.com* +muscleandfitness.com* +thehockeywriters.com* +whats-on-netflix.com* +soapoperadigest.com* +barstoolsports.com* +bleedingcool.com* +closerweekly.com* +georgetakei.com* +justjaredjr.com* +netflixlife.com* +primerahora.com* +comingsoon.net* +comingsoon.net* +elnuevodia.com* + tvinsider.com* + +uproxx.com* + +waaytv.com* + jpost.com* +sny.tv08@R$player.spotim.market/prebidlink/*.js +Sÿï* + +nypost.com08@R5/wp-content/themes/nypost-*/static/js/nyp-show-ads.js +6ÿï* + jpost.com08@Rcdn.adapex.io/hb/aaw.*js^ +{ÿï* +birthdaymessages.net* +nichegamer.com* + breakers.tv* + vaughn.live08@R#d3lcz8vpax4lo2.cloudfront.net/*.js^ +Q* +nichegamer.com08@R1d2na2p72vtqyok.cloudfront.net/aniview-script/*.js +°* +xda-developers.com* +androidpolice.com* + makeuseof.com* + collider.com* + gamerant.com* + thegamer.com* +cbr.com08@R+/public/build/valnet-header-ads.6dadb86b.js +¥ÿï* +xda-developers.com* +androidpolice.com* + makeuseof.com* + collider.com* + gamerant.com* + thegamer.com* +cbr.com08@Radsninja.ca/adsninja_client.js +ƒÿï* +tipsybartender.com* +wantedinrome.com* +pointstreak.com* + senpai.gg* + stack.com08@Rlib.tashop.co/*/adengine.js^ +;ÿï* +stocktwits.com08@Rcmp.osano.com/*/osano.js^ +<ÿï* +curseforge.com08@Rgrid.bidswitch.net/hbjson^ +Tÿï* +curseforge.com* + hockeydb.com08@R"htlb.casalemedia.com/openrtb/pbjs^ +kÿï* +curseforge.com* + discogs.com* + +woot.com* +top.gg* +u.gg08@Rprebid.media.net/rtb/prebid^ +;* + neopets.com08@Rimages.neopets.com/css/ad.css^ +Hÿï* + +cmath.fr08@R,ads.sportslocalmedia.com/slm.prebid.cmath.js +@ÿï* + +cmath.fr08@R$ads.sportslocalmedia.com/slmadshb.js +F* + +time.com08@R,micro.rubiconproject.com/prebid/dynamic/*.js +´&*" + twindragonstranslations.art.blog* +biblicalviewondivorce.com* +theculinarychronicles.com* +halifaxdogventures.com* +thedragonflywoman.com* +thelogicofscience.com* +arousinggrammar.com* +embeddeddesign.org* +joaquinbarroso.com* +ssoridethrough.com* +gudemtl.home.blog* +ashe10.home.blog* +deniseminger.com* +greilmarcus.net* +leoadambiga.com* +calumsblog.com* + jmetervn.com* + rpirooms.com08@Rs.pubmine.com^ +¶‚*" + twindragonstranslations.art.blog* +biblicalviewondivorce.com* +theculinarychronicles.com* +halifaxdogventures.com* +thedragonflywoman.com* +thelogicofscience.com* +arousinggrammar.com* +embeddeddesign.org* +joaquinbarroso.com* +ssoridethrough.com* +gudemtl.home.blog* +ashe10.home.blog* +deniseminger.com* +greilmarcus.net* +leoadambiga.com* +calumsblog.com* + jmetervn.com* + rpirooms.com08@Rc0.pubmine.com^ +¾* +weather-and-climate.com* +thoughtfultattoos.com* +convert-my-image.com* +sheffieldforum.co.uk* +crystalbenefits.com* +hairglamourista.com* +besteveralbums.com* +birthdayfrenzy.com* +celebrationjoy.com* +helpsavenature.com* +beautisecrets.com* +motaclarity.co.uk* +scales-chords.com* +aptparenting.com* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +holisticzine.com* +lovebondings.com* +mysticurious.com* +photografeed.com* +socialmettle.com* +spiritualray.com* +sportsaspire.com* +wellnesskeen.com* +biologywise.com* +decordezine.com* +giftinglory.com* +herhaleness.com* +historyplex.com* +holdtoreset.com* +missionself.com* +sleephearty.com* +thrillspire.com* +universavvy.com* +vacayholics.com* +dancepoise.com* +nailartmag.com* +ustravelia.com* +wedessence.com* + arthearty.com* + eduzenith.com* + hobbyzeal.com* + melodyful.com* + partyjoys.com* + plentifun.com* + wheelzine.com* + birdeden.com* + bodytomy.com* + craftcue.com* + catappy.com* + dogappy.com* + +menwit.com08@R+d2f0uviei09pxb.cloudfront.net/ads-code/*.js +ã}ÿï*% +#bestguide-retirementcommunities.com*$ +"accounting-basics-for-students.com*$ +"dellwindowsreinstallationguide.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.net*! +dailythemedcrosswordanswers.org* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +herbal-supplement-resource.com* +application-remuneratrice.com* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +financialfreedomcountdown.com* +freeprintablecertificates.net* +freeprintablemedicalforms.com* +gewuenschtestes-wunschkind.de* +hospitalitytrainingcenter.com* +better-fundraising-ideas.com* +codesforuniversalremotes.com* +computeraideddesignguide.com* +constructionreviewonline.com* +easternsierrafishreports.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +asvabpracticetestonline.com* +change-management-coach.com* +dailycelebritycrossword.com* +electricianapprenticehq.com* +ensenada-baja-vacations.com* +expertprogrammanagement.com* +how-to-write-a-book-now.com* +architecturalafterlife.com* +china-family-adventure.com* +classickitchensupplies.com* +das-unternehmerhandbuch.de* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +about-air-compressors.com* +accounting-simplified.com* +africanamericangrants.org* +bordersandbucketlists.com* +crochetpatterncentral.com* +datasciencemadesimple.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +easyretrievertraining.com* +emprendiendohistorias.com* +encyclopedia-titanica.org* +famous-mathematicians.com* +germanshepherdcountry.com* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homesteadsurvivalsite.com* +autobusesycamioneras.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +bestpromotionalcodes.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +carpentry-pro-framer.com* +coltivazionebiologica.it* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +easydrawingtutorials.com* +english-for-students.com* +escribircanciones.com.ar* +everything80spodcast.com* +freelancewritinggigs.com* +fromthegreennotebook.com* +groupdiscussionideas.com* +gundamkitscollection.com* +howtoremoveblackmold.com* +indifferentlanguages.com* +instrumentationtools.com* +allabouttabletennis.com* +articlerewritertool.com* +bermuda-attractions.com* +bodylanguagecentral.com* +campertrailerreport.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +delawarebusinessnow.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +gadget-gadgetstouse.com* +globalfilmlocations.net* +houstoncasemanagers.com* +alldistancebetween.com* +americanbullydaily.com* +automationrhapsody.com* +bestcateringprices.com* +boardofcosmetology.net* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +classicrockhistory.com* +codycrosssoluzioni.com* +commercialdriverhq.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +driverslicensetest.net* +easyscienceforkids.com* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +enneagramuserguide.com* +explorejeffersonpa.com* +fifacareermodetips.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +freshmorningquotes.com* +goodhomeautomation.com* +groundedlifetravel.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +howtofixheadphones.com* +identifythiscaller.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +keralahousedesigns.com* +kochenkinderleicht.com* +accountingcapital.com* +aginghealthytoday.com* +amazingmemovement.com* +automobile-conseil.fr* +bed-bugs-handbook.com* +birthdaywishes.expert* +buffalohockeybeat.com* +centraldesermones.com* +codycrosslosungen.com* +codycrosssolution.com* +coloringpagesonly.com* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +corporateofficehq.com* +countertopadvisor.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fashionweekonline.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +25yearslatersite.com* +a-z-music-lyrics.com* +aboutchromebooks.com* +anfieldcentral.co.uk* +apartmentprepper.com* +babeltechreviews.com* +balancedpolitics.org* +barcode-generator.de* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +blackeyepolitics.com* +bonkersabouttech.com* +bornagainboating.com* +carexportamerica.com* +charactercounter.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.com* +codycrossanswers.net* +codycrossanswers.org* +conseil-nord-sud.com* +contrahealthscam.com* +crosswordzone301.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +dmtranslationscn.com* +donotdpfdelete.green* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fastfood-recipes.com* +finnsfishingtips.com* +fishkeepingworld.com* +framinghamsource.com* +fullcirclecinema.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +guitarchords.country* +happybirthdaymsg.com* +healthywithhoney.com* +householdwonders.com* +houseplanshelper.com* +howtotrainthedog.com* +huskypuppiesinfo.com* +imagecolorpicker.com* +indianhindunames.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +accountingverse.com* +accuracyproject.org* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +appraisersforum.com* +arcaneintellect.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +cdltrainingspot.com* +chitrasfoodbook.com* +churchsoundtips.com* +comofuncionaque.com* +conqueryourexam.com* +contactsenators.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +dataoverhaulers.com* +detectingschool.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +factory-outlets.org* +fifamobileguide.com* +findwhocallsyou.com* +firestickmaster.com* +foundationfairy.com* +freewateradvice.com* +frenchiejourney.com* +gamblebaycoffee.com* +garnishmentlaws.org* +get-itsolutions.com* +getandroidstuff.com* +giftideascorner.com* +godzilla-movies.com* +hacktheminotaur.com* +halfglassgaming.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +how2drawanimals.com* +howtosandafloor.com* +immigrationroad.com* +introvertspring.com* +ireland-calling.com* +irishmusicdaily.com* +itsolutionstuff.com* +jobapplications.net* +kalender-uhrzeit.de* +academicinvest.com* +accountinguide.com* +advantagemeals.com* +alien-covenant.com* +altcodeunicode.com* +anruferauskunft.de* +appwalkthrough.com* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +boiteachansons.net* +bourses-etudes.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +carserviceland.com* +christiantoday.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commandwindows.com* +commeunefleche.com* +coolhikinggear.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +criticalcactus.com* +crosswordgiant.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +expandetumente.com* +explorebiotech.com* +faithinthenews.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +fishtanksetups.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtosolutions.net* +inlandaquatics.com* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +5ebackgrounds.com* +aboutthemafia.com* +access-excel.tips* +appledystopia.com* +aratariathome.com* +articlemyriad.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +boatexportusa.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +cadblocksfree.com* +candycrushmom.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chargeprotect.com* +chicitysports.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +convertwizard.com* +costcoinsider.com* +crosswordguru.com* +deptofnumbers.com* +designermixes.org* +disneyaddicts.com* +dreamglossary.com* +drivedistance.com* +eapfoundation.com* +ecouter-radio.com* +ehomeremedies.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fishingskillz.com* +fittesttravel.com* +freshersvoice.com* +friendsforlife.me* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +goingfitunfit.com* +gravelcyclist.com* +grrrltraveler.com* +guide-irlande.com* +guineapigtube.com* +healthtipsnow.net* +hightechforpc.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +homesteadgeek.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesgourmet.com* +inglesmundial.com* +jayendrapatil.com* +jokes-de-papa.com* +jtouchofstyle.com* +jumbleanswers.com* +justsolitaire.com* +kerriscrochet.com* +kicksologists.com* +klimatabelle.info* +kodi-tutorials.uk* +acessaber.com.br* +activenorcal.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +beerealhoney.com* +bodypaintips.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +browsandbody.com* +cabaneaidees.com* +cabosanlucas.net* +cakedecorist.com* +camzillasmom.com* +catnamescity.com* +celebritydig.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +dailyanswers.net* +dailycrochet.com* +dailyhistory.org* +distancecalc.com* +diydoctor.org.uk* +diymarketers.com* +dubai-online.com* +easytutoriel.com* +eat-pregnant.com* +electrical4u.net* +englishhints.com* +englishmaven.org* +escapenormal.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +feettometres.com* +find-us-here.com* +freeeconhelp.com* +freejobalert.com* +generatormix.com* +golfcarttips.com* +hausbau-forum.de* +hilfdirselbst.ch* +hiphopmakers.com* +improvehoops.com* +italialiving.com* +itsourcecode.com* +jailbreak-mag.de* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +1001gardens.org* +1001pallets.com* +abi-rechner.com* +about-twins.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +answersking.com* +apnatoronto.com* +appcheating.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +birdsflight.com* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codevscolor.com* +crime-nieuws.nl* +cubsinsider.com* +dailyorange.com* +decortweaks.com* +dialingcode.com* +dicotravail.com* +droidafrica.net* +easyebiking.com* +eslspeaking.org* +euro-muenzen.tv* +expertpublic.fr* +fbfeudguide.com* +fibrojedi.me.uk* +fifatalents.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +galaxy-tipps.de* +gamenguides.com* +gotoportugal.eu* +govsalaries.com* +great-taste.net* +group-games.com* +growertoday.com* +guitartwitt.com* +healtholino.com* +helptostudy.com* +ignisnatura.org* +jumblesolver.us* +10-0-0-0-1.org* +4kshooters.net* +animalfate.com* +artprompts.org* +astrocenter.de* +astrocenter.fr* +bigskyfans.com* +bornceltic.com* +calculate.plus* +campergrid.com* +catkingpin.com* +clutchaxes.com* +cookitonce.com* +couponsock.com* +craftwhack.com* +csharpcodi.com* +cultaholic.com* +culturamix.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +cyclingpro.net* +dailyactor.com* +dazepuzzle.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +droidviews.com* +earrockers.com* +ezprepping.com* +facthacker.com* +filmthreat.com* +freeonline.org* +funkelfaden.de* +gbodyforum.com* +gemstagram.com* +getriddles.com* +ghostarrow.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +hundredkey.com* +huurportaal.nl* +icebreakers.ws* +ieltsbuddy.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +jovenesweb.com* + abc-kinder.de* + advertigo.net* + alldaynews.gr* + alloextra.com* + animalhow.com* + appamatix.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + bakealish.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + cenicienta.fr* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + dasparking.de* + decoratoo.com* + dreammean.com* + ebicycles.com* + elderguru.com* + encuentos.com* + englicist.com* + escapefan.com* + fangraphs.com* + feiertag.info* + foodgroove.de* + freelists.org* + funquizzes.uk* + games4esl.com* + geekmarkt.com* + gelending.com* + ggccoffee.com* + gm-trucks.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + hxbenefit.com* + ideas4diy.com* + ikeaddict.com* + interieurs.fr* + intheyard.org* + involvery.com* + it-connect.fr* + japonismo.com* + java2blog.com* + kididdles.com* + kifarunix.com* + knifeuser.com* + 38jiejie.com* + aboblist.com* + acqnotes.com* + ak4tsay1.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + bizsugar.com* + blengaone.de* + blogchef.net* + blogsdna.com* + bygonely.com* + careerdp.com* + carlicas.com* + cat-news.net* + codstats.net* + corrector.co* + costumet.com* + d9sports.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + eafinder.com* + emulsive.org* + excelhow.net* + farmchat.com* + gearhose.com* + gojinshi.com* + gpspower.net* + grindgis.com* + h1bdata.info* + heydonna.com* + hometips.com* + ipadable.com* + iskmogul.com* + jobmob.co.il* + jspinyin.net* + katverse.com* + keytarhq.com* + kidzfeed.com* + 15track.com* + aglasem.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + barkhow.com* + clash.world* + cradiori.co* + eslgold.com* + finbold.com* + finclan.com* + gerweck.net* + hairmag.org* + hobbeasy.de* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + +10roar.com* + +365tips.be* + +autorai.nl* + +bayart.org* + +beacar.com* + +bovees.com* + +ceos3c.com* + +cubshq.com* + +defkey.com* + +dev2qa.com* + +dogavie.fr* + +dvdupc.com* + +itnwwe.com* + +kempoo.com* + 35mmc.com* + clclt.com* + egriz.com* + hobbr.com* + +citas.in* + +dilc.org* + +ehso.com* + +exrx.net* + +ifly.com* + +in5d.com* + +iturf.fr* + +k2rx.com* +ginx.tv08@R*/porpoiseant/fads.js^ +Ð{ÿï*$ +"secretcopycatrestaurantrecipes.com*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com*! +socialsecurityofficesnearme.com* +soulfoodandsoutherncooking.com* +mexican-authentic-recipes.com* +nutsandboltsspeedtraining.com* +laughteronlineuniversity.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +snippetsthroughthewindow.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +personalsupportworkerhq.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +thehealthsciencejournal.com* +lasourisglobe-trotteuse.fr* +learning-styles-online.com* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +longrangesportfishing.net* +newyorktimescrossword.net* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +reisekostenabrechnung.com* +remedes-de-grand-mere.com* +returnpolicyexplained.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +total-german-shepherd.com* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +scuffedentertainment.com* +significadodetusueno.com* +signification-prenom.net* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +thehydroponicsplanet.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +labradorlovingsouls.com* +lagrenouilletricote.com* +latcrosswordanswers.com* +localkittensforsale.com* +lovetextmessages.com.ng* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +natural-health-zone.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +overseasattractions.com* +portablesportscoach.com* +prowrestlingnewshub.com* +qualitydogresources.com* +sandiegofishreports.com* +significationsmileys.fr* +silverlininglessons.com* +sims4studiodownload.com* +singlemothersgrants.org* +spelling-words-well.com* +startwoodworkingnow.com* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +livinginacontainer.com* +localpuppybreeders.com* +manifestationmagic.net* +motocrossactionmag.com* +nageldesignzentrale.de* +nonphoneworkathome.com* +ouruniverseforkids.com* +peoplesofttutorial.com* +personaldiecutting.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +rentalhousingdeals.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +simplytrinicooking.org* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +webwriterspotlight.com* +williamsonhomepage.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +officesolutionpro.com* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +sapintegrationhub.com* +schrift-generator.com* +serving-ice-cream.com* +sportfishingbuddy.com* +squarefootagearea.com* +ssofficelocations.org* +symbolic-meanings.com* +thecalculatorsite.com* +thecleverbusiness.com* +unternehmerlexikon.de* +verificationguide.com* +weakwifisolutions.com* +wordscapesanswers.net* +workplacefairness.org* +yourfreetemplates.com* +yourhearinghelper.com* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +mydreamsymbolism.com* +namegeneratorfun.com* +nutrition-charts.com* +nytimescrossword.org* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +plagiarismchecker.co* +probleme-paiement.fr* +realcajunrecipes.com* +removeandreplace.com* +roemische-zahlen.net* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +significadoemojis.es* +simpleprogrammer.com* +simplypsychology.org* +solzyatthemovies.com* +sortingwithstyle.com* +strangeandcreepy.com* +taraletsanywhere.com* +texasgranolagirl.com* +therightmessages.com* +tightfistfinance.com* +truthordare-game.com* +weighttraining.guide* +whatismyagetoday.com* +windows101tricks.com* +wordcookiescheat.com* +wordcrazeanswers.com* +worldstopexports.com* +writingtipsoasis.com* +laughingatnarcs.com* +legaldictionary.net* +longrangesignal.com* +madformadelskere.dk* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mccommandcenter.com* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mobileinternist.com* +motocrossadvice.com* +mumsdelivery.com.au* +myenglishteacher.eu* +onlinehelpguide.com* +parceltracking.info* +paweatheraction.com* +phonedealstoday.com* +pizzacappuccino.com* +pourquoimabanque.fr* +priceprediction.net* +printables4kids.com* +prisonerofclass.com* +problemsphysics.com* +psychologyhub.co.uk* +r-graph-gallery.com* +ricettadicucina.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smellyfeetcures.com* +smileybedeutung.com* +snagfreesamples.com* +spirit-of-metal.com* +staumelder-karte.de* +steamcleanerpro.com* +studyabroadaide.com* +tarif-disneyland.fr* +techygeekshome.info* +testpreptoolkit.com* +theancestorhunt.com* +thebirthdaybest.com* +thecrochetspace.com* +thefipharmacist.com* +thegolfeinstein.com* +thehamsterhouse.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +thymeforcooking.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordscapescheat.com* +wordstodescribe.com* +wordunscrambler.com* +workfromhomejobs.me* +wrestlingrumors.net* +lectinfreemama.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +motorbicycling.com* +myenglishpages.com* +mystonemeaning.com* +neueroeffnung.info* +novacrystallis.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +readylifestyle.com* +realmofhistory.com* +rebootmygarage.com* +restartatorium.com* +rollerskatedad.com* +salaryaftertax.com* +signe-zodiaque.com* +smsreceivefree.com* +sociologygroup.com* +spirit-of-rock.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +teacupdogdaily.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thecrafterlife.com* +theilluminerdi.com* +themotordigest.com* +thewindowsclub.com* +toytraincenter.com* +trackingadvice.com* +tribunenantaise.fr* +trucksresource.com* +truthorfiction.com* +tvfandomlounge.com* +usconstitution.net* +vancampinglife.com* +voiture-conseil.fr* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +wowfreestuff.co.uk* +writingcommons.org* +xtremegaminerd.com* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +livemusicblog.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +mybakingbliss.com* +myfunkytravel.com* +mywordcookies.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +palmaairport.info* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prisoninsight.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +resetoillight.com* +sabersourcing.com* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +seriouslyfish.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +sveopoznatima.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thefinertimes.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +theyumyumclub.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +victorian-era.org* +vivaolinux.com.br* +wearableinear.com* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +zkelectronics.com* +labex-cortex.com* +landyourlife.com* +linuxtechlab.com* +livetheglory.com* +lovewideopen.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +makeeasylife.com* +mentehermosa.net* +metaladdicts.com* +michaelsaves.com* +michelacosta.com* +myotakuworld.com* +mysmartahome.com* +nadabookinfo.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +parcellookup.com* +petgearguide.com* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +redargentina.com* +rimworldbase.com* +roadtrailrun.com* +routenplaner.app* +router-reset.com* +sealwithease.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +sudokusolver.net* +tabletopjoab.com* +tagquestions.net* +tarif-lettre.com* +tasteerecipe.com* +teluguadda.co.in* +texasoutside.com* +the-diy-life.com* +thecoastnews.com* +thedairydish.com* +themoneyfarm.org* +thepersonage.com* +trendcentral.com* +tryoutnature.com* +turfmechanic.com* +valdovaccaro.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wickedhorror.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +kylonpowell.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +maestraanita.it* +mailsmartly.com* +materialguru.de* +materialsix.com* +melanieredd.com* +miamiscapes.com* +mspoweruser.com* +mychromebook.fr* +nilsenreport.ca* +noorsrecipe.com* +nortechplus.com* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +pregnanteve.com* +programtalk.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +r-statistics.co* +racetothewh.com* +railmaps.com.au* +reciperoost.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +sandiegocan.org* +sanovnik365.com* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +scotlandinfo.eu* +seniordaily.com* +shuttlefare.com* +sourcedaddy.com* +speakersmag.com* +startupback.com* +studybreaks.com* +swgohevents.com* +techacrobat.com* +techsviewer.com* +textcompare.org* +theballzone.com* +thekewlshop.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +tools-unite.com* +truththeory.com* +vegansandra.com* +villagenews.com* +warehouseiq.com* +wondermondo.com* +yardblogger.com* +yogihosting.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +lostsaloon.com* +loupetroop.com* +mailtoself.com* +mikeeckman.com* +moddingway.com* +motoconseil.fr* +moviemaker.com* +msfsaddons.com* +msfsaddons.org* +myboldbody.com* +near-place.com* +nursestudy.net* +officetuts.net* +olive-drab.com* +onecarspot.com* +orangefizz.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +portanapoli.de* +puckcomics.com* +rentola.com.au* +roadsnacks.net* +roofonline.com* +sa-piscine.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +serieophile.fr* +slappedham.com* +snowycodex.com* +stellpower.com* +stickyball.net* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thewebdev.info* +toutandroid.fr* +treatnheal.com* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +wellrigged.com* +welovepuns.com* +wheelssize.com* +wnynewsnow.com* +xflnewshub.com* +yamahaclub.com* +yogurtnerd.com* +zacsgarden.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + mrxstitch.com* + osrsguide.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rentlingo.com* + rentola.co.uk* + rodeosusa.com* + romapress.net* + starrymag.com* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + template.city* + textfixer.com* + theparking.eu* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + uspspoint.com* + wanderera.com* + wordrelax.com* + workgearz.com* + wyonation.com* + ybierling.com* + yorkiemag.com* + laviasco.com* + learncpp.com* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + ls-portal.eu* + luciding.com* + manuals.plus* + meugamer.com* + mobile57.com* + moredirt.com* + muchfeed.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + playerone.tv* + puckjunk.com* + quizerry.com* + resumeok.com* + rokuguru.com* + sanovnik.org* + sdlookup.com* + simple30.com* + sysprobs.com* + tecklyfe.com* + thesukan.net* + timelines.ws* + timemaps.com* + topozone.com* + traeumen.org* + tulamama.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wikifame.org* + wowpooch.com* + zobacz-to.pl* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + papelea.com* + phpflow.com* + play2048.co* + rankred.com* + rentola.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thekeea.com* + thepaws.net* + toolstud.io* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +momdot.com* + +mtlurb.com* + +mydict.com* + +noobie.com* + +overiq.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +zerauto.nl* + +zwivel.com* + marsja.se* + nygal.com* + petdt.com* + trovas.ch* + tvcomp.uk* + vitux.com* + vurni.com* + we-ha.com* + wow4u.com* + wprock.fr* + zcom.tech* + +millo.co* + +sbxl.com* +see.cam* +rgb.to* +win.gg08@R*/porpoiseant/fads.js^ +å}ÿï*% +#bestguide-retirementcommunities.com*$ +"accounting-basics-for-students.com*$ +"dellwindowsreinstallationguide.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.net*! +dailythemedcrosswordanswers.org* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +herbal-supplement-resource.com* +application-remuneratrice.com* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +financialfreedomcountdown.com* +freeprintablecertificates.net* +freeprintablemedicalforms.com* +gewuenschtestes-wunschkind.de* +hospitalitytrainingcenter.com* +better-fundraising-ideas.com* +codesforuniversalremotes.com* +computeraideddesignguide.com* +constructionreviewonline.com* +easternsierrafishreports.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +asvabpracticetestonline.com* +change-management-coach.com* +dailycelebritycrossword.com* +electricianapprenticehq.com* +ensenada-baja-vacations.com* +expertprogrammanagement.com* +how-to-write-a-book-now.com* +architecturalafterlife.com* +china-family-adventure.com* +classickitchensupplies.com* +das-unternehmerhandbuch.de* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +about-air-compressors.com* +accounting-simplified.com* +africanamericangrants.org* +bordersandbucketlists.com* +crochetpatterncentral.com* +datasciencemadesimple.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +easyretrievertraining.com* +emprendiendohistorias.com* +encyclopedia-titanica.org* +famous-mathematicians.com* +germanshepherdcountry.com* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homesteadsurvivalsite.com* +autobusesycamioneras.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +bestpromotionalcodes.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +carpentry-pro-framer.com* +coltivazionebiologica.it* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +easydrawingtutorials.com* +english-for-students.com* +escribircanciones.com.ar* +everything80spodcast.com* +freelancewritinggigs.com* +fromthegreennotebook.com* +groupdiscussionideas.com* +gundamkitscollection.com* +howtoremoveblackmold.com* +indifferentlanguages.com* +instrumentationtools.com* +allabouttabletennis.com* +articlerewritertool.com* +bermuda-attractions.com* +bodylanguagecentral.com* +campertrailerreport.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +delawarebusinessnow.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +gadget-gadgetstouse.com* +globalfilmlocations.net* +houstoncasemanagers.com* +alldistancebetween.com* +americanbullydaily.com* +automationrhapsody.com* +bestcateringprices.com* +boardofcosmetology.net* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +classicrockhistory.com* +codycrosssoluzioni.com* +commercialdriverhq.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +driverslicensetest.net* +easyscienceforkids.com* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +enneagramuserguide.com* +explorejeffersonpa.com* +fifacareermodetips.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +freshmorningquotes.com* +goodhomeautomation.com* +groundedlifetravel.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +howtofixheadphones.com* +identifythiscaller.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +keralahousedesigns.com* +kochenkinderleicht.com* +accountingcapital.com* +aginghealthytoday.com* +amazingmemovement.com* +automobile-conseil.fr* +bed-bugs-handbook.com* +birthdaywishes.expert* +buffalohockeybeat.com* +centraldesermones.com* +codycrosslosungen.com* +codycrosssolution.com* +coloringpagesonly.com* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +corporateofficehq.com* +countertopadvisor.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fashionweekonline.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +25yearslatersite.com* +a-z-music-lyrics.com* +aboutchromebooks.com* +anfieldcentral.co.uk* +apartmentprepper.com* +babeltechreviews.com* +balancedpolitics.org* +barcode-generator.de* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +blackeyepolitics.com* +bonkersabouttech.com* +bornagainboating.com* +carexportamerica.com* +charactercounter.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.com* +codycrossanswers.net* +codycrossanswers.org* +conseil-nord-sud.com* +contrahealthscam.com* +crosswordzone301.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +dmtranslationscn.com* +donotdpfdelete.green* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fastfood-recipes.com* +finnsfishingtips.com* +fishkeepingworld.com* +framinghamsource.com* +fullcirclecinema.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +guitarchords.country* +happybirthdaymsg.com* +healthywithhoney.com* +householdwonders.com* +houseplanshelper.com* +howtotrainthedog.com* +huskypuppiesinfo.com* +imagecolorpicker.com* +indianhindunames.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +accountingverse.com* +accuracyproject.org* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +appraisersforum.com* +arcaneintellect.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +cdltrainingspot.com* +chitrasfoodbook.com* +churchsoundtips.com* +comofuncionaque.com* +conqueryourexam.com* +contactsenators.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +dataoverhaulers.com* +detectingschool.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +factory-outlets.org* +fifamobileguide.com* +findwhocallsyou.com* +firestickmaster.com* +foundationfairy.com* +freewateradvice.com* +frenchiejourney.com* +gamblebaycoffee.com* +garnishmentlaws.org* +get-itsolutions.com* +getandroidstuff.com* +giftideascorner.com* +godzilla-movies.com* +hacktheminotaur.com* +halfglassgaming.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +how2drawanimals.com* +howtosandafloor.com* +immigrationroad.com* +introvertspring.com* +ireland-calling.com* +irishmusicdaily.com* +itsolutionstuff.com* +jobapplications.net* +kalender-uhrzeit.de* +academicinvest.com* +accountinguide.com* +advantagemeals.com* +alien-covenant.com* +altcodeunicode.com* +anruferauskunft.de* +appwalkthrough.com* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +boiteachansons.net* +bourses-etudes.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +carserviceland.com* +christiantoday.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commandwindows.com* +commeunefleche.com* +coolhikinggear.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +criticalcactus.com* +crosswordgiant.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +expandetumente.com* +explorebiotech.com* +faithinthenews.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +fishtanksetups.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtosolutions.net* +inlandaquatics.com* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +5ebackgrounds.com* +aboutthemafia.com* +access-excel.tips* +appledystopia.com* +aratariathome.com* +articlemyriad.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +boatexportusa.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +cadblocksfree.com* +candycrushmom.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chargeprotect.com* +chicitysports.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +convertwizard.com* +costcoinsider.com* +crosswordguru.com* +deptofnumbers.com* +designermixes.org* +disneyaddicts.com* +dreamglossary.com* +drivedistance.com* +eapfoundation.com* +ecouter-radio.com* +ehomeremedies.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fishingskillz.com* +fittesttravel.com* +freshersvoice.com* +friendsforlife.me* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +goingfitunfit.com* +gravelcyclist.com* +grrrltraveler.com* +guide-irlande.com* +guineapigtube.com* +healthtipsnow.net* +hightechforpc.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +homesteadgeek.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesgourmet.com* +inglesmundial.com* +jayendrapatil.com* +jokes-de-papa.com* +jtouchofstyle.com* +jumbleanswers.com* +justsolitaire.com* +kerriscrochet.com* +kicksologists.com* +klimatabelle.info* +kodi-tutorials.uk* +acessaber.com.br* +activenorcal.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +beerealhoney.com* +bodypaintips.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +browsandbody.com* +cabaneaidees.com* +cabosanlucas.net* +cakedecorist.com* +camzillasmom.com* +catnamescity.com* +celebritydig.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +dailyanswers.net* +dailycrochet.com* +dailyhistory.org* +distancecalc.com* +diydoctor.org.uk* +diymarketers.com* +dubai-online.com* +easytutoriel.com* +eat-pregnant.com* +electrical4u.net* +englishhints.com* +englishmaven.org* +escapenormal.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +feettometres.com* +find-us-here.com* +freeeconhelp.com* +freejobalert.com* +generatormix.com* +golfcarttips.com* +hausbau-forum.de* +hilfdirselbst.ch* +hiphopmakers.com* +improvehoops.com* +italialiving.com* +itsourcecode.com* +jailbreak-mag.de* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +1001gardens.org* +1001pallets.com* +abi-rechner.com* +about-twins.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +answersking.com* +apnatoronto.com* +appcheating.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +birdsflight.com* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codevscolor.com* +crime-nieuws.nl* +cubsinsider.com* +dailyorange.com* +decortweaks.com* +dialingcode.com* +dicotravail.com* +droidafrica.net* +easyebiking.com* +eslspeaking.org* +euro-muenzen.tv* +expertpublic.fr* +fbfeudguide.com* +fibrojedi.me.uk* +fifatalents.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +galaxy-tipps.de* +gamenguides.com* +gotoportugal.eu* +govsalaries.com* +great-taste.net* +group-games.com* +growertoday.com* +guitartwitt.com* +healtholino.com* +helptostudy.com* +ignisnatura.org* +jumblesolver.us* +10-0-0-0-1.org* +4kshooters.net* +animalfate.com* +artprompts.org* +astrocenter.de* +astrocenter.fr* +bigskyfans.com* +bornceltic.com* +calculate.plus* +campergrid.com* +catkingpin.com* +clutchaxes.com* +cookitonce.com* +couponsock.com* +craftwhack.com* +csharpcodi.com* +cultaholic.com* +culturamix.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +cyclingpro.net* +dailyactor.com* +dazepuzzle.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +droidviews.com* +earrockers.com* +ezprepping.com* +facthacker.com* +filmthreat.com* +freeonline.org* +funkelfaden.de* +gbodyforum.com* +gemstagram.com* +getriddles.com* +ghostarrow.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +hundredkey.com* +huurportaal.nl* +icebreakers.ws* +ieltsbuddy.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +jovenesweb.com* + abc-kinder.de* + advertigo.net* + alldaynews.gr* + alloextra.com* + animalhow.com* + appamatix.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + bakealish.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + cenicienta.fr* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + dasparking.de* + decoratoo.com* + dreammean.com* + ebicycles.com* + elderguru.com* + encuentos.com* + englicist.com* + escapefan.com* + fangraphs.com* + feiertag.info* + foodgroove.de* + freelists.org* + funquizzes.uk* + games4esl.com* + geekmarkt.com* + gelending.com* + ggccoffee.com* + gm-trucks.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + hxbenefit.com* + ideas4diy.com* + ikeaddict.com* + interieurs.fr* + intheyard.org* + involvery.com* + it-connect.fr* + japonismo.com* + java2blog.com* + kididdles.com* + kifarunix.com* + knifeuser.com* + 38jiejie.com* + aboblist.com* + acqnotes.com* + ak4tsay1.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + bizsugar.com* + blengaone.de* + blogchef.net* + blogsdna.com* + bygonely.com* + careerdp.com* + carlicas.com* + cat-news.net* + codstats.net* + corrector.co* + costumet.com* + d9sports.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + eafinder.com* + emulsive.org* + excelhow.net* + farmchat.com* + gearhose.com* + gojinshi.com* + gpspower.net* + grindgis.com* + h1bdata.info* + heydonna.com* + hometips.com* + ipadable.com* + iskmogul.com* + jobmob.co.il* + jspinyin.net* + katverse.com* + keytarhq.com* + kidzfeed.com* + 15track.com* + aglasem.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + barkhow.com* + clash.world* + cradiori.co* + eslgold.com* + finbold.com* + finclan.com* + gerweck.net* + hairmag.org* + hobbeasy.de* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + +10roar.com* + +365tips.be* + +autorai.nl* + +bayart.org* + +beacar.com* + +bovees.com* + +ceos3c.com* + +cubshq.com* + +defkey.com* + +dev2qa.com* + +dogavie.fr* + +dvdupc.com* + +itnwwe.com* + +kempoo.com* + 35mmc.com* + clclt.com* + egriz.com* + hobbr.com* + +citas.in* + +dilc.org* + +ehso.com* + +exrx.net* + +ifly.com* + +in5d.com* + +iturf.fr* + +k2rx.com* +ginx.tv08@R*/porpoiseant/banger.js^ +Ò{ÿï*$ +"secretcopycatrestaurantrecipes.com*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com*! +socialsecurityofficesnearme.com* +soulfoodandsoutherncooking.com* +mexican-authentic-recipes.com* +nutsandboltsspeedtraining.com* +laughteronlineuniversity.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +snippetsthroughthewindow.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +personalsupportworkerhq.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +thehealthsciencejournal.com* +lasourisglobe-trotteuse.fr* +learning-styles-online.com* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +longrangesportfishing.net* +newyorktimescrossword.net* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +reisekostenabrechnung.com* +remedes-de-grand-mere.com* +returnpolicyexplained.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +total-german-shepherd.com* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +scuffedentertainment.com* +significadodetusueno.com* +signification-prenom.net* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +thehydroponicsplanet.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +labradorlovingsouls.com* +lagrenouilletricote.com* +latcrosswordanswers.com* +localkittensforsale.com* +lovetextmessages.com.ng* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +natural-health-zone.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +overseasattractions.com* +portablesportscoach.com* +prowrestlingnewshub.com* +qualitydogresources.com* +sandiegofishreports.com* +significationsmileys.fr* +silverlininglessons.com* +sims4studiodownload.com* +singlemothersgrants.org* +spelling-words-well.com* +startwoodworkingnow.com* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +livinginacontainer.com* +localpuppybreeders.com* +manifestationmagic.net* +motocrossactionmag.com* +nageldesignzentrale.de* +nonphoneworkathome.com* +ouruniverseforkids.com* +peoplesofttutorial.com* +personaldiecutting.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +rentalhousingdeals.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +simplytrinicooking.org* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +webwriterspotlight.com* +williamsonhomepage.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +officesolutionpro.com* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +sapintegrationhub.com* +schrift-generator.com* +serving-ice-cream.com* +sportfishingbuddy.com* +squarefootagearea.com* +ssofficelocations.org* +symbolic-meanings.com* +thecalculatorsite.com* +thecleverbusiness.com* +unternehmerlexikon.de* +verificationguide.com* +weakwifisolutions.com* +wordscapesanswers.net* +workplacefairness.org* +yourfreetemplates.com* +yourhearinghelper.com* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +mydreamsymbolism.com* +namegeneratorfun.com* +nutrition-charts.com* +nytimescrossword.org* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +plagiarismchecker.co* +probleme-paiement.fr* +realcajunrecipes.com* +removeandreplace.com* +roemische-zahlen.net* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +significadoemojis.es* +simpleprogrammer.com* +simplypsychology.org* +solzyatthemovies.com* +sortingwithstyle.com* +strangeandcreepy.com* +taraletsanywhere.com* +texasgranolagirl.com* +therightmessages.com* +tightfistfinance.com* +truthordare-game.com* +weighttraining.guide* +whatismyagetoday.com* +windows101tricks.com* +wordcookiescheat.com* +wordcrazeanswers.com* +worldstopexports.com* +writingtipsoasis.com* +laughingatnarcs.com* +legaldictionary.net* +longrangesignal.com* +madformadelskere.dk* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mccommandcenter.com* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mobileinternist.com* +motocrossadvice.com* +mumsdelivery.com.au* +myenglishteacher.eu* +onlinehelpguide.com* +parceltracking.info* +paweatheraction.com* +phonedealstoday.com* +pizzacappuccino.com* +pourquoimabanque.fr* +priceprediction.net* +printables4kids.com* +prisonerofclass.com* +problemsphysics.com* +psychologyhub.co.uk* +r-graph-gallery.com* +ricettadicucina.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smellyfeetcures.com* +smileybedeutung.com* +snagfreesamples.com* +spirit-of-metal.com* +staumelder-karte.de* +steamcleanerpro.com* +studyabroadaide.com* +tarif-disneyland.fr* +techygeekshome.info* +testpreptoolkit.com* +theancestorhunt.com* +thebirthdaybest.com* +thecrochetspace.com* +thefipharmacist.com* +thegolfeinstein.com* +thehamsterhouse.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +thymeforcooking.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordscapescheat.com* +wordstodescribe.com* +wordunscrambler.com* +workfromhomejobs.me* +wrestlingrumors.net* +lectinfreemama.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +motorbicycling.com* +myenglishpages.com* +mystonemeaning.com* +neueroeffnung.info* +novacrystallis.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +readylifestyle.com* +realmofhistory.com* +rebootmygarage.com* +restartatorium.com* +rollerskatedad.com* +salaryaftertax.com* +signe-zodiaque.com* +smsreceivefree.com* +sociologygroup.com* +spirit-of-rock.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +teacupdogdaily.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thecrafterlife.com* +theilluminerdi.com* +themotordigest.com* +thewindowsclub.com* +toytraincenter.com* +trackingadvice.com* +tribunenantaise.fr* +trucksresource.com* +truthorfiction.com* +tvfandomlounge.com* +usconstitution.net* +vancampinglife.com* +voiture-conseil.fr* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +wowfreestuff.co.uk* +writingcommons.org* +xtremegaminerd.com* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +livemusicblog.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +mybakingbliss.com* +myfunkytravel.com* +mywordcookies.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +palmaairport.info* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prisoninsight.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +resetoillight.com* +sabersourcing.com* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +seriouslyfish.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +sveopoznatima.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thefinertimes.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +theyumyumclub.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +victorian-era.org* +vivaolinux.com.br* +wearableinear.com* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +zkelectronics.com* +labex-cortex.com* +landyourlife.com* +linuxtechlab.com* +livetheglory.com* +lovewideopen.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +makeeasylife.com* +mentehermosa.net* +metaladdicts.com* +michaelsaves.com* +michelacosta.com* +myotakuworld.com* +mysmartahome.com* +nadabookinfo.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +parcellookup.com* +petgearguide.com* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +redargentina.com* +rimworldbase.com* +roadtrailrun.com* +routenplaner.app* +router-reset.com* +sealwithease.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +sudokusolver.net* +tabletopjoab.com* +tagquestions.net* +tarif-lettre.com* +tasteerecipe.com* +teluguadda.co.in* +texasoutside.com* +the-diy-life.com* +thecoastnews.com* +thedairydish.com* +themoneyfarm.org* +thepersonage.com* +trendcentral.com* +tryoutnature.com* +turfmechanic.com* +valdovaccaro.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wickedhorror.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +kylonpowell.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +maestraanita.it* +mailsmartly.com* +materialguru.de* +materialsix.com* +melanieredd.com* +miamiscapes.com* +mspoweruser.com* +mychromebook.fr* +nilsenreport.ca* +noorsrecipe.com* +nortechplus.com* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +pregnanteve.com* +programtalk.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +r-statistics.co* +racetothewh.com* +railmaps.com.au* +reciperoost.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +sandiegocan.org* +sanovnik365.com* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +scotlandinfo.eu* +seniordaily.com* +shuttlefare.com* +sourcedaddy.com* +speakersmag.com* +startupback.com* +studybreaks.com* +swgohevents.com* +techacrobat.com* +techsviewer.com* +textcompare.org* +theballzone.com* +thekewlshop.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +tools-unite.com* +truththeory.com* +vegansandra.com* +villagenews.com* +warehouseiq.com* +wondermondo.com* +yardblogger.com* +yogihosting.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +lostsaloon.com* +loupetroop.com* +mailtoself.com* +mikeeckman.com* +moddingway.com* +motoconseil.fr* +moviemaker.com* +msfsaddons.com* +msfsaddons.org* +myboldbody.com* +near-place.com* +nursestudy.net* +officetuts.net* +olive-drab.com* +onecarspot.com* +orangefizz.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +portanapoli.de* +puckcomics.com* +rentola.com.au* +roadsnacks.net* +roofonline.com* +sa-piscine.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +serieophile.fr* +slappedham.com* +snowycodex.com* +stellpower.com* +stickyball.net* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thewebdev.info* +toutandroid.fr* +treatnheal.com* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +wellrigged.com* +welovepuns.com* +wheelssize.com* +wnynewsnow.com* +xflnewshub.com* +yamahaclub.com* +yogurtnerd.com* +zacsgarden.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + mrxstitch.com* + osrsguide.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rentlingo.com* + rentola.co.uk* + rodeosusa.com* + romapress.net* + starrymag.com* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + template.city* + textfixer.com* + theparking.eu* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + uspspoint.com* + wanderera.com* + wordrelax.com* + workgearz.com* + wyonation.com* + ybierling.com* + yorkiemag.com* + laviasco.com* + learncpp.com* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + ls-portal.eu* + luciding.com* + manuals.plus* + meugamer.com* + mobile57.com* + moredirt.com* + muchfeed.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + playerone.tv* + puckjunk.com* + quizerry.com* + resumeok.com* + rokuguru.com* + sanovnik.org* + sdlookup.com* + simple30.com* + sysprobs.com* + tecklyfe.com* + thesukan.net* + timelines.ws* + timemaps.com* + topozone.com* + traeumen.org* + tulamama.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wikifame.org* + wowpooch.com* + zobacz-to.pl* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + papelea.com* + phpflow.com* + play2048.co* + rankred.com* + rentola.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thekeea.com* + thepaws.net* + toolstud.io* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +momdot.com* + +mtlurb.com* + +mydict.com* + +noobie.com* + +overiq.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +zerauto.nl* + +zwivel.com* + marsja.se* + nygal.com* + petdt.com* + trovas.ch* + tvcomp.uk* + vitux.com* + vurni.com* + we-ha.com* + wow4u.com* + wprock.fr* + zcom.tech* + +millo.co* + +sbxl.com* +see.cam* +rgb.to* +win.gg08@R*/porpoiseant/banger.js^ +Jÿï* +retailmenot.com08@R'pixel.adsafeprotected.com/services/pub^ +/08@R!/edmontonalberta/calgary.js?cb=16 +U* + freecads.com08@R7secure.cdn.fastclick.net/js/pubcid/latest/pubcid.min.js +Fÿï08@R6securepubads.g.doubleclick.net/gampad/ads^*%26aax_pub% +&* + chron.com08@R /loadads.js +c* +sourceforge.net* +sf-5.xb.sf.net08@R0a.fsdn.com/con/js/sftheme/vendor/bizx-prebid.js^^ +legalinsurrection.com +natlawreview.com + lucianne.comdiv[id^="stickypbModalinner"]ýe7 +toocool2betrue.com +parentsdome.com +.adwrapper + +askmen.com #ad-aside-10 +seattletimes.com + +askmen.com +#ad-bottom + 247wallst.com +#ad-header! + wowhead.com#ad-horizontal% +seattletimes.com #ad-right-top +seattletimes.comzeus-ad' +seattletimes.com.top-ad-wrapper( +theblackfriday.com.top_header_ad + +askmen.com#ad-top + mediafire.com +#adwrapperH +mybendbroadband.com +cincinnatibell.net + +wowway.net #adhesion +allthetests.com#banner& +planetminecraft.com #box_300btf‚ +birthdaymessages.net +themeparktourist.com +mybendbroadband.com +cincinnatibell.net +cyclonefanatic.com +sciencestruck.com +cheeseheadtv.com +marketingwit.com +opinionfront.com +tellyreviews.com +penlighten.com +stocktwits.com +yardbarker.com + altafiber.net + petponder.com + vaughn.live + +bjpenn.com + +ringtv.com + +wowway.net#insticator-container% +nichegamer.com.insticator-ads1 +weather-and-climate.com.div-insticator-ad˜ +weather-and-climate.com +competition-finder.com +birthdaymessages.net +sheffieldforum.co.uk +themeparktourist.com +mybendbroadband.com +besteveralbums.com +cincinnatibell.net +asianhobbyist.com +scales-chords.com +sciencestruck.com +cheeseheadtv.com +marketingwit.com +opinionfront.com +tellyreviews.com +holdtoreset.com +owlstalk.co.uk +penlighten.com +yardbarker.com + petponder.com + avftt.co.uk + breakers.tv + vaughn.live + +bjpenn.com + +ringtv.com + +wowway.net#div-insticator-ad-1’ +weather-and-climate.com +birthdaymessages.net +sheffieldforum.co.uk +themeparktourist.com +besteveralbums.com +cyclonefanatic.com +asianhobbyist.com +sciencestruck.com +cheeseheadtv.com +marketingwit.com +opinionfront.com +holdtoreset.com +owlstalk.co.uk +penlighten.com +yardbarker.com + petponder.com + vaughn.live + +bjpenn.com + +ringtv.com#div-insticator-ad-2×  +weather-and-climate.com +thoughtfultattoos.com +birthdaymessages.net +convert-my-image.com +themeparktourist.com +crystalbenefits.com +hairglamourista.com +birthdayfrenzy.com +celebrationjoy.com +helpsavenature.com +asianhobbyist.com +beautisecrets.com +psychologenie.com +sciencestruck.com +aptparenting.com +entertainism.com +fashionhance.com +fitnessvigil.com +holisticzine.com +lovebondings.com +marketingwit.com +mysticurious.com +opinionfront.com +photografeed.com +socialmettle.com +spiritualray.com +sportsaspire.com +wellnesskeen.com +biologywise.com +decordezine.com +giftinglory.com +herhaleness.com +historyplex.com +holdtoreset.com +missionself.com +quotabulary.com +sleephearty.com +tastessence.com +thrillspire.com +universavvy.com +vacayholics.com +dancepoise.com +gardenerdy.com +homequicks.com +nailartmag.com +penlighten.com +ustravelia.com +wedessence.com + arthearty.com + eduzenith.com + hobbyzeal.com + melodyful.com + partyjoys.com + petponder.com + plentifun.com + wheelzine.com + birdeden.com + bodytomy.com + craftcue.com + catappy.com + dogappy.com + +menwit.com + +ringtv.com#div-insticator-ad-3×  +competition-finder.com +thoughtfultattoos.com +birthdaymessages.net +sheffieldforum.co.uk +themeparktourist.com +crystalbenefits.com +hairglamourista.com +birthdayfrenzy.com +celebrationjoy.com +helpsavenature.com +beautisecrets.com +psychologenie.com +scales-chords.com +sciencestruck.com +aptparenting.com +entertainism.com +fashionhance.com +fitnessvigil.com +holisticzine.com +lovebondings.com +marketingwit.com +mysticurious.com +opinionfront.com +photografeed.com +socialmettle.com +spiritualray.com +sportsaspire.com +wellnesskeen.com +biologywise.com +decordezine.com +giftinglory.com +herhaleness.com +historyplex.com +holdtoreset.com +missionself.com +quotabulary.com +sleephearty.com +tastessence.com +thrillspire.com +universavvy.com +vacayholics.com +dancepoise.com +gardenerdy.com +homequicks.com +nailartmag.com +penlighten.com +ustravelia.com +wedessence.com + arthearty.com + eduzenith.com + hobbyzeal.com + melodyful.com + partyjoys.com + petponder.com + plentifun.com + wheelzine.com + birdeden.com + bodytomy.com + craftcue.com + avftt.co.uk + catappy.com + dogappy.com + +menwit.com#div-insticator-ad-4ë  +weather-and-climate.com +competition-finder.com +thoughtfultattoos.com +sheffieldforum.co.uk +themeparktourist.com +crystalbenefits.com +hairglamourista.com +birthdayfrenzy.com +celebrationjoy.com +helpsavenature.com +beautisecrets.com +psychologenie.com +scales-chords.com +sciencestruck.com +aptparenting.com +entertainism.com +fashionhance.com +fitnessvigil.com +holisticzine.com +lovebondings.com +marketingwit.com +mysticurious.com +opinionfront.com +photografeed.com +socialmettle.com +spiritualray.com +sportsaspire.com +wellnesskeen.com +biologywise.com +decordezine.com +giftinglory.com +herhaleness.com +historyplex.com +missionself.com +quotabulary.com +sleephearty.com +tastessence.com +thrillspire.com +universavvy.com +vacayholics.com +dancepoise.com +gardenerdy.com +homequicks.com +nailartmag.com +nichegamer.com +penlighten.com +stocktwits.com +ustravelia.com +wedessence.com + arthearty.com + eduzenith.com + hobbyzeal.com + melodyful.com + partyjoys.com + petponder.com + plentifun.com + wheelzine.com + birdeden.com + bodytomy.com + craftcue.com + breakers.tv + catappy.com + dogappy.com + +menwit.com#div-insticator-ad-5õ +weather-and-climate.com +competition-finder.com +thoughtfultattoos.com +themeparktourist.com +crystalbenefits.com +hairglamourista.com +besteveralbums.com +birthdayfrenzy.com +celebrationjoy.com +helpsavenature.com +beautisecrets.com +sciencestruck.com +aptparenting.com +entertainism.com +fashionhance.com +fitnessvigil.com +holisticzine.com +lovebondings.com +marketingwit.com +mysticurious.com +opinionfront.com +photografeed.com +socialmettle.com +spiritualray.com +sportsaspire.com +wellnesskeen.com +biologywise.com +decordezine.com +giftinglory.com +herhaleness.com +historyplex.com +missionself.com +sleephearty.com +thrillspire.com +universavvy.com +vacayholics.com +dancepoise.com +nailartmag.com +nichegamer.com +penlighten.com +stocktwits.com +ustravelia.com +wedessence.com + arthearty.com + eduzenith.com + hobbyzeal.com + melodyful.com + partyjoys.com + petponder.com + plentifun.com + wheelzine.com + birdeden.com + bodytomy.com + craftcue.com + breakers.tv + catappy.com + dogappy.com + +menwit.com#div-insticator-ad-6• +thoughtfultattoos.com +themeparktourist.com +motaclarity.co.uk +sciencestruck.com +aptparenting.com +entertainism.com +lovebondings.com +marketingwit.com +opinionfront.com +socialmettle.com +spiritualray.com +sportsaspire.com +tellyreviews.com +biologywise.com +herhaleness.com +historyplex.com +penlighten.com + eduzenith.com + melodyful.com + partyjoys.com + petponder.com + plentifun.com + wheelzine.com + birdeden.com + bodytomy.com + dogappy.com + +menwit.com#div-insticator-ad-9( + +wowway.net#sc_home_header_banner& + +wowway.net#sc_home_news_banner- + +wowway.net#sc_home_recommended_bannerD + filehippo.com/#review-seethrough-program-page-desktop-wrapper. + nxstrib.com + +go-vip.net .acm_ad_zonesè  +hollywoodreporter.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +allestoringen.be +allestoringen.nl +downdetector.com +seattletimes.com +splinternews.com +theinventory.com +abovethelaw.com +bostonglobe.com +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +foodandwine.com +lifehacker.com +thetakeout.com + billboard.com + clickhole.com + myrecipes.com + deadspin.com + greenbot.com + gtplanet.net + jalopnik.com + theonion.com + foxnews.com + gizmodo.com + instyle.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com + +larazon.es + +time.com.ad. +bostonglobe.comdiv[id^="ad_position_"]* +bostonglobe.com.stick_1200--tablet( +abovethelaw.com#sticky-footer-ad( +abovethelaw.com.sticky-footer-ad1 +abovethelaw.com#div-id-for-middle-300x250. +abovethelaw.com#div-id-for-top-300x250¡ +downdetector.com.au +downdetector.co.nz +allestoringen.nl +downdetector.com +abovethelaw.com +downdetector.ca +downdetector.mx.ad.leaderboard¾ +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +allestoringen.be +allestoringen.nl +downdetector.com +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk#ad-leaderboardÆ +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +allestoringen.be +allestoringen.nl +downdetector.com +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk + pcmag.com +.bottom-ad + +rpgbot.net .bottomad[ +insidepacksports.com +irishsportsdaily.com + sicem365.com + +texags.com .bottomAdx +economictimes.indiatimes.com +insidepacksports.com +irishsportsdaily.com + sicem365.com + +texags.com.topAd- +economictimes.indiatimes.com .topArtAdŒ +xda-developers.com +androidpolice.com + makeuseof.com + collider.com + gamerant.com + thegamer.com +cbr.com.adsninja-ad-zoneƒ +xda-developers.com +androidpolice.com + makeuseof.com + collider.com + gamerant.com + thegamer.com +cbr.com.ad-zone� +xda-developers.com +androidpolice.com + makeuseof.com + collider.com + gamerant.com + thegamer.com +cbr.com.ad-zone-container) + gamerant.com.adsbygoogle-noablateX +abovethelaw.com + filehippo.com + filehippo.de + filehippo.pl.ad--leaderboard= + filehippo.com + filehippo.de + filehippo.pl.ad--mpuA + filehippo.com + filehippo.de + filehippo.pl .ad--loading^ +diariodesevilla.es +smallbiztrends.com +charliekirk.com + malagahoy.es .ad-300x250! +charliekirk.com +.ad-728-90! +charliekirk.com +.ad-728x90ç +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com .ad-billboardä +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com +.ad-bottom4 +minecraftlist.org + ac-illust.com +.ad-center + 15track.com +.adscenterV +hollywoodreporter.com + billboard.com + foxnews.com + +time.com .ad-container4 +motaclarity.co.uk + softonic.com .ad-content! +motaclarity.co.uk.ad-item" +motaclarity.co.uk .ad-label + 247wallst.com.ad-div7 + 247wallst.com".ad-div.sidebar-div.stickLoop.boxD + +askmen.com.ad-gptüc1 +epicstream.com + billboard.com +.ad-holder  + agame.com.ad-leaderboard0 + speedtest.net.pure-u-custom-ad-rectangle& + +pcworld.pl + agame.com.ad-mpu + agame.com.ad-skyscraper¿ +peopleenespanol.com +allpeoplequilt.com +southernliving.com +marthastewart.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + instyle.com + parents.com + +health.com + +people.com + shape.com +bhg.com +ew.com.ad-slug, +southernliving.com.karma-sticky-rail3 +washingtontimes.com + ndnation.com.ad-slot- +biggeekdad.com + theblaze.com.ad-tagá +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com.ad-topè +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com.ad-top-bannerü +centralillinoisproud.com +conchovalleyhomepage.com +bigcountryhomepage.com +binghamtonhomepage.com +fourstateshomepage.com +everythinglubbock.com +mychamplainvalley.com +yourcentralvalley.com +arklatexhomepage.com +tristatehomepage.com +westernslopenow.com +mywabashvalley.com +rochesterfirst.com +wearecentralpa.com +newsnationnow.com +ourquadcities.com +valleycentral.com +wearegreenbay.com +fox5sandiego.com +myhighplains.com +splinternews.com +theinventory.com +myarklamiss.com +mypanhandle.com +mystateline.com +mytwintiers.com +nwahomepage.com +ozarksfirst.com +hellhorror.com +lifehacker.com +pahomepage.com +thetakeout.com +yourbigsky.com + clickhole.com + cultofmac.com + dcnewsnow.com + fox21news.com + fox44news.com + fox56news.com + informnny.com + upmatters.com + yourbasin.com + 8newsnow.com + cbs4indy.com + cenlanow.com + counton2.com + deadspin.com + jalopnik.com + keloland.com + ktalnews.com + localdvm.com + localsyr.com + theonion.com + wgnradio.com + brproud.com + fox2now.com + gizmodo.com + jezebel.com + nxstrib.com + thehill.com + theroot.com + wiproud.com + +avclub.com + +forbes.com + +fox4kc.com + +go-vip.net + +heraldo.es + +kotaku.com + +myfox8.com + +news10.com + +qcnews.com + +wfxrtv.com + +woodtv.com + +wowktv.com + +wvnstv.com + abc27.com + cbs17.com + cbs42.com + fox16.com + fox40.com + fox59.com + khon2.com + kron4.com + kxnet.com + phl17.com + wgntv.com + who13.com + +cw39.com + +fox8.com + +kark.com + +kdvr.com + +ketk.com + +kfor.com + +kget.com + +klfy.com + +koin.com + +krqe.com + +ksnt.com + +ktla.com + +ktsm.com + +kxan.com + +wane.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wrbl.com + +wric.com + +wsav.com + +wspa.com + +wtaj.com + +wtnh.com + +wtrf.com + +wwlp.com + +wytv.com +ksn.com.ad-unitô  +centralillinoisproud.com +conchovalleyhomepage.com +bigcountryhomepage.com +binghamtonhomepage.com +fourstateshomepage.com +everythinglubbock.com +mychamplainvalley.com +yourcentralvalley.com +arklatexhomepage.com +tristatehomepage.com +westernslopenow.com +mywabashvalley.com +rochesterfirst.com +wearecentralpa.com +newsnationnow.com +ourquadcities.com +valleycentral.com +wearegreenbay.com +fox5sandiego.com +myhighplains.com +myarklamiss.com +mypanhandle.com +mystateline.com +mytwintiers.com +nwahomepage.com +ozarksfirst.com +pahomepage.com +yourbigsky.com + dcnewsnow.com + fox21news.com + fox44news.com + fox56news.com + informnny.com + upmatters.com + yourbasin.com + 8newsnow.com + cbs4indy.com + cenlanow.com + counton2.com + keloland.com + ktalnews.com + localdvm.com + localsyr.com + wgnradio.com + brproud.com + fox2now.com + nxstrib.com + thehill.com + wiproud.com + +fox4kc.com + +go-vip.net + +myfox8.com + +news10.com + +qcnews.com + +wfxrtv.com + +woodtv.com + +wowktv.com + +wvnstv.com + abc27.com + cbs17.com + cbs42.com + fox16.com + fox40.com + fox59.com + khon2.com + kron4.com + kxnet.com + phl17.com + wgntv.com + who13.com + +cw39.com + +fox8.com + +kark.com + +kdvr.com + +ketk.com + +kfor.com + +kget.com + +klfy.com + +koin.com + +krqe.com + +ksnt.com + +ktla.com + +ktsm.com + +kxan.com + +wane.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wrbl.com + +wric.com + +wsav.com + +wspa.com + +wtaj.com + +wtnh.com + +wtrf.com + +wwlp.com + +wytv.com +ksn.com.ad-unit--leaderboardâ +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + theroot.com + +avclub.com + +kotaku.com.ad-wide +twinfinite.net.adDivA + filehippo.com + filehippo.de + filehippo.pl .ad__content! + mashable.com .ad_container9 +hollywoodreporter.com + billboard.com .ad_desktop +ccm.net .ad_right + speedtest.net .ads-left + speedtest.net +.ads-right + +nasdaq.com .ads__inline) + +nasdaq.com.ads__midpage-fullwidth + +nasdaq.com .ads__native% + +nasdaq.com.ads__right-rail-ad) + +nasdaq.com.article-header__railAd + +nasdaq.com .header-ads. +boredpanda.com + thedirect.com.adsbox) +searchenginejournal.com +.adv-labelY +jetztspielen.de +gamesgames.com + spelletjes.nl + +juegos.com +gry.pl.advert + +motor1.com.ap + +motor1.com.apb +xgn.nl .billboard-ad, + 247wallst.com + xlrforum.com.box-adµ +latimescrosswordanswers.com +timesofindia.indiatimes.com +centralillinoisproud.com +conchovalleyhomepage.com +onlinedoctranslator.com +bigcountryhomepage.com +binghamtonhomepage.com +fourstateshomepage.com +everythinglubbock.com +mychamplainvalley.com +thecalculatorsite.com +yourcentralvalley.com +arklatexhomepage.com +askanydifference.com +gardenloversclub.com +simplypsychology.org +thehockeywriters.com +tristatehomepage.com +checkmategaming.com +familyeducation.com +thetrendspotter.net +westernslopenow.com +mywabashvalley.com +rochesterfirst.com +smallbiztrends.com +wearecentralpa.com +ygorganization.com +broadwayworld.com +frontpage.pch.com +newsnationnow.com +ourquadcities.com +valleycentral.com +wearegreenbay.com +cookinglight.com +fox5sandiego.com +jailexchange.com +myhighplains.com +tractorbynet.com +charliekirk.com +factsherald.com +festivalnet.com +foodandwine.com +myarklamiss.com +mypanhandle.com +mystateline.com +mytwintiers.com +nwahomepage.com +ozarksfirst.com +scamadviser.com +allrecipes.com +delftstack.com +hellhorror.com +pahomepage.com +wuxiaworld.com +yourbigsky.com + allhiphop.com + barnfinds.com + fox21news.com + fox44news.com + gm-trucks.com + informnny.com + myrecipes.com + upmatters.com + yourbasin.com + 8newsnow.com + cbs4indy.com + cenlanow.com + counton2.com + gtplanet.net + keloland.com + linuxize.com + localdvm.com + localsyr.com + reelgood.com + sicem365.com + wgnradio.com + 15track.com + brproud.com + fox2now.com + foxnews.com + play2048.co + wiproud.com + +fox4kc.com + +health.com + +myfox8.com + +news10.com + +texags.com + +wfxrtv.com + +woodtv.com + +wowktv.com + +wvnstv.com + +youpdf.com + abc27.com + cbs17.com + cbs42.com + chess.com + fox16.com + fox40.com + fox59.com + khon2.com + kron4.com + kxnet.com + pcmag.com + phl17.com + wgntv.com + who13.com + +cw39.com + +fox8.com + +kark.com + +kdvr.com + +ketk.com + +kfor.com + +kget.com + +klfy.com + +koin.com + +krqe.com + +ksnt.com + +ktla.com + +ktsm.com + +kxan.com + +wane.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wrbl.com + +wric.com + +wsav.com + +wspa.com + +wtnh.com + +wtrf.com + +wwlp.com + +wytv.com +ksn.com .adv_left�3 +1gcp-rc-823-financialpost.gstage.postmedia.digital3 +1gcp-rc-830-financialpost.gstage.postmedia.digital2 +0gcp-rc-823-nationalpost.gstage.postmedia.digital2 +0gcp-rc-830-nationalpost.gstage.postmedia.digital- ++gcp-rc-830-lfpress.gstage.postmedia.digital+ +)gcp-aa-499-lfpress.gdev.postmedia.digital +centralillinoisproud.com +conchovalleyhomepage.com +gstage.postmedia.digital +bigcountryhomepage.com +binghamtonhomepage.com +fourstateshomepage.com +gdev.postmedia.digital +everythinglubbock.com +mychamplainvalley.com +yourcentralvalley.com +arklatexhomepage.com +tristatehomepage.com +westernslopenow.com +mywabashvalley.com +rochesterfirst.com +wearecentralpa.com +ygorganization.com +midwestliving.com +newsnationnow.com +ourquadcities.com +valleycentral.com +wearegreenbay.com +borderreport.com +cookinglight.com +fox5sandiego.com +myhighplains.com +foodandwine.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nwahomepage.com +ozarksfirst.com +allrecipes.com +pahomepage.com +yourbigsky.com + fox21news.com + fox44news.com + informnny.com + myrecipes.com + upmatters.com + yourbasin.com + 8newsnow.com + cbs4indy.com + cenlanow.com + counton2.com + keloland.com + localdvm.com + localsyr.com + wgnradio.com + brproud.com + fox2now.com + wiproud.com + +fox4kc.com + +health.com + +myfox8.com + +news10.com + +wfxrtv.com + +woodtv.com + +wowktv.com + +wvnstv.com + abc27.com + cbs17.com + cbs42.com + fox16.com + fox40.com + fox59.com + khon2.com + kron4.com + kxnet.com + phl17.com + wgntv.com + who13.com + +cw33.com + +cw39.com + +fox8.com + +kark.com + +kdvr.com + +ketk.com + +kfor.com + +kget.com + +klfy.com + +koin.com + +krqe.com + +ksnt.com + +ktla.com + +ktsm.com + +kxan.com + +wane.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wrbl.com + +wric.com + +wsav.com + +wspa.com + +wtnh.com + +wtrf.com + +wwlp.com + +wytv.com +ksn.com.googleAdSenseÙ +pastemagazine.com +splinternews.com +theinventory.com +gelderlander.nl +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + destentor.nl + jalopnik.com + theonion.com + bndestem.nl + gizmodo.com + jezebel.com + theroot.com + tubantia.nl + +avclub.com + +kotaku.com +pzc.nl +ad.nl +bd.nl +ed.nl.dfp” +hollywoodreporter.com +seattletimes.com +boredpanda.com + billboard.com + siviaggia.it + virgilio.it + +offers.com + +dilei.it.dfp-ad + +cars.com .display-ad_ +besteveralbums.com +thedailybeast.com +seattletimes.com +nichegamer.com +.footer-ad + titantv.com.gAd + +ghacks.net +.ghacks-adS +gamerevolution.com +comingsoon.net + mandatory.com + dogtime.com.gpt-adS +timesofindia.indiatimes.com +thestudentroom.co.uk + +forbes.com +.header-ad + inquisitr.com.iab + 247wallst.com +.iframe-adG +gamerevolution.com +comingsoon.net + titantv.com .leaderboardÞ +goodhousekeeping.com +thepioneerwoman.com +cosmopolitan.com +oprahdaily.com +prevention.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + ndnation.com + veranda.com.leaderboard-ad/ +comingsoon.net.leaderboard-ad-container› +wegotthiscovered.com +notalwaysright.com +progameguides.com +dotesports.com +themarysue.com +twinfinite.net + gamepur.com.proper-ad-unit$ +twinfinite.net.primis-player, +twinfinite.net#mvp-main-content-wrap/ +boredpanda.com + agame.com .pub_300x250  + +foot01.com#pub_300x250-2 + +foot01.com #pub_728x90-1 + +foot01.com #pub_728x90-2 + +foot01.com.pub) + billboard.com + +cars.com.rail-add +jetztspielen.de +gamesgames.com + spelletjes.nl + +juegos.com + agame.com +gry.pl.sgAd  +allthetests.com .squareAd  +wantedinrome.com.td-ad-mT +goodnewsnetwork.org +factsherald.com + +bjpenn.com.td-a-rec-id-custom_ad_1F +goodnewsnetwork.org +factsherald.com.td-a-rec-id-custom_ad_2A +goodnewsnetwork.org + +bjpenn.com.td-a-rec-id-custom_ad_3�ðA +goodnewsnetwork.org + +bjpenn.com.td-a-rec-id-custom_ad_4* + +bjpenn.com.td-a-rec-id-custom_ad_5) +factsherald.com.td-header-ad-wrap0 +boredpanda.com +comingsoon.net.text-adÙ +thehindubusinessline.com +malayalam.filmibeat.com +pythonforbeginners.com +conservativebrief.com +clubhouse.swingu.com +thegatewaypundit.com +thephoblographer.com +wegotthiscovered.com +americanthinker.com +deccanchronicle.com +heroichollywood.com +natchezdemocrat.com +tamil.filmibeat.com +timesofsandiego.com +worldtimeserver.com +worldtimeserver.com +manoramaonline.com +doyouremember.com +leasticoulddo.com +clutchpoints.com +codeconquest.com +dailyfaceoff.com +hiphoplately.com +khaleejtimes.com +oilersnation.com +thestatesman.com +canucksarmy.com +careerindia.com +drivespark.com +goodreturns.in +screengeek.net +studyfinds.org + allhiphop.com + hancinema.net + indiawest.com + puckpedia.com + spurstalk.com + telugu360.com + thesaurus.net + altpress.com + asianage.com + euronews.com + oneindia.com + weregeek.com + grabien.com + vikatan.com + +gizbot.com + +mixi.media + +mykhel.com + +rpgbot.net + +sakshi.com + +tupaki.com + abc-7.com + issuu.com + joblo.com + nbc-2.com + +wimp.com +wnd.com +lfg.co .vuukle-adsà…% +#bestguide-retirementcommunities.com$ +"accounting-basics-for-students.com$ +"dellwindowsreinstallationguide.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.org +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +herbal-supplement-resource.com +application-remuneratrice.com +betriebswirtschaft-lernen.net +everything-about-concrete.com +financialfreedomcountdown.com +freeprintablecertificates.net +freeprintablemedicalforms.com +gewuenschtestes-wunschkind.de +hospitalitytrainingcenter.com +better-fundraising-ideas.com +codesforuniversalremotes.com +computeraideddesignguide.com +constructionreviewonline.com +easternsierrafishreports.com +economictimes.indiatimes.com +happybirthdaywishesworld.com +affordablehousingonline.com +change-management-coach.com +dailycelebritycrossword.com +electricianapprenticehq.com +ensenada-baja-vacations.com +expertprogrammanagement.com +how-to-write-a-book-now.com +architecturalafterlife.com +china-family-adventure.com +classickitchensupplies.com +das-unternehmerhandbuch.de +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +about-air-compressors.com +accounting-simplified.com +africanamericangrants.org +bordersandbucketlists.com +crochetpatterncentral.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +easyretrievertraining.com +encyclopedia-titanica.org +famous-mathematicians.com +germanshepherdcountry.com +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +autobusesycamioneras.com +basicenglishspeaking.com +bestlovetextmessages.com +bestpromotionalcodes.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +carpentry-pro-framer.com +coltivazionebiologica.it +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +easydrawingtutorials.com +english-for-students.com +escribircanciones.com.ar +everything80spodcast.com +freelancewritinggigs.com +fromthegreennotebook.com +groupdiscussionideas.com +gundamkitscollection.com +howtoremoveblackmold.com +7littlewordsanswers.com +allabouttabletennis.com +articlerewritertool.com +bermuda-attractions.com +bodylanguagecentral.com +campertrailerreport.com +contemplatingsweets.com +crosswordanswers911.net +daskreativeuniversum.de +delawarebusinessnow.com +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +freeclinicdirectory.org +fuerteventurazeitung.de +gadget-gadgetstouse.com +globalfilmlocations.net +houstoncasemanagers.com +alldistancebetween.com +americanbullydaily.com +automationrhapsody.com +bigblueinteractive.com +boardofcosmetology.net +calculerpourcentage.fr +citizensustainable.com +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +driverslicensetest.net +easyscienceforkids.com +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fifacareermodetips.com +fishkeepingforever.com +florida-palm-trees.com +free-sample-letter.com +freeasestudyguides.com +freshmorningquotes.com +futbolenvivomexico.com +goodhomeautomation.com +hamblyscreenprints.com +happyfrenchbulldog.com +howtofixheadphones.com +identifythiscaller.com +interpretation-reve.fr +keralahousedesigns.com +accountingcapital.com +aconsciousrethink.com +amazingmemovement.com +automobile-conseil.fr +bed-bugs-handbook.com +buffalohockeybeat.com +californiabeaches.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +congratulationsto.com +consciousreminder.com +conservativebrief.com +coolgoodcaptions.info +corporateofficehq.com +countertopadvisor.com +dragoninquisition.com +europeforvisitors.com +fashionweekonline.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +freezermealfrenzy.com +futbolenvivochile.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +historycollection.com +homesteadingtoday.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +25yearslatersite.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +askanydifference.com +babeltechreviews.com +balancedpolitics.org +barcode-generator.de +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +blackeyepolitics.com +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +clubhouse.swingu.com +cnaclassesnearme.com +codycrossanswers.com +codycrossanswers.net +conseil-nord-sud.com +contrahealthscam.com +crosswordzone301.com +designsbystudioc.com +directpowerdeals.com +dmtranslationscn.com +donotdpfdelete.green +englishteststore.net +familyfoodgarden.com +fastfood-recipes.com +finnsfishingtips.com +fishkeepingworld.com +framinghamsource.com +fullcirclecinema.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +guitarchords.country +healthywithhoney.com +householdwonders.com +howtotrainthedog.com +huskypuppiesinfo.com +imagecolorpicker.com +indianhindunames.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +accountingverse.com +accuracyproject.org +adventuregamers.com +americanthinker.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +appraisersforum.com +arcaneintellect.com +armstrongmywire.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +cdltrainingspot.com +chitrasfoodbook.com +churchsoundtips.com +comofuncionaque.com +conqueryourexam.com +contactsenators.com +coolandportable.com +corporate-cases.com +crittercleanout.com +crosswordsolver.org +cruisespotlight.com +deccanchronicle.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +electrictoolbox.com +euromaidanpress.com +factory-outlets.org +familyeducation.com +fifamobileguide.com +findwhocallsyou.com +firestickmaster.com +footballfancast.com +foundationfairy.com +freewateradvice.com +frenchiejourney.com +gamblebaycoffee.com +garnishmentlaws.org +get-itsolutions.com +getandroidstuff.com +giftideascorner.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +halfglassgaming.com +heroichollywood.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +hometownlocator.com +how2drawanimals.com +howtosandafloor.com +immigrationroad.com +introvertspring.com +ireland-calling.com +irishmusicdaily.com +jobapplications.net +kalender-uhrzeit.de +academicinvest.com +advantagemeals.com +alien-covenant.com +anruferauskunft.de +appwalkthrough.com +asubtlerevelry.com +autismus-kultur.de +barstoolsports.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +busymomshelper.com +calledtowander.com +candycrushtips.com +carserviceland.com +childcarecenter.us +christiantoday.com +cincinnatibell.net +clickspeedtest.com +collegefactual.com +commandwindows.com +commeunefleche.com +coolhikinggear.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +criticalcactus.com +crosswordgiant.com +crucigramas911.com +decorhomeideas.com +decorologyblog.com +destinynewshub.com +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +expandetumente.com +explorebiotech.com +exploreclarion.com +faithinthenews.com +fastfoodprecios.mx +feelingthevibe.com +fishtanksetups.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +historyforkids.net +howtoheatpress.com +howtosolutions.net +inlandaquatics.com +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +10fastfingers.com +5ebackgrounds.com +aboutthemafia.com +access-excel.tips +appledystopia.com +aratariathome.com +articlemyriad.com +askdavetaylor.com +baldandbeards.com +battlemetrics.com +bearnakedfood.com +benderfitness.com +boatexportusa.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +cadblocksfree.com +candycrushmom.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +chargeprotect.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +compatibilite.org +concienciaeco.com +connectedwiki.com +convertwizard.com +crosswordbuzz.com +crosswordguru.com +deptofnumbers.com +designermixes.org +disneyaddicts.com +dodgersnation.com +doyouremember.com +drivedistance.com +eapfoundation.com +ecouter-radio.com +ehomeremedies.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +fishingskillz.com +fittesttravel.com +freshersvoice.com +friendsforlife.me +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +goingfitunfit.com +gravelcyclist.com +grrrltraveler.com +guide-irlande.com +guidemusulman.com +guineapigtube.com +hightechforpc.com +hollywoodmask.com +homeawakening.com +homeguideplan.com +homesteadgeek.com +howto-android.com +incredibleart.org +influenceimmo.com +inglesgourmet.com +inglesmundial.com +inmate-lookup.org +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jtouchofstyle.com +jumbleanswers.com +justsolitaire.com +kerriscrochet.com +kicksologists.com +klimatabelle.info +activenorcal.com +afkarenaboss.com +allestoringen.be +allestoringen.nl +alteredgamer.com +askbobrankin.com +beerealhoney.com +bleedingcool.com +bodypaintips.com +booleanworld.com +breatheheavy.com +briankoponen.com +browsandbody.com +cabaneaidees.com +cabosanlucas.net +camzillasmom.com +catnamescity.com +clutchpoints.com +codeconquest.com +constitution.org +construct-ed.com +convertunits.com +corona-teller.nl +dailyanswers.net +dailyfaceoff.com +dailyhistory.org +distancecalc.com +diymarketers.com +downdetector.com +dubai-online.com +easytutoriel.com +eat-pregnant.com +englishhints.com +englishmaven.org +escapenormal.com +essentialsql.com +feettometres.com +find-us-here.com +freeeconhelp.com +golfcarttips.com +hausbau-forum.de +hilfdirselbst.ch +hiphoplately.com +hiphopmakers.com +improvehoops.com +italialiving.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +khaleejtimes.com +1001gardens.org +1001pallets.com +abi-rechner.com +about-twins.com +aldvingomes.com +aminstitute.com +anabolicmen.com +android-user.de +answersking.com +appcheating.com +artisansweb.net +astrosaxena.com +ballotpedia.org +bauredakteur.de +behindaname.com +bikehistory.org +birdsflight.com +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +buddysecret.com +canucksarmy.com +careerindia.com +celebcenter.net +celebsolino.com +centurylink.net +cleanerwiki.com +codevscolor.com +crime-nieuws.nl +dailyorange.com +decortweaks.com +dialingcode.com +dicotravail.com +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +easyebiking.com +eslspeaking.org +euro-muenzen.tv +expertpublic.fr +fantasypros.com +fbfeudguide.com +festivalnet.com +fibrojedi.me.uk +fifarosters.com +fifatalents.com +flight-radar.eu +freakyjolly.com +gabesguides.com +galaxy-tipps.de +gamenguides.com +georgetakei.com +gotoportugal.eu +govsalaries.com +great-taste.net +group-games.com +growertoday.com +guitartwitt.com +hawaiiantel.net +healtholino.com +helptostudy.com +hotexamples.com +jumblesolver.us +justjaredjr.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +astrocenter.de +astrocenter.fr +auralcrave.com +bigskyfans.com +boredpanda.com +bornceltic.com +calculate.plus +catkingpin.com +clutchaxes.com +comicsands.com +comingsoon.net +cookitonce.com +couponsock.com +craftwhack.com +csharpcodi.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +cyclingpro.net +dailyactor.com +dazepuzzle.com +de-reviews.com +delftstack.com +devtrackers.gg +discuss.com.hk +disposalxt.com +dramapanda.com +drivespark.com +drivingtest.ca +droidviews.com +earrockers.com +elnuevodia.com +ezprepping.com +facthacker.com +filmthreat.com +freeonline.org +funkelfaden.de +gardenista.com +gbodyforum.com +gemstagram.com +getriddles.com +ghostarrow.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +goodreturns.in +grammarhow.com +hiphop24x7.com +homesnacks.com +hundredkey.com +huurportaal.nl +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +jovenesweb.com + abc-kinder.de + ac-illust.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + altafiber.net + animalhow.com + appamatix.com + areavibes.com + avasdemon.com + bakealish.com + barnfinds.com + bitemybun.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + cenicienta.fr + chordzone.org + classclef.com + costcofan.com + coupons.pizza + cplusplus.com + cultofmac.com + dantri.com.vn + dasparking.de + decoratoo.com + dreammean.com + ebicycles.com + encuentos.com + englicist.com + fangraphs.com + feiertag.info + foodgroove.de + freelists.org + funquizzes.uk + games4esl.com + geekmarkt.com + gelending.com + ggccoffee.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hancinema.net + hikespeak.com + howtoedge.com + hughesnet.com + hxbenefit.com + ideas4diy.com + ikeaddict.com + indiawest.com + ineskohl.info + interieurs.fr + intheyard.org + involvery.com + ipaddress.com + iranianuk.com + japonismo.com + java2blog.com + kididdles.com + knifeuser.com + 38jiejie.com + aboblist.com + acqnotes.com + ak4tsay1.com + akinator.com + allclash.com + allsides.com + altpress.com + applersg.com + asianage.com + audiomav.com + ausdroid.net + autoblog.com + bizsugar.com + blengaone.de + blogchef.net + blogsdna.com + bygonely.com + careerdp.com + carlicas.com + cat-news.net + codstats.net + collider.com + corrector.co + costumet.com + d9sports.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + eafinder.com + emulsive.org + euronews.com + excelhow.net + farmchat.com + fedsmith.com + gearhose.com + gojinshi.com + gpspower.net + grindgis.com + h1bdata.info + heydonna.com + hometips.com + ipadable.com + iskmogul.com + jobmob.co.il + jspinyin.net + katverse.com + keytarhq.com + kidzfeed.com + 15track.com + aglasem.com + aladin.info + allkpop.com + animals.net + answers.org + apestan.com + appdated.de + barkhow.com + clash.world + cradiori.co + eslgold.com + finbold.com + finclan.com + gerweck.net + grabien.com + hairmag.org + hobbeasy.de + je-rime.com + johndee.com + justuto.com + +10roar.com + +365tips.be + +autorai.nl + +bayart.org + +beacar.com + +boston.com + +bovees.com + +ceos3c.com + +cubshq.com + +dev2qa.com + +dogavie.fr + +dvdupc.com + +gizbot.com + +kempoo.com + 6sqft.com + abc-7.com + agame.com + clclt.com + hobbr.com + issuu.com + joblo.com + jpost.com + kitco.com + +citas.in + +dilc.org + +ehso.com + +ifly.com + +in5d.com + +iturf.fr + +k2rx.com +cbr.com +ginx.tv[id^="div-gpt-ad"]Œ$ +"secretcopycatrestaurantrecipes.com! +newenglandhistoricalsociety.com! +real-world-physics-problems.com! +socialsecurityofficesnearme.com +soulfoodandsoutherncooking.com +mexican-authentic-recipes.com +laughteronlineuniversity.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +snippetsthroughthewindow.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +sprueche-zum-verschenken.de +thehealthsciencejournal.com +timesofindia.indiatimes.com +lasourisglobe-trotteuse.fr +learning-styles-online.com +mentalhealthworksheets.com +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +longrangesportfishing.net +newyorktimescrossword.net +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +reisekostenabrechnung.com +remedes-de-grand-mere.com +returnpolicyexplained.com +scholarship-positions.com +spideridentifications.com +total-german-shepherd.com +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +personality-database.com +significadodetusueno.com +signification-prenom.net +socialstudiesforkids.com +telefoonnummerzoeken.net +thehindubusinessline.com +thehomesteadsurvival.com +thehydroponicsplanet.com +tutorials-raspberrypi.de +vision-environnement.com +labradorlovingsouls.com +lagrenouilletricote.com +latcrosswordanswers.com +localkittensforsale.com +lovetextmessages.com.ng +machinelearningplus.com +maison-et-domotique.com +malayalam.filmibeat.com +marketingstudyguide.com +mathhomeworkanswers.org +natural-health-zone.com +nytcrosswordanswers.com +onlinedoctranslator.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +significationsmileys.fr +sims4studiodownload.com +singlemothersgrants.org +startwoodworkingnow.com +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +kochenkinderleicht.com +livinginacontainer.com +manifestationmagic.net +mapleleafshotstove.com +michigan-sportsman.com +motocrossactionmag.com +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +personaldiecutting.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +professeur-poteaux.com +protoolsproduction.com +pythonforbeginners.com +realestatecareerhq.com +recyclingcenternear.me +se-faire-rembourser.fr +simplytrinicooking.com +simplytrinicooking.org +somethingturquoise.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +tremplin-numerique.org +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +wsjcrosswordsolver.com +leftbrainedartist.com +legalinsurrection.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +norcalfishreports.com +officesolutionpro.com +optimizehealth365.com +oregonfishreports.com +paraphrasing-tool.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +sapintegrationhub.com +schrift-generator.com +serving-ice-cream.com +ssofficelocations.org +symbolic-meanings.com +thecalculatorsite.com +unternehmerlexikon.de +verificationguide.com +weakwifisolutions.com +wordscapesanswers.net +workplacefairness.org +yourfreetemplates.com +yourhearinghelper.com +letslearnfinance.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +muscleandfitness.com +mydreamsymbolism.com +namegeneratorfun.com +nytimescrossword.org +oneminuteenglish.org +onlinepianocoach.com +paranormalschool.com +plagiarismchecker.co +probleme-paiement.fr +projectpractical.com +realcajunrecipes.com +removeandreplace.com +roemische-zahlen.net +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +significadoemojis.es +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +sortingwithstyle.com +strangeandcreepy.com +taraletsanywhere.com +tarotalmabarrios.com +texasgranolagirl.com +thegatewaypundit.com +thehockeywriters.com +thephoblographer.com +therightmessages.com +tightfistfinance.com +truthordare-game.com +wegotthiscovered.com +weighttraining.guide +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +worldstopexports.com +writingtipsoasis.com +laughingatnarcs.com +legaldictionary.net +longrangesignal.com +madformadelskere.dk +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mccommandcenter.com +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mobileinternist.com +motocrossadvice.com +mumsdelivery.com.au +mybendbroadband.com +natchezdemocrat.com +npinumberlookup.org +onlinehelpguide.com +parceltracking.info +paweatheraction.com +phonedealstoday.com +pizzacappuccino.com +pourquoimabanque.fr +priceprediction.net +printables4kids.com +prisonerofclass.com +problemsphysics.com +psychologyhub.co.uk +ricettadicucina.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smellyfeetcures.com +smileybedeutung.com +snagfreesamples.com +soapoperadigest.com +spirit-of-metal.com +sportcoaching.co.nz +staumelder-karte.de +steamcleanerpro.com +studyabroadaide.com +sweepsadvantage.com +tamil.filmibeat.com +tarif-disneyland.fr +techygeekshome.info +testpreptoolkit.com +theancestorhunt.com +thebirthdaybest.com +thecrochetspace.com +thefipharmacist.com +thegolfeinstein.com +thehamsterhouse.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +thymeforcooking.com +timesofsandiego.com +topdrawersoccer.com +tuerkeireiseblog.de +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +washingtontimes.com +whats-your-sign.com +wir-essen-gesund.de +wordunscrambler.com +workfromhomejobs.me +worldtimeserver.com +wrestlingrumors.net +lacremedugaming.fr +lectinfreemama.com +manoramaonline.com +methodephysique.fr +midcenturyhome.com +motorbicycling.com +myenglishpages.com +mystonemeaning.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +readylifestyle.com +realmenuprices.com +realmofhistory.com +rebootmygarage.com +restartatorium.com +rollerskatedad.com +signe-zodiaque.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +spirit-of-rock.com +sprueche-liste.com +spss-tutorials.com +sweetiessweeps.com +taxifarefinder.com +teacupdogdaily.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thecrafterlife.com +theilluminerdi.com +themotordigest.com +toytraincenter.com +trackingadvice.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +voiture-conseil.fr +worlddogfinder.com +wowfreestuff.co.uk +writingcommons.org +xtremegaminerd.com +zdroweporadniki.pl +znacenje-imena.com +kodi-tutorials.uk +ladybugplanet.com +lanzateyviaja.com +leasticoulddo.com +lifewithjanet.com +linuxuprising.com +livemusicblog.com +loving-travel.com +mediacomtoday.com +microbeonline.com +midlifeguitar.com +mybakingbliss.com +myfunkytravel.com +mywordcookies.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +palmaairport.info +paper-replika.com +parasitipedia.net +pendrivelinux.com +perfumemaster.com +powerlineblog.com +prisoninsight.com +prospects1500.com +raspberrytips.com +rateyourmusic.com +ratzillacosme.com +renewcanceltv.com +resetoillight.com +sabersourcing.com +sakhyulations.com +scrabblecheat.com +searchandnews.com +sentencehouse.com +septictankpro.com +seriouslyfish.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +solutionjeux.info +standoutbooks.com +steelernation.com +stevewyborney.com +sveopoznatima.com +swingcompleto.com +tangerinezest.com +techpilipinas.com +thefinertimes.com +thekonsulthub.com +thelawnreview.com +theyumyumclub.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +villages-news.com +vivaolinux.com.br +wearableinear.com +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +zkelectronics.com +landyourlife.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovewideopen.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +makeeasylife.com +mentehermosa.net +metaladdicts.com +michaelsaves.com +michelacosta.com +mysmartahome.com +nadabookinfo.com +natlawreview.com +oakvillenews.org +offshoreblue.com +oilersnation.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +parcellookup.com +petgearguide.com +phonecurious.com +programcreek.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +redargentina.com +rimworldbase.com +roadtrailrun.com +routenplaner.app +router-reset.com +scitechdaily.com +sealwithease.com +seattletimes.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +skin-tracker.com +sudokusolver.net +tagquestions.net +tarif-lettre.com +tasteerecipe.com +teluguadda.co.in +texasoutside.com +text-compare.com +the-diy-life.com +thedairydish.com +themoneyfarm.org +thepersonage.com +thestatesman.com +tractorbynet.com +trendcentral.com +tryoutnature.com +turfmechanic.com +valdovaccaro.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +wickedhorror.com +wikinetworth.com +yagisanatode.com +kylonpowell.com +le-citazioni.it +lejustechoix.fr +lunchtime.co.nz +lyricfinder.org +madbackyard.com +maestraanita.it +mailsmartly.com +materialguru.de +melanieredd.com +miamiscapes.com +mots-croises.ch +mspoweruser.com +mychromebook.fr +myswissalps.com +netflixlife.com +noorsrecipe.com +nortechplus.com +numberspy.co.uk +offroadable.com +onlineqatar.com +outletbound.com +ownthegrill.com +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +pregnanteve.com +primerahora.com +programtalk.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +r-statistics.co +racetothewh.com +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +sandiegocan.org +sanovnik365.com +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +scotlandinfo.eu +seniordaily.com +smartandroid.fr +sourcedaddy.com +sourceforge.net +speakersmag.com +startupback.com +swgohevents.com +techacrobat.com +techsviewer.com +techweekmag.com +textcompare.org +theballzone.com +thekewlshop.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +tools-unite.com +truththeory.com +vegansandra.com +villagenews.com +warehouseiq.com +wetteronline.at +wetteronline.ch +wetteronline.de +wondermondo.com +yogihosting.com +liaomeiguo.com +live-tennis.eu +liverampup.com +lolcounter.com +lostsaloon.com +loupetroop.com +mailtoself.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +moviemaker.com +msfsaddons.org +myboldbody.com +near-place.com +nursestudy.net +olive-drab.com +onecarspot.com +orangefizz.net +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +portanapoli.de +puckcomics.com +rccgonline.org +rentola.com.au +reve-islam.com +roadsnacks.net +sa-piscine.com +scijournal.org +scotchnoob.com +screengeek.net +serieophile.fr +slappedham.com +snowycodex.com +stellpower.com +stickyball.net +studyfinds.org +suddenlink.net +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +theopenmat.com +thepettown.com +thermomeat.com +thewebdev.info +toutandroid.fr +treatnheal.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +wellrigged.com +welovepuns.com +windstream.net +wnynewsnow.com +xflnewshub.com +yamahaclub.com +yogurtnerd.com +zacsgarden.com + kosmofoto.com + lotsearch.net + makeuseof.com + md5online.org + mediafire.com + metalwani.com + mrxstitch.com + osrsguide.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + puckpedia.com + relayhero.com + rentlingo.com + rentola.co.uk + rodeosusa.com + romapress.net + softgenius.co + speedtest.net + spurstalk.com + starrymag.com + statsmash.com + storynory.com + techaeris.com + techwhoop.com + telugu360.com + template.city + theparking.eu + thepricer.org + thesaurus.net + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + tvinsider.com + uspspoint.com + wanderera.com + wordplays.com + wordrelax.com + workgearz.com + wyonation.com + ybierling.com + yorkiemag.com + laviasco.com + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + ls-portal.eu + manuals.plus + mashable.com + meugamer.com + mobile57.com + moredirt.com + muchfeed.com + mygrande.com + newsweek.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + oneindia.com + outlet-in.de + pathofex.com + photo-ac.com + pickytop.com + plantuml.com + playerone.tv + pngtosvg.com + price.com.hk + puckjunk.com + quizerry.com + resumeok.com + rokuguru.com + sanovnik.org + sdlookup.com + simple30.com + slashdot.org + stattrek.com + sysprobs.com + tecklyfe.com + theblaze.com + thesukan.net + tigernet.com + timelines.ws + timemaps.com + topozone.com + traeumen.org + tulamama.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + weregeek.com + wikichip.org + wikifame.org + wowpooch.com + zobacz-to.pl + koskila.net + lebegeil.de + mamanly.com + mapio.co.uk + myzitate.de + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + papelea.com + phpflow.com + play2048.co + rankred.com + rentola.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thekeea.com + thepaws.net + titantv.com + toolstud.io + vikatan.com + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +mixi.media + +momdot.com + +mtlurb.com + +mydict.com + +mykhel.com + +noobie.com + +overiq.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rpgbot.net + +ryadel.com + +sakshi.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +tupaki.com + +typing.com + +uproxx.com + +uwants.com + +waaytv.com + +wololo.net + +wowway.net + +youpdf.com + +zerauto.nl + mapio.net + marsja.se + names.org + nbc-2.com + nygal.com + pcmag.com + petdt.com + trovas.ch + tvcomp.uk + uscho.com + vurni.com + we-ha.com + wow4u.com + wprock.fr + zcom.tech + +melty.fr + +wimp.com +pch.com +see.cam +tds.net +wnd.com +lfg.co +rgb.to +sny.tv +win.gg[id^="div-gpt-ad"]º!! +dailythemedcrosswordanswers.net +nutsandboltsspeedtraining.com +environmental-conscience.com +asvabpracticetestonline.com +softwaretestingmaterial.com +onlinepersonalitytests.org +datasciencemadesimple.com +emprendiendohistorias.com +homesteadsurvivalsite.com +refrigeratorsreviewed.com +saltwateraquariumblog.com +theproductiveengineer.net +indifferentlanguages.com +instrumentationtools.com +scuffedentertainment.com +topwoodworkingadvice.com +countertopspecialty.com +my-package-tracking.com +offgridpermaculture.com +overseasattractions.com +qualitydogresources.com +silverlininglessons.com +spelling-words-well.com +bestcateringprices.com +brighthubeducation.com +classicrockhistory.com +commercialdriverhq.com +france-hotel-guide.com +groundedlifetravel.com +informatique-mania.com +journeydogtraining.com +localpuppybreeders.com +nonphoneworkathome.com +rentalhousingdeals.com +streetsmartkitchen.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +williamsonhomepage.com +yummyindiankitchen.com +aginghealthytoday.com +birthdaywishes.expert +centraldesermones.com +coloringpagesonly.com +dailykillersudoku.com +franchisesports.co.uk +motivationandlove.com +notesfromtheporch.com +sportfishingbuddy.com +squarefootagearea.com +thecleverbusiness.com +aboutchromebooks.com +bornagainboating.com +charactercounter.com +codycrossanswers.org +divinedaolibrary.com +experthomereport.com +fanstranslations.com +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +nutrition-charts.com +oursportscentral.com +pedigreedatabase.com +perfectdogbreeds.com +shtfpreparedness.com +windows101tricks.com +dataoverhaulers.com +esportsearnings.com +hacktheminotaur.com +itsolutionstuff.com +myenglishteacher.eu +r-graph-gallery.com +totalmotorcycle.com +tutorialgateway.org +wordscapescheat.com +wordstodescribe.com +accountinguide.com +altcodeunicode.com +badgerandblade.com +boiteachansons.net +codewithmukesh.com +comicbookrealm.com +favoredleather.com +fedsdatacenter.com +happyvagabonds.com +havredailynews.com +lettersformats.com +marrieddivorce.com +miracomosehace.com +pdfwordconvert.com +salaryaftertax.com +sportfishingbc.com +sunrise-sunset.org +truthorfiction.com +untappedcities.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +yourdailyglobe.com +askthebuilder.com +charbelnemnom.com +costcoinsider.com +dreamglossary.com +findnicknames.com +healthtipsnow.net +homeguideguru.com +ilovedogscute.com +online-python.com +parkingaccess.com +somosmamas.com.ar +tckpublishing.com +thecabindiary.com +thedisinsider.com +thepythoncode.com +tiremeetsroad.com +acessaber.com.br +beatlesbible.com +cakedecorist.com +celebritydig.com +dailycrochet.com +diydoctor.org.uk +electrical4u.net +fantasynerds.com +feelingvegas.com +freejobalert.com +generatormix.com +labex-cortex.com +myotakuworld.com +practicequiz.com +programmingr.com +singlemothers.us +tabletopjoab.com +thecoastnews.com +whatispiping.com +wikibioworth.com +alexusrenee.com +analyzemath.com +apnatoronto.com +chemicalaid.com +cubsinsider.com +flgardening.com +ignisnatura.org +logosbynick.com +materialsix.com +nilsenreport.ca +parlerdamour.fr +percolately.com +shuttlefare.com +studybreaks.com +yardblogger.com +animalfate.com +artprompts.org +campergrid.com +howtoforge.com +icebreakers.ws +linuxtechi.com +msfsaddons.com +officetuts.net +orchideria.com +ourfitpets.com +roofonline.com +scamcharge.com +triviawell.com +wheelssize.com + archisoup.com + asacannes.com + biznewske.com + chipandco.com + colorcodes.io + elderguru.com + escapefan.com + it-connect.fr + kifarunix.com + mamapedia.com + technorms.com + textfixer.com + learncpp.com + luciding.com + knifeup.com + nerdbot.com + +defkey.com + +itnwwe.com + +popsci.com + +rqeeqa.com + +zwivel.com + 35mmc.com + egriz.com + vitux.com + +exrx.net + +millo.co + +sbxl.com[id^="div-gpt-ad"]: +exploreclarion.com +chromeunboxed.com .code-block² +economictimes.indiatimes.com +timesofindia.indiatimes.com +thehindubusinessline.com +malayalam.filmibeat.com +michigan-sportsman.com +pythonforbeginners.com +celebdirtylaundry.com +conservativebrief.com +historycollection.com +homesteadingtoday.com +legalinsurrection.com +realclearpolitics.com +apartmenttherapy.com +clubhouse.swingu.com +irishsportsdaily.com +muscleandfitness.com +thegatewaypundit.com +thehockeywriters.com +thephoblographer.com +travelandleisure.com +wegotthiscovered.com +whats-on-netflix.com +americanthinker.com +armstrongmywire.com +deccanchronicle.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +familyeducation.com +footballfancast.com +heroichollywood.com +mybendbroadband.com +natchezdemocrat.com +peopleenespanol.com +soapoperadigest.com +tamil.filmibeat.com +timesofsandiego.com +washingtontimes.com +worldtimeserver.com +worldtimeserver.com +allpeoplequilt.com +barstoolsports.com +cincinnatibell.net +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +lacremedugaming.fr +manoramaonline.com +untappedcities.com +doyouremember.com +leasticoulddo.com +marthastewart.com +mediacomtoday.com +powerlineblog.com +rateyourmusic.com +searchandnews.com +villages-news.com +allestoringen.be +allestoringen.nl +bleedingcool.com +clutchpoints.com +codeconquest.com +convertunits.com +cookinglight.com +dailyfaceoff.com +downdetector.com +hiphoplately.com +khaleejtimes.com +natlawreview.com +oilersnation.com +seattletimes.com +thestatesman.com +ballotpedia.org +canucksarmy.com +careerindia.com +centurylink.net +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +fantasypros.com +foodandwine.com +georgetakei.com +hawaiiantel.net +justjaredjr.com +netflixlife.com +percolately.com +primerahora.com +sourceforge.net +timeanddate.com +wetteronline.at +wetteronline.ch +wetteronline.de +wetteronline.de +allrecipes.com +boredpanda.com +comicsands.com +comingsoon.net +comingsoon.net +discuss.com.hk +drivespark.com +eatingwell.com +elnuevodia.com +goodreturns.in +lolcounter.com +realsimple.com +screengeek.net +studyfinds.org +suddenlink.net +windstream.net + ac-illust.com + allhiphop.com + altafiber.net + cplusplus.com + dailypaws.com + hancinema.net + hughesnet.com + indiawest.com + iranianuk.com + makeuseof.com + mediafire.com + myrecipes.com + puckpedia.com + speedtest.net + spurstalk.com + telugu360.com + thesaurus.net + tvinsider.com + wordplays.com + allsides.com + altpress.com + asianage.com + autoblog.com + collider.com + euronews.com + mashable.com + mygrande.com + newsweek.com + oneindia.com + photo-ac.com + price.com.hk + sicem365.com + slashdot.org + slashdot.org + theblaze.com + weregeek.com + allkpop.com + grabien.com + instyle.com + parents.com + titantv.com + vikatan.com + +boston.com + +gizbot.com + +health.com + +mixi.media + +mykhel.com + +people.com + +popsci.com + +sakshi.com + +texags.com + +tupaki.com + +uproxx.com + +uwants.com + +waaytv.com + +wowway.net + 6sqft.com + abc-7.com + agame.com + issuu.com + joblo.com + jpost.com + kitco.com + nbc-2.com + pcmag.com + shape.com + +melty.fr + +wimp.com +cbr.com +pch.com +tds.net +wnd.com +ew.com +lfg.co +sny.tvdiv[id^="div-gpt-"]- +historycollection.com.td-adspot-title& +historycollection.com .side-ads& +historycollection.com .adv-text% +rateyourmusic.com .lazyload-adh +gamerevolution.com +comingsoon.net + mandatory.com + dogtime.com.widget_evolve_ad_gpt_widget2 + mashable.com + pcmag.com.zmgad-full-width" + pcmag.com.zmgad-right-rail' + mashable.com.top-0.sticky > div& + mashable.comsection.mt-4 > divL +thestudentroom.co.uk +retailmenot.com + pcmag.comdiv[data-adunit]� +natlawreview.com +splinternews.com +theinventory.com +lifehacker.com +thetakeout.com + clickhole.com + deadspin.com + jalopnik.com + theonion.com + gizmodo.com + jezebel.com + thehill.com + theroot.com + +avclub.com + +kotaku.comdiv[id^="dfp-ad-"]] +techadvisor.com + dexerto.com + virgilio.it + ezgif.comame^="google_ads_iframe"]( + dexerto.com.ytp-ad-progress-list + dexerto.com .ad__header; + dexerto.com + +dexerto.es + +dexerto.fr .ad__wrapper; + dexerto.com + +dexerto.es + +dexerto.fr .ad__sidebar2 + +dexerto.es + +dexerto.fr.ad__mobile-footer +boredpanda.com .post-ads + softonic.com .sam-slot" + ooreka.frdiv[data-iab-tag]  + +motor1.com.featured__apb + +motor1.com .m1-header-ad + +motor1.com .m1_largeMPUD +checkmategaming.com +charliekirk.com + chess.com .adBanner" +thedailybeast.com .AdModule  + +heraldo.es.module1colAds] +financialpost.com +nationalpost.com +abovethelaw.com + lfpress.com.ad__containerA +financialpost.com +nationalpost.com + lfpress.com#ad-1` +dev.postmedia.digital +financialpost.com + lfpress.com#ad-1:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-10:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-11:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-12:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-13:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-14:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-15:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-16:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-17:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-18:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-19:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-2K +dev.postmedia.digital + lfpress.com#ad-2:not([data-ad-acceptable])u +dev.postmedia.digital +financialpost.com +nationalpost.com + lfpress.com #ad-20:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-3K +dev.postmedia.digital + lfpress.com#ad-3:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-4K +dev.postmedia.digital + lfpress.com#ad-4:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-5K +dev.postmedia.digital + lfpress.com#ad-5:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-6K +dev.postmedia.digital + lfpress.com#ad-6:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-7K +dev.postmedia.digital + lfpress.com#ad-7:not([data-ad-acceptable])A +financialpost.com +nationalpost.com + lfpress.com#ad-8K +dev.postmedia.digital + lfpress.com#ad-8:not([data-ad-acceptable])‰7A +financialpost.com +nationalpost.com + lfpress.com#ad-9` +dev.postmedia.digital +financialpost.com + lfpress.com#ad-9:not([data-ad-acceptable])w +financialpost.com +nationalpost.com + filehippo.com + filehippo.de + filehippo.pl + lfpress.com +.ad__labelL +financialpost.com +nationalpost.com + lfpress.com.ad__placeholder" +famousbirthdays.com.ad-row# + gamepress.gg.top-ad-desktop< + theblaze.com + gamepur.com + chess.com .banner_slot7 + theblaze.com + gamepur.com + chess.com.postad™ +fortnitecreativehq.com +jsoneditoronline.org +checkmategaming.com +familyeducation.com +thegreggjarrett.com +ygorganization.com +leasticoulddo.com +teachervision.com +charliekirk.com +factsherald.com +epicstream.com +hellhorror.com +infoplease.com + nitrotype.com + thedirect.com + gtplanet.net + reelgood.com + +typing.com + chess.com + rajah.com +lfg.co.adLeaderboard¢ +fortnitecreativehq.com +jsoneditoronline.org +checkmategaming.com +familyeducation.com +ygorganization.com +leasticoulddo.com +teachervision.com +charliekirk.com +factsherald.com +gamefragger.com +epicstream.com +hellhorror.com +infoplease.com + animemojo.com + hollywood.com + nitrotype.com + gtplanet.net + reelgood.com + toonado.com + chess.com + rajah.com +lfg.co #adBanner + chess.com #content-ad, + chess.com.short-sidebar-ad-component + chess.com#main-ad- +economictimes.indiatimes.com .adsbg300- +economictimes.indiatimes.com #bottomAdN +economictimes.indiatimes.com +powerlineblog.com + courttv.com#topAd + hockeydb.com#topad! +powerlineblog.com#post-ad" +thedailybeast.com .FooterAd# +thedailybeast.com +.PageTopAd" +thedailybeast.com .SimpleAd +thedailybeast.com.Sizerb +leasticoulddo.com +thedailybeast.com + chess.com +lfg.co.sidebar-ad:not(.adsbygoogle)% +motaclarity.co.uk .sidebar-ads- +timesofindia.indiatimes.com +.ad-widget +lolcounter.com.ad1S +thegreggjarrett.com +charliekirk.com + theblaze.comdiv[id^="rc-widget-"]$ +checkmategaming.com .right-ad6 +livefutbol.com + +cars.com.bottom-ad-container6 + greenbot.com + pcworld.com + +cars.com.top-ad +askamanager.org#top-ad) +ultimate-guitar.com.js-ab-regular* +searchenginejournal.com .avert-text$ +pch.com[class^="div-gpt-ad"]/ +howtopronounce.com +pch.com +article.ad +hellhorror.com.c-ad> +onlinedoctranslator.com +pdfwordconvert.com .ads-wrap' +thegreggjarrett.com .ads-wrapper$ +thegreggjarrett.com .ads_code# + thedirect.com.ads_container  +videocardz.com +#header-ad- +videocardz.com#vc-maincontainer-midad* +videocardz.com#vc-maincontainer-ad  + basketusa.com .ad-desktop + basketusa.com +.ad-medium# + +typing.com.js-skyscraper-ad  + +typing.com.js-ad-buttonsA +menshealth.com + +delish.com + +typing.com.advert--square$ +procyclingstats.com .top-contî +travelandleisure.com +peopleenespanol.com +allpeoplequilt.com +marthastewart.com +motaclarity.co.uk +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + instyle.com + parents.com + +health.com + +people.com + shape.com + +time.com +ew.com .ad-wrapperè +travelandleisure.com +peopleenespanol.com +allpeoplequilt.com +marthastewart.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + gamepress.gg + instyle.com + parents.com + +health.com + +people.com + shape.com + +time.com +ew.com +.mobile-ad€ +travelandleisure.com +peopleenespanol.com +procyclingstats.com +allpeoplequilt.com +marthastewart.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + gamepress.gg + instyle.com + parents.com + +health.com + +people.com + shape.com + +time.com +ew.com .desktop-adù +travelandleisure.com +peopleenespanol.com +allpeoplequilt.com +southernliving.com +marthastewart.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + instyle.com + parents.com + +health.com + +people.com + shape.com + +time.com +bhg.com +ew.com +.tablet-adú +travelandleisure.com +peopleenespanol.com +allpeoplequilt.com +southernliving.com +marthastewart.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + instyle.com + parents.com + +ghacks.net + +health.com + +people.com + shape.com +bhg.com +ew.com .ad-titleÖ +travelandleisure.com +peopleenespanol.com +allpeoplequilt.com +marthastewart.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com +realsimple.com + dailypaws.com + myrecipes.com + instyle.com + parents.com + +health.com + +people.com + shape.com +ew.com.ad-sticky-containerì +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +countryliving.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +marieclaire.com +menshealth.com +oprahdaily.com +prevention.com +redbookmag.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com .vertical-adî +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +countryliving.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +marieclaire.com +menshealth.com +oprahdaily.com +prevention.com +redbookmag.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com.right-rail-adà +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +countryliving.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +menshealth.com +oprahdaily.com +prevention.com +redbookmag.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com#gpt-leaderboard-ad + gamepress.gg.feed-ad% +jsoneditoronline.org .ad-panel  + resetera.com .samCodeUnit2 +fantasypros.com + viedemerde.fr +.sticky-ad, +infoplease.com#block-ipleaderboardad+ +infoplease.com#block-ipabovethefoldú$ + foxnews.com.amp-ad-container + foxnews.com.amp-ads- +epicstream.com + 6sqft.com +.ads-block$ +infoplease.com#block-ipbtfad2 +leasticoulddo.comdiv[id^="zergnet-widget"]# +leasticoulddo.com +.ad-leader3 +leasticoulddo.com +dontpayfull.com.ad-box + f4wonline.com +.banner300 + f4wonline.com +#banner728  +supercheats.com .cboth_sm% +supercheats.com#bottom_ad_728 +lfg.co #ad-tower5 +ygorganization.com.advertisement_above_footer + rajah.com .ad-section + rajah.com .content-ad@ +weatherbugsc.com +weatherbug.comimg[alt^="Default Ad"]+ +insidermonkey.com.ad-horizontal-top+ +insidermonkey.com#ad-horizontal-top3 +insidermonkey.com.ad-horizontal-top-wrapper& +insidermonkey.com #sidebar-ad-1& +insidermonkey.com #sidebar-ad-20 + buonissimo.it + virgilio.it #admpubottom + virgilio.it #admpumiddle[ + buonissimo.it + siviaggia.it + supereva.it + virgilio.it + +dilei.it #adwallpaper + virgilio.it#adbox1 + virgilio.it#adbox2² +thepioneerwoman.com +cosmopolitan.com +oprahdaily.com +prevention.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + veranda.com .breaker-ad + virgilio.it #adslider< + buonissimo.it + supereva.it + virgilio.it .admputop + virgilio.it .adv-cont. + siviaggia.it + +dilei.it#adleaderboard + autosport.com.ms-apb0 + autosport.com.ms-side-items--with-banner +wetteronline.de.SideAdsD +wetteronline.at +wetteronline.ch +wetteronline.de#adLinkA +gamefragger.com + animemojo.com + toonado.com +#adInhouse6 +gamefragger.com + hollywood.com.adLeaderboard* + hollywood.com + neopets.com.adBox  + hollywood.com .ads-headerD +gamefragger.com + animemojo.com + toonado.com #adBTF300x250C +gamefragger.com + animemojo.com + toonado.com #adATF728x90D +gamefragger.com + animemojo.com + toonado.com #adATF300x2501 + buonissimo.it + virgilio.it #admpubottom2% + +ghacks.net.category-sponsored„ +gelderlander.nl + destentor.nl + bndestem.nl + tubantia.nl +pzc.nl +ad.nl +bd.nl +ed.nl.advertising-container-topM + siviaggia.it + supereva.it + virgilio.it + +dilei.it#cont-wallpaper8 +multiplayer.it + supereva.it + virgilio.it.adv + virgilio.it .hp_300x250 + virgilio.it +.hp_970x90E +wetteronline.at +wetteronline.ch +wetteronline.de.adplaces +gelderlander.nl + destentor.nl + tubantia.nl +pzc.nl +ad.nl +bd.nl +ed.nl.ankeiler--advertisement + +ghacks.net +.column-ad + +ghacks.net.wide-ad, + +ghacks.net#snhb-snhb_ghacks_bottom-0# + nitrotype.com.ad--container$ +wetteronline.de #topcontainer  + +capital.fr.header-advert- + +capital.fr +gala.fr.ads-core-placer +gala.fr.ads-container +gala.fr[data-ads-core] +gala.fr +.bannerAds +gala.fr.coreAdsPlaceru +techadvisor.com^.ad-placeholder:not(#filter_ads_by_classname):not(#detect_ad_empire):not(#detect):not(.adsbox)) +wetteronline.de#woFooterBillboardì"8 +southernliving.com +cookinglight.com +.native-ad* +livefutbol.com + +people.com.ADBoxA +worldfootball.net +livefutbol.com + +people.com.AD_area) + +people.com.articleContainer__rail- + speedtest.netdiv[data-ad-placeholder]* + greenbot.com + pcworld.com.adunitø +latimescrosswordanswers.com +skinnyandtasty.com +tractorbynet.com +festivalnet.com +mots-croises.ch +scamadviser.com +smartandroid.fr +auralcrave.com +infos-geek.com + allhiphop.com + macworld.com + notinerd.com +.ad-bannerS +fantasypros.com +techadvisor.com + macworld.com + pcworld.com +.ad-footerA +techadvisor.com + macworld.com + pcworld.com .ad-overlay> +techadvisor.com + macworld.com + pcworld.com.page-ad* + speedmeter.de + +speed.io #ad_layer( + speedmeter.de + +speed.io#ad_mpu0 + speedmeter.de + +speed.io.idgGoogleAdTag + pcwelt.de .ad-enabled= + greenbot.com + pcworld.com + +pcworld.pl .lazyload_ad! + +pcworld.pl.advertise-here- + greenbot.com + pcworld.com +.ad-headerM +lawinsider.com + greenbot.com + sicem365.com + pcworld.com.side-ad' +sourceforge.net#banner-sterling + slashdot.org.adwrap + slashdot.org.railad& + thehill.com#dfp-ad-leaderboard. + thehill.com#dfp-ad-leaderboard-wrapper1 +natlawreview.com + thehill.com +.block-dfp7 +natlawreview.com + thehill.com.dfp-tag-wrapper, +timesofisrael.com.banner-placeholder" +fantasypros.com .js-ad-slot! +fantasypros.com +.ad-mobile +fantasypros.com.ad-728 +fantasypros.com.ad-300 +fantasypros.com.ad-160 +techadvisor.com#adunit+ +techadvisor.com + pcworld.com.ad-1- +techadvisor.com + pcworld.com.img_adD +fantasypros.com +techadvisor.com + pcworld.com .advertiser! +natlawreview.com .advertis + lonny.com .embeddedAd + lonny.com.tile-ad + tvstanici.net .adsbyvli  +discuss.com.hk +#featuread( +discuss.com.hk[id^="div-gpt-ad"]. +tasteofhome.com +xgn.nl #ad-container +xgn.nl .takeover-ad +xgn.nl.ad-prevent-jump +xgn.nl.sponsor_links: +movieplayer.it +multiplayer.it#top_ads_containerM +movieplayer.it +multiplayer.it + dissapore.com#personalization_ads2 +movieplayer.it +multiplayer.it +.adv--h600Ð +armstrongmywire.com +mediacomtoday.com +searchandnews.com +centurylink.net +hawaiiantel.net +suddenlink.net +windstream.net + hughesnet.com + mygrande.com + +wowway.net +tds.net.ad_box + 6sqft.com.top-ads + 6sqft.com .section-ad' +rateyourmusic.com.column_filler- +rateyourmusic.com.page_creative_frame  +lawinsider.com +.ad-inline, +tasteofhome.com#ads-container-single, +tasteofhome.com.ad-container-wrapper% +tasteofhome.com.full-width-ad+ +tasteofhome.com.sticky-ad-container( +tasteofhome.com.sticky-bottom-ad +tasteofhome.com.ad-text¼ +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +menshealth.com +oprahdaily.com +prevention.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com.gpt-breaker-containerÜ +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +countryliving.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +menshealth.com +oprahdaily.com +prevention.com +redbookmag.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com.ad-gpt-breakerÖ +townandcountrymag.com +goodhousekeeping.com +popularmechanics.com +thepioneerwoman.com +womenshealthmag.com +housebeautiful.com +countryliving.com +harpersbazaar.com +bestproducts.com +cosmopolitan.com +runnersworld.com +menshealth.com +oprahdaily.com +prevention.com +redbookmag.com +shondaland.com + bicycling.com + elledecor.com + seventeen.com + womansday.com + esquire.com + veranda.com + +delish.com + +elle.com .text_ads + autotrader.ca.jw-adð+ + autotrader.ca.jw-ad-media-container3 +techadvisor.com.jwPlayer--floatingContainer  + photo-ac.com .section-ads' +pastemagazine.com.header-top-ad) +pastemagazine.com#top_leaderboard2 +discuss.com.hk +themarysue.com +.ad-sticky +natlawreview.com.slugC +fantasypros.com +techadvisor.comdiv[data-google-query-id] + +time.com .spotlight-ad& +biggeekdad.com#aswift_1_anchor& +biggeekdad.com#aswift_1_expand& +pistonheads.com.ad-contain-top +pistonheads.com.adslot+ +economictimes.indiatimes.com.adSlot  +thedailybeast.com.AdSlotH +financialpost.com +nationalpost.com + lfpress.com div[data-ad]/ +motorsport.com + autosport.com.ms-hapb" +motorsport.com .ms-apb-dmpu +motorsport.com.ms-ap" +matchendirect.fr +#tux728x90 +timeanddate.com#ad-wrap  +timeanddate.com #ad-wrap2 +timeanddate.com#ad1) + dissapore.com[data-ad-manager-id]" + dissapore.com .article__adv" + dexerto.com.ad__in_article@ +dotesports.com + gamepur.com#top-sticky-sidebar-wrapper + softgenius.co.e-adÁ +thecalculatorsite.com +simplypsychology.org +thehockeywriters.com +smallbiztrends.com +broadwayworld.com + barnfinds.com + gm-trucks.com + linuxize.com + play2048.co.ads-top +timeanddate.com#ad300& +tasteofhome.com.pre-article-ad- +tasteofhome.comdiv[data-ad-targeting] + +cmath.fr[data-ad-text]- + 20minutos.es + +larazon.es .desktop.ad) + 20minutos.es + +larazon.es.top.ad + +larazon.es .content__ad2 +diariodesevilla.es + malagahoy.es.ad-wrap6 +diariodesevilla.es + malagahoy.es #ad-stickers- +discuss.com.hk + +uwants.com #rightads  +discuss.com.hk +#featuread# +pistonheads.com #leaderBoard +pistonheads.com.msg-ad' +itexamanswers.net.adcode-widget + meteocity.com.cluj6 +democraticunderground.com.skyscraper-container+ +gadgetstouse.com.td-ss-main-sidebar* +infofamouspeople.com.adsbypubpower) +tractorbynet.com.ad_global_header +gardenista.com.grid-adN +financialpost.com +nationalpost.com + lfpress.com.widget--local-adsO +financialpost.com +nationalpost.com + lfpress.com.ad__section-border; +smallbiztrends.com +drivingtest.ca.quads-location, + musescore.com#ad_cs_12219747_300_250+ + musescore.com#ad_cs_12219747_728_902 + musescore.com.js-musescore-hb-728--wrapper< +voetbalnieuws.be + soccernews.nl#desktop-sidebar-ad +allrecipes.com .first-ad* +dodgersnation.com.g1-advertisement, +dodgersnation.com.adace-slot-wrapper$ +dodgersnation.com .adace-slot# +ratemyfishtank.com .ad300_bg* +ratemyfishtank.com.adsense-heading. +ratemyfishtank.com.advertisements-link" +ratemyfishtank.com.purchadÎ, +ratemyfishtank.com.story_body_advert +eliteguias.com#ads22 +worldfootball.net +livefutbol.com.wfb-ad +livefutbol.com .adrechts" +voetbalnederland.nl.dcmads$ +voetbalnederland.nl #ad728x90$ +voetbalnederland.nl #ad728X90 + jpost.com.banner + jpost.com .divConnatix# + jpost.com.right-side-banner + virgilio.it #adv_center% +abovethelaw.com.ad--billboard# +abovethelaw.com .ad--desktop# + neopets.com#ad-slug-wrapper1 +timesofindia.indiatimes.com.paisa-wrapper1 +timesofindia.indiatimes.com.adplaceholderH + siviaggia.it + supereva.it + virgilio.it + +dilei.it +#admpufoot + virgilio.it #admasthead + virgilio.it +#admputop2! + virgilio.it#adleaderboard, + virgilio.it + +dilei.it #admpumiddle2  +live-tennis.eu +.copyright" +wantedinrome.com +.ad_center' +minecraftlist.org.stickywrapper# +minecraftlist.org +.sidebarad# +minecraftlist.org +.ad-border3 +bostonglobe.com#sticky_container.width_full  + fortune.com #Leaderboard0" + +larazon.es.ad-parent-class + 20minutos.es.axds8 + siviaggia.it + +dilei.it.widget_promo_box_widget6 +sheffieldforum.co.ukdiv[data-role="sidebarAd"] +nichegamer.com.menu-ad< + ezgif.com+div[style$="min-height:90px;display:block"] + courttv.com .ad-space) +gamerevolution.com.gpt-ad-wrapperA +irishsportsdaily.com + sicem365.com + +texags.com.pageAd& +nationalpost.com.vf-promo-gtag, +esportsearnings.com.ad_wide_vertical% +esportsearnings.com +.ad_banner' +esportsearnings.com .ad_side_box) +online-python.com#sidebar-left-ad  + musescore.com .pub_728x90" + musescore.com .pub_300x250m! + musescore.com .pub_300x250# +searchenginejournal.com#nng+ +searchenginejournal.com #loop_parent�  +diariodocentrodomundo.com.br +coloradohometownweekly.com +broomfieldenterprise.com +canoncitydailyrecord.com +hawaiitribune-herald.com +thefootballbrainiacs.com +pann-choa.blogspot.com +wiscassetnewspaper.com +blogs.mercurynews.com +burlington-record.com +ffxiv.gamerescape.com +journal-advocate.com +americanlookout.com +jamaicaobserver.com +discordbotlist.com +frequencycheck.com +officialcharts.com +premiumtimesng.com +coloradodaily.com +idownloadblog.com +siliconvalley.com +steelersdepot.com +dailyfaceoff.com +hiphoplately.com +jamaica-star.com +pentaxrumors.com +timesofmalta.com +wrestlinginc.com +asianjunkie.com +diariolibre.com +erienewsnow.com +fifarosters.com +leicarumors.com +nikonrumors.com +penbaypilot.com +photorumors.com +pokellector.com +theplaylist.net +vanguardngr.com +jornada.com.mx +rogerebert.com +songlyrics.com +the-star.co.ke + apkmirror.com + chunkbase.com + cracknewz.com + insideevs.com + kprofiles.com + listverse.com + petapixel.com + phonemore.com + signalscv.com + webtribune.rs + 411mania.com + fedsmith.com + lingojam.com + mediaite.com + bmwblog.com + dlisted.com + eptrail.com + isaechia.it + kickoff.com + +motor1.com + +ringtv.com + +theprp.com + +vringe.com + gossip.it + wweek.com + +k-gen.fr + +nodq.com +mopo.de +psu.com +to10.gr#post-list .advertisement& + macworld.com#gpt-leaderboard-1@ +techadvisor.com + macworld.com + pcworld.com +.ad-banner2 + +forbes.com .fbs-ad--mobile-medianet-wrapper1 + +forbes.com.fbs-ad--ntv-mobchannel-wrapper* + +forbes.com.fbs-ad--mobilex-wrapper, + +forbes.com.fbs-ad--mobilerec-wrapper0 + +forbes.com.article-speedbump > .medianet/ + +forbes.com.medianet-wrapper > .medianet$ + +forbes.com.article-native-ad + +forbes.com +.moreon-ad2 + +forbes.com fbs-ad[ad-id^="inline-article-"]2 + +forbes.com .fbs-ad--ntv-deskchannel-wrapper+ + +forbes.com.fbs-ad--ntv-home-wrapper + +forbes.com.ad-unit + +forbes.com.ntv-ad( + +forbes.com.vjs-ima3-ad-containerÓ6 +6* + quora.com08@Rquora.com/ads/eyeo?ch=1&rn= +6* + quora.com08@Rquora.com/ads/eyeo?ch=2&rn= +5* + quora.com08@Rpixel.adsafeprotected.com^ +2* + quora.com08@Rfw.adsafeprotected.com^ +5* + quora.com08@Rdt.adsafeprotected.com/dt^ +8ÿï* + quora.com08@Rstatic.adsafeprotected.com^ +0* + quora.com08@Rcdn.doubleverify.com^ +0* + quora.com08@Rtps.doubleverify.com^ +0* + quora.com08@Rtracker.samplicio.us^ +.* + quora.com08@Rad.doubleclick.net^ +<ÿï* + quora.com08@Rc.amazon-adsystem.com/e/dtb/bid +Bÿï* + quora.com08@R%c.amazon-adsystem.com/cdn/prod/config +Aÿï* + quora.com08@R$c.amazon-adsystem.com/aax2/apstag.js +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/de?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/es?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/fr?Operation=GetDecoratedOffers^ +[* +images-amazon.com08@R8amazon-adsystem.com/aan/in?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/it?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/jp?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/uk?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/us?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/ca?Operation=GetDecoratedOffers^ +_* +ssl-images-amazon.com08@R8amazon-adsystem.com/aan/cn?Operation=GetDecoratedOffers^ +œ$* + amazon.com.au* + amazon.com.br* + amazon.com.mx* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.es* + amazon.fr* + amazon.in* + amazon.it* + amazon.nl* + amazon.sa* + amazon.sg08@Ramazon-adsystem.com/e/loi/imp^ +¦* +ssl-images-amazon.com* +images-amazon.com* + amazon.co.jp* + amazon.ca* + amazon.cn* + amazon.in08@R3amazon-adsystem.com/x/getad?*^slot=ams-detail-right +ˆ*! +images-eu.ssl-images-amazon.com*! +images-na.ssl-images-amazon.com08@R4amazon-adsystem.com/x/getad?*^slot=hero-quick-promo^ +z* +ssl-images-amazon.com* +images-amazon.com* + amazon.cn08@R1ams-ads-cornerstone-creatives-*.s3.amazonaws.com^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/de?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/es?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/fr?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/in?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/it?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/jp?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/uk?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/us?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/ca?Operation=GetDecoratedOffers^ +Z* +ssl-images-amazon.com08@R3cloudfront.net/aan/cn?Operation=GetDecoratedOffers^ +0* + amazon.co.jp08@Rcloudfront.net/NA- +f* + amazon.co.jp* + amazon.cn* + amazon.in08@R.images-amazon.com/images/*/browser-scripts/DA- +j* + amazon.co.jp* + amazon.cn* + amazon.in08@R2ssl-images-amazon.com/images/*/browser-scripts/DA- +N* + amazon.se08@R3ssl-images-amazon.com/images/S/apesafeframe/ape/sf/ +Z€* + amazon.co.uk* + +amazon.com* + amazon.de08@R ssl-images-amazon.com^*/dacx/sf/ +�€* + amazon.co.jp* + amazon.ca* + amazon.cn* + amazon.es* + amazon.fr* + amazon.in* + amazon.it08@R#ssl-images-amazon.com^*/dacx/sf/sf- +]ÿï* + amazon.eg* + amazon.pl* + amazon.sg08@R&images-*.ssl-images-amazon.com/images^ +‰* + amazon.com.be* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.ie* + amazon.in* + amazon.it* + amazon.pl* + amazon.se* + amazon.sg08@R ssl-images-amazon.com^*/sf/DAsf- +ï* + amazon.com.au* + amazon.com.be* + amazon.com.br* + amazon.com.mx* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.ie* + amazon.in* + amazon.it* + amazon.nl* + amazon.pl* + amazon.sa* + amazon.se* + amazon.sg08@R,ssl-images-amazon.com^*/ape/sf/desktop/DAsf- +õÿï* + amazon.com.au* + amazon.com.be* + amazon.com.br* + amazon.com.mx* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.ie* + amazon.in* + amazon.it* + amazon.nl* + amazon.pl* + amazon.sa* + amazon.se* + amazon.sg08@R0ssl-images-amazon.com/images/*/DAsf-latency-*.js +õÿï* + amazon.com.au* + amazon.com.be* + amazon.com.br* + amazon.com.mx* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.ie* + amazon.in* + amazon.it* + amazon.nl* + amazon.pl* + amazon.sa* + amazon.se* + amazon.sg08@R0ssl-images-amazon.com/images/*/MAsf-latency-*.js +Ý* + amazon.com.be* + amazon.com.br* + amazon.co.jp* + amazon.co.uk* + +amazon.com* + amazon.ae* + amazon.ca* + amazon.cn* + amazon.de* + amazon.eg* + amazon.es* + amazon.fr* + amazon.ie* + amazon.in* + amazon.it* + amazon.nl* + amazon.pl* + amazon.sa* + amazon.se* + amazon.sg08@R* + +imdb.com08@R$ssl-images-amazon.com/images/*/DAsf- +6ÿï* + +imdb.com08@Raax-*.amazon-adsystem.com^ ++ÿï* + +reddit.com08@R redditad.com^ +) * + +reddit.com08@R redditad.com^ +Cÿï* + +reddit.com08@R%redditstatic.com/desktop2x/js/xads.js +A* + +reddit.com08@R%pagead2.googlesyndication.com/pagead/ +\€ * + +reddit.com08@R=g.doubleclick.net/pagead/ads^*client=ca-pub-8655001720710332^ +\€ * + +reddit.com08@R=g.doubleclick.net/pagead/ads^*client=ca-pub-9595286865800821^ +Dÿï* + +reddit.com08@R&adservice.google.*/adsid/integrator.js +Pÿï* + +reddit.com08@R2gateway.reddit.com/desktopapi/*/comments_page_ads^ +3* + +reddit.com08@Rad.doubleclick.net/ddm/ +< * + +reddit.com08@Rw3-reporting.reddit.com/reports +: * + +reddit.com08@Rw3-reporting.reddit.com/policy +: * + +reddit.com08@Rreddit.com/svc/shreddit/events + 08@R gstatic.com^ +ÿï08@R gstatic.com^ +# 08@Rgoogleadservices.com^8 + amazon.com.be + amazon.ie + amazon.se .AdHolder + amazon.se#adLink0 + amazon.se#sponsoredProducts2_feature_div4 + amazon.se#div[cel_widget_id^="adplacements:"]M + amazon.ie + amazon.se/.s-result-item:has([data-ad-feedback-label-id])P + amazon.ie + amazon.se2[cel_widget_id*="-creative-desktop_loom-desktop-"]3 + amazon.se"div[cel_widget_id^="multi-brand-"]2 + amazon.ie!div[cel_widget_id*="desktop-dp-"]% + amazon.iediv[id^="sp_detail"] + +imdb.com .slot_wrapper! + +imdb.com.cornerstone_slot' + +imdb.com.first_party_ad_wrapper" + +imdb.com.promoted-provider! + +reddit.comins.adsbygoogle/ + +reddit.comins.adsbygoogle[data-ad-slot] + +reddit.com#ad_1 + +reddit.com#ad_2 + +reddit.com#ad_3 + +reddit.com#ad_4 + +reddit.com#ad_5: + +reddit.com(div[data-before-content="advertisement"]< + +reddit.com*.promotedlink:not([style^="height: 1px;"])+ + +reddit.comshreddit-comments-page-adú +%ÿï08@Rgoogleadservices.com^ +U"* +citethisforme.com* +kizi.com08@R"g.doubleclick.net/gpt/pubads_impl_ +ƒ* +dotesports.com* + futhead.com* + gamepur.com* + gigafile.nu* + +fandom.com08@Rgoogletagservices.com^*/gpt.js +`"* +dotesports.com* + ahaber.com.tr* + gamepur.com08@Rg.doubleclick.net^*/gpt.js +&„08@Rwww.google.com/ads/mrc? +Nÿï* +ad.doubleclick.net08@R(ad.doubleclick.net/searchads/link/click^ +E‚ * +isearch.avg.com* +search.avg.com08@Rgoogle.com/uds/ +Cÿï* +isearch.avg.com* +search.avg.com08@Rgoogle.com/ads +;‚ * + retrevo.com* + +beso.com08@Rgoogle.com/uds/ +9ÿï* + retrevo.com* + +beso.com08@Rgoogle.com/ads +Ñ‚ * +prixmoinscher.com* +shopzilla.com.br* +shopzilla.co.uk* +spardeingeld.de* + bizrate.co.uk* + shopzilla.de* + bizrate.com* + +beso.co.uk* + +bizrate.ca* +beso.de* +beso.fr08@Rgoogle.com/uds/ +Ïÿï* +prixmoinscher.com* +shopzilla.com.br* +shopzilla.co.uk* +spardeingeld.de* + bizrate.co.uk* + shopzilla.de* + bizrate.com* + +beso.co.uk* + +bizrate.ca* +beso.de* +beso.fr08@Rgoogle.com/ads +&€08@Rretrevo.com/m/google?q= +H‚ * +lowpriceshopper.com* + shopzilla.com08@Rgoogle.com/uds/ +Fÿï* +lowpriceshopper.com* + shopzilla.com08@Rgoogle.com/ads +I‚ * +lowpriceshopper.co.uk* + shopzilla.fr08@Rgoogle.com/uds/ +Gÿï* +lowpriceshopper.co.uk* + shopzilla.fr08@Rgoogle.com/ads +Aÿï08@R1improvenet.com/Modules/ImproveNet.Search/scripts/! +search.avg.com $elemhide" +isearch.avg.com $elemhide +beso.com $elemhide + retrevo.com $elemhide + bizrate.com $elemhide$ +prixmoinscher.com $elemhide" +spardeingeld.de $elemhide  + bizrate.co.uk $elemhide" +shopzilla.co.uk $elemhide + shopzilla.de $elemhide# +shopzilla.com.br $elemhide + +beso.co.uk $elemhide +beso.fr $elemhide +beso.de $elemhide + +bizrate.ca $elemhide  + shopzilla.com $elemhide& +lowpriceshopper.com $elemhide( +lowpriceshopper.co.uk $elemhide + shopzilla.fr $elemhide +ask.com $elemhide + about.com $elemhide + pageset.com $elemhide + +pronto.com $elemhide + shop411.com $elemhide% +consumersearch.com $elemhide! +urbanspoon.com $elemhide + myway.com $elemhide" +mywebsearch.com $elemhide +iwon.com $elemhide + mysearch.com $elemhide% +search-results.com $elemhide  + thesaurus.com $elemhide  + reference.com $elemhide! +improvenet.com $elemhide# +investopedia.com $elemhide" +smarter.com/web $elemhide, +informationvine.com/index $elemhide1" +caloriecount.com/cc/search.php $elemhide0! +allexperts.com/sitesearch.htm $elemhide! +kensaq.com/web $elemhide& +verywell.com/search $elemhide + shopping.net $elemhide) +symptomfind.com/topic/ $elemhide  + teoma.com/web $elemhide* +candofinance.com/topic/ $elemhide( +thebalance.com/search $elemhide‹ +û‚ * +homeandgardenideas.com* +idealhomegarden.com* +informationvine.com* +consumersearch.com* +search-results.com* +caloriecount.com* +candofinance.com* +govtsearches.com* +investopedia.com* +mywebsearch.com* +symptomfind.com* +allexperts.com* +improvenet.com* +thebalance.com* +urbanspoon.com* + reference.com* + thesaurus.com* + thespruce.com* + thoughtco.com* + finecomb.com* + lifewire.com* + mysearch.com* + shopping.net* + verywell.com* + pageset.com* + shop411.com* + smarter.com* + +kensaq.com* + +pronto.com* + +simpli.com* + about.com* + myway.com* + teoma.com* + +iwon.com* +ask.com08@Rgoogle.com/uds/ +ùÿï* +homeandgardenideas.com* +idealhomegarden.com* +informationvine.com* +consumersearch.com* +search-results.com* +caloriecount.com* +candofinance.com* +govtsearches.com* +investopedia.com* +mywebsearch.com* +symptomfind.com* +allexperts.com* +improvenet.com* +thebalance.com* +urbanspoon.com* + reference.com* + thesaurus.com* + thespruce.com* + thoughtco.com* + finecomb.com* + lifewire.com* + mysearch.com* + shopping.net* + verywell.com* + pageset.com* + shop411.com* + smarter.com* + +kensaq.com* + +pronto.com* + +simpli.com* + about.com* + myway.com* + teoma.com* + +iwon.com* +ask.com08@Rgoogle.com/ads +{‚ * + ixquick.co.uk* + startpage.com* + ixquick.com* + +ixquick.de* + +ixquick.fr* + +ixquick.nl08@Rgoogle.com/uds/ +yÿï* + ixquick.co.uk* + startpage.com* + ixquick.com* + +ixquick.de* + +ixquick.fr* + +ixquick.nl08@Rgoogle.com/ads +gÿï* + ixquick.co.uk* + ixquick.com* + +ixquick.de* + +ixquick.fr* + +ixquick.nl08@R ixquick.*/ads +q‚ * + ixquick.co.uk* + ixquick.com* + +ixquick.de* + +ixquick.fr* + +ixquick.nl08@Rixquick.*/async-ads.js +4ÿï* + startpage.com08@Rstartpage.com/*/ads +>‚ * + startpage.com08@Rstartpage.com/*/async-ads.js +=‚ * +yellowpages.com* +yp.com08@Rgoogle.com/uds/ +;ÿï* +yellowpages.com* +yp.com08@Rgoogle.com/ads& +lifewire.com/search $elemhide' +thespruce.com/search $elemhide' +thoughtco.com/search $elemhide + finecomb.com $elemhide + +simpli.com $elemhide) +homeandgardenideas.com $elemhide* +idealhomegarden.com/web $elemhide' +govtsearches.com/web $elemhide + ixquick.com $elemhide + +ixquick.de $elemhide + +ixquick.fr $elemhide + +ixquick.nl $elemhide  + ixquick.co.uk $elemhide  + startpage.com $elemhide" +yellowpages.com $elemhide + +yp.com $elemhide  + buycheapr.com $elemhide + +kaufen.com $elemhide" +supaprice.co.uk $elemhide  + cheaperoz.com $elemhide$ +smarterdeal.co.uk $elemhide! +prixrikiki.com $elemhide! +menocostosi.it $elemhide + nepascher.fr $elemhide + +trouver.fr $elemhide$ +rapidfinder.co.uk $elemhide + +szukaj.com $elemhide  + inforapido.it $elemhide! +rapidfinder.ca $elemhide + finderoo.com $elemhide + hallar.es $elemhide" +findsmarter.com $elemhide  + metasuche.com $elemhide  + hallar.com.mx $elemhide$ +inforapido.com.ar $elemhide% +pesquisaweb.com.br $elemhide + chercheur.be $elemhide  + findhurtig.dk $elemhide  + finnerask.com $elemhide + funnit.se $elemhide + hallar.cl $elemhide + hallar.co $elemhide  + hallar.com.ec $elemhide  + hallar.com.pe $elemhide + +hledat.com $elemhide! +metacautare.ro $elemhide + metahaku.com $elemhide + metasuche.ch $elemhide! +pesquisaweb.pt $elemhide$ +rapidfinder.co.in $elemhide$ +rapidfinder.co.za $elemhide% +rapidfinder.com.sg $elemhide  + slimvinder.nl $elemhide + suchen.co.at $elemhideë. +�‚ * +pesquisaweb.com.br* +rapidfinder.com.sg* +inforapido.com.ar* +metapencarian.com* +metasearch.com.my* +metasearch.com.ph* +metasearch.com.tw* +rapidfinder.co.in* +rapidfinder.co.uk* +rapidfinder.co.za* +smarterdeal.co.uk* +metasearch.co.il* +metasearch.co.nz* +findsmarter.com* +supaprice.co.uk* +findsmarter.ru* +menocostosi.it* +metacautare.ro* +metakereso.com* +pesquisaweb.pt* +prixrikiki.com* +rapidfinder.ca* + buycheapr.com* + cheaperoz.com* + findhurtig.dk* + finnerask.com* + hallar.com.ec* + hallar.com.mx* + hallar.com.pe* + inforapido.ch* + inforapido.it* + metaarama.com* + metamoteur.ch* + metasearch.ae* + metasearch.gr* + metasearch.hk* + metasearch.ie* + metasearch.jp* + metasuche.com* + slimvinder.be* + slimvinder.nl* + chercheur.be* + finderoo.com* + hallar.co.ve* + metahaku.com* + metasuche.ch* + nepascher.fr* + suchen.co.at* + +hledat.com* + +kaufen.com* + +szukaj.com* + +trouver.fr* + +web.com.hr* + funnit.se* + hallar.cl* + hallar.co* + hallar.es* +meta.bg08@Rgoogle.com/uds/ +‹ÿï* +pesquisaweb.com.br* +rapidfinder.com.sg* +inforapido.com.ar* +metapencarian.com* +metasearch.com.my* +metasearch.com.ph* +metasearch.com.tw* +rapidfinder.co.in* +rapidfinder.co.uk* +rapidfinder.co.za* +smarterdeal.co.uk* +metasearch.co.il* +metasearch.co.nz* +findsmarter.com* +supaprice.co.uk* +findsmarter.ru* +menocostosi.it* +metacautare.ro* +metakereso.com* +pesquisaweb.pt* +prixrikiki.com* +rapidfinder.ca* + buycheapr.com* + cheaperoz.com* + findhurtig.dk* + finnerask.com* + hallar.com.ec* + hallar.com.mx* + hallar.com.pe* + inforapido.ch* + inforapido.it* + metaarama.com* + metamoteur.ch* + metasearch.ae* + metasearch.gr* + metasearch.hk* + metasearch.ie* + metasearch.jp* + metasuche.com* + slimvinder.be* + slimvinder.nl* + chercheur.be* + finderoo.com* + hallar.co.ve* + metahaku.com* + metasuche.ch* + nepascher.fr* + suchen.co.at* + +hledat.com* + +kaufen.com* + +szukaj.com* + +trouver.fr* + +web.com.hr* + funnit.se* + hallar.cl* + hallar.co* + hallar.es* +meta.bg08@Rgoogle.com/ads +”‚ * +pesquisaweb.com.br* +rapidfinder.com.sg* +inforapido.com.ar* +metapencarian.com* +metasearch.com.my* +metasearch.com.ph* +metasearch.com.tw* +rapidfinder.co.in* +rapidfinder.co.uk* +rapidfinder.co.za* +smarterdeal.co.uk* +metasearch.co.il* +metasearch.co.nz* +findsmarter.com* +supaprice.co.uk* +findsmarter.ru* +menocostosi.it* +metacautare.ro* +metakereso.com* +pesquisaweb.pt* +prixrikiki.com* +rapidfinder.ca* + buycheapr.com* + cheaperoz.com* + findhurtig.dk* + finnerask.com* + hallar.com.ec* + hallar.com.mx* + hallar.com.pe* + inforapido.ch* + inforapido.it* + metaarama.com* + metamoteur.ch* + metasearch.ae* + metasearch.gr* + metasearch.hk* + metasearch.ie* + metasearch.jp* + metasuche.com* + slimvinder.be* + slimvinder.nl* + chercheur.be* + finderoo.com* + hallar.co.ve* + metahaku.com* + metasuche.ch* + nepascher.fr* + suchen.co.at* + +hledat.com* + +kaufen.com* + +szukaj.com* + +trouver.fr* + +web.com.hr* + funnit.se* + hallar.cl* + hallar.co* + hallar.es* +meta.bg08@R*google_adsense_afs.js +š‚ * + buscar.com.gt* + hallar.com.do* + hallar.com.py* + hallar.com.uy* + info.com.bo* + meta.com.pk* + buscar.hn* +fast.ng08@Rgoogle.com/uds/ +˜ÿï* + buscar.com.gt* + hallar.com.do* + hallar.com.py* + hallar.com.uy* + info.com.bo* + meta.com.pk* + buscar.hn* +fast.ng08@Rgoogle.com/ads +’ÿï* +metavyhladavanie.sk* +metasearch.com.vn* +rapidfinder.co.kr* +rapidfinder.cn* + metasearch.rs* + thaimeta.com08@Rgoogle.com/ads +”‚ * +metavyhladavanie.sk* +metasearch.com.vn* +rapidfinder.co.kr* +rapidfinder.cn* + metasearch.rs* + thaimeta.com08@Rgoogle.com/uds/ +£‚ * +rapidshopper.com.ar* +rapidshopper.com.mx* +rapidshopper.co.in* +rapidshopper.com* + infodora.com* + metarab.com* + +najti.si08@Rgoogle.com/uds/ +¡ÿï* +rapidshopper.com.ar* +rapidshopper.com.mx* +rapidshopper.co.in* +rapidshopper.com* + infodora.com* + metarab.com* + +najti.si08@Rgoogle.com/ads + hallar.co.ve $elemhide$ +metasearch.com.my $elemhide$ +metasearch.com.ph $elemhide  + metasearch.hk $elemhide# +metasearch.co.nz $elemhide$ +metapencarian.com $elemhide! +metakereso.com $elemhide! +findsmarter.ru $elemhide  + metaarama.com $elemhide +meta.bg $elemhide  + slimvinder.be $elemhide  + metasearch.gr $elemhide  + metasearch.ie $elemhide  + metamoteur.ch $elemhide  + inforapido.ch $elemhide  + metasearch.jp $elemhide$ +metasearch.com.tw $elemhide  + metasearch.ae $elemhide# +metasearch.co.il $elemhide + +web.com.hr $elemhide  + hallar.com.py $elemhide  + hallar.com.uy $elemhide +fast.ng $elemhide + meta.com.pk $elemhide  + hallar.com.do $elemhide + buscar.hn $elemhide + info.com.bo $elemhide  + buscar.com.gt $elemhide$ +metasearch.com.vn $elemhide  + metasearch.rs $elemhide& +metavyhladavanie.sk $elemhide! +rapidfinder.cn $elemhide$ +rapidfinder.co.kr $elemhide + thaimeta.com $elemhide" +rapidshopper.at $elemhide" +rapidshopper.ch $elemhide" +rapidshopper.be $elemhide& +rapidshopper.com.br $elemhide" +rapidshopper.ca $elemhide" +rapidshopper.es $elemhide" +rapidshopper.nl $elemhide" +rapidshopper.cn $elemhide" +rapidshopper.co $elemhide" +rapidshopper.dk $elemhide" +rapidshopper.jp $elemhide" +rapidshopper.pl $elemhide" +rapidshopper.ru $elemhide" +rapidshopper.se $elemhide +najti.si $elemhide + infodora.com $elemhide + metarab.com $elemhide% +rapidshopper.co.in $elemhide# +rapidshopper.com $elemhide& +rapidshopper.com.ar $elemhide& +rapidshopper.com.mx $elemhideï" +‘‚ * +jobcrawler.com.br* +cautaangajari.ro* +jobcrawler.co.il* +jobcrawler.co.kr* +jobcrawler.co.za* +jobfinder.com.mx* +jobfinder.com.my* +jobfinder.com.pk* +jobfinder.com.sg* +jobfinder.com.vn* +jobsearch.com.tw* +wyszukajprace.pl* +jobfinder.co.id* +jobsmart.com.ar* +jobsmart.com.co* +jobsmart.com.hk* +jobsmart.com.ph* +jobangebote.de* +jobsgalore.com* +jobsmart.co.in* +jobsmart.co.ve* + jobcrawler.hu* + jobinga.co.uk* + jobster.co.nz* + jobfinder.ae* + jobfinder.pt* + jobsmart.at* + jobsmart.ch* + jobsmart.cl* + jobsmart.cn* + jobsmart.cz* + jobsmart.es* + jobsmart.fi* + jobsmart.fr* + jobsmart.it* + jobsmart.jp* + +job.com.pe* + +jobinga.be* + +jobinga.dk* + +jobinga.nl* + +jobinga.ru* + +jobinga.se* + +jobster.gr* + +jobster.no08@Rgoogle.com/uds/ +�ÿï* +jobcrawler.com.br* +cautaangajari.ro* +jobcrawler.co.il* +jobcrawler.co.kr* +jobcrawler.co.za* +jobfinder.com.mx* +jobfinder.com.my* +jobfinder.com.pk* +jobfinder.com.sg* +jobfinder.com.vn* +jobsearch.com.tw* +wyszukajprace.pl* +jobfinder.co.id* +jobsmart.com.ar* +jobsmart.com.co* +jobsmart.com.hk* +jobsmart.com.ph* +jobangebote.de* +jobsgalore.com* +jobsmart.co.in* +jobsmart.co.ve* + jobcrawler.hu* + jobinga.co.uk* + jobster.co.nz* + jobfinder.ae* + jobfinder.pt* + jobsmart.at* + jobsmart.ch* + jobsmart.cl* + jobsmart.cn* + jobsmart.cz* + jobsmart.es* + jobsmart.fi* + jobsmart.fr* + jobsmart.it* + jobsmart.jp* + +job.com.pe* + +jobinga.be* + +jobinga.dk* + +jobinga.nl* + +jobinga.ru* + +jobinga.se* + +jobster.gr* + +jobster.no08@Rgoogle.com/ads +®‚ * +rapidshopper.com.br* +rapidshopper.at* +rapidshopper.be* +rapidshopper.ca* +rapidshopper.ch* +rapidshopper.cn* +rapidshopper.co* +rapidshopper.dk* +rapidshopper.es* +rapidshopper.jp* +rapidshopper.nl* +rapidshopper.pl* +rapidshopper.ru* +rapidshopper.se08@Rgoogle.com/uds/ +¬ÿï* +rapidshopper.com.br* +rapidshopper.at* +rapidshopper.be* +rapidshopper.ca* +rapidshopper.ch* +rapidshopper.cn* +rapidshopper.co* +rapidshopper.dk* +rapidshopper.es* +rapidshopper.jp* +rapidshopper.nl* +rapidshopper.pl* +rapidshopper.ru* +rapidshopper.se08@Rgoogle.com/ads +.‚ * + +jobinga.ca08@Rgoogle.com/uds/ +,ÿï* + +jobinga.ca08@Rgoogle.com/ads +2‚ * +careers-sa.com08@Rgoogle.com/uds/ +0ÿï* +careers-sa.com08@Rgoogle.com/ads +h‚ * +careers-bh.com* +careers-kw.com* +careers-om.com* +careers-qa.com08@Rgoogle.com/uds/ +fÿï* +careers-bh.com* +careers-kw.com* +careers-om.com* +careers-qa.com08@Rgoogle.com/ads +/‚ * + jobsmart.ie08@Rgoogle.com/uds/ +-ÿï* + jobsmart.ie08@Rgoogle.com/ads# +cautaangajari.ro $elemhide + +job.com.pe $elemhide! +jobangebote.de $elemhide# +jobcrawler.co.il $elemhide# +jobcrawler.co.kr $elemhide# +jobcrawler.co.za $elemhide$ +jobcrawler.com.br $elemhide  + jobcrawler.hu $elemhide + jobfinder.ae $elemhide" +jobfinder.co.id $elemhide# +jobfinder.com.mx $elemhide# +jobfinder.com.my $elemhide# +jobfinder.com.pk $elemhide# +jobfinder.com.sg $elemhide# +jobfinder.com.vn $elemhide + jobfinder.pt $elemhide + +jobinga.be $elemhide  + jobinga.co.uk $elemhide + +jobinga.dk $elemhide + +jobinga.nl $elemhide + +jobinga.ru $elemhide + +jobinga.se $elemhide# +jobsearch.com.tw $elemhide! +jobsgalore.com $elemhide + jobsmart.at $elemhide + jobsmart.ch $elemhide + jobsmart.cl $elemhide + jobsmart.cn $elemhide! +jobsmart.co.in $elemhide! +jobsmart.co.ve $elemhide" +jobsmart.com.ar $elemhide" +jobsmart.com.co $elemhide" +jobsmart.com.hk $elemhide" +jobsmart.com.ph $elemhide + jobsmart.cz $elemhide + jobsmart.es $elemhide + jobsmart.fi $elemhide + jobsmart.fr $elemhide + jobsmart.it $elemhide + jobsmart.jp $elemhide  + jobster.co.nz $elemhide + +jobster.gr $elemhide + +jobster.no $elemhide# +wyszukajprace.pl $elemhide + +jobinga.ca $elemhide! +careers-sa.com $elemhide! +careers-kw.com $elemhide! +careers-om.com $elemhide! +careers-bh.com $elemhide! +careers-qa.com $elemhide + jobsmart.ie $elemhide& +datingtestsieger.de $elemhideÌ +7‚ * +datingtestsieger.de08@Rgoogle.com/uds/ +5ÿï* +datingtestsieger.de08@Rgoogle.com/ads +‚ * +trovitargentina.com.ar* +trovitbrasil.com.br* + trovit.com.br* + trovit.com.co* + trovit.com.ec* + trovit.com.hk* + trovit.com.mx* + trovit.com.pe* + trovit.com.pk* + trovit.com.sg* + trovit.com.tr* + trovit.co.id* + trovit.co.in* + trovit.co.nz* + trovit.co.uk* + trovit.co.ve* + trovit.co.za* + +trovit.com* + trovit.ae* + trovit.at* + trovit.be* + trovit.ca* + trovit.ch* + trovit.cl* + trovit.de* + trovit.es* + trovit.fr* + trovit.ie* + trovit.it* + trovit.ma* + trovit.my* + trovit.nl* + trovit.ph* + trovit.pl* + trovit.pt* + trovit.se08@Rgoogle.com/uds/ +Àÿï* +trovitargentina.com.ar* +trovitbrasil.com.br* + trovit.com.br* + trovit.com.co* + trovit.com.ec* + trovit.com.hk* + trovit.com.mx* + trovit.com.pe* + trovit.com.pk* + trovit.com.sg* + trovit.com.tr* + trovit.co.id* + trovit.co.in* + trovit.co.nz* + trovit.co.uk* + trovit.co.ve* + trovit.co.za* + +trovit.com* + trovit.ae* + trovit.at* + trovit.be* + trovit.ca* + trovit.ch* + trovit.cl* + trovit.de* + trovit.es* + trovit.fr* + trovit.ie* + trovit.it* + trovit.ma* + trovit.my* + trovit.nl* + trovit.ph* + trovit.pl* + trovit.pt* + trovit.se08@Rgoogle.com/ads +/‚ * + t-online.de08@Rgoogle.com/uds/ +-ÿï* + t-online.de08@Rgoogle.com/ads +î‚ * +pricegrabber.co.uk* +bottomdollar.com* +grabworthy.co.uk* +pricegrabber.com* +pgpartner.co.uk* +preciomania.com* +pricegrabber.ca* +precomania.com* + pgpartner.com* + pgpartner.ca* + snapette.com08@Rgoogle.com/uds/ +ìÿï* +pricegrabber.co.uk* +bottomdollar.com* +grabworthy.co.uk* +pricegrabber.com* +pgpartner.co.uk* +preciomania.com* +pricegrabber.ca* +precomania.com* + pgpartner.com* + pgpartner.ca* + snapette.com08@Rgoogle.com/ads +_‚ * +www.search.conduit.com* +www.conduit.com* +Ourtoolbar.com08@Rgoogle.com/uds/ +]ÿï* +www.search.conduit.com* +www.conduit.com* +Ourtoolbar.com08@Rgoogle.com/ads + trovit.ae $elemhide + trovit.at $elemhide + trovit.be $elemhide + trovit.ca $elemhide + trovit.ch $elemhide + trovit.cl $elemhide + trovit.co.id $elemhide + trovit.co.in $elemhide + trovit.co.nz $elemhide + trovit.co.uk $elemhide + trovit.co.ve $elemhide + trovit.co.za $elemhide + +trovit.com $elemhide  + trovit.com.br $elemhide  + trovit.com.co $elemhide  + trovit.com.ec $elemhide  + trovit.com.hk $elemhide  + trovit.com.mx $elemhide  + trovit.com.pe $elemhide  + trovit.com.pk $elemhide  + trovit.com.sg $elemhide  + trovit.com.tr $elemhide + trovit.de $elemhide + trovit.es $elemhide + trovit.fr $elemhide + trovit.ie $elemhide + trovit.it $elemhide + trovit.ma $elemhide + trovit.my $elemhide + trovit.nl $elemhide + trovit.ph $elemhide + trovit.pl $elemhide + trovit.pt $elemhide + trovit.se $elemhide) +trovitargentina.com.ar $elemhide& +trovitbrasil.com.br $elemhide$ +suche.t-online.de $elemhide# +bottomdollar.com $elemhide# +grabworthy.co.uk $elemhide + pgpartner.ca $elemhide" +pgpartner.co.uk $elemhide  + pgpartner.com $elemhide" +preciomania.com $elemhide! +precomania.com $elemhide" +pricegrabber.ca $elemhide% +pricegrabber.co.uk $elemhide# +pricegrabber.com $elemhide + snapette.com $elemhide" +www.conduit.com $elemhide) +www.search.conduit.com $elemhide! +Ourtoolbar.com $elemhide  $elemhide  $elemhide  $elemhide« +p‚ * +softonic.com.br* + softonic.com* + softonic.cn* + softonic.jp* + softonic.pl08@Rgoogle.com/uds/ +nÿï* +softonic.com.br* + softonic.com* + softonic.cn* + softonic.jp* + softonic.pl08@Rgoogle.com/ads +2‚ * +talktalk.co.uk08@Rgoogle.com/uds/ +0ÿï* +talktalk.co.uk08@Rgoogle.com/ads +¯‚ * +searchatlas.centrum.cz* +najisto.centrum.cz* +search.centrum.cz* +stahuj.centrum.cz* +search.volny.cz* +zena.centrum.cz* + aktualne.cz08@Rgoogle.com/uds/ +­ÿï* +searchatlas.centrum.cz* +najisto.centrum.cz* +search.centrum.cz* +stahuj.centrum.cz* +search.volny.cz* +zena.centrum.cz* + aktualne.cz08@Rgoogle.com/ads +1‚ * + search.bt.com08@Rgoogle.com/uds/ +/ÿï* + search.bt.com08@Rgoogle.com/ads  $elemhide  $elemhide! +talktalk.co.uk $elemhide$ +search.centrum.cz $elemhide) +searchatlas.centrum.cz $elemhide" +search.volny.cz $elemhide  $elemhide$ +stahuj.centrum.cz $elemhide% +najisto.centrum.cz $elemhide" +zena.centrum.cz $elemhide  + search.bt.com $elemhide +auto.de $elemhide! +best-price.com $elemhide  + best-deal.com $elemhide  + best-price.fr $elemhide + bluekiwi.de $elemhide + +camidos.de $elemhide  + cheapfly24.de $elemhide + deal24.co.uk $elemhide + +dsl.de $elemhide + elprecio.es $elemhide  + flights24.com $elemhide + flights24.ie $elemhide + fluege.de $elemhide + flug24.at $elemhide + flug24.de $elemhide + flughafen.de $elemhide + fly.co.uk $elemhide + fly24.co.uk $elemhide +geld.de $elemhide' +hotelreservierung.de $elemhide + koopje24.nl $elemhide + kredit.de $elemhide" +kurz-mal-weg.de $elemhide# +lastminute24.com $elemhide + myimmo.de $elemhide  $elemhide" +partnersuche.de $elemhide$ +preisvergleich.de $elemhide + +prijs24.be $elemhide1" +private-krankenversicherung.de $elemhide + prix24.be $elemhide + reisen.de $elemhide + sconto24.it $elemhide + shopping.de $elemhide + top-prix.fr $elemhide + travel24.at $elemhide + travel24.ch $elemhide! +travel24.co.uk $elemhide + travel24.com $elemhide + travel24.nl $elemhide( +travel24-hotels.co.uk $elemhide" +urlaubstours.de $elemhide  + vergleiche.de $elemhide$ +versicherungen.de $elemhide + veturo.de $elemhideÓ# +¹‚ * +private-krankenversicherung.de* +travel24-hotels.co.uk* +hotelreservierung.de* +holidayranking.de* +preisvergleich.de* +versicherungen.de* +lastminute24.com* +kurz-mal-weg.de* +partnersuche.de* +urlaubstours.de* +best-price.com* +travel24.co.uk* + best-deal.com* + best-price.fr* + cheapfly24.de* + flights24.com* + prisdeals.com* + vergleiche.de* + vluchten24.nl* + deal24.co.uk* + flights24.ie* + flughafen.de* + prisdeals.dk* + prisdeals.se* + travel24.com* + bluekiwi.de* + elprecio.es* + fly24.co.uk* + koopje24.nl* + sconto24.it* + shopping.de* + top-prix.fr* + travel24.at* + travel24.ch* + travel24.nl* + vlucht24.nl* + vuelos24.es* + +auto.co.uk* + +camidos.de* + +prijs24.be* + +vuelo24.es* + fluege.de* + flug24.at* + flug24.de* + fly.co.uk* + kredit.de* + myimmo.de* + prix24.be* + reisen.de* + veturo.de* + voli24.it* + volo24.it* + vols24.fr* + +vol24.fr* +auto.de* +geld.de* +news.de* +dsl.de08@Rgoogle.com/uds/ +·ÿï* +private-krankenversicherung.de* +travel24-hotels.co.uk* +hotelreservierung.de* +holidayranking.de* +preisvergleich.de* +versicherungen.de* +lastminute24.com* +kurz-mal-weg.de* +partnersuche.de* +urlaubstours.de* +best-price.com* +travel24.co.uk* + best-deal.com* + best-price.fr* + cheapfly24.de* + flights24.com* + prisdeals.com* + vergleiche.de* + vluchten24.nl* + deal24.co.uk* + flights24.ie* + flughafen.de* + prisdeals.dk* + prisdeals.se* + travel24.com* + bluekiwi.de* + elprecio.es* + fly24.co.uk* + koopje24.nl* + sconto24.it* + shopping.de* + top-prix.fr* + travel24.at* + travel24.ch* + travel24.nl* + vlucht24.nl* + vuelos24.es* + +auto.co.uk* + +camidos.de* + +prijs24.be* + +vuelo24.es* + fluege.de* + flug24.at* + flug24.de* + fly.co.uk* + kredit.de* + myimmo.de* + prix24.be* + reisen.de* + veturo.de* + voli24.it* + volo24.it* + vols24.fr* + +vol24.fr* +auto.de* +geld.de* +news.de* +dsl.de08@Rgoogle.com/ads +‰‚ * +startpagina.nl* +woonwebsite.nl* + kieskeurig.nl* + overzicht.nl* + +nusport.nl* + nutech.nl* +nu.nl08@Rgoogle.com/uds/ +‡ÿï* +startpagina.nl* +woonwebsite.nl* + kieskeurig.nl* + overzicht.nl* + +nusport.nl* + nutech.nl* +nu.nl08@Rgoogle.com/ads +Žÿï* +startpagina.nl* +woonwebsite.nl* + kieskeurig.nl* + overzicht.nl* + +nusport.nl* + nutech.nl* +nu.nl08@Radsense_afx_ab.min.js +…‚ * +orangecaraibe.com* + lemoteur.fr* + +nordnet.fr* + 118712.fr* + orange.fr* + orange.re* + +voila.fr08@Rgoogle.com/uds/ +ƒÿï* +orangecaraibe.com* + lemoteur.fr* + +nordnet.fr* + 118712.fr* + orange.fr* + orange.re* + +voila.fr08@Rgoogle.com/ads +k‚ * + vergelijk.be* + vergelijk.nl* + comparer.be* + comparer.fr* + vertaa.fi08@Rgoogle.com/uds/ +iÿï* + vergelijk.be* + vergelijk.nl* + comparer.be* + comparer.fr* + vertaa.fi08@Rgoogle.com/ads + vlucht24.nl $elemhide  + vluchten24.nl $elemhide +vol24.fr $elemhide + voli24.it $elemhide + volo24.it $elemhide + vols24.fr $elemhide + +vuelo24.es $elemhide + vuelos24.es $elemhide + +auto.co.uk $elemhide$ +holidayranking.de $elemhide + prisdeals.dk $elemhide + prisdeals.se $elemhide  + prisdeals.com $elemhide! +startpagina.nl $elemhide  + kieskeurig.nl $elemhide + overzicht.nl $elemhide  $elemhide! +woonwebsite.nl $elemhide + nutech.nl $elemhide + +nusport.nl $elemhide +voila.fr $elemhide  $elemhide + lemoteur.fr $elemhide + orange.re $elemhide + 118712.fr $elemhide% +en-ville.orange.fr $elemhide$ +orangecaraibe.com $elemhide + +nordnet.fr $elemhide + vergelijk.nl $elemhide + vergelijk.be $elemhide + comparer.fr $elemhide + comparer.be $elemhide + vertaa.fi $elemhide + edreams.com $elemhide + +edreams.es $elemhide + +edreams.fr $elemhide + +edreams.it $elemhide + +edreams.ae $elemhide  + edreams.co.uk $elemhide + +edreams.pt $elemhide + edreams.net $elemhide + +edreams.de $elemhide! +edreams.com.ar $elemhide! +edreams.com.mx $elemhide + +edreams.ch $elemhide! +edreams.com.tr $elemhide! +edreams.com.br $elemhide + +edreams.ma $elemhide! +edreams.com.ve $elemhide + +edreams.in $elemhide + +edreams.hk $elemhide! +edreams.com.ru $elemhide + +edreams.pe $elemhide + +edreams.ph $elemhide + opodo.com $elemhideÅ +‰‚ * +travelagency.travel* +edreams.com.ar* +edreams.com.br* +edreams.com.mx* +edreams.com.ru* +edreams.com.tr* +edreams.com.ve* +travellink.com* + edreams.co.uk* + govoyages.com* + travellink.dk* + travellink.fi* + travellink.no* + travellink.se* + liligo.co.uk* + edreams.com* + edreams.net* + opodo.co.uk* + +edreams.ae* + +edreams.ch* + +edreams.de* + +edreams.es* + +edreams.fr* + +edreams.hk* + +edreams.in* + +edreams.it* + +edreams.ma* + +edreams.pe* + +edreams.ph* + +edreams.pt* + +liligo.com* + govolo.it* + liligo.at* + liligo.ch* + liligo.de* + liligo.es* + liligo.fr* + liligo.hu* + liligo.it* + liligo.pt* + liligo.ro* + opodo.com* + +opodo.at* + +opodo.de* + +opodo.dk* + +opodo.fi* + +opodo.fr* + +opodo.it* + +opodo.no* + +opodo.pl* + +opodo.se08@Rgoogle.com/uds/ +‡ÿï* +travelagency.travel* +edreams.com.ar* +edreams.com.br* +edreams.com.mx* +edreams.com.ru* +edreams.com.tr* +edreams.com.ve* +travellink.com* + edreams.co.uk* + govoyages.com* + travellink.dk* + travellink.fi* + travellink.no* + travellink.se* + liligo.co.uk* + edreams.com* + edreams.net* + opodo.co.uk* + +edreams.ae* + +edreams.ch* + +edreams.de* + +edreams.es* + +edreams.fr* + +edreams.hk* + +edreams.in* + +edreams.it* + +edreams.ma* + +edreams.pe* + +edreams.ph* + +edreams.pt* + +liligo.com* + govolo.it* + liligo.at* + liligo.ch* + liligo.de* + liligo.es* + liligo.fr* + liligo.hu* + liligo.it* + liligo.pt* + liligo.ro* + opodo.com* + +opodo.at* + +opodo.de* + +opodo.dk* + +opodo.fi* + +opodo.fr* + +opodo.it* + +opodo.no* + +opodo.pl* + +opodo.se08@Rgoogle.com/ads +-‚ * + trovi.com08@Rgoogle.com/uds/ ++ÿï* + trovi.com08@Rgoogle.com/ads +1‚ * + startsiden.no08@Rgoogle.com/uds/ +/ÿï* + startsiden.no08@Rgoogle.com/ads +W‚ * + mrlocal.com* + +ziphip.com* + local.com* + loqal.com08@Rgoogle.com/uds/ +Uÿï* + mrlocal.com* + +ziphip.com* + local.com* + loqal.com08@Rgoogle.com/ads +c‚ * +search2.xfinity.com* +search.comcast.net* +search.xfinity.com08@Rgoogle.com/uds/ +aÿï* +search2.xfinity.com* +search.comcast.net* +search.xfinity.com08@Rgoogle.com/ads +¿‚ * +bargainmatch.com* +lyricmatcher.com* +alotfinance.com* +alotresults.com* +alothealth.com* +alottravel.com* + alotlocal.com* + alothome.com* + +alot.com08@Rgoogle.com/uds/ +½ÿï* +bargainmatch.com* +lyricmatcher.com* +alotfinance.com* +alotresults.com* +alothealth.com* +alottravel.com* + alotlocal.com* + alothome.com* + +alot.com08@Rgoogle.com/ads +opodo.de $elemhide + opodo.co.uk $elemhide +opodo.it $elemhide +opodo.at $elemhide +opodo.pl $elemhide +opodo.no $elemhide +opodo.se $elemhide +opodo.fi $elemhide +opodo.dk $elemhide +opodo.fr $elemhide! +travellink.com $elemhide  + travellink.se $elemhide  + travellink.fi $elemhide  + travellink.no $elemhide  + travellink.dk $elemhide  + govoyages.com $elemhide + govolo.it $elemhide& +travelagency.travel $elemhide + liligo.fr $elemhide + liligo.es $elemhide + liligo.it $elemhide + liligo.de $elemhide + liligo.hu $elemhide + liligo.co.uk $elemhide + liligo.pt $elemhide + +liligo.com $elemhide + liligo.ro $elemhide + liligo.at $elemhide + liligo.ch $elemhide + trovi.com $elemhide  + startsiden.no $elemhide + local.com $elemhide + mrlocal.com $elemhide + loqal.com $elemhide + +ziphip.com $elemhide  $elemhide$ +bajabroadband.net $elemhide) +buckeyecablesystem.net $elemhide  $elemhide + charter.net $elemhide  $elemhide, +entertainment.verizon.com $elemhide, +searchresults.verizon.com $elemhide +gci.net $elemhide  $elemhide  $elemhide  $elemhide" +hickorytech.net $elemhide  $elemhide  $elemhide  $elemhide + knology.net $elemhideŠ! +2‚ * +my.netzero.net08@Rgoogle.com/afs/ +ü ‚ * +entertainment.verizon.com* +searchresults.verizon.com* +start.otgmanagement.com* +bienvenido.toshiba.com* +buckeyecablesystem.net* +tabletstart.lenovo.com* +windstreambusiness.net* +my.wavebroadband.com* +portal.onechoice.net* +portal.vfwonline.net* +morrisbroadband.net* +mybendbroadband.com* +mystart.toshiba.com* +portal.mygrande.net* +verizonbusiness.com* +cincinnatibell.net* +myconsolidated.net* +bajabroadband.net* +home.cableone.net* +mediacomtoday.com* +my.northstate.net* +mycenturylink.com* +start.toshiba.com* +home.toshiba.com* +mycablespeed.com* +start.lenovo.com* +centurylink.net* +gethotwired.net* +hawaiiantel.net* +hickorytech.net* +myhughesnet.com* +mylonglines.com* +atlanticbb.net* +my.astound.net* +my.bresnan.net* +my.netzero.net* +myclick2go.com* +mylusfiber.net* +myreinbeck.com* +suddenlink.net* +windstream.net* + hometv2go.com* + metrocast.net* + myhtcplus.net* + myritter.com* + surewest.net* + truvista.net* + charter.net* + hargray.net* + knology.net* + mybrctv.com* + nex-tech.tv* + nwcable.net* + quixnet.net* + synacor.net* + verizon.net* + +mygvtc.com* + +mysecv.com* + +wowway.net* + midco.net* + mycci.net* + myepb.net* + tesco.net* + +chek.com* +gci.net* +tds.net08@Rgoogle.com/uds/ +ú ÿï* +entertainment.verizon.com* +searchresults.verizon.com* +start.otgmanagement.com* +bienvenido.toshiba.com* +buckeyecablesystem.net* +tabletstart.lenovo.com* +windstreambusiness.net* +my.wavebroadband.com* +portal.onechoice.net* +portal.vfwonline.net* +morrisbroadband.net* +mybendbroadband.com* +mystart.toshiba.com* +portal.mygrande.net* +verizonbusiness.com* +cincinnatibell.net* +myconsolidated.net* +bajabroadband.net* +home.cableone.net* +mediacomtoday.com* +my.northstate.net* +mycenturylink.com* +start.toshiba.com* +home.toshiba.com* +mycablespeed.com* +start.lenovo.com* +centurylink.net* +gethotwired.net* +hawaiiantel.net* +hickorytech.net* +myhughesnet.com* +mylonglines.com* +atlanticbb.net* +my.astound.net* +my.bresnan.net* +my.netzero.net* +myclick2go.com* +mylusfiber.net* +myreinbeck.com* +suddenlink.net* +windstream.net* + hometv2go.com* + metrocast.net* + myhtcplus.net* + myritter.com* + surewest.net* + truvista.net* + charter.net* + hargray.net* + knology.net* + mybrctv.com* + nex-tech.tv* + nwcable.net* + quixnet.net* + synacor.net* + verizon.net* + +mygvtc.com* + +mysecv.com* + +wowway.net* + midco.net* + mycci.net* + myepb.net* + tesco.net* + +chek.com* +gci.net* +tds.net08@Rgoogle.com/ads  $elemhide  $elemhide  $elemhide  $elemhide! +my.astound.net $elemhide! +my.bresnan.net $elemhide$ +my.northstate.net $elemhide' +my.wavebroadband.com $elemhide  $elemhide  $elemhide# +mycablespeed.com $elemhide$ +mycenturylink.com $elemhide! +myclick2go.com $elemhide% +myconsolidated.net $elemhide  $elemhide + +mygvtc.com $elemhide  $elemhide" +myhughesnet.com $elemhide  $elemhide! +my.netzero.net $elemhide! +myreinbeck.com $elemhide  $elemhide  $elemhide& +mystart.toshiba.com $elemhide + nex-tech.tv $elemhide  $elemhide' +portal.onechoice.net $elemhide& +portal.mygrande.net $elemhide  $elemhide  $elemhide' +portal.vfwonline.net $elemhide  $elemhide# +start.lenovo.com $elemhide  $elemhide  $elemhide + surewest.net $elemhide  $elemhide  $elemhide + verizon.net $elemhide& +verizonbusiness.com $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide* +start.otgmanagement.com $elemhide! +mylusfiber.net $elemhide  $elemhide! +autoversed.com $elemhide# +careerjob360.com $elemhide! +carsgenius.com $elemhide + dogpile.com $elemhide + +excite.com $elemhide( +fastbrowsersearch.com $elemhide + +gopher.com $elemhide" +healthnwell.com $elemhide + +info.co.uk $elemhide +info.com $elemhide + info.com.au $elemhideÕ +Ü‚ * +fastbrowsersearch.com* +howstuffworks.com* +metacrawler.com* +webcrawler.com* + infospace.com* + savesmart.com* + tattoodle.com* + dogpile.com* + +excite.com* + +nation.com* +zoo.com08@Rgoogle.com/uds/ +Úÿï* +fastbrowsersearch.com* +howstuffworks.com* +metacrawler.com* +webcrawler.com* + infospace.com* + savesmart.com* + tattoodle.com* + dogpile.com* + +excite.com* + +nation.com* +zoo.com08@Rgoogle.com/ads +)‚ * +wp.pl08@Rgoogle.com/uds/ +'ÿï* +wp.pl08@Rgoogle.com/ads +<‚ * + virgilio.it* + libero.it08@Rgoogle.com/uds/ +:ÿï* + virgilio.it* + libero.it08@Rgoogle.com/ads +‰‚ * + savenkeep.com* + shoppeet.com* + supereva.com* + shoppeet.jp* + +kuidle.com* + +peeplo.com* + peeplo.it08@Rgoogle.com/uds/ +‡ÿï* + savenkeep.com* + shoppeet.com* + supereva.com* + shoppeet.jp* + +kuidle.com* + +peeplo.com* + peeplo.it08@Rgoogle.com/ads +’‚ * +journaldesfemmes.com* +commentcamarche.net* +journaldunet.com* +linternaute.com* + hayatouki.com* +ccm.net08@Rgoogle.com/uds/ +�ÿï* +journaldesfemmes.com* +commentcamarche.net* +journaldunet.com* +linternaute.com* + hayatouki.com* +ccm.net08@Rgoogle.com/ads +r‚ * + leboncoin.fr* + donedeal.ie* + fotocasa.es* + subito.it* + +tutti.ch* +tori.fi08@Rgoogle.com/uds/ +pÿï* + leboncoin.fr* + donedeal.ie* + fotocasa.es* + subito.it* + +tutti.ch* +tori.fi08@Rgoogle.com/ads +B‚ * + jobrapido.com* + jobrapido.net08@Rgoogle.com/uds/ +@ÿï* + jobrapido.com* + jobrapido.net08@Rgoogle.com/ads +5‚ * +priceminister.com08@Rgoogle.com/uds/ +3ÿï* +priceminister.com08@Rgoogle.com/ads +-‚ * + goo.ne.jp08@Rgoogle.com/uds/ ++ÿï* + goo.ne.jp08@Rgoogle.com/ads  + infospace.com $elemhide  $elemhide" +metacrawler.com $elemhide! +myloveluxe.com $elemhide# +myloveluxe.store $elemhide# +myloveluxe.today $elemhide + +nation.com $elemhide  + savesmart.com $elemhide  + tattoodle.com $elemhide  + taxinfo.today $elemhide# +walletgenius.com $elemhide! +webcrawler.com $elemhide + zenya.com $elemhide +zoo.com $elemhide + szukaj.wp.pl $elemhide  $elemhide  $elemhide + +peeplo.com $elemhide + supereva.com $elemhide + +kuidle.com $elemhide + shoppeet.com $elemhide  + savenkeep.com $elemhide + shoppeet.jp $elemhide + peeplo.it $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  + hayatouki.com $elemhide + donedeal.ie $elemhide + fotocasa.es $elemhide + leboncoin.fr $elemhide7 + subito.it&a[href^="https://ad.doubleclick.net/"] +tori.fi $elemhide +tutti.ch $elemhide  + jobrapido.com $elemhide  + jobrapido.net $elemhide$ +priceminister.com $elemhide + goo.ne.jp $elemhide + jooble.by $elemhide + jooble.in $elemhide + jooble.kz $elemhide  + jooble-ng.com $elemhide + jooble.ua $elemhideà +­‚ * + jooble-ar.com* + jooble-au.com* + jooble-ba.com* + jooble-bg.com* + jooble-ch.com* + jooble-cn.com* + jooble-cr.com* + jooble-cu.com* + jooble-de.com* + jooble-do.com* + jooble-fi.com* + jooble-fr.com* + jooble-id.com* + jooble-ie.com* + jooble-kr.com* + jooble-ng.com* + jooble-no.com* + jooble-pr.com* + jooble-rs.com* + jooble-se.com* + jooble-sv.com* + jooble-th.com* + jooble-tr.com* + jooble-uy.com* + jooble.com.br* + jooble.com.co* + jooble.com.gr* + jooble.com.hr* + jooble.com.mx* + jooble.com.pt* + jooble.com.ro* + jooble.com.ve* + jooble.org.uk* + jooble.co.nl* + jooble.co.nz* + joobleca.com* + +jooble.com* + jooble.at* + jooble.be* + jooble.by* + jooble.cl* + jooble.cz* + jooble.dk* + jooble.es* + jooble.hk* + jooble.hu* + jooble.in* + jooble.it* + jooble.jp* + jooble.kz* + jooble.pe* + jooble.ph* + jooble.pk* + jooble.pl* + jooble.ru* + jooble.sg* + jooble.sk* + jooble.tw* + jooble.ua08@Rgoogle.com/uds/ +«ÿï* + jooble-ar.com* + jooble-au.com* + jooble-ba.com* + jooble-bg.com* + jooble-ch.com* + jooble-cn.com* + jooble-cr.com* + jooble-cu.com* + jooble-de.com* + jooble-do.com* + jooble-fi.com* + jooble-fr.com* + jooble-id.com* + jooble-ie.com* + jooble-kr.com* + jooble-ng.com* + jooble-no.com* + jooble-pr.com* + jooble-rs.com* + jooble-se.com* + jooble-sv.com* + jooble-th.com* + jooble-tr.com* + jooble-uy.com* + jooble.com.br* + jooble.com.co* + jooble.com.gr* + jooble.com.hr* + jooble.com.mx* + jooble.com.pt* + jooble.com.ro* + jooble.com.ve* + jooble.org.uk* + jooble.co.nl* + jooble.co.nz* + joobleca.com* + +jooble.com* + jooble.at* + jooble.be* + jooble.by* + jooble.cl* + jooble.cz* + jooble.dk* + jooble.es* + jooble.hk* + jooble.hu* + jooble.in* + jooble.it* + jooble.jp* + jooble.kz* + jooble.pe* + jooble.ph* + jooble.pk* + jooble.pl* + jooble.ru* + jooble.sg* + jooble.sk* + jooble.tw* + jooble.ua08@Rgoogle.com/ads +O‚ * +search.earthlink.net* +search.peoplepc.com08@Rgoogle.com/uds/ +Mÿï* +search.earthlink.net* +search.peoplepc.com08@Rgoogle.com/ads +O‚ * + shoplike.com* + shoptrue.com* + thefind.com08@Rgoogle.com/uds/  + jooble-cn.com $elemhide + jooble.hk $elemhide  + jooble-ie.com $elemhide  + jooble-kr.com $elemhide + jooble.ph $elemhide + jooble.pk $elemhide  + jooble-rs.com $elemhide + jooble.ru $elemhide + jooble.tw $elemhide  + jooble.com.hr $elemhide + jooble.it $elemhide  + jooble-tr.com $elemhide + jooble.be $elemhide  + jooble-ch.com $elemhide + jooble.es $elemhide  + jooble-bg.com $elemhide  + jooble-de.com $elemhide  + jooble-fi.com $elemhide + jooble.at $elemhide  + jooble-ba.com $elemhide  + jooble.com.pt $elemhide  + jooble.org.uk $elemhide + jooble.cz $elemhide + jooble.dk $elemhide  + jooble.com.ro $elemhide  + jooble-fr.com $elemhide  + jooble-no.com $elemhide + jooble.sk $elemhide  + jooble.com.gr $elemhide + jooble.hu $elemhide + jooble.co.nl $elemhide + jooble.pl $elemhide  + jooble-se.com $elemhide + joobleca.com $elemhide + jooble.jp $elemhide  + jooble.com.br $elemhide  + jooble-cu.com $elemhide  + jooble-pr.com $elemhide  + jooble-sv.com $elemhide  + jooble-th.com $elemhide  + jooble-ar.com $elemhide  + jooble-au.com $elemhide + jooble.cl $elemhide  + jooble-cr.com $elemhide + jooble.co.nz $elemhide  + jooble-do.com $elemhide  + jooble-id.com $elemhide  + jooble.com.mx $elemhide  + jooble-uy.com $elemhide + jooble.pe $elemhide + +jooble.com $elemhide  + jooble.com.co $elemhide + jooble.sg $elemhide  + jooble.com.ve $elemhide' +search.earthlink.net $elemhide& +search.peoplepc.com $elemhide + shoplike.com $elemhide + shoptrue.com $elemhide + thefind.com $elemhideÛ +Mÿï* + shoplike.com* + shoptrue.com* + thefind.com08@Rgoogle.com/ads +1‚ * + biglobe.ne.jp08@Rgoogle.com/uds/ +/ÿï* + biglobe.ne.jp08@Rgoogle.com/ads +ð‚ * +aluguetemporada.com.br* +bedandbreakfast.com* +vacationrentals.com* +ownersdirect.co.uk* +cyberrentals.com* +greatrentals.com* +homelidays.co.uk* +homeaway.com.ar* +homeaway.com.au* +homeaway.com.co* +homeaway.com.mx* +fewo-direkt.de* +homeaway.co.in* +homeaway.co.nz* +homeaway.co.uk* +toprural.co.uk* + homelidays.de* + homelidays.es* + homelidays.fr* + homelidays.it* + homelidays.nl* + homelidays.pt* + homeaway.com* + toprural.cat* + homeaway.at* + homeaway.ca* + homeaway.dk* + homeaway.es* + homeaway.fi* + homeaway.it* + homeaway.nl* + homeaway.no* + homeaway.pt* + homeaway.se* + toprural.de* + toprural.es* + toprural.fr* + toprural.it* + toprural.nl* + toprural.pt* + +abritel.fr* + +vrbo.com08@Rgoogle.com/uds/ +îÿï* +aluguetemporada.com.br* +bedandbreakfast.com* +vacationrentals.com* +ownersdirect.co.uk* +cyberrentals.com* +greatrentals.com* +homelidays.co.uk* +homeaway.com.ar* +homeaway.com.au* +homeaway.com.co* +homeaway.com.mx* +fewo-direkt.de* +homeaway.co.in* +homeaway.co.nz* +homeaway.co.uk* +toprural.co.uk* + homelidays.de* + homelidays.es* + homelidays.fr* + homelidays.it* + homelidays.nl* + homelidays.pt* + homeaway.com* + toprural.cat* + homeaway.at* + homeaway.ca* + homeaway.dk* + homeaway.es* + homeaway.fi* + homeaway.it* + homeaway.nl* + homeaway.no* + homeaway.pt* + homeaway.se* + toprural.de* + toprural.es* + toprural.fr* + toprural.it* + toprural.nl* + toprural.pt* + +abritel.fr* + +vrbo.com08@Rgoogle.com/ads +,‚ * + +twcc.com08@Rgoogle.com/uds/ +*ÿï* + +twcc.com08@Rgoogle.com/ads ++‚ * +sky.com08@Rgoogle.com/uds/ +)ÿï* +sky.com08@Rgoogle.com/ads  + biglobe.ne.jp $elemhide + homeaway.com $elemhide) +aluguetemporada.com.br $elemhide + +abritel.fr $elemhide& +bedandbreakfast.com $elemhide# +cyberrentals.com $elemhide# +greatrentals.com $elemhide! +homeaway.co.uk $elemhide" +homeaway.com.ar $elemhide" +homeaway.com.au $elemhide + homeaway.at $elemhide + homeaway.ca $elemhide" +homeaway.com.co $elemhide + homeaway.dk $elemhide + homeaway.fi $elemhide! +homeaway.co.in $elemhide + homeaway.it $elemhide" +homeaway.com.mx $elemhide + homeaway.nl $elemhide! +homeaway.co.nz $elemhide + homeaway.no $elemhide + homeaway.pt $elemhide + homeaway.es $elemhide + homeaway.se $elemhide  + homelidays.fr $elemhide  + homelidays.de $elemhide  + homelidays.it $elemhide  + homelidays.nl $elemhide  + homelidays.pt $elemhide  + homelidays.es $elemhide# +homelidays.co.uk $elemhide% +ownersdirect.co.uk $elemhide + toprural.cat $elemhide + toprural.fr $elemhide + toprural.de $elemhide + toprural.it $elemhide + toprural.nl $elemhide + toprural.pt $elemhide + toprural.es $elemhide! +toprural.co.uk $elemhide! +fewo-direkt.de $elemhide& +vacationrentals.com $elemhide +vrbo.com $elemhide  $elemhide  $elemhide + startlap.hu $elemhide +hir24.hu $elemhide + +nLc.hu $elemhide + kremmania.hu $elemhide  + hazipatika.hu $elemhide +cosmo.hu $elemhide + vezess.hu $elemhide + olcsobbat.hu $elemhide + startapro.hu $elemhide + kozelben.hu $elemhideÍ@ +¿‚ * + hazipatika.hu* + jobmonitor.hu* + kremmania.hu* + olcsobbat.hu* + startapro.hu* + kozelben.hu* + startlap.hu* + vezess.hu* + +cosmo.hu* + +hir24.hu* +nLc.hu08@Rgoogle.com/uds/ +½ÿï* + hazipatika.hu* + jobmonitor.hu* + kremmania.hu* + olcsobbat.hu* + startapro.hu* + kozelben.hu* + startlap.hu* + vezess.hu* + +cosmo.hu* + +hir24.hu* +nLc.hu08@Rgoogle.com/ads +3‚ * +virginmedia.com08@Rgoogle.com/uds/ +1ÿï* +virginmedia.com08@Rgoogle.com/ads +2‚ * +szukaj.onet.pl08@Rgoogle.com/uds/ +A€* +szukaj.onet.pl08@R google.com/afs/ads/i/iframe.html +0ÿï* +szukaj.onet.pl08@Rgoogle.com/ads +.‚ * + +interia.pl08@Rgoogle.com/uds/ +,ÿï* + +interia.pl08@Rgoogle.com/ads +:‚ * + 01net.com* + bfmtv.com08@Rgoogle.com/uds/ +8ÿï* + 01net.com* + bfmtv.com08@Rgoogle.com/ads +.‚ * + +zuhause.de08@Rgoogle.com/uds/ +,ÿï* + +zuhause.de08@Rgoogle.com/ads +�‚ * +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@Rgoogle.com/uds/*client=vert-pla +�‚ * +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@Rgoogle.com/afs/*client=vert-pla +’‚ * +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@Rgoogle.com/uds/afs/i +Ž‚ * +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@Rgoogle.com/afs/i +§* +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@R,google.com/ads/search/module/ads/*/search.js +›ÿï* +applianceshopping.com* +preissuchmaschine.de* +pricemachine.co.uk* +homegardenpro.com* +luckypetstore.com* +pricemachine.com* +search.avast.com* +mybluelight.com* +pricemachine.fr* +calibex.com.au* +healthlane.com* +sportslane.com* +vrouwonline.nl* + calibex.co.uk* + guenstiger.de* + kieskeurig.be* + nextag.com.au* + modelane.com* + nextag.co.jp* + nextag.co.uk* + omniprix.com* + calibex.com* + iinedan.com* + koopje24.nl* + netzero.com* + netzero.net* + toyshub.com* + +calibex.jp* + +mysite.com* + +nextag.com* + grazia.nl* + huuto.net* + nextag.ca* + nextag.de* + nextag.es* + nextag.fr* + nextag.it* + nextag.nl* +juno.com* +untd.com* +wize.com08@Rgoogle.com/adsense/search/*.js +§‚ * +gumtree.com.au* +marktplaats.nl* + gumtree.co.za* + bilbasen.dk* + ebay.com.au* + ebay.com.hk* + ebay.com.my* + ebay.com.sg* + ebay.com.tw* + gumtree.com* + +ebay.co.th* + +ebay.co.uk* + +gumtree.ie* + kijiji.ca* + mobile.de* + +ebay.com* +ebay.at* +ebay.be* +ebay.ca* +ebay.ch* +ebay.cn* +ebay.de* +ebay.es* +ebay.fr* +ebay.ie* +ebay.it* +ebay.nl* +ebay.ph* +ebay.pl* +dba.dk08@Rgoogle.com/uds/ +¥ÿï* +gumtree.com.au* +marktplaats.nl* + gumtree.co.za* + bilbasen.dk* + ebay.com.au* + ebay.com.hk* + ebay.com.my* + ebay.com.sg* + ebay.com.tw* + gumtree.com* + +ebay.co.th* + +ebay.co.uk* + +gumtree.ie* + kijiji.ca* + mobile.de* + +ebay.com* +ebay.at* +ebay.be* +ebay.ca* +ebay.ch* +ebay.cn* +ebay.de* +ebay.es* +ebay.fr* +ebay.ie* +ebay.it* +ebay.nl* +ebay.ph* +ebay.pl* +dba.dk08@Rgoogle.com/ads +A‚ * + kijiji.ca08@R#classistatic.com/static/*adsense.js +¤‚ * + ebay.com.au* + ebay.com.hk* + ebay.com.my* + ebay.com.sg* + ebay.com.tw* + +ebay.co.th* + +ebay.co.uk* + +ebay.com* +ebay.at* +ebay.be* +ebay.ca* +ebay.ch* +ebay.cn* +ebay.de* +ebay.es* +ebay.fr* +ebay.ie* +ebay.it* +ebay.nl* +ebay.ph* +ebay.pl08@Rebayrtm.com/rtm*.  + jobmonitor.hu $elemhide" +virginmedia.com $elemhide! +szukaj.onet.pl $elemhide + +interia.pl $elemhide  $elemhide  $elemhide + +zuhause.de $elemhide* + +ebay.comdiv[title="ADVERTISEMENT"] +ebay.ca $elemhide + ebay.com.au $elemhide + +ebay.co.uk $elemhide +ebay.at $elemhide +ebay.be $elemhide +ebay.fr $elemhide +ebay.de $elemhide +ebay.it $elemhide +ebay.nl $elemhide +ebay.es $elemhide +ebay.ch $elemhide +ebay.ie $elemhide +ebay.pl $elemhide +ebay.cn $elemhide + ebay.com.hk $elemhide + ebay.com.sg $elemhide + ebay.com.my $elemhide + ebay.com.tw $elemhide +ebay.ph $elemhide + +ebay.co.th $elemhide + kijiji.ca $elemhide! +gumtree.com.au $elemhide + gumtree.com $elemhide + +gumtree.ie $elemhide  + gumtree.co.za $elemhide! +marktplaats.nl $elemhide + +dba.dk $elemhide + bilbasen.dk $elemhide8 +suchen.mobile.de div[data-testid^="SRP_SBANNER_"]: +suchen.mobile.de"div[data-testid^="SRP_TABLECELL_"]" +search.juno.com $elemhide  + juno-news.com $elemhide% +search.netzero.net $elemhide¤ +n‚ * +search.netzero.net* +netzero-news.net* +search.juno.com* + juno-news.com08@Rgoogle.com/uds/ +I‚ * +search.netzero.net* +search.juno.com08@Rgoogle.com/afs/ +lÿï* +search.netzero.net* +netzero-news.net* +search.juno.com* + juno-news.com08@Rgoogle.com/ads +.‚ * + +ricardo.ch08@Rgoogle.com/uds/ +,ÿï* + +ricardo.ch08@Rgoogle.com/ads +4‚ * +search.yahoo.com08@Rgoogle.com/uds/ +2ÿï* +search.yahoo.com08@Rgoogle.com/ads +1‚ * + cdiscount.com08@Rgoogle.com/uds/ +/ÿï* + cdiscount.com08@Rgoogle.com/ads +1* + cdiscount.com08@Rcdscdn.com/Js/ads/ +,‚ * + +yelp.com08@Rgoogle.com/uds/ +*ÿï* + +yelp.com08@Rgoogle.com/ads +.‚ * + +jooble.org08@Rgoogle.com/uds/ +,ÿï* + +jooble.org08@Rgoogle.com/ads +.‚ * + +rambler.ru08@Rgoogle.com/uds/ +,ÿï* + +rambler.ru08@Rgoogle.com/ads ++‚ * +jiji.ng08@Rgoogle.com/uds/ +)ÿï* +jiji.ng08@Rgoogle.com/ads +8‚ * +ehealthinsurance.com08@Rgoogle.com/uds/ +6ÿï* +ehealthinsurance.com08@Rgoogle.com/ads +e‚ * +emedicinehealth.com* +medicinenet.com* + +rxlist.com* + webmd.com08@Rgoogle.com/uds/ +cÿï* +emedicinehealth.com* +medicinenet.com* + +rxlist.com* + webmd.com08@Rgoogle.com/ads +†* +medicinenet.com* + webmd.com08@RXimg.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/javascript/adsense_google.js +`‚ * +100searchengines.com* +alltheinternet.com* +searchalot.com08@Rgoogle.com/uds/ +^ÿï* +100searchengines.com* +alltheinternet.com* +searchalot.com08@Rgoogle.com/ads +Bÿï08@R2adsensecustomsearchads.com^*adsense/search/*ads.js +>ÿï08@R.gfe-partner-google.com^*adsense/search/*ads.js +1ÿï08@R!google.ac^*adsense/search/*ads.js +1ÿï08@R!google.ad^*adsense/search/*ads.js +1ÿï08@R!google.ae^*adsense/search/*ads.js +1ÿï08@R!google.al^*adsense/search/*ads.js +1ÿï08@R!google.am^*adsense/search/*ads.js +1ÿï08@R!google.as^*adsense/search/*ads.js +1ÿï08@R!google.at^*adsense/search/*ads.js +1ÿï08@R!google.az^*adsense/search/*ads.js +1ÿï08@R!google.ba^*adsense/search/*ads.js +1ÿï08@R!google.be^*adsense/search/*ads.js +1ÿï08@R!google.bf^*adsense/search/*ads.js +1ÿï08@R!google.bg^*adsense/search/*ads.js +1ÿï08@R!google.bi^*adsense/search/*ads.js +1ÿï08@R!google.bj^*adsense/search/*ads.js +1ÿï08@R!google.bs^*adsense/search/*ads.js +1ÿï08@R!google.bt^*adsense/search/*ads.js +1ÿï08@R!google.by^*adsense/search/*ads.js +1ÿï08@R!google.ca^*adsense/search/*ads.js# +netzero-news.net $elemhide + +ricardo.ch $elemhide& +au.search.yahoo.com $elemhide& +nz.search.yahoo.com $elemhideJ +search.yahoo.com2#main > div ol[class] li[id] > .dd > div + * > divY +search.yahoo.comA#right > div:first-child:last-child > [id]:first-child:last-child + cdiscount.com.adBlock  $elemhide + +jooble.org $elemhide  $elemhide +jiji.ng $elemhide' +ehealthinsurance.com $elemhide  $elemhide  $elemhide  $elemhide  $elemhide! +searchalot.com $elemhide' +100searchengines.com $elemhide% +alltheinternet.com $elemhide˜ +2ÿï08@R"google.cat^*adsense/search/*ads.js +1ÿï08@R!google.cd^*adsense/search/*ads.js +1ÿï08@R!google.cf^*adsense/search/*ads.js +1ÿï08@R!google.cg^*adsense/search/*ads.js +1ÿï08@R!google.ch^*adsense/search/*ads.js +1ÿï08@R!google.ci^*adsense/search/*ads.js +1ÿï08@R!google.cl^*adsense/search/*ads.js +1ÿï08@R!google.cm^*adsense/search/*ads.js +1ÿï08@R!google.cn^*adsense/search/*ads.js +4ÿï08@R$google.co.ao^*adsense/search/*ads.js +4ÿï08@R$google.co.bw^*adsense/search/*ads.js +4ÿï08@R$google.co.ck^*adsense/search/*ads.js +4ÿï08@R$google.co.cr^*adsense/search/*ads.js +4ÿï08@R$google.co.id^*adsense/search/*ads.js +4ÿï08@R$google.co.il^*adsense/search/*ads.js +4ÿï08@R$google.co.in^*adsense/search/*ads.js +4ÿï08@R$google.co.jp^*adsense/search/*ads.js +4ÿï08@R$google.co.ke^*adsense/search/*ads.js +4ÿï08@R$google.co.kr^*adsense/search/*ads.js +4ÿï08@R$google.co.ls^*adsense/search/*ads.js +4ÿï08@R$google.co.ma^*adsense/search/*ads.js +4ÿï08@R$google.co.mz^*adsense/search/*ads.js +4ÿï08@R$google.co.nz^*adsense/search/*ads.js +4ÿï08@R$google.co.th^*adsense/search/*ads.js +4ÿï08@R$google.co.tz^*adsense/search/*ads.js +4ÿï08@R$google.co.ug^*adsense/search/*ads.js +4ÿï08@R$google.co.uk^*adsense/search/*ads.js +4ÿï08@R$google.co.uz^*adsense/search/*ads.js +4ÿï08@R$google.co.ve^*adsense/search/*ads.js +4ÿï08@R$google.co.vi^*adsense/search/*ads.js +4ÿï08@R$google.co.za^*adsense/search/*ads.js +4ÿï08@R$google.co.zm^*adsense/search/*ads.js +4ÿï08@R$google.co.zw^*adsense/search/*ads.js +Hÿï* +search.avast.com08@R"google.com^*adsense/search/*ads.js +5ÿï08@R%google.com.af^*adsense/search/*ads.js +5ÿï08@R%google.com.ag^*adsense/search/*ads.js +5ÿï08@R%google.com.ai^*adsense/search/*ads.js +5ÿï08@R%google.com.ar^*adsense/search/*ads.js +5ÿï08@R%google.com.au^*adsense/search/*ads.js +5ÿï08@R%google.com.bd^*adsense/search/*ads.js +5ÿï08@R%google.com.bh^*adsense/search/*ads.js +5ÿï08@R%google.com.bn^*adsense/search/*ads.js +5ÿï08@R%google.com.bo^*adsense/search/*ads.js +5ÿï08@R%google.com.br^*adsense/search/*ads.js +5ÿï08@R%google.com.by^*adsense/search/*ads.js +5ÿï08@R%google.com.bz^*adsense/search/*ads.js +5ÿï08@R%google.com.cn^*adsense/search/*ads.js +5ÿï08@R%google.com.co^*adsense/search/*ads.js +5ÿï08@R%google.com.cu^*adsense/search/*ads.js +5ÿï08@R%google.com.cy^*adsense/search/*ads.js +5ÿï08@R%google.com.do^*adsense/search/*ads.js +5ÿï08@R%google.com.ec^*adsense/search/*ads.js +5ÿï08@R%google.com.eg^*adsense/search/*ads.js +5ÿï08@R%google.com.et^*adsense/search/*ads.js +5ÿï08@R%google.com.fj^*adsense/search/*ads.js +5ÿï08@R%google.com.gh^*adsense/search/*ads.js +5ÿï08@R%google.com.gi^*adsense/search/*ads.js +5ÿï08@R%google.com.gt^*adsense/search/*ads.js +5ÿï08@R%google.com.hk^*adsense/search/*ads.js +5ÿï08@R%google.com.jm^*adsense/search/*ads.js +5ÿï08@R%google.com.jo^*adsense/search/*ads.js +5ÿï08@R%google.com.kh^*adsense/search/*ads.js +5ÿï08@R%google.com.kw^*adsense/search/*ads.js +5ÿï08@R%google.com.lb^*adsense/search/*ads.jsÇ +5ÿï08@R%google.com.ly^*adsense/search/*ads.js +5ÿï08@R%google.com.mm^*adsense/search/*ads.js +5ÿï08@R%google.com.mt^*adsense/search/*ads.js +5ÿï08@R%google.com.mx^*adsense/search/*ads.js +5ÿï08@R%google.com.my^*adsense/search/*ads.js +5ÿï08@R%google.com.na^*adsense/search/*ads.js +5ÿï08@R%google.com.ng^*adsense/search/*ads.js +5ÿï08@R%google.com.ni^*adsense/search/*ads.js +5ÿï08@R%google.com.np^*adsense/search/*ads.js +5ÿï08@R%google.com.om^*adsense/search/*ads.js +5ÿï08@R%google.com.pa^*adsense/search/*ads.js +5ÿï08@R%google.com.pe^*adsense/search/*ads.js +5ÿï08@R%google.com.pg^*adsense/search/*ads.js +5ÿï08@R%google.com.ph^*adsense/search/*ads.js +5ÿï08@R%google.com.pk^*adsense/search/*ads.js +5ÿï08@R%google.com.pr^*adsense/search/*ads.js +5ÿï08@R%google.com.py^*adsense/search/*ads.js +5ÿï08@R%google.com.qa^*adsense/search/*ads.js +5ÿï08@R%google.com.ru^*adsense/search/*ads.js +5ÿï08@R%google.com.sa^*adsense/search/*ads.js +5ÿï08@R%google.com.sb^*adsense/search/*ads.js +5ÿï08@R%google.com.sg^*adsense/search/*ads.js +5ÿï08@R%google.com.sl^*adsense/search/*ads.js +5ÿï08@R%google.com.sv^*adsense/search/*ads.js +5ÿï08@R%google.com.tj^*adsense/search/*ads.js +5ÿï08@R%google.com.tn^*adsense/search/*ads.js +5ÿï08@R%google.com.tr^*adsense/search/*ads.js +5ÿï08@R%google.com.tw^*adsense/search/*ads.js +5ÿï08@R%google.com.ua^*adsense/search/*ads.js +5ÿï08@R%google.com.uy^*adsense/search/*ads.js +5ÿï08@R%google.com.vc^*adsense/search/*ads.js +5ÿï08@R%google.com.ve^*adsense/search/*ads.js +5ÿï08@R%google.com.vn^*adsense/search/*ads.js +1ÿï08@R!google.cv^*adsense/search/*ads.js +1ÿï08@R!google.cz^*adsense/search/*ads.js +1ÿï08@R!google.de^*adsense/search/*ads.js +1ÿï08@R!google.dj^*adsense/search/*ads.js +1ÿï08@R!google.dk^*adsense/search/*ads.js +1ÿï08@R!google.dm^*adsense/search/*ads.js +1ÿï08@R!google.dz^*adsense/search/*ads.js +1ÿï08@R!google.ee^*adsense/search/*ads.js +1ÿï08@R!google.es^*adsense/search/*ads.js +1ÿï08@R!google.fi^*adsense/search/*ads.js +1ÿï08@R!google.fm^*adsense/search/*ads.js +1ÿï08@R!google.fr^*adsense/search/*ads.js +1ÿï08@R!google.ga^*adsense/search/*ads.js +1ÿï08@R!google.ge^*adsense/search/*ads.js +1ÿï08@R!google.gg^*adsense/search/*ads.js +1ÿï08@R!google.gl^*adsense/search/*ads.js +1ÿï08@R!google.gm^*adsense/search/*ads.js +1ÿï08@R!google.gp^*adsense/search/*ads.js +1ÿï08@R!google.gr^*adsense/search/*ads.js +1ÿï08@R!google.gy^*adsense/search/*ads.js +1ÿï08@R!google.hk^*adsense/search/*ads.js +1ÿï08@R!google.hn^*adsense/search/*ads.js +1ÿï08@R!google.hr^*adsense/search/*ads.js +1ÿï08@R!google.ht^*adsense/search/*ads.js +1ÿï08@R!google.hu^*adsense/search/*ads.js +1ÿï08@R!google.ie^*adsense/search/*ads.js +1ÿï08@R!google.im^*adsense/search/*ads.js +1ÿï08@R!google.iq^*adsense/search/*ads.js +1ÿï08@R!google.is^*adsense/search/*ads.js +1ÿï08@R!google.it^*adsense/search/*ads.js +4ÿï08@R$google.it.ao^*adsense/search/*ads.jsÑ +1ÿï08@R!google.je^*adsense/search/*ads.js +1ÿï08@R!google.jo^*adsense/search/*ads.js +1ÿï08@R!google.jp^*adsense/search/*ads.js +1ÿï08@R!google.kg^*adsense/search/*ads.js +1ÿï08@R!google.ki^*adsense/search/*ads.js +1ÿï08@R!google.kz^*adsense/search/*ads.js +1ÿï08@R!google.la^*adsense/search/*ads.js +1ÿï08@R!google.li^*adsense/search/*ads.js +1ÿï08@R!google.lk^*adsense/search/*ads.js +1ÿï08@R!google.lt^*adsense/search/*ads.js +1ÿï08@R!google.lu^*adsense/search/*ads.js +1ÿï08@R!google.lv^*adsense/search/*ads.js +1ÿï08@R!google.md^*adsense/search/*ads.js +1ÿï08@R!google.me^*adsense/search/*ads.js +1ÿï08@R!google.mg^*adsense/search/*ads.js +1ÿï08@R!google.mk^*adsense/search/*ads.js +1ÿï08@R!google.ml^*adsense/search/*ads.js +1ÿï08@R!google.mn^*adsense/search/*ads.js +1ÿï08@R!google.ms^*adsense/search/*ads.js +1ÿï08@R!google.mu^*adsense/search/*ads.js +1ÿï08@R!google.mv^*adsense/search/*ads.js +1ÿï08@R!google.mw^*adsense/search/*ads.js +1ÿï08@R!google.ne^*adsense/search/*ads.js +4ÿï08@R$google.ne.jp^*adsense/search/*ads.js +1ÿï08@R!google.ng^*adsense/search/*ads.js +1ÿï08@R!google.nl^*adsense/search/*ads.js +1ÿï08@R!google.no^*adsense/search/*ads.js +1ÿï08@R!google.nr^*adsense/search/*ads.js +1ÿï08@R!google.nu^*adsense/search/*ads.js +1ÿï08@R!google.pl^*adsense/search/*ads.js +1ÿï08@R!google.pn^*adsense/search/*ads.js +1ÿï08@R!google.ps^*adsense/search/*ads.js +1ÿï08@R!google.pt^*adsense/search/*ads.js +1ÿï08@R!google.ro^*adsense/search/*ads.js +1ÿï08@R!google.rs^*adsense/search/*ads.js +1ÿï08@R!google.ru^*adsense/search/*ads.js +1ÿï08@R!google.rw^*adsense/search/*ads.js +1ÿï08@R!google.sc^*adsense/search/*ads.js +1ÿï08@R!google.se^*adsense/search/*ads.js +1ÿï08@R!google.sh^*adsense/search/*ads.js +1ÿï08@R!google.si^*adsense/search/*ads.js +1ÿï08@R!google.sk^*adsense/search/*ads.js +1ÿï08@R!google.sm^*adsense/search/*ads.js +1ÿï08@R!google.sn^*adsense/search/*ads.js +1ÿï08@R!google.so^*adsense/search/*ads.js +1ÿï08@R!google.sr^*adsense/search/*ads.js +1ÿï08@R!google.st^*adsense/search/*ads.js +1ÿï08@R!google.td^*adsense/search/*ads.js +1ÿï08@R!google.tg^*adsense/search/*ads.js +1ÿï08@R!google.tl^*adsense/search/*ads.js +1ÿï08@R!google.tm^*adsense/search/*ads.js +1ÿï08@R!google.tn^*adsense/search/*ads.js +1ÿï08@R!google.to^*adsense/search/*ads.js +1ÿï08@R!google.tt^*adsense/search/*ads.js +1ÿï08@R!google.us^*adsense/search/*ads.js +1ÿï08@R!google.vg^*adsense/search/*ads.js +1ÿï08@R!google.vu^*adsense/search/*ads.js +1ÿï08@R!google.ws^*adsense/search/*ads.js +=ÿï08@R-googlesyndication.com^*adsense/search/*ads.js +Vÿï08@RFadsensecustomsearchads.com^*afs/ads?*&client=pub-*&output=uds_ads_only +Rÿï08@RBgfe-partner-google.com^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ac^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ad^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ae^*afs/ads?*&client=pub-*&output=uds_ads_onlyÆ$ +Eÿï08@R5google.al^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.am^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.as^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.at^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.az^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ba^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.be^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bf^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bi^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bj^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bs^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.bt^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.by^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ca^*afs/ads?*&client=pub-*&output=uds_ads_only +Fÿï08@R6google.cat^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cd^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cf^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ch^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ci^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cl^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cn^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ao^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.bw^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ck^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.cr^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.id^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.il^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.in^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.jp^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ke^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.kr^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ls^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ma^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.mz^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.nz^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.th^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.tz^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ug^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.uk^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.uz^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.ve^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.vi^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.za^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.zm^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.co.zw^*afs/ads?*&client=pub-*&output=uds_ads_only +Fÿï08@R6google.com^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.af^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ag^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ai^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ar^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.au^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.bd^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.bh^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.bn^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.bo^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.br^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.by^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.bz^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.cn^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.co^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.cu^*afs/ads?*&client=pub-*&output=uds_ads_only€% +Iÿï08@R9google.com.cy^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.do^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ec^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.eg^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.et^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.fj^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.gh^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.gi^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.gt^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.hk^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.jm^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.jo^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.kh^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.kw^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.lb^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ly^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.mm^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.mt^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.mx^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.my^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.na^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ng^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ni^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.np^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.om^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.pa^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.pe^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.pg^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ph^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.pk^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.pr^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.py^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.qa^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ru^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.sa^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.sb^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.sg^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.sl^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.sv^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.tj^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.tn^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.tr^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.tw^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ua^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.uy^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.vc^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.ve^*afs/ads?*&client=pub-*&output=uds_ads_only +Iÿï08@R9google.com.vn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cv^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.cz^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.de^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.dj^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.dk^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.dm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.dz^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ee^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.es^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.fi^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.fm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.fr^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ga^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ge^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.gg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.gl^*afs/ads?*&client=pub-*&output=uds_ads_onlyÆ# +Eÿï08@R5google.gm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.gp^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.gr^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.gy^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.hk^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.hn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.hr^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ht^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.hu^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ie^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.im^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.iq^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.is^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.it^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.it.ao^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.je^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.jo^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.jp^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.kg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ki^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.kz^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.la^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.li^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.lk^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.lt^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.lu^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.lv^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.md^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.me^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mk^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ml^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ms^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mu^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mv^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.mw^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ne^*afs/ads?*&client=pub-*&output=uds_ads_only +Hÿï08@R8google.ne.jp^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ng^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.nl^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.no^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.nr^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.nu^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.pl^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.pn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ps^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.pt^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ro^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.rs^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ru^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.rw^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sc^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.se^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sh^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.si^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sk^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.so^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.sr^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.st^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.td^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.tg^*afs/ads?*&client=pub-*&output=uds_ads_onlyè +Eÿï08@R5google.tl^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.tm^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.tn^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.to^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.tt^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.us^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.vg^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.vu^*afs/ads?*&client=pub-*&output=uds_ads_only +Eÿï08@R5google.ws^*afs/ads?*&client=pub-*&output=uds_ads_only +Qÿï08@RAgooglesyndication.com^*afs/ads?*&client=pub-*&output=uds_ads_only +ÿï08@Rcse.google.ac^ +ÿï08@Rcse.google.ad^ +ÿï08@Rcse.google.ae^ +ÿï08@Rcse.google.al^ +ÿï08@Rcse.google.am^ +ÿï08@Rcse.google.as^ +ÿï08@Rcse.google.at^ +ÿï08@Rcse.google.az^ +ÿï08@Rcse.google.ba^ +ÿï08@Rcse.google.be^ +ÿï08@Rcse.google.bf^ +ÿï08@Rcse.google.bg^ +ÿï08@Rcse.google.bi^ +ÿï08@Rcse.google.bj^ +ÿï08@Rcse.google.bs^ +ÿï08@Rcse.google.bt^ +ÿï08@Rcse.google.by^ +ÿï08@Rcse.google.ca^ +ÿï08@Rcse.google.cat^ +ÿï08@Rcse.google.cd^ +ÿï08@Rcse.google.cf^ +ÿï08@Rcse.google.cg^ +ÿï08@Rcse.google.ch^ +ÿï08@Rcse.google.ci^ +ÿï08@Rcse.google.cl^ +ÿï08@Rcse.google.cm^ +!ÿï08@Rcse.google.co.ao^ +!ÿï08@Rcse.google.co.bw^ +!ÿï08@Rcse.google.co.ck^ +!ÿï08@Rcse.google.co.cr^ +!ÿï08@Rcse.google.co.id^ +!ÿï08@Rcse.google.co.il^ +!ÿï08@Rcse.google.co.in^ +!ÿï08@Rcse.google.co.jp^ +!ÿï08@Rcse.google.co.ke^ +!ÿï08@Rcse.google.co.kr^ +!ÿï08@Rcse.google.co.ls^ +!ÿï08@Rcse.google.co.ma^ +!ÿï08@Rcse.google.co.mz^ +!ÿï08@Rcse.google.co.nz^ +!ÿï08@Rcse.google.co.th^ +!ÿï08@Rcse.google.co.tz^ +!ÿï08@Rcse.google.co.ug^ +!ÿï08@Rcse.google.co.uk^ +!ÿï08@Rcse.google.co.uz^ +!ÿï08@Rcse.google.co.ve^ +!ÿï08@Rcse.google.co.vi^ +!ÿï08@Rcse.google.co.za^ +!ÿï08@Rcse.google.co.zm^ +!ÿï08@Rcse.google.co.zw^ +ÿï08@Rcse.google.com^ +"ÿï08@Rcse.google.com.af^ +"ÿï08@Rcse.google.com.ag^ +"ÿï08@Rcse.google.com.ai^ð +"ÿï08@Rcse.google.com.ar^ +"ÿï08@Rcse.google.com.au^ +"ÿï08@Rcse.google.com.bd^ +"ÿï08@Rcse.google.com.bh^ +"ÿï08@Rcse.google.com.bn^ +"ÿï08@Rcse.google.com.bo^ +"ÿï08@Rcse.google.com.br^ +"ÿï08@Rcse.google.com.by^ +"ÿï08@Rcse.google.com.bz^ +"ÿï08@Rcse.google.com.cn^ +"ÿï08@Rcse.google.com.co^ +"ÿï08@Rcse.google.com.cu^ +"ÿï08@Rcse.google.com.cy^ +"ÿï08@Rcse.google.com.do^ +"ÿï08@Rcse.google.com.ec^ +"ÿï08@Rcse.google.com.eg^ +"ÿï08@Rcse.google.com.et^ +"ÿï08@Rcse.google.com.fj^ +"ÿï08@Rcse.google.com.gh^ +"ÿï08@Rcse.google.com.gi^ +"ÿï08@Rcse.google.com.gt^ +"ÿï08@Rcse.google.com.hk^ +"ÿï08@Rcse.google.com.jm^ +"ÿï08@Rcse.google.com.jo^ +"ÿï08@Rcse.google.com.kh^ +"ÿï08@Rcse.google.com.kw^ +"ÿï08@Rcse.google.com.lb^ +"ÿï08@Rcse.google.com.ly^ +"ÿï08@Rcse.google.com.mm^ +"ÿï08@Rcse.google.com.mt^ +"ÿï08@Rcse.google.com.mx^ +"ÿï08@Rcse.google.com.my^ +"ÿï08@Rcse.google.com.na^ +"ÿï08@Rcse.google.com.ng^ +"ÿï08@Rcse.google.com.ni^ +"ÿï08@Rcse.google.com.np^ +"ÿï08@Rcse.google.com.om^ +"ÿï08@Rcse.google.com.pa^ +"ÿï08@Rcse.google.com.pe^ +"ÿï08@Rcse.google.com.pg^ +"ÿï08@Rcse.google.com.ph^ +"ÿï08@Rcse.google.com.pk^ +"ÿï08@Rcse.google.com.pr^ +"ÿï08@Rcse.google.com.py^ +"ÿï08@Rcse.google.com.qa^ +"ÿï08@Rcse.google.com.ru^ +"ÿï08@Rcse.google.com.sa^ +"ÿï08@Rcse.google.com.sb^ +"ÿï08@Rcse.google.com.sg^ +"ÿï08@Rcse.google.com.sl^ +"ÿï08@Rcse.google.com.sv^ +"ÿï08@Rcse.google.com.tj^ +"ÿï08@Rcse.google.com.tn^ +"ÿï08@Rcse.google.com.tr^ +"ÿï08@Rcse.google.com.tw^ +"ÿï08@Rcse.google.com.ua^ +"ÿï08@Rcse.google.com.uy^ +"ÿï08@Rcse.google.com.vc^ +"ÿï08@Rcse.google.com.ve^ +"ÿï08@Rcse.google.com.vn^ +ÿï08@Rcse.google.cv^ +ÿï08@Rcse.google.cz^ +ÿï08@Rcse.google.de^ +ÿï08@Rcse.google.dj^† +ÿï08@Rcse.google.dk^ +ÿï08@Rcse.google.dm^ +ÿï08@Rcse.google.dz^ +ÿï08@Rcse.google.ee^ +ÿï08@Rcse.google.es^ +ÿï08@Rcse.google.fi^ +ÿï08@Rcse.google.fm^ +ÿï08@Rcse.google.fr^ +ÿï08@Rcse.google.ga^ +ÿï08@Rcse.google.ge^ +ÿï08@Rcse.google.gg^ +ÿï08@Rcse.google.gl^ +ÿï08@Rcse.google.gm^ +ÿï08@Rcse.google.gp^ +ÿï08@Rcse.google.gr^ +ÿï08@Rcse.google.gy^ +ÿï08@Rcse.google.hk^ +ÿï08@Rcse.google.hn^ +ÿï08@Rcse.google.hr^ +ÿï08@Rcse.google.ht^ +ÿï08@Rcse.google.hu^ +ÿï08@Rcse.google.ie^ +ÿï08@Rcse.google.im^ +ÿï08@Rcse.google.iq^ +ÿï08@Rcse.google.is^ +ÿï08@Rcse.google.it^ +!ÿï08@Rcse.google.it.ao^ +ÿï08@Rcse.google.je^ +ÿï08@Rcse.google.jo^ +ÿï08@Rcse.google.jp^ +ÿï08@Rcse.google.kg^ +ÿï08@Rcse.google.ki^ +ÿï08@Rcse.google.kz^ +ÿï08@Rcse.google.la^ +ÿï08@Rcse.google.li^ +ÿï08@Rcse.google.lk^ +ÿï08@Rcse.google.lt^ +ÿï08@Rcse.google.lu^ +ÿï08@Rcse.google.lv^ +ÿï08@Rcse.google.md^ +ÿï08@Rcse.google.me^ +ÿï08@Rcse.google.mg^ +ÿï08@Rcse.google.mk^ +ÿï08@Rcse.google.ml^ +ÿï08@Rcse.google.mn^ +ÿï08@Rcse.google.ms^ +ÿï08@Rcse.google.mu^ +ÿï08@Rcse.google.mv^ +ÿï08@Rcse.google.mw^ +ÿï08@Rcse.google.ne^ +!ÿï08@Rcse.google.ne.jp^ +ÿï08@Rcse.google.ng^ +ÿï08@Rcse.google.nl^ +ÿï08@Rcse.google.no^ +ÿï08@Rcse.google.nr^ +ÿï08@Rcse.google.nu^ +ÿï08@Rcse.google.pl^ +ÿï08@Rcse.google.pn^ +ÿï08@Rcse.google.ps^ +ÿï08@Rcse.google.pt^ +ÿï08@Rcse.google.ro^ +ÿï08@Rcse.google.rs^ +ÿï08@Rcse.google.ru^ +ÿï08@Rcse.google.rw^Š +ÿï08@Rcse.google.sc^ +ÿï08@Rcse.google.se^ +ÿï08@Rcse.google.sh^ +ÿï08@Rcse.google.si^ +ÿï08@Rcse.google.sk^ +ÿï08@Rcse.google.sm^ +ÿï08@Rcse.google.sn^ +ÿï08@Rcse.google.so^ +ÿï08@Rcse.google.sr^ +ÿï08@Rcse.google.st^ +ÿï08@Rcse.google.td^ +ÿï08@Rcse.google.tg^ +ÿï08@Rcse.google.tl^ +ÿï08@Rcse.google.tm^ +ÿï08@Rcse.google.tn^ +ÿï08@Rcse.google.to^ +ÿï08@Rcse.google.tt^ +ÿï08@Rcse.google.us^ +ÿï08@Rcse.google.vg^ +ÿï08@Rcse.google.vu^ +ÿï08@Rcse.google.ws^  + cse.google.ac $elemhide  + cse.google.ad $elemhide  + cse.google.ae $elemhide  + cse.google.al $elemhide  + cse.google.am $elemhide  + cse.google.as $elemhide  + cse.google.at $elemhide  + cse.google.az $elemhide  + cse.google.ba $elemhide  + cse.google.be $elemhide  + cse.google.bf $elemhide  + cse.google.bg $elemhide  + cse.google.bi $elemhide  + cse.google.bj $elemhide  + cse.google.bs $elemhide  + cse.google.bt $elemhide  + cse.google.by $elemhide  + cse.google.ca $elemhide! +cse.google.cat $elemhide  + cse.google.cd $elemhide  + cse.google.cf $elemhide  + cse.google.cg $elemhide  + cse.google.ch $elemhide  + cse.google.ci $elemhide  + cse.google.cl $elemhide  + cse.google.cm $elemhide# +cse.google.co.ao $elemhide# +cse.google.co.bw $elemhide# +cse.google.co.ck $elemhide# +cse.google.co.cr $elemhide# +cse.google.co.id $elemhide# +cse.google.co.il $elemhide# +cse.google.co.in $elemhide# +cse.google.co.jp $elemhide# +cse.google.co.ke $elemhide# +cse.google.co.kr $elemhide# +cse.google.co.ls $elemhide# +cse.google.co.ma $elemhide# +cse.google.co.mz $elemhide# +cse.google.co.nz $elemhide# +cse.google.co.th $elemhide# +cse.google.co.tz $elemhide# +cse.google.co.ug $elemhideö# +cse.google.co.uk $elemhide# +cse.google.co.uz $elemhide# +cse.google.co.ve $elemhide# +cse.google.co.vi $elemhide# +cse.google.co.za $elemhide# +cse.google.co.zm $elemhide# +cse.google.co.zw $elemhide! +cse.google.com $elemhide$ +cse.google.com.af $elemhide$ +cse.google.com.ag $elemhide$ +cse.google.com.ai $elemhide$ +cse.google.com.ar $elemhide$ +cse.google.com.au $elemhide$ +cse.google.com.bd $elemhide$ +cse.google.com.bh $elemhide$ +cse.google.com.bn $elemhide$ +cse.google.com.bo $elemhide$ +cse.google.com.br $elemhide$ +cse.google.com.by $elemhide$ +cse.google.com.bz $elemhide$ +cse.google.com.cn $elemhide$ +cse.google.com.co $elemhide$ +cse.google.com.cu $elemhide$ +cse.google.com.cy $elemhide$ +cse.google.com.do $elemhide$ +cse.google.com.ec $elemhide$ +cse.google.com.eg $elemhide$ +cse.google.com.et $elemhide$ +cse.google.com.fj $elemhide$ +cse.google.com.gh $elemhide$ +cse.google.com.gi $elemhide$ +cse.google.com.gt $elemhide$ +cse.google.com.hk $elemhide$ +cse.google.com.jm $elemhide$ +cse.google.com.jo $elemhide$ +cse.google.com.kh $elemhide$ +cse.google.com.kw $elemhide$ +cse.google.com.lb $elemhide$ +cse.google.com.ly $elemhide$ +cse.google.com.mm $elemhide$ +cse.google.com.mt $elemhide$ +cse.google.com.mx $elemhide$ +cse.google.com.my $elemhide$ +cse.google.com.na $elemhide$ +cse.google.com.ng $elemhide$ +cse.google.com.ni $elemhide$ +cse.google.com.np $elemhide$ +cse.google.com.om $elemhide$ +cse.google.com.pa $elemhide$ +cse.google.com.pe $elemhide$ +cse.google.com.pg $elemhide$ +cse.google.com.ph $elemhide$ +cse.google.com.pk $elemhide$ +cse.google.com.pr $elemhide$ +cse.google.com.py $elemhide$ +cse.google.com.qa $elemhide$ +cse.google.com.ru $elemhide$ +cse.google.com.sa $elemhide$ +cse.google.com.sb $elemhide$ +cse.google.com.sg $elemhide$ +cse.google.com.sl $elemhide$ +cse.google.com.sv $elemhide$ +cse.google.com.tj $elemhide$ +cse.google.com.tn $elemhide¢$ +cse.google.com.tr $elemhide$ +cse.google.com.tw $elemhide$ +cse.google.com.ua $elemhide$ +cse.google.com.uy $elemhide$ +cse.google.com.vc $elemhide$ +cse.google.com.ve $elemhide$ +cse.google.com.vn $elemhide  + cse.google.cv $elemhide  + cse.google.cz $elemhide  + cse.google.de $elemhide  + cse.google.dj $elemhide  + cse.google.dk $elemhide  + cse.google.dm $elemhide  + cse.google.dz $elemhide  + cse.google.ee $elemhide  + cse.google.es $elemhide  + cse.google.fi $elemhide  + cse.google.fm $elemhide  + cse.google.fr $elemhide  + cse.google.ga $elemhide  + cse.google.ge $elemhide  + cse.google.gg $elemhide  + cse.google.gl $elemhide  + cse.google.gm $elemhide  + cse.google.gp $elemhide  + cse.google.gr $elemhide  + cse.google.gy $elemhide  + cse.google.hk $elemhide  + cse.google.hn $elemhide  + cse.google.hr $elemhide  + cse.google.ht $elemhide  + cse.google.hu $elemhide  + cse.google.ie $elemhide  + cse.google.im $elemhide  + cse.google.iq $elemhide  + cse.google.is $elemhide  + cse.google.it $elemhide# +cse.google.it.ao $elemhide  + cse.google.je $elemhide  + cse.google.jo $elemhide  + cse.google.jp $elemhide  + cse.google.kg $elemhide  + cse.google.ki $elemhide  + cse.google.kz $elemhide  + cse.google.la $elemhide  + cse.google.li $elemhide  + cse.google.lk $elemhide  + cse.google.lt $elemhide  + cse.google.lu $elemhide  + cse.google.lv $elemhide  + cse.google.md $elemhide  + cse.google.me $elemhide  + cse.google.mg $elemhide  + cse.google.mk $elemhide  + cse.google.ml $elemhide  + cse.google.mn $elemhide  + cse.google.ms $elemhide  + cse.google.mu $elemhide  + cse.google.mv $elemhide  + cse.google.mw $elemhide  + cse.google.ne $elemhide# +cse.google.ne.jp $elemhide  + cse.google.ng $elemhide  + cse.google.nl $elemhide    + cse.google.no $elemhide  + cse.google.nr $elemhide  + cse.google.nu $elemhide  + cse.google.pl $elemhide  + cse.google.pn $elemhide  + cse.google.ps $elemhide  + cse.google.pt $elemhide  + cse.google.ro $elemhide  + cse.google.rs $elemhide  + cse.google.ru $elemhide  + cse.google.rw $elemhide  + cse.google.sc $elemhide  + cse.google.se $elemhide  + cse.google.sh $elemhide  + cse.google.si $elemhide  + cse.google.sk $elemhide  + cse.google.sm $elemhide  + cse.google.sn $elemhide  + cse.google.so $elemhide  + cse.google.sr $elemhide  + cse.google.st $elemhide  + cse.google.td $elemhide  + cse.google.tg $elemhide  + cse.google.tl $elemhide  + cse.google.tm $elemhide  + cse.google.tn $elemhide  + cse.google.to $elemhide  + cse.google.tt $elemhide  + cse.google.us $elemhide  + cse.google.vg $elemhide  + cse.google.vu $elemhide  + cse.google.ws $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhideÀ  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhideÀ  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide¥ + +2‚ * +sahibinden.com08@Rgoogle.com/uds/ +0ÿï* +sahibinden.com08@Rgoogle.com/ads +*‚ * +tre.it08@Rgoogle.com/uds/ +(ÿï* +tre.it08@Rgoogle.com/ads +9ÿï* +last.fm08@Rlast.fm^*/google-search-ads.js  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide! +sahibinden.com $elemhide + +tre.it $elemhide + mysimon.com $elemhide + +search.com $elemhide  $elemhide  $elemhide  $elemhide% +cbsnews.com/search $elemhide& +gamefaqs.com/search $elemhide& +gamespot.com/search $elemhide' +giantbomb.com/search $elemhide! +last.fm/search $elemhide¬ +ï‚ * +techrepublic.com* +metrolyrics.com* +metacritic.com* + giantbomb.com* + gamefaqs.com* + gamespot.com* + cbsnews.com* + mysimon.com* + +search.com* + zdnet.com* + +cnet.com* +cbs.com* +last.fm* +tv.com08@Rgoogle.com/uds/ +íÿï* +techrepublic.com* +metrolyrics.com* +metacritic.com* + giantbomb.com* + gamefaqs.com* + gamespot.com* + cbsnews.com* + mysimon.com* + +search.com* + zdnet.com* + +cnet.com* +cbs.com* +last.fm* +tv.com08@Rgoogle.com/ads +P‚ * +switchboard.com* +whitepages.com* +411.com08@Rgoogle.com/uds/ +Nÿï* +switchboard.com* +whitepages.com* +411.com08@Rgoogle.com/ads +:‚ * + kmart.com* + sears.com08@Rgoogle.com/uds/ +8ÿï* + kmart.com* + sears.com08@Rgoogle.com/ads +Y‚ * +casasbahia.com.br* +pontofrio.com.br* + extra.com.br08@Rgoogle.com/uds/ +Wÿï* +casasbahia.com.br* +pontofrio.com.br* + extra.com.br08@Rgoogle.com/ads +³‚ * +clubedoricardo.com.br* +eletroshopping.com.br* +ricardoeletro.com.br* +insinuante.com.br* +citylar.com.br* + cipela.com.br* + salfer.com.br08@Rgoogle.com/uds/ +±ÿï* +clubedoricardo.com.br* +eletroshopping.com.br* +ricardoeletro.com.br* +insinuante.com.br* +citylar.com.br* + cipela.com.br* + salfer.com.br08@Rgoogle.com/ads +1‚ * + overstock.com08@Rgoogle.com/uds/ +/ÿï* + overstock.com08@Rgoogle.com/ads +‡‚ * +pricecomparison.in* +pricehunter.co.uk* +purefashion.de* + auspreiser.at* + auspreiser.de* + comparar.net* + kfzteile.net* + +prezzo.org* + idealo.at* + idealo.de* + idealo.es* + idealo.fr* + idealo.it* + idealo.pl* + +prix.net08@Rgoogle.com/uds/ +…ÿï* +pricecomparison.in* +pricehunter.co.uk* +purefashion.de* + auspreiser.at* + auspreiser.de* + comparar.net* + kfzteile.net* + +prezzo.org* + idealo.at* + idealo.de* + idealo.es* + idealo.fr* + idealo.it* + idealo.pl* + +prix.net08@Rgoogle.com/ads +3‚ * +plusnetwork.com08@Rgoogle.com/uds/ +1ÿï* +plusnetwork.com08@Rgoogle.com/ads +8‚ * +magazineluiza.com.br08@Rgoogle.com/uds/ +6ÿï* +magazineluiza.com.br08@Rgoogle.com/ads +3‚ * +netshoes.com.br08@Rgoogle.com/uds/ +1ÿï* +netshoes.com.br08@Rgoogle.com/ads +H‚ * +americanas.com.br* +shoptime.com.br08@Rgoogle.com/uds/ +Fÿï* +americanas.com.br* +shoptime.com.br08@Rgoogle.com/ads( +metacritic.com/search $elemhide) +metrolyrics.com/search $elemhide* +techrepublic.com/search $elemhide  + tv.com/search $elemhide# +zdnet.com/search $elemhide" +zdnet.com/topic $elemhide! +whitepages.com $elemhide +411.com $elemhide" +switchboard.com $elemhide + sears.com $elemhide + kmart.com $elemhide$ +casasbahia.com.br $elemhide + extra.com.br $elemhide# +pontofrio.com.br $elemhide' +ricardoeletro.com.br $elemhide$ +insinuante.com.br $elemhide! +citylar.com.br $elemhide( +eletroshopping.com.br $elemhide  + cipela.com.br $elemhide( +clubedoricardo.com.br $elemhide  + salfer.com.br $elemhide  + overstock.com $elemhide + idealo.de $elemhide + idealo.fr $elemhide + idealo.at $elemhide + idealo.it $elemhide + idealo.es $elemhide + idealo.pl $elemhide  + auspreiser.de $elemhide +prix.net $elemhide$ +pricehunter.co.uk $elemhide  + auspreiser.at $elemhide + +prezzo.org $elemhide + comparar.net $elemhide! +purefashion.de $elemhide% +pricecomparison.in $elemhide + kfzteile.net $elemhide( +plusnetwork.com/?auto $elemhide' +magazineluiza.com.br $elemhide" +netshoes.com.br $elemhide$ +americanas.com.br $elemhide" +shoptime.com.br $elemhideÐ +=‚ * + jobtome.com* + +joob24.com08@Rgoogle.com/uds/ +;ÿï* + jobtome.com* + +joob24.com08@Rgoogle.com/ads +�‚ * +ukvacancycentral.co.uk* +deutschlandjoobs.com* +emprego-brasil.com* +americajoobs.com* + italiajobs.it08@Rgoogle.com/uds/ +‹ÿï* +ukvacancycentral.co.uk* +deutschlandjoobs.com* +emprego-brasil.com* +americajoobs.com* + italiajobs.it08@Rgoogle.com/ads +0‚ 08@Rgoogle.com/afs/*client=vert-ppa +Bÿï* + +newegg.com08@R$newegg.com/promotions/ads/adframe.js +,‚ * + +info.com08@Rgoogle.com/uds/ +*ÿï* + +info.com08@Rgoogle.com/ads +/‚ * + bestbuy.com08@Rgoogle.com/uds/ +-ÿï* + bestbuy.com08@Rgoogle.com/ads +1‚ * + start.att.net08@Rgoogle.com/uds/ +/ÿï* + start.att.net08@Rgoogle.com/ads +2‚ * +skyscanner.net08@Rgoogle.com/uds/ +0ÿï* +skyscanner.net08@Rgoogle.com/ads +1‚ * + skyscanner.it08@Rgoogle.com/uds/ +/ÿï* + skyscanner.it08@Rgoogle.com/ads +1‚ * + skyscanner.ru08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ru08@Rgoogle.com/ads +1‚ * + skyscanner.de08@Rgoogle.com/uds/ +/ÿï* + skyscanner.de08@Rgoogle.com/ads +1‚ * + skyscanner.es08@Rgoogle.com/uds/ +/ÿï* + skyscanner.es08@Rgoogle.com/ads +2‚ * +skyscanner.com08@Rgoogle.com/uds/ +0ÿï* +skyscanner.com08@Rgoogle.com/ads +4‚ * +skyscanner.co.kr08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.kr08@Rgoogle.com/ads +5‚ * +skyscanner.com.au08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.au08@Rgoogle.com/ads +1‚ * + skyscanner.fr08@Rgoogle.com/uds/ +/ÿï* + skyscanner.fr08@Rgoogle.com/ads +1‚ * + skyscanner.nl08@Rgoogle.com/uds/ +/ÿï* + skyscanner.nl08@Rgoogle.com/ads +1‚ * + skyscanner.jp08@Rgoogle.com/uds/ +/ÿï* + skyscanner.jp08@Rgoogle.com/ads +5‚ * +skyscanner.com.br08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.br08@Rgoogle.com/ads +:‚ * +espanol.skyscanner.com08@Rgoogle.com/uds/ +8ÿï* +espanol.skyscanner.com08@Rgoogle.com/ads +1‚ * + skyscanner.pl08@Rgoogle.com/uds/ +/ÿï* + skyscanner.pl08@Rgoogle.com/ads +5‚ * +skyscanner.com.tr08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.tr08@Rgoogle.com/ads + jobtome.com $elemhide + +joob24.com $elemhide# +americajoobs.com $elemhide' +deutschlandjoobs.com $elemhide% +emprego-brasil.com $elemhide  + italiajobs.it $elemhide) +ukvacancycentral.co.uk $elemhide +info.com $elemhide  + start.att.net $elemhide  + skyscanner.it $elemhide  + skyscanner.ru $elemhide  + skyscanner.de $elemhide  + skyscanner.es $elemhide# +skyscanner.co.kr $elemhide$ +skyscanner.com.au $elemhide  + skyscanner.fr $elemhide  + skyscanner.nl $elemhide  + skyscanner.jp $elemhide$ +skyscanner.com.br $elemhide) +espanol.skyscanner.com $elemhide  + skyscanner.pl $elemhide$ +skyscanner.com.tr $elemhideŒ +5‚ * +gr.skyscanner.com08@Rgoogle.com/uds/ +3ÿï* +gr.skyscanner.com08@Rgoogle.com/ads +5‚ * +skyscanner.com.hk08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.hk08@Rgoogle.com/ads +5‚ * +skyscanner.com.sg08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.sg08@Rgoogle.com/ads +1‚ * + skyscanner.ie08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ie08@Rgoogle.com/ads +1‚ * + skyscanner.ca08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ca08@Rgoogle.com/ads +5‚ * +skyscanner.com.tw08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.tw08@Rgoogle.com/ads +1‚ * + skyscanner.ch08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ch08@Rgoogle.com/ads +4‚ * +skyscanner.co.il08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.il08@Rgoogle.com/ads +1‚ * + skyscanner.ae08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ae08@Rgoogle.com/ads +1‚ * + skyscanner.pt08@Rgoogle.com/uds/ +/ÿï* + skyscanner.pt08@Rgoogle.com/ads +4‚ * +skyscanner.co.in08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.in08@Rgoogle.com/ads +1‚ * + skyscanner.cz08@Rgoogle.com/uds/ +/ÿï* + skyscanner.cz08@Rgoogle.com/ads +5‚ * +skyscanner.com.my08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.my08@Rgoogle.com/ads +1‚ * + skyscanner.se08@Rgoogle.com/uds/ +/ÿï* + skyscanner.se08@Rgoogle.com/ads +4‚ * +skyscanner.co.th08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.th08@Rgoogle.com/ads +5‚ * +skyscanner.com.ua08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.ua08@Rgoogle.com/ads +1‚ * + skyscanner.fi08@Rgoogle.com/uds/ +/ÿï* + skyscanner.fi08@Rgoogle.com/ads +1‚ * + skyscanner.at08@Rgoogle.com/uds/ +/ÿï* + skyscanner.at08@Rgoogle.com/ads +4‚ * +skyscanner.co.nz08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.nz08@Rgoogle.com/ads +1‚ * + skyscanner.hu08@Rgoogle.com/uds/ +/ÿï* + skyscanner.hu08@Rgoogle.com/ads +1‚ * + skyscanner.dk08@Rgoogle.com/uds/ +/ÿï* + skyscanner.dk08@Rgoogle.com/ads$ +gr.skyscanner.com $elemhide$ +skyscanner.com.hk $elemhide$ +skyscanner.com.sg $elemhide  + skyscanner.ie $elemhide  + skyscanner.ca $elemhide$ +skyscanner.com.tw $elemhide  + skyscanner.ch $elemhide# +skyscanner.co.il $elemhide  + skyscanner.ae $elemhide  + skyscanner.pt $elemhide# +skyscanner.co.in $elemhide  + skyscanner.cz $elemhide$ +skyscanner.com.my $elemhide  + skyscanner.se $elemhide# +skyscanner.co.th $elemhide$ +skyscanner.com.ua $elemhide  + skyscanner.fi $elemhide  + skyscanner.at $elemhide# +skyscanner.co.nz $elemhide  + skyscanner.hu $elemhide  + skyscanner.dk $elemhide  + skyscanner.ro $elemhide° +1‚ * + skyscanner.ro08@Rgoogle.com/uds/ +/ÿï* + skyscanner.ro08@Rgoogle.com/ads +1‚ * + skyscanner.no08@Rgoogle.com/uds/ +/ÿï* + skyscanner.no08@Rgoogle.com/ads +5‚ * +skyscanner.com.ph08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.ph08@Rgoogle.com/ads +4‚ * +skyscanner.co.id08@Rgoogle.com/uds/ +2ÿï* +skyscanner.co.id08@Rgoogle.com/ads +5‚ * +skyscanner.com.vn08@Rgoogle.com/uds/ +3ÿï* +skyscanner.com.vn08@Rgoogle.com/ads +1‚ * + skyscanner.gg08@Rgoogle.com/uds/ +/ÿï* + skyscanner.gg08@Rgoogle.com/ads +3‚ * +milanuncios.com08@Rgoogle.com/uds/ +1ÿï* +milanuncios.com08@Rgoogle.com/ads +]‚ * +checkfelix.com* + swoodoo.com* + +swoodoo.at* + +swoodoo.ch08@Rgoogle.com/uds/ +[ÿï* +checkfelix.com* + swoodoo.com* + +swoodoo.at* + +swoodoo.ch08@Rgoogle.com/ads +Ý‚ * +sp-realtime.search.auone.jp* +sp-shopping.search.auone.jp* +sp-image.search.auone.jp* +sp-news.search.auone.jp* +sp-pass.search.auone.jp* +sp-web.search.auone.jp* +search.auone.jp08@Rgoogle.com/uds/ +Ûÿï* +sp-realtime.search.auone.jp* +sp-shopping.search.auone.jp* +sp-image.search.auone.jp* +sp-news.search.auone.jp* +sp-pass.search.auone.jp* +sp-web.search.auone.jp* +search.auone.jp08@Rgoogle.com/ads ++ÿï08@Rebaystatic.com^*/ScandalJS- ++ÿï08@Rebay.com^*/ScandalLoader.js +5ÿï* +ebay.at08@Rebay.at^*/ScandalLoader.js +5ÿï* +ebay.be08@Rebay.be^*/ScandalLoader.js +5ÿï* +ebay.fr08@Rebay.fr^*/ScandalLoader.js +5ÿï* +ebay.de08@Rebay.de^*/ScandalLoader.js +5ÿï* +ebay.it08@Rebay.it^*/ScandalLoader.js +5ÿï* +ebay.nl08@Rebay.nl^*/ScandalLoader.js +5ÿï* +ebay.es08@Rebay.es^*/ScandalLoader.js +5ÿï* +ebay.ch08@Rebay.ch^*/ScandalLoader.js +5ÿï* +ebay.ie08@Rebay.ie^*/ScandalLoader.js +5ÿï* +ebay.pl08@Rebay.pl^*/ScandalLoader.js +<‚ * +cgi.search.biglobe.ne.jp08@Rgoogle.com/uds/ +:ÿï* +cgi.search.biglobe.ne.jp08@Rgoogle.com/ads +>‚ * +olx.bg* +olx.pl* +olx.ro08@Rgoogle.com/uds/ +<ÿï* +olx.bg* +olx.pl* +olx.ro08@Rgoogle.com/ads +/ÿï08@Rgoogle.com/pagead/conversion.js +5ÿï08@R%google.com/pagead/conversion_async.js +S‚ * +websearch.rakuten.co.jp* +search.rakuten.co.jp08@Rgoogle.com/uds/ +Qÿï* +websearch.rakuten.co.jp* +search.rakuten.co.jp08@Rgoogle.com/ads  + skyscanner.no $elemhide$ +skyscanner.com.ph $elemhide# +skyscanner.co.id $elemhide$ +skyscanner.com.vn $elemhide  + skyscanner.gg $elemhide" +milanuncios.com $elemhide! +checkfelix.com $elemhide + +swoodoo.at $elemhide + +swoodoo.ch $elemhide + swoodoo.com $elemhide" +search.auone.jp $elemhide+ +sp-image.search.auone.jp $elemhide* +sp-news.search.auone.jp $elemhide* +sp-pass.search.auone.jp $elemhide. +sp-realtime.search.auone.jp $elemhide. +sp-shopping.search.auone.jp $elemhide) +sp-web.search.auone.jp $elemhide+ +cgi.search.biglobe.ne.jp $elemhide0 +olx.pl"div[data-testid^="qa-advert-slot"]' +search.rakuten.co.jp $elemhide* +websearch.rakuten.co.jp $elemhide + mitula.ae $elemhide + mitula.at $elemhide + mitula.be $elemhide + mitula.ca $elemhide + mitula.ch $elemhide‰ + mitula.cl $elemhide + mitula.cn $elemhide + mitula.co.id $elemhide + mitula.co.ke $elemhide + mitula.co.nz $elemhide + mitula.co.uk $elemhide + mitula.co.za $elemhide + +mitula.com $elemhide  + mitula.com.ar $elemhide  + mitula.com.au $elemhide  + mitula.com.br $elemhide  + mitula.com.co $elemhide  + mitula.com.mm $elemhide  + mitula.com.ng $elemhide  + mitula.com.pa $elemhide  + mitula.com.pl $elemhide  + mitula.com.tr $elemhide  + mitula.com.ua $elemhide  + mitula.com.ve $elemhide  + mitula.com.vn $elemhide + mitula.de $elemhide + mitula.dk $elemhide + mitula.ec $elemhide + mitula.fr $elemhide + mitula.hk $elemhide + mitula.ie $elemhide + mitula.in $elemhide + mitula.in.th $elemhide + mitula.it $elemhide + mitula.jp $elemhide + mitula.ma $elemhide + mitula.mx $elemhide + mitula.my $elemhide + mitula.nl $elemhide + mitula.pe $elemhide + mitula.ph $elemhide + mitula.pk $elemhide + mitula.pt $elemhide + mitula.ro $elemhide + mitula.ru $elemhide + mitula.se $elemhide + mitula.sg $elemhide + mitula.tn $elemhide + mitula.us $elemhide + nestoria.ae $elemhide + nestoria.at $elemhide + nestoria.ch $elemhide + nestoria.cl $elemhide! +nestoria.co.id $elemhide! +nestoria.co.uk $elemhide" +nestoria.com.ar $elemhide" +nestoria.com.au $elemhide" +nestoria.com.br $elemhide" +nestoria.com.co $elemhide" +nestoria.com.ph $elemhide" +nestoria.com.tr $elemhide + nestoria.de $elemhide + nestoria.es $elemhide + nestoria.fr $elemhide + nestoria.ie $elemhide + nestoria.in $elemhide + nestoria.it $elemhide + nestoria.mx $elemhide + nestoria.nl $elemhideÙ+ +Á ‚ * +nestoria.com.ar* +nestoria.com.au* +nestoria.com.br* +nestoria.com.co* +nestoria.com.ph* +nestoria.com.tr* +nestoria.co.id* +nestoria.co.uk* + mitula.com.ar* + mitula.com.au* + mitula.com.br* + mitula.com.co* + mitula.com.mm* + mitula.com.ng* + mitula.com.pa* + mitula.com.pl* + mitula.com.tr* + mitula.com.ua* + mitula.com.ve* + mitula.com.vn* + nuroahomes.in* + trovit.com.kw* + trovit.com.pa* + trovit.com.qa* + trovit.com.tw* + trovit.com.uy* + trovit.com.vn* + mitula.co.id* + mitula.co.ke* + mitula.co.nz* + mitula.co.uk* + mitula.co.za* + mitula.in.th* + nuroa.com.ar* + nuroa.com.au* + nuroa.com.bo* + nuroa.com.br* + nuroa.com.co* + nuroa.com.ec* + nuroa.com.mx* + nuroa.com.ve* + trovit.co.cr* + trovit.co.ke* + nestoria.ae* + nestoria.at* + nestoria.ch* + nestoria.cl* + nestoria.de* + nestoria.es* + nestoria.fr* + nestoria.ie* + nestoria.in* + nestoria.it* + nestoria.mx* + nestoria.nl* + nestoria.pe* + nestoria.pl* + nestoria.pt* + nuroa.co.uk* + nuroa.co.za* + +mitula.com* + mitula.ae* + mitula.at* + mitula.be* + mitula.ca* + mitula.ch* + mitula.cl* + mitula.cn* + mitula.de* + mitula.dk* + mitula.ec* + mitula.fr* + mitula.hk* + mitula.ie* + mitula.in* + mitula.it* + mitula.jp* + mitula.ma* + mitula.mx* + mitula.my* + mitula.nl* + mitula.pe* + mitula.ph* + mitula.pk* + mitula.pt* + mitula.ro* + mitula.ru* + mitula.se* + mitula.sg* + mitula.tn* + mitula.us* + nuroa.com* + trovit.cz* + trovit.dk* + trovit.hu* + trovit.jp* + trovit.lu* + trovit.ng* + trovit.no* + trovit.ro* + +nuroa.ae* + +nuroa.at* + +nuroa.ca* + +nuroa.ch* + +nuroa.cl* + +nuroa.de* + +nuroa.es* + +nuroa.fr* + +nuroa.ie* + +nuroa.it* + +nuroa.ma* + +nuroa.my* + +nuroa.pe* + +nuroa.ph* + +nuroa.pk* + +nuroa.pt08@Rgoogle.com/uds/ +¿ ÿï* +nestoria.com.ar* +nestoria.com.au* +nestoria.com.br* +nestoria.com.co* +nestoria.com.ph* +nestoria.com.tr* +nestoria.co.id* +nestoria.co.uk* + mitula.com.ar* + mitula.com.au* + mitula.com.br* + mitula.com.co* + mitula.com.mm* + mitula.com.ng* + mitula.com.pa* + mitula.com.pl* + mitula.com.tr* + mitula.com.ua* + mitula.com.ve* + mitula.com.vn* + nuroahomes.in* + trovit.com.kw* + trovit.com.pa* + trovit.com.qa* + trovit.com.tw* + trovit.com.uy* + trovit.com.vn* + mitula.co.id* + mitula.co.ke* + mitula.co.nz* + mitula.co.uk* + mitula.co.za* + mitula.in.th* + nuroa.com.ar* + nuroa.com.au* + nuroa.com.bo* + nuroa.com.br* + nuroa.com.co* + nuroa.com.ec* + nuroa.com.mx* + nuroa.com.ve* + trovit.co.cr* + trovit.co.ke* + nestoria.ae* + nestoria.at* + nestoria.ch* + nestoria.cl* + nestoria.de* + nestoria.es* + nestoria.fr* + nestoria.ie* + nestoria.in* + nestoria.it* + nestoria.mx* + nestoria.nl* + nestoria.pe* + nestoria.pl* + nestoria.pt* + nuroa.co.uk* + nuroa.co.za* + +mitula.com* + mitula.ae* + mitula.at* + mitula.be* + mitula.ca* + mitula.ch* + mitula.cl* + mitula.cn* + mitula.de* + mitula.dk* + mitula.ec* + mitula.fr* + mitula.hk* + mitula.ie* + mitula.in* + mitula.it* + mitula.jp* + mitula.ma* + mitula.mx* + mitula.my* + mitula.nl* + mitula.pe* + mitula.ph* + mitula.pk* + mitula.pt* + mitula.ro* + mitula.ru* + mitula.se* + mitula.sg* + mitula.tn* + mitula.us* + nuroa.com* + trovit.cz* + trovit.dk* + trovit.hu* + trovit.jp* + trovit.lu* + trovit.ng* + trovit.no* + trovit.ro* + +nuroa.ae* + +nuroa.at* + +nuroa.ca* + +nuroa.ch* + +nuroa.cl* + +nuroa.de* + +nuroa.es* + +nuroa.fr* + +nuroa.ie* + +nuroa.it* + +nuroa.ma* + +nuroa.my* + +nuroa.pe* + +nuroa.ph* + +nuroa.pk* + +nuroa.pt08@Rgoogle.com/ads +æ‚ * + liligo.com.au* + liligo.com.br* + travellink.de* + travellink.is* + opodo.com.au* + +edreams.gr* + +edreams.jp* + liligo.be* + liligo.ie* + +opodo.be* + +opodo.ch* + +opodo.es* + +opodo.nl* + +opodo.pt08@Rgoogle.com/uds/ + nestoria.pe $elemhide + nestoria.pl $elemhide + nestoria.pt $elemhide +nuroa.ae $elemhide +nuroa.at $elemhide +nuroa.ca $elemhide +nuroa.ch $elemhide +nuroa.cl $elemhide + nuroa.co.uk $elemhide + nuroa.co.za $elemhide + nuroa.com $elemhide + nuroa.com.ar $elemhide + nuroa.com.au $elemhide + nuroa.com.bo $elemhide + nuroa.com.br $elemhide + nuroa.com.co $elemhide + nuroa.com.ec $elemhide + nuroa.com.mx $elemhide + nuroa.com.ve $elemhide +nuroa.de $elemhide +nuroa.es $elemhide +nuroa.fr $elemhide +nuroa.ie $elemhide +nuroa.it $elemhide +nuroa.ma $elemhide +nuroa.my $elemhide +nuroa.pe $elemhide +nuroa.ph $elemhide +nuroa.pk $elemhide +nuroa.pt $elemhide  + nuroahomes.in $elemhide + trovit.co.cr $elemhide + trovit.co.ke $elemhide  + trovit.com.kw $elemhide  + trovit.com.pa $elemhide  + trovit.com.qa $elemhide  + trovit.com.tw $elemhide  + trovit.com.uy $elemhide  + trovit.com.vn $elemhide + trovit.cz $elemhide + trovit.dk $elemhide + trovit.hu $elemhide + trovit.jp $elemhide + trovit.lu $elemhide + trovit.ng $elemhide + trovit.no $elemhide + trovit.ro $elemhide + +edreams.gr $elemhide + +edreams.jp $elemhide + liligo.be $elemhide  + liligo.com.au $elemhide  + liligo.com.br $elemhide + liligo.ie $elemhide +opodo.be $elemhide +opodo.ch $elemhide + opodo.com.au $elemhide +opodo.es $elemhide +opodo.nl $elemhide +opodo.pt $elemhide  + travellink.de $elemhide  + travellink.is $elemhide­ +äÿï* + liligo.com.au* + liligo.com.br* + travellink.de* + travellink.is* + opodo.com.au* + +edreams.gr* + +edreams.jp* + liligo.be* + liligo.ie* + +opodo.be* + +opodo.ch* + +opodo.es* + +opodo.nl* + +opodo.pt08@Rgoogle.com/ads +F‚ * +bestdeals.today* +cheapprice.sale08@Rgoogle.com/uds/ +Dÿï* +bestdeals.today* +cheapprice.sale08@Rgoogle.com/ads +µ‚ * +fashiola.com.au* +fashiola.com.br* +fashiola.com.tr* +fashiola.co.uk* + fashiola.com* + fashiola.ae* + fashiola.at* + fashiola.be* + fashiola.be* + fashiola.ca* + fashiola.ch* + fashiola.cz* + fashiola.de* + fashiola.dk* + fashiola.es* + fashiola.fi* + fashiola.fr* + fashiola.in* + fashiola.it* + fashiola.mx* + fashiola.no* + fashiola.ph* + fashiola.pl* + fashiola.pt* + fashiola.se* + +kleding.nl08@Rgoogle.com/uds/ +³ÿï* +fashiola.com.au* +fashiola.com.br* +fashiola.com.tr* +fashiola.co.uk* + fashiola.com* + fashiola.ae* + fashiola.at* + fashiola.be* + fashiola.be* + fashiola.ca* + fashiola.ch* + fashiola.cz* + fashiola.de* + fashiola.dk* + fashiola.es* + fashiola.fi* + fashiola.fr* + fashiola.in* + fashiola.it* + fashiola.mx* + fashiola.no* + fashiola.ph* + fashiola.pl* + fashiola.pt* + fashiola.se* + +kleding.nl08@Rgoogle.com/ads +}‚ * +cybermondaydeals.online* +seasonsepisode.watch* +bestreviews.guide* +watchonline.guide08@Rgoogle.com/uds/ +{ÿï* +cybermondaydeals.online* +seasonsepisode.watch* +bestreviews.guide* +watchonline.guide08@Rgoogle.com/ads +.‚ * + +zazzle.com08@Rgoogle.com/uds/ +,ÿï* + +zazzle.com08@Rgoogle.com/ads +0ÿï08@R google.com/pagead/privacysandbox +:ÿï08@R*googleadservices.com/pagead/privacysandbox +)ÿï08@Rgoogle.com/pagead/landing +0ÿï08@R g.doubleclick.net/pagead/landing +F‚ * +legalboulevard.com* + savings.shop08@Rgoogle.com/uds/ +Dÿï* +legalboulevard.com* + savings.shop08@Rgoogle.com/ads" +bestdeals.today $elemhide" +cheapprice.sale $elemhide + +kleding.nl $elemhide + fashiola.de $elemhide! +fashiola.co.uk $elemhide + fashiola.es $elemhide + fashiola.fr $elemhide + fashiola.se $elemhide + fashiola.it $elemhide + fashiola.pl $elemhide + fashiola.pt $elemhide" +fashiola.com.br $elemhide + fashiola.at $elemhide + fashiola.ch $elemhide + fashiola.be $elemhide + fashiola.be $elemhide + fashiola.dk $elemhide + fashiola.mx $elemhide" +fashiola.com.au $elemhide + fashiola.no $elemhide + fashiola.fi $elemhide + fashiola.com $elemhide + fashiola.ca $elemhide" +fashiola.com.tr $elemhide + fashiola.in $elemhide + fashiola.ph $elemhide + fashiola.ae $elemhide + fashiola.cz $elemhide$ +bestreviews.guide $elemhide* +cybermondaydeals.online $elemhide' +seasonsepisode.watch $elemhide$ +watchonline.guide $elemhide + +zazzle.com $elemhide% +legalboulevard.com $elemhide + savings.shop $elemhide$ +allinfosearch.com $elemhide$ +allsearchsite.com $elemhide$ +allwealthinfo.com $elemhide! +answerroot.com $elemhide + +ask.jp $elemhide + askmoney.com $elemhide$ +consumersearch.de $elemhide" +dailyguides.com $elemhide  + directhit.com $elemhide) +discoverhealthinfo.com $elemhide + etour.com $elemhide' +everymanbusiness.com $elemhide + faqtoids.com $elemhide& +fastquicksearch.com $elemhideÂ% +Ù‚ * +discoverhealthinfo.com* +smartanswersonline.com* +travelsearchexpert.com* +fastsearchresults.com* +findhealthinfonow.com* +internetcorkboard.com* +questionsanswered.net* +searchandshopping.org* +everymanbusiness.com* +theresultsengine.com* +fastquicksearch.com* +mysearchexperts.com* +searchinfotoday.com* +superdealsearch.com* +findinfoonline.com* +quicklyanswers.com* +searchstartnow.com* +allinfosearch.com* +allsearchsite.com* +allwealthinfo.com* +consumersearch.de* +getsearchinfo.com* +searchinfonow.com* +topwealthinfo.com* +topwebanswers.com* +justfindinfo.com* +theanswerhub.com* +top10answers.com* +websearch101.com* +dailyguides.com* +productopia.com* +answerroot.com* + directhit.com* + search-hq.com* + askmoney.com* + faqtoids.com* + sidewalk.com* + topsearch.co* + life123.com* + teoma.co.it* + teoma.co.uk* + +ohdeal.com* + etour.com* + +teoma.es* + +teoma.eu* + +teoma.fr* + +teoma.jp* + +teoma.us* +ask.jp08@Rgoogle.com/uds/ +×ÿï* +discoverhealthinfo.com* +smartanswersonline.com* +travelsearchexpert.com* +fastsearchresults.com* +findhealthinfonow.com* +internetcorkboard.com* +questionsanswered.net* +searchandshopping.org* +everymanbusiness.com* +theresultsengine.com* +fastquicksearch.com* +mysearchexperts.com* +searchinfotoday.com* +superdealsearch.com* +findinfoonline.com* +quicklyanswers.com* +searchstartnow.com* +allinfosearch.com* +allsearchsite.com* +allwealthinfo.com* +consumersearch.de* +getsearchinfo.com* +searchinfonow.com* +topwealthinfo.com* +topwebanswers.com* +justfindinfo.com* +theanswerhub.com* +top10answers.com* +websearch101.com* +dailyguides.com* +productopia.com* +answerroot.com* + directhit.com* + search-hq.com* + askmoney.com* + faqtoids.com* + sidewalk.com* + topsearch.co* + life123.com* + teoma.co.it* + teoma.co.uk* + +ohdeal.com* + etour.com* + +teoma.es* + +teoma.eu* + +teoma.fr* + +teoma.jp* + +teoma.us* +ask.jp08@Rgoogle.com/ads +I‚ * +everymanbusiness.com* + bloglines.com08@Rgoogle.com/uds/ +Gÿï* +everymanbusiness.com* + bloglines.com08@Rgoogle.com/ads +h‚ * +smartsearchresults.com* +findinfoquickly.com* +quickresultsnow.com08@Rgoogle.com/uds/ +fÿï* +smartsearchresults.com* +findinfoquickly.com* +quickresultsnow.com08@Rgoogle.com/ads +w‚ * +stumbleuponresults.com* +searchresultsfast.com* +quicklyseek.com* + digupinfo.com08@Rgoogle.com/uds/ +uÿï* +stumbleuponresults.com* +searchresultsfast.com* +quicklyseek.com* + digupinfo.com08@Rgoogle.com/ads +5‚ * +trackdownmore.com08@Rgoogle.com/uds/ +3ÿï* +trackdownmore.com08@Rgoogle.com/ads +G‚ * +myquicksearch.com* +mywebsearch.co08@Rgoogle.com/uds/ +Eÿï* +myquicksearch.com* +mywebsearch.co08@Rgoogle.com/ads +7‚ * +smartshopsearch.com08@Rgoogle.com/uds/ +5ÿï* +smartshopsearch.com08@Rgoogle.com/ads( +fastsearchresults.com $elemhide( +findhealthinfonow.com $elemhide% +findinfoonline.com $elemhide$ +getsearchinfo.com $elemhide( +internetcorkboard.com $elemhide# +justfindinfo.com $elemhide + life123.com $elemhide& +mysearchexperts.com $elemhide + +ohdeal.com $elemhide" +productopia.com $elemhide( +questionsanswered.net $elemhide% +quicklyanswers.com $elemhide  + search-hq.com $elemhide( +searchandshopping.org $elemhide$ +searchinfonow.com $elemhide& +searchinfotoday.com $elemhide% +searchstartnow.com $elemhide + sidewalk.com $elemhide) +smartanswersonline.com $elemhide& +superdealsearch.com $elemhide + teoma.co.it $elemhide + teoma.co.uk $elemhide +teoma.es $elemhide +teoma.eu $elemhide +teoma.fr $elemhide +teoma.jp $elemhide +teoma.us $elemhide# +theanswerhub.com $elemhide' +theresultsengine.com $elemhide# +top10answers.com $elemhide + topsearch.co $elemhide$ +topwealthinfo.com $elemhide$ +topwebanswers.com $elemhide) +travelsearchexpert.com $elemhide# +websearch101.com $elemhide  + bloglines.com $elemhide' +everymanbusiness.com $elemhide& +findinfoquickly.com $elemhide& +quickresultsnow.com $elemhide) +smartsearchresults.com $elemhide  + digupinfo.com $elemhide" +quicklyseek.com $elemhide( +searchresultsfast.com $elemhide) +stumbleuponresults.com $elemhide$ +trackdownmore.com $elemhide$ +myquicksearch.com $elemhide! +mywebsearch.co $elemhide& +smartshopsearch.com $elemhide% +allshoppinghub.com $elemhide' +findsmartresults.com $elemhide¢) +j‚ * +smartshoppingresults.com* +findsmartresults.com* +allshoppinghub.com08@Rgoogle.com/uds/ +hÿï* +smartshoppingresults.com* +findsmartresults.com* +allshoppinghub.com08@Rgoogle.com/ads +þ‚ * +holidayshoppingsearch.com* +searchresultsdelivery.com* +discoverholidayshops.com* +quickholidayshopping.com* +searchresultsquickly.com* +smartholidayshopping.com* +bestshoppingresults.com* +fastholidayshopping.com* +speedysearchresults.com* +deliverbestresults.com* +holidaygiftssearch.com* +resultsdistributor.com* +searchholidaygifts.com* +searchtravelrepeat.com* +smartsearchresults.com* +stumbleuponresults.com* +encontrerapidinho.com* +fulfillingresults.com* +searchresultsfast.com* +getspeedyresults.com* +smartshopresults.com* +speedyanswersnow.com* +crazyresultsnow.com* +findinfoquickly.com* +quickresultsnow.com* +smartshopsearch.com* +todaysbestshops.com* +chaseafterinfo.com* +quicklyexplore.com* +searchshopsnow.com* +siftforanswers.com* +siftforresults.com* +cherchetrouve.net* +myquicksearch.com* +trackdownmore.com* +lookupsmart.com* +quicklyseek.com* +mywebsearch.co* +suchefinde.net* +wefindalot.com* + digupinfo.com* + myway.com08@Rgoogle.com/uds/ +üÿï* +holidayshoppingsearch.com* +searchresultsdelivery.com* +discoverholidayshops.com* +quickholidayshopping.com* +searchresultsquickly.com* +smartholidayshopping.com* +bestshoppingresults.com* +fastholidayshopping.com* +speedysearchresults.com* +deliverbestresults.com* +holidaygiftssearch.com* +resultsdistributor.com* +searchholidaygifts.com* +searchtravelrepeat.com* +smartsearchresults.com* +stumbleuponresults.com* +encontrerapidinho.com* +fulfillingresults.com* +searchresultsfast.com* +getspeedyresults.com* +smartshopresults.com* +speedyanswersnow.com* +crazyresultsnow.com* +findinfoquickly.com* +quickresultsnow.com* +smartshopsearch.com* +todaysbestshops.com* +chaseafterinfo.com* +quicklyexplore.com* +searchshopsnow.com* +siftforanswers.com* +siftforresults.com* +cherchetrouve.net* +myquicksearch.com* +trackdownmore.com* +lookupsmart.com* +quicklyseek.com* +mywebsearch.co* +suchefinde.net* +wefindalot.com* + digupinfo.com* + myway.com08@Rgoogle.com/ads +Í‚ * +smartholidayshopping.com* +wholidaygiftssearch.com* +searchtravelrepeat.com* +smartshopresults.com* +crazyresultsnow.com* +todaysbestshops.com* +siftforanswers.com08@Rgoogle.com/uds/ +Ëÿï* +smartholidayshopping.com* +wholidaygiftssearch.com* +searchtravelrepeat.com* +smartshopresults.com* +crazyresultsnow.com* +todaysbestshops.com* +siftforanswers.com08@Rgoogle.com/ads +š‚ * +deliverbestresults.com* +searchholidaygifts.com* +getspeedyresults.com* +speedyanswersnow.com* +quicklyexplore.com08@Rgoogle.com/uds/ +˜ÿï* +deliverbestresults.com* +searchholidaygifts.com* +getspeedyresults.com* +speedyanswersnow.com* +quicklyexplore.com08@Rgoogle.com/ads+ +smartshoppingresults.com $elemhide* +bestshoppingresults.com $elemhide% +chaseafterinfo.com $elemhide$ +cherchetrouve.net $elemhide& +crazyresultsnow.com $elemhide) +deliverbestresults.com $elemhide  + digupinfo.com $elemhide+ +discoverholidayshops.com $elemhide( +encontrerapidinho.com $elemhide* +fastholidayshopping.com $elemhide& +findinfoquickly.com $elemhide( +fulfillingresults.com $elemhide' +getspeedyresults.com $elemhide) +holidaygiftssearch.com $elemhide, +holidayshoppingsearch.com $elemhide" +lookupsmart.com $elemhide$ +myquicksearch.com $elemhide + myway.com $elemhide! +mywebsearch.co $elemhide+ +quickholidayshopping.com $elemhide% +quicklyexplore.com $elemhide" +quicklyseek.com $elemhide& +quickresultsnow.com $elemhide) +resultsdistributor.com $elemhide) +searchholidaygifts.com $elemhide, +searchresultsdelivery.com $elemhide( +searchresultsfast.com $elemhide+ +searchresultsquickly.com $elemhide% +searchshopsnow.com $elemhide) +searchtravelrepeat.com $elemhide% +siftforanswers.com $elemhide% +siftforresults.com $elemhide+ +smartholidayshopping.com $elemhide) +smartsearchresults.com $elemhide' +smartshopresults.com $elemhide& +smartshopsearch.com $elemhide' +speedyanswersnow.com $elemhide* +speedysearchresults.com $elemhide) +stumbleuponresults.com $elemhide! +suchefinde.net $elemhide& +todaysbestshops.com $elemhide$ +trackdownmore.com $elemhide! +wefindalot.com $elemhide& +crazyresultsnow.com $elemhide) +searchtravelrepeat.com $elemhide% +siftforanswers.com $elemhide+ +smartholidayshopping.com $elemhide' +smartshopresults.com $elemhide& +todaysbestshops.com $elemhide* +wholidaygiftssearch.com $elemhide) +deliverbestresults.com $elemhide' +getspeedyresults.com $elemhide% +quicklyexplore.com $elemhide) +searchholidaygifts.com $elemhide' +speedyanswersnow.com $elemhide, +distributeresultsfast.com $elemhide� +S‚ * +distributeresultsfast.com* +searchshopsnow.com08@Rgoogle.com/uds/ +Qÿï* +distributeresultsfast.com* +searchshopsnow.com08@Rgoogle.com/ads +W‚ * +quicklyexploreresults.com* +bestresultsquickly.com08@Rgoogle.com/uds/ +Uÿï* +quicklyexploreresults.com* +bestresultsquickly.com08@Rgoogle.com/ads +½‚ * +discoverresultsfast.com* +findresultsfast.com* +findresultsnow.com* +searchbestinfo.com* +topresultsfast.com* +nowtopresults.com* +wefindanswers.co08@Rgoogle.com/uds/ +»ÿï* +discoverresultsfast.com* +findresultsfast.com* +findresultsnow.com* +searchbestinfo.com* +topresultsfast.com* +nowtopresults.com* +wefindanswers.co08@Rgoogle.com/ads +D‚ * +tw.mixrooms.com* + feebee.com.tw08@Rgoogle.com/uds/ +Bÿï* +tw.mixrooms.com* + feebee.com.tw08@Rgoogle.com/ads +3‚ * +ad.sitemaji.com08@Rgoogle.com/uds/ +1ÿï* +ad.sitemaji.com08@Rgoogle.com/ads +Ê‚ * +findresultsquickly.com* +searchdiscoveries.com* +topresultsquickly.com* +fastresultstoday.com* +speedyresultsnow.com* +bestresultsfast.com* +smartresultsnow.net08@Rgoogle.com/uds/ +Èÿï* +findresultsquickly.com* +searchdiscoveries.com* +topresultsquickly.com* +fastresultstoday.com* +speedyresultsnow.com* +bestresultsfast.com* +smartresultsnow.net08@Rgoogle.com/ads% +searchshopsnow.com $elemhide) +bestresultsquickly.com $elemhide, +quicklyexploreresults.com $elemhide* +discoverresultsfast.com $elemhide& +findresultsfast.com $elemhide% +findresultsnow.com $elemhide$ +nowtopresults.com $elemhide% +searchbestinfo.com $elemhide% +topresultsfast.com $elemhide# +wefindanswers.co $elemhide  + feebee.com.tw $elemhide" +tw.mixrooms.com $elemhide" +ad.sitemaji.com $elemhide& +bestresultsfast.com $elemhide' +fastresultstoday.com $elemhide) +findresultsquickly.com $elemhide( +searchdiscoveries.com $elemhide& +smartresultsnow.net $elemhide' +speedyresultsnow.com $elemhide( +topresultsquickly.com $elemhide  + abmahnung.org $elemhide. +arbeitslosenselbsthilfe.org $elemhide# +arbeitsrechte.de $elemhide* +arbeitsschutzgesetz.org $elemhide% +arbeitsvertrag.org $elemhide + autokauf.org $elemhide! +autounfall.net $elemhide# +benzinpreise.net $elemhide% +betriebsausgabe.de $elemhide# +bussgeld-info.de $elemhide' +bussgeld-rechner.com $elemhide + bussgeld.org $elemhide1" +bussgeldbescheid-einspruch.com $elemhide0! +bussgeldbescheideinspruch.com $elemhide& +bussgeldkatalog.com $elemhide% +bussgeldkatalog.de $elemhide& +bussgeldkatalog.net $elemhide& +bussgeldkatalog.org $elemhide& +bussgeldkataloge.de $elemhide& +bussgeldkataloge.eu $elemhide& +bussgeldrechner.com $elemhide& +bussgeldrechner.net $elemhide& +bussgeldrechner.org $elemhide" +datenschutz.org $elemhide- +eigenbedarfskuendigung.com $elemhide- +erfolg-als-freiberufler.de $elemhide# +fahrerflucht.org $elemhide! +fahrverbot.com $elemhide$ +familienrecht.net $elemhide5& +"fehlerhafte-widerrufsbelehrung.org $elemhide+ +filesharingabmahnung.org $elemhide& +flensburgpunkte.net $elemhideå. +Ð ‚ *+ +)vorfaelligkeitsentschaedigungsrechner.org*% +#geschwindigkeitsueberschreitung.net*% +#rueckkaufswertlebensversicherung.de*$ +"fehlerhafte-widerrufsbelehrung.org*# +!vorfaelligkeitsentschaedigung.net*! +lebensversicherungauszahlung.de*! +rentenversicherungkuendigen.com*! +widerruf-immobiliendarlehen.org* +bussgeldbescheid-einspruch.com* +lebensversicherungkuendigen.de* +widerruflebensversicherung.com* +bussgeldbescheideinspruch.com* +prozesskostenfinanzierung.de* +arbeitslosenselbsthilfe.org* +unterlassungserklaerung.org* +eigenbedarfskuendigung.com* +erfolg-als-freiberufler.de* +rechtsanwaltsmarketing.com* +rote-ampel-ueberfahren.de* +schmerzensgeldtabelle.net* +filesharingabmahnung.org* +widerrufkreditvertrag.de* +arbeitsschutzgesetz.org* +fristlosekuendigung.com* +schuldnerberatungen.org* +kuendigungsfristen.net* +zu-schnell-gefahren.de* +koerperverletzung.com* +schuldnerberatung.org* +zuschnellgefahren.com* +bussgeld-rechner.com* +schuldnerberatung.de* +bussgeldkatalog.com* +bussgeldkatalog.net* +bussgeldkatalog.org* +bussgeldkataloge.de* +bussgeldkataloge.eu* +bussgeldrechner.com* +bussgeldrechner.net* +bussgeldrechner.org* +flensburgpunkte.net* +fuehrerscheinfix.de* +hartz4hilfhartz4.de* +privatinsolvenz.net* +punkte-flensburg.de* +arbeitsvertrag.org* +betriebsausgabe.de* +bussgeldkatalog.de* +vorfaelligkeit.org* +familienrecht.net* +mietminderung.net* +arbeitsrechte.de* +benzinpreise.net* +bussgeld-info.de* +fahrerflucht.org* +datenschutz.org* +urheberrecht.de* +autounfall.net* +fahrverbot.com* + abmahnung.org* + mietrecht.com* + scheidung.org* + autokauf.org* + bussgeld.org* + +hartz4.net* + +hartz4.org* + hartz4.de* + nwalt.org08@Rgoogle.com/uds/ +Î ÿï*+ +)vorfaelligkeitsentschaedigungsrechner.org*% +#geschwindigkeitsueberschreitung.net*% +#rueckkaufswertlebensversicherung.de*$ +"fehlerhafte-widerrufsbelehrung.org*# +!vorfaelligkeitsentschaedigung.net*! +lebensversicherungauszahlung.de*! +rentenversicherungkuendigen.com*! +widerruf-immobiliendarlehen.org* +bussgeldbescheid-einspruch.com* +lebensversicherungkuendigen.de* +widerruflebensversicherung.com* +bussgeldbescheideinspruch.com* +prozesskostenfinanzierung.de* +arbeitslosenselbsthilfe.org* +unterlassungserklaerung.org* +eigenbedarfskuendigung.com* +erfolg-als-freiberufler.de* +rechtsanwaltsmarketing.com* +rote-ampel-ueberfahren.de* +schmerzensgeldtabelle.net* +filesharingabmahnung.org* +widerrufkreditvertrag.de* +arbeitsschutzgesetz.org* +fristlosekuendigung.com* +schuldnerberatungen.org* +kuendigungsfristen.net* +zu-schnell-gefahren.de* +koerperverletzung.com* +schuldnerberatung.org* +zuschnellgefahren.com* +bussgeld-rechner.com* +schuldnerberatung.de* +bussgeldkatalog.com* +bussgeldkatalog.net* +bussgeldkatalog.org* +bussgeldkataloge.de* +bussgeldkataloge.eu* +bussgeldrechner.com* +bussgeldrechner.net* +bussgeldrechner.org* +flensburgpunkte.net* +fuehrerscheinfix.de* +hartz4hilfhartz4.de* +privatinsolvenz.net* +punkte-flensburg.de* +arbeitsvertrag.org* +betriebsausgabe.de* +bussgeldkatalog.de* +vorfaelligkeit.org* +familienrecht.net* +mietminderung.net* +arbeitsrechte.de* +benzinpreise.net* +bussgeld-info.de* +fahrerflucht.org* +datenschutz.org* +urheberrecht.de* +autounfall.net* +fahrverbot.com* + abmahnung.org* + mietrecht.com* + scheidung.org* + autokauf.org* + bussgeld.org* + +hartz4.net* + +hartz4.org* + hartz4.de* + nwalt.org08@Rgoogle.com/ads* +fristlosekuendigung.com $elemhide& +fuehrerscheinfix.de $elemhide6' +#geschwindigkeitsueberschreitung.net $elemhide + hartz4.de $elemhide + +hartz4.net $elemhide + +hartz4.org $elemhide& +hartz4hilfhartz4.de $elemhide( +koerperverletzung.com $elemhide) +kuendigungsfristen.net $elemhide2# +lebensversicherungauszahlung.de $elemhide1" +lebensversicherungkuendigen.de $elemhide$ +mietminderung.net $elemhide  + mietrecht.com $elemhide + nwalt.org $elemhide& +privatinsolvenz.net $elemhide/ +prozesskostenfinanzierung.de $elemhide& +punkte-flensburg.de $elemhide- +rechtsanwaltsmarketing.com $elemhide2# +rentenversicherungkuendigen.com $elemhide, +rote-ampel-ueberfahren.de $elemhide6' +#rueckkaufswertlebensversicherung.de $elemhide  + scheidung.org $elemhide, +schmerzensgeldtabelle.net $elemhide' +schuldnerberatung.de $elemhide( +schuldnerberatung.org $elemhide* +schuldnerberatungen.org $elemhide. +unterlassungserklaerung.org $elemhide" +urheberrecht.de $elemhide% +vorfaelligkeit.org $elemhide4% +!vorfaelligkeitsentschaedigung.net $elemhide<- +)vorfaelligkeitsentschaedigungsrechner.org $elemhide2# +widerruf-immobiliendarlehen.org $elemhide+ +widerrufkreditvertrag.de $elemhide1" +widerruflebensversicherung.com $elemhide) +zu-schnell-gefahren.de $elemhide( +zuschnellgefahren.com $elemhide$ +akkuschrauber.com $elemhide& +aktenvernichter.org $elemhide# +aschenbecher.com $elemhide  + autoradio.org $elemhide + babyfon.org $elemhide  + babywippe.net $elemhide + backofen.com $elemhide + +balkon.com $elemhide + batterie.org $elemhide  + bettdecke.org $elemhide& +bewegungsmelder.com $elemhide$ +bild.de/vergleich $elemhide& +blurayplayertest.de $elemhide# +bohrmaschine.org $elemhide$ +boxspringbett.org $elemhide + braeter.org $elemhide + brillen.org $elemhide& +brotbackautomat.org $elemhide" +buegeleisen.org $elemhide& +buegeleisentest.com $elemhide! +buerostuhl.net $elemhide + cimodul.com $elemhide" +computerbild.de $elemhide# +crosstrainer.net $elemhide + dachbox.org $elemhide! +dampfgarer.org $elemhideñ$ +de.smartwatch.org $elemhide# +de.subwoofer.net $elemhide$ +de.ventilator.org $elemhide/ +digitalkamera-testportal.com $elemhide + +dirndls.de $elemhide + +drohne.net $elemhide# +duschvorhang.org $elemhide  + dvbtstick.net $elemhide- +dvdfestplattenrecorder.org $elemhide& +ebookreadertest.net $elemhide& +eckschreibtisch.org $elemhide$ +eiweisspulver.org $elemhide- +elektrischezahnbuerste.com $elemhide/ +elektrowerkzeug-vergleich.de $elemhide  + epilierer.org $elemhide + ergometer.de $elemhide% +espressokocher.org $elemhide' +espressomaschine.com $elemhide) +externe-festplatte.com $elemhide" +fahrradhelm.org $elemhide% +fahrradtaschen.net $elemhide# +fenstersauger.de $elemhide* +ferngesteuerteautos.net $elemhide + fernglas.net $elemhide  + fernseher.org $elemhide! +festplatte.com $elemhide% +fitnessgeraete.org $elemhide + fliesen.org $elemhide + friteuse.org $elemhide! +frontlader.org $elemhide% +fussballschuhe.org $elemhide" +gartencenter.de $elemhide + gasgrill.net $elemhide% +gefrierschrank.net $elemhide& +geschirrspueler.org $elemhide) +gesellschaftsspiele.de $elemhide$ +ghettoblaster.org $elemhide$ +grafiktablett.net $elemhide& +handstaubsauger.net $elemhide' +handyohnevertrag.net $elemhide! +hantelbank.com $elemhide + hanteln.net $elemhide' +haushaltsgeraete.com $elemhide% +haushaltstipps.net $elemhide! +hausschuhe.net $elemhide% +hauswasserwerk.net $elemhide + headset.net $elemhide" +heckenschere.de $elemhide  + heimwerker.de $elemhide" +heizluefter.org $elemhide$ +herrenanzuege.net $elemhide + hosen.net $elemhide) +induktionskochfeld.org $elemhide3$ + kabelfernsehen-kabelanschluss.de $elemhide" +kinderwagen.org $elemhide% +klimmzugstange.net $elemhide! +kopfhoerer.com $elemhide$ +kopfhoerertest.de $elemhide + kosmetik.org $elemhide& +kriminalberatung.de $elemhide# +kronleuchter.org $elemhide# +kuehlschrank.com $elemhide! +lattenrost.org $elemhide  + laubsauger.de $elemhide° + laufband.org $elemhide& +lautsprechertest.de $elemhide! +lockenstab.com $elemhide* +longboard-einsteiger.de $elemhide/ +luftentfeuchtungsgeraete.net $elemhide# +luftmatratze.net $elemhide  + matratzen.org $elemhide! +mikrowelle.com $elemhide! +munddusche.net $elemhide  + nasserver.org $elemhide" +netbooktest.net $elemhide# +portemonnaie.org $elemhide + pulsuhr.org $elemhide + +puppen.net $elemhide" +radixversand.de $elemhide + rasierer.com $elemhide# +rasierertest.com $elemhide% +rchubschrauber.net $elemhide + receiver.de $elemhide! +reiskocher.net $elemhide$ +rotlichtlampe.com $elemhide! +routertest.net $elemhide + rucksack.net $elemhide* +satellitenschuessel.com $elemhide! +schlafsack.net $elemhide# +schlafsessel.org $elemhide& +schnellkochtopf.org $elemhide + +schuhe.org $elemhide$ +seniorenhandy.com $elemhide + sitzbank.net $elemhide! +skateboard.org $elemhide) +smartphonevergleich.de $elemhide$ +sonnenschirme.org $elemhide* +spiegelreflexkamera.com $elemhide  + spielzeug.org $elemhide + stabmixer.de $elemhide" +staubsauger.net $elemhide' +steckdosenleiste.org $elemhide! +stehlampen.net $elemhide# +stereoanlage.org $elemhide# +tabletpctest.org $elemhide  + tagesbett.org $elemhide& +tageslichtlampe.com $elemhide" +tischtennis.net $elemhide( +tischtennisplatte.net $elemhide +uhr.net $elemhide + vasen.org $elemhide  + vergleich.org $elemhide$ +vertikutierer.org $elemhide' +vibrationsplatte.net $elemhide& +waeschetrockner.org $elemhide" +waffeleisen.org $elemhide! +wagenheber.net $elemhide$ +warenvergleich.de $elemhide$ +waschmaschine.net $elemhide$ +waschtrockner.net $elemhide# +wasserkocher.net $elemhide% +werkzeugkoffer.net $elemhide$ +wetterstation.net $elemhide# +winterreifen.net $elemhide + wintotal.de $elemhide" +wlandrucker.net $elemhide( +xn--bettwsche-z2a.net $elemhide( +xn--hrbcher-90a0d.org $elemhideèP +Û‚ *" + kabelfernsehen-kabelanschluss.de* +digitalkamera-testportal.com* +elektrowerkzeug-vergleich.de* +luftentfeuchtungsgeraete.net* +dvdfestplattenrecorder.org* +elektrischezahnbuerste.com* +ferngesteuerteautos.net* +longboard-einsteiger.de* +satellitenschuessel.com* +spiegelreflexkamera.com* +externe-festplatte.com* +gesellschaftsspiele.de* +induktionskochfeld.org* +smartphonevergleich.de* +xn--nhmaschine-q5a.org* +xn--nhmaschine-q5a.org* +tischtennisplatte.net* +xn--bettwsche-z2a.net* +xn--hrbcher-90a0d.org* +espressomaschine.com* +handyohnevertrag.net* +haushaltsgeraete.com* +steckdosenleiste.org* +vibrationsplatte.net* +aktenvernichter.org* +bewegungsmelder.com* +blurayplayertest.de* +brotbackautomat.org* +buegeleisentest.com* +ebookreadertest.net* +eckschreibtisch.org* +geschirrspueler.org* +handstaubsauger.net* +kriminalberatung.de* +lautsprechertest.de* +schnellkochtopf.org* +tageslichtlampe.com* +waeschetrockner.org* +espressokocher.org* +fahrradtaschen.net* +fitnessgeraete.org* +fussballschuhe.org* +gefrierschrank.net* +haushaltstipps.net* +hauswasserwerk.net* +klimmzugstange.net* +rchubschrauber.net* +werkzeugkoffer.net* +akkuschrauber.com* +boxspringbett.org* +de.smartwatch.org* +de.ventilator.org* +eiweisspulver.org* +ghettoblaster.org* +grafiktablett.net* +herrenanzuege.net* +kopfhoerertest.de* +rotlichtlampe.com* +seniorenhandy.com* +sonnenschirme.org* +vertikutierer.org* +warenvergleich.de* +waschmaschine.net* +waschtrockner.net* +wetterstation.net* +aschenbecher.com* +bohrmaschine.org* +crosstrainer.net* +de.subwoofer.net* +duschvorhang.org* +fenstersauger.de* +kronleuchter.org* +kuehlschrank.com* +luftmatratze.net* +portemonnaie.org* +rasierertest.com* +schlafsessel.org* +stereoanlage.org* +tabletpctest.org* +wasserkocher.net* +winterreifen.net* +buegeleisen.org* +computerbild.de* +fahrradhelm.org* +gartencenter.de* +heckenschere.de* +heizluefter.org* +kinderwagen.org* +netbooktest.net* +radixversand.de* +staubsauger.net* +tischtennis.net* +waffeleisen.org* +wlandrucker.net* +buerostuhl.net* +dampfgarer.org* +festplatte.com* +frontlader.org* +hantelbank.com* +hausschuhe.net* +kopfhoerer.com* +lattenrost.org* +lockenstab.com* +mikrowelle.com* +munddusche.net* +reiskocher.net* +routertest.net* +schlafsack.net* +skateboard.org* +stehlampen.net* +wagenheber.net* + autoradio.org* + babywippe.net* + bettdecke.org* + dvbtstick.net* + epilierer.org* + fernseher.org* + heimwerker.de* + laubsauger.de* + matratzen.org* + nasserver.org* + spielzeug.org* + tagesbett.org* + vergleich.org* + backofen.com* + batterie.org* + ergometer.de* + fernglas.net* + friteuse.org* + gasgrill.net* + kosmetik.org* + laufband.org* + rasierer.com* + rucksack.net* + sitzbank.net* + stabmixer.de* + babyfon.org* + braeter.org* + brillen.org* + cimodul.com* + dachbox.org* + fliesen.org* + hanteln.net* + headset.net* + pulsuhr.org* + receiver.de* + wintotal.de* + +balkon.com* + +dirndls.de* + +drohne.net* + +puppen.net* + +schuhe.org* + hosen.net* + vasen.org* + +zelt.org* +bild.de* +uhr.net08@Rgoogle.com/uds/ +Ùÿï*" + kabelfernsehen-kabelanschluss.de* +digitalkamera-testportal.com* +elektrowerkzeug-vergleich.de* +luftentfeuchtungsgeraete.net* +dvdfestplattenrecorder.org* +elektrischezahnbuerste.com* +ferngesteuerteautos.net* +longboard-einsteiger.de* +satellitenschuessel.com* +spiegelreflexkamera.com* +externe-festplatte.com* +gesellschaftsspiele.de* +induktionskochfeld.org* +smartphonevergleich.de* +xn--nhmaschine-q5a.org* +xn--nhmaschine-q5a.org* +tischtennisplatte.net* +xn--bettwsche-z2a.net* +xn--hrbcher-90a0d.org* +espressomaschine.com* +handyohnevertrag.net* +haushaltsgeraete.com* +steckdosenleiste.org* +vibrationsplatte.net* +aktenvernichter.org* +bewegungsmelder.com* +blurayplayertest.de* +brotbackautomat.org* +buegeleisentest.com* +ebookreadertest.net* +eckschreibtisch.org* +geschirrspueler.org* +handstaubsauger.net* +kriminalberatung.de* +lautsprechertest.de* +schnellkochtopf.org* +tageslichtlampe.com* +waeschetrockner.org* +espressokocher.org* +fahrradtaschen.net* +fitnessgeraete.org* +fussballschuhe.org* +gefrierschrank.net* +haushaltstipps.net* +hauswasserwerk.net* +klimmzugstange.net* +rchubschrauber.net* +werkzeugkoffer.net* +akkuschrauber.com* +boxspringbett.org* +de.smartwatch.org* +de.ventilator.org* +eiweisspulver.org* +ghettoblaster.org* +grafiktablett.net* +herrenanzuege.net* +kopfhoerertest.de* +rotlichtlampe.com* +seniorenhandy.com* +sonnenschirme.org* +vertikutierer.org* +warenvergleich.de* +waschmaschine.net* +waschtrockner.net* +wetterstation.net* +aschenbecher.com* +bohrmaschine.org* +crosstrainer.net* +de.subwoofer.net* +duschvorhang.org* +fenstersauger.de* +kronleuchter.org* +kuehlschrank.com* +luftmatratze.net* +portemonnaie.org* +rasierertest.com* +schlafsessel.org* +stereoanlage.org* +tabletpctest.org* +wasserkocher.net* +winterreifen.net* +buegeleisen.org* +computerbild.de* +fahrradhelm.org* +gartencenter.de* +heckenschere.de* +heizluefter.org* +kinderwagen.org* +netbooktest.net* +radixversand.de* +staubsauger.net* +tischtennis.net* +waffeleisen.org* +wlandrucker.net* +buerostuhl.net* +dampfgarer.org* +festplatte.com* +frontlader.org* +hantelbank.com* +hausschuhe.net* +kopfhoerer.com* +lattenrost.org* +lockenstab.com* +mikrowelle.com* +munddusche.net* +reiskocher.net* +routertest.net* +schlafsack.net* +skateboard.org* +stehlampen.net* +wagenheber.net* + autoradio.org* + babywippe.net* + bettdecke.org* + dvbtstick.net* + epilierer.org* + fernseher.org* + heimwerker.de* + laubsauger.de* + matratzen.org* + nasserver.org* + spielzeug.org* + tagesbett.org* + vergleich.org* + backofen.com* + batterie.org* + ergometer.de* + fernglas.net* + friteuse.org* + gasgrill.net* + kosmetik.org* + laufband.org* + rasierer.com* + rucksack.net* + sitzbank.net* + stabmixer.de* + babyfon.org* + braeter.org* + brillen.org* + cimodul.com* + dachbox.org* + fliesen.org* + hanteln.net* + headset.net* + pulsuhr.org* + receiver.de* + wintotal.de* + +balkon.com* + +dirndls.de* + +drohne.net* + +puppen.net* + +schuhe.org* + hosen.net* + vasen.org* + +zelt.org* +bild.de* +uhr.net08@Rgoogle.com/ads +M‚ * + coursary.com* + blumble.com* + +jobs77.com08@Rgoogle.com/uds/ +Kÿï* + coursary.com* + blumble.com* + +jobs77.com08@Rgoogle.com/ads +ß‚ * +searcheducationinfo.com* +topfinanceanswers.com* +findtop10degrees.com* +searchtravelinfo.com* +topresultssearch.com* +quicktravelinfo.com* +findbestresults.co* +searchfindshop.com08@Rgoogle.com/uds/ +Ýÿï* +searcheducationinfo.com* +topfinanceanswers.com* +findtop10degrees.com* +searchtravelinfo.com* +topresultssearch.com* +quicktravelinfo.com* +findbestresults.co* +searchfindshop.com08@Rgoogle.com/ads +k‚ * +discountscat.com* +couponsgood.com* +dealspluses.com* + savingabc.com08@Rgoogle.com/uds/ +iÿï* +discountscat.com* +couponsgood.com* +dealspluses.com* + savingabc.com08@Rgoogle.com/ads +8‚ * +travelresultsnow.com08@Rgoogle.com/uds/ +6ÿï* +travelresultsnow.com08@Rgoogle.com/ads +H‚ * +elclasificado.com* +quinceanera.com08@Rgoogle.com/uds/ +Fÿï* +elclasificado.com* +quinceanera.com08@Rgoogle.com/ads +}‚ * +smartinvestideas.com* +toptravelresults.com* +top10dealstoday.com* +nextjobdegrees.com08@Rgoogle.com/uds/ +{ÿï* +smartinvestideas.com* +toptravelresults.com* +top10dealstoday.com* +nextjobdegrees.com08@Rgoogle.com/ads +O‚ * +infoabouttomorrow.com* +bestdiscoveries.co08@Rgoogle.com/uds/ +Mÿï* +infoabouttomorrow.com* +bestdiscoveries.co08@Rgoogle.com/ads +`‚ * +myinvestmentplan.net* +thebestwefind.com* +driversworld.co08@Rgoogle.com/uds/ +^ÿï* +myinvestmentplan.net* +thebestwefind.com* +driversworld.co08@Rgoogle.com/ads +§&* +jpwebsearch.mixrooms.com* +websearch.mixrooms.com* +desearch.mixrooms.com* +ensearch.mixrooms.com* +tw.mixrooms.com* + feebee.com.tw08@R sitemaji.com^ +Ê‚ * +jpwebsearch.mixrooms.com* +websearch.mixrooms.com* +desearch.mixrooms.com* +ensearch.mixrooms.com* +readytodistribute.com* +toplocaltours.com* +driversgalaxy.co08@Rgoogle.com/uds/ +Èÿï* +jpwebsearch.mixrooms.com* +websearch.mixrooms.com* +desearch.mixrooms.com* +ensearch.mixrooms.com* +readytodistribute.com* +toplocaltours.com* +driversgalaxy.co08@Rgoogle.com/ads +N‚ * +besttraveldestinations.co* + autosworld.co08@Rgoogle.com/uds/ +Lÿï* +besttraveldestinations.co* + autosworld.co08@Rgoogle.com/ads) +xn--nhmaschine-q5a.org $elemhide) +xn--nhmaschine-q5a.org $elemhide +zelt.org $elemhide + blumble.com $elemhide + coursary.com $elemhide + +jobs77.com $elemhide% +findbestresults.co $elemhide' +findtop10degrees.com $elemhide& +quicktravelinfo.com $elemhide* +searcheducationinfo.com $elemhide% +searchfindshop.com $elemhide' +searchtravelinfo.com $elemhide( +topfinanceanswers.com $elemhide' +topresultssearch.com $elemhide" +couponsgood.com $elemhide" +dealspluses.com $elemhide# +discountscat.com $elemhide  + savingabc.com $elemhide' +travelresultsnow.com $elemhide$ +elclasificado.com $elemhide" +quinceanera.com $elemhide% +nextjobdegrees.com $elemhide' +smartinvestideas.com $elemhide& +top10dealstoday.com $elemhide' +toptravelresults.com $elemhide% +bestdiscoveries.co $elemhide( +infoabouttomorrow.com $elemhide" +driversworld.co $elemhide' +myinvestmentplan.net $elemhide$ +thebestwefind.com $elemhide( +desearch.mixrooms.com $elemhide# +driversgalaxy.co $elemhide( +ensearch.mixrooms.com $elemhide+ +jpwebsearch.mixrooms.com $elemhide( +readytodistribute.com $elemhide$ +toplocaltours.com $elemhide) +websearch.mixrooms.com $elemhide  + autosworld.co $elemhide, +besttraveldestinations.co $elemhide! +allvehicles.co $elemhide + biggo.biz.id $elemhide‰ +è‚ * +topbrandsforyou.com* +financeinfonow.com* +allvehicles.co* +hk.mixrent.com* +rakuten.com.tw* +tw.mixrent.com* + biggo.biz.id* + biggo.biz.vn* + biggo.com.tw* + id.biggo.com* + it.biggo.com* + biggo.co.in* + biggo.co.th* + mixrent.com* + +ltn.com.tw* + +biggo.hk* + +biggo.id* + +biggo.jp* + +biggo.my* + +biggo.ph* + +biggo.sg08@Rgoogle.com/uds/ +æÿï* +topbrandsforyou.com* +financeinfonow.com* +allvehicles.co* +hk.mixrent.com* +rakuten.com.tw* +tw.mixrent.com* + biggo.biz.id* + biggo.biz.vn* + biggo.com.tw* + id.biggo.com* + it.biggo.com* + biggo.co.in* + biggo.co.th* + mixrent.com* + +ltn.com.tw* + +biggo.hk* + +biggo.id* + +biggo.jp* + +biggo.my* + +biggo.ph* + +biggo.sg08@Rgoogle.com/ads +]‚ * +easilydiscover.com* +findyouranswers.co* + infotoask.com08@Rgoogle.com/uds/ +[ÿï* +easilydiscover.com* +findyouranswers.co* + infotoask.com08@Rgoogle.com/ads +d‚ * +hellowork.careers* + q-jin.careers* + abi-navi.jp* + q-jin.ne.jp08@Rgoogle.com/uds/ +bÿï* +hellowork.careers* + q-jin.careers* + abi-navi.jp* + q-jin.ne.jp08@Rgoogle.com/ads +.‚ * + +app-liv.jp08@Rgoogle.com/uds/ +3ÿï* + +app-liv.jp08@Rgoogle.com/cse_v2/ads +™‚ * +vouchergains.co.uk* +symptomfind.com* +promopro.co.uk* + savings.co.jp* + hotdeals.com* + coupert.com* + +mydeals.jp08@Rgoogle.com/uds/ +—ÿï* +vouchergains.co.uk* +symptomfind.com* +promopro.co.uk* + savings.co.jp* + hotdeals.com* + coupert.com* + +mydeals.jp08@Rgoogle.com/ads +I‚ * +expertsonpets.com* +askdailyquiz.com08@Rgoogle.com/uds/ +Gÿï* +expertsonpets.com* +askdailyquiz.com08@Rgoogle.com/ads +†‚ * + receptix.com* + receptix.uk* + receptix.us* + +jnee.com* +jnee.de* +jnee.in* +jnee.uk* +jnee.us08@Rgoogle.com/uds/ +„ÿï* + receptix.com* + receptix.uk* + receptix.us* + +jnee.com* +jnee.de* +jnee.in* +jnee.uk* +jnee.us08@Rgoogle.com/ads + biggo.biz.vn $elemhide + biggo.co.in $elemhide + biggo.co.th $elemhide + biggo.com.tw $elemhide +biggo.hk $elemhide +biggo.id $elemhide +biggo.jp $elemhide +biggo.my $elemhide +biggo.ph $elemhide +biggo.sg $elemhide% +financeinfonow.com $elemhide! +hk.mixrent.com $elemhide + id.biggo.com $elemhide + it.biggo.com $elemhide + +ltn.com.tw $elemhide + mixrent.com $elemhide! +rakuten.com.tw $elemhide& +topbrandsforyou.com $elemhide! +tw.mixrent.com $elemhide% +easilydiscover.com $elemhide% +findyouranswers.co $elemhide  + infotoask.com $elemhide + abi-navi.jp $elemhide$ +hellowork.careers $elemhide  + q-jin.careers $elemhide + q-jin.ne.jp $elemhide + +app-liv.jp $elemhide + coupert.com $elemhide + hotdeals.com $elemhide + +mydeals.jp $elemhide! +promopro.co.uk $elemhide  + savings.co.jp $elemhide" +symptomfind.com $elemhide% +vouchergains.co.uk $elemhide# +askdailyquiz.com $elemhide$ +expertsonpets.com $elemhide +jnee.com $elemhide +jnee.de $elemhide +jnee.in $elemhide +jnee.uk $elemhide +jnee.us $elemhide + receptix.com $elemhide + receptix.uk $elemhide + receptix.us $elemhide + +56m.cc $elemhide + airfind.com $elemhide# +budgetmobile.com $elemhide" +dailyweather.io $elemhide$ +lifewireless.mobi $elemhide +msrch.io $elemhide¡ +é‚ * +portal.uscellular.com* +pagepluscellular.com* +myfamilymobile.com* +lifewireless.mobi* +theweathernews.co* +totalwireless.com* +budgetmobile.com* +simplemobile.com* +straighttalk.com* +dailyweather.io* +searchportal.co* +webbrowser.mobi* +swiftsearch.co* +truconnect.com* + my-browser.co* + thesearch.xyz* + safelink.com* + tracfone.com* + airfind.com* + myonline.io* + +mysrch.net* + net10.com* + srch.mobi* + +msrch.io* + +wcha.com* +56m.cc08@Rgoogle.com/uds/ +çÿï* +portal.uscellular.com* +pagepluscellular.com* +myfamilymobile.com* +lifewireless.mobi* +theweathernews.co* +totalwireless.com* +budgetmobile.com* +simplemobile.com* +straighttalk.com* +dailyweather.io* +searchportal.co* +webbrowser.mobi* +swiftsearch.co* +truconnect.com* + my-browser.co* + thesearch.xyz* + safelink.com* + tracfone.com* + airfind.com* + myonline.io* + +mysrch.net* + net10.com* + srch.mobi* + +msrch.io* + +wcha.com* +56m.cc08@Rgoogle.com/ads +a‚ * + conrad.at* + conrad.ch* + conrad.cz* + conrad.de* + conrad.pl08@Rgoogle.com/uds/ +_ÿï* + conrad.at* + conrad.ch* + conrad.cz* + conrad.de* + conrad.pl08@Rgoogle.com/ads +º‚ * +postofficerecruitment.com* +rrbrailwayrecruitment.in* +allgovernmentjobs.in* +buscasencuentras.net* +govtjobs99.com* + freshers9.com* + +newspic.kr08@Rgoogle.com/uds/ +¸ÿï* +postofficerecruitment.com* +rrbrailwayrecruitment.in* +allgovernmentjobs.in* +buscasencuentras.net* +govtjobs99.com* + freshers9.com* + +newspic.kr08@Rgoogle.com/ads +8‚ * +safesearch.avira.com08@Rgoogle.com/uds/ +6ÿï* +safesearch.avira.com08@Rgoogle.com/ads +œ‚ * +itpassportsiken.com* +freegame-100.com* +freesoft-100.com* +graphicsgale.com* +maukameadows.net* +takken-siken.com* +typing.twi1.me* + fp1-siken.com* + fp2-siken.com* + fp3-siken.com* + shisensho.net* + sp.e-words.jp* + ap-siken.com* + collepic.net* + db-siken.com* + fe-siken.com* + greensnap.jp* + metapedia.jp* + sc-siken.com* + sg-siken.com* + +e-words.jp* + +horti.jp08@Rgoogle.com/uds/  + my-browser.co $elemhide% +myfamilymobile.com $elemhide + myonline.io $elemhide + +mysrch.net $elemhide + net10.com $elemhide' +pagepluscellular.com $elemhide( +portal.uscellular.com $elemhide + safelink.com $elemhide" +searchportal.co $elemhide# +simplemobile.com $elemhide + srch.mobi $elemhide# +straighttalk.com $elemhide! +swiftsearch.co $elemhide  + thesearch.xyz $elemhide$ +theweathernews.co $elemhide$ +totalwireless.com $elemhide + tracfone.com $elemhide! +truconnect.com $elemhide +wcha.com $elemhide" +webbrowser.mobi $elemhide + conrad.at $elemhide + conrad.ch $elemhide + conrad.cz $elemhide + conrad.de $elemhide + conrad.pl $elemhide' +allgovernmentjobs.in $elemhide' +buscasencuentras.net $elemhide  + freshers9.com $elemhide! +govtjobs99.com $elemhide + +newspic.kr $elemhide, +postofficerecruitment.com $elemhide+ +rrbrailwayrecruitment.in $elemhide' +safesearch.avira.com $elemhide + ap-siken.com $elemhide + collepic.net $elemhide + db-siken.com $elemhide + +e-words.jp $elemhide + fe-siken.com $elemhide  + fp1-siken.com $elemhide  + fp2-siken.com $elemhide  + fp3-siken.com $elemhide# +freegame-100.com $elemhide# +freesoft-100.com $elemhide# +graphicsgale.com $elemhide + greensnap.jp $elemhide +horti.jp $elemhide& +itpassportsiken.com $elemhide# +maukameadows.net $elemhide + metapedia.jp $elemhide + sc-siken.com $elemhide + sg-siken.com $elemhide  + shisensho.net $elemhide  + sp.e-words.jp $elemhide# +takken-siken.com $elemhide! +typing.twi1.me $elemhideç +šÿï* +itpassportsiken.com* +freegame-100.com* +freesoft-100.com* +graphicsgale.com* +maukameadows.net* +takken-siken.com* +typing.twi1.me* + fp1-siken.com* + fp2-siken.com* + fp3-siken.com* + shisensho.net* + sp.e-words.jp* + ap-siken.com* + collepic.net* + db-siken.com* + fe-siken.com* + greensnap.jp* + metapedia.jp* + sc-siken.com* + sg-siken.com* + +e-words.jp* + +horti.jp08@Rgoogle.com/ads +3‚ * +cercoetrovo.net08@Rgoogle.com/uds/ +1ÿï* +cercoetrovo.net08@Rgoogle.com/ads +‰‚ * +dailysquared.com* +manualsfile.com* +loginnotes.com* + pupperish.com* + zmanuals.com* + postize.com08@Rgoogle.com/uds/ +‡ÿï* +dailysquared.com* +manualsfile.com* +loginnotes.com* + pupperish.com* + zmanuals.com* + postize.com08@Rgoogle.com/ads +U‚ * + +881.com.hk* + +881903.com* + my903.com* + +crhk.com08@Rgoogle.com/uds/ +Sÿï* + +881.com.hk* + +881903.com* + my903.com* + +crhk.com08@Rgoogle.com/ads +]‚ * +findyouranswers.net* +discovertoday.co* +bestoftoday.co08@Rgoogle.com/uds/ +[ÿï* +findyouranswers.net* +discovertoday.co* +bestoftoday.co08@Rgoogle.com/ads +g‚ * +everymantravel.com* +searchitweb.com* + autospath.com* + mydeal.io08@Rgoogle.com/uds/ +eÿï* +everymantravel.com* +searchitweb.com* + autospath.com* + mydeal.io08@Rgoogle.com/ads +5‚ * +findresultsnow.co08@Rgoogle.com/uds/ +3ÿï* +findresultsnow.co08@Rgoogle.com/ads +S‚ * +poemhunter.com* + sondakika.com* + haberler.com08@Rgoogle.com/uds/ +Qÿï* +poemhunter.com* + sondakika.com* + haberler.com08@Rgoogle.com/ads +B‚ * +discuss.com.hk* + price.com.hk08@Rgoogle.com/uds/ +@ÿï* +discuss.com.hk* + price.com.hk08@Rgoogle.com/ads + ‚ * +xn--8wv97xz6xo7h.online* +publishersglobal.com* +html5gameportal.com* +parentssquare.com* +gari-wasabi.com* +golf-lesson.net* +nurseslabs.com* + studiorag.com* + cube-soft.jp* + eigo-abc.com* + dmitory.com* + +01dart.com* + +pitara.com* + fx-in.net08@Rgoogle.com/uds/ +žÿï* +xn--8wv97xz6xo7h.online* +publishersglobal.com* +html5gameportal.com* +parentssquare.com* +gari-wasabi.com* +golf-lesson.net* +nurseslabs.com* + studiorag.com* + cube-soft.jp* + eigo-abc.com* + dmitory.com* + +01dart.com* + +pitara.com* + fx-in.net08@Rgoogle.com/ads +C‚ * +couponupto.com* + couponxoo.com08@Rgoogle.com/uds/ +Aÿï* +couponupto.com* + couponxoo.com08@Rgoogle.com/ads" +cercoetrovo.net $elemhide# +dailysquared.com $elemhide! +loginnotes.com $elemhide" +manualsfile.com $elemhide + postize.com $elemhide  + pupperish.com $elemhide + zmanuals.com $elemhide + +881.com.hk $elemhide + +881903.com $elemhide +crhk.com $elemhide + my903.com $elemhide! +bestoftoday.co $elemhide# +discovertoday.co $elemhide& +findyouranswers.net $elemhide  + autospath.com $elemhide% +everymantravel.com $elemhide + mydeal.io $elemhide" +searchitweb.com $elemhide$ +findresultsnow.co $elemhide + haberler.com $elemhide! +poemhunter.com $elemhide  + sondakika.com $elemhide  $elemhide  $elemhide + +01dart.com $elemhide + cube-soft.jp $elemhide + dmitory.com $elemhide + eigo-abc.com $elemhide + fx-in.net $elemhide" +gari-wasabi.com $elemhide" +golf-lesson.net $elemhide& +html5gameportal.com $elemhide! +nurseslabs.com $elemhide$ +parentssquare.com $elemhide + +pitara.com $elemhide' +publishersglobal.com $elemhide  + studiorag.com $elemhide* +xn--8wv97xz6xo7h.online $elemhide! +couponupto.com $elemhide  + couponxoo.com $elemhide + 00keiei.com $elemhide$ +career.guru99.com $elemhide" +careergarden.jp $elemhideý +¿‚ * +localbusinessguide.com.au* +hellowork-search.careers* +xn--swqwd788bm2jy17d.net* +xn--swqwdp22azlcvue.biz* +iwantthatflight.com.au* +iknowthepilot.com.au* +unlockpassword99.com* +kaisha-mechanic.com* +pharmaguideline.com* +career.guru99.com* +line-howtouse.net* +mansion-review.jp* +myshopping.com.au* +careergarden.jp* +jinko-watch.com* +nensyu-labo.com* +rewardia.com.au* +shikaku-fan.net* +coupongini.com* +jobhuntley.com* +rewardia.co.nz* + inter-edu.com* + fusui-do.com* + rewardia.com* + 00keiei.com* + +guru99.com08@Rgoogle.com/uds/ +½ÿï* +localbusinessguide.com.au* +hellowork-search.careers* +xn--swqwd788bm2jy17d.net* +xn--swqwdp22azlcvue.biz* +iwantthatflight.com.au* +iknowthepilot.com.au* +unlockpassword99.com* +kaisha-mechanic.com* +pharmaguideline.com* +career.guru99.com* +line-howtouse.net* +mansion-review.jp* +myshopping.com.au* +careergarden.jp* +jinko-watch.com* +nensyu-labo.com* +rewardia.com.au* +shikaku-fan.net* +coupongini.com* +jobhuntley.com* +rewardia.co.nz* + inter-edu.com* + fusui-do.com* + rewardia.com* + 00keiei.com* + +guru99.com08@Rgoogle.com/ads +6‚ * +discoverthebest.co08@Rgoogle.com/uds/ +4ÿï* +discoverthebest.co08@Rgoogle.com/ads! +coupongini.com $elemhide + fusui-do.com $elemhide + +guru99.com $elemhide+ +hellowork-search.careers $elemhide' +iknowthepilot.com.au $elemhide  + inter-edu.com $elemhide) +iwantthatflight.com.au $elemhide" +jinko-watch.com $elemhide! +jobhuntley.com $elemhide& +kaisha-mechanic.com $elemhide$ +line-howtouse.net $elemhide, +localbusinessguide.com.au $elemhide$ +mansion-review.jp $elemhide$ +myshopping.com.au $elemhide" +nensyu-labo.com $elemhide& +pharmaguideline.com $elemhide! +rewardia.co.nz $elemhide + rewardia.com $elemhide" +rewardia.com.au $elemhide" +shikaku-fan.net $elemhide' +unlockpassword99.com $elemhide* +xn--swqwdp22azlcvue.biz $elemhide+ +xn--swqwd788bm2jy17d.net $elemhide% +discoverthebest.co $elemhide! +aceshowbiz.com $elemhide! +agrifarming.in $elemhide$ +calibre-ebook.com $elemhide + cekresi.com $elemhide + cektarif.com $elemhide  + chordtela.com $elemhide# +codebeautify.org $elemhide  + cyberciti.biz $elemhide! +designtaxi.com $elemhide" +emedihealth.com $elemhide + entabe.jp $elemhide! +internetcom.jp $elemhide# +gardeningtips.in $elemhide! +herstory.co.id $elemhide$ +inceptivemind.com $elemhide + jobkaka.com $elemhide + jobs.com.sg $elemhide + +jobsdb.com $elemhide + jobstreet.vn $elemhide +jora.com $elemhide$ +jsonformatter.org $elemhide + +labnol.org $elemhide + dictation.io $elemhide +lbpo.com $elemhide+ +managementstudyguide.com $elemhide) +onlinedataentryjob.com $elemhide) +onlinemathlearning.com $elemhide# +paralleldesk.com $elemhide + +populis.id $elemhide  + sabhijobs.com $elemhide! +saishiridi.com $elemhide* +softwaretestinghelp.com $elemhide + team-bhp.com $elemhide$ +techexplorist.com $elemhide  + techwiser.com $elemhide( +thebelltowertimes.com $elemhideì* +µ‚ * +managementstudyguide.com* +softwaretestinghelp.com* +onlinedataentryjob.com* +onlinemathlearning.com* +thebelltowertimes.com* +top10homeremedies.com* +themindsjournal.com* +wartaekonomi.co.id* +calibre-ebook.com* +inceptivemind.com* +jsonformatter.org* +techexplorist.com* +thehackernews.com* +thehairstyler.com* +codebeautify.org* +gardeningtips.in* +paralleldesk.com* +emedihealth.com* +aceshowbiz.com* +agrifarming.in* +designtaxi.com* +herstory.co.id* +internetcom.jp* +saishiridi.com* +tideschart.com* + chordtela.com* + cyberciti.biz* + sabhijobs.com* + techwiser.com* + cektarif.com* + dictation.io* + jobstreet.vn* + team-bhp.com* + cekresi.com* + jobkaka.com* + jobs.com.sg* + +jobsdb.com* + +labnol.org* + +populis.id* + entabe.jp* + +jora.com* + +lbpo.com08@Rgoogle.com/uds/ +³ÿï* +managementstudyguide.com* +softwaretestinghelp.com* +onlinedataentryjob.com* +onlinemathlearning.com* +thebelltowertimes.com* +top10homeremedies.com* +themindsjournal.com* +wartaekonomi.co.id* +calibre-ebook.com* +inceptivemind.com* +jsonformatter.org* +techexplorist.com* +thehackernews.com* +thehairstyler.com* +codebeautify.org* +gardeningtips.in* +paralleldesk.com* +emedihealth.com* +aceshowbiz.com* +agrifarming.in* +designtaxi.com* +herstory.co.id* +internetcom.jp* +saishiridi.com* +tideschart.com* + chordtela.com* + cyberciti.biz* + sabhijobs.com* + techwiser.com* + cektarif.com* + dictation.io* + jobstreet.vn* + team-bhp.com* + cekresi.com* + jobkaka.com* + jobs.com.sg* + +jobsdb.com* + +labnol.org* + +populis.id* + entabe.jp* + +jora.com* + +lbpo.com08@Rgoogle.com/ads +æ‚ * +kidsmathgamesonline.com* +bettereducation.com.au* +airlines-airports.com* +thebestsingapore.com* +funenglishgames.com* +sciencekids.co.nz* +theindependent.sg* + hongkiat.com* + teachoo.com08@Rgoogle.com/uds/ +äÿï* +kidsmathgamesonline.com* +bettereducation.com.au* +airlines-airports.com* +thebestsingapore.com* +funenglishgames.com* +sciencekids.co.nz* +theindependent.sg* + hongkiat.com* + teachoo.com08@Rgoogle.com/ads +Q‚ * +explorethebesttoday.com* +greatselections.co08@Rgoogle.com/uds/ +Oÿï* +explorethebesttoday.com* +greatselections.co08@Rgoogle.com/ads +/‚ * + goguynet.jp08@Rgoogle.com/uds/ +-ÿï* + goguynet.jp08@Rgoogle.com/ads +ª‚ * +alldaycomforts.com* +givemeanswers.net* +seekinfofast.com* +whatnextinfo.com* +exploretoday.co* +findquickly.net* + answersme.net08@Rgoogle.com/uds/ +¨ÿï* +alldaycomforts.com* +givemeanswers.net* +seekinfofast.com* +whatnextinfo.com* +exploretoday.co* +findquickly.net* + answersme.net08@Rgoogle.com/ads +5‚ * +thehealthfeed.com08@Rgoogle.com/uds/ +3ÿï* +thehealthfeed.com08@Rgoogle.com/ads +á‚ * +bluearchive.wikiru.jp* +arknights.wikiru.jp* +ixagno.blog.fc2.com* +azurlane.wikiru.jp* +geniecourse.com* +hello-work.info* +jetsodeals.com* + neutralx0.net* + typingerz.com* + dealcado.com* + gigazine.net* + rentcado.com* + typingx0.net* + web-jong.com* + hanihoh.com* + recruit.net* + sushida.net* + iscle.com08@Rgoogle.com/uds/ +ßÿï* +bluearchive.wikiru.jp* +arknights.wikiru.jp* +ixagno.blog.fc2.com* +azurlane.wikiru.jp* +geniecourse.com* +hello-work.info* +jetsodeals.com* + neutralx0.net* + typingerz.com* + dealcado.com* + gigazine.net* + rentcado.com* + typingx0.net* + web-jong.com* + hanihoh.com* + recruit.net* + sushida.net* + iscle.com08@Rgoogle.com/ads +b‚ * +alfalfalfa.com* + gpoint.co.jp* + itojisan.xyz* + kakomonn.com08@Rgoogle.com/uds/ +`ÿï* +alfalfalfa.com* + gpoint.co.jp* + itojisan.xyz* + kakomonn.com08@Rgoogle.com/ads$ +thehackernews.com $elemhide$ +thehairstyler.com $elemhide& +themindsjournal.com $elemhide! +tideschart.com $elemhide( +top10homeremedies.com $elemhide% +wartaekonomi.co.id $elemhide( +airlines-airports.com $elemhide) +bettereducation.com.au $elemhide& +funenglishgames.com $elemhide + hongkiat.com $elemhide* +kidsmathgamesonline.com $elemhide$ +sciencekids.co.nz $elemhide + teachoo.com $elemhide' +thebestsingapore.com $elemhide$ +theindependent.sg $elemhide* +explorethebesttoday.com $elemhide% +greatselections.co $elemhide + goguynet.jp $elemhide% +alldaycomforts.com $elemhide  + answersme.net $elemhide" +exploretoday.co $elemhide" +findquickly.net $elemhide$ +givemeanswers.net $elemhide# +seekinfofast.com $elemhide# +whatnextinfo.com $elemhide$ +thehealthfeed.com $elemhide& +arknights.wikiru.jp $elemhide% +azurlane.wikiru.jp $elemhide( +bluearchive.wikiru.jp $elemhide + dealcado.com $elemhide" +geniecourse.com $elemhide + gigazine.net $elemhide + hanihoh.com $elemhide" +hello-work.info $elemhide + iscle.com $elemhide& +ixagno.blog.fc2.com $elemhide! +jetsodeals.com $elemhide  + neutralx0.net $elemhide + recruit.net $elemhide + rentcado.com $elemhide + sushida.net $elemhide  + typingerz.com $elemhide + typingx0.net $elemhide + web-jong.com $elemhide! +alfalfalfa.com $elemhide + gpoint.co.jp $elemhide + itojisan.xyz $elemhide + kakomonn.com $elemhideÎ +3ÿï08@R#afs.googlesyndication.com^*adsense^ +4€ 08@R#afs.googlesyndication.com^*afs/ads^ +3ÿï08@R#afs.googlesyndication.com^*afs/ads^ +7ÿï08@R'afs.googlesyndication.com^*afs/gen_204? +4ÿï08@R$adsensecustomsearchads.com^*adsense^ +5€ 08@R$adsensecustomsearchads.com^*afs/ads^ +4ÿï08@R$adsensecustomsearchads.com^*afs/ads^ +8ÿï08@R(adsensecustomsearchads.com^*afs/gen_204? +/ÿï08@Rsyndicatedsearch.goog^*adsense^ +0€ 08@Rsyndicatedsearch.goog^*afs/ads^ +/ÿï08@Rsyndicatedsearch.goog^*afs/ads^ +3ÿï08@R#syndicatedsearch.goog^*afs/gen_204? +C€ 08@R2syndicatedsearch.goog^*/ads?adsafe=*=uds_ads_only& +†‚ * +hobrothertv.tistory.com* +thebestlife.co.kr* +m.edaily.co.kr* +xportsnews.com* + etoland.co.kr* + m.wowtv.co.kr* + ivancity.com* + issuein.org* + m.ygosu.com* + +2cpu.co.kr* + +fnnews.com* + hlight.kr* + ygosu.com* + +rgo4.com08@Rgoogle.com/uds/ +„ÿï* +hobrothertv.tistory.com* +thebestlife.co.kr* +m.edaily.co.kr* +xportsnews.com* + etoland.co.kr* + m.wowtv.co.kr* + ivancity.com* + issuein.org* + m.ygosu.com* + +2cpu.co.kr* + +fnnews.com* + hlight.kr* + ygosu.com* + +rgo4.com08@Rgoogle.com/ads +u‚ * +sorularcevaplar.net* +onlaindabbyeon.com* +szukamznajduje.com* +akumencari.com08@Rgoogle.com/uds/ +sÿï* +sorularcevaplar.net* +onlaindabbyeon.com* +szukamznajduje.com* +akumencari.com08@Rgoogle.com/ads +6‚ * +yellowpages.com.au08@Rgoogle.com/uds/ +4ÿï* +yellowpages.com.au08@Rgoogle.com/ads +0‚ * + rome2rio.com08@Rgoogle.com/uds/ +.ÿï* + rome2rio.com08@Rgoogle.com/ads +/‚ * + history.com08@Rgoogle.com/uds/ +-ÿï* + history.com08@Rgoogle.com/ads +4‚ * +kleinanzeigen.de08@Rgoogle.com/uds/ +2ÿï* +kleinanzeigen.de08@Rgoogle.com/ads +7ÿï* + youtube.com08@Rwww.google.*/pagead/lvz^ +0$* + youtube.com08@Ryoutube.com/pagead^ +>* + youtube.com08@R!tpc.googlesyndication.com/simgad^ +I* + youtube.com08@R,static.doubleclick.net/instream/ad_status.js +Dÿï* + youtube.com08@R%googleads.g.doubleclick.net/pagead/id + +2cpu.co.kr $elemhide  + etoland.co.kr $elemhide + +fnnews.com $elemhide + hlight.kr $elemhide* +hobrothertv.tistory.com $elemhide + issuein.org $elemhide + ivancity.com $elemhide! +m.edaily.co.kr $elemhide  + m.wowtv.co.kr $elemhide + m.ygosu.com $elemhide +rgo4.com $elemhide$ +thebestlife.co.kr $elemhide! +xportsnews.com $elemhide + ygosu.com $elemhide! +akumencari.com $elemhide% +onlaindabbyeon.com $elemhide& +sorularcevaplar.net $elemhide% +szukamznajduje.com $elemhide% +yellowpages.com.au $elemhide + history.com $elemhide' +kleinanzeigen.de#home-billboard* +kleinanzeigen.de.j-liberty-wrapper. +kleinanzeigen.de#brws_banner-supersize& +kleinanzeigen.de#btf-billboard + youtube.com $elemhide" +search.1und1.de $elemhide! +suche.1und1.de $elemhide + suche.gmx.at $elemhide + suche.gmx.ch $elemhide# +search.gmx.co.uk $elemhide! +search.gmx.com $elemhide  + search.gmx.es $elemhide  + search.gmx.fr $elemhide  + suche.gmx.net $elemhideˆ" +�‚ * + gmx.co.uk* + +1und1.de* + +mail.com* +gmx.com* +gmx.net* +gmx.at* +gmx.ch* +gmx.es* +gmx.fr* +web.de08@Rgoogle.com/uds/ +‹ÿï* + gmx.co.uk* + +1und1.de* + +mail.com* +gmx.com* +gmx.net* +gmx.at* +gmx.ch* +gmx.es* +gmx.fr* +web.de08@Rgoogle.com/ads +¢‚ * +Bestentertainmentspot.com* +Thriftyshopperguide.com* +Traveltrendstoday.com* +discoverysearcher.com* +Consumeradvisor.net* +Smarthomestyler.com* +firstratesearch.com* +1000apantiseis.net* +Lifestylegoals.net* +Techedgetrends.com* +Questionsshop.com* +questionszone.com* +quickerfinder.com* +answersspace.com* +cautsigasesc.net* +Budgetsmart.net* +natagpuanko.net* +Tasteyeats.com* + jaghittar.net* + jegfinder.net* + jegfinner.net* + sayajumpa.net* + wozaizhao.net* + khumphb.net* + +ikvind.net08@Rgoogle.com/uds/ + ÿï* +Bestentertainmentspot.com* +Thriftyshopperguide.com* +Traveltrendstoday.com* +discoverysearcher.com* +Consumeradvisor.net* +Smarthomestyler.com* +firstratesearch.com* +1000apantiseis.net* +Lifestylegoals.net* +Techedgetrends.com* +Questionsshop.com* +questionszone.com* +quickerfinder.com* +answersspace.com* +cautsigasesc.net* +Budgetsmart.net* +natagpuanko.net* +Tasteyeats.com* + jaghittar.net* + jegfinder.net* + jegfinner.net* + sayajumpa.net* + wozaizhao.net* + khumphb.net* + +ikvind.net08@Rgoogle.com/ads +<ÿï* + infotoss.com* + +mytips.com08@Rgoogle.com/ads +>‚ * + infotoss.com* + +mytips.com08@Rgoogle.com/uds/ +H‚ * +infotodiscover.com* +infotofind.com08@Rgoogle.com/uds/ +Fÿï* +infotodiscover.com* +infotofind.com08@Rgoogle.com/ads +œ‚ * +fingertipresources.com* +findyouranswers.io* +searchmastery.net* +answersifter.com* +questionhero.io* + askgenius.co08@Rgoogle.com/uds/ +šÿï* +fingertipresources.com* +findyouranswers.io* +searchmastery.net* +answersifter.com* +questionhero.io* + askgenius.co08@Rgoogle.com/ads +P‚ * +userquestionsquad.com* +queryresponders.com08@Rgoogle.com/uds/ +Nÿï* +userquestionsquad.com* +queryresponders.com08@Rgoogle.com/ads +w‚ * +e-everythingguide.com* +answerguruzone.com* +askdigitallife.com* +answerpedia.co08@Rgoogle.com/uds/ +uÿï* +e-everythingguide.com* +answerguruzone.com* +askdigitallife.com* +answerpedia.co08@Rgoogle.com/ads +�‚ * +onestopdigitalinfo.com* +onestopinfosource.com* +expertadvicehub.com* +seekwebwisdom.com* + querywhiz.net08@Rgoogle.com/uds/! +search.gmx.net $elemhide" +search.mail.com $elemhide + suche.web.de $elemhide% +1000apantiseis.net $elemhide, +bestentertainmentspot.com $elemhide" +budgetsmart.net $elemhide& +consumeradvisor.net $elemhide% +lifestylegoals.net $elemhide$ +questionsshop.com $elemhide& +smarthomestyler.com $elemhide! +tasteyeats.com $elemhide% +techedgetrends.com $elemhide* +thriftyshopperguide.com $elemhide( +traveltrendstoday.com $elemhide# +answersspace.com $elemhide# +cautsigasesc.net $elemhide( +discoverysearcher.com $elemhide& +firstratesearch.com $elemhide + +ikvind.net $elemhide  + jaghittar.net $elemhide  + jegfinder.net $elemhide  + jegfinner.net $elemhide + khumphb.net $elemhide" +natagpuanko.net $elemhide$ +questionszone.com $elemhide$ +quickerfinder.com $elemhide  + sayajumpa.net $elemhide  + wozaizhao.net $elemhide + +mytips.com $elemhide + infotoss.com $elemhide% +infotodiscover.com $elemhide! +infotofind.com $elemhide# +answersifter.com $elemhide + askgenius.co $elemhide% +findyouranswers.io $elemhide) +fingertipresources.com $elemhide" +questionhero.io $elemhide$ +searchmastery.net $elemhide& +queryresponders.com $elemhide( +userquestionsquad.com $elemhide% +answerguruzone.com $elemhide! +answerpedia.co $elemhide% +askdigitallife.com $elemhide( +e-everythingguide.com $elemhide& +expertadvicehub.com $elemhide) +onestopdigitalinfo.com $elemhide( +onestopinfosource.com $elemhide  + querywhiz.net $elemhide$ +seekwebwisdom.com $elemhideë +Žÿï* +onestopdigitalinfo.com* +onestopinfosource.com* +expertadvicehub.com* +seekwebwisdom.com* + querywhiz.net08@Rgoogle.com/ads$ +1000antworten.net $elemhide" +1000nokotae.com $elemhide# +1000reponses.net $elemhide$ +1000respostas.com $elemhide% +1000respuestas.net $elemhide# +1000risposte.com $elemhide$ +allresultsweb.com $elemhide" +answeradept.com $elemhide$ +answerexplore.com $elemhide# +answergetter.com $elemhide" +answeroasis.com $elemhide# +answersatlas.com $elemhide% +answersfetcher.com $elemhide! +answersfit.com $elemhide& +answersprovider.com $elemhide$ +answerwizardy.com $elemhide + +ask.es $elemhide + +ask.it $elemhide% +askandresponse.com $elemhide! +askinfonow.com $elemhide# +askproguides.com $elemhide% +beautyandstyle.com $elemhide% +bestinfotopics.com $elemhide' +bestsearchtopics.com $elemhide" +browsinghub.com $elemhide& +chercheztrouvez.net $elemhide" +couponalert.com $elemhide% +couponmountain.com $elemhide& +dailybibleguide.com $elemhide$ +dailysportfix.com $elemhide* +discoverwebinsights.com $elemhide% +easyanswerfind.com $elemhide+ +encontrandorespostas.com $elemhide& +esplorarisposta.com $elemhide% +exploreexpanse.net $elemhide& +factfinderforge.com $elemhide' +fastandsmartfind.com $elemhide( +fastanswerexplore.com $elemhide% +fastqueryquest.com $elemhide# +findfactshub.com $elemhide( +findinganswershub.com $elemhide" +findthedish.com $elemhide( +fragenbeantwortet.net $elemhide& +geniuseconomics.com $elemhide$ +infoanswerhub.com $elemhide" +infoexamine.com $elemhide  + infogiver.net $elemhide' +infoguidecentral.com $elemhide& +informationstop.com $elemhide% +informationvine.it $elemhide# +infotobrowse.com $elemhide% +inquiryinsider.com $elemhide  + kaitofind.com $elemhide( +lighthouseanswers.com $elemhide" +meinefragen.com $elemhide  + mindspark.com $elemhide' +moneyandbusiness.com $elemhide! +myfuncards.com $elemhide  + need2find.com $elemhide$ +newsearchtoday.co $elemhide" +omniquester.com $elemhide) +onlinewellnessinfo.com $elemhide% +ouquandcomment.net $elemhide²6 +¥‚ * +encontrandorespostas.com* +discoverwebinsights.com* +preguntasrespuestas.net* +onlinewellnessinfo.com* +quicksearchexplore.com* +fastanswerexplore.com* +findinganswershub.com* +fragenbeantwortet.net* +lighthouseanswers.com* +procurarencontrar.com* +questionsreponses.net* +bestsearchtopics.com* +fastandsmartfind.com* +infoguidecentral.com* +moneyandbusiness.com* +searchonlineinfo.com* +smartsearchsense.com* +smartwebsearcher.com* +answersprovider.com* +chercheztrouvez.net* +dailybibleguide.com* +esplorarisposta.com* +factfinderforge.com* +geniuseconomics.com* +informationstop.com* +trovarerisposte.com* +1000respuestas.net* +answersfetcher.com* +askandresponse.com* +beautyandstyle.com* +bestinfotopics.com* +couponmountain.com* +easyanswerfind.com* +exploreexpanse.net* +fastqueryquest.com* +informationvine.it* +inquiryinsider.com* +ouquandcomment.net* +quickaccesshub.com* +respondergenie.com* +1000antworten.net* +1000respostas.com* +allresultsweb.com* +answerexplore.com* +answerwizardy.com* +dailysportfix.com* +infoanswerhub.com* +newsearchtoday.co* +questquickfix.com* +questquotient.net* +respondmaster.com* +search-answer.com* +searchtosolve.com* +subetenokotae.net* +1000reponses.net* +1000risposte.com* +answergetter.com* +answersatlas.com* +askproguides.com* +findfactshub.com* +infotobrowse.com* +popdownloads.com* +seeksolvenow.com* +1000nokotae.com* +answeradept.com* +answeroasis.com* +browsinghub.com* +couponalert.com* +findthedish.com* +infoexamine.com* +meinefragen.com* +omniquester.com* +questquarry.net* +searcheureka.co* +searchsages.com* +answersfit.com* +askinfonow.com* +myfuncards.com* +probepulse.com* +sennokotae.com* +solvescope.net* +solvosphere.co* + infogiver.net* + kaitofind.com* + mindspark.com* + need2find.com* + responsehq.io* + seeksavvy.net* + webfetti.com* + vicinio.com* +ask.es* +ask.it08@Rgoogle.com/uds/ +£ÿï* +encontrandorespostas.com* +discoverwebinsights.com* +preguntasrespuestas.net* +onlinewellnessinfo.com* +quicksearchexplore.com* +fastanswerexplore.com* +findinganswershub.com* +fragenbeantwortet.net* +lighthouseanswers.com* +procurarencontrar.com* +questionsreponses.net* +bestsearchtopics.com* +fastandsmartfind.com* +infoguidecentral.com* +moneyandbusiness.com* +searchonlineinfo.com* +smartsearchsense.com* +smartwebsearcher.com* +answersprovider.com* +chercheztrouvez.net* +dailybibleguide.com* +esplorarisposta.com* +factfinderforge.com* +geniuseconomics.com* +informationstop.com* +trovarerisposte.com* +1000respuestas.net* +answersfetcher.com* +askandresponse.com* +beautyandstyle.com* +bestinfotopics.com* +couponmountain.com* +easyanswerfind.com* +exploreexpanse.net* +fastqueryquest.com* +informationvine.it* +inquiryinsider.com* +ouquandcomment.net* +quickaccesshub.com* +respondergenie.com* +1000antworten.net* +1000respostas.com* +allresultsweb.com* +answerexplore.com* +answerwizardy.com* +dailysportfix.com* +infoanswerhub.com* +newsearchtoday.co* +questquickfix.com* +questquotient.net* +respondmaster.com* +search-answer.com* +searchtosolve.com* +subetenokotae.net* +1000reponses.net* +1000risposte.com* +answergetter.com* +answersatlas.com* +askproguides.com* +findfactshub.com* +infotobrowse.com* +popdownloads.com* +seeksolvenow.com* +1000nokotae.com* +answeradept.com* +answeroasis.com* +browsinghub.com* +couponalert.com* +findthedish.com* +infoexamine.com* +meinefragen.com* +omniquester.com* +questquarry.net* +searcheureka.co* +searchsages.com* +answersfit.com* +askinfonow.com* +myfuncards.com* +probepulse.com* +sennokotae.com* +solvescope.net* +solvosphere.co* + infogiver.net* + kaitofind.com* + mindspark.com* + need2find.com* + responsehq.io* + seeksavvy.net* + webfetti.com* + vicinio.com* +ask.es* +ask.it08@Rgoogle.com/ads +H‚ * +all-answers.info* +knowledgesky.net08@Rgoogle.com/uds/ +Fÿï* +all-answers.info* +knowledgesky.net08@Rgoogle.com/ads +=‚ * + info-123.com* + mamma.com08@Rgoogle.com/uds/ +;ÿï* + info-123.com* + mamma.com08@Rgoogle.com/ads +1‚ * + askjeeves.com08@Rgoogle.com/uds/ +/ÿï* + askjeeves.com08@Rgoogle.com/ads +*‚ * +aj.com08@Rgoogle.com/uds/ +(ÿï* +aj.com08@Rgoogle.com/ads +0‚ * + docomo.ne.jp08@Rgoogle.com/uds/ +.ÿï* + docomo.ne.jp08@Rgoogle.com/ads +}‚ * +findinganswerspro.com* +smartdiscover247.com* +costcomparison.net* +smartcashbible.com08@Rgoogle.com/uds/ +{ÿï* +findinganswerspro.com* +smartdiscover247.com* +costcomparison.net* +smartcashbible.com08@Rgoogle.com/ads +W€ * +verizon.yahoo.com* + yahoo.com08@R"yahoo.com/*darla/php/fc.php*^l=UBA +M€ * + +s.yimg.com08@R.na.ads.yahoo.com/yax/banner^*^asz=300x250*|UBA +L€ * + +s.yimg.com08@R-na.ads.yahoo.com/yax/banner^*^asz=728x90*|UBA +I€ * + +s.yimg.com08@R*onemobile.yahoo.com/admax/adServe.do?*|UBA +5* + +s.yimg.com08@Rna.ads.yahoo.com/yax/csc^ +Z€ * +verizon.yahoo.com* + yahoo.com08@R%s.yimg.com/rq/darla/*/html/r-csc.html +E€ * +mail.yahoo.com08@R"yimg.com/rq/darla/*/html/r-sf.html +<* + +s.yimg.com08@R csc.beap.bc.yahoo.com^*^ypos=UBA +Iÿï* +verizon.yahoo.com* + yahoo.com08@Ryahoo.com/px.gif?ch=2 +Iÿï* +verizon.yahoo.com* + yahoo.com08@Ryahoo.com/px.gif?ch=1# +popdownloads.com $elemhide* +preguntasrespuestas.net $elemhide! +probepulse.com $elemhide( +procurarencontrar.com $elemhide( +questionsreponses.net $elemhide" +questquarry.net $elemhide$ +questquickfix.com $elemhide$ +questquotient.net $elemhide% +quickaccesshub.com $elemhide) +quicksearchexplore.com $elemhide% +respondergenie.com $elemhide$ +respondmaster.com $elemhide  + responsehq.io $elemhide$ +search-answer.com $elemhide" +searcheureka.co $elemhide' +searchonlineinfo.com $elemhide" +searchsages.com $elemhide$ +searchtosolve.com $elemhide  + seeksavvy.net $elemhide# +seeksolvenow.com $elemhide! +sennokotae.com $elemhide' +smartsearchsense.com $elemhide' +smartwebsearcher.com $elemhide! +solvescope.net $elemhide! +solvosphere.co $elemhide$ +subetenokotae.net $elemhide& +trovarerisposte.com $elemhide + vicinio.com $elemhide + webfetti.com $elemhide# +all-answers.info $elemhide# +knowledgesky.net $elemhide + info-123.com $elemhide + mamma.com $elemhide  + askjeeves.com $elemhide + +aj.com $elemhide + docomo.ne.jp $elemhide% +costcomparison.net $elemhide( +findinganswerspro.com $elemhide% +smartcashbible.com $elemhide' +smartdiscover247.com $elemhide»* +G * +verizon.yahoo.com* + yahoo.com08@Radserver.yahoo.com/a? +Pÿï* +verizon.yahoo.com* + yahoo.com08@Ryimg.com/rq/darla/i/fdb1.gif +Rÿï* +verizon.yahoo.com* + yahoo.com08@Rfc.yahoo.com/*darla/php/fc.php +Pÿï* +verizon.yahoo.com* + yahoo.com08@Ryimg.com/nn/lib/metro/g/sda/ +Xÿï* +verizon.yahoo.com* + yahoo.com08@R$yimg.com/aaq/wf/wf-darla-*-modern.js +D* +verizon.yahoo.com* + yahoo.com08@Ratwola.com/adcount +Q€ * +verizon.yahoo.com* + yahoo.com08@Ryahoo.com/*darla/php/fc.php^ +W€ * +verizon.yahoo.com* + yahoo.com08@R"yimg.com/rq/darla/*/html/r-sf.html +`ÿï* +verizon.yahoo.com* + yahoo.com08@R,yahoo.com/lib/metro/g/myy/advertisement_*.js +bÿï* +verizon.yahoo.com* + yahoo.com08@R.yimg.com/nn/lib/metro/g/myy/advertisement_*.js +Oÿï* +verizon.yahoo.com* + yahoo.com08@Rcriteo.com/delivery/lg.php? +U€* +verizon.yahoo.com* + yahoo.com08@R"yimg.com/rq/darla/*/html/r-sf.html +H€ * +finance.yahoo.com08@R"yimg.com/rq/darla/*/html/r-sf.html +;* + +s.yimg.com08@Rads.yahoo.com^*^ad_size=120x45^ +Y* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@Rads.yahoo.com^*^Z=120x45^ +d* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@R$pr.ybp.yahoo.com/ab/secure/true/imp/ +d* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@R$s.yimg.com/cv/ae/*/audience/*/120x45 +r* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@R2s.yimg.com/lq/lib/can_interstitial/icons/adchoice_ +h* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@R(ads.yahoo.com/rtbs-match?nid=*&ts=*&sig= +m* +verizon.yahoo.com* + +s.yimg.com08@R:ad1.adfarm1.adition.com/banner?sid=*&kid=*&bid=*&wpt=*&ts= +r* +verizon.yahoo.com* + +s.yimg.com08@R?ad1.adfarm1.adition.com/banner?co=*&bid=*&kid=*&sid=*&ts=*&wpt= +Qÿï* +verizon.yahoo.com* + +s.yimg.com08@Rimagesrv.adition.com/1x1.gif +U* +verizon.yahoo.com* + yahoo.com08@R#yimg.com/cv/ae/*/audience/*/120x45x +R‚ 08@RAads.yahoo.com/st?ad_type=*&publisher_blob=*|TL1|*&ad_size=120x45& +Z* +verizon.yahoo.com* + +s.yimg.com* + yahoo.com08@Rads.yahoo.com/get-user-id? +íÿï* +de.nachrichten.yahoo.com* +de.style.yahoo.com* +espanol.yahoo.com* +sports.yahoo.com* +news.yahoo.com* + www.yahoo.com* + de.yahoo.com* + us.yahoo.com08@R?securepubads.g.doubleclick.net/gampad/ads?*iu_parts=22888152279 +Öÿï* +de.nachrichten.yahoo.com* +de.style.yahoo.com* +espanol.yahoo.com* +sports.yahoo.com* +news.yahoo.com* + www.yahoo.com* + de.yahoo.com* + us.yahoo.com08@R(pagead2.googlesyndication.com/gampad/ads +*ÿï* + yahoo.com08@R hb.yahoo.net^ +5* + yahoo.com08@Rs.yimg.com/aaq/prebid/*.js +&ÿï08@Rcsc.beap.bc.yahoo.com^ +@* +mail.yahoo.com08@R yahoo.com/sdarla/php/client.php? +;ÿï* +mail.yahoo.com08@Ryimg.com/rq/darla/boot.js +<ÿï* +mail.yahoo.com08@Rmail.yahoo.com/px.gif?ch=1 +<ÿï* +mail.yahoo.com08@Rmail.yahoo.com/px.gif?ch=2 +<* +mail.yahoo.com08@Rbeap.gemini.yahoo.com/mbcsc? +>ÿï* +mail.yahoo.com08@Rbeap.gemini.yahoo.com/mbclk? +?ÿï* +mail.yahoo.com08@Rbeap.gemini.yahoo.com/action? +>ÿï* +mail.yahoo.com08@Rjill.fc.yahoo.com/v2/ads/js^ +F€ * +mail.yahoo.com08@R#jac.yahoosandbox.com^*/sandbox.html +1ÿï* +mail.yahoo.com08@Ryimg.com/*/ads/ +c * +mail.yahoo.com08@RCmail.yahoo.com/d/gemini_api/?adCount=1§ionId%5BrrAdBlockDPA%5D= +Tÿï* +mail.yahoo.com08@R2advertising.com/ad/ads/advertisers/advertisers.txt +?ÿï* +mail.yahoo.com08@Redgecast-vod.yimg.com/gemini^ +>ÿï* +mail.yahoo.com08@Redgecast-vod.yimg.com/gemini +Pÿï* +mail.yahoo.com08@R.pixel.adsafeprotected.com/*/skeleton.gif?gdpr^ +Gÿï* +mail.yahoo.com08@R%ebayadservices.com/marketingtracking^ +9ÿï* +mail.yahoo.com08@Rad.atdmt.com/i/img;adv^ +sÿï* +mail.yahoo.com* +mail.yahoo.net08@R?securepubads.g.doubleclick.net/gampad/ads?*iu_parts=22888152279 +\ÿï* +mail.yahoo.com* +mail.yahoo.net08@R(pagead2.googlesyndication.com/gampad/ads +_€ * +mail.yahoo.com* +mail.yahoo.net* + mail.aol.com08@Rgpt.mail.yahoo.net/sandbox +U€ * +mail.yahoo.com* +mail.yahoo.net08@R alpha-gpt.mail.yahoo.net/sandbox +V€ * +mail.yahoo.com* +mail.yahoo.net08@R!gam.mail.yahoosandbox.net/sandbox +\€ * +mail.yahoo.com* +mail.yahoo.net08@R'alpha-gam.mail.yahoosandbox.net/sandbox +Oÿï* +mail.yahoo.com* + mail.aol.com08@Ra.beap.gemini.yahoo.com/mbcsc6 +verizon.yahoo.com + yahoo.com.uba-container6 +verizon.yahoo.com + yahoo.com.billboard-ads. +verizon.yahoo.com + yahoo.com.darla: +verizon.yahoo.com + yahoo.comdiv[id*="ComboAd"]; +verizon.yahoo.com + yahoo.com.gemini-ad-feedback? +verizon.yahoo.com + yahoo.comdiv[class*="gemini-ad"]? +verizon.yahoo.com + yahoo.comdiv[id^="gemini-item-"]/ +verizon.yahoo.com + yahoo.com.ad-tl1™ +mail.yahoo.com‚[data-test-id="mail-right-rail"] [data-test-id="gam-iframe"] iframe[src^="https://gpt.mail.yahoo.net/sandbox"]:not(.uba-container)Ÿ +mail.yahoo.comˆ[data-test-id="mail-right-rail"] [data-test-id="gam-iframe"] iframe[src^="https://alpha-gpt.mail.yahoo.net/sandbox"]:not(.uba-container)Ò# +H* +aol.com08@R/delivery.adrecover.com/arbidder/v1/adrecover.js +2 * +aol.com08@Rib.adnxs.com/ut/v3/prebid +5 * +aol.com08@Rhtlb.casalemedia.com/cygnus^ +Gÿï* +aol.com08@R,feedback.adrecover.com/ARWebService/checkCID +Jÿï* +aol.com08@R/feedback.adrecover.com/ArHbWebService/feedback^ +Rÿï* +aol.com08@R7delivery.adrecover.com/arbidder/arBidderCompanion.html^ +>* +aol.com08@R%image8.pubmatic.com/AdServer/ImgSync^ +9 * +aol.com08@R ads.yieldmo.com/exchange/prebid^ +# * +aol.com08@R +media.net^ +%ÿï* +aol.com08@R +media.net^ +^€ * + yahoo.com08@R@safeframe.googlesyndication.com/safeframe/*/html/container.html^  +mail.yahoo.com‰[data-test-id="mail-right-rail"] [data-test-id="gam-iframe"] iframe[src^="https://gam.mail.yahoosandbox.net/sandbox"]:not(.uba-container)¦ +mail.yahoo.com�[data-test-id="mail-right-rail"] [data-test-id="gam-iframe"] iframe[src^="https://alpha-gam.mail.yahoosandbox.net/sandbox"]:not(.uba-container)1 +mail.yahoo.comata-test-id="gam-iframe"]1 +mail.yahoo.comata-test-id^="pencil-ad"]d +mail.yahoo.comN[rel="noreferrer"][data-test-id][href^="https://beap.gemini.yahoo.com/mbclk?"]  +mail.yahoo.com +#slot_LRECA +mail.yahoo.com+li:has(a[href^="https://api.taboola.com/"])( +aol.comdiv[data-google-query-id]` +verizon.yahoo.com + yahoo.com8[id^="sda-LREC"]:not(.uba-container):not([id$="iframe"])u +verizon.yahoo.com + yahoo.comMdiv[id^="my-ads"]:not(.uba-container):not([id$="-base"]):not([id$="-iframe"])1 +verizon.yahoo.com + yahoo.com #sda-LDRB2 +verizon.yahoo.com + yahoo.com +#sda-LDRB2E +verizon.yahoo.com + yahoo.com#sda-LDRB:not(.uba-container)F +verizon.yahoo.com + yahoo.com#sda-LDRB2:not(.uba-container)D +verizon.yahoo.com + yahoo.com#sda-MON:not(.uba-container)E +verizon.yahoo.com + yahoo.com#sda-MON2:not(.uba-container)1 +verizon.yahoo.com + yahoo.com #sda-LREC2 +verizon.yahoo.com + yahoo.com +#sda-LREC22 +verizon.yahoo.com + yahoo.com +#sda-LREC32 +verizon.yahoo.com + yahoo.com +#sda-LREC4E +verizon.yahoo.com + yahoo.com#sda-LREC:not(.uba-container)F +verizon.yahoo.com + yahoo.com#sda-LREC2:not(.uba-container)! + yahoo.com.darla-container6 +verizon.yahoo.com + yahoo.com.darla-lrec-adJ +verizon.yahoo.com + yahoo.com".darla-lrec-ad:not(.uba-container)U +verizon.yahoo.com + yahoo.com-.viewer-sda-container > *:not(.uba-container)= +verizon.yahoo.com + yahoo.com.viewer-sda-container; +verizon.yahoo.com + yahoo.com.caas-body .caas-daF +verizon.yahoo.com + yahoo.com[data-content="Advertisement"]4 +verizon.yahoo.com + yahoo.com #sda-HorizonZ +verizon.yahoo.com + yahoo.com2#sda-Horizon:not(#sda-Horizon:has(.uba-container))1 +verizon.yahoo.com + yahoo.com #sda-MASTN +verizon.yahoo.com + yahoo.com&#sda-MAST:not(#sda-MAST.uba-container)8 +verizon.yahoo.com + yahoo.com#sda-LREC-iframe] +verizon.yahoo.com + yahoo.com5#sda-LREC-iframe:not(.uba-container #sda-LREC-iframe)9 +verizon.yahoo.com + yahoo.com#sda-LREC2-iframe9 +verizon.yahoo.com + yahoo.com#sda-LREC3-iframe_ +verizon.yahoo.com + yahoo.com7#sda-LREC3-iframe:not(.uba-container #sda-LREC3-iframe)_ +verizon.yahoo.com + yahoo.com7#sda-LREC4-iframe:not(.uba-container #sda-LREC4-iframe)8 +verizon.yahoo.com + yahoo.com#sda-LDRB-iframe] +verizon.yahoo.com + yahoo.com5#sda-LDRB-iframe:not(.uba-container #sda-LDRB-iframe)0 +verizon.yahoo.com + yahoo.com.caas-daR +verizon.yahoo.com + yahoo.com*.caas-da:not(.caas-da:has(.uba-container)). +sports.yahoo.com#mrt-node-Primary-0-Ad^ +sports.yahoo.comF#mrt-node-Primary-0-Ad:not(#mrt-node-Primary-0-Ad:has(.uba-container))0 +sports.yahoo.com#mrt-node-Secondary-0-Adb +sports.yahoo.comJ#mrt-node-Secondary-0-Ad:not(#mrt-node-Secondary-0-Ad:has(.uba-container))+ +sports.yahoo.com#mrt-node-Lead-1-AdX +sports.yahoo.com@#mrt-node-Lead-1-Ad:not(#mrt-node-Lead-1-Ad:has(.uba-container))X +sports.yahoo.com@#mrt-node-Lead-2-Ad:not(#mrt-node-Lead-2-Ad:has(.uba-container))X +sports.yahoo.com@#mrt-node-Col2-2-Ad:not(#mrt-node-Col2-2-Ad:has(.uba-container))X +sports.yahoo.com@#mrt-node-Col2-9-Ad:not(#mrt-node-Col2-9-Ad:has(.uba-container))( +sports.yahoo.com.post-article-adì +hÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@Rpbs.yahoo.com/openrtb2/auction +€ÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@R6hbopenbid.pubmatic.com/translator?source=prebid-client +yÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@R/fastlane.rubiconproject.com/a/api/fastlane.json +kÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@R!htlb.casalemedia.com/openrtb/pbjs +iÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@Rrtb.openx.net/openrtbb/prebidjs +fÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@Rtlx.3lift.com/header/auction +sÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@R)prebid.media.net/rtb/prebid?cid=8CUBQTSIL +iÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@Rads.yieldmo.com/exchange/prebid +_ÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com* +aol.com08@Rbidder.criteo.com/cdb +908@R+yimg.com/pv/static/img/abppx-*.gif?ch=2&rn= +908@R+yimg.com/pv/static/img/abppx-*.gif?ch=1&rn= +8* +search.yahoo.com08@Rbing.com/th?*^pid=Ads^ +# 08@Rgla.search.yahoo.com^ +7ÿï08@R'partnerads.ysm.yahoo.com/syndication.js +.€ 08@Rpartnerads.ysm.yahoo.com/ypa/ +7ÿï* + poke.com.tw08@Rsitemaji.com/ypa/poke.js +3* + poke168.com08@Rsitemaji.com/ypa/poke_L +sports.yahoo.com4.post-article-ad:not(.post-article-ad.uba-container)+ + yahoo.comdiv[data-content="廣告"]" + yahoo.com[data-wf-beacons]( + yahoo.comdiv[id^="COMMENTSLDRB"]4 + yahoo.com#.trc-spotlight-first-recommendation* + yahoo.com.trc-first-recommendation+ + yahoo.comdiv[id^="taboola-stream-"]' + yahoo.com.trc-content-sponsored' + yahoo.com.trc_related_container$ + yahoo.com.trc_spotlight_item  + yahoo.com.trc_excludable% + yahoo.com.trc_rbox_border_elm + yahoo.com .trc_rbox_div + yahoo.com .trc_rboxH + yahoo.com7.trc_related_container div[data-item-syndicated="true"], +mail.yahoo.com#sb_rel_tgtLREC4.darla  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide/ +sweepstakesalerts.com/search $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide$ +everyjobforme.com $elemhideÿ + +jobhat.com $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + sofree.cc $elemhide  $elemhide  $elemhide  $elemhide +sofun.tw $elemhide + interview.tw $elemhide  $elemhide´  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + mrtang.tw $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + +coolmac.tw $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + +funtory.tw $elemhide  $elemhide  $elemhide + +tomchun.tw $elemhide  $elemhide  $elemhide  $elemhide  $elemhide +lyes.tw $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide% +careerboutique.com $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + +jumpman.tw $elemhide  $elemhide¼ +5* + +formen.com08@Rxdirectx.com/js/creative/ +0„ * + +formen.com08@Rapi.xdirectx.com^ +<* +answers.yahoo.com08@Rdmros1.ysm.yahoo.com/ros/ +@* +answers.yahoo.com08@Rdoubleclick.net/ddm/*;sz=1x1; +=* +answers.yahoo.com08@Rrover.ebay.com^*&size=1x1& +<* +answers.yahoo.com08@R2mdn.net/viewad/*-1x1.gif +Ÿ* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R1ad.doubleclick.net/ddm/trackimp/*GEMINI-YAHOONATI +›* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R-ad.doubleclick.net/ddm/trackimp/*YAHOO-GEMINI +›* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R-ad.doubleclick.net/ddm/trackimp/*VERIZONMEDIA +{ÿï* + autoblog.com* + engadget.com* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rs.yimg.com/av/yap/ga/yap.js +†* + autoblog.com* + engadget.com* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R(s.yimg.com/cv/apiv2/adbuilder/gemini.png +|* + autoblog.com* + engadget.com* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rads.yap.yahoo.com^*/beacon.do? +|* + autoblog.com* + engadget.com* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rads.yap.yahoo.com^*/getAds.do? +* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rgemini.yahoo.com^ +* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rs.yimg.com^*/ads/ +€ÿï* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R/px.gif?ch=1&rn= +€ÿï* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@R/px.gif?ch=2&rn= +D* + autoblog.com08@R&at.atwola.com/addyn/3.0/5113.1/221794/ +jÿï* + autoblog.com* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Ro.aolcdn.com/ads/adchoice*.png +>ÿï* + autoblog.com08@Rs.aolcdn.com/ads/adsWrapper.js +{ÿï* + autoblog.com* + engadget.com* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rs.yimg.com/dy/ads/native.js +Šÿï* + autoblog.com* + engadget.com* + stylevamp.de* + www.aol.com* + aol.co.uk* +aol.ca* +aol.de08@Rs.yimg.com/aaq/prebid/*.js +,* + autoblog.com08@Rs.yimg.com/ys/ +=* + stylevamp.de08@Rgemini.yahoo.com^*^syndication^ +cÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R'web-oao.ssp.yahoo.com/admax/adServe.do^  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide + papacat.xyz $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide! +cythia0805.com $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide% +blog.mixflavor.com $elemhide  $elemhide  $elemhide' +searchjam.com/search $elemhide² +b€ * + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R%jac.yahoosandbox.com/*/safeframe.html +M* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Rs0.2mdn.net/simgad^ +fÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R*securepubads.g.doubleclick.net/gampad/ads^ +dÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R(pagead2.googlesyndication.com/gampad/ads +T* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Rtpc.googlesyndication.com^ +O* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Rat.atwola.com/adcount +c* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R)*-web-oao.ssp.yahoo.com/admax/adEvent.do^ +D * + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R +media.net^ +Fÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R +media.net^ +_ÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R#mail.aol.com/d/gemini_api/?adCount= +}€ * + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R@safeframe.googlesyndication.com/safeframe/*/html/container.html^ +Qÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Ryahoo.com/px.gif?ch=2 +Qÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Ryahoo.com/px.gif?ch=1 +jÿï* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R.yimg.com/nn/lib/metro/g/myy/advertisement_*.js +¡* +recherche.aol.fr* +search.aol.co.uk* +o2suche.aol.de* +search.aol.com* + aolsearch.com* + search.aol.ca* + suche.aol.de08@Rbing.com/th?*^pid=Ads{ + autoblog.com + engadget.com + stylevamp.de + www.aol.com + aol.co.uk + yahoo.com +aol.ca +aol.de +.gemini-ad„ + autoblog.com + engadget.com + stylevamp.de + www.aol.com + aol.co.uk + yahoo.com +aol.ca +aol.de.gemini-ad-feedback~ + autoblog.com + engadget.com + stylevamp.de + www.aol.com + aol.co.uk + yahoo.com +aol.ca +aol.de .GeminiAdItemA + aol.co.uk +aol.com +aol.ca +aol.de.m-gam__containerJ + aol.co.uk +aol.com +aol.ca +aol.de.m-gam:not(.uba-container)6 + aol.co.uk +aol.com +aol.ca +aol.de.ad-bgK + aol.co.uk +aol.com +aol.ca +aol.deame^="google_ads_iframe"]] + aol.co.uk +aol.com +aol.ca +aol.de-a[href^="https://adclick.g.doubleclick.net/"] + autoblog.com +#ad_footer# + autoblog.com#native_highvis# + engadget.com#right-ads-rail + autoblog.com.ad + engadget.com .ad-title + autoblog.com.ad_text + autoblog.com .btf-native9 + aol.co.uk +aol.com +aol.ca +aol.de .m-jac-adQ + stylevamp.de + www.aol.com + aol.co.uk +aol.ca +aol.de .sponsor-text$ + engadget.com.sponsored-links, + engadget.comdiv[class^="native-ad-"]J + aol.co.uk +aol.com +aol.ca +aol.de.dl-gemini-ad__img--square^ + aol.co.uk +aol.com +aol.ca +aol.de.[data-slide-type="gemini"] .dl-caption-wrapperC + mail.aol.com/li:has(a[data-test-id="pencil-ad-messageList"])  $elemhide  $elemhide  $elemhide  + intoautos.com $elemhide +when.com $elemhide! +o2suche.aol.de $elemhide  + aolsearch.com $elemhide +wow.com $elemhide# +search.aol.co.uk $elemhide  + search.aol.ca $elemhide# +recherche.aol.fr $elemhide + suche.aol.de $elemhide! +search.aol.com $elemhide& +yellowpages.aol.com $elemhide + job-sift.com $elemhide# +housingwatch.com $elemhide + going.com $elemhide  + citypedia.com $elemhide  + health247.com $elemhide + netdeals.com $elemhide + netfind.com $elemhide + health.zone $elemhide  + autos24-7.com $elemhide + anyprice.com $elemhide + shopfone.com $elemhide  + learn-247.com $elemhide  + money-a2z.com $elemhideš1 +Œ ÿï* +bingtrends.trustedsearches.com* +search.bestresultsweb.com* +search.legalboulevard.com* +search.bestresultsweb.co* +search.expertschoice.com* +search.topsearchshop.com* +search.cybersearches.co* +search.walletgenius.com* +topbusinessinsights.com* +betterway.web2carz.com* +inbound.searchfirst.co* +personalconnecting.com* +search.healthtips.mobi* +search.searchesweb.com* +search.shopperwire.com* +search.topfivelist.com* +search.activebeat.com* +search.localbuyer.com* +businesssearches.net* +digitalcommunity.com* +featuredinsights.net* +search.beingsharp.co* +search.zonealarm.com* +listingsupdated.com* +mysearchexperts.com* +premiumsearches.net* +relatedsearches.net* +s.howstuffworks.com* +search.ucapture.com* +trustedsearches.com* +yellowpages.aol.com* +consumersearch.com* +healthmatters.site* +huffingtonpost.com* +influencegroup.com* +insiderchoices.net* +killerproducts.com* +mybestsearches.com* +results.excite.com* +safesearch.ask.com* +search.nine.com.au* +searchstartnow.com* +selectsearches.net* +expertanswers.com* +generalsearch.net* +insurance24-7.com* +internetbuyer.com* +investorfocus.net* +primesearches.net* +s.healthnwell.com* +search1online.com* +similarsearch.net* +topwebanswers.com* +trendyhousing.net* +bestbargains.com* +browsersearch.co* +browsinginfo.com* +displaybuyer.com* +findarticles.com* +healthyfacts.net* +housingwatch.com* +instantlyask.com* +internetlist.com* +recherche.aol.fr* +search.aol.co.uk* +search.gmx.co.uk* +bargain-pda.com* +dailyperuse.com* +familybuyer.com* +find.ageful.com* +furniture.deals* +homesessive.com* +infoinquire.com* +infoupdated.com* +karmasearch.org* +kitchepedia.com* +metacrawler.com* +oceanhero.today* +searcheshut.com* +senioronline.co* +smartcellar.com* +urbanhealth.com* +webbrowser.mobi* +activewire.com* +answersite.com* +carsgenius.com* +dailydozen.com* +dailyreads.net* +duckduckgo.com* +eshopdaily.com* +expertsnow.com* +ezsearcher.com* +find.furniture* +foodbegood.com* +glamorbank.com* +greendaily.com* +know-legal.com* +lite.qwant.com* +o2suche.aol.de* +portal.ambt.co* +portal.vooz.us* +search.aol.com* +search.gmx.com* +sport-king.com* +suche.1und1.de* +suchefinde.net* +techcrunch.com* +thewinlist.com* +varshopper.com* +webcrawler.com* + 247.vacations* + answergal.com* + aolsearch.com* + autos24-7.com* + bloglines.com* + buydirect.com* + citypedia.com* + futuredom.com* + health247.com* + infobeads.com* + intoautos.com* + javabuyer.com* + learn-247.com* + money-a2z.com* + pricesnow.com* + reference.com* + savvyshop.com* + search.aol.ca* + searchnow.com* + sohobuyer.com* + startpage.com* + suche.gmx.net* + swisscows.com* + theepulse.com* + think24-7.com* + videoroom.com* + wwf.panda.org* + anyprice.com* + autoblog.com* + besthelp.com* + buyernet.com* + carshots.com* + dealsnow.com* + ezbuying.com* + fashion.life* + fast.rentals* + golocal.guru* + helpwire.com* + job-sift.com* + learnnow.com* + mapquest.com* + mbrowser.net* + netdeals.com* + nextdoor.com* + searchiq.com* + shopfone.com* + solvenow.com* + suche.aol.de* + suche.gmx.at* + suche.web.de* + tech24.deals* + tech24.deals* + warehaus.com* + answers.com* + auralis.com* + autos.parts* + chowist.com* + diylife.com* + dogpile.com* + gosearch.io* + gumtree.com* + health.zone* + ironsrc.com* + mapquest.ca* + moneyweb.io* + mysimon.com* + netfind.com* + obmedia.com* + offerup.com* + palikan.com* + see-it.live* + shop411.com* + suchhier.de* + tempest.com* + thegifts.co* + trouver.com* + vivaldi.com* + welcome.com* + winlist.com* + xplore.mobi* + zagline.com* + +baby.guide* + +buying.net* + +ecosia.org* + +foblue.com* + +gamer.site* + +idaily.com* + +info.co.uk* + +luxist.com* + +luxxle.com* + +nation.com* + +pets.world* + +search.com* + +theweb.com* + +viral.site* + +websrch.co* + equip.com* + etour.com* + going.com* + qwant.com* + store.com* + webmd.com* + +24-7.pet* + +enow.com* + +info.com* + +jsyk.com* + +lilo.org* + +when.com* +ask.com* +cnn.com* +last.fm* +loky.ch* +pch.com* +wow.com08@R"bing.com/api/custom/ads/adswidget/! +find.furniture $elemhide" +homesessive.com $elemhide + diylife.com $elemhide +24-7.pet $elemhide! +glamorbank.com $elemhide + +gamer.site $elemhide + fashion.life $elemhide$ +insurance24-7.com $elemhide! +greendaily.com $elemhide! +know-legal.com $elemhide + +luxist.com $elemhide" +www.chowist.com $elemhide + autos.parts $elemhide + see-it.live $elemhide! +sport-king.com $elemhide + fast.rentals $elemhide + www.enow.com $elemhide + www.jsyk.com $elemhide% +www.foodbegood.com $elemhide$ +www.think24-7.com $elemhide# +www.tech24.deals $elemhide& +www.furniture.deals $elemhide" +www.thegifts.co $elemhide# +www.golocal.guru $elemhide! +www.viral.site $elemhide! +www.baby.guide $elemhide! +www.pets.world $elemhide# +www.tech24.deals $elemhide$ +www.247.vacations $elemhide" +kitchepedia.com $elemhide  $elemhide  $elemhide  $elemhide + ironsrc.com $elemhide" +www.palikan.com $elemhide  $elemhide  $elemhide" +www.vivaldi.com $elemhide  $elemhide  + info.com/serp $elemhide  + etour.com/web $elemhide, +kduckgo.com/?q=*$elemhide $elemhide$ +ecosia.org/search $elemhide% +offerup.com/search $elemhide/ +results.mbrowser.net/_search $elemhide + qwant.com $elemhide. +results.premiumsearches.net $elemhide& +moneyweb.io/_search $elemhide& +moneyweb.io/_Search $elemhide* +mysearchexperts.com/web $elemhide/ +rch*.pch.com/*^q*=*$elemhide $elemhide) +search.healthtips.mobi $elemhide  + theepulse.com $elemhide* +search.cybersearches.co $elemhide + +info.co.uk $elemhide, +results.generalsearch.net $elemhide! +expertsnow.com $elemhide/ +estorfocus.net/?s=*$elemhide $elemhide  $elemhide" +seek.websrch.co $elemhide$ +reference.com/web $elemhide+ +search.expertschoice.com $elemhide% +gumtree.com/search $elemhideº" +search.lilo.org $elemhide! +thewinlist.com $elemhide) +search.searchesweb.com $elemhide& +nextdoor.com/search $elemhide, +search.bestresultsweb.com $elemhide+ +search.topsearchshop.com $elemhide& +gosearch.io/_Search $elemhide& +gosearch.io/_search $elemhide$ +internetbuyer.com $elemhide! +localbuyer.com $elemhide  + buydirect.com $elemhide/ +ndyhousing.net/?s=*$elemhide $elemhide0! +lthmatters.site/?s=*$elemhide $elemhide + buyernet.com $elemhide& +dailydozen.com/seek $elemhide! +answersite.com $elemhide- +results.mybestsearches.com $elemhide. +lthyfacts.net/?s=*$elemhide $elemhide, +results.similarsearch.net $elemhide* +senioronline.co/_Search $elemhide* +senioronline.co/_search $elemhide) +search.shopperwire.com $elemhide0! +iderchoices.net/?s=*$elemhide $elemhide2# +turedinsights.net/?s=*$elemhide $elemhide- +results.selectsearches.net $elemhide! +eshopdaily.com $elemhide% +answergal.com/seek $elemhide + ezbuying.com $elemhide, +results.primesearches.net $elemhide' +search.beingsharp.co $elemhide + smysimon.com $elemhide) +edia.com/?s=*$elemhide $elemhide + dealsnow.com $elemhide4% +!ealthnwell.com/serp?q*=*$elemhide $elemhide! +activewire.com $elemhide# +displaybuyer.com $elemhide+ +search.bestresultsweb.co $elemhide  + m.xplore.mobi $elemhide  + swisscows.com $elemhide$ +expertanswers.com $elemhide$ +helpwire.com/seek $elemhide/ +results.businesssearches.net $elemhide + +theweb.com $elemhide$ +search1online.com $elemhide4% +!sonalconnecting.com/?s=*$elemhide $elemhide + besthelp.com $elemhide. +results.relatedsearches.net $elemhide" +familybuyer.com $elemhide! +portal.ambt.co $elemhide + auralis.com $elemhide5& +"businessinsights.com/?s=*$elemhide $elemhide) +search.topfivelist.com $elemhide! +ezsearcher.com $elemhide+ +browsersearch.co/_search $elemhide+ +browsersearch.co/_Search $elemhide) +inbound.searchfirst.co $elemhide  + videoroom.com $elemhide, +lyreads.net/?s=*$elemhide $elemhide + learnnow.com $elemhide% +safesearch.ask.com $elemhide( +search.activebeat.com $elemhide+ +pile.com/*?q*=*$elemhide $elemhide + searchiq.com $elemhide, +lue.com/msr*?q=*$elemhide $elemhide”! +varshopper.com $elemhide  + searchnow.com $elemhide" +urbanhealth.com $elemhide + solvenow.com $elemhide2# +webmd.com/search/search_results $elemhide4% +!betterway.web2carz.com/search.php $elemhide( +suche.web.de/*/result $elemhide% +loky.ch/search.php $elemhide+ +.com/search?q=*$elemhide $elemhide" +smartcellar.com $elemhide + welcome.com $elemhide* +search.walletgenius.com $elemhide. +letgenius.com/?s=*$elemhide $elemhide + warehaus.com $elemhide + winlist.com $elemhide# +bestbargains.com $elemhide  + pricesnow.com $elemhide  + infobeads.com $elemhide! +portal.vooz.us $elemhide + trouver.com $elemhide  + javabuyer.com $elemhide$ +idaily.com/search $elemhide* +search.walletgenius.com $elemhide  + savvyshop.com $elemhide% +futuredom.com/seek $elemhide2# +owstuffworks.com/*^q=*$elemhide $elemhide# +internetlist.com $elemhide% +killerproducts.com $elemhide  + sohobuyer.com $elemhide" +find.ageful.com $elemhide! +equip.com/seek $elemhide- +lyperuse.com/?s=*$elemhide $elemhide, +search.legalboulevard.com $elemhide! +suchefinde.net $elemhide% +influencegroup.com $elemhide7( +$.panda.org/?uGlobalSearch=*$elemhide $elemhide6' +#tingsupdated.com/serp?q*=*$elemhide $elemhide$ +carshots.com/seek $elemhide" +karmasearch.org $elemhide" +buying.net/seek $elemhide/ +oinquire.com/*?q*=*$elemhide $elemhide) +suche.gmx.net/*/result $elemhide0! +sgenius.com/search^*$elemhide $elemhide0! +tantlyask.com/*?q*=*$elemhide $elemhide) +line.com/?s=*$elemhide $elemhide* +webbrowser.mobi/_search $elemhide + +luxxle.com $elemhide' +digitalcommunity.com $elemhide + ask.com/web $elemhide) +consumersearch.com/web $elemhide% +suchhier.de/search $elemhide/ +oupdated.com/*?q*=*$elemhide $elemhide* +search.gmx.com/*/result $elemhide% +answers.com/search $elemhide$ +bloglines.com/web $elemhide" +metacrawler.com $elemhide/ +pest.com/search?q=*$elemhide $elemhide0! +wsinginfo.com/*?q*=*$elemhide $elemhide" +metacrawler.com $elemhide# +findarticles.com $elemhide% +search.nine.com.au $elemhide, +search.gmx.co.uk/*/result $elemhide + store.com $elemhide) +search.gmx.at/*/result $elemhide€ð +`ÿï* +outlook.office.com* +outlook.live.com08@R&office.net/*/resources/images/ab1.gif^ +`ÿï* +outlook.office.com* +outlook.live.com08@R&office.net/*/resources/images/ab2.gif^ +lÿï* +outlook.office.com* +outlook.live.com08@R2onecdn.static.microsoft/*/resources/images/ab1.gif +lÿï* +outlook.office.com* +outlook.live.com08@R2onecdn.static.microsoft/*/resources/images/ab2.gif +_ * +outlook.live.com08@R=api.taboola.com/2.0/json/msn-outlookcom-*/recommendations.get +V * +outlook.live.com08@R4api.taboola.com/2.0/json/msn-outlookcom-*/user.sync^ +i* +outlook.live.com08@RGtaboola.com/2.0/json/msn-outlookcom-*/recommendations.notify-available^ +g* +outlook.live.com08@REtaboola.com/2.0/json/msn-outlookcom-*/recommendations.notify-visible^ +6* + www.msn.com08@Racdn.adnxs.com/ast/ast.js +.ÿï* + www.msn.com08@Rshftr.adnxs.net +>ÿï* +outlook.live.com08@Radnxs.com/vevent?an_audit= +5ÿï* +outlook.live.com08@Radnxs.com/click2^ +j* +outlook.live.com* + www.msn.com08@R9acdn.adnxs-simple.com/ast/safeframe/static/*/js/sf-ext.js +Iÿï* +outlook.live.com* + www.msn.com08@Radnxs.com/it?an_audit= +Dÿï* +outlook.live.com* + www.msn.com08@Rm.adnxs.com/ut/v3 +G* +outlook.live.com* + www.msn.com08@Rcdn.adnxs.com/*/trk.js +Gÿï* +outlook.live.com* + www.msn.com08@Radsdk.microsoft.com^ +Rÿï* +outlook.live.com* + www.msn.com* + +bing.com08@Rmsft-ssp*.adnxs.com +Ó ‚ *' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R tpc.googlesyndication.com/sodar^ +Ú € *' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R'googleads.g.doubleclick.net/pagead/ads^ +æ ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R4pagead2.googlesyndication.com/pagead^*^show_ads_impl +Ú ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R(pagead2.googlesyndication.com/pagead/js^ +ß ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R-pagead2.googlesyndication.com/pagead/gen_204^ +Þ €*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R-pagead2.googlesyndication.com/pcs/activeview^ +Ý ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R+pagead2.googlesyndication.com/pagead/sodar^ +à ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R*/px.gif?ch=1&rn= +à ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R*/px.gif?ch=2&rn= +à ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R.pagead2.googlesyndication.com/getconfig/sodar^ +Ø *' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R(adservice.google.de/adsid/integrator.js^ +Ù *' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua*" + xn--80aweql3c59aea5q.xn--80ao21a*! +xn--l2bmcno7cen.xn--i1b6b1a6a2e* +xn--y9ah5af0a9a4a.xn--y9a3aq* +xn--vg1b14l6tk.xn--3e0b707e* +xn--80apbinjhb8d.xn--d1alf* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +kullanimkilavuzu.com.tr* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +manualpdf.com.br* +bruksanvisni.ng* +manuales.com.co* +manualpdf.co.il* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* +qollanmalar.uz* +usermanuals.au* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + handleidi.ng* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.ge* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + udhezimet.al* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.cr* + manual.do* + manual.ec* + manual.gt* + manual.hn* + manual.md* + manual.nz* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R)quantcast.mgr.consensu.org/tcfv2/cmp2.js^ + € *' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua* +xn--vg1b14l6tk.xn--3e0b707e* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +bruksanvisni.ng* +manuales.com.co* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.do* + manual.ec* + manual.gt* + manual.md* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R/g.doubleclick.net/pagead/html/*/zrt_lookup.html +‰ÿï*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua* +xn--vg1b14l6tk.xn--3e0b707e* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +bruksanvisni.ng* +manuales.com.co* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.do* + manual.ec* + manual.gt* + manual.md* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@Radservice.google.*/adsid/ +›*' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua* +xn--vg1b14l6tk.xn--3e0b707e* +xn----2lbcmca4cdtsdb1c.gr* +hasznalati-utasitasok.hu* +instrukcjaobslugipdf.pl* +manualdeinstructiuni.ro* +xn--80adah2aybmok5f.bg* +bedienungsanleitu.ng* +bruksanvisningpdf.no* +rokasgramataspdf.lv* +manualsearcher.com* +bruksanvisni.ng* +manuales.com.co* +modesdemploi.fr* +prirocnikpdf.si* +manualeduso.it* +manualscat.com* +pdfmanualer.dk* +petunjuk.co.id* + manual.com.ve* + manuals.co.uk* + manualspdf.ru* + manualypdf.cz* + prirucnici.hr* + vadovaspdf.lt* + huang-dan.vn* + manualpdf.cl* + manualpdf.es* + manualpdf.in* + manualpdf.pt* + manualpdf.us* + kayttooh.je* + manuales.mx* + prirucky.sk* + uputstvo.rs* + +manuals.ca* + juhend.ee* + manual.ar* + manual.bo* + manual.do* + manual.ec* + manual.gt* + manual.md* + manual.pa* + manual.pe* + manual.sv* + +manua.ls08@R-pagead2.googlesyndication.com/pagead/gen_204? +T* +thestartmagazine.com* +taboolanews.com* + samsung.com08@R taboola.com^ +j* +thestartmagazine.com* +taboolanews.com* + samsung.com08@R"images.*.criteo.net/img/img?c=*&u= +g* +thestartmagazine.com* +taboolanews.com* + samsung.com08@Rpix.*.criteo.net/img/img?c=*&u= +o* +thestartmagazine.com* +taboolanews.com* + samsung.com08@R'images.taboola.com/taboola/image/fetch/ +ÿï08@R jsc.mgid.com^ +"ÿï08@Rjsc.marketgid.com^ + 08@Rservicer.mgid.com^ +$08@Rs-img.mgid.com/g/ +"08@Rcdn.mgid.com/images/ +%08@Rcdn.mgid.com/js/wglibs/ +08@R cm.mgid.com^ +!08@Rcm.lentainform.com^* +suche.1und1.de/*/result $elemhideé +outlook.live.comÐdiv[data-app-section="MessageList"] div[class][id*="-"]:has(> div:not([class]) > div[class] > div[class] > div[class] > div[class] > div[class] > div[class] > div[class] + .ms-Button--hasMenu.ms-Button--icon)# + www.msn.com[id^="nativead"]µ ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.lsins.adsbygoogleà ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.lsins.adsbygoogle[data-ad-slot]° ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.ls +.native.adÍ ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.ls'ins.adsbygoogle-noablate:nth-of-type(2)Å ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.lsins.adsbygoogle[data-ad-client]Ð ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.ls*.ad-placeholder.position-sticky.sticky-topº ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.ls.ad-placeholder.my-3· ' +%xn--80aaexjatkpdggghih8b1a2yhv.com.ua" + xn--80aweql3c59aea5q.xn--80ao21a! +xn--l2bmcno7cen.xn--i1b6b1a6a2e +xn--y9ah5af0a9a4a.xn--y9a3aq +xn--vg1b14l6tk.xn--3e0b707e +xn--80apbinjhb8d.xn--d1alf +xn----2lbcmca4cdtsdb1c.gr +hasznalati-utasitasok.hu +instrukcjaobslugipdf.pl +kullanimkilavuzu.com.tr +manualdeinstructiuni.ro +xn--80adah2aybmok5f.bg +bedienungsanleitu.ng +bruksanvisningpdf.no +rokasgramataspdf.lv +manualsearcher.com +manualpdf.com.br +bruksanvisni.ng +manuales.com.co +manualpdf.co.il +modesdemploi.fr +prirocnikpdf.si +manualeduso.it +manualscat.com +pdfmanualer.dk +petunjuk.co.id +qollanmalar.uz +usermanuals.au + manual.com.ve + manuals.co.uk + manualspdf.ru + manualypdf.cz + prirucnici.hr + vadovaspdf.lt + handleidi.ng + huang-dan.vn + manualpdf.cl + manualpdf.es + manualpdf.ge + manualpdf.in + manualpdf.pt + manualpdf.us + udhezimet.al + kayttooh.je + manuales.mx + prirucky.sk + uputstvo.rs + +manuals.ca + juhend.ee + manual.ar + manual.bo + manual.cr + manual.do + manual.ec + manual.gt + manual.hn + manual.md + manual.nz + manual.pa + manual.pe + manual.sv + +manua.ls.fs-sticky-footerV +thestartmagazine.com +taboolanews.com + samsung.com.trc-content-sponsoredUBT +thestartmagazine.com +taboolanews.com + samsung.com.trc-content-sponsoredd +thestartmagazine.com +taboolanews.com + samsung.com&a[href^="https://ad.doubleclick.net/"]u +thestartmagazine.com +taboolanews.com + samsung.com7.trc_related_container div[data-item-syndicated="true"]b +thestartmagazine.com +taboolanews.com + samsung.com$a[href^="https://track.adform.net/"]~ +thestartmagazine.com +taboolanews.com + samsung.com@.bx-creative a[target="_blank"][href^="http://api.taboola.com/"]H +thestartmagazine.com +taboolanews.com + samsung.com +.banner_adK +thestartmagazine.com +taboolanews.com + samsung.com .sponsored_adìŒ* +08@R c.mgid.com^ +08@Rc.marketgid.com^ +*08@Rautocounter.lentainform.com^ +$ÿï08@Rservicer.mgid.com/wl +208@R$kienthuc.net.vn/services/zone-*.ads^ +08@R plo.vn/ads^ +*ÿï08@Rdashboard.adskeeper.co.uk/ +&ÿï08@Rads.mciladmanager.com/ +&ÿï08@Rpub.mciladmanager.com/ +'ÿï08@Rads.native.azerion.com/ +'ÿï08@Rpub.native.azerion.com/ + 08@Rjsc.idealmedia.io^ +/08@Ridealmedia.io^ +"$08@Rs-img.idealmedia.io^ + 08@Rcdn.idealmedia.io^ +($08@Rautocounter.idealmedia.io^ +%"08@Rservicer.idealmedia.io^ ++ÿï08@Rad-delivery.net/px.gif?ch=1 ++ÿï08@Rad-delivery.net/px.gif?ch=2 +#ÿï08@Rvideoplayerhub.com^ +3ÿï08@R#cdn.production.townsquareblogs.com^ +2ÿï08@R"cdn.publift.com/fuse/tag/*/fuse.js +$ÿï08@Rhb.vntsm.com/*/live/ +4"08@R&hb-ab.vntsm.com/v3/*/ad-manager.min.js +208@R$us.tags.newscgp.com/prod/prebid/nyp^ +|®* + autogidas.lt* + supermama.lt* +plius.lt* +alfa.lt* +alio.lt* + +tax.lt* +ve.lt08@R +upapi.net^ +¾µÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R ^upapi=true +„±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R ^upapi=true +‰�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R ^upapi=true +¼µ *$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R ^upapi=true +‚± *% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R ^upapi=true +‡� *" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R ^upapi=true +çµÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R4pagead2.googlesyndication.com/pagead/*/show_ads_impl +­±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R4pagead2.googlesyndication.com/pagead/*/show_ads_impl +²�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R4pagead2.googlesyndication.com/pagead/*/show_ads_impl +µÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R3lift.com/sync^ +ˆ±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R3lift.com/sync^ +��ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R3lift.com/sync^ +еÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@Radnxs.com/ib/static/usersync/ +–±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@Radnxs.com/ib/static/usersync/ +›�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@Radnxs.com/ib/static/usersync/ +еÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@Rrubiconproject.com/usync.html +–±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@Rrubiconproject.com/usync.html +›�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@Rrubiconproject.com/usync.html +ϵÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@Rgooglesyndication.com*/sodar +•±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@Rgooglesyndication.com*/sodar +š�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@Rgooglesyndication.com*/sodar +åµÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R2securepubads.g.doubleclick.net/pagead/ppub_config^ +«±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R2securepubads.g.doubleclick.net/pagead/ppub_config^ +°�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R2securepubads.g.doubleclick.net/pagead/ppub_config^ +×µÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +yahoosandbox.com* +yahoosandbox.net* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + teamblind.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + engadget.com* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + aol.co.uk* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + yahoo.com* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* + +yimg.com* +aol.com* +ginx.tv* +see.cam* +aol.ca* +aol.de* +rgb.to08@R$c.amazon-adsystem.com/aax2/apstag.js +�±ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +online-photo-converter.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +latribunerepublicaine.fr* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +fourchette-et-bikini.fr* +globalfilmlocations.net* +labradorlovingsouls.com* +liberation-champagne.fr* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +xn--allestrungen-9ib.at* +xn--allestrungen-9ib.ch* +xn--allestrungen-9ib.de* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +celebdirtylaundry.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +magazine-avantages.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +realclearpolitics.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +townandcountrymag.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +apartmenttherapy.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +goodhousekeeping.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +muscleandfitness.com* +mydreamsymbolism.com* +nationalenquirer.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +popularmechanics.com* +realcajunrecipes.com* +receitasagora.com.br* +refugedulacdulou.com* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +universoformulas.com* +whatismyagetoday.com* +whats-on-netflix.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +arrowheadaddict.com* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +lifeandstylemag.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +merriam-webster.com* +messagescelestes.ca* +minecraft-server.eu* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +programmerclick.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +soapoperadigest.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thepioneerwoman.com* +thymeforcooking.com* +truckersinsider.com* +ultimate-guitar.com* +usastorenetwork.com* +windowsbulletin.com* +womenshealthmag.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +barstoolsports.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +courrier-picard.fr* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +downdetector.co.il* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +housebeautiful.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +novelasligeras.net* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +paris-normandie.fr* +passeportsante.net* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +ricettafitness.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +simscommunity.info* +spirit-of-rock.com* +tarotdetiziana.com* +taskandpurpose.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +amazonadviser.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +claretvillans.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +countryliving.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +dailysoapdish.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +harpersbazaar.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +intouchweekly.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +lessorsavoyard.fr* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +saturdayblitz.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +sportscasting.com* +steelernation.com* +stormthepaint.com* +sveopoznatima.com* +telegramitalia.it* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +timesofisrael.com* +villages-news.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +aisnenouvelle.fr* +allestoringen.be* +allestoringen.nl* +awaybackgone.com* +beerealhoney.com* +bestproducts.com* +biggamelogic.com* +bleedingcool.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +closerweekly.com* +codebeautify.org* +computerhope.com* +concours2000.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +cosmopolitan.com* +crossword365.com* +dailyanswers.net* +diymarketers.com* +downdetector.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escaladenotas.cl* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +huskercorner.com* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +kleinanzeigen.de* +landyourlife.com* +ledemondujeu.com* +lepaysgessien.fr* +livemixtapes.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +motorbiscuit.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +post-gazette.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +runnersworld.com* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +shadowandact.com* +soapoperaspy.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +unionandblue.com* +valdovaccaro.com* +victoriabuzz.com* +wickedhorror.com* +wowisclassic.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codeleading.com* +codingahead.com* +cosmopolitan.fr* +dailycaller.com* +dialingcode.com* +digitized.house* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +extremetech.com* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +gelderlander.nl* +georgetakei.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +itslearning.com* +justjaredjr.com* +lavoixdunord.fr* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +netflixlife.com* +nflspinzone.com* +noorsrecipe.com* +nordlittoral.fr* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +percolately.com* +perezhilton.com* +pistonheads.com* +pregnanteve.com* +primerahora.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +radaronline.com* +retailmenot.com* +righttrivia.com* +risingapple.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tasteofhome.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +timeanddate.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +9to5google.com* +aa-fishing.com* +aerialrain.com* +ampproject.net* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +boursorama.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +comicsands.com* +comingsoon.net* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +elnuevodia.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +iflscience.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +lest-eclair.fr* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +magicmaman.com* +mariamarin.com* +marieclaire.fr* +menshealth.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +oprahdaily.com* +orangefizz.net* +paddock-gp.com* +parismatch.com* +pausecafein.fr* +portanapoli.de* +precincttv.com* +prevention.com* +redbookmag.com* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shondaland.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +tennisactu.net* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +toutgagner.com* +treatnheal.com* +turbopages.org* +usmagazine.com* +viamichelin.fr* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* +zvg-online.net* + abc-kinder.de* + akinator.mobi* + amazonaws.com* + animalhow.com* + apkmirror.com* + appamatix.com* + archdaily.com* + bakealish.com* + bicycling.com* + cademedia.com* + cenicienta.fr* + chefsimon.com* + comoapple.com* + countryle.com* + cuisineaz.com* + dailywire.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + elledecor.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + horoscope.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + justjared.com* + kididdles.com* + lardennais.fr* + lemessager.fr* + loudbeats.org* + mamytwink.com* + meteocity.com* + moneymint.com* + mrxstitch.com* + musescore.com* + nouvelobs.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + seventeen.com* + skysports.com* + smartconso.fr* + soccerway.com* + speedtest.net* + starrymag.com* + stereogum.com* + super-fute.be* + template.city* + thekitchn.com* + theparking.eu* + tvinsider.com* + tvstanici.net* + uspspoint.com* + viedemerde.fr* + weatherpr.com* + wolkenweit.de* + womansday.com* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + arkadium.com* + bizsugar.com* + blogchef.net* + careerdp.com* + cargurus.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dailydot.com* + destentor.nl* + dubaiofw.com* + eafinder.com* + examveda.com* + fansided.com* + farmchat.com* + fishlore.com* + freesion.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + huffpost.com* + ichefpro.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + latribune.fr* + learnesl.net* + leboncoin.fr* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + maariv.co.il* + mashable.com* + minecraft.fr* + moredirt.com* + muchfeed.com* + newsweek.com* + paruvendu.fr* + playerone.tv* + pollking.com* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + shefinds.com* + skytamil.net* + sp-today.com* + techruth.com* + thedrive.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + 9to5mac.com* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + bndestem.nl* + boxemag.com* + buglord.com* + cargurus.ca* + cnabuzz.com* + complex.com* + cubanet.org* + dexerto.com* + dpgmedia.nl* + drawize.com* + electrek.co* + eslgold.com* + esquire.com* + finbold.com* + fmylife.com* + gameblog.fr* + goodnite.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + larousse.fr* + lasavoie.fr* + mamanly.com* + metro.co.uk* + milepro.com* + modsims4.fr* + pagesix.com* + papelea.com* + paroles.net* + plantte.com* + playmsn.com* + rentola.com* + societe.com* + teachoo.com* + telerama.fr* + thedodo.com* + thekeea.com* + toreba.plus* + tubantia.nl* + veranda.com* + vroegert.nl* + +10roar.com* + +askmen.com* + +beacar.com* + +boston.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +d-block.fr* + +delish.com* + +dexerto.es* + +dexerto.fr* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +laposte.fr* + +lemonde.fr* + +lepoint.fr* + +marathi.tv* + +meteo60.fr* + +mydict.com* + +noobie.com* + +nypost.com* + +pcsteps.gr* + +popsci.com* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +stylist.fr* + +tab-tv.com* + +uproxx.com* + +usnews.com* + +waaytv.com* + +yosper.com* + algrim.co* + auto24.de* + bingj.com* + clclt.com* + hobbr.com* + ipshu.com* + jpost.com* + kitco.com* + larvf.com* + lunion.fr* + mapio.net* + mappy.com* + orange.fr* + pcmag.com* + quora.com* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +elle.com* + +fccid.io* + +fnaim.fr* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +kitv.com* + +lejdd.fr* + +lilo.org* + +msry.org* + +turbo.fr* + +vvng.com* + +xcdn.app* +deco.fr* +ign.com* +rtl2.fr* +urlz.fr* +pzc.nl* +rtl.fr* +sny.tv* +tva.fr* +ad.nl* +bd.nl* +ed.nl08@R$c.amazon-adsystem.com/aax2/apstag.js +¢�ÿï*" + allfreecrochetafghanpatterns.com* +allfreeslowcookerrecipes.com* +diariodocentrodomundo.com.br* +jornalcorreiodacidade.com.br* +allfreecasserolerecipes.com* +everydaydiabeticrecipes.com* +jornaldacidadeonline.com.br* +allfreechristmascrafts.com* +coloradohometownweekly.com* +communitycollegereview.com* +dividendstocksresearch.com* +footballtransfertavern.com* +optionstradingresearch.com* +scholarshipscorner.website* +wordswithfriends2cheat.com* +allfreecopycatrecipes.com* +biblicalviewondivorce.com* +comprobareuromillones.com* +faveglutenfreerecipes.com* +footballleagueworld.co.uk* +preferredstockchannel.com* +thebestdessertrecipes.com* +theculinarychronicles.com* +allesoversterrenkunde.nl* +boardingschoolreview.com* +bostonbulldogshockey.com* +broomfieldenterprise.com* +canoncitydailyrecord.com* +centralillinoisproud.com* +conchovalleyhomepage.com* +hawaiitribune-herald.com* +historicalstockprice.com* +multiversocomicon.com.br* +scholarshipsforwomen.net* +thefootballbrainiacs.com* +weeklyinvestoralerts.com* +arevistadamulher.com.br* +collegescholarships.org* +digitalartsonline.co.uk* +dynamicwealthreport.com* +favesouthernrecipes.com* +nursingscholarships.org* +privateschoolreview.com* +searchenginejournal.com* +stockoptionschannel.com* +taranakidailynews.co.nz* +weather-and-climate.com* +xn--allestrungen-9ib.de* +advertiser-tribune.com* +allfreediyweddings.com* +allfreepapercrafts.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +canadastockchannel.com* +cheapthriftyliving.com* +competition-finder.com* +constructionmentor.net* +crazydaysandnights.net* +diariodelaltoaragon.es* +dijkenwaardcentraal.nl* +dontwasteyourmoney.com* +energystockchannel.com* +favehealthyrecipes.com* +fourstateshomepage.com* +halifaxdogventures.com* +legalknowledgebase.com* +manawatustandard.co.nz* +pann-choa.blogspot.com* +pennystockresearch.com* +protradingresearch.com* +publicschoolreview.com* +resultadoschispazo.com* +valueinvestingnews.com* +wiscassetnewspaper.com* +activityvillage.co.uk* +allfreekidscrafts.com* +batteryuniversity.com* +burlington-record.com* +culinaireambiance.com* +diariodepontevedra.es* +essentiallysports.com* +everythinglubbock.com* +historycollection.com* +horseracingnation.com* +legalinsurrection.com* +lelogicielgratuit.com* +magazinedelledonne.it* +marketingsentinel.com* +moneyinvestexpert.com* +mundoazulgrana.com.ar* +mychamplainvalley.com* +stocksplithistory.com* +thedragonflywoman.com* +thelogicofscience.com* +theonlineinvestor.com* +thoughtfultattoos.com* +yourcentralvalley.com* +birthdaymessages.net* +carasycaretas.com.uy* +convert-my-image.com* +dvdsreleasedates.com* +florida24network.com* +guitarchords.country* +huelvainformacion.es* +infofamouspeople.com* +insidepacksports.com* +irishsportsdaily.com* +journal-advocate.com* +larrybrownsports.com* +lehighvalleylive.com* +percentagefinder.com* +sanduskyregister.com* +sheffieldforum.co.uk* +southlandtimes.co.nz* +techinvestornews.com* +thedenverchannel.com* +thelogicalindian.com* +themeparktourist.com* +thestudentroom.co.uk* +travelandleisure.com* +tristatehomepage.com* +12gebrauchtwagen.de* +allfreeknitting.com* +americanlookout.com* +armstrongmywire.com* +arousinggrammar.com* +avvocatoandreani.it* +bestblackfriday.com* +crystalbenefits.com* +denhaagcentraal.net* +dividendchannel.com* +famousbirthdays.com* +footballfancast.com* +goodnewsnetwork.org* +gradecalculator.com* +holdingschannel.com* +investchronicle.com* +jamaica-gleaner.com* +jamaicaobserver.com* +lantidiplomatico.it* +marketnewsvideo.com* +markhambaseball.com* +mendocinobeacon.com* +mybendbroadband.com* +peopleenespanol.com* +procyclingstats.com* +rendabrasileira.com* +saharareporters.com* +synonyme-du-mot.com* +texomashomepage.com* +thebestsocial.media* +voetbalnederland.nl* +washingtontimes.com* +westernslopenow.com* +westhawaiitoday.com* +wordfeud-helper.com* +wordsunscramble.com* +aalsmeervandaag.nl* +allpeoplequilt.com* +besteveralbums.com* +bestmusiclists.com* +birthdayfrenzy.com* +caraotadigital.net* +cincinnatibell.net* +companycheck.co.uk* +crooksandliars.com* +cyclonefanatic.com* +dealsofamerica.com* +diariodesevilla.es* +diariosigloxxi.com* +discordbotlist.com* +economistjurist.es* +embeddeddesign.org* +familyhandyman.com* +frequencycheck.com* +gamerevolution.com* +helpsavenature.com* +hindustantimes.com* +insuredandmore.com* +internetgekkies.nl* +joaquinbarroso.com* +lacremedugaming.fr* +lanuevacronica.com* +melaterevancha.com* +mysuburbanlife.com* +mywabashvalley.com* +nacionalloteria.es* +news5cleveland.com* +officialcharts.com* +pinerivertimes.com* +postandcourier.com* +premiumtimesng.com* +ratemyfishtank.com* +resultadostris.com* +rochesterfirst.com* +siouxlandproud.com* +southernliving.com* +ssoridethrough.com* +stocksregister.com* +theblackfriday.com* +thegolfnewsnet.com* +thewindowsclub.com* +thoughtcatalog.com* +timaruherald.co.nz* +tipsybartender.com* +untappedcities.com* +waikatotimes.co.nz* +wordfeudwoorden.nl* +abcactionnews.com* +advocate-news.com* +allfreesewing.com* +asianhobbyist.com* +beautisecrets.com* +carrieretijger.nl* +clickjogos.com.br* +collegegrants.org* +coloradodaily.com* +cryptobenelux.com* +denvergazette.com* +diyideacenter.com* +durangoherald.com* +economictimes.com* +europe-echecs.com* +financialpost.com* +hardcoregamer.com* +idownloadblog.com* +inflationdata.com* +insidermonkey.com* +interviewarea.com* +iphoneblog.com.br* +lainformacion.com* +mabelandmoxie.com* +marktenmarkten.nl* +marlexpress.co.nz* +marthastewart.com* +mediacomtoday.com* +metalschannel.com* +midwestliving.com* +minecraftlist.org* +montanasports.com* +motaclarity.co.uk* +moviecultists.com* +newsnationnow.com* +nieuw-volendam.nl* +observalgerie.com* +originalnews.nico* +ourquadcities.com* +pastemagazine.com* +powerlineblog.com* +primerinforme.com* +psychologenie.com* +rateyourmusic.com* +recht-finanzen.de* +scales-chords.com* +sciencestruck.com* +scrabblehelper.nl* +scrabblehilfe.com* +searchandnews.com* +siliconvalley.com* +steelersdepot.com* +stockinvestor.com* +teleticaradio.com* +terrapintimes.com* +thedailybeast.com* +todosloshechos.es* +tradingcharts.com* +valleycentral.com* +vechtsportinfo.nl* +video-spotter.com* +wearegreenbay.com* +webwoordenboek.nl* +windowsreport.com* +worldfootball.net* +alleantworten.de* +appunwrapper.com* +aptparenting.com* +astrologybay.com* +autogespot.co.uk* +besthealthmag.ca* +borderreport.com* +catchingnews.com* +cheeseheadtv.com* +collegegrant.net* +convertunits.com* +cookinglight.com* +cookingqueens.nl* +dailyfaceoff.com* +deniseminger.com* +enperspectiva.uy* +entertainism.com* +fashionhance.com* +fitnessvigil.com* +foot-algerie.com* +fox5sandiego.com* +freerealtime.com* +funsubstance.com* +gewoonvoorhem.nl* +givemegroups.com* +healthhearty.com* +hellogiggles.com* +hiphoplately.com* +holisticzine.com* +jamaica-star.com* +kliknieuwsoss.nl* +kochenmituns.com* +leaguelineup.com* +liepajniekiem.lv* +ligadosgames.com* +linuxcapable.com* +lovebondings.com* +monitoreamos.com* +myhighplains.com* +mysticurious.com* +nationalpost.com* +natlawreview.com* +nelsonmail.co.nz* +newschannel5.com* +nofilmschool.com* +notitarde.com.ve* +nubeterengels.nl* +omroepmeierij.nl* +opinionfront.com* +pentaxrumors.com* +petershotnews.nl* +profitquotes.com* +readersdigest.ca* +researchgate.net* +revistaronda.net* +seattletimes.com* +sinonimos.com.br* +socialmettle.com* +softoniclabs.com* +somoskudasai.com* +sorteador.com.br* +spiritualray.com* +splithistory.com* +sportacentrs.com* +sportsaspire.com* +subrayado.com.uy* +techbargains.com* +techplanet.today* +tellyreviews.com* +timesofmalta.com* +voetbalnieuws.be* +wantedinrome.com* +weatherbugsc.com* +weertdegekste.nl* +woodmagazine.com* +wrestlinginc.com* +abovethelaw.com* +adtechdaily.com* +albertonews.com* +androidworld.be* +androidworld.nl* +anonshacker.com* +asianjunkie.com* +asiantrader.biz* +askamanager.org* +autoscout24.com* +ballotpedia.org* +biologywise.com* +blackfriday.com* +bostonglobe.com* +centropagina.it* +centurylink.com* +centurylink.net* +cnyhomepage.com* +decordezine.com* +definiciona.com* +dehavenloods.nl* +diariolibre.com* +dinarrecaps.com* +dontpayfull.com* +eluniversal.com* +erienewsnow.com* +fantasypros.com* +financeband.com* +foodandwine.com* +foot-africa.com* +fox17online.com* +gamerescape.com* +giftinglory.com* +greilmarcus.net* +hailvarsity.com* +hawaiiantel.net* +herhaleness.com* +historyplex.com* +holdtoreset.com* +hotdeals360.com* +isteshaltbar.de* +leicarumors.com* +leoadambiga.com* +lisanneleeft.nl* +macrojuegos.com* +marie-claire.es* +mercurynews.com* +milanuncios.com* +missionself.com* +mtggoldfish.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nikonrumors.com* +nwahomepage.com* +nydailynews.com* +ozarksfirst.com* +penbaypilot.com* +photorumors.com* +pointstreak.com* +pokellector.com* +pokemonkaart.nl* +programmitv.com* +quotabulary.com* +reviewtimes.com* +rtvdordrecht.nl* +scrapingbee.com* +showbizzsite.be* +showbizztime.be* +soccerstats.com* +softonic-ar.com* +softonic-id.com* +softonic-th.com* +softonic.com.br* +softonic.com.tr* +sourceforge.net* +stylebistro.com* +tastessence.com* +techadvisor.com* +techconnect.com* +technicpack.net* +the-journal.com* +theadvocate.com* +theplaylist.net* +thingiverse.com* +trendupdeal.com* +vacayholics.com* +vagalume.com.br* +vanguardngr.com* +wetteronline.at* +wetteronline.ch* +wetteronline.de* +whosthat360.com* +wielernieuws.be* +wistjijdital.nl* +wordfeudhelp.nl* +zimbracloud.com* +112drachten.nl* +adnamerica.com* +allrecipes.com* +animalsake.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* +basketnews.com* +boredpanda.com* +breezeline.com* +calumsblog.com* +cartermatt.com* +centurytel.net* +coolrom.com.au* +cowcotland.com* +curseforge.com* +dallasnews.com* +dancepoise.com* +demediagids.nl* +descifrado.com* +discuss.com.hk* +eatingwell.com* +eliteguias.com* +elnacional.com* +elpensante.com* +elpolitico.com* +etfchannel.com* +favequilts.com* +fiches-auto.fr* +football365.fr* +futbolretro.es* +gadgets360.com* +gamebanana.com* +gamesbasis.com* +gardenerdy.com* +globaltimes.cn* +gnashockey.com* +homequicks.com* +indiatimes.com* +jornada.com.mx* +lawinsider.com* +livefutbol.com* +lovereality.nl* +motorsport.com* +movieplayer.it* +multiplayer.it* +netblogpro.com* +newsheater.com* +nichegamer.com* +nuevaya.com.ni* +nzherald.co.nz* +ocregister.com* +oregonlive.com* +pahomepage.com* +penlighten.com* +phonearena.com* +promobutler.be* +realsimple.com* +roddelpraat.nl* +rogerebert.com* +sfasawmill.com* +simplemost.com* +slippedisc.com* +songlyrics.com* +suddenlink.net* +technorati.com* +the-star.co.ke* +thecourier.com* +thehealthy.com* +toucharger.com* +travelmiso.com* +ustravelia.com* +weatherbug.com* +wedessence.com* +windstream.net* +yieldchart.com* +yourbigsky.com* +zeevannamen.nl* + 12neuwagen.de* + 247wallst.com* + ac-illust.com* + accessify.com* + allaccess.com* + altafiber.net* + arthearty.com* + atlantico.net* + autogespot.cn* + autogespot.de* + autogespot.es* + autogespot.fr* + autogespot.it* + autogespot.pl* + autogespot.rs* + autogespot.us* + autohebdo.net* + autoplenum.at* + autoplenum.de* + autosport.com* + autotrader.ca* + basketnews.lt* + buonissimo.it* + chartzero.com* + chunkbase.com* + cleveland.com* + columbian.com* + commodity.com* + cracknewz.com* + dailypaws.com* + dcnewsnow.com* + desertsun.com* + dierenfun.com* + dissapore.com* + dompost.co.nz* + eduzenith.com* + elfarandi.com* + emestrada.org* + factinate.com* + filehippo.com* + filehorse.com* + fmttmboro.com* + fox21news.com* + fox44news.com* + fox47news.com* + fox56news.com* + genealogy.com* + gobiznext.com* + gocollege.com* + hughesnet.com* + informnny.com* + insideevs.com* + iranianuk.com* + jamaicans.com* + kprofiles.com* + lacaraota.com* + lapatilla.com* + listverse.com* + makeuseof.com* + mandatory.com* + megabolsa.com* + melodyful.com* + meridiano.net* + miarevista.es* + moneymade.com* + myrecipes.com* + omroeppenm.nl* + partyjoys.com* + petapixel.com* + petponder.com* + phonemore.com* + plentifun.com* + qa-legacy.com* + quifinanza.it* + raskakcija.lt* + redactie24.be* + shabble.co.uk* + showbizz24.be* + signalscv.com* + soccernews.nl* + speedmeter.de* + thedelite.com* + tigerbait.com* + trendalert.nl* + upinthesky.nl* + upmatters.com* + urgente24.com* + waterkant.net* + webtribune.rs* + wheelzine.com* + wmar2news.com* + wordfeud.help* + wordpress.com* + yourbasin.com* + 20minutos.es* + 247tempo.com* + 3newsnow.com* + 411mania.com* + 8newsnow.com* + adpushup.com* + allsides.com* + amprensa.com* + animotaku.fr* + apkcombo.com* + autogidas.lt* + barchart.com* + baystreet.ca* + beautydea.it* + betanews.com* + birdeden.com* + bodytomy.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + craftcue.com* + diarimes.com* + domoplius.lt* + emojicut.com* + europasur.es* + filehippo.de* + filehippo.pl* + fox13now.com* + freecads.com* + fulldeals.fr* + futbolme.com* + gamepress.gg* + gamerant.com* + gamestar.com* + gamestry.com* + gazettes.com* + gulflive.com* + hockeydb.com* + hogville.net* + indtech.club* + infobolsa.es* + jmetervn.com* + keloland.com* + ktalnews.com* + leganerd.com* + lexulous.com* + lingojam.com* + livemint.com* + livingly.com* + localsyr.com* + lucianne.com* + macworld.com* + mafaro.co.uk* + malagahoy.es* + malgusto.com* + masslive.com* + mediaite.com* + mygrande.com* + mygrande.net* + ndnation.com* + nicovideo.jp* + pennlive.com* + photo-ac.com* + pokemongo.nl* + price.com.hk* + reisleven.nl* + rpirooms.com* + scientias.nl* + selection.ca* + sicem365.com* + siviaggia.it* + slashdot.org* + softonic.com* + ssh-free.com* + suntimes.com* + supermama.lt* + syracuse.com* + techhive.com* + techpulse.be* + teletica.com* + thechive.com* + triblive.com* + truvista.net* + tunefind.com* + turnto23.com* + uploadvr.com* + vialtest.com* + vipnieuws.nl* + voetbal24.be* + webwereld.nl* + wgnradio.com* + yourerie.com* + zumfahren.de* + arcamax.com* + avftt.co.uk* + babyhelp.nl* + bmwblog.com* + breakers.tv* + brproud.com* + catappy.com* + courttv.com* + denver7.com* + dlisted.com* + dogappy.com* + dogtime.com* + eptrail.com* + football.fr* + footnews.be* + fortune.com* + fox2now.com* + fox4now.com* + foxnews.com* + gamepro.com* + gazette.com* + ikenmama.nl* + instyle.com* + isaechia.it* + itsrosy.com* + klusidee.nl* + laposte.net* + lfpress.com* + ljworld.com* + macworld.es* + medisite.fr* + milonic.com* + neopets.com* + nxstrib.com* + parents.com* + pcbolsa.com* + pcworld.com* + phoneia.com* + pregunta.pe* + press.co.nz* + redcafe.net* + shopgids.nl* + showblad.nl* + skoften.net* + softonic.cn* + softonic.jp* + softonic.kr* + softonic.nl* + softonic.pl* + softonic.vn* + sport247.be* + sport365.fr* + stuff.co.nz* + supereva.it* + synacor.com* + tbrnews.com* + thehill.com* + thevore.com* + upickem.net* + vaughn.live* + virgilio.it* + visalist.io* + walla.co.il* + wiproud.com* + woorden.app* + +10news.com* + +adjinn.com* + +aidedd.org* + +disqus.com* + +diwmotz.nl* + +draugas.lt* + +elmundo.es* + +fem-fem.nl* + +finviz.com* + +forbes.com* + +fox4kc.com* + +ghacks.net* + +go-vip.net* + +google.com* + +gp1.com.br* + +gpinfo.com* + +health.com* + +heraldo.es* + +juegos.net* + +kivitv.com* + +kristv.com* + +kztv10.com* + +larazon.es* + +legacy.com* + +lespac.com* + +macwelt.de* + +man-man.nl* + +menwit.com* + +motor1.com* + +mrfood.com* + +myfox8.com* + +nasdaq.com* + +news10.com* + +nxsttv.com* + +offers.com* + +pcworld.es* + +pcworld.pl* + +people.com* + +qcnews.com* + +radionl.fm* + +reality.nl* + +reddit.com* + +ringtv.com* + +showmag.nl* + +silive.com* + +texags.com* + +theprp.com* + +uwants.com* + +vringe.com* + +vrustl.com* + +wfxrtv.com* + +womanly.nl* + +woodtv.com* + +wowktv.com* + +wowway.com* + +wowway.net* + +wsfltv.com* + +wvnstv.com* + +zimbio.com* + 4-4-2.com* + 6sqft.com* + abc15.com* + abc27.com* + atomix.vg* + cbs17.com* + cbs42.com* + chron.com* + ezgif.com* + fox16.com* + fox40.com* + fox59.com* + games.net* + gofile.io* + gossip.it* + home.blog* + ieskok.lt* + infonu.nl* + kgun9.com* + khon2.com* + kron4.com* + kxnet.com* + ladige.it* + lex18.com* + libero.it* + lonny.com* + mlive.com* + nbc26.com* + nbc4i.com* + nelpr.com* + pcwelt.de* + phl17.com* + planet.fr* + playtv.fr* + pronto.es* + runrun.es* + senpai.gg* + shape.com* + sports.fr* + stack.com* + tukker.fm* + usssa.com* + vinted.lt* + vpitv.com* + wgntv.com* + who13.com* + wweek.com* + +10to5.in* + +art.blog* + +cars.com* + +cars.com* + +cw33.com* + +cw39.com* + +delfi.lt* + +delfi.lv* + +dilei.it* + +f1max.nl* + +fox8.com* + +gvtc.com* + +inbox.lt* + +jauns.lv* + +kark.com* + +katc.com* + +kbzk.com* + +kdvr.com* + +kena.com* + +ketk.com* + +kfor.com* + +kget.com* + +kjrh.com* + +klfy.com* + +koaa.com* + +koin.com* + +kpax.com* + +krqe.com* + +krtv.com* + +ksby.com* + +kshb.com* + +ksnt.com* + +ktla.com* + +ktnv.com* + +ktsm.com* + +ktvh.com* + +ktvq.com* + +kxan.com* + +kxlf.com* + +kxlh.com* + +kxxv.com* + +latin.it* + +manly.nl* + +melty.fr* + +mudoo.be* + +nodq.com* + +nola.com* + +o0bg.com* + +speed.io* + +time.com* + +tmj4.com* + +unity.nu* + +vroom.be* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wcpo.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkbw.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wptv.com* + +wrbl.com* + +wric.com* + +wrtv.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtkr.com* + +wtnh.com* + +wtrf.com* + +wtvr.com* + +wtxl.com* + +wwlp.com* + +wxyz.com* + +wytv.com* +0297.nl* +alfa.lt* +alio.lt* +bhg.com* +braw.nl* +cbr.com* +ccm.net* +guys.nl* +ksn.com* +mopo.de* +news.am* +pch.com* +psu.com* +sdna.gr* +tds.net* +tmz.com* +to10.gr* +al.com* +ew.com* +fok.nl* +gic.nl* +igo.nl* +nj.com* +sf.net* +tpo.nl* +w2g.tv* +xgn.nl* +bb.lv* +ve.lt* +ze.nl* +u.gg08@R$c.amazon-adsystem.com/aax2/apstag.jsdiv[id*="ScriptRoot"]$ div[id*="ScriptRoot"]:not(.eyeo))%div[data-type="_mgwidget"]:not(.eyeo)div[id*="MarketGid"]!div[id^="M"][id*="Composite"]a[href*="idealmedia.io"]–µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.toins.adsbygoogleü°% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nlins.adsbygoogle��" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.ggins.adsbygoogle™µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.to[id^="div-gpt-ad"]ÿ°% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nl[id^="div-gpt-ad"]Ç× +;ÿï* + +delfi.lt* + +delfi.lv08@Radx.adform.net/adx^ +Lÿï* + +delfi.lt* + +delfi.lv08@R$s1.adform.net/banners/scripts/adx.js +Lÿï* + +delfi.lt* + +delfi.lv08@R$s1-af.dcdn.lt/banners/scripts/adx.js +Êÿï* +autoscout24.com* +autoscout24.at* +autoscout24.de* +autoscout24.fr* +autoscout24.it* +autoscout24.nl* +autoscout24.pl* + autoplenum.de08@R*ads.pubmatic.com/AdServer/js/pwt/*/pwt.js^ +6ÿï* +autoscout24.pl08@Rcreativecdn.com/tags +7ÿï* +autoscout24.pl08@Rfallback.autoscout24. +5 * +autoscout24.pl08@Rfallback.autoscout24. +aÿï* +autoscout24.de08@R?autoscout24.de/assets/financeslice-detail/javascripts/ad.min.js +—ÿï* +autoscout24.com* +autoscout24.at* +autoscout24.de* +autoscout24.it* +autoscout24.nl08@R,securepubads.g.doubleclick.net/tag/js/gpt.js„�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.gg[id^="div-gpt-ad"]šµ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.todiv[id^="div-gpt-"]€±% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nldiv[id^="div-gpt-"]…�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.ggdiv[id^="div-gpt-"]§µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.to iframe[width="728"][height="90"]�±% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nl iframe[width="728"][height="90"]’�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.gg iframe[width="728"][height="90"]¨µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.to!iframe[width="300"][height="250"]ޱ% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nl!iframe[width="300"][height="250"]“�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.gg!iframe[width="300"][height="250"]•µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.to[id^="aswift"]û°% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nl[id^="aswift"]€�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.gg[id^="aswift"]¢µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.toame^="google_ads_iframe"]ˆ±% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nlame^="google_ads_iframe"]��" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.ggame^="google_ads_iframe"] µ$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.todiv[data-google-query-id]†±% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nldiv[data-google-query-id]‹�" + allfreecrochetafghanpatterns.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +todosloshechos.es +tradingcharts.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.ggdiv[data-google-query-id]Ÿ²$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +yahoosandbox.net +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + teamblind.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + engadget.com + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + aol.co.uk + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + yahoo.com + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +aol.com +ginx.tv +see.cam +aol.ca +aol.de +rgb.to.Ad-Container:not(.adsbygoogle)Œ±% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +online-photo-converter.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +latribunerepublicaine.fr +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +fourchette-et-bikini.fr +globalfilmlocations.net +labradorlovingsouls.com +liberation-champagne.fr +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +xn--allestrungen-9ib.at +xn--allestrungen-9ib.ch +xn--allestrungen-9ib.de +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +celebdirtylaundry.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +magazine-avantages.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +realclearpolitics.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +townandcountrymag.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +apartmenttherapy.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +goodhousekeeping.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +muscleandfitness.com +mydreamsymbolism.com +nationalenquirer.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +popularmechanics.com +realcajunrecipes.com +receitasagora.com.br +refugedulacdulou.com +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +universoformulas.com +whatismyagetoday.com +whats-on-netflix.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +arrowheadaddict.com +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +downdetector.com.ar +downdetector.com.au +downdetector.com.br +downdetector.com.co +downdetector.web.tr +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +lifeandstylemag.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +merriam-webster.com +messagescelestes.ca +minecraft-server.eu +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +programmerclick.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +soapoperadigest.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thepioneerwoman.com +thymeforcooking.com +truckersinsider.com +ultimate-guitar.com +usastorenetwork.com +windowsbulletin.com +womenshealthmag.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +barstoolsports.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +courrier-picard.fr +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +downdetector.co.il +downdetector.co.nz +downdetector.co.uk +downdetector.co.za +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +housebeautiful.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +novelasligeras.net +nytimesanswers.com +online-convert.com +orioleshangout.com +paris-normandie.fr +passeportsante.net +readylifestyle.com +rebootmygarage.com +restapiexample.com +ricettafitness.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +simscommunity.info +spirit-of-rock.com +tarotdetiziana.com +taskandpurpose.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +amazonadviser.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +claretvillans.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +countryliving.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +dailysoapdish.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +harpersbazaar.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +intouchweekly.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +lessorsavoyard.fr +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +saturdayblitz.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +sportscasting.com +steelernation.com +stormthepaint.com +sveopoznatima.com +telegramitalia.it +thefinertimes.com +thetarotguide.com +theyumyumclub.com +timesofisrael.com +villages-news.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +aisnenouvelle.fr +allestoringen.be +allestoringen.nl +awaybackgone.com +beerealhoney.com +bestproducts.com +biggamelogic.com +bleedingcool.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +closerweekly.com +codebeautify.org +computerhope.com +concours2000.com +constitution.org +construct-ed.com +corona-teller.nl +cosmopolitan.com +crossword365.com +dailyanswers.net +diymarketers.com +downdetector.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escaladenotas.cl +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +huskercorner.com +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +kleinanzeigen.de +landyourlife.com +ledemondujeu.com +lepaysgessien.fr +livemixtapes.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +motorbiscuit.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +post-gazette.com +recruitment.guru +redargentina.com +routenplaner.app +runnersworld.com +schooldigger.com +scrabblemania.fr +sealwithease.com +shadowandact.com +soapoperaspy.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +unionandblue.com +valdovaccaro.com +victoriabuzz.com +wickedhorror.com +wowisclassic.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codeleading.com +codingahead.com +cosmopolitan.fr +dailycaller.com +dialingcode.com +digitized.house +downdetector.ae +downdetector.ca +downdetector.cl +downdetector.cz +downdetector.dk +downdetector.ec +downdetector.es +downdetector.fi +downdetector.fr +downdetector.gr +downdetector.hk +downdetector.hr +downdetector.hu +downdetector.id +downdetector.ie +downdetector.in +downdetector.it +downdetector.jp +downdetector.mx +downdetector.my +downdetector.no +downdetector.pe +downdetector.ph +downdetector.pk +downdetector.pl +downdetector.pt +downdetector.ro +downdetector.se +downdetector.sg +downdetector.sk +droidafrica.net +euro-muenzen.tv +expertpublic.fr +extremetech.com +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +gelderlander.nl +georgetakei.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +itslearning.com +justjaredjr.com +lavoixdunord.fr +maestraanita.it +melanieredd.com +netflixdeed.com +netflixlife.com +nflspinzone.com +noorsrecipe.com +nordlittoral.fr +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +percolately.com +perezhilton.com +pistonheads.com +pregnanteve.com +primerahora.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +radaronline.com +retailmenot.com +righttrivia.com +risingapple.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tasteofhome.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +timeanddate.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +9to5google.com +aa-fishing.com +aerialrain.com +ampproject.net +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +boursorama.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +comicsands.com +comingsoon.net +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +elnuevodia.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +iflscience.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +lest-eclair.fr +limitlesso.com +lostsaloon.com +lyricsgram.com +magicmaman.com +mariamarin.com +marieclaire.fr +menshealth.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +oprahdaily.com +orangefizz.net +paddock-gp.com +parismatch.com +pausecafein.fr +portanapoli.de +precincttv.com +prevention.com +redbookmag.com +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shondaland.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +tennisactu.net +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +toutgagner.com +treatnheal.com +turbopages.org +usmagazine.com +viamichelin.fr +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com +zvg-online.net + abc-kinder.de + akinator.mobi + amazonaws.com + animalhow.com + apkmirror.com + appamatix.com + archdaily.com + bakealish.com + bicycling.com + cademedia.com + cenicienta.fr + chefsimon.com + comoapple.com + countryle.com + cuisineaz.com + dailywire.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + elledecor.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + horoscope.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + justjared.com + kididdles.com + lardennais.fr + lemessager.fr + loudbeats.org + mamytwink.com + meteocity.com + moneymint.com + mrxstitch.com + musescore.com + nouvelobs.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + seventeen.com + skysports.com + smartconso.fr + soccerway.com + speedtest.net + starrymag.com + stereogum.com + super-fute.be + template.city + thekitchn.com + theparking.eu + tvinsider.com + tvstanici.net + uspspoint.com + viedemerde.fr + weatherpr.com + wolkenweit.de + womansday.com + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + arkadium.com + bizsugar.com + blogchef.net + careerdp.com + cargurus.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dailydot.com + destentor.nl + dubaiofw.com + eafinder.com + examveda.com + fansided.com + farmchat.com + fishlore.com + freesion.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + huffpost.com + ichefpro.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + latribune.fr + learnesl.net + leboncoin.fr + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + maariv.co.il + mashable.com + minecraft.fr + moredirt.com + muchfeed.com + newsweek.com + paruvendu.fr + playerone.tv + pollking.com + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + shefinds.com + skytamil.net + sp-today.com + techruth.com + thedrive.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + 9to5mac.com + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + bndestem.nl + boxemag.com + buglord.com + cargurus.ca + cnabuzz.com + complex.com + cubanet.org + dexerto.com + dpgmedia.nl + drawize.com + electrek.co + eslgold.com + esquire.com + finbold.com + fmylife.com + gameblog.fr + goodnite.fr + hairmag.org + hobbeasy.de + ipowatch.in + larousse.fr + lasavoie.fr + mamanly.com + metro.co.uk + milepro.com + modsims4.fr + pagesix.com + papelea.com + paroles.net + plantte.com + playmsn.com + rentola.com + societe.com + teachoo.com + telerama.fr + thedodo.com + thekeea.com + toreba.plus + tubantia.nl + veranda.com + vroegert.nl + +10roar.com + +askmen.com + +beacar.com + +boston.com + +bovees.com + +chordu.com + +cubshq.com + +d-block.fr + +delish.com + +dexerto.es + +dexerto.fr + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +laposte.fr + +lemonde.fr + +lepoint.fr + +marathi.tv + +meteo60.fr + +mydict.com + +noobie.com + +nypost.com + +pcsteps.gr + +popsci.com + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +stylist.fr + +tab-tv.com + +uproxx.com + +usnews.com + +waaytv.com + +yosper.com + algrim.co + auto24.de + bingj.com + clclt.com + hobbr.com + ipshu.com + jpost.com + kitco.com + larvf.com + lunion.fr + mapio.net + mappy.com + orange.fr + pcmag.com + quora.com + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +elle.com + +fccid.io + +fnaim.fr + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +kitv.com + +lejdd.fr + +lilo.org + +msry.org + +turbo.fr + +vvng.com + +xcdn.app +deco.fr +ign.com +rtl2.fr +urlz.fr +pzc.nl +rtl.fr +sny.tv +tva.fr +ad.nl +bd.nl +ed.nl.Ad-Container:not(.adsbygoogle)˜’" + allfreecrochetafghanpatterns.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +allfreeslowcookerrecipes.com +diariodocentrodomundo.com.br +jornalcorreiodacidade.com.br +allfreecasserolerecipes.com +everydaydiabeticrecipes.com +jornaldacidadeonline.com.br +allfreechristmascrafts.com +coloradohometownweekly.com +communitycollegereview.com +dividendstocksresearch.com +footballtransfertavern.com +optionstradingresearch.com +scholarshipscorner.website +wordswithfriends2cheat.com +allfreecopycatrecipes.com +biblicalviewondivorce.com +comprobareuromillones.com +faveglutenfreerecipes.com +footballleagueworld.co.uk +preferredstockchannel.com +thebestdessertrecipes.com +theculinarychronicles.com +allesoversterrenkunde.nl +boardingschoolreview.com +bostonbulldogshockey.com +broomfieldenterprise.com +canoncitydailyrecord.com +centralillinoisproud.com +conchovalleyhomepage.com +hawaiitribune-herald.com +historicalstockprice.com +multiversocomicon.com.br +scholarshipsforwomen.net +thefootballbrainiacs.com +weeklyinvestoralerts.com +arevistadamulher.com.br +collegescholarships.org +digitalartsonline.co.uk +dynamicwealthreport.com +favesouthernrecipes.com +freeclinicdirectory.org +nursingscholarships.org +privateschoolreview.com +searchenginejournal.com +stockoptionschannel.com +taranakidailynews.co.nz +weather-and-climate.com +xn--allestrungen-9ib.de +advertiser-tribune.com +allfreediyweddings.com +allfreepapercrafts.com +bigcountryhomepage.com +binghamtonhomepage.com +canadastockchannel.com +cheapthriftyliving.com +competition-finder.com +constructionmentor.net +crazydaysandnights.net +diariodelaltoaragon.es +dijkenwaardcentraal.nl +dontwasteyourmoney.com +energystockchannel.com +favehealthyrecipes.com +fourstateshomepage.com +halifaxdogventures.com +legalknowledgebase.com +manawatustandard.co.nz +pann-choa.blogspot.com +pennystockresearch.com +protradingresearch.com +publicschoolreview.com +resultadoschispazo.com +simplytrinicooking.com +valueinvestingnews.com +wiscassetnewspaper.com +activityvillage.co.uk +allfreekidscrafts.com +batteryuniversity.com +burlington-record.com +culinaireambiance.com +diariodepontevedra.es +essentiallysports.com +everythinglubbock.com +historycollection.com +horseracingnation.com +legalinsurrection.com +lelogicielgratuit.com +magazinedelledonne.it +marketingsentinel.com +moneyinvestexpert.com +mundoazulgrana.com.ar +mychamplainvalley.com +stocksplithistory.com +thedragonflywoman.com +thelogicofscience.com +theonlineinvestor.com +thoughtfultattoos.com +yourcentralvalley.com +birthdaymessages.net +carasycaretas.com.uy +convert-my-image.com +dvdsreleasedates.com +florida24network.com +guitarchords.country +huelvainformacion.es +infofamouspeople.com +insidepacksports.com +irishsportsdaily.com +journal-advocate.com +larrybrownsports.com +lehighvalleylive.com +paranormalschool.com +percentagefinder.com +sanduskyregister.com +sheffieldforum.co.uk +southlandtimes.co.nz +techinvestornews.com +thedenverchannel.com +thelogicalindian.com +themeparktourist.com +thestudentroom.co.uk +travelandleisure.com +tristatehomepage.com +12gebrauchtwagen.de +allfreeknitting.com +americanlookout.com +armstrongmywire.com +arousinggrammar.com +avvocatoandreani.it +bestblackfriday.com +crystalbenefits.com +denhaagcentraal.net +dividendchannel.com +famousbirthdays.com +footballfancast.com +goodnewsnetwork.org +gradecalculator.com +holdingschannel.com +investchronicle.com +jamaica-gleaner.com +jamaicaobserver.com +lantidiplomatico.it +marketnewsvideo.com +markhambaseball.com +mendocinobeacon.com +mybendbroadband.com +peopleenespanol.com +procyclingstats.com +rendabrasileira.com +saharareporters.com +synonyme-du-mot.com +texomashomepage.com +thebestsocial.media +voetbalnederland.nl +washingtontimes.com +westernslopenow.com +westhawaiitoday.com +wordfeud-helper.com +wordsunscramble.com +aalsmeervandaag.nl +allpeoplequilt.com +besteveralbums.com +besthorserider.com +bestmusiclists.com +birthdayfrenzy.com +caraotadigital.net +cincinnatibell.net +companycheck.co.uk +crooksandliars.com +cyclonefanatic.com +dealsofamerica.com +diariodesevilla.es +diariosigloxxi.com +discordbotlist.com +economistjurist.es +embeddeddesign.org +familyhandyman.com +frequencycheck.com +gamerevolution.com +helpsavenature.com +hindustantimes.com +insuredandmore.com +internetgekkies.nl +joaquinbarroso.com +lacremedugaming.fr +lanuevacronica.com +melaterevancha.com +mysuburbanlife.com +mywabashvalley.com +nacionalloteria.es +news5cleveland.com +officialcharts.com +onthegolfgreen.com +pinerivertimes.com +postandcourier.com +premiumtimesng.com +ratemyfishtank.com +resultadostris.com +rochesterfirst.com +siouxlandproud.com +southernliving.com +ssoridethrough.com +stocksregister.com +theblackfriday.com +thegolfnewsnet.com +thewindowsclub.com +thoughtcatalog.com +timaruherald.co.nz +tipsybartender.com +untappedcities.com +usconstitution.net +waikatotimes.co.nz +wordfeudwoorden.nl +abcactionnews.com +advocate-news.com +allfreesewing.com +asianhobbyist.com +beautisecrets.com +carrieretijger.nl +clickjogos.com.br +collegegrants.org +coloradodaily.com +cryptobenelux.com +denvergazette.com +diyideacenter.com +durangoherald.com +eatdrinkdeals.com +economictimes.com +europe-echecs.com +financialpost.com +hardcoregamer.com +idownloadblog.com +inflationdata.com +insidermonkey.com +interviewarea.com +iphoneblog.com.br +lainformacion.com +mabelandmoxie.com +marktenmarkten.nl +marlexpress.co.nz +marthastewart.com +mediacomtoday.com +metalschannel.com +midwestliving.com +minecraftlist.org +montanasports.com +motaclarity.co.uk +moviecultists.com +newsnationnow.com +nieuw-volendam.nl +observalgerie.com +originalnews.nico +ourquadcities.com +pastemagazine.com +powerlineblog.com +primerinforme.com +psychologenie.com +rateyourmusic.com +recht-finanzen.de +scales-chords.com +sciencestruck.com +scrabblehelper.nl +scrabblehilfe.com +searchandnews.com +siliconvalley.com +steelersdepot.com +stockinvestor.com +teleticaradio.com +terrapintimes.com +thedailybeast.com +thekonsulthub.com +todosloshechos.es +tradingcharts.com +underpargoals.com +valleycentral.com +vechtsportinfo.nl +video-spotter.com +wearegreenbay.com +webwoordenboek.nl +windowsreport.com +worldfootball.net +alleantworten.de +appunwrapper.com +aptparenting.com +astrologybay.com +autogespot.co.uk +besthealthmag.ca +borderreport.com +catchingnews.com +cheeseheadtv.com +collegegrant.net +convertunits.com +cookinglight.com +cookingqueens.nl +dailyfaceoff.com +deniseminger.com +enperspectiva.uy +entertainism.com +fashionhance.com +fitnessvigil.com +foot-algerie.com +fox5sandiego.com +freerealtime.com +funsubstance.com +gewoonvoorhem.nl +givemegroups.com +healthhearty.com +hellogiggles.com +hiphoplately.com +holisticzine.com +jailexchange.com +jamaica-star.com +kliknieuwsoss.nl +kochenmituns.com +leaguelineup.com +liepajniekiem.lv +ligadosgames.com +linuxcapable.com +lovebondings.com +monitoreamos.com +myhighplains.com +mysticurious.com +nationalpost.com +natlawreview.com +nelsonmail.co.nz +newschannel5.com +nofilmschool.com +notitarde.com.ve +nubeterengels.nl +omroepmeierij.nl +opinionfront.com +pentaxrumors.com +petershotnews.nl +profitquotes.com +readersdigest.ca +researchgate.net +revistaronda.net +seattletimes.com +sinonimos.com.br +socialmettle.com +softoniclabs.com +somoskudasai.com +sorteador.com.br +spiritualray.com +splithistory.com +sportacentrs.com +sportsaspire.com +subrayado.com.uy +techbargains.com +techplanet.today +tellyreviews.com +timesofmalta.com +voetbalnieuws.be +wantedinrome.com +weatherbugsc.com +weertdegekste.nl +woodmagazine.com +wrestlinginc.com +abovethelaw.com +adtechdaily.com +albertonews.com +androidworld.be +androidworld.nl +anonshacker.com +asianjunkie.com +asiantrader.biz +askamanager.org +autoscout24.com +ballotpedia.org +biologywise.com +blackfriday.com +bostonglobe.com +centropagina.it +centurylink.com +centurylink.net +cnyhomepage.com +decordezine.com +definiciona.com +dehavenloods.nl +diariolibre.com +dinarrecaps.com +dontpayfull.com +eluniversal.com +erienewsnow.com +fantasypros.com +financeband.com +foodandwine.com +foot-africa.com +fox17online.com +gamerescape.com +giftinglory.com +greilmarcus.net +hailvarsity.com +hawaiiantel.net +herhaleness.com +historyplex.com +holdtoreset.com +hotdeals360.com +isteshaltbar.de +leicarumors.com +leoadambiga.com +lisanneleeft.nl +macrojuegos.com +marie-claire.es +mercurynews.com +milanuncios.com +missionself.com +mtggoldfish.com +myarklamiss.com +mypanhandle.com +mystateline.com +mysterywire.com +mytwintiers.com +nikonrumors.com +nwahomepage.com +nydailynews.com +ozarksfirst.com +penbaypilot.com +photorumors.com +pointstreak.com +pokellector.com +pokemonkaart.nl +programmitv.com +quotabulary.com +reviewtimes.com +rtvdordrecht.nl +scrapingbee.com +showbizzsite.be +showbizztime.be +soccerstats.com +softonic-ar.com +softonic-id.com +softonic-th.com +softonic.com.br +softonic.com.tr +sourceforge.net +stylebistro.com +tastessence.com +techadvisor.com +techconnect.com +technicpack.net +the-journal.com +theadvocate.com +theplaylist.net +thingiverse.com +trendupdeal.com +vacayholics.com +vagalume.com.br +vanguardngr.com +wetteronline.at +wetteronline.ch +wetteronline.de +whosthat360.com +wielernieuws.be +wistjijdital.nl +wordfeudhelp.nl +zimbracloud.com +112drachten.nl +adnamerica.com +allrecipes.com +animalsake.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl +basketnews.com +boredpanda.com +breezeline.com +calumsblog.com +cartermatt.com +centurytel.net +coolrom.com.au +cowcotland.com +curseforge.com +dallasnews.com +dancepoise.com +demediagids.nl +descifrado.com +discuss.com.hk +eatingwell.com +eliteguias.com +elnacional.com +elpensante.com +elpolitico.com +etfchannel.com +favequilts.com +fiches-auto.fr +football365.fr +futbolretro.es +gadgets360.com +gamebanana.com +gamesbasis.com +gardenerdy.com +globaltimes.cn +gnashockey.com +homequicks.com +indiatimes.com +jornada.com.mx +lawinsider.com +livefutbol.com +lovereality.nl +maisfontes.com +motorsport.com +movieplayer.it +multiplayer.it +netblogpro.com +newsheater.com +nichegamer.com +nuevaya.com.ni +nzherald.co.nz +ocregister.com +oregonlive.com +pahomepage.com +penlighten.com +phonearena.com +promobutler.be +rccgonline.org +realsimple.com +roddelpraat.nl +rogerebert.com +sfasawmill.com +simplemost.com +slippedisc.com +songlyrics.com +suddenlink.net +technorati.com +the-star.co.ke +thecourier.com +thehealthy.com +toucharger.com +travelmiso.com +ustravelia.com +weatherbug.com +wedessence.com +windstream.net +yieldchart.com +yourbigsky.com +zeevannamen.nl + 12neuwagen.de + 247wallst.com + ac-illust.com + accessify.com + allaccess.com + altafiber.net + arthearty.com + atlantico.net + autogespot.cn + autogespot.de + autogespot.es + autogespot.fr + autogespot.it + autogespot.pl + autogespot.rs + autogespot.us + autohebdo.net + autoplenum.at + autoplenum.de + autosport.com + autotrader.ca + basketnews.lt + buonissimo.it + chartzero.com + chunkbase.com + cleveland.com + columbian.com + commodity.com + cracknewz.com + dailypaws.com + dcnewsnow.com + desertsun.com + dierenfun.com + dissapore.com + dompost.co.nz + eduzenith.com + elfarandi.com + emestrada.org + factinate.com + filehippo.com + filehorse.com + fmttmboro.com + fox21news.com + fox44news.com + fox47news.com + fox56news.com + genealogy.com + gobiznext.com + gocollege.com + hughesnet.com + informnny.com + insideevs.com + iranianuk.com + jamaicans.com + kprofiles.com + lacaraota.com + lapatilla.com + listverse.com + makeuseof.com + mandatory.com + megabolsa.com + melodyful.com + meridiano.net + miarevista.es + moneymade.com + myrecipes.com + omroeppenm.nl + partyjoys.com + petapixel.com + petponder.com + phonemore.com + phptpoint.com + plentifun.com + qa-legacy.com + quifinanza.it + raskakcija.lt + redactie24.be + shabble.co.uk + showbizz24.be + signalscv.com + soccernews.nl + speedmeter.de + thedelite.com + tigerbait.com + trendalert.nl + upinthesky.nl + upmatters.com + urgente24.com + waterkant.net + webtribune.rs + wheelzine.com + wmar2news.com + wordfeud.help + wordpress.com + yourbasin.com + 20minutos.es + 247tempo.com + 3newsnow.com + 411mania.com + 8newsnow.com + adpushup.com + allsides.com + amprensa.com + animotaku.fr + apkcombo.com + autogidas.lt + barchart.com + baystreet.ca + beautydea.it + betanews.com + birdeden.com + bodytomy.com + cbs4indy.com + cenlanow.com + counton2.com + craftcue.com + diarimes.com + domoplius.lt + emojicut.com + europasur.es + filehippo.de + filehippo.pl + fox13now.com + freecads.com + fulldeals.fr + futbolme.com + gamepress.gg + gamerant.com + gamestar.com + gamestry.com + gazettes.com + gulflive.com + hockeydb.com + hogville.net + indtech.club + infobolsa.es + jmetervn.com + keloland.com + ktalnews.com + leganerd.com + lexulous.com + lingojam.com + livemint.com + livingly.com + localsyr.com + lucianne.com + macworld.com + mafaro.co.uk + malagahoy.es + malgusto.com + masslive.com + mediaite.com + mygrande.com + mygrande.net + ndnation.com + nicovideo.jp + pennlive.com + photo-ac.com + pickytop.com + pokemongo.nl + price.com.hk + reisleven.nl + rpirooms.com + scientias.nl + selection.ca + sicem365.com + siviaggia.it + slashdot.org + softonic.com + ssh-free.com + suntimes.com + supermama.lt + syracuse.com + techhive.com + techpulse.be + teletica.com + thechive.com + triblive.com + truvista.net + tunefind.com + turnto23.com + uploadvr.com + vialtest.com + vipnieuws.nl + voetbal24.be + webwereld.nl + wgnradio.com + yourerie.com + zumfahren.de + arcamax.com + avftt.co.uk + babyhelp.nl + bmwblog.com + breakers.tv + brproud.com + catappy.com + courttv.com + denver7.com + dlisted.com + dogappy.com + dogtime.com + eptrail.com + football.fr + footnews.be + fortune.com + fox2now.com + fox4now.com + foxnews.com + gamepro.com + gazette.com + ikenmama.nl + instyle.com + isaechia.it + itsrosy.com + klusidee.nl + laposte.net + lfpress.com + ljworld.com + macworld.es + medisite.fr + milonic.com + neopets.com + nxstrib.com + ourplnt.com + parents.com + pcbolsa.com + pcworld.com + phoneia.com + pregunta.pe + press.co.nz + redcafe.net + shopgids.nl + showblad.nl + skoften.net + softonic.cn + softonic.jp + softonic.kr + softonic.nl + softonic.pl + softonic.vn + sport247.be + sport365.fr + stuff.co.nz + supereva.it + synacor.com + tbrnews.com + thehill.com + thevore.com + upickem.net + vaughn.live + virgilio.it + visalist.io + walla.co.il + webkams.com + wiproud.com + woorden.app + +10news.com + +adjinn.com + +aidedd.org + +disqus.com + +diwmotz.nl + +draugas.lt + +elmundo.es + +fem-fem.nl + +finviz.com + +forbes.com + +fox4kc.com + +ghacks.net + +go-vip.net + +google.com + +gp1.com.br + +gpinfo.com + +health.com + +heraldo.es + +juegos.net + +kivitv.com + +kristv.com + +kztv10.com + +larazon.es + +legacy.com + +lespac.com + +macwelt.de + +man-man.nl + +menwit.com + +motor1.com + +mrfood.com + +myfox8.com + +nasdaq.com + +news10.com + +nxsttv.com + +offers.com + +pcworld.es + +pcworld.pl + +people.com + +qcnews.com + +radionl.fm + +reality.nl + +reddit.com + +ringtv.com + +showmag.nl + +silive.com + +texags.com + +theprp.com + +uwants.com + +vringe.com + +vrustl.com + +wfxrtv.com + +womanly.nl + +woodtv.com + +wowktv.com + +wowway.com + +wowway.net + +wsfltv.com + +wvnstv.com + +zimbio.com + 4-4-2.com + 6sqft.com + abc15.com + abc27.com + atomix.vg + cbs17.com + cbs42.com + chron.com + ezgif.com + fox16.com + fox40.com + fox59.com + games.net + gofile.io + gossip.it + home.blog + ieskok.lt + infonu.nl + kgun9.com + khon2.com + kron4.com + kxnet.com + ladige.it + lex18.com + libero.it + lonny.com + mlive.com + nbc26.com + nbc4i.com + nelpr.com + pcwelt.de + phl17.com + planet.fr + playtv.fr + pronto.es + runrun.es + senpai.gg + shape.com + sports.fr + stack.com + tukker.fm + usssa.com + vinted.lt + vpitv.com + wgntv.com + who13.com + wweek.com + +10to5.in + +art.blog + +cars.com + +cars.com + +cw33.com + +cw39.com + +delfi.lt + +delfi.lv + +dilei.it + +f1max.nl + +fox8.com + +gvtc.com + +inbox.lt + +jauns.lv + +kark.com + +katc.com + +kbzk.com + +kdvr.com + +kena.com + +ketk.com + +kfor.com + +kget.com + +kjrh.com + +klfy.com + +koaa.com + +koin.com + +kpax.com + +krqe.com + +krtv.com + +ksby.com + +kshb.com + +ksnt.com + +ktla.com + +ktnv.com + +ktsm.com + +ktvh.com + +ktvq.com + +kxan.com + +kxlf.com + +kxlh.com + +kxxv.com + +latin.it + +manly.nl + +melty.fr + +mudoo.be + +nodq.com + +nola.com + +o0bg.com + +speed.io + +time.com + +tmj4.com + +unity.nu + +vroom.be + +wane.com + +wate.com + +wavy.com + +wboy.com + +wbtw.com + +wcia.com + +wcpo.com + +wdhn.com + +wfla.com + +wgno.com + +whnt.com + +wivb.com + +wjbf.com + +wjhl.com + +wjtv.com + +wkbn.com + +wkbw.com + +wkrg.com + +wkrn.com + +wlns.com + +wnct.com + +wpri.com + +wptv.com + +wrbl.com + +wric.com + +wrtv.com + +wsav.com + +wspa.com + +wtaj.com + +wtkr.com + +wtnh.com + +wtrf.com + +wtvr.com + +wtxl.com + +wwlp.com + +wxyz.com + +wytv.com +0297.nl +alfa.lt +alio.lt +bhg.com +braw.nl +cbr.com +ccm.net +guys.nl +ksn.com +mopo.de +news.am +pch.com +psu.com +sdna.gr +tds.net +tmz.com +to10.gr +al.com +ew.com +fok.nl +gic.nl +igo.nl +nj.com +sf.net +tpo.nl +w2g.tv +xgn.nl +bb.lv +ve.lt +ze.nl +u.gg.Ad-Container:not(.adsbygoogle)0 + ac-illust.com + photo-ac.com .google-ads: + ac-illust.com + photo-ac.com.google-ads-container + +delfi.lt.top-ad + +delfi.lt +.sticky-ad$ + +jauns.lv.sticky-ad-container" + +delfi.lv.sticky-ad-wrapper + +delfi.lt +.ad-marker + +delfi.lv.ad-text-label + +jauns.lv.ad__container + +jauns.lv.ad-giga-banner + basketnews.lt.ad_row! +ve.lt#block-adaboveheader +alio.lt #banner-top  +ve.lt.layout__region--ad + +delfi.lv .d-sm-block/ + autogidas.lt.no-print.view-bottom-media + autogidas.lt .list-media" +alio.lt#main-content-right +alio.lt +.margint10$ + autogidas.lt.reklama-300x250 + autogidas.lt .header-ann + domoplius.lt.headtop  +alfa.lt.reklamaTopFilled + +draugas.lt.rkl  + +draugas.lt.row.dr-ad-top� +autoscout24.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl .ad-top-slot“ +autoscout24.com +autoscout24.at +autoscout24.de +autoscout24.fr +autoscout24.it +autoscout24.nl +autoscout24.pl.cl-ad-billboarda +autoscout24.at +autoscout24.de +autoscout24.it +autoscout24.nl.osa-as24-placeholder) +autoscout24.itdiv[class^="AdTop"]( + +wowway.net#sc_read_header_banner6 + +wowway.net$.blocks_container-size_containerSize! +ballotpedia.org +.header-ad" +abovethelaw.com .ad--mobile­Ù +Uÿï* + laposte.net* + +laposte.fr08@R(cdn.adnext.fr/wrapper-login.laposte.*.js +@ÿï* + +laposte.fr08@R"cdn.adnext.fr/wrapper-laposte.*.js +@ÿï* + +laposte.fr08@R"cdn.adnext.fr/wrapper/laposte.*.js +Pÿï* + laposte.net* + +laposte.fr08@R#cdn.adnext.fr/vendor/prebid.js/*.js +.ÿï* + +fnaim.fr08@Rcdn.adnext.fr/*.js +7ÿï* + +laposte.fr08@Rk.r66net.com/GetAnalytics +:ÿï* + soccerway.com08@Rp.lngtdv.com/prebid/*.js^ +dÿï* + viedemerde.fr* + paruvendu.fr* + paroles.net08@R$scripts.opti-digital.com/tags/?site= +7ÿï* + paruvendu.fr08@Rwww8.smartadserver.com/ +kÿï* +universoformulas.com* +minecraft-server.eu* +zvg-online.net08@Rads.themoneytizer.com/*.js +Iÿï* +minecraft-server.eu08@R"cdn.confiant-integrations.net/*.js +Rÿï* +cosmopolitan.fr08@R/tagmanager.smartadserver.com/*/smart.prebid.js^ +•ÿï* +gelderlander.nl* + destentor.nl* + bndestem.nl* + tubantia.nl* +pzc.nl* +ad.nl* +bd.nl* +ed.nl08@Radvertising-cdn.dpgmedia.cloud/ +�ÿï* +gelderlander.nl* + destentor.nl* + bndestem.nl* + tubantia.nl* +pzc.nl* +ad.nl* +bd.nl* +ed.nl08@Racdn.adnxs.com/ast/ast.js +Bÿï* +kleinanzeigen.de08@Rebay-kleinanzeigen.de/liberty/ +ÿ´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thewindowsclub.com* +trackingadvice.com* +truthorfiction.com* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +yourjeepguide.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +propertysold.ca* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +culturamix.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + geekmarkt.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + careerdp.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +tab-tv.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +k2rx.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@Rezojs.com/ezoic/sa.min.js +Ëÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +guitarchords.country* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +onthegolfgreen.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +usconstitution.net* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +eatdrinkdeals.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thekonsulthub.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rccgonline.org* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +msry.org* +tva.fr08@Rezojs.com/ezoic/sa.min.js +è´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +guitarchords.country* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@R go.ezodn.com^ +‹ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +thewindowsclub.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + careerdp.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +tab-tv.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +msry.org* +tva.fr08@R go.ezodn.com^ +ó´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +guitarchords.country* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thewindowsclub.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@R*/porpoiseant/nmash.js? +Ë‹ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +eatdrinkdeals.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + careerdp.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +tab-tv.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +msry.org* +tva.fr08@R*/porpoiseant/nmash.js? +ü´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thewindowsclub.com* +trackingadvice.com* +truthorfiction.com* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +yourjeepguide.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +propertysold.ca* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +culturamix.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + geekmarkt.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + careerdp.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +tab-tv.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +k2rx.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@R*/porpoiseant/fads.js^ +À‹ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +guitarchords.country* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +onthegolfgreen.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +usconstitution.net* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +eatdrinkdeals.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thekonsulthub.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rccgonline.org* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +msry.org* +tva.fr08@R*/porpoiseant/fads.js^ +þ´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +thewindowsclub.com* +trackingadvice.com* +truthorfiction.com* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +yourjeepguide.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +propertysold.ca* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +culturamix.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + geekmarkt.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + careerdp.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +tab-tv.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +k2rx.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@R*/porpoiseant/banger.js^ +‹ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +guitarchords.country* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +onthegolfgreen.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +usconstitution.net* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +eatdrinkdeals.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thekonsulthub.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rccgonline.org* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +msry.org* +tva.fr08@R*/porpoiseant/banger.js^ +ë´ÿï*$ +"dellwindowsreinstallationguide.com*$ +"secretcopycatrestaurantrecipes.com*! +corporateofficeheadquarters.org*! +dailythemedcrosswordanswers.com*! +dailythemedcrosswordanswers.net*! +newenglandhistoricalsociety.com*! +real-world-physics-problems.com* +astuces-aide-informatique.info* +grundschule-arbeitsblaetter.de* +betriebswirtschaft-lernen.net* +everything-about-concrete.com* +freeprintablemedicalforms.com* +hospitalitytrainingcenter.com* +nutsandboltsspeedtraining.com* +codesforuniversalremotes.com* +constructionreviewonline.com* +environmental-conscience.com* +happybirthdaywishesworld.com* +londresparaprincipiantes.com* +sicilianicreativiincucina.it* +smartwatchspecifications.com* +affordablehousingonline.com* +asvabpracticetestonline.com* +change-management-coach.com* +electricianapprenticehq.com* +expertprogrammanagement.com* +latimescrosswordanswers.com* +meine-sendungsverfolgung.de* +memory-improvement-tips.com* +northwestfishingreports.com* +perfect-english-grammar.com* +personalsupportworkerhq.com* +softwaretestingmaterial.com* +sprueche-zum-verschenken.de* +architecturalafterlife.com* +elizabethanenglandlife.com* +ellemijotequelquechose.com* +foreclosurephilippines.com* +knowledgeweighsnothing.com* +lasourisglobe-trotteuse.fr* +mentalhealthworksheets.com* +onlinepersonalitytests.org* +scholarshipscorner.website* +segmentationstudyguide.com* +stampdutycalculator.org.uk* +travelwithkevinandruth.com* +troubleshootingcentral.com* +universalremotereviews.com* +about-air-compressors.com* +accounting-simplified.com* +bordersandbucketlists.com* +datasciencemadesimple.com* +democraticunderground.com* +drivinginstructorblog.com* +e-methodstechnologies.com* +encyclopedia-titanica.org* +handwritingworksheets.com* +historylearningsite.co.uk* +hofladen-bauernladen.info* +homeinspectioninsider.com* +homesteadsurvivalsite.com* +passion-pilze-sammeln.com* +podcastfrancaisfacile.com* +positivewordsresearch.com* +refrigeratorsreviewed.com* +remedes-de-grand-mere.com* +saltwateraquariumblog.com* +spideridentifications.com* +theproductiveengineer.net* +troubleshootmyvehicle.com* +tutorials-raspberrypi.com* +waschbeckenarmaturtest.de* +wishesmessagessayings.com* +basicenglishspeaking.com* +bestlovetextmessages.com* +brighthubengineering.com* +businessformtemplate.com* +caribbeangreenliving.com* +coltivazionebiologica.it* +easydrawingtutorials.com* +escribircanciones.com.ar* +freelancewritinggigs.com* +groupdiscussionideas.com* +gundamkitscollection.com* +indifferentlanguages.com* +instrumentationtools.com* +personality-database.com* +scuffedentertainment.com* +socialstudiesforkids.com* +telefoonnummerzoeken.net* +thehomesteadsurvival.com* +topwoodworkingadvice.com* +tutorials-raspberrypi.de* +vision-environnement.com* +7littlewordsanswers.com* +allabouttabletennis.com* +bermuda-attractions.com* +bodylanguagecentral.com* +contemplatingsweets.com* +countertopspecialty.com* +crosswordanswers911.net* +daskreativeuniversum.de* +detroitsportsnation.com* +dreamingandsleeping.com* +dutyfreeinformation.com* +everydayprayerguide.com* +freeclinicdirectory.org* +fuerteventurazeitung.de* +globalpropertyguide.com* +houstoncasemanagers.com* +lagrenouilletricote.com* +lastminuteengineers.com* +latcrosswordanswers.com* +localkittensforsale.com* +machinelearningplus.com* +maison-et-domotique.com* +marketingstudyguide.com* +mathhomeworkanswers.org* +my-package-tracking.com* +nytcrosswordanswers.com* +offgridpermaculture.com* +onlinedoctranslator.com* +overseasattractions.com* +qualitydogresources.com* +significationsmileys.fr* +sims4studiodownload.com* +spelling-words-well.com* +startwoodworkingnow.com* +365thingsinhouston.com* +automationrhapsody.com* +bestcateringprices.com* +bigblueinteractive.com* +brighthubeducation.com* +calculerpourcentage.fr* +citizensustainable.com* +commercialdriverhq.com* +crossbordershopping.ca* +crueltyfreereviews.com* +deine-autoreparatur.de* +easyscienceforkids.com* +enneagramuserguide.com* +everythingreptiles.com* +explorejeffersonpa.com* +fishkeepingforever.com* +florida-palm-trees.com* +france-hotel-guide.com* +free-sample-letter.com* +freeasestudyguides.com* +futbolenvivomexico.com* +goodhomeautomation.com* +groundedlifetravel.com* +informatique-mania.com* +interpretation-reve.fr* +journeydogtraining.com* +livinginacontainer.com* +localpuppybreeders.com* +mapleleafshotstove.com* +medievalchronicles.com* +metric-conversions.org* +motocrossactionmag.com* +nonphoneworkathome.com* +personaldiecutting.com* +professeur-poteaux.com* +protoolsproduction.com* +realestatecareerhq.com* +recyclingcenternear.me* +roleplayersrespite.com* +se-faire-rembourser.fr* +simplytrinicooking.com* +somethingturquoise.com* +streetsmartkitchen.com* +survivalmesserguide.de* +thecrazyprogrammer.com* +thegradecalculator.com* +thepointcalculator.com* +titlecaseconverter.com* +tracfoneusermanual.net* +tremplin-numerique.org* +williamsonhomepage.com* +wsjcrosswordsolver.com* +yummyindiankitchen.com* +accountingcapital.com* +aconsciousrethink.com* +aginghealthytoday.com* +automobile-conseil.fr* +birthdaywishes.expert* +buffalohockeybeat.com* +californiabeaches.com* +centraldesermones.com* +coloringpagesonly.com* +computingforgeeks.com* +corporateofficehq.com* +dailykillersudoku.com* +dragoninquisition.com* +europeforvisitors.com* +fastfoodmenupreise.de* +fiveminutelessons.com* +fix-my-compressor.com* +franchisesports.co.uk* +freezermealfrenzy.com* +futbolenvivochile.com* +housingapartments.org* +howtoexcelatexcel.com* +innerhealthstudio.com* +japancamerahunter.com* +leftbrainedartist.com* +lightnovelbastion.com* +managementstudyhq.com* +militarytimechart.com* +motivationandlove.com* +norcalfishreports.com* +notesfromtheporch.com* +sapintegrationhub.com* +schrift-generator.com* +sportfishingbuddy.com* +squarefootagearea.com* +thecalculatorsite.com* +thecleverbusiness.com* +verificationguide.com* +weakwifisolutions.com* +workplacefairness.org* +yourfreetemplates.com* +25yearslatersite.com* +aboutchromebooks.com* +askanydifference.com* +autoservicecosts.com* +babeltechreviews.com* +barcode-generator.de* +blackeyepolitics.com* +bornagainboating.com* +charactercounter.com* +codycrossanswers.com* +codycrossanswers.org* +conseil-nord-sud.com* +designsbystudioc.com* +directpowerdeals.com* +divinedaolibrary.com* +englishteststore.net* +experthomereport.com* +familyfoodgarden.com* +fanstranslations.com* +fishkeepingworld.com* +framinghamsource.com* +gardenloversclub.com* +googlechromecast.com* +grammatiktraining.de* +greenlivingtribe.com* +guitarchords.country* +happybirthdaymsg.com* +houseplanshelper.com* +howtotrainthedog.com* +imagecolorpicker.com* +interstate-guide.com* +jigglypuffsdiary.com* +justrandomthings.com* +kinderspiele-welt.de* +klinikbewertungen.de* +letslearnfinance.com* +lettersinenglish.com* +lovecookingdaily.com* +lyrical-nonsense.com* +lyricstranslated.com* +magnificentworld.com* +microscopemaster.com* +minnesota-scores.net* +mon-guide-voiture.fr* +namegeneratorfun.com* +nutrition-charts.com* +oneminuteenglish.org* +onlinepianocoach.com* +oursportscentral.com* +paranormalschool.com* +pedigreedatabase.com* +perfectdogbreeds.com* +probleme-paiement.fr* +projectpractical.com* +removeandreplace.com* +royalwatcherblog.com* +scholarships365.info* +sewingwithscraps.com* +shtfpreparedness.com* +simpleprogrammer.com* +simplypsychology.org* +singletrackworld.com* +solzyatthemovies.com* +taraletsanywhere.com* +thehockeywriters.com* +tightfistfinance.com* +weighttraining.guide* +windows101tricks.com* +worldstopexports.com* +accountingverse.com* +adventuregamers.com* +anagramscramble.com* +ancient-symbols.com* +androidinfotech.com* +appraisersforum.com* +arcaneintellect.com* +chitrasfoodbook.com* +conqueryourexam.com* +corporationwiki.com* +crosswordsolver.org* +dataoverhaulers.com* +electrictoolbox.com* +esportsearnings.com* +euromaidanpress.com* +fifamobileguide.com* +findwhocallsyou.com* +freewateradvice.com* +gamblebaycoffee.com* +get-itsolutions.com* +godzilla-movies.com* +goodcalculators.com* +grandtournation.com* +hacktheminotaur.com* +halfglassgaming.com* +hometownlocator.com* +how2drawanimals.com* +ireland-calling.com* +itsolutionstuff.com* +kalender-uhrzeit.de* +learnmechanical.com* +legaldictionary.net* +literarydevices.net* +longrangesignal.com* +madformadelskere.dk* +mccommandcenter.com* +mobileinternist.com* +motocrossadvice.com* +myenglishteacher.eu* +npinumberlookup.org* +nycinsiderguide.com* +onlinehelpguide.com* +phonedealstoday.com* +pourquoimabanque.fr* +problemsphysics.com* +r-graph-gallery.com* +ricettedigusto.info* +routeripaddress.com* +securityonline.info* +shetlandwebcams.com* +smileybedeutung.com* +spencerfernando.com* +spirit-of-metal.com* +sportcoaching.co.nz* +studyabroadaide.com* +sweepsadvantage.com* +tabletennisspot.com* +tarif-disneyland.fr* +theancestorhunt.com* +thebirthdaybest.com* +thefipharmacist.com* +theparking-cars.com* +thepracticetest.com* +thesavvycampers.com* +thetrendspotter.net* +thewalletshoppe.com* +thewholeportion.com* +topdrawersoccer.com* +totalmotorcycle.com* +tuerkeireiseblog.de* +tutorialgateway.org* +ultraboardgames.com* +unscramblewords.com* +vollmacht-muster.de* +whats-your-sign.com* +wir-essen-gesund.de* +wordstodescribe.com* +wordunscrambler.com* +wrestlingrumors.net* +academicinvest.com* +accountinguide.com* +altcodeunicode.com* +anruferauskunft.de* +asubtlerevelry.com* +autismus-kultur.de* +badgerandblade.com* +bedeutungonline.de* +besthorserider.com* +bourses-etudes.net* +carserviceland.com* +childcarecenter.us* +clickspeedtest.com* +codewithmukesh.com* +collegefactual.com* +comicbookrealm.com* +commeunefleche.com* +corrigetonimpot.fr* +couponscorpion.com* +crispyfoodidea.com* +crosswordgiant.com* +decorhomeideas.com* +diyphotography.net* +dreamsofjianghu.ca* +eltallerdelbit.com* +enggcyclopedia.com* +explorebiotech.com* +exploreclarion.com* +fastfoodprecios.mx* +favoredleather.com* +fedsdatacenter.com* +feelingthevibe.com* +freekidscrafts.com* +golfjourney365.com* +graverobbertl.site* +greekmythology.com* +hangrybynature.com* +happyvagabonds.com* +havredailynews.com* +historyforkids.net* +howtoheatpress.com* +howtopronounce.com* +howtosolutions.net* +javadevjournal.com* +jobsforteenshq.com* +knowyourphrase.com* +lettersformats.com* +marrieddivorce.com* +methodephysique.fr* +midcenturyhome.com* +miracomosehace.com* +myenglishpages.com* +neueroeffnung.info* +novacrystallis.com* +nurseteachings.com* +onthegolfgreen.com* +opensourcetext.org* +pdfwordconvert.com* +phototravellers.de* +planetsforkids.org* +playretrogames.com* +prepvolleyball.com* +printablepaper.net* +publicdelivery.org* +puertovallarta.net* +realmenuprices.com* +realmofhistory.com* +restartatorium.com* +retrogamebuyer.com* +salaryaftertax.com* +skinnyandtasty.com* +smallbiztrends.com* +smsreceivefree.com* +sociologygroup.com* +sportfishingbc.com* +sprueche-liste.com* +spss-tutorials.com* +sunrise-sunset.org* +sweetiessweeps.com* +taxifarefinder.com* +teamcolorcodes.com* +technicalustad.com* +thecollegemonk.com* +trackingadvice.com* +truthorfiction.com* +usconstitution.net* +vancampinglife.com* +victoriamgclub.com* +whatnowatlanta.com* +wikiaccounting.com* +wordscapeshelp.com* +worlddogfinder.com* +writingcommons.org* +xtremegaminerd.com* +5ebackgrounds.com* +access-excel.tips* +appledystopia.com* +askdavetaylor.com* +askthebuilder.com* +baldandbeards.com* +brainyhousing.com* +broadwayworld.com* +bucksandcents.com* +businesstopia.net* +c-sharpcorner.com* +cadblocksfree.com* +catingtonpost.com* +chainsawlarry.com* +champsorchumps.us* +charbelnemnom.com* +chicitysports.com* +chromeunboxed.com* +circuitstoday.com* +classedefanfan.fr* +classicguides.org* +collectiveray.com* +commentpicker.com* +crosswordbuzz.com* +deptofnumbers.com* +disneyaddicts.com* +dodgersnation.com* +dreamglossary.com* +eapfoundation.com* +eatdrinkdeals.com* +emmalinebride.com* +escooternerds.com* +fablesofaesop.com* +findnicknames.com* +fittesttravel.com* +freshersvoice.com* +frugalhotspot.com* +gatheredagain.com* +gizbuyerguide.com* +gravelcyclist.com* +guide-irlande.com* +guidemusulman.com* +healthtipsnow.net* +hollywoodmask.com* +homeawakening.com* +homeguideguru.com* +homeguideplan.com* +howto-android.com* +ilovedogscute.com* +incredibleart.org* +influenceimmo.com* +inglesmundial.com* +itexamanswers.net* +jayendrapatil.com* +jokes-de-papa.com* +jsonformatter.org* +jtouchofstyle.com* +justsolitaire.com* +klimatabelle.info* +ladybugplanet.com* +lanzateyviaja.com* +lifewithjanet.com* +linuxuprising.com* +loving-travel.com* +microbeonline.com* +midlifeguitar.com* +myfunkytravel.com* +nepalitelecom.com* +offroadaussie.com* +oliviadaolive.com* +online-python.com* +onlinepianist.com* +paper-replika.com* +parasitipedia.net* +parkingaccess.com* +pendrivelinux.com* +perfumemaster.com* +prospects1500.com* +raspberrytips.com* +ratzillacosme.com* +renewcanceltv.com* +rightnewswire.com* +sabersourcing.com* +scrabblecheat.com* +seriouslyfish.com* +solutionjeux.info* +somosmamas.com.ar* +standoutbooks.com* +stevewyborney.com* +swingcompleto.com* +tangerinezest.com* +tckpublishing.com* +techpilipinas.com* +thecabindiary.com* +thedisinsider.com* +thekonsulthub.com* +thelawnreview.com* +thepythoncode.com* +tiremeetsroad.com* +triviaplaying.com* +underpargoals.com* +universal-sci.com* +verseoftheday.com* +victorian-era.org* +vivaolinux.com.br* +weather2visit.com* +wedrawanimals.com* +welovequizzes.com* +wheretocredit.com* +winhelponline.com* +zkelectronics.com* +afkarenaboss.com* +alteredgamer.com* +askbobrankin.com* +beatlesbible.com* +booleanworld.com* +breatheheavy.com* +briankoponen.com* +cabaneaidees.com* +cakedecorist.com* +camzillasmom.com* +dailycrochet.com* +dailyhistory.org* +dalmacijanews.hr* +distancecalc.com* +diydoctor.org.uk* +dubai-online.com* +easytutoriel.com* +electrical4u.net* +englishhints.com* +essentialsql.com* +fantasynerds.com* +feelingvegas.com* +find-us-here.com* +freejobalert.com* +gadgetstouse.com* +generatormix.com* +h-supertools.com* +hiphopmakers.com* +homedetoxing.com* +improvehoops.com* +itsourcecode.com* +jailbreak-mag.de* +jailexchange.com* +jazminemedia.com* +johnnyafrica.com* +js-tutorials.com* +jumblesolver.com* +keepinspiring.me* +labex-cortex.com* +linuxtechlab.com* +livecharts.co.uk* +livetheglory.com* +lovingnewyork.de* +lunchtime.com.au* +magicskillet.com* +metaladdicts.com* +michaelsaves.com* +myotakuworld.com* +oakvillenews.org* +offshoreblue.com* +onesmartcrib.com* +onestep4ward.com* +onlinetyping.org* +phonecurious.com* +practicequiz.com* +programcreek.com* +programmingr.com* +purposefairy.com* +quranicnames.com* +raiderramble.com* +red-dot-geek.com* +rimworldbase.com* +roadtrailrun.com* +router-reset.com* +scitechdaily.com* +seventrumpet.com* +sharpologist.com* +sheldonbrown.com* +singlemothers.us* +skin-tracker.com* +tabletopjoab.com* +tarif-lettre.com* +tasteerecipe.com* +tentonhammer.com* +text-compare.com* +the-diy-life.com* +thecoastnews.com* +thepersonage.com* +tractorbynet.com* +trendcentral.com* +turfmechanic.com* +vat-search.co.uk* +visitcumbria.com* +walkthroughs.net* +whatispiping.com* +wikibioworth.com* +wikinetworth.com* +yagisanatode.com* +1001pallets.com* +aldvingomes.com* +alexusrenee.com* +aminstitute.com* +anabolicmen.com* +analyzemath.com* +android-user.de* +apnatoronto.com* +appdividend.com* +artisansweb.net* +astrosaxena.com* +bauredakteur.de* +behindaname.com* +bikehistory.org* +blizzspirit.com* +brapresenter.nu* +bricoleurs.info* +brighthubpm.com* +codegrepper.com* +codevscolor.com* +crime-nieuws.nl* +crosswordeg.com* +cubsinsider.com* +curlingdiva.com* +dailyorange.com* +decortweaks.com* +dicotravail.com* +easyebiking.com* +eslspeaking.org* +fbfeudguide.com* +fibrojedi.me.uk* +fifarosters.com* +flgardening.com* +flight-radar.eu* +freakyjolly.com* +gabesguides.com* +gadget-info.com* +galaxy-tipps.de* +gamenguides.com* +goldpriceoz.com* +gotoportugal.eu* +govsalaries.com* +growertoday.com* +guitartwitt.com* +helptostudy.com* +hotexamples.com* +ignisnatura.org* +inscribemag.com* +jumblesolver.us* +kylonpowell.com* +lambdageeks.com* +le-citazioni.it* +lejustechoix.fr* +logosbynick.com* +lunchtime.co.nz* +lyricfinder.org* +madbackyard.com* +materialguru.de* +materialsix.com* +miamiscapes.com* +mots-croises.ch* +mychromebook.fr* +myswissalps.com* +nilsenreport.ca* +nortechplus.com* +outletbound.com* +ownthegrill.com* +parlerdamour.fr* +philognosie.net* +plagiarisma.net* +planete-deco.fr* +pleine-lune.org* +programtalk.com* +r-statistics.co* +railmaps.com.au* +reciperoost.com* +remodelista.com* +sabireviews.com* +sacredlotus.com* +salarybot.co.uk* +scamadviser.com* +schemecolor.com* +sciencespot.net* +scootertalk.org* +seniordaily.com* +shuttlefare.com* +smartandroid.fr* +soapcentral.com* +studybreaks.com* +swgohevents.com* +swiftmoves.blog* +techsviewer.com* +textcompare.org* +tools-unite.com* +truththeory.com* +warehouseiq.com* +yardblogger.com* +yogihosting.com* +10-0-0-0-1.org* +4kshooters.net* +aiptcomics.com* +animalfate.com* +artprompts.org* +auralcrave.com* +barkercise.com* +bigskyfans.com* +calculate.plus* +campergrid.com* +catkingpin.com* +cookitonce.com* +craftwhack.com* +cultaholic.com* +curateview.com* +cutthewood.com* +cxmagazine.com* +dailyactor.com* +de-reviews.com* +delftstack.com* +devtrackers.gg* +disposalxt.com* +dramapanda.com* +drivingtest.ca* +droidviews.com* +earrockers.com* +ezprepping.com* +filmthreat.com* +fixingport.com* +funkelfaden.de* +gardenista.com* +gbodyforum.com* +ghostarrow.com* +grammarhow.com* +hiphop24x7.com* +homesnacks.com* +howtoforge.com* +icebreakers.ws* +ieltsbuddy.com* +infos-geek.com* +iplocation.net* +iqtestprep.com* +itechfever.com* +jaynestars.com* +jlptsensei.com* +liaomeiguo.com* +linuxtechi.com* +live-tennis.eu* +liverampup.com* +loupetroop.com* +mailtoself.com* +maisfontes.com* +mikeeckman.com* +mjsbigblog.com* +moddingway.com* +motoconseil.fr* +motorverso.com* +msfsaddons.com* +msfsaddons.org* +near-place.com* +nursestudy.net* +officetuts.net* +orchideria.com* +ourfitpets.com* +papersizes.org* +patchesoft.com* +perennials.com* +phonesdata.com* +phrases.org.uk* +puckcomics.com* +rccgonline.org* +roadsnacks.net* +roofonline.com* +scamcharge.com* +scijournal.org* +scotchnoob.com* +sebhastian.com* +serieophile.fr* +spikeybits.com* +stellpower.com* +stickyball.net* +surlyhorns.com* +tallypress.com* +tarotforum.net* +techotopia.com* +techrrival.com* +thailandee.com* +thewebdev.info* +toutandroid.fr* +triviawell.com* +tutorial45.com* +videocardz.com* +wdwtravels.com* +weather-us.com* +websleuths.com* +wellrigged.com* +welovepuns.com* +whatsabyte.com* +wheelssize.com* +xflnewshub.com* + 3dsourced.com* + advertigo.net* + alldaynews.gr* + allhiphop.com* + alloextra.com* + archisoup.com* + areavibes.com* + asacannes.com* + avasdemon.com* + barnfinds.com* + bitemybun.com* + biznewske.com* + bobcutmag.com* + brainbell.com* + brighthub.com* + buildeazy.com* + chipandco.com* + chordzone.org* + classclef.com* + colorcodes.io* + costcofan.com* + coupons.pizza* + cultofmac.com* + dantri.com.vn* + devanswers.co* + ebicycles.com* + elderguru.com* + encuentos.com* + escapefan.com* + fangraphs.com* + feiertag.info* + funquizzes.uk* + games4esl.com* + gm-trucks.com* + guiasteam.com* + gw2crafts.net* + hikespeak.com* + howtoedge.com* + ikeaddict.com* + ineskohl.info* + interieurs.fr* + involvery.com* + ipaddress.com* + it-connect.fr* + itechtics.com* + japonismo.com* + java2blog.com* + kifarunix.com* + knifeuser.com* + kosmofoto.com* + lotsearch.net* + mamapedia.com* + md5online.org* + metalwani.com* + moonbooks.org* + osrsguide.com* + pc-builds.com* + photodoto.com* + phptpoint.com* + presale.codes* + printfree.com* + provscons.com* + psychreel.com* + relayhero.com* + rodeosusa.com* + romapress.net* + softgenius.co* + statsmash.com* + storynory.com* + techaeris.com* + technorms.com* + techwhoop.com* + textfixer.com* + thepricer.org* + thumbwind.com* + tierlists.com* + timer-tab.com* + to-hawaii.com* + wanderera.com* + workgearz.com* + wyonation.com* + ybierling.com* + 38jiejie.com* + acqnotes.com* + akinator.com* + allclash.com* + applersg.com* + audiomav.com* + ausdroid.net* + blengaone.de* + blogsdna.com* + bygonely.com* + codstats.net* + corrector.co* + costumet.com* + csr2boss.com* + dbaclass.com* + deafvideo.tv* + deasilex.com* + djamware.com* + emulsive.org* + excelhow.net* + fedsmith.com* + gojinshi.com* + h1bdata.info* + hometips.com* + iskmogul.com* + jspinyin.net* + laviasco.com* + learncpp.com* + linuxize.com* + lirarate.org* + loonapix.com* + lotsearch.de* + manuals.plus* + meugamer.com* + mobile57.com* + notinerd.com* + oflatest.net* + ohbeaute.com* + omniglot.com* + omnisecu.com* + outlet-in.de* + pathofex.com* + pickytop.com* + plantuml.com* + pngtosvg.com* + quizerry.com* + ranksays.com* + rokuguru.com* + sdlookup.com* + simple30.com* + stattrek.com* + sysprobs.com* + tecklyfe.com* + themag.co.uk* + tigernet.com* + timemaps.com* + topozone.com* + tutsmake.com* + tvprofil.com* + unorules.com* + w3schools.in* + wikichip.org* + wowpooch.com* + zobacz-to.pl* + 15track.com* + aladin.info* + animals.net* + answers.org* + apestan.com* + appdated.de* + clash.world* + emojis.wiki* + finclan.com* + gerweck.net* + je-rime.com* + johndee.com* + justuto.com* + knifeup.com* + koskila.net* + lebegeil.de* + mapio.co.uk* + myzitate.de* + nerdbot.com* + nesmaps.com* + nikkis.info* + ourplnt.com* + owlguru.com* + phpflow.com* + play2048.co* + rankred.com* + riddles.net* + shtfdad.com* + siccode.com* + sommeil.org* + techdim.com* + thepaws.net* + toolstud.io* + ukvisa.blog* + w3snoop.com* + webkams.com* + wimarys.com* + wphowto.net* + wujizun.com* + xplaind.com* + z-table.com* + zambullo.de* + +365tips.be* + +askleo.com* + +autorai.nl* + +bayart.org* + +ceos3c.com* + +defkey.com* + +dev2qa.com* + +itigic.com* + +itnwwe.com* + +momdot.com* + +mtlurb.com* + +overiq.com* + +rpgbot.net* + +ryadel.com* + +teahow.com* + +thejub.com* + +trucks.com* + +tsikot.com* + +typing.com* + +vymaps.com* + +wololo.net* + +youpdf.com* + +zerauto.nl* + +zwivel.com* + 35mmc.com* + egriz.com* + marsja.se* + names.org* + nygal.com* + petdt.com* + trovas.ch* + uscho.com* + vitux.com* + we-ha.com* + wow4u.com* + wprock.fr* + +citas.in* + +exrx.net* + +hackr.io* + +ifly.com* + +millo.co* + +sbxl.com* + +xlek.com* +ginx.tv* +see.cam* +rgb.to08@R/detroitchicago^ +Å‹ÿï*% +#bestguide-retirementcommunities.com*% +#xn--solitr-kostenlos-spielen-ubc.de*$ +"accounting-basics-for-students.com*" + free-online-training-courses.com*! +corporateofficeheadquarters.com*! +dailythemedcrosswordanswers.org*! +socialsecurityofficesnearme.com* +elblogdelpastoroscarflores.com* +free-online-calculator-use.com* +herbal-supplement-resource.com* +soulfoodandsoutherncooking.com* +uspresidentialelectionnews.com* +application-remuneratrice.com* +entercompetitionsonline.co.uk* +financialfreedomcountdown.com* +freeprintablecertificates.net* +gewuenschtestes-wunschkind.de* +mexican-authentic-recipes.com* +better-fundraising-ideas.com* +computeraideddesignguide.com* +easternsierrafishreports.com* +laughteronlineuniversity.com* +printablecouponsanddeals.com* +snippetsthroughthewindow.com* +dailycelebritycrossword.com* +ensenada-baja-vacations.com* +how-to-write-a-book-now.com* +rc-airplanes-simplified.com* +smartkitchenimprovement.com* +socialsecurityofficenear.me* +thehealthsciencejournal.com* +china-family-adventure.com* +classickitchensupplies.com* +comidastipicaschilenas.com* +das-unternehmerhandbuch.de* +dental-treatment-guide.com* +learning-styles-online.com* +thecapitalsportsreport.com* +us-coin-values-advisor.com* +whatcareerisrightforme.com* +wirelessdevicesreviews.com* +africanamericangrants.org* +connecticutlifestyles.com* +crochetpatterncentral.com* +easyretrievertraining.com* +emprendiendohistorias.com* +famous-mathematicians.com* +germanshepherdcountry.com* +haltestellen-buslinien.de* +longrangesportfishing.net* +newyorktimescrossword.net* +pokemonkaartenverkopen.nl* +reisekostenabrechnung.com* +returnpolicyexplained.com* +scholarship-positions.com* +spartacus-educational.com* +thetentairconditioner.com* +total-german-shepherd.com* +universites-numeriques.fr* +autobusesycamioneras.com* +bestpromotionalcodes.com* +carpentry-pro-framer.com* +crosswordquizanswers.com* +dailycrosswordsolver.com* +easternnewmexiconews.com* +english-for-students.com* +everything80spodcast.com* +fromthegreennotebook.com* +healthylivingjames.co.uk* +howtoremoveblackmold.com* +immigrationnewscanada.ca* +lessonslearnedinlife.com* +materialeseducativos.org* +moreaboutadvertising.com* +redanianintelligence.com* +significadodetusueno.com* +signification-prenom.net* +thehydroponicsplanet.com* +angelnumbersmeaning.com* +bassfishermansguide.com* +billofsale-template.com* +campertrailerreport.com* +delawarebusinessnow.com* +descubrecomohacerlo.com* +easyautodiagnostics.com* +figurines-sculpture.com* +financialpilgrimage.com* +foot-pain-explained.com* +globalfilmlocations.net* +labradorlovingsouls.com* +lovetextmessages.com.ng* +natural-health-zone.com* +onthisdateinhistory.net* +pharmacy-tech-study.com* +popular-archaeology.com* +portablesportscoach.com* +prowrestlingnewshub.com* +sandiegofishreports.com* +silverlininglessons.com* +singlemothersgrants.org* +theinsuranceproblog.com* +theswellesleyreport.com* +thymeforcookingblog.com* +weekendrvadventures.com* +alldistancebetween.com* +americanbullydaily.com* +bettacarefishguide.com* +boardofcosmetology.net* +codycrosssoluzioni.com* +contemporary-dance.org* +craftykittycrochet.com* +creativelycrafting.com* +dreamastromeanings.com* +driverslicensetest.net* +electricscootering.com* +emoticonsignificato.it* +enginepartsdiagram.com* +famous-celebrities.com* +fifacareermodetips.com* +foundfootagecritic.com* +freshmorningquotes.com* +hamblyscreenprints.com* +happyfrenchbulldog.com* +hollywoodflashback.com* +howtofixheadphones.com* +identifythiscaller.com* +keralahousedesigns.com* +kochenkinderleicht.com* +loseweightbyeating.com* +manifestationmagic.net* +nageldesignzentrale.de* +ouruniverseforkids.com* +peoplesofttutorial.com* +pharmacy-tech-test.com* +phonetipsandtricks.com* +pioneersmokehouses.com* +printablecontracts.com* +recruitmentbeam.com.ng* +rentalhousingdeals.com* +sebringdesignbuild.com* +simplytrinicooking.org* +templesinindiainfo.com* +verifyemailaddress.org* +webwriterspotlight.com* +wordcookiesanswers.com* +wortspieleloesungen.de* +amazingmemovement.com* +bed-bugs-handbook.com* +codycrosslosungen.com* +codycrosssolution.com* +conceptodefinicion.de* +congratulationsto.com* +consciousreminder.com* +coolgoodcaptions.info* +countertopadvisor.com* +fashionweekonline.com* +gartenpflege-tipps.de* +glampingorcamping.com* +goodmorningmylove.com* +gpstrackerreviews.net* +lepeupleelectrique.fr* +melbournepoint.com.au* +officesolutionpro.com* +onlinecalculator.guru* +optimizehealth365.com* +oregonfishreports.com* +plantinstructions.com* +primitivacomprobar.es* +puzzlepageanswers.com* +republiquedujapap.com* +saboresdemihuerto.com* +serving-ice-cream.com* +smartenglishnotes.com* +ssofficelocations.org* +sweetlovemessages.com* +symbolic-meanings.com* +universalremote.codes* +unternehmerlexikon.de* +urbansurvivalsite.com* +wordscapesanswers.net* +yourhearinghelper.com* +a-z-music-lyrics.com* +anfieldcentral.co.uk* +apartmentprepper.com* +balancedpolitics.org* +beachblissliving.com* +beautyhealthpage.com* +bestcardmessages.com* +bestcrossfitshoe.net* +bibletriviadaily.net* +bonkersabouttech.com* +carexportamerica.com* +chickerystravels.com* +cnaclassesnearme.com* +codycrossanswers.net* +contrahealthscam.com* +crosswordzone301.com* +cuantoestaeldolar.pe* +dmtranslationscn.com* +donotdpfdelete.green* +fastfood-recipes.com* +findafishingboat.com* +finnsfishingtips.com* +fullcirclecinema.com* +guessthelocation.net* +healthywithhoney.com* +householdwonders.com* +huskypuppiesinfo.com* +indianhindunames.com* +itinerarinelgusto.it* +mobilehomeliving.org* +motorcyclesports.net* +mydreamsymbolism.com* +nfldraftdiamonds.com* +nytimescrossword.org* +plagiarismchecker.co* +realcajunrecipes.com* +receitasagora.com.br* +roemische-zahlen.net* +significadoemojis.es* +smarthomestarter.com* +sortingwithstyle.com* +ssofficelocation.com* +strangeandcreepy.com* +tarotalmabarrios.com* +texasgranolagirl.com* +texashillcountry.com* +theblessedqueens.com* +thefuntimesguide.com* +therightmessages.com* +thewritegreeting.com* +tiradadetarot.gratis* +truthordare-game.com* +whatismyagetoday.com* +wordcookiescheat.com* +wordcrazeanswers.com* +4fotos-1palabra.com* +accuracyproject.org* +airfryerrecipes.com* +androidpcreview.com* +angolodiwindows.com* +appliancerepair.net* +batterymanguide.com* +bestwalkingfeet.com* +blackexcellence.com* +calcul-ascendant.fr* +camping-experten.de* +casasincreibles.com* +cdltrainingspot.com* +chinarundreisen.com* +churchsoundtips.com* +comofuncionaque.com* +contactsenators.com* +controllerstech.com* +coolandportable.com* +corporate-cases.com* +crittercleanout.com* +cruisespotlight.com* +detectingschool.com* +factory-outlets.org* +felonyrecordhub.com* +firestickmaster.com* +foundationfairy.com* +frenchiejourney.com* +garnishmentlaws.org* +getandroidstuff.com* +giftideascorner.com* +hiphopgoldenage.com* +homeguidereport.com* +hometheatrelife.com* +immigrationroad.com* +introvertspring.com* +irishmusicdaily.com* +jobapplications.net* +latestsightings.com* +maehroboter-guru.de* +mainecoonexpert.com* +majesticanimals.net* +mehr-als-rohkost.de* +messagescelestes.ca* +mnemonic-device.com* +mumsdelivery.com.au* +mysarkarinaukri.com* +netexplanations.com* +parceltracking.info* +paweatheraction.com* +phlebotomycoach.com* +physicscatalyst.com* +pizzacappuccino.com* +printables4kids.com* +prisonerofclass.com* +psychologyhub.co.uk* +racingdealma.com.ar* +revisesociology.com* +ricettadicucina.com* +smellyfeetcures.com* +snagfreesamples.com* +statesymbolsusa.org* +staumelder-karte.de* +steamcleanerpro.com* +surfinghandbook.com* +techygeekshome.info* +tennisworldlive.com* +testpreptoolkit.com* +thecrochetspace.com* +thegolfeinstein.com* +thehamsterhouse.com* +thymeforcooking.com* +truckersinsider.com* +usastorenetwork.com* +windowsbulletin.com* +wordscapescheat.com* +workfromhomejobs.me* +advantagemeals.com* +alien-covenant.com* +appwalkthrough.com* +boiteachansons.net* +busymomshelper.com* +calledtowander.com* +candycrushtips.com* +chalkitupfancy.com* +commandwindows.com* +coolhikinggear.com* +criticalcactus.com* +crucigramas911.com* +decorologyblog.com* +destinynewshub.com* +englishsummary.com* +expandetumente.com* +faithinthenews.com* +fishtanksetups.com* +flexmyfinances.com* +gardeningdream.com* +guide-du-chien.com* +howdoyouplayit.com* +inlandaquatics.com* +lawnmowerforum.com* +lectinfreemama.com* +loveyouwedding.com* +motorbicycling.com* +mystonemeaning.com* +nytimesanswers.com* +online-convert.com* +orioleshangout.com* +readylifestyle.com* +rebootmygarage.com* +restapiexample.com* +rollerskatedad.com* +secretsofsushi.com* +signe-zodiaque.com* +spirit-of-rock.com* +tarotdetiziana.com* +teacupdogdaily.com* +teampilipinas.info* +thecrafterlife.com* +themotordigest.com* +therandomvibez.com* +thewanderingrv.com* +thewindowsclub.com* +toytraincenter.com* +travelswithsun.com* +tribunenantaise.fr* +trucksresource.com* +tvfandomlounge.com* +viaggio-in-cina.it* +visit-vallarta.com* +voiture-conseil.fr* +whatsgrouplink.com* +wowfreestuff.co.uk* +yourdailyglobe.com* +zdroweporadniki.pl* +znacenje-imena.com* +aboutthemafia.com* +accountkiller.com* +angelmanifest.com* +aratariathome.com* +articlemyriad.com* +basketuniverso.it* +battlemetrics.com* +bearnakedfood.com* +benderfitness.com* +bestonreviews.com* +boatexportusa.com* +candycrushmom.com* +chargeprotect.com* +compatibilite.org* +concienciaeco.com* +connectedwiki.com* +costcoinsider.com* +crosswordguru.com* +cullyskitchen.com* +curatedquotes.com* +designermixes.org* +drivedistance.com* +ecouter-radio.com* +ehomeremedies.com* +etapainfantil.com* +fishingskillz.com* +friendsforlife.me* +goingfitunfit.com* +groupgames101.com* +grrrltraveler.com* +guineapigtube.com* +hardwaretimes.com* +hightechforpc.com* +homesteadgeek.com* +icolorpalette.com* +inglesgourmet.com* +inmate-lookup.org* +internetslang.com* +jumbleanswers.com* +justflipacoin.com* +kerriscrochet.com* +kicksologists.com* +kodi-tutorials.uk* +livemusicblog.com* +maisieandruth.com* +morningkoffee.com* +mybakingbliss.com* +mywordcookies.com* +optimistminds.com* +palmaairport.info* +playmathmania.com* +prisoninsight.com* +remodelormove.com* +resetoillight.com* +ricettegustose.it* +sakhyulations.com* +sentencehouse.com* +septictankpro.com* +sharktankblog.com* +showbizcorner.com* +silvermonthly.com* +smarthomeblog.net* +smilingstaffy.com* +steelernation.com* +sveopoznatima.com* +thefinertimes.com* +thetarotguide.com* +theyumyumclub.com* +wearableinear.com* +weather-atlas.com* +workingmums.co.uk* +xtrhorsepower.com* +yourjeepguide.com* +youthhoops101.com* +143greetings.com* +acessaber.com.br* +activenorcal.com* +aide-scrabble.fr* +beerealhoney.com* +biggamelogic.com* +blogdoiphone.com* +bodypaintips.com* +browsandbody.com* +cabosanlucas.net* +catnamescity.com* +celebritydig.com* +codebeautify.org* +computerhope.com* +constitution.org* +construct-ed.com* +corona-teller.nl* +crossword365.com* +dailyanswers.net* +diymarketers.com* +eat-pregnant.com* +electrical4u.com* +englishmaven.org* +englishnotes.com* +escapenormal.com* +feettometres.com* +freeeconhelp.com* +frontstretch.com* +golfcarttips.com* +hanginghyena.com* +hausbau-forum.de* +insindacabili.it* +isle-of-mull.net* +italialiving.com* +jubilantpups.com* +landyourlife.com* +lovewideopen.com* +mahasarkar.co.in* +makeeasylife.com* +matematiksel.org* +mentehermosa.net* +michelacosta.com* +mixedarticle.com* +mysmartahome.com* +nadabookinfo.com* +networthspot.com* +onibusbrasil.com* +paginapropia.com* +panitikan.com.ph* +parcellookup.com* +petgearguide.com* +plantaddicts.com* +pokemontrash.com* +recruitment.guru* +redargentina.com* +routenplaner.app* +schooldigger.com* +scrabblemania.fr* +sealwithease.com* +stabroeknews.com* +stackedhomes.com* +sudokusolver.net* +swagcaptions.com* +tagquestions.net* +teluguadda.co.in* +texasoutside.com* +thedailyshep.com* +thedairydish.com* +themoneyfarm.org* +tryoutnature.com* +valdovaccaro.com* +wickedhorror.com* +xscholarship.com* +zamalektoday.com* +zatznotfunny.com* +zirusmusings.com* +1001gardens.org* +10toes2feet.com* +4pics1-word.com* +abi-rechner.com* +about-twins.com* +angelnumber.org* +answersking.com* +appcheating.com* +asafraction.net* +astrocentro.com* +birdsflight.com* +bocahkampus.com* +buddysecret.com* +celebcenter.net* +celebsolino.com* +chemicalaid.com* +cleanerwiki.com* +codingahead.com* +dialingcode.com* +digitized.house* +droidafrica.net* +euro-muenzen.tv* +expertpublic.fr* +festivalnet.com* +fifatalents.com* +filminquiry.com* +filodiritto.com* +fitnesspell.com* +great-taste.net* +griddleking.com* +group-games.com* +healtholino.com* +highonfilms.com* +iconarchive.com* +ieltsrewind.com* +interbasket.net* +ispreview.co.uk* +maestraanita.it* +melanieredd.com* +netflixdeed.com* +noorsrecipe.com* +nuevodia.com.ve* +numberspy.co.uk* +offroadable.com* +onlineqatar.com* +pregnanteve.com* +propertysold.ca* +pumpupboats.com* +qcsunonline.com* +quartzimodo.com* +racetothewh.com* +righttrivia.com* +sandiegocan.org* +sanovnik365.com* +scotlandinfo.eu* +showbizcast.com* +soakandsoil.com* +sourcedaddy.com* +southpawers.com* +speakersmag.com* +startupback.com* +tcodesearch.com* +techacrobat.com* +techbriefly.com* +techfornerd.com* +techweekmag.com* +theballzone.com* +thekewlshop.com* +thepinoyofw.com* +thrivenaija.com* +tiltfishing.com* +todaynews.co.uk* +trendingpal.com* +vegansandra.com* +villagenews.com* +weldsmartly.com* +wondermondo.com* +aa-fishing.com* +aerialrain.com* +asknumbers.com* +astrocenter.de* +astrocenter.fr* +blogograph.com* +bornceltic.com* +caesonline.com* +classbasic.com* +clutchaxes.com* +cncsourced.com* +codycross.info* +couponsock.com* +csharpcodi.com* +cuisinelolo.fr* +culturamix.com* +cyclingpro.net* +dazepuzzle.com* +diythought.com* +facthacker.com* +filipiknow.net* +ftsdlskits.com* +gameanswer.net* +gemstagram.com* +getriddles.com* +ghosttowns.com* +gnrcentral.com* +golfcartgo.com* +homebyfour.com* +housakicks.com* +hundredkey.com* +huurportaal.nl* +ieltspages.com* +infolibros.org* +infomercado.pe* +jovenesweb.com* +kitchmenow.com* +limitlesso.com* +lostsaloon.com* +lyricsgram.com* +mariamarin.com* +minecraft.buzz* +motorbeast.org* +myboldbody.com* +nufcblog.co.uk* +olive-drab.com* +onecarspot.com* +orangefizz.net* +paddock-gp.com* +pausecafein.fr* +portanapoli.de* +rentola.com.au* +resurchify.com* +reve-islam.com* +sa-piscine.com* +shopsleuth.com* +slappedham.com* +smobserved.com* +snowycodex.com* +spieltimes.com* +teslanorth.com* +theopenmat.com* +thepettown.com* +thermomeat.com* +thethaiger.com* +treatnheal.com* +wnynewsnow.com* +wordleplay.com* +yamahaclub.com* +yogurtnerd.com* +yougowords.com* +zacsgarden.com* + abc-kinder.de* + akinator.mobi* + animalhow.com* + apkmirror.com* + appamatix.com* + bakealish.com* + cademedia.com* + cenicienta.fr* + comoapple.com* + countryle.com* + dasparking.de* + decksbye3.com* + decoratoo.com* + dmvnearme.net* + dreammean.com* + englicist.com* + foodgroove.de* + freelists.org* + geekmarkt.com* + gelending.com* + ggccoffee.com* + govhiring.com* + halabtech.com* + hxbenefit.com* + ideas4diy.com* + indcareer.com* + intheyard.org* + iscrapapp.com* + kididdles.com* + loudbeats.org* + moneymint.com* + mrxstitch.com* + onlinedmv.com* + pawmygosh.com* + rentlingo.com* + rentola.co.uk* + rvblogger.com* + smartconso.fr* + starrymag.com* + super-fute.be* + template.city* + theparking.eu* + uspspoint.com* + weatherpr.com* + wolkenweit.de* + wordrelax.com* + wortwuchs.net* + yorkiemag.com* + aboblist.com* + ahlynews.com* + ak4tsay1.com* + bizsugar.com* + blogchef.net* + careerdp.com* + carlicas.com* + cat-news.net* + catvills.com* + compuhoy.com* + d9sports.com* + daemtube.com* + dubaiofw.com* + eafinder.com* + examveda.com* + farmchat.com* + fishlore.com* + gearhose.com* + geeksgod.com* + gkduniya.com* + gpspower.net* + grindgis.com* + heydonna.com* + ipadable.com* + jakazena.com* + jobmob.co.il* + katverse.com* + keytarhq.com* + kidzfeed.com* + learnesl.net* + lenpenzo.com* + leparking.be* + leparking.ch* + leparking.fr* + luciding.com* + moredirt.com* + muchfeed.com* + playerone.tv* + property.xyz* + psprices.com* + puckjunk.com* + resumeok.com* + samagame.com* + sanovnik.org* + sp-today.com* + techruth.com* + thesukan.net* + timelines.ws* + traeumen.org* + uniteapi.dev* + wikifame.org* + actorle.com* + aglasem.com* + arealme.com* + barkhow.com* + bidadari.my* + boxemag.com* + buglord.com* + cnabuzz.com* + cubanet.org* + drawize.com* + eslgold.com* + finbold.com* + gameblog.fr* + hairmag.org* + hobbeasy.de* + ipowatch.in* + mamanly.com* + milepro.com* + modsims4.fr* + papelea.com* + plantte.com* + rentola.com* + teachoo.com* + thekeea.com* + vroegert.nl* + +10roar.com* + +beacar.com* + +bovees.com* + +chordu.com* + +cubshq.com* + +diynot.com* + +dkhlak.com* + +dogavie.fr* + +kempoo.com* + +marathi.tv* + +mydict.com* + +noobie.com* + +pcsteps.gr* + +ps4dns.com* + +rentola.be* + +rentola.fr* + +rqeeqa.com* + +secretm.me* + +sgodds.com* + +tab-tv.com* + +yosper.com* + algrim.co* + auto24.de* + clclt.com* + hobbr.com* + ipshu.com* + mapio.net* + tvcomp.uk* + vurni.com* + wersm.com* + wvdot.com* + zrivo.com* + +dilc.org* + +ehso.com* + +fccid.io* + +in5d.com* + +iturf.fr* + +k-gen.fr* + +k2rx.com* + +msry.org* +tva.fr08@R/detroitchicago^+ + dissapore.com + +texags.com.side-ad* + thedelite.com.gallery-ad-container + thedelite.com.ad-unit + thedelite.com .smart-ad + paruvendu.fr#ad + +laposte.fr .regiePub + +laposte.fr +.block-pub@ + nouvelobs.com + telerama.fr + +lemonde.fr#dfp-habillage; + nouvelobs.com + telerama.fr + +lemonde.fr .dfp-slot/ +minecraft-server.eu[data-revive-zoneid]B + viedemerde.fr + paroles.netdiv[id^="optidigital-adslot-"]& + viedemerde.frdiv[data-iab-tag] + cuisineaz.com #bottomAd! + cuisineaz.com .ads_wrapper$ + soccerway.com.banner-content + soccerway.com .block_ad + soccerway.com.ad_skin" + soccerway.com .ad_rectangle + soccerway.com +.ad_header# + soccerway.com.ad_bottom_mpu + +laposte.fr +.basic-pub# + +laposte.fr.push-service-pub + +laposte.fr +.regiePub2 + +laposte.fr .regiePub728' +rtl2.fr +rtl.fr.container-ads" +rtl2.fr +rtl.fr .c-prebid + +turbo.fr .mpuContainerG +paris-normandie.fr +lest-eclair.fr + lunion.fr.r-pub--leadern +paris-normandie.fr +aisnenouvelle.fr +lest-eclair.fr + lardennais.fr + lunion.fr.r-pub--banniereX +paris-normandie.fr +lest-eclair.fr + lardennais.fr + lunion.fr.r-pub--inread2 +cosmopolitan.fr.ArticleContent-advertising1 + viedemerde.fr + fmylife.com .opd_adsticky + fmylife.com +.sticky-ad6 + viedemerde.fr + fmylife.com.parent-ad-desktopò´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.todiv[id^="ezoic-pub-ad-"]¶‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.frdiv[id^="ezoic-pub-ad-"]2 +dealsofamerica.comdiv[id^="ezoic-pub-ad-"]ù¥ +@ÿï* + stuff.co.nz08@R!stuffnz-sydney.gscontxt.net/main/ +]ÿï* + stuff.co.nz08@R>stuff.co.nz/static/stuff-adfliction/latest/stuff-adfliction.js +>ÿï* + stuff.co.nz08@Rstuff.co.nz/spade/api/adnostic/ +9ÿï* + stuff.co.nz08@R/static/prebid/prebid*.js^ +Cÿï* + stuff.co.nz08@R$/static/adnostic/stuff-adnostic*.js^ +B* + stuff.co.nz08@R%pagead2.googlesyndication.com/pagead/ +Eÿï* + stuff.co.nz08@R&adservice.google.*/adsid/integrator.js +]€ * + stuff.co.nz08@R=g.doubleclick.net/pagead/ads^*client=ca-pub-8655001720710332^ +Cÿï* + stuff.co.nz08@R$googletagservices.com/tag/js/gpt.js^ +gÿï* + buonissimo.it* + quifinanza.it* + siviaggia.it* + supereva.it08@Riolam.it/js/prebid.js^ +7ÿï* + libero.it08@Rtpc.googlesyndication.com^ + ÿï* +insidermonkey.com* +tradingcharts.com* +freerealtime.com* + barchart.com* + baystreet.ca* + +finviz.com08@R$u5.investingchannel.com/prebid/*.js^ +Eÿï* +discuss.com.hk08@R#uwants.com/include/javascript/*.js^ +:ÿï* + price.com.hk08@Rprice.com.hk/scripts/*.js^ +Iÿï* +discuss.com.hk08@R'discuss.com.hk/include/javascript/*.js^ +êÿï* +centralillinoisproud.com* +conchovalleyhomepage.com* +bigcountryhomepage.com* +binghamtonhomepage.com* +fourstateshomepage.com* +everythinglubbock.com* +mychamplainvalley.com* +yourcentralvalley.com* +tristatehomepage.com* +texomashomepage.com* +westernslopenow.com* +mywabashvalley.com* +rochesterfirst.com* +siouxlandproud.com* +newsnationnow.com* +ourquadcities.com* +valleycentral.com* +wearegreenbay.com* +borderreport.com* +fox5sandiego.com* +myhighplains.com* +cnyhomepage.com* +myarklamiss.com* +mypanhandle.com* +mystateline.com* +mysterywire.com* +mytwintiers.com* +nwahomepage.com* +ozarksfirst.com* +pahomepage.com* +yourbigsky.com* + dcnewsnow.com* + fox21news.com* + fox44news.com* + fox56news.com* + informnny.com* + upmatters.com* + yourbasin.com* + 8newsnow.com* + cbs4indy.com* + cenlanow.com* + counton2.com* + keloland.com* + ktalnews.com* + localsyr.com* + wgnradio.com* + yourerie.com* + brproud.com* + fox2now.com* + thehill.com* + wiproud.com* + +fox4kc.com* + +myfox8.com* + +news10.com* + +nxsttv.com* + +qcnews.com* + +wfxrtv.com* + +woodtv.com* + +wowktv.com* + +wvnstv.com* + abc27.com* + cbs17.com* + cbs42.com* + fox16.com* + fox40.com* + fox59.com* + khon2.com* + kron4.com* + kxnet.com* + nbc4i.com* + phl17.com* + wgntv.com* + who13.com* + +cw33.com* + +cw39.com* + +fox8.com* + +kark.com* + +kdvr.com* + +ketk.com* + +kfor.com* + +kget.com* + +klfy.com* + +koin.com* + +krqe.com* + +ksnt.com* + +ktla.com* + +ktsm.com* + +kxan.com* + +wane.com* + +wate.com* + +wavy.com* + +wboy.com* + +wbtw.com* + +wcia.com* + +wdhn.com* + +wfla.com* + +wgno.com* + +whnt.com* + +wivb.com* + +wjbf.com* + +wjhl.com* + +wjtv.com* + +wkbn.com* + +wkrg.com* + +wkrn.com* + +wlns.com* + +wnct.com* + +wpri.com* + +wrbl.com* + +wric.com* + +wsav.com* + +wspa.com* + +wtaj.com* + +wtnh.com* + +wtrf.com* + +wwlp.com* + +wytv.com* +ksn.com08@R0*/wp-admin/wp-content/themes/nexstar/client/*.jsí´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.adtester-container±‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr.adtester-containerè´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to[data-ez-name]¬‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr[data-ez-name]ì´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.ezoic-ad-adaptive°‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr.ezoic-ad-adaptiveã´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to .ezoic-ad§‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr .ezoic-adì´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.ezoic-adpicker-ad°‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr.ezoic-adpicker-adá´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.ezo_ad¥‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr.ezo_adÿ´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to%span[id^="ezoic-pub-ad-placeholder-"]Ë% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr%span[id^="ezoic-pub-ad-placeholder-"]í´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.tospan[data-ez-ph-id]±‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.frspan[data-ez-ph-id]í´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +thewindowsclub.com +trackingadvice.com +truthorfiction.com +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +yourjeepguide.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +propertysold.ca +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +culturamix.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + geekmarkt.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + careerdp.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +tab-tv.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +k2rx.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.ez-sidebar-wall-ad±‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +guitarchords.country +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +onthegolfgreen.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +usconstitution.net +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +eatdrinkdeals.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thekonsulthub.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rccgonline.org +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +msry.org +tva.fr.ez-sidebar-wall-adå´$ +"dellwindowsreinstallationguide.com$ +"secretcopycatrestaurantrecipes.com! +corporateofficeheadquarters.org! +dailythemedcrosswordanswers.com! +dailythemedcrosswordanswers.net! +newenglandhistoricalsociety.com! +real-world-physics-problems.com +astuces-aide-informatique.info +grundschule-arbeitsblaetter.de +betriebswirtschaft-lernen.net +everything-about-concrete.com +freeprintablemedicalforms.com +hospitalitytrainingcenter.com +nutsandboltsspeedtraining.com +codesforuniversalremotes.com +constructionreviewonline.com +environmental-conscience.com +happybirthdaywishesworld.com +londresparaprincipiantes.com +sicilianicreativiincucina.it +smartwatchspecifications.com +affordablehousingonline.com +asvabpracticetestonline.com +change-management-coach.com +electricianapprenticehq.com +expertprogrammanagement.com +latimescrosswordanswers.com +meine-sendungsverfolgung.de +memory-improvement-tips.com +northwestfishingreports.com +perfect-english-grammar.com +personalsupportworkerhq.com +softwaretestingmaterial.com +sprueche-zum-verschenken.de +architecturalafterlife.com +elizabethanenglandlife.com +ellemijotequelquechose.com +foreclosurephilippines.com +knowledgeweighsnothing.com +lasourisglobe-trotteuse.fr +mentalhealthworksheets.com +onlinepersonalitytests.org +scholarshipscorner.website +segmentationstudyguide.com +stampdutycalculator.org.uk +travelwithkevinandruth.com +troubleshootingcentral.com +universalremotereviews.com +about-air-compressors.com +accounting-simplified.com +bordersandbucketlists.com +datasciencemadesimple.com +democraticunderground.com +drivinginstructorblog.com +e-methodstechnologies.com +encyclopedia-titanica.org +handwritingworksheets.com +historylearningsite.co.uk +hofladen-bauernladen.info +homeinspectioninsider.com +homesteadsurvivalsite.com +passion-pilze-sammeln.com +podcastfrancaisfacile.com +positivewordsresearch.com +refrigeratorsreviewed.com +remedes-de-grand-mere.com +saltwateraquariumblog.com +spideridentifications.com +theproductiveengineer.net +troubleshootmyvehicle.com +tutorials-raspberrypi.com +waschbeckenarmaturtest.de +wishesmessagessayings.com +basicenglishspeaking.com +bestlovetextmessages.com +brighthubengineering.com +businessformtemplate.com +caribbeangreenliving.com +coltivazionebiologica.it +easydrawingtutorials.com +escribircanciones.com.ar +freelancewritinggigs.com +groupdiscussionideas.com +gundamkitscollection.com +indifferentlanguages.com +instrumentationtools.com +personality-database.com +scuffedentertainment.com +socialstudiesforkids.com +telefoonnummerzoeken.net +thehomesteadsurvival.com +topwoodworkingadvice.com +tutorials-raspberrypi.de +vision-environnement.com +7littlewordsanswers.com +allabouttabletennis.com +bermuda-attractions.com +bodylanguagecentral.com +contemplatingsweets.com +countertopspecialty.com +crosswordanswers911.net +daskreativeuniversum.de +detroitsportsnation.com +dreamingandsleeping.com +dutyfreeinformation.com +everydayprayerguide.com +freeclinicdirectory.org +fuerteventurazeitung.de +globalpropertyguide.com +houstoncasemanagers.com +lagrenouilletricote.com +lastminuteengineers.com +latcrosswordanswers.com +localkittensforsale.com +machinelearningplus.com +maison-et-domotique.com +marketingstudyguide.com +mathhomeworkanswers.org +my-package-tracking.com +nytcrosswordanswers.com +offgridpermaculture.com +onlinedoctranslator.com +overseasattractions.com +qualitydogresources.com +significationsmileys.fr +sims4studiodownload.com +spelling-words-well.com +startwoodworkingnow.com +365thingsinhouston.com +automationrhapsody.com +bestcateringprices.com +bigblueinteractive.com +brighthubeducation.com +calculerpourcentage.fr +citizensustainable.com +commercialdriverhq.com +crossbordershopping.ca +crueltyfreereviews.com +deine-autoreparatur.de +easyscienceforkids.com +enneagramuserguide.com +everythingreptiles.com +explorejeffersonpa.com +fishkeepingforever.com +florida-palm-trees.com +france-hotel-guide.com +free-sample-letter.com +freeasestudyguides.com +futbolenvivomexico.com +goodhomeautomation.com +groundedlifetravel.com +informatique-mania.com +interpretation-reve.fr +journeydogtraining.com +livinginacontainer.com +localpuppybreeders.com +mapleleafshotstove.com +medievalchronicles.com +metric-conversions.org +motocrossactionmag.com +nonphoneworkathome.com +personaldiecutting.com +professeur-poteaux.com +protoolsproduction.com +realestatecareerhq.com +recyclingcenternear.me +roleplayersrespite.com +se-faire-rembourser.fr +simplytrinicooking.com +somethingturquoise.com +streetsmartkitchen.com +survivalmesserguide.de +thecrazyprogrammer.com +thegradecalculator.com +thepointcalculator.com +titlecaseconverter.com +tracfoneusermanual.net +tremplin-numerique.org +williamsonhomepage.com +wsjcrosswordsolver.com +yummyindiankitchen.com +accountingcapital.com +aconsciousrethink.com +aginghealthytoday.com +automobile-conseil.fr +birthdaywishes.expert +buffalohockeybeat.com +californiabeaches.com +centraldesermones.com +coloringpagesonly.com +computingforgeeks.com +corporateofficehq.com +dailykillersudoku.com +dragoninquisition.com +europeforvisitors.com +fastfoodmenupreise.de +fiveminutelessons.com +fix-my-compressor.com +franchisesports.co.uk +freezermealfrenzy.com +futbolenvivochile.com +housingapartments.org +howtoexcelatexcel.com +innerhealthstudio.com +japancamerahunter.com +leftbrainedartist.com +lightnovelbastion.com +managementstudyhq.com +militarytimechart.com +motivationandlove.com +norcalfishreports.com +notesfromtheporch.com +sapintegrationhub.com +schrift-generator.com +sportfishingbuddy.com +squarefootagearea.com +thecalculatorsite.com +thecleverbusiness.com +verificationguide.com +weakwifisolutions.com +workplacefairness.org +yourfreetemplates.com +25yearslatersite.com +aboutchromebooks.com +askanydifference.com +autoservicecosts.com +babeltechreviews.com +barcode-generator.de +blackeyepolitics.com +bornagainboating.com +charactercounter.com +codycrossanswers.com +codycrossanswers.org +conseil-nord-sud.com +designsbystudioc.com +directpowerdeals.com +divinedaolibrary.com +englishteststore.net +experthomereport.com +familyfoodgarden.com +fanstranslations.com +fishkeepingworld.com +framinghamsource.com +gardenloversclub.com +googlechromecast.com +grammatiktraining.de +greenlivingtribe.com +guitarchords.country +happybirthdaymsg.com +houseplanshelper.com +howtotrainthedog.com +imagecolorpicker.com +interstate-guide.com +jigglypuffsdiary.com +justrandomthings.com +kinderspiele-welt.de +klinikbewertungen.de +letslearnfinance.com +lettersinenglish.com +lovecookingdaily.com +lyrical-nonsense.com +lyricstranslated.com +magnificentworld.com +microscopemaster.com +minnesota-scores.net +mon-guide-voiture.fr +namegeneratorfun.com +nutrition-charts.com +oneminuteenglish.org +onlinepianocoach.com +oursportscentral.com +paranormalschool.com +pedigreedatabase.com +perfectdogbreeds.com +probleme-paiement.fr +projectpractical.com +removeandreplace.com +royalwatcherblog.com +scholarships365.info +sewingwithscraps.com +shtfpreparedness.com +simpleprogrammer.com +simplypsychology.org +singletrackworld.com +solzyatthemovies.com +taraletsanywhere.com +thehockeywriters.com +tightfistfinance.com +weighttraining.guide +windows101tricks.com +worldstopexports.com +accountingverse.com +adventuregamers.com +anagramscramble.com +ancient-symbols.com +androidinfotech.com +appraisersforum.com +arcaneintellect.com +chitrasfoodbook.com +conqueryourexam.com +corporationwiki.com +crosswordsolver.org +dataoverhaulers.com +electrictoolbox.com +esportsearnings.com +euromaidanpress.com +fifamobileguide.com +findwhocallsyou.com +freewateradvice.com +gamblebaycoffee.com +get-itsolutions.com +godzilla-movies.com +goodcalculators.com +grandtournation.com +hacktheminotaur.com +halfglassgaming.com +hometownlocator.com +how2drawanimals.com +ireland-calling.com +itsolutionstuff.com +kalender-uhrzeit.de +learnmechanical.com +legaldictionary.net +literarydevices.net +longrangesignal.com +madformadelskere.dk +mccommandcenter.com +mobileinternist.com +motocrossadvice.com +myenglishteacher.eu +npinumberlookup.org +nycinsiderguide.com +onlinehelpguide.com +phonedealstoday.com +pourquoimabanque.fr +problemsphysics.com +r-graph-gallery.com +ricettedigusto.info +routeripaddress.com +securityonline.info +shetlandwebcams.com +smileybedeutung.com +spencerfernando.com +spirit-of-metal.com +sportcoaching.co.nz +studyabroadaide.com +sweepsadvantage.com +tabletennisspot.com +tarif-disneyland.fr +theancestorhunt.com +thebirthdaybest.com +thefipharmacist.com +theparking-cars.com +thepracticetest.com +thesavvycampers.com +thetrendspotter.net +thewalletshoppe.com +thewholeportion.com +topdrawersoccer.com +totalmotorcycle.com +tuerkeireiseblog.de +tutorialgateway.org +ultraboardgames.com +unscramblewords.com +vollmacht-muster.de +whats-your-sign.com +wir-essen-gesund.de +wordstodescribe.com +wordunscrambler.com +wrestlingrumors.net +academicinvest.com +accountinguide.com +altcodeunicode.com +anruferauskunft.de +asubtlerevelry.com +autismus-kultur.de +badgerandblade.com +bedeutungonline.de +besthorserider.com +bourses-etudes.net +carserviceland.com +childcarecenter.us +clickspeedtest.com +codewithmukesh.com +collegefactual.com +comicbookrealm.com +commeunefleche.com +corrigetonimpot.fr +couponscorpion.com +crispyfoodidea.com +crosswordgiant.com +decorhomeideas.com +diyphotography.net +dreamsofjianghu.ca +eltallerdelbit.com +enggcyclopedia.com +explorebiotech.com +exploreclarion.com +fastfoodprecios.mx +favoredleather.com +fedsdatacenter.com +feelingthevibe.com +freekidscrafts.com +golfjourney365.com +graverobbertl.site +greekmythology.com +hangrybynature.com +happyvagabonds.com +havredailynews.com +historyforkids.net +howtoheatpress.com +howtopronounce.com +howtosolutions.net +javadevjournal.com +jobsforteenshq.com +knowyourphrase.com +lettersformats.com +marrieddivorce.com +methodephysique.fr +midcenturyhome.com +miracomosehace.com +myenglishpages.com +neueroeffnung.info +novacrystallis.com +nurseteachings.com +onthegolfgreen.com +opensourcetext.org +pdfwordconvert.com +phototravellers.de +planetsforkids.org +playretrogames.com +prepvolleyball.com +printablepaper.net +publicdelivery.org +puertovallarta.net +realmenuprices.com +realmofhistory.com +restartatorium.com +retrogamebuyer.com +salaryaftertax.com +skinnyandtasty.com +smallbiztrends.com +smsreceivefree.com +sociologygroup.com +sportfishingbc.com +sprueche-liste.com +spss-tutorials.com +sunrise-sunset.org +sweetiessweeps.com +taxifarefinder.com +teamcolorcodes.com +technicalustad.com +thecollegemonk.com +trackingadvice.com +truthorfiction.com +usconstitution.net +vancampinglife.com +victoriamgclub.com +whatnowatlanta.com +wikiaccounting.com +wordscapeshelp.com +worlddogfinder.com +writingcommons.org +xtremegaminerd.com +5ebackgrounds.com +access-excel.tips +appledystopia.com +askdavetaylor.com +askthebuilder.com +baldandbeards.com +brainyhousing.com +broadwayworld.com +bucksandcents.com +businesstopia.net +c-sharpcorner.com +cadblocksfree.com +catingtonpost.com +chainsawlarry.com +champsorchumps.us +charbelnemnom.com +chicitysports.com +chromeunboxed.com +circuitstoday.com +classedefanfan.fr +classicguides.org +collectiveray.com +commentpicker.com +crosswordbuzz.com +deptofnumbers.com +disneyaddicts.com +dodgersnation.com +dreamglossary.com +eapfoundation.com +eatdrinkdeals.com +emmalinebride.com +escooternerds.com +fablesofaesop.com +findnicknames.com +fittesttravel.com +freshersvoice.com +frugalhotspot.com +gatheredagain.com +gizbuyerguide.com +gravelcyclist.com +guide-irlande.com +guidemusulman.com +healthtipsnow.net +hollywoodmask.com +homeawakening.com +homeguideguru.com +homeguideplan.com +howto-android.com +ilovedogscute.com +incredibleart.org +influenceimmo.com +inglesmundial.com +itexamanswers.net +jayendrapatil.com +jokes-de-papa.com +jsonformatter.org +jtouchofstyle.com +justsolitaire.com +klimatabelle.info +ladybugplanet.com +lanzateyviaja.com +lifewithjanet.com +linuxuprising.com +loving-travel.com +microbeonline.com +midlifeguitar.com +myfunkytravel.com +nepalitelecom.com +offroadaussie.com +oliviadaolive.com +online-python.com +onlinepianist.com +paper-replika.com +parasitipedia.net +parkingaccess.com +pendrivelinux.com +perfumemaster.com +prospects1500.com +raspberrytips.com +ratzillacosme.com +renewcanceltv.com +rightnewswire.com +sabersourcing.com +scrabblecheat.com +seriouslyfish.com +solutionjeux.info +somosmamas.com.ar +standoutbooks.com +stevewyborney.com +swingcompleto.com +tangerinezest.com +tckpublishing.com +techpilipinas.com +thecabindiary.com +thedisinsider.com +thekonsulthub.com +thelawnreview.com +thepythoncode.com +tiremeetsroad.com +triviaplaying.com +underpargoals.com +universal-sci.com +verseoftheday.com +victorian-era.org +vivaolinux.com.br +weather2visit.com +wedrawanimals.com +welovequizzes.com +wheretocredit.com +winhelponline.com +zkelectronics.com +afkarenaboss.com +alteredgamer.com +askbobrankin.com +beatlesbible.com +booleanworld.com +breatheheavy.com +briankoponen.com +cabaneaidees.com +cakedecorist.com +camzillasmom.com +dailycrochet.com +dailyhistory.org +dalmacijanews.hr +distancecalc.com +diydoctor.org.uk +dubai-online.com +easytutoriel.com +electrical4u.net +englishhints.com +essentialsql.com +fantasynerds.com +feelingvegas.com +find-us-here.com +freejobalert.com +gadgetstouse.com +generatormix.com +h-supertools.com +hiphopmakers.com +homedetoxing.com +improvehoops.com +itsourcecode.com +jailbreak-mag.de +jailexchange.com +jazminemedia.com +johnnyafrica.com +js-tutorials.com +jumblesolver.com +keepinspiring.me +labex-cortex.com +linuxtechlab.com +livecharts.co.uk +livetheglory.com +lovingnewyork.de +lunchtime.com.au +magicskillet.com +metaladdicts.com +michaelsaves.com +myotakuworld.com +oakvillenews.org +offshoreblue.com +onesmartcrib.com +onestep4ward.com +onlinetyping.org +phonecurious.com +practicequiz.com +programcreek.com +programmingr.com +purposefairy.com +quranicnames.com +raiderramble.com +red-dot-geek.com +rimworldbase.com +roadtrailrun.com +router-reset.com +scitechdaily.com +seventrumpet.com +sharpologist.com +sheldonbrown.com +singlemothers.us +skin-tracker.com +tabletopjoab.com +tarif-lettre.com +tasteerecipe.com +tentonhammer.com +text-compare.com +the-diy-life.com +thecoastnews.com +thepersonage.com +tractorbynet.com +trendcentral.com +turfmechanic.com +vat-search.co.uk +visitcumbria.com +walkthroughs.net +whatispiping.com +wikibioworth.com +wikinetworth.com +yagisanatode.com +1001pallets.com +aldvingomes.com +alexusrenee.com +aminstitute.com +anabolicmen.com +analyzemath.com +android-user.de +apnatoronto.com +appdividend.com +artisansweb.net +astrosaxena.com +bauredakteur.de +behindaname.com +bikehistory.org +blizzspirit.com +brapresenter.nu +bricoleurs.info +brighthubpm.com +codegrepper.com +codevscolor.com +crime-nieuws.nl +crosswordeg.com +cubsinsider.com +curlingdiva.com +dailyorange.com +decortweaks.com +dicotravail.com +easyebiking.com +eslspeaking.org +fbfeudguide.com +fibrojedi.me.uk +fifarosters.com +flgardening.com +flight-radar.eu +freakyjolly.com +gabesguides.com +gadget-info.com +galaxy-tipps.de +gamenguides.com +goldpriceoz.com +gotoportugal.eu +govsalaries.com +growertoday.com +guitartwitt.com +helptostudy.com +hotexamples.com +ignisnatura.org +inscribemag.com +jumblesolver.us +kylonpowell.com +lambdageeks.com +le-citazioni.it +lejustechoix.fr +logosbynick.com +lunchtime.co.nz +lyricfinder.org +madbackyard.com +materialguru.de +materialsix.com +miamiscapes.com +mots-croises.ch +mychromebook.fr +myswissalps.com +nilsenreport.ca +nortechplus.com +outletbound.com +ownthegrill.com +parlerdamour.fr +philognosie.net +plagiarisma.net +planete-deco.fr +pleine-lune.org +programtalk.com +r-statistics.co +railmaps.com.au +reciperoost.com +remodelista.com +sabireviews.com +sacredlotus.com +salarybot.co.uk +scamadviser.com +schemecolor.com +sciencespot.net +scootertalk.org +seniordaily.com +shuttlefare.com +smartandroid.fr +soapcentral.com +studybreaks.com +swgohevents.com +swiftmoves.blog +techsviewer.com +textcompare.org +tools-unite.com +truththeory.com +warehouseiq.com +yardblogger.com +yogihosting.com +10-0-0-0-1.org +4kshooters.net +aiptcomics.com +animalfate.com +artprompts.org +auralcrave.com +barkercise.com +bigskyfans.com +calculate.plus +campergrid.com +catkingpin.com +cookitonce.com +craftwhack.com +cultaholic.com +curateview.com +cutthewood.com +cxmagazine.com +dailyactor.com +de-reviews.com +delftstack.com +devtrackers.gg +disposalxt.com +dramapanda.com +drivingtest.ca +droidviews.com +earrockers.com +ezprepping.com +filmthreat.com +fixingport.com +funkelfaden.de +gardenista.com +gbodyforum.com +ghostarrow.com +grammarhow.com +hiphop24x7.com +homesnacks.com +howtoforge.com +icebreakers.ws +ieltsbuddy.com +infos-geek.com +iplocation.net +iqtestprep.com +itechfever.com +jaynestars.com +jlptsensei.com +liaomeiguo.com +linuxtechi.com +live-tennis.eu +liverampup.com +loupetroop.com +mailtoself.com +maisfontes.com +mikeeckman.com +mjsbigblog.com +moddingway.com +motoconseil.fr +motorverso.com +msfsaddons.com +msfsaddons.org +near-place.com +nursestudy.net +officetuts.net +orchideria.com +ourfitpets.com +papersizes.org +patchesoft.com +perennials.com +phonesdata.com +phrases.org.uk +puckcomics.com +rccgonline.org +roadsnacks.net +roofonline.com +scamcharge.com +scijournal.org +scotchnoob.com +sebhastian.com +serieophile.fr +spikeybits.com +stellpower.com +stickyball.net +surlyhorns.com +tallypress.com +tarotforum.net +techotopia.com +techrrival.com +thailandee.com +thewebdev.info +toutandroid.fr +triviawell.com +tutorial45.com +videocardz.com +wdwtravels.com +weather-us.com +websleuths.com +wellrigged.com +welovepuns.com +whatsabyte.com +wheelssize.com +xflnewshub.com + 3dsourced.com + advertigo.net + alldaynews.gr + allhiphop.com + alloextra.com + archisoup.com + areavibes.com + asacannes.com + avasdemon.com + barnfinds.com + bitemybun.com + biznewske.com + bobcutmag.com + brainbell.com + brighthub.com + buildeazy.com + chipandco.com + chordzone.org + classclef.com + colorcodes.io + costcofan.com + coupons.pizza + cultofmac.com + dantri.com.vn + devanswers.co + ebicycles.com + elderguru.com + encuentos.com + escapefan.com + fangraphs.com + feiertag.info + funquizzes.uk + games4esl.com + gm-trucks.com + guiasteam.com + gw2crafts.net + hikespeak.com + howtoedge.com + ikeaddict.com + ineskohl.info + interieurs.fr + involvery.com + ipaddress.com + it-connect.fr + itechtics.com + japonismo.com + java2blog.com + kifarunix.com + knifeuser.com + kosmofoto.com + lotsearch.net + mamapedia.com + md5online.org + metalwani.com + moonbooks.org + osrsguide.com + pc-builds.com + photodoto.com + phptpoint.com + presale.codes + printfree.com + provscons.com + psychreel.com + relayhero.com + rodeosusa.com + romapress.net + softgenius.co + statsmash.com + storynory.com + techaeris.com + technorms.com + techwhoop.com + textfixer.com + thepricer.org + thumbwind.com + tierlists.com + timer-tab.com + to-hawaii.com + wanderera.com + workgearz.com + wyonation.com + ybierling.com + 38jiejie.com + acqnotes.com + akinator.com + allclash.com + applersg.com + audiomav.com + ausdroid.net + blengaone.de + blogsdna.com + bygonely.com + codstats.net + corrector.co + costumet.com + csr2boss.com + dbaclass.com + deafvideo.tv + deasilex.com + djamware.com + emulsive.org + excelhow.net + fedsmith.com + gojinshi.com + h1bdata.info + hometips.com + iskmogul.com + jspinyin.net + laviasco.com + learncpp.com + linuxize.com + lirarate.org + loonapix.com + lotsearch.de + manuals.plus + meugamer.com + mobile57.com + notinerd.com + oflatest.net + ohbeaute.com + omniglot.com + omnisecu.com + outlet-in.de + pathofex.com + pickytop.com + plantuml.com + pngtosvg.com + quizerry.com + ranksays.com + rokuguru.com + sdlookup.com + simple30.com + stattrek.com + sysprobs.com + tecklyfe.com + themag.co.uk + tigernet.com + timemaps.com + topozone.com + tutsmake.com + tvprofil.com + unorules.com + w3schools.in + wikichip.org + wowpooch.com + zobacz-to.pl + 15track.com + aladin.info + animals.net + answers.org + apestan.com + appdated.de + clash.world + emojis.wiki + finclan.com + gerweck.net + je-rime.com + johndee.com + justuto.com + knifeup.com + koskila.net + lebegeil.de + mapio.co.uk + myzitate.de + nerdbot.com + nesmaps.com + nikkis.info + ourplnt.com + owlguru.com + phpflow.com + play2048.co + rankred.com + riddles.net + shtfdad.com + siccode.com + sommeil.org + techdim.com + thepaws.net + toolstud.io + ukvisa.blog + w3snoop.com + webkams.com + wimarys.com + wphowto.net + wujizun.com + xplaind.com + z-table.com + zambullo.de + +365tips.be + +askleo.com + +autorai.nl + +bayart.org + +ceos3c.com + +defkey.com + +dev2qa.com + +itigic.com + +itnwwe.com + +momdot.com + +mtlurb.com + +overiq.com + +rpgbot.net + +ryadel.com + +teahow.com + +thejub.com + +trucks.com + +tsikot.com + +typing.com + +vymaps.com + +wololo.net + +youpdf.com + +zerauto.nl + +zwivel.com + 35mmc.com + egriz.com + marsja.se + names.org + nygal.com + petdt.com + trovas.ch + uscho.com + vitux.com + we-ha.com + wow4u.com + wprock.fr + +citas.in + +exrx.net + +hackr.io + +ifly.com + +millo.co + +sbxl.com + +xlek.com +ginx.tv +see.cam +rgb.to.ezoic-floating-bottom¿‹% +#bestguide-retirementcommunities.com% +#xn--solitr-kostenlos-spielen-ubc.de$ +"accounting-basics-for-students.com" + free-online-training-courses.com! +corporateofficeheadquarters.com! +dailythemedcrosswordanswers.org! +socialsecurityofficesnearme.com +elblogdelpastoroscarflores.com +free-online-calculator-use.com +herbal-supplement-resource.com +soulfoodandsoutherncooking.com +uspresidentialelectionnews.com +application-remuneratrice.com +entercompetitionsonline.co.uk +financialfreedomcountdown.com +freeprintablecertificates.net +gewuenschtestes-wunschkind.de +mexican-authentic-recipes.com +better-fundraising-ideas.com +computeraideddesignguide.com +easternsierrafishreports.com +laughteronlineuniversity.com +printablecouponsanddeals.com +snippetsthroughthewindow.com +dailycelebritycrossword.com +ensenada-baja-vacations.com +how-to-write-a-book-now.com +rc-airplanes-simplified.com +smartkitchenimprovement.com +socialsecurityofficenear.me +thehealthsciencejournal.com +china-family-adventure.com +classickitchensupplies.com +comidastipicaschilenas.com +das-unternehmerhandbuch.de +dental-treatment-guide.com +learning-styles-online.com +thecapitalsportsreport.com +us-coin-values-advisor.com +whatcareerisrightforme.com +wirelessdevicesreviews.com +africanamericangrants.org +connecticutlifestyles.com +crochetpatterncentral.com +easyretrievertraining.com +emprendiendohistorias.com +famous-mathematicians.com +germanshepherdcountry.com +haltestellen-buslinien.de +longrangesportfishing.net +newyorktimescrossword.net +pokemonkaartenverkopen.nl +reisekostenabrechnung.com +returnpolicyexplained.com +scholarship-positions.com +spartacus-educational.com +thetentairconditioner.com +total-german-shepherd.com +universites-numeriques.fr +autobusesycamioneras.com +bestpromotionalcodes.com +carpentry-pro-framer.com +crosswordquizanswers.com +dailycrosswordsolver.com +easternnewmexiconews.com +english-for-students.com +everything80spodcast.com +fromthegreennotebook.com +healthylivingjames.co.uk +howtoremoveblackmold.com +immigrationnewscanada.ca +lessonslearnedinlife.com +materialeseducativos.org +moreaboutadvertising.com +redanianintelligence.com +significadodetusueno.com +signification-prenom.net +thehydroponicsplanet.com +angelnumbersmeaning.com +bassfishermansguide.com +billofsale-template.com +campertrailerreport.com +delawarebusinessnow.com +descubrecomohacerlo.com +easyautodiagnostics.com +figurines-sculpture.com +financialpilgrimage.com +foot-pain-explained.com +globalfilmlocations.net +labradorlovingsouls.com +lovetextmessages.com.ng +natural-health-zone.com +onthisdateinhistory.net +pharmacy-tech-study.com +popular-archaeology.com +portablesportscoach.com +prowrestlingnewshub.com +sandiegofishreports.com +silverlininglessons.com +singlemothersgrants.org +theinsuranceproblog.com +theswellesleyreport.com +thymeforcookingblog.com +weekendrvadventures.com +alldistancebetween.com +americanbullydaily.com +bettacarefishguide.com +boardofcosmetology.net +codycrosssoluzioni.com +contemporary-dance.org +craftykittycrochet.com +creativelycrafting.com +dreamastromeanings.com +driverslicensetest.net +electricscootering.com +emoticonsignificato.it +enginepartsdiagram.com +famous-celebrities.com +fifacareermodetips.com +foundfootagecritic.com +freshmorningquotes.com +hamblyscreenprints.com +happyfrenchbulldog.com +hollywoodflashback.com +howtofixheadphones.com +identifythiscaller.com +keralahousedesigns.com +kochenkinderleicht.com +loseweightbyeating.com +manifestationmagic.net +nageldesignzentrale.de +ouruniverseforkids.com +peoplesofttutorial.com +pharmacy-tech-test.com +phonetipsandtricks.com +pioneersmokehouses.com +printablecontracts.com +recruitmentbeam.com.ng +rentalhousingdeals.com +sebringdesignbuild.com +simplytrinicooking.org +templesinindiainfo.com +verifyemailaddress.org +webwriterspotlight.com +wordcookiesanswers.com +wortspieleloesungen.de +amazingmemovement.com +bed-bugs-handbook.com +codycrosslosungen.com +codycrosssolution.com +conceptodefinicion.de +congratulationsto.com +consciousreminder.com +coolgoodcaptions.info +countertopadvisor.com +fashionweekonline.com +gartenpflege-tipps.de +glampingorcamping.com +goodmorningmylove.com +gpstrackerreviews.net +lepeupleelectrique.fr +melbournepoint.com.au +officesolutionpro.com +onlinecalculator.guru +optimizehealth365.com +oregonfishreports.com +plantinstructions.com +primitivacomprobar.es +puzzlepageanswers.com +republiquedujapap.com +saboresdemihuerto.com +serving-ice-cream.com +smartenglishnotes.com +ssofficelocations.org +sweetlovemessages.com +symbolic-meanings.com +universalremote.codes +unternehmerlexikon.de +urbansurvivalsite.com +wordscapesanswers.net +yourhearinghelper.com +a-z-music-lyrics.com +anfieldcentral.co.uk +apartmentprepper.com +balancedpolitics.org +beachblissliving.com +beautyhealthpage.com +bestcardmessages.com +bestcrossfitshoe.net +bibletriviadaily.net +bonkersabouttech.com +carexportamerica.com +chickerystravels.com +cnaclassesnearme.com +codycrossanswers.net +contrahealthscam.com +crosswordzone301.com +cuantoestaeldolar.pe +dmtranslationscn.com +donotdpfdelete.green +fastfood-recipes.com +findafishingboat.com +finnsfishingtips.com +fullcirclecinema.com +guessthelocation.net +healthywithhoney.com +householdwonders.com +huskypuppiesinfo.com +indianhindunames.com +itinerarinelgusto.it +mobilehomeliving.org +motorcyclesports.net +mydreamsymbolism.com +nfldraftdiamonds.com +nytimescrossword.org +plagiarismchecker.co +realcajunrecipes.com +receitasagora.com.br +roemische-zahlen.net +significadoemojis.es +smarthomestarter.com +sortingwithstyle.com +ssofficelocation.com +strangeandcreepy.com +tarotalmabarrios.com +texasgranolagirl.com +texashillcountry.com +theblessedqueens.com +thefuntimesguide.com +therightmessages.com +thewritegreeting.com +tiradadetarot.gratis +truthordare-game.com +whatismyagetoday.com +wordcookiescheat.com +wordcrazeanswers.com +4fotos-1palabra.com +accuracyproject.org +airfryerrecipes.com +androidpcreview.com +angolodiwindows.com +appliancerepair.net +batterymanguide.com +bestwalkingfeet.com +blackexcellence.com +calcul-ascendant.fr +camping-experten.de +casasincreibles.com +cdltrainingspot.com +chinarundreisen.com +churchsoundtips.com +comofuncionaque.com +contactsenators.com +controllerstech.com +coolandportable.com +corporate-cases.com +crittercleanout.com +cruisespotlight.com +detectingschool.com +factory-outlets.org +felonyrecordhub.com +firestickmaster.com +foundationfairy.com +frenchiejourney.com +garnishmentlaws.org +getandroidstuff.com +giftideascorner.com +hiphopgoldenage.com +homeguidereport.com +hometheatrelife.com +immigrationroad.com +introvertspring.com +irishmusicdaily.com +jobapplications.net +latestsightings.com +maehroboter-guru.de +mainecoonexpert.com +majesticanimals.net +mehr-als-rohkost.de +messagescelestes.ca +mnemonic-device.com +mumsdelivery.com.au +mysarkarinaukri.com +netexplanations.com +parceltracking.info +paweatheraction.com +phlebotomycoach.com +physicscatalyst.com +pizzacappuccino.com +printables4kids.com +prisonerofclass.com +psychologyhub.co.uk +racingdealma.com.ar +revisesociology.com +ricettadicucina.com +smellyfeetcures.com +snagfreesamples.com +statesymbolsusa.org +staumelder-karte.de +steamcleanerpro.com +surfinghandbook.com +techygeekshome.info +tennisworldlive.com +testpreptoolkit.com +thecrochetspace.com +thegolfeinstein.com +thehamsterhouse.com +thymeforcooking.com +truckersinsider.com +usastorenetwork.com +windowsbulletin.com +wordscapescheat.com +workfromhomejobs.me +advantagemeals.com +alien-covenant.com +appwalkthrough.com +boiteachansons.net +busymomshelper.com +calledtowander.com +candycrushtips.com +chalkitupfancy.com +commandwindows.com +coolhikinggear.com +criticalcactus.com +crucigramas911.com +decorologyblog.com +destinynewshub.com +englishsummary.com +expandetumente.com +faithinthenews.com +fishtanksetups.com +flexmyfinances.com +gardeningdream.com +guide-du-chien.com +howdoyouplayit.com +inlandaquatics.com +lawnmowerforum.com +lectinfreemama.com +loveyouwedding.com +motorbicycling.com +mystonemeaning.com +nytimesanswers.com +online-convert.com +orioleshangout.com +readylifestyle.com +rebootmygarage.com +restapiexample.com +rollerskatedad.com +secretsofsushi.com +signe-zodiaque.com +spirit-of-rock.com +tarotdetiziana.com +teacupdogdaily.com +teampilipinas.info +thecrafterlife.com +themotordigest.com +therandomvibez.com +thewanderingrv.com +thewindowsclub.com +toytraincenter.com +travelswithsun.com +tribunenantaise.fr +trucksresource.com +tvfandomlounge.com +viaggio-in-cina.it +visit-vallarta.com +voiture-conseil.fr +whatsgrouplink.com +wowfreestuff.co.uk +yourdailyglobe.com +zdroweporadniki.pl +znacenje-imena.com +aboutthemafia.com +accountkiller.com +angelmanifest.com +aratariathome.com +articlemyriad.com +basketuniverso.it +battlemetrics.com +bearnakedfood.com +benderfitness.com +bestonreviews.com +boatexportusa.com +candycrushmom.com +chargeprotect.com +compatibilite.org +concienciaeco.com +connectedwiki.com +costcoinsider.com +crosswordguru.com +cullyskitchen.com +curatedquotes.com +designermixes.org +drivedistance.com +ecouter-radio.com +ehomeremedies.com +etapainfantil.com +fishingskillz.com +friendsforlife.me +goingfitunfit.com +groupgames101.com +grrrltraveler.com +guineapigtube.com +hardwaretimes.com +hightechforpc.com +homesteadgeek.com +icolorpalette.com +inglesgourmet.com +inmate-lookup.org +internetslang.com +jumbleanswers.com +justflipacoin.com +kerriscrochet.com +kicksologists.com +kodi-tutorials.uk +livemusicblog.com +maisieandruth.com +morningkoffee.com +mybakingbliss.com +mywordcookies.com +optimistminds.com +palmaairport.info +playmathmania.com +prisoninsight.com +remodelormove.com +resetoillight.com +ricettegustose.it +sakhyulations.com +sentencehouse.com +septictankpro.com +sharktankblog.com +showbizcorner.com +silvermonthly.com +smarthomeblog.net +smilingstaffy.com +steelernation.com +sveopoznatima.com +thefinertimes.com +thetarotguide.com +theyumyumclub.com +wearableinear.com +weather-atlas.com +workingmums.co.uk +xtrhorsepower.com +yourjeepguide.com +youthhoops101.com +143greetings.com +acessaber.com.br +activenorcal.com +aide-scrabble.fr +beerealhoney.com +biggamelogic.com +blogdoiphone.com +bodypaintips.com +browsandbody.com +cabosanlucas.net +catnamescity.com +celebritydig.com +codebeautify.org +computerhope.com +constitution.org +construct-ed.com +corona-teller.nl +crossword365.com +dailyanswers.net +diymarketers.com +eat-pregnant.com +electrical4u.com +englishmaven.org +englishnotes.com +escapenormal.com +feettometres.com +freeeconhelp.com +frontstretch.com +golfcarttips.com +hanginghyena.com +hausbau-forum.de +insindacabili.it +isle-of-mull.net +italialiving.com +jubilantpups.com +landyourlife.com +lovewideopen.com +mahasarkar.co.in +makeeasylife.com +matematiksel.org +mentehermosa.net +michelacosta.com +mixedarticle.com +mysmartahome.com +nadabookinfo.com +networthspot.com +onibusbrasil.com +paginapropia.com +panitikan.com.ph +parcellookup.com +petgearguide.com +plantaddicts.com +pokemontrash.com +recruitment.guru +redargentina.com +routenplaner.app +schooldigger.com +scrabblemania.fr +sealwithease.com +stabroeknews.com +stackedhomes.com +sudokusolver.net +swagcaptions.com +tagquestions.net +teluguadda.co.in +texasoutside.com +thedailyshep.com +thedairydish.com +themoneyfarm.org +tryoutnature.com +valdovaccaro.com +wickedhorror.com +xscholarship.com +zamalektoday.com +zatznotfunny.com +zirusmusings.com +1001gardens.org +10toes2feet.com +4pics1-word.com +abi-rechner.com +about-twins.com +angelnumber.org +answersking.com +appcheating.com +asafraction.net +astrocentro.com +birdsflight.com +bocahkampus.com +buddysecret.com +celebcenter.net +celebsolino.com +chemicalaid.com +cleanerwiki.com +codingahead.com +dialingcode.com +digitized.house +droidafrica.net +euro-muenzen.tv +expertpublic.fr +festivalnet.com +fifatalents.com +filminquiry.com +filodiritto.com +fitnesspell.com +great-taste.net +griddleking.com +group-games.com +healtholino.com +highonfilms.com +iconarchive.com +ieltsrewind.com +interbasket.net +ispreview.co.uk +maestraanita.it +melanieredd.com +netflixdeed.com +noorsrecipe.com +nuevodia.com.ve +numberspy.co.uk +offroadable.com +onlineqatar.com +pregnanteve.com +propertysold.ca +pumpupboats.com +qcsunonline.com +quartzimodo.com +racetothewh.com +righttrivia.com +sandiegocan.org +sanovnik365.com +scotlandinfo.eu +showbizcast.com +soakandsoil.com +sourcedaddy.com +southpawers.com +speakersmag.com +startupback.com +tcodesearch.com +techacrobat.com +techbriefly.com +techfornerd.com +techweekmag.com +theballzone.com +thekewlshop.com +thepinoyofw.com +thrivenaija.com +tiltfishing.com +todaynews.co.uk +trendingpal.com +vegansandra.com +villagenews.com +weldsmartly.com +wondermondo.com +aa-fishing.com +aerialrain.com +asknumbers.com +astrocenter.de +astrocenter.fr +blogograph.com +bornceltic.com +caesonline.com +classbasic.com +clutchaxes.com +cncsourced.com +codycross.info +couponsock.com +csharpcodi.com +cuisinelolo.fr +culturamix.com +cyclingpro.net +dazepuzzle.com +diythought.com +facthacker.com +filipiknow.net +ftsdlskits.com +gameanswer.net +gemstagram.com +getriddles.com +ghosttowns.com +gnrcentral.com +golfcartgo.com +homebyfour.com +housakicks.com +hundredkey.com +huurportaal.nl +ieltspages.com +infolibros.org +infomercado.pe +jovenesweb.com +kitchmenow.com +limitlesso.com +lostsaloon.com +lyricsgram.com +mariamarin.com +minecraft.buzz +motorbeast.org +myboldbody.com +nufcblog.co.uk +olive-drab.com +onecarspot.com +orangefizz.net +paddock-gp.com +pausecafein.fr +portanapoli.de +rentola.com.au +resurchify.com +reve-islam.com +sa-piscine.com +shopsleuth.com +slappedham.com +smobserved.com +snowycodex.com +spieltimes.com +teslanorth.com +theopenmat.com +thepettown.com +thermomeat.com +thethaiger.com +treatnheal.com +wnynewsnow.com +wordleplay.com +yamahaclub.com +yogurtnerd.com +yougowords.com +zacsgarden.com + abc-kinder.de + akinator.mobi + animalhow.com + apkmirror.com + appamatix.com + bakealish.com + cademedia.com + cenicienta.fr + comoapple.com + countryle.com + dasparking.de + decksbye3.com + decoratoo.com + dmvnearme.net + dreammean.com + englicist.com + foodgroove.de + freelists.org + geekmarkt.com + gelending.com + ggccoffee.com + govhiring.com + halabtech.com + hxbenefit.com + ideas4diy.com + indcareer.com + intheyard.org + iscrapapp.com + kididdles.com + loudbeats.org + moneymint.com + mrxstitch.com + onlinedmv.com + pawmygosh.com + rentlingo.com + rentola.co.uk + rvblogger.com + smartconso.fr + starrymag.com + super-fute.be + template.city + theparking.eu + uspspoint.com + weatherpr.com + wolkenweit.de + wordrelax.com + wortwuchs.net + yorkiemag.com + aboblist.com + ahlynews.com + ak4tsay1.com + bizsugar.com + blogchef.net + careerdp.com + carlicas.com + cat-news.net + catvills.com + compuhoy.com + d9sports.com + daemtube.com + dubaiofw.com + eafinder.com + examveda.com + farmchat.com + fishlore.com + gearhose.com + geeksgod.com + gkduniya.com + gpspower.net + grindgis.com + heydonna.com + ipadable.com + jakazena.com + jobmob.co.il + katverse.com + keytarhq.com + kidzfeed.com + learnesl.net + lenpenzo.com + leparking.be + leparking.ch + leparking.fr + luciding.com + moredirt.com + muchfeed.com + playerone.tv + property.xyz + psprices.com + puckjunk.com + resumeok.com + samagame.com + sanovnik.org + sp-today.com + techruth.com + thesukan.net + timelines.ws + traeumen.org + uniteapi.dev + wikifame.org + actorle.com + aglasem.com + arealme.com + barkhow.com + bidadari.my + boxemag.com + buglord.com + cnabuzz.com + cubanet.org + drawize.com + eslgold.com + finbold.com + gameblog.fr + hairmag.org + hobbeasy.de + ipowatch.in + mamanly.com + milepro.com + modsims4.fr + papelea.com + plantte.com + rentola.com + teachoo.com + thekeea.com + vroegert.nl + +10roar.com + +beacar.com + +bovees.com + +chordu.com + +cubshq.com + +diynot.com + +dkhlak.com + +dogavie.fr + +kempoo.com + +marathi.tv + +mydict.com + +noobie.com + +pcsteps.gr + +ps4dns.com + +rentola.be + +rentola.fr + +rqeeqa.com + +secretm.me + +sgodds.com + +tab-tv.com + +yosper.com + algrim.co + auto24.de + clclt.com + hobbr.com + ipshu.com + mapio.net + tvcomp.uk + vurni.com + wersm.com + wvdot.com + zrivo.com + +dilc.org + +ehso.com + +fccid.io + +in5d.com + +iturf.fr + +k-gen.fr + +k2rx.com + +msry.org +tva.fr.ezoic-floating-bottom  + manuals.plus #ezmobfooter# +thewindowsclub.com .adv_left" +thewindowsclub.com.ads-top6 +jigglypuffsdiary.com +codycross.info.ad-unit9 +jigglypuffsdiary.com +codycross.info .banner-ads + stuff.co.nz .display-ad9 + techhive.com + +macwelt.de + pcwelt.de +.ad-footer7 + techhive.com + +macwelt.de + pcwelt.de.page-ade +techadvisor.com + techhive.com>a[href^="https://www.googleadservices.com/pagead/aclk?"] > img + libero.it #admpubottom + libero.it #admpumiddle! + siviaggia.it #admpumiddle2, + quifinanza.it + libero.it +#admpufoot+ + quifinanza.it + libero.it .admputop + libero.it.adv + libero.it .adv-cont" +mail1.libero.it #adv_center/ + quifinanza.it + +llibero.it #adwallpaper$ + quifinanza.it#cont-wallpaper + quifinanza.it.dfp-ad- + quifinanza.it.widget_promo_box_widget' + barchart.com.advertisement-left% +insidermonkey.com .top-left-ad! +insidermonkey.com.list-ad! +insidermonkey.com.wide-ad, + +people.com +ew.com.mntl-gpt-adunit� +peopleenespanol.com +allpeoplequilt.com +marthastewart.com +midwestliving.com +cookinglight.com +woodmagazine.com +foodandwine.com +allrecipes.com +eatingwell.com + dailypaws.com + myrecipes.com + parents.com +bhg.com .sister-ads# +discuss.com.hk #right_columnÏ2 +Û* +downdetector.com.ar* +downdetector.com.au* +downdetector.com.br* +downdetector.com.co* +downdetector.web.tr* +downdetector.co.nz* +downdetector.co.uk* +downdetector.co.za* +allestoringen.be* +allestoringen.nl* +downdetector.com* +downdetector.ae* +downdetector.ca* +downdetector.cl* +downdetector.cz* +downdetector.dk* +downdetector.ec* +downdetector.es* +downdetector.fi* +downdetector.fr* +downdetector.gr* +downdetector.hk* +downdetector.hr* +downdetector.hu* +downdetector.id* +downdetector.ie* +downdetector.in* +downdetector.it* +downdetector.jp* +downdetector.mx* +downdetector.my* +downdetector.no* +downdetector.pe* +downdetector.ph* +downdetector.pk* +downdetector.pl* +downdetector.pt* +downdetector.ro* +downdetector.se* +downdetector.sg* +downdetector.sk08@R"cdn2.downdetector.com/*/dist/*.js^ +„ÿï* +lacremedugaming.fr* +football365.fr* + football.fr* + sports.fr* + +melty.fr08@R$prebid.reworldmediafactory.com/*.js^ +^ÿï* + sports.fr08@RA/wp-content/themes/core/assets/javascripts/rw-dfp-prebid-base.js^ +Mÿï* + apkcombo.com08@R-spn-v1.revampcdn.com/publishers/*.js?modern=1 +Gÿï* + quora.com08@R*securepubads.g.doubleclick.net/pagead/*.js +Cÿï* + quora.com08@R&securepubads.g.doubleclick.net/static^ +a * + chefsimon.com* + filehorse.com* + nouvelobs.com* + quora.com08@R aaxads.com^ +cÿï* + chefsimon.com* + filehorse.com* + nouvelobs.com* + quora.com08@R aaxads.com^ +uÿï* +kochenmituns.com* +linuxcapable.com* + freecads.com* + lexulous.com* + ezgif.com08@Rstpd.cloud/saas/ +_ÿï* +sourceforge.net* + slashdot.org08@R,d3tglifpd8whs6.cloudfront.net/js/prebid/*.js +‰* +thedailybeast.com* + dantri.com.vn* + cargurus.ca* + fortune.com* + +lespac.com08@R)ads.pubmatic.com/AdServer/js/pwt/*/pwt.js +Tÿï* +movieplayer.it08@R2hbid.ams3.cdn.digitaloceanspaces.com/user_js/*.js^ +\ÿï* + ndnation.com08@Rÿï* + subito.it08@R!subito.it/static/script/prebid.js +2ÿï* +dba.dk08@Rcdn.adnuntius.com/adn.js +5ÿï* +dba.dk08@Rmacro.adnami.io/macro/spec/ +è¤* +www.google.com.af* +www.google.com.ag* +www.google.com.ai* +www.google.com.ar* +www.google.com.au* +www.google.com.bd* +www.google.com.bh* +www.google.com.bn* +www.google.com.bo* +www.google.com.br* +www.google.com.by* +www.google.com.bz* +www.google.com.cn* +www.google.com.co* +www.google.com.cu* +www.google.com.cy* +www.google.com.do* +www.google.com.ec* +www.google.com.eg* +www.google.com.et* +www.google.com.fj* +www.google.com.gh* +www.google.com.gi* +www.google.com.gt* +www.google.com.hk* +www.google.com.jm* +www.google.com.jo* +www.google.com.kh* +www.google.com.kw* +www.google.com.lb* +www.google.com.ly* +www.google.com.mm* +www.google.com.mt* +www.google.com.mx* +www.google.com.my* +www.google.com.na* +www.google.com.ng* +www.google.com.ni* +www.google.com.np* +www.google.com.om* +www.google.com.pa* +www.google.com.pe* +www.google.com.pg* +www.google.com.ph* +www.google.com.pk* +www.google.com.pr* +www.google.com.py* +www.google.com.qa* +www.google.com.ru* +www.google.com.sa* +www.google.com.sb* +www.google.com.sg* +www.google.com.sl* +www.google.com.sv* +www.google.com.tj* +www.google.com.tn* +www.google.com.tr* +www.google.com.tw* +www.google.com.ua* +www.google.com.uy* +www.google.com.vc* +www.google.com.ve* +www.google.com.vn* +www.google.co.ao* +www.google.co.bw* +www.google.co.ck* +www.google.co.cr* +www.google.co.id* +www.google.co.il* +www.google.co.in* +www.google.co.jp* +www.google.co.ke* +www.google.co.kr* +www.google.co.ls* +www.google.co.ma* +www.google.co.mz* +www.google.co.nz* +www.google.co.th* +www.google.co.tz* +www.google.co.ug* +www.google.co.uk* +www.google.co.uz* +www.google.co.ve* +www.google.co.vi* +www.google.co.za* +www.google.co.zm* +www.google.co.zw* +www.google.it.ao* +www.google.ne.jp* +www.google.cat* +www.google.com* + www.google.ac* + www.google.ad* + www.google.ae* + www.google.al* + www.google.am* + www.google.as* + www.google.at* + www.google.az* + www.google.ba* + www.google.be* + www.google.bf* + www.google.bg* + www.google.bi* + www.google.bj* + www.google.bs* + www.google.bt* + www.google.by* + www.google.ca* + www.google.cd* + www.google.cf* + www.google.cg* + www.google.ch* + www.google.ci* + www.google.cl* + www.google.cm* + www.google.cv* + www.google.cz* + www.google.de* + www.google.dj* + www.google.dk* + www.google.dm* + www.google.dz* + www.google.ee* + www.google.es* + www.google.fi* + www.google.fm* + www.google.fr* + www.google.ga* + www.google.ge* + www.google.gg* + www.google.gl* + www.google.gm* + www.google.gp* + www.google.gr* + www.google.gy* + www.google.hk* + www.google.hn* + www.google.hr* + www.google.ht* + www.google.hu* + www.google.ie* + www.google.im* + www.google.iq* + www.google.is* + www.google.it* + www.google.je* + www.google.jo* + www.google.jp* + www.google.kg* + www.google.ki* + www.google.kz* + www.google.la* + www.google.li* + www.google.lk* + www.google.lt* + www.google.lu* + www.google.lv* + www.google.md* + www.google.me* + www.google.mg* + www.google.mk* + www.google.ml* + www.google.mn* + www.google.ms* + www.google.mu* + www.google.mv* + www.google.mw* + www.google.ne* + www.google.ng* + www.google.nl* + www.google.no* + www.google.nr* + www.google.nu* + www.google.pl* + www.google.pn* + www.google.ps* + www.google.pt* + www.google.ro* + www.google.rs* + www.google.ru* + www.google.rw* + www.google.sc* + www.google.se* + www.google.sh* + www.google.si* + www.google.sk* + www.google.sm* + www.google.sn* + www.google.so* + www.google.sr* + www.google.st* + www.google.td* + www.google.tg* + www.google.tl* + www.google.tm* + www.google.tn* + www.google.to* + www.google.tt* + www.google.us* + www.google.vg* + www.google.vu* + www.google.ws08@Rwww.google.*/aclk^ +ò* +www.google.com.af* +www.google.com.ag* +www.google.com.ai* +www.google.com.ar* +www.google.com.au* +www.google.com.bd* +www.google.com.bh* +www.google.com.bn* +www.google.com.bo* +www.google.com.br* +www.google.com.by* +www.google.com.bz* +www.google.com.cn* +www.google.com.co* +www.google.com.cu* +www.google.com.cy* +www.google.com.do* +www.google.com.ec* +www.google.com.eg* +www.google.com.et* +www.google.com.fj* +www.google.com.gh* +www.google.com.gi* +www.google.com.gt* +www.google.com.hk* +www.google.com.jm* +www.google.com.jo* +www.google.com.kh* +www.google.com.kw* +www.google.com.lb* +www.google.com.ly* +www.google.com.mm* +www.google.com.mt* +www.google.com.mx* +www.google.com.my* +www.google.com.na* +www.google.com.ng* +www.google.com.ni* +www.google.com.np* +www.google.com.om* +www.google.com.pa* +www.google.com.pe* +www.google.com.pg* +www.google.com.ph* +www.google.com.pk* +www.google.com.pr* +www.google.com.py* +www.google.com.qa* +www.google.com.ru* +www.google.com.sa* +www.google.com.sb* +www.google.com.sg* +www.google.com.sl* +www.google.com.sv* +www.google.com.tj* +www.google.com.tn* +www.google.com.tr* +www.google.com.tw* +www.google.com.ua* +www.google.com.uy* +www.google.com.vc* +www.google.com.ve* +www.google.com.vn* +www.google.co.ao* +www.google.co.bw* +www.google.co.ck* +www.google.co.cr* +www.google.co.id* +www.google.co.il* +www.google.co.in* +www.google.co.jp* +www.google.co.ke* +www.google.co.kr* +www.google.co.ls* +www.google.co.ma* +www.google.co.mz* +www.google.co.nz* +www.google.co.th* +www.google.co.tz* +www.google.co.ug* +www.google.co.uk* +www.google.co.uz* +www.google.co.ve* +www.google.co.vi* +www.google.co.za* +www.google.co.zm* +www.google.co.zw* +www.google.it.ao* +www.google.ne.jp* +www.google.cat* +www.google.com* + www.google.ac* + www.google.ad* + www.google.ae* + www.google.al* + www.google.am* + www.google.as* + www.google.at* + www.google.az* + www.google.ba* + www.google.be* + www.google.bf* + www.google.bg* + www.google.bi* + www.google.bj* + www.google.bs* + www.google.bt* + www.google.by* + www.google.ca* + www.google.cd* + www.google.cf* + www.google.cg* + www.google.ch* + www.google.ci* + www.google.cl* + www.google.cm* + www.google.cv* + www.google.cz* + www.google.de* + www.google.dj* + www.google.dk* + www.google.dm* + www.google.dz* + www.google.ee* + www.google.es* + www.google.fi* + www.google.fm* + www.google.fr* + www.google.ga* + www.google.ge* + www.google.gg* + www.google.gl* + www.google.gm* + www.google.gp* + www.google.gr* + www.google.gy* + www.google.hk* + www.google.hn* + www.google.hr* + www.google.ht* + www.google.hu* + www.google.ie* + www.google.im* + www.google.iq* + www.google.is* + www.google.it* + www.google.je* + www.google.jo* + www.google.jp* + www.google.kg* + www.google.ki* + www.google.kz* + www.google.la* + www.google.li* + www.google.lk* + www.google.lt* + www.google.lu* + www.google.lv* + www.google.md* + www.google.me* + www.google.mg* + www.google.mk* + www.google.ml* + www.google.mn* + www.google.ms* + www.google.mu* + www.google.mv* + www.google.mw* + www.google.ne* + www.google.ng* + www.google.nl* + www.google.no* + www.google.nr* + www.google.nu* + www.google.pl* + www.google.pn* + www.google.ps* + www.google.pt* + www.google.ro* + www.google.rs* + www.google.ru* + www.google.rw* + www.google.sc* + www.google.se* + www.google.sh* + www.google.si* + www.google.sk* + www.google.sm* + www.google.sn* + www.google.so* + www.google.sr* + www.google.st* + www.google.td* + www.google.tg* + www.google.tl* + www.google.tm* + www.google.tn* + www.google.to* + www.google.tt* + www.google.us* + www.google.vg* + www.google.vu* + www.google.ws08@Rgooglesyndication.com/simgad/ +õÿï* +www.google.com.af* +www.google.com.ag* +www.google.com.ai* +www.google.com.ar* +www.google.com.au* +www.google.com.bd* +www.google.com.bh* +www.google.com.bn* +www.google.com.bo* +www.google.com.br* +www.google.com.by* +www.google.com.bz* +www.google.com.cn* +www.google.com.co* +www.google.com.cu* +www.google.com.cy* +www.google.com.do* +www.google.com.ec* +www.google.com.eg* +www.google.com.et* +www.google.com.fj* +www.google.com.gh* +www.google.com.gi* +www.google.com.gt* +www.google.com.hk* +www.google.com.jm* +www.google.com.jo* +www.google.com.kh* +www.google.com.kw* +www.google.com.lb* +www.google.com.ly* +www.google.com.mm* +www.google.com.mt* +www.google.com.mx* +www.google.com.my* +www.google.com.na* +www.google.com.ng* +www.google.com.ni* +www.google.com.np* +www.google.com.om* +www.google.com.pa* +www.google.com.pe* +www.google.com.pg* +www.google.com.ph* +www.google.com.pk* +www.google.com.pr* +www.google.com.py* +www.google.com.qa* +www.google.com.ru* +www.google.com.sa* +www.google.com.sb* +www.google.com.sg* +www.google.com.sl* +www.google.com.sv* +www.google.com.tj* +www.google.com.tn* +www.google.com.tr* +www.google.com.tw* +www.google.com.ua* +www.google.com.uy* +www.google.com.vc* +www.google.com.ve* +www.google.com.vn* +www.google.co.ao* +www.google.co.bw* +www.google.co.ck* +www.google.co.cr* +www.google.co.id* +www.google.co.il* +www.google.co.in* +www.google.co.jp* +www.google.co.ke* +www.google.co.kr* +www.google.co.ls* +www.google.co.ma* +www.google.co.mz* +www.google.co.nz* +www.google.co.th* +www.google.co.tz* +www.google.co.ug* +www.google.co.uk* +www.google.co.uz* +www.google.co.ve* +www.google.co.vi* +www.google.co.za* +www.google.co.zm* +www.google.co.zw* +www.google.it.ao* +www.google.ne.jp* +www.google.cat* +www.google.com* + www.google.ac* + www.google.ad* + www.google.ae* + www.google.al* + www.google.am* + www.google.as* + www.google.at* + www.google.az* + www.google.ba* + www.google.be* + www.google.bf* + www.google.bg* + www.google.bi* + www.google.bj* + www.google.bs* + www.google.bt* + www.google.by* + www.google.ca* + www.google.cd* + www.google.cf* + www.google.cg* + www.google.ch* + www.google.ci* + www.google.cl* + www.google.cm* + www.google.cv* + www.google.cz* + www.google.de* + www.google.dj* + www.google.dk* + www.google.dm* + www.google.dz* + www.google.ee* + www.google.es* + www.google.fi* + www.google.fm* + www.google.fr* + www.google.ga* + www.google.ge* + www.google.gg* + www.google.gl* + www.google.gm* + www.google.gp* + www.google.gr* + www.google.gy* + www.google.hk* + www.google.hn* + www.google.hr* + www.google.ht* + www.google.hu* + www.google.ie* + www.google.im* + www.google.iq* + www.google.is* + www.google.it* + www.google.je* + www.google.jo* + www.google.jp* + www.google.kg* + www.google.ki* + www.google.kz* + www.google.la* + www.google.li* + www.google.lk* + www.google.lt* + www.google.lu* + www.google.lv* + www.google.md* + www.google.me* + www.google.mg* + www.google.mk* + www.google.ml* + www.google.mn* + www.google.ms* + www.google.mu* + www.google.mv* + www.google.mw* + www.google.ne* + www.google.ng* + www.google.nl* + www.google.no* + www.google.nr* + www.google.nu* + www.google.pl* + www.google.pn* + www.google.ps* + www.google.pt* + www.google.ro* + www.google.rs* + www.google.ru* + www.google.rw* + www.google.sc* + www.google.se* + www.google.sh* + www.google.si* + www.google.sk* + www.google.sm* + www.google.sn* + www.google.so* + www.google.sr* + www.google.st* + www.google.td* + www.google.tg* + www.google.tl* + www.google.tm* + www.google.tn* + www.google.to* + www.google.tt* + www.google.us* + www.google.vg* + www.google.vu* + www.google.ws08@Rwww.google.*/images/phd/px.gif +5ÿï* + +bing.com08@Rbing.com/fd/ls/l?BF=MSJ1& +5ÿï* + +bing.com08@Rbing.com/fd/ls/l?BF=MSJ0& +Dÿï* + yahoo.com08@R'l.yimg.com/pv/static/misc/sme/abp/w.gif +Dÿï* + yahoo.com08@R'l.yimg.com/pv/static/misc/sme/abp/b.gif +6ÿï* + yahoo.com08@Rgeo.yahoo.com/p?AB_TYPE=w +6ÿï* + yahoo.com08@Rgeo.yahoo.com/p?AB_TYPE=b +<ÿï* +search.yahoo.com08@Rdmros.ysm.yahoo.com/ros/ +7ÿï* +search.yahoo.com08@Ryimg.com^*^pid=Ads^ +Y* +mail.yahoo.com* + mail.aol.com* + yahoo.com08@Ryimg.com/av/moneyball/ads/ +Y* +mail.yahoo.com* + mail.aol.com* + yahoo.com08@Ryimg.com/av/curveball/ads/ +[* +mail.yahoo.com* + mail.aol.com* + yahoo.com08@Ryimg.com^*/av/curveball/ads/ +[* +mail.yahoo.com* + mail.aol.com* + yahoo.com08@Ryimg.com^*/av/moneyball/ads/ +?* +mail.yahoo.com08@Ryahoo.com^*/av/moneyball/ads/ +?* +mail.yahoo.com08@Ryahoo.com^*/av/curveball/ads/ +Wÿï* +mail.yahoo.com* + mail.aol.com* + yahoo.com08@Rbeap.gemini.yahoo.com^ +6ÿï* + yahoo.com08@Ryimg.com/gemini/pr/video_ +Hÿï* + yahoo.com08@R+s.yimg.com/hl/ap/default/140801/px.png?ch=2 +9* + yahoo.com08@Rpclick.internal.yahoo.com/p/s= +9* +autos.yahoo.com08@Rdmros.ysm.yahoo.com/ros/ +Nÿï* + yahoo.com08@R1s.yimg.com^*/api/res/1.2/*/https://s.yimg.com/av/ +@* + +l.yimg.com08@R$s.yimg.com/cv/ae/*/audience/*/120x45# +exchange-rates.org .right-adL + mediamarkt.de7[data-test="mms-base-teaser"]:-abp-contains(Gesponsert)æ +www.google.com.af +www.google.com.ag +www.google.com.ai +www.google.com.ar +www.google.com.au +www.google.com.bd +www.google.com.bh +www.google.com.bn +www.google.com.bo +www.google.com.br +www.google.com.by +www.google.com.bz +www.google.com.cn +www.google.com.co +www.google.com.cu +www.google.com.cy +www.google.com.do +www.google.com.ec +www.google.com.eg +www.google.com.et +www.google.com.fj +www.google.com.gh +www.google.com.gi +www.google.com.gt +www.google.com.hk +www.google.com.jm +www.google.com.jo +www.google.com.kh +www.google.com.kw +www.google.com.lb +www.google.com.ly +www.google.com.mm +www.google.com.mt +www.google.com.mx +www.google.com.my +www.google.com.na +www.google.com.ng +www.google.com.ni +www.google.com.np +www.google.com.om +www.google.com.pa +www.google.com.pe +www.google.com.pg +www.google.com.ph +www.google.com.pk +www.google.com.pr +www.google.com.py +www.google.com.qa +www.google.com.ru +www.google.com.sa +www.google.com.sb +www.google.com.sg +www.google.com.sl +www.google.com.sv +www.google.com.tj +www.google.com.tn +www.google.com.tr +www.google.com.tw +www.google.com.ua +www.google.com.uy +www.google.com.vc +www.google.com.ve +www.google.com.vn +www.google.co.ao +www.google.co.bw +www.google.co.ck +www.google.co.cr +www.google.co.id +www.google.co.il +www.google.co.in +www.google.co.jp +www.google.co.ke +www.google.co.kr +www.google.co.ls +www.google.co.ma +www.google.co.mz +www.google.co.nz +www.google.co.th +www.google.co.tz +www.google.co.ug +www.google.co.uk +www.google.co.uz +www.google.co.ve +www.google.co.vi +www.google.co.za +www.google.co.zm +www.google.co.zw +www.google.it.ao +www.google.ne.jp +www.google.cat +www.google.com + www.google.ac + www.google.ad + www.google.ae + www.google.al + www.google.am + www.google.as + www.google.at + www.google.az + www.google.ba + www.google.be + www.google.bf + www.google.bg + www.google.bi + www.google.bj + www.google.bs + www.google.bt + www.google.by + www.google.ca + www.google.cd + www.google.cf + www.google.cg + www.google.ch + www.google.ci + www.google.cl + www.google.cm + www.google.cv + www.google.cz + www.google.de + www.google.dj + www.google.dk + www.google.dm + www.google.dz + www.google.ee + www.google.es + www.google.fi + www.google.fm + www.google.fr + www.google.ga + www.google.ge + www.google.gg + www.google.gl + www.google.gm + www.google.gp + www.google.gr + www.google.gy + www.google.hk + www.google.hn + www.google.hr + www.google.ht + www.google.hu + www.google.ie + www.google.im + www.google.iq + www.google.is + www.google.it + www.google.je + www.google.jo + www.google.jp + www.google.kg + www.google.ki + www.google.kz + www.google.la + www.google.li + www.google.lk + www.google.lt + www.google.lu + www.google.lv + www.google.md + www.google.me + www.google.mg + www.google.mk + www.google.ml + www.google.mn + www.google.ms + www.google.mu + www.google.mv + www.google.mw + www.google.ne + www.google.ng + www.google.nl + www.google.no + www.google.nr + www.google.nu + www.google.pl + www.google.pn + www.google.ps + www.google.pt + www.google.ro + www.google.rs + www.google.ru + www.google.rw + www.google.sc + www.google.se + www.google.sh + www.google.si + www.google.sk + www.google.sm + www.google.sn + www.google.so + www.google.sr + www.google.st + www.google.td + www.google.tg + www.google.tl + www.google.tm + www.google.tn + www.google.to + www.google.tt + www.google.us + www.google.vg + www.google.vu + www.google.ws.commercial-unit-mobile-top‚ +www.google.com.af +www.google.com.ag +www.google.com.ai +www.google.com.ar +www.google.com.au +www.google.com.bd +www.google.com.bh +www.google.com.bn +www.google.com.bo +www.google.com.br +www.google.com.by +www.google.com.bz +www.google.com.cn +www.google.com.co +www.google.com.cu +www.google.com.cy +www.google.com.do +www.google.com.ec +www.google.com.eg +www.google.com.et +www.google.com.fj +www.google.com.gh +www.google.com.gi +www.google.com.gt +www.google.com.hk +www.google.com.jm +www.google.com.jo +www.google.com.kh +www.google.com.kw +www.google.com.lb +www.google.com.ly +www.google.com.mm +www.google.com.mt +www.google.com.mx +www.google.com.my +www.google.com.na +www.google.com.ng +www.google.com.ni +www.google.com.np +www.google.com.om +www.google.com.pa +www.google.com.pe +www.google.com.pg +www.google.com.ph +www.google.com.pk +www.google.com.pr +www.google.com.py +www.google.com.qa +www.google.com.ru +www.google.com.sa +www.google.com.sb +www.google.com.sg +www.google.com.sl +www.google.com.sv +www.google.com.tj +www.google.com.tn +www.google.com.tr +www.google.com.tw +www.google.com.ua +www.google.com.uy +www.google.com.vc +www.google.com.ve +www.google.com.vn +www.google.co.ao +www.google.co.bw +www.google.co.ck +www.google.co.cr +www.google.co.id +www.google.co.il +www.google.co.in +www.google.co.jp +www.google.co.ke +www.google.co.kr +www.google.co.ls +www.google.co.ma +www.google.co.mz +www.google.co.nz +www.google.co.th +www.google.co.tz +www.google.co.ug +www.google.co.uk +www.google.co.uz +www.google.co.ve +www.google.co.vi +www.google.co.za +www.google.co.zm +www.google.co.zw +www.google.it.ao +www.google.ne.jp +www.google.cat +www.google.com + www.google.ac + www.google.ad + www.google.ae + www.google.al + www.google.am + www.google.as + www.google.at + www.google.az + www.google.ba + www.google.be + www.google.bf + www.google.bg + www.google.bi + www.google.bj + www.google.bs + www.google.bt + www.google.by + www.google.ca + www.google.cd + www.google.cf + www.google.cg + www.google.ch + www.google.ci + www.google.cl + www.google.cm + www.google.cv + www.google.cz + www.google.de + www.google.dj + www.google.dk + www.google.dm + www.google.dz + www.google.ee + www.google.es + www.google.fi + www.google.fm + www.google.fr + www.google.ga + www.google.ge + www.google.gg + www.google.gl + www.google.gm + www.google.gp + www.google.gr + www.google.gy + www.google.hk + www.google.hn + www.google.hr + www.google.ht + www.google.hu + www.google.ie + www.google.im + www.google.iq + www.google.is + www.google.it + www.google.je + www.google.jo + www.google.jp + www.google.kg + www.google.ki + www.google.kz + www.google.la + www.google.li + www.google.lk + www.google.lt + www.google.lu + www.google.lv + www.google.md + www.google.me + www.google.mg + www.google.mk + www.google.ml + www.google.mn + www.google.ms + www.google.mu + www.google.mv + www.google.mw + www.google.ne + www.google.ng + www.google.nl + www.google.no + www.google.nr + www.google.nu + www.google.pl + www.google.pn + www.google.ps + www.google.pt + www.google.ro + www.google.rs + www.google.ru + www.google.rw + www.google.sc + www.google.se + www.google.sh + www.google.si + www.google.sk + www.google.sm + www.google.sn + www.google.so + www.google.sr + www.google.st + www.google.td + www.google.tg + www.google.tl + www.google.tm + www.google.tn + www.google.to + www.google.tt + www.google.us + www.google.vg + www.google.vu + www.google.ws7#atvcap + #tvcap > .mnr-c > .commercial-unit-mobile-top +dba.dk +.banner-adê  +www.google.com.af +www.google.com.ag +www.google.com.ai +www.google.com.ar +www.google.com.au +www.google.com.bd +www.google.com.bh +www.google.com.bn +www.google.com.bo +www.google.com.br +www.google.com.by +www.google.com.bz +www.google.com.cn +www.google.com.co +www.google.com.cu +www.google.com.cy +www.google.com.do +www.google.com.ec +www.google.com.eg +www.google.com.et +www.google.com.fj +www.google.com.gh +www.google.com.gi +www.google.com.gt +www.google.com.hk +www.google.com.jm +www.google.com.jo +www.google.com.kh +www.google.com.kw +www.google.com.lb +www.google.com.ly +www.google.com.mm +www.google.com.mt +www.google.com.mx +www.google.com.my +www.google.com.na +www.google.com.ng +www.google.com.ni +www.google.com.np +www.google.com.om +www.google.com.pa +www.google.com.pe +www.google.com.pg +www.google.com.ph +www.google.com.pk +www.google.com.pr +www.google.com.py +www.google.com.qa +www.google.com.ru +www.google.com.sa +www.google.com.sb +www.google.com.sg +www.google.com.sl +www.google.com.sv +www.google.com.tj +www.google.com.tn +www.google.com.tr +www.google.com.tw +www.google.com.ua +www.google.com.uy +www.google.com.vc +www.google.com.ve +www.google.com.vn +www.google.co.ao +www.google.co.bw +www.google.co.ck +www.google.co.cr +www.google.co.id +www.google.co.il +www.google.co.in +www.google.co.jp +www.google.co.ke +www.google.co.kr +www.google.co.ls +www.google.co.ma +www.google.co.mz +www.google.co.nz +www.google.co.th +www.google.co.tz +www.google.co.ug +www.google.co.uk +www.google.co.uz +www.google.co.ve +www.google.co.vi +www.google.co.za +www.google.co.zm +www.google.co.zw +www.google.it.ao +www.google.ne.jp +www.google.cat +www.google.com + www.google.ac + www.google.ad + www.google.ae + www.google.al + www.google.am + www.google.as + www.google.at + www.google.az + www.google.ba + www.google.be + www.google.bf + www.google.bg + www.google.bi + www.google.bj + www.google.bs + www.google.bt + www.google.by + www.google.ca + www.google.cd + www.google.cf + www.google.cg + www.google.ch + www.google.ci + www.google.cl + www.google.cm + www.google.cv + www.google.cz + www.google.de + www.google.dj + www.google.dk + www.google.dm + www.google.dz + www.google.ee + www.google.es + www.google.fi + www.google.fm + www.google.fr + www.google.ga + www.google.ge + www.google.gg + www.google.gl + www.google.gm + www.google.gp + www.google.gr + www.google.gy + www.google.hk + www.google.hn + www.google.hr + www.google.ht + www.google.hu + www.google.ie + www.google.im + www.google.iq + www.google.is + www.google.it + www.google.je + www.google.jo + www.google.jp + www.google.kg + www.google.ki + www.google.kz + www.google.la + www.google.li + www.google.lk + www.google.lt + www.google.lu + www.google.lv + www.google.md + www.google.me + www.google.mg + www.google.mk + www.google.ml + www.google.mn + www.google.ms + www.google.mu + www.google.mv + www.google.mw + www.google.ne + www.google.ng + www.google.nl + www.google.no + www.google.nr + www.google.nu + www.google.pl + www.google.pn + www.google.ps + www.google.pt + www.google.ro + www.google.rs + www.google.ru + www.google.rw + www.google.sc + www.google.se + www.google.sh + www.google.si + www.google.sk + www.google.sm + www.google.sn + www.google.so + www.google.sr + www.google.st + www.google.td + www.google.tg + www.google.tl + www.google.tm + www.google.tn + www.google.to + www.google.tt + www.google.us + www.google.vg + www.google.vu + www.google.ws $elemhide + www.bing.com $elemhide + cn.bing.com $elemhide# +search.yahoo.com $elemhide' +leadlocal.com/search $elemhide! +kol.com/search $elemhide + yahoo.com.adlink + yahoo.com .featured-ads: + yahoo.com)a[href^="https://beap.gemini.yahoo.com/"] + yahoo.com .js-stream-ad + yahoo.com +.stream-adA + yahoo.com0div[data-beacon] > div[class*="streamBoxShadow"]$ + yahoo.comdiv[style*="/ads/"] + yahoo.com .ad-content' + yahoo.com.native-leaderboard-ad# + yahoo.com.pencil-ad-section + yahoo.com .nativeAd  + yahoo.com.native-ad-itemK + yahoo.com:a[href*="beap.gemini.yahoo.com/mbclk?"] > img[src*=".gif"] + yahoo.com.ysabr +celebrity.yahoo.com +finance.yahoo.com +search.yahoo.com +sports.yahoo.com +news.yahoo.com.ad-icont +celebrity.yahoo.com +finance.yahoo.com +search.yahoo.com +sports.yahoo.com +news.yahoo.com +.ad-activew +celebrity.yahoo.com +finance.yahoo.com +search.yahoo.com +sports.yahoo.com +news.yahoo.com .Ad-Container + yahoo.com .Feedback + yahoo.com.ad-transition! +style.yahoo.com +.gemini-ad' +nachrichten.yahoo.com +.ad-source¯a +8ÿï* + mail.aol.com08@Rmail.aol.com/px.gif?ch=2 +8* + mail.aol.com08@Rads.yap.yahoo.com/*/getAds +8ÿï* +aol.com08@Rads.yap.yahoo.com/*/beacon.do +{* +alpo.mail.aol.com* + mail.aol.com* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@Rjill.fc.yahoo.com/v2/ads/js^ +ˆ* +alpo.mail.aol.com* + mail.aol.com* + aol.co.uk* +aol.com* +aol.ca* +aol.de08@R)webc2s-oao.pubgw.yahoo.com/jac/v2/ads/js^ +D€ * + mail.aol.com08@R#jac.yahoosandbox.com^*/sandbox.html +Dÿï* +duckduckgo.com08@R"duckduckgo.com/share/spice/amazon/ +6ÿï* +duckduckgo.com08@Rduckduckgo.com/m.js? +!ÿï08@Rduckduckgo.com/t/ +ÿ ÿï* +ffxiv.eorzeacollection.com* +dictionary.cambridge.org* +gamefaqs.gamespot.com* +ratemyprofessors.com* +football-italia.net* +pokemonshowdown.com* +prosportstrivia.com* +glamourdresser.com* +leagueofgraphs.com* +simscommunity.info* +digitaltrends.com* +forum.blu-ray.com* +wordreference.com* +drudgereport.com* +ozbargain.com.au* +programme-tv.net* +redflagdeals.com* +tomshardware.com* +warcraftlogs.com* +accuweather.com* +fragrantica.com* +lanacion.com.ar* +soccervital.com* +bonvoyaged.com* +crazygames.com* +dictionary.com* +emojipedia.org* +fextralife.com* +gamesradar.com* +gumtree.com.au* +healthline.com* +liquipedia.net* +monkeytype.com* +slickdeals.net* +stocktwits.com* + icy-veins.com* + linuxhint.com* + mediafire.com* + mocospace.com* + nexusmods.com* + techradar.com* + thesaurus.com* + tiermaker.com* + tomsguide.com* + baeldung.com* + buzzfeed.com* + convertio.co* + dealnews.com* + geekly.co.uk* + gsmarena.com* + huffpost.com* + jalopnik.com* + mobafire.com* + rolimons.com* + tftactics.gg* + usatoday.com* + gizmodo.com* + gumtree.com* + metasrc.com* + muthead.com* + pcgamer.com* + quizlet.com* + reuters.com* + reverso.net* + sporcle.com* + wikidot.com* + wikihow.com* + wowhead.com* + +doodle.com* + +fandom.com* + +futbin.com* + +kotaku.com* + +maxroll.gg* + +toonhq.org* + +tracker.gg* + +ynet.co.il* + chess.com* + gazeta.pl* + kijiji.ca* + poe.ninja* + quora.com* + +9gag.com* + +imgur.io* + +topky.sk* + +woot.com* +cnn.com* +nba.com* +olx.pl* +op.gg08@R ^upapi=true +ý  * +ffxiv.eorzeacollection.com* +dictionary.cambridge.org* +gamefaqs.gamespot.com* +ratemyprofessors.com* +football-italia.net* +pokemonshowdown.com* +prosportstrivia.com* +glamourdresser.com* +leagueofgraphs.com* +simscommunity.info* +digitaltrends.com* +forum.blu-ray.com* +wordreference.com* +drudgereport.com* +ozbargain.com.au* +programme-tv.net* +redflagdeals.com* +tomshardware.com* +warcraftlogs.com* +accuweather.com* +fragrantica.com* +lanacion.com.ar* +soccervital.com* +bonvoyaged.com* +crazygames.com* +dictionary.com* +emojipedia.org* +fextralife.com* +gamesradar.com* +gumtree.com.au* +healthline.com* +liquipedia.net* +monkeytype.com* +slickdeals.net* +stocktwits.com* + icy-veins.com* + linuxhint.com* + mediafire.com* + mocospace.com* + nexusmods.com* + techradar.com* + thesaurus.com* + tiermaker.com* + tomsguide.com* + baeldung.com* + buzzfeed.com* + convertio.co* + dealnews.com* + geekly.co.uk* + gsmarena.com* + huffpost.com* + jalopnik.com* + mobafire.com* + rolimons.com* + tftactics.gg* + usatoday.com* + gizmodo.com* + gumtree.com* + metasrc.com* + muthead.com* + pcgamer.com* + quizlet.com* + reuters.com* + reverso.net* + sporcle.com* + wikidot.com* + wikihow.com* + wowhead.com* + +doodle.com* + +fandom.com* + +futbin.com* + +kotaku.com* + +maxroll.gg* + +toonhq.org* + +tracker.gg* + +ynet.co.il* + chess.com* + gazeta.pl* + kijiji.ca* + poe.ninja* + quora.com* + +9gag.com* + +imgur.io* + +topky.sk* + +woot.com* +cnn.com* +nba.com* +olx.pl* +op.gg08@R ^upapi=true ++ÿï08@Rad-delivery.net/px.gif?ch=1 ++"* +op.gg08@Rhb.vntsm.com^*/live/ +� "* +ffxiv.eorzeacollection.com* +dictionary.cambridge.org* +gamefaqs.gamespot.com* +ratemyprofessors.com* +football-italia.net* +pokemonshowdown.com* +prosportstrivia.com* +glamourdresser.com* +leagueofgraphs.com* +simscommunity.info* +digitaltrends.com* +forum.blu-ray.com* +wordreference.com* +drudgereport.com* +ozbargain.com.au* +programme-tv.net* +redflagdeals.com* +tomshardware.com* +warcraftlogs.com* +accuweather.com* +fragrantica.com* +lanacion.com.ar* +soccervital.com* +bonvoyaged.com* +crazygames.com* +dictionary.com* +emojipedia.org* +fextralife.com* +gamesradar.com* +gumtree.com.au* +healthline.com* +liquipedia.net* +monkeytype.com* +slickdeals.net* +stocktwits.com* + icy-veins.com* + linuxhint.com* + mediafire.com* + mocospace.com* + nexusmods.com* + techradar.com* + thesaurus.com* + tiermaker.com* + tomsguide.com* + baeldung.com* + buzzfeed.com* + convertio.co* + dealnews.com* + geekly.co.uk* + gsmarena.com* + huffpost.com* + jalopnik.com* + mobafire.com* + rolimons.com* + tftactics.gg* + usatoday.com* + gizmodo.com* + gumtree.com* + metasrc.com* + muthead.com* + pcgamer.com* + quizlet.com* + reuters.com* + reverso.net* + sporcle.com* + wikidot.com* + wikihow.com* + wowhead.com* + +doodle.com* + +fandom.com* + +futbin.com* + +kotaku.com* + +maxroll.gg* + +toonhq.org* + +tracker.gg* + +ynet.co.il* + chess.com* + gazeta.pl* + kijiji.ca* + poe.ninja* + quora.com* + +9gag.com* + +imgur.io* + +topky.sk* + +woot.com* +cnn.com* +nba.com* +olx.pl* +op.gg08@Rcmp.inmobi.com^ +*€* +click-test.com08@R mgid.com^ +'ÿï* + +google.com08@R mgid.com^ +¨ÿï*! +gosipgosokmakinsip.blogspot.com*! +infinitosdigitales.blogspot.com* +portaldobotafoguense.com.br* +bondowoso.jatimnetwork.com* +receitascluboficial.com.br* +sencillamentedelicioso.com* +vocemereceserfeliz.com.br* +acontecer-dominicano.com* +soyrecetasoberana.com.br* +misrecetasnaturales.com* +receitassalgadas.com.br* +sociedademilitar.com.br* +alb7news7.blogspot.com* +folhafinanceira.com.br* +horadoempregodf.com.br* +revistavascaina.com.br* +trending.dutamanis.com* +portaltocanews.com.br* +tribunademinas.com.br* +amazingsportsusa.com* +d1.jackiepost365.com* +harveycliniccare.com* +informativododia.com* +mansionabandoned.com* +noahconservatives.us* +catracalivre.com.br* +cricketnewswala.com* +doisongphapluat.com* +noticiasmagazine.pt* +selayangpandang.net* +trucosdelabuela.com* +vtvtintuc24h.online* +weheartanimals.info* +clubeligado.online* +laterradelgusto.it* +lisa.ayokencan.com* +pikiran-rakyat.com* +sappiamo-tutto.top* +tintucmoi24.online* +wrestling-edge.com* +coisasdecasal.com* +eldesconcierto.cl* +korrespondent.net* +streetfoodnews.it* +timesnowhindi.com* +unosantafe.com.ar* +alertabogota.com* +autoruote4x4.com* +cinemapettai.com* +donnamoderna.com* +indeksonline.net* +jatimnetwork.com* +kerajaankini.com* +maisgoias.com.br* +portalbrasil.net* +theinventory.com* +time-zone.biz.ua* +yuvapatrkaar.com* +2.chikitica.com* +elfiltrador.com* +folhadestra.com* +ohlyad-dnya.pro* +prettyglobe.com* +sharingideas.me* +todaynew247.com* +zonajakarta.com* +blogsicilia.it* +celebgossip.uk* +fnymonster.com* +haustricks.com* +intipseleb.com* +katadata.co.id* +kompasiana.com* +lifehacker.com* +newsweekng.com* +nguoiduatin.vn* +nice-blog.info* +rightrasta.com* +ssnoticias.xyz* +thetakeout.com* +timenews.co.id* +tribunnews.com* +ulusalpost.com* +vanguardia.com* +vikramuniv.net* + animalfor.com* + bongdaplus.vn* + canal1.com.co* + dailystory.uk* + healthmgz.com* + hindutamil.in* + ikerajaan.com* + immediato.net* + kiisports.com* + koran-gala.id* + maxdiaries.me* + meuflu.com.br* + paznavida.com* + sindonews.com* + thethao247.vn* + tvonenews.com* + vietnamnet.vn* + alternet.org* + chapintv.com* + chudesa.site* + deadspin.com* + enovosty.com* + ghamasan.com* + jalopnik.com* + ponichka.com* + quermania.de* + rcnradio.com* + rumah123.com* + theonion.com* + tienphong.vn* + ufoand.world* + erdekes.fun* + gizmodo.com* + historia.ro* + jezebel.com* + kmedee.club* + lafm.com.co* + merdeka.com* + okezone.com* + postsen.com* + theroot.com* + topradio.ro* + tribuna.com* + +avclub.com* + +brilio.net* + +elonce.com* + +evasoes.pt* + +ezylife.me* + +kotaku.com* + +lillise.us* + +merezha.co* + +mmr.net.ua* + +motor24.pt* + +new24.info* + +news64.net* + +sehatq.com* + mpress.pl* + tvn-2.com* + +click.ro* + +delas.pt* + +inews.id* + +jpnn.com* + +liga.net* + +story.rs* + +techz.vn* + +uzone.id* +b92.net* +hops.id* +n-tv.pt* +novi.ba* +pink.rs* +tsn.ua* +99.co* +nv.ua08@R mgid.com^ +;* + tienphong.vn08@Rtienphong.vn/ads?object_type= +9&* + bongdaplus.vn08@Radmin.*/www/delivery/*.php +@* + bongdaplus.vn08@R!bongdaplus.vn/adscripts/mob/*.js^ +´* +yenicaggazetesi.com.tr* +haberglobal.com.tr* +cumhuriyet.com.tr* +teknolojioku.com* +tum-haberler.com* +aydinlik.com.tr* +kamugundemi.com* +ensonhaber.com* + gazeteoku.com* + halktv.com.tr* + medyatava.com* + avazturk.com* + egehaber.com* + f5haber.com* + karar.com08@Rjsc.idealmedia.io^ +¶$* +yenicaggazetesi.com.tr* +haberglobal.com.tr* +cumhuriyet.com.tr* +teknolojioku.com* +tum-haberler.com* +aydinlik.com.tr* +kamugundemi.com* +ensonhaber.com* + gazeteoku.com* + halktv.com.tr* + medyatava.com* + avazturk.com* + egehaber.com* + f5haber.com* + karar.com08@Rs-img.idealmedia.io^ +—ÿï* + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@R&outbrain.com/widget/detect/px.gif?ch=1 +—ÿï* + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@R&outbrain.com/widget/detect/px.gif?ch=2 +†ÿï* + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@Rwidgets.outbrain.com^ +‰ÿï* + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@Routbrain.com/outbrain.js +‘ÿï* + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@R outbrain.com/utils/*&adblck=true +¹€ * + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@RGwidgets.outbrain.com/nanoWidget/externals/obPixelFrame/obPixelFrame.htm +§€ * + thestreet.com* + fansided.com* + thespun.com* + +nypost.com* + +parade.com* +cnn.com* +si.com08@R5widgets.outbrain.com/widgetOBUserSync/obUserSync.html +iÿï* +mmo-champion.com* + yahoo.com* +giga.de08@R'static.criteo.net/images/pixel.gif?ch=1 +iÿï* +mmo-champion.com* + yahoo.com* +giga.de08@R'static.criteo.net/images/pixel.gif?ch=2 +aÿï* +mmo-champion.com* + yahoo.com* +giga.de08@Rstatic.criteo.net/js/px.js?ch=1 +aÿï* +mmo-champion.com* + yahoo.com* +giga.de08@Rstatic.criteo.net/js/px.js?ch=2 +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=1*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=2*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=3*&zoneid= +aol.com.ad-code# + mail.aol.com.GeminiNativeAd +aol.com .ad-overlay  $elemhide  $elemhide  $elemhide  $elemhide  $elemhide +op.gg .life-owner +op.gg .vm-placement + nexusmods.com.agroup5 + +9gag.com%#jsid-ad-container-post_above_comment + +9gag.com.salt-container. +kompasiana.com.banner-mgid-read.banner$ +kompasiana.com.banner-center" +kompasiana.com .banner-mgid6 +kompasiana.com .banner-center:not(.banner-mgid) + tienphong.vn.banner + tienphong.vn.adsitem( + tienphong.vndiv[id^="adsMobile"]) + bongdaplus.vn[data-revive-zoneid]% +haustricks.com.quads-locationF +aydinlik.com.tr +kamugundemi.com + medyatava.com .desktop-ad˜ + thestreet.com + fansided.com + thespun.com + +nypost.com + +parade.com +cnn.com +si.com3a[href^="https://paid.outbrain.com/network/redir?"]v + thestreet.com + fansided.com + thespun.com + +nypost.com + +parade.com +cnn.com +si.com.single__outbrainƒ + thestreet.com + fansided.com + thespun.com + +nypost.com + +parade.com +cnn.com +si.com.ob-p.ob-dynamic-rec-container +#ob_ad .abp_ob_existÉ +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=4*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=5*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=6*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=7*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=8*&zoneid= +¢€ * +domesticatedcompanion.com* +mmo-champion.com* + +fsolver.fr* + yahoo.com* +giga.de08@R0criteo.com/delivery/afr.php?ptv=*&abp=9*&zoneid= +4€ 08@R#criteo.com/delivery/r/afr.php?abp=1 +šÿï* +domesticatedcompanion.com* +gentside.co.uk* + ohmymag.co.uk* + gentside.com* + +ohmymag.de08@R"bidder.criteo.com/cdb?ptv=*&abp=1& +(08@Rcriteo.com/delivery/lg.php +)08@Rcriteo.com/delivery/lgn.php +2* + +criteo.com08@Rcriteo.net/flash/icon/ +<* + +criteo.com08@R criteo.net/images/icon/adchoices +/* + +criteo.com08@Rcriteo.net/img/img? +1ÿï* + +criteo.com08@Rpix.*.*.criteo.net^ +-ÿï* + +criteo.com08@Rpix.criteo.net^ +0ÿï* + +criteo.com08@Rstatic.criteo.net^ +±* +domesticatedcompanion.com* +mmo-champion.com* + gismeteo.by* + gismeteo.ru* + +fsolver.fr* + yahoo.com* +giga.de08@R criteo.net/js/ld/publishertag.js +î"* +domesticatedcompanion.com* +mmo-champion.com* +gentside.co.uk* + ohmymag.co.uk* + gentside.com* + cnnturk.com* + +fsolver.fr* + +ohmymag.de* + yahoo.com* +giga.de08@R%criteo.net/js/ld/publishertag.prebid. +žÿï* +domesticatedcompanion.com* +gentside.co.uk* + ohmymag.co.uk* + gentside.com* + +fsolver.fr* + +ohmymag.de08@Rbidder.criteo.com/csm^ +9ÿï08@R)ads.urban-media.com/js/19953022/prebid.js +8ÿï08@R(ads.urban-media.com/js/13774210/urban.js +pÿï08@R`confiant-integrations.global.ssl.fastly.net/bchOs-0p0oZ_S30Jvcda6SzcChc/gpt_and_prebid/config.js4 +msn.com +msn.cna.nativead[target="_blank"]" +msn.com +msn.cn .nativead- +msn.com +msn.cn.ad-slot-placeholder( +msn.com +msn.cn.bing-native-ad* +msn.com +msn.cn.dynamicRRWrapper* +msn.com +msn.cn.intra-article-ad6 +msn.com +msn.cn.medianetintraarticlenativead9 +msn.com +msn.cn .nativeadserversidecontentmodule. +msn.com +msn.cn.sameoab_ad_container6 +msn.com +msn.cn.serversidenativead.secondary, +msn.com +msn.cn[class^="nativeAd"]4 +msn.com +msn.cna.nativead[target="_blank"]H +msn.com +msn.cn/div[class^="articlePage_topBannerAdContainer_"]I +msn.com +msn.cn0div[data-section-id="sponsored.stripe.shopping"] \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-CA b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-CA new file mode 100644 index 0000000..6c6a9b9 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Filtering Rules-CA @@ -0,0 +1,821 @@ +Ç]· + google.com.af + google.com.ag + google.com.ai + google.com.ar + google.com.au + google.com.bd + google.com.bh + google.com.bi + google.com.bn + google.com.bo + google.com.br + google.com.by + google.com.bz + google.com.cn + google.com.co + google.com.cu + google.com.cy + google.com.do + google.com.dz + google.com.ec + google.com.eg + google.com.er + google.com.et + google.com.fj + google.com.ge + google.com.gh + google.com.gi + google.com.gp + google.com.gr + google.com.gt + google.com.gy + google.com.hk + google.com.ht + google.com.iq + google.com.jm + google.com.jo + google.com.kh + google.com.kw + google.com.kz + google.com.lb + google.com.lv + google.com.ly + google.com.mm + google.com.mt + google.com.mx + google.com.my + google.com.na + google.com.nc + google.com.nf + google.com.ng + google.com.ni + google.com.np + google.com.nr + google.com.om + google.com.pa + google.com.pe + google.com.pg + google.com.ph + google.com.pk + google.com.pl + google.com.pr + google.com.ps + google.com.pt + google.com.py + google.com.qa + google.com.ru + google.com.sa + google.com.sb + google.com.sg + google.com.sl + google.com.sv + google.com.tj + google.com.tm + google.com.tn + google.com.tr + google.com.tw + google.com.ua + google.com.uy + google.com.vc + google.com.ve + google.com.vn + google.off.ai + google.co.ao + google.co.bw + google.co.ck + google.co.cr + google.co.gy + google.co.hu + google.co.id + google.co.il + google.co.im + google.co.in + google.co.je + google.co.jp + google.co.ke + google.co.kr + google.co.ls + google.co.ma + google.co.mz + google.co.nz + google.co.rs + google.co.th + google.co.tz + google.co.ug + google.co.uk + google.co.uz + google.co.ve + google.co.vi + google.co.za + google.co.zm + google.co.zw + google.it.ao + google.ne.jp + google.info + google.jobs + +google.cat + +google.com + +google.net + +google.org + +google.tel + google.ac + google.ad + google.ae + google.af + google.ag + google.al + google.am + google.as + google.at + google.aw + google.az + google.ba + google.be + google.bf + google.bg + google.bi + google.bj + google.bm + google.bn + google.bo + google.bs + google.bt + google.by + google.ca + google.cc + google.cd + google.cf + google.cg + google.ch + google.ci + google.cl + google.cm + google.cn + google.co + google.cv + google.cz + google.de + google.dj + google.dk + google.dm + google.do + google.dz + google.ec + google.ee + google.es + google.eu + google.fi + google.fm + google.fr + google.ga + google.gd + google.ge + google.gf + google.gg + google.gl + google.gm + google.gp + google.gr + google.gw + google.gy + google.hk + google.hn + google.hr + google.ht + google.hu + google.ie + google.im + google.in + google.io + google.iq + google.is + google.it + google.je + google.jo + google.jp + google.kg + google.ki + google.km + google.kr + google.kz + google.la + google.li + google.lk + google.lt + google.lu + google.lv + google.ma + google.md + google.me + google.mg + google.mk + google.ml + google.mn + google.mr + google.ms + google.mu + google.mv + google.mw + google.mx + google.ne + google.ng + google.nl + google.no + google.nr + google.nu + google.pf + google.ph + google.pk + google.pl + google.pn + google.ps + google.pt + google.qa + google.re + google.ro + google.rs + google.ru + google.rw + google.sc + google.se + google.sg + google.sh + google.si + google.sk + google.sl + google.sm + google.sn + google.so + google.sr + google.st + google.sz + google.td + google.tg + google.tk + google.tl + google.tm + google.tn + google.to + google.tt + google.tw + google.ua + google.us + google.uz + google.vg + google.vn + google.vu + google.ws + google.ytidiv[role="dialog"][aria-describedby="promo_desc_id"],div[role="dialog"][aria-labelledby="promo_label_id"]æ + google.com.af + google.com.ag + google.com.ai + google.com.ar + google.com.au + google.com.bd + google.com.bh + google.com.bi + google.com.bn + google.com.bo + google.com.br + google.com.by + google.com.bz + google.com.cn + google.com.co + google.com.cu + google.com.cy + google.com.do + google.com.dz + google.com.ec + google.com.eg + google.com.er + google.com.et + google.com.fj + google.com.ge + google.com.gh + google.com.gi + google.com.gp + google.com.gr + google.com.gt + google.com.gy + google.com.hk + google.com.ht + google.com.iq + google.com.jm + google.com.jo + google.com.kh + google.com.kw + google.com.kz + google.com.lb + google.com.lv + google.com.ly + google.com.mm + google.com.mt + google.com.mx + google.com.my + google.com.na + google.com.nc + google.com.nf + google.com.ng + google.com.ni + google.com.np + google.com.nr + google.com.om + google.com.pa + google.com.pe + google.com.pg + google.com.ph + google.com.pk + google.com.pl + google.com.pr + google.com.ps + google.com.pt + google.com.py + google.com.qa + google.com.ru + google.com.sa + google.com.sb + google.com.sg + google.com.sl + google.com.sv + google.com.tj + google.com.tm + google.com.tn + google.com.tr + google.com.tw + google.com.ua + google.com.uy + google.com.vc + google.com.ve + google.com.vn + google.off.ai + google.co.ao + google.co.bw + google.co.ck + google.co.cr + google.co.gy + google.co.hu + google.co.id + google.co.il + google.co.im + google.co.in + google.co.je + google.co.jp + google.co.ke + google.co.kr + google.co.ls + google.co.ma + google.co.mz + google.co.nz + google.co.rs + google.co.th + google.co.tz + google.co.ug + google.co.uk + google.co.uz + google.co.ve + google.co.vi + google.co.za + google.co.zm + google.co.zw + google.it.ao + google.ne.jp + google.info + google.jobs + +google.cat + +google.com + +google.net + +google.org + +google.tel + google.ac + google.ad + google.ae + google.af + google.ag + google.al + google.am + google.as + google.at + google.aw + google.az + google.ba + google.be + google.bf + google.bg + google.bi + google.bj + google.bm + google.bn + google.bo + google.bs + google.bt + google.by + google.ca + google.cc + google.cd + google.cf + google.cg + google.ch + google.ci + google.cl + google.cm + google.cn + google.co + google.cv + google.cz + google.de + google.dj + google.dk + google.dm + google.do + google.dz + google.ec + google.ee + google.es + google.eu + google.fi + google.fm + google.fr + google.ga + google.gd + google.ge + google.gf + google.gg + google.gl + google.gm + google.gp + google.gr + google.gw + google.gy + google.hk + google.hn + google.hr + google.ht + google.hu + google.ie + google.im + google.in + google.io + google.iq + google.is + google.it + google.je + google.jo + google.jp + google.kg + google.ki + google.km + google.kr + google.kz + google.la + google.li + google.lk + google.lt + google.lu + google.lv + google.ma + google.md + google.me + google.mg + google.mk + google.ml + google.mn + google.mr + google.ms + google.mu + google.mv + google.mw + google.mx + google.ne + google.ng + google.nl + google.no + google.nr + google.nu + google.pf + google.ph + google.pk + google.pl + google.pn + google.ps + google.pt + google.qa + google.re + google.ro + google.rs + google.ru + google.rw + google.sc + google.se + google.sg + google.sh + google.si + google.sk + google.sl + google.sm + google.sn + google.so + google.sr + google.st + google.sz + google.td + google.tg + google.tk + google.tl + google.tm + google.tn + google.to + google.tt + google.tw + google.ua + google.us + google.uz + google.vg + google.vn + google.vu + google.ws + google.ytdiv:has(#promo_label_id)J +ogs.google.com4div[role="dialog"]:has(a[href*="google.com/chrome"])Õ + google.com.af + google.com.ag + google.com.ai + google.com.ar + google.com.au + google.com.bd + google.com.bh + google.com.bi + google.com.bn + google.com.bo + google.com.br + google.com.by + google.com.bz + google.com.cn + google.com.co + google.com.cu + google.com.cy + google.com.do + google.com.dz + google.com.ec + google.com.eg + google.com.er + google.com.et + google.com.fj + google.com.ge + google.com.gh + google.com.gi + google.com.gp + google.com.gr + google.com.gt + google.com.gy + google.com.hk + google.com.ht + google.com.iq + google.com.jm + google.com.jo + google.com.kh + google.com.kw + google.com.kz + google.com.lb + google.com.lv + google.com.ly + google.com.mm + google.com.mt + google.com.mx + google.com.my + google.com.na + google.com.nc + google.com.nf + google.com.ng + google.com.ni + google.com.np + google.com.nr + google.com.om + google.com.pa + google.com.pe + google.com.pg + google.com.ph + google.com.pk + google.com.pl + google.com.pr + google.com.ps + google.com.pt + google.com.py + google.com.qa + google.com.ru + google.com.sa + google.com.sb + google.com.sg + google.com.sl + google.com.sv + google.com.tj + google.com.tm + google.com.tn + google.com.tr + google.com.tw + google.com.ua + google.com.uy + google.com.vc + google.com.ve + google.com.vn + google.off.ai + google.co.ao + google.co.bw + google.co.ck + google.co.cr + google.co.gy + google.co.hu + google.co.id + google.co.il + google.co.im + google.co.in + google.co.je + google.co.jp + google.co.ke + google.co.kr + google.co.ls + google.co.ma + google.co.mz + google.co.nz + google.co.rs + google.co.th + google.co.tz + google.co.ug + google.co.uk + google.co.uz + google.co.ve + google.co.vi + google.co.za + google.co.zm + google.co.zw + google.it.ao + google.ne.jp + google.info + google.jobs + +google.cat + +google.com + +google.net + +google.org + +google.tel + google.ac + google.ad + google.ae + google.af + google.ag + google.al + google.am + google.as + google.at + google.aw + google.az + google.ba + google.be + google.bf + google.bg + google.bi + google.bj + google.bm + google.bn + google.bo + google.bs + google.bt + google.by + google.ca + google.cc + google.cd + google.cf + google.cg + google.ch + google.ci + google.cl + google.cm + google.cn + google.co + google.cv + google.cz + google.de + google.dj + google.dk + google.dm + google.do + google.dz + google.ec + google.ee + google.es + google.eu + google.fi + google.fm + google.fr + google.ga + google.gd + google.ge + google.gf + google.gg + google.gl + google.gm + google.gp + google.gr + google.gw + google.gy + google.hk + google.hn + google.hr + google.ht + google.hu + google.ie + google.im + google.in + google.io + google.iq + google.is + google.it + google.je + google.jo + google.jp + google.kg + google.ki + google.km + google.kr + google.kz + google.la + google.li + google.lk + google.lt + google.lu + google.lv + google.ma + google.md + google.me + google.mg + google.mk + google.ml + google.mn + google.mr + google.ms + google.mu + google.mv + google.mw + google.mx + google.ne + google.ng + google.nl + google.no + google.nr + google.nu + google.pf + google.ph + google.pk + google.pl + google.pn + google.ps + google.pt + google.qa + google.re + google.ro + google.rs + google.ru + google.rw + google.sc + google.se + google.sg + google.sh + google.si + google.sk + google.sl + google.sm + google.sn + google.so + google.sr + google.st + google.sz + google.td + google.tg + google.tk + google.tl + google.tm + google.tn + google.to + google.tt + google.tw + google.ua + google.us + google.uz + google.vg + google.vn + google.vu + google.ws + google.yt#stUuGf \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/LICENSE b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/LICENSE new file mode 100644 index 0000000..a9fd017 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/LICENSE @@ -0,0 +1,383 @@ +EasyList Repository Licences + + Unless otherwise noted, the contents of the EasyList repository + (https://github.com/easylist) is dual licensed under the GNU General + Public License version 3 of the License, or (at your option) any later + version, and Creative Commons Attribution-ShareAlike 3.0 Unported, or + (at your option) any later version. You may use and/or modify the files + as permitted by either licence; if required, "The EasyList authors + (https://easylist.to/)" should be attributed as the source of the + material. All relevant licence files are included in the repository. + + Please be aware that files hosted externally and referenced in the + repository, including but not limited to subscriptions other than + EasyList, EasyPrivacy, EasyList Germany and EasyList Italy, may be + available under other conditions; permission must be granted by the + respective copyright holders to authorise the use of their material. + + +Creative Commons Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO + WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS + LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS + CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS + PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK + OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS + PROHIBITED. + + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND + AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS + LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE + RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS + AND CONDITIONS. + + 1. Definitions + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may + be recast, transformed, or adapted including in any form + recognizably derived from the original, except that a work that + constitutes a Collection will not be considered an Adaptation for + the purpose of this License. For the avoidance of doubt, where the + Work is a musical work, performance or phonogram, the + synchronization of the Work in timed-relation with a moving image + ("synching") will be considered an Adaptation for the purpose of + this License. + b. "Collection" means a collection of literary or artistic works, such + as encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works + listed in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, + in which the Work is included in its entirety in unmodified form + along with one or more other contributions, each constituting + separate and independent works in themselves, which together are + assembled into a collective whole. A work that constitutes a + Collection will not be considered an Adaptation (as defined below) + for the purposes of this License. + c. "Creative Commons Compatible License" means a license that is + listed at https://creativecommons.org/compatiblelicenses that has + been approved by Creative Commons as being essentially equivalent + to this License, including, at a minimum, because that license: (i) + contains terms that have the same purpose, meaning and effect as + the License Elements of this License; and, (ii) explicitly permits + the relicensing of adaptations of works made available under that + license under this License or a Creative Commons jurisdiction + license with the same License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license + attributes as selected by Licensor and indicated in the title of + this License: Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities + that offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who created + the Work or if no individual or entity can be identified, the + publisher; and in addition (i) in the case of a performance the + actors, singers, musicians, dancers, and other persons who act, + sing, deliver, declaim, play in, interpret or otherwise perform + literary or artistic works or expressions of folklore; (ii) in the + case of a phonogram the producer being the person or legal entity + who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits + the broadcast. + h. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any production + in the literary, scientific and artistic domain, whatever may be + the mode or form of its expression including digital form, such as + a book, pamphlet and other writing; a lecture, address, sermon or + other work of the same nature; a dramatic or dramatico-musical + work; a choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which + are assimilated works expressed by a process analogous to + cinematography; a work of drawing, painting, architecture, + sculpture, engraving or lithography; a photographic work to which + are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, + sketch or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a + copyrightable work; or a work performed by a variety or circus + performer to the extent it is not otherwise considered a literary + or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + j. "Publicly Perform" means to perform public recitations of the Work + and to communicate to the public those public recitations, by any + means or process, including by wire or wireless means or public + digital performances; to make available to the public Works in such + a way that members of the public may access these Works from a + place and at a place individually chosen by them; to perform the + Work to the public by any means or process and the communication to + the public of the performances of the Work, including by public + digital performance; to broadcast and rebroadcast the Work by any + means including signs, sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage + of a protected performance or phonogram in digital form or other + electronic medium. + + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes + reasonable steps to clearly label, demarcate or otherwise identify + that changes were made to the original Work. For example, a + translation could be marked "The original work was translated from + English to Spanish," or a modification could indicate "The original + work has been modified."; + c. to Distribute and Publicly Perform the Work including as + incorporated in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + i. Non-waivable Compulsory License Schemes. In those + jurisdictions in which the right to collect royalties through + any statutory or compulsory licensing scheme cannot be waived, + the Licensor reserves the exclusive right to collect such + royalties for any exercise by You of the rights granted under + this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives + the exclusive right to collect such royalties for any exercise + by You of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that + the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, + from any exercise by You of the rights granted under this + License. + + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make + such modifications as are technically necessary to exercise the rights + in other media and formats. Subject to Section 8(f), all rights not + expressly granted by Licensor are hereby reserved. + + 4. Restrictions. The license granted in Section 3 above is expressly + made subject to and limited by the following restrictions: + a. You may Distribute or Publicly Perform the Work only under the + terms of this License. You must include a copy of, or the Uniform + Resource Identifier (URI) for, this License with every copy of the + Work You Distribute or Publicly Perform. You may not offer or + impose any terms on the Work that restrict the terms of this + License or the ability of the recipient of the Work to exercise the + rights granted to that recipient under the terms of the License. + You may not sublicense the Work. You must keep intact all notices + that refer to this License and to the disclaimer of warranties with + every copy of the Work You Distribute or Publicly Perform. When You + Distribute or Publicly Perform the Work, You may not impose any + effective technological measures on the Work that restrict the + ability of a recipient of the Work from You to exercise the rights + granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, + but this does not require the Collection apart from the Work itself + to be made subject to the terms of this License. If You create a + Collection, upon notice from any Licensor You must, to the extent + practicable, remove from the Collection any credit as required by + Section 4(c), as requested. If You create an Adaptation, upon + notice from any Licensor You must, to the extent practicable, + remove from the Adaptation any credit as required by Section 4(c), + as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License + with the same License Elements as this License; (iii) a Creative + Commons jurisdiction license (either this or a later license + version) that contains the same License Elements as this License + (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons + Compatible License. If you license the Adaptation under one of the + licenses mentioned in (iv), you must comply with the terms of that + license. If you license the Adaptation under the terms of any of + the licenses mentioned in (i), (ii) or (iii) (the "Applicable + License"), you must comply with the terms of the Applicable License + generally and the following provisions: (I) You must include a copy + of, or the URI for, the Applicable License with every copy of each + Adaptation You Distribute or Publicly Perform; (II) You may not + offer or impose any terms on the Adaptation that restrict the terms + of the Applicable License or the ability of the recipient of the + Adaptation to exercise the rights granted to that recipient under + the terms of the Applicable License; (III) You must keep intact all + notices that refer to the Applicable License and to the disclaimer + of warranties with every copy of the Work as included in the + Adaptation You Distribute or Publicly Perform; (IV) when You + Distribute or Publicly Perform the Adaptation, You may not impose + any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of + the Applicable License. This Section 4(b) applies to the Adaptation + as incorporated in a Collection, but this does not require the + Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations + or Collections, You must, unless a request has been made pursuant + to Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) + the name of the Original Author (or pseudonym, if applicable) if + supplied, and/or if the Original Author and/or Licensor designate + another party or parties (e.g., a sponsor institute, publishing + entity, journal) for attribution ("Attribution Parties") in + Licensor's copyright notice, terms of service or by other + reasonable means, the name of such party or parties; (ii) the title + of the Work if supplied; (iii) to the extent reasonably + practicable, the URI, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and (iv) , + consistent with Ssection 3(b), in the case of an Adaptation, a + credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4(c) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, + at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then + as part of these credits and in a manner at least as prominent as + the credits for the other contributing authors. For the avoidance + of doubt, You may only use the credit required by this Section for + the purpose of attribution in the manner set out above and, by + exercising Your rights under this License, You may not implicitly + or explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution + Parties, as appropriate, of You or Your use of the Work, without + the separate, express prior written permission of the Original + Author, Licensor and/or Attribution Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute + or Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify + or take other derogatory action in relation to the Work which would + be prejudicial to the Original Author's honor or reputation. + Licensor agrees that in those jurisdictions (e.g. Japan), in which + any exercise of the right granted in Section 3(b) of this License + (the right to make Adaptations) would be deemed to be a distortion, + mutilation, modification or other derogatory action prejudicial to + the Original Author's honor and reputation, the Licensor will waive + or not assert, as appropriate, this Section, to the fullest extent + permitted by the applicable national law, to enable You to + reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + + 5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF + LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF + ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW + THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO + YOU. + + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR + ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES + ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 7. Termination + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or + Collections from You under this License, however, will not have + their licenses terminated provided such individuals or entities + remain in full compliance with those licenses. Sections 1, 2, 5, 6, + 7, and 8 will survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here + is perpetual (for the duration of the applicable copyright in the + Work). Notwithstanding the above, Licensor reserves the right to + release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the + terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + + 8. Miscellaneous + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to the + Work on the same terms and conditions as the license granted to You + under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, + Licensor offers to the recipient a license to the original Work on + the same terms and conditions as the license granted to You under + this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability + of the remainder of the terms of this License, and without further + action by the parties to this agreement, such provision shall be + reformed to the minimum extent necessary to make such provision + valid and enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + e. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in + this License were drafted utilizing the terminology of the Berne + Convention for the Protection of Literary and Artistic Works (as + amended on September 28, 1979), the Rome Convention of 1961, the + WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms + Treaty of 1996 and the Universal Copyright Convention (as revised + on July 24, 1971). These rights and subject matter take effect in + the relevant jurisdiction in which the License terms are sought to + be enforced according to the corresponding provisions of the + implementation of those treaty provisions in the applicable + national law. If the standard suite of rights granted under + applicable copyright law includes additional rights not granted + under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict + the license of any rights under applicable law. + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no + warranty whatsoever in connection with the Work. Creative Commons + will not be liable to You or any party on any legal theory for any + damages whatsoever, including without limitation any general, + special, incidental or consequential damages arising in connection + to this license. Notwithstanding the foregoing two (2) sentences, if + Creative Commons has expressly identified itself as the Licensor + hereunder, it shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of + doubt, this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-DE b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-DE new file mode 100644 index 0000000..78a60c8 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-DE @@ -0,0 +1,8787 @@ +à +ÿï08@R-Bannerwerbung- +ÿï08@R -werb_hori. +ÿï08@R -werb_vert. +ÿï08@R -Werbebanner- +8ÿï* +merkur-werbebanner.de08@R -werbebanner. +ÿï08@R-Werbebannerr_ +ÿï08@R .at/werbung/ +ÿï08@R .com/de/ad/ +ÿï08@R .com/werbung_ +08@R .de.be/zzz/ +08@R .de.ms/zzz/ +08@R .de.vu/zzz/ +ßï08@R.de/ads/ +ÿï08@R.de/ads? +ÿï08@R.de/ads_ +ÿï08@R .de/werb/ +ÿï08@R .de/werbung/ +ÿï08@R .net/werbung/ +ÿï08@R .org/werbung/ +ÿï08@R .to/werbung/ +ÿï08@R +/_werbung/ +ÿï08@R /aaa-werbung/ +ÿï08@R /ad-rahmen- +ÿï08@R /ad/anzeige_ +"ÿï08@R/banner125werbung. +%ÿï08@R/banner_quartermedia. +ÿï08@R/banner_woomws. +!ÿï08@R/banners/werbung- +ÿï08@R/bannerwerbung- +ÿï08@R /bilder/ads/ + ÿï08@R/bilder/werbung_ +ÿï08@R /buchreklame. +ÿï08@R /cms/werbung/ +ÿï08@R /dateien/ads/ + ÿï08@R/defaultwerbung/ +ÿï08@R +/ec_adalt. +ÿï08@R +/ec_adalt/ +ÿï08@R +/ec_adalt_ +ÿï08@R /econa-layer/ +ÿï08@R /eraffe_ad. +ÿï08@R/esel.js +$ÿï08@R/fileupload/werbung/ +"ÿï08@R/firstloadwerbung. +ÿï08@R /getwerbung. +ÿï08@R /gigaflat.js +ÿï08@R /grafik/ads/ + ÿï08@R/Header-Werbung. +ÿï08@R /hier_werben. +ÿï08@R/image_werbung/ +ÿï08@R/images/_werb_ +ÿï08@R /images/werb/ +ÿï08@R /images/werb_ + ÿï08@R/images/werbung. + ÿï08@R/images/werbung/ +ÿï08@R /img/werbung/ +ÿï08@R /imgwerbung/ +"ÿï08@R/includes/werbung/ +08@R/iqadcontroller. +ÿï08@R /layer_werbg. +$ÿï08@R/layout_img/werbung/ +ÿï08@R/media/werbung/ + ÿï08@R/medien/werbung/ +ÿï08@R /mod/werbung/ +ÿï08@R /nativendo.jsò +ÿï08@R /nativendo/ +ÿï08@R +/o2-layer. +!ÿï08@R/partner/werbung- + ÿï08@R/partneradzwerk/ +ÿï08@R /pic/werbung/ +ÿï08@R /pic/werbung_ +"ÿï08@R/Reklame_Anzeigen/ +!ÿï08@R/sidebar_werbung/ +"ÿï08@R/sponsoren/banner_ +ÿï08@R/sportson/ads/ +"ÿï08@R/styles/*/werbung/ + ÿï08@R/styles/werbung_ + ÿï08@R/upload/werbung/ +ÿï08@R/usemax/ +ÿï08@R /werb.gif +ÿï08@R /werb.php +ÿï08@R/werbe-banner/ +ÿï08@R/werbe_banner/ +ÿï08@R/werbeanzeige/ +ÿï08@R/werbeanzeigen/ +ÿï08@R /werbebanner- +ÿï08@R /werbebanner. +ÿï08@R /werbebanner/ +ÿï08@R/werbebanner2. +ÿï08@R /werbebanner_ + ÿï08@R/werbebannerneu/ +ÿï08@R +/werbebox/ +ÿï08@R /werbecenter/ +ÿï08@R/werbegrafiken/ +ÿï08@R /werbeimages/ +ÿï08@R/werbemanager2/ +ÿï08@R /werbemittel/ +ÿï08@R /werbemittel_ +ÿï08@R /werbenetz/ +ÿï08@R/werbepartner. +ÿï08@R/werbepartner/ +ÿï08@R /werbeplakat. +ÿï08@R /werbepopup/ +ÿï08@R /werbescript/ +ÿï08@R /werbeslider. +ÿï08@R /werbeteaser/ +ÿï08@R/werbetrenner_ +ÿï08@R /werbezonen/ +ÿï08@R /werbung. +ÿï08@R /werbung.gif +ÿï08@R /werbung/ +"ÿï08@R/Werbung/*_banner_ + ÿï08@R/werbung/banner/ + ÿï08@R/werbung/banner_ +ÿï08@R /werbung160. +ÿï08@R +/werbung2^ +ÿï08@R /werbung5jw/ +ÿï08@R /werbung90. +ÿï08@R /werbung_*? +ÿï08@R /werbung_90. +ÿï08@R +/werbung__ + ÿï08@R/werbung_banner. +!ÿï08@R/werbung_banner1. +ÿï08@R/werbung_frame. +$ÿï08@R/werbung_horizontal. +"ÿï08@R/werbung_vertical. +ÿï08@R/werbungheader. +$ÿï08@R/werbunglongbanner1. +$ÿï08@R/WerbungPlatzhalter/€ + ÿï08@R/werbungsbilder/ +ÿï08@R /werbungsky. +ÿï08@R /werbungsr3. +!ÿï08@R/Widgets/Werbung/ +08@R +/wpbanner/ +ÿï08@R /wrbg.js? +08@R/zzz/init.php? + ÿï08@R_Banner_Werbung_ +ÿï08@R_Bannerwerbung. +ÿï08@R_bannerwerbung/ +ÿï08@R _bg_werbung. +ÿï08@R _oben_ad. +ÿï08@R +_unten_ad. +ÿï08@R _werbe_layer. +ÿï08@R_werbeanzeigen/ +ÿï08@R _werbebanner. +ÿï08@R _werbebanner/ +ÿï08@R _werbebreak. +ÿï08@R_werbepartner. +ÿï08@R _werbung.php +ÿï08@R _werbung.pl +ÿï08@R _Werbung260. +!ÿï08@R_woz_banner_vote. #Ad_Win2day#LxWerbeteaser#ParentDivForWerbPostbit#SSpotIMPopSlider#SlimSpot_imPop_Container#Werb_Postbit_Bottom #WerbungLinks #WerbungOben"#WerbungObenRechts10_GesamtDIV!#WerbungObenRechts8_GesamtDIV!#WerbungObenRechts9_GesamtDIV#WerbungRechts1#WerbungRechts2 #WerbungUnten!#WerbungUntenLinks4_GesamtDIV!#WerbungUntenLinks7_GesamtDIV!#WerbungUntenLinks8_GesamtDIV!#WerbungUntenLinks9_GesamtDIV #Werbung_Sky #Werbung_Wide#ad-bereich1-08#ad-bereich1-superbanner#ad-bereich2-08#ad-bereich2-skyscrapper#ad-qm-sidebar-oben#ad-qm-sidebar-unten#ad-rechts-block#ad-rechts-sky #ad-sb-oben  #ad_gross #ad_lang #ad_oben +#ad_rechts#adbox_artikel#adcontentoben#adcontentoben1 #adkontainer #adliste #adunten#anzeigewerbungtext#ar_detail_werb103œ #bannerwerbung%!#block-views-Topsponsoren-block_1#block-werbung#callya_freikarte_layer#cnt_bgwerbung +#cont-werb#content_werbung#footerwerbung#forumformwerbung#freikarte_layer #gonamicerror#google_adsense_werbung  #gwerbung#hauptnaviwerbelinks#headerWerbung#header_werbung#headerwerbung#inlinewerbung #kalaydo_ads #kaufDA#kaufDA-widget-container #kopf-werbung#layerADLINKWerbung4#nativendo-articlemiddle#nativendo-articletop#nativendo-artikel#nativendo-home#nativendo-home-1#nativendo-home-2#nativendo-homemiddle#nativendo-homepage#nativendo-hometop#nativendo-infeed-1#nativendo-infeed-2#nativendo-infeed-3#nativendo-infeed-4#nativendo-infeed-5#nativendo-infeed-6#nativendo-infeed1#nativendo-infeed2#nativendo-marginal$ #nativendo-nachrichten-inarticle$ #nativendo-nachrichten-unterhalb#nativendo-nativendo-aktie'##nativendo-nativendo-homepage-mobil#nativendo-oms-infeed #o2freikarte#oms_gpt_billboard#oms_gpt_outofpage#oms_gpt_rectangle#oms_gpt_rectangle_halfpage#oms_gpt_skyscraper#oms_gpt_superbanner#p-links-werbung#p-rechts-werbung#qm_content_ad_anzeige #reklame#reklame-leaderboard-unten#reklame-rechts-mitte#reklame-rechts-oben#reklame-rechts-unten#reklame-rectangle#reklame_layer #skywerbungð #slotright-werbung +#sp0ns0ren#sspot_impopad_wrapper #startwerbung +#t_werbung#text-ads-mitte #textwerbung#tmobilefreikarte #topwerbung #unisterAd_1 #unisterAd_2#videopage-werbung #werb10 #werb11 #werb12 #werb13 +#werb7 +#werb8 +#werb9 #werbLayer1 #werbLayer2 #werbLayer3 #werb_ps103 +#werbeForm#werbeFormRectangle #werbeFormTop  #werbeadd #werbeanzeige #werbebanner #werbeblock #werbeblock2#werbeblock_rechts  #werbebox #werbeflaeche#werbeflaeche-3#werbeflaeche-billboard-big#werbeflaeche-mpu-big #werbekasten #werbeleiste#werbeslot-artikel#werbeslot-sidebar #werbetrenner #werbung#werbung-banner#werbung-banner-container #werbung-fb #werbung-left#werbung-map-top#werbung-rectangle1#werbung-rectangle2##werbung-seitenleiste-container#werbung-skyscraper  #werbung1#werbung125_links#werbung125_rechts  #werbung2  #werbung3 #werbung792_2  #werbungR#werbungRechts#werbungSuperbanner#werbungWrapper #werbung_cad#werbung_contentad_screen¾ #werbung_footer#werbung_leaderboard_screen#werbung_links#werbung_mitte #werbung_oben#werbung_rechts#werbung_right#werbung_skyscraper_bottom#werbung_skyscraper_top#werbung_superbanner #werbung_top"#werbung_wideskyscraper_screen #werbunglink #werbunglinks#werbungrechts#werbungrechts1#werbungrechtsfloat#werbungsbox300 #werbungsky#werbungslider #werbungunten #wkr_werbung.AdRechtsLokal.Artikel_Ads_News .GridWerbung.KalaydoBoxLogo.KalaydoRessortBox.KomischeWerbeBox.RessortWerbungHeader .Werbelabel .Werbeteaser .Werbung.WerbungAdpepper.WerbungDetailRectangle.WerbungLinksRechts .WerbungMitte  ._werbung  .ad_mitte.ad_platzhalter .ads-anzeige!.ads-artikel-contentAd-medium.ads-artikel-contentAd-top.ads_bueroklammer .ads_rechts.adsense-ArtikelOben  .adzeiger.anzeigenwerbung .article-werb.artikelinlinead.azk-native-responsive +.b-werbung&".babbelMultilangAdBannerHorizontal.babbelMultilangAdRectangle.banner-werbung-rechts.banner-werbung-top.bannerAnzeige.bannergroup_werbung.banneritemwerbung_head_1.banneritemwerbung_head_2.banneritemwerbung_head_3.banneritemwerbung_head_4 .bdeFotoGalAd.bdeFotoGalAdText  .big-werbÑ .block-huss-adblocks.block-wozwerbung.block_rs4_werbung.bottom-werbung-box.box_werbung_detailseite.boxstartwerbung .boxwerb .boxwerbung.content_body_right_werbung.content_header_werbung$ .content_right_side_werbewrapper.contentwerbung4 .dk-ad-ident .ecom_werbung.fullbanner_werbung.funkedigital-ad.fusszeile_ads.gutZuWissenAd.inlinewerbungtitel.insidewerbung.keyword_werbung .lokalwerbung.mob-werbung-oben.mob-werbung-unten.news-item-werbung .newswerbung .nfy-sebo-ad .nfy-slim-ad .orbitsoft-ad1-.pane-klambt-ads-klambt-adserver-medrectangle.popup_werbung_oben_tom.popup_werbung_rechts_tom'#.ps-trackingposition_Werbungskasten +.rahmen_ad .reklame.right-content-werbung.schnaeppchenScrollAd.seitenleiste_werbung.shift-widget > .cm-article.sidebar-werbung.sidebarwerbung.smartbrokerAds.spielen_werbung_2.sponsorinaktiv.sponsorlinkgruen .superwerbung.symplr-ad-holder.tab_artikelwerbung.teaser_adliste.teaser_werbung .text_werbung.textad_hauptlink.textlinkwerbung.tipps-content-ad .topwerbung.trm-anzeige-separator.tx-scandesk-werbung.undertitlewerbung .userfunc-ad .videowerbung .wadtag.werb_container.werb_textlink.werbeadd_ueber¨ + .werbebanner.werbebanner-oben .werbeblock +.werbebox2.werbeboxBanner .werbeflaeche .werbehinweis.werbekennzeichnerrectangle .werbemainneu +.werbenbox .werbepause +.werblinks .werbrechts .werbung +.werbung-1 +.werbung-2.werbung-250x250 +.werbung-3.werbung-bigbox.werbung-bigsize .werbung-box.werbung-container.werbung-content.werbung-contentad.werbung-fullbanner.werbung-halfbanner.werbung-inline.werbung-label.werbung-leiste.werbung-rec-below-list.werbung-rechts.werbung-rectangle.werbung-skyscraper.werbung-skyscraper2.werbung-unten  .werbung1  .werbung2.werbung280x70_wrap  .werbung3 .werbung300.werbung300x600 .werbung301.werbung970x250.werbungAnzeige.werbungContainer.werbungSkygrapperRight.werbungSkygrapperTop.werbungTabelle.werbung_300x250 .werbung_728.werbung_banner.werbung_bereich .werbung_box.werbung_fuer_300er +.werbung_h.werbung_index.werbung_links.werbung_sidebar .werbung_text.werbungamazon.werbunganzeigen .werbungarea.werbungimthread.werbungrechtstitelÐ.widget-werbunga[aria-label="Werbelink"]a[href*=".prodtraff.com/"]®©a[href="https://www.focus.de/deal/focus-online-deal-mit-weltsparen-setzen-sie-jetzt-auf-zinserhoehungen-weltsparen-schenkt-ihnen-dafuer-150-euro_id_11868745.html"] > img/+a[href^="http://landing.fickzeit.com/?ag="]62a[href^="http://landing.parkplatzkartei.com/?ag="]73a[href^="http://partners.adklick.de/tracking.php?"],(a[href^="http://wittered-mainging.com/"]/+a[href^="http://www.deinfickdate.com/?wm="].*a[href^="http://www.deinsexdate.com/?wm="]3/a[href^="http://www.eis.de/index.phtml?refid="]2.a[href^="http://www.heutenochficken.com/?wm="]*&a[href^="http://www.hw-area.com/?dp="]-)a[href^="http://www.ichwuerde.com/?ref="]40a[href^="http://www.kontakt-vermittler.de/?wm="]/+a[href^="http://www.rastplatzsex.com/?wm="]1-a[href^="http://www.rotlichtkartei.com/?sc="]3/a[href^="http://www.sexkontaktportal.com/?wm="]51a[href^="https://ads.sunmaker.com/tracking.php?"]!a[href^="https://bd742.com/"]0,a[href^="https://clicks.imaxcash.com/?aff_"]62a[href^="https://dpm.affaire18.com/click.php?dp="]:6a[href^="https://dpm.jungekontakte.com/click.php?dp="])%a[href^="https://feed.solads.media/"]-)a[href^="https://maidings-mectland.com/"]0,a[href^="https://marketing.net.brillen.de/"]<8a[href^="https://media.datingpartner.com/click.php?dp="]-)a[href^="https://ofrbpu.smartbroker.de/"];7a[href^="https://stream.justhdfilme.com/kkiste-kinox/"]$ a[href^="https://t.trafai.com/"]'#a[href^="https://trk.imobtrk.com/"]40a[href^="https://www.handy-sextreffen.info/?c="],(a[href^="https://www.tik-tok-date.com/"]3/a[href^="https://www.tipico.com/?affiliateId="]0,a[href^="https://www.vavoo.tv/promo/"] > img*&a[href^="https://www.wazazu.com/NWS/"]& +ping-timeout.de#Advertisements + openlimit.com#adLink + az.com.na #ad_block_1 + ad-tuning.de +#ad_footer + ad-tuning.de +#ad_header + energy.de#ad_home + +kombi.de#left-ad + +kombi.de #right-ad1 + +golem.de!#taboola-below-article-thumbnails# + +kombi.de + +viply.de#top-ad + filmmakers.de#werbung' +regenwald-schuetzen.org.Werbung- +kleinanzeigen.de +hach.de +.ad-active( + eltern.de + +stern.de .ad-element +cash.ch .ad-enabled + eltern.de .ad-frame + +xdate.ch.ad-item + 11freunde.de .ad_sidebar + 11freunde.de.ad_wrap* +finanzlexikon-online.de .adboxclass' + finanzen.ch.adnz-ad-placeholder +rtl.de.adslot + az.com.na.adverts + wetter.de .base-ad-slot> + +fitbook.de + +petbook.de +welt.de.cnx-player-wrapper  + openlimit.com .content_ad/ +wallstreet-online.de.footer-advertisingQ + 11freunde.de + +kochbar.de +gala.de +geo.de +rtl.de +vip.de.gujAd‘ +ÿï08@Radnx.de^ +ÿï08@R +bd742.com^ +ÿï08@R cpg-cdn.com^ +ÿï08@R f11-ads.com^ +ÿï08@R fantecio.com^ +ÿï08@R gayads.biz^ +ÿï08@R +kctag.net^ +!ÿï08@Rswissadserver.ch^ + ÿï08@Rwindows-pro.net^ +ÿï08@R +wixnm.com^ +ÿï08@R zazufi.com^ +ÿï08@R4rm.de^ +ÿï08@R85.114.133.62^ +*ÿï08@Ra.partner-versicherung.de^ +ÿï08@Ra3h.de^ +$ÿï08@Rablida-rotation.com^ +#ÿï08@Ractive-tracking.de^ +ÿï08@R +ad-mix.de^ +ÿï08@R +ad-pay.de^ +ÿï08@Rad-serving.de^ +ÿï08@R +ad-sun.de^ +&ÿï08@Rad.de.doubleclick.net^ +"ÿï08@Rad.netzquadrat.de^ +ÿï08@R ad4cash.de^ +ÿï08@Rad4m.at^ +ÿï08@R +ad4mat.de^ +ÿï08@R adalizer.com^ +ÿï08@R adbutler.de^ +ÿï08@Radc.tripple.at^ +ÿï08@Radcocktail.com^ +ÿï08@R addefend.com^ +ÿï08@R +adhost.in^ +ÿï08@R adiceltic.de^ +ÿï08@R adindex.de^ +ÿï08@R adition.de^ +ÿï08@R adition.net^ +ÿï08@R adklick.de^ +ÿï08@R adklick.net^ + ÿï08@Radmanagement.ch^ +ÿï08@R adperform.de^ +ÿï08@R adreport.de^ +ÿï08@R adrolays.de^ +ÿï08@Rads4allweb.de^ +ÿï08@R adscads.de^ + ÿï08@Radspectacle.net^ +ÿï08@R adspirit.net^ + 11freunde.de .house-ad$ +hochzeitswahn.de .internal-ad, +mietmobil-fuchs.ch.jquery-script-ads# + 11freunde.de.js_deferred-ad" + wetter.de.outbrain-ad-slot + phytodoc.de .plain-ad +handelsblatt.com.row-ad + +xdate.ch .side-ads + +xdate.ch.top-adsV +wieistmeineip.at +wieistmeineip.ch +wieistmeineip.de.trc-content-sponsoredw +wieistmeineip.at +wieistmeineip.ch +wieistmeineip.de7.trc_related_container div[data-item-syndicated="true"]J +marketingportal.toyota.de +werbung.oebb.at + +wetter.com.werbungR +auto-motor-und-sport.de +hardwareluxx.de + +wetter.com[id^="div-gpt-ad"]q +auto-motor-und-sport.de +motorradonline.de + 11freunde.de-a[href^="https://adclick.g.doubleclick.net/"]P + 11freunde.de + gofeminin.de,a[href^="https://pubads.g.doubleclick.net/"]6 + +telekom.de$a[href^="https://track.adform.net/"]? + +onvista.de-a[href^="https://www.financeads.net/tc.php?"]% + +wetter.comdiv[id^="div-gpt-"]ß +ÿï08@R adsplash.de^ +ÿï08@R adsushi.de^ +ÿï08@R advendi.de^ + ÿï08@Radvert-layer.de^ +ÿï08@Radvolution.de^ +ÿï08@R +adworx.at^ + ÿï08@Raff-handler.com^ +ÿï08@Raffiliando.com^ +ÿï08@Raffiliates.de^ +ÿï08@Raffilimatch.de^ +ÿï08@Raffilitec.com^ +ÿï08@Raffiliwelt.net^ +ÿï08@R affilixxl.de^ +ÿï08@R agaso.de^ +ÿï08@Rallads4you.de^ +ÿï08@R alphaads.de^ +ÿï08@R amunx.de^ +$ÿï08@Ranzeigen-vor-ort.de^ +%ÿï08@Ranzeigenlieferant.de^ +!ÿï08@Rarcor-partner.de^ +ÿï08@R arminius.io^ +ÿï08@Rasnetworks.de^ +"ÿï08@Ratf-tagmanager.de^ +,ÿï08@Rauxmoney-partnerprogramm.de^ +ÿï08@R ay.delivery^ +ÿï08@Rba-content.de^ +!ÿï08@Rbannerchange.net^ +ÿï08@Rbannerheld.de^ + ÿï08@Rbauernative.com^ +ÿï08@R biallo1.de^ +ÿï08@R biallo2.de^ +ÿï08@R biallo3.de^ +ÿï08@Rbitcoinpara.de^ +ÿï08@R blogads.de^ +ÿï08@R bsheute.de^ +ÿï08@R buywords.de^ +ÿï08@R c-points.de^ +ÿï08@Rcashdorado.de^ +ÿï08@R chatintr.com^ +ÿï08@R chatntr.com^ + ÿï08@Rci-marketing.de^ +ÿï08@Rcmadserver.de^ +ÿï08@R conative.de^ +ÿï08@R connects.ch^ +ÿï08@R +cpdsrv.de^ +ÿï08@R crmpilot.it^ +ÿï08@R +cuiron.de^ +ÿï08@R cussixia.de^ +ÿï08@R +cyonix.to^ +!ÿï08@Rdata-analyst.biz^ +!ÿï08@Rdef-platform.com^ + ÿï08@Rdef-platform.de^ +!ÿï08@Rdef-platform.net^ +ÿï08@R delmovip.com^ +ÿï08@R +dhads.net^ +ÿï08@R digentu.de^ +ÿï08@R e-traffix.de^ +ÿï08@R ebesucher.de^ +ÿï08@R +eeewax.de^ +"ÿï08@Reset-affiliate.de^ +ÿï08@R et.twyn.com^ +ÿï08@R ethnarc.de^ +ÿï08@R +evania.de^ +ÿï08@R exit-x.net^È +ÿï08@R exnzg.de^ +ÿï08@R +expepp.de^ +ÿï08@R feedad.com^ +ÿï08@R fexzuf.com^ +ÿï08@R finad.de^ +ÿï08@Rfinative.cloud^ + ÿï08@Rfirstsponsor.de^ +!ÿï08@Rfotoscaseras.top^ +"ÿï08@Rgamesaffiliate.de^ +ÿï08@Rgamigoads.com^ +ÿï08@R gbucket.ch^ +ÿï08@Rgeldcounter.de^ +ÿï08@R gigapromo.de^ +ÿï08@R goldbach.com^ +ÿï08@R gonamic.de^ +ÿï08@R goodads.de^ +ÿï08@Rgreen-ads.net^ +ÿï08@R guruads.de^ +ÿï08@Rh5v.eu^ +ÿï08@R hot59.de^ +ÿï08@R ibanner.de^ +ÿï08@Riias.eu^ +ÿï08@R imo-cash.de^ +ÿï08@Rin24.at^ +ÿï08@R inlinks.de^ +ÿï08@Rintensifier.de^ +%ÿï08@Riqcontentplatform.de^ +ÿï08@R +itrack.it^ +ÿï08@Rjink.de^ +ÿï08@R jojoad.com^ +ÿï08@R kingads.net^ +ÿï08@R klick4u.de^ + ÿï08@Rklicktausch.com^ +ÿï08@R +liferd.de^ +ÿï08@R linkedads.de^ +ÿï08@Rlocalpoint.ch^ +ÿï08@Rlose4admin.de^ +ÿï08@Rlove-money.de^ +ÿï08@R manughl.de^ +&ÿï08@Rmarketing-guerilla.de^ +%ÿï08@Rmarketing-profis.net^ +ÿï08@R +maxiad.de^ +ÿï08@R mega-ad.de^ +ÿï08@Rmegawerbung.de^ +ÿï08@R +mename.de^ +ÿï08@R mirando.de^ +#ÿï08@Rmobileadvertise.de^ +ÿï08@R +mupads.de^ +ÿï08@R +murcs.org^ +ÿï08@R nativendo.de^ +ÿï08@R +neqty.net^ +"ÿï08@Rnetpoint-media.de^ +ÿï08@R netwayer.de^ +(ÿï08@Rnetwork-marketing24.com^ +#ÿï08@Rnetwork-media.info^ +ÿï08@Rnetzwerk-ad.de^ +#ÿï08@Rnonstoppartner.net^ + ÿï08@Rnotenpartner.de^ +ÿï08@R nwave.de^ +ÿï08@R onlymega.com^ +ÿï08@Rpaidlinkz.net^ +ÿï08@R payclick.it^ +!ÿï08@Rplanetactive.com^ +ÿï08@Rplayamedia.com^ó +ÿï08@Rppac.de^ +#ÿï08@Rpremiumbesucher.de^ +ÿï08@Rprofiliate.net^ +ÿï08@R ptadsrv.de^ +ÿï08@R qualigo.de^ +#ÿï08@Rquality-channel.de^ +'ÿï08@Rqualitymedianetwork.de^ + ÿï08@Rquartermedia.de^ +ÿï08@R rapidads.de^ + ÿï08@Rrevresrennab.de^ +ÿï08@R rgadvert.com^ +'ÿï08@Rringier-advertising.ch^ + ÿï08@Rrtbsuperhub.com^ +ÿï08@Rsecurecnd.com^ +!ÿï08@Rseitenaufruf.com^ +ÿï08@R selfpuc.com^ +ÿï08@Rserver4ads.com^ +ÿï08@R servote.de^ +ÿï08@R solads.media^ +ÿï08@R sparkads.ws^ +ÿï08@Rsponsortown.de^ +ÿï08@R +spoods.io^ +!ÿï08@Rstilanzeigen.net^ +'ÿï08@Rstroeerdigitalmedia.de^ +ÿï08@Rsunnysales.biz^ +ÿï08@R superclix.de^ + ÿï08@Rsuperpromo24.de^ +ÿï08@R +symplr.de^ +ÿï08@R +tagrpd.de^ +ÿï08@Rtextklicks.de^ +ÿï08@R tip-ads.de^ +ÿï08@R trabro.com^ +"ÿï08@Rtracknet.twyn.com^ +"ÿï08@Rtrafficfabrik.com^ + ÿï08@Rtraffictrack.de^ +ÿï08@R +trmads.eu^ +ÿï08@R +trmget.eu^ +ÿï08@R trmwidget.eu^ +ÿï08@R trocado.at^ +ÿï08@R turboads.de^ +ÿï08@R twiago.com^ +ÿï08@R uselayer.com^ +ÿï08@Rvip-websc.org^ +ÿï08@R vipbanner.de^ +ÿï08@Rviralmails.de^ +ÿï08@Rvisit2visit.de^ +#ÿï08@Rvodafone-direkt.de^ +ÿï08@R +w-m-w.net^ +ÿï08@R w3hoster.de^ +(ÿï08@Rweb20-traffic-system.de^ +ÿï08@R +websc.org^ + ÿï08@Rwebspiration.de^ +ÿï08@Rwerbeflut.net^ + ÿï08@Rwowpornlist.xyz^ +ÿï08@R wwm24.de^ +ÿï08@R www.p.de^ + ÿï08@Rwz-werbewelt.de^ +ÿï08@Rxiji.de^ +ÿï08@R xtreff69.com^ +ÿï08@R yoomedia.de^ +ÿï08@Ryouspacko.com^ +ÿï08@Rz0a.de^ +ÿï08@R +za-ads.de^ +ÿï08@Rzieltracker.de^¿ + ÿï08@Rzuppelzockt.com^ +Sÿï08@RCzyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqp.de^ +ÿï08@R avault.net^ + ÿï08@Rrecognified.net^ +"ÿï08@R1deluxe.eu/banner/ +*ÿï08@R213.133.100.18^*&clicktag= +,ÿï08@R4fal.com/profilbannercreate/ +$ÿï08@R6profis.de^*/banner_ +<ÿï* + wechseln.de08@Ra.check24.net/misc/view.php +#ÿï08@Rabo2.de/abo-direkt/ +ÿï08@R +ad.71i.de^ +ÿï08@R ad.bwise.ch^ +ÿï08@R ad.jaumo.com^ +ÿï08@R adsby.de^ +$ÿï08@Raff.carvertical.com^ +(ÿï08@Raffiliking.blogspot.com^ +=ÿï08@R-aktion-deutschland-hilft.de/fileadmin/banner/ +$ÿï08@Rall-inkl.com/banner/ +&ÿï08@Rall-inkl.com^*/banner/ +?ÿï08@R/allesregional.de^*/ar-widget/*^app-mode=offers^ +&08@Ramarotic.com^*.php?wmid= +,08@Ramateurbusters.com^*.php?wmid= +&ÿï08@Ramateurpin.com/puarea/ +,ÿï08@Ramateurpin.com^*/b.php?zone= +;ÿï* +pornohutdeutsch.net08@Ramateursexfilme.biz^ +2ÿï08@R"amazonaws.com/display.tweenui.com/ +- 08@Rapi.medianord.de/Widgets/Frame? +1€* +motorrad2000.de08@Rautoscout24.de^ +4ÿï08@R$auxmoney.com/start/welcome.php?afid= +9ÿï08@R)ayurvedazentrum-brandenburg.de/webbanner/ +ÿï08@R b.big7.com^ +-ÿï08@Rbacklinkseller.de/gfx/banner/ +!ÿï08@Rbanner.1und1.com^ + ÿï08@Rbanner.1und1.de^ +%ÿï08@Rbanner.hosteurope.de^ +#ÿï08@Rbanner.immowelt.de^ +"ÿï08@Rbanner.upjers.com^ +0ÿï08@R bastardsofhell.de/images/banner/ +!ÿï08@Rbaygel.de/banner/ +&ÿï08@Rbeate-uhse.com/banner/ +)ÿï08@Rbelboon.de/tracking/*.img ++ÿï08@Rbelmediaverlag.com/gott-ch/ +.ÿï08@Rbergfreunde-partner.de/banner/ +7ÿï08@R'bergzeit.de/out/pictures/partner/image/ +W€* + business24.ch* + reiseziele.ch* + polizei.news* + events24.ch08@Rbit.ly^ +6€08@R'blog-linktausch.de^*/iframe.php?layout= +'ÿï* +n-tv.de08@R blubroid.de^ +ÿï08@Rbm.hbtronix.de^ +ÿï08@Rbn.gewinn24.de^ +/ÿï08@Rbodyguardapotheke.com^*/banner/ +'ÿï08@Rboerse.bz/toplist/vote/ +$ÿï08@Rboerse.bz^*/banners/ +T€* +travelguide-en.org* +unser-seenland.de* + +italien.de08@R booking.com^ +6ÿï08@R&brandenburger-salzgrotte.de/webbanner/ +'ÿï08@Rbumskontakte.ch/banner/ ++ÿï08@Rcdn.daydeal.ch/xml/daydeal/ +.ÿï08@Rcdn.plus500.com/media/banners/ +3ÿï08@R#cect-shop.com/CMBannerCECT-SHOP.gif +ÿï08@Rced.sascdn.com^ + €08@Rchina-gadgets.de^ +)ÿï08@Rcom-porn-free.com/banner/ ++ÿï08@Rcommunicationads.net/tb.php +6ÿï08@R&crawler.pearl.de/pearl-crawler/banner? +'ÿï08@Rcript.to/plopscript.phpØ +(ÿï08@Rcript.to/polopscript.php +)ÿï08@Rdatingpartner.com/medien/ +'ÿï08@Rdealdog.net/dealdog.php + ÿï08@Rdealdoktor.de/m/ +#ÿï08@Rdealdoktor.de/misc/ +(ÿï08@Rdeinfickdate.com/banner/ +'ÿï08@Rdeinsexdate.com/banner/ +&ÿï08@Rdeliver.helpnation.de^ +3ÿï08@R#dentaltrade-zahnersatz.de^*/banner/ +/ÿï08@Rdeutschland-spielt.de/partners/ +&ÿï08@Rdie-staemme.de/banner/ +(ÿï08@Rdragonbox.de/img/banner/ +,ÿï08@Rdruckiad-che.newsmemory.com^ +'ÿï08@Rduregexpress.de/banner/ +3ÿï08@R#easy-reisen.ch/easyreisenadds.aspx? +%ÿï08@Reasyfind24.de/banner/ +'ÿï08@Rebiz-consult.de/banner/ +*ÿï08@Rebiz-webhosting.de/banner/ +%ÿï08@Redgar.de/img/partner/ +ÿï08@R eis.de/index. +*ÿï08@Reis.de/shop/images/banner/ +=ÿï08@R-erotik-dates.net/bilder/erotidates-banner.gif + €08@Rerotik1.de^*.php? +(ÿï08@Rescortkartei.com/banner/ +5ÿï* + facebook.com08@Reteleon.de/partner/ ++ÿï08@Reteleon.de/partnerprogramm/ +*ÿï08@Rexclusive-books.de/banner/ +#ÿï08@Rfaire.software/img/ +0ÿï08@R fairvital.com/images/skyscraper_ +'ÿï08@Rfairvital.com^*/banner_ + ÿï08@Rfantecio.com/ib/ +$ÿï08@Rfastad.beepworld.de^ +)ÿï08@Rfiles.kartenlegen.gratis^ +5€* + finanzen.at08@Rfinanzen.net/partner/ +(ÿï08@Rfireradio.fm/img/banner/ +#€08@Rflirty.com/?pr=*&wm= ++ÿï08@Rfs-location.de/img/partner/ +€08@R fuckshow.org^ +-ÿï08@Rfunke.code.outtra.com/outtra- +(ÿï08@Rgameliebe.com/affiliate/ +0ÿï08@R gamesports.net/website_partners/ +8ÿï08@R(gay-thailand.de^*/gay-thailand468x60.gif +%ÿï08@Rgetdigital.de/banner/ +2ÿï08@R"globetrotter.de/de/service/banner/ +*ÿï08@Rgoldsilbershop.de/widgets/ +ÿï08@R gpaf.net/b/ +0ÿï08@R gratisland.de/rsbanner234x60.gif +%ÿï08@Rhallimash.com/werber/ +€08@Rhamster.cc^*.php +2ÿï08@R"happyweekend-community.com/banner/ +lÿï* +hamburg-magazin.de* +luebeck-magazin.de* +kiel-magazin.de08@Rheise.de/assets/pvg/widget.js ++ÿï08@Rheutenochficken.com/banner/ +*€* + +sgf1903.de08@R hofmann.info^ +"ÿï08@Rhubu.cloud/app/amz +%ÿï08@Rhubu.cloud/app/js/b2/ +%ÿï08@Rhubu.cloud/app/js/b3/ +%ÿï08@Rhubu.cloud/app/js/md/ +&ÿï08@Rhubu.cloud/app/js/med/ +(ÿï08@Rhubu.cloud/app/js/media/ +&ÿï08@Rhubu.cloud/app/js/pux/ +&ÿï08@Rhubu.cloud/app/js/xux/ + ÿï08@Rhubu.cloud/vast/ +'ÿï08@Rhurenkartei.com/teaser- +!ÿï08@Rhyp-tech.com/img/— +)ÿï08@Ricq-love.de/show_icqt.php +(ÿï08@Ricq-styler.de/promo.html +2ÿï08@R"idealo.de/extern/IdealoWidget.php? ++ÿï08@Ridealo.net/js/idealoWidget- +"ÿï08@Ridealo.net/widget/ +-ÿï08@Rimaxcdn.com/promotool/banner/ +Cÿï* + myboerse.bz08@R$imgload.org/images/jpbannerfb8d0.jpg +2ÿï* + mmnews.de08@Rimgur.com/0OkYj6J.png +2ÿï* + mmnews.de08@Rimgur.com/flJZ3gf.gif +*ÿï08@Rinternetoptiker.de/banner/ + ÿï08@Rinv.lapippa.com^ +/ÿï08@Riphpbb3.com/banner4_iframe.html +'ÿï08@Rjoyclub.de/partner/aff/ +)ÿï08@Rjs.stroeermediabrands.de^ +5ÿï08@R%kai-homilius-verlag.de/bilder/banner/ +#ÿï08@Rkein-dsl.de/banner/ +0ÿï08@R kfz-gutachter-service.de/kfz.jpg +>ÿï08@R.klasse2000.de/fileadmin/user_upload/webbanner/ +ÿï08@Rkoketti.com/ib/ +,ÿï08@Rkonsi-shop.de/images/banner/ +.ÿï08@Rkontakt-vermittler.de/banner2/ ++ÿï08@Rkontaktanzeigenmarkt.de/br/ +)ÿï08@Rkopp-verlag.de^*/banners/ +&ÿï08@Rladbrokes.hs-edge.net^ +$ÿï08@Rlaptops-fair.de/img/ +!ÿï08@Rlcmmedia.de/kamp/ +(ÿï08@Rlead-alliance.net/tb.php +(ÿï* +chip.de08@R lebt-noch.de^ +%€08@Rlieferando.de/widgets/ +&ÿï08@Rlogiprint.com/partner/ +&€08@Rlotto-hh.de/lh/widget1/ +#€08@Rlotto24.de/?partner= +,ÿï08@Rlustgate.org/images/cbanner/ +3ÿï08@R#marketing.net.beate-uhse-movie.com^ +ÿï08@Rmedia*.s24.com^ +$ÿï08@Rmedia.alphaload.com^ +%ÿï08@Rmedipreis.de/partner/ +(ÿï08@Rmiddleware.marktjagd.de^ +%ÿï08@Rmodellplan.de/banner/ +Hÿï08@R8modules.wikifolio.com/v2/de/autocontent/stock/*?partner= +"ÿï08@Rmondrian.twyn.com^ +'ÿï08@Rmonsterdealz.de/images/ +)ÿï08@Rmonsterdealz.de/script.js +'ÿï08@Rmonstersgame.net^*&vid= +*ÿï08@Rmontessori-shop.de/banner/ +$ÿï08@Rmothor.de/webbanner/ +!ÿï08@Rmusica.at/banner/ +&ÿï08@Rmydirtyhobby.de/track/ +$08@Rnestoria.de^*?partner= +€08@R netatwork.de^ +!ÿï08@Rnetzis.de/Banner/ +#ÿï08@Rnewsticker.save.tv^ +%ÿï08@Rnexworld.tv^*/banner/ +5ÿï08@R%oddsserve-wqps7yvkz.stackpathdns.com^ +€08@Roecherdeal.de^ +)ÿï08@Rokm-community.com/banner/ +ÿï08@Rom.1und1.info^ + ÿï08@Rom.dsl.1und1.de^ + €08@Ronline-casino.de^ +)ÿï08@Rpartner.fondsdiscount.de^ +(ÿï08@Rpartner.gewinnspiele.de^ +$ÿï08@Rpartner.leguide.com^ +"ÿï08@Rpartner.maxxim.de^ +%ÿï08@Rpartner.simplytel.de^• +#ÿï08@Rpartner.zooplus.de^ +1ÿï08@R!partnerprogramm.e-wie-einfach.de^ +z* +spiele.stern.de* +games.focus.de* +spiele.bild.de08@R5partners2.das-onlinespiel.de/client.js?pid=*&_=2.12.3 +kÿï* +spiele.bild.de08@RIpartners2.das-onlinespiel.de/client.js?pid=pg_bildnew_kwr&zone=crosswords +(ÿï08@Rpartyschnaps.com/banner/ +#ÿï08@Rpccdn.com^*/banner/ +(ÿï08@Rpearl.de/adwpmulti.jsps? +&ÿï08@Rpearl.de^*/microsites/ +-ÿï08@Rphonepublisher.com/banner.do? +!ÿï08@Rpillendienst.com^ +#ÿï08@Rpm.bumskontakt.com^ +$ÿï08@Rpm.deinfickdate.com^ +#ÿï08@Rpm.deinsexdate.com^ +*ÿï08@Rpm.fetischsexkontakte.com^ +'ÿï08@Rpm.heutenochficken.com^ +*ÿï08@Rpm.hobbyhurenkontakte.com^ +,ÿï08@Rpm.hobbynuttendatenbank.com^ +)ÿï08@Rpm.kontakt-vermittler.de^ +'ÿï08@Rpm.natursektdating.com^ +)ÿï08@Rpm.onlineseitensprung.de^ +'ÿï08@Rpm.schwangerdating.com^ + ÿï08@Rpm.sexkiste.com^ +*ÿï08@Rpm.sexkontaktflatrate.com^ +$ÿï08@Rpm.sofortficken.com^ +(ÿï08@Rpm.swingerdatenbank.com^ +$ÿï08@Rpm.tittendating.com^ +ÿï08@Rpornme.pm/wrb/ +'ÿï08@Rportale.news^*/banners/ +'ÿï08@Rprimusportal.de/banner/ +3ÿï08@R#privatamateure.com/?wmid=*&program= +&ÿï08@Rprofiseller.de/banner/ +/ÿï08@Rpromotionmaterial.betacash.com^ +6€08@R'prospekt38.de^*/widget.php?anbieter_id= +%ÿï08@Rpublisher.outtra.com^ +'ÿï08@Rquestler.de/gfx/banner/ + ÿï08@Rqvid2.b-cdn.net^ +&€08@Rrabattcorner.ch/iframe/ +(ÿï08@Rranksider.de/img/banner/ +(ÿï08@Rrastplatzsex.com/banner/ +(ÿï08@Rrecht-aktuell.de/js.ads? +ÿï08@Rref.cdnplus.de^ + ÿï08@Rrev.lapippa.com^ +#ÿï08@Rrhein.rfw-koeln.de^ +7ÿï* + marktindex.ch08@Rrocketcdn.me^*/Banner_ +'ÿï08@Rroemerforum.com/banner/ +*ÿï08@Rrotlichtkartei.com/banner/ +"ÿï08@Rsatchef.de/banner/ +*ÿï08@Rsatking.de/images/banners/ +!ÿï08@Rscout69.com/?wms= +&ÿï08@Rsecure-host.de/banner/ +(ÿï08@Rsecure-host.de^*/banner/ +,ÿï08@Rseitensprungarea.com/medien/ +,ÿï08@Rsexkontaktportal.com/banner/ + ÿï08@Rshuuz.de/banner/ +)ÿï08@Rsilbertresor.de^*/banner/ +#ÿï08@Rsims-3.net/xbox.jpg +4ÿï08@R$sn-multimedia.de/weitereangebote-v2/ +1ÿï08@R!sn-multimedia.de/weitereangebote/ +.ÿï08@Rsonnige-aussichten.ch/_img/ad/ +&ÿï08@Rsorgenlos.de^*/banner/ +-ÿï08@Rspace4free.net/images/banner/ +(ÿï08@Rspotlight.offerista.com^ +4ÿï08@R$sprachenlernen24-download.de/banner/ ++ÿï08@Rstart.amateurcommunity.com^º +.ÿï08@Rstart.sexpartnercommunity.com^ +(ÿï08@Rstarting6.de/dyn_banner/ +0ÿï08@R storage.googleapis.com/ba_utils/ +Aÿï08@R1suchebiete.com/bilder/allgemein_kleinanzeigen.png +*ÿï08@Rsuedtirol.live/delivery.js +)ÿï08@Rsunpepper.de/shop/banner/ +#ÿï08@Rtdn.da-services.ch^ +-ÿï08@Rtelefon-sex-luder.com/banner/ +Iÿï* + biallo.de08@R,telsso.de/dnwe//gallery/*-800x250-billboard- +2ÿï* + dtb-tennis.de08@Rtennis.de/dtbdst/ +(ÿï08@Rtipp-box.de/zufall/bann_ +&ÿï08@Rtnt-game.com^*/banner/ +)ÿï08@Rtrafico.prensaiberica.es^ +3ÿï08@R#trainersuchportal.de/partnerwidget/ +&ÿï08@Rtreff-mich.org/bilder/ +508@R'trivago.de/de/srv/destination/js/hotel_ +2ÿï08@R"twincdn.com/special/back_script.js +5ÿï08@R%twincdn.com/special/special_script.js +&ÿï08@Rupjers.com/ext/ext.php ++ÿï08@Rvenus-community.com/banner/ ++ÿï08@Rverleihshop.de/gfx/partner/ +,ÿï08@Rversandtarif.de^*?partnerid= +$ÿï08@Rview.autoscout24.de^ + ÿï08@Rvisit-x.net/001/ +,ÿï08@Rviversum.de/partnerprogramm/ +"ÿï08@Rwazazu.com/iframe/ +!ÿï08@Rwazazu.com/js/pu_ +&ÿï08@Rwazazu.com/pimage/bas/ +&ÿï08@Rwazazu.com/pimage/sdc/ +*ÿï08@Rwazazu.com/pimage/visit-x/ +!ÿï08@Rweb-ads.10sq.net^ +(ÿï08@Rweekli.de/widget-loader? +)ÿï08@Rweekli.pub/widget-loader? ++ÿï08@Rweekli.systems/www/widgets/ ++ÿï08@Rwerbemittel.adisfaction.de^ +3ÿï08@R#wgfreiheit.de/fileadmin/web_banner/ +$ÿï08@Rwidget.marktjagd.de^ +$ÿï08@Rwidget.medianord.de^ +ÿï08@Rwidget.s24.com^ +(ÿï08@Rwidgets.cam-content.com^ +%ÿï08@Rwien-girls.at/img/ba/ +$ÿï08@Rwm-space.youero.com^ + ÿï08@Rwpseo.de/banner/ +"ÿï08@Rwpseo.de^*/banner/ +Dÿï08@R4xn--immobilienmakler-mnchen-starnberg-8pd.de/banner/ +&ÿï* + raidrush.ws08@Rxup.to^ +ÿï08@Rybbo.de/banner/ +'ÿï08@Ryogsototh.bytecamp.net^ +:ÿï* +magentamusik.de08@Ryospace.com/csm/access/ +?ÿï* +nachrichten.fr08@Ryoutube.com/embed/YTW9icnws8I +*ÿï08@Rzweitfondsmarkt.de/banner/ ++¨* +canna-power.to* + +canna.to08@ +fÿï* + boerse.ai* + boerse.am* + boerse.im* + boerse.kz* + boerse.sx* + boerse.tw08@R/as1.php +dÿï* + boerse.ai* + boerse.am* + boerse.im* + boerse.kz* + boerse.sx* + boerse.tw08@R/b.php +7ÿï* + +ww3.cad.de* + +ww4.cad.de08@R ^what=zone^ +%€* + bonimail.de08@Rhttp:// +.ÿï08@R112-magazin.de/images/banners/ +6ÿï08@R&14-tage-wettervorhersage.de^*/anzeige_ ++ÿï* + +ww3.cad.de08@R 149.13.77.20^ +ÿï08@R 1t2.alpin.de^ +ÿï08@R1t2.kicker.de^ + 08@R1und1.de/movein_ +,ÿï08@R3drei3.de/3tres3_common/pub/ +Kÿï08@R;3druck.com/wp-content/uploads/*/3Dmensionals-3druckcom3.jpgî +8ÿï08@R(3druck.com/wp-content/uploads/*/adin.jpg +<ÿï08@R,3druck.com/wp-content/uploads/*/craftbot.jpg +Bÿï08@R23druck.com/wp-content/uploads/*/da-vinci-color.jpg +Aÿï08@R13druck.com/wp-content/uploads/*/doku-dez-2020.jpg +Uÿï08@RE3fach.ch/storage/app/uploads/public/*/thumb_18790_1380_0_0_0_auto.jpg +ÿï08@R6chat.org/b1a8/ +!ÿï08@R6navi.ch/banners/ +"ÿï08@R6profis.de/banner/ +ÿï08@R a.zdg.de^ +7ÿï* +zentrum-der-gesundheit.de08@R +a2.zdg.de^ +ÿï08@R +a3.zdg.de^ +Dÿï08@R4a3kultur.de/sites/default/files/styles/anzeigen_250/ +8ÿï08@R(abg-net.de/typo3temp/pics/f3f468fcef.png +4ÿï08@R$abg-net.de/uploads/tx_macinabanners/ +-ÿï08@Rad-hoc-news.de/js/aTraffic.js +!ÿï08@Rad.dl.dewezet.de^ +!ÿï08@Rad.dslr-forum.de^ +ÿï08@R ad.games.ch^ +,ÿï08@Radhocnews.de/static/spreads/ +9ÿï08@R)adhocnews.de/theme/classic/img/billboard- +/ÿï08@Radministrator.de/images/banner/ +1ÿï08@R!aedt.de/uploads/jcw-marketing.jpg +)ÿï08@Raerger.tv/images/03-1.gif +&ÿï08@Raerger.tv/images/a.gif +&ÿï08@Raerger.tv/images/b.gif +&ÿï08@Raerger.tv/images/c.gif +&ÿï08@Raerger.tv/images/d.gif +.ÿï08@Raerger.tv/images/hl-banner.gif +-ÿï08@Raerger.tv/images/pl_i_wer.gif ++ÿï08@Raerger.tv/images/sch_de.gif +,ÿï08@Raerger.tv/images/sozhius.jpg +(ÿï08@Raerger.tv/images/wer.gif +6ÿï08@R&aerzteblatt.de/inc/js/ba_utils/arzt.js +4ÿï08@R$affiliate-marketing.de/media/banner/ +Cÿï08@R3affiliate-marketing.de/media/medienpartnerschaften/ +@ÿï08@R0africa-positive.de/wp-content/uploads/*/werbung_ +Eÿï* +thinkpad-forum.de08@R afterbuy.de/images/*/minibanner_ +*ÿï08@Rag-muensterland.de/Banner_ +?ÿï* + mediabiz.de08@R airtable.com^*/Superbanner728x90 +1ÿï08@R!ak-kurier.de/akkurier/www/images/ +.ÿï08@Rak-kurier.de/akkurier/www/pic/ +1ÿï08@R!ak-kurier.de/akkurier/www/upload/ +-ÿï08@Raktuell-kl.de/images/banners/ +;ÿï08@R+akustik-gitarre.com/uploads/tx_ricrotation/ +Cÿï08@R3algarve-entdecker.com/wp-content/uploads/*/xbanner- +?ÿï08@R/alles-mahlsdorf.de/wp-content/uploads/*-Banner- +@ÿï08@R0alles-mahlsdorf.de/wp-content/uploads/*-werbung- +!08@Rallround-pc.com/com +2ÿï08@R"altesrad.net/phpBB3/images/banner/ +:ÿï* + finanzen.net08@Ramazonaws.com/bnp_657x209_ +3ÿï08@R#amigafuture.de/images/amazon234x60_ +9ÿï08@R)amigafuture.de/images/oben/amigastore.png +5ÿï08@R%analysedeutschland.de/files/cltimage/ ++ÿï08@Rand6.com/images/ixsBanners/ +Oÿï08@R?andalusien-aktuell.es/wp-content/uploads/*/la-casita-blanca.jpg +Mÿï08@R=andalusien-aktuell.es/wp-content/uploads/*/online-hypnose.png +;ÿï08@R+animania.de/wp-content/uploads/*_Wallpaper_ +7ÿï08@R'anime2you.de/fallback_rotation_2022.php +'ÿï08@Ranime2you.de/koop-home/ +"ÿï08@Ranime2you.de/koop/ +$ÿï08@Ranisearch.de/amazon? +,ÿï08@Ranisearch.de/images/partner/ +'ÿï08@Ranti-spiegel.ru/banner/ +?ÿï08@R/apfelpage.de/wp-content/uploads/*/mbp-apple.jpg‚ +$ÿï08@Rapfeltalk.de/banner/ +Aÿï08@R1apfeltalk.de/magazin/wp-content/uploads/*_Banner_ +#ÿï08@Rarbeitstage.at/pub_ +#ÿï08@Rarbeitstage.ch/pub_ +#ÿï08@Rarbeitstage.de/pub_ +2ÿï08@R"architekt.de/grafik/handwerker.de- +5ÿï08@R%areadvd.de/images/*/Nubert-Button.png +6ÿï08@R&areadvd.de/images/*/Teufel_100x150.gif +5ÿï08@R%areadvd.de/images/*/Teufel_300x25.png +%ÿï08@Rareadvd.de/IOTAVX.jpg ++ÿï08@Rarminia.de^*/csm_Sponsoren- +"ÿï08@Ras.chartsurfer.de^ +3ÿï08@R#astronomie.de/uploads/tx_sfbanners/ +*ÿï08@Rastrowetter.com/surftipps/ +&ÿï08@Rastrowetter.com/tipps/ +,ÿï08@Rauto-bild.de/js/rd/google.js ++ÿï08@Rautobild.de/js/rd/google.js +Cÿï08@R3autogazette.de/wp-content/uploads/*/autoteileprofi- +1ÿï08@R!autoscout24.ch/content/startpage/ +%ÿï08@Raz.com.na/img/banner/ +Mÿï* + +bayer04.de08@R/azureedge.net/pickerimages/bayer04-superbanner_ +Fÿï* + +bayer04.de08@R(azureedge.net/pickerimages/Lokalfreunde_ +>ÿï* + merkurist.de08@Razurefd.net/endpoint/shipment/ +<ÿï08@R,b2run.de/run/de/de/components/partner-links/ +0ÿï08@R b2run.de/run/de/de/pics/partner/ +0ÿï08@R back-intern.de/media/banner_img/ +=ÿï08@R-badenerzeitung.at/images/bettfedernfabrik.jpg +9ÿï08@R)badenerzeitung.at/images/Bierbaum_VIP.jpg +Dÿï08@R4balaton-zeitung.info/wp-content/uploads/*-banner.jpg +1ÿï08@R!bankkaufmann.com/bilder/bacol.jpg +1ÿï08@R!bankkaufmann.com/bilder/bkhfb.jpg +/ÿï08@Rbankkaufmann.com/bilder/fkl.jpg +2ÿï08@R"bankkaufmann.com/bilder/fsban1.jpg +#ÿï08@Rbanner.click-tt.de^ +Nÿï08@R>basic-tutorials.de/wp-content/uploads/793/165/assets/js/152.js +?ÿï08@R/basicthinking.de/blog/wp-content/*/placetel.jpg +Mÿï08@R=basicthinking.de/blog/wp-content/uploads/*/basic-thinking.gif +Dÿï08@R4basicthinking.de/blog/wp-content/uploads/*/mittwald- +Gÿï08@R7basicthinking.de/blog/wp-content/uploads/*/mittwald.jpg +Aÿï08@R1basicthinking.de/blog/wp-content/uploads/*/qonto- +Aÿï08@R1baskets-jena.de/fileadmin/*/csm_sparkassen_arena_ +Jÿï08@R:baskets-jena.de/fileadmin/*/Koestritzer_Schriftmarke_Logo_ +<ÿï08@R,baskets-jena.de/fileadmin/*/logo_adignos.jpg +-ÿï08@Rbasses-blatt.de/files/banner/ +2ÿï08@R"bassprofessor.info/images/banners/ +&ÿï08@Rbastel-elfe.de/banner/ +2ÿï08@R"bayernwelle.de/cdn/uploads/banner- +5ÿï08@R%bayernwelle.de/cdn/uploads/jobboerse- +Qÿï08@RAbbc-magazin.com/wp-content/uploads/*/bbc-coburg-barmer-banner.jpg +Oÿï08@R?bbc-magazin.com/wp-content/uploads/*/bbc-coburg-brose-web24.png +$ÿï08@Rbbszene.de^*/banner/ +6ÿï08@R&beamten-informationen.de/media/banner/ +5ÿï08@R%beamten-informationen.de/media/img/b_ +Aÿï08@R1beamten-informationen.de/media/img/partnerschaft_ +'ÿï08@Rbeeg-pornos.com/cpanel/ +.ÿï08@Rbeeg-pornos.com/img/linklist2/ +.ÿï08@Rbeihilferecht.de/media/banner/ +-ÿï08@Rbeihilferecht.de/media/img/b_ +3ÿï08@R#beihilferecht.de/media/img/partner_ +9ÿï08@R)beihilferecht.de/media/img/partnerschaft_ +Pÿï08@R@belgieninfo.net/wp-content/uploads/*/frisch-frittiert-grupp4.png +Kÿï08@R;belgieninfo.net/wp-content/uploads/*/IDSB-Unser-Partner.jpg +Bÿï08@R2belgieninfo.net/wp-content/uploads/*/Verhellen.jpg +.ÿï08@Rbeobachter-online.de^*/banner/Ì +.ÿï08@Rberglouter.com/images/banners/ +7ÿï08@R'berlinertageszeitung.de/images/banners/ +3ÿï08@R#bhc06.de/getattachment/*/becker.jpg +2ÿï08@R"bhc06.de/getattachment/*/forst.jpg +@ÿï08@R0bhc06.de/getattachment/*/sparkasse_remscheid.jpg +?ÿï08@R/bhc06.de/getattachment/*/sparkasse_solingen.jpg +;ÿï08@R+bhc06.de/getattachment/*/Wilkinson-Logo.jpg +(ÿï08@Rbiete6.ch/images/banner/ +7ÿï08@R'bildschirmarbeiter.com/content/upload2/ +'ÿï08@Rbitch.ch/images/Banner/ +Aÿï08@R1bitcoinnews.ch/bitcoin_mit_kreditkarte_kaufen.jpg +2ÿï08@R"bitcoinnews.ch/bitwala-bitcoin.jpg ++ÿï08@Rbitcoinnews.ch/coinbase.png +.ÿï08@Rbitcoinnews.ch/Fairspin_Ad.jpg +Qÿï08@RAbitcoinnews.ch/wp-content/uploads/*-300x250px-MediumRectangle.jpg +=ÿï08@R-bitcoinnews.ch/wp-content/uploads/*/1xbit.jpg +:ÿï08@R*bitsundso.de/wp-content/uploads/*/ctdi.jpg +1ÿï08@R!black-dragons-erfurt.de^*/Banner/ +:ÿï08@R*blackwings.at/fileadmin/content/sponsoren/ +Lÿï* + +fubas.it08@R0blob.core.windows.net/images/forst_topscorer.jpg +Rÿï* + +fubas.it08@R6blob.core.windows.net/images/volksbank_new_anzeige.jpg +Iÿï08@R9blockbuster.to/img/8a844213f1ae29efaf836ffe63805fe618.jpg +Dÿï08@R4blog-der-republik.de/wp-content/uploads/*/square.png +Xÿï08@RHblog-der-republik.de/wp-content/uploads/*/trinkwasser_umfrage_square.jpg +$ÿï08@Rblog4you.biz/banner/ +Iÿï08@R9blog4you.biz/wp-content/plugins/rnotify1.5.4_fullversion/ +7ÿï08@R'blogprojekt.de/Bilder/affiliate-banner/ +,ÿï08@Rblogprojekt.de/Bilder/Profi/ +Bÿï* +fussball-livestream.info08@Rblogspot.com^*/bet.gif +1ÿï08@R!bluray-disc.de/images/background/ +-ÿï08@Rbluray-disc.de/images/banner/ +:ÿï08@R*boerse-online.de/images/Postbank-75x25.png +8ÿï08@R(boerse-social.com/media/Content/Partner/ +.ÿï08@Rboerse.cx/img/panda_german.gif +2ÿï08@R"boersennews.de/images/smartbroker/ +/ÿï08@Rbolzano-bozen.it/images/banner/ +-ÿï08@Rbolzano-bozen.it/images/logo/ +Dÿï08@R4borncity.com/blog/wp-content/uploads/*/Amazon03b.jpg +Aÿï08@R1borncity.com/blog/wp-content/uploads/*/Book04.jpg +Bÿï08@R2borncity.com/blog/wp-content/uploads/*/HostEurope_ +Eÿï08@R5borncity.com/blog/wp-content/uploads/*/W10Tricks1.jpg +'ÿï08@Rborussia.de^*/sponsors/ +Aÿï08@R1box-magazin.com/wp-content/uploads/*/image001.gif +Eÿï08@R5browsergames.de/sites/browsergames/files/*_wallpaper_ +Wÿï08@RGbuecher-magazin.de/sites/all/themes/hoerbuecher/images/vidan_banner.jpg +*ÿï08@Rbuffed.de/tsimg/topbanner/ +Dÿï08@R4bulldogs.hockey/fileadmin/web/img/premiumpartner.png +-ÿï08@Rbvb.de^*/bvb-championpartner/ +&ÿï08@Rcasinowelt.com/banner/ +2ÿï08@R"casinowelt.com/images/dunder-1.jpg +0ÿï08@R casinowelt.com/images/spinit.jpg +)ÿï08@Rcathkathcatt.ch^*/banner- +)ÿï08@Rcathkathcatt.ch^*/banner_ +,ÿï08@Rchartsurfer.de/getthead.php? +(ÿï08@Rcherry.ch/images/banner/ +Pÿï* +chip.de08@R5chip-secured-download.de/tmp/free-service-hotline.png +:ÿï* +chip.de08@Rchip-secured-download.de^*/S13/ ++ÿï08@Rcine4home.de^*/HKA-C4Hb.gif +Eÿï08@R5clap-club.de/wp-content/uploads/oeckl_Adress-Service_ +.ÿï08@Rclassicwin.de/mybannerview.php +-ÿï08@Rclimbing.de/fileadmin/banner/ +1ÿï* +hd-streams.org08@Rcloudfront.net^ +ÿï08@Rcode.alpin.de^ +%ÿï08@Rcode.bergsteigen.com^Ñ +/ÿï08@Rcodecheck.info/i/CTA-banner.png +Aÿï08@R1coincierge.de/wp-content/plugins/floating-banner/ +>ÿï08@R.com-magazin.de/img/*/Commerce-Week_450x94.jpeg +)ÿï08@Rcomputerbase.de/creative/ +*ÿï08@Rcomputerbase.de/creatives/ ++ÿï08@Rcomputerbase.de/creatives2/ +7ÿï08@R'computerschach.de^*/shredder_130x80.gif +Bÿï08@R2condor.cl/wp-content/uploads/*/aviso_condor-07.png +9ÿï08@R)condor.cl/wp-content/uploads/*/BANNERWEB_ +:ÿï08@R*condor.cl/wp-content/uploads/*/cecinas.jpg +'ÿï08@Rconnect.de^*/partner.js +1ÿï08@R!costa-info.de/images/banner_home/ +3ÿï08@R#countrymusicnews.de/images/banners/ +&ÿï* + ibooks.to08@R cript.to^ +5ÿï08@R%crosswater-job-guide.com/pics/banner_ +'ÿï08@Rcurt.de^*/gastrobanner/ +(ÿï08@Rcurt.de^*/petabanner.jpg +Bÿï08@R2daily-pia.de/wp-content/uploads/*/manitu_hostedby- +6ÿï08@R&dasbewegtdiewelt.de/wp-content/banner/ +*ÿï08@Rdasoertliche.de/js/rmif.js +Hÿï* + gesundheit.de08@R'dcmservice.de/_lib/toastr/toastr.min.js +0ÿï08@R deinesexfilme.com/img/linklist2/ +8ÿï08@R(deister-echo.de/wp-content/uploads/*/ad_ +6ÿï08@R&delamar.de/wp-content/uploads/*/wallp_ +Pÿï08@R@delamar.de/wp-content/uploads/__aktionen/plakat/plakat_billb.jpg +%ÿï08@Rder-farang.com^*/ane/ +1ÿï08@R!der-theaterverlag.de/banners.html +0ÿï08@R derkleinegarten.de/images/kiste/ +:ÿï08@R*dervinschger.it/grafik/resize/*-publicity- +>ÿï08@R.designtagebuch.de/wp-content/uploads/anzeigen/ +Aÿï08@R1deutsche-sexfilme.net/js/843545225611621960181.js +Gÿï08@R7deutsche-versicherungsboerse.de/index/load-image/imgId/ +2ÿï08@R"deutschepornos.co^*/93kgk95aw2q.js +-ÿï08@Rdeutschland.fm^*/leaseweb.gif +)ÿï08@Rdfb.de/img/partner-logos/ +:ÿï08@R*dfb.de/uploads/*/original_exasol_index.png +-ÿï08@Rdfb.de/uploads/*_Partnerlogo_ +"ÿï08@Rdforum.net/banner/ + ÿï08@Rdforum.net/ebay/ +#ÿï08@Rdhb.de^*/Sponsoren/ +-ÿï08@Rdie-beihilfe.de/media/banner/ +1ÿï08@R!die-beihilfe.de/media/img/Banner_ +2ÿï08@R"die-konjugation.de/img/mosalingua/ +6ÿï08@R&dieantenne.it^*/csm_logo_young_direct_ +*ÿï08@Rdieantenne.it^*/Viropa.png +4ÿï08@R$diebrennstoffzelle.de/images/banner/ +?€08@R0digitaledienste.web.de/freemail/browser_decide/? +:ÿï08@R*digitalfernsehen.de/wp-content/*/aqipa.jpg +7ÿï08@R'digitalfernsehen.de/wp-content/ca/NPAW- +>ÿï08@R.digitalfernsehen.de/wp-content/uploads/*/NPAW- +1ÿï08@R!dkamera.de/media/article_banners/ +7ÿï08@R'dlvr.t-online.de/static/lisa/placement/ +3ÿï08@R#dnv-online.net/_data/*_Superbanner_ +8ÿï08@R(dnv-online.net/_data/Fullsize-Banner.gif +.ÿï08@Rdocma.info/wp-content/banners/ +?ÿï08@R/drachenbootfestival-hannover.de/grafik/partner/ +;ÿï08@R+dragonball-tube.com/templates/caprica/amzb/ +%ÿï08@Rdreambox.info/banner/ +4ÿï08@R$drehscheibe-online.de/ds_cms/banner/ +:ÿï08@R*druckerchannel.de/script/dc/ofr_single.php +%ÿï08@Rdslr-forum.de/banner. +'ÿï08@Rdtb-tennis.de^*/banner- +(ÿï08@Rdtb-tennis.de^*/partner- +>ÿï08@R.dtb.de/fileadmin/user_upload/dtb.de/Sponsoren/ó +?ÿï08@R/dubisthalle.de/wp-content/uploads/*/loezius.png +<ÿï08@R,dubisthalle.de/wp-content/uploads/*_300x300_ +;ÿï08@R+dubisthalle.de/wp-content/uploads/*_banner_ +5ÿï08@R%dynamo-dresden.de/uploads/*/sponsors- +7ÿï08@R'e110.de/wp-content/uploads/*_Webbanner_ +)ÿï08@Recards4u.de/banner_rt.php +-ÿï08@Recrbs.redbulls.com^*/partner_ +0ÿï08@R egofm.de/content/images/egoFMad/ +-ÿï08@Regun.de/market/images/banner/ +:ÿï08@R*ehc-lustenau.at/EHC/images/sponsorenlogos/ +<ÿï08@R,eifelzeitung.de/wp-content/uploads/*/banner_ +<ÿï08@R,eifelzeitung.de/wp-content/uploads/*_banner_ +6ÿï08@R&eihi.de/wp-content/uploads/*/erima.jpg +8ÿï08@R(einbecker-morgenpost.de/files/em/banner/ +)ÿï08@Reinfachtitten.com/cpanel/ +0ÿï08@R einfachtitten.com/img/linklist2/ +0ÿï08@R einrichtungsbeispiele.de/revive/ +5ÿï08@R%eintracht-basketball.com^*/Sponsoren/ +2ÿï08@R"eintracht.com/fileadmin/Sponsoren/ +5ÿï08@R%eisbaeren.de/assets/img/sponsorenbox_ +3ÿï08@R#eisenbahn-kurier.de/images/banners/ +4ÿï08@R$eishockey-online.com/images/banners/ +$ÿï08@Reltee.de/img/broker/ +.ÿï08@Relternforen.com/images/banner_ +=ÿï08@R-elternforen.com/images/elternforen_banner.png +:ÿï08@R*elternforen.com/images/kinderwagen-banner- +@ÿï08@R0emtb-news.de/news/wp-content/uploads/*-takeover- +7ÿï08@R'endstation-rechts.de/fileadmin/banners/ +Gÿï08@R7englische-briefe.de/images/email-english-flashbooks.jpg +<ÿï08@R,englische-briefe.de/images/gummibaerchen-at- +=ÿï08@R-entwickler.de/wp-content/uploads/*_Webbanner_ +%ÿï08@Rep1.de/images/banner/ +%ÿï08@Rerogeschichten.com/b/ +*ÿï08@Rerogeschichten.com/mdhpic/ +%ÿï08@Rerosclubs.ch/banners/ +%ÿï08@Rerosgirls.ch/banners/ +*ÿï08@Rerosjobs.ch/images/banner/ ++ÿï08@Rerotikforum.at/data/siropu/ +)ÿï08@Rerotikinserate.ch/banner/ +.ÿï08@Resports.ch^*/animated-banners/ +)ÿï08@Retcg.de/images/sponsoren/ + ÿï08@Retcg.de/sponsor/ +/ÿï08@Revz.ch/fileadmin/EVZ/Sponsoren/ +/ÿï08@Rexplora.ch/uploadfiles/partner/ +6ÿï08@R&f95.de/media/res/_rel/logos/sponsoren/ +Hÿï08@R8fachzeitungen.de/zeitschrift-pr/finanzvergleich-logo.png +Eÿï08@R5fachzeitungen.de/zeitschrift-pr/Praxisdrucksachen.jpg +=ÿï08@R-fachzeitungen.de/zeitschrift-pr/riesenrat.gif +2ÿï08@R"fahrzeugseiten.de/autoteiledirekt_ +7ÿï08@R'fahrzeugseiten.de/Ersatzteilekauf24.jpg +Aÿï08@R1fahrzeugseiten.de/reifen-com-gutscheine-stern.jpg +!ÿï08@Rfairaudio.de/rev/ +!ÿï08@Rfairaudio.de/rev_ +)ÿï08@Rfairytail-tube.org^*/amz/ ++ÿï08@Rfairytail-tube.org^*/amzb2/ +ÿï08@Rfaz.net/f6/ad/ +Cÿï08@R3fc-carlzeiss-jena.de/fileadmin/fcc-daten/*-partner- +@ÿï08@R0fc-carlzeiss-jena.de/fileadmin/images/sponsoren/ +1ÿï08@R!fc-magdeburg.de/images/sponsoren/ +)ÿï08@Rfcbayern.com^*/sponsoren/ +3ÿï08@R#fcenergie.de/files/logos/sponsoren/ +!ÿï08@Rfck.de^*/partner_ +0ÿï08@R fcz.ch/media/images/*/994x250px- +"ÿï08@Rfeierabend.de/gta/  +#ÿï08@Rff-bz.com^*/banner- +)ÿï08@Rfhcdn.net^*/ebay_logo.gif +$ 08@Rfickverein.com/moproxy +'ÿï08@Rfilmpost.de^*/anzeigen/ +.ÿï08@Rfilmstreaming-de.life/banners/ +#ÿï08@Rfilmundo.de/banner/ +!ÿï08@Rfilmz.de/f/ra.htm + ÿï08@Rfilmz.de/f/s.htm +!ÿï08@Rfilmz.de/f/sa.htm + ÿï08@Rfilmz.de/f/u.htm + ÿï08@Rfilmzitate.de/w/ +.ÿï08@Rfinanzen.net/images/a_anzeige/ +Uÿï08@REfinanzen.net/images/b_aktien/UBS_Partneraktionen_655x255_statisch.svg +=ÿï08@R-finanzen.net/images/b_devisen/p500-krypto.png +Eÿï08@R5finanzen.net/images/b_euro_eurams/banner_wiki_eas.png +@ÿï08@R0finanzen.net/images/b_home/bitpanda-integration- +?ÿï08@R/finanzen.net/images/b_home/invesco-integration. +?ÿï08@R/finanzen.net/images/b_home/philoro-integration- +@ÿï08@R0finanzen.net/images/b_home/vontobel-integration. +.ÿï08@Rfinanzen.net/images/b_partner/ +>ÿï08@R.finanzen.net/images/b_realtime/hsbctopflop.png +Fÿï08@R6finanzen.net/images/b_realtime/ubspassendeprodukte.png +Bÿï08@R2finanzen.net/images/b_realtime/vontobel-banner.jpg +@ÿï08@R0finanzen.net/images/b_realtime/vontobel-banner2. +*ÿï08@Rfinanznachrichten.de/w/ad_ +)ÿï08@Rfinanztreff.de^*/partner/ +)ÿï08@Rfinews.ch/images/banners/ +6ÿï08@R&fischkopf.de/image-content/wallpapers/ +mÿï08@R]flightforum.ch/board/uploads/*/14634212_HOR_19-156_Online_Banner_ILSFlightforum_175x75_P1.png +Gÿï08@R7flightforum.ch/board/uploads/*/logo-safedroneflying.png +;ÿï08@R+flightforum.ch/board/uploads/*/schaenis.png +;ÿï08@R+flightforum.ch/board/uploads/*/skyguide.jpg +9ÿï08@R)flightforum.ch/board/uploads/*/sphair.jpg +<ÿï08@R,flz.de/fileadmin/user_upload/anzeigenbanner/ +,ÿï08@Rfoerde.news/assets/images/a/ +7ÿï08@R'foerde.news/files/news-bilder/anzeigen/ +*ÿï08@Rfootball-aktuell.de/links/ ++ÿï08@Rfootball-aktuell.de/rechts/ +#€08@Rforumprofi.de/fritz/ +(ÿï08@Rfree-gay.org^*/eaCtrl.js +0ÿï08@R freenet.de/amazonService/search/ +$08@Rfreenet.de/www/export/ +&ÿï08@Rfreenet.de^*/mail/ads/ +Kÿï08@R;freiburgesports.de/assets/images/esports/partner_sponsoren/ +-ÿï08@Rfreieporno.com^*/pr-before.js +*ÿï08@Rfreieporno.com^*/ssu.v2.js +=ÿï08@R-freizeitparks.de/fileadmin/user_upload/*_Anz_ +`ÿï08@RPfreizeitparks.de/fileadmin/user_upload/Bildschirmfoto_2020-11-09_um_09.53.39.png +4ÿï08@R$frischauf-gp.de/fileadmin/drehbande/ +?ÿï08@R/frischauf-gp.de/fileadmin/images/banner-extern/ +?ÿï08@R/frischauf-gp.de/fileadmin/images/footer/sponsor +?ÿï08@R/frischauf-gp.de/fileadmin/user_upload/*_Banner_ +;ÿï08@R+fruchthandel.de/uploads/elements/*_140x140_ +6ÿï08@R&fruchthandel.de/uploads/elements/*_ab_ +9ÿï08@R)fruchthandel.de/uploads/elements/468x100_ +(ÿï08@Rfruchtportal.de/banners/ +-ÿï08@Rfsv-frankfurt.de^*/Sponsoren/ +2ÿï08@R"fuechse.berlin^*-skybannerxber.jpg +6ÿï08@R&fuechse.berlin^*/modul-hauptsponsoren/ +0ÿï08@R fundresearch.de^*/partnercenter/ +)ÿï08@Rfunkbasis.de/_static/ban- +,ÿï08@Rfupa.net/static/js/fupa_ads- +Oÿï08@R?fussball-em-2020.com/wp-content/uploads/*/Sidebar_11prozent.jpg +&ÿï08@Rfussball.de^*/partner/Ê +2ÿï08@R"fussball.sv-kehlen.de^*/Sponsoren_ +?ÿï08@R/fussballn.de/images/design/anpfifffussballn.png +@ÿï08@R0fussballn.de/images/design/fussballn/hudson2.png +?ÿï08@R/fussballn.de/Images/Design/sportplatzmedia2.png +Tÿï08@RDfussballnationalmannschaft.net/wp-content/uploads/*/Sidebar_10pr.jpg +)ÿï08@Rgamekeyfinder.de/img/rot/ +,ÿï08@Rgamemovieportal.ch/_partner/ +9ÿï08@R)gameothek.com/wp-content/uploads/buttons/ +0ÿï08@R gamesaktuell.de/tsimg/topbanner/ +,ÿï08@Rgamezone.de/tsimg/topbanner/ +<ÿï08@R,gandersheimer-kreisblatt.de/files/gk/banner/ +Fÿï08@R6gartennatur.com/wp-content/uploads/371x430-319x370.jpg +6ÿï08@R&gawina.de/wp-content/uploads/*-Banner_ +Iÿï* + finanzen.net* + finanzen.at* + finanzen.ch08@R gearwom.de^ +\ÿï08@RLgeile-deutsche-pornos.com/wp-content/plugins/rnotify/assets/public/custom.js +)ÿï08@Rgelbeseiten.de/marktjagd/ +<ÿï08@R,gelbeseiten.de/webgs/js/detailseite_below.js +=ÿï08@R-gelbeseiten.de/webgs/js/trefferliste_below.js +@ÿï08@R0gentleman-blog.de/wp-content/uploads/270x191.jpg +@ÿï08@R0gentleman-blog.de/wp-content/uploads/870x150.jpg +Tÿï08@RDgenussmaenner.de/content/images/0d8bdefa9e44c18e37dee4680dc827ed.jpg +Tÿï08@RDgenussmaenner.de/content/images/7eedb2d7e43bc6dbf1fca69c8be742f3.png +Tÿï08@RDgenussmaenner.de/content/images/b91f786f80573b071b6a72b8836f7ff9.jpg +Tÿï08@RDgenussmaenner.de/content/images/d1cf8de0beeff7e5ca8a3e57a2639e4e.gif +=ÿï08@R-german-porno-deutsch.info/bilder/kommrein.jpg +=ÿï08@R-german-porno-deutsch.info/bilder/whatssex.jpg +0ÿï08@R german-porno-deutsch.info/src11/ +(ÿï08@Rgermancorrector.com/cnc/ +7ÿï08@R'germanscooterforum.de/bannermanagement/ +0ÿï08@R glarus24.ch/uploads/tx_xeiroads/ + ÿï08@Rgn-online.de/ad/ +8ÿï08@R(goastro.de/wp-content/uploads/*/250x250- +.ÿï08@Rgodmode-trader.de/img/partner/ +4ÿï08@R$gofeminin.de/home4/skin/*_*/home.css +Fÿï08@R6goldesel.sx/img/b3f2784f11449ba054835ce14db00d7611.jpg ++ÿï08@Rgoldpreis.de/ajax/revs.php? +=ÿï08@R-golem.de/_img/200923-syseleven-kubernetes.jpg +8ÿï08@R(golfmagazin.de/content/uploads/*/banner_ +*ÿï08@Rgooglewatchblog.de/apt.png +Pÿï08@R@googlewatchblog.de/wp-content/uploads/amazon-music-hd-stream.jpg +'ÿï08@Rgota.ch/images/pbanner/ +(ÿï08@Rgota6.ch/images/partner/ +<ÿï08@R,gota6.ch/images/uploads/*/clubBannerPremium/ +2ÿï08@R"gota6.ch/images/uploads/*/overlay/ +$ 08@Rgraltek.net/php/amzad_ +0ÿï08@R griechenland.net/images/banners/ +"ÿï08@Rgrower.ch/partner/ +Xÿï08@RHgruender.de/wp-content/plugins/elementor/assets/lib/dialog/dialog.min.js +(ÿï08@Rgutesexfilme.com/cpanel/ +7ÿï08@R'gwars.de/index.php?page=advertisingpage +Cÿï08@R3gwd-minden.de/inc/*/Melitta-Banner-Karriere-GWD.jpg +9ÿï08@R)gwd-minden.de/media/*/Harting_257x180.jpg +Eÿï08@R5gwd-minden.de/media/*/sky_1911_banner_257x180_gwd.jpg +:ÿï08@R*gwd-minden.de/media/*/Wohnhaus_Anzeige.jpg +.ÿï08@Rgwd-minden.de/media/sponsoren/ ++ÿï08@Rh-bw.de/fileadmin/*-banner- +$ÿï08@Rh-bw.de^*/sponsoren/ +<ÿï08@R,hallanzeiger.de/wp-content/uploads/*_banner_ +4ÿï08@R$hallelife.de/files/hallelife/banner/ +2ÿï08@R"hamburg-pride.de/fileadmin/banner/ +;ÿï08@R+hammerporno.xxx/js/spx_resposive_rotator.js +:ÿï08@R*hannover96.de^*/sprite-footer-partners.gif +<ÿï08@R,happyweekend-club.com/images/default/banner_ +Eÿï08@R5happyweekend-club.com/images/default/hw_ffgv_chat.gifç +3ÿï08@R#hardware-factory.com/images/01_ban/ ++ÿï08@Rhardware-mag.de/images/ads/ +-ÿï08@Rhardware-mag.de/js/ads.min.js +7ÿï08@R'hardwareluxx.de/images/stories/werbung/ +,ÿï08@Rhartgeld.com/images/banners/ +6ÿï08@R&hausgeraete-test.de/images/trademarks/ +<ÿï08@R,hc-erlangen.de/fileadmin/user_upload/banner/ +/ÿï08@Rhc-neumarkt.com/images/partner/ +ÿï08@Rhcb.net^*/elpo- +#ÿï08@Rhcb.net^*/forst.png + ÿï08@Rhcb.net^*/knoma- +%ÿï08@Rhcb.net^*/messebozen- +$ÿï08@Rhcb.net^*/prohockey- +$ÿï08@Rhcb.net^*/sparkasse- +%ÿï08@Rhcb.net^*/sued-badge_ +!ÿï08@Rhcb.net^*/wuerth- +:ÿï08@R*hceintracht-hildesheim.de/images/sponsors/ +Dÿï08@R4hcempor.de/wp-content/uploads/*/Logoleiste-Sponsoren +;ÿï08@R+hcgherdeina.com/img/db/s/20160422164221.png +/ÿï08@Rhcgherdeina.com/img/db/sponsor/ +;ÿï08@R+hcgherdeina.com/img/layout/squadra_sponsor_ +2ÿï08@R"hcinnsbruck.at/images/Alpquell.png +2ÿï08@R"hcinnsbruck.at/images/bah_logo.png +/ÿï08@Rhcinnsbruck.at/images/Bauer.png +8ÿï08@R(hcinnsbruck.at/images/NewDosenberger.png +.ÿï08@Rhcinnsbruck.at/images/STMS.png +4ÿï08@R$hcinnsbruck.at/images/tiwag_logo.png +1ÿï08@R!hcinnsbruck.at/images/tt_logo.png ++ÿï08@Rhcpustertal.com^*/sponsors/ +'ÿï08@Rhd-sexfilme.com/cpanel/ +.ÿï08@Rhd-sexfilme.com/img/linklist2/ +%ÿï08@Rhdpornos.net/cpanel/? ++ÿï08@Rhdpornos.net/img/linklist2/ +4ÿï08@R$hdsports.org/images/netzathleten.png +Cÿï08@R3hdsports.org/images/stories/Breitensport/kelbet.jpg +:ÿï08@R*healthhelp.ch/wp-content/uploads/*_banner_ +=ÿï08@R-heimspiel-online.de/uploads/tx_macinabanners/ +5ÿï08@R%heimwerker-test.de/images/trademarks/ +ÿï08@R help.ch/ads/ ++ÿï08@Rherzporno.com/img/linklist/ +Eÿï08@R5hg-saarlouis.de/wp-content/uploads/*/allkauf-logo.jpg +<ÿï08@R,hg-saarlouis.de/wp-content/uploads/*/ikk.jpg +>ÿï08@R.hg-saarlouis.de/wp-content/uploads/*/lakal.jpg +>ÿï08@R.hg-saarlouis.de/wp-content/uploads/*/lotto.jpg +?ÿï08@R/hg-saarlouis.de/wp-content/uploads/*/meguin.jpg +?ÿï08@R/hg-saarlouis.de/wp-content/uploads/*/pieper.jpg +#€08@Rhierspielen.com/vda/ +3ÿï08@R#hifi-forum.de/js/hifi-ad-manager.js +:ÿï08@R*hifi-today.de/wp-content/uploads/*/banner- +1ÿï08@R!hifistatement.net/images/banners/ +8ÿï08@R(hifistatement.net/images/content/banner/ +.ÿï08@Rhifitest.de/images/trademarks/ +2ÿï08@R"highway-magazin.de/images/300x125_ +2ÿï08@R"highway-magazin.de/images/banners/ +@ÿï08@R0highway-magazin.de/images/samenwahl_highway2.gif +6ÿï08@R&hintergrundfakten.de/hint_data/wlm.jpg +7ÿï08@R'hintergrundfakten.de/hint_data/wlm2.jpg +<ÿï08@R,hintergrundfakten.de/hint_data/y_chck2_4.jpg +8ÿï08@R(hintergrundfakten.de/hint_data/yt2_4.jpg +.ÿï08@Rhitradio.com.na/images/banner/ +/ÿï08@Rhl-live.de/aktuell/grafiken/vg/ +"ÿï08@Rhl-live.de/banner/ +(ÿï08@Rhoerbuch.us/download.png +:ÿï08@R*hoerzu.de/files/images/hz-amazon-start.png¹ +)ÿï08@Rholidaycheck.*/campaigns/ +$ÿï08@Rholidaycheck.at/ads/ +Hÿï08@R8homepage-anleitung.de/wp-content/uploads/*/gsl_b_sky.jpg +Iÿï08@R9horseweb.de/wp-content/uploads/*/Spuckschutz-Glaskeil.jpg +@ÿï08@R0horseweb.de/wp-content/uploads/*/stx-germany.jpg +)ÿï08@Rhottime.ch/images/Banner/ +6ÿï08@R&hpd.de/sites/hpd.de/files/advertising/ +9ÿï08@R)hsc-bad-neustadt.de/wp-content/*/sponsor_ +Bÿï08@R2hsg-wetzlar.de/fileadmin/media/business/sponsoren/ +2ÿï08@R"hsgnordhorn-lingen.de/images/spon_ +>ÿï08@R.hsvhandball.com/wp-content/uploads/*/1_AOK.png +Aÿï08@R1hsvhandball.com/wp-content/uploads/*/2_HHVoba.png +Cÿï08@R3hsvhandball.com/wp-content/uploads/*/7_benthack.png +Eÿï08@R5hsvhandball.com/wp-content/uploads/*/hummel_white.png +@ÿï08@R0hsvhandball.com/wp-content/uploads/*/smileys.png +Kÿï08@R;hsvhandball.com/wp-content/uploads/*/ticketmaster_white.png +3ÿï08@R#htfgames.com/bilder/2006/casino.jpg +=ÿï08@R-htfgames.com/bilder/2006/kostenlose_games.jpg +9ÿï08@R)htfgames.com/bilder/free_online_games.jpg +9ÿï08@R)htfgames.com/bilder/werb/gbase_290x61.jpg +*ÿï08@Rhuren-inserate.com/banner/ +,ÿï08@Rhybrid-prd.ad-prd.s.joyn.de^ +;ÿï08@R+ibiza-heute.de/wp-content/uploads/*/Banner_ +@ÿï08@R0ibiza-heute.de/wp-content/uploads/*/Leaderboard- +'ÿï08@Ribooks.to/plpscript.php +&ÿï08@Ribooks.to/plscript.php +9ÿï08@R)ibooks.to/wp-content/uploads/*/daddel.png +6ÿï08@R&ibooks.to/wp-content/uploads/*/ddd.png +<ÿï08@R,ibooks.to/wp-content/uploads/*/ddnew2728.png +7ÿï08@R'ibooks.to/wp-content/uploads/*/dldl.png +8ÿï08@R(ibooks.to/wp-content/uploads/*/ffree.png +=ÿï08@R-ibooks.to/wp-content/uploads/*/goforblock.png +;ÿï08@R+ibooks.to/wp-content/uploads/*/offdd728.png +08@Ribooks.to^*.php +!ÿï08@Ridealo.de/banner/ +3ÿï08@R#images-amazon.com/images/*/marquee/ +9ÿï08@R)images-amazon.com/images/*/marqueestatic/ +Kÿï* +aerotelegraph.com08@R&imgix.net/production/uploads/*/Banner_ +2ÿï* + mmnews.de08@Rimgur.com/cKTUKlX.gif +2ÿï* + mmnews.de08@Rimgur.com/zCsgpkZ.gif +,ÿï08@Rinside.bz.it/images/banners/ +>ÿï* + t-online.de08@Rinterhyp.de/angular/lafpartner/ +8ÿï08@R(isaswomo.de/wp-content/uploads/*-Banner- +-ÿï08@Rislam.de/images/other/banner/ +7ÿï08@R'islamiq.de/wp-content/uploads/*/aaa.gif +Tÿï08@RDislamiq.de/wp-content/uploads/*/igmg_dijital_ilan_islamiq_605x300px_ +@ÿï08@R0islamiq.de/wp-content/uploads/*/ramadanspohr.gif +Xÿï08@RHislamiq.de/wp-content/uploads/*/ukba_ilan_dijital_islamiq_980x150px3.gif +?ÿï08@R/islamiq.de/wp-content/uploads/*/Unbenannt-1.gif +Eÿï08@R5islamische-zeitung.de/wp-content/uploads/*-300x200px. +Bÿï08@R2islamische-zeitung.de/wp-content/uploads/*/banner. +Bÿï08@R2islamische-zeitung.de/wp-content/uploads/*/banner_ +Mÿï08@R=islamische-zeitung.de/wp-content/uploads/*/Open_IZ1240x10015_ +Gÿï08@R7israel-nachrichten.org/wp-content/uploads/*/querbanner_ +Gÿï08@R7israel-nachrichten.org/wp-content/uploads/*_hochbanner_ +/ÿï08@Rjacktheripper.de/images/banner/ +0ÿï08@R journalist.de^*/Stellenanzeigen/ +4ÿï08@R$jungefreiheit.de/wp-content/banners/ +(€08@Rjungfrauzeitung.ch^*.html +1ÿï08@R!kajak-magazin.com/images/banners/ +&ÿï08@Rkalenderwoche.de/bobs/ +3ÿï08@R#kanarenexpress.com/images/canarias- +Gÿï08@R7kapstadt.de/images/kunden/exclusive-tours-263-323-2.jpg +1ÿï08@R!kartfahrer-forum.de/board/images/Ï +ÿï08@R kath.net/mod/ +Dÿï08@R4kathsonntagsblatt.de/images/aktuell/misereor_275.gif +*ÿï08@Rkatzeausdemsack.de/banner/ +%ÿï08@Rkauf6.com/img/banner/ +-ÿï08@Rkaufland.de^*&showSpads=true^ +,ÿï08@Rkauperts.de/images/partners/ +$ÿï08@Rketoforum.de/Banner/ +Eÿï08@R5kinderlandparks.de/cms/media/thumbnail_5240_w_650.jpg +;ÿï08@R+kinox.top/templates/Kinox/images/stream.gif +,ÿï08@Rkitzanzeiger.at^*/sponsoren/ ++ÿï08@Rklappeauf.de/images-banner/ +#ÿï08@Rklexikon.de/banner/ +(ÿï08@Rkochbar.de/moltenbundle/ +#ÿï08@Rkoeln.de^*/werbung/ +Kÿï08@R;kostenlose-urteile.de/www.kostenlose-urteile.de/RTAads.html +<ÿï08@R,kradblatt.de/wp-content/uploads/mediabanner/ +Fÿï08@R6kriminalpolizei.de/fileadmin/user_upload/*-Skyscraper_ +Cÿï08@R3kriminalpolizei.de/fileadmin/user_upload/*_728x100. +pÿï08@R`kroatien-nachrichten.de/wp-content/uploads/*/118487995_307800703629191_3999309709283286875_n.jpg +qÿï08@Rakroatien-nachrichten.de/wp-content/uploads/*/125375586_1887673141371509_4482467756478970036_n.jpg +qÿï08@Rakroatien-nachrichten.de/wp-content/uploads/*/136685650_448400096333860_585562005834626849_n-3.jpg +Vÿï08@RFkroatien-nachrichten.de/wp-content/uploads/*/Kuoko_KN_Logo-300x112.jpg +Kÿï08@R;kroatien-nachrichten.de/wp-content/uploads/2020/11/Logo.jpg +"ÿï08@Rkrone.at/talk-ads/ +?ÿï08@R/kronenachrichten.com/wp-content/uploads/banner/ + ÿï08@Rkrzbb.de/revive/ +,ÿï08@Rkulturmd.de/images/*_Banner_ +)ÿï08@Rkunststoffweb.de/_g/_ads/ +0ÿï08@R laborjournal.de/infos/m99/img/b_ + ÿï08@Rlad.sumikai.com^ +ÿï08@R ladies.de/sol +Cÿï08@R3laengengrad-breitengrad.de/public/img/externbanner/ +2ÿï08@R"land-der-traeume.de/bilder/banner/ +Dÿï08@R4latina-press.com/media/*/online-casino-bonus-min.gif +>ÿï08@R.latina-press.com/media/spanisch-lernen-160.png +/ÿï08@Rlaufzeit.de/wp-content/banners/ +$ÿï08@Rlesbenhd.com/cpanel/ ++ÿï08@Rlesbenhd.com/img/linklist2/ +6ÿï08@R&lifeverde.de/files/*-970-x-250-banner- ++ÿï08@Rligaportal.at/images/promo/ +1ÿï08@R!ligaportal.at/images/sponsor_vip/ +.ÿï08@Rlinkr.top/images/gutschein.gif +'ÿï08@Rlinkr.top/images/rso.js +(ÿï08@Rlinkr.top/images/ruse.js +Mÿï08@R=lintorfer.eu/wp-content/uploads/*/150219fleermann-300x250.jpg +Xÿï08@RHlintorfer.eu/wp-content/uploads/*/BU-Sylvester-2020-2021-II-1024x684.jpg +Nÿï08@R>lintorfer.eu/wp-content/uploads/*/fleermann_facebook-Kopie.jpg +Pÿï08@R@lintorfer.eu/wp-content/uploads/*/tuslintorf_weihnachten_neu.png +2ÿï08@R"lintorfer.eu^*/160316sparkasse.gif +.ÿï08@Rlintorfer.eu^*/160329assro.jpg +5ÿï08@R%lintorfer.eu^*/161224leibrebelogo.jpg +5ÿï08@R%lintorfer.eu^*/161228gerdasievert.jpg +Gÿï08@R7lintorfer.eu^*/190215gerdasievertwohlf%C3%BChlenneu.jpg +&ÿï08@Rlintorfer.eu^*/banner- +0ÿï08@R lintorfer.eu^*/bauconceptneu.jpg +/ÿï08@Rlintorfer.eu^*/simons_klein.jpg +4ÿï08@R$lintorfer.eu^*/Zander-Immobilien.jpg +'ÿï08@Rlippe-news.de^*/banner/ +<ÿï08@R,lite-magazin.de/wp-content/uploads/*-Banner- +=ÿï08@R-lite-magazin.de/wp-content/uploads/*/276x200. +?ÿï08@R/lite-magazin.de/wp-content/uploads/*/276x220px- +=ÿï08@R-lite-magazin.de/wp-content/uploads/*/629x220. +=ÿï08@R-lite-magazin.de/wp-content/uploads/*_276x600- +-ÿï08@Rloipenpark.de/images/banners/Ú +2ÿï08@R"lokalo.de/wp-content/uploads/*.mp4 +Bÿï08@R2lokalo.de/wp-content/uploads/*/estricher_hof_anim_ +:ÿï08@R*lokalo.de/wp-content/uploads/*/tts-banner- +%ÿï08@Rlounge.fm^*/auto-doc. ++ÿï08@Rlounge.fm^*/topersatzteile. +4ÿï08@R$lowbeats.de/site/wp-content/banners/ ++ÿï08@Rloz-news.de/images/banners/ +/ÿï08@Rlustvollesgeheimnis.com/banner/ +08@R m.queer.de^ +&ÿï08@Rmacgadget.de/mgbanner/ +,ÿï* +mail.de08@Rmailcdn.de/w.php? +<ÿï08@R,mainpost.de/storage/image/*_kickers-sponsor- +Bÿï08@R2mainz05.de/fileadmin/_processed_/*-Sponsorenlogos_ +$ÿï08@Rmaniac.de/campaigns/ +*ÿï08@Rmassage123.ch/Pics/bapics/ +-ÿï08@Rmedia.outnow.ch/Site/Waerbig/ +%ÿï08@Rmediaforum.ch/banner/ +%ÿï08@Rmediaforum.ch/banner_ +<ÿï08@R,meetingpoint-brandenburg.de/bilder/*/kunden/ +=ÿï08@R-meetingpoint-brandenburg.de/bilder/*/werbung/ +7ÿï08@R'meetingpoint-brandenburg.de/upload/ads_ ++ÿï08@Rmef-line.de/images/banners/ +4ÿï08@R$mein-klagenfurt.at/fileadmin/banner/ +'€08@Rmein-wetter.com/include/ +.ÿï08@Rmeinyouporn.com/img/linklist2/ +7ÿï08@R'melodieundrhythmus.com^*/Granma-Abo.png +6ÿï08@R&melodieundrhythmus.com^*/unblock-cuba_ +/ÿï08@Rmessweb.de/media/img/Caemax.gif +Bÿï08@R2messweb.de/media/img/icHaus_integrate_Circuits.gif +=ÿï08@R-messweb.de/media/img/imc_produktiv_Messen.jpg +8ÿï08@R(messweb.de/media/img/iotmaxx_250x210.gif +5ÿï08@R%messweb.de/media/img/Jaeger_Adwin.gif +4ÿï08@R$messweb.de/media/img/zse_250x210.gif +&ÿï08@Rmiba.de/bilder/banner/ +3ÿï08@R#michas-spielmitmir.de^*/anzeige.gif +/ÿï08@Rmicrospiele.com/img/gdesire.jpg +@ÿï08@R0mietminderungstabelle.de/templates/RRT2/adBoxes/ +Fÿï08@R6minimed.at/fileadmin/templates/minimed.at/nl_promobox/ +,ÿï08@Rmistershoplister.de/mips.php +*ÿï08@Rmmnews.de/images/*_Banner_ +0ÿï08@R modified-shop.org/images/banner/ +!ÿï08@Rmomo-net.com/asd? +)ÿï08@Rmoonsault.de/menu/amazon_ +<ÿï08@R,motorrad2000.de/wp-content/uploads/*-Banner_ +\ÿï08@RLmotorrad2000.de/wp-content/uploads/*/0801_motorrad2000_bueffel_animation.gif +Yÿï08@RImotorrad2000.de/wp-content/uploads/*/8fa952cba73b0d4fbf043e9be45cb366.gif +Yÿï08@RImotorrad2000.de/wp-content/uploads/*/b67500ab7a18a07b9ef79e89bd077568.gif +,ÿï08@Rmotorradundreisen.de/banner/ +?ÿï08@R/motorradundreisen.de/engine/count_banner_image/ +.ÿï08@Rmotorradundreisen.de^*/banner/ +=ÿï* + merkurist.de08@Rmsecnd.net/endpoint/shipment/ +,ÿï08@Rmsh-online.de/_daten/banner/ +=ÿï08@R-mtb-news.de/news/wp-content/plugins/mtbn-ads/ +?ÿï08@R/mtb-news.de/news/wp-content/uploads/*/takeover- +?ÿï08@R/mtb-news.de/news/wp-content/uploads/*/Takeover_ +)ÿï08@Rmultilingual.de^*/banner/ +4ÿï08@R$multilingual.de^*/sprachreisen_0.gif +8ÿï08@R(multilingual.de^*/sprachschule-malta.gif +.ÿï08@Rmusiker-board.de^*/siropu/aml/ +8ÿï08@R(musiksampler.de/cgi-bin/arlight/view.php +.ÿï08@Rmusiksampler.de/images/banner/ +-ÿï08@Rmy105.ch/fileadmin/sponsoren/ +#ÿï08@Rmygully.com/at1.php +"ÿï08@Rmygully.com/ca.php¶ +!ÿï08@Rmygully.com/f.php +*ÿï08@Rmysqldumper.de/img/banner- +?ÿï08@R/mysqldumper.de/img/spanischeweihnachtslotterie- +,€08@Rn-land.de/wp-content/uploads/ +Lÿï08@Rÿï08@R.nachrichtenamort.de/cms/wp-content/images/ANZ_ +8ÿï08@R(nachtkritik.de/images/contentbannereins_ +1ÿï08@R!nachtkritik.de/images/skyscraper_ +0ÿï08@R nachtkritik.de/images/topbanner_ ++ÿï08@Rnacktefoto.com/de-bonga.jpg +'ÿï08@Rnacktefoto.com/los-gif/ +-ÿï08@Rnamibia-forum.ch/images/gsdu/ +6ÿï08@R&naruto-tube.org/templates/caprica/amz/ +7ÿï08@R'naruto-tube.org/templates/caprica/amzb/ +7ÿï08@R'naruto-tube.org/templates/caprica/amzl/ +3ÿï08@R#naturundtherapie.at/images/banners/ +@ÿï08@R0nebenwerte-magazin.com/wp-content/uploads/*/wrb- +%ÿï08@Rnetheweb.de/images/a- +.ÿï08@Rnetheweb.de/images/trigami.png +%ÿï08@Rnetwork.gofeminin.de^ +'ÿï08@Rnetwork2.aufeminin.com^ +Sÿï08@RCneumarkt-tv.de/wp-content/uploads/*/bestercasinomentor-original.jpg +4ÿï08@R$nh24.de/wp-content/uploads/*/Banner- +Fÿï08@R6nh24.de/wp-content/uploads/*/EAM_Juni2020_1200x200.gif +@ÿï08@R0nh24.de/wp-content/uploads/*/Haemel-2012-247.gif +?ÿï08@R/nh24.de/wp-content/uploads/*/hephanta_kw-49.jpg +;ÿï08@R+nh24.de/wp-content/uploads/*/tejos_KW50.gif +,ÿï08@Rnibelungen-kurier.de/banner/ +"ÿï08@Rnius.de/adsense.js +5ÿï* + az.com.na08@Rnmh.my.na/main/products^ +,ÿï08@Rnnz-online.de/_daten/banner/ +)ÿï08@Rnnz-tv.de^*-Webbanner.gif +#ÿï08@Rnnz-tv.de^*/Banner_ +-ÿï08@Rnnz-tv.de^*/WVN_Allgemein.gif +-ÿï08@Rnonstopnews.de/bilder/Banner/ +9 08@R+notebookcheck.com/fileadmin/Sonstiges/amaz_ +:ÿï08@R*notebookcheck.com/fileadmin/templates/wbg/ +2ÿï08@R"nr-kurier.de/images/mankwetter.png ++ÿï08@Rnrhz.de/flyer/media/banner/ +&ÿï08@Rnurbilder.com/mdh1.php +!ÿï08@Rnurgay.to/scpu.js +/ÿï08@Rnurxxx.mobi/ai/s/s/js/ssu.v2.js +.ÿï08@Rnurxxx.net/ai/s/s/js/ssu.v2.js ++ÿï08@Ro-sport.de/assets/sponsors/ ++ÿï08@Roberberg-aktuell.de/Banner/ +Kÿï08@R;obi.de/heyobi-includes/adserver/ad-controller/aec-bundle.js +'ÿï08@Roe-static.de/js/rmif.js +'ÿï08@Roe24.at/Betaustria1.jpg +!ÿï08@Roe24.at^*_banner_ +/ÿï08@Roefb.at/netzwerk/imagedownload/ +7ÿï08@R'oeffentlichen-dienst.de/images/banners/ +Hÿï08@R8oekoportal.de/sites/default/files/pelletheizung-info.jpg +Dÿï08@R4oekoportal.de/sites/default/files/stromvergleich.png +Fÿï08@R6oekoportal.de/sites/default/files/verbraucher_eu_4.png +&ÿï08@Rofc.de/media/*_banner- +'ÿï08@Rofc.de/media/*_landing_ ++ÿï08@Roffroad-cult.org/Main/refs/ +Dÿï08@R4offroadforen.de/media/3-286x238-fcmoto-rechts-2-jpg/ +Dÿï08@R4offroadforen.de/media/7-1366x94-fcmototv-banner-png/ +<ÿï08@R,okey-online.com/prg/daten/datenbanken/banner +1ÿï08@R!oktoberfestportal.de/pics_banner/ +"ÿï08@Romano.de/AdServer/ +Gÿï08@R7omasex.cc/wp-content/*/wp-content/plugins/rnotify1.3.9/ +:ÿï08@R*onepiece-tube.com/templates/caprica/amzl2/� +?ÿï08@R/onepiece-tube.com/templates/Grafiken/amazon.svg +)ÿï08@Ronepiece-tube.com^*/amzb/ +*ÿï08@Ronepiece-tube.com^*/amzb2/ +'ÿï08@Ronlinekorrektor.de/cnc/ +:ÿï08@R*onlinereports.ch/uploads/tx_macinabanners/ +$ÿï08@Ronlinewahn.de/sky.js +Eÿï08@R5ostfussball.com/wp-content/uploads/*/20bet-sports.jpg +Yÿï08@RIostfussball.com/wp-content/uploads/*/betsson-sportwetten-bonus-banner.jpg +>ÿï08@R.osthessen-zeitung.de/uploads/tx_macinabanners/ +2ÿï08@R"osttirol-online.at/images/banners/ +?ÿï08@R/ottfried.de/wp-content/uploads/*/traueranzeige_ +%ÿï08@Rotto.de/sda-hoarding/ +8ÿï08@R(otto.de/static-proxy/product-assets/sda- +@ÿï08@R0otto.de/wato-onsite/assets/*.wato.onsite.module. +8ÿï08@R(outdoortest.info/wp-content/kooperation/ +ÿï08@Rox.gassi-tv.de^ +:ÿï08@R*oxmoxhh.de/wp-content/uploads/*/hotspring- +708@R)parcello.org/wp-content/uploads/*/amazon- + ÿï08@Rparfumo.de/affi/ +%ÿï08@Rpartner.schalke04.de^ +%ÿï08@Rpartyamt.de/images/b/ +/ÿï08@Rpaules-pc-forum.de/images/buch/ ++ÿï08@Rpcgames.de/tsimg/topbanner/ +:ÿï08@R*pcgamesdatabase.de/images/amazon_small.jpg +<ÿï08@R,pcgamesdatabase.de/images/bt_orderamazon.jpg +3ÿï08@R#pcgameshardware.de/tsimg/topbanner/ +ÿï08@Rpear.focus.de^ +<ÿï08@R,pedelecforum.de/forum/styles/pedelec/direkt/ +Oÿï08@R?pesterlloyd.net/assets/images/autogen/Betway-Casino-300x400.jpg +5ÿï08@R%pfaffenhofen-today.de/images/banners/ +:ÿï08@R*pfalz-echo.de/wp-content/uploads/*-Banner- +;ÿï08@R+pfalz-echo.de/wp-content/uploads/*_Anzeige_ +8ÿï08@R(pi-news.net/wp-content/uploads/*/Banner_ +>ÿï08@R.pi-news.net/wp-content/uploads/*/pax_aktiv.jpg +8ÿï08@R(pi-news.net/wp-content/uploads/*_banner. +8ÿï08@R(pi-news.net/wp-content/uploads/*_banner_ +2ÿï08@R"pi-news.net/wp-content/uploads/ad- ++ÿï08@Rpianonews.de/images/banner- +,ÿï08@Rpianonews.de/images/banners/ +@ÿï08@R0pianonews.de/images/CASIO_grandhybrid_290x150px_ +"ÿï08@Rpicdumps.com/ddeal +2ÿï08@R"pics.computerbase.de/forum-teaser/ +#ÿï08@Rpilotenboard.de/ad/ +8ÿï08@R(pixelio.de/resources/widgets/clipdealer_ +"ÿï08@Rplus.tourispo.com^ +(ÿï08@Rpokerfirma.com^*-banner. +(ÿï08@Rpokerfirma.com^*/banner_ +#ÿï08@Rporn4k.to/sc-p0p.js +%ÿï08@Rpornoaffe.com/cpanel/ +,ÿï08@Rpornoaffe.com/img/linklist2/ +$ÿï08@Rpornoente.tv/cpanel/ ++ÿï08@Rpornoente.tv/img/linklist2/ +)ÿï08@Rpornoente.tv/static/exnb/ +&ÿï08@Rpornofisch.com/cpanel/ +'ÿï08@Rpornohammer.com/cpanel/ +-ÿï08@Rpornohammer.com/img/linklist/ +.ÿï08@Rpornohammer.com/img/linklist2/ +%ÿï08@Rpornohans.com/cpanel/ +,ÿï08@Rpornohans.com/img/linklist2/ +0ÿï08@R pornohexen.com/js/a9k3jf823m4.js +'ÿï08@Rpornohirsch.net/cpanel/ +.ÿï08@Rpornohirsch.net/img/linklist2/ +,ÿï08@Rpornohirsch.net/static/exnb/ +!ÿï08@Rpornohut.info/ad/À +?ÿï08@R/pornohutdeutsch.net/wp-content/*/93kgk95aw2q.js +&ÿï08@Rpornojenny.com/cpanel/ +,ÿï08@Rpornojenny.com/img/linklist/ +-ÿï08@Rpornojenny.com/img/linklist2/ +'ÿï08@Rpornoklinge.com/cpanel/ +-ÿï08@Rpornoklinge.com/img/linklist/ +.ÿï08@Rpornoklinge.com/img/linklist2/ +*ÿï08@Rpornolisa.com/static/exnb/ +6ÿï08@R&pornos-kostenlos.com/js/a9k3jf823m4.js ++ÿï08@Rpornotanja.com/static/exnb/ +$ÿï08@Rpornotom.com/cpanel/ ++ÿï08@Rpornotom.com/img/linklist2/ +&ÿï08@Rpornotommy.com/cpanel/ +-ÿï08@Rpornotommy.com/img/linklist2/ +&ÿï08@Rpornozebra.com/cpanel/ +-ÿï08@Rpornozebra.com/img/linklist2/ +*ÿï08@Rport01.com/uploads/banner/ ++ÿï08@Rportugalforum.org/data/ads/ +ÿï08@Rpr.t-online.de^ +@ÿï08@R0pragerzeitung.cz/wp-content/uploads/*_300x450px_ +,ÿï08@Rpreispirat.ch^*/partner-ads/ +.ÿï08@Rpreispirat.ch^*/partner-promo/ +,ÿï08@Rpreispirat.ch^*/today-offer/ +2ÿï08@R"prispi.de/images/bluvista-cam1.gif ++ÿï08@Rprivater.sex/images/banner/ +sÿï* + +bluewin.ch08@RUproduction-livingdocs-bluewin-ch.imgix.net^*/6f3cdbc0-2a58-4a7e-933f-9077769c899b.png +3ÿï08@R#promiflash.de/static/js/pf-web-*.js +S08@REprosiebengames.de/sites/prosiebengames/files/*/bowsergames_wallpaper_ +Cÿï08@R3psi-magazin.de/fileadmin/user_upload/images/banner/ +;ÿï08@R+quadjournal.eu/wp-content/uploads/*-Banner- +5ÿï08@R%queer.de/gfx/air-france-presented-by- +)ÿï08@Rqueer.de/gfx/mein-kondom- +1ÿï08@R!radio-oberland.de/images/banners/ +:ÿï08@R*radio-oldtimer.de/fileadmin/Bilder/Banner/ +&ÿï08@Rradio2000.it^*/banner_ +?ÿï08@R/radiobeo.ch/wp-content/uploads/*_Nachtangebote_ +Lÿï08@Rsissymag.de/wp-content/uploads/*/ottinger_salzgeber_club_1.jpg +7ÿï08@R'sissymag.de/wp-content/uploads/*/qfn01- +Cÿï08@R3sissymag.de/wp-content/uploads/*/tanzten_kaufen.jpg +Cÿï08@R3skipper-bootshandel.de/wp-content/uploads/*/BANNER- +;ÿï08@R+somquery.sqrt-5041.de/mobile/ads-no-resolve +3ÿï08@R#somquery.sqrt-5041.de/tv/ad-wrapper +0ÿï08@R sonic-seducer.de/images/banners/ +=ÿï08@R-soundportal.at/fileadmin/user_upload/werbung/ +*ÿï08@Rspanienlive.com^*/Werbung/ +(ÿï08@Rspeedtorrent.com/usenet/ +/ÿï08@Rspeyer-report.de/images/Anzeige ++ÿï08@Rspielbox.de/images/banners/ +Xÿï* +spiele-for-free.de08@R2spiele-for-free.de/wp-content/uploads/*_1920x1200_ +!€08@Rspielesite.com/am/ +Bÿï08@R2spielesnacks.de/wp-content/uploads/*-wallpaper.jpg +<ÿï08@R,spielesnacks.de/wp-content/uploads/*/Banner- +<ÿï08@R,spielesnacks.de/wp-content/uploads/*/banner. +7ÿï08@R'spieletest.at/backend/pictures/werbung/ +*ÿï08@Rsport-90.de/images/banner- +0ÿï08@R sport-90.de/images/casinoall.png +2ÿï08@R"sportgeschichte.at/static/partner/ +;ÿï08@R+sportwette.net/wp-content/uploads/*-banner- +=ÿï08@R-sportwetten.org/wp-content/uploads/*-400x300- +<ÿï08@R,sportwetten.org/wp-content/uploads/*-banner- +/ÿï08@Rspox.com/de/xprod/adswitch.html +Kÿï08@R;sprachen-lernen-online.org/wp-content/uploads/*/skyscraper_ +1ÿï08@R!sprade.tv/images/robin_banner.gif +Aÿï08@R1spreeblick.com/wp-content/themes/*/hosteurope.gif +Iÿï08@R9spreeblick.com/wp-content/themes/*/netzgemuese_banner.png +>ÿï08@R.spreeblick.com/wp-content/themes/*/thomann.png +3ÿï08@R#spvggunterhaching.de^*/Big-Cube.png +6ÿï08@R&spvggunterhaching.de^*/logo_adidas.png +=ÿï08@R-spvggunterhaching.de^*/logo_anzeiger_roll.png +5ÿï08@R%spvggunterhaching.de^*/logo_lupse.png +7ÿï08@R'spvggunterhaching.de^*/logo_saatgut.png +/ÿï08@Rspvggunterhaching.de^*/partner- +<ÿï08@R,ssv-jahn.de/fileadmin/user_upload/sponsoren/ +8ÿï08@R(ssvnaturns.it/images/Fussball/Sponsoren/ +Jÿï08@R:stadt-bremerhaven.de/wp-content/uploads/*/amazonAktion.jpg +.ÿï08@Rstadt-bremerhaven.de^*/psw.jpg +8ÿï08@R(stadtanzeiger-coesfeld.de^*/heimbach.png +>ÿï08@R.stadtradio-goettingen.de/apool/srg/content/ads +#ÿï08@Rstereo.de^*/banner/ +Dÿï08@R4stern.de/bilder/stern_5/allgemein/extras_vermarktet/ +1ÿï08@R!steuertipps.de/scripts/google-ad/ ++ÿï08@Rstrafbock.ch/files/banners/¸ +/ÿï08@Rstudio-magazin.de/files/banner/ +Aÿï08@R1studium-ratgeber.de^*/auslandszeit-starterkit.png +Aÿï08@R1studium-ratgeber.de^*/Studententarife-300x250.png +&ÿï08@Rsuche.1und1.de/amazon? +$ÿï08@Rsuche.gmx.at/amazon? +$ÿï08@Rsuche.gmx.ch/amazon? +%ÿï08@Rsuche.gmx.net/amazon? +-ÿï08@Rsuche.t-online.de/web/amazon? +/ÿï08@Rsuche.t-online.de/web/billiger? ++ÿï08@Rsuche.t-online.de/web/ebay? +$ÿï08@Rsuche.web.de/amazon? +!ÿï08@Rsuche6.ch/banner/ +;ÿï08@R+suedpfalz-verlag.de/uploads/pics/CBoltz.png +>ÿï08@R.suedpfalz-verlag.de/uploads/pics/DK-Grafik.png ++ÿï08@Rsuedtirol.de/upload/Banner/ +:ÿï08@R*suedtirol1.it/uploads/beitrag/*/300x70.gif +'ÿï08@Rsuedtiroltv.it^*/banner +"ÿï08@Rsunshine.it/raika/ +Hÿï08@R8supermarkt-inside.de/wp-content/uploads/*/akcenta-ad.gif +Lÿï08@Rsupertipp-online.de/wp-content/uploads/*/Gottfried_schultz.gif +%ÿï08@Rsurfmusik.de/anz1.gif +Mÿï08@R=svs-passau.de/wp-content/uploads/*/bkkzfundpartner300x108.png +?ÿï08@R/svs-passau.de/wp-content/uploads/*/friedl-1.png +=ÿï08@R-svs-passau.de/wp-content/uploads/*/fupa-1.png +Jÿï08@R:svs-passau.de/wp-content/uploads/*/Grafik-BFV.TV-klein.jpg +Bÿï08@R2svs-passau.de/wp-content/uploads/*/jakob_sport.png +Oÿï08@R?svs-passau.de/wp-content/uploads/*/Logo-Regionalliga-Bayern.png +Dÿï08@R4svs-passau.de/wp-content/uploads/*/niederhofer-3.png +Rÿï08@RBsvs-passau.de/wp-content/uploads/*/RL-Banner-Liveticker-300x75.jpg +Bÿï08@R2svs-passau.de/wp-content/uploads/*/sparkasse-1.png +?ÿï08@R/svs-passau.de/wp-content/uploads/*/wimmer-1.png +Aÿï08@R1svs-passau.de/wp-content/uploads/*/wolfgang-1.png +Aÿï08@R1svs-passau.de/wp-content/uploads/*/wolfhaus-3.png +:ÿï08@R*svs1916.de/fileadmin/_processed_/*_Footer_ +<ÿï08@R,svs1916.de/fileadmin/svs1916de/footer_Logos/ +5ÿï08@R%svs1916.de/fileadmin/user_upload/sky_ +5ÿï08@R%svww.de/fileadmin/media/*-970x250.jpg +4ÿï08@R$svww.de/fileadmin/media/*-banner.jpg +2ÿï08@R"svww.de/fileadmin/media/Sponsoren/ +$ÿï08@Rswz.it^*/pichler.gif +#ÿï08@Rswz.it^*_Webbanner_ +*ÿï08@Rsynchronkartei.de/img/ext/ +5ÿï08@R%t3n.de/T3N/T3N/PROD/framework_core.js +$ÿï08@Rt3n.de^*/ad-scripts- +)ÿï08@Rtageblatt.com.ar/banners/ +&ÿï08@Rtah.de^*&tx_sfbanners_ +.* + helpster.de08@Rtarget-video.com^ +6ÿï08@R&taschenlampen-forum.de/images/acebeam/ +6ÿï08@R&taschenlampen-forum.de/images/armytek/ +7ÿï08@R'taschenlampen-forum.de/images/gatzetec/ +6ÿï08@R&taschenlampen-forum.de/images/imalent/ +5ÿï08@R%taschenlampen-forum.de/images/olight/ +9ÿï08@R)taschenlampen-forum.de/images/wubenlight/ +7ÿï08@R'tauchen.de/content/uploads/*_billboard_ +Bÿï08@R2tbv-lemgo-lippe.de/fileadmin/_processed_/*_banner_ +/ÿï08@Rtbv-lemgo-lippe.de^*/sponsoren/ +;ÿï08@R+tchgdns.de/wp-content/uploads/*-300-600.jpg +:ÿï08@R*tchgdns.de/wp-content/uploads/*_160600.jpg +9ÿï08@R)tchgdns.de/wp-content/uploads/*_97090.jpg +<ÿï08@R,techreviewer.de/wp-content/uploads/*-banner- +>ÿï08@R.teilzeithelden.de/wp-content/uploads/*-Werbug- +Hÿï08@R8teilzeithelden.de/wp-content/uploads/*/DTRPG-Sidebar.jpg¸ +Gÿï08@R7teilzeithelden.de/wp-content/uploads/*/Teilzeit-Truant- +,ÿï08@Rtelefonsexmitcam.com/images/ +6ÿï08@R&telefonsexwebcam.com/images/livestrip- +908@R+teltarif.de/img/smartphone/apple/iphone.jpg +(ÿï08@Rteltarif.de/scripts/ads/ +(ÿï08@Rteltarif.de/scripts/foo/ +Bÿï08@R2teneriffa-aktuell.com/wp-content/uploads/*/banner- +3ÿï08@R#teneriffa-heute.net/images/banners/ +2ÿï08@R"tennisnet.com/widgets/williamhill/ +2ÿï08@R"tennistraveller.net/images/banner/ +*ÿï08@Rteufelchens.tv/iw_wide.jpg +#ÿï08@Rthegnet.ch/rotator/ +)ÿï08@Rthinkpad-forum.de/banner/ +0ÿï08@R thinkpad-forum.de/bilder/Banner- +Aÿï08@R1thinkpad-forum.de/bilder/Preiswerte-IT_Banner.png +;ÿï08@R+thinkpad-forum.de/bilder/servion_banner.gif +9ÿï08@R)thinkpad-forum.de/bilder/thinkstore24.jpg +7ÿï08@R'thinkpad-forum.de/bilder/tpf-banner.jpg +/ÿï08@Rthinkpad-forum.de/Neu/*-banner. +/ÿï08@Rthinkpad-forum.de/Neu/*_banner. +-ÿï08@Rthinkpad-forum.de/Neu/Banner- +-ÿï08@Rtieronline.ch/images/partner/ ++ÿï08@Rtobitech.de/images/banners/ +,ÿï* +chip.de08@Rtrustedoffers.de^ +,ÿï08@Rtrvlcounter.de/media/advert/ +Sÿï08@RCtschechien-online.org/sites/default/files/hotel-kleine-brauerei.jpg +Bÿï08@R2tschechien-online.org/sites/default/files/to_0.jpg +Eÿï08@R5tsg-friesenheim.de/dateien/images/handball/Sponsoren- +3ÿï08@R#tsg-hoffenheim.de/assets/Sponsoren/ +1ÿï08@R!tsv-friedberg.de/images/Scroller/ +&ÿï08@Rtsv1860.de/_m/partner/ +(ÿï08@Rtube8-pornos.com/cpanel/ +/ÿï08@Rtube8-pornos.com/img/linklist2/ +Aÿï08@R1tus-n-luebbecke.de/wp-content/uploads/Logoleiste_ +Bÿï08@R2tus-n-luebbecke.de/wp-content/uploads/Teampartner_ +2ÿï08@R"tv-kabel-plus.de/kabelplus/banner/ +>ÿï08@R.tv-kabel-plus.de/kabelplus/icons/speedtest.jpg +=ÿï08@R-tv-kabel-plus.de/kabelplus/img/kptagpreis.jpg +,ÿï08@Rtvbb.de/images/tvbb_partner/ +Iÿï08@R9tvbstuttgart.de/wp-content/uploads/*/kaercher-wohninvest- +Aÿï08@R1tvdigital.de/frontpage/deutschland_urlaub_hoerzu_ +@ÿï08@R0tvdigital.de/frontpage/deutschland_urlaub_horzu_ +&ÿï08@Rtvinfo.de/info/TWIAGO/ +1ÿï08@R!tweakpc.de/wpimages/tweakpc-skin- +Gÿï08@R7typo3blogger.de/wp-content/*/dkd-solr-werde-sponsor.jpg +5ÿï08@R%uhrforum.de/styles/uhrforum/anzeigen/ +6ÿï08@R&uhrforum.de/styles/uhrforum/sponsored/ +.ÿï08@Rukraine-nachrichten.de/img/wb/ +4ÿï08@R$unmoralische.de/bilder/am-banner.gif +Jÿï08@R:unterwasserwelt.de/wp-content/uploads/*/Bauer-Premiumsite- +Kÿï08@R;unterwasserwelt.de/wp-content/uploads/*/Cressi-premiumsite- +Kÿï08@R;unterwasserwelt.de/wp-content/uploads/*/Footer-Premiumsite- +bÿï08@RRunterwasserwelt.de/wp-content/uploads/*/hamatamangroves-banner_footer-premiumsite- +'ÿï08@Ruscene.net/src/so/so.js +1ÿï08@R!utopix.net/utopia_de/js/loader.js +.ÿï08@Rvelomotion.de^*/featured-ad.js +/ÿï08@Rvfb.de/?proxy=img/hauptsponsor_ +#ÿï08@Rvfb.de^*/sponsoren/ +(ÿï08@Rvfl-bochum.de^*/Partner/ +0ÿï08@R vfl-bochum.de^*/Premium_Partner/ +:ÿï08@R*vfl.de/sportmedia/assets/sunmaker_logo.svg + ÿï08@Rvfl.de^*-banner_ +#ÿï08@Rvfl.de^*_sponsoren_ +%ÿï08@Rvhs-ol.de/lib/banner/ +@ÿï08@R0viamichelin.at/static/*/adblocker/advertising.js +@ÿï08@R0viamichelin.ch/static/*/adblocker/advertising.js +@ÿï08@R0viamichelin.de/static/*/adblocker/advertising.js +2ÿï08@R"videogameszone.de/tsimg/topbanner/ +€08@Rvidonna.de/300 +<ÿï08@R,vienna-capitals.at/tl_files/capitals/banner/ +=ÿï08@R-vienna-capitals.at/tl_files/capitals/partner/ +'ÿï* +n-tv.de08@R viralize.tv^ +3ÿï08@R#volleyball-bundesliga.de^*/partner/ +5ÿï08@R%voltigierzirkel.de/uploads/*-anzeige. +5ÿï08@R%voltigierzirkel.de/uploads/*-anzeige_ +6ÿï08@R&voltigierzirkel.de/uploads/*/anzeige1- +?ÿï08@R/voltigierzirkel.de/uploads/*/arnd-helling-logo- +Jÿï08@R:voltigierzirkel.de/uploads/*/editor/ruhrmedic-kooperation_ +Fÿï08@R6voltigierzirkel.de/uploads/*/felix-bender-kooperation_ +Dÿï08@R4voltigierzirkel.de/uploads/*/gipperich-logo_orig.png +Dÿï08@R4voltigierzirkel.de/uploads/*/haberbusch-kooperation_ +7ÿï08@R'voltigierzirkel.de/uploads/*/kr-mer.png +Fÿï08@R6voltigierzirkel.de/uploads/*/reitsport-peter-logo.jpeg +.ÿï08@Rvorsprung-online.de^*/Werbung/ +3ÿï08@R#vsport.at/uploads/tx_macinabanners/ +/ÿï08@Rwahrschauer.net/images/banners/ +*ÿï08@Rwallis24.it/images/banner/ ++ÿï08@Rwallis24.it/images/banners/ +=ÿï08@R-wallis24.it/images/CAVE_GIOVANNA_GABBIONI.jpg +8ÿï08@R(wallis24.it/images/mc_dopo_18_nov_20.jpg +=ÿï08@R-wallis24.it/images/patrone_tedesco_wallis.jpg +Eÿï08@R5wallis24.it/images/wallis24%20achilli%20ottobre20.jpg +Eÿï08@R5wallstreet-online.de/frontend/img/smartbroker/banner_ +,ÿï08@Rwas-war-wann.de/historiy.jpg +*ÿï08@Rwatson.de/addf/addefend.js +%ÿï08@Rwbbanner.mrn-news.de^ +)ÿï08@Rwcm.at/images/attingo.gif +9ÿï08@R)websingles.at/pages/site/de/images/logos/ +fÿï* +kroatien-nachrichten.de08@R;website-editor.net^*/400JpgdpiLogoCropped-46e74a11-320w.jpg +,ÿï08@Rwebwiki.de/images/seobility_ +Dÿï08@R4webwork-magazin.net/wp-content/uploads/*/sul-banner- +Rÿï08@RBwebwork-magazin.net/wp-content/uploads/*/webdesign-printdesign.gif +,ÿï08@Rweekli.systems/media/banner/ +$ÿï08@Rwerbemanager.w24.at^ +:ÿï08@R*werne-plus.de/wp-content/uploads/*-728_90- +;ÿï08@R+werne-plus.de/wp-content/uploads/*/Anzeige_ ++ÿï08@Rwetter.at/mowis/cpc_teaser/ +.ÿï08@Rwetteronline.de/mdr/p_adplace/ +8ÿï08@R(whocallsyou.de/files/*/rechtsch-baby.jpg +:ÿï08@R*whocallsyou.de/files/*/rechtsschutz011.jpg +'ÿï08@Rwindowspower.de/banner/ +Pÿï08@R@windowspower.de/wp-content/uploads/*/stromanbieter-vergleich.gif +Ïÿï08@R¾windowspro.de/sites/windowspro.de/files/advagg_js/js__yS7CyIP-Nk7K6Xt2G3mkGWAXfGOwTiI0wwdn0GmIwwM__EoiDJPZdpk85X0xGBYAHn0PN-HgV1AgHgvavV0KhvYU__TMlUvrl4Tp-Amoh5neqH3DnP3Q9BotH6wQFrQU0fNjo.js +Ïÿï08@R¾windowspro.de/sites/windowspro.de/files/advagg_js/js__zR8PlSNczRzr6koUp2G5KQAvTGnSHH4_giYMfmb7o6E__ubjIHesQrPLSNRsqQ33aNf5LD12YLbbs0H8RairmULU__TMlUvrl4Tp-Amoh5neqH3DnP3Q9BotH6wQFrQU0fNjo.js +.€* + windowspro.de08@Rwindowspro.de^ +Aÿï08@R1wir-leben-outdoor.de/wp-content/uploads/*/banner- +(ÿï08@Rwirin.de/images/banners/ +3ÿï08@R#wirsiegen.de/Altfahrzeugannahme.png +7ÿï08@R'wirsiegen.de/Calabria-Lieferservice.jpg +Gÿï08@R7wirsiegen.de/wp-content/uploads/*/Anwalt-Baranowski.jpg +Pÿï08@R@wirsiegen.de/wp-content/uploads/*/B%C3%BCdenbenderb%C3%B6den.jpg +Eÿï08@R5wirsiegen.de/wp-content/uploads/*/bueboden300_250.jpg +Tÿï08@RDwirsiegen.de/wp-content/uploads/*/elements-show-Schedler-140-180.jpg +Hÿï08@R8wirsiegen.de/wp-content/uploads/*/hoffman_bau300_250.jpg +Jÿï08@R:wirsiegen.de/wp-content/uploads/*/hoffmann_bau_140_180.jpg +Eÿï08@R5wirsiegen.de/wp-content/uploads/*/Kreuztal-Taxi-1.jpg +Mÿï08@R=wirsiegen.de/wp-content/uploads/*/Los-Gyros-Fellinghausen.jpg +Jÿï08@R:wirsiegen.de/wp-content/uploads/*/LosGyrosKreuztal-300.jpgç +Sÿï08@RCwirsiegen.de/wp-content/uploads/*/Pizzablech-Siegen-Don_Camillo.jpg +Iÿï08@R9wirsiegen.de/wp-content/uploads/*/Siwi-aktiv-Facebook.jpg +Bÿï08@R2wirsiegen.de/wp-content/uploads/*/steinmetz300.jpg +Fÿï08@R6wirsiegen.de/wp-content/uploads/*/TUI-Kreuztal-180.jpg +Zÿï08@RJwirsiegen.de/wp-content/uploads/*/Walter-Schneider_VW_Juli-2016_300x60.gif +Uÿï08@REwirsiegen.de/wp-content/uploads/*/Werbeagentur-Siegerland-Werbung.jpg +=ÿï08@R-wirsiegen.de/wp-content/uploads/*_DonCamillo_ +2ÿï08@R"woche.com.au/images/logos/werbung/ +,ÿï08@Rwochenanzeiger.de/graphic/w/ +8ÿï08@R(wochenblatt.cc^*/shadow-forces-security- +)ÿï08@Rwochenblatt.cc^*/Werbung- +=ÿï08@R-wochenblatt.pl/wp-content/uploads/*/baner.gif +*ÿï08@Rwochenblatt.pl^*/smuda.jpg +,ÿï08@Rwochenblatt.pl^*/werbung.jpg +/ÿï08@Rwochenblitz.com/images/banners/ +7ÿï08@R'wohnmobilforum.de/anhaengerkupplung.jpg +9ÿï08@R)wohnmobilforum.de/anhaengerkupplungen.jpg +*ÿï08@Rwohnmobilforum.de/aqua.jpg ++ÿï08@Rwohnmobilforum.de/basba.jpg +Aÿï08@R1wohnmobilforum.de/camping-preisbrecher_header.jpg +4ÿï08@R$wohnmobilforum.de/caravantechnik.jpg +0ÿï08@R wohnmobilforum.de/dometic-kw.jpg +*ÿï08@Rwohnmobilforum.de/ebay.php ++ÿï08@Rwohnmobilforum.de/fleig.jpg +1ÿï08@R!wohnmobilforum.de/hubstuetzen.jpg +)ÿï08@Rwohnmobilforum.de/kro.png +2ÿï08@R"wohnmobilforum.de/luftfederung.jpg +5ÿï08@R%wohnmobilforum.de/motorradtraeger.jpg +)ÿï08@Rwohnmobilforum.de/ott.jpg +,ÿï08@Rwohnmobilforum.de/safety.jpg +,ÿï08@Rwohnmobilforum.de/trigas.jpg ++ÿï08@Rwohnmobilforum.de/waeco.jpg +.ÿï08@Rwohnmobilforum.de/wasserhy.jpg +/ÿï08@Rwohnmobilforum.de/wget/ebay.php +Fÿï08@R6wohnungswirtschaft-heute.de/wp-content/uploads/banner/ +^ÿï* +excitingcommerce.de08@R7wordpress.com^*/hk2021_exciting_commerce_bewegt_web.gif +Uÿï* +excitingcommerce.de08@R.wordpress.com^*/k5_banner_excom_255x60-gif.gif +Lÿï* +excitingcommerce.de08@R%wordpress.com^*/k5_klub_255x60_ec.gif +=ÿï08@R-wortfilter.de/wp-content/uploads/*_300x250px- +$ÿï08@Rwoz.ch/files/banner/ +Gÿï08@R7wp.com/custombike.de/wp-content/uploads/sites/*/banner_ +Gÿï08@R7wp.com/nh24.de/wp-content/uploads*/Gundlach_Liefern.jpg +;ÿï08@R+wp.com/nh24.de/wp-content/uploads/*-Banner_ +Nÿï08@R>wp.com/nh24.de/wp-content/uploads/*/201217_nh24_kalkulator.gif +Mÿï08@R=wp.com/nh24.de/wp-content/uploads/*/Anigif-Bonte-Nov-2020.gif +Lÿï08@Rwp.com/www.fuldainfo.de/fdi/wp-content/uploads/*_OnlineBanner_ +8ÿï08@R(ww-kurier.de/images/wwbanklogowetter.png +,ÿï08@Rww4.cad.de^*.php?what=*:*&n= +%ÿï08@Rww4.cad.de^*/axjs.php +ÿï08@Rx.sumikai.com^ +&ÿï08@Rxdate.ch/cache/banner_ +Aÿï08@R1xgadget.de/wp-content/uploads/*/ccbannersmall.jpg +.ÿï08@Rxhamster-sexvideos.com/cpanel/ +5ÿï08@R%xhamster-sexvideos.com/img/linklist2/ +"ÿï08@Rxhamsterde.com/ad/ +$ÿï08@Rxmassagen.ch/banner/ +Fÿï08@R6xmassagen.ch/wp-content/uploads/*/beauty-latinas-1.jpg +>ÿï08@R.xmassagen.ch/wp-content/uploads/*/immolady.jpg +:ÿï08@R*xmassagen.ch/wp-content/uploads/*/m27a.png +<ÿï08@R,xmassagen.ch/wp-content/uploads/*/ohlala.jpg +<ÿï08@R,xmassagen.ch/wp-content/uploads/*/swiss6.jpg +;ÿï08@R+xmassagen.ch/wp-content/uploads/*/vida6.jpg +Aÿï08@R1xmassagen.ch/wp-content/uploads/*/villa-venus.jpg +8ÿï08@R(xmassagen.ch/wp-content/uploads/*/xm.jpg +?ÿï08@R/xmassagen.ch/wp-content/uploads/*/xmassagen.jpg +8ÿï08@R(xmassagen.ch/wp-content/uploads/*/z6.jpg +'ÿï08@Rxn--zri6-0ra.ch/banner/ +-ÿï08@Rxnxx-porno.com/img/linklist2/ +ÿï08@Rxup.in/com/pop. +&ÿï08@Rxxx-amateur.eu/banner/ +*ÿï08@Rxxx-amateur.eu/werbung.php +Uÿï08@RExxx-amateur.eu/wordpress/wp-content/plugins/rnotify1.5.4_fullversion/ +Aÿï08@R1yoga-aktuell.de/wp-content/uploads/*_wide-banner- +Aÿï08@R1yoga-aktuell.de/wp-content/uploads/*_Wide-Banner_ +&ÿï08@Rzebradem.com^*/banner/ +8ÿï08@R(zentrum-der-gesundheit.de/apiv2/product/ +!ÿï08@Rzum.de/eduversum/ +<ÿï08@R,zurzeit.at/wp-content/uploads/*/Alm-Werbung- +7ÿï08@R'zurzeit.at/wp-content/uploads/*/Banner- +=ÿï08@R-zwerg-am-berg.de/wp-content/uploads/*/Banner_ +Iÿï* +googlesyndication.com* +g.doubleclick.net08@R /googleads. +`ÿï* +googlesyndication.com* +imasdk.googleapis.com* +g.doubleclick.net08@R /pagead2. +4ÿï* +imasdk.googleapis.com08@R _video_ads/ +,ÿï* +adfarm1.adition.com08@Rhttp: +-ÿï* +adfarm1.adition.com08@Rhttps: +Aÿï* +imasdk.googleapis.com* + autobild.de08@R 2mdn.net^ ++ÿï* + autobild.de08@R a.df-srv.de^ +9ÿï* + gofeminin.de* + autobild.de08@R +ad.71i.de^ +2ÿï* + autobild.de08@Rad.doubleclick.net^ +0ÿï* + gofeminin.de08@Rad.yieldlab.net^ +3ÿï* +googlesyndication.com08@R +ad4mat.de^ +*ÿï* + autobild.de08@R adcell.com^ +Sÿï* +googlesyndication.com* + gofeminin.de* + autobild.de08@R adform.net^ +@ÿï* +g.doubleclick.net* + autobild.de08@R adition.com^ +9ÿï* + autobild.de08@Radnxs-simple.com/creative/ +Aÿï* +widgets.outbrain.com* + autobild.de08@R +adnxs.com^ ++ÿï* + autobild.de08@R adrolays.de^ +Lÿï* +imasdk.googleapis.com* + autobild.de08@Radsafeprotected.com^ +-ÿï* + autobild.de08@Radsnative.com^ +*ÿï* + autobild.de08@R adsrvr.org^ +-ÿï* + autobild.de08@Radup-tech.com^ +Cÿï* + gofeminin.de* + autobild.de08@Ramazon-adsystem.com^h + autobild.deUa[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"]= + connextra.com(iframe[src^="https://ssl.connextra.com"]  +g.doubleclick.net#adunit? +musikexpress.de(iframe[src*="//fom.bildungscentrum.de/"]' +transfermarkt.de.OUTBRAIN .ob-p‘ +1õï* + autobild.de08@Rasadcdn.com/adlib/ +;ÿï* + autobild.de08@Rauto-bild.de/js/rd/google.js +4ÿï* +googlesyndication.com08@R betrad.com^ +0ÿï* + autobild.de08@Rcas.*.criteo.com^ +.ÿï* + autobild.de08@Rcas.criteo.com^ +Mÿï* +imasdk.googleapis.com* + autobild.de08@Rcdn.flashtalking.com^ +Gÿï* + gofeminin.de08@R'criteo.net/js/ld/publishertag.prebid.js +,ÿï* + gofeminin.de08@R f11-ads.com^ +6ÿï* +g.doubleclick.net08@Rflashtalking.com^ +Zÿï* +imasdk.googleapis.com* + gofeminin.de* + autobild.de08@Rg.doubleclick.net^ +2ÿï* + autobild.de08@Rgoogle.com/adsense/ +Nÿï* +g.doubleclick.net08@R)googlesyndication.com/daca_images/simgad/ +[ÿï* +googlesyndication.com* +g.doubleclick.net08@Rgooglesyndication.com/pagead/ +Eÿï* +g.doubleclick.net08@R googlesyndication.com/sadbundle/ +nÿï* +googlesyndication.com* +g.doubleclick.net* + gofeminin.de08@R googlesyndication.com/safeframe/ +Eÿï* +googlesyndication.com08@Rgooglesyndication.com/sodar/ +Bÿï* + autobild.de08@R#googletagservices.com/dcm/dcmads.js +Cÿï* + gofeminin.de08@R#googletagservices.com/tag/js/gpt.js +5ÿï* + autobild.de08@Rimasdk.googleapis.com^ ++ÿï* + autobild.de08@R moatads.com^ ++ÿï* + autobild.de08@R mookie1.com^ +Mÿï* + gofeminin.de* + autobild.de08@Rpagead2.googlesyndication.com^ +1ÿï* + autobild.de08@Rperfectmarket.com^ +5ÿï* + autobild.de08@Rplista.com/pictureads/ +-ÿï* + gofeminin.de08@R pubmatic.com^ +9ÿï* +g.doubleclick.net08@Rredintelligence.net^ +/ÿï* + autobild.de08@Rrtax.criteo.com^ +*ÿï* + autobild.de08@R sascdn.com^ +;"* + autobild.de08@Rservedby.flashtalking.com/imp/ +1ÿï* + autobild.de08@Rsmartadserver.com^ +8ÿï* +imasdk.googleapis.com08@Rsmartstream.tv^ +9ÿï* +imasdk.googleapis.com08@Rspotxchange.com^ +Mÿï* + autobild.de08@R.static.criteo.net/js/ld/publishertag.prebid.js +(ÿï* + autobild.de08@R teads.tv^ +Cÿï* +transfermarkt.de08@Rtmssl.akamaized.net//ads/ads.js +9ÿï* + autobild.de08@Rtpc.googlesyndication.com^ +C* + autobild.de08@R&track.webgains.com/link.html?wglinkid= +,ÿï* + autobild.de08@R yieldlab.net^ +-ÿë* + +toggo.de08@Rflashtalking.com^ +*ÿë* + +toggo.de08@Rsmartclip.net^ +dtb.de#AD + nd-aktuell.de#Ads( + +haufe.de#Ads_Billboard_container + +blick.de#BSB' +mazda-forum.info#BelowRectangleO +1kh.deA#Container > #head:first-child + #content + br + .spacer + center+ +privatmarkt.ch#ContentFooterPartner! +druckerchannel.de#DCA_TOP  +druckkosten.de +#DKGA_LEAD +druckkosten.de #DKGA_SKY- + eatsmarter.de#EAT_D_Index_Top_Wrapper% + anime2you.de#Fallback-Content, +inside-digital.de#INS_D_ROS_Parallax +staedte-info.net#Layer1 +staedte-info.net#Layer2< +tips.at-#Leaderboard_1_Superbanner_1_Billboard_1_Top_ + teltarif.de#LxShop + teltarif.de #LxTN2ADV + teltarif.de#LxTNADV + slashcam.de #MEDMRECHome$ + slashcam.de#MEDMRECHome2Lazy$ + slashcam.de#MEDMRECHome3Lazy +kinderspiele-welt.de#MR$ + mtb-news.de#MTB_M_ROS_Stickyî + +skiinfo.de#Midf +bauexpertenforum.de +windows-7-forum.net +elektrikforen.de +megane-board.de #MidRectangle +seo-suedwest.de#Mod373 +seo-suedwest.de#Mod416 + +netmoms.de#R1C2 + +netmoms.de#R1C3# + wiesbaden.de#SP-commercials3 + fussballn.de#SPMADS_fussballn_HOME_MEDREC_1 + teltarif.de #SpaceBefore" + teltarif.de#SpaceRectangle  + teltarif.de #SpaceTgtLink( +back-intern.de#StyleTM-TopBannerE% +#www-t--online-de.cdn.ampproject.org + t-online.de #T-85628670E% +#www-t--online-de.cdn.ampproject.org + t-online.de #T-86926496E% +#www-t--online-de.cdn.ampproject.org + t-online.de #T-ShoppingH% +#www-t--online-de.cdn.ampproject.org + t-online.de#T-shoppingboxC% +#www-t--online-de.cdn.ampproject.org + t-online.de #Tasfeed1C% +#www-t--online-de.cdn.ampproject.org + t-online.de #Tasfeed3N% +#www-t--online-de.cdn.ampproject.org + t-online.de#Tcontboxi + #TgboxfC% +#www-t--online-de.cdn.ampproject.org + t-online.de #Tlibelle¾ +dasheimwerkerforum.de +bauexpertenforum.de +vermieter-forum.com +windows-7-forum.net +mercedes-forum.com +skodacommunity.de +elektrikforen.de +fitness-foren.de +mazda-forum.info +notebookforum.at +megane-board.de +toyota-forum.de + pkw-forum.de + 1erforum.de + lpgforum.de #TopRectangle + 4crazy.de #UNWB300100 + 4crazy.de #UNWB300200 + 4crazy.de #UNWB300300= +stadtanzeiger-borken.de + +bbv-net.de#WallpaperBanner! + +6navi.ch#WelcomeBannerDiv" +neumarktaktuell.de#Werbung< + +ww3.cad.de*#WzTtDiV + table[width="100%"][border="0"]" +mallorcazeitung.es#_mo_cti  +musiker-board.de#abAside +spielesite.com#acTop +sis-handball.de#ad# + +heise.de#ad-landingpage-top) +timeanddate.de + pokewiki.de#ad1 + pokewiki.de#ad2 + pokewiki.de#ad3? +thinkpad-forum.de + myboerse.bz#ad_global_below_navbar + goldpreis.de +#ad_gsbuch% +kreuzwort-raetsel.net#ad_ic_1% +kreuzwort-raetsel.net#ad_ic_2* + +1und1.de +gmx.net +web.de#adc1* + +1und1.de +gmx.net +web.de#adc2 + +webwiki.de #addmeright + +webwiki.de #addmetop  +engadinerpost.ch#aditems +web.de#ads) +radiobielefeld.de#adsd_skyscraper# + infoheute.de#adsight-sliderf + abload.deU#adunten + div[style="font-size:8pt; color:#999999; margin-left:39px; width: 728px;"]# +voucherwonderland.com#adup1# +voucherwonderland.com#adup3# +voucherwonderland.com#adup53 + t-online.de #advertMarkerHorizontalContainer +kath.ch #advertising" +tomsnetworking.de #advleft1" +tomsnetworking.de #advleft2" +tomsnetworking.de #advleft3" +tomsnetworking.de #advleft4! +tomsnetworking.de#advlrb1' + teslamag.de#after-header-banner% +android-hilfe.de #ah_bb_footer2 +fussballnationalmannschaft.net #ai_widget-5 + +ariva.de #aktieImFokus( +tiervermittlung.de#amazon_300x90Á + +skiinfo.de #anchorBG1 +100urlaubsziele.de#angeboteStartseite2018 + moonsault.de#anzeige& +eindeutscherporno.com #anzeige9+ + charivari.de#anzeige_mso_skyscraper) + charivari.de#anzeige_skyscraper_2 + +hl-live.de +#anzeiged2( +haustechnikdialog.de #anzeigendiv + falter.at#anzeigenkenzz9 + amazon.de(#ape_Detail_ad-endcap-1_Glance_placement) + willhaben.at#apn-large-content-ad* + willhaben.at#apn-large-leaderboard) + willhaben.at#apn-large-skyscraper$ + willhaben.at#apn-leaderboard +gamersglobal.de#arb" + +ariva.de#ariva\.de_d_1x1_1, + +ariva.de#ariva_de_d_300x250_2_filler + pi-news.net#as2931 + raidrush.net #aside_left +madchensex.com#au# + darts1.de#automaten-richtern +apotheken-umschau.de +ok-weinstrasse.de +gamekeyfinder.de +kultur-port.de + bz-berlin.de#banner[ +donnerwetter.at +donnerwetter.ch +donnerwetter.de + all-in.de#banner-container# + macgadget.de#banner-floater" + tff-forum.de#banner-left-1" + tff-forum.de#banner-left-2" +scfreiburg.com #banner-news$ +dasoertliche.de #banner-right# + tff-forum.de#banner-right-1# + tff-forum.de#banner-right-2  + +redsite.ch#banner-sliderM +dasoertliche.de + sexy-land.ch + chefkoch.de + +annos.de #banner-top= + testedich.ch + testedich.de#banner-top-all-viewports2 +kriminalpolizei.de#banner-wrapper-right-v30 +kriminalpolizei.de#banner-wrapper-top-v1" +altertuemliches.at#banner5# + all-in.de#banner6_container' +tippspiel.wa.de#bannerContainer + +bbheute.de #bannerLink# +nrhz.de#banner_container_rc  + geemag.de#banner_content$ + saiten.ch#banner_leaderboard( +nrhz.de#banner_left_container_lc$ +sonic-seducer.de #banner_oben( +dreingau-zeitung.de #banner_right +juve.de#banner_sidebar4 +dreingau-zeitung.de + +linguee.de #banner_top! + saiten.ch#banner_vertical + +queer.de #banneroben + +port01.com #bannerpos2 + +queer.de #bannerrechts) +breakpoint.untergrund.net#banners + +heise.de #bannerzone2 +kroatien-nachrichten.de#bdaia-widget-e3-102 +kroatien-nachrichten.de#bdaia-widget-e3-112 +kroatien-nachrichten.de#bdaia-widget-e3-122 +kroatien-nachrichten.de#bdaia-widget-e3-141 +kroatien-nachrichten.de#bdaia-widget-e3-93 +kroatien-nachrichten.de#bdaia-widget-html-43 +kroatien-nachrichten.de#bdaia-widget-html-7% +karrierebibel.de #below-header, + +mydealz.de#belowCommentsAdSlotPortal. + +mydealz.de#belowCommentsFuseZonePortal/ + +mydealz.de#belowDescriptionAdSlotPortalø1 + +mydealz.de#belowDescriptionFuseZonePortal+ + +mydealz.de#belowDetailsAdSlotPortal- + +mydealz.de#belowDetailsFuseZonePortal" +osthessen-news.de #bigklickA +inside-digital.de + modhoster.de + tikonline.de#bigsize  + magistrix.de #bigsize-top" + modhoster.de#bigsize_inner% +rund-magazin.de#bigsizebannerb +stuttgarter-zeitung.de +dastelefonbuch.de +computerbild.de +bergsteiger.de +#billboardÔ +automobil-produktion.de +werkzeug-formenbau.de +plastverarbeiter.de +all-electronics.de +kgk-rubberpoint.de +neue-verpackung.de +technik-einkauf.de +instandhaltung.de +chemietechnik.de +automotiveit.eu +pharma-food.de + produktion.de + fertigung.de + ki-portal.de + +ke-next.de + +fluid.de#billboard-container) +kochrezepte.at#billboard-location +rtl.de #billboard_1^ +insuedthueringen.de +frankenpost.de + np-coburg.de + kurier.de#billboard_1_wrapper^ +insuedthueringen.de +frankenpost.de + np-coburg.de + kurier.de#billboard_2_wrapperQ +insuedthueringen.de +frankenpost.de + np-coburg.de#billboard_3_wrapperQ +insuedthueringen.de +frankenpost.de + np-coburg.de#billboard_4_wrapperq + myhomebook.de + travelbook.de + finanzen.net + stylebook.de + techbook.de + +fitbook.de#billboard_btf$ + finanzen.net#billboard_btf_2% +radiobielefeld.de #billboardad  + +veggies.de#bjorn-text-20  + +veggies.de#bjorn-text-22  + +veggies.de#bjorn-text-24 + pferdekult.de #block-17- +finanzen-nerd.de + fabino.de#block-2) + realtotal.de + fabino.de#block-3  +finanzen-nerd.de#block-7" + jungle.world#block-anzeige# + macgadget.de#block-anzeige2 +zum.de#block-block-14! + hoerzu.de#block-block-217! + hoerzu.de#block-block-218' +fachzeitungen.de#block-block-32' +fachzeitungen.de#block-block-35& +fachzeitungen.de#block-block-5? +online-webradio.com +buecher-magazin.de#block-block-7( +buecher-magazin.de#block-block-83 + +duden.de##block-dudende-d-970x250-1billboard) + +duden.de#block-leaderboard2ndslot, + +duden.de#block-lexemleaderboardunten/ + macgadget.de#block-macgadget-anzeigen-36 + macgadget.de"#block-macgadget-textwerbunglinks1. + macgadget.de#block-macgadget-verlosung  + +haustec.de#block-network8 + windowspro.de##block-views-sponsoredcontent-block6 + windowspro.de!#block-views-sponsoredpromo-block +boersennews.de #bnBanner$ +boersennews.de#bnPromotional, +redensarten-index.de#bnnr_u_suchfeld" + trendyone.de#bottom-blocks2 +austrianwings.info#box-bottom > .box-inner/ +austrianwings.info#box-top > .box-inner +esport.cologne#brands. +kleinanzeigen.de#brws_banner-supersize + +formel1.de #bs-container& +kleinanzeigen.de#btf-billboard  +gekonntgekocht.de#buybox + +steuern.de#c11507 + vsport.at#c17 +dsv.de#c3296 +hsg-wetzlar.de#c5307 +dsv.de#c5812 +gruen-weiss.at #carousel, +urnerwochenblatt.ch#carouselInserate + sexei.net#catfadÇ' + polizei.news#centcon-side-innerÎ +xhamster-sexfilme.com +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com#chatins_frame' +beliebtestewebseite.de #checkdiv6 +godmode-trader.de#coba_trading_investment_news& +steuerlinks.de#colLeft > #info) +steuerlinks.de#colRight > #search# + regional.de#commercialLinks- + lowbeats.de#container-sidebar-banners� +allgaeuer-zeitung.de +weser-kurier.de +brv-zeitung.de + goslarsche.de + tageblatt.de + teckbote.de + +pz-news.de + dtoday.de#container_banner  + mediabiz.de #container_fs" + mediabiz.de#container_left' + boerse.de#container_rectangle_1# + mediabiz.de#container_right% + biothemen.de#content + #right* +marketing-boerse.de#content-banner( +onlinereports.ch#content-banner1( +onlinereports.ch#content-banner3) +dasoertliche.de#content-billboard2 +kunst-zeiten.de#content-bottom-highlighted  + ladies.de#content-solads# + blogtotal.de#content_banner% +rund-magazin.de#contentbanner  + seorch.de#crazyclownhint + +89.0rtl.de +#customWer +uepo.de#custom_html-107 +uepo.de#custom_html-1102 +kriegsberichterstattung.com#custom_html-12& +tarnkappe.info#custom_html-121& +tarnkappe.info#custom_html-126& +tarnkappe.info#custom_html-127& +tarnkappe.info#custom_html-132& +tarnkappe.info#custom_html-143& +tarnkappe.info#custom_html-144& +tarnkappe.info#custom_html-145, +rc-modellbau-blog.com#custom_html-17R +wiener-online.at +einkochen.info + ipadblog.de +nh24.de#custom_html-2# + popkultur.de#custom_html-21, +andalusien-aktuell.es#custom_html-22# + dvd-forum.at#custom_html-27c +windowspower.de + healthhelp.ch + daily-pia.de + likehifi.de + +perbene.ch#custom_html-3M +presse-nachrichten.de +urheberrecht.de + ipadblog.de#custom_html-41 +radsportjournaltourman.com#custom_html-42T +radsportjournaltourman.com +nachrichten.es +primavera24.de#custom_html-5> +haus-garten-magazin.de +nachrichten.es#custom_html-6 +uepo.de#custom_html-77= +digitalfernsehen.de +eu-vertretung.de#custom_html-8 +uepo.de#custom_html-88Q +kriegsberichterstattung.com +eu-vertretung.de + +mixed.de#custom_html-9 +uepo.de#custom_html-95 +uepo.de#custom_html-97+ +wochenblatt.pl#custom_post_widget-6 + city23.at #dabplusshop: +finanznachrichten.de +wallstreet-online.de#dban1: +finanznachrichten.de +wallstreet-online.de#dban2" +wallstreet-online.de#dban3! +wallstreet-online.de#dcb1! +wallstreet-online.de#dcb2) +bluray-disc.de#deals-aktionen-box$ + finews.ch#degussa-sponsoring. +wallstreet-online.de#derivativecockpit+ +tarnkappe.info#desktop_understitial + gamestar.de #dfp-header( + gamestar.de#dfp-header-container + +ariva.de#dianomiiFrameÞ( +kalender-365.eu#dish-top-desktop" +agriaffaires.de #display-ga% + vienna.at#div-bigsizebanner_1. +bmw-syndikat.de#div-dfp-index1_300x250. +bmw-syndikat.de#div-dfp-index2_300x250 + +nextpit.de #div-header* + +nextpit.de#div-sidebar_right_extra) +adspecials.sevenonemedia.de#divBG* +ehc-lustenau.at#djslider-loader227* +ehc-lustenau.at#djslider-loader229! +chip.de#dlcharts-list + a: +allgaeuer-zeitung.de#dm_conative_container_artikel9 +finanznachrichten.de +wallstreet-online.de#dmr19 +finanznachrichten.de +wallstreet-online.de#dmr2% +dnv-online.net#dnvsuperbanner# + dogforum.de#dogforum_footer# + dogforum.de#dogforum_header" +wallstreet-online.de#dout1& +drehscheibe-online.de #dsBanner/ +dastelefonbuch.de#dtm_multiboxcontainer  +gelbeseiten.de +#dtm_super/ +teilzeithelden.de#enhancedtextwidget-11/ +teilzeithelden.de#enhancedtextwidget-12 + fremdwort.de#ezisgib% +bundesliga-streams.net#fcnbox + uhrforum.de#fh-div… +roboter-forum.com +skodacommunity.de +pedelecforum.de +toyota-forum.de + autoextrem.de + uhrforum.de#fh-inside-bottom’ +skodacommunity.de +pedelecforum.de +toyota-forum.de +win-10-forum.de + autoextrem.de + usp-forum.de + winboard.org#fh-outside-top$ +rewe.de#flagship_productlist! +spreeblick.com #flattr > a! +spreeblick.com #flattr > p, +finanznachrichten.de#fn-ankuendigung +rasa.ch#footer" +zum.de#footer-banner-frame  + tennis.de#footer-partner8 +americaurlaub.de + kremser-sc.at#footer-widgets + +b2run.de#footerpartners + +dforum.net #forumbanner# +heilfastenkur.de #fragenflex +mufa.de #freikarten + +freenet.de +#frnBanner' +sportdeutschland.tv #fullbanner2, +wallstreet-online.de#fullsizeBanner1J +pornhutdeutsch.com +analsexporno.net + free-gay.org #fx_imbanner$ +tv-huettenberg.de #g-expanded" +tv-huettenberg.de #g-header- + winfuture.de#g_content_recommendation% +tschechien-online.org#gad-sky. +tschechien-online.org#gads-leaderboard  +hierspielen.com #gamelead9 +mein-schoener-garten.de#gen_inside_mobile_wrapper2 +mein-schoener-garten.de#gen_inside_wrapper/ +mein-schoener-garten.de#gen_top_wrapper$ + frag-mutti.de#gf-superbanner8 + gutekueche.at + gutekueche.de#gkf-adslot-header. +kartfahrer-forum.de#globalAnnouncementÖ +goettinger-tageblatt.de +ostsee-zeitung.de + maz-online.de + neuepresse.de + op-marburg.de + paz-online.de + waz-online.de + kn-online.de + ln-online.de +haz.de +lvz.de +cz.de#gpt_superbanner# +hsg-pohlheim.de #greyscale-2, + androidmag.de#gridwrapper_appsbuehne" +wiener-online.at +#hab-right  +wiener-online.at#hab-top +tarnkappe.info #halfpage% + immo4trans.de#halfpage-banner# +perfektdamen.co #hat_messageð7 +onlinehaendler-news.de#hbpartner-logo-container# +belgieninfo.net #head_banner + mtb-news.de#headerl +directindustry.de +medicalexpo.de +rotelaterne.de + nauticexpo.de + archiexpo.de#header-banner( + mtb-news.de#header-banner-mobile  + +preis.de#header-image-js= +diegrenzgaenger.lu##header-wrapper + div[class="row "] + +klamm.de #header_main, + amazon.de#heroQuickPromo_feature_div +kino.de #hockeystick' +kleinanzeigen.de#home-billboard + ladies.de #home-teaser( +nibelungen-kurier.de #homeDisplay' + winfuture.de#homepage_rectangle& +immoauktionen.de#immowebAdCont1 +finanzfluss.de#in-search-ad-kommer-matomo. +finanzfluss.de#in-search-invesco-01-25# +familienkost.de #incontent_1# +familienkost.de #incontent_2 + bz-berlin.de#inpage  + abload.de#iphpbannerleft + +golem.de +#iqadtile5/ +handelsblatt.com + +ariva.de #iqd_mainAd + rp-online.de +#ir_rpd_lb* + finanzen.net#ishares_etf_variation" + juraforum.de#jf-stroer-sky* + juraforum.de#jf-stroer-superbanner + +local.ch +#js-banner1 +ostfriesischer-kurier.de#jsn-pos-user-top, +forum.kinder.de#kinder\.de_sitebar_1, +forum.kinder.de#kinder\.de_sitebar_2" + +klamm.de#klamm\.de_forum_1" + +klamm.de#klamm\.de_forum_3& + +klamm.de#klamm\.de_incontent_1% +wallstreet-online.de #kosocgen +laborjournal.de#kratzer  +mein-wetter.com #labelpub + abload.de +#layerleft + abload.de #layerright + +tellows.de +#lb_header­ +dasheimwerkerforum.de +bauexpertenforum.de +vermieter-forum.com +windows-7-forum.net +mercedes-forum.com +skodacommunity.de +fitness-foren.de +mazda-forum.info +notebookforum.at +megane-board.de +toyota-forum.de + pkw-forum.de + 1erforum.de + lpgforum.de#leader_top_deskŠ +pocketnavigation.de +hardwareluxx.de +bergsteiger.de + videoaktiv.de + anrufer.info + skiinfo.com + +skiinfo.de #leaderboard1 +barrierefreie-immobilie.de#leaderboard-bg/ +bauexpertenforum.de#leaderboardBelowNavX +insuedthueringen.de +frankenpost.de + np-coburg.de + kurier.de#leaderboard_1" + +koelner.de#leaderboard_nav$ +anime-loads.org #leaderwidget/ + +macwelt.de + pcwelt.de#leadfullWrapper* + autouncle.de#left-banner-container2 +kleinanzeigen.de#liberty-home-above-header/ +kleinanzeigen.de#liberty-home-billboard. +kleinanzeigen.de#liberty-vip-billboard+ +kleinanzeigen.de#liberty-vip-middle, +kleinanzeigen.de#liberty-zsrp-bottom0 +kleinanzeigen.de#liberty-zsrp-top-banner# + +lmdfdg.com#link_placeholder( +oberpfalzecho.de#local-rectangle) +bbc-magazin.com#logo-right-widget. +adspecials.sevenonemedia.de #logoFalken$ +neuelandschaft.de #logobanner‚ + +filmz.der#m > div[style="left:16px;width:468px;overflow:hidden"] + .p[style="left:4px;width:492px;height:262px"]:last-child  + m.mobile.de #m_vip_slot_2 + m.mobile.de +#m_vip_topB% +#www-t--online-de.cdn.ampproject.org + t-online.de#ma_mrecî" +rotelaterne.de #main-banner# +hc-erlangen.de #main-sponsor  + ef-magazin.de #marktplatz# +africa-positive.de #masthead + startxxl.com#mcebox# + startxxl.com#mcebox-sidebar +eihi.de#media_gallery-2% +tarnkappe.info#media_image-10$ + mdz-moskau.eu#media_image-23G +basicthinking.de +9elf-magazin.de + +zurzeit.at#media_image-3  + lokalo.de#media_image-31  + lokalo.de#media_image-33  + lokalo.de#media_image-34  + lokalo.de#media_image-39k +africa-positive.de +pressecop24.com +golfmagazin.de + kremser-sc.at + synmag.de#media_image-4  + lokalo.de#media_image-41  + lokalo.de#media_image-42# + kremser-sc.at#media_image-5# + kremser-sc.at#media_image-6# + kremser-sc.at#media_image-7# + kremser-sc.at#media_image-8# + kremser-sc.at#media_image-9# +dasoertliche.de #medium_rect+ +feinehilfen.com#metaslider_widget-3/ + av-views.com#mh_magazine_custom_posts-50 + +koeln.de #mini-panel-rs_teaser_verpoortenY +insuedthueringen.de +frankenpost.de + np-coburg.de + kurier.de#mobilebanner_11 +hceintracht-hildesheim.de#module-sponsors& +wallstreet-online.de +#mooTicker5 +wallstreet-online.de#mooTickerContainerMobile +gamereactor.de#mpu$ + finanzen.net +bild.de#mrec + hoerzu.de #mrec-wrapper& + +mydealz.de#mrec1FuseZonePortal& + +mydealz.de#mrec2FuseZonePortal@ +mein-schoener-garten.de!#msg_leaderboard_1_mobile_wrapper  + nwzonline.de #msn-ads-top) + rezeptwelt.de#mso-dplusc-banner_1) + rezeptwelt.de#mso-dplusc-banner_2) + rezeptwelt.de#mso-dplusc-banner_51 +meetingpoint-brandenburg.de#myspacerinner1 +meetingpoint-brandenburg.de#myspacerright, +wissens-quiz.de#naMediaAd_MR_WRAPPER + +fupa.net#nab_container + utopia.de #native_ads26 +mein-schoener-garten.de#native_desktop_wrapper5 +mein-schoener-garten.de#native_mobile_wrapper' +balaton-zeitung.info #nav_menu-2" + dvd-forum.at#nerdic_header, +wallstreet-online.de#newsDesktopFlag +news.de#news_content_1 +news.de#news_content_2 +news.de#news_content_3 +news.de #news_header + wiiunews.at #newupcoming# +namibia-forum.ch #nfad-inner + +kinomax.to #ni-overlay) + nordkurier.de#nordkurier\.de_bb_1) + nordkurier.de#nordkurier\.de_bb_2) + nordkurier.de#nordkurier\.de_lb_1) + nordkurier.de#nordkurier\.de_mr_1) + nordkurier.de#nordkurier\.de_mr_2 +madchensex.com#nrad% +bundesliga-streams.net#nwmlayÏ + nydus.org +#ny_banner + nydus.org#nyba + nydus.org #nybanner8 + nydus.org'#nydus_org_970x300_billboard_responsive# +pedelecforum.de #oc24-direktg +autoexperience.de +flugzeugforum.de +xbox-passion.de + gs-forum.eu + uhrforum.de #oc24-div+ +elektrikforen.de#oc24_container_top  + +spox.com#oddsserve-csi-1 + +yasni.de#offer* +planetradio.de#omsRectangleChannel" + onmeda.de#on-footer-banner + onmeda.de #on-rectangle + onmeda.de#on-sky# +tiervermittlung.de #openx_LB) +nachrichten.at#outbrain_container  + +xgadget.de#outerBoxStart3 +smart-rechner.de#outer_SR_banner_ganz_unten> +smart-rechner.de&#outer_SR_rechner_banner_unter_rechner? +smart-rechner.de'#outer_SR_rechner_display_unter_rechner" + myself.de#outofpageWrapper + windowspro.de +#p3wrapper" + ladies.de#page-closing-sol+ + +hstt.net#page-header + br + .forabg + ladies.de #page-top-sol$ + nordbayern.de#page_billboard" +inside-digital.de #parallax  + parcello.org #parcello-mo1 +moz.de +swp.de#parent-adbox-superbanner% + +comback.ch +h-bw.de#partner# +efahrer.chip.de #partner-nav$ +cash.ch#partner-teaser-links- +fundresearch.de#partnerCentersLogoBar- +volleyball-bundesliga.de #partnerLinks0 +pedelecforum.de#pedelecforum\.de_mpu_bot% +tiervermittlung.de #petsexpert, +photovoltaikforum.com#pf_incontent_2. +belgieninfo.net#pis_posts_in_sidebar-6 + moviejones.de#plista2 +extremnews.com#portlet-advertisement-right" + wein.plus#premium-partners& +bluray-disc.de#pricechange-box + +golem.de +#pricehits. +motorradundreisen.de#print_bannergroup% +rewe.de#productGrid__flagship2 + +mydealz.de #productIncontent1FuseZonePortal2 + +mydealz.de #productIncontent2FuseZonePortal/ +adspecials.sevenonemedia.de #promobalken + fanfiktion.de#qql( +radiobielefeld.de#quality_footer8 + infoheute.de$#r89-desktop-billboard-atf-0-wrapper4 + infoheute.de #r89-desktop-incontent-0-wrapperE + raidrush.net1#raidrush_net_1000x100_sticky_acnhorad_responsive  +tarnkappe.info +#rectangle/ + gamestar.de#rectangle-container-desktop + kurier.de #rectangle_1? +insuedthueringen.de + np-coburg.de#rectangle_1_wrapper + kurier.de #rectangle_2! +gelbeseiten.de #rectangles + +produck.de #rel-article: +pressecop24.com##responsive_lightbox_image_widget-5: +pressecop24.com##responsive_lightbox_image_widget-6! + goyellow.de#resultInfeed1< +urlaubsguru.de&#revista-de-viajes_contentAd_container+ + autouncle.de#right-banner-container®) +gebraucht-kaufen.de#right-banners + nydus.org #right160x600 + +tvhalle.de +#rightCont/ +einrichtungsbeispiele.de#rightcolumndiv4 +roboter-forum.com#roboter-forum\.com_mpu_bot4 +roboter-forum.com#roboter-forum\.com_mpu_top5 +rollertuningpage.de#rollertuningpage\.de_lb_1: +rollertuningpage.de#rollertuningpage\.de_sitebar_1: +rollertuningpage.de#rollertuningpage\.de_sitebar_2 +h-bw.de#rothaus-aktion + prisma.de +#rp_rpd_bb< +diebildschirmzeitung.de#rstpl-before-higher-position# + +fvnws.ch#rv_sponsors_slider + myself.de #sb1Wrapper) + fitforfun.de#sc-outstream-wrapper! + zueri6.ch#section-f09c501& +finanzen100.de#section-partner& +fuw.ch#section-sponsored-blogs2 +darkpantersclan.de.tl#selfpromotionOverlay4 +gmx.net +gmx.ch +web.de#service-linklist( +gmx.net +web.de#service-middle! +boersennews.de #sgFeedList! + uhrforum.de#shuffled-item& + uhrforum.de#shuffled-sponsored  +madchensex.com +#side-spot{ +auswandererforum.de +aquariumforum.de + abnehmen.com + radforum.de + +pferd.de!#sidebar > li > .ffwidget_sidebar' + +areadvd.de#sidebar-left #text-5& +primeleague.gg#sidebar-sponsor, + +mydealz.de#sidebarMiddleAdSlotPortal) + +mydealz.de#sidebarTopAdSlotPortal% + uhrforum.de#sidebar_container1 +pinksugar-kessy.de#sidebar_right > #HTML71 +pinksugar-kessy.de#sidebar_right > #HTML9' +finanznachrichten.de #sideteaser + +ariva.de#siteTeaserBox' +wallstreet-online.de #siteteaser# +redensarten-index.de#skbnnrI +hardwareluxx.de +gamereactor.de + itmagazine.ch +mopo.de#sky% + +nextpit.de#sky-left-container, +clever-tanken.de#sky-tisoomi-wrapper +gamereactor.de#sky2_1# +ad-hoc-news.de #skyL_wrapper# +ad-hoc-news.de #skyR_wrapper" +aktionspreis.de #skyScraper + videoaktiv.de#skypos¯ +beobachter-online.de +neuelandschaft.de +fussballdaten.de +firmenwissen.de +tourenfahrer.de + anrufer.info + eurogamer.de + stereo.de + +halle.de #skyscraper* +it-production.com#skyscraper-group/ +it-production.com#skyscraper-group-left% +stuttgarter-zeitung.de#slider7 +rhoenundsaalepost.de + obermain.de #slot-banner: +rhoenundsaalepost.de + obermain.de#slot-rectangle4 +rhoenundsaalepost.de + obermain.de #slot-sky. +zentrum-der-gesundheit.de #slot__header" +kochrezepte.at #slot_middle$ +kochrezepte.at#slot_middle_2" + +bigfm.de#smartclip-overlay + +smsgott.de #smsboxIframe% +factsverlag.de#sp-content-top# +wochenblitz.com #sp-sidebar1’ +xhamster-sexfilme.com +sexvideos-gratis.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +hd-sexfilme.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +halloporno.net +pornofelix.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornohans.com + hdpornos.net + pornoente.tv + pornotom.com + sexente.com#special_column5 +hd-pornos.info + pornoente.tv#spezial_column+ + mv-spion.de#spion_content_containerS& +$deutsche-mittelstands-nachrichten.de +chemnitzerfc.de + +games.ch#sponsor' +oberpfalzecho.de#sponsor-banner¦) +vfl-gummersbach.de#sponsor-footer# +wetteralarm.at #sponsor-info% +hsg-wetzlar.de#sponsor-slider' + itmagazine.ch#sponsorbutton_div- +digitalkamera.de +h-bw.de +#sponsoren# + ssv-jahn.de#sponsorenleiste + +bayer04.de #sponsors" + +uniliga.gg#sponsors-tablet' +hallescherfc.de#sponsors_slider + frauporno.com#spz_42 + +radiofr.ch#square + +queer.de #startrechts + 11889.com #sticky-aside* + 11880.com#sticky-aside-placeholder' + finanzen.net#sticky-superbanner + nydus.org #stickyaside( +radiobielefeld.de#stickyfooterAd' +studis-online.de#ston-billboard< +bafoeg-rechner.de +studis-online.de#ston-footer-ad + raidrush.net #stpd_close- +eu-vertretung.de#stream-item-widget-2- +eu-vertretung.de#stream-item-widget-36 +allgaeuer-zeitung.de#stroeer-container-banner2. + all-in.de#stroeer-container-pubperform + +sims-3.net +#subheader7! +deutsche-versicherungsboerse.de#superBContainer# +aktionspreis.de #superBannerì +fussballdaten.de +firmenwissen.de + myhomebook.de + travelbook.de + bz-berlin.de + stylebook.de + techbook.de + +fitbook.de + +petbook.de + 1000ps.at + 1000ps.ch + 1000ps.de + +golem.de +bild.de +ffn.de #superbanner% + hoerzu.de#superbanner-wrapper) +chilloutzone.net#superreplacement% +suche.t-online.de #tMRM_amazon' +suche.t-online.de#tMRM_billigers + ddl-warez.cc_#tab-1 p:nth-of-type(1),#tab-1 p:nth-of-type(2),#tab-1 p:nth-of-type(3),#tab-1 p:nth-of-type(4)$ +liveticker.com#tab-live-odds+ +stuttgarter-zeitung.de #taboola-mhsd, + marktindex.ch#td_uid_9_6141b5fdcbe72 + +4kfilme.de#tdi_39 + lokalo.de#tdi_679 + watson.de +giga.de +kino.de#teaserheld-header% + tennisnet.com#tennisnetWidget$ +eishockey-magazin.de#text-10 +nh24.de#text-11  +hockey-news.info#text-12 +nh24.de#text-13I +trinkwasserguru.de +americaurlaub.de +motormobiles.de#text-14 +motormobiles.de#text-16 +blogprojekt.de#text-18 + tollabea.de#text-19^ +computerschach.de +nachrichten.es +randombrick.de + tollabea.de +nh24.de#text-2 +ebook-fieber.de#text-20 +nh24.de#text-21. +bitcoinnews.ch + rlc-gamer.de#text-24 +nh24.de#text-26/ +spielesnacks.de + rlc-gamer.de#text-27) +bitcoinnews.ch +nh24.de#text-28f +ecommerce-vision.de +bitcoinnews.ch +via-ferrata.de + rlc-gamer.de + laufzeit.de#text-29 +blog-der-republik.de +computerschach.de +bitcoinnews.ch + ddl-warez.cc + +radzeit.de + +nen-n.de +nh24.de#text-3. +bitcoinnews.ch + ligablatt.de#text-31 +bitcoinnews.ch#text-32 +motormobiles.de#text-33 +nh24.de#text-35 +motormobiles.de#text-392 +fahrzeuglackiererforum.de +cvj.ch#text-4 +motormobiles.de#text-41¸% +motormobiles.de#text-421 +geocaching-magazin.com +nh24.de#text-48 +sparneuwagen.de#text-53 +nh24.de#text-54 +sparneuwagen.de#text-560 +algarve-entdecker.com +nh24.de#text-59- +fussballnationalmannschaft.net#text-6 + lokalo.de#text-60 + isaswomo.de#text-64 + apfelpage.de#text-655 +supermarkt-inside.de +via-ferrata.de#text-8 +via-ferrata.de#text-9+ +windowspower.de#text-html-widget-15. +handy-auf-raten.com#text-html-widget-3! + +focus.de#tfm_footer_yield  + fremdwort.de #thgirrennabx +kuehlschrank.com +staubsauger.net +kopfhoerer.com +schlafsack.net + fernseher.org + laufband.org#tip_top' +bluray-disc.de#top-angebote-box; +it-production.com + +focus.de +fool.de #top-banner% +otr.datenkeller.net +#topBanner' + my-ladies.ch#topBannerContainer +tarnkappe.info#top_0 + raidrush.net#top_ga + wintotal.de#topads$ +selbstaendig-im-netz.de#topb + bitsundso.de +#topbanner7 +wetteronline.at +wetteronline.de #topcontainer! +badenerzeitung.at#topleft + myfont.de #toplists% +radiobielefeld.de #topmobileAd& +radiobielefeld.de #topmobileAd2$ +buecher-magazin.de +#topshadow  +suche.t-online.de#tpctop( +hc-neumarkt.com#tr-contentbottom! + pornotim.com #tracking-url  +kinofilme.ucoz.com#trade! + biallo.de#tso-billboard-1' + teltarif.de#ttParallaxcontainer  + teltarif.de #ttTarifTable² +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com #tt_content  +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com #tt_wrapperV +pornohirsch.net +pornotanja.com + pornolisa.com + pornoente.tv #ttt_wrapper + tvdigital.de #tvd-ad-top( + finanzen.net#ubs-banner-fallback + uhrforum.de#ufa-top& +wildesporno.xxx#unten_anzeigen +tips.at#upsellerSidebar- +wetter-deutschland.com#urban-medrect1- +wetter-deutschland.com#urban-medrect2> +iphone-ticker.de +ifun.de#verbraucherhinweis-300x600: +iphone-ticker.de +ifun.de#verbraucherhinweis-970> +iphone-ticker.de +ifun.de#verbraucherhinweis-970x250= +iphone-ticker.de +ifun.de#verbraucherhinweis-latestE +iphone-ticker.de +ifun.de"#verbraucherhinweis-single-300x250 + raidrush.net +#vidcrunch$ +drpornofilme.com #video-right& +kleinanzeigen.de#vip-billboard* +kleinanzeigen.de#vip_pro-billboard, +digitalphoto.de#vlybyOneByOneWrapper@% +#www-t--online-de.cdn.ampproject.org + t-online.de#vmsky@ +sexvideoskostenlos.net +sexfilmegratis.net #wa_join_btn� +xhamster-sexfilme.com +sexvideos-gratis.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +hd-sexfilme.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +halloporno.net +pornofelix.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornohans.com + hdpornos.net + pornoente.tv + pornotom.com + sexente.com +#wa_widget + +games.ch +#wallpaper& +spielesnacks.de#wallpaper-linkÁ$! + +koelner.de#wallpaper_left" + +koelner.de#wallpaper_right± +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com +#wb_widgetT +pornohirsch.net +pornotanja.com + pornolisa.com + pornoente.tv +#wc_wdiget² +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com #wc_widdget + astronews.com #wcontent' + +bayer04.de#web-trekk-pageupdate, +blog-it-solutions.de#webcontentstart% + weekli.de#weekli-interstitial + weltwoche.ch #werbungTop@ + winfuture.de,#wfv4_bb2_lazyload[style="min-height:250px"]* +belgieninfo.net#widget_sp_image-144 +travelguide-en.org#wn-insurance-quote-editor + +ariva.de +#woAktieiF) +wetteronline.de#woFooterBillboard/ +meetingpoint-brandenburg.de #wobra-suche' +digitalkamera.de#workshopWidget + +ariva.de#wpAktieImFokus- + +areadvd.de#wrapper > div[class] > img% + unicum.de#wrapper-banner-head + raidrush.net#wraptt- + pocketpc.ch#xxParentDivForWerbPostbit + ladies.de#zeiten + meinestadt.de.-dfp + +au-ja.de.ADVBOX$ +preissuchmaschine.de.AFS_ADD + +onvista.de.ANZEIGEÖ +coating-converting.de +textiletechnology.net +fibers-in-process.de +fleischwirtschaft.de +praxistipps.focus.de +umweltwirtschaft.com +agrarzeitung.de +finanzfrage.net +food-service.de +packaktuell.ch + gutefrage.net + packreport.de + abzonline.de + horizont.net + ma-report.de +ahgz.at +ahgz.de +fvw.de.Ad + +focus.de.Ad-Slot + gutefrage.net .AdSticky, +finanznachrichten.de.Ad_FinativeHome+ +finanznachrichten.de.Ad_ImageTeaser' +finanznachrichten.de .Ad_SmartAdG +vermieter-forum.com +elektrikforen.de + jungewelt.de.Anzeige? +praxistipps.focus.de +praxistipps.chip.de .Article__AdB +praxistipps.focus.de +praxistipps.chip.de.Article__Promo + +onvista.de +.BILLBOARD +blackdevils.team.Banner% +reisereporter.de .Banner--isAd( +fc-suedtirol.com.BannerContainer$ + +momondo.de.Common-Kn-Display, + +momondo.de.Common-Kn-Rp-FlightInline' + swoodoo.com.Common-Kn-Rp-Inline* +mactechnews.de.Content_1-minheight* +mactechnews.de.Content_3-minheight1 +praxistipps.focus.de + +netmoms.de.FC__Ad3 + swoodoo.com .Flights-Results-FlightRightRail + +blick.de.OAS_AD + sexforum.ch .Partnerbox- +simmentalzeitung.ch.PrintMotifRotator& +kostenlose-urteile.de .RTaktAds + dieharke.de +.Rectangle3 +immoscout24.ch.ResultListPage_adStyle_SPs8t + +onvista.de .SKYSCRAPER! + sexforum.ch.SideBannerbox' +digitalkamera.de.SkyscraperLeft( +digitalkamera.de.SkyscraperRight, +back-intern.de.StyleTM-PartnerImages( + +onvista.de.TEASERBOX.DEPOT_KONTO?% +#www-t--online-de.cdn.ampproject.org + t-online.de.TadcE% +#www-t--online-de.cdn.ampproject.org + t-online.de .Tgbox--anzF% +#www-t--online-de.cdn.ampproject.org + t-online.de .Tgbox--blauH% +#www-t--online-de.cdn.ampproject.org + t-online.de.Thh5Thide4PURD% +#www-t--online-de.cdn.ampproject.org + t-online.de +.Thide4PURå#  + de.rt.com.TopBanner-rootJ% +#www-t--online-de.cdn.ampproject.org + t-online.de.TprtnrmobilesibE% +#www-t--online-de.cdn.ampproject.org + t-online.de .TshlogoboxK% +#www-t--online-de.cdn.ampproject.org + t-online.de.Tsshopst2 + .Tmm +suchen.mobile.de.ViD7S' +via-ferrata.de.YouTubeDachstein" +via-ferrata.de .YouTubeLEKI" +via-ferrata.de .YouTubeoetz +gartenjournal.net._bb_12 +gartenjournal.net._gartenjournal_billboard4 +gartenjournal.net._gartenjournal_inarticle_29 +gartenjournal.net ._gartenjournal_leaderboard_oben: +gartenjournal.net!._gartenjournal_leaderboard_unten# +mallorcazeitung.es ._mo_recs2 +rotor-magazin.com + 1200grad.com .a-single + verben.de.aAnzê +abenteuerfreundschaft.de +gebrauchtwagenberater.de +stadt-bremerhaven.de +gameswirtschaft.de +googlewatchblog.de +gartenjournal.net +nachbelichtet.com +automatentest.de +technikshavo.de +appgefahren.de +it-boltwise.de +justnetwork.eu + kabel-blog.de + autorevue.at + medienkuh.de + nat-games.de + pocketpc.ch + +4kfilme.de.aawp$ +drpornofilme.com .abcn-footer +com-magazin.de.abo + sport-90.de.abox& + +salue.de.action-item > * > .ad§ + +stuttgarter-nachrichten.de +paracelsus-apo-rosslau.de +stadtradio-goettingen.de +juedische-allgemeine.de +schwarzwaelder-bote.de +verlagshaus-jaumann.de +pfaffenhofen-today.de +esslinger-zeitung.de +wallstreet-online.de +architektenwelt.com +insuedthueringen.de +modell-fahrzeug.com +online-webradio.com +beruhmte-zitate.de +boote-exclusiv.com +bos-fahrzeuge.info +leckerschmecker.me +mallorcazeitung.es +dastelefonbuch.de +lahrer-zeitung.de +mybike-magazin.de +apollo-news.net +bike-magazin.de +klassikradio.de +selbermachen.de +sueddeutsche.de +surf-magazin.de +tour-magazin.de +bildderfrau.de +echo-online.de +frankenpost.de +primavera24.de + abendblatt.de + eatsmarter.de + futurezone.de + gq-magazin.de + tennisnet.com + ak-kurier.de + apotheke.com + eurosport.de + ingenieur.de + modhoster.de + np-coburg.de + azonline.de + chefkoch.de + netzwelt.de + paradisi.de + spektrum.de + +hamburg.de + +macwelt.de + +sup-mag.de + +tachles.ch + +tellows.at + +tellows.ch + +tellows.de + +webwiki.de + imtest.de + news38.de + pcwelt.de + vogue.com + wissen.de + +icasa.ch + +idowa.de + +yacht.de +dwdl.de +gmx.net +mann.tv +noen.at +zeit.de +adz.ro +bvz.at +erf.de +nau.ch +vfb.de +web.de +wmn.de +wn.de.ad' + ak-kurier.de.ad + #flashContent + ak-kurier.de +.ad + .tdt# + ak-kurier.de.ad + .uk-panelE +immobilienscout24.de +radioklassik.at + +alpin.de +.ad-banner$ + +alpin.de.ad-banner-billboard) +apollo-news.net.ad-before-contentÕ +gebraucht-kaufen.de +raetsel-hilfe.de +nebelspalter.ch +sueddeutsche.de +the-decoder.de + watchtime.net + it-daily.net + northdata.de + swissmom.ch + +mixed.de +zeit.de +tt.com .ad-container# + +heise.de.ad-desktop-group-2 +hallo-minden.de.ad-info? +augsburger-allgemeine.de.ad-list_small-native-container% +diegrenzgaenger.lu .ad-listing + spiesser.de.ad-mark" + +heise.de.ad-mobile-group-1" + +heise.de.ad-mobile-group-3 +finanztreff.de.ad02p + vsport.at.ad1 + vsport.at.ad2 + vsport.at.ad3! + promiflash.de .adColumnTopP +journalonko.de + futurezone.at + promiflash.de + +kress.de .adContainer  + oekotest.de .adDecoration% + goyellow.de.adDetailRectangle! + 11freunde.de .ad_below-navU +jaegermagazin.de +tennismagazin.de +golfmagazin.de + st-georg.de.ad_list1 +fairytail-tube.org +naruto-tube.org.adb +haie.de .adbanner¸% +#deutsche-wirtschafts-nachrichten.de +einrichtungsbeispiele.de +latina-press.com +weltfussball.com +weltfussball.at +weltfussball.de + gevestor.de + +webwiki.de.adbox' +computerbase.de.adbox-outstreamT +krautundrueben.de + pc-magazin.de + vaterland.li + +connect.de .adcontainer  +nachtkritik.de +.adcontent +suedtiroltv.it.add  +computersm.com +.add-inner + +abg-net.de.add_top# + ladies.de.additional-banner" +gastrojournal.ch +.addslider +inselradio.com.addslot) +laengengrad-breitengrad.de.addtop +gartenjournal.net.adinj +engadinerpost.ch.aditem + +my105.ch.adition$ +lust-auf-kroatien.de.adlabel +cash.ch.adm-container•. + +kochbar.de.admanager__ems__dmofooter-10 + +kochbar.de.admanager__ems__superbanner-1 + smartdroid.de.adp1× +arbeitszeugnisgenerator.de +erochatcommunity.com +erochatcommunity.net +africa-positive.de +eurotrainer.ndz.de +raetselhilfe.net +autoscout24.ch +nachtkritik.de +viamichelin.at +viamichelin.ch +viamichelin.de + androidhow.eu + regenbogen.de + badi-info.ch + fischkopf.de + wetter.at + xwords.de +stol.it.ads, +administrator.de.ads-300x600-wrapper& +ukraine-nachrichten.de.ads-336% +efahrer.chip.de.ads-alignment+ +administrator.de.ads-below-commentsC +radiocentral.ch + glarus24.ch + sunshine.ch.ads-container + +6profis.de.ads6p$ + chefkoch.de.ads__initialized. +meetingpoint-brandenburg.de .ads_mobile) + eatsmarter.de + +quoka.de.adsense + stereo.de .adserver% + libble.de.adserver-container1( +persoenlich.com.adslot-fireplace + +spox.com.adsurbgQ +suchen.mobile.de +ibb-anzeiger.de +suedtiroltv.it + fitforfun.de.adv) +oberberg-aktuell.de.adv-indicator) +teneriffa-aktuell.com .adv-wrapper+ +kostenlose-urteile.de.advBoxSegment! +perfektdamen.co +.adv_block + +blinker.de .adv_widgetv +countrymusicnews.de +weser-kurier.de +morningstar.de + suedkurier.de + eurogamer.de + +ka-news.de.advert  +bankkaufmann.com.advert_! + +onvista.de.advertisedFundÅ +apotheken-umschau.de +wetteronline.de +extremnews.com +tarnkappe.info + 4investors.de + abendblatt.de + iplayapps.de + finanzen.ch + az.com.na + +heise.de +dpd.de.advertisement+ +kochrezepte.at.advertisement_widget& +oefb.at +zeit.de .advertising + kauf6.com.advertisments + speedweek.com +.advheader + smartdroid.de.advorp12 + greenbyte.ch +erf.de +rtl.de +.adwrapper  +rtl.de.adwrapper--mobile! +pcgameshardware.de.afBtn1! +pcgameshardware.de.afBtn2, + guteporno.com.aff-inhalt-geil-spalteb + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de.affiliate-amex/ +einsteiger-keyboard.de.affiliate-buttonh + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de.affiliate-mediamarkt` + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de .affiliate-o2d + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de.affiliate-saturnb + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de.affiliate-tink( + +pcgames.de.affiliateBelowArticle% +radiodeutsch.com .ai-placement" +nachbelichtet.com .ai-trackN +leckerschmecker.me +genialetricks.de +veggieboom.com.ai-viewport-1! +blitzrechner.de +.ai_widget + +nextpit.de +.al-amazon + ligaportal.at.alert" +giga.de.alice-adslot-label +notebookcheck.com.am_el' +indirekter-freistoss.de.amalink +plattentests.de.amazon +aol.de .amazon-link- +forum.worldofplayers.de.amazon-search' + winfuture.de.amazon_widget_w660 +apollo-news.net.ams-adF +fairytail-tube.org +onepiece-tube.com +naruto-tube.org.amz9 + suedtirol.de + +tirol.de.angebot-der-woche-slider+ +bauernzeitung.ch.anriss-item-advert, +musiker-board.de + recording.de.anz + +quoka.de .anz-content! + +quoka.de.anz-grey-contentç + +quoka.de.anz-grey-title +musiker-board.de.anzCî +gesetzlichekrankenkassen.de +pharmazeutische-zeitung.de +stuttgarter-zeitung.de +oktoberfestportal.de +touristik-aktuell.de +helles-koepfchen.de +radsport-news.com +gastrojournal.ch +lehrerfreund.de +medizin-netz.de +112-magazin.de + drwindows.de + filmpost.de + oekotest.de + +sportal.de + +tweakpc.de + vhs-ol.de + +ntg24.de.anzeige" + +ntg24.de.anzeige + .slider + +ntg24.de .anzeige + p' +designtagebuch.de.anzeige-links) +meerwasser-lexikon.de .anzeigeInfo + +ariva.de .anzeigeText% + lippe-news.de.anzeige_content. +motorsport-total.com.anzeige_teas_rect1 +motorsport-total.com.anzeige_teas_rect_ax + partyamt.de .anzeigen" +aerzteblatt.de .anzeigenbox +reiseblog7.com.ap, + willhaben.at.apn-leaderboard-wrapper  +oefb.at.app-foesvAdSpace# + +blick.ch.appnexus-container# +arbeits-abc.de .arbei-widget( +lokalmatador.de.article-adbanner- + +heise.de.article-layout__header-wrbng0 +onlinehaendler-news.de.article-rectangle, + autohaus.de.article-rectangle-height/ +computerbase.de.article-view__rectanglet +insuedthueringen.de +frankenpost.de + np-coburg.de + kurier.de*.article_nachDerWerbungWeiterlesen-desktop' + itmagazine.ch.article_rectangle/ +rhein-zeitung.de.articlebody__rectangle# + dererker.it.articles-pr-box. +neue-braunschweiger.de.as-frame-center + apfeleimer.de .asa1_fbh# +prad.de.asa2_ajax_container( +bitreporter.de.asa2_fbva_wrapper$ + fitforfun.de.aside-rectangle + +hottime.ch +.asideBoxB‹ +scienceblogs.de +tourenfahrer.de +wissenschaft.de + asscompact.de + hockeyweb.de + unicum.de + wissen.de.asm_async_creative/ + will-mixen.de.astra-advanced-hook-67722 + ichkoche.at .asyncBanner' +pcgameshardware.de .at_sponsored- +glycerinwissen.de.atkp-bestseller-box) +gartenratgeber.net.atkp-container@ + autoline24.at + autoline24.ch + autoline.de .atla-place# +autogazette.de .autog-widgetG +bayreuther-tagblatt.de).av-7mui-2434157fea122ac0fb770d6fe554162d# +notebookinfo.de .av-carousel( +notebookinfo.de.av-fade-carousel& + +hsc2000.de.av-partner-fake-img  + likehifi.de .avad1_widget# + +hsc2000.de.avia-slideshow-1( + +nrwhits.de.ax-medium-rectangle-n + az.com.na .az-adverts +blitzrechner.de.azimg + sumikai.com.b$ + fcaugsburg.de.b-logo-listing" +motorsport-total.com.b-top$ +ukraine-nachrichten.de.b_top& +hardwareschotte.de .ba-fullsize" +browsergames.de .background + archzine.net +.banPlace1” +komoedie-steinstrasse.de +melodieundrhythmus.com +pfaffenhofen-today.de +flugblattangebote.at +akustik-gitarre.com +fussballgucken.info +prospektangebote.de +spieleklassiker.com +wimmelbildspiele.de +3gewinntspiele.com +mein-wahres-ich.de +bankkaufmann.com +kartenspielen.de +knobelspiele.com +oberpfalzecho.de +fruchtportal.de +nordicsports.de +psi-magazin.de +urlaubsguru.de + 1001spiele.de + goldseiten.de + buchmarkt.de + erosclubs.ch + erosgirls.ch + kradblatt.de + macerkopf.de + modhoster.de + regionews.at + suedtirol.de + deavita.com + jobagent.ch + rockland.de + +anixehd.tv + +pixelio.de + +sexnews.ch + +snanews.de + +svs1916.de + laufen.de + m.gota.ch + +6navi.ch + +boxxx.ch + +salue.de +hcb.net +juve.de.banner" +w24.at.banner-aspect-ratio3 +spielkarussell.de.banner-btf-side-rectangle= +skipper-bootshandel.de + +tvtoday.de.banner-container# + privater.sex.banner-content" + privater.sex.banner-footer +woz.ch .banner-fullË) +wochenblatt.cc.banner-header-left* +wochenblatt.cc.banner-header-right3 + medienjobs.ch + prewarcar.de.banner-holder +giga.de.banner-homepage$ + +xerotik.ch.banner-img-bottom( +mein-wahres-ich.de.banner-inline# + +esports.ch.banner-leadboardð +massierendeladies.de +nymphomaneladies.de +zaertlicheladies.de +dominanteladies.de +erfahreneladies.de +osteuropaladies.de +zierlicheladies.de +behaarteladies.de +deutscheladies.de +exklusivladies.de +piercingladies.de +rasierteladies.de +spielkarussell.de +bizarrladies.de +devoteladies.de +grosseladies.de +latinaladies.de +orientladies.de +schokoladies.de +tattooladies.de +busenladies.de +hobbyladies.de +jungeladies.de +mollyladies.de + asialadies.de + badeladies.de + kussladies.de + escorts24.de + avladies.de + nsladies.de + tsladies.de.banner-leaderboardJ +donnerwetter.at +donnerwetter.ch +donnerwetter.de .banner-place' +klassikradio.de.banner-position + fotohits.de .banner-row +curt.de.banner-section= +bibliomed-pflege.de + magistrix.de.banner-skyscraper  + +arminia.de.banner-slider* +scfreiburg.com.banner-super-middleH +donnerwetter.at +donnerwetter.ch +donnerwetter.de .banner-top3 +immobilienscout24.de.banner-top-placeholder) +pokerfirma.com.banner-top-section& +perfektdamen.co.banner-wrapper + sexy-land.ch +.banner200! +fickverein.com .banner3box + sexy-land.ch .banner60 + sims4ever.de +.bannerBox# + erosjobs.ch.bannerContainer& +eishockeynews.de.bannerContent  + moviejones.de .bannerInfo# + cherry.ch.bannerListPremium& + cherry.ch.bannerListPremiumTop  + goyellow.de .bannerResult* + sex-infos.ch + +gota6.ch +.bannerTop, +sg-flensburg-handewitt.de .bannerWrap$ +erotikforum.at.bannerWrapper+ +stock-world.de.banner_bigsize_unten' +bluray-disc.de.banner_container< +apotheke-adhoc.de#.banner_container__mobile_billboard% +stock-world.de.banner_content! + hallelife.de .banner_image" +der-farang.com .banner_item) +lerntippsammlung.de.banner_rechts# + archzine.net.banner_sidebar! +stock-world.de .banner_sky# +dastelefonbuch.de +.banner_tl6 +dastelefonbuch.de +dnv-online.net .banner_top! +handy-player.de +.bannerbox& + xxxjob.ch.bannerboxlinks-klein! + xxxjob.ch.bannerboxrechts) +prost-magazin.at.bannerfullbannerã +motorradundreisen.de +naturundtherapie.at +teneriffa-heute.net +tennistraveller.net +vorsprung-online.de +bassprofessor.info +highway-magazin.de +osttirol-online.at +hifistatement.net +kajak-magazin.com +radio-oberland.de +griechenland.net +pc-experience.de +sonic-seducer.de +speyer-report.de +hitradio.com.na +wahrschauer.net +112-magazin.de + kl-aktuell.de + loz-news.de + mef-line.de + spielbox.de + finews.ch +tvbb.de .bannergroup' + tobitech.de.bannergroupimgframe< +diebildschirmzeitung.de +berglouter.com .banneritem + +ariva.de .bannerleiste + klappeauf.de .bannerprom2 +eurogirlsescort.de + strafbock.ch.banners+ +lokalkompass.de.bannerslot-centered + +sportal.ch .bannerspot! +frischauf-gp.de +.bannertop$ + 1200grad.com.banneruntermenu4 + msh-online.de + nnz-online.de.bannerwrapper + stimme.de.bb-wrap +laborjournal.de.bb_top + bz-berlin.de.bcode( + bz-berlin.de.bcode-top-container# +hifi.de.bestlist-item__shop# +liveticker.com .bettingStrip· + +bunte.de .bfa-ad-slot + seekxl.de.bg* +boersennews.de.bg-smartbroker-dark+ +boersennews.de.bg-smartbroker-light' +hcgherdeina.com.big-sponsor-box + finanzen.ch .big_size + iplayapps.de +.bigbanner# +bildercache.de .bilde-widget  +designtagebuch.de.billboã +mannheimer-morgen.de +linux-community.de +linux-magazin.de +laborjournal.de +bundesliga.com +tarnkappe.info +traktorpool.de + ligaportal.at + winfuture.de + baupool.com + +formel1.de + +fnweb.de +.billboard, +android-hilfe.de.billboard-ad-footer) +android-hilfe.de.billboard-ad-top1 +finanzfluss.de.billboard-as-yield-section% +finanzfluss.de.billboard-card& + infranken.de.billboard-wrapper- +computerbild.de.billboardBtfContainer  + +djmag.de.billboardbanner# +computerbase.de .blackfriday +keyforsteam.de .blc-left  +keyforsteam.de +.blc-right% +galaxy-ingolstadt.de .block-11% +galaxy-ingolstadt.de .block-12% +galaxy-ingolstadt.de .block-139 +galaxy-ingolstadt.de +celler-presse.de .block-15# + +haustec.de.block-businessad, +suedostschweiz.ch.block-np8-audienzz' + ak-kurier.de.block-weather-link" + wissen.de.block-wissen-ads& +computerbase.de.block1--banner* +computerbase.de.block1--skyscraper' +blogprojekt.de.blogp-startseite5 +blogprojekt.de.blogp-werbung-oben-in-artikeln + borussia.de.bmg-ad! +oberberg-aktuell.de.bnrad7 +russland.capital + russland.news.bodShopWidget# + fairaudio.de.borlabs-dealer2 + fairaudio.de.borlabs_fairaudio_ads_widgetx* + gesundheit.de + onmeda.de.box--ad5 + wetter.at$.box.contentBoard.default.highlights% + +schiene.de.box.w300.h250.mb40% +liveticker.com.boxOverContentH + pcwelt.de7.box[data-ga-event-label="Angebote für PC-WELT Leser"]? + pcwelt.de..box[data-ga-event-label="Für Sie empfohlen"]= + pcwelt.de,.box[data-ga-event-label="PC-WELT Specials"]- +xmedia-recode.de.box_banner-container# +offroadforen.de .boxesBottom' +offroadforen.de.boxgenericBox41 + msxfaq.de.boxjob? +rc-car-rennsport.de +rc-car-news.de.boxschattenbutton@ +rc-car-rennsport.de +rc-car-news.de.boxschattenbuttonw + +x-oo.com.boxx$ + radmarkt.de.branchenberichte$ +schnittberichte.com .branding + +blick.ch .brandstudioM +koerperverletzung.com +urheberrecht.de + scheidung.org .brave_popup3 + +idowa.de#.brick[data-b-title*="Traffective"]% +schwulissimo.de.bs-ad-wrapper + +tri-mag.de .bscb-23811! + btc-echo.de.btc-sponsored + hockeyweb.de .btn-danger& +boersennews.de.btn-smartbroker +radioguetersloh.de.btn2' +tvspielfilm.de.button.affiliate + lounge.fm.buy¼% +eventelevator.de .bwdfb-widget¢ +liebenswert-magazin.de +cosmopolitan.de +maennersache.de + praxisvita.de + wunderweib.de + happinez.de + lecker.de + selbst.de + +bravo.de.bx-ada7 +sgleutershausen.de + kremser-sc.at .bx-viewport% +amerikawoche.com .bxnxr_column + dererker.it .bxslider +amerikawoche.com.bxv& + coincierge.de.c-FloatingPrompt +t3n.de.c-ad-container! +t3n.de.c-ad__container-p1& +rockantenne.at.c-image--centerQ +rockantenne.hamburg +rockantenne.bayern +rockantenne.de.c-image--left$ +finanznachrichten.de.c-sban1$ +finanznachrichten.de.c-sban24 +scfreiburg.com + +sgf1903.de.c-sponsors-list + +focus.de.cad + +ka-news.de.cad_box + +focus.de .cad_native + 1000ps.at.cadboxX +barrierefreie-immobilie.de + heizsparer.de%.cadheight[style="min-height:600px;"] + fairaudio.de +.candy-top( + filmlaune.de.card-streaming-btns + neuwagen.de .cardealers% +anzeigervomrottal.ch .carousel5 +alles-mahlsdorf.de.category-werbung-kopfzeile +faktastisch.de.ccaÏ +automobil-produktion.de +werkzeug-formenbau.de +plastverarbeiter.de +all-electronics.de +kgk-rubberpoint.de +neue-verpackung.de +technik-einkauf.de +instandhaltung.de +chemietechnik.de +automotiveit.eu +pharma-food.de + produktion.de + fertigung.de + ki-portal.de + +ke-next.de + +fluid.de.ce_banneradbox + e-formel.de +.ce_plista* +technik-einkauf.de.ce_promotionbox* +boerse-daily.de.ce_rsce_bd_werbung# + utopia.de.channel-logo-desc  + +my105.ch.channel-sponsor +escortboard.de.chat+ +typo3blogger.de.chemical_sitelogo_r² +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com .chn_center< +autoscout24.at +autoscout24.de.cl-billboad-wrapper- +14-tage-wettervorhersage.de +.clearit_s% + wg-gesucht.de.clicked_partner% +wolfsrevier.de.client_wrapper + +pixelio.de.clipad  + +focus.de.cls_hor_prnt_am' + +focus.de.cls_slot_xxoutstreamxx + +focus.de .cls_ver_prnt  + +focus.de.cls_ver_prnt_xs + +markt.de.clsy-adv-item( + sex-infos.ch + +gota6.ch.clubBox  + zueri6.ch.cm-popup-modal( + +preis24.de.cms-cl_tariff-row--ad. +alps-magazine.com +djz.de .code-block$ +raptastisch.net .code-block-1% +raptastisch.net.code-block-12S +fussballnationalmannschaft.net +wohnungswirtschaft-heute.de.code-block-13% +raptastisch.net.code-block-14# +buenasideas.de .code-block-2! + movieblog.to .code-block-3% + ibooks.to.code-block-3[style]1 + deinhandy.de + movieblog.to .code-block-4! + movieblog.to .code-block-51 +raptastisch.net + ibooks.to .code-block-7* +raptastisch.net.code-block-h-250px* +raptastisch.net.code-block-h-300pxO +wallstreet-online.de +tech-review.de + watson.de +wn.de .commercial4 +berlinertageszeitung.de.commercial-container0 +fotomagazin.de.commercial-post-container; +berlinertageszeitung.de.commercial-rightwideskryper¦8 +sternzeichen.net +edelsteine.net.commercialbar# + celleheute.de.comp-ku8lxchu, + coincierge.de.compar_tbl_body_plugin1 +nordschleswiger.dk.component-code-snippet# +tvg-grosssachsen.de.cont-60E + ak-kurier.de + nr-kurier.de + ww-kurier.de.container-banner1 +deutscherskiverband.de.container-banner-22 + 1000ps.at + 1000ps.de.container-billboard) + ssvnaturns.it.container-sponsorenK +mt.de>.container.margin-bottom-40.fullwidth-container-mobile.min-280* + goslarsche.de.container_skyscraper) +android-hilfe.de.content-ad-first  + hoerzu.de.content-amazon5 +kostenlosspielen.net.content-main-box-300x2504 +kostenlosspielen.net.content-main-box-728x90; +kostenlosspielen.net.content-right-box-300x250right( + tourispo.de.content-teaser-small# +help.ch.content-teaser-tabsU +leckerschmecker.me + futurezone.de + imtest.de + news38.de.contentAd--pos1V +pcgameshardware.de + gamezone.de + +pcgames.de + buffed.de.contentFrameEddie + +koeln.de .contentRect$ + tourispo.de.contentRefsAside( +android-hilfe.de.content_ad_last- + windowspro.de.content_before_3rd_para  + +avguide.ch.contest-frame, +mannheimer-morgen.de.core-commercial- + finanzen.net.cpg_incontent1-container- + finanzen.net.cpg_incontent2-container! + daswetter.com .creatividad + u1-radio.at .csc-partner +haus.de .css-1mdt86f3 +autoscout24.ch +motoscout24.ch .css-ljr5pl- +filmstreaming-de.life.custom-ban-wrap' +boerse-express.com .custom-bexad+ + disco-load.cc.custom-footer-banners) +derkleinegarten.de.custom-inhoadd) + satvision.de.custom_googleanzeige) +digitalfernsehen.de.custom_html-7= +ingolstadt-today.de +mittelbayerische.de .d-sm-block + goldesel.sx .d_695692 +blockbuster.to .d_702192 + saugen.to .d_702212" + unnuetzes.com .da-container& + unnuetzes.com.da-container-sky; +terramatermagazin.com + +servus.com.da__placeholder% +bergwelten.com.da_placeholder2 +wochenblitz.com.data-wb-main-adv-dir-right$ + +bluewin.ch.daydeal-container + +spox.com.dazn! +dubisthalle.de .dbh-widget* +sportbuzzer.de.dcm-section-wrapper + +nextpit.de .deals-ticker, + furche.at.default-teaser--ads-teaserA +deutschsex.mobi +deutschsex.com.default__interest-block. +deutschsex.com.default__realtive-block� + +wetter.com{.desk-pv.desk-pb\+.portable-pv.lap-pr--.lap-ml.lap-pl-.bg--green-lightest.portable-ml0.border--top.border--bottom.palm-ph15$ +nau.ch.desktop-wideboard-top( +liveticker.com.detailLeaderboard +heimatreport.de.dfad +kt1.at.dfmhtmlbanner! + +barfuss.it.dfp-skyscraper/ +digitalphoto.de +beat.de .dfpcontainer0 +segeljournal.com.displaybanner-container# + volksblatt.li.divAdd_Banner�! + tieronline.ch .djslider-in! +kachelmannwetter.com.dkpw + +gload.to .dl2019main< +rundschau-online.de + +express.de +ksta.de.dm-slot1 +rundschau-online.de.dm-slot__skyContainer) +ksta.de.dm_ta300x300.sold_content# + raidrush.net.double-wrapper# + +scp07.de.dp-sponsorenfooter! + mobile.de.dsp-placeholder +bolzano-bozen.it.dt +metropolico.org.e_adv' + euractiv.de.ea-gat-slot-wrapper# + ebike-news.de.ebn-billboard) + ebike-news.de.ebn-billboard-mobil% + ebike-news.de.ebn-incontent-1" +der-rissener.de .ed-element +laborjournal.de.ed_d! + +l-mag.de.editorial-teaser( + eintracht.de.ef-article-card--ad' + eintracht.de.ef-footer__section. + eintracht.de.ef-footer__section--logos* + eintracht.de.ef-stadium-ad__banner+ +fruchthandel.de.element_leaderboard1 +fruchthandel.de.element_squarebuttongroup0 +mundus-art.com.elementor-element-0e1ce7d/ + report24.news.elementor-element-1266dd41 +spot-on-news.de.elementor-element-127b96a6 +elektroauto-news.net.elementor-element-1f0334b3 +schweizerbauer.ch.elementor-element-31a7df78 +buongiornosuedtirol.it.elementor-element-3be5ec6/ + report24.news.elementor-element-41d9f5c/ + report24.news.elementor-element-43307026 +elektroauto-news.net.elementor-element-5edce23/ + report24.news.elementor-element-6b9ddea6 +elektroauto-news.net.elementor-element-6c8f4586 +elektroauto-news.net.elementor-element-8419f6d8 +buongiornosuedtirol.it.elementor-element-909b3f93 +schweizerbauer.ch.elementor-element-a2b2b40) +nunu.at.elementor-element-dc42ab9/ + report24.news.elementor-element-ef8547e- + femotion.de.elementor-element-f2d5c641 +radioholiday.de.elementor-element-f3e90368 +buongiornosuedtirol.it.elementor-element-f4432e8S +spielen-slots.com +spielen-slots.at +spielen-slots.de.end-to-end-banner +etcg.de .eral_wrapper' + marina.ch.et_pb_row_0_tb_header2 +immobilienscout24.de.expose-ad-placeholder% +cannabis-medic.eu .externalURL% +news.de.extraContentContainer$ + de.motor1.com.f1de-container! + mywheels.tv.falken-banner, + fcbayern.com.fcb-ad-banner-container + +spox.com.fco-ad + +spox.com.fco-ad-wrapper + +spox.com.fco-openweb-ad' + +bunte.de.fe-channel-item--promo8 +ligainsider.de".feature.no_border.pull-left.mb-md7 +ligainsider.de!.feature_column.pull-left.new_add + ff-bz.com.ff-baj +skodacommunity.de +toyota-forum.de + autoextrem.de + usp-forum.de + +2ertalk.de.fh-inside-post5 +skodacommunity.de + autoextrem.de .fh-sidebar9 +pedelecforum.de +toyota-forum.de.fh-sidebar-top; +toyota-forum.de$.fh-sidebar.block > .block-container0 + zeitpunkt.ch.field--name-field-werbebild¾! +trvlcounter.de .first_slot& + +fight24.tv.fixed.bottom-0.pb-8" +rewe.de.flagship-containerV +kleinezeitung.at>.flex.justify-center.mx-auto.hidden.lg\:flex.lg\:mb-4.lg\:pb-4 +uepo.de .flexslider$ +floatmagazin.de .float-widget2 + tvinfo.de!.floatLeft[style="padding:10px;"]8 +freiburger-nachrichten.ch.fn-edp-section__slider# +seo-suedwest.de .fnet-banner' + +amazona.de.fnetbr-pbb-container + gwd-minden.de.footer( +katzeausdemsack.de.footer-bannerá +kostenlose-sexvideos.biz +gratis-sex-videos.net +erotik-sexvideos.com +gratisfickvideos.net +xhamsterdeutsch.xyz +deutschepornos.co +geilesexclips.com +sexfilmetube.net +sexkostenlos.biz.footer-dingens + +hottime.ch .footer-grey- + fcbayern.com.footer-p4rtn3r-container8 +ecrbs.redbulls.com + fussball.de.footer-partner- + fcbayern.com.footer-partner-container% +dtb.de.footer-sponsor-section$ + schalke04.de.footer-sponsors) +xhamsterde.com.footer-widget-zone + +bitch.ch .footerBanner& +saechsische.de.footer__partner- +rhein-neckar-loewen.de.footer__slider  +haie.de.footer__sponsors +oefb.at.footer_partner- +scdhfk-handball.de.footer_sponsor_row! + 1200grad.com .footerbanner$ +computerbase.de .forum-teaser: +schwaebische.de + nordkurier.de.fp-ad-placeholder! +fruchtportal.de +.fp-banner' +sbb.it.frame-type-advertisments2 + +arboe.at".frame-type-mask_toolboxcontentad1! + +freenet.de.frn_contAmazon$ +woz.ch.frontpage-card-banner$ + puls24.at.fullbanner-wrapper + raidrush.net.funbox& + +99ers.at.fusion-builder-row-141 +fcschweinfurt1905.de.fusion-builder-row-3 + +ka-news.de +.fusslogos· +oldenburger-onlinezeitung.de +verkaufsoffener-sonntag.com +denkmalpflege-schweiz.ch +betriebseinrichtung.net +polizei-nachrichten.at +skipper-bootshandel.de +haushaltsapparate.net +unternehmermagazin.de +atv-quad-magazin.com +stadt-nachrichten.de +wir-leben-outdoor.de +oscar-am-freitag.de +it-production.com +rechtsdepesche.de +celler-presse.de +greifenburg.news +jungefreiheit.de +pool-magazin.com +hansa-online.de +klagenfurt.news +lite-magazin.de +radenthein.news +troepolach.news +umzugstipps.com +weissensee.news +beautytipps.ch +gitschtal.news +gourmetnews.ch +moebeltipps.ch +radio-aktiv.de +steinfeld.news +via-ferrata.de +villacher.news + business24.ch + hermagor.news + hifi-today.de + motortipps.ch + reiseziele.ch + tierwelt.news + werne-plus.de + gailtal.news + polizei.news + spittal.news + events24.ch + +docma.info + +islamiq.de +haie.de +swz.it.g + +ego4u.de .g-adv-side$ + +ego4u.de.g-adv-top > .insideX + +golem.deH.g6 > .clearfix[style="margin: 20px 0; clear: both; min-height: 640px;"]& + +koeln.de.gb-container-0d2cd1d0 + +golem.de.gbox_affiliate% +gastgewerbe-magazin.de.ggm-ad +jungfrauzeitung.ch.gokb$ +jungfrauzeitung.ch +.gokwblock + nydus.org.googl + +dejure.org +.googlediv +swim.de +.gpevxonqc + pr0gramm.com.gpt! + modernhifi.de .grey-banner( + modernhifi.de.grey-banner-bottom' + epd-film.de.group-externe-links# + gruender.de.gruender-banner" +seo-suedwest.de .gruenebox22 +gelbeseiten.de.gs-searchblock--adContainer + my-homo.net.gstsk" +fussballtransfers.com.gtag + wetter.de .guj-ad-slot! + chefkoch.de.gujad-wrapper + my-homo.net .gxt_banner + my-homo.net .gxt_feedö +qiez.de.h5v + helpster.de.h5v-ad +news.de .halfpage% +hallobuer.ruhr.hallo-inhalt_27 + pornotim.com + xhammer.net.happy-inside-player) + pornohut.info.happy-player-beside& +hc-erlangen-ev.de .hauptsponsor" + fc-hansa.de.hauptsponsoren( +tagesspiegel.de.hcf-news-aktuell + ak-kurier.de +.hd-banner% + +fkk24.de.head-top-bannerplacer +blickpunkt-brandenburg.de +katzeausdemsack.de +fruchtportal.de + sunshine.it +nh24.de.header-banner, +deine-tierwelt.de.header-leaderboard6 +deine-tierwelt.de.header-leaderboard-container, + tennis.de.header-logo-second-display + +radzeit.de .header-main( + fcbayern.com.header-presented-by  + taucher.net .header-promo+ +verlagshaus-jaumann.de .header-right! +computersm.com .header-top, +gartenschlumpf.de.header-widget-area& + +oxmoxhh.de.header-widget-inner" + mtb-news.de.header__banner& +bankkaufmann.com.headeradvert_- + techstage.de.heise-ad-element-wrapper- +kleinanzeigen-suedtirol.com +.highlight + fremdwort.de +.hinweisad + budapester.hu .hirdetes! +gebraucht-kaufen.de.hitdb) +berlinmitkind.de.hm_widget_banner! + +b2run.de.hmpartnersglobal( +emmikochteinfach.de .holder-box-5( + autohaus.de.home-side-ad-wrapper% +intimesrevier.com .home_rennab+ +hallescherfc.de.home_sponsor_slider  + +tirol.de.hotelempfehlung- +homeandsmart.de.hs_anbieter_box_block. +boerse-online.de.hsbc_homepage_topflop  +news.de.ialayerContainer* +gmx.net +web.de.iba-variant-test! + pcwelt.de.idgAmazonTextV28 +computerwoche.de + tecchannel.de.idgLeaderBoard- +channelpartner.de.idgWebcastsCarousel + +heise.de.img-ad' +kronenachrichten.com .img-banner: +emmikochteinfach.de +karrierebibel.de .in-content  + funcloud.club .inArticleA* +android-hilfe.de.incontent-wrapper. +android-hilfe.de.incontent-wrapper_big% + +heise.de.incontent3-cls-reduc2 +bikemarkt.mtb-news.de.incontent__container? + autoline24.at + autoline24.ch + autoline.de +.index-bns +help.ch .indexwerbung$ +sparneuwagen.de .infeedthingy% +allround-pc.com.infoHeadWrap1$ + lippe-news.de.inline_wrapper +erotikinserate.ch.inner" +blitzrechner.de .inserter-5) +blitzrechner.de.inserter[data-ai] + +xdate.ch .interstitial +sueddeutsche.de.iqad' +saechsische.de.iqadtile-wrapperM +sueddeutsche.de +tagesspiegel.de +faz.net +zeit.de .iqdcontainer + +tri-mag.de .irypolkjÊ +welt.de.is-commercial# +allround-pc.com .is-fp-outer + +onvista.de .isSponsored* +islamische-zeitung.de .islam-widget# + it-daily.net.itd-ad-sidebarD + +pcgames.de + buffed.de%.item + .at_sponsored > .itemHeadline + ssvnaturns.it .item-464 + ssvnaturns.it .item-596$ +pragerzeitung.cz .item-advert* +kleinanzeigen.de.j-liberty-wrapper1 + gamestar.de + +gamepro.de.jad-placeholder$ +computerbild.de .jobbioTeaser5 +interaktiv.tagesspiegel.de.jobunion-container0 +nur-positive-nachrichten.de .jrCardBanner' +austrianwings.info .js-ads-index( +austrianwings.info.js-ads-tablet% +suedostschweiz.ch .js-audienzz& +eurocampings.de.js-mock-banner1 +eurogirlsescort.de.js-stt-click > picture + +wetter.com.jsDaa-D + +lustmap.ch.js_bns* + +kochbar.de.kb-home-medrec-halfpage + kauperts.de .kca-wrapper& + kicker.de.kick__ad-pos_wrapper3 +euro.kicker.de.kick__euro2020-brand-sponsor1 +euro.kicker.de.kick__modul--euro__sponsor& +klartext-ne.de.klartads-widgetH + 1000ps.de7.kleinueber > .row + div > .topzubehoeranzeige-berichte' +michaelsbund.de.konpress-banner( +michaelsbund.de.konpress-wrapper, +sexgeschichten.com.kosmonaut_120x600, +sexgeschichten.com.kosmonaut_300x2505 + +kochbar.de#.ks-ad:not([data-adslot="karotte"])- +holstein-kiel.de.ksv-sponsoren-footer +medienwoche.ch.kurator0 +swissfunddata.ch.l-partnerSlideContainer +vol.at .laendleimmo' +digitalkamera.de.landing-brands +regioactive.de.lb + sexabc.ch .lead-col% +intimesrevier.com .lead_rennab� +linux-community.de +linux-magazin.de +rhein-zeitung.de +boomerangtv.de + meteovista.de + +infosat.de + +spielen.de .leaderboardƒ +rockantenne.hamburg +schwaebische.de +rockantenne.at +rockantenne.de + antenne.nrw + +antenne.de.leaderboard-wrapper# +gastrojournal.ch .leaderbord; + home.1und1.de +gmx.net +web.de.left-col__bottom- +wasserburger-stimme.de.lefthellwetter + +queer.de.leistenbanner +frischauf-gp.de.ligaadd + 1000ps.ch.links + +xdate.ch .list-AxDxS+ + +mydict.com + +mydict.net .list-groupB +gmx.net +gmx.ch +web.de.list-inbox-ad-item--multi-lineK +gmx.net +gmx.ch +web.de(.list-programmatic-inbox-ad-item__iframe" + +queer.de.listenbannerlinks) +liveticker.com.live-betting-strip, +bibliomed-pflege.de.lns-banners-zone! + ladies.de.location-teaser% + +mainz05.de.logo-footer-module* +wohnidee.wunderweib.de .logo-slider" + +zfans.de.logo_rechts_mitte +thsv-eisenach.de.logos- +tv.herthabsc.com.logos-partner-holder* +basic-tutorials.de.losgehts-widget& +meteoaachen.de.lshowcase-logosÕ$ +wallstreet-online.de.lynxAds2 + 4investors.de.lynxanzeige + .lynxcontainer/ +shop-apotheke.com.m-AdBanner__container+ +stuttgarter-nachrichten.de .m-weekli- +juedische-allgemeine.de.magazinteaser$ +email.t-online.de .mailAdElem! + filmstarts.de .main-banner  +ofc.de.main-club-partner+ +vienna-capitals.at.main-sponsorlogo + +hceppan.it .mainSponsor# +aerotelegraph.com +.marcopolo' + mein-pferd.de.marketing-wrapper% +oe24.at.marketingTeaserBanner + pcwelt.de .marketplace +byte.to +.maxbutton3 + winfuture.de.mb25[style="min-height:261px"]  + morecore.de .mcad_wrapper + morecore.de +.mcadblock% + aus-liebe.net.mdhRegister-btnE +hausgeraete-test.de +heimwerker-test.de + hifitest.de.med4E +hausgeraete-test.de +heimwerker-test.de + hifitest.de.med5B% +#www-t--online-de.cdn.ampproject.org + t-online.de.med_anz + ligaportal.at.media  + lokalo.de.media_image-19  + lokalo.de.media_image-22  + lokalo.de.media_image-23  + lokalo.de.media_image-24  + lokalo.de.media_image-26  + lokalo.de.media_image-28  + lokalo.de.media_image-29  + lokalo.de.media_image-30  + lokalo.de.media_image-32P +hausgeraete-test.de +heimwerker-test.de + hifitest.de.mediumRectangle© +leben-und-erziehen.de +grazia-magazin.de +idee-fuer-mich.de + ok-magazin.de + maedchen.de + +fuersie.de + +jolie.de + +petra.de + +vital.de.mediumrectangle + ligaportal.at.medrec$ + +comback.ch.mega-banner-outer¢ +grillsportverein.de +android-hilfe.de +hardwareluxx.de +toyota-forum.de + usp-forum.de + +2ertalk.de + +macuser.de!.message--post:not([data-author])" +lite-magazin.de .metaslider! + +goolive.de.mgawerbungbase$ +unterwasserwelt.de +.mh-footer. +hallanzeiger.de.mh-widget.s5214-widget" + autohaus.de.mid-ad-section$ + +heise.de.middle-ad-container +mt.de .min-280.mrE +schweizer-illustrierte.ch$.ministage-channel-sponsor-paragraph# +intimesrevier.com +.miragobox" + abendblatt.de .mj-pf-widget- + finanzen.net.mleft-10 + .table-quotes: + reiseziele.ch + polizei.news.mobile-billboard-box+ +gartenflora.de.mobile-interscroller& +computerbase.de.mobile-skin-ad6 +gelbeseiten.de .mod-RechteWerbespalteStartseite  + wohnglueck.de .mod-adslot +fc.de.mod-sponsor-icon) +stuttgarter-zeitung.de .mod-weekli¾ +gandersheimer-kreisblatt.de +einbecker-morgenpost.de +beobachter-online.de +studio-magazin.de +basses-blatt.de +blaue-blume.tv +goldstar-tv.de + romance-tv.de .mod_banner- +versicherungsbote.de.mod_code_wrapper� +st-galler-nachrichten.ch +winterthurer-zeitung.ch +aarauer-nachrichten.ch +wiler-nachrichten.ch + zugerwoche.ch.mod_printanzeigen' + schalke04.de.module-advertising1 +fc-union-berlin.de.module-footer-sponsors$ + 99damage.de.monkey-container +mopo.de.mopo-ads-editor +jetztspielen.de.mpu' + finanzen.net.mrec-height-prefix©" +clever-tanken.de +.mrec-news  + meinestadt.de .ms-adPlace; + mtb-news.de(.mtbn-fotos-incontent__container--mobile, + mtb-news.de.mtbnews-forum__in-thread- + mtb-news.de.mtbnews-forum__mobile-top) + mtb-news.de.mtbnews-mobile-sticky + mtb-news.de .mtbnews-topR +rennrad-news.de + emtb-news.de + mtb-news.de.mtbnewsAdBillboardContainer" + +tutti.ch.mui-style-17xiqz7" + anibis.ch.mui-style-lwlc47! + +tutti.ch.mui-style-z954cu. +naturalhorse.de.n2-section-smartslider. +diebildschirmzeitung.de.n2-ss-slider-3( + +ehv-aue.de.n2-ss-slider-pipeline! +finanznachrichten.de.nadT! + ploetzblog.de .nav-anzeige + lavendel.net .netpoint/ + dersonntag.at.news-detail-ads-container/ +schwulissimo.de.news-group-ad-container% +fruchthandel.de.news-item-wbg* +fussballdaten.de.news-spiel-quoten+ +wallstreet-online.de.newsFlagSlider- +kitzanzeiger.at.news_sponsoren_banner8 + rheinpfalz.de + +pz-news.de +zvw.de .nfy-banner + dtb-tennis.de +.ng-banner' +mallorcazeitung.es .no-baldomero/ +frustfrei-lernen.de.noContentBannerArea) +gut-erklaert.de.noContentBannerWb + wissen.de.node-promotedj +mikrocontroller.netO.noprint > div[style] + div[style] > script:first-child + div[style]:last-childI +versicherungsjournal.at +versicherungsjournal.de.norm-rsp-wbox1$ +wochenblatt.cc.normal-banner& +pferd-aktuell.de.normalSponsore + team.gamed.deP.normal_text[width="100%"][valign="top"][height="100"][align="left"][border="0"] +noz.de +.nozmhn_ad$ + +nextpit.de.np-product-offers + +nextpit.de .np-top-deals) + netzwoche.ch.np8-type-advertorial + lapippa.com .nva-centero +shop-apotheke.comV.o-ProductSliderItem[data-ssr-as*="\"clickUrl\":\"https://retail-api.sa-tech.de/api/"]s +shop-apotheke.comZ.o-SearchProductListItem[data-ssr-as*="\"clickUrl\":\"https://retail-api.sa-tech.de/api/"]˜ + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.deE.ob-dynamic-rec-container:has(span[class="ob-rec-label ob-oc-label"]) + promiflash.de.ob-p + winfuture.de.ob_what  + gs-forum.eu .oc24-sidebar +liveticker.com.odds +keyforsteam.de.offlineK +maschinensucher.at +maschinensucher.ch +maschinensucher.de.ofni + onmeda.de.on-ad. +finanznachrichten.de.on-click--partner' + onmeda.de.on-top-banner-wrapper + klappeauf.de.opa= +autoscout24.at +autoscout24.de.osa-as24-placeholder= + +onvista.de+.ov-carousel--table-fixed-cells .bg-premium= + +onvista.de+.ov-carousel__inner tr[class*="bg-premium"]! + +onvista.de.ov-interaction& + +onvista.de.ov-interaction-slot) + +onvista.de.ov-table-sponsored-row4 + +onvista.de".ov-table-sponsored-row-disclaimerX + +onvista.deF.ov-table-sponsored-row-disclaimer + .bg-color--cd-blueberry-bright-10| + +onvista.dej.ov-table-sponsored-row-disclaimer + .bg-color--cd-blueberry-bright-10 + .bg-color--cd-blueberry-bright-10$ +ssv-brixen.info .owl-carousel + oz-online.de.ox0 + happysex.ch.p-banner-landscape-containerø% + +6navi.ch.p-banners-withborder + emtb-news.de .p-headerE +augsburger-allgemeine.de%.p-swatch_top-nice--blank.p-blocklink  + kultur.bz.it .page-banner1 + finanzen.ch.page-layout__ad-header-bottom' +tour-magazin.de.page-sponsoring" + eltern.de.page__ad-element( +rhein-zeitung.de.page__billboard + windowspro.de.paid* +finanztreff.de.paid-news-container + windowspro.de.paidc5 +tschechien-online.org.pane-aktuelle-top-links; + grenzecho.net&.pane-dpipub-rossel-imu-middle-moblile3 + grenzecho.net.pane-dpipub-rossel-native-top/ +fotomagazin.de.pane-landing-advertorial0 + isnichwahr.de.pane-simpleads-ad-groups-9T + oekoportal.de?.panel-display > .panel-col-side > #block-views-website-block-1. + paradiso.de.paradiso-hp-ads-horizontal$ +spielregeln.de.parallax_link- +duesseldorfer-anzeiger.de .park-portal� +eulen-ludwigshafen.de +hsc-bad-neustadt.de +hc-erlangen-ev.de +fc-suedtirol.com +veu-feldkirch.at +hcpustertal.com +plattentests.de +hcinnsbruck.at + electrive.net + +broncos.it + 1000ps.at + 1000ps.ch + 1000ps.de + +ibash.de +fck.de.partner' +gmx.net +web.de.partner-links  + +esports.ch.partner-logos) + herthabsc.com.partner-main-footer( +finanzfluss.de.partner-news-card) +finanzfluss.de.partner-suggestion + +bhc06.de.partner-teaser% + eintracht.com.partner-wrapper= +wallstreet-online.de!.partnerNews > a[target="_blank"]' +rts-salzburg.at.partner_section3 +highway-magazin.de + +gota6.ch .partnerlinks+ +deutscherskiverband.de .partnerlogosK +p-stadtkultur.de + hannover96.de + +esports.ch +sihf.ch .partners( +vfl-wolfsburg.de.partners-footer2 +floatmagazin.de.partners-title + .partners + dererker.it .partvert" + dererker.it.partvert-right5 +tagesstimme.com.pb-8.text-center.float-center +fla.de.pbph" +otto.de.pdp_reco-sponsored +otto.de.pdp_sda__slot+ + +heise.de.perf-cls-reduc-leaderboard) + +heise.de.perf-cls-reduc-rectangle +kino.de.performance-pub  + goyellow.de .phoneblockAd + pi-news.net +.pi-bannerc +harpersbazaar.de + freundin.de + +esquire.de + +instyle.de +elle.de.placeholdercontainer& + +blick.ch.placement-leaderboard$ + +blick.ch.placement-rectangle8 +englisch-lernen-online.de.plainContentCollection( +zuckerporno.com.pornofilme_recht +reise-preise.de.port.hiF +saarbruecker-zeitung.de +volksfreund.de +wz.de .portal-slot +ga.de .portal-top[ +iphone-tricks.deC.post div[style="float:none;margin:0px 0 0px 0;text-align:center;"]# + ibooks.to.post_content .btn + hartware.de .postanzeige +swz.it.pr# +ostbelgiendirekt.be.pr-area& +prad.de.prad-td-header-sp-recs +oljo.de.preisboxinner/ +liveticker.com.prematchOddsBonus__bonus + tri2b.com.premium& +frischauf-gp.de.premiumPartnerÎ" + +golfv.de.premium_firm_list +f95.de.premiumpartner# +pferd-aktuell.de .presenting, +deutsche-apotheker-zeitung.de.presse& +hsvhandball.com.primary-footer" + winfuture.de.primis_widgetš +traktorpool.deƒ.print\:hidden.justify-center.items-center.mx-auto.min-h-\[205px\].max-\[330px\]\:hidden.relative.min-\[330px\]\:grid.min-\[330px\]\:w-\[300px\].min-\[366px\]\:min-h-\[250px\].min-\[366px\]\:w-\[336px\].min-\[780px\]\:min-h-\[90px\].min-\[780px\]\:w-\[720px\].min-\[1020px\]\:min-h-\[250px\].min-\[1020px\]\:w-\[960px\].min-\[1030px\]\:w-\[970px\].md\:mb-10.col-span-full.max-md\:order-3˜ +traktorpool.de�.print\:hidden.justify-center.items-center.mx-auto.min-h-\[205px\].max-\[330px\]\:hidden.relative.min-\[330px\]\:grid.min-\[330px\]\:w-\[300px\].min-\[366px\]\:min-h-\[250px\].min-\[366px\]\:w-\[336px\].min-\[780px\]\:min-h-\[90px\].min-\[780px\]\:w-\[720px\].min-\[1020px\]\:min-h-\[250px\].min-\[1020px\]\:w-\[960px\].min-\[1030px\]\:w-\[970px\].order-2.md\:order-1.md\:col-span-full + +prinz.de.prinz-info--lb% + songtexte.com.prmtnContentMin% + songtexte.com.prmtnKeepHeight + +ariva.de .prodo-shadow +otto.de .product.spa + +maclife.de .productboxC +zentrum-der-gesundheit.de".products-inarticle-slider--parent; +aktionspreis.de$.produkt_uebersicht > div > br.clear! + coolibri.de.promContainer" +endstation-rechts.de.promoB +reisemobil-international.de + campervans.de.promo-af-wrap  +tvspielfilm.de +.promo-box+ +tvspielfilm.de.promo-box-any-banner# +perfektdamen.co .promo__item( +wegwerfemailadresse.com .promobox2 +snowsociety.com.promotion-teaser-container* +stadt-bremerhaven.de.psw-container7 +europa-landmaschinen.de +suedtirolnews.it.pub+ +europa-landmaschinen.de .pub-content + +tchgdns.de .pub-footer" + +tchgdns.de.pub-single-side! +boersennews.de .pub_slot_d- +mallorcazeitung.es.publi_cabecera_270% +mallorcazeitung.es .publi_mega& +mallorcamagazin.com .publicidadZ + t-online.deG.py-16.bg-alpine.border-b.border-solid.border-whitelilac.md\:min-w-pagec + t-online.deP.py-16.md\:py-24.border-solid.border-whitelilac.text-trout.leading-17.md\:hidden +lifechannel.ch.pz_cont, + radiobeo.ch.qf-standard-banner-wrapp" +teneriffa-news.com.qm-head" +teneriffa-news.com.qm-side; +ssvbozenhandball.it .qodef-e-logo > img[height="80"] + +jamesfm.ch .qt-sponsorX +grazia-magazin.de +idee-fuer-mich.de + ok-magazin.de + +vital.de .quartermedia+ +crossmagazin.de.quiz-footer-wrapper +codecheck.info.r; + netzkino.de(.r-d045u9.r-1udh08x.r-bnwqim.css-1dbjc4ng +power-wrestling.de +radsportaktuell.de +tennisaktuell.de + dartsnews.de.raw-html-component + videoaktiv.de.rcu + videoaktiv.de.rec + nydus.org +.recommend% + jobscout24.ch.recommendations + +games.ch.rect + anisearch.de.rectX! + anisearch.de .rect_sidebarª +insuedthueringen.de +fussballdaten.de +frankenpost.de +i-fidelity.net + rheintaler.ch + modhoster.de + np-coburg.de + telepolis.de + +metal.de +.rectangle$ + trendyone.de.rectangle-right( +hifistatement.net.rectangles-row$ +radioguetersloh.de +.rectright+ +escortboard.de.ref-header-top-baner, + isnichwahr.de.region-head-adbar-left! + jungle.world .region-topad + 1000ps.at.reifen-winter$ +economyaustria.at .ressort_ad< +suche.freenet.de$.result-container > .container-right# +drpornofilme.com .resumecard×0 + curved.de.review-recommendation-headline4 + curved.de#.review-recommendation-headline + a% + nydus.org.right > .widgetbox2- +oberberg-aktuell.de.right-leaderboard + abload.de .rightbanner +aol.de.rmp-module__gam  +dfb.de.rotation-partners + +vilan24.ch.rotator! + +funpot.net.rotdiv_dspnone# + apfeleimer.de.rotslide-wrap  +reviersport.de +.rs-ad-tag% +reviersport.de.rs-superbanner + winfuture.de +.rutschdiv + sport1.de.s1-ad +xn--solitr-fua.de.sa2! +xn--solitr-fua.de.sa2_top+ + +desired.de + +familie.de .sad_banner0 + +desired.de + +familie.de.sad_out-of-page/ + +desired.de + +familie.de.sad_pubperform. + +desired.de + +familie.de.sad_rectangle0 + +desired.de + +familie.de.sad_rectangle_2( + +desired.de + +familie.de.sad_sky. + +desired.de + +familie.de.sad_topmobileb +digital-eliteboard.com +musiker-board.de + disco-load.cc + woodworker.de.samBannerUnitt +digital-eliteboard.com +vielfliegertreff.de +musiker-board.de + radioforen.de + +macuser.de .samCodeUnit + +metal.de.sb7 +wallstreet-online.de.sb_popularleverageproducts( +wallstreet-online.de .sb_quotebox + ef-magazin.de.sbad8 + popkultur.de$.sc-button[href^="https://amzn.to/"]> + popkultur.de*.sc-button[href^="https://www.amazon.de/"]/ +terramatermagazin.com + +servus.com.sda- + sport.sky.de.sdc-site-au__leaderboard' + sport.sky.de.sdc-site-au__mpu-13 +forum.digitalfernsehen.de.sdgAdServerAnchor{ +rheinische-anzeigenblaetter.de +augsburger-allgemeine.de + t-online.de + watson.de + +golem.de.sdgSlotContainer( +sportdeutschland.tv .sdtv-gothaer" +trvlcounter.de .second_slot  + ladies.de.section-banner* + meedia.de.section-banner-fullwidthD +selbstaendig-im-netz.de%.selbs-blog-startseite-und-kategorien4 +selbstaendig-im-netz.de.selbs-unter-artikeln) +wallstreet-online.de .shareInFocus* +wallstreet-online.de.shareTodayBox + merkurist.de .shipment$ + merkurist.de.shipmentPremium" + merkurist.de.shipmentSuper4 +gentleman-blog.de.shoepassion_content_banner4 +gentleman-blog.de.shoepassion_sidebar_bannerV +gamesaktuell.de + gamezone.de + +pcgames.de + buffed.de.shopLinkFrameWrapper + +newzs.de .shopWidget + +xnxx2.de .show-banner + +xnxx2.de .show-block + sexabc.ch +.showpopup& + sexabc.ch.showpopup-backgroundµ +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com.sicce-300x250W +pornohirsch.net +pornotanja.com + pornolisa.com + pornoente.tv .sice-300x250) +german-porno-deutsch.info.sidebar) + ploetzblog.de.sidebar > .imglinks% +rheiderland.de.sidebar-addboxH +giga.de9.sidebar-btn-affiliate[rel="nofollow noopener sponsored"]1 +kreativfieber.de.sidebar-right > #text-110 +kreativfieber.de.sidebar-right > #text-6) + +explora.ch.sidebar-sponsor-outlay¡" + +parfumo.de +.sidebar_aG +flugmodell-magazin.de +trucks-and-details.de.sidebar_partners! +automatentest.de .sideinfo& +einfachkochen.de.site__ads-top´ +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com .size-300x250 +computerbase.de.skin-ad+ + gesundheit.de + onmeda.de .sky-left, + gesundheit.de + onmeda.de +.sky-right$ +hifi.de.sky1-outer-container +frischauf-gp.de.skyadd +internet-sms.com.skybg" +anime-loads.org .skycontent, +spiele-kostenlos-online.de +.skycraper´ +dynamo-dresden.de +fruchtportal.de +jetztspielen.de + ligaportal.at + rheintaler.ch + 11freunde.de + charivari.de + +amazona.de + +spielen.de + +dialo.de .skyscraper$ + iplayapps.de.skyscraper_left% + iplayapps.de.skyscraper_right +fla.de.skyscrapper-left  +fla.de.skyscrapper-right + search.ch +.sl-banner5 + a3kultur.de".slick--optionset--anzeigen-slider! + boxverband.at .slick-track +aedt.de +.slide-box' +tippspiel.wa.de.sliderContainer  + sexabc.ch.sliderINSERATE + sexabc.ch +.sliderTOP + suche6.ch +.slideshow + wallis24.it .slideshowck) +hcgherdeina.com.small-sponsor-box. +finanznachrichten.de.smartbroker--text- +finanznachrichten.de.smartbroker-logo) +finanznachrichten.de .smartbroker1, +stereoguide.de.smartmag-widget-codes + 5-sms.com.smsbox1 + 5-sms.com.smsbox2! +administrator.de .snhb-ads# +finanzen100.de .snippet--cta( +finanzen100.de.snippet-container + ladies.de .sol-content! + +golem.de.sp-breakout-affy' + 4fansites.de.spalten_33_werbung^ +meetingpoint-brandenburg.de;.span > .white_bg[style="width: 100%; padding-right: 5px;"]^ +meetingpoint-brandenburg.de;.span.white_bg[style="padding: 7px 2px; margin-left: 5px;"]Q +meetingpoint-brandenburg.de..span[style="width: 160px; margin-left: 5px;"]‘ +xhamster-sexfilme.com +sexvideos-gratis.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +hd-sexfilme.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +halloporno.net +pornofelix.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornohans.com + hdpornos.net + pornoente.tv + pornotom.com + sexente.com.spc_height_80* +gernekochen.de.spice-box-container, +xn--spidersolitr-qcb.de .spielen_kopf, +mahjongkostenlos.de.spielseite_anz_2+ +mahjongkostenlos.de.spielseite_kopf3 +german-porno-deutsch.info + +spox.com.spons( + fcaugsburg.de.sponser-lead-inner­ +bolzano-bozen.it +hc-elbflorenz.de +frischauf-gp.de +scfreiburg.com + europages.de + mainpost.de + +argovia.ch + +esports.ch + +radio24.ch +svww.de.sponsor +fcz.ch.sponsor--margin& +dynamo-dresden.de .sponsor-list' +rittnerbuam.com.sponsor-section) +asv-hamm-westfalen.de .sponsor_col$ + eisbaeren.de.sponsor_wrapperX +toolbox.webediagaming.de + +ariva.de + +zdnet.de +otto.de +tips.at +.sponsoredc +motorradonline.de +runnersworld.de + caravaning.de + menshealth.de.sponsored--container$ + +heise.de.sponsored-placement_ +rot-weiss-erfurt.de + budapester.hu + seo-united.de + +arminia.de +vfb.de +.sponsoren) +hc-erlangen-ev.de.sponsoren-right& + fcenergie.de.sponsoren_wrapper + +tsv1860.de .sponsorftr( +hc-erlangen.de.sponsoring-footerš) + hornoxe.com .sponsorleft‚ +fc-union-berlin.de +hallescherfc.de +rundumkoeln.de + +bayer04.de + +uniliga.gg +bvb.de +dhb.de +ofc.de .sponsors. +sg-flensburg-handewitt.de .sponsors-col# + +uniliga.gg.sponsors-desktop( +tv.herthabsc.com.sponsors-holder) +tsg-hoffenheim.de.sponsors-slider+ +freiburgesports.de.sponsors-wrapper( +sportclub-meran.it.sponsorslider$ +digitalkamera.de .sponsortext + +hceppan.it +.sportnews + windowspro.de.spostH +wildesporno.xxx + frauporn.com + xfilmen.com + 1milf.com.spot< + frauporn.com + xfilmen.com + 1milf.com .spot_bottom + windowspro.de.sppost +hansa-online.de.spu-box# + +spox.com.spx-adsurbg-bannerµ +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com.spz_height_60£ +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com.spz_height_80 +ebay.de.srp-1p__banner! + mobile.de.srp-placeholder2 +bild.de#.stage-teaser__partner--advertorial+ +blog-it-solutions.de.sticky-wrapper( + radiobob.de.stickyBanner-wrapper, + finanzen.net.sticky__container--mrec+ +wasserburger-stimme.de .stimm-widget# + +salto.bz.stj-sidebar-widget5 +bafoeg-rechner.de +studis-online.de.ston-ad< +bafoeg-rechner.de +studis-online.de.ston-contentad— +suedwestfalen-nachrichten.de +blaulichtreport-saarland.de +mittelstand-nachrichten.de +bauen-wohnen-aktuell.de +oberberg-nachrichten.de +automotive-aktuell.de +wirtschaftsfenster.de +finanzratgeber24.de +karriere-aktuell.de +reiseratgeber24.de +emobilratgeber.de +business-echo.de +gesundheit-on.de +bauen-garten.de +landmomente.de + tutonaut.de + tedamo.de .stream-item( + +ecvsv.at.stream-item-top-wrapperÿ +suedwestfalen-nachrichten.de +mittelstand-nachrichten.de +bauen-wohnen-aktuell.de +oberberg-nachrichten.de +automotive-aktuell.de +wirtschaftsfenster.de +finanzratgeber24.de +karriere-aktuell.de +reiseratgeber24.de +emobilratgeber.de +business-echo.de +gesundheit-on.de +bauen-garten.de +landmomente.de + tutonaut.de + tedamo.de.stream-item-widget/ + de.motor1.com + insideevs.de +.stroer-ap7 + de.motor1.com + insideevs.de.stroer-ap_wrapper + sinn-frei.com.stx0 + +wetter.com.styles-module__KqHK9a__adSlot + coincierge.de +.su-button? +handyraketen.de(.su-button-wide[href^="http://amzn.to/"]( +finanzfluss.de.suggested-partner +mt.de.superadú +leben-und-erziehen.de +grazia-magazin.de +idee-fuer-mich.de +inside-digital.de +i-fidelity.net +jagderleben.de + ok-magazin.de + maedchen.de + +fuersie.de + +ka-news.de + +kochbar.de + +jolie.de + +kress.de + +petra.de .superbanner4 +pharmazeutische-zeitung.de.superbanner-frame& +scfreiburg.com.superbanner-top, +computerbild.de.superbannerContainer, +readersdigest.de.superbanner_wrapper + +tonight.de .support-box% + vanion.eu.support_banner_lead + +broncos.it +.supporter5 +scdhfk-handball.de +ntz.de.swiper-container +swp.de +.swp-adbox  + frauporno.com .sz_300_250! + t-online.de.tMRM_billiger) + +duden.de.tabloid__side-column-top$ +selbstaendig-im-netz.de.tad1 + laola1.at.tag-presented + +golem.de.tags( +frustfrei-lernen.de .tandem_right& +frustfrei-lernen.de .tandem_top, +smartphonemag.de.td-banner-wrap-full* +primavera24.de.td-header-container& + marktindex.ch.td-header-header^ +krautundrueben.de +bauernzeitung.at + marktindex.ch + lokalo.de.td-header-rec-wrap +teilzeithelden.de.td_112 + marktindex.ch.td_uid_89_6141b5fdd19ca_rand +radioschwaben.de.tdi_29à  +sportsbusiness.at.tdi_50 +bauernzeitung.at.tdi_59 +neumarkt-tv.de.tdi_88 +bestattungen.de.tdp +bild.de.tea-rectangle; + themarket.ch +wort.lu +nzz.ch.teaser--sponsored# + +ariva.de.teaserPicturedNews* + watson.ch.teaser_type_paid_content, + +familie.de.teaserheld-header-wrapper$ + watson.de.teaserheld-wrapper) + motor-talk.de.tef-widget__ad-slot +computerbase.de.text-ad\ +donaukurier.deF.text-center.container.d-none.d-sm-block.margin-bottom-10.bb-fixheighta +deutsche-sexfilme.net +scharfe-pornos.com +analsexporno.net +pornomonster.com.tf-de0 +analsexporno.net +fickverein.com.tf-ho0 +analsexporno.net +fickverein.com.tf-sp# +m.tvspielfilm.de .tfm-banner2 +t3n.de$.tg-articletype-sponsored-deal.c-pin, +t3n.de.tg-articletype-sponsored-post( +t3n.de.tg-stage-sponsoredcontent( + +salto.bz.theme-carousel-partners + hifitest.de .themenmonat" + spektrum.de.tile99-wrapper + +duden.de.tile__wrapper + htfgames.com.tipps +rro.ch .tisement + smartdroid.de.titelad* +soeren-hentzschel.at.tnemesitrevdaI% +#www-t--online-de.cdn.ampproject.org + t-online.de.toi-sh-breaker# + songtexte.com.toneFusePanel# + +nextpit.de.top-deals-swiper% + fcbinside.de.top-footer-inner+ +oberberg-aktuell.de.top-leaderboard + angelshow.de +.top-panel + +macwelt.de .top-products% + herthabsc.com.top-sponsor-nav + +gload.to .top2019main# + +radio.at + +radio.de.topASp$ +helles-koepfchen.de .topAdCol4 +photovoltaikforum.com + az.com.na +.topBannerz +pcgameshardware.de +videogameszone.de +gamesaktuell.de + gamezone.de + +pcgames.de + buffed.de.topFrameEddie$ + zumfahren.de.topRight300x2508 +sternzeichen.net +edelsteine.net.top_bannerbar +xrel.to .top_news_adv1 +rheiderland.de.topanzeigen-slider-wrapper1 +boerse-online.de + sexforum.ch +.topbanner  +n-tv.de.topbanner-mobile + +queer.de .toplinks' + mobile.de.topresult + .dealerAd +f95.de .topsponlink + my-ladies.ch.tpa-row% +xnxx-deutsch.com .tracking-btn- +supermarkt-inside.de.tracking_trigger, +photovoltaikforum.com.traffectiveBox& +trauerhilfe.it.trauerhilfe_ads3 +mannheimer-morgen.de.trf-billboardcontainer! +radsport-seite.de.trikots- +tritime-magazin.de.tritime-ads-middle* +tagesspiegel.de +pnn.de .ts-sptag + biallo.de.tso-pub" + lolabrause.ch .tx-admanager1 +mein-klagenfurt.at.tx-ghrandomcontent-pi1* +hamburg-pride.de.tx-imagecycle-pi1# + astronomie.de.tx-sf-banners " +bayernwelle.de .type-banner +boersen-zeitung.de.u-add + lr-online.de +moz.de +swp.de<.u-adSlot:not(.u-adSlot--sky-left):not(.u-adSlot--sky-right)& +uhrenratgeber.com .uhren-widget# + funcloud.club.underContentA +urlaubsguru.de .uniq-adsH +hausgeraete-test.de +heimwerker-test.de + hifitest.de.unserePN +hausgeraete-test.de +heimwerker-test.de + hifitest.de.unserePartner +flz.de.user-flzads-pi1º +auto-motor-und-sport.de +mountainbike-magazin.de +elektrobike-online.com +outdoor-magazin.com +motorradonline.de +outdoorchannel.de +runnersworld.de +womenshealth.de + aerokurier.de + caravaning.de + menshealth.de + flugrevue.de + promobil.de + roadbike.de + +cavallo.de.v-A_-commercial, +godmode-trader.de.v-is-sponsored-box + +cavallo.de +.va-adhintì +auto-motor-und-sport.de +outdoor-magazin.com +motorradonline.de +runnersworld.de +womenshealth.de +mehr-tanken.de + aerokurier.de + menshealth.de + flugrevue.de + promobil.de + +cavallo.de + bike-x.de .va-sponsoredó +auto-motor-und-sport.de +outdoor-magazin.com +motorradonline.de +runnersworld.de +womenshealth.de +mehr-tanken.de + aerokurier.de + menshealth.de + flugrevue.de + promobil.de + +cavallo.de + bike-x.de.va-stroer-billboard: +hallescherfc.de + pfalz-echo.de.vc_carousel-inner& +vfl.de.vc_custom_15443639979689 +xn--schne-aussicht-xpb.de.vc_custom_16233089985542 +ride-on-magazin.de.vc_custom_1629451242127/ +hansa-online.de.vc_custom_1666781149136 + bbqpit.de .vc_raw_html% + gn-online.de.verticalCarousel! +ebay.de.vi-lb-placeholderM +pornohutdeutsch.net +sexfilme24.org + free-gay.org.video-side-adds* +deutschsex.com.video__sidebar-item  + 1200grad.com .videobanner( +finanztreff.de.videosponsor_hsbcU +solaranlage-ratgeber.de + heizsparer.de%.vidheight[style="min-height:450px;"]& + busplaner.de.view--advertorial" + netzwoche.ch.view-partners$ + mywheels.tv.view-type-falken# +vip.de.vip-medium-rectangle! + mobile.de.vip-placeholder +vip.de .vip-teaser! + frauporno.com .vjs-overlay� +xhamster-sexfilme.com +sexvideos-gratis.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +hd-sexfilme.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +halloporno.net +pornofelix.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornohans.com + hdpornos.net + pornoente.tv + pornotom.com + sexente.com .vjs-overlays + velomotion.de +.vm-banner + ddl-warez.cc.vpn_btn +stol.it .w-header) + bz-berlin.de + +petbook.de.w-mrec& +boerse-online.de.wallpaper_top$ +analysedeutschland.de.wanner + biallo.de.wb + biallo.de.wb-wide! + dogforum.de.wcfYdLocation" + nsladies.de.webcam-premium + seekxl.de.welcome + nydus.org.werb4 +fernsehserien.de + dolomiten.de .werbemittel + biete6.ch .werbepartner$ + +ariva.de.werbeplaetze_button3 +kunststoffweb.de.werbeplatzierung-container0 + +wetter.com.werbung:not(.toolbar-wrapper)! + weltwoche.ch .werbungSmall  + weltwoche.ch .werbungWide" +winfuture-forum.de.wf_gcsi! +heilfastenkur.de .whinweisL +radsport-rennrad.de +bikesport-emtb.de + radfahren.de .wide-banner + 1000ps.ch.wideboard-cad +nau.ch.wideboard-top, +aerotelegraph.com.widget--marktplatz) +kostenloses-fernsehen.de .widget-1C +kostenloses-fernsehen.de +melodieundrhythmus.com .widget-3 +kt1.at .widget-5 +kt1.at .widget-7Å/ +digitalkamera.de.widget-injection-point+ +primeleague.gg.widget-list-sponsors, +wp-koenigin.de.widget__image--bannerR +haus-garten-magazin.de +gameswirtschaft.de.widget_aawp_widget_bestsellerG +diekuechebrennt.de +gameswirtschaft.de.widget_aawp_widget_box9 +nachbelichtet.com .widget_aawp_widget_new_releases* + gearnews.de.widget_adtag_rectangle' + usa-info.net.widget_atkp_widget + zueri6.ch.widget_banner# +heimatreport.de .widget_cfac% + diesachsen.de.widget_commerceÖ +solaranlage-ratgeber.de +cyclingmagazine.de +schmunzelseite.de +signal-online.de +autogazette.de +radio-aktiv.de +xxx-amateur.eu + unzensiert.ru + amigaland.de + +szene.link.widget_custom_html0 +nibelungen-kurier.de.widget_dkge_wrapper% +freiluft-blog.de .widget_linksˆ +hebelschein-spekulant.de +alps-magazine.com +werbestandard.de + mdz-moskau.eu + +skynews.ch + lokalo.de.widget_media_imageY +computerfachmagazin.de +office-roxx.de + bueroblog.ch.widget_metaslider_widget: +buongiornosuedtirol.it.widget_random_banner_widget# + puschtra.it.widget_sp_image, +hebelschein-spekulant.de .widget_textG +zitate-online.de/.witz > .bewertung + .detaillink + p:last-child9 +zitate-online.de!.witz > .bewertung + p:last-child? + celleheute.de*.wixui-column-strip.wix-blog-hide-in-print + +delamar.de.wk* +regensburg-digital.de .wk-slideshow + +ariva.de.woBannerHeader# + +ariva.de.wo_news_top_bannerC +allround-pc.com,.wp-element-button[href^="https://amzn.to/"], + hoga.careers.wpadverts-widget-recent\ +xvideos-deutsch.com +youporndeutsch.info + pornohut.info.wps-player__happy-insideY + technic3d.comD.wrap > footer[style="bottom: -260px;"]:last-child > div:first-child + +fkk24.de.wrapper-bannerq +soester-anzeiger.de + +come-on.de + merkur.de +fnp.de +fr.de +tz.de +wa.de.wv_story_el_billboard? +fuldaerzeitung.de + buzzfeed.de.wv_story_el_insertedAd! +analysedeutschland.de.wwd0 +image-hifi.com + utvmagazin.de .x-topbar + finanzen.ch .yaleo-ad + games-mag.de.yftovjn& + games-mag.de.yftovjn-container, +digitalphoto.de +beat.de +.yieldloveY +zeitmanagementspiel.de +mahjongspielen.de +aktionspiele.de.ympb_target_banner  + guteporno.com .zeigenfick + +tri-mag.de .zekfylmnsq" + zenideen.com.zenid-adlabel3 + +zeno.org#.zenoLSInnerProductTableRightAmazon +zwischengas.com.zgsky9 +german-bash.org".zitat > div[style="width:300px;"] + 3drei3.de .zona_publi% + lifeverde.de.zusatz_billboard + +heise.de A-PATERNOSTER0 + home24.de[data-cnstrc-sl-campaign-owner]6 + mediamarkt.de![data-test="mms-search-showcase"]P + +fitbook.de + +petbook.de0[data-view-track="stickybar.display.Skyscanner"]G +pornhutdeutsch.com-[href^="https://start.amateurcommunity.com/"]6 +pornhutdeutsch.com[href^="https://susi.live/"]; +pornhutdeutsch.com![href^="https://www.zubivu.com/"]( +skodacommunity.de[id^="fh-afp_"]< + ddl-warez.cc([onclick^="window.location.href='/azn/"]< +allround-pc.com%[style*="background-color: #001d4a;"]F +nebenwerte-magazin.com(a[aria-label="auvesta-gold-sparvertrag"]H + +onvista.de6a[class*="ArticleTeaserBox"][href^="https://bnpp.lk/"]O + +onvista.de=a[class*="ArticleTeaserBox_ovArticleTeaserBoxDefaultHeight_"]3 + manomano.de a[class*="sponsoredProductCard"]' + neuwagen.dea[class="placement"], + +camping.dea[class^="herobanner-adv"]½'< +hallo-minden.de%a[data-adid]:not([data-adid="12937"])9 +mobilegeeks.de#a[data-eventcategory="Kooperation"]1 + +ariva.de!a[data-google_analytics_id^="wo"]+ + schlager.dea[data-name="topbanner"] + gawina.de a[data-track]r% +#www-t--online-de.cdn.ampproject.org + t-online.de8a[data-url^="https://count.shopping.t-online.de/RE?ID="]D +bildschirmarbeiter.com&a[href$="xref=nosim/wwwbildschirm-21"]% + +onvista.dea[href*="&adname="]2 +tarnkappe.infoa[href*=".rokkr.net/promo/"]¢ +rechtsdepesche.de +via-ferrata.de + picdumps.com + polizei.news + donau3fm.de + isaswomo.de + +dkamera.de + +spox.com +ofdb.dea[href*="//bit.ly/"]& + hd-source.toa[href*="/af.php"]* + ddl-warez.cca[href*="/azn/"] > img" + 6chat.orga[href*="/b1a8/"]1 +amigafuture.dea[href*="/boardheaderads/"]) +erogeschichten.coma[href*="/go/"]. +osthessen-news.dea[href*="/goto.php?"]5 +tarnkappe.infoa[href*="/hide.me/de/?friend="]U +cannabis-special.com +supertipp-online.de + +3druck.coma[href*="/linkout/"]7 +ostfussball.com + ddl-warez.cca[href*="/out/"]# +bild.dea[href*="/partner/"]/ +tarnkappe.infoa[href*="/prf.hn/click/"]E + emtb-news.de + mtb-news.de + ladies.dea[href*="/redirect/"]* +tarnkappe.infoa[href*="?sca_ref="]^ +live.vodafone.deFa[href*="https://vflive.de/lotto24_desktop300x250-home"] > .card-promo/ + finanzen.neta[href="#p500Werbehinweis"]) + +areadvd.dea[href="/panasonic_de"]4 +strippokerregeln.coma[href="/www/888casino"]S + finanzen.net?a[href="http://g.finanzen.net/ubs-aktiendetail-hebel-fallback"]: + outleter.org&a[href="http://topne.ws/onlineoutlet"]® +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.coma[href="https://bit.ly/"]†% +#www-t--online-de.cdn.ampproject.org + t-online.deLa[href="https://gebrauchtwagen-suche.t-online.de/marke-skoda/modell-superb"]1 + myboerse.bza[href="https://tinyurl.com/"]R + apfelpage.de>a[href="https://www.betrugstest.com/online-casino/apple-pay/"]l + apfelpage.deXa[href="https://www.easeus.de/datenrettung-software/mac-data-recovery-wizard-free.html"]5 +tarnkappe.infoa[href^=" https://www.bit.ly/"]/ + +kinoger.toa[href^="//fbmedia-ckl.com/"]B +hammerporno.xxx+a[href^="//plx.hammerporno.xxx/pool_link/"]/ +porno-himmel.neta[href^="//wixnm.com/"]& +schausteller.dea[href^="/ad/"], + +dkamera.dea[href^="/adserver/goto/"]; +flz.de-a[href^="/api/content/public/media/link?id="]U + herthabsc.deAa[href^="/de/hertha/sponsoren/exklusiv-partner/uebersicht/page/"]. +nacktefoto.coma[href^="/red/red.php?"]- +bastel-elfe.dea[href^="banners.php?"]2 + zensiert.neta[href^="http://camgirly.net"]m% +#www-t--online-de.cdn.ampproject.org + t-online.de3a[href^="http://count.shopping.t-online.de/RE?ID="]X +blockbuster.to + goldesel.sx + saugen.to&a[href^="http://filestore.to/premium"]C + finanzen.net/a[href^="http://g.finanzen.net/bs-anlegerclub"]Q + finanzen.net=a[href^="http://g.finanzen.net/hsbc-startseite-top-flop?id="]G + finanzen.net3a[href^="http://g.finanzen.net/premium-teaser-bnp"]F +erogeschichten.com,a[href^="http://in.mydirtyhobby.com/track/"]? + +bbszene.de-a[href^="http://partners.webmasterplan.com/"]B +metacrawler.de +msn.com!a[href^="http://rover.ebay.com/"]4 +gamemovieportal.cha[href^="http://tidd.ly/"]¹ +bildschirmarbeiter.com +das-sternzeichen.de +schule-studium.de +gamingmedia.de +metacrawler.de + seaofsin.info + seaofsin.de+a[href^="http://www.amazon."][href*="tag="]p +sexvideoskostenlos.net +sexfilmegratis.net img1 +allround-pc.coma[href^="https://bit.ly/"]C +adventures-kompakt.de&a[href^="https://casino-bonus24.net/"]? +adventures-kompakt.de"a[href^="https://casinoandy.com/"]B +adventures-kompakt.de%a[href^="https://casinopilot24.com/"]G + hockeyweb.de +news.de(a[href^="https://clk.tradedoubler.com/"]F + pcwelt.de +msn.com*a[href^="https://clkde.tradedoubler.com/"]Y +sueddeutsche.deBa[href^="https://cmk.sueddeutsche.de/cms/hub/"][href*="/anzeige/"]n% +#www-t--online-de.cdn.ampproject.org + t-online.de4a[href^="https://count.shopping.t-online.de/RE?ID="]4 +onepiece-tube.coma[href^="https://cutt.ly/"]9 + ligaportal.at$a[href^="https://de.johnnybet.com/"]= + +ariva.de-a[href^="https://dwbdiv.smartbrokerplus.de/"]* +msn.coma[href^="https://ebay.at/"]E + +koeln.de5a[href^="https://ed.koeln.de/ad/www/delivery/ck.php"]8 + finanzen.ch%a[href^="https://fra1-ib.adnxs.com/"]- + porn4k.toa[href^="https://gadlt.nl/"]< + pcwelt.de+a[href^="https://get.surfshark.net/aff_c?"]m +denkmalpflege-schweiz.ch +xhamsterde.com + reiseziele.ch + pornotim.coma[href^="https://goo.gl/"]> +tarnkappe.info(a[href^="https://hide.me/de/promotion/"]6 + hoerbuch.us#a[href^="https://hoerbuch.us/dll/"]1 + ibooks.to a[href^="https://ibooks.to/del"]6 + ibooks.to%a[href^="https://ibooks.to/smmland/"]6 + +blick.ch&a[href^="https://jackpot.onelink.me/"]: + hoerbuch.us'a[href^="https://linksnappy.com/?ref="]; + pornkinox.to'a[href^="https://lp.mydirtyhobby.com/"]> +ero-world.info(a[href^="https://media.campartner.com/"]: + +metager.de(a[href^="https://metager.de/partner/r?"]D + biete6.ch3a[href^="https://mydirtyhobby.com/"][href*="?ats="]4 + pcwelt.de#a[href^="https://ndirect.ppro.de/"]= + winfuture.de)a[href^="https://ndirect.ppro.de/click/"]4 + +bbszene.de"a[href^="https://neu.turbo-d.de/"]* + +goal.coma[href^="https://prf.hn/"]B + pcwelt.de + +focus.de%a[href^="https://pvn.mediamarkt.de/"]— +schnittberichte.com|a[href^="https://pvn.mediamarkt.de/trck/eclick/"] > img[src^="https://www.schnittberichte.com/resources/images/mediamarkt_"]2 + pcwelt.de!a[href^="https://pvn.saturn.de/"]� +schnittberichte.comta[href^="https://pvn.saturn.de/trck/eclick/"] > img[src^="https://www.schnittberichte.com/resources/images/saturn_"]8 + +metager.de&a[href^="https://r.search.yahoo.com/"]5 + emuenzen.de"a[href^="https://rover.ebay.com/"]? + +dkamera.de-a[href^="https://servedby.flashtalking.com/"]N +wallstreet-online.de2a[href^="https://smartbroker.de/"][href*="/?utm_"]J +wallstreet-online.de.a[href^="https://smartbroker.de/?utm_source="]5 + report24.news a[href^="https://tentorium.tv/"]Ì +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +hd-pornos.info +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com%a[href^="https://tik-tok-dates.com/"]5 + pcwelt.de$a[href^="https://tracking.s24.com/"]3 +ero-world.infoa[href^="https://vxcsh.com/"]? +spiele-umsonst.de&a[href^="https://wgaffiliate.com/?a="]8 + winfuture.de$a[href^="https://winfutu.re/trvisa"]� +bildschirmarbeiter.com +pcgamesdatabase.de +onepiece-tube.com +schule-studium.de +naruto-tube.org +bitreporter.de + ruhrbarone.de + pi-news.net + wiiunews.at + +nickles.de + pcwelt.de +chip.de +emok.tv,a[href^="https://www.amazon."][href*="tag="]A +uepo.de2a[href^="https://www.amazon."][href*="tag="] > imgJ + apfeltalk.de6a[href^="https://www.apfeltalk.de/magazin/affiliate/"]; +falk.de,a[href^="https://www.awin1.com/awclick.php"]b +radsport-seite.de + aus-liebe.net + pcwelt.de+a[href^="https://www.awin1.com/cread.php?"]E +chinahandys.net.a[href^="https://www.banggood.com/marketing-"]6 +ero-world.info a[href^="https://www.big7.com/"]I +falk.de:a[href^="https://www.booking.com/searchresults.html?aid="]O +stadt-bremerhaven.de3a[href^="https://www.communicationads.net/tc.php?"]K +computerbase.de4a[href^="https://www.computerbase.de/api/ad-click?"]ø +xhamster-sexvideos.com +deinesexfilme.com +einfachtitten.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +pornohammer.com +pornohirsch.net +pornoklinge.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.com + pornohans.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com&a[href^="https://www.erocom.tv/?utm_"]… +xhamster-sexvideos.com +deinesexfilme.com +einfachtitten.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +pornohammer.com +pornohirsch.net +pornoklinge.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.com + pornohans.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com3a[href^="https://www.erotik-von-nebenan.com/?utm_"]C +wallstreet-online.de'a[href^="https://www.etracker.de/ccr?"]: + pi-news.net'a[href^="https://www.fincabayano.net/"]K +vintageradio.ch +rockitradio.ch"a[href^="https://www.frankly.ch/"]€ +xhamster-sexvideos.com +deinesexfilme.com +einfachtitten.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +pornohammer.com +pornohirsch.net +pornoklinge.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.com + pornohans.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com.a[href^="https://www.handy-sextreff.info/?c="]¥0X + hockeyweb.deDa[href^="https://www.hockeyweb.de/?rex-api-call=pixel_forward&url="]ï +xhamster-sexvideos.com +deinesexfilme.com +einfachtitten.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +pornohammer.com +pornohirsch.net +pornoklinge.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + pornoaffe.com + pornohans.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com.a[href^="https://www.julia-reaves.com/?bicc="]; +trendmutti.com%a[href^="https://www.krokodeal.net/"]G +schwedenstube.de/a[href^="https://www.lead-alliance.net/tc.php"]> + daily-pia.de*a[href^="https://www.manitu.de/?partner="]G + sexabc.ch6a[href^="https://www.mydirtyhobby.de/"][href*="?ats="]; + hoerbuch.us(a[href^="https://www.purevpn.com/?aff="]: + hoerbuch.us'a[href^="https://www.purevpn.com?aff="]8 + sunshine.it%a[href^="https://www.raiffeisen.it/"]� +xhamster-sexvideos.com +xhamster-sexfilme.com +sexvideos-gratis.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +halloporno.net +pornofelix.com +pornofisch.com +pornojenny.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.com + pornohans.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com9a[href^="https://www.susi.live/FreeAccountLanding.aspx?"]D + +areadvd.de2a[href^="https://www.teufel.de/sales?partner_id="]s +pornohirsch.net +pornotanja.com + pornolisa.com + pornoente.tv)a[href^="https://www.tik-tok-dates.com/"]: + pcwelt.de)a[href^="https://www.tkqlhce.com/click-"]F + +tweakpc.de4a[href^="https://www.tweakpc.de/rev3/www/delivery/"]G + nsladies.de4a[href^="https://www.visit-x.net/de/w/chathost/?w="]º +pornhub-sexfilme.net +sexvideos-gratis.com +sexfilme-gratis.com +pornovideos-hd.com +deinesexfilme.com +einfachtitten.com +pornoschlange.com +xnxx-sexfilme.com +gutesexfilme.com +sexvideos-hd.com +tube8-pornos.com +beeg-pornos.com +hd-sexfilme.com +meinyouporn.com +nursexfilme.com +pornohammer.com +pornohirsch.net +pornoklinge.com +xnxx-pornos.xxx +halloporno.net +milffabrik.com +pornodavid.com +pornofelix.com +pornofisch.com +pornojenny.com +pornoritze.com +pornotanja.com +pornotommy.com +pornozebra.com +xnxx-porno.com + herzporno.com + pornoaffe.net + pornohans.com + pornohelm.com + pornoleon.com + pornolisa.com + pornosusi.com + hdpornos.net + lesbenhd.com + pornoente.tv + pornotom.com + sexente.com%a[href^="https://www.visit-x.world/"]^ +pornhubdeutsch.info +xhamsterde.com1a[href^="https://www.wazazu.com/LA/Landingpage?"]E +xhamsterde.com/a[href^="https://www.zononi.com/LA/LP/Finder?"]G +xhamsterde.com1a[href^="https://www.zononi.com/VX/LP/Roulette?"]E + myhomebook.de0a[href^="https://www6.smartadserver.com/"] > img6 + ladies.de%a[href^="https://zwinkr.de/landing/"]+ +dervinschger.ita[id="bottombanner"]3 +wallstreet-online.dea[onclick*="'tableAd'"]9 +wallstreet-online.dea[onclick*="'tableAd'"] + img8 +wallstreet-online.dea[onclick*="tableAd"] + span? +shaz.ch0a[onclick^="__gaTracker('send', 'event', 'Ads'"]@ +supermarktblog.com +allround-pc.coma[rel*="sponsored"]? +computerbase.de(a[rel*="sponsored"] > img[alt="Anzeige"]E + smartdroid.de0a[rel=" noreferrer noopener sponsored nofollow"]A +allround-pc.com*a[rel="external noopener"] > img[src^="/"]A +allround-pc.com*a[rel="noopener external"] > img[src^="/"]Y +schweizer-illustrierte.ch +herz-fuer-tiere.de + anisearch.dea[rel="sponsored"]< +andalusien-aktuell.es + +sex4u.cha[rel^="sponsored"]Î + kfz-steuer.de¸a[style="position:relative; float:left; width:698px; height:63px; padding-left:28px; padding-right:0px; padding-top:14px; border:1pt solid #DADADC; background:#FFFFFF display:inline;"]B + ak-kurier.de.a[target="_new"][href^="inc/inc_link.php?id="]) +sportdeutschland.tvapp-top-banner< + windowspro.de'article.node-teaser:not(.node-promoted)W +otto.deHarticle[data-producttile-tracking*="wk.san_ProductType\":\"sponsored\""]. +weristdeinfreund.deaside[id^="banner"]D + +ww3.cad.de2body > table[width="100%"][border="0"]:first-child. + ddl-warez.ccbutton[onclick*="/af.php"]& + ibooks.tobutton[type="submit"]h + abload.deWcenter > table > tbody > tr > td[valign="bottom"][align="center"][style="width: 100%;"] + chefkoch.de consent-forC + winfuture.de/div[align="center"][style="min-height: 320px;"]V + +onvista.deDdiv[class*="InteractionTypeReference_ov-interaction-slot--fallback"]< + shop.rewe.de(div[class*="Product_productSpecialTile"]8 +onlinehaendler-news.dediv[class*="adplacement_"], +chartsurfer.dediv[class*="adszone-"]& + +amazona.dediv[class*="fnetbr"]0 +biancazapatka.comdiv[class="app-banner"]J + +onvista.de8div[class="col col--sm-4 col--md-3 col--lg-4 col--xl-4"]g + preispirat.chRdiv[class="vc_row wpb_row vc_inner vc_row-fluid"]:has(img[src*="/partner-promo/"])· +gut-erklaert.de + hifi-forum.de + meinestadt.de + nordbayern.de + t-online.de + teltarif.de + +blick.de +kino.de +news.de-div[class] > img[referrerpolicy="unsafe-url"]1 + homegate.chdiv[class^="AdSlotContainer_"]+ +stol.itdiv[class^="AdSuperBanner_"]$ +stol.itdiv[class^="AdUnit_"]% +rnd.dediv[class^="Adstyled_"]; +zentralplus.ch%div[class^="Advertisement_container"]. +mactechnews.dediv[class^="Billboard-"]. +mactechnews.dediv[class^="Billboard_"]T + lessentiel.lu + +20min.ch3div[class^="ContentPage_insideFullTopPlaceholder_"]+ +lovelybooks.dediv[class^="MoliAd_"]8 + +derbund.ch&div[class^="PageLayout_topaddesktop_"]¶". +mactechnews.dediv[class^="Rectangle_"]B +immoscout24.ch,div[class^="ResultListPage_topAdContainer_"]P% +#www-t--online-de.cdn.ampproject.org + t-online.dediv[class^="Tsshopst"]0 +einfachkochen.dediv[class^="ad-display"]! + +90min.dediv[class^="ad_"]0 + +sport.de div[class^="ada-preservespace-"]; +berliner-zeitung.de div[class^="article_billboard-"]& + +2ix2.comdiv[class^="bireklam"], + experten.dediv[class^="c-ad-exper-"]; +mietminderungstabelle.dediv[class^="contentAdBox_"]¨ +lauterbacher-anzeiger.de +giessener-allgemeine.de +giessener-anzeiger.de +wetterauer-zeitung.de +costanachrichten.com +schwaebische-post.de +soester-anzeiger.de +usinger-anzeiger.de +sauerlandkurier.de +hallo-muenchen.de +kreis-anzeiger.de +einfach-tasty.de +innsalzach24.de +kreiszeitung.de +wasserburg24.de +rosenheim24.de + chiemgau24.de + mangfall24.de + az-online.de + landtiere.de + 24garten.de + bgland24.de + buzzfeed.at + buzzfeed.de + +24books.de + +24rhein.de + +24royal.de + +come-on.de + 24auto.de + 24vita.de + ingame.de + merkur.de +bw24.de +fnp.de +hna.de +fr.de +tz.de +wa.dediv[class^="id-TBeepSlot"]3 +costanachrichten.comdiv[class^="lp_track_"]' + morecore.dediv[class^="morec-"]X +rennrad-news.de + emtb-news.de + mtb-news.de"div[class^="mtbnews-ad-container"]H +berliner-zeitung.de +berliner-kurier.dediv[class^="outbrain_"], +via-ferrata.dediv[class^="overlay-"]A + finanzen.net + finanzen.chdiv[class^="page-layout__ad-"]/ + grenzecho.netdiv[class^="pane-dpipub-"]/ +pictures-magazin.dediv[class^="pictu-"]? +mietminderungstabelle.dediv[class^="placeholderAdBox_"]2 +rundschau.infodiv[class^="runds-werbung-"]J +berliner-zeitung.de +berliner-kurier.dediv[class^="showheroes_"]f +evangelische-zeitung.de +berliner-zeitung.de +berliner-kurier.dediv[class^="traffective_"]3 +fraenkischertag.dediv[class^="werb-block-"]. + winfuture.dediv[class^="ws_contentAd"]  + amazon.dediv[data-ad-id]% + +heute.atdiv[data-ad-position]( +pcspezialist.dediv[data-ad-type]( + kurier.at +welt.de div[data-ad]5 +rtl.de +vox.dediv[data-adformat="halfpage"]6 +rtl.de +vox.dediv[data-adformat="rectangle"]F +unsere-helden.com + unnuetzes.comdiv[data-ads-provider="sdg"]1 +gmx.net +web.dediv[data-adservice-slot]- +studysmarter.dediv[data-adv-location]= +berliner-zeitung.de"div[data-component-type="ad-slot"]9 + +freenet.de'div[data-componentid^="ext-frn-adtag-"]3 +finanzfluss.dediv[data-cy="billboard-card"]> +finanzfluss.de(div[data-cy="sustainability-section-ad"]R% +#www-t--online-de.cdn.ampproject.org + t-online.dediv[data-dy*="Partner:"]I + apfelpage.de5div[data-embed-provider="rcm-eu-amazon-adsystem-com"]@ + de.motor1.com+div[data-entrypoint="heycar-search-widget"]C + t-online.de0div[data-external-sdi-mark="banner-placeholder"]: +ingolstadt-today.dediv[data-ez-block-id="3324017"]0 +alles-mahlsdorf.dediv[data-id="904ffeb"]: +kleinanzeigen.de"div[data-liberty-ad-loaded="true"]H +kleinanzeigen.de0div[data-liberty-position-name="home-billboard"]0 + +heise.de div[data-module-name="AdModule"]6 +otto.de'div[data-module-type="SHOPPROMO_LARGE"] +giga.dediv[data-sdg-ad]< +augsburger-allgemeine.dediv[data-slot-name="banner"]= +augsburger-allgemeine.dediv[data-slot-name="banner2"]7 + t-online.de$div[data-testid="TaboolaFeeds.Feed"]. + mobile.dediv[data-testid="VIP_BODY_1"]4 + mobile.de#div[data-testid="VIP_BODY_CONTACT"]7 + willhaben.at#div[data-testid="ad-detail-widget"]g +evangelische-zeitung.de +berliner-kurier.de2div[data-testid="article-billboard-advertisement"]5 + sport1.de$div[data-testid="better-collective"]a + kabeleins.de + prosieben.de +sat1.de +sixx.de +ran.dediv[data-testid="display-ad"]9 + docmorris.de%div[data-testid="sponsored-flagship"]9 + docmorris.de%div[data-testid="sponsored-showcase"]8 +suchen.mobile.de div[data-testid^="SRP_SBANNER_"]: +suchen.mobile.de"div[data-testid^="SRP_TABLECELL_"]H +sportbild.bild.de/div[data-tr-doc-type="dt=InlineAd|st=BTOAdTag"]1 +giga.de"div[data-trigger="sourcepoint-ad"]åI +prosiebengames.de0div[data-url-link^="https://track-adspree.com/"]1 +otto.de"div[data-widget-type="SDA_LEGACY"]9 + gesundheit.de + onmeda.dediv[id$="SparkWrapper"]( +aerzteblatt.dediv[id^="Ads_BA_"]& + teltarif.dediv[id^="LxIdealo"]‡% +#www-t--online-de.cdn.ampproject.org + t-online.deMdiv[id^="T-"].Tmm.Tltb.Tts.Tmc1.Tww1.Thh3[onfocus^="A('zid="] > .Ttsc.Ttsv169e% +#www-t--online-de.cdn.ampproject.org + t-online.de+div[id^="T-"][oncontextmenu="return false"]% +hardware-mag.dediv[id^="ad-"]% + gamestar.dediv[id^="ad-div-"]$ + +20min.chdiv[id^="ad_prime_"]„ +argoviatoday.ch +pilatustoday.ch + baerntoday.ch + zueritoday.ch + fm1today.ch + swissmom.ch +nzz.chdiv[id^="adnz_"]! +haus.dediv[id^="adtech_"]( +yoga-aktuell.dediv[id^="aktue-"]. +finanzfluss.dediv[id^="amundi-table-"]5 + willhaben.at!div[id^="apn-large-result-list-"]' +arbeits-abc.dediv[id^="arbei-"]# + +areadvd.dediv[id^="aread-"]+ + +20min.chdiv[id^="ausland__inside-"]* +crucero-magazin.dediv[id^="avas-"]) +digitalfernsehen.dediv[id^="ax-"]6 +finanzen100.de + +spielen.dediv[id^="banner_"]) + +20min.chdiv[id^="basel__inside-"]+ +basic-tutorials.dediv[id^="basic-"]/ +bayreuther-tagblatt.dediv[id^="bayre-"]( + +20min.chdiv[id^="bern__inside-"]( + bz-berlin.dediv[id^="billboard"]5 + +fitbook.de + +petbook.dediv[id^="billboard_"]1 +hpd.de#div[id^="block-views-advertising-"]/ +buongiornosuedtirol.itdiv[id^="buong-"]# +fla.dediv[id^="cncpt-dsk_"]& + coincierge.dediv[id^="coinc-"]- + +20min.chdiv[id^="community__inside-"]/ + +20min.chdiv[id^="coronavirus__inside-"]d +forum.golem.deNdiv[id^="csi_forum"][style="min-height: 100px; padding: 0px; display: block;"]% +dubisthalle.dediv[id^="dbh-"]+ + +20min.chdiv[id^="digital__inside-"]/ + dogforum.dediv[id^="dogforum_content_"]þ + boerse.sxìdiv[id^="edit"][style="padding:0px 0px 6px 0px"] > table[id^="post"][width="100%"][cellspacing="0"][cellpadding="6"][border="0"][align="center"] + br + .tborder[width="100%"][cellspacing="0"][cellpadding="6"][border="0"][align="center"]- +erotikseitentest.comdiv[id^="eroti-"]+ + +freenet.dediv[id^="ext-frn-adtag-"]+ +finanzmarktwelt.dediv[id^="finan-"]& + foodwissen.dediv[id^="foodw-"]) + windowspro.dediv[id^="gWrapper-"], +nationalgeographic.dediv[id^="gpt-"]$ + ruhr24.dediv[id^="gptslot-"]+ +hardware-helden.dediv[id^="hardw-"]' +ibiza-heute.dediv[id^="ibiza-"]) + ruhr24.dediv[id^="id-beep-slot-"]& + teltarif.dediv[id^="ideaload"]4 + +20min.ch$div[id^="influencer-radar__inside-"]. +journalistenwatch.comdiv[id^="journ-"]1 + +20min.ch!div[id^="kinostreaming__inside-"]* + +20min.chdiv[id^="kochen__inside-"]? + +20min.ch/div[id^="lifestyle_autoundmobilitaet__inside-"]4 + +20min.ch$div[id^="lifestyle_beauty__inside-"]9 + +20min.ch)div[id^="lifestyle_bodyandsoul__inside-"]9 + +20min.ch)div[id^="lifestyle_eatanddrink__inside-"]5 + +20min.ch%div[id^="lifestyle_fashion__inside-"]4 + +20min.ch$div[id^="lifestyle_living__inside-"]< + +20min.ch,div[id^="lifestyle_reduceandreuse__inside-"]4 + +20min.ch$div[id^="lifestyle_reisen__inside-"]2 + +20min.ch"div[id^="lifestyle_wein__inside-"]J% +#www-t--online-de.cdn.ampproject.org + t-online.dediv[id^="ma_ar"]1 +bergsteiger.dediv[id^="medium_rectangle"]—!' + will-mixen.dediv[id^="mixena-"]" + mo-web.dediv[id^="moads-"]4 +modified-shop.orgdiv[id^="modifiedwerbung_"]Y% +#www-t--online-de.cdn.ampproject.org + bz-berlin.de + t-online.dediv[id^="mrec"]0 + +20min.ch div[id^="my-news-plus__inside-"]1 +wallstreet-online.dediv[id^="nativendo-"]$ + tonspion.dediv[id^="netse-"]# +noz.dediv[id^="nozmhn_ad_"]< +frustfrei-lernen.de +faktastisch.dediv[id^="npm_"]. + nydus.orgdiv[id^="nydus_org_300x600_"]& + radiosaw.dediv[id^="oms_gpt_"]+ + +20min.chdiv[id^="onelove__inside-"]. + +20min.chdiv[id^="ostschweiz__inside-"]' + +formel1.dediv[id^="outer_sas_"]* + +20min.chdiv[id^="people__inside-"]0 + +20min.ch div[id^="people_radio__inside-"]% + playfront.dediv[id^="playf-"]) + +20min.chdiv[id^="prime__inside-"]. +professional-audio.dediv[id^="profe-"]1 +handballecke.dediv[id^="promotionHeader"]) +prost-magazin.atdiv[id^="prost-"]& + radioszene.dediv[id^="radio-"]7 + reisetopia.ch + reisetopia.dediv[id^="reise-"], +persoenlich.comdiv[id^="ring-slot-"]H +fitundgesund.at +metal-hammer.de + ichkoche.atdiv[id^="sas_"]* + schlager.dediv[id^="schlager-ad-"]+ + +20min.chdiv[id^="schweiz__inside-"]& + seenluft24.dediv[id^="seenl-"]( +sempre-audio.atdiv[id^="sempr-"]& + smarthomes.dediv[id^="smart-"]% + amazon.dediv[id^="sp_detail"]) + +20min.chdiv[id^="sport__inside-"]/ +wasserburger-stimme.dediv[id^="stimm-"]B +supertipp-online.de +supermarktblog.comdiv[id^="super-"]7 + +fitbook.de + +petbook.dediv[id^="superbanner_"]) + teltarif.dediv[id^="tarifSlider"]% + tippscout.dediv[id^="tipps-"]ÿ +stuttgarter-nachrichten.de +evangelische-zeitung.de +bietigheimerzeitung.de +schwarzwaelder-bote.de +stuttgarter-zeitung.de +berliner-zeitung.de +ingolstadt-today.de +mittelbayerische.de +berliner-kurier.de +donaukurier.de +frankenpost.de + main-echo.de + np-coburg.de + +bbheute.de + +blick.de + +krzbb.de +mopo.de +pnp.dediv[id^="traffective-ad-"]H + +galeria.de6div[id^="viewHomeDesktop-outGrid-sponsored_products-"]O + +galeria.de=div[id^="viewSearchResultDesktop-inGrid-sponsored_products-"]/ + +20min.chdiv[id^="wettbewerbe__inside-"]. + +20min.chdiv[id^="wirtschaft__inside-"]* + +20min.chdiv[id^="wissen__inside-"]' +wochenblick.atdiv[id^="woche-"]% + yenivatan.atdiv[id^="yeniv-"]2 + +20min.ch"div[id^="zentralschweiz__inside-"]+ + +20min.chdiv[id^="zuerich__inside-"]@ +blitzrechner.de)div[onclick^="ga('send', 'event', 'Ad',"]H +android-hilfe.de0div[style$=";min-height:250px;min-width:300px;"]H +android-hilfe.de0div[style$=";min-height:250px;min-width:310px;"]C +weristdeinfreund.de(div[style*="display: block ! important"]6 +kinderspiele-welt.dediv[style*="height:250px"]? + custombike.de*div[style*="width: 300px; height: 300px;"]B +lerntippsammlung.de'div[style*="width:300px;height:250px;"]å + go2android.deÏdiv[style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(https://www.go2android.de/wp-content/plugins/amazonsimpleadmin/img/amazon_DE_small.gif) right bottom no-repeat #ffffff;"]? + oekotest.de,div[style="clear: both; min-height: 300px;"]? + oekotest.de,div[style="clear: both; min-height: 640px;"]M + oekotest.de:div[style="clear:both; display:block; min-height: 300px;"]M + oekotest.de:div[style="clear:both; display:block; min-height: 640px;"]“ +hardwareluxx.de|div[style="float: right; clear: both; padding-left: 1rem; margin-top: -1rem; margin-right: -9rem; padding-bottom: 0.25rem;"]m +wirtschaftslexikon24.comMdiv[style="float:left;clear:left;height:620px;width:180px;padding-top:15px;"]ô +breakpoint.untergrund.netÒdiv[style="float:right; width: 110px; margin-left: 15px; margin-top: 12px; margin-bottom: 15px; padding: 2px 6px; text-align: center; border: 1px solid black; background:white; line-height: 2em; color: black;"]G + +pixelio.de5div[style="float:right; width: 300px; height: 250px"]/ + scifiscene.dediv[style="height: 166px"]ù(2 +news.reiseuhu.dediv[style="height: 250px"]A + n-mag.org0div[style="height: 280px; margin: 5px 0 5px 0;"]2 +raptastisch.netdiv[style="height: 300px;"]^ + reiseuhu.deKdiv[style="height: 600px !important; max-width: 320px; margin: 15px auto;"]G +boerse-social.com.div[style="height:80px;background-color:#fff"]* + +photaq.comdiv[style="height:90px"]L + nydus.org;div[style="height:90px;overflow:hidden;text-align:center;"]” +iphone-tricks.de|div[style="margin-bottom:.5em;padding-top:.5em;min-height: 270px;display: flex;justify-content: center;align-items: center"]: +digitalfernsehen.dediv[style="margin-bottom:10px"]t +nacktefoto.com^div[style="margin-top:-5px; margin-bottom:20px; width:100%; text-align:center; height:150px;"]k + winfuture.deWdiv[style="margin: 10px 0px; text-align: center; min-width: 300px; min-height: 250px;"]� +shopanbieter.deydiv[style="margin: 30px 0px 30px 0px;padding: 10px; border-width: 2px; border-style: dashed; background-color: #f6f5f2;"]j + winfuture.deVdiv[style="margin: 3px 0px; text-align: center; min-width: 300px; min-height: 250px;"]L +fussballeuropa.com2div[style="margin:10px 0 5px 0;min-height:250px;"]F + rsa-radio.de2div[style="margin:40px 0 0 0; text-align:center;"]F + rsa-radio.de2div[style="margin:60px 0 0 0; text-align:center;"]. + +heise.dediv[style="min-height: 250px"]L +teneriffa-news.com2div[style="min-height: 280px; margin-top: -20px;"]3 + popkultur.dediv[style="min-height: 280px;"]/ + +heise.dediv[style="min-height: 400px;"]J +gamereactor.de4div[style="min-height: 600px; margin-bottom: 20px;"]6 +android-hilfe.dediv[style="min-height:265px;"]; + nordbayern.de +nn.dediv[style="min-height:290px"]q + bz-berlin.de + winfuture.de + +fitbook.de + +petbook.de1div[style="min-width: 300px; min-height: 250px;"]j + nydus.orgYdiv[style="overflow:hidden;border: 1px solid #ccc;background:#f7f7f7;border-radius:3px;"]G +sprachnudel.de1div[style="padding:5px 0 5px 0;"][align="center"]� +weristdeinfreund.de�div[style="position:absolute; top:5px; left:0px; text-align:center; width:100%; max-width:1000px; height:90px; overflow:hidden;"]G + 4fansites.de3div[style="text-align: center; min-height: 110px;"]G + autouncle.de3div[style="text-align: center; min-height: 180px;"]F + 4fansites.de2div[style="text-align: center; min-height:260px;"]q + +quoka.deadiv[style="width: 100%; height: 250px; overflow: hidden; text-align: center; padding-top: 10px;"]^ + +quoka.deNdiv[style="width: 100%; height: 250px; overflow: hidden; text-align: center;"]q + +quoka.deadiv[style="width: 100%; height: 260px; overflow: hidden; text-align: center; padding-top: 10px;"]] + +quoka.deMdiv[style="width: 100%; height: 90px; overflow: hidden; text-align: center;"]@ +astroportal.com)div[style="width: 300px; height: 250px;"]@ +astroportal.com)div[style="width: 336px; height: 280px;"]X + strafbuch.deDdiv[style="width: 468px;height: 60px;overflow: hidden;float: right"]� +immoscout24.chwdiv[style="width: auto; height: auto; min-height: 250px; display: flex; justify-content: center; align-items: center;"]~ +immoscout24.chhdiv[style="width: auto; height: auto; min-height: 250px; justify-content: center; align-items: center;"]I + gutefrage.net4div[style="width:100%;height:252px;overflow:hidden"]I + gutefrage.net4div[style="width:100%;height:602px;overflow:hidden"]O + +ariva.de?div[style="width:1000px; text-align:center; min-height:270px;"]8 + +psychic.de&div[style="width:160px;height:600px;"]¥ +korrekturen.deŽdiv[style="width:300px; height:250px;float:left; margin-right:15px; margin-bottom:15px; border:0; background-color:#c0c0c0; overflow:hidden;"]; +tarnkappe.info%div[style="width:300px;height:250px"]@ +news.ch1div[style="width:300px;padding:12px;float:left;"]? +anal-pornos.com(div[style="width:310px; height: 510px;"]: + winfuture.de&div[style="width:670px;height:280px;"]k +korrekturen.deUdiv[style="width:728px; height: 90px; text-align: center; background-color:#c0c0c0;"]3 +livestreamde.comdiv[style^="height:300px;"]6 +buchstaben.com div[style^="min-height: 330px;"]L +bafoeg-rechner.de +studis-online.dediv[style^="min-height: 90px;"]Ž +froheweihnachten.info +weihnachts-bilder.org +weihnachts-filme.com +weihnachten.me.div[style^="text-align:center;font-size:80%;"]* +news.chdiv[style^="width: 300px;"]N +ableitungsrechner.net +integralrechner.dediv[style^="width: 728px;"]^ +gut-erklaert.de + wirtschaft.ch + fussball.ch + wetter.chdiv[style^="width:300px;"]L +italienisch-lernen-online.net'div[style^="width:300px;height:250px;"]6 +werkenntdenbesten.dediv[x-data="modules.ad()"]= +werkenntdenbesten.de!div[x-data="modules.ad()"] + span: +werkenntdenbesten.dediv[x-data^="modules.adMedia"]! +sueddeutsche.de +er-ad-slot@ + ibooks.to/form[method="get"][action]:not([role="search"])* +reimmaschine.deiframe[src="/more"]P + 190.115.18.20 + aniworld.to +s.to$iframe[style*="z-index: 2147483647"]²C + windowspro.de.iframe[style="height:250px;overflow: hidden;"]5 + t-online.de"iframe[title="Top Partner"] + span. + ibooks.toimg[alt="Download kostenlos"]. + ibooks.toimg[alt="Kostenlos Download"], + rbleipzig.comimg[alt="Logo Partner"]= + finanzen.net)img[alt="Passende Produkte von Vontobel"]M + finanzen.net9img[alt="Passende Produkte von der Société Générale"]! + boerse.cximg[alt="Promo"]. + finanzen.netimg[alt="Vontobel Banner"]- + finanzen.chimg[alt="vontobel-banner"]P% +#www-t--online-de.cdn.ampproject.org + t-online.deimg[alt^="Modetrends"]= +hallespektrum.de +kultur-port.deimg[alt^="Werbung"]" + +rc-news.deimg[class="bnr"]@ +stadt-bremerhaven.de$img[data-image-title="amazonAktion"]9 +rendsburgerleben.deimg[height="200"][width="240"]" + lokalo.deimg[height="250"]/ +datenschutz-berater.deimg[height="300"]A +datenschutz-berater.de +quadjournal.euimg[height="600"]% + warez-ddl.netimg[height="90"]F + ak-kurier.de + nr-kurier.de + ww-kurier.deimg[name="banner"]9 + data-load.me%img[style="width:270px;height:80px;"]9 + data-load.me%img[style="width:700px;height:90px;"]: + data-load.me&img[style="width:900px;height:120px;"]+ +feinehilfen.comimg[title="Anzeige"]$ + ibooks.toimg[title="Usenet"] +vfl.deimg[width="110"]7 +premiumbesucher.de + darts1.deimg[width="120"]@ +fruchthandel.de +nh24.deimg[width="140"][height="140"]2 + wirsiegen.deimg[width="140"][height="180"]4 +hc-neumarkt.comimg[width="140"][height="68"]9 +heimspiel-online.deimg[width="150"][height="111"]C + glamping.info + architekt.deimg[width="160"][height="600"]1 + prewarcar.deimg[width="160"][height="92"]1 + mikanews.deimg[width="180"][height="120"]E +kultur-port.de + utvmagazin.deimg[width="200"][height="600"]' +naturalhorse.deimg[width="240"]" + +messweb.deimg[width="250"]: +fcschweinfurt1905.deimg[width="280"][height="160"]Á +eishockey-magazin.de +eishockey-online.com +buecher-magazin.de +radio-oldtimer.de +basicthinking.de +radioschwaben.de +fotoobjektiv.at +nacktefoto.com +silentworld.eu +tarnkappe.info + meinbezirk.at + radiotirol.it + suedtirol1.it + iplayapps.de + pi-news.net + radforum.deimg[width="300"]1 + mikanews.deimg[width="300"][height="150"]0 + +gamepro.deimg[width="300"][height="246"]· +stadt-bremerhaven.de +arbeitsunrecht.de +mygermantimes.com +fruchthandel.de +pornofilm.zone +via-ferrata.de + wirsiegen.de + +boxen.deimg[width="300"][height="250"]% + finanzwelt.deimg[width="320"]- +nh24.deimg[width="330"][height="220"]' +persoblogger.deimg[width="370"]! + bbqpit.deimg[width="400"]1 + mikanews.deimg[width="400"][height="100"]; +teneriffa-aktuell.comimg[width="450"][height="300"]; +teneriffa-aktuell.comimg[width="450"][height="700"]O +premiumbesucher.de +xnxx-deutsch.com + ebook-land.ccimg[width="468"]0 + lexolino.deimg[width="468"][height="60"]- +teneriffa-aktuell.comimg[width="500"]6 +basicthinking.deimg[width="500"][height="500"] +nh24.deimg[width="533"]3 + report24.newsimg[width="587"][height="562"]Q +hamburger-allgemeine.de +silentworld.eu + movieblog.toimg[width="600"]6 +basicthinking.deimg[width="600"][height="500"]3 + report24.newsimg[width="600"][height="550"]6 +basicthinking.deimg[width="600"][height="600"]5 +hallescherfc.deimg[width="605"][height="690"]6 +lokalezeitung.deimg[width="640"][height="165"]! + lokalo.deimg[width="700"]! + stereo.deimg[width="728"]~ +online-gebuehrenrechner.de +championstream.de +fruchthandel.de + ibooks.to +vfl.deimg[width="728"][height="90"]ì#? +sportradio-deutschland.deimg[width="768"][height="768"]! + lokalo.deimg[width="770"]; +teneriffa-aktuell.comimg[width="800"][height="230"]; +teneriffa-aktuell.comimg[width="900"][height="350"]\% +#www-t--online-de.cdn.ampproject.org + t-online.de"img[width="920"][usemap^="#immap"]# + sumikai.comins[data-meh-id]= + tuhlteim.de*ins[style*="width: 300px; height: 250px;"]‡ +leben-und-erziehen.de +idee-fuer-mich.de + ok-magazin.de + maedchen.de + +fuersie.de + +jolie.de + +petra.de + +vital.dekas% + +vital.dekas[type="placement"]1 +restegourmet.deli[data-content-type="ad"]J +kleinanzeigen.de2li[data-liberty-position-name^="home-teaser-ads-"]E +shop-apotheke.com,li[data-ssr-as*="/api.sae.systems/rma/api/"]2 +kleinanzeigen.deli[id^="home-teaser-ads-"]5 +gmx.net +gmx.ch +web.delist-inbox-ad-item9 +gmx.net +gmx.ch +web.delist-inbox-pga-ad-itemB +gmx.net +gmx.ch +web.delist-programmatic-inbox-ad-item' +nau.chnau-external-content-lazy + +areadvd.deonehr5 + windowspro.de section#block-viewscontent-block: + +ariva.de*span[onpointerdown^="countClickOnGAorEs("]7 + +ariva.de'span[onpointerup*="prgAnalyticsEvent("]` +erogeschichten.comFtable[align-center][cellpadding="13"][border="0"][bgcolor="lightgrey"]€ +ubuntu-forum.deètable[style="background-color: none; border-top: 1px dashed; border-color: #a89058; border-left: 1px dashed; border-color: #a89058; border-right: 1px dashed; border-color: #a89058; border-bottom: 1px dashed; border-color: #a89058;"]‹ +erogeschichten.comqtable[style="border: 1px solid black; padding: 5px 0px 5px 0px; background-color: lightgrey; text-align: center"]H +internet-sms.com0table[style="margin-top:4px; margin-left:198px"]# + grower.chtable[width="195"]W + astronews.comBtable[width="300px"][cellspacing="0"][cellpadding="0"][border="0"]' + websingles.attable[width="306"]# + grower.chtable[width="468"]4 + wetterbote.detable[width="738"][height="90"]œ + +ww3.cad.de‰table[width="95%"][cellspacing="1"][border="0"] > tbody > tr > td[valign="top"]:first-child + td[style="vertical-align: top;"]:last-childM +pesterlloyd.net6td:nth-of-type(3):not(:last-of-type) table[width^="3"]  + astrotreff.deŠtd[width="100%"][align="center"] > hr[size="1"][color="#8482A5"] + table[cellspacing="0"][cellpadding="10"][border="0"][bgcolor="#000040"]M + dslr-forum.de8td[width="120"][valign="top"][align="center"]:last-child� + astrotreff.deltd[width="33%"][valign="middle"][align="center"] > a[target="_blank"][href^="/links/wechlink.asp?ID="] > img? +land-der-traeume.de$td[width="730"] + td[align="center"]m + +ibash.de]tr > td[valign="top"]:first-child + td[width="15"] + td[width="186"][valign="top"]:last-child# +eishockey-magazin.detr > th¾ +favicon-generator.de¡tr:first-child:last-child > td[align="left"][width="150"][valign="top"]:first-child + td[align="center"] + td[align="left"][width="150"][valign="top"]:last-child… + +ww3.cad.destr:first-child:last-child > td[valign="top"]:first-child + td[width="152"][valign="top"][align="center"]:last-childV +gmx.net +gmx.ch +web.de3tr[data-component-pixelurls*="adfarm1.adition.com"]> +gmx.net +web.de%tr[data-component="MessageListAdRow"]M +gmx.net +gmx.ch +web.de*tr[data-component="MessageListSpecialRow"]/ + +focus.de#CT_DESKTOP_NATIVE_HOR_ANY_hor2= +computerbild.de + autobild.de#billboard_btf_2Wrapper& + autobild.de#billboard_btf_rlWr5 +rollingstone.de + autobild.de#billboard_rlWrM +ableitungsrechner.net +integralrechner.de#desktop-bottom-ad-wrapperC +ableitungsrechner.net +integralrechner.de#desktop-left-adJ +ableitungsrechner.net +integralrechner.de#desktop-left-bottom-adB +ableitungsrechner.net +integralrechner.de#desktop-top-ad + finanzen.net +#footer-ad$ + finanzen.net#news-contentadsC +ableitungsrechner.net +integralrechner.de#recommendations  + autobild.de #sky_btf_rlWr/ +rollingstone.de + autobild.de #sky_rlWr$ + autobild.de#superbanner_rlWr$ + +focus.de#tfm_admanagerTeaser +ran.de .ad-component +rollingstone.de.ad-mrec  +ran.de.ad-slot-container[ +hamburg-magazin.de +luebeck-magazin.de +kiel-magazin.de.ad__skyscraper--wrapper\ +hamburg-magazin.de +luebeck-magazin.de +kiel-magazin.de.ad__superbanner--wrapper + ratehase.de.adcolorš, + +focus.de .adsBlock  + finanzen.net .adsbygoogleX +hamburg-magazin.de +luebeck-magazin.de +kiel-magazin.de.article__ad__wrapper + t-online.de .css-1gm9xpz + t-online.de .css-1lb3bt5 + t-online.de .css-2k2lok +n-tv.de .ems-slot. + +focus.de.fol_mew-flying-carpet-wrapper& + +focus.de.ob-ad-carousel-layoutq + myhomebook.de + travelbook.de + stylebook.de + techbook.de + +fitbook.de.ob-p.ob-dynamic-rec-container` +transfermarkt.de +tvspielfilm.de + prosieben.de + +jetzt.de.plistaList > .itemLinkPETQ + +plista.com?.plistaList > .plista_widget_belowArticle_item[data-type="pet"]y +notebookchat.com +tvspielfilm.de + prosieben.de?.plistaList > .plista_widget_underArticle_item[data-type="pet"]2 + +focus.de".ps-trackingposition_OrangerButton. + +focus.de.ps-trackingposition_PDFkasten  + +focus.de.shoppingcartctn( + ratehase.de.sidestickycon300x600> +computerbild.de + autobild.de.superbannerBtfContainerŸ +businessinsider.de +transfermarkt.de +sueddeutsche.de + myhomebook.de + bz-berlin.de + t-online.de + sport1.de +giga.de.trc-content-sponsored¤ +businessinsider.de +transfermarkt.de +metal-hammer.de +sueddeutsche.de + myhomebook.de + t-online.de + sport1.de +giga.de.trc-content-sponsoredUBQ +computerbild.de:.trc_related_container .syndicatedItem:not(.inNetworkItem)¦ +businessinsider.de +sportbild.bild.de +transfermarkt.de +sueddeutsche.de + myhomebook.de + travelbook.de + bz-berlin.de + t-online.de + techbook.de + +fitbook.de + sport1.de + +jetzt.de + +noizz.de +giga.de +welt.de7.trc_related_container div[data-item-syndicated="true"]¨ +metal-hammer.de +musikexpress.de +rollingstone.de + bz-berlin.de + stylebook.deK.trc_related_container div[data-item-syndicated="true"]:not(.inNetworkItem)4 +wort.lu%[class*="use-theme-class_sponsored_"]+ + t-online.de[data-commercial-format]1 + willhaben.at[data-testid="top-ads-large"]¯ +computerbild.de + bz-berlin.de + finanzen.net + autobild.de + gamestar.de +n-tv.de +ran.deEa[data-nvp*="'trafficUrl':'https://paid.outbrain.com/network/redir?"]® +computerbild.de + bz-berlin.de + finanzen.net + autobild.de + gamestar.de +chip.de +n-tv.de +ran.de9a[data-oburl^="https://paid.outbrain.com/network/redir?"]¦ +computerbild.de + bz-berlin.de + finanzen.net + autobild.de + gamestar.de +n-tv.de +ran.de img< + +focus.de,a[href^="https://www.financeads.net/tc.php"]+ + ratehase.dea[onclick^="setAdClick"]¢ +widgets.outbrain.com +computerbild.de +metal-hammer.de +musikexpress.de +rollingstone.de +tvspielfilm.de + myhomebook.de + travelbook.de + bz-berlin.de + finanzen.net + stylebook.de + autobild.de + gamestar.de + techbook.de + +fitbook.de + pcwelt.de + +focus.de + +sport.de +chip.de +n-tv.de +ran.deVa[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"]Ø +computerbild.de + bz-berlin.de + finanzen.net + autobild.de + gamestar.de +chip.de +n-tv.de +ran.deca[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source> + t-online.de+aside[data-testid="StageLayout.StreamItem"]( +wort.ludiv[class^="ad-element_"], + t-online.dediv[class^="adContainer"]< + t-online.de)div[data-component="CommercialNativendo"]@ + t-online.de-div[data-testid="Stage.Companion.Commercial"]< + t-online.de)div[data-testid^="Nativendo.ArticleFeed"]0 + +focus.de div[id^="CT_SMARTPHONE_NATIVE_"]& + +focus.dediv[id^="M_CONTENTAD"]& + +focus.dediv[id^="M_TRSCT_hor"]' + t-online.dediv[id^="nativendo"]d + ratehase.deQdiv[style="float: right; width: 300px; height: 250px; margin: 0 10px 80px 30px;"]e + ratehase.deRdiv[style="height: 90px; margin: 30px 0 20px 0; text-align: center; width: 100%;"]e + ratehase.deRdiv[style="height: 90px; margin: 30px 0 30px 0; text-align: center; width: 100%;"]k + ratehase.deXdiv[style="text-align:center; min-height: 260px; height: 260px; margin: 0 auto 0 auto;"]B + t-online.de/section[data-stage-layout^="custom_nativendo_"]? +boersennews.de)#bnTickerContainer:has(#bnTickerAdNotice)@ +rewe.de1#productlist_1__flagship:has(.fsr-Header__AdInfo)E +baur.de6.MuiBox-root:has(a[href^="//b.fr3.eu.criteo.com/rm?"])G + mobile.de6.Q8G_R:has(div[data-testid="SRP_BILLBOARD-container"])N +berlinstadtservice.de1.a.block04:has(a[href^="https://www.awin1.com/"])j +saechsische.deT.article-box:has(> .article-box__text > .article-box__info > span.article-badge--ad)I +saechsische.de3.article-fill:has(.article-badge.article-badge--ad)P + +gewinn.com>.article-latest.article-layout-0 > .row:has(.advertorial-icon)^ + meinbezirk.atI.article-list-item.article-card.article-card-default:has(.commercial-tag)Ú%7 + +heise.de'.bg-gray-50:has(div[id*="_Incontent-"])@ +finanzfluss.de*.billboard-card:has(.partner-ad-and-title)I + laola1.at8.block.medium:has(a[href^="https://dt.sportradar.com/"]). + +preis24.de.box.box-style1:has(.notice)9 + gesundheit.de$.box.img_link:has(.advertorial_hint)I +wallstreet-online.de-.breakingNewsOfferteBox:has(span.offerteFlag)} +welt.den.c-inline-teaser__body.c-inline-teaser__body--is-standalone:has(a[href^="https://www.financeads.net/tc.php?"])I +sportscheck.com2.c-product-tile:has(div.c-product-tile__sponsored)L + experten.de9.c-sidebar:has(> .widget-odd > div[class^="c-ad-exper-"])E +googlewatchblog.de+.card-content > center:has(ins.adsbygoogle){ +technik-einkauf.de +instandhaltung.de +automotiveit.eu + produktion.de(.ce_postlistbox:has(.label-ad-highlight)c +all-electronics.de +automotiveit.eu + produktion.de%.ce_topicbox:has(.label-ad-highlight)9 + ibooks.to(.code-block:has(i.fa-cloud-download-alt)t +shop-apotheke.at\.cross-sell-horizontal-slider__item-wrapper:has([href^="https://api.sae.systems/rma/api/v"])R +feuerwehrmagazin.de7.excerpt-tile.cell.small-12.medium-6:has(.advertorials)5 + +print.de%.excerpt-tile.cell:has(.advertorials)= +vergleichswelt.app#.fads-zeile:has(.fads-anzeige-text)G +obi.*:.find-brandshop-grid:has(.artikelkachel__gesponsortmarker)\ +obi.*O.find-brandshop-grid:has([data-ui-name="find-artikelkachel-gesponsert-marker"])@ +prad.de1.first-list > li:has(a[href^="https://amzn.to/"])? +prad.de0.first-list > li:has(a[href^="https://bit.ly/"])I +prad.de:.first-list > li:has(a[href^="https://ipn.idealo.de/ts/"])I +prad.de:.first-list > li:has(a[href^="https://tracking.s24.com/"])7 + willhaben.at#.fkPYfx:has(#apn-large-leaderboard)6 + +onvista.de$.flex-layout:has(.ov-ad-slot-advice)c + +onvista.deQ.flex-layout:has(div[class^="ArticleTeaser_ov-article-teaser__onvistaCustomer_"])? + +onvista.de-.flex-layout:has(div[style^="width: 900px;"])G + fressnapf.de3.grid-item--product:has(> [data-qa-id="sponsored"])3 + mobiflip.de .infinite-post:has(.adsbygoogle), + onmeda.de.inlinemod-item:has(.on-ad)” + aktiengram.de.inside-right-sidebar > .gb-container:has(a[href^="https://aktiengram.de/out/"]:not(a[href="https://aktiengram.de/out/buch/"]))> +austriansoccerboard.at .ipsWidget:has(.sidebar-partner)D +austriansoccerboard.at&.ipsWidget:has(.sidebar-partner-links)j + +onvista.deX.justify-between:has(span[class="block -mb-1 mt-1 text-sm text-ellipsis text-grey-700"])< + mobile.de+.mN_WC:has([data-testid="sponsored-badge"])0 +mopo.de!.main-preview:has(.anzeige-label)6 + winfuture.de".news330.floatL.mr10:has(.anzeige)6 + promiflash.de!.onlyDesktop:has(div.adContainer)M + +onvista.de;.ov-article-teaser:has(.ov-article-teaser__onvistaCustomer)k + +onvista.deY.ov-carousel__item:has(span[class="block text-sm text-ellipsis text-grey-700 mb-1 mt-4"])N + fertigung.de:.owl-carousel.owl-loaded.owl-drag:has(.label-ad-highlight)– + +heise.de….p-3.-mx-3.bg-gray-50:has(a[data-component="TeaserLinkContainer"]:not(a[href^="https://www.heise.de/api/accountservice/subscribe/"]))9 +prad.de*.pd-teaser:has(a[href^="https://bit.ly/"])T + expert.deC.pm-items > [widget-child]:has([ping^="//b.nl3.eu.criteo.com/rm?"])C +running-magazin.com(.post-grid-item.grid-item:has(.ad-badge)G +photographie.de0.post.type-post.status-publish:has(.anzeige-box)P +dashcamtest.de:.previewtile.swiper-slide:has(a[href^="https://amzn.to/"])2 + intersport.de.product--box:has(.rm-sponso)@ + guenstiger.de+.productCard:has(div.premiumProductCaption)F +otto.de7.promo_shoppromo-large--slide:has([class*="sponsored"])M +schwulissimo.de6.ranking-grid__grid-item:has(.news-group-ad-container)G + +metager.de5.result:has(a[href^="https://metager.de/partner/r?"])E + +metager.de3.result:has(a[href^="https://r.search.yahoo.com/"])~ + finanzen.netj.row.d-flex.align-items-center:has(a[href^="http://g.finanzen.net/allvest-fonds-home-intelligent-invest"])> +zwischengas.com'.row.mt-0.mb-3.d-print-none:has(.fa-ad)C +rewe.de4.rs-qa-product:has(meso-data[data-sponsored="true"])< +wallstreet-online.de .sbteaser:has(span.generalAdTag); +rewe.de,.search-service-product:has(.sponsoredBadge)A +prad.de2.second-list > li:has(a[href^="https://amzn.to/"])J +prad.de;.second-list > li:has(a[href^="https://ipn.idealo.de/ts/"])J +prad.de;.second-list > li:has(a[href^="https://tracking.s24.com/"])- + +podcast.de.section:has(.ad-container)C +wallstreet-online.de'.similarNews:has(span[title="Anzeige"])2 +mopo.de#.slider-preview:has(.anzeige-label)­)Z +wallstreet-online.de>.sliderItem.active:has(span.news-item:has(img[alt="Anzeige"]))D + finanzen.net0.snapshot__trading:has(.button-advertising-hint)4 +obi.*'.splide__slide:has(hobi-advertiser-tag)6 +szene-hamburg.com.swiper-slide:has(.entry-adv)G +sportscheck.com0.swiper-slide:has(div.c-product-tile__sponsored)= +inside-digital.de$.td_module_ih_current_news:has(.spo)> +wallstreet-online.de".teaser.objectfit:has(div.angebot)> +wallstreet-online.de".teaser.objectfit:has(div.anzeige)C + pc-magazin.de + +connect.de .teaser:has(.teaser__promolabel): +wallstreet-online.de.teaser:has(span.generalAdTag)4 + +fuersie.de".teaser__item:has(.teaser__adtype)N +immobilienscout24.de2.touchpoint-space:has(div[data-testid="dsa-link"])L +eurotransport.de4.v-A_-sidecol__list__item:has(.v-A_-teaser__tag--ad)Š +outdoor-magazin.com +motorradonline.de + caravaning.de + promobil.de:.v-A_-teaser__halfcol__listitem:has(.v-A_-teaser__tag--ad)` +elektrobike-online.com + roadbike.de3.v-A_-topteaser__article:has(.v-A_-teaser__tag--ad)m +outdoor-magazin.com +motorradonline.de=.v-A_-topteaser__rotationbox__item:has(.v-A_-teaser__tag--ad)q +mountainbike-magazin.de +outdoor-magazin.com + roadbike.de,.v-A_-white__tile:has(.v-A_-teaser__tag--ad)@ + windowspro.de+.view-idcontent:has(a[href^="/sponsored/"])B +notebooksbilliger.de&.vue-cherry:has(a[href*="/adnuntius"]), + +connect.de.wkTeaser:has(.promolabel)K +gebrauchtwagenberater.de+.wp-block-group:has(.wp-block-button__link)R +berlinstadtservice.de5.wrap-col.box4:has(a[href^="https://www.awin1.com/"])K +zeit.de<.zett-teaser-trio:has(.zett-teaser-trio__kicker--ad-anzeige)D + willhaben.at0[aria-hidden="true"]:has(#apn-large-leaderboard)J +dm.*>[data-dmid="product-tile"]:has([data-dmid="sponsored-marker"])L +obi.*?[data-find-artikelnummer]:has(.artikelkachel__gesponsortmarker)a +obi.*T[data-find-artikelnummer]:has([data-ui-name="find-artikelkachel-gesponsert-marker"])F + expert.de5[data-key-id]:has([src^="//b.nl3.eu.criteo.com/rm?"])K + +flaconi.de9[data-product-list-id]:has([data-badge-type="sponsored"])^ +shop-apotheke.comE[data-qa-id="cross-sell-widget"] li:has(> [data-as-xsell-product-id])Š + mediamarkt.at + mediamarkt.ch + mediamarkt.de + saturn.deF[data-test="mms-product-card"]:has(div[data-test="mms-plp-sponsored"])L +obi.*?[data-track-section^="home-topteaser"]:has(hobi-advertiser-tag)9 + +ariva.de)a.background-red-bright:has(span.anzeige)d +hamburg-magazin.de +luebeck-magazin.de +kiel-magazin.de!article.card:has(.with-ad-marker)l +shop-apotheke.comSarticle.o-CompactProductListItem:has(a[href^="https://retail-api.sa-tech.de/api/"])B + finanzen.net.article.page-content__item:has(img[alt="UBS"])D + imtest.de3article.type-post[data-post-id]:has(.sponsor-label)Y +abendzeitung-muenchen.de9article[class^="teaser nummer-"]:has(span.specialfeature)? + futurezone.de*article[data-post-id]:has(.sponsor-byline)F +diegrenzgaenger.lu,article[id^=post-]:has(.sponsored-indicator)1 + az.com.na aside:has(img[src*="/adverts/"])O + travelbook.de:div.has-mark[style="min-width: 300px; min-height: 250px;"]O + hornoxe.com + nydus.org-div.ui-tabs:has(#nydus_org_300x600_desktop_1)C + nydus.org2div:has(> #nydus_org_970x300_billboard_responsive)* +bauernzeitung.chdiv:has(> .advert)‹ +froheweihnachten.info +weihnachts-bilder.org +weihnachts-filme.com +weihnachten.me+div:has(> img[referrerpolicy="unsafe-url"])q + +onvista.de_div[class="col col--md-3 col--sm-4 col--lg-4 col--xl-4"]:has(small[class="mt-1 block text-sm"])h + +onvista.deVdiv[class="col col--md-3 col--sm-4 col--lg-4 col--xl-4"]:has(span[class="mt-1 block"])n + +onvista.de\div[class="col col--md-3 col--sm-4 col--lg-4 col--xl-4"]:has(span[class="mt-xxsmall block"])n + +onvista.de\div[class="col py-0"]:has(div[class="-mb-1 mt-1 text-sm text-ellipsis text-foreground-300"])u + +onvista.decdiv[class="col py-0"]:has(span[class="block -mb-1 mt-1 text-sm text-ellipsis text-foreground-300"])` + docmorris.deLdiv[class="min-h-[420px] px-2"]:has(a[data-testid="product-card-sponsored"])Y + preispirat.chDdiv[class="vc_row wpb_row vc_inner vc_row-fluid"]:has(#responsiveAd)\ + preispirat.chGdiv[class="vc_row wpb_row vc_inner vc_row-fluid"]:has(#responsivePromo)T +schwulissimo.de=div[class^="news-group__side-"]:has(.news-group-ad-container)t + docmorris.de`div[data-testid="search-grid-product-card-wrapper"]:has(a[data-testid="product-card-sponsored"])S +jungefreiheit.de;div[data-widget_type="shortcode.default"]:has(.adsbygoogle)J + mobile.de9div[style="min-height:250px"]:has(#SRP_BILLBOARD_ADSENSE)J +jungefreiheit.de2div[style="text-align: center;"]:has(.adsbygoogle)/ + windowspro.dediv[style]:has(a[onclick])[ +obi.*Nexplore-recommendation-v1:has([data-recommendations-title-short="Gesponsert"]): + mein-mmo.de'li.article:has([data-type="sponsored"])À, +sÿï08@Rcalles-mahlsdorf.de#?#.elementor-section:-abp-has(h2.elementor-heading-title:-abp-contains(Werbung)) +gÿï08@RWandroid-hilfe.de#?#article.message--post:-abp-has(span.username:-abp-contains(Anzeige)) +Iÿï08@R9apfeltalk.de#?#div.wpb_text_column:-abp-contains(Werbung) +cÿï08@RSavguide.ch#?#.avgrid_1_of_1.viewlet-bottom:-abp-has(h2:-abp-contains(Advertorials)) +`ÿï08@RPavguide.ch#?#.gridteaser.gridteaser-m:-abp-has(h4:-abp-contains(Sponsored Post)) +}ÿï08@Rmback-intern.de#?#.cm-post-widget-three.cm-post-widget-section:-abp-has(.section-title:-abp-contains(Partner)) +wÿï08@Rgbaur.de#?#div[data-testid="card"]:-abp-has(span.MuiCardHeader-title:-abp-contains(Gesponserte Artikel)) +©ÿï08@R˜baur.de#?#div[data-testid="reco-wrapper"]:-abp-has(div[class^="indexesm__HeadlineElement-fragment-product-master__"]:-abp-contains(Gesponserte Artikel)) +Aÿï08@R1baur.de#?#span:-abp-contains(Gesponserte Artikel) +gÿï08@RWbergsteiger.de#?#.eight.columns.alpha.content:-abp-has(span:-abp-contains(Advertorial)) +Vÿï08@RFberliner-kurier.de#?#.m-teaser:-abp-has(span:-abp-contains(Sponsored)) +\ÿï08@RLberliner-zeitung.de#?#.m-article-teaser:-abp-has(div:-abp-contains(Anzeige)) +Wÿï08@RGberlinstadtservice.de#?#.row.block03:-abp-has(p:-abp-contains(ANZEIGE)) +lÿï08@R\bitreporter.de#?#.code-block:-abp-has(span:-abp-contains(/ANZEIGE|Anzeige|Werbung|WERBUNG/)) +Tÿï08@RDcarpediem.life#?#.post-overview:-abp-has(div:-abp-contains(Anzeige)) +gÿï08@RWcelleheute.de#?#div.YzqVVZ:-abp-has(span.wixui-rich-text__text:-abp-contains(Anzeigen)) +?ÿï08@R/chip.de#?#a:-abp-properties(min-height: 250px;) +iÿï08@RYcomputerbase.de#?#div.text-asset.text-width:-abp-has(p.text-width:-abp-contains(Anzeige)) +sÿï08@Rccomputerbild.de#?#article.gridArea__teaserM:-abp-has(div.teaserBlock__label:-abp-contains(Anzeige)) +uÿï08@Recyclingmagazine.de#?#p:-abp-contains(Anzeige) > strong > a[target="_blank"][rel="noopener"] > picture +Lÿï08@R div:-abp-has(.news-list span.media-heading:-abp-contains([Anzeige])) + hr +jÿï08@RZgiga.de#?#.alice-teaser-list-item:-abp-has(.alice-teaser-meta-text:-abp-contains(Anzeige)) +Fÿï08@R6gofeminin.de#?#.af-block-native:-abp-contains(Anzeige) +Mÿï08@R=gofeminin.de#?#.af-block-native:-abp-contains(Sponsored Post) +Tÿï08@RDgolem.de#?#li[data-article-id]:-abp-has(h3:-abp-properties(ANZEIGE)) +dÿï08@RTgolem.de#?#li[data-article-id]:-abp-has(span.media__kicker:-abp-properties(ANZEIGE)) +Wÿï08@RGhandelszeitung.ch#?#.teaser-m-default:-abp-contains(Native Advertising) +Sÿï08@RChandelszeitung.ch#?#.teaser-m-default:-abp-contains(Publireportage) +`ÿï08@RPhardwareluxx.de#?#.bg-gray-light:-abp-has(div.text-right:-abp-contains(Werbung)) +ˆÿï08@Rxheise.de#?#.px-4.md\:px-6.py-3.h-full.bg-gray-50:-abp-has(.mb-3.text-xs.leading-none.text-center:-abp-contains(Anzeige)) +Nÿï08@R>heise.de#?#p:-abp-contains(=== Anzeige / Sponsorenhinweis ===) +Rÿï08@RBheise.de#?#p:-abp-contains(=== Anzeige / Sponsorenhinweis ===) + p +Vÿï08@RFheise.de#?#p:-abp-contains(=== Anzeige / Sponsorenhinweis ===) + p + p +Rÿï08@RBheise.de#?#p:-abp-contains(=== Anzeige / Sponsorenhinweis ende===) +Iÿï08@R9ibooks.to#?#form:-abp-has(button:-abp-contains(Download)) +Pÿï08@R@imsueden.de#?#.swiper:-abp-has(.headline:-abp-contains(Partner)) +Qÿï08@RAkajak-magazin.com#?#.custom:-abp-has(span:-abp-contains(Anzeige)) +`ÿï08@RPknuspr.de#?#div[data-test="whisperer-product-wrapper"]:-abp-contains(Gesponsert) +?ÿï08@R/koeln.de#?#.gb-container:-abp-contains(Anzeige); + dogforum.de(li:has(.wbbXdLocationAfter1stPostAsPost)1 + dogforum.deli:has(.wbbXdLocationPostList)? + jameda.de.li:has([data-testid="advertisementSign-flag"])2 +prad.de#li:has(a[class*="_klickkampagne_"])A +baur.de2li:has(a[href^="https://b.fr3.eu.criteo.com/rm?"])3 + +golem.de#li[data-article-id]:has(.icon-addy)< + mein-mmo.de)section.post:has([data-type="sponsored"])E +breuninger.com/suchen-produkt:has(.suchen-produkt--gesponsert)5 +finanznachrichten.detr:has(span.sprite.h-w-c)K +wallstreet-online.de/tr:has(td > .float-end > span[title="Anzeige"])D +wallstreet-online.de(tr:has(td.right:has(img[alt="Anzeige"]))A + stol.it#?0ContainerFull:-abp-has(a:-abp-contains(Anzeige))ö- +Fÿï08@R6kurier.at#?#.gridContainer:has-text(Sponsored Content) +hÿï08@RXla-palma24.info#?#article[class^="dvs-ad-tyblqtres-uno"]:-abp-has(div:-abp-contains(AD)) +[ÿï08@RKla-palma24.info#?#div[class^="dvbloqbasic"]:-abp-has(div:-abp-contains(Ad)) +Gÿï08@R7lausitz-tv.de#?#.small-12.column:-abp-contains(Anzeige) +Kÿï08@R;lessentiel.lu#?#div:-abp-has(+ span:-abp-contains(Werbung)) +kÿï08@R[linkedin.com#?#.core-rail > div > div[id^="ember"]:-abp-has(span:-abp-contains(Gesponsert)) +Hÿï08@R8marbacher-zeitung.de#?#.appetizer:-abp-contains(Anzeige) +�ÿï08@Rmediamarkt.at,mediamarkt.de,saturn.de#?#li:-abp-has(div[data-test="mms-product-card"]:-abp-has(span:-abp-contains(Gesponsert))) +Wÿï08@RGmediamarkt.de#?#[data-test="mms-base-teaser"]:-abp-contains(Gesponsert) +_ÿï08@ROmediamarkt.de#?#[data-test="mms-search-flagship-sba"]:-abp-contains(Gesponsert) +aÿï08@RQmediamarkt.de#?#[data-test="mms-search-showcase"] + div:-abp-contains(Gesponsert) +Nÿï08@R>meissen-fernsehen.de#?#.text-center:-abp-contains(- Werbung -) +Rÿï08@RBmmnews.de#?#.sp-module:-abp-has(span:-abp-contains(Kleinanzeigen)) +iÿï08@RYmobile.de#?#[data-testid="home-brand-portal-section-container"]:-abp-contains(Gesponsert) +žÿï08@R�motorsport-total.com#?#.teaser_container.teaser-htmlcode.relative.row:-abp-has(.f1de-container-title:-abp-contains(Die besten Leasing-Deals)) +Gÿï08@R7notebookcheck.com#?#.introa_news:-abp-contains(Anzeige) +yÿï08@Rinur-positive-nachrichten.de#?#.moduletable.text-center:-abp-has(.bildunterschrift:-abp-contains(Anzeige)) +@ÿï08@R0o-sport.de#?#.card-body:-abp-contains(Sponsoren) +Sÿï08@RConvista.de#?#.outer-spacing--xxlarge-top:-abp-contains(Werbung von) +Fÿï08@R6onvista.de#?#.ov-carousel__item:-abp-contains(Werbung) +iÿï08@RYonvista.de#?#a[class*="ArticleTeaserBox"]:-abp-has(div.ov-subline:-abp-contains(Werbung)) +lÿï08@R\onvista.de#?#div[class="col col--md-3 col--sm-4 col--lg-4 col--xl-4"]:-abp-contains(Werbung) +Iÿï08@R9onvista.de#?#div[class="col py-0"]:-abp-contains(Werbung) +”ÿï08@Rƒonvista.de#?#div[class="flex justify-between mb-4 border-b-1 border-b-grey-100 pb-2 dark:border-b-grey-700"]:-abp-contains(Werbung) +Vÿï08@RFpctipp.ch#?#.list_item:-abp-has(.dachzeile:-abp-contains(Partnerzone)) +mÿï08@R]pcwelt.de#?#div.box:-abp-has(span.banner-text + h4:-abp-contains(/Partner-Angebot|Angebote/)) +Hÿï08@R8pollenflug.de#?#.services-item:-abp-contains(bei Amazon) +Oÿï08@R?prad.de#?#.pd-teaser:has(div.teaser-subtitle:has-text(Anzeige)) +Yÿï08@RIproduktion.de#?#.postlist-item:-abp-has(.label:-abp-contains(Gesponsert)) +`ÿï08@RPreport-d.de#?#.content-view-containerbox:-abp-contains(SONDER-VERÖFFENTLICHUNG) +Wÿï08@RGsatvision.de#?#.fc_bloglist_item:-abp-has(a:-abp-contains(Advertorial)) +kÿï08@R[satvision.de#?#.mod_flexicontent_standard_wrapper:-abp-has(span:-abp-contains(Advertorial)) +Tÿï08@RDseo-suedwest.de#?#.moduletable:-abp-has(span:-abp-contains(Anzeige)) +]ÿï08@RMshop-apotheke.at#?#[data-qa-id="result-list-entry"]:-abp-contains(Gesponsert) +\ÿï08@RLskodacommunity.de#?#article.message--post:-abp-has(a:-abp-contains(Anzeige)) +hÿï08@RXsmartphonemag.de#?#.td_module_wrap:-abp-has(.td-post-author-name:-abp-contains(Werbung)) +bÿï08@RRsportdeutschland.tv#?#.text-right.text-white.col-6:-abp-contains(präsentiert von) +gÿï08@RWswz.it#?#.jeg_post.jeg_pl_md_2.pr.format-standard:-abp-has(span:-abp-contains(PR-INFO)) +\ÿï08@RLt-online.de#?#.afl-widget-root:has(span:-abp-contains(Beliebt bei t-online)) +†ÿï08@Rvt-online.de,www-t--online-de.cdn.ampproject.org#?#div[id^="T-"][onfocus^="A('zid="]:-abp-has(a:-abp-contains(Anzeige)) +jÿï08@RZtag24.de#?#article.article-tile:-abp-has(span.article-tile__badge2:-abp-contains(ANZEIGE)) +pÿï08@R`tiger.ch#?#div[id^="gridSuche_panRecord_"]:has([id^="gridSuche_lblUrl_"]:-abp-contains(Anzeige)) +Nÿï08@R>tonight.de#?#.td_block_wrap:-abp-has(a:-abp-contains(Anzeige)) +Xÿï08@RHum-tv.de#?#.small-12.column.space:-abp-has(p:-abp-contains(--Anzeige--)) +Yÿï08@RIunicum.de#?#.artikel-preview-content:-abp-has(p:-abp-contains(-ANZEIGE-)) +_ÿï08@ROwallstreet-online.de#?#.footnote:-abp-has(.headline-box:-abp-contains(Werbung)) +uÿï08@Rewallstreet-online.de#?#.module.c1.hidden-xs:-abp-has(span.issuerPromotionHint:-abp-contains(Werbung)) +yÿï08@Riwallstreet-online.de#?#.newsflash:-abp-has(span.suffix.wo-inline-block.pull-right:-abp-contains(Anzeige)) +gÿï08@RWwallstreet-online.de#?#.newsflash:-abp-has(span.wo-inline-block:-abp-contains(Anzeige)) +\ÿï08@RLwasbitcoinbringt.com#?#.kg-card:has-text(Herzlichen Dank an unsere Partner!) +eÿï08@RUwelt.de#?#div[id][data-qa]:-abp-has(.c-buelent-linkbox__label:-abp-contains(Anzeige)) +Yÿï08@RIwindowspro.de#?#article:-abp-has(:-abp-properties(content: "(Anzeige)";)) +Wÿï08@RGwindowspro.de#?#article:-abp-has(:-abp-properties(content: "Anzeige";)) +vÿï08@Rfwinfuture-forum.de#?#div.ExtraPostBlock:-abp-has(div.post_block:-abp-contains(Anzeige)):not(.with_rep) +Sÿï08@RCzentrum-der-gesundheit.de#?#span:-abp-contains(/ANZ|EIGE/) + button +Pÿï08@R@zentrum-der-gesundheit.de#?#span:-abp-contains(/ANZ|EIGE/) + div8 +chip.de).dlcharts + div:not(.List) {remove:true;}I +chip.de:.ft-charts-main > div:not(.List):not(.caps) {remove:true;}% + +finanzen.*#HomepageIssuerNews. + +finanzen.*.adnz-ad-placeholder--google1 + +finanzen.*.adnz-ad-placeholder--wideboard* + +finanzen.*.page-layout__ad-content+ + +finanzen.*div[class^="ad-wrapper-"]& +holidaycheck.*.campaign-teaserÆ) +4* +manager-magazin.de08@R/iqadcontroller. +> * +chip.de08@R%a.bf-ad.net/adengine/chip/adengine.js +6* + finanzen.ch08@Racdn.adnxs.com/ast/ast.js +C * + +toggo.de08@R)ad-ipd.sxp.smartclip.net/select?type=vast +1* +rewe.de08@Radform.net/adfserve/?bn= +(* +rewe.de08@Radform.net/adx/ +<ÿï* + +telekom.de* +rewe.de08@Radform.net/banners/ +Hÿï* +rewe.de08@R-adform.net/stoat/*/s1.adform.net/bootstrap.js +?* +rewe.de08@R&adform.net/stoat/*/s1.adform.net/load/ +ÿï* +musikexpress.de08@R\adnxs-simple.com/creative/p/7823/2022/8/22/38956667/bcedd234-d477-49cf-86b1-d56000e4e685.jpg +8 * +sportbild.bild.de08@Radnxs-simple.com/mob? +8* + autobild.de08@Radnxs.com/p/creative-image/ +, * + autobild.de08@Radnxs.com/ut/v3 +;€* + gamestar.de08@Rads.julephosting.de/podcasts/ +8 * +rollingstone.de08@Rads.viralize.tv/player/ +F* + gentside.de* + +ohmymag.de08@Radsafeprotected.com/iasPET. +Q * + gentside.de* + +ohmymag.de08@R&adsafeprotected.com/services/pub?anId= +P* + moviepilot.de* + gamestar.de08@R"amazon-adsystem.com/aax2/apstag.js +m€* +fotoworkshop-stuttgart.de* + +kombi.de08@R5amazon-adsystem.com/widgets/q?*^ad_type=product_link^ +Dÿï* +rollingstone.de* + autobild.de08@Rasadcdn.com/adlib/ +5* +sportbild.bild.de08@Rasadcdn.com/adlib/ +<* + stylebook.de08@Rasadcdn.com/adlib/adlib_seq.js +>* +musikexpress.de08@Rasadcdn.com/adlib/libmodules/ +B* + bz-berlin.de08@R$asadcdn.com/adlib/pages/bz-berlin.js +Jÿï* +musikexpress.de08@R'asadcdn.com/adlib/pages/musikexpress.js +C* + stylebook.de08@R%asadcdn.com/adlib/pages/stylebook.js^ +C* + stylebook.de08@R%asadcdn.com/adlib/templates/oneTag.js +;ÿï* + +onvista.de08@Ratf-tagmanager.de/config/*.js +Dÿï* + +onvista.de08@R&bf-ad.net/adengine/onvista/adengine.js +K* + +onvista.de08@R/bf-ad.net/adengine/onvista/chunk-prepareEngine- +Vÿï* +metal-hammer.de* +rollingstone.de08@R ced.sascdn.com/tag/2161/smart.js +)ÿï08@Rcommundia.de^*/affilinet/ +/ÿï* + radiobob.de08@Rcpdsrv.de/cpt.js +1* + +fitbook.de08@Rcreatives.sascdn.com^ +:€08@R+feuerwehr-marchtrenk.at/homepage/banner.php +9ÿï08@R)football-aktuell.de/links/banner_oben.png +R"* + 11freunde.de* + +stern.de* +n-tv.de08@Rg.doubleclick.net/gampad/ads? +¸ * +auto-motor-und-sport.de* +manager-magazin.de* +motorradonline.de* + moviepilot.de* + gamestar.de* + +gamepro.de* + +spiegel.de* +gala.de08@Rg.doubleclick.net/gampad/ads? +Æ"* + teltarif.de08@R¨g.doubleclick.net/gampad/ads?*&iu_parts=21917048853%2CTargetlink%2CBill-%2CLeaderboard%2CMedium-Rectangle%2CSkyscraper%2CHalfpage%2CShop%2CHalfpageLO%2CAffiPlatzierung& +º"* + teltarif.de08@Rœg.doubleclick.net/gampad/ads?*&iu_parts=27763518%3A21917048853%2Cteltarif-de_Onlineverlag_GmbH%2Cteltarif.de%2CParallax%2Chalfpagelu%2Chalfpageru%2Cnavisky& +wÿï* +manager-magazin.de08@RQg.doubleclick.net/gampad/ads?*&iu_parts=6032%3A22339103238%2Cmanma_dt%2Chomepage& +Þ* +auto-motor-und-sport.de* +manager-magazin.de* + moviepilot.de* + 11freunde.de* + gamestar.de* + gentside.de* + +gamepro.de* + +ohmymag.de* + +stern.de* +gala.de* +n-tv.de08@R"g.doubleclick.net/gpt/pubads_impl_ +¸* +auto-motor-und-sport.de* +manager-magazin.de* +motorradonline.de* + gamestar.de* + teltarif.de* + +gamepro.de08@R8g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js +Kÿï* +manager-magazin.de08@R%g.doubleclick.net/pagead/ppub_config? +f * + moviepilot.de* + gamestar.de* + +gamepro.de08@R*g.doubleclick.net/pagead/ppub_config?ippd= +�"* +auto-motor-und-sport.de* +manager-magazin.de* +motorradonline.de* + moviepilot.de* + 11freunde.de* + spielaffe.de* + gamestar.de* + gentside.de* + teltarif.de* + +gamepro.de* + +ohmymag.de* + +stern.de* +gala.de* +n-tv.de08@Rg.doubleclick.net/tag/js/gpt.js +1* + moviepilot.de08@Rgetjad.io/library/ +0* + moviepilot.de08@Rgetjad.io/prebid/ +Dÿï* + windowspro.de08@R#googletagservices.com/tag/js/gpt.js +0ÿï08@R googlewatchblog.de^*/adsense.png +=ÿï08@R-goolive.de/media/static/images/smileys/ad.gif +V * +musikexpress.de* +rollingstone.de* + stylebook.de08@Rib.adnxs.com/ut/v3 +* * + finanzen.ch08@R ib.adnxs.com^ +:* + travelbook.de08@Ridealo.net/js/idealoWidget- +A* + ikiosk.de08@R&ikiosk.de/pdf/company/2/advertisement/ +üÿï* +computerbild.de* +schwaebische.de* +wetteronline.de* + phonostar.de* + spielaffe.de* + sport.sky.de* + autobild.de* + gentside.de* + +ohmymag.de* + wetter.at* +chip.de* +oe24.at* +atv.at08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +H* + mobile.de08@R-img.classistatic.de/api/v1/mo-prod/images/ad/ +6* +welt.de08@Rimg.welt.de/img/Advertorials/ +Kÿï* +jetztspielen.de08@R(improvedigital.com/pbw/headerlift.min.js +'ÿï08@Rjade-hs.de^*/ext-adv.js +@* + +nextpit.de08@R$live.primis.tech/live/liveVideo.php? +?* + +nextpit.de08@R#live.primis.tech/live/liveView.php? +:* + maxbanner.de08@Rmaxbanner.de/media/products/, +obi.*[data-ae-slot="pdp_old_banner"]‚$ +O* + maxbanner.de08@R1maxbanner.de/templates/_maxbanner/_assets/images/ +Ðÿï* +donau-ries-aktuell.de* +angebote.focus.de* +aktionspreis.de* +dasoertliche.de* + meinestadt.de* + fressnapf.ch* + infranken.de* + sparwelt.de* + +maxizoo.ch08@Rmiddleware.marktjagd.de/proxy/ +(€08@Rmmcomputer.de^*&BannerID= +hÿï* +auto-motor-und-sport.de* +motorradonline.de08@R(mps-gba.de/ads/adserving/close_black.png +Jÿï* + 11freunde.de08@R*native.emsservice.de/images/teaser*_*.jpeg +Cÿï* + 11freunde.de08@R#native.emsservice.de/teasers/*.json +Wÿï* + windowspro.de08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +Oÿï* + autobild.de08@R0pagead2.googlesyndication.com/pagead/show_ads.js +6ÿï* + finanzen.ch08@Rpbjs.adnz.co/prebid.js? +Àÿï* +leckerschmecker.me* +thueringen24.de* + futurezone.de* + morgenpost.de* + derwesten.de* + news38.de* +moin.de* +wmn.de* +4p.de08@R*rubiconproject.com/prebid/dynamic/18086.js +808@R*rurweb.de/kleinanzeigen/adverts_image.php? +'* +rewe.de08@Rs1.adform.net^ +P* + +fitbook.de08@R4sascdn.com/diff/templates/ts/dist/banner/sas-banner- +F* + +fitbook.de08@R*smartadserver.com/ac?nwid=*&tag=sas_45579^ +2* + spiele.rtl.de08@Rsmartclip.net/?plc= +1* + spiele.rtl.de08@Rsmartclip.net/ads? +ˆÿï* +donau-ries-aktuell.de* +aktionspreis.de* +dasoertliche.de* + meinestadt.de* + infranken.de08@Rspotlight.offerista.com^ +G* +ableitungsrechner.net* +integralrechner.de08@R +symplr.de^ +Gÿï* + +20min.ch08@R+tdn.da-services.ch/current/20min_durable.js +_* +auto-motor-und-sport.de* +motorradonline.de08@R!tpc.googlesyndication.com/simgad/ +>* + stylebook.de08@R vcdn.adnxs.com/p/creative-image^ +5ÿï08@R%webdisk.ads.mwn.de/Scripts/ext-adv.js +€ 08@R +welect.de/ +R* +werbebanner24.de08@R0werbebanner24.de/templates/_wb24/_assets/images/ + 08@Rwindowspro.de^ +K* + +xdate.ch08@R1xdate.ch/bundles/omsportal/img/footer_banner_ads_ + 08@R autobild.de^ + 08@R gofeminin.de^ +Cÿï* + autobild.de08@R$amazon-adsystem.com/aax2/amzn_ads.js +Iÿï* + +fitbook.de* + +petbook.de* +welt.de08@Rasadcdn.com/adlib/ +Iÿï* + +fitbook.de* + +petbook.de* +welt.de08@Rcapi.connatix.com^ +Zÿï* + +fitbook.de* + +petbook.de* +welt.de08@R#cd.connatix.com/connatix.player.js? +Hÿï* + +fitbook.de* + +petbook.de* +welt.de08@Rcds.connatix.com^ +G"* + brigitte.de* + eltern.de08@Rg.doubleclick.net/gampad/ads? +5 * +geo.de08@Rg.doubleclick.net/gampad/ads? +6* +gala.de08@Rg.doubleclick.net/gampad/adx? +S€ * + +wetter.com08@R4g.doubleclick.net/gampad/adx?*/wetter_direct_toolbar +9* + +wetter.com08@Rg.doubleclick.net/gpt/pubads_ +V* + brigitte.de* + eltern.de* +geo.de08@R"g.doubleclick.net/gpt/pubads_impl_ +oÿï* + +fitbook.de* + +petbook.de* +welt.de08@R8g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js +@ÿï* + autobild.de08@R!g.doubleclick.net/static/glade.js +B* + autobild.de08@R%g.doubleclick.net/static/glade/extra_ +|ÿï* + brigitte.de* + +fitbook.de* + +petbook.de* + eltern.de* +welt.de* +geo.de08@Rg.doubleclick.net/tag/js/gpt.js +L* +auto-motor-und-sport.de08@R#googlesyndication.com/pagead/imgad? +Iÿï* + +fitbook.de* + +petbook.de* +welt.de08@Rib.adnxs.com/ut/v3 +Q* + autobild.de08@R4sascdn.com/diff/251/*/Abo-Teaser_fuer_ab.de-Home.png +G* + autobild.de08@R*sascdn.com/diff/251/*/aktionen_191x108.jpg +J* + autobild.de08@R-sascdn.com/diff/251/*/gebrauchtwagenmarkt.png +B* + autobild.de08@R%sascdn.com/diff/251/*/kindersitze.png +7* + autobild.de08@Rsascdn.com/diff/251/pages/ +Hÿï* + autobild.de08@R)sascdn.com/diff/251/templates/passback.js +P * +metal-hammer.de* +rollingstone.de08@Rsmartadserver.com/2161/call^ +K* +transfermarkt.de* + autobild.de08@Rsmartadserver.com/ac?nwid= +J* + autobild.de08@R-smartadserver.com/diff/251/2484653/show10.asp +I€* +transfermarkt.de08@R&smartadserver.com/diff/251/divscripte/ +`ÿï* +transfermarkt.de* + autobild.de08@R-smartadserver.com/diff/251/partners/amazon.js +Oÿï* + autobild.de08@R0smartadserver.com/diff/251/templates/passback.js +Hÿï* +transfermarkt.de08@R$smartadserver.com/diff/251/verify.js +K* + eatsmarter.de08@R,eatsmarter.de/sites/default/files/*_300x250_ +Fÿï* +googlewatchblog.de08@R googleusercontent.com^*/300x250. \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ES b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ES new file mode 100644 index 0000000..ea02713 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ES @@ -0,0 +1,3912 @@ +Ÿ +#ÿï08@R/banner-publicidad- + 08@R/vast_1win.xml #Publi300600x#PublicidadSuperior#ads_singles_bottom#audimaAdDesktop #banner_publi#bloque-publicidad-1#bloque-publicidad-2#bloque-publicidad-9#bloque-publicidad-campania#ctl00_PublicidadSuperior#noticias-publicidad-1#noticias-publicidad-2#noticias-publicidad-3#noticias-publicidad-4#noticias-publicidad-5#noticias-publicidad-6 #publicolumna .PubliDereFlo.PubliIzquiFlo.PublicidadArriba  ._mo_recs ._mo_recs_cti ._mo_recs_vi .ad-cabecera.ad-container-m1.ad-zocalo__container.banner-publicidad +.cnt-publi.contenedorAdcentrado.contenedor_publicidad.content_gpt_caja1_ads.content_gpt_caja2_ads.edi-advertising +.publi.publi300x250-sidebar.publi300x600-sidebard +.publi_MPU .publi_space.publicidad-pie.publicidad_cabecera.publicidad_dfp.publicidad_footer_sticky.publicidadbflotante .publicolumna .publinker-ad +.v-adv.voc-advertising.voc-article--sponsored.voc-sponsored%!a[href^="https://ad.soicos.com/"])%a[href^="https://go.betobet.online/"]B>a[href^="https://startgaming.net/tienda/"][href*="?offer_id="]*&a[href^="https://vario.tv/?offer_id="]%!a[href^="https://vario.tv/?raf="] +ned-ad #PubMiddle1 #PubMiddle2  #PubRight #PubTop1 #PubTop2#PubliFixedLeft #RobaPagina× +  #adGgV160 #ad_250x300#adsforsearchGrid#adsforsearch_content #afsposicion1 #afsposicion2#contenedor_pub_superior#content-ads-top #derpub#eplAdDivlateralder#eplAdDivlateralizq#eplAdDivtopbanner#fix_publicidad_inferior #gAddTop #google-ad2 #googleads_dr #oasTOP!#posicion-publicidad-superior#pub_superior_left #pubinf +#publiLink#publicidad-top#publicidadMovil#publicidadTablet#publicidad_header#publicidad_inferior #publicidad_lateral_inferior#publicidad_lateral_medio #publicidad_lateral_superior#publicidad_subir#publicidad_superior #publiheader  #publitop#slider-oferplan #sp-top-ads#sponsored-container#texto_publicidad#titulo-publicidad.Adboost300x250.Adboost300x600.PublicidadCabecera .RobaPagina.WIDGET-Publicidad +.a_pub.ad-300x250-solo .ad-tl2b.ad_728_90_page.ad_dfp_estandar.adcontainer-portlet .adsCon .adsEpi .adsEpiItem  .adsIndex .adsSide .ads_160x600 .ads_960x90 .adsderecha.adsforsearchGrid.adsforsearch_roba  .adsmovie.advertisingLeft0,.app-container > .questions-container-banner .bg-ad-left .bg-ad-rightÄ + .bl_publi_top.block-dfp-midcentral_home#.block-dfp-roba_pagina_top_home.bloco-anuncios.bloco-anuncios__banner .bloco-anuncios__publicidade .blog-publi .bloquepubli .borde_publi .c_anun_pub.caja_cuponisimo_slider200 .cnt-pub.cnt-publicidad.cont_mer_publicidades.cont_publicidad .containerOas.contenedor_superior_publi.contpubliSuper .des-adv +.dfp-queue .dfpbanners  .digo_ads.div_publicidad.div_publicidades.envoltorio_publi .ep-pub.espacioPublicitario.find_bar_publicidades .flex__publi .header-adds .mclics  .mod-roba.modPublicidad-).myml-menu-navigation > .container-banner-).myml-menu-navigation > .purchases-banner +.offer-add.pane-publicidad.pane-publicidades .patrocinio.producto-doble-publi.promocion_libre +.pu300 .pub-300x250 .pub-300x600 .pub-950x100 +.pub-h .pub160x600 .pub300x250 +.pub468x80 +.pub728x90 .pub950 .publi-texto.publi-vertical .publi300x300  .publiTop.publi_710x176.publi_flotante_push.publi_horizontal.publi_lateral.publi_mar_top.publi_opinion .publi_pie_2.publi_skin_wrap +.publi_skyØ .publi_widget_1.publi_widget_2.publicLateral.publicLateralTop .publicVert.publicidad-1110x90.publicidad-160-600.publicidad-300-250.publicidad-300-250a.publicidad-300x250.publicidad-728x90.publicidad-728x90-Nota.publicidad-bloque-centro.publicidad-cabecera.publicidad-content.publicidad-horizontal.publicidad-izq.publicidad-label.publicidad-top.publicidad-vertical .publicidad1 .publicidad2 .publicidad3 .publicidad4 .publicidad5 .publicidad6.publicidadPaga.publicidad_01.publicidad_especial.publicidad_modulo1.publicidad_modulo2.publicidad_movil .publicidad_p.publicidad_pc.publicidad_titulo.publicidad_tras_bajada.publicity-content.publicity-content-google  .publitop +.pubslider .rmsads.roba-container .robapagina .robapaginas .spub.story-patrocinio.td-g-rec-id-custom_ad_3 .top-add +.topads728  .txtPubli.views-row-ads.vip-section-advertising.voc-sponsored-and-adv .widget-publi.widget_categorias_publi.widget_text_publicidad  .wrap-bnr +a > #bg-ada[href*=".kfiopkln.com/"]&"a[href*="://adpv.com/?idpartner="]!a[href*="://mobidea.com/?r="]'#a[href*="://yllix.com/publishers/"]a[href*="aclaritics.info/"])%a[href^="://popads.net/users/refer/"]Õ +ÿï08@R 0-02.net^ +!ÿï08@Radzonestatic.com^ +ÿï08@Rembi-media.com^ +ÿï08@Ric7.co^ +ÿï08@R palibzh.tech^ +!ÿï08@Rpositive-ads.com^ +ÿï08@Rpublinker.com^ +%ÿï08@Rrevenuemakerdata.com^ +ÿï08@R brand.ad^ +ÿï08@Rbutlercdn.com^ +"ÿï08@Requamarketing.com^ + ÿï08@Revolutionadv.it^ +ÿï08@Rgoogledfp.com^ +"ÿï08@Rpremiumads.com.br^ +!ÿï08@Rpremiumleads.com^ +ÿï08@R reypelis.tv^ + ÿï08@Rstoic-media.com^ +ÿï08@Rtpid.es^ +ÿï08@R wemass.com^ +ÿï08@Ra.citiservi.es^ +ÿï08@Radvgo.net/ads/ +4ÿï08@R$afiliadoscasadellibro.uinterbox.com^ +-ÿï* + pandrama.com08@R alicdn.com/t/ +Gÿï* +estrenosdoramas.net* +m.animeflv.net08@Ramazonaws.com^ +Gÿï* + reforma.com08@R(avisosdeocasion.com/reforma/gcavisoscom/ +'ÿï* + mega-mkv.com08@Rbit.ly^ +*ÿï08@Rcdnpublicidad.milenio.com^ +<ÿï* +sticknoticias.com08@Rcloudfront.net/banners/ +.ÿï08@Rd1r08wok4169a5.cloudfront.net^ +=ÿï08@R-getadjacent.com/amd/*/ned-adjacent-ads.min.js +9ÿï08@R)grupnaciodigital.cat/redaccio/publicitat/ +6ÿï08@R&hispanicode.com/*/amazon/api/amazon.js +/ÿï* +horadeopinion.com.ar08@Ribb.co^ ++ÿï08@Riframes.reyesdelchollo.com^ +,ÿï08@Rinteractvty.com/api/2.0/ads/ +$ÿï08@Rkisa-link.blok.link^ +*ÿï* + ahoraeg.com08@R nacash.net^ +,ÿï08@Rneuvoo.com/services/jobroll/ +ÿï08@R news.grm.cl^ +*ÿï08@Ropcionempleo.com/partners/ +-ÿï* + visortmo.com08@R outbrain.com^1-a[href^="://seedingup.es/afiliados.html?id="]%!a[href^="http://wlx-secure.com/"]($a[href^="http://www.amigos.com/go/"]adsenseintermedioleftadsenseintermediorightdiv[class^="publicHoriz"]!div[id^="M"][id*="Composite"]#deadblocker_dialog .adblockInfo.deadblocker-header-bar.regular.closable& +misteryinternet.com #footer-ads + fondosmil.co.ads1 + ripley.cl .dfp-ad-unit" + +viveusa.mx.dfp-tag-wrapper' + +sport.es.following-ad-containerW +preguntasrespuestas.net +buscasencuentras.net +1000respuestas.net +.right-ads8 +lacacharpaya.com.ar +festradio.com.ar .td-a-rec+ +pccomponentes.com[id^="div-gpt-ad"] + itsoft.es.ad-col + itsoft.es.ad-full) +mejoratuescuela.org.container-ads + +hitfm.es.publiå +ÿï08@Rpub.tappx.com^ +%ÿï08@Rpublyads.jstag.space^ +%ÿï08@Rservicoop.com/banner/ +,ÿï* + seriesly.top08@R tinyurl.com^ +)ÿï08@Rtrafico.prensaiberica.es^ +'ÿï08@Rtriggy-banners.web.app^ +!ÿï08@Rvario.tv/play.gif +"ÿï08@Rvario.tv/playf.gif +&ÿï08@Rwp.pl/bidder/usersync? +1ÿï* +pornotorrent.es08@Ramazonaws.com^ + ÿï08@Rfuegodevida.com^ +6ÿï* +verpeliculasporno.gratis08@R +imgur.com^ +)ÿï08@Rpornogratis.online/promo/ ++ÿï08@Rpornoplay.online/api/spots/ +$ÿï08@Rrubias19.tv/freecam/ +)ÿï08@Rwebcampornoxxx.net/promo/ +#ÿï08@Radiscusion.com/ads/ +8ÿï08@R(agenciafe.com/data/img_cont/img_banners/ +'ÿï08@Ragencianova.com/avisos/ +'ÿï08@Raica.org/imagenes/pubs/ +,ÿï08@Ralbaceteabierto.es/anuncios/ ++ÿï08@Ranimelatinohd.com/popAds.js +Fÿï* +autosusados.cl08@R$api.servicesdtk2.cl/v1/count/banners ++ÿï08@Rarquimaster.com.ar/banners/ +5ÿï08@R%arquimaster.com.ar/Images/banners.htm +-ÿï08@Rartesacro.org/imagenes/baner_ +Hÿï08@R8atacamaenlinea.cl/wp-content/uploads/*/banner_caserones_ +$ÿï08@Rcine24h.net/Banners/ +%ÿï08@Rcinetux.nu/api/spots/ +7ÿï08@R'clivertv.xyz/assets/img/suscripcion.png +"ÿï08@Rclm21.es/anuncios/ +,ÿï08@Rcontextotucuman.com/banners/ +Aÿï08@R1cosasdecome.es/wp-content/uploads/sam-pro-images/ +$ÿï08@Rcriptoya.com/banner/ +<ÿï08@R,cronicabalear.es/access/public/img/anuncios/ +*ÿï08@Rcronista.com/files/banner/ +'ÿï08@Rcuencanews.es/anuncios/ +.ÿï08@Rcuevana.biz/edgeSystemRunV2.js +.ÿï08@Rcuevana.cloud/edgeSystemRun.js ++ÿï08@Rcuevana3.plus/perversas.jpg +1ÿï08@R!descargasdd.org/images/amazon.gif +4ÿï08@R$diariodelaribera.net/imagenes/banner +@ÿï08@R0diariodeteruel.es/uploads/diariodeteruel/promos/ +1ÿï08@R!diarioviregion.cl/images/banners/ ++ÿï08@Rdolarito.ar/static/buenbit/ +(ÿï08@Rdolarito.ar/static/vita/ ++ÿï08@Rdolarito.ar/static/wallbit/ +Dÿï08@R4elciudadanoweb.com/wp-content/plugins/aparg-smartad/ +4ÿï08@R$eldiariodelapampa.com.ar/publipablo/ +'ÿï08@Relesquiu.com/u/banners/ +/ÿï08@Relmundofinanciero.com/anuncios/ +.ÿï08@Relpais.com.co/js/frontend/ads/ +;ÿï08@R+elperiodico.cl/wp-content/uploads/*/banner- +-ÿï08@Relpotosi.net/img/advertising/ +%ÿï08@Reltiempo.com/get-ads/ +2ÿï08@R"emol.cl/emol50/js/publicidadsetup/ +%ÿï08@Res.zenit.org/banners/ +6ÿï08@R&fenix951.com.ar/nuevo_2013/img/banner/ +>ÿï08@R.fronteradigital.com.ve/assets/img/advertising/ +.ÿï* + fulltv.com.ar08@R fulltv.video^ +)ÿï08@Rgamestorrents.fm/433b.png +9ÿï* +habitaclia.com08@Rhabimg.com/hab_banners/ + ÿï08@Rinmanga.com/ads/ +6ÿï08@R&juanfutbol.com/caliente-ticker-widget?ß +5ÿï08@R%lapostaldemardelplata.com/img/avisos/ +2ÿï08@R"lasamericasnews.com/images/avisos/ +3ÿï08@R#lasamericasnews.com/images/banners/ +'ÿï08@Rlasubasta.com/img/ners/ +/ÿï08@Rlateja.cr/gnfactory/brandvoice/ +(ÿï08@Rlibertaddigital.com/pub/ +2ÿï08@R"mediaserver.emol.cl/other/lleison/ +(ÿï08@Rmetrolatam.com^/banners/ +"ÿï08@Rmil21.es/anuncios/ +ÿï08@R minube.click^ +0ÿï08@R nacion.com/gnfactory/brandvoice/ +9 08@R+notebookcheck.org/fileadmin/Sonstiges/amaz_ +%ÿï08@Rnovachaco.com/avisos/ +'ÿï08@Rnovalaplata.com/avisos/ +9ÿï08@R)nuevodiarioweb.com.ar/galeria/publicidad/ +9ÿï08@R)otakuteca.com/images/books/cover/cru_300. +7ÿï08@R'otakuteca.com/images/books/cover/n_728. +)ÿï08@Rpelispop.info/EkBG80SP.js +:ÿï08@R*pescare.com.ar/wp-content/uploads/*/Grupo- +#ÿï08@Rplaydede.us/1_1.gif +*ÿï08@Rplaydede.us/1winvideo2.mp4 +/ÿï08@Rplayer.cuevana.biz/assets/vast_ +7ÿï08@R'player.cuevana2espanol.net/assets/vast_ +/ÿï08@Rplayer.cuevana3.eu/assets/vast_ +0ÿï08@R player.cuevana8.com/assets/vast_ +,ÿï08@Rplayer.gnula.nu/assets/vast_ +2ÿï08@R"player.repelis24.life/assets/vast_ +@ÿï08@R0profesionalreview.com/wp-content/uploads/*/skin_ +'ÿï08@Rpuromarketing.com/adxs/ +4ÿï08@R$radiomontecarlo.com.uy/imgs/banners/ +0ÿï08@R redtarapaca.com^*/ahorrocorp.jpg +Fÿï08@R6ripollesdigital.cat/imatges/ripollesdigital.cat/ginys/ +)ÿï08@Rspanishcorrector.com/cnc/ +ÿï08@R ssp.emol.com^ +ÿï08@Rsspnm.emol.com^ ++ÿï08@Rstatic.publinews.gt/*/Skin- +Rÿï* +autosusados.cl08@R0storage.googleapis.com/foto_autosusados/banners/ ++ÿï08@Rstreamsito.com/static/vast_ +Kÿï08@R;studiofutbol.com.ec/tabla2021/images/banner-copa-300x90.jpg +$ÿï08@Rtcccdn.com^*/banner/ +Cÿï08@R3tornquistdistrital.com.ar/adjuntos/tdistrital/pubs/ +-ÿï08@Rupcloud.alfabeta.net/zonas.js +Aÿï08@R1urgente24.com//js-custom/banner-side-min-version- +3ÿï08@R#urgente24.com/adjuntos/319/banners/ +:ÿï08@R*verepeliculas.com/dowload/MusicaBANNER.gif +9ÿï* + datoscif.es08@Rwindows.net/images/banner/ +:ÿï08@R*ondavalencia.es/images/001_BLOGINFORAM.png +6ÿï08@R&ondavalencia.es/images/002_MORA-_2.png +Eÿï08@R5ondavalencia.es/images/003_FERRETERIA_ELS_CUNYATS.png +:ÿï08@R*ondavalencia.es/images/004_BLOG_AISVAL.png +8ÿï08@R(ondavalencia.es/images/005_AGUADULCE.png +Dÿï08@R4ondavalencia.es/images/006_TALLERES_EL_MA%C3%91O.png +>ÿï08@R.ondavalencia.es/images/007_TAPICERIA_QUERT.png +Jÿï08@R:ondavalencia.es/images/009_PINAZO_Y_BURLAY_G_DE_CASTRO.png +Cÿï08@R3ondavalencia.es/images/011_MAVIMAR_NUEVO_FALDON.png +Hÿï08@R8ondavalencia.es/images/012_EL_TABALET_IND_VALENCIANA.png +Jÿï08@R:ondavalencia.es/images/012_EL_TABALET_IND_VALENCIANA_2.png +<ÿï08@R,ondavalencia.es/images/014_FIL_DOR_NUEVO.png +>ÿï08@R.ondavalencia.es/images/021_PELUQUERIA_SAEZ.png +Iÿï08@R9ondavalencia.es/images/022_PULIDOS_GUILLERMO_MARTINEZ.png +Eÿï08@R5ondavalencia.es/images/025_BLOG_ASADOR_CHIRIVELLA.png +>ÿï08@R.ondavalencia.es/images/027_ARTESANIA_VIANA.png +>ÿï08@R.ondavalencia.es/images/029_TIEN_21_BROSETA.png +Mÿï08@R=ondavalencia.es/images/031_PONTE_GUAPA_CENTRO_DE_ESTETICA.pngê +8ÿï08@R(ondavalencia.es/images/032_VALENHAUS.png +Iÿï08@R9ondavalencia.es/images/033_CALZADOS_TRINIDAD_MELENDEZ.png +?ÿï08@R/ondavalencia.es/images/036_LORENA_ESTILISTA.png +Kÿï08@R;ondavalencia.es/images/038_CONGELADOS_ANDRES_Y_M_CARMEN.png +=ÿï08@R-ondavalencia.es/images/046_ENCARNA_PIQUER.png +@ÿï08@R0ondavalencia.es/images/10_SILVIA_MAS_DONETTA.png +Zÿï08@RJondavalencia.es/images/1676_BIS_PILAR_VALVERDE_INDUMENTARIA_VALENCIANA.png +Bÿï08@R2ondavalencia.es/images/1808_MUDANZAS_BENICALAP.png +<ÿï08@R,ondavalencia.es/images/32_VALENHAUS_guia.jpg +d* +castellonplaza.com* +valenciaplaza.com* +alicanteplaza.es08@R/public/Image/*banner*^ +áÿï* +huelvainformacion.es* +diariodesevilla.es* +eldiadecordoba.es* +diariodecadiz.es* +diariodejerez.es* +granadahoy.com* + elalmeria.es* + europasur.es* + malagahoy.es08@R$/static/BB3HTML/images/*sponsor*.png +éÿï* +tribunavalladolid.com* +tribunasalamanca.com* +tribunapalencia.com* +tribunasegovia.com* +tribunaburgos.com* +tribunazamora.com* +tribunaavila.com* +tribunasoria.com* +tribunaleon.com08@R/uploads/advertisings/ +-ÿï08@Racortalo.net/js/clasicotas.js +'ÿï08@Ragar.live/300banner.gif +#ÿï08@Ragma.io/img/agmaAd/ +0ÿï08@R apfdigital.com.ar/imgpublicidad/ +*ÿï08@Razarplus.com/fotos/banners +4ÿï08@R$azarplus.com/includes/greybox/AJS.js +0ÿï08@R babalonia.com/images/promo/*.gif +%ÿï08@Rbajafiles.net/ima.gif +&ÿï08@Rbajafiles.net/leer.jpg +,ÿï08@Rbannersweb.s3.amazonaws.com^ +3ÿï08@R#bienesrosario.com/resources/banner/ +Xÿï*" + reconquistanoticias.blogspot.com08@R$blogger.googleusercontent.com/img/a/ +>ÿï* +puertocampoynegocios.com08@Rblogspot.com/*.gif +;ÿï08@R+cadizbuenasnoticias.com/wp-content/banners/ +\ÿï* +elchubut.com.ar08@R9caletadesarrollos.com/marketing/banner-pc/banner-pc.html^ +4ÿï08@R$capodeportes.net/extremotv/abajo.php +5ÿï08@R%capodeportes.net/extremotv/arriba.php +6ÿï08@R&capodeportes.net/extremotv/lateral.php +ÿï08@Rcapoplay.com/z- +-ÿï08@Rcartademexico.com/web/banner/ +=ÿï08@R-casinonewsdaily.es/wp-content/uploads/popups/ +&ÿï08@Rcdn.exur.com/notmundo/ +`ÿï08@RPcdn23.merca20.com/wp-content/uploads/2017/10/panorama-marketing-farmaceutico.jpg ++ÿï08@Rchacohoy.com/files/banners/ +2ÿï08@R"chatzona.net/img/amigos-banner.jpg +7ÿï08@R'cloudfront.net/ODD/widgets/220x308.html +/ÿï08@Rclubdelectores.cl/cajaEmolClub/ +Dÿï08@R4comodorodeportes.gov.ar/wp-content/uploads/*/*/*.gif +.ÿï08@Rconjugacion.es/img/mosalingua/ +-ÿï08@Rcontextotucuman.com//banners/ +-ÿï08@Rcronista.com/arte/pcwlogo.png +Eÿï08@R5css01.lavanguardia.com/imagenes/cajaHTML/loterias.gif +,ÿï08@Rcualesmiip.com/images/banner +9ÿï08@R)cuartopoder.es//images/MovistarFusion.jpg +O08@RAdanimados.com/wp-content/cache/autoptimize/js/autoptimize_single_ +;ÿï08@R+darkstone.es/themes/default/images/banners/ +:08@R,defensacentral.com/uploaded/banner-dondiario +[ÿï08@RKdeia.eus/elementosWeb/gestionCajas/DEI/Image/*//LARIBERA-banner-deia-*.gif^ +;ÿï08@R+deportetandilense.com.ar/publicidades_cate/ +:ÿï08@R*desdesoria.es/wp-content/uploads/*/*/*.gif +/ÿï08@Rdiagonales.com/Multimedios/Ads/ +Zÿï08@RJdiariocorreo.pe/static/diariocorreo_redesign/img/manual-del-exportador.jpg +lÿï08@R\diariodesevilla.es/2016/11/09/botones_fijos/movistar-deportes_1079902371_60088437_246x27.png +=ÿï08@R-diariodetorremolinos.com/_uploads/imgBanners/ +&ÿï08@Rdiarioeldia.cl/banner/ +/ÿï08@Rdiarioeldia.cl/interstitial*.js +0ÿï08@R diarioelinformante.com.ar/publis +2ÿï08@R"diariolaprovinciasj.com/u/banners/ +:ÿï08@R*diarionoticias.com.ar/images/banner/BANNER +4ÿï08@R$diarionoticias.com.ar/images/banner_ +4ÿï08@R$diarioresponsable.com/images/banners +Hÿï08@R8diarioresponsable.com/images/castellananorte19032020.jpg¥ +@ÿï08@R0diarioresponsable.com/images/triodos_2019-06.jpg +Eÿï08@R5diariotextual.com/inicio/wp-content/uploads/*/*/*.gif +Fÿï08@R6diariotextual.com/inicio/wp-content/uploads/*/*/banner +>ÿï08@R.diariovictoria.com.ar/wp-content/uploads/*.gif +-ÿï08@Rdo67etikr7pwz.cloudfront.net^ +1ÿï08@R!domisfera.com/img/patrocinadores/ +7ÿï08@R'dontorrents.org/images/NetflixPrime.jpg +7ÿï08@R'dontorrents.org/images/startgaming*.jpg +Tÿï08@RDecestaticos.com/file/127008ee463cd1776595c5cf2b0ff780/1434970380.png +Tÿï08@RDecestaticos.com/file/c321612b3020bee67701c43d5d3129f7/1434970318.png +:ÿï08@R*economia3.com/wp-content/uploads/*/*/*.gif +Dÿï08@R4eestatic.com/assets_css/img/axa-portada-deportes.png ++ÿï08@Relancasti.com.ar/u/banners/ +Dÿï08@R4elchapuzasinformatico.com/wp-content/uploads/*/skin- +Eÿï08@R5elchapuzasinformatico.com/wp-content/uploads/*banner- +508@R'elcordillerano.com.ar/uploads/archivos/ +'ÿï08@Relcucodigital.com/*.gif +6ÿï08@R&eldestapeweb.com/adjuntos/177/banners/ +8ÿï08@R(eldiariodelapampa.com.ar/images/banners/ +tÿï08@Rdeldiariodemadryn.com/wp-content/themes/ElDiario_2017_bootstrap/images/Ecoplas-Banner-300x250px-1.gif +2ÿï08@R"eldiarionuevodia.com.ar/u/banners/ +-ÿï08@Reldivisadero.cl/media/banner/ +*ÿï08@Relmundo.es^*/patrocinador/ +6ÿï08@R&elpatagonico.com/adjuntos/193/banners/ +7ÿï08@R'elpuntodeequilibrio.com/assets/banners/ +;€08@R,elsiglodetorreon.com.mx/desplegados/banners/ +508@R'elsiglodetorreon.com.mx/images/banners/ +O08@RAelsoldemexico.com.mx/cultura/gastronomia/*_banner-400x250_01.jpg^ +8ÿï08@R(escolar.net/wp-content/hoyenvertele*.jpg +08@Resmtb.com/embed/ +=ÿï08@R-especiales.woman.es/wid-deportivos/index.html +6ÿï08@R&eventrid.cl/banner_espectaculos_cuadro +*ÿï08@Rfarox.com/barra_productos/ +Gÿï08@R7file01.lavanguardia.com/2013/04/09/54371066983-file.jpg +Gÿï08@R7file02.lavanguardia.com/*/*-patrocinadorAgregadores.jpg +Gÿï08@R7file02.lavanguardia.com/2015/01/19/54423532669-file.png +Gÿï08@R7file02.lavanguardia.com/2015/03/02/54428665978-file.jpg +Gÿï08@R7file02.lavanguardia.com/2015/06/30/54432622531-file.jpg +3ÿï08@R#fm899.com.ar/public/images/banners/ +=ÿï08@R-forocoches.com/image/varios/hawkers_2017a.png +*ÿï08@Rforokeys.com/foro/banners/ +/ÿï08@Rforoparalelo.com/images/avisos/ +/ÿï08@Rgacetamercantil.com.ar/banners/ +:€08@R+gameflare.com/common/promotions/own-images/ +)ÿï08@Rgamestorrents.*/realtime/ +7ÿï08@R'geeknetic.es/ajax/serveadvert-live.asp? +$ÿï08@Rgnula.cc/kljhumsw.js +%ÿï08@Rgnula2.co/js/extra.js +Kÿï08@R;googleapis.com/lanacion-media-storage/*bannernacionnews.png +@* +paralelohoy.com.ar08@Rgoogleusercontent.com/proxy^ +Sÿï08@RCgualeguaychu.gov.ar/apps/web/images/temporales/municipalidad-06.png +'ÿï08@Rhazteveg.com/img/banner +=ÿï08@R-hitfm.es/view/imgs/Trident-Hit-FM-Fondo-*.jpg +3ÿï08@R#horadeopinion.com.ar/imagenes/*.gif +Aÿï08@R1horadeopinion.com.ar/wp-content/uploads/*/*/*.gif +8ÿï08@R(hostinet.com/comprar/affiliate/resource/ +>ÿï08@R.hostinet.com/hstatics/templates/images/banner/ +5ÿï08@R%hoyaragon.es/wp-content/uploads/*300x +|ÿï08@Rlhoyaragon.es/wp-content/uploads/*_bmw_phev_nunca_tan_libre_descuento_goya_automocion_display_1000x250-*2.jpg +7ÿï08@R'hoyaragon.es/wp-content/uploads/*arvesa +7ÿï08@R'huelva24.com/upload/img/periodico/*.gif +'ÿï08@Ri.imgur.com/Yqo2mgc.jpg +0ÿï08@R imagenes.aquienlasierra.es/2019/ +0ÿï08@R imagenes.aquienlasierra.es/2020/à +0ÿï08@R imagenes.aquienlasierra.es/2021/ +=ÿï08@R-images.eldiario.es/fotos/Articulo-patrocinado +208@R$images.seriesturcas.gratis/*/banner_ +8ÿï* + mdzol.com08@Rimages.sprinklecontent.com^ +Mÿï08@R=img01.lavanguardia.com/2013/05/16/Logo-canal-Castellers-*.jpg +@ÿï08@R0img02.lavanguardia.com/*/Vaughan-certified_*.jpg +%ÿï08@Rimgur.com/JlGKZ0q.jpg +5ÿï08@R%impulsobaires.com.ar/uploads/banners/ +@ÿï08@R0impulsonegocios.com/wp-content/uploads/*/*/*.gif +Sÿï08@RCimpulsonegocios.com/wp-content/uploads/2018/10/libertad23102018.jpg ++ÿï08@Rincremente.com/bannerab.gif +-ÿï08@Rinfoban.com.ar/imgpublicidad/ +.ÿï08@Rinfocanuelas.com/media/banner/ +.ÿï08@Rinfocielo.com/uploads/banners/ ++ÿï08@Rinfofueguina.com/u/banners/ ++ÿï08@Rinfoplatense.com.ar/*/*.gif +,ÿï08@Rinfoplatense.com.ar/*/banner +6ÿï08@R&informaticamoderna.com/Gran_banner.htm +:ÿï08@R*informaticamoderna.com/Hospedados/Banners/ +)08@Rinfoveloz.com/storage/*/ad_ +<ÿï08@R,inmendoza.com/wp-content/uploads/*_1140x170_ +8ÿï08@R(inmendoza.com/wp-content/uploads/banner/ +(ÿï08@Rinmendoza.com^*/banners/ ++ÿï08@Rinmodiario.com/img/banners/ +Cÿï08@R3interbenavente.es/upload/img/periodico/img_2369.gif +Dÿï08@R4interbenavente.es/upload/img/periodico/img_28084.gif +Dÿï08@R4interbenavente.es/upload/img/periodico/img_31937.gif +Dÿï08@R4interbenavente.es/upload/img/periodico/img_35176.gif +Dÿï08@R4interbenavente.es/upload/img/periodico/img_36015.gif +Cÿï08@R3juegosdiarios.com/staticfiles.juegosdiarios.com/pu/ +#€08@Rjuegosjuegos.ws/bfb^ +=ÿï08@R-jugandoonline.com.ar/entusitio/grafica/banner +"ÿï08@Rlabsk.net/banners/ +#ÿï08@Rlabsk.net/carousel/ +8ÿï08@R(labustia.cat/wp-content/uploads/*/Banner +1ÿï08@R!lacapitalmdp.com/2017/11/fl-1.gif +.ÿï08@Rlacapitalmdp.com/2022/01/*.gif +:ÿï08@R*lacapitalmdp.com/img_design/paseo_aero.jpg +Uÿï08@RElaconversacion.net/wp-content/uploads/2017/07/IMG-20170710-WA0000.jpg +Jÿï08@R:laconversacion.net/wp-content/uploads/2017/10/Banner-3.jpg +'ÿï08@Rlaindustria.pe/banners/ +3ÿï08@R#lancelotdigital.com/images/banners/ +8ÿï08@R(lanoticia1.com/sites/default/files/*.gif +Cÿï08@R3laopinionsemanario.com.ar/sites/default/files/*.gif +0ÿï08@R laprensa.com.ar/Multimedios/Ads/ +4ÿï08@R$larazondechivilcoy.com.ar/u/banners/ +7ÿï08@R'lavozdecataratas.com/contenido/banners/ +]ÿï08@RMlaxarxa.com/media/asset_publics/resources/000/009/887/original/publicitat.gif +,ÿï08@Rldu.com.ec/fotos/publi_*.png +;ÿï08@R+leganews.es/wp-content/uploads/*/publicidad +B08@R4lostiempos.com/sites/default/files/takeover/desktop/ +Qÿï08@RAloteriasmundiales.com.ar/images/columna_publi_2/anuncie_aqui2.gif +Aÿï08@R1loteriasmundiales.com.ar/images/loterias/banners/ +:ÿï08@R*madridpress.com/upload/img/periodico/*.gif +Sÿï08@RCmagisnet.com/wp-content/uploads/2018/11/300Centropsicologico-01.png +6ÿï08@R&manerasdevivir.com/pics/noticias/*.gif +.ÿï08@Rmanerasdevivir.com/pics/publi/ +?ÿï08@R/manuduque.com/wp-content/uploads/2021/10/banner +Cÿï08@R3mariosegura.com/wp-content/plugins/wp-owl-carousel/ +<ÿï08@R,mariosegura.com/wp-content/uploads/*/*/*.gif +308@R%media.airedesantafe.com.ar/*/banners/ +Cÿï08@R3media.easy.com.ar/is/image/EasyArg/blaisteneasyhome +7ÿï08@R'mediterraneodigital.com/images/banners/ +Mÿï08@R=mercadosonora.com.mx/wp-content/uploads/*/32X320BIOTIQUIN.pngØ +?ÿï08@R/meridiano.com.ve/Picfiles/logo-merbet_96x34.png +$ÿï08@Rmesebre.cat/img/pub/ +9ÿï08@R)minube.com/administrator/minipresManager/ +>ÿï08@R.minube.com/administrator/suggestionBoxManager/ +;ÿï08@R+misionescuatro.com/wp-content/uploads/*.gif +7ÿï08@R'mlstatic.com/img/mclics-images-merchAds +Xÿï08@RHmmedia.20m.es/modulos/pastillas/nuevas/pastillas/Home/Gonzoogenerica.png +Qÿï08@RAmodelocurriculum.net/wp-content/descuento-promo-plantillas-cv.jpg +;ÿï08@R+montevideo.com.uy/clima/imagenes/claroclima +Rÿï08@RBmontevideo.com.uy/plantillas/temas17/imagenes17/mundobebe_dove.jpg +?ÿï* + cadena3.com08@R mundodescuento.s3.amazonaws.com^ +/ÿï08@Rmusiquiatra.com/uploads/banners +5ÿï08@R%naciodigital.cat/redaccio/publicitat/ +,ÿï08@Rnetpol.es/foropolicia_banner +1ÿï08@R!netuy.net/banner_hosting_uruguay/ +0ÿï08@R noticias3d.com/imagenes/banners/ +&ÿï08@Rnoticiasdel6.com/*.gif +Iÿï08@R9noticiasdelaciencia.com/upload/img/periodico/img_2972.jpg +@ÿï08@R0notifalcon.com/wp-content/uploads/*/cropped*.jpg +7ÿï08@R'nueva-ciudad.com.ar/advf/imagenes/*.gif +Kÿï08@R;nueva-ciudad.com.ar/advf/imagenes/2016/09/57eaba064c5fc.png +,ÿï08@Rnueva-ciudad.com.ar/banners/ +Oÿï08@R?objetivocastillalamancha.es/sites/default/files/NOTICIAS/BANNER +Sÿï08@RCobjetivocastillalamancha.es/sites/default/files/styles/banercolumna +Tÿï08@RDobjetivocastillalamancha.es/sites/default/files/styles/bannercolumna +9ÿï08@R)okdiario.com/img/endesa/endesa_300x90.gif +,ÿï08@Rpamplona.es/banner_noticias/ +;ÿï08@R+pamplonaactual.com/wp-content/uploads/*.gif +)ÿï08@Rparlamentario.com/db/000/ +4ÿï08@R$paxinasgalegas.es/BannerService.ashx +4ÿï08@R$perspectivasur.com/archivos/banners/ +O* +portalfruticola.com08@R*pf-ffp-cfp-banners.storage.googleapis.com^ +:ÿï08@R*pivigames.blog/wp-content/uploads/*750x100 +8ÿï08@R(planetabocajuniors.com.ar/imagenes/jaen/ ++ÿï08@Rposeidonhd.nz/js/storage/1/ +8ÿï08@R(practisistemas.com/images/home/claro.png +;ÿï08@R+practisistemas.com/images/home/movistar.png +7ÿï08@R'practisistemas.com/images/home/tigo.png +9ÿï08@R)practisistemas.com/images/home/virgin.png +Jÿï08@R:profesionalreview.com/wp-content/uploads/*/ASUS-SKIN_*.jpg +.ÿï08@Rproyecto-salud.com.ar/banners/ +/ÿï08@Rproyecto-salud.com.ar/img/*.gif +1ÿï08@R!proyecto-salud.com.ar/img/*banner +?ÿï08@R/proyecto-salud.com.ar/img/novedades-medicas.jpg +:ÿï08@R*puntobiz.com.ar/data/img_cont/img_banners/ +gÿï08@RWpuntomedio.mx/wp-content/uploads/2019/07/whatsapp-image-2019-07-29-at-3.40.53-pm-1.jpeg +Cÿï08@R3puntomedio.mx/wp-content/uploads/2019/11/kinea2.jpg +Dÿï08@R4px.fotos.cdn.0223.com.ar/f/5399f9f213cd649c19000009/ +Dÿï08@R4px.fotos.cdn.0223.com.ar/f/539f4f6c5408217c16000029/ +Dÿï08@R4px.fotos.cdn.0223.com.ar/f/5487365314cdac0400000148/ +Dÿï08@R4px.fotos.cdn.0223.com.ar/f/55cd3fc7b07ac20500000282/ +5ÿï08@R%rae.es/sites/all/common/images/logos/ +>ÿï08@R.ramenparados.com/wp-content/uploads/*Akira.jpg +2ÿï08@R"realovirtual.com/pictures/banners/ +3ÿï08@R#realpolitik.com.ar/uploads/banners/ +@ÿï08@R0recambios-expres.es/medias/oil-bundle-oil-es.png +S€* +valenciaplaza.com08@R/recursos.equipohumano.com/*_plubli/enlace.html^ +0ÿï08@R red92.com/images/uploaded/spots/ +.ÿï08@Rreligionenlibertad.com/imgpbs/ +*ÿï08@Rrioja2.com/images/banners/ +7ÿï08@R'rojadirectatv.tv/publicity/anuncio.php^ +3ÿï08@R#rosariogarage.com/resources/banner/ +9ÿï08@R)rota-cofrade.net/images/fotosdiseno/publi +2ÿï08@R"rs.20m.es/i/petitchef_cintillo.jpg´ +9ÿï08@R)s3.amazonaws.com/comparabien-default/ads/ +Cÿï08@R3s3.amazonaws.com/neoauto.com%2Felements%2FhomeCover +:ÿï08@R*salpimenta.com.ar/wp-content/uploads/*.gif +9ÿï08@R)sanjustonoticias.com.ar/agregados/banners +Hÿï08@R8seriesypelisonline.com/wp-content/uploads/*/me-corro.png +(ÿï08@Rshellshock.io/img/promo/ +2ÿï08@R"sinmordaza.com/images/*banner*.jpg +>ÿï08@R.sirchandler.com.ar/wp-content/uploads/202*/11/ +>ÿï08@R.sirchandler.com.ar/wp-content/uploads/2021/10/ +Eÿï08@R5sirchandler.com.ar/wp-content/uploads/2021/12/booking +*ÿï08@Rsiteground.es/img/banners/ +9ÿï08@R)smnoticias.com/wp-content/uploads/*/*.gif +Cÿï08@R3smnoticias.com/wp-content/uploads/2017/03/gelay.jpg +Rÿï08@RBsmnoticias.com/wp-content/uploads/2017/03/san.miguel.municipio.jpg +Xÿï08@RHsmnoticias.com/wp-content/uploads/2017/05/Banner-Concejo-Deliberante.jpg +Iÿï08@R9smnoticias.com/wp-content/uploads/2017/06/maraton-asi.jpg +Nÿï08@R>smnoticias.com/wp-content/uploads/2017/07/Banner-Galmarini.jpg +Sÿï08@RCsmnoticias.com/wp-content/uploads/2017/08/300x100-Destacamentos.jpg +]ÿï08@RMsmnoticias.com/wp-content/uploads/2017/09/Banner-Plaza-Barrio-Estudiantes.jpg +Lÿï08@Rÿï08@R.tabascohoy.com/img/temp/banner_notasgoogle.png +2ÿï08@R"telexplorer.com.ar/images/banners/ +#ÿï08@Rteliad.es/*/banner/ +)ÿï08@Rtiemposur.com.ar/banners/ +0ÿï08@R tiemposur.com.ar/uploads/banners +7ÿï08@R'tiquetesbaratos.com/pruebas/periodicos/ +.€* + elpopular.mx08@Rtodopuebla.com^ +.ÿï08@Rtucumanalas7.com.ar/u/banners/ +?ÿï08@R/tumbaabierta.com/wp-content/uploads/*/*/banner_ +8ÿï08@R(tumblr.com/eqq8p0h/2f9mqpk3y/gif__1_.gif +>ÿï08@R.tumblr.com/omgciym/ApWozdebj/sin-t__tulo-2.jpg +9ÿï08@R)tumblr.com/omgciym/bDjozcv4x/pampling.jpg +<ÿï08@R,tumblr.com/omgciym/Gylmyj90o/finovinilos.jpg +%ÿï08@Rtutiempo.net/ttbp.php +>ÿï08@R.uecdn.es/assets/desktop/master/img/patrocinio_ +Aÿï08@R1ushuaia24.com.ar/download/multimedia.normal.*.gif +&ÿï08@Rva6.thand.info/embed-^ +Hÿï08@R8vertelenovelasonline.com/wp-content/uploads/*/amazon.gif +Sÿï08@RCvertelenovelasonline.com/wp-content/uploads/*/Untitled-design-*.gif +)* + aulafacil.com08@R +videoo.tv^ +(ÿï08@Rvigoe.es/images/pbanner/ +9ÿï08@R)widget.laxarxa.com/ext/embeddable_frames/ +:ÿï08@R*widgets.helpmycash.com/ranking-financiero/ +H* +realidadsm.com08@R(wp.com/realidadsm.com/wp-content/*banner +:* +sinmordaza.com08@Rwp.com/sinmordaza.com/*?w= +'ÿï08@Rxtremostereo.net/t3l33/ +<ÿï08@R,yucatan.com.mx/wp-content/uploads/*/*/banner +Bÿï08@R2zapping.live/images/uploads/banners/zapping-*.gif^ + * +xtremostereo.net08@à +2ÿï* +diariomotor.com08@R/ads/brand_day^ +0ÿï* +ecartelera.com08@R/fallback_pub_ +3ÿï08@R#annarecetasfaciles.com/*-idoneo.gif ++ÿï08@Rbudokaifighters.com/images/ +?ÿï08@R/elcolombiano.com/*/punto-de-compras-2-productos +.ÿï08@Relhistoriador.com.ar/*/*banner +/ÿï08@Relhistoriador.com.ar/*/2021/1*/ +,ÿï08@Relhistoriador.com.ar/*/fedun +1ÿï08@R!elitestream.co/script/storage/v6/ +Nÿï08@R>elperiodicodeportivo.com.co/sites/default/files/inline-images/ +(ÿï08@Repasatiempos.es/js/af.js +)ÿï08@Repasatiempos.es/js/dab.js +Gÿï08@R7estadiodeportivo.com/elementosWeb/gestionCajas/EDE/Imag +Dÿï08@R4extra.com.co/sites/default/files/*/elite-barber-shop +-ÿï08@Rforosforex.com/images/banner/ +€08@Rgerente.com/co?_ +:ÿï08@R*gtsstatic.com/static/mscripts/index_457.js +Cÿï08@R3imparteconocimientos.com/recursos/Anti-AdBlocker.js +7ÿï08@R'incp.org.co/wp-content/uploads/2021/07/ +708@R)jerezcofrade.tv/wp-content/uploads/*/*.js +%08@Rlacasadeel.net/banners/ +0ÿï08@R lavozdealmeria.es/js/addblock.js +&ÿï08@Rmangas.in/js/taktak.js +5ÿï08@R%masgamers.com/wp-content/uploads/2019 +>ÿï08@R.motociclismo.es/js/compiled_blockadblock_15.js +,ÿï08@Rnewsearnmoney.com/*/popup.js +9ÿï08@R)noticiasdelaciencia.com/libs_oss/adblock/ +Aÿï08@R1noticierodelllano.com/wp-content/uploads/2021/05/ +=ÿï08@R-odontologos.com.co/assets/images/advertising/ +;ÿï08@R+odontologos.com.co/images/pauta/Gif-1-Pauta +6ÿï08@R&okdiario.com/app/4/js/check-blocker.js +3ÿï08@R#opanoticias.com/assets/imgs/banner/ +0ÿï08@R opanoticias.com/img/uccnoviembre +*ÿï08@Rpieldetoro.net/web/imagen/ +.ÿï08@Rprensalibrecasanare.com/b202*/ +Bÿï08@R2profesionalreview.com/*/2021/11/asus-z690-cashback +&08@Rrtvc.es/storage/*/249.js +7ÿï08@R'superligatv.com/js/jquery.blockBlock.js +108@R#todopolicia.com/wp-content/uploads/ ++ÿï* + +animeyt.es08@R truepush.com^ +,ÿï08@Ramaduras.com/img-publicidad/ +,ÿï08@Rdoncolombia.com/data/siropu/ +*ÿï08@Rdonlgbt.com/images/banner_ ++ÿï08@Resaschicas.com/data/siropu/ +5ÿï08@R%fucklouder.com/images/thumbs/banners/ +3ÿï08@R#hispasexy.org/buttons/banner728.gif +1ÿï08@R!madlifes.com/tools/get_banner.php +3ÿï08@R#mundosexanuncio.com/img_es/banners/ +%ÿï08@Rpasionmujeres.com/ai/ +1ÿï08@R!pepeporn.com/tools/get_banner.php +>ÿï08@R.petardashd.com/archivos/static/hd/img/sponsor/ +ÿï08@Rplx.pornes.xxx^ +ÿï08@Rporinga.net/ra/ +:ÿï08@R*pornogratisdiario.com/imagenes_publicidad/ +7ÿï08@R'pornolandia.xxx/static/xxx/cameraprive/ +ÿï08@Rpulpo69.com/nb/ +ÿï08@Rra.poringa.net^ +Aÿï08@R1spalumi.com/images/icons/Escortsvipibiza32022.gif +1ÿï08@R!suiteporno.com/fragrant-fog-dc3b/ +#ÿï08@Rteatroporno.com/ai/ +'€08@Rtodorelatos.com/freecam/ +%€08@Rtodorelatos.com/promo/ +&ÿï08@Rtupornogratis.xxx/bnr/ +0ÿï08@R videosporno.org/empty-band-2ead/¡ +ÿï08@Rxcuca.com/pout/ +-ÿï08@Rxtusubs.com/zindexadspro1.php& + canal1.com.co#BannerFlotanteDp( + canal1.com.co#Banner_Flotante_Dp + elpais.com.co +#Barra_1_D" + azarplus.com#Bloque3publis + elpais.com.co +#Boton_1_D( +walmart.com.mx#ITEM-BuyBoxAd-top +norteenlinea.com#Mod375 +norteenlinea.com#Mod427 +norteenlinea.com#Mod450 +norteenlinea.com#Mod452 + marca.com #Patrocinio" + canal1.com.co #Robapagina_1% + canal1.com.co#Robapagina_mb_1" + canal1.com.co #SuperBanner1" + canal1.com.co #SuperBanner2# + canal1.com.co#Superbanner_1+ +elperiodicodemonagas.com.ve#ad-area/ +elperiodicodemonagas.com.ve #ad-area-top$ + lavoz.com.ar#ad-slot-topsite/ +foroparalelo.com#ad_global_below_navbar, + +freepik.es#adobe-pagination-mkt-copy& +notariosyregistradores.com#ads) +diariocorreo.com.ec#advertisement +lacapitalmdp.com#anpr0 +separarensilabas.com#antiBannersGigantes! + arbolabc.com #anuncio-dark + cuevana3.nu +#anuncioca. +elciudadanoweb.com#apsa-pop-hidden-img8 +leroymerlin.es"#arm-pad[data-st-name="sponsored"]R +agencianova.com +novalaplata.com + novachaco.com#avisosDerechaContainer5 +profesionalreview.com#background-stream-cover + lacuerda.net#ban160 + lacuerda.net#ban300 + lacuerda.net#ban728 + lacuerda.net#banTxt" +xeu.mx#banner-bottom-close" +viralizalo.com #banner-mega + eldefinido.cl +#bannerGCP} +elcordillerano.com.ar +elterritorio.com.ar +anbariloche.com.ar +noticiasnet.com.ar + anroca.com.ar #bannerPopup% + +ambito.com#bannerStickyHeader� +elcordillerano.com.ar +elterritorio.com.ar +anbariloche.com.ar +noticiasnet.com.ar +diarioeldia.cl + anroca.com.ar #bannerZocalo0 +diariodelaribera.net#bannercabeceravideo* +noticiasyprotagonistas.com#banners* +eleconomista.es#banners-superiores' + ondavasca.com#billboard-wrapper + elrellano.com#block-2" +blog.facialix.com #block-29 + elrellano.com#block-3( + lexlatin.com#block-banneranimado) +ancient-origins.es#block-block-17) +ancient-origins.es#block-block-39) +ancient-origins.es#block-block-43) +ancient-origins.es#block-block-501 +puertocanarias.com#block-cabildocanariona9 +puertocanarias.com#block-partnerfriendsoftheocean5 + lexlatin.com!#block-views-block-banner-block-1  + winsports.co #block-wplay0 +fenix951.com.ar#bloqueBannersHorizontal1 + anisearch.es +#bottombox- + flashscore.co#box-over-content-detail + hackstore.rs#car_topn" + empresite.eleconomistaamerica.co +empresite.eleconomista.es +informacion-empresas.co#cls-upper-adsó: +europapress.es$#colLateral[style="height: 1200px;"]) + cifraclub.com#containerAdSpaceTop/ +forococheselectricos.com#custom_html-17% +thaderclub.com#custom_html-19# + eltorotv.com#custom_html-21! +neomotor.epe.es +#cx_widget + laiguana.tv #divFLRALeft  + laiguana.tv #divFLRARight( +mangatigre.net#dl-banner-300-250$ +diariolibre.com #dl_970x250_1$ +diariolibre.com #dl_970x250_2$ +diariolibre.com #dl_970x250_3 +rae.es #edit-lacaixa( +elnacional.com#en_nd_home_flat_2( +elnacional.com#en_nd_home_flat_3! + elpotosi.net #fancesaPubli* +elmercurio.com.ec#fancybox-overlay' +elmercurio.com.ec#fancybox-wrap0 +promodescuentos.com#headerFuseZonePortal + futbolme.com +#headeradd1 +transfermarkt.es#home-rectangle-spotlight  +encuentra24.com #home_topì +huelvainformacion.es +diariodealmeria.es +diariodesevilla.es +eldiadecordoba.es +diariodecadiz.es +diariodejerez.es +granadahoy.com + atlantico.net + europasur.es + malagahoy.es + laregion.es#id-bannerUnderHeader& +fronteradigital.com.ve#img_pub* +periodismokosher.com.ar #key2sticky  + arbolabc.com #leaderboard% +excelsior.com.mx #leaderboard0$ +diariodeteruel.es #leftbanner( +atacamaenlinea.cl#media_image-17( +atacamaenlinea.cl#media_image-30² +factoriadeficcion.com + niusdiario.es + telecinco.es + divinity.es + energytv.es + +cuatro.com + uppers.es + +bemad.es + +mtmad.es + +yasss.es#megaSuperior_multisite3 +elnacional.com.do + +hoy.com.do #modalanucio/ +promodescuentos.com#mrec1FuseZonePortal) +diariodeteruel.es#mvp-leader-wrap& + abchoy.com.ar#netkevin-overlay$ + abchoy.com.ar#netkevin-popup$ +novalaplata.com #notas_arriba! + chileautos.cl #page-header( +elcorreogallego.es#pmMarketing_1; +promodescuentos.com #productIncontent1FuseZonePortal; +promodescuentos.com #productIncontent2FuseZonePortal + +qmusica.tv#promo + +qmusica.tv #promoSept19A + +qmusica.tv #promoSept19B +promiedos.com.ar#pub728# + yelmocines.es#publiboardTop+ +fronteradigital.com.ve #publicidad-2, +talcualdigital.com#publicidad-slider) +avisosdeocasion.com#publicidadhub! +pelisplushd.nz #publiperro+ + record.com.mx#region-preface-second% +diariodeteruel.es #rightbanner5 +noticiasrcn.com + canalrcn.com#rp1-compuesto" + +heraldo.es#sidebarADefault +gamereactor.es#sky2_1 + latribuna.cl #slot_box01 + latribuna.cl #slot_top3 + falabella.com#sponsored-brand-normal-design/ + falabella.com#sponsored-strip-container, +avisosdeocasion.com#srcpublicidadhub + tvazteca.com +#stickyDiv& + elespanol.com#sticky_container" +diariolibre.com #stickyunit + lacuerda.net#t_diag¥3 + laiguana.tv#tdi_139 + laiguana.tv#tdi_154 + elimpulso.com#tdi_16 + +mixfm.mx#tdi_42 +futbolretro.es#tdi_719 +knightnoscanlation.com +yugenmangas.com#teaser3  +16valvulas.com.ar#text-3# +planbnoticias.com.ar#text-46 +planbnoticias.com.ar +elexpediente.co#text-71 +independentespanol.com#top-banner-wrapper  + anisearch.es #topA_iframe7 +generacionuniversitaria.com.mx#ventana-flotante* + theclinic.cl#web-tc-horizontal-1-d* + theclinic.cl#web-tc-horizontal-2-d. +elciudadanoweb.com#wrapper-header-full +lanacion.com.ar.--ads" +eleconomista.es .AD_Content +elespectador.com.AdsK +revistacromos.com.co +elespectador.com.Ads_megaBannerTopContainer: + nmas.com.mx'.Advertising_advertising__DivAds__RTWcy  +informacionalcalalareal.es +informacionpuentegenil.es +informacionsanfernando.es +andaluciainformacion.es +vivacampodegibraltar.es +sanlucarinformacion.es +vivatorremolinos.es +vivabenalmadena.es +vivavelezmalaga.es +sticknoticias.com +vivaalmunecar.es +vivaantequera.es +vivavalencia.net +vivachiclana.es +vivaelpuerto.es +vivaestepona.es +vivamarbella.es +vivaalmeria.es +vivabarbate.es +vivacordoba.es +vivagalicia.tv +vivagranada.es +vivamalaga.net +vivasevilla.es + vivahuelva.es + vivaarcos.es + vivacadiz.es + vivaconil.es + vivajerez.es + vivapunta.es + vivavejer.es + vivajaen.es + vivarota.es.BANNERŒ +informacionalcalalareal.es +informacionpuentegenil.es +informacionsanfernando.es +andaluciainformacion.es +vivacampodegibraltar.es +sanlucarinformacion.es +vivatorremolinos.es +vivabenalmadena.es +vivavelezmalaga.es +vivaalmunecar.es +vivaantequera.es +vivavalencia.net +vivachiclana.es +vivaelpuerto.es +vivaestepona.es +vivamarbella.es +vivaalmeria.es +vivabarbate.es +vivacordoba.es +vivagalicia.tv +vivagranada.es +vivamalaga.net +vivasevilla.es + vivahuelva.es + vivaarcos.es + vivacadiz.es + vivaconil.es + vivajerez.es + vivapunta.es + vivavejer.es + vivajaen.es + vivarota.es.BNR-DER" + elpais.com.uy .List-sponsor + +3cat.cat .M-publicitat* +foxsports.com.mx.MitadLogoCaliente5 +autosusados.cl.OtherPages_othersection__Ad_Ae + elpais.com.uy +.PromoFeat) +qhubomedellin.com.QH-pauta-header + eldefinido.cl.RPB +fusionradio.mx +xeudeportes.mx + +lafiera.mx .T4Tutorials. +elchapuzasinformatico.com .__lxG__multiò +elperiodicomediterraneo.com +elperiodicoextremadura.com +elperiodicodearagon.com +laopiniondemalaga.es +laopiniondemurcia.es +laopiniondezamora.es +diariodemallorca.es +elcorreogallego.es +laopinioncoruna.es +diaridegirona.cat +diariocordoba.com +diariodeibiza.es +elperiodico.com +levante-emv.com +superdeporte.es +elcorreoweb.es +informacion.es +laprovincia.es + farodevigo.es + emporda.info + +regio7.cat + +eldia.es + +sport.es +lne.es ._mo_recs_tpi( +huffingtonpost.es._modulo-amazon� +elperiodicodelaenergia.com +latinopinionbaltimore.com +politicaexterior.com +aurora-israel.co.il +aviacionline.com +teleamazonas.com +elsiglo.com.ve +realidadsm.com + analitica.com + elambito.com + ahoraeg.com + +atb.com.bo + +siempre.mx .a-singlef +diarioellibertador.com.ar +tutorialesenlinea.es +portalpuentealto.cl + laregion.cr.a-wrap¢! +reparaciondecomputadoras.online +comidasespanolas.com +recetasdepan.net +thebeertimes.com +weedmagazine.net +cannabis420.cl + beergeeks.cl.aawp! +somosohlala.com +.accession( +actualidadradio.com .actua-widgetØ  +elperiodicomediterraneo.com +elperiodicoextremadura.com +elperiodicodearagon.com +noticiasdegipuzkoa.eus +noticiasdenavarra.com +trendenciashombre.com +diariodelviajero.com +directoalpaladar.com +laopiniondemalaga.es +laopiniondezamora.es +diariocorreo.com.ec +diariodemallorca.es +motorpasionmoto.com +noticiasdealava.eus +pymesyautonomos.com +economiadigital.es +elconfidencial.com +elcorreogallego.es +laopinioncoruna.es +motorpasion.com.mx +compradiccion.com +diaridegirona.cat +diariocordoba.com +xatakaciencia.com +xatakawindows.com +diariodeibiza.es +elblogsalmon.com +xatakandroid.com +levante-emv.com +meteoconsult.es +motorpasion.com +noticiasrcn.com +revistafama.com +superdeporte.es +trendencias.com +xatakamovil.com +applesfera.com +informacion.es +jornada.com.mx +laprovincia.es +xatakafoto.com +xatakahome.com + abchoy.com.ar + bebesymas.com + farodevigo.es + todo-mail.com + vidaextra.com + xataka.com.mx + eldiario.com + emporda.info + eurosport.es + vitonica.com + espinof.com + genbeta.com + +elpais.com + +larazon.es + +regio7.cat + +xataka.com + ntn24.com + +aica.org + +deia.eus + +eldia.es + +fmdos.cl +lne.es.ad + mundo.com +.ad-banner +adiscusion.com .ad-box-1é +futbolcentroamerica.com +lapaginamillonaria.com +derechadiario.com.ar +somosfanaticos.fans +hobbyconsolas.com +americatv.com.ar +juanbeisbol.com +e-noticies.cat +juanfutbol.com +larepublica.pe + adnsur.com.ar + elpopular.pe + eltiempo.com + bolavip.com + dalealbo.cl + +buenazo.pe + libero.pe + redgol.cl +wapa.pe .ad-container( + adnsur.com.ar.ad-container-plain* +cualesmiip.com.ad-detail-adaptable8 +totbarcelona.cat + elmon.cat.ad-gutenberg-block' + arbolabc.com.ad-leaderboard-row +elotrolado.net.ad-lg( + ellitoral.com.ad-slot-background + bandaancha.eu .adMbBlTp2 +atresplayer.com.adWrapper-content-position$ +lavozdegalicia.es .ad_fixed_h + vidasana.sv .adblockwebg +elperiodico.cat +elperiodico.com +lagaceta.com.ar + sumedico.com + +sport.es +epe.es.add  +ciudadccs.info +.add-inner; +nationalgeographic.com.es + lecturas.com +.add990x90  + ondacero.es .addContainer! + foromtb.com.addoor-pubtag +diez.hn.adnotas) + +freepik.es.adobe-coupon-container$ + +freepik.es.adobe-grid-design” +cronicadelquindio.com +laprensaaustral.cl +benditofutbol.com +grandepremio.com +lostiempos.com + studio92.com + abogacia.es + lasexta.com + uypress.net + +cdn.com.do + +corazon.pe + +perfil.com + +publico.es + eslang.es + +lared.cl +atv.pe +rpp.pe.ads" + meneame.net.ads-interlinks + +perfil.com +.ads-space, +tutorialesenlinea.es.ads-titleposttl‘&. + deportes13.cl +t13.cl +13.cl.ads13+ +diarioprimeralinea.com.ar +.adsCenter" +eleconomista.es .adsLinicom" +cocina-chilena.com.adsense& +infojardin.com.adsense-columna! + aporrea.org.adunit-01-max[ +lanoticiadequilmes.com.ar +elindependiente.com + elespanol.com + +clarin.com.adv% +diariodemocracia.com .adv-area; +nicaraguainvestiga.com + cambio21.cl.advertisementk +papajuegos.com +plantadoce.com + ejeprime.com + +larazon.es + +relevo.com +ara.cat .advertisingì +huelvainformacion.es +diariodealmeria.es +diariodesevilla.es +eldiadecordoba.es +diariodecadiz.es +diariodejerez.es +granadahoy.com + atlantico.net + europasur.es + malagahoy.es + laregion.es.advertising--desktopë +huelvainformacion.es +diariodealmeria.es +diariodesevilla.es +eldiadecordoba.es +diariodecadiz.es +diariodejerez.es +granadahoy.com + atlantico.net + europasur.es + malagahoy.es + laregion.es.advertising--mobile- +confidencial.digital.advertising-last + lapatilla.com.adyb- +meganoticias.cl.agrupadorPatrocinados" + ilustrado.cl.ai-viewport-1# +elfenixdigital.com .ajax-cds# + petitchef.es.akcelo-wrapper` +tarragonadigital.com +pallarsdigital.cat + aguaita.cat + +rubitv.cat.amp_columnapubli[ +diarioresponsable.com +elsaltodiario.com + toonscrab.com + donbalon.com.anuncio) +insideevs.com.ar + +iproup.com.ap +insideevs.com.ar.apb* +elciudadanoweb.com.apsa-embed-cont: +metroecuador.com.ec + publimetro.cl.arcad-feature! + elespanol.com .article-adv1 +lavanguardia.com.article-module-sponsoredN +elconfidencial.com4.articleAside__module.articleAside__module--isSticky. + atlantico.net + laregion.es +.aside-bar$ + tycsports.com.asideAdWrapper% +elobservador.com.uy +.auspicios. +totbarcelona.cat + elmon.cat .auxdiv-1. +totbarcelona.cat + elmon.cat .auxdiv-3. +totbarcelona.cat + elmon.cat .auxdiv-5" +gasteizhoy.com .aviso_publi. +lainformacion.com + 20minutos.es.axds# +lainformacion.com +.axds-lane" +heraldousa.com .b-ads-blockC +metroecuador.com.ec +publimetro.com.mx.b-ads-block-custom + +elpais.com .b-bra-bbva& +lectuepubgratis.com .bam-topbar + datoscif.es .ban-700-hor +gasteizhoy.com .banclick. +lesportiudecatalunya.cat.banerpromocioµ + +eldiariodelarepublica.com +tornquistdistrital.com.ar +eldiarionuevodia.com.ar +diarioelargentino.com +diariolasamericas.com +diariolaverdad.com.ar +nuevodiarioweb.com.ar +diariopopular.com.ar +impulsobaires.com.ar +lapoliticaonline.com +laverdadnoticias.com +econojournal.com.ar +eleconomista.com.mx +laprensagrafica.com +tiempodesanjuan.com +castellonplaza.com +estadiodeportes.mx +realpolitik.com.ar +valenciaplaza.com +zamora24horas.com +alicanteplaza.es +altonivel.com.mx +elancasti.com.ar +eleconomista.net +elpatagonico.com +infocanuelas.com +pilaradiario.com +tntsports.com.ar +busqueda.com.uy +diariolibre.com +elimparcial.com +losandes.com.ar +sputniknews.lat +bienbonita.com +eldiariony.com +elnacional.com +hispasonic.com +tvynovelas.com +viapais.com.ar + agenciafe.com + agritotal.com + diariohoy.net + elgrafico.com + informador.mx + laopinion.com + letrap.com.ar + masgamers.com + minutouno.com + observador.cr + puntal.com.ar + cronista.com + donbalon.com + elplural.com + guarda14.com + lacuarta.com + lavoz.com.ar + motor.com.co + tntsports.cl + 0221.com.ar + +ambito.com + +elonce.com + +laraza.com + 24con.com + diario.mx + mdzol.com + welife.es + +ellas.pa +c5n.com +ella.sv +rpp.pe +t13.cl.banner  + +naiz.eus.banner--article! +iprofesional.com .banner-2 + +freepik.es .banner-adobe. + +clarin.com + +ole.com.ar.banner-borderŒ +diariodecuyo.com.ar +unoentrerios.com.ar +unosantafe.com.ar +agroclave.com.ar +lacapital.com.ar +cronica.com.ar .banner-box+ +elnueve.com.ar.banner-box-container, +noticiasurbanas.com.ar.banner-center + concierto.cl .banner-cms| +eldiariodelapampa.com.ar +elpuntodeequilibrio.com + minutouno.com + revistacar.es + +ambito.com.banner-container$ +poketvlatino.com .banner-fijo* + soychile.cl.banner-fixed-container! + puntal.com.ar .banner-flex +tvn.cl .banner-full% +primicia.com.ve.banner-header  + elsol.com.ar .banner-home* +iprofesional.com.banner-horizontal> +noticierodelllano.com +elnuevogeorgia.com .banner-img* +diariodecuyo.com.ar.banner-lanusseq +diariouno.com.ar +eldiariosur.com + puntal.com.ar + urgente24.com + +lared.am +a24.com .banner-libre2 +25digital.com.ar.banner-promotions-wrapper¾ + +clarin.com .banner-right& +movieflix.click.banner-sidebar +elcordillerano.com.ar +elterritorio.com.ar +anbariloche.com.ar +noticiasnet.com.ar + anroca.com.ar.banner-simple$ +eltrecetv.com.ar .banner-swap/ +hispasonic.com + +clarin.com .banner-top0 +miradorprovincial.com.banner-top-home-mpk +lmcipolletti.com +elcomercio.com + ciudad.com.ar + lmneuquen.com + hazteveg.com.banner-wrapper+ +diariodelaribera.net.bannerColumnas$ +metrolatam.com.bannerContent& +eleconomista.es.bannerInferior( +eleconomista.es.bannerIntermedio~ +elcordillerano.com.ar +elterritorio.com.ar +anbariloche.com.ar +noticiasnet.com.ar + anroca.com.ar .bannerLoaded0 + +clarin.com + +ole.com.ar.bannerTopHeader9 +bienesrosario.com .banner_bienes_rosario_contenido+ +rosariogarage.com.banner_centro_inf/ +radiomontecarlo.com.uy.banner_elementos" +chilevision.cl .banner_full$ +fenix951.com.ar .banner_inner( +elperiodicodeaqui.com .banner_lat9 +bienesrosario.com +rosariogarage.com .banner_sopP +bienesrosario.com +rosariogarage.com +wiselwisel.com.banner_superior$ +wiselwisel.com.banner_widget" +totsantcugat.cat +.bannerfix€ +diarioresponsable.com +elinformador.com.co +lancelotdigital.com +elwebdelmirall.net +lavozdemoron.es .bannergroup( +lancelotdigital.com .bannerheader + telesurtv.net.banners+ +eleconomista.es.banners-superiores2 + +iproup.com .bannerwide5 +europa-agricola.es +via-mobilis.es .banniere$ + falabella.com.bannner-styles' +noticiasrcn.com.barra-compuesta# + eltiempo.com.bc-placeholderD + flashscore.co + flashscore.es + flashscore.pe .bettingStrip/ +totbarcelona.cat + elmon.cat +.billboarde +noticiasargentinas.com +diarioregistrado.com +elpopularhoy.com +losprimeros.tv .block-4d% +cosasdecome.es.block-anuncios + eqsnotas.com .block-da! + cronista.com .blocksponsor. + theclinic.cl + eldinamo.cl .bloque-dfp + esmtb.com .bloque_anun +eleconomista.com.ar.bncj +diariolaprovinciasj.com +gastrolabweb.com +infofueguina.com + elesquiu.com + poresto.net.bnn0 +diariodecuyo.com.ar + henaojara.com.bnr% + eltiempo.com.board-tu-negocio/ +cronica.com.ar.bottom-sticky-banner-box´ +futbolcentroamerica.com +lapaginamillonaria.com +somosfanaticos.fans +juanbeisbol.com +juanfutbol.com + bolavip.com + dalealbo.cl + redgol.cl.boxbanner_container! + latercera.com .brand-claro) +elperiodico.com +epe.es.branded@ +elperiodico.com + eldiario.es +epe.es.branded-content% + latercera.com.branded-sponsor" + eldoce.tv.branding-wrapper0 + +nacion.com + lateja.cr.brandvoiceFooter0 + +nacion.com + lateja.cr.brandvoiceHeader$ +mariskalrock.com .brave_popup) + terremoto.mx.break_patrocinadores  +versionfinal.com.ve.bsac! + futbolred.com .btn_betplay' +plantadoce.com.bwe_ext_partnerså +diariodecastillayleon.es +heraldodiariodesoria.es +diariodevalladolid.es +elcorreodeburgos.com +eleconomista.com.mx +diariodeleon.es + miarevista.es + eltiempo.com + serpadres.es + segre.com +cope.es.c-add# + eltiempo.com.c-add--no-text +cope.es .c-add-teads + eldebate.com .c-add-wall¶ +hibridosyelectricos.com +planetarealmadrid.com +zamora24horas.com +atlanticohoy.com +diario16plus.com +cocheglobal.com +huleymantel.com +elnacional.cat .c-banner + +elpais.com.c-bra‰" + +elpais.com.c-brr + cadenaser.com.c-p-ia + los40.com.c-pub + cadenaser.com +.c-s > div+ +huffingtonpost.es.c-sidebar-branded + +elpais.com .c.c-pfb.c--m! + eldefinido.cl .cajabanners + criptoya.com .carousel! + encancha.cl.cl-adzone-ctn< +diariobitcoin.com#.clickout-banner-regular_native_box* +vivanolamag.com.client-logo-slider$ + eltiempo.es.cls-publi-heightŸ +intercambiosvirtualeshd.org +mejoresmodsminecraft.site +periodismodelmotor.com +washingtonhispanic.com +bembibredigital.com +estacaonegocios.com +gatewayhispanic.com +tresubresdobles.com +economiadigital.es +valoraanalitik.com +finofilipino.org +stonkstutors.com + cinemitas.org + elprofe20.com + elrellano.com + comedera.com + finanzas.com + radiocre.com + atomix.vg .code-blockT +eldiadehigueras.com.ar +campoindustria.com +diariomovil.info .codigo-html +ciudadccs.info .col-sm-9! +e-noticies.cat .column-ads" + elespanol.com .comments-adv( +ansalatina.com.commercial-banner, +ansalatina.com.commercial-banner-topÙ +elperiodicomediterraneo.com +elperiodicoextremadura.com +elperiodicodearagon.com +laopiniondemalaga.es +laopiniondemurcia.es +laopiniondezamora.es +diariodemallorca.es +elcorreogallego.es +laopinioncoruna.es +diaridegirona.cat +diariocordoba.com +diariodeibiza.es +levante-emv.com +superdeporte.es +elcorreoweb.es +informacion.es +laprovincia.es + farodevigo.es + emporda.info + +regio7.cat + +eldia.es +lne.es.commercial-up-full' +elmundofinanciero.com +.con_publi( +retinatendencias.com .concintillo' + dolarhoy.com.cont_publi_desktopA +elperiodico.cat +elperiodico.com +epe.es .container-adœ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl.container-advertising+ + vilaweb.cat.container-banner-header7 + elcomercio.pe + depor.com.container-publicidadm +diariohuarpe.com +elchubut.com.ar +laarena.com.ar + eltribuno.com + dolarhoy.com.container-spot$ + autopista.es.containerBanner% + reduno.com.bo.container_publi( + theclinic.cl.contenedor-auspicio2 + futbolred.com.contenedor-logo-patrocinador/ +eldestapeweb.com.contenedor__publicidad, +mundodeportivo.com.content-ad-module  + eldebate.com .content-addM +radioformula.com.mx +lasillarota.com + sumedico.com.content-banner& + +prensa.com.countdown-container- +eluniversal.com.mx.coupons__containerO +meteored.com.ar + meteored.cl + meteored.mx + +tiempo.com .creatividad! +cronica.com.ar .css-svo7lo# +autocasion.com .cuatro-publi, +ellatinodehoy.com.custom-html-widget0 +derechouned.com.customAdvertise_CampaignI + flashscore.co + flashscore.es + flashscore.pe.detailLeaderboard3 +libertaddigital.com +libremercado.com.dfp- + +nacion.com + lateja.cr.dfp-containerx +eluniversal.com.mx +dedinero.com.mx +revistaclase.mx + elgrafico.mx + +viveusa.mx.dfp-tag-wrapper-container9 +laprensademn.com +vidaysabor.com.dialog-message + forbes.pe +.dreams-ad+ +noticias.mitelefe.com.e-post-banner' + euractiv.es.ea-gat-slot-wrapper{ +diarioeldia.cle.each-container.grid.grid-cols-1.items-center.default-gap.items-end.mx-auto.container.default-padding) +economipedia.com.econo-code-block! +elestimulo.com .ele-banner: +elespecialitodigital.com.elementor-element-12cbdca3 +laprensademn.com.elementor-element-15f1544d4 +lavozhispanact.com.elementor-element-32d83d87 +recursos-biblicos.com.elementor-element-4034d761 +vidaysabor.com.elementor-element-4485d2643 +parlamentario.com.elementor-element-530ebc04 +radiocentro.com.ec.elementor-element-811f5f84 +elnuevogeorgia.com.elementor-element-a51cde34 +radiocentro.com.ec.elementor-element-cfab89b4 +elnuevogeorgia.com.elementor-element-d45ce2c×4 +elnuevogeorgia.com.elementor-element-d7827634 +radiocentro.com.ec.elementor-element-fb5d061= +huffingtonpost.es$.entry__right-rail-width-placeholder' + okdiario.com.envoltorio-intext1 + adiariocr.com.esdfp) +compraensanjuan.com.espacio-publi0 +compraensanjuan.com.espacio-publi-google+ +lacapitalmdp.com.espacio-publicidad# +hoyenbogota.com .et_pb_row_4 + forbes.com.mx +.f4_ad__ep% +verepeliculas.com .fake_player& + ejeprime.com.featured_specialsj +motrildigital.newsP.flex.flex-col.items-center.md\:flex-row.md\:justify-center.mt-8.px-4.mb-8.gap-3" + abchoy.com.ar .fondo-banner% + ecuavisa.com.fondo_publicidad) + +sport.es.friso-marcadores-sponsor0 +elperiodico.com.ft-org-cardHome--branded + +buentv.net .full_add“ +elperiodicodelaenergia.com +periodicolaperla.com +arquimaster.com.ar +diarioelcanal.com +eltelegrafo.com +lapagina.com.sv +valencianews.es +donostitik.com +realidadsm.com + analitica.com + elliberal.cat + isanidad.com + ahoraeg.com + +jotdown.es.g0 +realidadsm.com + economia3.com .g-single! +cooljuegos.com .game-promo- +cooljuegos.com.games-horizontal-promo- + la-razon.com.genosha_ads_fixed_bottom' + winsports.co.goles_acero_banner + cuevana3.eu.got-dvrF + portafolio.co + eltiempo.com!.gpt-slot-barra-flotante-inferiorA + portafolio.co + eltiempo.com.gpt-slot-satelite-container + +notife.com .grid-ads< +macrojuegos.com%.grow.flex.justify-center.h-\[300px\]. +diariodemallorca.es.grp--branded-style$ +habitaclia.com.gtmclickpromo) +milanuncios.com.has-advertisement! + naucher.com.header-banner? +atacamaenlinea.cl +redmipaisnorte.cl.header-promotion= +comprobarbonoloto.es +resultadostris.com .header_add& + elespanol.com.heading__sponsor5 + midiario.com + +prensa.com.height-bantop-fijo† +muynegociosyeconomia.es +diariodenavarra.es +muyinteresante.es +marie-claire.es +muyhistoria.es + +larazon.es .henneoHB + publinews.gt +.herald-daT +cienradios.com>.hide-on-scroll-wrapper.is-not-scrolled[style="height: 90px;"]1 +adiscusion.com + soychile.cl .home-banner0 +paulinacocina.net.home-content-banner-ad/ +atacamaenlinea.cl.home-featured-widgets' + bolavip.com.home-poll-block__ad+ +t13.cl.home-slider__header__sponsor) + tycsports.com.horizontalAdWrapper( +periodicoellaurelpr.com .hpe-i-ad4 +autoextragti.com.html-before-comments > .img2 +canal21ebre.com + marfanta.com .ib-ad-text& +sunoticiero.net.img-ad-default + lanacion.cl .img-banner + lavoz.com.ar .imgSponsor* + diarioadn.co.imperdibles__position! +viapais.com.ar .int-banner  +muchodeporte.com.intext1  +muchodeporte.com.intext2. +elliberal.com.ar + pregon.com.ar.item + +p23.com.ar.j_publi$ +radiocentro.com.ec +.jet-popupl +muynegociosyeconomia.es +muyinteresante.es +marie-claire.es +muyhistoria.es.js-ads-not-visible+ +diariodelaribera.net.lateralderecho- +diariodelaribera.net.lateralizquierdo˜ +canal12.com.sv +elcomercio.com + sonora.com.gt + chapintv.com + repretel.com + +c9n.com.py + +rts.com.ec + +snt.com.py +atv.pe .layout-rev + abchoy.com.ar +.lazypubli¶5 +fusionradio.mx + +lafiera.mx.leader_board_IAB  + adslzone.net .leaderboard) + radiante.fm.leaderboard-container6 +huffingtonpost.es.leaderboard-flex-placeholder( + urgente24.com.listado-horizontal' + flashscore.co.liveActiveBet-icoF + flashscore.co + flashscore.es + flashscore.pe.liveBetWrapper  +lanacion.com.ar .ln-aside+ +lanacion.com.ar.ln-banner-container! + +prensa.com.logo_group_mar^ +trendenciashombre.com +directoalpaladar.com + vidaextra.com + +xataka.com +.m-branded‚ +diariodelviajero.com +motorpasionmoto.com +pymesyautonomos.com +elblogsalmon.com + bebesymas.com.m-desvio-ecommerce< +milanuncios.com%.ma-ContentListing-advertising-native$ +gasteizhoy.com.macrobanblock5 +sensacine.com.mx + sensacine.com .main-banner# + laoctava.com.main-banner-ad2 +eldiariodelapampa.com.ar.makeadshorizontal% + infopico.com.marco-publicidadN +quesonlosvaloreseticos.com +signodeinterrogacion.com.masthead-banner< +empresite.eleconomista.es.mauto.textcenter.mb20.mt20 +rpp.pe .mdl-sponsors1 + esdiario.com.media-ajust-tablet-publi-top8 +fusionradio.mx + +lafiera.mx.mediumRectangle_IAB + okdiario.com.mega +abc.es.mega-superiord +muynegociosyeconomia.es +muyinteresante.es +marie-claire.es +muyhistoria.es .megaBanner… +esradiocastillayleon.es +meteored.com.ar + meteored.cl + meteored.mx + +lleida.com + +modaes.com + +tiempo.com .megabanner7 +25digital.com.ar +festradio.com.ar .metasliderQ +caracol.com.co + wradio.com.co + wradio.com.mx + adnradio.cl +.mh266-100 + lexlatin.com .mibanner1 +diariodevalderrueda.es.minibanner_content* + +cdn.com.do.mmc_ads_solo_escritorio! + show.news.mod.relatednewsS +diarioelinformante.com.ar +elnacional.com.do + +hoy.com.do.modal-backdrop + clima.com .mods-box! + eltiempo.es.mods-box-body) + eldebate.com.module-free-html-ads +rpp.pe.module__sponsor$ +exitosanoticias.pe +.module_mm( +elobservador.com.uy .modulo_publi. + +coches.net.mt-AdvertisingRoadblock-top" + +coches.net.mt-Display--topV + guiahoreca.clA.mx-auto.aspect-box.bg-primary.bg-opacity-10.overflow-hidden.my-1< +800.cl..mx-auto.aspect-box.bg-secondary.bg-opacity-10 + gamezfull.com .myButtonH +elsolnoticias.com.ar +hortanoticias.com.n2-section-smartslider3 +europa-agricola.es +via-mobilis.es.native% +elcomercio.com.ned-ad-dynamic: + infolibre.es + eldiario.es.news-sponsored-content— +elperiodicomediterraneo.com +elperiodicoextremadura.com +elperiodicodearagon.com +noticiasdegipuzkoa.eus +noticiasdenavarra.com +laopiniondemalaga.es +laopiniondemurcia.es +laopiniondezamora.es +diariodemallorca.es +noticiasdealava.eus +elcorreogallego.es +laopinioncoruna.es +diaridegirona.cat +diariocordoba.com +diariodeibiza.es +levante-emv.com +superdeporte.es +informacion.es +laprovincia.es + farodevigo.es + emporda.info + +regio7.cat + +deia.eus + +eldia.es +lne.es .no-baldomero" +adiscusion.com .noticia-ads% +adiscusion.com.noticia-banner„ +tarragonadigital.com +pallarsdigital.cat +naciodigital.cat + aguaita.cat + +pensem.cat + +rubitv.cat.nou-publi-cap-home$ + +nextpit.es.np-product-offers. +atlanticohoy.com.o-layout--top-banners³ +futbolcentroamerica.com +lapaginamillonaria.com +somosfanaticos.fans +juanbeisbol.com +juanfutbol.com + bolavip.com + dalealbo.cl + redgol.cl.odds-slider-widgetC + flashscore.co + flashscore.es + flashscore.pe .oddsWrapperJ +diarioestrategia.cl +elidealgallego.com +infodefensa.com.openx% + lasubasta.com.orbit-container+ +autoscout24.es.osa-as24-placeholder" + okdiario.com.outofpageHome' +contrapunto.com.sv .owl-carousel + fulltv.com.ar.p336-c + fulltv.com.ar.p336_2æ( +ruedasgordas.es.p78-adsContainer# + elheraldo.co.partner-slider8 +libertaddigital.com +libremercado.com .partners1 +elpuntavui.cat + leconomic.cat +.patrocini  +valoraanalitik.com.pauta& + canalrcn.com.pauta-barra-media + futbolred.com .pauta-bk% +valoraanalitik.com .pauta-cuad& + portafolio.co.pauta__billboard + +publico.es.pb-ads + zonatmo.com.pbk‚ +nombresdetubaby.com +planetaneperian.com +sombracycling.com +recetasmaria.com +tannyfashion.com +todomecanica.com +lectormanga.com +motorworten.com +worldmangas.com +panicmanga.com + otakuteca.com + vgrecipes.com + +anitoc.com.pbl# + chileautos.cl.peace-of-mind +espaebook2.com.perfbtn# + otakustv.com.pestana_footer + fulltv.com.ar.pie! + cronista.com .piecesponsor" + cronista.com.piecesponsor2 + laboyanos.com .piki-ads' + laoctava.com.pinno-ad-container6 +bernabeudigital.com + eltiempo.es .placeholder% + publinews.gt.posttakeoverlink* +cronica.com.ar.pre-home-banner-box2 +totbarcelona.cat + elmon.cat .precontentad + +prensa.com +.productos + +qmusica.tv .promoTop% + cifraclub.com + +cartv.es.pub + esdiario.com.pub-2 + formulatv.com.pub-btf• +elquehaydecierto.cl +elconcecuente.cl +elmagallanews.cl +elmorrocotudo.cl +elobservatodo.cl +elnaveghable.cl +elrancahuaso.cl +elrepuertero.cl +elmartutino.cl + elboyaldia.cl + elvacanudo.cl + elnortero.cl + elamaule.cl + laopinon.cl.pub-escritorio + formulatv.com.pub-mid + formulatv.com .pub-text + formulatv.com.pub-top + 0221.com.ar +.pub_begum + ceroacero.es .pubframe + esdiario.com .publi-footw +tarragonadigital.com +pallarsdigital.cat +naciodigital.cat + aguaita.cat + +rubitv.cat.publi-inter-portada + esdiario.com +.publi-topo +tarragonadigital.com +pallarsdigital.cat + aguaita.cat + +pensem.cat + +rubitv.cat.publi_interpagina1 +lawebdelprogramador.com.publi_robapaginasý +generacionuniversitaria.com.mx +tornquistdistrital.com.ar +mexicodesconocido.com.mx +areajugones.sport.es +estadiodeportivo.com +cinepremiere.com.mx +nupciasmagazine.com +lavozdealmeria.com +altonivel.com.mx +cronicabalear.es +emprendedor.com +meteored.com.ar +meteored.com.py +iberempleos.es +supercines.com + elpais.com.co + expansion.com + highxtar.com + neomotor.com + okdiario.com + 0221.com.ar + meteored.cl + meteored.mx + +tiempo.com + pulzo.com .publicidad( + fulltv.com.ar.publicidad-728-top+ +binoticias.com.publicidad-container/ + azarplus.com.publicidad-debajo-del-menu' +puntobiz.com.ar.publicidad-line/ + record.com.mx.publicidadBoxBanner300x75) +contextotucuman.com.publicidadTop# + 0221.com.ar.publicidad_cont( +eldesmarque.com.publicidad_marcaN +lesportiudecatalunya.cat +elpuntavui.cat + leconomic.cat .publicitat + alfabeta.net.publimg/ +argenports.com.publis300-ajax-container( +argenports.com.publis600-wrapper( +argenports.com.publis900-wrapper + +semana.com .publish-box' +tornquistdistrital.com.ar.publx* +noticiasformosa.com.ar .pum-content- +psicologiaymente.com.py-4.text-center& +eleconomista.es.railContainer1& +eleconomista.es.railContainer3= +ciclismoatual.com + tenisaldia.es.raw-html-component] +mexicodesconocido.com.mx +altonivel.com.mx +emprendedor.com + +nupcias.mx.rayabtn + ceroacero.es .rbbox-odds1 + fotocasa.es.re-AdvertisingDominanceNativeè‘ +trendenciashombre.com +directoalpaladar.com +motorpasion.com.mx +motorpasion.com + vidaextra.com + +xataka.com.related-native-item: +psicologiaymente.com.relative.flex.h-full.flex-col/ +elconfidencial.com.revUnit--placeholder$ +hoylosangeles.com .revcontent +diariodenavarra.es.roba$ + elplural.com.row-sky-banners" + rumbonews.com .rumbo-widget3 +cotilleando.com + burbuja.info .samCodeUnit  + +ole.com.ar.sc-905ccbfc-0  + +ole.com.ar.sc-905ccbfc-1  + +ole.com.ar.sc-905ccbfc-5  + +ole.com.ar.sc-905ccbfc-7 +sdpnoticias.com.sdp-ad& + lasexta.com.section-aside-roba+ +lapoliticaonline.com.section-banner0 + pelispedia.la + cuevana.pro .section-cpa# +meganoticias.cl .section-dfp~ +trendenciashombre.com +directoalpaladar.com + vidaextra.com + xataka.com.mx + +xataka.com.section-native-container& + depor.com.separator__sponsored/ +seriesturcas.gratis.serie-optimanetwork) + forbes.com.mx.set__ads--componenti +diarioelnorte.com.ar +portalpuentealto.cl +lagaceta.com.ec#.sgpb-popup-dialog-main-div-wrapperB +diarioelnorte.com.ar +lagaceta.com.ec.sgpb-popup-overlay0 +portalpuentealto.cl.sgpb-theme-1-overlay# +cooljuegos.com .sidebar-game0 +motor.elpais.com.site-header__publicidad( + emporda.info.sk--branded-contentÕ +elperiodicomediterraneo.com +elperiodicoextremadura.com +elperiodicodearagon.com +laopiniondemalaga.es +laopiniondemurcia.es +laopiniondezamora.es +diariodemallorca.es +elcorreogallego.es +laopinioncoruna.es +diaridegirona.cat +diariocordoba.com +diariodeibiza.es +levante-emv.com +superdeporte.es +elcorreoweb.es +informacion.es +laprovincia.es + farodevigo.es + emporda.info + +regio7.cat + +eldia.es +lne.es.sk--offered-by, +informacion.es.sk--project-with-logo! + +eldia.es.sk--sponsored-by! + informador.mx .sl_caliente! + soychile.cl.slide__banner) +horadeopinion.com.ar .slider-34391 + +prensa.com .sliderPrensa +elotrolado.net .sliderxl  + abchoy.com.ar .sm-wrapper+ + +nacion.com + lateja.cr .small-promo + latercera.com.spm< +contentlab-publimetro.com +capitalmedia.mx.sponsor7 +maximaonline.com.ar +hispanidad.com +.sponsored, + falabella.com.sponsored-display-left+ + falabella.com.sponsored-display-pdp7 +elobservador.com.uy +losandes.com.ar .sponsors) +exitosanoticias.pe.statics_module! +eldiarioalerta.com.sticky5 + +prensa.com#.sticky-box[style="height: 800px;"]5 + +prensa.com#.sticky-box[style="height: 950px;"]D +derechadiario.com.ar +e-noticies.cat.stickyFooterContainerQ +profesionalreview.com +bcnoticias.com.co +cadenaoh.com.ar .stream-item0 +profesionalreview.com.stream-item-widget& +elindependiente.com .sub_header. + elpais.com.sv.supsystic-slider-wrapper) +laprensani.com.tads-header-mobile  + +prensa.com.tagPublicidad! + publinews.gt .takeoverlink# + azarplus.com.td-all-devicesD +eldiariodeguayana.com.ve +aldeaviral.com.td-header-sp-recs + 91dat.com.mx.tdi_100 + 91dat.com.mx.tdi_106! + lazqro.com.mx .tdi_109_2db + 91dat.com.mx.tdi_110 + elsolnews.com.tdi_132 + +miafm.mx .tdi_16_363! + lazqro.com.mx .tdi_175_288š) +udlaspalmas.net.tdi_22 + mundour.com.tdi_307  + lazqro.com.mx .tdi_32_9eb + rrnoticias.mx.tdi_50  + lazqro.com.mx .tdi_51_c22 + rrnoticias.mx.tdi_54 + topmusic.mx.tdi_62 + topmusic.mx.tdi_64 + rrnoticias.mx.tdi_67+ + rrnoticias.mx + lajefarr.mx.tdi_70) + lajefarr.mx + topmusic.mx.tdi_71 + lajefarr.mx.tdi_78# +diarioelnorte.com.ar.tdi_81 + lajefarr.mx.tdi_89 + 91dat.com.mx.tdi_95  + lazqro.com.mx .tdi_99_684% +ffcv.es.testimonials-partners2 +resultadostris.com.text-center.mt-md.mb-md< +mundodeportivo.com".text-center[style="height:300px"]< +mundodeportivo.com".text-center[style="height:600px"]( +diariocolatino.com.text-html-boxA +marcadegol.com+.textwidget a[href^="https://ar.puma.com/"]? + futuro360.com + cnnchile.com + adnradio.cl .the-banner# + +prensa.com.titulares-iframe$ +noticias.mitelefe.com.tlf-ad5 +theobjective.com.tno-blocks-banner-horizontal" +diariolibre.com .top-banner +elsalvador.com.top-bar! +larepublica.co .top_banner* +nickelodeonplus.online .topads-wrap' +aristeguinoticias.com +.topleader' + autopista.es.transfer-container$ + turium.es.turium-advertising" + latinpress.es .u_1843050363 +encuentra24.com.uberB + expansion.com + +elmundo.es.ue-c-cover-content--is-branded¯ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl).ui-recommendations-list__container--pads¦ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl .ui-search-bottom-ads__container­ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl'.ui-search-sidebar-advertising__display£ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl.ui-search-sidebar-placements' + univision.com.uvs-ad-full-width + eltiempo.es .v-bannerF + elpotosi.net2.visible-md.visible-lg.img-responsive.center-blockI +leonoticias.com + laverdad.es + +ideal.es.voc-home-branded-naked/ +macrojuegos.com.w-full.h-\[600px\].my-5= +animalpolitico.com#.w-full.min-h-\[100px\].pt-\[48px\]  + +naiz.eus.w-openx-banners  +transfermarkt.es.werbung= +ppelverdadero.com.ec +elchavodel8tv.com .widget.HTML* +lanacion.com.ec.widget.widget_text6 + +tudn.com&.widget[data-widget-type="ListWidget"]J +beermagazine.net +recetasdepan.net.widget_aawp_widget_bestseller¼ +comidasespanolas.com +comidaschilenas.com +beermagazine.net +recetasdepan.net +thebeertimes.com +weedmagazine.net +cannabis420.cl + debosaber.cl.widget_aawp_widget_box8 +weedmagazine.net .widget_aawp_widget_new_releases* + gearnews.es.widget_adtag_rectangle/ +elciudadanoweb.com.widget_apsa_campaignX +grupormultimedio.com +horadeopinion.com.ar + lahora.com.ec.widget_custom_html* + rumbonews.com.widget_media_galleryÌ +diarioelregionaldelzulia.com +elperiodicodemonagas.com.ve +claridadpuertorico.com +diarioconurbano.com.ar +entornointeligente.com +laprensadecolorado.com +noticiasformosa.com.ar +diarioeltiempo.com.ve +diariovictoria.com.ar +noticiasenlineacr.com +elsolnoticias.com.ar +transponder1200.com +arribalanus.com.ar +elnuevogeorgia.com +grupometropoli.net +moracontenidos.com +viajareslapera.com +bcnoticias.com.co +diariotextual.com +gacetinmadrid.com +radiosucre.com.ec +barrigaverde.net +cronicasnews.com +berjadigital.es +lanacion.com.ec +webelpuente.com +cronica.com.ec +elsiglo.com.ve +larepublica.ec +realidadsm.com + naucher.com.widget_media_imagep +horadeopinion.com.ar +25digital.com.ar +festradio.com.ar +nacionpaisa.com.widget_metaslider_widget& +elperiodista.cl.widget_owjnimg) +elespecial.com.widget_simpleimage1 +latinopinionbaltimore.com.widget_sp_image( + gearnews.es.wp-affiliate-wrapperµ ` +enteratelatino.org +moracontenidos.com +lavozdemoron.es + +cultoro.es.wp-block-image& +lavozdemoron.es.wp-block-video' + canal-i.com.wpb_images_carousel) +expresodelacosta.cl.wpwbs_banners# +laarena.com.ar .wrapper-spotU +dedinero.com.mx +revistaclase.mx + elgrafico.mx.wrapper_box_interarticle_2# +naciodigital.cat .zona-ajbcn% +naciodigital.cat .zona-lacaixa/ +eldiariodelfindelmundo.com .zona_banners +elnuevoherald.com.zone  + lr21.com.uy .zone-adsense0 + +notife.com[class^="SectionAdvertising_"]4 + europafm.com + ondacero.es[data-type="ads"]0 + carrefour.es[id*="-sponsored_products-"]6 +walmart.com.mx [id*="SponsoredProductCarousel"]2 +puertocanarias.com[id^="block-publicidad"]5 +grantorrent.zip[onclick^="AbrirEnlaceStar('"]0 +cinelibreonline.coma > img[alt^="Ganar"]3 + manomano.es a[class*="sponsoredProductCard"]) +autosusados.cla[class^="Banner_"]4 +elperiodico.cata[href*="/empresa-de-l-any/"]% + kissfm.esa[href*="/linkout/"]A +metroecuador.com.ec + isabadell.cata[href*="://bit.ly/"]* + +animeid.tva[href*="leadzupc.com/"]) + forbes.pea[href^="/brand-voice/"]J +mediotiempo.com3a[href^="http://online.caliente.mx/promoRedirect?"]> +prensafutbol.cl'a[href^="http://www.futboldeculto.com"]2 +sunoticiero.neta[href^="https://amzn.eu/"]F +mejoresmodsminecraft.site%a[href^="https://bisecthosting.com/"]- + playdede.usa[href^="https://bit.ly/"]; +superluchas.com$a[href^="https://es.johnnybet.com/"]O +corepunk.online +mundommorpg.com%a[href^="https://get.surfshark.net/"]Z +contentlab-publimetro.com +capitalmedia.mx&a[href^="https://online.caliente.mx/"]; +comidaschilenas.com a[href^="https://paysuites.me/"]5 + artesacro.org a[href^="https://promomark.es/"]E +jerezcofrade.tv.a[href^="https://reservation.dish.co/widget/"]J +cinecalidad.gg + moviesdvdr.co#a[href^="https://startgaming.net/"]. + playdede.usa[href^="https://vario.tv"]@ + anisearch.es,a[href^="https://www.amazon."][href*="tag="]? + portalbici.es*a[href^="https://www.awin1.com/cread.php"]S + bikezona.com?a[href^="https://www.bikezona.com/util/redirect.asp?idbanner="]D +quepasamedia.com,a[href^="https://www.gymglish.com/partner/"]H + vergnula.com4a[href^="https://www.primevideo.com/"][href*="tag="]å + espn.com.ar + espn.com.co + espn.com.do + espn.com.ec + espn.com.gt + espn.com.mx + espn.com.pa + espn.com.pe + espn.com.uy + espn.com.ve + +espn.co.cr +espn.cl2a[href^="https://www.starplus.com"][href*="?cid="]1 + ellibero.cla[href^="https://www.vgs.cl/"]2 +promiedos.com.ara[href^="publicidad.php?"]G +radiopopular.com/a[onclick^="ga('send', 'event', 'Publicidad',"]4 + darkstone.es a[onclick^="return ad_redirect"]? +contextotucuman.com$a[rel="nofollow sponsored noopener"]_ +finanzasargy.comGa[target="_blank"][href^="https://accounts.binance.info/register?ref="]J +finanzasargy.com2a[target="_blank"][href^="https://ripio.go.link/"]$ +rionegro.com.ar ads-component* + lasexta.comaside[class^="mod-ad-"]4 +computerhoy.comdiv[class*="containerAdSlot"]2 +diariodecuyo.com.ardiv[class*="dfp-async"]. +americatv.com.pediv[class^="AdsSlot_"]- +autosusados.cldiv[class^="Autofact_"]7 +autosusados.cl!div[class^="InterestingSection_"]0 +computerhoy.comdiv[class^="ad-catfish_"]~ +computerhoy.20minutos.es +businessinsider.es +hobbyconsolas.com + autobild.es + +topgear.esdiv[class^="ad-slot_"]+ +elperiodic.comdiv[class^="adcont_"]´ +factoriadeficcion.com + niusdiario.es + telecinco.es + divinity.es + energytv.es + +cuatro.com + uppers.es + +bemad.es + +mtmad.es + +yasss.esdiv[class^="adsGroupTop"]± +factoriadeficcion.com + niusdiario.es + telecinco.es + divinity.es + energytv.es + +cuatro.com + uppers.es + +bemad.es + +mtmad.es + +yasss.esdiv[class^="ads__ad_"]: +elchapuzasinformatico.comdiv[class^="ads_single_"]ž: + locopelis.com + repelis.netdiv[class^="adsbutt_"]+ +cadenaoh.com.ardiv[class^="angwp_"]+ +verepeliculas.comdiv[class^="ano_"], +americateve.comdiv[class^="banner-"]¸ +factoriadeficcion.com + niusdiario.es + telecinco.es + divinity.es + energytv.es + +cuatro.com + uppers.es + +bemad.es + +mtmad.es + +yasss.esdiv[class^="cards__card_ad-"]i +diariocorreo.pe + elcomercio.pe + +gestion.pe + depor.com + +peru.comdiv[class^="content_gpt_"]> + mitele.es-div[class^="coreCarousel__advertisementBox-"]. +avisooportuno.mxdiv[class^="div-dfp-"]0 +eluniversal.com.mxdiv[class^="itemgpt_"]/ +liderendeportes.comdiv[class^="lider-"]' + formulatv.comdiv[class^="pub-"]z +comprobarbonoloto.es +liderendeportes.com +resultadostris.com + mundoplus.tv + cokitos.comdiv[class^="r89-"]@ +purochocolate.life +tumascota.lifediv[class^="tumas-"]) +huffingtonpost.esdiv[data-adtype]  + +musica.comdiv[data-fuse]Y +atresmedia.com +melodia-fm.com + antena3.com + lasexta.comdiv[data-mod="ads"]L +lasestrellas.tv + televisa.com%div[data-widget-type="ADVERTISEMENT"]F + univision.com + +tudn.com%div[data-widget-type="Advertisement"]& +eleconomista.esdiv[id^="300x"]& +eleconomista.esdiv[id^="728x"], +actualidadradio.comdiv[id^="actua-"]& + almomento.netdiv[id^="almom-"]) +eldesmarque.comdiv[id^="banner_"]% + beergeeks.cldiv[id^="beerg-"]' +cannabis420.cldiv[id^="canna-"]( + einforma.comdiv[id^="cls-slot-"]% + debosaber.cldiv[id^="debos-"]- +diarioelsalvador.comdiv[id^="diari-"]' +donostitik.comdiv[id^="donos-"]- +diariosanrafael.com.ardiv[id^="dsr-"]+ +durosa4pesetas.comdiv[id^="duros-"]* +elmercurio.com.ecdiv[id^="elmer-"]+ +enteratelatino.orgdiv[id^="enter-"]+ +generacionxbox.comdiv[id^="gener-"]% + horajaen.comdiv[id^="horaj-"]/ +elnacional.com.dodiv[id^="publicidad-"]; +ciudadredonda.org +prensalibre.comdiv[id^="r89-"]@ +capitalmexico.com.mx +reporteindigo.comdiv[id^="sas_"]) +weedmagazine.netdiv[id^="weedm-"]/ +mariskalrock.comdiv[id^="wmd-anuncio-"]2 + +perfil.com div[style*="min-height: 250px;"]? + +perfil.com + pulzo.com div[style*="min-height: 600px;"]C +todoblaugrana.com*div[style*="width: 300px; height: 250px;"]/ + futbolme.comdiv[style*="z-index: 9999"]U +resultados-futbol.com8div[style="height:200px;max-width: 840px;width: 840px;"]5 +neomotor.epe.esdiv[style="min-height: 700px"]1 + eltiempo.esdiv[style="min-height:250px;"]1 + eltiempo.esdiv[style="min-height:290px;"]d +16valvulas.com.arKdiv[style="text-align:center;margin:0;background-color:#29509d;width:100%"]K +tiempoar.com.ar +yapo.cl)div[style="width: 970px; height: 250px;"]: + animeflv.net&div[style="width:300px; height:250px"]/ + milenio.comdiv[style^="height: 300px;"]/ + milenio.comdiv[style^="height: 553px;"]6 +gamereactor.es div[style^="min-height: 600px;"]C +diariocritico.com*div[style^="width: 300px; height: 250px;"]C +diariocritico.com*div[style^="width: 300px; height: 600px;"]- + +perfil.comdiv[style^="width: 300px;"]D +mundodeportivo.com*div[style^="width: 990px; height: 251px;"]q +leercapitulo.comYiframe[style*="width: 100% !important; height: 170px !important; opacity: 1 !important;"]q +telenovelas-turcas.com.es + lectortmo.org + jkanime.net + +gnula.cc$iframe[style*="z-index: 2147483647"]“$ +"misseriesinolvidables.blogspot.comiiframe[style^="width: 100% !important; height: 95px !important; opacity: 1 !important; max-width: 420px"]% + dolarito.arimg[alt="Buenbit"]$ + eldiario.ecimg[alt="Promos"]+ + dolarito.arimg[alt="vitawallet.io"]•(% + dolarito.arimg[alt="wallbit"]. +diariodelaribera.netimg[alt^="Banner"]1 +elmercurioweb.comimg[alt^="banner-vert-"]6 + expansion.com!img[class="ue-c-widget__sponsor"]5 + laboyanos.com img[data-original-height^="300"]- +planbnoticias.com.arimg[height="200"]@ +planbnoticias.com.ar +ipsnoticias.netimg[height="250"]^ +lapampadiaxdia.com.ar +laredpampeana.com.ar +planbnoticias.com.arimg[height="300"]- +laredpampeana.com.arimg[height="304"]- +laredpampeana.com.arimg[height="705"]. +lapampadiaxdia.com.arimg[height="728"]' +pescare.com.arimg[height="735"]& +segoviaudaz.esimg[height="90"]1 + +expreso.ecimg[style*="max-width: 970px;"]\ +libroscristianosgratis.net +hortanoticias.com +parlamentario.comimg[width="250"]Õ +laprensadecolorado.com +horadeopinion.com.ar +revistajaraysedal.es +conbasesllenas.com +laprensalatina.com +atacamaenlinea.cl +cinemascomics.com +diariotextual.com +hortanoticias.com +parlamentario.com +apuestasfree.com +beermagazine.net +eldiarioplus.com +lacapitalmdp.com +thebeertimes.com +lapanteradc.com +socialetic.com + informe21.com + beergeeks.cl + mundo724.com + diarioya.es + atomix.vg + +pcpro.esimg[width="300"]2 + highxtar.comimg[width="300"][height="600"], +revistajaraysedal.esimg[width="324"], +revistajaraysedal.esimg[width="325"]$ + mundo724.comimg[width="330"]C +planbnoticias.com.ar +transponder1200.comimg[width="336"]( +eldiarioplus.comimg[width="344"]* +laprensalatina.comimg[width="345"]! + pregon.meimg[width="350"]: +laprensademn.com +vidaysabor.comimg[width="385"]< +noticiasformosa.com.arimg[width="400"][height="100"]) +elmercurioweb.comimg[width="450"]( +apuestasfree.comimg[width="468"]< +elmercurioweb.com +mododeporte.comimg[width="500"]' +lapanteradc.comimg[width="600"]7 +hoyenbogota.com + mundo724.comimg[width="720"]˜ +villavicenciodiaadia.com +transponder1200.com +laprensalatina.com +hortanoticias.com +laprensademn.com +vidaysabor.comimg[width="728"]& +marcadegol.comimg[width="750"]( +eldiarioplus.comimg[width="780"]F +laprensadecolorado.com +periodicoelsolpr.comimg[width="800"]- +laverdaddemonagas.comimg[width="900"]3 + radiocarve.uyimg[width="970"][height="120"]= +elmercurioweb.com +eldiarioplus.comimg[width="980"]  +lagaceta.com.ec rs-slidesF +forocoches.com0section[style="min-width: 300px; height: 640px"]] +dobleamarilla.com.ar +dataclave.com.ar +rosarioplus.com + eqsnotas.com +tadevel-ad6 + +cine.com&td[style^="height:90px; width:970px;"] + +atrapalo.* .mega-advert + +atrapalo.* .robahomeA +forocoches.com+#sidebar > div > section:has(.fixed_adslot)F + elpais.com.uy1.Page-above.loaded:has(div[class^="GoogleDfpAd"])4 + elpais.com.uy.PromoBasic:has(.Promo-sponsor): + meneame.net'.ad-roba:has(a[href*="&utm_campaign="])A + +chocale.cl/.cnvs-block-section:has(#contenido-patrocinado)i + +clarin.comW.column > div[class] > div[class^="sc-"]:has(div[class^="sc-"] > div[id^="div-gpt-ad"])6 + falabella.com!.grid-pod:has(.patrocinado-title)U +hdfulldominios.com;.hidden.md\:block:has(a[href^="https://winpot-casino.org"])D +leroymerlin.es..l-resultsList__item:has(.kl-blade--sponsored)J + eltiempo.com6.main-article-container-patr:has(.contenido-comercial)f +eldiariony.com + laopinion.com + +laraza.com1.module--external:has-text(Contenido Patrocinado)E +leroymerlin.es/.product-thumbnail:has(.o-thumbnail__sponsored)R + atlantico.net + laregion.es..recirculation:has-text(Contenido patrocinado)Z + expansion.comE.ue-l-article__secondary-column-item.ue-l-article--grow:has(.ue-c-ad)Ð +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.clJ.ui-recommendations-carousel-wrapper-ref:has(a[rel="nofollow, sponsored"])J +super.walmart.com.mx.[style^="will-change"]:has(#ITEM-BuyBoxAd-top)c +hobbyconsolas.comJdiv[class^="embed-card_card_"]:has(a[href^="http://disneyplus.bn5x.net/"])A + +clarin.com/div[class^="sc-"]:has( > div[id^="div-gpt-ad"])Æ +mercadolibre.com.ar +mercadolibre.com.bo +mercadolibre.com.co +mercadolibre.com.do +mercadolibre.com.ec +mercadolibre.com.gt +mercadolibre.com.hn +mercadolibre.com.mx +mercadolibre.com.ni +mercadolibre.com.pa +mercadolibre.com.pe +mercadolibre.com.py +mercadolibre.com.sv +mercadolibre.com.uy +mercadolibre.com.ve +mercadolibre.co.cr +mercadolibre.cl@li.ui-search-layout__item:has(div.ui-search-item__pub-container)M + +mil21.es=td[class*="id_publi_"]:has(a[href^="https://www.amazon.es/"])è +Kÿï08@R;as.com#?#.s.s--v:-abp-has(span:-abp-contains(OFRECIDO POR)) +]ÿï08@RMdiarios-argentinos.com#?#.wide-content:-abp-has(h1:-abp-contains(Publicidad)) +gÿï08@RWelespectador.com#?#.Block:-abp-has(.Title_section:-abp-contains(Contenido patrocinado)) +mÿï08@R]elespectador.com#?#.Card:-abp-has(.Card-Section.Section:-abp-contains(Contenido patrocinado)) +Nÿï08@R>elquindiano.com,laboyanos.com#?#span:-abp-contains(PUBLICIDAD) +rÿï08@Rbeltiempo.com#?#.main-article-container-patr:-abp-has(.mas-contenido:-abp-contains(Más Contenido)) +Uÿï08@REfalabella.com#?#.products-carousel-wrapper:-abp-contains(Patrocinado) +;ÿï08@R+hoy.com.do#?#span:-abp-contains(Publicidad) +Wÿï08@RGjuegosdiarios.com#?#.display-ads:-abp-has(>span:-abp-contains(Anuncio)) +_ÿï08@ROlarepublica.co#?#.row.H_Img_V_Title_Center.mb-3:has-text(Contenido Patrocinado) +{ÿï08@Rklavoz.com.ar#?#.clearfix.list-cards.mb1.section-ciudadanos:-abp-has(.title:-abp-contains(Espacio de marca)) +Rÿï08@RBmundo724.com#?#.et_pb_column:-abp-has(p:-abp-contains(Publicidad)) +Vÿï08@RFperiodismokosher.com.ar#?#.widget-content:-abp-has(a[target="_blank"]) +Kÿï08@R;photocall.tv#?#.dropdown:-abp-has(label:-abp-contains(VPN)) +]ÿï08@RMprensa.com#?#.balcon.borderBottomDesktop:has(span:-abp-contains(patrocinado)) +Qÿï08@RArecetasfacilescocina.com#?#section > h3:-abp-contains(Publicidad) +kÿï08@R[semana.com#?#.section:-abp-has(.section-subtitle:-abp-contains(Contenido en colaboración)) +cÿï08@RStheobjective.com#?#.tno-article-block:-abp-has(span:-abp-contains(Branded content)) +\ÿï08@RLwalmart.com.mx#?#[data-testid="item-stack"] > div:-abp-contains(Patrocinado) +Tÿï08@RDyorokobu.es#?#.quicklink_w100:-abp-has(.publi-tag:-abp-contains(AD)) +eÿï08@RUmercadolibre.*#?#.ui-recommendations-carousel-wrapper-ref:-abp-contains(Promocionado)F + cuencanews.es1td[class*="id_publi_"]:has(img[alt="publicidad"])L +elcomercio.pe#?5lateral:-abp-has(span:-abp-contains(Auspiciado por:))X + mediamarkt.esC[data-test="mms-product-card"]:has([data-test="mms-plp-presented"]): +mercadolibre.*$.andes-card:has([href*="brand_ads"])R +mercadolibre.*<.ui-search-layout__item:has(.poly-component__ads-promotions)( +ahorradororata.com#banner_footer) +paxinasgalegas.es#banner_superior& +tresubresdobles.com #bannerbajo$ +laindustria.pe#bannercentral% +laindustria.pe#bannercentral2+ +manerasdevivir.com#banners_cabecera+ +paxinasgalegas.es#banners_laterales  +laindustria.pe +#bannertop& +hsbnoticias.com#block-block-421 +diaadia.com.pa#block-especialclarodesktop@ +hsbnoticias.com)#block-infoblocks-infoblocks-fixedsize-17@ +hsbnoticias.com)#block-infoblocks-infoblocks-fixedsize-18? +hsbnoticias.com(#block-infoblocks-infoblocks-fixedsize-5? +hsbnoticias.com(#block-infoblocks-infoblocks-fixedsize-6? +hsbnoticias.com(#block-infoblocks-infoblocks-fixedsize-77 + informe21.com"#block-views-diosuniversal-block-1" +telesemana.com #blog-banner" +ushuaia24.com.ar +#bloque-11* +wordmagicsoft.com#bt_aws_ad_slot_1* +rinconforero.mforos.com #by_hawkers* + easy.com.ar#carruselMarcasBlaisten+ + artesacro.org#ccr-sidebar-add-place" +montevideo.com.uy #conectab$ + henaojara.com#custom_html-120 +laopinionsannicolas.com.ar#custom_html-3& +futbolhoy.com.ar#custom_html-4( +elcucodigital.com#custom_html-53( +elcucodigital.com#custom_html-54) +maracodigital.net#dialogintrusivo" +forocoches.com #div-300x250. +forocoches.com#div-336x280_foro_footer2 +forocoches.com#div-336x280_respuesta_medio! +forocoches.com #div-970x90+ +forocoches.com#div-970x90_respuesta1 +forocoches.com#div-970x90_respuesta_final8 +abcsaladillo.com.ar#div-abc_1024x100_arriba_logo + laveu.cat #divTopBanner + mega1080.com#enlaŸ$ +capodeportes.net #floatLayer2' +25digital.com.ar#footer-widgets +tvenganchado.com#g + gente.com.ar #generico$ +telesemana.com#header-banner( +telesemana.com#highlights-banner. +realbetisbalompie.es#horizotal-banners# + indicepr.com#ifr_widget_salÞ +tribunavalladolid.com +tribunasalamanca.com +tribunapalencia.com +tribunasegovia.com +tribunaburgos.com +tribunazamora.com +tribunaavila.com +tribunasoria.com +tribunaleon.com#interstitial_container +supremacy1914.es#kbg + +freepik.es #layer_coupon  +diariocronica.com.ar#lik$ +libertaddigital.com #mega-atf% + +elmundo.es#modulo_buscador_sv# + cadena3.com#mundo-descuento# +juanbustos.com #mvp-head-top$ + megaserie.me#newlayercontent +forocoches.com#notices) + +dle.rae.es#opciones > #patrocinio# +eleconomista.es #progressBar& +imperiodefamosas.com +#publi2One* +tiendeo.com.ar#publiRightContainer# + animebum.net#publicidad-nas! +naciodigital.cat #publicos( +naciodigital.cat#publientrenotis' +elcucodigital.com#publitopfondo" +ehowenespanol.com #radlinks* +realbetisbalompie.es#right-banners* +noticias.juridicas.com #sc-brandday +noticias3d.com#skin* +noticiasmallorca.es#slider-wrapper$ +todoblaugrana.com #slimbanner + bandaancha.eu#spBx + labsk.net #sp_block_15 + labsk.net #sp_block_22 + abs0rb.me#stationary-ad- +pagina12.com.ar#sticky-banner-article0 +noticiaslasflores.com.ar#swiffycontainer! + elheraldo.hn #taboola_nota) +comodorodeportes.gov.ar +#text-1000) +comodorodeportes.gov.ar +#text-1001 + +kiosco.net#text-12" +misionesonline.net#text-144 +misionesonline.net +emprendices.co#text-15" +misionesonline.net#text-165 +misionesonline.net +jerezcofrade.tv#text-17" +misionesonline.net#text-19" +misionesonline.net#text-20" +misionesonline.net#text-21" +misionesonline.net#text-22' +comodorodeportes.gov.ar#text-251 +smnoticias.info +smnoticias.com#text-52 +telesemana.com#text-69+ +livenumetal.es#text-7 > .textwidget + irispress.es#text-72 +telesemana.com#text-86 +telesemana.com#text-87( +comodorodeportes.gov.ar #text-999+ +elcolombiano.com#tiquetesMasBaratos +chathispano.com#top + ecuavisa.com#topbar + dinostream.pw#total + dinostream.pw#total2 + dinostream.pw#total3¼" +ramenparados.com +#wallpaper  + burbuja.info #wfg_ad-LDB1  + burbuja.info #wfg_ad-LDB2  + burbuja.info #wfg_ad-MPU1  + burbuja.info #wfg_ad-MPU23 +mundodeportivo.com#widget-mdcribeo-loultimo+ +realbetisbalompie.es#widget_banners) +businesscol.com#widget_sp_image-2% +misionescuatro.com #wrapper-20% +misionescuatro.com #wrapper-65$ +misionescuatro.com +#wrapper-7  + +elblog.com#z_pub_inf_new  + +elblog.com#z_pub_sup_new + reforma.com #zonaavisos' + informe21.com#zone-user-wrapper; +sahagundigital.com +madridpress.com.BANNER-IMAGES( +diariodelalinea.es.BANNER_COLUMNI +marketingregistrado.com +diariolagrada.com + +prensa.com.Banner- +guadairainformacion.com.Banner300x100( +juegosjuegos.com.Banners-lateral! +hipertextual.com .M50B--md# +buscamultas.com .TableWidget* +practisistemas.com.Txt_PROMOCIONES* +practisistemas.com.Txt_Promociones) +practisistemas.com.Txt_promoclaro, +practisistemas.com.Txt_promomovistar( +practisistemas.com.Txt_promotigo$ +las4esquinas.com ._ning_inner + mediavida.com._p-ft + mediavida.com._p-tp +seriesgrey.com.a728! + marca.com.ad-item-bt-cont! +elpatagonico.com .ad02-objJ +costacadizcomunicacion.es +smnoticias.info +smnoticias.com.ad2- +smnoticias.info +smnoticias.com.ad3- +smnoticias.info +smnoticias.com.ad4- +smnoticias.info +smnoticias.com.ad5- +smnoticias.info +smnoticias.com.ad6# + televisa.com.ad_space_large + hoyaragon.es.addg +lavozdegalicia.es.adpos + +elblog.com .ads-superior# + pelisplay.co.ads_url_insert% + forobeta.com.adshare_belownav& + forobeta.com.adshare_firstpost% + forobeta.com.adshare_lastpost + +juegos.com.advert€ +periodistadigital.com +tribunavalladolid.com +tribunasalamanca.com +tribunapalencia.com +tribunasegovia.com +tribunaburgos.com +tribunazamora.com +realovirtual.com +tribunaavila.com +tribunasoria.com +tribunaleon.com .advertising% + diarioadn.co.advertising-news + vibbo.com +.afs-block + htcmania.com +.afterlogo + jugarbet.com .ai-dynamic +seguimiento.co.anpub  + educaplay.com .anuncioAlt + androidpit.es +.appSlider0 +planetabocajuniors.com.ar.article-banner( +larepublica.pe.atm-banner-middle' +larepublica.pe.atm-banner-strip% +larepublica.pe.atm-banner-top% +costacadizcomunicacion.es.b-2  + cadena3.com .baner300x250  + cadena3.com .baner630x250 + cadena3.com .baner960x50. + cadena3.com.baners-medio-nota-ampliada“% +eleconomista.es.bankia-cuerdaL +castellonplaza.com +valenciaplaza.com +alicanteplaza.es .banner--' +hipertextual.com.banner--evento- +castellonplaza.com.banner--megabanner + +elonce.com .banner-a* +misionescuatro.com.banner-ad-not-1, +misionescuatro.com.banner-ad-not-top  + adnradio.cl .banner-ancho& + adnradio.cl.banner-ancho-movil + +elonce.com .banner-b> +argentinavende.com +cordobavende.com.banner-bilboard + +elonce.com .banner-c! + +capital.cl.banner-capital + +elonce.com .banner-d! +750.am.banner-desktop-300 + +elonce.com .banner-e + +elonce.com .banner-f + +elonce.com .banner-g* + rewisor.com + +elonce.com .banner-h* +abcsaladillo.com.ar.banner-lateral# + cronista.com.banner-revista# +iprofesional.com .banner300x( +tottarragona.cat.bannerContainer + gente.com.ar .bannerSide+ +miltorrents.com.banner_detail_files) +miltorrents.com.banner_detail_top# + azarplus.com.bannerfijodcha$ + azarplus.com.bannerfijoizda2# +elliberal.com.ar .bannernota$ +elliberal.com.ar .bannernota2$ +elliberal.com.ar .bannernota3( +iprofesional.com.bannerpremiumnh0 +planetabocajuniors.com.ar.banners-rotate) + +180.com.uy.banners-side-container& +tiemposur.com.ar.banners_flash# + azarplus.com.bannerskinhome( +noticierodigital.com .bannerspace/ + azarplus.com.bannersuperiorhomebajomenu + gente.com.ar .bannnerTop) + republica.com.barra-megabanner-tp$ +diariolalupa.es .baterybanner + +tumomo.com .bderecho +ebay.es.beta-placement +juegosjuegos.ws.bfbc + +zooplus.es +.bg-banner + +tumomo.com .bizquierdo + informe21.com +.block-100 + informe21.com +.block-101 + informe21.com +.block-106 + informe21.com +.block-111 + informe21.com +.block-112 + informe21.com .block-87 + informe21.com .block-95% +vix.com.block-crvt-adbtgmedia2 +planetabocajuniors.com.ar.bloque-secondary# +mundodeportivo.com .bolarosa + +clarin.com.box-adv +lavanguardia.com.box900  + +emol.com.bt_publicar_ecn' +peliculasaudiolatino.com.btnads' +racocatala.cat.caixa-publicitat) +parlamentario.com.caja-banner-990' +eleconomista.es.caja-publi-port+ +diariocostadelsol.com.caja_bannersVý<( +&estadiodeportivo.whitelabel.kelisto.es.car-insurance +noticiasdel6.com.cc3% +cienradios.com.cienradios-ads* +autoscout24.es.cl-billboad-wrapper + lavoz.com.ar +.clublavoz + marca.com.codere" +force-download.es .col-sm-2  + renfe.com.comprabilletes# + cronista.com.content-banner& +inmodiario.com.content-pub-top/ +elcolombiano.com.contentBannerIntelecto% +slimdownload.co.cssanimations) +lavanguardia.com.div-patrocinado5) +maracodigital.net.divpublicidades" +diariodesevilla.es.ePubli1 + elcomercio.pe.ec-club +eldeber.com.bo.ed-ads% + cronista.com.entry-box-banner' +elespectador.com.external-logos + tokyvideo.com.fan1 +planetabocajuniors.com.ar.featured-banner6( +&estadiodeportivo.whitelabel.kelisto.es.finance# +cronica.com.ar .fixed-banner$ + marca.com.flex-b-promociones& + cifraclub.com.floatingBottomAd4 +loteriasmundiales.com.ar.fondo_column_publi2" +25digital.com.ar +.fp-slider* +elcucodigital.com.fullwidthabanner3 +elcucodigital.com.fullwidthbanner-container. +diariodepasion.es.fusion-header-banner +diarioronda.es.g-dyn + aptitus.com .g-eplanning +yucatan.com.mx .g1-delta +macrojuegos.com.gad$ + +juegos.com.game-page-sidebar! +ehowenespanol.com.gpt_300* + cuevana3.rip.grid.desk-8.alpha > p$ + +ondaluz.tv.grid_12 > .grid_4  +tallasgrandes.es.grid_24 + fichajes.com.gtag& +ramenparados.com.head-wrap-out9 +loventine.com.ar + loventine.es.header_publicity + peru21.pe.hiraoka1 +emprendices.co.homepage-widget > #text-16 + marfanta.com +.ib-ad-img# + tokyvideo.com.intensive-add + somosxbox.com.it-ad# + somosxbox.com.it-ad-wrapper + jawcloud.co.jawban# + aulafacil.com.jlm-ad-videoo) +lanusnoticias.com.ar .lanus-widget# +noticiasmallorca.es.lateral* +ehowenespanol.com.leaderboard-wrap + infojobs.net .lecourse" +eldeber.com.bo .leftSidebar9 +loventine.com.ar + loventine.es.link-ads-content4 +llanosietedias.com.llano-antes-del-contenido* +llanosietedias.com.llano-contenido% +reporteindigo.com .loading-add +rpp.pe .logo-min% +lavanguardia.com .lv-publi-boxV +paginasblancas.com.ar +paginasblancas.com.pe + +blancas.cl.m-pod-promo-image* +maracodigital.net.margenpublicidad& +horadeopinion.com.ar +.ml-sliderâ" +lavozdegalicia.es .mujerhoy' + elheraldo.hn.multimedia_taboola* +hsbnoticias.com.node-advertisement& +pdindustriales.com.ar .ofertas2! + +elmundo.es.other-services# +mariosegura.com .owl-example$ + +olx.com.ar.partnerships-view/ +corrienteshoy.com + chacohoy.com.pasli, + eltiempo.com.patrocinador-contenedor% + infobae.com.pb-f-utilities-ad& +peliculasaudiolatino.com.pfake& +casinonewsdaily.es .popup-promo? +infoplatense.com.ar +elchubut.com.ar + eldia.com.ppp1 +noticiasparamunicipios.com.prefix-adlabel* +deportes.televisa.com .prime-banner$ + lavoz.com.ar.producto-tienda + +rumbo.es .promo262x90" + +elblog.com.pub_lat1_father" + +elblog.com.pub_lat2_father" + +elblog.com.pub_lat3_father+ +diariodeavisos.elespanol.com.pubbox + tiempo.com.mx.publi-4 + tiempo.com.mx.publi-5 + tiempo.com.mx.publi-6$ +mundodeportivo.com +.publi-box+ +tot-hospitalet.cat.publi-horizontal' +elsaltodiario.com.publi-lateral1 +paginasamarillas.es.publi-sidebar-listado' +brujuladigital.net .publicidad-l- +elretratodehoy.com.ar.publicidad_nota, +tot-hospitalet.cat.publicitat-banner2 +loventine.com.ar + loventine.es +.publicity +noticiasdel6.com.publii +as.com.qtcd_pt +as.com.qtcd_wt0 +salpimenta.com.ar.quadro-ads-widget-1col& + televisa.com.rapid_banner_home) + televisa.com.rapid_banner_sidebar/ + planv.com.ec.region-pv1-superior-amplia# +eldeber.com.bo .rightSidebar# + laveu.cat.row-publi-portada% +contextoganadero.com .rterightF +seriesanimadas.net,.section-center > .BoxContent:nth-of-type(2)E +seriesanimadas.net+.section-right > .BoxContent:nth-of-type(2)# +sevillainfo.es .sevil-widget7 +cuyonoticias.com.sidebar > #text-html-widget-11?! +novelasromanticash.blogspot.com.sidebar > .widget.Image) +diariocorreo.pe.sidebar-zonahogar% +zigzagdigital.com .slidebanner# + infojobs.net.slotbanner-top +parentesis.com.spaceQ +elobservador.com.uy +elliberal.com.ar + cronista.com +rpp.pe.sponsor& +lacapitalmdp.com.sponsor_stats + laveu.cat .spotPortada* +diariolarepublica.com.ar +.st-bannerC +periodicoelnazareno.es +tribunamaresme.com.td-all-devices2 +noticiasdelavilla.net.td-anuncio-contenido1 +noticiasdelavilla.net.td-anuncio-superior& + lifeder.com.td-ss-main-sidebar+ +hispanicpost.com.td-visible-desktop% +diarioconurbano.com.ar.tdi_36= +elbierzodigital.com +villavonoticias.com .textwidget3 + henaojara.com.textwidget.custom-html-widget + gameflare.com.timerÐ& + hoyaragon.es.titulo-publicidad# +theobjective.com .tno-banner + elpopular.mx .todopuebla + elpopular.mx +.tp-centro + magisnet.com.trevda) +diarioresumen.com.ar .tronco--init% +seriesturcas.gratis +.ver-ahora% +diarionoticias.com.ar.visable! +wago.io.wago-ad-container + neoauto.com .widescreen& + republica.com.widget-sdb-publi9 + republica.com$.widget-widget_this_theme_publi_textM" + reconquistanoticias.blogspot.com +ladefensadigital.com .widget.Image< +invertirenbolsa.mx +cafexmedio.com.ar .widget_block* +st1.idealista.com.widget_idealistaO +trincheraonline.com +pamplonaactual.com +cafevirtual.cl .widget_text. +jerezcofrade.tv.widget_ti_image_banner8 +mariosegura.com + miradiols.cl.wpb_single_image& +hipertextual.com.wrapperBannero +gettyimages.esY[href="http://espanol.istockphoto.com/?esource=gi_es_home_3pack_istock_3"] > .promo-hover4 +ecosdelcombeima.com[href^="https://bit.ly/"]< +ecosdelcombeima.com![href^="https://velotax.com.co/"]@ +diaridesabadell.com +diarideterrassa.com[id^="diari-"]) +lebrijadigital.es[id^="djslider"]# + huelva24.com[id^=detection]H +va6.thand.info2[src="http://va6.thand.info/0hsfy957uswi2cgypg23"]& +pelis24.gratisa[class^="fasc"]% +pivigames.bloga[href*=".php"]- +inmodiario.coma[href*="/ads.php?id="]4 +foropolicia.esa[href*="/publicidad.php?id="]> + teknofilo.com)a[href*="://clk.tradedoubler.com/click?"]. + htcmania.coma[href*="_banner.php?id="], + irispress.esa[href*="caixabank.es/"]- + mundoplus.tva[href*="clicktag_promo"]4 + irispress.es a[href*="comprometidoscon.org/"]O +va6.thand.info9a[href*="http://www.physoi.eu/script/redirect.php?url=*"]) + +juegos.coma[href*="smarturl.it/"]1 + playpaste.coma[href*="wg-aff.com/click?"]E +diariodelaribera.org)a[href="http://castillafloristeria.com/"]E +diariodelaribera.org)a[href="http://electrosanzhermanos.com/"]� +noticiasdelmundo.orgta[href="http://ganadineroconencuestas.com/dinero_flow/?webform=*&c=&s2s=*&pubid=*&subid=&medio=*&vendor=*&context="]4 +forocoches.coma[href="http://goo.gl/NDrfcW"]Q + +180.com.uy?a[href="http://www.180.com.uy/banner?ID=857&CODE=portal.index"]> +elsiglodetorreon.com.mxa[href="http://www.ayojon.mx/"]8 + +ldu.com.ec&a[href="http://www.herbalife.com.ec/"]B + +ole.com.ar0a[href="https://www.facebook.com/SchneiderARG/"]G + +ole.com.ar5a[href="https://www.youtube.com/watch?v=IZPtel51MlA"]? +noticiacristiana.com#a[href='http://iglesiasegura.com/']= + teknofilo.com(a[href^="//clk.tradedoubler.com/click?"]1 +microsiervos.coma[href^="http://bit.ly/"]? +mastercoria.com(a[href^="https://alertlogsemployer.com"]5 +zigzagdigital.coma[href^="https://beone.es/"]1 +pivigames.bloga[href^="https://bstk.me/"]8 +pelispunto.net"a[href^="https://datingnow.life/"]7 +actualarganda.coma[href^="https://geriasa.es/"]7 + nocensor.sbs#a[href^="https://hacktorrent.net/"]E +blog-peliculas.com+a[href^="https://innyweakela.co/redirect?"]> +actualarganda.com%a[href^="https://karting-rivas.com/"]X +noticiasparamunicipios.com6a[href^="https://noticiasparamunicipios.com/linkout/"]P +desarrollowp.com +microsiervos.com + supercpps.coma[rel*="sponsored"]) + oversos.comdiv[aria-label="QODE"]3 +portalfruticola.comdiv[class*="banner-set"]H! +novelasromanticash.blogspot.com!div[class^="fixed-"][class$="Sd"]) + volkgames.comdiv[class^="pauta_"]Ä,* + kiwilimon.comdiv[class^="pubcaja"]2 +tudiscovery.comdiv[data-testid="test-ads"]- +chatytvgratishd.mediv[id^="cedvtoj-"]A +sahagundigital.com +madridpress.comdiv[id^="detection"]% + tutiempo.netdiv[id^="fab-on"]K" + reconquistanoticias.blogspot.com#div[style*="background-image: url"]’ + inkagames.com}div[style=" border:1px solid; background-color:#FFF; width:1220px; margin-left:auto; margin-right:auto; padding-bottom:10px"]^ +nuevamujer.comHdiv[style="background-color: #E6E6E6; padding: 2px; text-align: center"]Z +monografias.comCdiv[style="background-color:#FFF;margin-bottom:10px;height:250px;"]� +argentinavende.com +cordobavende.comSdiv[style="float:left;width:970px;height:90px;background: #eee; margin-right:10px"]f + boardzona.comQdiv[style="font-family:Arial, Helvetica, sans-serif;font-size:9px;color:#666666"]a +vanguardia.comKdiv[style="font-size: 0.8em; text-align: left; color: rgb(136, 136, 136);"]D +todomercadoweb.es+div[style="height:270px; padding: 10px 0;"]C +elcomercial.com.ar)div[style="margin-top:10px;float: left;"]I +vanguardia.com3div[style="margin-top:15px;float:left;width:100%;"]= +elotrolado.net'div[style="margin: 0 -10px 20px -10px"]b + infojobs.netNdiv[style="margin:0px 20px 20px 30px;font-size:16px;border:1px solid #d5e1e5"]Q +concuchilloytenedor.es3div[style="margin:5px auto 5px;text-align:center;"]9 +19640noticias.com div[style="padding: Publicidad"]� + la-razon.comydiv[style="position:absolute; top:12px; width:970px; height:90px; background:#FFF; z-index:100; padding:0px; margin:0px"]q +cuartopoder.es[div[style="text-align:center; margin-bottom: 15px; background-color:#F4F4F4;width: 302px;"]q +cuartopoder.es[div[style="text-align:center; margin-bottom: 15px; background-color:#F4F4F4;width: 728px;"]C +ahorradororata.com)div[style="width: 300px; height: 600px;"]` +epasatiempos.esIdiv[style="width: 336px; height: 565px; float: right; margin-top: 30px;"]C +ahorradororata.com)div[style="width: 640px; height: 480px;"]B +ahorradororata.com(div[style="width: 728px; height: 90px;"]Ž +biodiesel.com.arõdiv[style="width: 90%; height: 90px; background: #fff; text-align: center; display: inline-block; color: #bbb; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 1.2rem; white-space: nowrap; padding: 0px 5% 0; overflow: hidden;"]m +elciudadano.clWdiv[style="width:100%;margin: 30px auto; text-align:center;clear:both;padding:20px 0;"]? +foroparalelo.com'div[style="width:120px; height:600px;"]N +tabascohoy.com8div[style="width:300px; height:250px; margin:0px auto;"]\ +epasatiempos.esEdiv[style="width:300px; height:600px; float:right; margin-left:3px;"]H +epasatiempos.es1div[style="width:300px;height:600px;float:right"]r +epasatiempos.es[div[style="width:728px; height:90px; margin: 0 auto; margin-top: 5px; margin-bottom: 5px;"]m +epasatiempos.esVdiv[style="width:728px;height:90px;margin: 0 auto; margin-bottom:5px; margin-top:5px"]> +foroparalelo.com&div[style="width:970px; height:90px;"]\ +epasatiempos.esEdiv[style="width:970px;height:90px;margin:0 auto;margin-bottom:5px;"]7 +todoblaugrana.comdiv[style^="overflow: hidden"]k + razon.com.mxWdiv[style^="position: fixed!important;text-align: center;bottom: 0!important;left: 0;"]` +calculadora-de-integrales.com +calculadora-de-derivadas.comdiv[style^="width: 728px;"]A +yucatan.com.mx+h2[style="color: #000000;text-align: left"]5 +yucatan.com.mxh2[style="text-align: center;"]} +manerasdevivir.comchr[style="width:5px; color:#CC6600; background-color:#CC6600; margin-top:3px; margin-bottom: 3px;"]J + boardzona.com5iframe[src*="://supercore.adm-vids.com/video_offer?"]6 +foropolicia.es iframe[src*="://www.netpol.es/"]4 + buenaisla.netiframe[src*="ads.ad4game.com/"]b + apurogol.netNiframe[width="300"][height="250"][border="0"][frameborder="0"][scrolling="no"]— + apurogol.net‚iframe[width="500"][height="400"][border="0"][frameborder="0"][scrolling="no"][maxwidth="500"][maxheight="400"][type="responsive"]% + leganews.esimg[alt*="Banner"]M +interbenavente.es4img[alt="http://interbenavente.es/pag/serviciosweb"]a +interbenavente.esHimg[alt="http://www.ford.es/serviciopostventa/PromocionesPostventa2013"]P +interbenavente.es7img[alt="http://www.serviciosfunerarioszamoranos.com/"]o +interbenavente.esVimg[alt="https://www.facebook.com/pages/Caprichos-Benavente/1151234814894029?fref=ts"]V +interbenavente.es=img[alt="https://www.facebook.com/zarabanda.regalos?fref=ts"]2 +laventanabolivia.comimg[alt^="publicidad"]* +25digital.com.arimg[class^=slider]R +cdn.cxpublic.com:img[src="http://logos.cdn.cxpublic.com/PAN_logo_38px.png"]Z +diariodesevilla.es@img[src="http://media.grupojoly.com//0001985000/0001985392.gif"]Z +diariodesevilla.es@img[src="http://media.grupojoly.com//0002002500/0002002922.gif"][ +finofilipino.orgCimg[src="http://static.tumblr.com/omgciym/0iNnhnzq2/neopeseta.png"]\ +finofilipino.orgDimg[src="http://static.tumblr.com/omgciym/0tvmih3p3/memetienda.jpg"]Z +finofilipino.orgBimg[src="http://static.tumblr.com/omgciym/2bBmgb175/juegacos.jpg"]c +finofilipino.orgKimg[src="http://static.tumblr.com/omgciym/Pnenkw34v/edrfwregwrgwtrgwr.jpg"]Z +finofilipino.orgBimg[src="http://static.tumblr.com/omgciym/SXxm66n6y/lol-logo.png"]ƒ +eluniversal.comlp[style="color: rgb(144, 144, 144); background-color: rgb(235, 235, 235);font-size: 12px;padding-left:5px;"]Á{ +infoban.com.arep[style="margin:2px 2px 2px 2px;padding:2px 2px 2px 2px;border:0px dashed #999999; overflow:hidden;"]¬ +apfdigital.com.ar +infoban.com.ar€p[style="margin:2px auto 2px auto;padding:2px 2px 2px 2px;border:0px solid #999999; background-color:#f0f0f0; overflow:hidden;"]_ +seriesdanko.toIspan[style="font-weight:bold; cursor:pointer; text-decoration:underline"]N +sailingzona.com7td[style="color:#666666; font-size:11px; padding:2px;"]g +fitnesszona.comPtd[style="font-family:Arial, Helvetica, sans-serif;font-size:9px;color:#efefef"]9 +astrologiaenlinea.comtd[width="728"][height="90"]. + pelisplay.cotr[data-lang="Publicidad"]" + huelva24.com#adblockadvice +lebrijadigital.es#aside. +zigzagdigital.com#banner_top_container# + cerebriti.com#barraAvisoAds( +allinonedownloader.com +#binanceAd + wizcase.com#bio_ep( + flashscore.co#box-over-content-a + andro4all.com #disp-cta1 + colombia.com + bolivia.com#espacio-teads' +radioexito.com.ar#imagensidebar" + discogs.com#lngtd_ad_video/ +tiempodenoticias.com.co#media_gallery-7 +minijuegos.com#moreg' +estrenarvivienda.com #motor-home. + +binary.com#multiplier_banner_container# + forbes.co#pinno-post-bot-ad! +supercontable.com#pub_sup + laboyanos.com #rotator2! +lebrijadigital.es#sidebar1 +180grados.digital#sidebar > .et_pb_widget% + wizcase.com#sidebar-best-vpns' + wizcase.com#sidebar-top-vendors + baratos.com +#ue_popups! +radioexito.com.ar.Estilo1  + coin360.com .StickyCorner" + coin360.com.TopLeaderboard. +elcolombiano.com.Widgetsliderintelecto( +comutricolor.com.arcad-containerW +recursosculturales.com +villavonoticias.com +impactonews.co.attachment-full' +impactonews.co.attachment-large- +villavonoticias.com.attachment-medium1 +appsparavertv.com.attachment-medium_large" + extra.com.co.banner_header + +areasac.es .bannerhome& +eluniverso.com.border-grey-100 +noticialdia.com.box_a: + +skdesu.com(.code-block[style^="margin: 20px auto;"]$ +zona-leros.net.content_store( +criptonoticias.com.cript-adlabel+ + incp.org.co.cyclone-slider-widget-8 + +areasac.es .destacados0 +elcolombiano.com.intelectoslidercabecera + dataifx.com .itau-banner+ +softoniclabs.com.oxy-modal-backdrop +microsiervos.com.pb-tag+ +noticiasenlamira.com.pinno-ad-label + forbes.co.pinno-flex-ad! + forbes.co.pinno-widget-ad +mms-mexico.com.promo$ + redmas.com.co.publicy-banner) + carrefour.es.rm-product.rm-format* +elrincondelvinotinto.com +.separator3 +wowtechlife.com.sidebar1.sidebar-separators + kairosweb.com.spu-bg + kairosweb.com.spu-boxA +magazinelatino.com'.td_block_template_1.widget.widget_text$ + momento24.co.td_spot_img_all—8 +hoydiariodelmagdalena.com.co.vc_single_image-img. +villavonoticias.com.widget_media_videoA + pelisplus.cam,[action^="https://significadoconcepto.com/"]' +finofilipino.org[alt^="Tienda"]0 + carrefour.es[aria-label="advertisement"]- +puupnewsapp.com[class*="code-block-"]7 +criptonoticias.com[class*="cript-advanced-ads"]4 +criptonoticias.com[class*="cript-homepage-"]9 + colombia.com + bolivia.com[class*="div-gpt-ad-"]' +4pelagatos.com[class*="pelag-"]+ +bcsnoticias.mx[class*="sgpb-popup"]0 +criptoinforme.com[class*="td-a-rec-id-"]* +albumoftheyear.org[class^="adTag"]$ + gerente.com[class^="angwp_"]' +elmeridiano.co[class^="banner"]" + hosteltur.com [class^="bp"]0 +hobbyconsolas.com[class^="product-card"]* + mioriente.com[class^="pub-banner"]' +legionasia.com[class^="teaser"]3 + univision.com[data-widget-type^="Outbrain"]1 +diariodelsur.com.co[href*="extra.com.co"]( + sqlshack.com[href*="quest.com/"]/ +skylinewebcams.com[href^="/clickb.php"]A + igg-games.com,[href^="http://s1.igg-games.com/index.php?"]; +atlnacional.com.co![href^="http://www.cedimed.com/"]; +atlnacional.com.co![href^="http://www.incodol.com/"]B +buenaventuraenlinea.com#[href^="http://www.intellywp.com/"]? +blanesaldia.com([href^="http://www.mcsinformatics.net/"]9 + dataifx.com&[href^="https://camaraarmenia.org.co"]K +panamaamerica.com.pa/[href^="https://clasificados.clasiguia.com.pa"]= +revistapym.com.co$[href^="https://co.findasense.com/"]> +boyaca7dias.com.co$[href^="https://colombia.argos.co/"]G +cryptopotato.com/[href^="https://cryptopotato.com/ad/lumenswap"]5 +juanbustos.com[href^="https://elfotoys.com/"]> + accounter.co*[href^="https://jeronimosoymuyfeliz.org/"]9 +colorvision.com.do[href^="https://jumbo.com.do/"]: +atlnacional.com.co [href^="https://kstore.com.co/"]8 + htcmania.com$[href^="https://navegantes.aimc.es"]9 + record.com.mx$[href^="https://online.caliente.mx"]G + pokertube.com2[href^="https://record.secure.acraffiliates.com/"]4 +guiascasinos.com[href^="https://refpa.top/"]j +freeethereum.com +freebitcoin.io +freetether.com + coinfaucet.io[href^="https://roobet.com/"]; +omarhvelasquezm.com [href^="https://seranking.com/"]: + goraymi.com'[href^="https://tungurahuaturismo.com"]6 + sqlshack.com"[href^="https://www.apexsql.com/"]= +atlnacional.com.co#[href^="https://www.aress.com.co/"]G +radioexito.com.ar.[href^="https://www.bancodecorrientes.com.ar"]@ +xanateach.blogspot.com"[href^="https://www.binance.com/"]D +xanateach.blogspot.com&[href^="https://www.bitcoinshoy.com/"]: +noticiestgn.cat#[href^="https://www.caixabank.cat"]0 + +iberley.es[href^="https://www.colex.es"]C + bimotos.com0[href^="https://www.continental-neumaticos.es/"]5 + accounter.co![href^="https://www.dsa.com.co/"]A +opanoticias.com*[href^="https://www.electrohuila.com.co/"]B +blizzboygames.net)[href^="https://www.instant-gaming.com/"]D +guiascasinos.com,[href^="https://www.jackpotcitycasino.com/"]6 + +la.network$[href^="https://www.montrebar.com/"]= +elcorreoweb.es'[href^="https://www.morerayvallejo.es"]> + +iberley.es,[href^="https://www.nuevamutuasanitaria.es"]@ +diariodelcauca.com.co#[href^="https://www.rimax.com.co/"]= +guiascasinos.com%[href^="https://www.spincasino.com/"]7 + labustia.cat#[href^="https://www.tgtravel.net/"]> +guiascasinos.com&[href^="https://www.topwager365.com/"]: +atlnacional.com.co [href^="https://www.usana.com/"]ê9 +elproductor.com"[href^="https://www.yara.com.ec/"]$ +fayerwayer.com[id^="arcad-"]- +comutricolor.com[id^="arcad-feature"]\ +diariodelcauca.com.co +diariodelsur.com.co([id^="block-views-block-pauta-lateral-"]2 +rateyourmusic.com[id^="frame-div-gpt-ad-"]! + moviesjoy.to [id^="gift-"]% +dialoguemos.ec[id^="slider_"]8 + pt-mexico.com#[onclick*="'page' : '/virtual/Ad/"]) + andina.pe[onclick*="/publicidad"]I +nintenderos.com2a[href^="https://www.eneba.com/"][href*="?af_id="]D +miamidiario.com-a[href^="https://www.univistainsurance.com/"]˜ +pelispanda.com + dontorrent.ws + divxtotal.li + divxtotal.nl + divxtotal.pm + +cuevana.se3a[target="_blank"][href^="https://startgaming.net"]* + kairosweb.comdiv[class*="banner-"]* + merca20.comdiv[data-id^="013f85c"]5 +alcalorpolitico.comdiv[id^="Bannerprincipal"]' + slidesgo.comdiv[id^="list_ads"]Q +hoydiariodelmagdalena.com.co-div[itemtype^="https://schema.org/WPAdBlock"]P +opanoticias.com9iframe[src^="https://www.youtube.com/embed/CiedpC-wP7E?"]. + educaplay.comimg[alt="ADR Formación"]0 + pulpo69.com#affiliate-livecam-widget-435$ +hentaienesp.com #banner_float' + donlgbt.com#banner_publicitario3 + madlifes.com + pepeporn.com#banners_footer! +pajilleros.com #camsFooter$ +fucklouder.com#espacio-multi + mangacrab.com +#fixedban25 +felizporno.com#main_video_fluid_html_on_pause +hentaienesp.com#new_ads + hentaila.com#onhsl +petardashd.com#publi1 +petardashd.com#publia! + escort46.es#top_image_div$ + xnalgas.com#ventana-flotante +bingoporno.com.Scl-r + muyzorras.com.a-ty# +serviporno.com .abbcn-footer$ +petardashd.com.abotonsponsor + poringa.net.adcams  + porneados.com .adv-square! + +cerdas.com.advBottomPagin" +escort-advisor.xxx.b-homey< +pajilleros.com + comics18.org + srpacks.com.banner  +pajilleros.com +.banner-bg& + freeones.es.banner-placeholder" +eurogirlsescort.es.banners" +pornogratisdiario.com.bnfo + maduras.xxx.bnpub# +petardashd.com .botonsponsor +pajilleros.com .camsHome$ +pornocolombiano.net .cnt-down3 + +pornes.xxx!.footer_partner_container_wrapperC + eshentai.tv + esporno.net!.h-block.h-block-250.bg-dark.mb-1I +xn--xvideos-espaol-1nb.com +veoporno.gratis.happy-inside-player' +pampaporno.com.hidden-under-920+ + poringa.net.home-native-patrocinado + muyzorras.com.i_sba + jkhentai.net.jk-300 + maduras.xxx.join1 +eurogirlsescort.es.js-stt-click > picture + conejox.com +.link_cams# +tupornogratis.xxx +.lst_ft_bn7 +muchoporno.xxx +serviporno.com.ntv-disclaimer  +cheemsporn.com +.oletf-img! + xnalgas.com.overlay_popup‡2 +Zÿï08@RJmuyzorras.com#?#.c.d1:-abp-has(div:-abp-contains(Más cosas interesantes)) +]ÿï08@RMvideospornogratisx.net#?#.block:-abp-has(>h3:-abp-contains(WEBCAM PORNO XXX)) +,* + 20minutos.es08@R20m.es/prebid/ +N€* +independentespanol.com08@R%ads.pubmatic.com/AdServer/js/pwtSync/ +E* + 13cradio.cl08@R(adswizz.com/adswizz/js/SynchroClient2.js +D$* + alkosto.com* + ktronix.com08@Ralkosto.cdn.adglare.net^ +G"* + alkosto.com* + ktronix.com08@Ralkosto.engine.adglare.net^ +@* + 20minutos.es08@R"amazon-adsystem.com/aax2/apstag.js +Z€* + teletica.com08@R;bradmax.com/client/embed-player/*/pubads.g.doubleclick.net/ +Qÿï* + depor.com08@R4d1r08wok4169a5.cloudfront.net/iframes/depor_logo.svg +Jÿï08@R:firmadigital.gob.ec/wp-content/plugins/banner-ads-rotator/ +Bÿï* +pccomponentes.com08@Rg.doubleclick.net/gampad/ads? +Gÿï* +pccomponentes.com08@R"g.doubleclick.net/gpt/pubads_impl_ +®ÿï* +trendenciashombre.com* +directoalpaladar.com* +3djuegosguias.com* +compradiccion.com* +trendencias.com* +xatakamovil.com* +3djuegospc.com* +applesfera.com* + vidaextra.com* + vitonica.com* + espinof.com* + genbeta.com* + poprosa.com* + +xataka.com08@Rg.doubleclick.net/pagead/ads? +iÿï* +elcomercio.com08@RGgecpublicidad.com/publicidades/ESPECIALES/assets/banner_ecuadoradio.jpg +¡* +trendenciashombre.com* +directoalpaladar.com* +3djuegosguias.com* +compradiccion.com* +trendencias.com* +xatakamovil.com* +3djuegospc.com* +applesfera.com* + vidaextra.com* + vitonica.com* + espinof.com* + genbeta.com* + poprosa.com* + +xataka.com08@Rgetjad.io/library/ + * +trendenciashombre.com* +directoalpaladar.com* +3djuegosguias.com* +compradiccion.com* +trendencias.com* +xatakamovil.com* +3djuegospc.com* +applesfera.com* + vidaextra.com* + vitonica.com* + espinof.com* + genbeta.com* + poprosa.com* + +xataka.com08@Rgetjad.io/prebid/ +W* +mensajesdecumpleanosweb.com08@R*go.ezodn.com/tardisrocinante/lazy_load.js? +@* +pccomponentes.com08@Rgooglesyndication.com/simgad/ +Uÿï* +pccomponentes.com* + ivoox.com08@R#googletagservices.com/tag/js/gpt.js +k€* + teletica.com08@RLiframes.5centscdn.com/5centscdn/*&adTagUrl=https://pubads.g.doubleclick.net/ +Êÿï* +api.apolomedia.com* +radiocandela.cl* +paxtvmovil.org* + niusdiario.es* + romantica.cl* + carolina.cl* + crhoy.com* + tn.com.ar* +rtve.es08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +c* +eluniversal.com.mx08@R?jsdelivr.net/npm/videojs-contrib-ads@6.7.0/dist/videojs.ads.css +:08@R,letrasyfuentes.com/tardisrocinante/screx.js? +À* +futbolcentroamerica.com* +lapaginamillonaria.com* +somosfanaticos.fans* +juanbeisbol.com* +juanfutbol.com* + bolavip.com* + dalealbo.cl* + redgol.cl08@Rlive.primis.tech/live/ +Å* +trendenciashombre.com* +directoalpaladar.com* +3djuegosguias.com* +compradiccion.com* +trendencias.com* +xatakamovil.com* +3djuegospc.com* +applesfera.com* + vidaextra.com* + vitonica.com* + espinof.com* + genbeta.com* + poprosa.com* + +xataka.com08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +W* +independentespanol.com08@R/pub.pixels.ai/wrap-independent-no-prebid-lib.js +T* +independentespanol.com08@R,pub.pixels.ai/wrap-independent-prebid-lib.js +Oÿï* +vmf.edge-apps.net08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +Sÿï* +vmf.edge-apps.net08@R.imasdk.googleapis.com/js/sdkloader/ima3_dai.js +U* +aristeguinoticias.com* + +hola.com08@R"g.doubleclick.net/gpt/pubads_impl_ +F"* +aristeguinoticias.com08@Rg.doubleclick.net/tag/js/gpt.js +S* +mundoprimaria.com* + vodgc.net08@R#imasdk.googleapis.com/js/sdkloader/ +ä* +elnortedecastilla.es* +eldiariomontanes.es* +lasprovincias.es* +diariovasco.com* +leonoticias.com* + elcomercio.es* + diariosur.es* + elcorreo.com* + larioja.com* + +ideal.es* +hoy.es08@R/comun/js/2014/adfr*.js +Ö* +diarioinformacion.com* +laopiniondemalaga.es* +laopiniondemurcia.es* +laopiniondezamora.es* +diariodemallorca.es* +laopinioncoruna.es* +mallorcazeitung.es* +diaridegirona.cat* +diariodeibiza.es* +levante-emv.com* +laprovincia.es* + farodevigo.es* + emporda.info* + laopinion.es* + +regio7.cat08@R/elementosWeb/js/ads.js +Ô* +diarioinformacion.com* +laopiniondemalaga.es* +laopiniondemurcia.es* +laopiniondezamora.es* +diariodemallorca.es* +laopinioncoruna.es* +mallorcazeitung.es* +diaridegirona.cat* +diariodeibiza.es* +levante-emv.com* +laprovincia.es* + farodevigo.es* + emporda.info* + laopinion.es* + +regio7.cat08@R/servicios/ads/dfp.js +G€* + kissfm.es08@R+adhandler.kissfmradio.cires21.com/get_link^ +4 08@R&adpass.atresmedia.com/*/index/*/ad*.js +«ÿï* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@Rads.ampliffy.com/gampad/ +G* +as.com08@R/ak-ads-ns.prisasd.com/prebid/prebid_noticias.js +G* + gamezhero.com08@R(assets.gameallianz.com/api/js/ads/ads.js +B08@R4comunidadcoto.com.ar/comunidad/resources/publicidad/! +zonavideosx.com +.popvidcnt% +canalporno.com.publ11s-b0ttom( +canalporno.com.r11ght-pl4yer-169! +pampaporno.com .resumecard7 +doncolombia.com +esaschicas.com.samBannerUnit$ +verpeliculasporno.gratis.tpd3 +videos.mrvideospornogratis.xxx .vjs-producer7 + famosateca.es"[href^="https://lustlia.co/?ref="]3 + +qporno.xxx![href^="https://qp.erotilink.es"]7 +comicxporn.com!a[href*="/comicxporntrafee.html"]/ +fucklouder.coma[href^="http://bit.ly/"]; + pajarracos.es&a[href^="http://www.fuegodevida.com/"]6 + famosateca.es!a[href^="https://es.amateur.tv/"]G + muyzorras.com2a[href^="https://landings.videochatprovider.com/"]8 +pajilleros.com"a[href^="https://www.amateur.tv/"]: + muyzorras.com%a[href^="https://www.fuegocams.com/"]E +muycerditas.com.a[href^="https://www.platanomelon.com/?rfsn="]< + +cerdas.com*a[href^="https://www.pornogratis.online/"]G +pornogratisdiario.com*a[href^="https://www.webcampornoxxx.net/"]) + famosateca.esdiv[align^="center"]. +videospornogratisx.netimg[width="300"]. +videospornogratisx.netimg[width="728"]� +¶ÿï* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R#googletagservices.com/tag/js/gpt.js +©€* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@Rgvt1.com/videoplayback/ +Á* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R0imasdk.googleapis.com/js/sdkloader/ima3_debug.js +Çÿï* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R4securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1 +Æÿï* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R3securepubads.g.doubleclick.net/gpt/pubads_impl_*.js +>* + expansion.com08@Rsecurepubads.g.doubleclick.net^ +'ÿï08@Rsscc.edu.ec/wp-content/ +J* + api.vodgc.net08@R+static.vodgc.net/*/videojs.ads-5.1.5.min.js +»„* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R)tpc.googlesyndication.com/pageadimg/imgad +³„* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@R!tpc.googlesyndication.com/pimgad/ +« +* +videos.vistoenlasredes.com* +videos.humorenserie.com* +videos.memedeportes.com* +videos.cuantarazon.com* +videos.vrutal.com08@Rtpc.googlesyndication.com^ +ï€* +tribunavalladolid.com* +tribunasalamanca.com* +tribunapalencia.com* +tribunasegovia.com* +tribunaburgos.com* +tribunazamora.com* +tribunaavila.com* +tribunasoria.com* +tribunaleon.com08@Rtribunasalamanca.com/ads.html +/ÿï* + vivotvhd.com08@Rvast.yashi.com^ +6€* + hentaihd.xyz08@Rgiolandscaping.com/ads/ + €08@Rhentaihd.xyz/ads/ \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-FR b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-FR new file mode 100644 index 0000000..26b92d5 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-FR @@ -0,0 +1,15272 @@ +ç +ÿï08@R +&ad_count= +ÿï08@R &ad_unit_ +ÿï08@R&ADMode= +ÿï08@R &adPlayhead= +ÿï08@R &adposition= +ÿï08@R &adsExpected= +ÿï08@R +&bannerid= +ÿï08@R&hasads= +ÿï08@R -300-x-250- +ÿï08@R -300-x-250. +ÿï08@R -300x250.gif +ÿï08@R -300x350- +08@R-300x37. +ÿï08@R -320x480. +ÿï08@R -336x280. +ÿï08@R +-728-x-90- +ÿï08@R -970x250. +ÿï08@R -ad-content- +ÿï08@R -banner-728. +ÿï08@R -banners/ads/ +ÿï08@R -content-ads- + ÿï08@R-iframe/?zoneId= +ÿï08@R -native-ad- +ÿï08@R +-popunder- +ÿï08@R +-pub/prod/ +ÿï08@R .adfarm1. +ÿï08@R.adtech. +ÿï08@R .advertica- +ÿï08@R .adxcore. +ÿï08@R.cc/ad/ +ÿï08@R .com.sa/ads/ +ÿï08@R .com/adj/ +„08@R.com/bannieres/ +ÿï08@R .com/bnr/ +4ÿï* +sponsored.qz.com08@R.com/sponsors/ +ÿï08@R.dz/ads/ +Iÿï* + sellplus.fr* + +yoopies.fr* +lemde.fr08@R +.fr/*/ads/ +ÿï08@R.fr/ads- +ÿï08@R.fr/ads/ +ÿï08@R.fr/affiliate/ +ÿï08@R .gif?partner= +ÿï08@R.ir/ads/ +ÿï08@R .js?advertID= +ÿï08@R.ma/ads/ +ÿï08@R .org/ads. +ÿï08@R.php?aid=pause_ +08@R.php?id=*&ref= +ÿï08@R .productads. +ÿï08@R .ru/banners/ +ÿï08@R.tn/ads/ +€08@R .xyz/ads. +ÿï08@R /182x600/ +ÿï08@R +/2025/ads/ +ÿï08@R /300x250.gif +ÿï08@R /300x600. +ÿï08@R +/728-x-90- +ÿï08@R /72890.js +ÿï08@R /960-120.gif +ÿï08@R/970x90. +ÿï08@R/ad-*-300x250. +ÿï08@R/ad-ads. +!ÿï08@R/ad-inserter-pro/ +ÿï08@R /ad-inserter/ +ÿï08@R +/ad.*/ads.� +ÿï08@R /ad.tags. +ÿï08@R +/ad/*/300/ +ÿï08@R /ad/ppid. +ÿï08@R/ad3_ +ÿï08@R /ad_bottom_ +ÿï08@R /adblock.php +!ÿï08@R/adblock_banners/ +ÿï08@R/adform. +ÿï08@R/adfuel- +ÿï08@R/adfuel/ +ÿï08@R/adpage_ +ÿï08@R/adperf. +ÿï08@R /ads*/banner_ +ÿï08@R/ads-ad- +ÿï08@R /ads-iframe- +ÿï08@R/ads.*/banner/ +ÿï08@R/ads.*/banners/ +ÿï08@R /ads.*/www/ +ÿï08@R /ads.*?site= +ÿï08@R/ads.xml +ÿï08@R/ads/*-300x250. +ÿï08@R /ads/300x +ÿï08@R/ads/4. +ÿï08@R /ads/728x +ÿï08@R /ads/get_ +ÿï08@R /ads/pages/ +ÿï08@R/ads/v1/ +ÿï08@R /ads?device= +ÿï08@R/ads?sz= +ÿï08@R /ads_banner/ +ÿï08@R +/ads_data/ +ÿï08@R/adsc.js +ÿï08@R +/adscores/ +ÿï08@R /adscript.js +ÿï08@R /adsensebase. +ÿï08@R +/adserwer. +ÿï08@R/adsext/ +ÿï08@R/adsmanager.js +ÿï08@R /adsview/ +ÿï08@R/adv/*/banner/ +ÿï08@R /advert/pop/ +ÿï08@R/advertisement? +ÿï08@R/advertiserv2/ +#ÿï08@R/advertising-block. +"ÿï08@R/advertising-core/ +*ÿï08@R/advertisting-placeholder- +ÿï08@R /adx-dir- +ÿï08@R/aff_*?aff_id= +.ÿï* + mercari.com08@R /affiliate.js +!ÿï08@R/affiliate.min.js +$ÿï08@R/affiliates-landing- +ÿï08@R /amp-ad-exit- +ÿï08@R /api.*/ads? +ÿï08@R /assets/adf- +ÿï08@R /bandeau-pub- +"ÿï08@R/banner/*&site_id= +!ÿï08@R/banner/*/300x250 + ÿï08@R/banner/*/728x90 +ÿï08@R /banner/160 +ÿï08@R /banner/728 +ÿï08@R /banner/ads- +ÿï08@R /banner300. +ÿï08@R /bannerinf.js +ÿï08@R/banners/*_ads_º +ÿï08@R /banners/ads_ +!ÿï08@R/banniere.php?id= +ÿï08@R/bens/vinos.js +ÿï08@R /bigbangads. +"ÿï08@R/blockadvertising/ +ÿï08@R /brinpopup. +'ÿï08@R/c.amazon-adsystem.com/ +ÿï08@R /cdn/banners/ +!ÿï08@R/cgi-bin/banners/ +ÿï08@R/click.php?key= +€08@R/click/ +ÿï08@R/component-ad- +ÿï08@R /default_ads_ +'ÿï08@R/delivery/*&campaignid= +#ÿï08@R/delivery/*&zoneid= +ÿï08@R/delivery/ajs. +ÿï08@R /delivery/ck. +%ÿï08@R/delivery/directlink. +ÿï08@R/delivery/rta/ +òÿï* +secret-amateur.com* +videosallopass.com* +blog2mature.com* +pornasiatix.com* +pornxmovies.com* +hentai-tube.fr* +papy-porno.com* + sexe2blog.com* + tube2sexe.com* + leathumb.com* + sexotor.com* + +porc.com08@R /disclaimer. +ÿï08@R/display/*&160& +ÿï08@R/display/*&300& +!ÿï08@R/display/items.*& +ÿï08@R /effiliation/ +ÿï08@R /espace-pub- +%ÿï08@R/espaces-sponsorises/ +ÿï08@R +/eureka.js +ÿï08@R/ezais/dynamic? +ÿï08@R +/fond_pub_ +ÿï08@R /gdfp.js? +ÿï08@R /gen_regie. +ÿï08@R/get/*?zoneid= +"08@R/get?*&ab=*&ref= +ÿï08@R/get_affiliate_ +"ÿï08@R/get_links_*&zone= +ÿï08@R /getappmsgAd? +ÿï08@R /getPub.php +ÿï08@R /gfx/banners/ +ÿï08@R /grafik/ads/ +ÿï08@R/homad-global- +ÿï08@R/iadbn? +ÿï08@R /ibd-ads/ +ÿï08@R/ichhar. +!ÿï08@R/iframe.*?idzone= +08@R /images/ads/ +#ÿï08@R/images/affiliates/ +!ÿï08@R/images/sponsors/ +%ÿï08@R/images/sponsorships/ +ÿï08@R /img/ads. +ÿï08@R /img/adv_ +"ÿï08@R/img/sponsorships/ +ÿï08@R/in-stream-ad- +ÿï08@R/inread. +ÿï08@R/inread_ +ÿï08@R /internalAds/ +ÿï08@R /iStripper- +ÿï08@R/it/adv/ +ÿï08@R /jp_display. +&ÿï08@R/jquery.adsenseloader. +ÿï08@R /jquery.fake. +ÿï08@R/js/adv_ +ÿï08@R +/js/pub.js +ÿï08@R /jsk?zoneid= +€08@R /lib/*&adl=– +ÿï08@R +/libs/ads. +(ÿï08@R/livewebcam/?id_affilie= +ÿï08@R/mads/ +ÿï08@R /mobile-ad/ +ÿï08@R/modules.pub.js +"ÿï08@R/myadvertisements. +ÿï08@R +/new/pu.js +ÿï08@R +/newpromo. +#ÿï08@R/nordvpn-affiliate- +ÿï08@R /pab-ssl.js +€08@R +/pagead/*? +ÿï08@R/player/*/ads. +ÿï08@R/promo-banner. +#ÿï08@R/promoredirect?key= +ÿï08@R /pu-placer.js +ÿï08@R /pu/*?psid= +ÿï08@R /pu_ad.js +&ÿï08@R/pub-internet-300x150. +ÿï08@R/pub/*-300x250. + ÿï08@R/pub/*/banniere_ +ÿï08@R /pub/ban_ +ÿï08@R /pub/bandeau_ +ÿï08@R/pub/banniere_ +ÿï08@R/pub/bannieres/ +ÿï08@R /pub/bg.php? +ÿï08@R/pub/habillage- +ÿï08@R /pub_250_ +ÿï08@R /pub_title. +!ÿï08@R/publicidadsetup/ + ÿï08@R/publicit%c3%a9/ +Qÿï* +publicite-lepeut-dole.fr* +publicite-decor.fr08@R /publicite- +ÿï08@R /publicite. +ÿï08@R /publicite/ +ÿï08@R /publicite_ +ÿï08@R /publicites. +ÿï08@R /publicites/ +ÿï08@R /publicity. +ÿï08@R /pubs/*-300x +ÿï08@R +/reactAds. +€08@R/redirect?tid= +!ÿï08@R/redirector.*_ads +ÿï08@R /regie.*/pub/ +ÿï08@R /regie_pub. +ÿï08@R +/regiepub/ +ÿï08@R /reloadads. +ÿï08@R/script.packed. +0ÿï08@R /script/*&cbiframe=*&cbkeywords= +ÿï08@R /scripts/adv_ +ÿï08@R/sdkconfig.ad. +08@R +/servedby. +#ÿï08@R/servlet/effi.show? +ÿï08@R/shareaholic.js +€08@R/show_i.php?b= + ÿï08@R/similarClickAds +ÿï08@R/simple/ads.js +ÿï08@R/skipad. +ÿï08@R /static.ads- +ÿï08@R/sw.*.js?promo= +&ÿï08@R/syndication.*&idzone= +ÿï08@R +/trackads. +ÿï08@R /twitter-ads. + ÿï08@R/txt_publi_vert. +ÿï08@R /upload/ad/ +ÿï08@R/uploads/*/ads-Ž +ÿï08@R/uploads/*/ads. +ÿï08@R/userfiles/ads/ +#ÿï08@R/userfiles/banners/ +ÿï08@R/va/ads/ +ÿï08@R/web/bannieres/ +ÿï08@R/web_ad_ +ÿï08@R/werbe-banner/ +ÿï08@R/wgAds. ++ÿï08@R/widgets.stackcommerce.com/ +'ÿï08@R://a.*/display?zone_id= +%08@R://a.*/interstitial?id= +)ÿï08@R://a.*/loader?*&keywords= +!ÿï08@R://acces.*/a.php? +ÿï08@R +://aclick. + ÿï08@R://act-http-ban. +ÿï08@R ://ad-start. +ÿï08@R ://ad.*&sid= + ÿï08@R://ad.*/ad/*.gif +ÿï08@R ://ad.*/adx/ + ÿï08@R://ad.*/dynamic/ +ÿï08@R://ad.*/embed. +ÿï08@R://ad.*/native. +ÿï08@R ://ad.*/uri/ +ÿï08@R://ad.*?*&lazy= +ÿï08@R ://ad.*?pid= +ÿï08@R ://adg.*/pub/ +ÿï08@R ://adlik. +ÿï08@R +://adlik2. +ÿï08@R://adn.*/zone/ +ÿï08@R +://ads-js. + ÿï08@R://ads-v-darwin. +ÿï08@R ://adsadmin. +ÿï08@R +://adscdn. +ÿï08@R ://adspaces. +ÿï08@R://adss. +ÿï08@R://adx. +ÿï08@R ://afflight. +ÿï08@R +://ar.ads. +08@R ://ashot. +"ÿï08@R://banner-gateway. + ÿï08@R://banner.*click +ÿï08@R://banner.*utm_ +ÿï08@R ://banners2. +ÿï08@R ://banners3. +ÿï08@R ://bannieres. +ÿï08@R +://be.ads. +!08@R://block.*/rotator- +%08@R://block.*/rotator/*.js +$ÿï08@R://bn.*.php?*&block= +ÿï08@R +://ca.ads. + ÿï08@R://cdn.*/p/?zid= +ÿï08@R +://cdn.ad. +ÿï08@R ://cdn.ads. +$ÿï08@R://click.*/get_camp. +ÿï08@R://clk.*/click? +@ÿï08@R0://creative.*/widgets/*&campaignId=*&creativeId= +ÿï08@R ://crm4d. +ÿï08@R +://dc.ads. +%ÿï08@R://dyn.*/display.php? +ÿï08@R +://dz.ads. +ÿï08@R +://eacash. +ÿï08@R +://eg.ads. +"ÿï08@R://engine.*&subid= +ÿï08@R ://fr.*/ads?• +ÿï08@R +://fr.ads. +"ÿï08@R://gateway-banner. +!ÿï08@R://get.*&clickid= +ÿï08@R://go.*&zoneid= +ÿï08@R://go.*?af_sub= +ÿï08@R://go.*?zoneid= +!ÿï08@R://goto.*&zoneid= +!ÿï08@R://goto.*?zoneid= +ÿï08@R ://imads. +%ÿï08@R://install.*&clickid= +!ÿï08@R://link.*&siteid= +%ÿï08@R://look.*/offer?prod= +ÿï08@R +://ma.ads. +ÿï08@R://msk.*/redir/ +–ÿï* + viatorcom.de* + viatorcom.fr* + viatorcom.nl* + viatorcom.no* + viatorcom.se* + lopinion.fr* + +viator.com08@R ://partner. +¢08@R://pop. +#ÿï08@R://promo.*?site_id= +ÿï08@R +://promo2. +ÿï08@R://promoimage. + ÿï08@R://pub.*?zoneid= +ÿï08@R ://reclame. +!ÿï08@R://report-ads-to. +ÿï08@R ://res.ads. +ÿï08@R ://rotator. +ÿï08@R://sc.*/popper. +"ÿï08@R://serve.*?random= +ÿî08@R://syndication. +ÿï08@R ://video-ads. +"ÿï08@R://xml.*/redirect? +ÿï08@R +=/ligatus/ +ÿï08@R =120x600& +ÿï08@R =160x600_ +ÿï08@R =250x250& +ÿï08@R =300x600& +ÿï08@R =336x280& +ÿï08@R =600x100& +ÿï08@R=728x90_ +ÿï08@R=970x90& +ÿï08@R=970x90_ +ÿï08@R +=aadblock_ + ÿï08@R=ad_leaderboard, +ÿï08@R =adblock_ +ÿï08@R=adunit/ +"ÿï08@R=advertising-core- +ÿï08@R =ajaxGetAds& +ÿï08@R =assignAds& +!ÿï08@R=banner_*goclick& + ÿï08@R=dynamic_banner& +ÿï08@R =GetAdHtml& +ÿï08@R +=goto_adv& +ÿï08@R =iframe_pub& +ÿï08@R +=popunder& +ÿï08@R =publicite& +ÿï08@R +=show_ads; +!ÿï08@R=sponsored_links_ +ÿï08@R =videoAd& +ÿï08@R =WebAdsLinks& +ÿï08@R =xadv-invid& +ÿï08@R ?*.popcash. +ÿï08@R ?160&600& +ÿï08@R ?300&250& +ÿï08@R?468&60& +ÿï08@R?728&90& +ÿï08@R?aads=Ô +ÿï08@R ?ad_domain= +ÿï08@R ?ad_server_ +ÿï08@R?ad_sub= +ÿï08@R ?ADFassetID= +ÿï08@R?adlink/ +ÿï08@R?adnet= +ÿï08@R ?adprovider= +ÿï08@R?adRef= +ÿï08@R?adroll_adv_id= +ÿï08@R ?adSelector= +ÿï08@R ?adTagId= +ÿï08@R ?advert_type= +ÿï08@R ?aff=*&roll= +ÿï08@R ?aff=*&size= +ÿï08@R?affiliateCode= +ÿï08@R ?bannertag= +ÿï08@R?callback=ADS. +%ÿï08@R?campid=*&bandeau_id= +ÿï08@R +?clicktag= +ÿï08@R ?default_ad= +!ÿï08@R?div_id=*&idzone= +!ÿï08@R?id_promo=*&nsfw= +ÿï08@R?oas_mode_pub= +ÿï08@R?out=*&zone_id= +"ÿï08@R?Page=*&Width=300& +ÿï08@R ?promo=*&url= +%ÿï08@R?promoTool=*&aff_sub= +ÿï08@R?pub_id= +$ÿï08@R?publisher-adserver= +ÿï08@R ?r=*&zoneid= +"ÿï08@R?rand=*&blk=*&ref_ +ÿï08@R?redir=*/click? +"ÿï08@R?reqType=AdsSetup& +ÿï08@R ?runauction= +€08@R ?size=728x90 +ÿï08@R?sponsor=*&sId= +ÿï08@R?style=160x600- +ÿï08@R?style=300x250- +ÿï08@R?style=468x60- +ÿï08@R?style=720x90- +!ÿï08@R?tag_id=*&sw_url= +)ÿï08@R?target=_blank&mouseover= +ÿï08@R?tgt=*&zoneid= +!ÿï08@R?tour=*&campaign= +ÿï08@R ?type=ad; +ÿï08@R ?Type=AdRam. +ÿï08@R +?type=ads& +ÿï08@R ?ucozads^ +ÿï08@R?ufuad= +08@R ?zoneid=*&ab= +08@R?zoneid=*&cid= +ÿï08@R?zoneid=*&ext= +$ÿï08@R?zoneid=*&placement= +ÿï08@R ?zoneid=*&r= + ÿï08@R?zoneid=*&serve= +"ÿï08@R?zoneId=*&sponsor= +'ÿï08@R?zones=*&blockcampaign= +08@R _1080x90. +ÿï08@R _1140x90. +ÿï08@R _120-x-600_ +ÿï08@R +_120by600_ +ÿï08@R_120x600banner. +ÿï08@R _160-x-600_ +ÿï08@R _250x300_ó +ÿï08@R _300-x-250_ +ÿï08@R _300_600. +ÿï08@R _300x250/ +ÿï08@R _300x250@ +ÿï08@R _300x250v1. +ÿï08@R _300x300.gif +ÿï08@R _300x400.gif +ÿï08@R _300x600& +ÿï08@R _336x280. +ÿï08@R +_468-x-60_ +ÿï08@R_46860_ +ÿï08@R _468x200. +ÿï08@R_468x60& +ÿï08@R_468x60@ +ÿï08@R +_468X60v2. +ÿï08@R _480x250. +ÿï08@R _600x120& +ÿï08@R_60x468_ +ÿï08@R_648x60_ +ÿï08@R_725_90. +ÿï08@R +_728-x-90_ +ÿï08@R _728x350. +ÿï08@R _728x90(2). +ÿï08@R_728x90@ +ÿï08@R _728x90pxl_ +ÿï08@R +_728x90v2. +ÿï08@R_758x60. +ÿï08@R _866x120. +ÿï08@R_90x728_ +ÿï08@R +_970-x-90_ +ÿï08@R_970_90_ +ÿï08@R _970x250. +ÿï08@R _990x557. +ÿï08@R_990x67. +ÿï08@R _ad-server. +ÿï08@R _ad.html?utm_ +ÿï08@R _ad160x600. +ÿï08@R _ad_agency_ +ÿï08@R_ad_anim +ÿï08@R _ad_campaign_ +ÿï08@R _ad_images_ +ÿï08@R_ad_literature. +ÿï08@R_ad_mid +ÿï08@R_ad_top +ÿï08@R _ad_unit. +ÿï08@R _ad_view_ +ÿï08@R _ad_viewable_ +!ÿï08@R_adb&*&partnerId= +ÿï08@R +_adcitrik_ +ÿï08@R _AdClick_ +ÿï08@R_adco_ +ÿï08@R +_adcommon. +€08@R_adpath_ +ÿï08@R_adplib. +ÿï08@R +_adreaper/ +ÿï08@R _AdRotate3- +‚08@R_ads.php + ÿï08@R_ads/*?downsize= +ÿï08@R _ads/banner/ +ÿï08@R_ads2- +ÿï08@R _ads4stream_ +ÿï08@R _ads860x120. +ÿï08@R _ads_*?pubId= +ÿï08@R +_ads_2018.ñ +ÿï08@R _ads_728. +ÿï08@R _ads_banner& +ÿï08@R _ads_banner/ +ÿï08@R _ads_banner_ +ÿï08@R _ads_desktop. +ÿï08@R _ads_one_ +ÿï08@R _ads_toroadv. +ÿï08@R +_ads_view/ +ÿï08@R_adsens_ +ÿï08@R +_adsepxhd. +ÿï08@R _adsfullsite& +ÿï08@R +_adspromo. +ÿï08@R _adstyle. +ÿï08@R_adunit= +ÿï08@R _adv_300. +ÿï08@R _adv_728. +!ÿï08@R_advertising_img. +ÿï08@R _affadsense_ +€08@R _affiliate. +"ÿï08@R_affiliate_banner_ +ÿï08@R +_alenty.js +ÿï08@R _android_ads. +ÿï08@R _article_ads- +ÿï08@R _b468x60. +ÿï08@R _b728x90. +ÿï08@R _ban-300x250. + ÿï08@R_banner-300x150. +"ÿï08@R_banner.*?partner= +ÿï08@R_banner_46860. +ÿï08@R _banner_pub. +ÿï08@R _bannerad2- +ÿï08@R _bannerad2_ +ÿï08@R_banniere-300. +ÿï08@R_banniere-468. +ÿï08@R_banniere-728. +ÿï08@R _barre_pub/ +ÿï08@R _bnrrotator_ +ÿï08@R +_board_ad. + ÿï08@R_code/*/goclick? +ÿï08@R _dfp_conf.js +ÿï08@R _display_ad_ +ÿï08@R _domain=ads. +ÿï08@R_epmads. +ÿï08@R _event_pub. +ÿï08@R +_flash_ad_ +ÿï08@R_fr/ads/ +ÿï08@R _GIF_AD3_ +ÿï08@R _id=*&nads= +ÿï08@R_iframe300x200. +ÿï08@R_iframe300x600. +ÿï08@R_iframe728x90. +#ÿï08@R_inc_banner.php?id= +ÿï08@R_isab. +ÿï08@R_jx.ads/ + ÿï08@R_liens/banniere- +#ÿï08@R_liens_sponsorises. +ÿï08@R _logic_on_ad. +ÿï08@R_lx.ads/ +ÿï08@R +_mobileAds +ÿï08@R +_money_ad& +€08@R_nnads/ +ÿï08@R +_pages_ad. +!ÿï08@R_personalized_ads +ÿï08@R _pop.php?z=÷ +ÿï08@R_popads. +ÿï08@R +_popdhtml/ +ÿï08@R +_pp_dhtml. +ÿï08@R _profits_ad- +ÿï08@R _program_ad. +ÿï08@R_pub.gif +ÿï08@R +_pub_300x. +ÿï08@R _pub_728. +ÿï08@R _pub_col_ +ÿï08@R _pub_iframe. +ÿï08@R _publ1c1te. +ÿï08@R_publicitaire/ +ÿï08@R _publicite. +ÿï08@R _publicite1. +ÿï08@R _publicite_ +ÿï08@R +_publog_2. +ÿï08@R _pubscript. +ÿï08@R_pubted. +ÿï08@R _regie/aff. +ÿï08@R +_regiepub/ + ÿï08@R_rivcash_banner_ +ÿï08@R _sca_ads. +ÿï08@R_sdk_ad_ +ÿï08@R_shopping_box. +ÿï08@R _side_ads01. +ÿï08@R _side_ads02. +ÿï08@R_smads_ +ÿï08@R_smartclick.js +ÿï08@R_Social-Advert- +ÿï08@R _square_ads. +ÿï08@R +_strip_ad. +ÿï08@R +_strip_ad/ +ÿï08@R _waframedia_ +ÿï08@R _werbebanner_ +.ÿï08@R/wp-content/*/bloc-partenaire- +$ÿï08@R/wp-content/banners/ +1ÿï08@R!/wp-content/plugins/baw-bon-plan/ +5ÿï08@R%/wp-content/plugins/bazooka-shopping/ +9ÿï08@R)/wp-content/plugins/easy-affiliate-links/ +1ÿï08@R!/wp-content/plugins/mm-ad-widget/ +.ÿï08@R/wp-content/plugins/mm-kelkoo/ +7ÿï08@R'/wp-content/plugins/mts-wp-in-post-ads/ +0ÿï08@R /wp-content/plugins/progressads/ +;ÿï08@R+/wp-content/plugins/quick-adsense-reloaded/ +Fÿï08@R6/wp-content/plugins/rnotify1.*/assets/public/custom.js +5ÿï08@R%/wp-content/plugins/wp-adsense-guard/ +/ÿï08@R/wp-content/plugins/wp-banners/ +)ÿï08@R/wp-content/themes/*/ads/ +/ÿï08@R/wp-content/uploads/wp-banners/ +ÿï08@R/wp-totemtools/ + ÿï08@R/urlshortener.js +$ÿï08@R/urlshortener.min.js +"ÿï08@R/zerg-inf-multi.js +ÿï08@R /zerg-inf.js +"ÿï08@R/ai/s/s/js/m/im.js +$ÿï08@R/ai/s/s/js/ssu.v2.js +ÿï08@R/ai/s/s/su.php? +#ÿï08@R/backend/*.php?url= + ÿï08@R/nb/thejsfile.js +ÿï08@R /preroll_exo/ +&ÿï08@R/s/s/su.php?*&referrer +$ÿï08@R/s/s/su.php?*&width= +"ÿï08@Rhttps://*/nb.js/*, +ÿï08@R %*.juicyads.¹ +%ÿï08@R%22banner%*%22idzone% +)ÿï08@R%22request_id%*%22idzone% +$ÿï08@R/data/Siropu/images/ +%ÿï08@R/Siropu/AM/display.js +)ÿï08@R/Siropu/AM/display.min.js +#ÿï08@R/cdn.unblockia.com/ +ÿï08@R co^*?zoneId= +08@R com/func.js +"ÿï08@Rcom/watch.*?*&key= + ÿï08@Rcom/watch.*?key= +"ÿï08@Rcom/wnload?a=*&tz= +08@R +net/sw.js? +08@R +org/sw.js? +08@Rpro/js/func.js +ÿï08@R shop^*cuid/? +ÿï08@R +0--e.info^ +ÿï08@R1000mercis.com^ +ÿï08@R 123prix.com^ +"ÿï08@R188affiliates.com^ +€08@R 198.16.64.66^ +ÿï08@R1mov-team.com^ +ÿï08@R 1sponsor.com^ +ÿï08@R 1x12.net^ +ÿï08@R213.206.98.70^ +ÿï08@R 25481.online^ +ÿï08@R +2town.net^ +ÿï08@R 301ads.com^ +ÿï08@R360tracking.fr^ +ÿï08@R +380tl.com^ +ÿï08@R 3xdl.com^ +ÿï08@R3xtraffic.com^ +ÿï08@R 57union.com^ +ÿï08@R7x4.fr^ +ÿï08@R7x5.fr^ +ÿï08@Ra4l.co^ +ÿï08@R +acads.net^ +!ÿï08@Racces-charme.com^ + ÿï08@Racces-pills.com^ +ÿï08@Raccesporno.com^ +ÿï08@R acexedge.com^ +$ÿï08@Rachat-visiteurs.com^ +ÿï08@Racpublicite.fr^ +ÿï08@R acwm.biz^ +"ÿï08@Racxiom-online.com^ +ÿï08@Rad-3.me^ +ÿï08@R ad-brix.com^ +ÿï08@R ad-lead.com^ +ÿï08@R ad-spire.net^ +ÿï08@R ad2.club^ +ÿï08@R +ad380.com^ +ÿï08@R ad4link.com^ +ÿï08@Rad6.fr^ +ÿï08@R adaccess.fr^ +ÿï08@R adaraby.com^ +ÿï08@R +adback.co^ +ÿï08@R adbison.com^ +ÿï08@R adbox.lt^ +ÿï08@R +adc-lc.eu^ +ÿï08@R adcapt.com^ +ÿï08@R adclick.lt^ +ÿï08@R adcloud.us^ +ÿï08@R adconda.com^ +ÿï08@R adconnect.fr^ +ÿï08@R +adcpm.com^¦ +ÿï08@R adfever.com^ +ÿï08@R adfurikun.jp^ +ÿï08@R adgoal.net^ +ÿï08@R adhoc2.net^ +ÿï08@R +adhost.se^ +ÿï08@R adhslx.com^ +ÿï08@R adincube.com^ +ÿï08@R adinlive.com^ +ÿï08@R adintop.com^ +ÿï08@Radkontekst.pl^ +ÿï08@R adlead.com^ + ÿï08@Radleadevent.com^ +ÿï08@R adleave.com^ +ÿï08@R adlike.net^ +ÿï08@R adlmerge.com^ +ÿï08@R adlookr.com^ +ÿï08@R adlure.net^ +ÿï08@R adm-vids.com^ +ÿï08@Radmanmedia.fr^ +ÿï08@R +admark.fr^ +ÿï08@R admathhd.com^ + ÿï08@Radmediaking.com^ +ÿï08@R admitlead.ru^ +ÿï08@R admized.com^ +ÿï08@Radmuncher.com^ +ÿï08@Radmysports.com^ +$ÿï08@Radn-performance.com^ +ÿï08@R +adn.cloud^ +ÿï08@R adnotbad.com^ +ÿï08@R adnplay.com^ + ÿï08@Radnsolution.net^ +ÿï08@R adnxtr.com^ + ÿï08@Radoftheyear.com^ +ÿï08@Radop.cc^ +ÿï08@R adoptima.com^ +ÿï08@R adoric.com^ +ÿï08@R adpaths.com^ +ÿï08@R adpick.co.kr^ +ÿï08@R adpicker.net^ +ÿï08@R adpixo.com^ +ÿï08@R +adplus.io^ +ÿï08@R adpub.eu^ +ÿï08@R +adqia.com^ +ÿï08@Radrequest.net^ +ÿï08@R +adrock.tv^ +ÿï08@R +ads-x.com^ +ÿï08@Radsb4track.com^ +ÿï08@R adsb4trk.com^ +ÿï08@Radsbtrack.com^ +ÿï08@R adscafe.net^ +ÿï08@Radschemist.com^ +ÿï08@R adschoom.com^ + ÿï08@Radsclick.com.br^ +ÿï08@R adscoo.com^ +ÿï08@R adsearch.pl^ +!ÿï08@Radsenseguard.com^ +ÿï08@R adserver.pm^ +ÿï08@Radservone.com^ +ÿï08@Radsgarden.com^ +ÿï08@R adsgid.com^ +ÿï08@Radsixmedia.fr^ +ÿï08@R adskom.com^ +ÿï08@R adslead.com^ +ÿï08@R adsmena.com^Ü +ÿï08@R adsmmgp.com^ +ÿï08@R adsoid.com^ +ÿï08@R adsplain.com^ +ÿï08@R adsplex.com^ +ÿï08@R adsplius.lt^ +ÿï08@R +adspot.ch^ +ÿï08@R adspsp.com^ +#ÿï08@Radsregieonline.com^ +ÿï08@Radsrevenue.com^ +ÿï08@R adsrvs.com^ +!ÿï08@Radstechnology.co^ +ÿï08@Radsteroid.pro^ +"ÿï08@Radsterratools.com^ +ÿï08@R adstract.com^ +ÿï08@Radstronic.net^ +ÿï08@R adstune.com^ + ÿï08@Radsupplyads.com^ + ÿï08@Radsupplyads.net^ +ÿï08@R adsurge.com^ +ÿï08@R adsvidss.com^ +ÿï08@Radswinner.com^ +ÿï08@R adsximg.com^ + ÿï08@Radsxxxtraff.com^ +ÿï08@R adtech.com^ +ÿï08@R adten.eu^ +ÿï08@R adtive.com^ +ÿï08@R adtrafic.com^ +ÿï08@R adturtle.biz^ +ÿï08@R +adual.net^ +ÿï08@Radultgames.fun^ +ÿï08@Radultwork.com^ +ÿï08@Radunblock.com^ +ÿï08@Radverdata.net^ +ÿï08@Radverline.com^ +ÿï08@R adverti.fr^ +ÿï08@Radvertine.com^ + ÿï08@Radvertsight.com^ +"ÿï08@Radvertsponsor.com^ +ÿï08@R adverum.lt^ +ÿï08@R advideo.ru^ +ÿï08@R advrich.com^ +!ÿï08@Radwidecenter.com^ +ÿï08@R adwidgets.ru^ +ÿï08@R +adwise.bg^ +ÿï08@R +adxxx.com^ +%ÿï08@Radyieldoptimizer.com^ +ÿï08@R adzbux.com^ +ÿï08@R adzbuzz.com^ +ÿï08@R adzerg.com^ +ÿï08@R adzmath.com^ +ÿï08@R adzzone.com^ +ÿï08@R affidate.com^ +ÿï08@Raffil4you.com^ +ÿï08@R affilae.com^ + ÿï08@Raffilcenter.com^ + ÿï08@Raffiliatable.io^ +#ÿï08@Raffiliatehub.co.in^ +ÿï08@Raffiliaweb.fr^ +ÿï08@R affilinks.fr^ +ÿï08@Raffilipub.com^ +ÿï08@R affility.com^ +ÿï08@R afflight.biz^ + ÿï08@Rafftrack001.com^ +ÿï08@Rafilio.com.br^§ +"ÿï08@Rafromessenger.com^ +ÿï08@R +ak-is.net^ +ÿï08@R aleja.lt^ +#ÿï08@Ralgocashmaster.com^ + ÿï08@Ralldomserv2.com^ +ÿï08@Ralloclick.com^ +ÿï08@Ralosafada.com^ +ÿï08@R am-media.fr^ +%ÿï08@Rambient-platform.com^ + ÿï08@Rapploading.mobi^ +ÿï08@R apps2you.org^ +ÿï08@R appsfire.com^ +'ÿï08@Rappsha1.cointraffic.io^ +ÿï08@R apypxl.com^ +!ÿï08@Raquaplatform.com^ +ÿï08@R aquipelis.tv^ +ÿï08@R arabyads.com^ +"ÿï08@Rarabytracking.com^ +ÿï08@Rareyouabot.net^ +#ÿï08@Rasiatmessenger.com^ +ÿï08@R askmecca.com^ +ÿï08@R atedra.com^ +ÿï08@R atlassbx.com^ +#ÿï08@Ratlassolutions.com^ +ÿï08@R +audify.io^ +ÿï08@Rautoviewz.com^ +ÿï08@R +avanis.fr^ +#ÿï08@Ravantajadas.com.br^ +&ÿï08@Ravenir-affiliation.fr^ +ÿï08@R +awm.trade^ +ÿï08@Rawms.ws^ +ÿï08@R awsclic.com^ +ÿï08@R banstex.com^ +ÿï08@Rbaseandco.com^ +ÿï08@Rbayard-pub.com^ +ÿï08@R baypops.com^ +ÿï08@R bazardux.com^ +ÿï08@R bccyyc.com^ +ÿï08@R +bcvc.mobi^ + ÿï08@Rbeaffiliates.fr^ +"ÿï08@Rbeaverscripts.com^ +ÿï08@R beead.fr^ +(ÿï08@Rbest-deals-products.com^ +$ÿï08@Rbestcontentwork.top^ +&ÿï08@Rbetfredaffiliates.com^ +'ÿï08@Rbetterbannerscloud.com^ +&ÿï08@Rbeurettemessenger.com^ +!ÿï08@Rbikinisgroup.com^ + ÿï08@Rbillionpush.com^ + ÿï08@Rbionestraff.pro^ +ÿï08@Rbiznolimit.com^ +ÿï08@R +bleach.fr^ +ÿï08@R blockadz.com^ +ÿï08@R blogbang.com^ +ÿï08@Rboostsaves.com^ +ÿï08@R +boruto.fr^ +ÿï08@R braip.com.br^ +ÿï08@R broadcast.pm^ +ÿï08@Rbuckridge.link^ +!ÿï08@Rbursttraffic.net^ +ÿï08@R buzzvet.com^ +ÿï08@R +bzlwe.com^ +ÿï08@R bzzvid.com^ +ÿï08@R calexito.com^ˆ +ÿï08@R cam4ads.com^ +ÿï08@R camplace.com^ +ÿï08@R camsoda.com^ +.ÿï* + camsympa.fr08@R camsympa.com^ +ÿï08@R captchme.net^ +)ÿï08@Rcaradisiac-publicite.com^ +ÿï08@R caramec.com^ +ÿï08@R caramec.fr^ +ÿï08@R carasexe.com^ +ÿï08@Rcarasexe.info^ +ÿï08@Rcarasexe.name^ +ÿï08@R carpediem.fr^ +ÿï08@R cashpage.net^ +ÿï08@R catraff.com^ +ÿï08@Rcavixoapp.com^ +ÿï08@R cclpub.com^ +ÿï08@Rcda-online.pl^ +ÿï08@R cdn.fail^ +ÿï08@R cdn3.net^ +ÿï08@Rcdntraffic.com^ +"ÿï08@Rcdxndirectopt.com^ +ÿï08@Rcellflor.site^ +ÿï08@R +cfgr2.com^ +ÿï08@Rcgmission.com^ +ÿï08@Rchameleonx.net^ +ÿï08@R charmix.com^ +ÿï08@R chilican.com^ +ûï08@R chocam.com^ +ÿï08@R chupa.mobi^ +ÿï08@Rcirculate.com^ +ÿï08@R cityads.com^ +ÿï08@R clcktrax.com^ +#ÿï08@Rclic-diffusion.com^ +ÿï08@Rclic.ws^ +ÿï08@R click-fr.com^ +ÿï08@R click2m.org^ +ÿï08@Rclickbank.net^ +#ÿï08@Rclickcashmoney.com^ + ÿï08@Rclickiocdn*.com^ +"ÿï08@Rclickioglobal.com^ + ÿï08@Rclickscloud.net^ + ÿï08@Rclicktictac.com^ +ÿï08@R clickzzs.nl^ +ÿï08@Rclicmanager.fr^ + ÿï08@Rclicmanager.net^ +ÿï08@Rclicnscores.ma^ +ÿï08@R clintads.com^ +ÿï08@R clkcdn.com^ +ÿï08@R clkmon.com^ +ÿï08@Rclkoffers.com^ + ÿï08@Rcoloredview.com^ + ÿï08@Rcomandclick.com^ +ÿï08@R como.com^ +ÿï08@R conduit.com^ +"ÿï08@Rconnexionsafe.com^ +ÿï08@Rcontentza.com^ +ÿï08@Rcopyop-ads.com^ +%ÿï08@Rcougar-rencontre.net^ +$ÿï08@Rcougarmessenger.com^ + ÿï08@Rcpa-content.com^ +ÿï08@R cpabuild.com^ +!ÿï08@Rcpaofferstat.com^ +ÿï08@R cpmstar.com^ +ÿï08@R cptefr.com^Œ +ÿï08@R creofive.com^ +ÿï08@R crvtrk.com^ +ÿï08@Rcrypto-adz.com^ +"ÿï08@Rcubicleoffers.com^ +ÿï08@R +cufcw.com^ +!ÿï08@Rcupidontrade.com^ +ÿï08@Rcyberflirt.fr^ +ÿï08@Rcyclivate.com^ +2ÿï08@R"cytochemistryrecitativewrasse.com^ +ÿï08@R czclients.fr^ +ÿï08@Rd-1.co^ +"ÿï08@Rdatingfactory.com^ +ÿï08@Rdatvantage.com^ +ÿï08@R dekalee.fr^ +ÿï08@R deltax.com^ +ÿï08@R +dfast.net^ +!ÿï08@Rdiffusionpub.com^ +ÿï08@R digidip.net^ +#ÿï08@Rdigital-metric.com^ +ÿï08@R dinozap.info^ +%ÿï08@Rdirectionplaisir.com^ +ÿï08@Rdm.gg^ +ÿï08@R dolead.com^ +ÿï08@Rdorcelcash.com^ +'ÿï08@Rdouble6affiliation.com^ +"ÿï08@Rdoublepimpads.com^ +ÿï08@Rdreamstore.ch^ +ÿï08@R drim.space^ +#ÿï08@Rdrowmffuheovnr.com^ +ÿï08@R duapps.com^ +ÿï08@R duporno.biz^ +ÿï08@Rdustin5043.fr^ +!ÿï08@Rdvd-explorer.com^ +ÿï08@R dvetech.fr^ +ÿï08@R +dx-tv.com^ +ÿï08@R e-mailit.com^ +ÿï08@R +earnco.in^ +#ÿï08@Reasy-rencontre.com^ +$ÿï08@Reasy-rencontres.com^ +"ÿï08@Reasyrencontre.com^ +ÿï08@R easysexe.com^ +ÿï08@R easyvols.org^ +ÿï08@R ebuzing.com^ +ÿï08@R ebuzzing.be^ +ÿï08@R ebuzzing.fr^ +"ÿï08@Rebzfbiueubria.com^ +&ÿï08@Rechangedebannieres.fr^ +ÿï08@R eclkspsa.com^ +ÿï08@R edgexads.com^ +ÿï08@R +edinfo.ma^ +ÿï08@Redintorni.net^ +ÿï08@R +edomz.com^ +"ÿï08@Reffective-ads.com^ +!ÿï08@Regnatius-ear.com^ +ÿï08@Relasticad.com^ +ÿï08@R emooji.com^ +ÿï08@R emoteev.io^ +ÿï08@R eravage.com^ +ÿï08@Resoterweb.com^ + ÿï08@Respace-plus.net^ +ÿï08@R espacephr.fr^ +!ÿï08@Resprit-click.com^ +ÿï08@R etarg.ru^ +ÿï08@R etoro.fr^¬ +ûï08@R eurolive.com^ +ÿï08@Reurowebbiz.com^ +ÿï08@R +every.com^ +ÿï08@Rewingoset.info^ +ÿï08@R exarab.com^ +ÿï08@R exashare.com^ +#ÿï08@Rexchange.gouik.com^ +ÿï08@Rexodentity.com^ +ÿï08@Rexplorads.com^ +ÿï08@R +explorads^ +%ÿï08@Rextensionfactory.com^ +ÿï08@R ezpopups.com^ +ÿï08@R ezstatic.com^ +ÿï08@R +f5biz.biz^ +ÿï08@Rfaitdufric.com^ +ÿï08@R fancybar.net^ +ÿï08@Rfast-route.com^ +ÿï08@Rfast.io^ +ÿï08@Rfgn.me^ +ÿï08@R fhserve.com^ +"ÿï08@Rfindadvertise.com^ +"ÿï08@Rfindyourpussy.net^ +!ÿï08@Rflinteractive.fr^ +ÿï08@R flirt-x.co^ +!ÿï08@Rfrancodirect.com^ +ÿï08@Rfreenights.net^ +ÿï08@R +frtyi.com^ +ÿï08@R +frtyj.com^ +%ÿï08@Rfunsafetabsearch.com^ +!ÿï08@Rfutureadlabs.com^ +'ÿï08@Rgagner-une-console.com^ +%ÿï08@Rgameinstallfiles.com^ +&ÿï08@Rgamingaffiliation.com^ +ÿï08@Rgamingskin.com^ + ÿï08@Rgangstabros.com^ +ÿï08@R gbnet.link^ +ÿï08@R gdfspfg.com^ + ÿï08@Rgestion2web.com^ +ÿï08@R gethide.com^ +ÿï08@Rgetpublica.com^ + ÿï08@Rgetresponse.com^ + ÿï08@Rgingermedia.com^ +#ÿï08@Rgirlsmessenger.com^ +"ÿï08@Rglobalrotator.com^ +ÿï08@Rgob-gob-ul.com^ +ÿï08@Rgonewland.com^ +ÿï08@Rgoodaction.com^ +ÿï08@R goracash.com^ +ÿï08@R grupoxxx.com^ +ÿï08@R gtburst.com^ +ÿï08@Rguestcash.com^ +ÿï08@R hebdotop.com^ +!ÿï08@Rheberparis23.com^ +ÿï08@Rheliumads.com^ +"ÿï08@Rhentai-heroes.com^ +!ÿï08@Rhentaiheroes.com^ +ÿï08@Rhibamedia.com^ +ÿï08@Rhla-media.com^ +ÿï08@Rholyclock.com^ +"ÿï08@Rhoryzon-clics.com^ +ÿï08@R +hrtya.com^ + ÿï08@Ri-promotion.net^ + ÿï08@Riaffiliates.com^ +ÿï08@Ribobanners.com^‰ +ÿï08@R icileweb.com^ + ÿï08@Ricipourtout.com^ +ÿï08@Ridevdirect.com^ +ÿï08@Rigadserver.net^ +ÿï08@R +ijero.com^ +ÿï08@R ikoo.com^ +%ÿï08@Rilikesponsorad.co.kr^ +ÿï08@R +illyx.com^ +"ÿï08@Rimediastreams.com^ +ÿï08@R +imfast.io^ +ÿï08@R imgsynd.com^ +ÿï08@R impactify.it^ +ÿï08@R in-da.cloud^ +ÿï08@R +infeed.tv^ +&ÿï08@Rinfidelemessenger.com^ +ÿï08@R inpicture.tv^ +!ÿï08@Rinstallwager.com^ +%ÿï08@Rinternetpourtout.com^ + ÿï08@Rip-51-255-80.eu^ +!ÿï08@Ripcdigital.co.uk^ +ÿï08@Riwadserver.com^ +ÿï08@Riyfsearch.com^ +ÿï08@R jazayr.net^ +ÿï08@R jixing8.com^ +%ÿï08@Rjournaux-du-midi.com^ +ÿï08@R jsmptjmp.com^ +"ÿï08@Rjustasingle.click^ +ÿï08@R k-words.io^ +ÿï08@Rkadserver.com^ +ÿï08@R kalqui.com^ +ÿï08@R keumshow.com^ +ÿï08@Rkiev.ua^ +!ÿï08@Rkingtopdeals.com^ +ÿï08@Rkinkypeepz.com^ +ÿï08@R +kiwys.com^ +ÿï08@R kkloud.com^ +ÿï08@R koodoo.net^ +ÿï08@R ksplayer.com^ +ÿï08@R kyoads.com^ +!ÿï08@Rlafrancebdsm.com^ +ÿï08@Rlattepush.com^ +ÿï08@Rlcmarrero.com^ +ÿï08@R leb961.com^ +#ÿï08@Rlebanonreaders.com^ +ÿï08@R lemonads.com^ +ÿï08@R lenteroi.xyz^ +#ÿï08@Rlexozfldkklgvc.com^ +ÿï08@Rlibrateam.net^ +!ÿï08@Rlien-amateur.org^ +!ÿï08@Rlifeselector.com^ +ÿï08@R ligatus.com^ +ÿï08@R limk.com^ +ÿï08@Rlinkbolic.com^ +ÿï08@R linkeasy.org^ +ÿï08@R linklift.fr^ + ÿï08@Rlinksynergy.com^ +ÿï08@Rlisthoopla.com^ +!ÿï08@Rliveparadise.com^ +ÿï08@Rliversely.com^ +ÿï08@R livetvu.com^ +ÿï08@R lkalite.info^ +ÿï08@R lookcpm.com^ +ÿï08@Rmadameglad.com^ +(ÿï08@Rmafemmepourunbillet.com^¤ +ÿï08@Rmagicfinds.com^ +ÿï08@R magnuum.com^ +!ÿï08@Rmallonire.us.com^ +(ÿï08@Rmarshmallow-digital.com^ +ÿï08@Rmatomyseo.com^ +ÿï08@R maxad.co^ +%ÿï08@Rmaxence-rigottier.tv^ + ÿï08@Rmecacroquer.com^ +ÿï08@R medi-8.net^ +ÿï08@Rmedia-clic.com^ +"ÿï08@Rmedia-serving.com^ +ÿï08@Rmediagraph.com^ +ÿï08@Rmediareps.com^ +ÿï08@Rmediasquare.fr^ +ÿï08@Rmediavoice.com^ +!ÿï08@Rmeetaffiliate.co^ +"ÿï08@Rmeetaffiliate.net^ +ÿï08@R +meexy.com^ + ÿï08@Rmegavisites.com^ +ÿï08@R menaon.com^ +!ÿï08@Rmerciconseil.com^ +ÿï08@R mfk-cpm.com^ +ÿï08@Rmilan-pub.com^ +ÿï08@Rmilfalone.com^ +ÿï08@R mirando.de^ +"ÿï08@Rmissaffiliate.com^ +ÿï08@Rmisstrends.com^ +ÿï08@Rmisterbell.com^ +ÿï08@R +mm387.com^ +ÿï08@R +mntzm.com^ +ÿï08@R mobawaba.com^ +ÿï08@R mobidea.com^ +ÿï08@R mobidude.com^ +,ÿï08@Rmobileoffers-*-download.com^ +ÿï08@R mobilup.com^ +ÿï08@R mobligo.com^ +ÿï08@Rmobsuccess.com^ +ÿï08@R mobvista.com^ +ÿï08@R mochiads.com^ +ÿï08@Rmonarchads.com^ +ÿï08@R monetiz.fr^ + ÿï08@Rmonetize-me.com^ +ÿï08@R moneytize.fr^ +ÿï08@Rmorgenfeier.de^ + ÿï08@Rmotorsregie.com^ +ÿï08@Rmoxielinks.com^ +ÿï08@R mrmserve.com^ +"ÿï08@Rmultilinkhost.com^ +ûï08@R mykocam.com^ +ÿï08@Rmypushads.com^ +ÿï08@R myserv4.com^ +ÿï08@Rmyservdir.com^ +ÿï08@R +myspot.fr^ +&ÿï08@Rmytemplatestorage.com^ +ÿï08@R myxpass.com^ +ÿï08@R natoms.com^ +%ÿï08@Rnaughtymessenger.com^ +ÿï08@Rnavitrades.com^ +ÿï08@Rneckermann.be^ +ÿï08@R nelads.com^ +ÿï08@R nend.net^ +"ÿï08@Rneoadvertising.be^ +!ÿï08@Rnepasmanquer.com^ +"ÿï08@Rnetclickstats.com^ƒ +ÿï08@Rnetcomvad.com^ +#ÿï08@Rnetmediaeurope.com^ +"ÿï08@Rnetmediaeurope.fr^ +ÿï08@R netnet44.net^ + ÿï08@Rniceduckies.com^ +ÿï08@R ninjagod.com^ +ÿï08@R ninjapd.com^ +ÿï08@Rno-adblock.com^ +ÿï08@Rnon.li^ +ÿï08@R nr-data.net^ +#ÿï08@Rnsfxaffiliates.com^ +ÿï08@R +ntl.cloud^ +ÿï08@R nuggad.net^ +ÿï08@R num-link.ru^ +$ÿï08@Robozrevatelcom.info^ +ÿï08@R +octea.com^ +ÿï08@Roctomarket.com^ +ÿï08@R oevery.com^ +ÿï08@R oftrau54.com^ +ÿï08@R onads.dk^ +ÿï08@Ronclicktop.com^ +!ÿï08@Roneinstaller.com^ +ÿï08@R onhitads.net^ +ÿï08@R +oniad.com^ +$ÿï08@Ronlinemoviestar.xyz^ +!ÿï08@Ropti-digital.com^ +ÿï08@R optimhub.com^ +#ÿï08@Rorangepublicite.fr^ +ÿï08@R ovnet.fr^ +ÿï08@R +ovnet.net^ +ÿï08@R +oxiads.fr^ +ÿï08@R palfad.com^ +"ÿï08@Rpalocalworld.info^ + ÿï08@Rpapy-voyeur.com^ + ÿï08@Rparicileweb.com^ +!ÿï08@Rparlinternet.com^ +ÿï08@R partnerz.biz^ +!ÿï08@Rpatrospermit.com^ +ÿï08@R payglad.com^ +"ÿï08@Rpaygladplayer.com^ + ÿï08@Rpee-puu-see.com^ +"ÿï08@Rpelicansource.com^ +ÿï08@R pepsia.com^ +ÿï08@Rperetasker.xyz^ +ÿï08@R perload.com^ +ÿï08@R permato.com^ +ÿï08@R pgflow.com^ +ÿï08@Rphuc.cc^ +ÿï08@Rpicxxxhub.com^ +ÿï08@Rpiximedia.com^ +ÿï08@R piximedia.fr^ +ÿï08@R pkthop.com^ +"ÿï08@Rplacedesleads.com^ +ÿï08@R platine.org^ +ÿï08@Rplay-asia.com^ +ÿï08@R playglad.com^ +"ÿï08@Rpluginnetwork.net^ +'ÿï08@Rplurielmediacenter.com^ +(ÿï08@Rplusservicepartners.com^ +ÿï08@R poparb.com^ +ÿï08@R popudom.xyz^ +ÿï08@Rpopupmaker.com^ +ÿï08@R popzila.com^ +ÿï08@R pornego.com^� +ÿï08@R +pornme.pm^ +ÿï08@Rppcadmedia.com^ +ÿï08@R +pprx.work^ +#ÿï08@Rpromo.alienbiz.com^ +.ÿï08@Rpromo.indecentes-voisines.com^ +ÿï08@Rpromobar.tools^ +!ÿï08@Rpropixelfire.com^ +ÿï08@Rprsliders.com^ +ÿï08@Rprstatics.com^ +ÿï08@Rprwidgets.com^ +ÿï08@R psmardr.com^ +ÿï08@Rpubagence.com^ +"ÿï08@Rpubinteractive.ca^ + ÿï08@Rpublicideas.com^ +ÿï08@R +publy.net^ +ÿï08@R puboclic.com^ +ÿï08@R pubstack.io^ +ÿï08@Rpubvantage.com^ +ÿï08@Rpubwebnet.com^ +ÿï08@R +pulpix.co^ +ÿï08@R puls-dz.com^ +#ÿï08@Rpureadexchange.com^ +ûï08@R purlive.com^ +ÿï08@Rpushnews24.com^ +ÿï08@R +pwieu.com^ +ÿï08@R pwspace.com^ +ÿï08@R pxltgr.com^ +!ÿï08@Rpxt-networks.com^ +ÿï08@R qcn.com.br^ +ÿï08@R qiqiww.com^ +ÿï08@R quaelead.com^ +ÿï08@R +quanta.lu^ +ÿï08@Rqwertize.link^ +ÿï08@R r867qq.net^ +"ÿï08@Rradiumnetwork.net^ +ÿï08@Rrafomedia.com^ +&ÿï08@Rrandomawesomeness.net^ +ÿï08@R rapsio.com^ +ÿï08@R rdv5a7.com^ +ÿï08@R reactads.com^ +ÿï08@Rreactivpub.com^ +ÿï08@Rreactivpub.fr^ +ÿï08@R +recoco.it^ + ÿï08@Rrederditium.com^ +$ÿï08@Rregie.audioprint.fr^ +ÿï08@Rregie24h00.com^ +ÿï08@R regiecpm.com^ +ÿï08@Rregiedepub.com^ +!ÿï08@Rreklamnative.com^ +ÿï08@Rremerciez.com^ +&ÿï08@Rrencontreroulette.com^ +#ÿï08@Rrencontreshard.com^ + ÿï08@Rrentacorner.com^ +ÿï08@R retrynow.net^ +ÿï08@R revives.club^ +ÿï08@R ringier.hu^ +ÿï08@R rlnads.net^ +%ÿï08@Rrosseladvertising.be^ +ÿï08@R rotabann.com^ +ÿï08@Rruechaude.com^ +ÿï08@R +rutrk.org^ +ÿï08@R rutvind.com^ +ÿï08@R s1vesta.com^ + ÿï08@Rsarmady-ads.com^ü +ÿï08@R sarmady.net^ +ÿï08@R sasqos.com^ +ÿï08@Rsay.fr^ + ÿï08@Rscriptutils.net^ +ÿï08@R +sdkol.com^ +!ÿï08@Rsecure-cloud.pro^ +#ÿï08@Rsecureanalytic.com^ +ÿï08@Rseprovider.com^ +ÿï08@R serpzaer.com^ +"ÿï08@Rserveurmumble.com^ +$ÿï08@Rsex-affiliation.com^ + ÿï08@Rsexequalite.com^ +%ÿï08@Rsexpennyauctions.com^ +ÿï08@R sexyxxx.biz^ + ÿï08@Rshareaholic.com^ +ÿï08@Rsharemyads.com^ +ÿï08@Rshmokiads.com^ +ÿï08@R +shoosh.co^ +!ÿï08@Rshoppingate.info^ +ÿï08@R shortgoo.com^ +ÿï08@Rshoto-kan.com^ +ÿï08@R showgirl.ch^ +ÿï08@Rsk1n.fr^ +ÿï08@Rsk8t.fr^ +!ÿï08@Rslutroulette.com^ +ïï08@Rsmartclip.net^ + ÿï08@Rsmartmovies.net^ +ÿï08@Rsmartname.com^ + ÿï08@Rsmartpush3.info^ +ÿï08@Rsmartstream.tv^ +ÿï08@Rsmartxads.com^ +ÿï08@R +smartxads^ + ÿï08@Rsnake-leads.com^ +"ÿï08@Rsocialmediadz.com^ +ÿï08@R spacepush.ru^ +ÿï08@R sperse.com^ +*ÿï08@Rsports-streams-online.xyz^ +ÿï08@Rstatic-od.com^ +ÿï08@R stickyads.tv^ +ÿï08@R storetail.io^ +ÿï08@R streamvo.com^ +3ÿï* +xhamsterlive.com08@R stripcdn.com^ +ÿï08@R strpjmp.com^ +!ÿï08@Rsublimeskinz.com^ +"ÿï08@Rsubmitsupport.com^ +ÿï08@R sunmedia.tv^ + ÿï08@Rsupravideos.com^ +"ÿï08@Rsurfaceprivee.com^ +ÿï08@R surfactif.fr^ +ÿï08@R +svonm.com^ +ÿï08@Rt4b.tv^ +ÿï08@R +t4btv.com^ +ÿï08@R tagsrvcs.com^ +ÿï08@R tapub.fr^ +ÿï08@R +tbvid.com^ +ÿï08@R tdsapi.com^ +ÿï08@R +tdscd.com^ +ÿï08@R teads.de^ +ÿï08@R teads.fr^ +ÿï08@R +teads.net^ +ÿï08@R telehan.xyz^ +ÿï08@R temp.uno^ +"ÿï08@Rtemplate-help.com^ +!ÿï08@Rtemplatehelp.com^� + ÿï08@Rthankswrite.com^ +ÿï08@Rthereforem.com^ +ÿï08@R thri.xxx^ +ÿï08@R tidido.com^ +ÿï08@R tipser.com^ +ÿï08@R tmcregie.fr^ +ÿï08@R tmstrack.com^ + ÿï08@Rtnkexchange.com^ +ÿï08@Rtnx.net^ +ûï08@R tonlive.com^ +!ÿï08@Rtools-affil2.com^ +ÿï08@R tootrash.com^ +ÿï08@Rtop-chaude.com^ +ÿï08@R top-games.me^ +'ÿï08@Rtotaladperformance.com^ +#ÿï08@Rtotale-defonce.com^ +"ÿï08@Rtoutlinternet.com^ +ÿï08@R touturf.com^ +ÿï08@R tpctrust.com^ +-ÿï08@Rtraffic-exchange-scripts.com^ +!ÿï08@Rtrafficroots.com^ +!ÿï08@Rtraffictrade.pro^ +ÿï08@R trail-m.com^ +%ÿï08@Rtransex-messenger.fr^ +%ÿï08@Rtransexmessenger.com^ + ÿï08@Rtravelbar.tools^ +ÿï08@Rtrck.eu^ +ÿï08@Rtrck.me^ +ÿï08@Rtremember.info^ + ÿï08@Rtrk-egestas.com^ +ÿï08@R truenat.bid^ +ÿï08@R tubicash.com^ +ÿï08@R tworismo.com^ +ÿï08@R ulclick.ru^ +ÿï08@Rultrafiles.co^ +"ÿï08@Runicefworld12.ovh^ +"ÿï08@Runivers-porno.com^ + ÿï08@Rurban-media.com^ +ÿï08@R vacature.com^ +ÿï08@R +vador.com^ +ÿï08@R vertoz.com^ +ÿï08@Rvgsgaming.com^ +ÿï08@Rviahelium.com^ +.08@R videoplaza.se/proxy/distributor^ +ïï08@Rvideoplaza.se^ +ÿï08@R visadd.com^ +ÿï08@R visibay.com^ +ÿï08@R +vmedia.tv^ +!ÿï08@Rvo-publishing.be^ +ÿï08@R +vorcu.com^ +ÿï08@R +vyking.io^ +ÿï08@R wamland.com^ +ÿï08@Rwbsadsdel.com^ +ÿï08@Rwbsadsdel2.com^ +ÿï08@R wbusiness.fr^ +ÿï08@Rwebcamdate.fr^ + ÿï08@Rwebmasteroo.com^ +ÿï08@Rwebtv-sexe.com^ +ÿï08@R webzodes.com^ +ÿï08@R +wedoo.com^ +!ÿï08@Rwelcome-media.fr^ +ÿï08@R wellclix.net^ +ÿï08@R wendise.com^ +ÿï08@R westzip.in^’ +ÿï08@Rwidespace.com^ +"ÿï08@Rwidgetbooster.com^ +ÿï08@R wiztube.xyz^ + ÿï08@Rwm.artcomix.com^ +ÿï08@R wslinx.com^ +ÿï08@R wwclick.su^ +ÿï08@Rwwclickgo.com^ +ÿï08@R +wydpt.com^ +ÿï08@R x-traff.com^ +ÿï08@R xaddad.com^ +ÿï08@Rxaxa.in^ +ÿï08@R +xcamz.xyz^ +!ÿï08@Rxfreeservice.com^ +ÿï08@R +xiepl.com^ +ÿï08@R xikrik.com^ +ÿï08@R +xl415.com^ +ÿï08@Rxn--ae-tja.ch^ + ÿï08@Rxn--unfi-6pa.ch^ +ÿï08@R +xpicw.top^ +ÿï08@R xxxtraff.com^ +ÿï08@Rxxxtraffic.biz^ +ÿï08@R yeesshh.com^ +ÿï08@Ryospace.co.uk^ +ïï08@R yospace.com^ +ÿï08@R yospace.net^ +!ÿï08@Ryouborafds01.com^ +ÿï08@R youwatch.org^ +ÿï08@R yume.com^ +ÿï08@R z-barre.com^ +ÿï08@R zapcdn.space^ +ÿï08@R zebestof.com^ +"ÿï08@Rzeroredirect1.com^ +ÿï08@R zmctrack.net^ +ÿï08@R zononi.com^ +ÿï08@R zxcvads.com^ +ÿï08@Rzytpirwai.net^ +(ÿï08@Rbesucherstatistiken.com^ +%ÿï08@Rcompteurdevisite.com^ +*ÿï08@Rcontadorvisitasgratis.com^ +%ÿï08@Rcontatoreaccessi.com^ +$ÿï08@Rfreecounterstat.com^ +$ÿï08@Rstatcounterfree.com^ +"ÿï08@Rwebcontadores.com^ + ÿï08@R//st-n.*/js/a.js +'08@R/*/*/*/index.php?wi=*&ws= +ÿï08@Rds1.nl^ +ÿï08@Rl1b.nl^ +ÿï08@R lt45.net^ +ÿï08@R newstat.net^ + ÿï08@Rstatic-dscn.net^ +ÿï08@Rdeskbabes.com^ +ÿï08@Rvirtuagirl.com^ + ÿï08@Rvirtuaguyhd.com^ +!ÿï08@R00ajwfx7g882.com^ +ÿï08@R0115b2b799.com^ +ÿï08@R01f648fd79.com^ +ÿï08@R03935e5357.com^ +ÿï08@R045fef1509.com^ +ÿï08@R050y9lhe8p.com^ +!ÿï08@R05qwmtwxa3ev.com^ +!ÿï08@R06j9t6cw7wu6.com^ +ÿï08@R095861554a.com^ +ÿï08@R0a74314cd1.com^ +ÿï08@R0ab9f67572.com^È +ÿï08@R0b383a4924.com^ +ÿï08@R0d0e65883b.com^ +ÿï08@R0d4f63422a.com^ +ÿï08@R0da9c10970.com^ +ÿï08@R0f3f317f1d.com^ +ÿï08@R0geyfxqh2l.top^ +!ÿï08@R0i56tboc6j5i.com^ +!ÿï08@R0n156z8y4w2f.com^ +ÿï08@R 0redirc.com^ +!ÿï08@R0u37vw5na9w0.top^ +!ÿï08@R0vsgqxbxk66w.com^ +!ÿï08@R0w1rqq69fi0e.com^ +'ÿï08@R12xgetsready12.monster^ +ÿï08@R134af949d5.com^ +ÿï08@R153acc74fd.com^ +#ÿï08@R164carlsbadcir.com^ +ÿï08@R 167g167.net^ +ÿï08@R1699bc140d.com^ +ÿï08@R16yp1ji92a.com^ +ÿï08@R18teensex.com^ +ÿï08@R1a5db63693.com^ +ÿï08@R1ab287b306.com^ +ÿï08@R1ad6ea4211.com^ +ÿï08@R1c8c1287bc.com^ +ÿï08@R 1clic1don.fr^ +ÿï08@R1d0ff645c4.com^ +ÿï08@R1e55308a88.com^ +ÿï08@R1e89ee9512.com^ +ÿï08@R1ff0de0d52.com^ +!ÿï08@R1gnyn1v3ak78.com^ +ÿï08@R 1ttv.net^ +#ÿï08@R1xlite-4262965.top^ +ÿï08@R205f21070c.com^ +ÿï08@R218cc08472.com^ +ÿï08@R2382a095f4.com^ +ÿï08@R265641f673.com^ +ÿï08@R275a93755c.com^ +ÿï08@R27yo6whr3.shop^ +ÿï08@R29972123f3.com^ +!ÿï08@R2c4p24o6zp0y.top^ +ÿï08@R3009e36989.com^ +!ÿï08@R31vcgicj50zg.top^ +ÿï08@R 3336637.com^ +ÿï08@R34pavouhj7.com^ +ÿï08@R3535d0471e.com^ +ÿï08@R362728tdg.com^ +ÿï08@R 3692022.com^ +ÿï08@R 3r1kwxcd.top^ +ÿï08@R40194e19e6.com^ +ÿï08@R41869c9436.com^ +ÿï08@R43512fee11.com^ +ÿï08@R45eijvhgj2.com^ +ÿï08@R4632c60a96.com^ +ÿï08@R474b0fa000.com^ +ÿï08@R54176897ed.com^ +ÿï08@R5500a1052e.com^ +ÿï08@R55320fa45d.com^ +ÿï08@R572c52928b.com^ +ÿï08@R573569djd.com^ +ÿï08@R58081163e7.com^ +ÿï08@R580a3132d3.com^ +ÿï08@R586ee111d1.com^ +!ÿï08@R5i8xkqjmqubv.top^ +ÿï08@R638236rpn.com^ô +ÿï08@R6390becedf.com^ +!ÿï08@R64p3am9x95ct.com^ +ÿï08@R 69688qp.com^ +ÿï08@R6991eeac66.com^ +ÿï08@R707309096f.com^ +ÿï08@R7116c9673e.com^ +ÿï08@R711f8130e4.com^ +!ÿï08@R71692fai4cc0.com^ +ÿï08@R720171f1e4.com^ +ÿï08@R7378a03ff8.com^ +5ÿï08@R%73ed366d3137ec936bd60b1184467776.com^ +ÿï08@R7652c22de1.com^ +ÿï08@R7663a48aa7.com^ +ÿï08@R772f4bba41.com^ +ÿï08@R7737d3a561.com^ +ÿï08@R773fd92793.com^ +ÿï08@R77cae4574b.com^ +ÿï08@R77ce6b9dca.com^ +ÿï08@R78187cbed6.com^ +ÿï08@R78af853196.com^ +ÿï08@R7981d0e1b2.com^ +ÿï08@R839944c715.com^ +ÿï08@R8426208bdb.com^ +ÿï08@R84968e8ab0.com^ +ÿï08@R84f017b608.com^ +ÿï08@R887e0c24ea.com^ +ÿï08@R8966cbfc9b.com^ +ÿï08@R897300f105.com^ +ÿï08@R9013e61823.com^ +ÿï08@R90e2545579.com^ +ÿï08@R917c626609.com^ +ÿï08@R92afa3840a.com^ +ÿï08@R932dbf2491.com^ +ÿï08@R938b97e5ba.com^ +ÿï08@R93d6b7d3b1.com^ +ÿï08@R94a1b78c82.com^ +ÿï08@R +9anime.to^ +!ÿï08@R9itmr1lzaltn.com^ +!ÿï08@R9kkf51ovqex1.com^ +ÿï08@Ra098a4ad81.com^ +ÿï08@Ra18d33cefa.com^ +ÿï08@Ra1bbcd100e.com^ +ÿï08@Ra1c08555bc.com^ +ÿï08@Ra272118d17.com^ +ÿï08@Ra37b0e4ef7.com^ +ÿï08@Ra45720dd31.com^ +ÿï08@Ra5058f0d07.com^ +ÿï08@Ra6947f0e54.com^ +ÿï08@Ra6e822f510.com^ +ÿï08@Raa12b32ecc.com^ +ÿï08@Raa92754c5e.com^ +ÿï08@Raaa45e90eb.com^ + ÿï08@Raajoqmytnrq.com^ +ÿï08@R aanqylta.com^ +ÿï08@Raba7348092.com^ +#ÿï08@Rabandumimputed.com^ +"ÿï08@Rabanteswoodie.top^ +"ÿï08@Rabaolokvmmblr.top^ +"ÿï08@Rabaolokvmmwyv.top^ +"ÿï08@Rabaolokvmmylw.top^ +"ÿï08@Rabaolokyjmolw.top^ +"ÿï08@Rabberantbeefy.com^ +&ÿï08@Rabberantextending.com^ +!ÿï08@Rabcradilytor.com^§ +"ÿï08@Rabdestolivile.top^ +"ÿï08@Rabdicatefluke.com^ +&ÿï08@Rabdicatehorrified.com^ + ÿï08@Rabdomeneast.com^ +ÿï08@Rabdqgbkux.xyz^ +#ÿï08@Rabductobelias.shop^ +ÿï08@R abdwxhao.com^ +%ÿï08@Rabedflaskuncover.com^ +,ÿï08@Rabedwithdrawalautograph.com^ +&ÿï08@Rabedworthlesscure.com^ +&ÿï08@Rabetpreoccupyruby.com^ +ÿï08@Rabf77420f8.com^ +"ÿï08@Rabieghobeish.shop^ +(ÿï08@Rabjectpreludeparity.com^ +"ÿï08@Rabjmkkowbobor.top^ +"ÿï08@Rabjmkkowboymb.top^ +(ÿï08@Rabjureragspecialize.com^ +"ÿï08@Rabkajbvozmlam.top^ +"ÿï08@Rabkajbvozmomb.top^ +"ÿï08@Rabkajbvozmrkv.top^ +.ÿï08@Rablazesubconsciousadulate.com^ +ÿï08@Rablecheap.com^ +ÿï08@Rablecolony.com^ +$ÿï08@Rablyglossmartyr.com^ + ÿï08@Rabmagbychan.com^ +&ÿï08@Rabnegateexcavator.com^ +"ÿï08@Rabnormalrebel.com^ +$ÿï08@Rabolishmentpass.com^ +)ÿï08@Rabominableexhibition.com^ +)ÿï08@Rabonnementdisconnect.com^ +,ÿï08@Raboriginaldisturbthirty.com^ +,ÿï08@Raboveaveragefinallycast.com^ +/ÿï08@Raboveaverageguidancecarter.com^ +)ÿï08@Raboveaverageheavenly.com^ +)ÿï08@Raboveboardcomplicate.com^ +#ÿï08@Rabovenormtwist.com^ +$ÿï08@Rabqqlfhyeqhdhli.xyz^ ++ÿï08@Rabrasivefirsthandsadly.com^ +"ÿï08@Rabridgealgedo.com^ +ÿï08@Rabroadwas.com^ +"ÿï08@Rabruptaccount.com^ +)ÿï08@Rabsentagendawrecking.com^ +-ÿï08@Rabsolutebarbarafashioned.com^ +)ÿï08@Rabsolutecouplediffer.com^ +'ÿï08@Rabsolutelysaunabuy.com^ +2ÿï08@R"absolutepropositionmayonnaise.com^ +.ÿï08@Rabsorbingelsewheredisobey.com^ +%ÿï08@Rabsorptionliquor.com^ + ÿï08@Rabspeamode.live^ +&ÿï08@Rabstainreckonyawn.com^ +#ÿï08@Rabsurditycanal.com^ +'ÿï08@Rabundantminussteal.com^ +"ÿï08@Rabundantsneer.com^ +ÿï08@Rabwiswry.live^ +ÿï08@R abwsunml.com^ +ÿï08@R abyssfar.com^ +"ÿï08@Rabzkyjaqlooja.top^ +ÿï08@Rac83ccdb8f.com^ +%ÿï08@Racademicencircle.com^ +!ÿï08@Raccederepair.com^ +$ÿï08@Raccedesgravel.click^ +ÿï08@Raccentmine.com^ +)ÿï08@Racceptabledancemixed.com^ +%ÿï08@Racceptablefabric.com^± +-ÿï08@Racceptablejitterdisgrace.com^ +*ÿï08@Racceptanceathwartwant.com^ +$ÿï08@Racceptimpatient.com^ +#ÿï08@Raccessorydairy.com^ +#ÿï08@Raccessorygraph.com^ +.ÿï08@Raccidentalcrownincredible.com^ +-ÿï08@Raccidentallycopiespatted.com^ +&ÿï08@Raccidentdemocracy.com^ +#ÿï08@Racclaimbedtime.com^ +'ÿï08@Racclaimed-exchange.com^ +#ÿï08@Racclaimeddates.com^ +"ÿï08@Racclalmeddate.com^ +'ÿï08@Raccoladetypesoasis.com^ +&ÿï08@Raccommodateabject.com^ +0ÿï08@R accommodatingspygenetically.com^ +*ÿï08@Raccommodationsubsided.com^ ++ÿï08@Raccompanimentrealistic.com^ ++ÿï08@Raccompanyingparameters.com^ +&ÿï08@Raccomplicemiracle.com^ +'ÿï08@Raccordancecaskmilk.com^ +!ÿï08@Raccountfluid.com^ +,ÿï08@Raccountingstopsparkling.com^ ++ÿï08@Raccountshierarchyprice.com^ +%ÿï08@Raccountssticking.com^ +$ÿï08@Raccreditedquite.com^ +%ÿï08@Raccreteprocess.click^ +$ÿï08@Raccuratewistful.com^ +)ÿï08@Raccusationfastidious.com^ +(ÿï08@Raccusedmilkdemanded.com^ +&ÿï08@Raccuseraccustomed.com^ +)ÿï08@Raccustomednettlecurt.com^ + ÿï08@Raceabnegate.com^ +%ÿï08@Racerbitylockdown.com^ +$ÿï08@Racerlipeptone.space^ +"ÿï08@Racerolawaists.com^ +#ÿï08@Racervalpaussid.com^ +"ÿï08@Racetinsjumbos.top^ + ÿï08@Raceyearling.com^ +ÿï08@Racglottku.com^ + ÿï08@Rachyaplenty.com^ +&ÿï08@Rachyonwardballast.com^ +$ÿï08@Rachyrepeatitchy.com^ +ÿï08@Racidmercy.com^ +!ÿï08@Racidprolific.com^ +-ÿï08@Racknowledgedversionbosom.com^ +ÿï08@Racobnnvet.com^ +ÿï08@R acoossa.top^ +!ÿï08@Racoponposeur.com^ +,ÿï08@Racornfacilitatechecking.com^ +'ÿï08@Racornfarmerconnate.com^ +"ÿï08@Racquiredcycle.com^ + ÿï08@Racquiretank.com^ +'ÿï08@Racquitfamouscavity.com^ + ÿï08@Racquitjeans.com^ + ÿï08@Racquitmidst.com^ +#ÿï08@Racrasiatickles.com^ +&ÿï08@Racrebackcharacter.com^ +&ÿï08@Racrepantherrecite.com^ +$ÿï08@Racrooksloanea.click^ + ÿï08@Ractedsickle.com^ +ÿï08@Ractingturk.com^ +#ÿï08@Ractingwoodland.com^ +ÿï08@Ractio.systems^ +ÿï08@Ractionrtb.com^‡ +%ÿï08@Ractivitycommence.com^ +&ÿï08@Ractknuckleruinous.com^ + ÿï08@Ractoriends.info^ +ÿï08@Ractressact.com^ + ÿï08@Ractthrilled.com^ +(ÿï08@Ractuallypartsspiral.com^ +-ÿï08@Ractuallysicknessactually.com^ +ÿï08@Ractuanius.com^ +"ÿï08@Racylbirri.digital^ +!ÿï08@Radamantslash.com^ +ÿï08@R adanald.icu^ +ÿï08@Radaptapes.com^ +)ÿï08@Radaptationdeployment.com^ +)ÿï08@Radaptationreconsider.com^ +!ÿï08@Radaptedshake.com^ +$ÿï08@Radaptlipclamour.com^ +ÿï08@Raddgreater.com^ +%ÿï08@Raddingdetestable.com^ +'ÿï08@Radditionspearlthaw.com^ + ÿï08@Raddresscake.com^ +%ÿï08@Raddresseerosebud.com^ +ÿï08@R adeclc.com^ +ÿï08@Radepticily.com^ +%ÿï08@Radeptoksuspicion.com^ +ÿï08@Radfaae31e2.com^ +ÿï08@Radheretalk.com^ +,ÿï08@Radjoiningrolesuspicious.com^ +&ÿï08@Radjoiningsentence.com^ +&ÿï08@Radjustlinklifting.com^ +(ÿï08@Radjustmentthesilver.com^ + ÿï08@Radmedia.network^ +#ÿï08@Radmirablecraft.com^ ++ÿï08@Radmiralbusinesswilliam.com^ + ÿï08@Radmiralugly.com^ +.ÿï08@Radmireddepressedsarcastic.com^ +,ÿï08@Radmiredeterioratesinner.com^ ++ÿï08@Radmiredprototypebegins.com^ + ÿï08@Radmirercape.com^ +$ÿï08@Radmissiblepedal.com^ +$ÿï08@Radmithelperbusy.com^ +!ÿï08@Radmitpursued.com^ +!ÿï08@Radmonishmare.com^ +(ÿï08@Radmonishtopmostacid.com^ +ÿï08@R adnetwrk.com^ +ÿï08@R adodeer.com^ +#ÿï08@Radolescentfish.com^ +3ÿï08@R#adolescentsuperstitioustidying.com^ +ÿï08@Radopockets.com^ + ÿï08@Radoproperly.com^ +"ÿï08@Radoptbeggarly.com^ +,ÿï08@Radoptcraneinexhaustible.com^ +$ÿï08@Radoptedablative.com^ +(ÿï08@Radoptedlaxstrenuous.com^ +&ÿï08@Radoptionconcerned.com^ +!ÿï08@Radoriinggirl.com^ +-ÿï08@Radorndiscussionhoarfrost.com^ +*ÿï08@Radornexampleauthority.com^ +#ÿï08@Radornmenttaunt.com^ +$ÿï08@Radpointbreakrtb.com^ ++ÿï08@Radrenalineanywaystaple.com^ +"ÿï08@Radroitcertain.com^ ++ÿï08@Radroitdeceitcongestion.com^ +ÿï08@R ads-blue.com^ +"ÿï08@Radsadminister.com^— +ÿï08@R adslop.com^ +ÿï08@Radsmansion.com^ +ÿï08@Radsratcarp.com^ +!ÿï08@Radsrealpublic.ru^ +(ÿï08@Radstraininggrandson.com^ +ÿï08@Radtingest.com^ +#ÿï08@Radtneosqnnitef.com^ +"ÿï08@Radtoqbuejunef.com^ +ÿï08@Radtorchest.com^ +ÿï08@Radtracker2.com^ +ÿï08@R adtrk20.com^ +#ÿï08@Radulateearring.com^ +(ÿï08@Radulateprofessnorth.com^ +0ÿï08@R adulatoryproceedingslookout.com^ +%ÿï08@Radvancementalong.com^ +.ÿï08@Radvancementcircuscaptured.com^ +'ÿï08@Radvancementgreeted.com^ +%ÿï08@Radvancementpains.com^ +$ÿï08@Radvancingtheirs.com^ +'ÿï08@Radvantageroughplay.com^ ++ÿï08@Radvantagesblareseizure.com^ +%ÿï08@Radventurerarmory.com^ +$ÿï08@Radventuroustame.com^ +.ÿï08@Radvertiseconclusiveactual.com^ + ÿï08@Radviseforty.com^ +&ÿï08@Radvisorbailedroof.com^ +(ÿï08@Radvisorhurtfulqueen.com^ +&ÿï08@Radvisorshredbonus.com^ +!ÿï08@Raeonistmotet.top^ +"ÿï08@Raeuiazspafmbu.com^ +#ÿï08@Rafernanimbarge.top^ +#ÿï08@Raffableoffense.com^ +!ÿï08@Raffairrocket.com^ +(ÿï08@Raffectedwrestproven.com^ +'ÿï08@Raffectionatedragon.com^ +4ÿï08@R$affectionatefurniturehypothesis.com^ +%ÿï08@Raffectionmagnify.com^ +)ÿï08@Raffectsyntaxthousand.com^ +$ÿï08@Raffiliatetracker.io^ +-ÿï08@Raffirmativeinferiorfixed.com^ +ÿï08@Rafflatebog.top^ +,ÿï08@Rafflictionevilorganized.com^ +$ÿï08@Raffluentcompere.com^ +"ÿï08@Raffluentmirth.com^ +ÿï08@R afikdvzf.com^ +$ÿï08@Rafraidferocious.com^ +$ÿï08@Rafraidhardcover.com^ +ÿï08@Rafraidsoil.pro^ +$ÿï08@Rafreshexpanding.com^ +!ÿï08@Rafreshtamper.com^ +%ÿï08@Rafternoongusdark.com^ +#ÿï08@Rafternoonreeds.com^ +.ÿï08@Rafterthoughtconsentedfame.com^ +"ÿï08@Raftjohnanodes.com^ + ÿï08@Ragadewottan.com^ + ÿï08@Ragaindivine.com^ +"ÿï08@Ragalinoonetor.com^ + ÿï08@Ragapikachua.com^ +"ÿï08@Ragatorkoaltor.com^ +(ÿï08@Ragedmigrationpepper.com^ +!ÿï08@Ragedpagefat.live^ +#ÿï08@Ragendacomedian.com^ +&ÿï08@Ragentweakermental.com^ +)ÿï08@Raggravationencourage.com^¾ +/ÿï08@Raggregatedcompetitivefrock.com^ +$ÿï08@Raggregatedcorky.com^ +!ÿï08@Ragilespatter.com^ +)ÿï08@Ragilewhirlpoolorator.com^ +&ÿï08@Ragingcrawledarose.com^ +!ÿï08@Ragitatecough.com^ +$ÿï08@Ragitategluttony.com^ +(ÿï08@Ragitationfourthplug.com^ +'ÿï08@Ragitationmedicdrug.com^ +#ÿï08@Raglossahoofers.top^ + ÿï08@Raglowpanion.top^ + ÿï08@Raglyretirer.top^ +ÿï08@Ragoholiday.com^ +#ÿï08@Ragoniedlaissez.com^ +-ÿï08@Ragonyenginedrivermansion.com^ +$ÿï08@Ragrariancapable.com^ +*ÿï08@Ragrariansabletogether.com^ +/ÿï08@Ragreeablebeggarlyvarieties.com^ +!ÿï08@Ragreeciwoapt.net^ +&ÿï08@Ragreedembodyonset.com^ +'ÿï08@Ragreementphotocopy.com^ +(ÿï08@Ragreementunfinished.com^ +!ÿï08@Ragregeatweel.top^ +$ÿï08@Ragregesmimosas.shop^ +/ÿï08@Ragricultureprowesscardinal.com^ +ÿï08@R agrophip.net^ + ÿï08@Rahaoverturn.com^ +%ÿï08@Raheadlimitedplug.com^ +#ÿï08@Rahimsaslatrate.com^ +ÿï08@R aicandy.link^ +ÿï08@Raidsairdul.net^ + ÿï08@Raidsbecry.click^ +!ÿï08@Raidsideused.live^ +"ÿï08@Raidsoamsaiphu.net^ +"ÿï08@Raifuwgcygccfp.com^ +!ÿï08@Raigletfriuli.com^ + ÿï08@Railcloister.com^ + ÿï08@Railtodsookr.com^ +#ÿï08@Raimextractpunk.com^ +,ÿï08@Raimingwildernessinterim.com^ +'ÿï08@Raimlesscologneyolk.com^ +(ÿï08@Raimoverwhelmingpeek.com^ +ÿï08@Raimpoleefu.com^ +!ÿï08@Raimpoozoatho.com^ +ÿï08@Rainelremp.com^ +ÿï08@R ainsaibs.xyz^ +"ÿï08@Rairbillunset.shop^ +*ÿï08@Rairborneassaultshrink.com^ +"ÿï08@Rairbornemiser.com^ +'ÿï08@Rairlinervegetarian.com^ +!ÿï08@Rairsnowking.live^ +ÿï08@R aiservice.vn^ +"ÿï08@Raisleovershoe.com^ +ÿï08@R aitarsou.com^ +!ÿï08@Raitchdiets.click^ +ÿï08@Raitraykui.xyz^ + ÿï08@Raitskhedahs.top^ +ÿï08@Raiwhooltoz.net^ +ÿï08@Raj2142.online^ +ÿï08@Raj2178.online^ +!ÿï08@Rajjkmoyjlawj.top^ +!ÿï08@Rajjkmoyjllmm.top^ +!ÿï08@Rajjkmozrremm.top^ +ÿï08@Rajsyxphfpr.com^à +ÿï08@Rakdigolema.com^ +!ÿï08@Rakinwrecking.com^ +"ÿï08@Rakjoyjkrwaaab.top^ +"ÿï08@Rakjoyjkrwalaa.top^ +"ÿï08@Raklmjylwvkqbm.top^ +"ÿï08@Raklmjylwvkryr.top^ +ÿï08@R akuigesf.com^ +"ÿï08@Rakvvkmrqovklv.top^ +"ÿï08@Rakvvkmrqovmaj.top^ +"ÿï08@Rakzawlykqleew.top^ +"ÿï08@Rakzawlykqlmer.top^ +$ÿï08@Ralarmsuspicious.com^ +!ÿï08@Ralblazikener.com^ ++ÿï08@Ralbumobligationmorally.com^ +#ÿï08@Ralcaydecubages.com^ +&ÿï08@Ralcoholcheckoccur.com^ +!ÿï08@Raldusmiskals.com^ +ÿï08@Raleassbun.site^ + ÿï08@Ralebrinkfed.com^ +ÿï08@Ralecwarmer.com^ +)ÿï08@Ralexisceilingrelease.com^ +!ÿï08@Ralezanmuzzy.shop^ +!ÿï08@Ralfredthwart.com^ +(ÿï08@Ralgo.creepingbrings.com^ +"ÿï08@Ralhennabahuma.com^ +#ÿï08@Ralienatecommit.com^ +#ÿï08@Ralightdrugwith.com^ +%ÿï08@Ralightmiraculous.com^ +&ÿï08@Ralignmentflattery.com^ +(ÿï08@Ralimonylaterdevious.com^ +#ÿï08@Rall-prizes2024.com^ + ÿï08@Rallayselect.com^ +#ÿï08@Rallaysplaners.shop^ +#ÿï08@Rallegationbody.com^ +%ÿï08@Rallegationobtain.com^ ++ÿï08@Rallegemagnanimityensue.com^ +$ÿï08@Rallergyderout.click^ ++ÿï08@Ralleviatedesignertheir.com^ +$ÿï08@Ralleycranealoof.com^ +ÿï08@Ralleygoat.com^ +&ÿï08@Ralliedbiopsybroke.com^ +(ÿï08@Ralliedrebelcreative.com^ +ÿï08@Ralllinear.com^ +ÿï08@Rallmobexpo.com^ +$ÿï08@Rallnestinfinite.com^ +*ÿï08@Rallocatefemaleshunger.com^ +"ÿï08@Rallotshyoides.com^ ++ÿï08@Rallowcharitablepageant.com^ +&ÿï08@Rallownotification.com^ +'ÿï08@Rallownotifications.com^ +ÿï08@Rallowpush.com^ +'ÿï08@Rallowssnagaffinity.com^ ++ÿï08@Rallowsstripesdejection.com^ +)ÿï08@Ralloybreathlesshomes.com^ +"ÿï08@Rallrightpaint.com^ +ÿï08@Rallsprang.com^ +!ÿï08@Ralludedeagle.com^ +!ÿï08@Ralludedrusty.com^ +#ÿï08@Rallurefaintest.com^ ++ÿï08@Rallusionappendslippery.com^ +!ÿï08@Rallworldinfo4.ru^ +$ÿï08@Rallworldinfo4.store^ +!ÿï08@Ralmsshroudy.shop^ +!ÿï08@Ralnathmeetly.com^� +$ÿï08@Raloftriottomato.com^ +"ÿï08@Ralonefabulous.com^ +ÿï08@R alonged.com^ +#ÿï08@Raloofdissemble.com^ + ÿï08@Raloofpunish.com^ ++ÿï08@Raloofsunstrokecircular.com^ +"ÿï08@Raloysiaixias.shop^ +ÿï08@Ralpacahizz.com^ +'ÿï08@Ralphabetmondayfowl.com^ +(ÿï08@Ralrightkindergarten.com^ +ÿï08@Ralsowhirl.com^ + ÿï08@Raltairceleb.com^ +%ÿï08@Ralternatelicking.com^ +$ÿï08@Ralternativefoul.com^ +*ÿï08@Ralthoughgunfiresurely.com^ +-ÿï08@Raltitudehighjackhonorary.com^ +-ÿï08@Raltogethereyesightfibber.com^ +,ÿï08@Raluminiumreluctanterect.com^ +!ÿï08@Ralzlwkkwymlw.top^ +!ÿï08@Ramagaprevent.com^ +!ÿï08@Ramandeganev.shop^ +"ÿï08@Ramanduscaster.top^ + ÿï08@Ramangrunts.shop^ +#ÿï08@Ramassantarctic.com^ +"ÿï08@Ramazementpink.com^ +#ÿï08@Ramazementslick.com^ +.ÿï08@Ramazeprotectiveabonnement.com^ +#ÿï08@Ramazinglyclimb.com^ +(ÿï08@Ramazinglyperception.com^ +(ÿï08@Ramazingtoilalthough.com^ ++ÿï08@Rambassadorvaultvisited.com^ +!ÿï08@Rambeartictor.com^ +&ÿï08@Rambiguityhalfmoon.com^ +*ÿï08@Rambiguityhelperapathy.com^ +*ÿï08@Rambiguityornamenttell.com^ +-ÿï08@Ramendsdeliveredpractical.com^ +,ÿï08@Ramendspreposterousalter.com^ +#ÿï08@Ramericadebus.click^ +)ÿï08@Ramiablelookssuspense.com^ +ÿï08@R amidbow.com^ +#ÿï08@Ramildarclaes.space^ +"ÿï08@Ramjllwblmlwbb.top^ +"ÿï08@Ramjllwbovlvbb.top^ +"ÿï08@Ramlyyqjvjvber.top^ + ÿï08@Ramnestygall.com^ +%ÿï08@Ramnestyhailstone.com^ +$ÿï08@Ramnionprunted.click^ +$ÿï08@Ramongassessment.com^ +"ÿï08@Ramongremember.com^ +)ÿï08@Ramorallibrarysmother.com^ +#ÿï08@Ramorismpenaea.shop^ +&ÿï08@Ramorphouscomprise.com^ + ÿï08@Ramouronllne.com^ +!ÿï08@Rampelisgulps.top^ +(ÿï08@Ramplifynervesestate.com^ +#ÿï08@Ramplitudejenny.com^ +*ÿï08@Ramplitudereportmoscow.com^ +ÿï08@Ramstarlyer.com^ +ÿï08@Ramtmenlana.com^ +ÿï08@Ramucresol.com^ + ÿï08@Ramuletcheek.com^ +ÿï08@R amuseer.com^ +#ÿï08@Ramusesjambone.shop^ +&ÿï08@Ramuseulteriorpair.com^ã + ÿï08@Ramusingsnow.pro^ +"ÿï08@Ramvbwleayvabj.top^ +"ÿï08@Ramvbwleayvoba.top^ +ÿï08@R amxpceol.com^ +!ÿï08@Ramylonbenne.shop^ +!ÿï08@Ramylsturkdom.com^ +"ÿï08@Ramzrjyzjolzlv.top^ +%ÿï08@Ranadissolvedless.com^ +ÿï08@Ranadistil.com^ +"ÿï08@Ranahitagirted.uno^ +$ÿï08@Ranalaxadulatory.com^ +ÿï08@R anape12.xyz^ +#ÿï08@Ranatomyassault.com^ +-ÿï08@Ranatomyelegancephotocopy.com^ + ÿï08@Ranchovydown.com^ +'ÿï08@Ranchovyliversquirt.com^ +!ÿï08@Randastegigas.com^ +#ÿï08@Randevoskolly.click^ +!ÿï08@Randiafanweed.top^ +#ÿï08@Randroidundwelt.com^ +ÿï08@Raneathbatt.top^ +ÿï08@Ranelerheen.top^ +$ÿï08@Rangekokjarabe.click^ +$ÿï08@Rangelaprincipal.com^ +'ÿï08@Rangelcarrysideways.com^ ++ÿï08@Rangerfondnessspecified.com^ +&ÿï08@Ranglemarrowoccurs.com^ +)ÿï08@Rangrilyunbuttoncouch.com^ +"ÿï08@Ranidianskirts.com^ +(ÿï08@Ranimateddanglediary.com^ +/ÿï08@Ranimatedprosecutedangerous.com^ +!ÿï08@Ranimeplaynow.com^ ++ÿï08@Ranimositycandiedcalmly.com^ + ÿï08@Rannaballoon.com^ +(ÿï08@Rannaepicforgiveness.com^ +"ÿï08@Rannexecamelot.com^ +ÿï08@R annexere.top^ +%ÿï08@Rannihilationtile.com^ +/ÿï08@Rannotationsincereexistence.com^ +%ÿï08@Rannouncenutshell.com^ +-ÿï08@Rannoyancepromptlyfunding.com^ +&ÿï08@Rannulmentsmallest.com^ +*ÿï08@Ranothertuesdaypattern.com^ +"ÿï08@Ranqnbzyvbkkan.top^ +!ÿï08@Rantennamarsh.com^ + ÿï08@Rantennascan.com^ +"ÿï08@Ranthushowever.top^ +"ÿï08@Rantiaespheges.com^ + ÿï08@Rantiblinked.com^ +%ÿï08@Rantiquarianjenny.com^ +(ÿï08@Rantiquityundeniable.com^ +#ÿï08@Rantiunbearable.com^ +%ÿï08@Rantlerrhinoceros.com^ +(ÿï08@Rantlersolidthrilled.com^ +#ÿï08@Rantonyexpected.com^ +"ÿï08@Ranubiscycliae.com^ +#ÿï08@Ranvpgesutfndmi.com^ +ÿï08@R anwap.ru^ +$ÿï08@Ranxiousairliner.com^ +%ÿï08@Ranxiousjayholder.com^ +ÿï08@Ranxmvmski.com^ +#ÿï08@Ranymorestaying.com^ +ÿï08@Ranyonemost.com^ +#ÿï08@Raozoiekopoaka.shop^ö + ÿï08@Rapartgamble.com^ +!ÿï08@Rapauzauxauls.net^ +(ÿï08@Rapeobservedoverlook.com^ +!ÿï08@Rapercusdimly.com^ + ÿï08@Raperytaplet.com^ +#ÿï08@Raphasiacarrels.com^ +%ÿï08@Raphizoguntaken.click^ +ÿï08@Rapinchcab.life^ +ÿï08@R +apl373.me^ ++ÿï08@Rapocalypsegulliblemood.com^ +#ÿï08@Rapogoncaviars.shop^ +%ÿï08@Rapologizepitfall.com^ +&ÿï08@Rapostrophesubdued.com^ +ÿï08@Rapp123456.xyz^ +!ÿï08@Rapparelerupt.com^ +$ÿï08@Rapparelimposter.com^ +ÿï08@R appcdn01.xyz^ +.ÿï08@Rappearedsuspendedcommands.com^ + ÿï08@Rappearsloin.com^ +"ÿï08@Rappeaserepose.com^ +(ÿï08@Rappeasetruthinclude.com^ +'ÿï08@Rappetitethreatened.com^ +)ÿï08@Rapplesconvertedpansy.com^ +)ÿï08@Rappletdejectedsounds.com^ +,ÿï08@Rapplicantsmilesassembly.com^ ++ÿï08@Rapplicanttowardsbureau.com^ +,ÿï08@Rapplicationsstereocanoe.com^ +(ÿï08@Rappointedbaseslogan.com^ +!ÿï08@Rapprebuffnat.com^ +'ÿï08@Rappreciatesaucepan.com^ +)ÿï08@Rappreciatewedgelearn.com^ +(ÿï08@Rapprehensivereplica.com^ +(ÿï08@Rappropriateinaction.com^ +(ÿï08@Rapprovelongestrepel.com^ +-ÿï08@Rapproximatecaloriegallon.com^ + ÿï08@Rapritifka.click^ +"ÿï08@Rapronstrongly.com^ +1ÿï08@R!aptitudesupposedlyaccountant.com^ +ÿï08@Raptlycover.com^ +ÿï08@Raptlytree.com^ +ÿï08@Raptoshoath.net^ +ÿï08@R aptouste.net^ + ÿï08@Raptpurerun.live^ +!ÿï08@Rapusduodena.shop^ +ÿï08@Raqdkehbez.com^ +"ÿï08@Raqnazbbjlezqa.top^ +ÿï08@R arabcuff.com^ +ÿï08@Rarabsewing.com^ +!ÿï08@Rarangosummer.top^ + ÿï08@Rarboressen.shop^ +,ÿï08@Rarchbishopthighsubsided.com^ +"ÿï08@Rarcherseizure.com^ +3ÿï08@R#architecturediscussdifferently.com^ +&ÿï08@Rarcticclairvoyant.com^ +%ÿï08@Rardourunderneath.com^ +"ÿï08@Rareagrammanor.com^ +ÿï08@Rareconform.com^ + ÿï08@Rarenitezill.com^ +ÿï08@Rarfobkorfa.com^ + ÿï08@Rargondenial.com^ +#ÿï08@Rargyllsleonora.top^ +!ÿï08@Rariessifts.click^ +!ÿï08@Rarioiundated.com^ +%ÿï08@Rarithmeticrobust.com^™ +!ÿï08@Rarkabstoppit.com^ + ÿï08@Rarkcalamity.com^ +"ÿï08@Rarkharmonious.com^ +#ÿï08@Rarmataangrily.shop^ +(ÿï08@Rarmedauditoriumclog.com^ +%ÿï08@Rarmhighlyexpress.com^ +.ÿï08@Rarmisticediscrepancyswine.com^ +#ÿï08@Rarmoryassembly.com^ +%ÿï08@Rarmpitoriginally.com^ +!ÿï08@Raromaexplode.com^ +!ÿï08@Raroseexploit.com^ ++ÿï08@Rarosefairfaxadditional.com^ +(ÿï08@Rarosegeorgianaglued.com^ +"ÿï08@Rarpentsyogis.shop^ +#ÿï08@Rarraigncompter.com^ + ÿï08@Rarriedstro.work^ +$ÿï08@Rarrivesomewhere.com^ +"ÿï08@Rarroyaphonons.com^ +ÿï08@Rarsonclot.com^ +$ÿï08@Rarsoncomelydove.com^ +%ÿï08@Rartannagentlemen.com^ +#ÿï08@Rarticlewhistle.com^ +ÿï08@Rarulofalk.shop^ +!ÿï08@Rasarhchromas.top^ +"ÿï08@Rasexcadrillom.com^ +ÿï08@Rashinetalk.com^ +%ÿï08@Rashrafiaphacic.click^ +"ÿï08@Rashtrayassist.com^ +#ÿï08@Rasiarchinnards.com^ + ÿï08@Rasilusenage.com^ + ÿï08@Rasmonfernor.com^ +!ÿï08@Raspenpalette.com^ +(ÿï08@Rasperityresidential.com^ + ÿï08@Rasqpniwvxea.com^ +ÿï08@Rassadbee.live^ + ÿï08@Rassignlabor.com^ +&ÿï08@Rassistimplemented.com^ +"ÿï08@Rassneaselchan.com^ +'ÿï08@Rassurancedangerous.com^ +(ÿï08@Rastonishing-service.com^ +#ÿï08@Rastylararsines.com^ +"ÿï08@Ratadsoalsuget.net^ +ÿï08@Ratakokaju.shop^ +#ÿï08@Ratchshipsmotor.com^ + ÿï08@Ratedtrevor.guru^ +ÿï08@Ratenpegman.com^ +ÿï08@Rathbashara.com^ + ÿï08@Ratheismcard.com^ +ÿï08@R atimaze.com^ +"ÿï08@Ratmagcargotor.com^ +!ÿï08@Ratomsunsober.com^ +$ÿï08@Ratonementwisely.com^ +$ÿï08@Ratrennepatball.shop^ +"ÿï08@Ratseakingchan.com^ +#ÿï08@Ratslowpokechan.com^ + ÿï08@Ratsnivychan.com^ +ÿï08@Ratswabluom.com^ +#ÿï08@Rattarpantoon.click^ +$ÿï08@Rattemptsbetween.com^ +"ÿï08@Rattendingpets.com^ +#ÿï08@Ratterrhagmall.shop^ +ÿï08@R attictop.com^ +ÿï08@Rattirecit.shop^ +%ÿï08@Rattractglamorous.com^ã + ÿï08@Rauchoompimt.com^ +!ÿï08@Raudienceline.com^ + ÿï08@Raugejoulser.net^ +"ÿï08@Raughoomsoushy.com^ +!ÿï08@Raugnaimpeept.net^ +ÿï08@Raugraisto.com^ +$ÿï08@Rauhailsoumoofot.net^ +ÿï08@R aukroaze.xyz^ +ÿï08@Rauldbosh.click^ + ÿï08@Raulosarkie.shop^ +"ÿï08@Rauntresodamid.com^ +ÿï08@R auphawhu.net^ +$ÿï08@Raurineflytier.click^ +!ÿï08@Rautemismal.click^ +-ÿï08@Rauthoritativepartedusher.com^ +"ÿï08@Rauthorsradius.com^ +$ÿï08@Rautigexistoafie.net^ +#ÿï08@Rautomaticdrown.com^ +ÿï08@Rautomatizuj.cz^ +'ÿï08@Rautopsyextendedyou.com^ +ÿï08@Rautopsyjam.com^ +ÿï08@Rautopsytan.com^ +ÿï08@Rautorekrb.bid^ +!ÿï08@Rauxissouckie.net^ + ÿï08@Ravaljumectk.com^ + ÿï08@Ravehistoric.com^ ++ÿï08@Ravehospitablestrangers.com^ +#ÿï08@Ravelozpranky.click^ +!ÿï08@Ravenyoxyntic.top^ +&ÿï08@Raversionatrocious.com^ + ÿï08@Raveyuxooeub.com^ +ÿï08@Ravhxnasqeo.com^ +!ÿï08@Ravisionhunh.shop^ +!ÿï08@Ravouchuramil.com^ +"ÿï08@Ravvelwamqkaev.top^ +!ÿï08@Ravwjyvzeyeov.top^ +!ÿï08@Ravwjyvzeykor.top^ +"ÿï08@Ravzwkkmzkaobm.top^ +"ÿï08@Ravzwkkmzkawyr.top^ +"ÿï08@Ravzwkkmzkazyw.top^ +!ÿï08@Rawaitingdate.com^ +!ÿï08@Rawaitinggirl.net^ +"ÿï08@Rawaitinggirls.com^ +"ÿï08@Rawarenesstack.com^ +"ÿï08@Rawavjblaaebqv.top^ +"ÿï08@Rawavjblaaezbb.top^ +"ÿï08@Rawberkitman.click^ +!ÿï08@Rawcnsvikjfvh.com^ +!ÿï08@Raweyqalylqqr.top^ +ÿï08@Rawhiledad.com^ +"ÿï08@Rawkbkkqmeeoaj.top^ +'ÿï08@Rawokeembarkquicker.com^ +"ÿï08@Rawpgnhnewonyq.xyz^ + ÿï08@Raxonesvare.shop^ +"ÿï08@Rayarkkyjrmjjj.top^ + ÿï08@Rayensexilic.com^ +"ÿï08@Rayerjjnzwkqqj.top^ +"ÿï08@Raykqyjzbkkkyw.top^ +"ÿï08@Raykqyjzbkkmyv.top^ +"ÿï08@Raykqyjzwekzyw.top^ +!ÿï08@Raynhnrgxjxfv.com^ +ÿï08@Raywgucxmh.com^ +"ÿï08@Rayyjenjbknjba.top^ +"ÿï08@Razazyjjzbmeow.top^™ +"ÿï08@Razbjjbwkeoelw.top^ +"ÿï08@Razbjjbwvqovlv.top^ +ÿï08@R azclip.co.ua^ +"ÿï08@Razotizeloofas.com^ +ÿï08@Rb12c99852d.com^ +ÿï08@Rb273a3d41b.com^ +ÿï08@Rb3ab84c0f7.com^ +ÿï08@Rb5625c4825.com^ +ÿï08@R b6cb78mf.cfd^ +ÿï08@Rb6ccb3f833.com^ +ÿï08@Rb8bc5cd2c1.com^ +ÿï08@Rb984ec416b.com^ +ÿï08@R baarspo.ru^ +(ÿï08@Rbabblelessenairline.com^ +!ÿï08@Rbabkaowenite.top^ +"ÿï08@Rbabyishdivia.life^ +%ÿï08@Rbabyismwestlin.click^ + ÿï08@Rbackforward.bid^ + ÿï08@Rbadayscase.live^ +ÿï08@Rbadgerjeff.com^ +'ÿï08@Rbafflecouriernoble.com^ +#ÿï08@Rbafsvvxppgicvs.com^ + ÿï08@Rbaihaimauve.net^ +ÿï08@R baishaip.net^ +ÿï08@R baitdyed.com^ + ÿï08@Rbaivideewou.com^ + ÿï08@Rbaiwhoavita.net^ +"ÿï08@Rbaldricclothy.top^ +!ÿï08@Rbaldscatkins.com^ +!ÿï08@Rballdomohone.com^ + ÿï08@Rballetsbeep.com^ +ÿï08@R bamboss.ru^ +!ÿï08@Rbandorunold.shop^ +#ÿï08@Rbansheecabful.shop^ +#ÿï08@Rbaptismdesired.com^ +#ÿï08@Rbaptismfortune.com^ +"ÿï08@Rbarcoopeotomy.com^ +#ÿï08@Rbardilyshouted.com^ + ÿï08@Rbardogazed.shop^ +!ÿï08@Rbardtormen.click^ +!ÿï08@Rbarking-heads.ru^ +!ÿï08@Rbarnsalodial.top^ + ÿï08@Rbaroconobby.top^ +#ÿï08@Rbarwalstoops.click^ +ÿï08@Rbaseearsh.com^ +ÿï08@R basetts.com^ +ÿï08@Rbatchazee.net^ +ÿï08@R bathfoot.com^ + ÿï08@Rbaushainaig.com^ +!ÿï08@Rbawdynemas.click^ + ÿï08@Rbaywigsign.live^ +ÿï08@Rbb83b7a45e.com^ +ÿï08@Rbbnfcfrvjs.com^ +ÿï08@R bbthogid.xyz^ +ÿï08@Rbc1da16d64.com^ +ÿï08@Rbd6afd7ab5.com^ + ÿï08@Rbdoyadtbxsy.com^ +"ÿï08@Rbdqdgyohaumao.xyz^ +ÿï08@R +bdros.com^ +%ÿï08@Rbeaglemanipulate.com^ + ÿï08@Rbearinggall.com^ +ÿï08@R beatcuqa.xyz^ +#ÿï08@Rbeatentransfer.com^ +.ÿï08@Rbeatenunfinishedguarantee.com^Ô +$ÿï08@Rbebotchdatives.shop^ +"ÿï08@Rbebusyforgot.shop^ +ÿï08@R bedaoibe.com^ +ÿï08@R beeglain.net^ +'ÿï08@Rbeergeneralization.com^ + ÿï08@Rbeetscagey.shop^ + ÿï08@Rbefoulsdaza.com^ +%ÿï08@Rbefoulsusaunce.click^ +ÿï08@Rbegengaron.com^ +$ÿï08@Rbegetstheming.click^ +!ÿï08@Rbeggarwiden.shop^ +%ÿï08@Rbeggingparagraph.com^ +!ÿï08@Rbeguessbents.com^ +ÿï08@Rbeheldsled.com^ +$ÿï08@Rbeholdsbistate.shop^ +"ÿï08@Rbehooveforeby.top^ +*ÿï08@Rbeigelazinessdetected.com^ +"ÿï08@Rbelgianbesin.shop^ +$ÿï08@Rbelieveisabella.com^ +'ÿï08@Rbellygratification.com^ +!ÿï08@Rbemireulling.com^ +#ÿï08@Rbenchergodpapa.com^ +#ÿï08@Rbenchraspberry.com^ + ÿï08@Rbendproceed.com^ + ÿï08@Rbenefitanna.com^ + ÿï08@Rbeniannuity.com^ +!ÿï08@Rbennismottle.com^ + ÿï08@Rbenzeinlune.com^ +ÿï08@Rbeprayhots.com^ +ÿï08@R +bequl.com^ +!ÿï08@Rbereandevils.com^ +*ÿï08@Rbereaveundresscrowded.com^ + ÿï08@Rbergculpae.life^ +ÿï08@R berispat.top^ +"ÿï08@Rberriesstring.com^ +!ÿï08@Rbesaieltense.com^ + ÿï08@Rbesandileer.com^ + ÿï08@Rbeseechpill.com^ +"ÿï08@Rbesortwanrest.top^ + ÿï08@Rbespyscania.com^ +!ÿï08@Rbestaffaiirs.com^ +ÿï08@Rbestaffair.net^ + ÿï08@Rbestafffair.com^ +$ÿï08@Rbestcontentcost.top^ +(ÿï08@Rbestfreecounterstat.com^ + ÿï08@Rbestskillon.com^ +ÿï08@Rbesttmatch.net^ +ÿï08@Rbetdejump.live^ +ÿï08@R betjeyxf.com^ + ÿï08@Rbetsybeckon.com^ +!ÿï08@Rbetulinherl.shop^ +ÿï08@Rbevoltorba.com^ +&ÿï08@Rbewrapsstomal.website^ +ÿï08@Rbf4f3dc283.com^ +!ÿï08@Rbfjmqmdieipi.xyz^ +ÿï08@R bfleitfh.com^ +$ÿï08@Rbggqdleabtqhwqw.xyz^ +ÿï08@Rbhabhiporn.pro^ + ÿï08@Rbhatplumbic.top^ +!ÿï08@Rbiarchystarw.top^ +$ÿï08@Rbibulustartane.guru^ +"ÿï08@Rbiggedchocard.com^ +!ÿï08@Rbiglovegirls.com^ +ÿï08@Rbigosearch.com^ˆ + ÿï08@Rbihisvmtakx.xyz^ +#ÿï08@Rbiisteringdate.com^ +#ÿï08@Rbijophomsorsig.com^ +"ÿï08@Rbikhdeicide.click^ +ÿï08@R bilgetha.com^ +%ÿï08@Rbillboardmileage.com^ +%ÿï08@Rbilliardsseasick.com^ + ÿï08@Rbilrothobsy.net^ +$ÿï08@Rbilsteringdates.com^ +"ÿï08@Rbimaissebsiph.net^ +*ÿï08@Rbindingtimetablejosie.com^ + ÿï08@Rbinibeetfly.com^ +ÿï08@R bioatpej.xyz^ +ÿï08@Rbiokrfvnvs.com^ +%ÿï08@Rbirchflarechurch.com^ +ÿï08@Rbirleeris.com^ +#ÿï08@Rbirlersbhunder.com^ + ÿï08@Rbiroacitups.net^ +-ÿï08@Rbirthdependentmillennium.com^ + ÿï08@Rbitonlyana.live^ + ÿï08@Rbixoabsoams.com^ +$ÿï08@Rbjmkptrpcrgtjdo.xyz^ +ÿï08@R bjyc6868.com^ +ÿï08@R +bkrkv.com^ +/ÿï08@Rbladdersruinousalternative.com^ +(ÿï08@Rbladdersvictimbleak.com^ +!ÿï08@Rbladeboyduty.com^ +"ÿï08@Rblanksuppoint.com^ +#ÿï08@Rblasonsemiurn.shop^ +"ÿï08@Rblastsfaints.shop^ +"ÿï08@Rblastswaggons.com^ + ÿï08@Rblawnsodium.com^ + ÿï08@Rbleedmarrow.com^ +#ÿï08@Rblindsinkaward.com^ +"ÿï08@Rblistereasily.com^ +$ÿï08@Rblisterlngdates.net^ +$ÿï08@Rbllsteringdates.net^ +'ÿï08@Rblockedanticipated.com^ +#ÿï08@Rblockedvideoss.xyz^ +ÿï08@Rblockslurk.com^ +ÿï08@Rblousekudo.com^ +%ÿï08@Rblowingparkish.click^ +#ÿï08@Rblsznpcpmsjmeq.com^ +(ÿï08@Rblueberrydanelarger.com^ +'ÿï08@Rblueberrywaistcoat.com^ +"ÿï08@Rbluffforester.com^ +&ÿï08@Rbluishalmosterror.com^ +!ÿï08@Rblukavsup.online^ +"ÿï08@Rblunderfluffy.com^ +ÿï08@Rblupsipage.top^ +!ÿï08@Rblurtaxled.click^ +#ÿï08@Rblushingbackup.com^ +$ÿï08@Rblusterflintbig.com^ +*ÿï08@Rblusterhawspontaneous.com^ +"ÿï08@Rbmbvrjyyjjyrv.top^ +ÿï08@R +bmcnf.pro^ +ÿï08@R +bnlif.com^ +ÿï08@Rbnsjb1ab1e.com^ + ÿï08@Rbobbyscole.shop^ +ÿï08@R bobetpoe.com^ +"ÿï08@Rbochursitulae.top^ +ÿï08@Rboddawkin.shop^ +"ÿï08@Rbogledshimper.top^ +!ÿï08@Rbogoloaner.click^Î +!ÿï08@Rbollenhurkle.com^ +)ÿï08@Rbookletblockedcaught.com^ +"ÿï08@Rbookwormtiger.com^ +ÿï08@Rborghjism.com^ +!ÿï08@Rborniteeven.shop^ +$ÿï08@Rbosscrystudious.com^ +&ÿï08@Rbosselinorrummage.com^ +!ÿï08@Rbossymassive.com^ +ÿï08@Rbotaptipo.net^ +$ÿï08@Rbothpersonality.com^ +ÿï08@R botkano.info^ +&ÿï08@Rbottlestonightapp.com^ +$ÿï08@Rboughtrellyan.click^ +ÿï08@R bouglema.net^ +$ÿï08@Rbouncingcombine.com^ +!ÿï08@Rbouwofiwoaph.net^ +!ÿï08@Rbowcoolstop.live^ +)ÿï08@Rbowelslipperypraised.com^ +!ÿï08@Rbowgevyingly.com^ +(ÿï08@Rbowlingunauthorized.com^ +ÿï08@Rbowlsalb.click^ +%ÿï08@Rbowsingchilkat.click^ +!ÿï08@Rboyunaunify.shop^ + ÿï08@Rbqltphcdmuu.xyz^ +!ÿï08@Rbrachhoecake.top^ +#ÿï08@Rbrackenclomped.com^ +%ÿï08@Rbradleyincorrect.com^ +'ÿï08@Rbrashstudiocrucial.com^ +!ÿï08@Rbratinacaite.top^ +"ÿï08@Rbrattieseries.com^ +!ÿï08@Rbravedkarren.com^ + ÿï08@Rbravobusboy.com^ +"ÿï08@Rbrazilprocyon.com^ +,ÿï08@Rbreastfeedingminutepond.com^ +*ÿï08@Rbreathlessselfcontrol.com^ ++ÿï08@Rbreedssupposedlypoetry.com^ +#ÿï08@Rbrelawunbung.click^ +ÿï08@Rbrevissnod.com^ +ÿï08@Rbricolebai.top^ + ÿï08@Rbridalplums.com^ ++ÿï08@Rbridegaspjustification.com^ +'ÿï08@Rbridlealacrityleak.com^ +"ÿï08@Rbrieaafrhhjpe.com^ +!ÿï08@Rbrief-secret.com^ +"ÿï08@Rbrigueeumenid.top^ +$ÿï08@Rbriiiiantsdates.com^ +$ÿï08@Rbriiilantsdates.com^ +$ÿï08@Rbrililantsdates.net^ +$ÿï08@Rbrilliantsdates.com^ +%ÿï08@Rbringsruinedstab.com^ +$ÿï08@Rbrlliiantsdates.com^ +$ÿï08@Rbrllllantsdates.net^ +"ÿï08@Rbrmwmmnleeqma.top^ +"ÿï08@Rbroganaphylly.com^ +$ÿï08@Rbronzecedarleaf.com^ +!ÿï08@Rbronzerkevil.com^ +%ÿï08@Rbrotelkioway.website^ +$ÿï08@Rbrotherleadcape.com^ +$ÿï08@Rbroughtcontract.com^ +ÿï08@Rbrownyduer.com^ +&ÿï08@Rbrowsfincandidate.com^ +!ÿï08@Rbrujosglozed.com^ +"ÿï08@Rbrumousrocolo.com^ ++ÿï08@Rbrunettemattersrefused.com^° +&ÿï08@Rbrutalmathematics.com^ +"ÿï08@Rbryansansone.shop^ + ÿï08@Rbubbameso.click^ +#ÿï08@Rbubblyzucchini.com^ +"ÿï08@Rbuboesacinuni.top^ +'ÿï08@Rbuckanimateretired.com^ +"ÿï08@Rbudgedsnavvle.com^ +#ÿï08@Rbugabooreynard.top^ +ÿï08@R buglick.com^ + ÿï08@Rbulkehhand.live^ +%ÿï08@Rbulletinmoonoral.com^ +"ÿï08@Rbulletsorary.shop^ +$ÿï08@Rbullyhempbacked.com^ +"ÿï08@Rbultowtutulus.top^ +!ÿï08@Rbumbeeamoral.com^ + ÿï08@Rbumhuetony.live^ +%ÿï08@Rbummackhulster.click^ +"ÿï08@Rbumpingcarfax.com^ +ÿï08@R bumpmoss.com^ + ÿï08@Rbumslauded.shop^ +#ÿï08@Rbureausdenning.com^ +)ÿï08@Rburgerrelationscrash.com^ +"ÿï08@Rburgerscapra.shop^ + ÿï08@Rburialgrief.com^ +!ÿï08@Rburkhahemoid.com^ +!ÿï08@Rburlilynemos.com^ +%ÿï08@Rburly-assumption.com^ +!ÿï08@Rburniecrepes.com^ + ÿï08@Rburrowstoey.top^ +#ÿï08@Rbusbarsselter.shop^ +"ÿï08@Rbushedcoldest.com^ +!ÿï08@Rbushescarnic.top^ +ÿï08@Rbushitmas.live^ +"ÿï08@Rbushpoutquest.com^ + ÿï08@Rbuskersvis.shop^ +#ÿï08@Rbusticsfibrose.com^ +)ÿï08@Rbusyingcambogecarib.shop^ +ÿï08@R buthawk.com^ +ÿï08@R buthoacm.net^ + ÿï08@Rbutinehamal.com^ +"ÿï08@Rbutomuskainah.com^ +"ÿï08@Rbuttduckwiser.com^ +"ÿï08@Rbwbmyzvnjqrbk.top^ +ÿï08@R byboma.live^ +ÿï08@Rbydurantr.com^ +ÿï08@Rbylawssin.top^ +"ÿï08@Rbymetapodchan.com^ +ÿï08@R bypassed.ws^ +ÿï08@R +bytde.com^ +$ÿï08@Rbyteinstitution.com^ +ÿï08@R +bzidp.com^ +ÿï08@Rc0636e54f1.com^ +ÿï08@Rc0699fd01b.com^ +ÿï08@Rc0887b5285.com^ +ÿï08@Rc0cd2idcl5.com^ +ÿï08@Rc172a66e69.com^ +ÿï08@Rc1b891f5ff.com^ +ÿï08@Rc2529de2cf.com^ +ÿï08@Rc27902fb3d.com^ +ÿï08@Rc2ca4a0340.com^ +ÿï08@Rc3bb533dd7.com^ +ÿï08@Rc43257dc0f.com^ +ÿï08@Rc4ef1d1343.com^ +ÿï08@Rc67cfc8b87.com^œ +ÿï08@Rc69199f27f.com^ +ÿï08@Rc70e84a65a.com^ +ÿï08@Rc759538eb2.com^ +ÿï08@Rc7b419036b.com^ +ÿï08@Rc8e7b8a04b.com^ +ÿï08@Rca2686564a.com^ +"ÿï08@Rcabioagorae.click^ ++ÿï08@Rcableharshlyilliterate.com^ + ÿï08@Rcablepaddle.com^ + ÿï08@Rcaesarporch.com^ +ÿï08@Rcagewervel.top^ +ÿï08@Rcaicaipoop.com^ +ÿï08@Rcaicaulaip.com^ +ÿï08@R caihswlb.xyz^ + ÿï08@Rcaizuwailou.net^ +*ÿï08@Rcakesdenyconventional.com^ +#ÿï08@Rcaliphszenobia.top^ +%ÿï08@Rcallousannounced.com^ +)ÿï08@Rcameradiminishunkind.com^ +-ÿï08@Rcamomilegentlemennotable.com^ +&ÿï08@Rcampusexcessively.com^ +%ÿï08@Rcandouraggravate.com^ +ÿï08@R candyai.gg^ +#ÿï08@Rcandygainpeace.com^ + ÿï08@Rcanelotaxes.top^ +#ÿï08@Rcannedrestrict.com^ +#ÿï08@Rcannetstoups.click^ +ÿï08@Rcannonclam.com^ +ÿï08@Rcannonkit.com^ +#ÿï08@Rcannotmoreover.com^ +.ÿï08@Rcanoeeverywhereannihilate.com^ +#ÿï08@Rcanroyastrol.click^ +ÿï08@Rcapawhile.com^ +$ÿï08@Rcappuccinoeliza.com^ +,ÿï08@Rcaprizecaprizedogcollar.com^ +$ÿï08@Rcaproinrobalo.click^ +'ÿï08@Rcaptiveatmospheric.com^ +ÿï08@Rcarbysae.live^ +"ÿï08@Rcarcelsreside.com^ +ÿï08@Rcardflower.fun^ +ÿï08@Rcaresstrom.top^ +ÿï08@Rcariousjan.com^ +$ÿï08@Rcaritydidicoy.click^ + ÿï08@Rcarlozigzag.com^ +!ÿï08@Rcarnelbawrel.com^ +*ÿï08@Rcarnivorouswordsroute.com^ +$ÿï08@Rcarperspiration.com^ +.ÿï08@Rcarryingalfredparticipant.com^ +"ÿï08@Rcartrigestale.com^ +ÿï08@R carvenhl.top^ +#ÿï08@Rcaseaterallied.com^ +$ÿï08@Rcasegenetically.com^ +ÿï08@R cashbigo.com^ +"ÿï08@Rcashesdungier.com^ +#ÿï08@Rcasketparchhey.com^ +#ÿï08@Rcatastasicker.shop^ +!ÿï08@Rcatchymesem.shop^ +$ÿï08@Rcatechuscypphi.shop^ +$ÿï08@Rcathyimemediate.com^ + ÿï08@Rcatnapstye.shop^ +"ÿï08@Rcatsupskepped.com^ +$ÿï08@Rcatwoodflewit.click^ +!ÿï08@Rcausingalapa.com^ +!ÿï08@Rcausliparid.shop^¬ +ÿï08@Rcavestong.shop^ +ÿï08@Rcawauwhod.top^ +ÿï08@R +cbbvi.com^ +ÿï08@R cbfmoeam.com^ +ÿï08@Rcc5c5a5c56.com^ +ÿï08@R +ccgcg.com^ +ÿï08@Rcdb670d960.com^ +ÿï08@Rcde90a5fb0.com^ +ÿï08@Rcdf057ad83.com^ +ÿï08@Rce3ff5f2d4.com^ +"ÿï08@Rcebidsagrege.shop^ +!ÿï08@Rceechuwaukah.com^ +ÿï08@R ceehipsy.com^ +#ÿï08@Rceesauchoodaph.net^ +ÿï08@Rceewhooho.net^ +"ÿï08@Rceliteselsyn.life^ + ÿï08@Rcemantical4.com^ +ÿï08@R cempebse.com^ +'ÿï08@Rcensusmarrydespair.com^ +$ÿï08@Rcentaurexesion.shop^ +$ÿï08@Rcentavotomjon.click^ +#ÿï08@Rcentesmbarbola.com^ +"ÿï08@Rcerousfirmest.com^ + ÿï08@Rcesardipsy.shop^ +ÿï08@Rcewukbger.work^ +%ÿï08@Rcezafomayosuyas.shop^ +ÿï08@R cezoachu.net^ +!ÿï08@Rcfpushsdevpw.com^ +ÿï08@Rcftestsgg.top^ +!ÿï08@Rcftpolished1.top^ +!ÿï08@Rcftpolished2.top^ +!ÿï08@Rcftpolished3.top^ + ÿï08@Rcgqhtithixi.com^ +#ÿï08@Rchainemusting.shop^ +ÿï08@Rchaipoaveb.net^ +"ÿï08@Rchaisehoorahs.com^ +ÿï08@R chaithoa.com^ +"ÿï08@Rchalondeacons.com^ +,ÿï08@Rchannelgardeningplaster.com^ +"ÿï08@Rchannelmarket.xyz^ +#ÿï08@Rchaouiafrenzic.com^ +!ÿï08@Rchapatidaman.top^ +"ÿï08@Rchappalanatum.com^ +#ÿï08@Rcharmobedience.com^ +)ÿï08@Rchartactiveuncertain.com^ +$ÿï08@Rchasmalsacques.shop^ + ÿï08@Rchatboneby.live^ +ÿï08@Rchawhecmud.net^ +!ÿï08@Rchawkislandy.top^ +ÿï08@Rchaxidroat.net^ +ÿï08@Rchaymaween.top^ +#ÿï08@Rcheapererred.click^ +!ÿï08@Rcheckmymedia.biz^ +!ÿï08@Rchediteriven.com^ +"ÿï08@Rcheesedrabat.shop^ +!ÿï08@Rcheetwrying.shop^ +ÿï08@Rchelpotto.shop^ +ÿï08@R chertouz.net^ +ÿï08@R chetsal.com^ +ÿï08@Rchetsoamta.net^ +"ÿï08@Rchewiebakings.top^ +%ÿï08@Rchibchamudbank.click^ +"ÿï08@Rchignondueled.com^ +ÿï08@Rchillsymca.com^à +#ÿï08@Rchillylanguish.com^ +"ÿï08@Rchimbtoriest.shop^ ++ÿï08@Rchineseprovisionfeisty.com^ +#ÿï08@Rchinkleedestin.uno^ +!ÿï08@Rchippedaugur.com^ +"ÿï08@Rchipyourdiet.live^ +"ÿï08@Rchirubeauish.shop^ +!ÿï08@Rchoakekeltap.net^ +#ÿï08@Rchogakdicolic.shop^ +!ÿï08@Rchokagehoast.com^ +!ÿï08@Rcholmeshed.click^ +ÿï08@Rchoochauk.net^ +#ÿï08@Rchoppersnaps.click^ +$ÿï08@Rchordeehepcats.shop^ +$ÿï08@Rchoruscompanion.com^ +"ÿï08@Rchottsunmarry.com^ +ÿï08@Rchoubsebsu.com^ +ÿï08@R chougail.net^ + ÿï08@Rchoumoltily.net^ +ÿï08@Rchourgaib.net^ +ÿï08@R chozeers.xyz^ +ÿï08@R chudaids.com^ +ÿï08@R chuhoaro.com^ +ÿï08@Rchuwhaizie.net^ +!ÿï08@Rchymiaaxunge.top^ +#ÿï08@Rchytridaustral.com^ +ÿï08@R cidreeth.com^ + ÿï08@Rcineastwaly.com^ +#ÿï08@Rcirceanmailed.shop^ +!ÿï08@Rciwieswaters.top^ +ÿï08@R cjtraff.com^ +#ÿï08@Rcjttdguhiqmdim.xyz^ +"ÿï08@Rckdxbragemqum.com^ +#ÿï08@Rcleardexchange.com^ + ÿï08@Rclicksmint.site^ +ÿï08@Rclicvortex.com^ +#ÿï08@Rcliencylochage.top^ +$ÿï08@Rclimbingsmuggle.com^ + ÿï08@Rclinchconga.top^ +"ÿï08@Rclintonchewet.com^ +#ÿï08@Rclipartonline.info^ +ÿï08@R cliv2508.com^ +ÿï08@Rclodsplit.com^ +ÿï08@Rclofferap.com^ +$ÿï08@Rclosedsoonest.click^ + ÿï08@Rclotstupara.com^ +)ÿï08@Rclottedpowerlessmade.com^ +!ÿï08@Rcloudgallery.net^ +ÿï08@Rcloudseun.com^ +!ÿï08@Rcloudsofnews.com^ +$ÿï08@Rcloudtransfer.store^ +"ÿï08@Rcloueewinkles.com^ +%ÿï08@Rclrpdhptoddatj49.pro^ + ÿï08@Rcluesdumpy.shop^ +"ÿï08@Rclumoutpomp.click^ +!ÿï08@Rcmpro-clean.club^ + ÿï08@Rcmproclean.club^ +"ÿï08@Rcmvrclicks000.com^ +!ÿï08@Rcobblercohog.com^ +ÿï08@R codsooms.net^ + ÿï08@Rcodtestmol.live^ +ÿï08@R coepitta.com^ +#ÿï08@Rcoercerbandbox.com^ +"ÿï08@Rcoffeetutress.com^ï +#ÿï08@Rcofinallumping.top^ +)ÿï08@Rcoggancoherecomedia.shop^ +!ÿï08@Rcogitblype.click^ +$ÿï08@Rcogwoodprester.shop^ +"ÿï08@Rcoifstarheel.shop^ +ÿï08@Rcokieshins.com^ +*ÿï08@Rcollaboratemedaltrips.com^ + ÿï08@Rcomalpanzer.top^ +"ÿï08@Rcombeeffort.click^ +"ÿï08@Rcombofile4u.click^ +!ÿï08@Rcomicshouse.shop^ +'ÿï08@Rcommiserateeffects.com^ ++ÿï08@Rcommissionepochknuckle.com^ +"ÿï08@Rcompolegimmer.com^ +$ÿï08@Rconatusrosied.click^ +#ÿï08@Rcondorceycles.shop^ +#ÿï08@Rcondyleboggart.com^ +!ÿï08@Rconfitreggie.top^ +!ÿï08@Rcongodensest.top^ + ÿï08@Rconiesnitch.com^ +"ÿï08@Rconreyeanling.com^ +(ÿï08@Rconspicuouswoodland.com^ +#ÿï08@Rcontainsreform.com^ +!ÿï08@Rcontekgasted.com^ +%ÿï08@Rcontemplateirony.com^ +!ÿï08@Rconvenebeice.com^ +ÿï08@R coochig.com^ +"ÿï08@Rcoodleborstal.com^ + ÿï08@Rcoofoagleeh.com^ +ÿï08@Rcoofoapou.top^ +$ÿï08@Rcoolerclaimer.click^ +"ÿï08@Rcoolergeosid.shop^ +!ÿï08@Rcopalmsbeno.shop^ +!ÿï08@Rcopenimpane.shop^ + ÿï08@Rcopycatnews.com^ +"ÿï08@Rcorpustushing.com^ +!ÿï08@Rcorrupt-peak.com^ +#ÿï08@Rcortaroanurous.top^ +ÿï08@Rcoryljanty.cam^ +ÿï08@Rcoshogken.live^ +!ÿï08@Rcostranchill.com^ +$ÿï08@Rcoucekouvaiphoo.net^ +!ÿï08@Rcougidauptoo.com^ +!ÿï08@Rcouphowhousi.net^ +ÿï08@Rcourewauph.com^ +(ÿï08@Rcourilcryptscuittle.cfd^ + ÿï08@Rcouthauweeg.com^ +!ÿï08@Rcouwhoupesho.net^ +!ÿï08@Rcovertsgrete.com^ +"ÿï08@Rcowardsagrias.com^ +ÿï08@R cowhaits.com^ +ÿï08@R cpexcdn.cz^ +ÿï08@R cpmterra.com^ +ÿï08@Rcpokulack.com^ +"ÿï08@Rcpvmkpqjbqyfh.com^ + ÿï08@Rcragtwier.click^ + ÿï08@Rcranecoddy.shop^ +#ÿï08@Rcraniolenfoil.shop^ +!ÿï08@Rcrateshoover.com^ +"ÿï08@Rcrawledgoblet.com^ +ÿï08@R craydark.pw^ +!ÿï08@Rcreedalfuzzy.top^ +%ÿï08@Rcreepingseverely.com^ +#ÿï08@Rcrepismarabou.shop^‹ +#ÿï08@Rcrinumslobated.com^ +$ÿï08@Rcrissalisogamy.shop^ +"ÿï08@Rcrocinjosephs.top^ +#ÿï08@Rcrokerfielded.shop^ +ÿï08@R crophysi.ru^ +#ÿï08@Rcrozzleembrew.shop^ +!ÿï08@Rctralokppdug.com^ + ÿï08@Rctrlbrowman.com^ +$ÿï08@Rctsncobxuteqvcs.com^ + ÿï08@Rcubcogons.click^ +ÿï08@R cubiboak.com^ +ÿï08@Rcuckoorsem.net^ +"ÿï08@Rcuculesectary.com^ + ÿï08@Rcuddlybasis.com^ +ÿï08@R culrosha.net^ +"ÿï08@Rculterwhether.com^ +ÿï08@Rcumfunply.live^ +"ÿï08@Rcupperssomler.com^ +"ÿï08@Rcupriteshride.com^ +%ÿï08@Rcuratorberiber.click^ + ÿï08@Rcuriescores.com^ +ÿï08@Rcurrepush.com^ +$ÿï08@Rcurvedheldideal.com^ +ÿï08@Rcutupssuss.top^ + ÿï08@Rcwhwdhamljp.com^ +ÿï08@R cxmolk.com^ +#ÿï08@Rcyaneaimpales.shop^ + ÿï08@Rcyathijozy.shop^ +ÿï08@Rcynkwpuoam.com^ + ÿï08@Rcystspingo.shop^ +#ÿï08@Rczarspigling.click^ +ÿï08@Rd0a2e8bccf.com^ +ÿï08@Rd0e564588b.com^ +ÿï08@Rd1523a346a.com^ +ÿï08@Rd29ddeae47.com^ +ÿï08@Rd39274b315.com^ +ÿï08@Rd41bd4d836.com^ +ÿï08@Rd4e5ad4b41.com^ +ÿï08@Rd58f989012.com^ +ÿï08@Rd6774f016a.com^ +ÿï08@Rd952c14257.com^ +ÿï08@Rdad524dd40.com^ +ÿï08@R dahkexes.com^ +ÿï08@R daicutha.net^ +"ÿï08@Rdaidlyrebathe.top^ + ÿï08@Rdailycaller.com^ +ÿï08@Rdaiwhesho.com^ +&ÿï08@Rdalethsplicae.website^ +ÿï08@R dalita.org^ +$ÿï08@Rdamageddistance.com^ +ÿï08@R damdoor.com^ +ÿï08@R damkong.top^ +ÿï08@R dampdock.com^ +!ÿï08@Rdancemistake.com^ +%ÿï08@Rdapperdiscussion.com^ +ÿï08@R daroptiy.com^ +#ÿï08@Rdasyuredenmark.com^ + ÿï08@Rdatewithman.com^ + ÿï08@Rdatiing4you.net^ +$ÿï08@Rdatiinghereapps.com^ +ÿï08@Rdatinglive.net^ + ÿï08@Rdatingllfes.com^ +$ÿï08@Rdatinglocalfuck.com^ +ÿï08@Rdatlnglife.net^Ï + ÿï08@Rdatlngllfes.net^ +ÿï08@Rdaugrugli.net^ +!ÿï08@Rdauntonedder.com^ +"ÿï08@Rdauntssquills.com^ +!ÿï08@Rdautedtwiny.shop^ +!ÿï08@Rdavielyedith.com^ +#ÿï08@Rdayboylynches.shop^ +"ÿï08@Rdazzlingdelay.com^ +!ÿï08@Rdazzlinggain.com^ +ÿï08@Rdb35b0c4c1.com^ +ÿï08@Rdb770a49df.com^ +#ÿï08@Rdbbupggdbamnvo.com^ +ÿï08@Rdcefdf0e05.com^ +ÿï08@Rdcqxdlqau.com^ +ÿï08@Rddc1aaee63.com^ +ÿï08@Rdde2488558.com^ +ÿï08@R ddenkno.xyz^ +"ÿï08@Rdeafeningdock.com^ + ÿï08@Rdebclefindy.com^ +!ÿï08@Rdebonairdust.com^ +!ÿï08@Rdebonairtree.com^ +"ÿï08@Rdeburrfleshes.com^ +!ÿï08@Rdecalsdosa.click^ +"ÿï08@Rdecateromulus.com^ +ÿï08@Rdecidedrum.com^ +!ÿï08@Rdecisivebase.com^ +'ÿï08@Rdecisivecalculated.com^ +#ÿï08@Rdecisivedrawer.com^ +"ÿï08@Rdecisiveducks.com^ +!ÿï08@Rdeckerenacts.com^ + ÿï08@Rdecollhuaca.com^ +"ÿï08@Rdecoycreation.com^ +ÿï08@Rdee3919170.com^ +ÿï08@R deegraun.com^ +ÿï08@R deehatoa.net^ + ÿï08@Rdeethaubipy.net^ +ÿï08@Rdefialphas.top^ +#ÿï08@Rdeicticwidgie.shop^ +ÿï08@Rdeismpaho.com^ +"ÿï08@Rdekingcossack.top^ + ÿï08@Rdelascalles.com^ +#ÿï08@Rdelatedrhymery.com^ +"ÿï08@Rdelayedlocust.com^ + ÿï08@Rdelictimids.com^ +#ÿï08@Rdelictobussock.top^ +#ÿï08@Rdeliriamorula.shop^ +ÿï08@Rdeltaction.com^ +!ÿï08@Rdemaldefaces.top^ +$ÿï08@Rdemocratplayful.com^ +$ÿï08@Rdemosingang.website^ +$ÿï08@Rdenamebauleah.click^ +$ÿï08@Rdenguemurillo.click^ +!ÿï08@Rdenudeobarni.com^ +!ÿï08@Rdenydrughim.live^ +!ÿï08@Rdenypishing.shop^ +ÿï08@R +deobp.com^ +#ÿï08@Rdepechearshine.com^ +"ÿï08@Rdependsmoscow.com^ +!ÿï08@Rdepkalwemyxb.com^ +'ÿï08@Rdeplorablefaintest.com^ +%ÿï08@Rderateddeerdog.click^ +&ÿï08@Rdescargacristiana.com^ +#ÿï08@Rdescargarmusica.me^ +(ÿï08@Rdescriptive-monitor.com^° +!ÿï08@Rdesertsfraze.com^ +ÿï08@Rdesire2you.com^ +!ÿï08@Rdesirebucket.com^ +ÿï08@Rdesiredirt.com^ + ÿï08@Rdesirelibel.com^ +ÿï08@Rdessnivyer.com^ +ÿï08@R destyy.com^ +#ÿï08@Rdetailedkitten.com^ +!ÿï08@Rdetectdinner.com^ +$ÿï08@Rdeveinsembrues.shop^ +!ÿï08@Rdevisaltrain.com^ +#ÿï08@Rdewbeambeslash.com^ +ÿï08@R dfpghxkw.com^ + ÿï08@Rdhobeynandi.com^ +#ÿï08@Rdhobiegrouse.click^ +ÿï08@Rdhoqlmlvdr.xyz^ +#ÿï08@Rdiagramcolunar.com^ + ÿï08@Rdialedheuch.top^ +%ÿï08@Rdiapaseentasis.click^ +'ÿï08@Rdiaperdollrelevant.com^ +"ÿï08@Rdiazoestmark.guru^ +ÿï08@Rdicesstipo.com^ + ÿï08@Rdictseconal.com^ + ÿï08@Rdidmakingby.xyz^ +!ÿï08@Rdifficultfog.com^ +ÿï08@R digiads.tv^ +#ÿï08@Rdigitussumple.shop^ + ÿï08@Rdimeftluck.live^ +$ÿï08@Rdimensionvegana.com^ +ÿï08@Rdimmosit.live^ +!ÿï08@Rdinahmalawi.shop^ +"ÿï08@Rdiplomahawaii.com^ +ÿï08@R dirlink.net^ +"ÿï08@Rdiscreetfield.com^ +"ÿï08@Rdiseasyqaid.click^ +!ÿï08@Rdisproveknob.com^ +"ÿï08@Rdistinctrobin.com^ +&ÿï08@Rdistinguishedates.com^ +%ÿï08@Rdistortinsolence.com^ +)ÿï08@Rdistributiontomatoes.com^ +#ÿï08@Rdisturbedquiet.com^ +!ÿï08@Rdiswontchose.com^ +$ÿï08@Rditcherstorify.guru^ + ÿï08@Rdivatraffic.bid^ +ÿï08@R divehope.com^ + ÿï08@Rdivlnedates.com^ + ÿï08@Rdivlnedates.net^ +$ÿï08@Rdixyregosol.website^ +#ÿï08@Rdjsnbblhnqijya.com^ + ÿï08@Rdlbldltwdbx.com^ + ÿï08@Rdlrectdates.net^ +#ÿï08@Rdlxvhordcwtupf.xyz^ + ÿï08@Rdlyakleonarb.ru^ +ÿï08@Rdlyarecnew.me^ + ÿï08@Rdmakingbyth.com^ +ÿï08@R +dmsik.com^ +"ÿï08@Rdmvhisrqldyek.com^ +ÿï08@R +dmxxa.com^ +#ÿï08@Rdnbaulelcdpmcs.com^ +ÿï08@Rdnckawxatc.com^ +ÿï08@R doanaiwa.com^ +ÿï08@R doathair.com^ +ÿï08@Rdobteased.com^ +#ÿï08@Rdochmiiresidue.com^¤ +"ÿï08@Rdockdigestion.com^ + ÿï08@Rdogliscoran.com^ +ÿï08@R dognixus.net^ +ÿï08@Rdogrotleer.com^ +"ÿï08@Rdoigtangles.click^ +"ÿï08@Rdoitsecthyma.shop^ + ÿï08@Rdomewtwotor.com^ +!ÿï08@Rdonfailrank.live^ +!ÿï08@Rdongeelrajak.net^ +ÿï08@Rdonnerato.com^ + ÿï08@Rdoordishow.live^ +#ÿï08@Rdopplervalses.shop^ +ÿï08@R dornpush.com^ +*ÿï08@Rdorogokupimnoutbuk.online^ +"ÿï08@Rdorothycanzos.com^ +ÿï08@R dorpetor.com^ +%ÿï08@Rdosselsmachair.click^ +ÿï08@Rdostbother.com^ +ÿï08@Rdostunkyan.com^ +!ÿï08@Rdothavesta.click^ +!ÿï08@Rdottilyjerky.com^ +)ÿï08@Rdoublycharacteristic.com^ +#ÿï08@Rdoupionsolions.com^ +#ÿï08@Rdouveejoalastu.net^ +$ÿï08@Rdownloadmobile.info^ +%ÿï08@Rdownloadmobilee.info^ +#ÿï08@Rdownloadphone.info^ +"ÿï08@Rdoxdynpvwvkcw.com^ +ÿï08@R dpuplet.net^ +ÿï08@R dq95d35.com^ +!ÿï08@Rdrabbyexpose.com^ +"ÿï08@Rdragonblogger.com^ +"ÿï08@Rdribletsusian.com^ +ÿï08@R droxvik.cfd^ +ÿï08@Rdrubpainch.com^ + ÿï08@Rdruqkstwwvg.com^ +ÿï08@R drydrum.com^ + ÿï08@Rdsaxuytppkc.xyz^ +#ÿï08@Rdsjqbkwlofqnie.xyz^ +ÿï08@R dtcqhfip.com^ + ÿï08@Rduchessefit.com^ +#ÿï08@Rducofagrigusor.com^ +#ÿï08@Rducroconawchan.com^ +ÿï08@R dudhbgmv.com^ + ÿï08@Rduehalakah.shop^ +#ÿï08@Rduelledeyelet.shop^ +ÿï08@Rduffelblog.com^ +ÿï08@R duhboga.ru^ +ÿï08@Rdukadabrar.com^ +$ÿï08@Rdulcityawakes.click^ + ÿï08@Rdunehonked.shop^ +"ÿï08@Rdurablezygoid.top^ + ÿï08@Rduralgomari.com^ +"ÿï08@Rdurezzacrowns.com^ +!ÿï08@Rduskishmusgu.com^ +$ÿï08@Rdustingvendace.shop^ + ÿï08@Rdustyhammer.com^ +ÿï08@Rdustymural.com^ +!ÿï08@Rdvdgayonline.com^ +ÿï08@R dx07zxwt.pro^ +ÿï08@R dyoixbyp.xyz^ +ÿï08@Rdyxlqvoqnc.xyz^ + ÿï08@Rdzdmvnegsov.com^ +ÿï08@Rdzvuvtwbp.com^ñ +ÿï08@Re04f630ca8.com^ +ÿï08@Re15c53a231.com^ +ÿï08@Re1bb62d865.com^ +ÿï08@Re1dcd571c0.com^ +ÿï08@Re2af52cae7.com^ +ÿï08@Re395ce5e52.com^ +ÿï08@Re46ece0a18.com^ +ÿï08@Re68a481d7d.com^ +ÿï08@Re7b9fe0fa1.com^ +ÿï08@Re7d9861b83.com^ +ÿï08@Re806dd6aba.com^ +ÿï08@Re811df4714.com^ +ÿï08@Re82ae52eec.com^ +ÿï08@Re890f5e345.com^ +ÿï08@Re9a5ed7d7a.com^ +ÿï08@Re9geolgzk6.com^ + ÿï08@Reagletstypp.com^ +#ÿï08@Reasy2cnjuh34jb.com^ +"ÿï08@Reasyplanrail.live^ +"ÿï08@Reatablesquare.com^ +ÿï08@Reatmenow.site^ +!ÿï08@Reatsidebicep.com^ +!ÿï08@Rebcdbangash.life^ + ÿï08@Rebenefitssh.com^ +ÿï08@Rec257deba1.com^ +ÿï08@Rec71a471b9.com^ +ÿï08@Reca8bef536.com^ +ÿï08@Recaecc3e17.com^ +#ÿï08@Recijrxibrulgnb.com^ +$ÿï08@Reckleinlienic.click^ +ÿï08@Recomedtorg.ru^ + ÿï08@Recudisrush.live^ +ÿï08@R eddnxllt.com^ +ÿï08@R ediva.gr^ +ÿï08@Redmasskin.live^ +#ÿï08@Reduardocluster.com^ +"ÿï08@Reducingbirle.shop^ +ÿï08@Ree3d8d5c76.com^ +ÿï08@Reeboazurg.net^ + ÿï08@Reechodsoamt.net^ +ÿï08@R eecmauks.net^ +!ÿï08@Reedsiwhussiy.net^ +ÿï08@R +eemgl.com^ +ÿï08@Reepholseeb.net^ +ÿï08@Reetazicmee.net^ +"ÿï08@Reetsooltaihob.net^ +ÿï08@Reewodromti.net^ +"ÿï08@Reeyuchkookier.com^ +ÿï08@Ref1dd1776c.com^ +ÿï08@Refcybuvko.com^ +#ÿï08@Reffluveputting.com^ +ÿï08@R efvvoyok.com^ +ÿï08@Regencymym.top^ + ÿï08@Reidersalias.com^ +"ÿï08@Reidersrettory.com^ +$ÿï08@Reimwigyqoxqpetp.com^ +ÿï08@R ejyymghi.com^ + ÿï08@Rekkrgsqygqp.com^ +"ÿï08@Relasticchange.com^ +!ÿï08@Relcineencasa.com^ + ÿï08@Relderlytown.com^ +"ÿï08@Relectorshreds.top^ +%ÿï08@Relectricfeminine.com^ +!ÿï08@Relegybonagh.shop^Á +$ÿï08@Relektrapanicky.shop^ +"ÿï08@Relemoltwigful.com^ +"ÿï08@Relephantqueue.com^ +ÿï08@R elephoch.com^ +#ÿï08@Relfishtutman.click^ +ÿï08@Relfpetsic.com^ +ÿï08@R eltontry.com^ +#ÿï08@Reluatesoscheal.top^ +#ÿï08@Remergesamphide.top^ +%ÿï08@Remeriedboucher.click^ +!ÿï08@Remeryexcel.click^ + ÿï08@Remitlavas.click^ +!ÿï08@Rempalerposit.com^ +#ÿï08@Remplorebunches.com^ +'ÿï08@Remploysisomery.digital^ +ÿï08@Renamihb.click^ +ÿï08@Rencaseshay.com^ +#ÿï08@Rencourageshock.com^ +&ÿï08@Rencouragingthread.com^ +!ÿï08@Rendocrineweb.com^ +"ÿï08@Renematalordan.com^ +%ÿï08@Renergeticladybug.com^ +"ÿï08@Rengridfanlike.com^ +ÿï08@R +enmbg.com^ +ÿï08@R +entry.org^ +"ÿï08@Renviousthread.com^ +%ÿï08@Renzymescapitan.click^ +ÿï08@R eonads.com^ +"ÿï08@Rephraimguntub.com^ +"ÿï08@Repicsambari.click^ + ÿï08@Repilreoffer.com^ +$ÿï08@Requaleddunair.click^ +"ÿï08@Requatorinking.top^ +!ÿï08@Reraidaigoumt.net^ +ÿï08@Rerearmored.top^ +!ÿï08@Reriavended.click^ +#ÿï08@Rescarsbasins.click^ +%ÿï08@Rescuagefoggish.click^ +ÿï08@R eshii.ru^ +#ÿï08@Ressayedduftite.com^ +$ÿï08@Retchantmegger.click^ +ÿï08@Rethfw0370q.com^ +#ÿï08@Rethnogsuints.click^ +ÿï08@R +etpsn.com^ +ÿï08@R ettvxvpu.xyz^ + ÿï08@Retypicrendu.top^ +ÿï08@Reuamonudes.com^ +!ÿï08@Reuboicarmpit.top^ +#ÿï08@Revanescentedge.com^ +ÿï08@R evermoto.xyz^ + ÿï08@Revifoaksaup.xyz^ +ÿï08@Rewbrutage.com^ +"ÿï08@Reweconciliate.com^ +ÿï08@R ewhafoup.com^ +#ÿï08@Rexceiientdates.com^ +"ÿï08@Rexcelientdate.net^ +$ÿï08@Rexceptlonaidate.com^ +'ÿï08@Rexhaustedprobation.com^ +$ÿï08@Rexostrawellmen.shop^ +ÿï08@R exotrck.com^ +$ÿï08@Rexpansioneggnog.com^ +ÿï08@Rext-files.net^ +%ÿï08@Rextendsoxozone.click^ +!ÿï08@Rexypnes-idees.gr^å +ÿï08@Reyeofporn.com^ +ÿï08@Reymwxhqck.com^ +"ÿï08@Rezzmmvzbnbqnj.top^ +ÿï08@Rf016d57403.com^ +ÿï08@Rf0977f8b4c.com^ +ÿï08@R f0rn0one.com^ +ÿï08@Rf168b7fa34.com^ +ÿï08@Rf2a2ddbb84.com^ +ÿï08@Rf7050945a4.com^ +ÿï08@Rf983cf2155.com^ +ÿï08@Rf9f62da9a0.com^ +#ÿï08@Rfaceoffwinsome.top^ +!ÿï08@Rfactgoldbeg.live^ +ÿï08@Rfad1ef26a9.com^ +ÿï08@Rfadedsnow.com^ +!ÿï08@Rfagarauvitic.com^ +"ÿï08@Rfagloafexeele.com^ + ÿï08@Rfaidafouque.net^ +ÿï08@Rfaiirylove.net^ +"ÿï08@Rfainsflavory.shop^ +ÿï08@R faipeeji.com^ + ÿï08@Rfairfeeling.com^ +)ÿï08@Rfairlyleadingenquiry.com^ +ÿï08@Rfairyllove.net^ +ÿï08@R faishoar.com^ +ÿï08@R faksofta.net^ +!ÿï08@Rfallbrook247.com^ +ÿï08@Rfalseframe.com^ +ÿï08@R famitaa.com^ +"ÿï08@Rfancifuidates.com^ +!ÿï08@Rfaphomtotapt.com^ +(ÿï08@Rfarawayinstallation.com^ + ÿï08@Rfarbankthy.live^ + ÿï08@Rfarcieslasi.com^ +$ÿï08@Rfarflung-switch.com^ +"ÿï08@Rfarineunspike.com^ +ÿï08@R fasder12.ru^ +ÿï08@Rfasder12.store^ +"ÿï08@Rfastestmoray.shop^ +ÿï08@R fastgnmx.com^ +ÿï08@Rfastlycdn.com^ +ÿï08@R fat-flex.ru^ +#ÿï08@Rfatalespedlery.com^ +!ÿï08@Rfatemedflat.live^ + ÿï08@Rfaucaipheeg.net^ +ÿï08@Rfaufainive.com^ +ÿï08@Rfavorbort.guru^ +ÿï08@Rfavorsbch.com^ +ÿï08@Rfawnnaresh.com^ + ÿï08@Rfaykitturn.live^ +ÿï08@Rfbofferads.com^ +ÿï08@Rfbqtjbxdpr.com^ +ÿï08@R +fckbx.com^ +ÿï08@R fckbxx.com^ +ÿï08@Rfcs.ovh^ +ÿï08@R +fdsur.com^ +ÿï08@Rfe433129dc.com^ +ÿï08@Rfed18a1e5b.com^ +#ÿï08@Rfeeglaivohophy.net^ +!ÿï08@Rfeemaujapsig.com^ +"ÿï08@Rfelinepresume.com^ +"ÿï08@Rfeodzebecks.click^ +"ÿï08@Rferiassaimiri.com^ + ÿï08@Rferrisoisin.com^¯ +!ÿï08@Rfertojolalsu.net^ +ÿï08@R fesibsou.net^ +ÿï08@R festyy.com^ +#ÿï08@Rfetchergumdrop.com^ +ÿï08@R +ff-01.com^ +ÿï08@R +ff-02.com^ +ÿï08@R +ff-03.com^ +ÿï08@Rffbd26c481.com^ +ÿï08@R fiehff.com^ +#ÿï08@Rfiggumensafe.click^ +ÿï08@Rfilespicy.com^ +$ÿï08@Rfillmapmovepea.live^ + ÿï08@Rfilmoljupci.com^ +!ÿï08@Rfimenoubsaud.net^ +!ÿï08@Rfinanccesurv.com^ +"ÿï08@Rfindyouramour.com^ +$ÿï08@Rfindyourhalf.online^ +#ÿï08@Rfinickyregreet.com^ +%ÿï08@Rfisheyeskimmed.click^ +#ÿï08@Rfishgigyeaoman.top^ +#ÿï08@Rfishmenkabbala.com^ +&ÿï08@Rfixitymetabit.website^ + ÿï08@Rfixtapedam.live^ +#ÿï08@Rfizzesbunuelo.shop^ +ÿï08@R fjiorox.com^ +ÿï08@R +fkehg.com^ +!ÿï08@Rfkourazirop.shop^ +"ÿï08@Rfkpnpucrfrckq.com^ +#ÿï08@Rflatuslakatoi.shop^ +%ÿï08@Rflawedrelaxation.com^ + ÿï08@Rfleenudged.shop^ +%ÿï08@Rflenserencloud.click^ +&ÿï08@Rflickeringchutney.com^ +#ÿï08@Rflirtpursuer.click^ +!ÿï08@Rflirtymashed.com^ + ÿï08@Rflorapitchy.com^ +ÿï08@R flowhot.info^ +!ÿï08@Rflungsnibble.com^ +%ÿï08@Rflytierchurred.space^ +ÿï08@Rfmstitial.xyz^ +ÿï08@Rfnd-yr-sol.com^ +$ÿï08@Rfoaglurapsoasie.com^ +"ÿï08@Rfoaphodoufaiw.net^ +ÿï08@Rfoasoucib.com^ +ÿï08@Rfocusporn.com^ +"ÿï08@Rfoftartertobs.net^ +ÿï08@Rfoggedbank.com^ +ÿï08@Rfollripup.com^ +!ÿï08@Rfondonberake.com^ +#ÿï08@Rforabomasnowan.com^ +#ÿï08@Rfordshariffe.click^ +!ÿï08@Rforducklettr.com^ +(ÿï08@Rforgivenessdaresuck.com^ +ÿï08@Rformalhood.com^ +"ÿï08@Rforsceptileon.com^ + ÿï08@Rforstarlyor.com^ +!ÿï08@Rfortiesgaudy.top^ +ÿï08@R foundtr.com^ +"ÿï08@Rfouterwicket.shop^ + ÿï08@Rfoxfixhall.live^ +ÿï08@Rfoxforlog.live^ +#ÿï08@Rfoxshipshaka.click^ +#ÿï08@Rfpdhinscvjwgsw.xyz^ +!ÿï08@Rfraghanmotel.top^§ + ÿï08@Rfrayedpause.com^ +$ÿï08@Rfreckedpotboil.shop^ + ÿï08@Rfreedomyapa.com^ + ÿï08@Rfretteexcur.top^ +"ÿï08@Rfriendlybunny.com^ +&ÿï08@Rfrightenedworkout.com^ +!ÿï08@Rfrombatmuch.live^ +&ÿï08@Rfrontthirteencuff.com^ +%ÿï08@Rfrrrerolls22.monster^ +ÿï08@R ftbjaxmi.xyz^ +!ÿï08@Rfugnugleedep.com^ +$ÿï08@Rfulgurblksize.click^ +ÿï08@Rfulhamdui.com^ +"ÿï08@Rfumiercrapper.com^ +"ÿï08@Rfungalqueller.com^ +"ÿï08@Rfurivaemorian.top^ + ÿï08@Rfurordosed.shop^ +ÿï08@Rfuselshots.com^ +ÿï08@R futsidsa.com^ +#ÿï08@Rfuturicuptuck.shop^ +!ÿï08@Rfuzzyvisuals.com^ +ÿï08@R fxclub.org^ + ÿï08@Rfxypenydiod.com^ +ÿï08@Rfykespoot.top^ +ÿï08@R +fznpq.com^ +!ÿï08@Rg9qnk89pd5ic.com^ +#ÿï08@Rgabbingvending.com^ +ÿï08@Rgadkasdomm.com^ + ÿï08@Rgagepicaras.com^ +!ÿï08@Rgaihoumauwha.com^ +!ÿï08@Rgainoilcash.live^ +ÿï08@Rgaitswhew.shop^ +ÿï08@R galas3xy.com^ +#ÿï08@Rgalaxbalilla.click^ + ÿï08@Rgalhelpfur.live^ +!ÿï08@Rgallinestate.com^ +ÿï08@R gameawin.com^ +!ÿï08@Rgangwafriend.com^ +%ÿï08@Rgangwayderbies.click^ +"ÿï08@Rganzielionced.com^ + ÿï08@Rgapesupskip.com^ +ÿï08@Rgaphoadsu.com^ +#ÿï08@Rgariguemancala.uno^ +!ÿï08@Rgaseitycreed.com^ +"ÿï08@Rgaseouspuggle.com^ +!ÿï08@Rgatoareewhee.net^ +"ÿï08@Rgaucierelay.click^ +ÿï08@R gaufaine.com^ +"ÿï08@Rgaugedsplent.shop^ + ÿï08@Rgaumymilage.com^ +#ÿï08@Rgauntlyunstack.com^ +ÿï08@R gauvouni.com^ +!ÿï08@Rgay-hotvideo.net^ + ÿï08@Rgayseatmot.live^ +ÿï08@R gbpqxghe.xyz^ + ÿï08@Rgearthedoe.live^ +ÿï08@Rgeeburouje.net^ +!ÿï08@Rgeejofeecher.top^ +"ÿï08@Rgeggeewrossle.com^ +#ÿï08@Rgenetorpennons.com^ +"ÿï08@Rgeneurawipers.com^ +#ÿï08@Rgengenmegatest.top^ +ÿï08@R genmonet.com^ +!ÿï08@Rgentlledream.net^Ù +ÿï08@Rgerbilshew.com^ +%ÿï08@Rgestantdabitis.click^ +#ÿï08@Rgestapostanza.shop^ +ÿï08@R gestyy.com^ +#ÿï08@Rgetoffers24.online^ + ÿï08@Rgetsurv2you.com^ +!ÿï08@Rgetsurv2youu.com^ +!ÿï08@Rgettripiron.live^ +ÿï08@Rgeumhuzzy.com^ +ÿï08@Rgfkcsaijdr.com^ +ÿï08@R +ggcorp.me^ + ÿï08@Rggetsurveey.com^ +ÿï08@Rgggtrenks.com^ +$ÿï08@Rghaityastajib.store^ +!ÿï08@Rghaytebanc.store^ +#ÿï08@Rghnomovudiqybo.com^ +!ÿï08@Rghuzwaxlike.shop^ +!ÿï08@Rgibbetfloyt.shop^ +"ÿï08@Rgibbetsvower.shop^ +ÿï08@R gigboost.me^ +!ÿï08@Rgiggitchao.click^ +!ÿï08@Rgigroocickax.net^ + ÿï08@Rgiirl4uhere.com^ +ÿï08@R gimoguvi.ru^ +ÿï08@R ginnywea.xyz^ +ÿï08@R giosany.com^ +!ÿï08@Rgiowingdates.net^ + ÿï08@Rgiowlngdate.net^ +ÿï08@R girl4you.net^ +!ÿï08@Rgirllsforyou.com^ +!ÿï08@Rgisantscubit.com^ +ÿï08@R gkjoanks.com^ + ÿï08@Rglacierglut.com^ +ÿï08@R glaimpie.xyz^ +ÿï08@R glaiweer.xyz^ + ÿï08@Rglashanburg.com^ +#ÿï08@Rglazemisdeal.click^ +!ÿï08@Rgleemahortus.com^ +"ÿï08@Rgleergeessoos.net^ +ÿï08@Rgleetresis.com^ +ÿï08@R gliceebe.xyz^ +#ÿï08@Rgloacoogeegrou.net^ +ÿï08@Rglodretsa.net^ +ÿï08@Rglodsidrik.net^ + ÿï08@Rgloghipusto.xyz^ +ÿï08@R gloochie.com^ +ÿï08@Rglooghalty.net^ +ÿï08@R gloupa.com^ +!ÿï08@Rgloutstutu.click^ +!ÿï08@Rgloxoussoogy.net^ +ÿï08@Rglungairg.com^ +!ÿï08@Rgluphordoweb.net^ +ÿï08@R glwmjwwi.com^ +ÿï08@R gmboxx.com^ +"ÿï08@Rgmelinaseller.com^ +#ÿï08@Rgnatterciphers.com^ +!ÿï08@Rgneoewuhkwzd.com^ +$ÿï08@Rgntwnasiofqjypk.com^ +ÿï08@R +go.epn.bz^ +ÿï08@R +go2yd.com^ +ÿï08@R goavoafu.com^ + ÿï08@Rgobblerpoky.top^ +ÿï08@R goeco.mobi^ +ÿï08@Rgofimtaisa.net^ƒ +%ÿï08@Rgogglessmalter.click^ + ÿï08@Rgoldscogger.top^ + ÿï08@Rgomajorlink.com^ +ÿï08@Rgoobreamed.com^ +ÿï08@R googotho.top^ + ÿï08@Rgoomeestain.net^ +ÿï08@R goonichi.net^ +ÿï08@Rgopusher1.com^ +$ÿï08@Rgoraccohoaming.shop^ +$ÿï08@Rgoromanceaffair.com^ +ÿï08@R +gorrio.ru^ +!ÿï08@Rgoschenelect.com^ +!ÿï08@Rgougerestrip.com^ +!ÿï08@Rgougewhenaus.net^ +ÿï08@Rgowhougru.net^ +#ÿï08@Rgracelessbrief.com^ + ÿï08@Rgraifauwhir.net^ +%ÿï08@Rgrainermochila.click^ +#ÿï08@Rgraingoargotha.net^ +ÿï08@R grairgid.top^ +ÿï08@Rgraishaibs.net^ +ÿï08@R gralrekr.net^ +)ÿï08@Rgranddadgigwarehouse.com^ +!ÿï08@Rgrauptogaimp.net^ +%ÿï08@Rgrayflythought.click^ +!ÿï08@Rgreavesyeta.shop^ +#ÿï08@Rgreeckoamseebo.net^ + ÿï08@Rgreelsadrir.net^ + ÿï08@Rgreelseesse.net^ +$ÿï08@Rgreenbluefrog.click^ +ÿï08@Rgreengaming.de^ +"ÿï08@Rgreesseeghoas.net^ +ÿï08@R greetham.net^ +!ÿï08@Rgreewoabaikr.com^ + ÿï08@Rgreeziphekr.net^ +ÿï08@Rgrefagroon.com^ + ÿï08@Rgretalimbas.com^ + ÿï08@Rgrewguested.top^ +!ÿï08@Rgreysummergo.biz^ +ÿï08@R gribseep.net^ +ÿï08@R grifanme.com^ +ÿï08@Rgrintracks.com^ +ÿï08@Rgroagauss.com^ +$ÿï08@Rgroagneeckaifoo.com^ +ÿï08@Rgronsirsou.com^ +#ÿï08@Rgrooltaujengoo.net^ +"ÿï08@Rgroovyartemia.com^ + ÿï08@Rgrottogamer.com^ +ÿï08@R groulrob.com^ +#ÿï08@Rgroutsfatting.shop^ +"ÿï08@Rgrowleading.click^ +ÿï08@R +grtyb.com^ +ÿï08@R +grtyi.com^ +!ÿï08@Rgruffwhitsun.com^ +"ÿï08@Rgruhodiksaipt.net^ +!ÿï08@Rgrujeeroowie.com^ +ÿï08@Rgrurducuze.com^ +!ÿï08@Rgrutcheecolr.net^ +ÿï08@R grwtyolb.org^ +ÿï08@R gsurl.in^ +ÿï08@R gsurl.me^ +ÿï08@Rgsznojgkyw.com^ +"ÿï08@Rgudgeonfrisch.top^ +!ÿï08@Rguimpefesses.com^ó +!ÿï08@Rgulgulsinjer.top^ +&ÿï08@Rgullibleregulator.com^ +!ÿï08@Rgumdropolena.com^ +%ÿï08@Rgurnardyenisei.click^ +ÿï08@R gus.host^ +'ÿï08@Rgussiespiffler.website^ + ÿï08@Rguxiezhuang.top^ +ÿï08@R gwirlrvb.com^ +ÿï08@R gxxcbj.com^ +"ÿï08@Rgypsouspatron.com^ +#ÿï08@Rgypsyrysmarter.com^ +"ÿï08@Rgztllwfbrmdhg.com^ +"ÿï08@Rhabukaiambics.com^ +!ÿï08@Rhabutchodset.com^ +#ÿï08@Rhacklermiching.com^ +ÿï08@Rhafisague.com^ +ÿï08@R haigrigo.com^ +&ÿï08@Rhailofficemeasure.com^ +ÿï08@R haimanee.net^ +ÿï08@R hainiwho.net^ +#ÿï08@Rhairdocalqued.shop^ +!ÿï08@Rhaiseehomouw.net^ +ÿï08@Rhaisteegee.com^ + ÿï08@Rhajilijnemo.com^ + ÿï08@Rhalchcesser.top^ +&ÿï08@Rhalffullglassnews.com^ + ÿï08@Rhamburgnaja.top^ + ÿï08@Rhampotangim.net^ +ÿï08@Rhamzabass.shop^ +ÿï08@R handymag.net^ +!ÿï08@Rhantsailsyte.com^ +!ÿï08@Rhapawaipsoor.net^ +ÿï08@Rhappydatie.com^ +ÿï08@Rhappydatte.net^ +ÿï08@Rhapydates.net^ +ÿï08@R hashcoin.co^ +ÿï08@Rhashforcash.us^ +ÿï08@R hashnest.com^ + ÿï08@Rhashtstrout.com^ +ÿï08@R hashzone.io^ +#ÿï08@Rhasidagamian.click^ +"ÿï08@Rhaslocktyphia.com^ + ÿï08@Rhasnegtiny.live^ + ÿï08@Rhatboxsabre.top^ +!ÿï08@Rhatemassdun.live^ +ÿï08@R hauforip.net^ +ÿï08@R haulyite.com^ +ÿï08@R haurouja.net^ +!ÿï08@Rhausasisters.com^ +!ÿï08@Rhayforkminbu.com^ +#ÿï08@Rhazanuttriazo.life^ +#ÿï08@Rhbqaihowimyiuh.com^ +!ÿï08@Rhbwncbwgyvgt.com^ +ÿï08@Rhclderrid.top^ +ÿï08@R hdbcell.com^ +ÿï08@R hdblive.com^ +ÿï08@R hddcode.com^ +ÿï08@R hdtcode.com^ +"ÿï08@Rheaperinfirm.shop^ +ÿï08@R heaplap.com^ +ÿï08@R heaptube.com^ +ÿï08@Rheapunlax.com^ +!ÿï08@Rhebeticayahs.top^ +!ÿï08@Rhedraighugru.net^ž +"ÿï08@Rheezyfreefd.click^ +ÿï08@Rhelezeiros.com^ +"ÿï08@Rheliacgaybine.com^ +$ÿï08@Rhelicopterskull.com^ +!ÿï08@Rheloereister.top^ +#ÿï08@Rheloninremake.shop^ +#ÿï08@Rhelotsscopone.shop^ +$ÿï08@Rhelpfulcloister.com^ +!ÿï08@Rhemeratenses.com^ + ÿï08@Rhemmedspair.com^ +ÿï08@R hemnes.win^ +ÿï08@Rhenwisedug.top^ +ÿï08@R herdethi.net^ +ÿï08@R herdgrip.com^ +"ÿï08@Rherdicchilla.shop^ +"ÿï08@Rhereloveinair.net^ +$ÿï08@Rhereloveonliine.net^ +!ÿï08@Rheretopgirll.com^ +ÿï08@Rhermaturse.com^ +"ÿï08@Rhernscrackle.shop^ +"ÿï08@Rhestiabefouls.top^ +"ÿï08@Rhettieseparte.com^ +ÿï08@Rheukpiroot.com^ +$ÿï08@Rheurekawhoring.shop^ +ÿï08@Rhexatztydp.com^ +!ÿï08@Rhfpfwnozkcis.com^ +#ÿï08@Rhgmrydbveueanc.com^ +ÿï08@R +hhsp2.com^ +ÿï08@Rhicksjaga.top^ +$ÿï08@Rhideousunbaked.shop^ +#ÿï08@Rhightednubbin.shop^ +ÿï08@Rhiltanseen.net^ +#ÿï08@Rhinniedhajjes.shop^ +#ÿï08@Rhipercontas.com.br^ + ÿï08@Rhipnoticrec.biz^ +#ÿï08@Rhirplescetanes.com^ +ÿï08@Rhjj.pw^ +ÿï08@Rhk6vdj4z.click^ +ÿï08@Rhkjlirftx.com^ +#ÿï08@Rhkoexxnfcilcpd.xyz^ +ÿï08@Rhoahitushu.net^ +ÿï08@Rhoaphoath.com^ + ÿï08@Rhoazathoaps.com^ + ÿï08@Rhoddlegamey.com^ +!ÿï08@Rhogginincest.top^ +#ÿï08@Rhoggishtoraja.shop^ +ÿï08@Rhokangreys.com^ + ÿï08@Rhokerhawses.com^ +"ÿï08@Rholdupmarauds.top^ +ÿï08@R homyanus.com^ + ÿï08@Rhonkoutsing.com^ +!ÿï08@Rhontestmere.live^ +ÿï08@Rhooligapps.com^ +!ÿï08@Rhooshoushach.com^ +ÿï08@R hop.boutique^ + ÿï08@Rhopimimeoed.com^ +'ÿï08@Rhoptreeunburst.website^ +!ÿï08@Rhosenmesitae.com^ +&ÿï08@Rhotbedssmarmy.digital^ +ÿï08@R hotboys.biz^ +ÿï08@R hotodoar.net^ +!ÿï08@Rhoubaushashe.xyz^ +ÿï08@Rhouhoogroo.net^ +!ÿï08@Rhousalscapha.top^Ñ + ÿï08@Rhouseofpubs.com^ +"ÿï08@Rhowledmintier.com^ +$ÿï08@Rhowtosimplified.com^ +ÿï08@R +hpcyk.com^ + ÿï08@Rhqnediwcwnq.com^ + ÿï08@Rhrjbylofyso.com^ +ÿï08@R hrsankgo.com^ +ÿï08@R hrtarsko.com^ +ÿï08@R +hst2y.com^ + ÿï08@Rhuefundfly.live^ +ÿï08@Rhujazephee.xyz^ +!ÿï08@Rhulyagedikci.com^ + ÿï08@Rhumistlasty.top^ +!ÿï08@Rhumoralbooms.top^ +ÿï08@Rhundredtrk.com^ +!ÿï08@Rhurriedcomae.com^ +ÿï08@Rhuskingbch.top^ +!ÿï08@Rhutchieshode.com^ +!ÿï08@Rhutrealebion.com^ +"ÿï08@Rhuysoftzfile.shop^ +#ÿï08@Rhxxkalmsovxvcp.com^ +ÿï08@Rhyahyalay.com^ +!ÿï08@Rhypnaleshow.shop^ +"ÿï08@Rhyzoneshilpit.com^ +#ÿï08@Riaglkpracviogn.com^ +ÿï08@Riakixtnaln.com^ +#ÿï08@Riambistbiuret.life^ +ÿï08@Ribgckxlsea.com^ +ÿï08@R iblayiqi.xyz^ +ÿï08@R ichlnk.com^ +ÿï08@R iclicklw.com^ +ÿï08@R icyporno.com^ +ÿï08@R +idhad.com^ +#ÿï08@Ridioticmapping.com^ +"ÿï08@Ridlishwastine.com^ +#ÿï08@Ridolonpomposo.guru^ +ÿï08@R idreamed.com^ +ÿï08@Rifleadhad.live^ +"ÿï08@Rigbcukkbqnjxl.xyz^ +ÿï08@R +igrid.org^ +ÿï08@Riitopgirl.net^ +!ÿï08@Rijdcvctkalyb.xyz^ +ÿï08@R +ikiif.com^ +$ÿï08@Riliustriousdate.com^ +ÿï08@Rillgumare.live^ +%ÿï08@Rillustrlousdates.net^ +ÿï08@Rilovemobi.com^ +#ÿï08@Rimagerystirrer.com^ +&ÿï08@Rimaginarylawmaker.com^ +#ÿï08@Rimbasedsquidge.com^ +ÿï08@R imfrk12.com^ +ÿï08@R imftrk1.com^ +ÿï08@R imftrk1.net^ +ÿï08@R imglov.com^ +ÿï08@Rimiitrk22.com^ +ÿï08@Rimiitrk23.com^ +ÿï08@R imirkin6.com^ +ÿï08@R imitrk16.com^ +ÿï08@R imitrk21.com^ +ÿï08@R imitrk23.com^ +ÿï08@Rimitrkin14.net^ +ÿï08@Rimitrkk21.com^ +ÿï08@R imitrkn.net^ +"ÿï08@Rimogennubbled.top^Î +#ÿï08@Rimpaintcuprous.com^ +!ÿï08@Rimparloments.com^ +(ÿï08@Rimpassionedpresence.com^ +&ÿï08@Rimpeccableauction.com^ +)ÿï08@Rimpressexaltsculptor.com^ +#ÿï08@Rimpressivepail.com^ +ÿï08@R inagtwo.live^ +ÿï08@Rinbonslyon.com^ +$ÿï08@Rincontro-veloce.com^ +%ÿï08@Rindelicateexcept.com^ +)ÿï08@Rindirectlatitudewomb.com^ +!ÿï08@Rindratankman.com^ +)ÿï08@Rinfantilecombination.com^ +$ÿï08@Rinfinite-bottom.com^ +"ÿï08@Rinfloworchids.com^ +ÿï08@Rinfocentro.ru^ +ÿï08@R infokz.com^ +ÿï08@Rinformpay.com^ +%ÿï08@Rinhaulshollies.click^ + ÿï08@Rinonclbench.com^ +!ÿï08@Rinopdngdufyw.com^ + ÿï08@Rinsanetrack.com^ +!ÿï08@Rinsectqualia.com^ +&ÿï08@Rinsecurealbatross.com^ +!ÿï08@Rinsideoftech.com^ + ÿï08@Rinsimipourr.com^ +*ÿï08@Rinspirationhistorical.com^ + ÿï08@Rinstallfree.pro^ +ÿï08@Rinstallnow.pro^ +$ÿï08@Rinsuperkokoon.click^ +"ÿï08@Rinternal-deal.com^ +$ÿï08@Rinternsbowboy.click^ +#ÿï08@Rintrlgulngdate.com^ +"ÿï08@Rinurnskittock.top^ +ÿï08@Rinvesthash.com^ +ÿï08@Rinvesting1.com^ + ÿï08@Rinyoketuber.com^ +!ÿï08@Riodolruddock.com^ +ÿï08@R ioefhvcc.com^ +ÿï08@Rionlylove.net^ +ÿï08@Rionlyloves.com^ +#ÿï08@Riorbcqjykdwiji.com^ +ÿï08@Riowanseck.com^ +ÿï08@Ripmtermon.top^ +ÿï08@R +ipnyx.com^ +ÿï08@Ripyefimivc.com^ +ÿï08@R iqbhhitp.xyz^ +ÿï08@R iqcjbsti.com^ +!ÿï08@Riqcxhe04fnic.com^ +ÿï08@R iqoption.com^ +"ÿï08@Riraterkirpan.shop^ +!ÿï08@Rireempoacmas.net^ + ÿï08@Rirenethrush.com^ +$ÿï08@Rironmenfoetus.click^ +ÿï08@R +irtyc.com^ +ÿï08@Risanalyze.com^ +#ÿï08@Risatisodalisk.shop^ +)ÿï08@Riskustvenny-intellekt.ru^ +#ÿï08@Risoamidtrusion.com^ +"ÿï08@Risopodaupcock.com^ +ÿï08@Risoukrunge.net^ +ÿï08@R istri.it^ + ÿï08@Ritalarizege.xyz^ +$ÿï08@Ritbraviarychan.club^ý + ÿï08@Ritemtaxopt.live^ +ÿï08@Ritopgirll.net^ + ÿï08@Riucksforyou.net^ +ÿï08@Riuckyluck.net^ + ÿï08@Riwyedjscpql.com^ + ÿï08@Rj0ss4np1c5.site^ + ÿï08@Rjaapsubsume.top^ +,ÿï08@Rjacquieetmichel-contact.com^ +-ÿï08@Rjacquieetmichel-contacts.com^ +!ÿï08@Rjaifoptafoog.com^ + ÿï08@Rjailabridge.com^ +ÿï08@R jainjkal.com^ +"ÿï08@Rjalopymisly.click^ +$ÿï08@Rjambosaettled.click^ +ÿï08@R janetsh.com^ +"ÿï08@Rjarsfulerenow.com^ +!ÿï08@Rjatosbathkol.com^ +ÿï08@Rjauhedeps.net^ +ÿï08@Rjaunithuw.com^ +ÿï08@Rjawabtiki.top^ +ÿï08@Rjaytampay.live^ + ÿï08@Rjazeranpipy.top^ +ÿï08@Rjazzhinds.top^ + ÿï08@Rjazzvamfont.com^ +ÿï08@R jdctduin.com^ +ÿï08@R jeepsaut.com^ + ÿï08@Rjeeteekoppa.top^ +ÿï08@Rjeewhaphoa.net^ +ÿï08@Rjegnoocmoa.net^ +ÿï08@Rjegyojben.com^ +ÿï08@R jehudf.com^ +ÿï08@R jekotyay.com^ +!ÿï08@Rjemtaucmowhu.top^ +#ÿï08@Rjerboasjourney.com^ +"ÿï08@Rjereedskhedas.com^ +ÿï08@Rjetm-tech.net^ +!ÿï08@Rjettagehazes.top^ +!ÿï08@Rjewisostiate.top^ +!ÿï08@Rjhoolpalmy.click^ +ÿï08@R jidfdaxi.com^ +#ÿï08@Rjikungudubber.live^ +ÿï08@Rjithethos.net^ +ÿï08@Rjivmjdpmq.com^ +"ÿï08@Rjkbewmebyqbob.top^ +!ÿï08@Rjljhiampirfh.com^ +ÿï08@R jlxctoig.top^ +!ÿï08@Rjmhepnannwwv.xyz^ +ÿï08@Rjmwdsqkbh.com^ + ÿï08@Rjobbettypps.com^ +ÿï08@R joevese.com^ +ÿï08@Rjoggymyet.live^ +ÿï08@Rjograinems.net^ +!ÿï08@Rjoinallport.live^ +ÿï08@Rjoindetox.info^ + ÿï08@Rjoogaipseed.net^ +!ÿï08@Rjoomaipsoubu.net^ +ÿï08@Rjooneetak.net^ +$ÿï08@Rjoothasofacauwu.net^ +!ÿï08@Rjostegroossu.net^ +ÿï08@Rjotchidoun.net^ +!ÿï08@Rjowleratocia.top^ +!ÿï08@Rjpwbvlensjmp.xyz^ +ÿï08@R jpwijors.xyz^ +"ÿï08@Rjrrryblznaaqa.top^Û +ÿï08@R jscdndel.com^ +ÿï08@R jsecoin.com^ +!ÿï08@Rjsjhuagqssrx.com^ +"ÿï08@Rjsrcxfoeheaki.com^ +ÿï08@R jsyefc.com^ +#ÿï08@Rjuchacmibouche.net^ +#ÿï08@Rjudasesesrogim.com^ +ÿï08@R judretux.com^ +#ÿï08@Rjuglansovening.com^ +ÿï08@Rjuicyads.rocks^ +!ÿï08@Rjulyhadchose.com^ +ÿï08@R jumpers.mobi^ + ÿï08@Rjuponrerope.com^ +ÿï08@R jurijuha.com^ +!ÿï08@Rjustenantrum.com^ +ÿï08@R justpush.biz^ +!ÿï08@Rjvnpnyqoxoqx.com^ +ÿï08@Rjxbqurpezx.com^ +"ÿï08@Rkaayqbakmzrwy.top^ +ÿï08@R +kadam.net^ + ÿï08@Rkadrireeziz.net^ +ÿï08@R kadxin.net^ +$ÿï08@Rkaifaiwoofabash.net^ +"ÿï08@Rkaijoareharoa.net^ +"ÿï08@Rkamamwvlvrazr.top^ +$ÿï08@Rkamsinhokerly.click^ +ÿï08@Rkanswarth.top^ +ÿï08@Rkarissavip.com^ +$ÿï08@Rkartelwildish.click^ +ÿï08@R kasych.net^ +ÿï08@R katuhus.com^ +ÿï08@Rkaushichie.net^ +!ÿï08@Rkeejasezeehi.xyz^ +ÿï08@Rkeemusaty.net^ +ÿï08@Rkegmrptvad.com^ +ÿï08@Rkeizzpbhs.com^ +!ÿï08@Rkernelsalso.shop^ +ÿï08@R kernh41.com^ +ÿï08@R kfiopkln.com^ + ÿï08@Rkharwaenema.top^ +!ÿï08@Rkhuzibatekes.com^ +ÿï08@R kifaunsu.com^ +ÿï08@R +kiloh.ovh^ +ÿï08@Rkinoprofi.org^ +ÿï08@Rkirvesip.shop^ +#ÿï08@Rkitchiepreppie.com^ +!ÿï08@Rkkfdajrsqehl.com^ +$ÿï08@Rkklfbucxmylnbdv.xyz^ +ÿï08@R klclick.com^ +#ÿï08@Rklippenskeller.com^ +ÿï08@R kmisln.com^ +"ÿï08@Rknetchenamour.com^ + ÿï08@Rknowbetnow.live^ +ÿï08@R koaptoah.net^ +!ÿï08@Rkoawhoatheje.net^ +ÿï08@R kodmagic1.me^ +"ÿï08@Rkoipatolipper.com^ +$ÿï08@Rkolobusbeseam.space^ +ÿï08@R kombr.ru^ + ÿï08@Rkoocheepton.net^ +ÿï08@Rkookypeach.com^ +$ÿï08@Rkoomanodobelouy.net^ +$ÿï08@Rkoophoogloophie.net^ +ÿï08@R koosheew.com^§ +ÿï08@Rkorhoised.com^ +#ÿï08@Rkoscheilushed.shop^ +ÿï08@Rkotwalpoet.top^ +"ÿï08@Rkougredafooca.net^ + ÿï08@Rkrantzreal.life^ +ÿï08@R kstream.xyz^ +ÿï08@Rkubsaishon.net^ +!ÿï08@Rkukidsaidree.com^ +"ÿï08@Rkulakairplot.shop^ +ÿï08@Rkuptaigroo.net^ +ÿï08@R +kvevv.com^ +ÿï08@R kvhaaa.top^ +ÿï08@R kvsadman.com^ +ÿï08@Rkwanvibist.com^ +ÿï08@R kwuhctrg.com^ +!ÿï08@Rkyptgkxkoiag.com^ + ÿï08@Rkytprvcybfr.xyz^ +ÿï08@Rl6b587txj1.com^ +#ÿï08@Rlaborsmitanni.shop^ +"ÿï08@Rlaceratecoast.com^ +!ÿï08@Rlacertrotter.com^ +ÿï08@Rlactolwant.com^ +ÿï08@R ladenapp.com^ + ÿï08@Rlagbondhas.live^ +!ÿï08@Rlaichegloavy.com^ +"ÿï08@Rlaichsisogony.com^ +#ÿï08@Rlaikeeboathaip.com^ +!ÿï08@Rlaithauptaip.net^ +ÿï08@Rlaizoochey.com^ +"ÿï08@Rlammiewarbite.top^ +"ÿï08@Rlamourronline.com^ +"ÿï08@Rlancersnerol.shop^ +(ÿï08@Rlandlordmexicansole.com^ + ÿï08@Rlandutmove.live^ + ÿï08@Rlanesusanne.com^ +#ÿï08@Rlangretsahibah.com^ + ÿï08@Rlappedtwist.com^ +#ÿï08@Rlargeconfusion.com^ +ÿï08@Rlartaivucy.net^ +'ÿï08@Rlaserveradedomaina.com^ +ÿï08@Rlasesaboon.com^ + ÿï08@Rlast0nef1le.com^ +ÿï08@R lastwise.com^ +"ÿï08@Rlatedateship.live^ +#ÿï08@Rlateststarten.shop^ + ÿï08@Rlaucheesauz.net^ +!ÿï08@Rlaulokikailo.net^ +ÿï08@Rlauwhounou.net^ +#ÿï08@Rlavageruptile.shop^ +ÿï08@Rlavantpita.top^ +"ÿï08@Rlawishknits.click^ +ÿï08@Rlawnjinsi.com^ +!ÿï08@Rlawyersbespy.com^ +#ÿï08@Rlcktrriuimyopn.xyz^ +ÿï08@R ldspoky.shop^ +&ÿï08@Rleafingcoitus.website^ +ÿï08@Rlebagruque.com^ +$ÿï08@Rledidaeconand.click^ +"ÿï08@Rleechpremium.link^ +!ÿï08@Rleedsneurite.com^ +#ÿï08@Rleezunikoohauh.net^ +#ÿï08@Rleftishburgout.com^ +!ÿï08@Rlemmingunlit.top^ +!ÿï08@Rlencansalpae.top^œ +ÿï08@R lend-rb.bid^ +ÿï08@Rlenstasbih.top^ +ÿï08@R lenzmx.com^ + ÿï08@Rlestaigames.com^ +"ÿï08@Rletmewatchthis.pl^ +#ÿï08@Rleverpolesaw.click^ +"ÿï08@Rlexiasantal.click^ +!ÿï08@Rlgxdwxzgfxvy.com^ +"ÿï08@Rlhufelctnwksc.xyz^ +ÿï08@R licertle.co^ +"ÿï08@Rliefesttzetse.com^ +#ÿï08@Rlifefuldecided.com^ +ÿï08@Rliftrollers.ru^ +"ÿï08@Rlilinstall11x.com^ +"ÿï08@Rlimbecculvers.com^ +"ÿï08@Rlippenscomate.top^ +!ÿï08@Rlirotroodles.com^ + ÿï08@Rliskpiculs.shop^ +#ÿï08@Rlisterabromous.com^ + ÿï08@Rlisthugdab.live^ +"ÿï08@Rlithoidclosky.top^ +ÿï08@Rliticismov.xyz^ +ÿï08@Rlitpluming.com^ +!ÿï08@Rlitrefloored.com^ +"ÿï08@Rlittlegirlies.org^ +$ÿï08@Rlituatetoea.digital^ +ÿï08@Rlitznards.com^ +ÿï08@Rlive18ans.com^ +ÿï08@Rliveislive.bid^ +!ÿï08@Rlivepartners.com^ +ÿï08@R lkj-lijn.com^ + ÿï08@Rlloveaffair.net^ + ÿï08@Rlloveonline.com^ + ÿï08@Rlloveonline.net^ + ÿï08@Rlloveonllne.com^ + ÿï08@Rllovesgreat.com^ +"ÿï08@Rlmboiwvudolya.com^ +#ÿï08@Rlmwchtcwluvkba.xyz^ +"ÿï08@Rlnventlvedate.com^ +&ÿï08@Rloading-delivery2.com^ +!ÿï08@Rloavouduleem.net^ +!ÿï08@Rloazoapagour.com^ +#ÿï08@Rloboloshetaery.com^ +"ÿï08@Rlocalsnapsext.com^ +!ÿï08@Rlochusarrowy.com^ +!ÿï08@Rlocklistmax.live^ +$ÿï08@Rloftmanovicyst.shop^ +"ÿï08@Rlohanamickle.shop^ +ÿï08@Rlohockdock.com^ +ÿï08@Rloketsaucy.com^ +"ÿï08@Rlondresicing.shop^ +"ÿï08@Rlookslikenews.com^ +!ÿï08@Rlooksmartppc.com^ +ÿï08@Rloothoushu.com^ + ÿï08@Rloovufaiboo.net^ +ÿï08@R +lopije.ru^ +ÿï08@Rlostdidest.com^ +#ÿï08@Rlotaissouxapse.com^ + ÿï08@Rlotebsansiz.net^ +ÿï08@R lousoozi.net^ +ÿï08@Rloveafairs.net^ + ÿï08@Rloveaflairs.com^ +ÿï08@Rlovedatee.com^ +ÿï08@Rlovedatng.com^� + ÿï08@Rloveeonline.com^ +ÿï08@R loveiswe.net^ + ÿï08@Rlovellydate.net^ + ÿï08@Rloveonlinee.com^ + ÿï08@Rloveonlinee.net^ +!ÿï08@Rloveonlliine.com^ +!ÿï08@Rlowanoversaw.top^ + ÿï08@Rlowdurantom.com^ +!ÿï08@Rlowtirtougaa.com^ +&ÿï08@Rloyalobduratedata.com^ +"ÿï08@Rlqkkoozmawemy.top^ + ÿï08@Rlrogxpwoaec.xyz^ +!ÿï08@Rluckspin4you.com^ +ÿï08@Rlucksucces.com^ +ÿï08@R luckwyou.net^ +ÿï08@Rlucky-bet.site^ +$ÿï08@Rluddismquirked.shop^ +ÿï08@Rlukizeiasn.xyz^ +ÿï08@R luloffer.com^ + ÿï08@Rluminoustry.com^ +#ÿï08@Rlumpenscrcao.click^ +)ÿï08@Rlunggrandfatherhedge.com^ +ÿï08@R +lvkwz.com^ + ÿï08@Rlvtuucmyfpz.com^ +ÿï08@Rlyebasions.top^ +"ÿï08@Rlyremaneldest.com^ +!ÿï08@Rlzexnxwjsmof.com^ +"ÿï08@Rlzwpvxulwwjgl.com^ +"ÿï08@Rmabolocorrive.com^ +"ÿï08@Rmachilatundun.com^ +"ÿï08@Rmacomaindex.click^ +ÿï08@Rmadamecam.com^ +ÿï08@Rmadrasoozi.com^ +#ÿï08@Rmaggiecarbona.guru^ +ÿï08@R magic1.biz^ +ÿï08@R +magic1.me^ +"ÿï08@Rmagicgirlhere.com^ +ÿï08@R magjeon.com^ +$ÿï08@Rmagnificentdate.net^ +%ÿï08@Rmagnlficentdates.net^ +$ÿï08@Rmagnlflcentdate.net^ +ÿï08@R maihikuh.com^ +%ÿï08@Rmailbagoutpurl.click^ + ÿï08@Rmaimspeller.com^ +ÿï08@Rmainorouy.com^ +ÿï08@R majoagna.com^ +ÿï08@Rmajorilink.com^ +ÿï08@Rmajorlink.club^ + ÿï08@Rmajorlinker.com^ +#ÿï08@Rmajormedialink.com^ + ÿï08@Rmajorpush1.club^ +!ÿï08@Rmajorpushme2.com^ + ÿï08@Rmakeitunder.com^ +!ÿï08@Rmalakonirgun.com^ +ÿï08@Rmaleeprn.click^ +!ÿï08@Rmamparamitre.com^ +"ÿï08@Rmapiolaviwrba.com^ + ÿï08@Rmarasgumpus.com^ +!ÿï08@Rmarciaarmata.com^ +"ÿï08@Rmaremmewived.shop^ +!ÿï08@Rmaristbister.top^ +ÿï08@Rmarriage40.cfd^ +"ÿï08@Rmarybskitchen.com^ +"ÿï08@Rmasouckomirtu.net^ê +"ÿï08@Rmasterfornews.com^ +ÿï08@Rmatiealloy.top^ +ÿï08@Rmatriskvar.com^ +ÿï08@Rmaubourow.net^ +ÿï08@R mauphiph.net^ + ÿï08@Rmauphupooca.com^ +ÿï08@Rmautifasa.xyz^ +ÿï08@Rmawnuzvkin.com^ +ÿï08@Rmax-adserv.com^ +ÿï08@R maxforta.com^ +ÿï08@R mazlspqnn.ru^ +ÿï08@Rmbdmiszone.com^ + ÿï08@Rmbeuerretch.top^ +ÿï08@R mbidpp.com^ +ÿï08@Rmbno.ca^ + ÿï08@Rmcheaprjnve.com^ +ÿï08@Rmeathmjew.live^ +#ÿï08@Rmeatiererogate.com^ + ÿï08@Rmechoftouft.net^ +"ÿï08@Rmediaathay.org.uk^ +ÿï08@Rmediared.shop^ +ÿï08@R medncom.com^ +#ÿï08@Rmedrickmafiosi.com^ +ÿï08@Rmeeheegroo.net^ +"ÿï08@Rmeetaffiliate.com^ +!ÿï08@Rmeetamate.online^ +!ÿï08@Rmeetmagsuit.live^ +"ÿï08@Rmeetyuorllove.net^ +ÿï08@Rmegafiles.xyz^ +ÿï08@R megartb.com^ +ÿï08@Rmegroarsoy.net^ + ÿï08@Rmeheartlove.com^ + ÿï08@Rmeheartlove.net^ +ÿï08@Rmellowads.com^ +ÿï08@Rmelovehere.com^ +"ÿï08@Rmengochepsaun.net^ +"ÿï08@Rmenthandurgen.com^ + ÿï08@Rmenwinecop.live^ +ÿï08@Rmepirtedic.com^ + ÿï08@Rmerelsrealm.com^ +ÿï08@Rmericefem.shop^ +ÿï08@Rmerlwyver.com^ +ÿï08@R messard.com^ +ÿï08@Rmessyfuck.com^ +#ÿï08@Rmeticulousdate.net^ +ÿï08@Rmeyoudate.com^ +ÿï08@Rmhosbouge.shop^ +ÿï08@R mhxpwknw.xyz^ +$ÿï08@Rmi-de-ner-nis3.info^ + ÿï08@Rmicklebert.shop^ +"ÿï08@Rmiddaysbedaff.com^ +(ÿï08@Rmidgerelativelyhoax.com^ +ÿï08@Rmidsampouz.net^ + ÿï08@Rmikeydope.click^ +!ÿï08@Rmiksoalroobs.net^ +!ÿï08@Rmildishsumac.top^ +%ÿï08@Rmiliolaungated.space^ +)ÿï08@Rmilitantwitnessfelon.com^ +&ÿï08@Rmilordearnful.digital^ +ÿï08@R min.org.ua^ +"ÿï08@Rminemytraffic.com^ +ÿï08@R minerad.com^ +ÿï08@Rminergate.com^ +ÿï08@R +minero.cc^ð +ÿï08@R minexmr.com^ +ÿï08@R mining.best^ +!ÿï08@Rmirvscanhoop.top^ +ÿï08@Rmiskenish.com^ +ÿï08@R missena.io^ +ÿï08@Rmissodulru.net^ + ÿï08@Rmissyesera.live^ +!ÿï08@Rmisuraunnail.com^ +"ÿï08@Rmitreskravers.com^ +!ÿï08@Rmixablelathe.com^ +"ÿï08@Rmixbestboost.club^ +ÿï08@R mk-cdn.net^ +"ÿï08@Rmkgydsrqygntk.com^ +ÿï08@R mkjigsaw.com^ + ÿï08@Rmkklhtmgrbp.xyz^ + ÿï08@Rmlllllllmmm.ovh^ +ÿï08@Rmllllllmmm.ovh^ +ÿï08@Rmlllllmmmm.ovh^ + ÿï08@Rmlvgxzenoiz.com^ +ÿï08@R mmpool.org^ +ÿï08@Rmmtracking.com^ +$ÿï08@Rmoadoopsouwhast.net^ +ÿï08@Rmobapsmob.com^ +ÿï08@Rmobile1cdn.com^ +ÿï08@R mobswift.com^ +ÿï08@R mobusi.com^ +ÿï08@R +modato.ru^ + ÿï08@Rmodsacline.live^ +%ÿï08@Rmohalimloonier.click^ +"ÿï08@Rmoheganwersh.shop^ +ÿï08@R mojwprb.ru^ +!ÿï08@Rmomistmatico.com^ +#ÿï08@Rmommiesgranule.com^ +ÿï08@Rmondaysale.bid^ +ÿï08@R monerise.com^ +"ÿï08@Rmonerominer.rocks^ +#ÿï08@Rmoneroocean.stream^ +ÿï08@R monetizer.co^ +!ÿï08@Rmonetizze.com.br^ + ÿï08@Rmontondirgy.com^ +"ÿï08@Rmoohoostoamie.net^ +#ÿï08@Rmoopoachoarail.net^ + ÿï08@Rmoopsazijop.com^ +ÿï08@Rmoozeezak.net^ +ÿï08@Rmoptaimpoo.net^ +ÿï08@R morebawn.top^ +"ÿï08@Rmorelroogrels.com^ +#ÿï08@Rmorinavotarius.top^ +#ÿï08@Rmorinelbewater.com^ +!ÿï08@Rmossyiapyges.com^ +#ÿï08@Rmostazoaptoare.net^ + ÿï08@Rmotelverves.com^ +"ÿï08@Rmotifsclosers.top^ +)ÿï08@Rmotivesbreastchopped.com^ +!ÿï08@Rmournerslath.com^ +ÿï08@R mousheen.net^ +!ÿï08@Rmousmeetrike.com^ +'ÿï08@Rmovementshereafter.com^ +"ÿï08@Rmowablegyros.shop^ +ÿï08@R moyslovar.ru^ +ÿï08@R mozime.com^ +ÿï08@Rmpwhgejces.xyz^ +!ÿï08@Rmqjcawdtgahb.xyz^ +ÿï08@R msgby.ru^Ì +#ÿï08@Rmuchadmiredin.info^ +"ÿï08@Rmuddedcarboys.com^ +#ÿï08@Rmuddishemblem.shop^ +ÿï08@R muellfrei.de^ +ÿï08@Rmultiphoo.com^ + ÿï08@Rmultiupload.com^ + ÿï08@Rmunchoicks.shop^ +"ÿï08@Rmureinsunmeth.top^ +!ÿï08@Rmurphydrying.com^ +%ÿï08@Rmushingjocular.click^ +"ÿï08@Rmuskatchefdom.com^ +ÿï08@Rmuskurahat.com^ +$ÿï08@Rmuskurahatmusic.com^ + ÿï08@Rmutedsquare.com^ +ÿï08@Rmuthfourre.com^ +ÿï08@Rmutipugly.com^ +ÿï08@R +mvas.club^ +ÿï08@Rmw19c3mi5a.com^ +ÿï08@R mybad.fr^ + ÿï08@Rmybestclick.net^ +ÿï08@R mygpuid.com^ + ÿï08@Rmynahagname.top^ +%ÿï08@Rmynativeplatform.com^ +"ÿï08@Rmyopiacreeper.com^ + ÿï08@Rmyornamenti.com^ +%ÿï08@Rmyrrhisunition.store^ +ÿï08@Rmywb.fr^ + ÿï08@Rmyyilufa888.com^ +ÿï08@R n-e.online^ +ÿï08@R +n0233.com^ +ÿï08@R +n0300.com^ +ÿï08@R +n0322.com^ +ÿï08@R +n0404.com^ +ÿï08@Rn1g459ky7y.com^ +ÿï08@R n1major.com^ +ÿï08@R nablabee.com^ +ÿï08@Rnachoomto.net^ +ÿï08@R nahnoji.cz^ +!ÿï08@Rnaichootikie.com^ +!ÿï08@Rnailumaihogo.com^ +$ÿï08@Rnaivetychelas.click^ +!ÿï08@Rnamultoptoab.net^ +"ÿï08@Rnannieslamaic.com^ +%ÿï08@Rnanosecnobbily.click^ +ÿï08@R nanouwho.com^ +#ÿï08@Rnaplpzlrgslcwj.com^ +ÿï08@R native.com^ +ÿï08@R natpygnk.com^ +ÿï08@R naufauzo.net^ +"ÿï08@Rnaughtybureau.com^ +ÿï08@R nauloapt.com^ +"ÿï08@Rnaumezeephovy.net^ +ÿï08@Rnaurnards.top^ +ÿï08@Rnaushauvoa.net^ + ÿï08@Rnawhaurgoas.com^ +!ÿï08@Rnaxoloargaum.com^ +ÿï08@Rncvwahrct.com^ +ÿï08@R +ndyzz.com^ + ÿï08@Rnearaworry.shop^ +ÿï08@Rneatsafety.com^ +ÿï08@Rnedassiumw.xyz^ +!ÿï08@Rnedoaptiksez.xyz^ + ÿï08@Rneechaipoad.com^ + ÿï08@Rnefrvjfkzus.com^ë +"ÿï08@Rnegatebogfern.com^ +#ÿï08@Rnegative-speed.pro^ +'ÿï08@Rneighboringoatmeal.com^ +ÿï08@Rnergaukibe.com^ +ÿï08@Rneriphine.com^ +ÿï08@Rnerojimsee.xyz^ +ÿï08@R netcpms.com^ +ÿï08@Rnettcruet.top^ +ÿï08@Rnewfollow.info^ +ÿï08@R +newrb.pro^ +ÿï08@R news-bit.com^ +ÿï08@R newscode.me^ +#ÿï08@Rnewsiesherbose.top^ +ÿï08@Rnewsjuices.com^ +"ÿï08@Rnewstodiscuss.com^ +ÿï08@R newtabtv.com^ +ÿï08@R +newup.bid^ +ÿï08@Rnfwebminer.com^ +ÿï08@Rnhkughssuu.com^ +ÿï08@Rniatapray.com^ +ÿï08@Rnicherblit.top^ +#ÿï08@Rnicholasparcel.com^ +&ÿï08@Rnicsorts-accarade.com^ + ÿï08@Rnifracomtra.com^ + ÿï08@Rnightsaizle.com^ +%ÿï08@Rnightsgeological.com^ +ÿï08@R nigrebud.net^ +$ÿï08@Rnirvanaimbalms.shop^ +ÿï08@R niubixxx.com^ + ÿï08@Rnkxjhiwimrl.com^ +"ÿï08@Rnkzfdaoyujgib.com^ +'ÿï08@Rnl.almagrabalkish.shop^ +#ÿï08@Rnmvbtrbibxuohv.xyz^ +ÿï08@R +nnvkh.com^ +ÿï08@R noafechu.xyz^ +ÿï08@Rnoapeveety.top^ +#ÿï08@Rnobbiermonepic.com^ +#ÿï08@Rnobleypanacea.shop^ + ÿï08@Rnoboqsmoqof.com^ +!ÿï08@Rnogautssvjlh.com^ + ÿï08@Rnonseertoux.net^ +ÿï08@Rnoopsaithu.net^ +ÿï08@R noouplit.com^ +ÿï08@R nopetsou.net^ +ÿï08@R noradown.bid^ +#ÿï08@Rnormalexchange.com^ +ÿï08@R normour.com^ +ÿï08@Rnotmining.org^ + ÿï08@Rnotquiteso.buzz^ +ÿï08@R notrobot.top^ +ÿï08@Rnotspecial.biz^ +"ÿï08@Rnougatdimetry.com^ +$ÿï08@Rnouricesnooker.shop^ +ÿï08@Rnouseeloah.net^ +!ÿï08@Rnoveladulses.com^ +"ÿï08@Rnovelletilia.shop^ +ÿï08@R novusbet.com^ +ÿï08@R npepyyis.xyz^ +ÿï08@R +nrged.com^ +ÿï08@R nservw.net^ +ÿï08@Rnsomedidm.xyz^ +!ÿï08@Rnta1vb6cdlrl.com^ + ÿï08@Rnthaitingsh.com^ +'ÿï08@Rntowritingneewebfu.com^í +ÿï08@Rntppndtpi.com^ +ÿï08@Rntvpevnts.com^ + ÿï08@Rnubblysaves.com^ +"ÿï08@Rnubianarchgod.top^ +"ÿï08@Rnuggetscrore.life^ +ÿï08@Rnumisston.live^ +ÿï08@Rnupsabipsa.net^ +ÿï08@Rnut.cc^ +ÿï08@Rnutsinmid.live^ + ÿï08@Rnuxonupper.info^ +ÿï08@R +nvjqm.com^ +ÿï08@R +nwmum.com^ + ÿï08@Rnwwkstynowv.xyz^ +#ÿï08@Rnwymrgwdtwcagn.xyz^ +$ÿï08@Rnymssslyish.website^ +ÿï08@R nzurlmq.com^ +ÿï08@R o000oo.com^ +!ÿï08@Roabaupsikros.xyz^ +ÿï08@R oacechoo.com^ +ÿï08@Roadramezu.com^ + ÿï08@Roadsalsauck.net^ +ÿï08@Roafoocmisa.net^ +ÿï08@R oaghupha.xyz^ +!ÿï08@Roagnalsaftob.net^ +ÿï08@R oakapsot.com^ + ÿï08@Roakmalewet.live^ +!ÿï08@Roalseessonoo.com^ +ÿï08@R oangewha.net^ +!ÿï08@Roasheftoaque.net^ +ÿï08@R oashoard.net^ +!ÿï08@Roastoarsooso.com^ +ÿï08@Roatchaudu.net^ +ÿï08@Roathoolroo.net^ +!ÿï08@Roavisailaimt.com^ +!ÿï08@Roaweekoorsew.net^ +!ÿï08@Robsedelathed.com^ +*ÿï08@Robservationsolution10.com^ +)ÿï08@Robservationsolution5.com^ + ÿï08@Robsxfvqvoux.com^ + ÿï08@Roceksodragi.net^ + ÿï08@Rocheeglouzo.com^ +ÿï08@R oddgate.com^ +ÿï08@R odutxioc.com^ +!ÿï08@Rofbulbasaura.com^ +ÿï08@R ofchicks.com^ +!ÿï08@Roffclaydolon.com^ + ÿï08@Roffcuboneer.com^ +ÿï08@R offergo.net^ +ÿï08@Roffers1019.com^ +.ÿï08@Rofficeclouddriveshared365.com^ +"ÿï08@Roffinfernaper.com^ +!ÿï08@Roffraticater.com^ +!ÿï08@Rofninjasktor.com^ +$ÿï08@Rofqcjonrcusvpok.com^ + ÿï08@Rofrapidashr.com^ + ÿï08@Rofrhyhornan.com^ +ÿï08@R ofzate.live^ +ÿï08@R +ohmyad.co^ +ÿï08@R ohognoul.com^ +#ÿï08@Rojhniewdwtiuqd.com^ +ÿï08@R olevole.ru^ +"ÿï08@Rolitoryhunter.com^ +$ÿï08@Rolmeramarketing.com^ +!ÿï08@Romcroconawan.com^ú +!ÿï08@Romefukmendat.xyz^ +ÿï08@Romgoodraor.com^ + ÿï08@Romlahpewing.com^ +ÿï08@Romostwdosx.xyz^ +ÿï08@Rompatratom.com^ +!ÿï08@Romshellderom.com^ +ÿï08@Romumbreona.com^ +#ÿï08@Romvenusaurchan.com^ +ÿï08@R ondate.xyz^ +ÿï08@R oneaucys.com^ +ÿï08@R onemontay.ru^ +ÿï08@Ronetypecdn.com^ +ÿï08@Ronkirliaom.com^ +#ÿï08@Ronlygamesforme.com^ +,ÿï08@Ronlyneedtoreadnotebook.buzz^ + ÿï08@Ronopolicycr.xyz^ +ÿï08@R onotube.com^ + ÿï08@Ronpolitoeda.com^ +"ÿï08@Ronroggenrolaa.com^ + ÿï08@Ronwardclick.com^ +ÿï08@Ronxatutor.com^ +"ÿï08@Ronykekwbyyita.com^ +"ÿï08@Roocyststaker.shop^ +ÿï08@Roodaiwhauz.net^ + ÿï08@Roofteonaft.work^ +ÿï08@R ooftilra.net^ +"ÿï08@Roolsashasicho.net^ + ÿï08@Roophaiwhemt.net^ +ÿï08@Roophooptoa.net^ +!ÿï08@Roopsiksaicki.com^ +ÿï08@R oopursie.com^ + ÿï08@Roortezaidib.com^ + ÿï08@Roossouhisso.net^ +ÿï08@R op05.biz^ +ÿï08@R opabsolr.top^ + ÿï08@Ropbrelooman.com^ +ÿï08@Ropealleven.com^ +ÿï08@Ropenquick.site^ +%ÿï08@Roperarymishear.store^ +$ÿï08@Rophitebandeau.click^ +ÿï08@R opskln.com^ +ÿï08@R opsktp.com^ +ÿï08@R optimuum.com^ +ÿï08@R orangear.com^ + ÿï08@Rordealstow.shop^ +!ÿï08@Roremantolsey.com^ +!ÿï08@Roriginaldate.net^ +!ÿï08@Roriglnaldate.com^ +"ÿï08@Roriglnaldates.net^ +ÿï08@Rorigoclick.com^ + ÿï08@Rorkhovdimin.xyz^ +!ÿï08@Rorlglnaldate.net^ +"ÿï08@Rossreuniclusr.com^ +ÿï08@Rothersides.top^ + ÿï08@Rotoemkbrfja.com^ +$ÿï08@Rotttqmhdutxgxuy.com^ +#ÿï08@Roucmaimsackool.net^ +ÿï08@Roucouksirt.com^ + ÿï08@Roudrirginso.com^ +"ÿï08@Roultoheboalte.net^ +$ÿï08@Rounoaksivoutsim.net^ +"ÿï08@Rourlittlenews.com^ +ÿï08@R oursty.com^ + ÿï08@Routlapdawn.live^¨ +"ÿï08@Routlarvitarer.com^ + ÿï08@Routlypelops.com^ +'ÿï08@Routpiperibbers.website^ +#ÿï08@Routshroomishan.com^ +$ÿï08@Routtasknapaea.click^ +"ÿï08@Routwakeploce.shop^ +ÿï08@R ouwhalta.net^ +!ÿï08@Rouzosbesiren.com^ +#ÿï08@Rovercobalionom.com^ +"ÿï08@Roverdrowzeeon.com^ +#ÿï08@Rovergotsnecker.com^ +$ÿï08@Roversnubbulltor.com^ +!ÿï08@Rovularlinkup.com^ +ÿï08@R owhaptih.net^ +$ÿï08@Rowheezoatoaphoo.net^ +%ÿï08@Roxidsinertly.digital^ +ÿï08@R +ozjga.top^ +!ÿï08@Rozonerrebuoy.com^ +ÿï08@R +ozwvd.com^ +"ÿï08@Rpackwaxtoner.shop^ +!ÿï08@Rpacquetenfin.top^ +ÿï08@R pafpaf.com^ +ÿï08@R pafutos.com^ +!ÿï08@Rpaiatialdate.com^ +ÿï08@Rpaibauwho.com^ +$ÿï08@Rpalabracoshed.click^ +"ÿï08@Rpalacesorbed.shop^ +"ÿï08@Rpalatialdates.com^ +"ÿï08@Rpaleaehowking.com^ +ÿï08@Rpampopholf.com^ +"ÿï08@Rpampreklamath.com^ +"ÿï08@Rpanamalaggin.shop^ +%ÿï08@Rpandurecompute.click^ + ÿï08@Rpantotyped.shop^ +%ÿï08@Rpantoumcausers.click^ + ÿï08@Rpanwakeave.live^ +"ÿï08@Rpapizedromon.life^ +ÿï08@R papoto.com^ +"ÿï08@Rparaveronline.com^ +ÿï08@Rparchicky.com^ +!ÿï08@Rpardetheezan.com^ +ÿï08@R paroasse.xyz^ +"ÿï08@Rparotidballed.com^ + ÿï08@Rpartanssear.com^ +!ÿï08@Rpashmfordeal.com^ +$ÿï08@Rpathletbiding.click^ +ÿï08@Rpaulizoko.net^ +ÿï08@Rpchistory.net^ +ÿï08@Rpcyk.ru^ +ÿï08@Rpdyroxdtly.com^ +!ÿï08@Rpeagenohow.click^ +&ÿï08@Rpeanutrefusesplit.com^ +ÿï08@R pebafisk.com^ +!ÿï08@Rpedarypignon.com^ +"ÿï08@Rpeeletarapon.shop^ +"ÿï08@Rpeelismramona.com^ + ÿï08@Rpegasidjeez.com^ +ÿï08@R peggbrfd.com^ +#ÿï08@Rpegoxylphillip.com^ +"ÿï08@Rpenningnatraj.com^ + ÿï08@Rpensijotchy.com^ +!ÿï08@Rpentacemizzy.com^ +"ÿï08@Rpenticeurushi.com^ +ÿï08@R pepburst.com^° + ÿï08@Rpepebalance.com^ +#ÿï08@Rpercalemalts.click^ +#ÿï08@Rperdussashing.shop^ +#ÿï08@Rperilastronaut.com^ +"ÿï08@Rperriessmeech.com^ +$ÿï08@Rpersonalizedtab.com^ +ÿï08@Rpertholin.com^ +#ÿï08@Rpetuneaffrap.click^ +!ÿï08@Rpfanuqdrsvvw.xyz^ +ÿï08@R pgvpnkgp.com^ + ÿï08@Rphaignothug.net^ +ÿï08@Rphaiksuwhy.net^ +ÿï08@Rpharteewhi.xyz^ +!ÿï08@Rpheeterdoard.com^ +#ÿï08@Rphegnauxoudsez.xyz^ +ÿï08@Rpheksousi.net^ +ÿï08@R phenver.com^ +"ÿï08@Rphepaivezaukr.net^ +!ÿï08@Rphigvrkworap.com^ +ÿï08@Rphimordap.net^ +!ÿï08@Rphithoophuly.net^ +"ÿï08@Rphoajoamampou.net^ +ÿï08@R phognult.com^ +!ÿï08@Rphomefoeker.info^ +ÿï08@Rphoptockaz.net^ + ÿï08@Rphoradevily.com^ +!ÿï08@Rphotcheefets.com^ +!ÿï08@Rphoumsoomsoh.com^ ++ÿï08@Rphysicallysuddenassail.com^ +!ÿï08@Rphysidpraxes.com^ +#ÿï08@Rpianolamickeys.com^ +#ÿï08@Rpickaxerelict.shop^ +#ÿï08@Rpickletanquen.shop^ +ÿï08@R picmedia.biz^ +ÿï08@Rpicrahowk.com^ +ÿï08@Rpieclayton.com^ +ÿï08@Rpifilineph.com^ +#ÿï08@Rpikeletprevize.top^ + ÿï08@Rpilchnepal.shop^ +#ÿï08@Rpilusligalerie.com^ +"ÿï08@Rpimentoscoter.com^ +"ÿï08@Rpimentoutas.click^ +"ÿï08@Rpimplyhauling.com^ +#ÿï08@Rpinkenylipins.shop^ +ÿï08@Rpinteblibe.top^ +ÿï08@Rpipolafaiz.com^ +"ÿï08@Rpithesglyphic.com^ +ÿï08@Rpitoodsouk.net^ +#ÿï08@Rpittardhectare.com^ +ÿï08@Rpiwhourumt.net^ +ÿï08@Rpixshampoo.com^ + ÿï08@Rpizzcurace.shop^ +ÿï08@R pketred.com^ +#ÿï08@Rplacoidtobyman.com^ +ÿï08@Rplanesknob.com^ +!ÿï08@Rplanflowbaa.live^ +!ÿï08@Rplasticerror.com^ +!ÿï08@Rplatchteopan.com^ +"ÿï08@Rplatywhipsaw.shop^ +#ÿï08@Rplayhubconnect.com^ +ÿï08@Rplayhydrax.com^ +$ÿï08@Rplayjudders.website^ +ÿï08@Rplayurbano.com^ +ÿï08@Rpleasewait.co^ò +#ÿï08@Rplectrarestio.shop^ +!ÿï08@Rplonksbunted.com^ +"ÿï08@Rpluralmurraro.com^ +ÿï08@R plusgo.win^ +ÿï08@R +plxnt.com^ +ÿï08@Rpnrndhgury.com^ +ÿï08@Rpnwrs5xz.click^ +"ÿï08@Rpoasauwhoothy.net^ +"ÿï08@Rpoculhostler.shop^ +"ÿï08@Rpodzolstrabes.com^ +#ÿï08@Rpoecileseiches.com^ +ÿï08@R poempout.com^ +#ÿï08@Rpoggdgdwutcmbx.com^ + ÿï08@Rpogyreflush.com^ +ÿï08@R pojulo.com^ +$ÿï08@Rpokastaiptoalto.com^ +"ÿï08@Rpolaronveldt.guru^ +$ÿï08@Rpoloistwilrone.shop^ +"ÿï08@Rpomaceunbloom.com^ + ÿï08@Rpombefaqirs.top^ +ÿï08@Rpomerous.info^ +ÿï08@R ponafet.ru^ +"ÿï08@Rpondushornish.com^ +ÿï08@Rponiedparl.com^ + ÿï08@Rpoogloapoob.net^ +ÿï08@R pookapsa.net^ + ÿï08@Rpoolfeecop.live^ +ÿï08@Rpoomeecebe.net^ +$ÿï08@Rpoorgasillago.click^ +!ÿï08@Rpoovichamowi.net^ +#ÿï08@Rpopcorntime.com.br^ +ÿï08@Rpopetechs.com^ +ÿï08@Rpopeyeraia.com^ +$ÿï08@Rpoplinheeltap.click^ +ÿï08@Rpopmycash.com^ +ÿï08@Rpoppytube.com^ +ÿï08@Rpoprevenue.com^ +#ÿï08@Rpopshopperform.top^ +ÿï08@R popstate.net^ +!ÿï08@Rpopulartooth.com^ + ÿï08@Rporn-upload.com^ +ÿï08@Rporncrash.com^ + ÿï08@Rpornfairies.com^ +ÿï08@Rpornfisher.com^ +ÿï08@Rpornravage.com^ +ÿï08@Rpornstreet.com^ +ÿï08@R pornz.fr^ +"ÿï08@Rporoseliquer.shop^ +ÿï08@Rportalible.fun^ +$ÿï08@Rportedmasondarn.com^ +ÿï08@Rportlydrum.com^ +*ÿï08@Rpossessedcrackinghart.com^ + ÿï08@Rpostback.report^ +ÿï08@Rpotaujimt.com^ +!ÿï08@Rpothacoadamp.net^ +ÿï08@R poupsosh.net^ +ÿï08@Rpourbaiser.com^ +ÿï08@Rpouvifehi.com^ +ÿï08@Rpowa.fr^ + ÿï08@Rpowerfulcap.com^ +ÿï08@R pr0gram.org^ +ÿï08@Rpracticbog.com^ +!ÿï08@Rpraisebrains.com^ +ÿï08@Rpramviable.com^÷ +#ÿï08@Rpranavafolksey.com^ +ÿï08@R +prbcdn.ru^ +ÿï08@R precismo.com^ + ÿï08@Rprefixsowle.com^ +#ÿï08@Rprelandappslab.com^ +ÿï08@R premiumz.co^ +#ÿï08@Rpressespledget.com^ +ÿï08@Rpresssnews.biz^ +"ÿï08@Rprewhipmamamu.com^ +#ÿï08@Rprimsiepickier.com^ +ÿï08@R primusad.com^ +"ÿï08@Rprinksoncotic.com^ + ÿï08@Rprizzemagic.net^ +)ÿï08@Rproducercoconutgroup.com^ +ÿï08@Rpromen.monster^ + ÿï08@Rpromoltd.online^ +#ÿï08@Rpropmancholler.com^ +#ÿï08@Rprosinggumdrop.com^ +"ÿï08@Rproteapygmy.click^ +%ÿï08@Rproteincalculate.com^ +ÿï08@R psaiceex.net^ +ÿï08@R psailsee.com^ +ÿï08@Rpsaimpoop.net^ + ÿï08@Rpsaiwhoonax.net^ +ÿï08@Rpsaizausee.com^ +$ÿï08@Rpsaunaishedroax.net^ + ÿï08@Rpsebsoumsuy.com^ +ÿï08@Rpseleedrax.net^ +ÿï08@R psizouns.com^ + ÿï08@Rpsoagnimsar.net^ +!ÿï08@Rpsoamseceroh.net^ +!ÿï08@Rpsoanegodage.com^ +ÿï08@R psooshon.net^ +ÿï08@R psughooy.com^ +ÿï08@R psylist.net^ +ÿï08@Rptaiceckir.net^ + ÿï08@Rptaiptistie.com^ +$ÿï08@Rptashoossagnewe.net^ +ÿï08@R ptcong.com^ +ÿï08@Rpteecengi.com^ +!ÿï08@Rpteghoucmaub.com^ +ÿï08@Rptephowoop.net^ +ÿï08@R ptikodso.net^ +"ÿï08@Rptinusvillagy.com^ +"ÿï08@Rptirdevaijult.net^ + ÿï08@Rptoaveloamo.net^ +ÿï08@R ptoawamp.com^ +"ÿï08@Rptolemyvolga.life^ +ÿï08@R ptomitsi.com^ +!ÿï08@Rptooditopuke.com^ +ÿï08@Rptooftouss.net^ + ÿï08@Rptouchibsee.com^ +ÿï08@R ptougliy.com^ +ÿï08@Rptuloagrou.net^ +ÿï08@R ptumsess.com^ + ÿï08@Rpuertojambs.com^ +"ÿï08@Rpukekawawling.top^ +$ÿï08@Rpulquesfarinas.guru^ +"ÿï08@Rpunkieamplect.com^ + ÿï08@Rpupkeptale.live^ +ÿï08@Rpurdasseer.com^ +ÿï08@Rpuscomosca.com^ +ÿï08@Rpushinkaa.com^ +ÿï08@Rpushtrust.com^� +'ÿï08@Rpushydialoguenoisy.com^ +ÿï08@R pussl60.com^ + ÿï08@Rputfullfor.live^ +$ÿï08@Rpycnictouchup.click^ +"ÿï08@Rpyjamasweated.com^ +!ÿï08@Rpyrexalegar.shop^ +$ÿï08@Rpyropusaporosa.shop^ +ÿï08@Rpywymyplyg.com^ +ÿï08@R pzshzhja.com^ +#ÿï08@Rqadmgtutqkkyjm.xyz^ +ÿï08@R qarooqom.com^ +ÿï08@R qatro.ru^ + ÿï08@Rqayfeuyhial.com^ + ÿï08@Rqeedgyoligl.xyz^ + ÿï08@Rqerestooker.com^ +ÿï08@R qfihdr.com^ +ÿï08@Rqfrobovhpf.com^ + ÿï08@Rqgksqshmibx.com^ +$ÿï08@Rqgxlldywbcfrjoj.com^ +ÿï08@Rqidblight.top^ +ÿï08@Rqjpskyxrz.com^ +"ÿï08@Rqnuqbltvlsfrr.xyz^ +ÿï08@R qractv.com^ +ÿï08@Rqrbbugsex.com^ +$ÿï08@Rqsseigsxafuwjnq.xyz^ +!ÿï08@Rqtoeofqazggu.com^ +!ÿï08@Rqtpwgglrohgp.com^ +!ÿï08@Rquaichsliman.com^ +$ÿï08@Rquaighwoomera.click^ +$ÿï08@Rquaintorgic.digital^ + ÿï08@Rquayswallow.top^ + ÿï08@Rqueakveinal.top^ +"ÿï08@Rqueasytimeout.com^ +ÿï08@Rquebec-bin.com^ +ÿï08@Rquelmesale.com^ + ÿï08@Rquestionfly.com^ + ÿï08@Rquestormyxo.com^ +"ÿï08@Rqueuernonjury.com^ +-ÿï08@Rquickwittedpronunciation.com^ + ÿï08@Rquickwriter.com^ +#ÿï08@Rquillswartier.shop^ +$ÿï08@Rquilterdochter.shop^ +ÿï08@Rquosepris.com^ +ÿï08@R qwpenncp.com^ +"ÿï08@Rqzynbzjnblbny.top^ +ÿï08@Rrafflisle.com^ + ÿï08@Rraggedbijou.com^ + ÿï08@Rraggerdough.com^ +ÿï08@Rragnolopi.net^ +ÿï08@Rrainegruch.net^ +ÿï08@R rainrent.com^ +"ÿï08@Rraisedcubera.guru^ +ÿï08@R raivoabu.com^ +ÿï08@Rrajmobbism.com^ +ÿï08@Rralodithas.com^ +"ÿï08@Rraltauwilrehu.net^ +!ÿï08@Rrambeercase.live^ +(ÿï08@Rrambleconcernedscar.com^ +!ÿï08@Rrambograntee.com^ +$ÿï08@Rrapidlylarrup.space^ +"ÿï08@Rraptorfarmsad.com^ +ÿï08@R rartengg.com^ +ÿï08@R raunowhy.xyz^ +"ÿï08@Rrauthaipachie.net^· +ÿï08@R rb-ya.ru^ +ÿï08@R rbbutton.bid^ +ÿï08@R rbdomain.ru^ +ÿï08@R rbfive.bid^ +ÿï08@R rbfour.bid^ +ÿï08@R rbighouse.ru^ +ÿï08@R rbone.link^ +ÿï08@Rrbp1.ru^ +ÿï08@Rrbp2.ru^ +ÿï08@R +rbp2.site^ +ÿï08@Rrbp3.ru^ +ÿï08@R rbp63841.ru^ +ÿï08@R rbpark1.site^ + ÿï08@Rrbpark1.website^ +ÿï08@R rbpark2.ru^ +ÿï08@R rbpark3.ru^ +ÿï08@Rrbprk91645.ru^ +ÿï08@R rbpsh.ru^ +ÿï08@R rbrotator.ru^ +#ÿï08@Rrcraveoisanikc.com^ +ÿï08@R rdsddand.com^ + ÿï08@Rreacheffect.com^ +'ÿï08@Rready-for-download.com^ +ÿï08@R +realbi.ru^ +ÿï08@Rrealbig.online^ +ÿï08@R realrb.bid^ +"ÿï08@Rreanwpdxtvspa.com^ +ÿï08@R reasulty.com^ +"ÿï08@Rreatushaithal.com^ +ÿï08@R rebsoapo.com^ +"ÿï08@Rrecharsemiarc.com^ +ÿï08@Rreckedmane.xyz^ +ÿï08@Rreddleops.pro^ +"ÿï08@Rredebitapedom.com^ +ÿï08@R redichat.com^ +ÿï08@R redirects.us^ +"ÿï08@Rredorange.website^ +"ÿï08@Rredraftmonest.com^ +#ÿï08@Rreductrodsmen.shop^ +ÿï08@R reemebal.com^ +%ÿï08@Rrefinescruelly.click^ +ÿï08@Rreflexcash.com^ +ÿï08@Rrefpa47525.top^ +#ÿï08@Rrefuteddistant.com^ +!ÿï08@Rrefuzzlizing.pro^ + ÿï08@Rregalteathe.com^ +!ÿï08@Rreghexurtept.com^ +ÿï08@R regisg.com^ +"ÿï08@Rregisterswoop.com^ +"ÿï08@Rrehauljasmine.com^ + ÿï08@Rreicezenana.com^ +"ÿï08@Rrelevercuscus.com^ +#ÿï08@Rreliable-track.com^ +#ÿï08@Rreliablefaucet.com^ + ÿï08@Rrelicwippen.com^ +#ÿï08@Rremijiahotting.com^ +!ÿï08@Rremintsmuggy.com^ +ÿï08@Rremotepwn.com^ + ÿï08@Rrenaissanto.com^ +%ÿï08@Rreoilednursing.click^ +ÿï08@R repka.online^ +#ÿï08@Rresalespursuit.com^ +!ÿï08@Rresentervice.com^ +#ÿï08@Rresentproduces.com^Á +ÿï08@Rresetetron.com^ +ÿï08@Rrespecials.com^ +ÿï08@Rresr.ru^ +"ÿï08@Rrestypigfoot.shop^ + ÿï08@Rretimesfowl.top^ +"ÿï08@Rretinaesprent.com^ +#ÿï08@Rretingexylogen.com^ +!ÿï08@Rretiraltasty.top^ +ÿï08@R revbigo.com^ +!ÿï08@Rrevealsgrebe.com^ +-ÿï08@Rrevenuetonightperforming.com^ +#ÿï08@Rrevoiceaguglia.com^ +!ÿï08@Rrevsharecash.com^ +0ÿï08@R rgverkqcpahaqcqtmpksxicmtno.com^ +ÿï08@Rrhasuecism.top^ +ÿï08@Rriamiavid.com^ + ÿï08@Rrightwhisht.com^ +!ÿï08@Rrignaursoals.net^ +!ÿï08@Rrindespect.click^ +ÿï08@Rringedsake.com^ +'ÿï08@Rringerbaseballsilk.com^ +ÿï08@R ripupppl.com^ + ÿï08@Rrizzerthorn.com^ +!ÿï08@Rrkvldurquedh.com^ +ÿï08@Rrkvsbobyil.com^ +#ÿï08@Rrndhydreigonan.com^ +!ÿï08@Rrndtotodiler.com^ + ÿï08@Rroadlittar.live^ +ÿï08@R roagreed.com^ +%ÿï08@Rroamthrivecaviar.com^ +ÿï08@R roasooph.net^ +%ÿï08@Rroastwearwritten.com^ + ÿï08@Rrobmenbusy.live^ +ÿï08@R rocks.io^ +ÿï08@Rrodcamto.live^ +ÿï08@R roksit.net^ +"ÿï08@Rromanceafairs.net^ +!ÿï08@Rromanceafalr.net^ +#ÿï08@Rromanceaffairs.com^ +"ÿï08@Rromanceaffalr.com^ +#ÿï08@Rromanceaffalrs.com^ + ÿï08@Rromancedale.com^ + ÿï08@Rromancedale.net^ +"ÿï08@Rromancedattes.com^ +"ÿï08@Rromancedattes.net^ +"ÿï08@Rromanticafair.net^ +$ÿï08@Rromanticaffaiir.com^ +$ÿï08@Rromanticaffailr.net^ +$ÿï08@Rromanticaffalir.com^ +#ÿï08@Rromanticaffalr.net^ +$ÿï08@Rromantiicaffair.com^ +$ÿï08@Rrombleunships.click^ +ÿï08@Rromtheoth.work^ +ÿï08@Rronionlye.shop^ +#ÿï08@Rroojoufaurooly.net^ +!ÿï08@Rrookamouhais.net^ +ÿï08@Rroolegoos.top^ +!ÿï08@Rroopefostaji.net^ +ÿï08@R roosture.com^ +"ÿï08@Rrootleoutplot.com^ + ÿï08@Rrotaterma.click^ +!ÿï08@Rrotiqucdne.me.uk^ + ÿï08@Rrottemuckna.com^ + ÿï08@Rrouboorulet.net^¥ + ÿï08@Rroudpiously.top^ +&ÿï08@Rroughbelligerency.com^ +ÿï08@Rroumachopa.com^ +"ÿï08@Rrousunfloraer.com^ +ÿï08@Rroutinato.shop^ +#ÿï08@Rrouzebstrikaor.com^ +$ÿï08@Rrowlandpodogyn.shop^ +ÿï08@Rrpksoyeygr.xyz^ +!ÿï08@Rrqaefhvkkxls.com^ +!ÿï08@Rrsdagpbpjdnd.com^ +ÿï08@R +rsuuc.com^ +ÿï08@Rrtasnkonws.com^ +!ÿï08@Rrtbanalytics.com^ +ÿï08@Rrtbbonline.com^ +ÿï08@R rtbdem.com^ +ÿï08@Rrudemajor.com^ +!ÿï08@Rrufortouthee.com^ +#ÿï08@Rruggownpolacca.com^ +ÿï08@Rruklibamj.com^ + ÿï08@Rrumneywhity.com^ +ÿï08@R rungbred.top^ +ÿï08@Rrunoffree.bid^ +!ÿï08@Rrunpuredead.live^ +!ÿï08@Rrussetspaper.com^ +#ÿï08@Rrustyexquisite.com^ +ÿï08@Rrvfrm2005.com^ +$ÿï08@Rrxagedomnmjkiaf.com^ +ÿï08@Rrxeidfylt.com^ +ÿï08@R +rxjfh.com^ +ÿï08@Rsahkumthmk.com^ +"ÿï08@Rsaiticcording.com^ +ÿï08@Rsalesforce.ma^ +ÿï08@Rsallibted.live^ +"ÿï08@Rsaluterblamed.com^ +ÿï08@R samiana.com^ +!ÿï08@Rsamisenlet.click^ +ÿï08@R sampugly.net^ +ÿï08@R sancvquz.com^ +"ÿï08@Rsaneworkbench.com^ +#ÿï08@Rsardonic-track.com^ +"ÿï08@Rsarwanduomo.click^ +ÿï08@R sasoowou.net^ + ÿï08@Rsatlockspa.live^ +ÿï08@Rsauhonaik.com^ +ÿï08@Rsaymustif.live^ +$ÿï08@Rscarrowgunroom.shop^ +#ÿï08@Rschmalzgarniec.com^ +$ÿï08@Rscixlyampavogxp.com^ +ÿï08@Rsckxppzdm.com^ +"ÿï08@Rscorchsorchic.com^ +#ÿï08@Rscowderunthorn.com^ +#ÿï08@Rscraichchoroid.com^ +$ÿï08@Rscraighteleost.shop^ + ÿï08@Rscramblerun.com^ +#ÿï08@Rscratchy-trick.com^ +$ÿï08@Rsearchdimension.com^ + ÿï08@Rsearchfamor.com^ +"ÿï08@Rseatsswedish.shop^ +%ÿï08@Rseawantocelots.click^ +"ÿï08@Rsecernvaudois.com^ +$ÿï08@Rsecondhand-date.com^ +!ÿï08@Rsecondpagoda.com^ +ÿï08@R secumine.net^ +*ÿï08@Rsecure.securitetotale.com^Ë +"ÿï08@Rseduceobscure.com^ +ÿï08@Rsee-work.info^ +ÿï08@R seederie.net^ +!ÿï08@Rseegleheefez.net^ +%ÿï08@Rseeklocalcrushes.com^ +ÿï08@Rseelsyren.com^ +!ÿï08@Rseenportnan.live^ +ÿï08@R seepsocu.net^ +ÿï08@R seertul.com^ +ÿï08@R seetaziy.net^ +#ÿï08@Rseguingjungled.com^ +ÿï08@R seksoars.xyz^ + ÿï08@Rselecttopon.com^ +ÿï08@Rselfsrver.com^ +"ÿï08@Rsellersfloush.com^ +ÿï08@R +semena.cz^ + ÿï08@Rsemenaonline.cz^ + ÿï08@Rsemenaonline.sk^ +%ÿï08@Rsemplicewebsites.com^ +ÿï08@Rsensobose.com^ +ÿï08@Rseodollars.com^ +ÿï08@Rserconius.com^ + ÿï08@Rsereendipit.com^ + ÿï08@Rserestelian.com^ +ÿï08@Rsermondirt.com^ +!ÿï08@Rserosaharlem.com^ +"ÿï08@Rserpentinejob.pro^ +ÿï08@R +sersh.com^ + ÿï08@Rserumchicha.com^ +ÿï08@R serveupp.xyz^ +!ÿï08@Rsestonenures.com^ +ÿï08@Rsesutolitu.top^ +ÿï08@R setbeat.com^ +ÿï08@R setypckq.com^ +"ÿï08@Rseveralmefark.com^ + ÿï08@Rsewkindmay.live^ +ÿï08@Rsex-finder.net^ +ÿï08@Rsextv2424.com^ +!ÿï08@Rsexyfreecamz.com^ + ÿï08@Rsexygirlshd.com^ +!ÿï08@Rsezonlukdizi.com^ +ÿï08@Rsh.st^ +#ÿï08@Rshachlearoras.shop^ +ÿï08@R shacsda.name^ +ÿï08@R shaiksuk.net^ +ÿï08@R shaishet.xyz^ +ÿï08@R shalseey.com^ + ÿï08@Rshamautiste.net^ +"ÿï08@Rsharkedmarque.com^ +ÿï08@Rshassheld.live^ +ÿï08@R shauhaik.xyz^ +!ÿï08@Rshederkamsin.com^ +ÿï08@Rsheephoux.com^ +ÿï08@Rsheetsoom.top^ +ÿï08@Rshestrozo.com^ +ÿï08@R shilavew.com^ + ÿï08@Rshiningdate.net^ +!ÿï08@Rshirtbladder.com^ + ÿï08@Rshlnlngdate.com^ +ÿï08@R shoagoup.net^ +!ÿï08@Rshoagrauphee.net^ +ÿï08@Rshoathofte.net^ +$ÿï08@Rshoftoupsouxoam.net^ +!ÿï08@Rshoftoussees.com^¢ + ÿï08@Rshohipsoalr.top^ +ÿï08@R shon.xyz^ +ÿï08@Rshookribux.net^ +!ÿï08@Rshopwashtwo.live^ +$ÿï08@Rshorttermwarmup.com^ +ÿï08@Rshot-date.com^ + ÿï08@Rshoulubaids.net^ +ÿï08@Rshourgeelu.com^ +"ÿï08@Rshoutssportly.com^ +ÿï08@R shownews.tv^ +"ÿï08@Rshowyourevent.com^ +"ÿï08@Rshpuzesoxyfhh.com^ + ÿï08@Rshriftskats.com^ +ÿï08@R shuffele.com^ +ÿï08@Rshushagri.net^ + ÿï08@Rsiafuornery.com^ +ÿï08@Rsidezaeta.live^ +"ÿï08@Rsievabaobab.click^ +#ÿï08@Rsifflettreetop.com^ +!ÿï08@Rsigilstimes.guru^ +$ÿï08@Rsignifyabruptly.com^ +"ÿï08@Rsihighlyrecom.xyz^ +"ÿï08@Rsijillshirvan.com^ +!ÿï08@Rsilenthill24.biz^ + ÿï08@Rsilicledomy.com^ + ÿï08@Rsilimbompom.com^ +"ÿï08@Rsilphidbilati.com^ +%ÿï08@Rsinatraquonset.click^ +#ÿï08@Rsinopiacoronal.top^ +ÿï08@Rsir-fermer.ru^ +$ÿï08@Rsirdarschawers.shop^ + ÿï08@Rsitaopiqure.com^ +$ÿï08@Rsixfoldmarkeb.click^ +!ÿï08@Rskeesisoxime.com^ + ÿï08@Rskillyargas.com^ +#ÿï08@Rskreelkowtows.shop^ +ÿï08@R skymedia7.me^ + ÿï08@Rslaitottawa.com^ +#ÿï08@Rsledgedcooping.com^ +ÿï08@R slftps.com^ +ÿï08@Rslideslive.at^ +ÿï08@Rslideslive.ch^ +ÿï08@Rslideslive.com^ +ÿï08@Rslideslive.cz^ +ÿï08@R slimcdn.com^ +"ÿï08@Rslimingsewans.com^ +&ÿï08@Rslipheirphysician.com^ +ÿï08@Rsljtqfcyi.com^ +!ÿï08@Rsloppyanaqua.top^ +!ÿï08@Rslova-accordy.ru^ + ÿï08@Rslpfgvuovgj.com^ +ÿï08@Rslubdamine.top^ +#ÿï08@Rslushedencaged.com^ +%ÿï08@Rsmall-discussion.com^ +ÿï08@R smapp.work^ + ÿï08@Rsmartoffer.site^ + ÿï08@Rsmartpush0.info^ + ÿï08@Rsmartpush1.info^ + ÿï08@Rsmeltnomoi.shop^ +ÿï08@Rsmnyayzhv.com^ ++ÿï08@Rsnailthreatenedinvited.com^ +!ÿï08@Rsnap-affairs.com^ +"ÿï08@Rsnaretoeburp.work^ +#ÿï08@Rsnitswaspshaft.com^³ +$ÿï08@Rsnoopy-incident.com^ + ÿï08@Rsnotabilit.live^ + ÿï08@Rsnqxcfxrnah.com^ +ÿï08@Rsnrfojoekx.xyz^ + ÿï08@Rsnugmackled.com^ +ÿï08@R soathoth.com^ +!ÿï08@Rsoatuloaglou.net^ +"ÿï08@Rsocagercornet.com^ +"ÿï08@Rsocieslentile.com^ +ÿï08@R sodhef.com^ + ÿï08@Rsoimportan.club^ +ÿï08@R +soknm.com^ +ÿï08@Rsokrostream.tv^ +ÿï08@Rsolacecia.com^ +$ÿï08@Rsoldansportify.shop^ +"ÿï08@Rsolerasignori.com^ +ÿï08@R songsify.com^ + ÿï08@Rsongslunger.com^ +&ÿï08@Rsonraifishnet.website^ + ÿï08@Rsoojoafaleh.com^ +%ÿï08@Rsookeindited.website^ +)ÿï08@Rsophisticatedsamurai.com^ +"ÿï08@Rsorceryfalda.life^ +#ÿï08@Rsorghumfranger.com^ +&ÿï08@Rsouffloutoven.digital^ +ÿï08@Rsougoapha.com^ +ÿï08@Rsourcecode.pro^ +&ÿï08@Rsovietcontaminate.com^ +"ÿï08@Rsowlthcerosin.com^ +ÿï08@Rspacepools.org^ +!ÿï08@Rspaleswairsh.com^ +ÿï08@Rsparechange.io^ +ÿï08@R sparelli.com^ +"ÿï08@Rspathalbarmie.com^ +!ÿï08@Rspecial2date.net^ ++ÿï08@Rspecificationfingertip.com^ +#ÿï08@Rspeltskenareh.shop^ +"ÿï08@Rspermadanner.shop^ +!ÿï08@Rspicasmenhir.top^ +#ÿï08@Rspinalmultiple.com^ +$ÿï08@Rspinierpomate.click^ +#ÿï08@Rspitfulcapelet.com^ +"ÿï08@Rsplendiddates.net^ +!ÿï08@Rsplendlddate.com^ +ÿï08@Rspqraiknvb.com^ +ÿï08@Rspreement.com^ +ÿï08@Rsprincipal.com^ +%ÿï08@Rsprucymundic.digital^ +!ÿï08@Rspruegibbles.com^ +&ÿï08@Rspulyiecooboo.website^ +#ÿï08@Rspurnsebulus.click^ +!ÿï08@Rspysamesent.live^ +ÿï08@Rsqoo.co^ +"ÿï08@Rsquashclatter.com^ +ÿï08@R +srcip.com^ +ÿï08@R srcips.com^ + ÿï08@Rsrdymhfopxz.com^ +ÿï08@R sriwaup.com^ +ÿï08@R sskarta.ru^ + ÿï08@Rssl2anyone3.com^ + ÿï08@Rsslhaqpoehg.com^ +#ÿï08@Rstable-consist.com^ +$ÿï08@Rstablesunflower.com^ +ÿï08@Rstaiderkha.com^š +"ÿï08@Rstaidlycaffoy.com^ +!ÿï08@Rstaimpaissoy.net^ +ÿï08@Rstaiwaich.net^ +ÿï08@R staiwoob.xyz^ +"ÿï08@Rstapespotherb.com^ + ÿï08@Rstardomcoit.com^ +#ÿï08@Rstarredceviche.com^ +%ÿï08@Rstarryprotection.com^ +#ÿï08@Rstarsearchtool.com^ +ÿï08@R +starsx.fr^ +ÿï08@Rstarteeth.net^ + ÿï08@Rstartnewtab.com^ +ÿï08@R stat.ovh^ + ÿï08@Rstatdynamic.com^ + ÿï08@Rstatelinear.com^ +ÿï08@Rstatistic.date^ + ÿï08@Rsteedgodful.com^ +ÿï08@Rstepoffer.com^ +#ÿï08@Rsteropequippu.shop^ +"ÿï08@Rsterteeraisti.xyz^ +!ÿï08@Rstevesmovies.com^ +!ÿï08@Rstichoazeeco.top^ +"ÿï08@Rstichoseroded.com^ +"ÿï08@Rstickredgr.online^ +ÿï08@Rstighoazon.com^ +ÿï08@Rstighunge.net^ +ÿï08@Rstimseecka.net^ +#ÿï08@Rstingyectoderm.com^ +#ÿï08@Rstockerunpegs.shop^ + ÿï08@Rstoowipicke.com^ +!ÿï08@Rstoredhaulms.com^ +!ÿï08@Rstostecmause.com^ +"ÿï08@Rstoundisocrat.com^ +ÿï08@Rstouphaucm.xyz^ +!ÿï08@Rstovesguacho.top^ +!ÿï08@Rstowpsikhwan.com^ + ÿï08@Rstratigbkg.shop^ +%ÿï08@Rstreamall-search.com^ +ÿï08@Rstreambeam.io^ + ÿï08@Rstreamsforu.com^ +#ÿï08@Rstreamswedish.life^ +ÿï08@Rstripchat.com^ + ÿï08@Rstuftakeque.com^ +#ÿï08@Rstummelbeelbow.com^ +ÿï08@Rstuntoffer.com^ +'ÿï08@Rsubmissivecrusader.com^ + ÿï08@Rsubsoorgaus.com^ +!ÿï08@Rsubzero6969.site^ +ÿï08@Rsueivypeg.com^ +ÿï08@Rsuffarilbf.com^ +$ÿï08@Rsulingacestes.click^ +ÿï08@Rsunbagmay.live^ +ÿï08@Rsundhopen.site^ +ÿï08@Rsundoweak.live^ +"ÿï08@Rsuperbportal.life^ +ÿï08@Rsupportxmr.com^ +ÿï08@Rsurestisis.com^ + ÿï08@Rsurfcountor.com^ +ÿï08@R surtul.life^ + ÿï08@Rsveto-sharik.ru^ + ÿï08@Rswageschufa.com^ +"ÿï08@Rswardflawed.click^ +#ÿï08@Rswatledgesling.com^ +"ÿï08@Rswcfbbvhvrlrh.com^ž + ÿï08@Rsweatfugate.com^ +#ÿï08@Rsweeperpiltock.com^ + ÿï08@Rswiftmining.win^ +!ÿï08@Rswordsgorble.top^ +$ÿï08@Rswtdssqbxhcesfh.com^ +ÿï08@Rsxoqxqwpx.com^ +ÿï08@R sylmyar.pw^ + ÿï08@Rsylverlight.net^ +!ÿï08@Rsylviapettah.com^ +ÿï08@R sylwenys.pw^ +&ÿï08@Rsympathetic-frame.com^ +!ÿï08@Rsyndetimmit.shop^ +#ÿï08@Rsyndetstermine.com^ +ÿï08@R t.eroges.com^ +ÿï08@R t4ce4ma.shop^ + ÿï08@Rta7wiilat.store^ +ÿï08@R +tabun.net^ +!ÿï08@Rtacanunmuted.top^ + ÿï08@Rtacklearder.com^ +ÿï08@Rtacticwane.com^ +ÿï08@Rtaddrugso.live^ +ÿï08@Rtadupjug.live^ +$ÿï08@Rtaeniaclivers.click^ +!ÿï08@Rtagalhattize.com^ + ÿï08@Rtaichnewcal.com^ +!ÿï08@Rtainosapiece.com^ + ÿï08@Rtaivoofasoo.net^ +%ÿï08@Rtakebest-prizes.life^ +ÿï08@R takening.com^ +#ÿï08@Rtalktomeplease.biz^ +"ÿï08@Rtallergestion.com^ +"ÿï08@Rtampedirenica.com^ + ÿï08@Rtampurunrig.com^ + ÿï08@Rtanfedball.live^ +!ÿï08@Rtangagallate.com^ +$ÿï08@Rtankahuncoked.click^ +(ÿï08@Rtaparchieadvantages.com^ +"ÿï08@Rtapewaverole.live^ + ÿï08@Rtapiserlilt.top^ +ÿï08@R targaubs.com^ +%ÿï08@Rtarjetarojaonline.tv^ +"ÿï08@Rtarybabottega.com^ + ÿï08@Rtastemynews.com^ +!ÿï08@Rtastiesfoods.com^ +!ÿï08@Rtaulasaynete.com^ +"ÿï08@Rtauntonmishap.top^ +#ÿï08@Rtauvineebisigi.net^ +ÿï08@R +tbmods.ru^ +ÿï08@Rtc-clicks.com^ +!ÿï08@Rtearerernest.com^ + ÿï08@Rtearfulawee.top^ +!ÿï08@Rteazlesstoic.com^ +ÿï08@Rtech-script.ru^ +!ÿï08@Rtechnotology.com^ +!ÿï08@Rtedseekpeak.live^ + ÿï08@Rteefookugoo.top^ + ÿï08@Rteengirltgp.com^ +ÿï08@Rtelegorda.net^ +ÿï08@Rtemiakazon.com^ +!ÿï08@Rtendonrerent.com^ +ÿï08@Rtendontoss.com^ +!ÿï08@Rtenlineunden.uno^ +!ÿï08@Rteraphessed.guru^ +"ÿï08@Rteraticvielle.top^ø +!ÿï08@Rterbicdiau.click^ + ÿï08@Rtercabilis.info^ + ÿï08@Rtesupervis.hair^ +ÿï08@Rtetabesl.info^ +#ÿï08@Rtetheryplagues.com^ +!ÿï08@Rtexasinguen.shop^ +!ÿï08@Rtfpipnwengia.com^ +"ÿï08@Rthaimtotchouz.net^ +!ÿï08@Rthalliisotac.com^ +$ÿï08@Rthatvalhall.digital^ +ÿï08@R thauhocm.net^ +$ÿï08@Rthaurgaiboocoah.com^ +"ÿï08@Rthawedmeddler.com^ +$ÿï08@Rtheadultcompany.biz^ +"ÿï08@Rthebainpushtu.com^ +ÿï08@R theefiwu.net^ +"ÿï08@Rtheirsneedful.com^ +%ÿï08@Rtheismsmartrix.click^ +ÿï08@Rtheolwelt.com^ +!ÿï08@Rthepsotsaims.com^ +!ÿï08@Rtheurgyopine.com^ +$ÿï08@Rthewhizproducts.com^ +ÿï08@Rtheyeyilou.top^ +!ÿï08@Rthoadsaibsou.net^ +ÿï08@Rthousheek.com^ +ÿï08@R threepi.de^ + ÿï08@Rthrewdownth.xyz^ +!ÿï08@Rthriftywaste.com^ +ÿï08@R thstvv.com^ +ÿï08@Rthusmumid.live^ +!ÿï08@Rthymeycimnel.com^ +ÿï08@R ti-files.org^ + ÿï08@Rticticungag.top^ +ÿï08@Rtieboysoli.com^ +#ÿï08@Rtiepinshazings.com^ +$ÿï08@Rtiffanypinworm.tech^ +ÿï08@Rtiksoopta.net^ +'ÿï08@Rtimaariraconiansta.org^ +ÿï08@Rtipitspart.com^ +ÿï08@R +tjfot.com^ +ÿï08@Rtjnvudmphx.com^ +ÿï08@R +tmska.com^ +ÿï08@Rtoathoule.com^ + ÿï08@Rtobiasinjun.com^ + ÿï08@Rtockaiglach.com^ +ÿï08@Rtocontent.net^ +ÿï08@Rtodigroup.com^ +ÿï08@R todoapk.net^ + ÿï08@Rtoesixover.live^ +ÿï08@R tojinr.com^ +"ÿï08@Rtolterbackups.com^ + ÿï08@Rtombedismal.com^ + ÿï08@Rtooklichair.com^ +"ÿï08@Rtopansagechan.com^ +ÿï08@R topbiz.news^ + ÿï08@Rtopcamepan.live^ + ÿï08@Rtopgoroscope.ru^ +ÿï08@Rtoponclick.com^ +"ÿï08@Rtoptanfirsati.com^ +ÿï08@Rtopwwnews.com^ +ÿï08@Rtorrent09.uno^ +ÿï08@R toumohiy.com^ +!ÿï08@Rtourpowouro.shop^ +!ÿï08@Rtraceryhansa.top^Ô +ÿï08@Rtrack2cash.com^ + ÿï08@Rtrackertrak.com^ +ÿï08@R trackgdi.com^ +!ÿï08@Rtracknopo.online^ +ÿï08@R trackor.net^ +ÿï08@R trackrc.com^ +ÿï08@R trackwin.net^ +ÿï08@Rtractssla.life^ +ÿï08@R trads.io^ +!ÿï08@Rtrafficglobe.com^ +ÿï08@Rtrafficsan.biz^ + ÿï08@Rtragic-drop.com^ +ÿï08@Rtrannysexx.com^ +ÿï08@R transfto.com^ +ÿï08@Rtrantalkes.top^ +#ÿï08@Rtravelaudience.com^ +ÿï08@Rtrbx-l1.online^ +ÿï08@Rtreaguepfg.com^ + ÿï08@Rtreemagrig.live^ +ÿï08@R trekachy.com^ +!ÿï08@Rtrenhsasolce.com^ +"ÿï08@Rtriassigmate.shop^ +#ÿï08@Rtripsisvellums.com^ +ÿï08@Rtrisxisys.com^ +"ÿï08@Rtrivetfenchyl.top^ +#ÿï08@Rtrophalwakikis.com^ +"ÿï08@Rtrovemanured.guru^ +#ÿï08@Rtrowanesteeler.com^ +ÿï08@Rtrueamour.net^ +$ÿï08@Rtrueamouronline.com^ + ÿï08@Rtrustaproiam.de^ + ÿï08@Rtrustedpubs.com^ +#ÿï08@Rtrusteverything.de^ +%ÿï08@Rtrustiseverything.de^ +ÿï08@Rtryonline.bid^ +"ÿï08@Rtrypacesious.shop^ +!ÿï08@Rtsuwyehyxvis.com^ +"ÿï08@Rttsycqxjvgrya.xyz^ +ÿï08@Rtubadthy.live^ +ÿï08@Rtubebrand.com^ +ÿï08@Rtubeburst.com^ +ÿï08@R tubechip.com^ +ÿï08@Rtubecrack.com^ +ÿï08@R tubecute.com^ +ÿï08@R tubeicy.com^ +ÿï08@R tubeiq.com^ +!ÿï08@Rtubemountain.com^ +ÿï08@Rtubeoffer.com^ +ÿï08@Rtubepanel.com^ +ÿï08@Rtubeplant.com^ +ÿï08@Rtubeprime.com^ +ÿï08@R tuberis.com^ + ÿï08@Rtubetitties.com^ +ÿï08@R tubetob.com^ +ÿï08@Rtubevideos.biz^ + ÿï08@Rtuesdaysale.bid^ + ÿï08@Rtuitivegaff.com^ + ÿï08@Rtunnedlehua.com^ +ÿï08@Rturbo-cdn.net^ +ÿï08@Rturcismtr.com^ +#ÿï08@Rturfjxedwrbafb.com^ +ÿï08@Rturkstench.com^ +ÿï08@Rturnsocial.com^ + ÿï08@Rtweedygirly.com^à +$ÿï08@Rtwistneedylever.com^ +ÿï08@Rtwk20rw5v1.com^ +ÿï08@R twrences.xyz^ +!ÿï08@Rtymbalsburan.com^ + ÿï08@Rtympanojann.com^ +ÿï08@Rtyphondeck.com^ + ÿï08@Rtyranhorrid.com^ +ÿï08@Rtyrenfavor.com^ +ÿï08@R +tyrfd.ovh^ +ÿï08@R +u0072.com^ +ÿï08@R +uaadi.com^ +"ÿï08@Rubwpxdqmxgnym.com^ +ÿï08@Rucmhdmlqnr.com^ +ÿï08@R udncoeln.com^ +ÿï08@Rugirllove.com^ +ÿï08@Rugirllove.net^ +!ÿï08@Ruhiksolsaums.com^ +ÿï08@R uketbrlm.com^ +ÿï08@R umspecrek.ru^ +"ÿï08@Runampharostor.com^ +ÿï08@Runarceusan.com^ +ÿï08@Runcagesox.com^ +!ÿï08@Runcoatespave.com^ +ÿï08@R +undom.net^ +!ÿï08@Rundrawsremet.com^ +$ÿï08@Runfamiiiiardate.com^ +$ÿï08@Runfamiiiiardate.net^ +%ÿï08@Runfamiiiiardates.net^ +$ÿï08@Runfamiiilardate.com^ +%ÿï08@Runfamiiilardates.com^ +%ÿï08@Runfamiiilardates.net^ +$ÿï08@Runfamiillardate.com^ +$ÿï08@Runfamiillardate.net^ +%ÿï08@Runfamiillardates.com^ +$ÿï08@Runfamiliiardate.net^ +%ÿï08@Runfamiliiardates.com^ +%ÿï08@Runfamiliiardates.net^ +%ÿï08@Runfamilliardates.com^ +$ÿï08@Runfamilllardate.com^ +%ÿï08@Runfamilllardates.net^ +$ÿï08@Runfamliliardate.com^ +$ÿï08@Runfamliliardate.net^ +%ÿï08@Runfamliliardates.com^ +$ÿï08@Runfamlliiardate.com^ +%ÿï08@Runfamlliiardates.com^ +!ÿï08@Runguledsnaws.com^ +#ÿï08@Runguyedoutgnaw.top^ +)ÿï08@Runimportant-pleasure.com^ +ÿï08@Runlockads.com^ +!ÿï08@Runlousycrag.shop^ +&ÿï08@Runltdentertainment.co^ +#ÿï08@Runminddrugman.shop^ +#ÿï08@Runmistdistune.guru^ +!ÿï08@Runmutedharls.com^ +"ÿï08@Runprayinterim.com^ +$ÿï08@Runrimedironize.shop^ + ÿï08@Runseamsbosn.com^ +ÿï08@Runsere-news.ru^ +#ÿï08@Runsowedcornrow.com^ +"ÿï08@Runstockrehash.com^ +ÿï08@Runweezingr.com^ +"ÿï08@Rupbrayjipper.shop^ +&ÿï08@Rupdaterecomended.info^ +ÿï08@Ruplitwickr.com^‰ +ÿï08@Ruploadmix.net^ +!ÿï08@Ruploopforged.com^ +#ÿï08@Ruponarticunoer.com^ +"ÿï08@Ruponnidoranom.net^ +$ÿï08@Ruponpanpourchan.net^ +!ÿï08@Ruponrimking.live^ + ÿï08@Rupperseeker.com^ + ÿï08@Rupsidejolly.com^ +!ÿï08@Rupstirmutes.shop^ +#ÿï08@Ruptracepaphian.top^ +ÿï08@Rurbanproxy.eu^ +ÿï08@Rurdsfeeze.shop^ +"ÿï08@Ruretalzonated.com^ +ÿï08@R urlcash.com^ +#ÿï08@Ruropygidahoons.com^ +ÿï08@R ursorsee.pro^ +ÿï08@Rusbmodmenu.com^ + ÿï08@Rusearchamor.com^ +ÿï08@Ruserresewn.com^ + ÿï08@Ruvhhxizculx.com^ +"ÿï08@Rvaguishtrepak.com^ +ÿï08@R vaibooja.net^ + ÿï08@Rvaimoogegry.net^ +"ÿï08@Rvalourjaguars.com^ +$ÿï08@Rvanmostretiral.shop^ +!ÿï08@Rvaticpeacing.com^ +#ÿï08@Rvauriencasting.com^ +ÿï08@R vdvxlayf.com^ +!ÿï08@Rvealedincite.com^ + ÿï08@Rveinrosied.shop^ +ÿï08@R ver-pelis.me^ +ÿï08@R ver1f3y.com^ +"ÿï08@Rveritabiedate.com^ +"ÿï08@Rveritabiedate.net^ +"ÿï08@Rveritabledate.com^ +#ÿï08@Rveritabledates.net^ +#ÿï08@Rverltabiedates.com^ +$ÿï08@Rvermisrequite.click^ +ÿï08@R vesdsp.com^ +ÿï08@R vh33uq.click^ +!ÿï08@Rviaclefachan.com^ +#ÿï08@Rvianidorinotor.com^ + ÿï08@Rviavullabya.com^ +"ÿï08@Rvicecopyroof.live^ +!ÿï08@Rvictorytiime.net^ +!ÿï08@Rvictorytlime.net^ +#ÿï08@Rvidendambalolo.com^ +ÿï08@Rvideoadex.com^ +&ÿï08@Rvideocdnmetrika31.com^ +&ÿï08@Rvideos-on-demand.link^ +ÿï08@R videosev.com^ +ÿï08@R +vidox.net^ +"ÿï08@Rviewmoregirls.com^ +%ÿï08@Rvigilantsurround.com^ + ÿï08@Rvii-vii-vii.com^ +ÿï08@R viiadr.com^ +$ÿï08@Rviiatomicnumber.com^ +ÿï08@R viicxwec.com^ +ÿï08@R viidah.com^ +ÿï08@R viifun.com^ +ÿï08@R viiian.com^ +ÿï08@R viiigbxo.com^ +ÿï08@Rviiithiang.com^ +ÿï08@Rviiithinly.com^Ø +ÿï08@R viiloom.com^ +ÿï08@R viimself.com^ +ÿï08@R viimult.com^ +ÿï08@R viipular.com^ +ÿï08@R viipura.com^ +ÿï08@Rviisupport.com^ +ÿï08@R viiucwwa.com^ +ÿï08@R viiwzrlr.com^ +ÿï08@R viixjjgk.com^ +ÿï08@R viiyutty.com^ +ÿï08@R viizone.com^ + ÿï08@Rvilreeroucm.net^ +ÿï08@R vimeonk.com^ +-ÿï08@Rvincentincludesuccessful.com^ +!ÿï08@Rvinelethoner.com^ +ÿï08@R visio-x.fr^ +"ÿï08@Rvitryraising.shop^ + ÿï08@Rvivdafamous.com^ + ÿï08@Rvleigearman.com^ + ÿï08@Rvmbhlbmgkh.site^ +ÿï08@Rvoagloupt.net^ +!ÿï08@Rvogulprecast.com^ + ÿï08@Rvoicehamelt.com^ +ÿï08@R +voir.host^ +ÿï08@R voltads.com^ +!ÿï08@Rvoohostokipy.com^ +ÿï08@Rvoostaidoo.net^ +!ÿï08@Rvorsoutseemt.com^ +%ÿï08@Rvotingbemixt.website^ +ÿï08@Rvouribere.com^ +ÿï08@R vpnclick.biz^ +ÿï08@Rvpscoupon.top^ +$ÿï08@Rvpxxolmxyaludyr.com^ +ÿï08@R vrfupfyu.com^ +"ÿï08@Rvukksmubicecx.com^ +ÿï08@Rvws4brkfst.com^ +ÿï08@Rvy4e3jw46l.com^ +ÿï08@Rvzbl.eu^ +ÿï08@R w2ev32h7.cfd^ +!ÿï08@Rwaefufloaty.shop^ +#ÿï08@Rwaglingswarmy.shop^ +ÿï08@Rwallsnurls.com^ +'ÿï08@Rwantedmuchmorenews.com^ +%ÿï08@Rwantmuchmorenews.com^ +!ÿï08@Rwantsomenews.com^ + ÿï08@Rwantyoudate.net^ +$ÿï08@Rwardersmonkess.shop^ +ÿï08@Rwarrtyguns.com^ +%ÿï08@Rwateryinspection.com^ +ÿï08@R watsaira.net^ +#ÿï08@Rwaugauwhaigrur.net^ +"ÿï08@Rwbmppowvqrcfn.com^ +ÿï08@Rwebazilla.com^ +"ÿï08@Rwebbedfunding.com^ +ÿï08@Rwebmaghome.com^ +ÿï08@R webmine.cz^ +ÿï08@R webmine.pro^ + ÿï08@Rwebminepool.com^ +!ÿï08@Rwebminerpool.com^ +"ÿï08@Rwebpushdirect.biz^ +ÿï08@R webxmr.com^ +ÿï08@R webytom.com^ +ÿï08@R wedeegut.net^ +#ÿï08@Rwedpwycjxdjthq.xyz^‚ +#ÿï08@Rweekdayrazzing.com^ + ÿï08@Rweesenoogli.net^ +ÿï08@R weevah2.top^ +ÿï08@R weewhaik.com^ +"ÿï08@Rweewoogloogru.net^ +"ÿï08@Rweirdsentence.com^ +"ÿï08@Rwellplottony.live^ +ÿï08@Rwemoackaik.com^ +ÿï08@Rwendatopen.com^ +ÿï08@Rwenerhema.com^ +#ÿï08@Rwettestspanemy.com^ +ÿï08@R wexevoom.net^ +ÿï08@R +wgoto.xyz^ +!ÿï08@Rwharrownecia.com^ +"ÿï08@Rwhataboutnews.com^ +ÿï08@Rwhatz-hot.com^ +ÿï08@R whauckoo.net^ +ÿï08@Rwhaumsaift.com^ +!ÿï08@Rwhaungoangou.com^ +!ÿï08@Rwhaupburgeon.com^ +ÿï08@R whauwart.net^ +!ÿï08@Rwhauzavouweb.com^ + ÿï08@Rwhealcommas.top^ +ÿï08@R wheecais.com^ +ÿï08@R wheejooh.com^ +ÿï08@Rwheeledqat.com^ +#ÿï08@Rwheengesurrept.com^ +ÿï08@R whegadry.com^ +ÿï08@R whehilru.com^ +ÿï08@R wheputch.net^ + ÿï08@Rwhimsrehash.com^ +!ÿï08@Rwhistdarking.com^ +ÿï08@Rwhite-eyes.com^ +ÿï08@Rwhiteclick.biz^ +#ÿï08@Rwhizzerrapiner.com^ +ÿï08@Rwhoanebsos.net^ +ÿï08@Rwhoawhoax.com^ + ÿï08@Rwhollmagged.com^ +!ÿï08@Rwhopstriglot.com^ +ÿï08@Rwhuptukuzi.net^ +$ÿï08@Rwhuttercronian.shop^ +!ÿï08@Rwickedwrests.com^ +%ÿï08@Rwicksoftzfiles.click^ +$ÿï08@Rwildishphobiac.shop^ +#ÿï08@Rwillingcowbell.com^ +!ÿï08@Rwilted-carry.com^ +"ÿï08@Rwin2lucktoday.com^ +&ÿï08@Rwindsattributeron.com^ +%ÿï08@Rwingtipunfaked.click^ +ÿï08@R winsaijy.top^ + ÿï08@Rwishedverde.com^ +!ÿï08@Rwoalaiwhoosh.net^ + ÿï08@Rwoarlegpyuf.com^ +ÿï08@Rwobblerwoe.com^ +!ÿï08@Rwofulsamixee.net^ +ÿï08@R woltarty.com^ +ÿï08@R women2u.net^ +ÿï08@Rwoncorvee.com^ +$ÿï08@Rwonnedmorling.click^ +"ÿï08@Rwonnerdirging.com^ +#ÿï08@Rwooden-comfort.com^ + ÿï08@Rworkcahoots.com^ +ÿï08@Rworkerhome.bid^ +ÿï08@Rworse-mine.com^½ +ÿï08@R wowcon.net^ +#ÿï08@Rwowconversions.com^ +ÿï08@R wpcodes.org^ +ÿï08@Rwpfjkxlmo.xyz^ +!ÿï08@Rwrithenwends.com^ +ÿï08@R +x.porn.fr^ +ÿï08@R xajibur.ru^ +ÿï08@R +xcams.net^ +ÿï08@Rxcfpforrb.fun^ +"ÿï08@Rxchikiclickix.com^ +ÿï08@R xclick24.com^ +'ÿï08@Rxdowl0adxd0wnloadx.com^ + ÿï08@Rxebecturcic.com^ +!ÿï08@Rxeiidlkuxsos.com^ +ÿï08@R xesjonlq.com^ +ÿï08@R +xfmlp.com^ +ÿï08@R +xfuck.com^ +ÿï08@Rxhlxlywwbm.com^ +ÿï08@R xhydh39.xyz^ +ÿï08@R xihubo.click^ +!ÿï08@Rxoilcsfvgjiw.xyz^ +#ÿï08@Rxsaeafkfilbcur.com^ +ÿï08@Rxu2.com^ +ÿï08@R +xuxe3.com^ +ÿï08@R xwmr.com.cn^ +ÿï08@Rxxxtarget.com^ +!ÿï08@Rxxxvideosss.info^ +!ÿï08@Rxysrrnavtyod.xyz^ +ÿï08@R +xyx77.top^ +ÿï08@Ry96q29a1fo.com^ +ÿï08@R yaarlnk.com^ +ÿï08@R yabun.club^ +!ÿï08@Rybnnocszmtuz.com^ +$ÿï08@Ryeanedeyewear.click^ +ÿï08@Ryggtorrent.com^ +"ÿï08@Ryiddiquitejuk.com^ +!ÿï08@Ryktxrceoyoxn.com^ +ÿï08@Ryonspheala.com^ +ÿï08@R yoursmut.com^ +ÿï08@Ryoyausones.com^ +!ÿï08@Rysearchingfo.xyz^ +ÿï08@Ryurakgorst.top^ +!ÿï08@Rywuxgdtybxgw.xyz^ +ÿï08@Ryy8fgl2bdv.com^ +ÿï08@R +zaful.com^ + ÿï08@Rzaishasoopt.com^ +#ÿï08@Rzarebasdezaley.com^ +$ÿï08@Rzaudephaigrauto.net^ +ÿï08@R zaujooro.com^ +$ÿï08@Rzauroonephofiph.com^ +!ÿï08@Rzealousplace.com^ +ÿï08@R zesemen.cz^ +"ÿï08@Rzestfulpate.click^ +"ÿï08@Rziggingantlid.com^ +ÿï08@R zilovaro.ru^ +ÿï08@Rzilovaro.store^ +"ÿï08@Rzingerszapota.com^ + ÿï08@Rzirduftaibs.xyz^ +#ÿï08@Rzitternborana.shop^ +#ÿï08@Rzkkibwgpxbwcvt.com^ +$ÿï08@Rzoaptuteglootoa.net^ +ÿï08@R zofassou.com^ +ÿï08@Rzolivexo.store^ +ÿï08@Rzollzunis.top^¦ +"ÿï08@Rzonalconvey.click^ +ÿï08@Rzonsingise.com^ +ÿï08@R zosemien.sk^ +!ÿï08@Rzoupsaushoor.com^ +ÿï08@R +ztdog.com^ +ÿï08@R zubplekl.com^ + ÿï08@Rzushaushoom.net^ + ÿï08@Rzuzalyrical.com^ +ÿï08@R zxvflioj.com^ +"ÿï08@Rzymogenhulked.com^ +!ÿï08@Rzymoidarrame.com^ +"ÿï08@Rzzrazrorjqbkb.top^ +ÿï08@R-monero-miner- +ÿï08@R-monero-miner. +ÿï08@R-monero-miner/ +ÿï08@R .aspx?poolid= +ÿï08@R .cfm?poolid= + ÿï08@R/coinhive.min.js +!ÿï08@R/cryptonight.wasm +'ÿï08@R/lhnhelpouttab-current. +ÿï08@R/minescripts.js +%ÿï08@R/safelinkconverter.js +ÿï08@R/simple-monero- +ÿï08@R /web_miner/ +ÿï08@R23.83.114.131^ +ÿï08@R +a-calc.de^ +ÿï08@R ad-miner.com^ +ÿï08@R +adless.io^ +ÿï08@R adminer.com^ +ÿï08@R afminer.com^ +ÿï08@Rajplugins.com^ +ÿï08@R altpool.pro^ +ÿï08@Ranalytics.blue^ +ÿï08@Rauthedmine.com^ +#ÿï08@Raveroconnector.com^ +ÿï08@R bablace.com +$ÿï08@Rbestcoinsignals.com^ +ÿï08@R bestsrv.de^ +ÿï08@Rbiberukalap.com +ÿï08@R binance.org^ +"ÿï08@Rbinarybusiness.de^ + ÿï08@Rbitclub.network^ +#ÿï08@Rbitclubnetwork.com^ +%ÿï08@Rbitcoin-cashcard.com^ ++08@Rbrowsealoud.com/plus/scripts/ + ÿï08@Rbrowsermine.com^ +ÿï08@R candid.zone^ +ÿï08@R cashbeet.com +ÿï08@R cdn1.pebx.pl^ +ÿï08@R cfcdist.gdn^ +ÿï08@R clgserv.pro^ +ÿï08@Rcloud-miner.eu^ +ÿï08@Rcloudcoins.co^ +ÿï08@Rcnhv.co^ +ÿï08@Rcoin-have.com^ +ÿï08@Rcoinblind.com^ +ÿï08@Rcoincheck.com^ +ÿï08@R coinerra.com^ +ÿï08@R coinimp.com +ÿï08@R coinimp.net +ÿï08@Rcoinminerz.com^ +ÿï08@Rcoinnebula.com^ +ÿï08@R coinpot.co^ +"ÿï08@Rcookiescript.info^¶´ +$ÿï08@Rcookiescriptcdn.pro^ +ÿï08@R cpufan.club^ +"ÿï08@Rcrypto-coins.club^ +!ÿï08@Rcrypto-coins.com^ +"ÿï08@Rcrypto-coins.info^ + ÿï08@Rcrypto-loot.com^ +$ÿï08@Rcrypto-webminer.com^ +ÿï08@Rcryptobara.com^ + ÿï08@Rcryptonoter.com^ +!ÿï08@Rcryweb.github.io^ +ÿï08@R csgocpu.com^ +ÿï08@R deepc.cc^ + € 08@Rdirectprimal.com^ +ÿï08@Rdontbeevils.de^ +€ 08@R duckdns.org^ +ÿï08@R easyhash.de^ +ÿï08@R easyhash.io^ +&ÿï08@Rethereum-cashcard.com^ +$ÿï08@Rethereum-pocket.com^ +ÿï08@R +ethers.io^ +ÿï08@R eucsoft.com^ +ÿï08@Revilsbedont.de^ +$ÿï08@Rflare-analytics.com^ +ÿï08@Rflu.cc^ + ÿï08@Rfreecontent.date +"ÿï08@Rfreecontent.stream +ÿï08@R +g1thub.com + ÿï08@Rhostcontent.live +"ÿï08@Rhostingcloud.party +ÿï08@R +trezor.io^ +ÿï08@R tulip18.com^ + ÿï08@Rxmr.2miners.com^ +Á€ * +pblv-plusbellelavie.fr* +descargas2020.com* +ithepiratebay.com* +shrink-service.it* +xvideosharing.com* +centrum-dramy.pl* +firstonetv.live* +tubetitties.com* +peliculas24.me* + dp-stream.com* + chemikino.ru* + primewire.li* + primewire.tf* + clkmein.com* + corneey.com* + datpiff.com* + deltabit.co* + kinovibe.co* + rednubes.de* + sickrage.ca* + vidshare.tv* + +ceesty.com* + +destyy.com* + +festyy.com* + +lewd.ninja* + +nahnoji.cz* + +netiap.com* + +reactor.cc* + onion.pet* + salon.com* + shorte.st* + vidoza.co* + +onion.ly* + +void.cat* +djs.sk* +sh.st08@ +ê_*! +ma-famille-dabord-streaming.com* +convertisseur-youtube-mp3.net* +wiflix-nouvelle-adresse.site* +adblockeronstreamtape.xyz* +torrentfunk-official.live* +jasonresponsemeasure.com* +stapewithadblock.monster* +wiflix-vraie-adresse.com* +adrianmissionminute.com* +databasegdriveplayer.co* +free-telechargement.org* +lookmovie-official.live* +lookmovie2-official.lol* +wiflix-catalogue.online* +youtube4kdownloader.com* +adblockstreamtape.site* +animedigitalnetwork.fr* +free-telecharger.click* +wiflix-catalogue.autos* +adblockstreamtape.art* +clickndownload.online* +clicknupload.download* +filemoon-oe4w6g0u.xyz* +gum-gum-streaming.com* +moo-teau4c9h-mkay.com* +nathanfromsubject.com* +onepiece-streaming.co* +partage-temporaire.fr* +serie-streaminghd.org* +stapadblockuser.click* +streamadblockplus.com* +streamadblockplus.xyz* +streamtapeadblock.art* +ultimate-torrent1.com* +clickndownload.click* +clickndownload.space* +cpasbien-support.com* +despair-paradise.com* +digitaltendances.com* +direct-streamfr.live* +extreme-down.digital* +film-francais-vf.com* +filmpornofrancais.fr* +free-telecharger.com* +free-telecharger.fun* +french-stream.gratis* +natationpourtous.com* +player.smashy.stream* +robertplacespace.com* +roms-telecharger.com* +saison-streaming.com* +sandratableother.com* +torrentdownload.info* +wiflix-catalogue.net* +wiflix-catalogue.pro* +adblockplustape.com* +adblockplustape.xyz* +adblockstrtape.link* +clickndownload.link* +clickndownload.live* +clickndownload.name* +clickndownload.site* +clicknupload.online* +extreme-down.social* +extreme-down.tattoo* +french-stream.black* +gamecopyworld.click* +pornoreportages.com* +protect-mylinks.com* +protege-torrent.com* +richardsignfish.com* +stapadblockuser.xyz* +streamadblocker.xyz* +strtapeadblock.club* +tapewithadblock.org* +ultimate-torrent.in* +wiflix-adresses.fun* +1jour1film.monster* +blablastream.space* +cigarlessarefy.com* +clickndownload.cfd* +clickndownload.org* +clicknupload.click* +clicknupload.space* +clicknupload.store* +dynamicfantasy.net* +extreme-down.boats* +extreme-down.party* +extreme-down.tools* +filmstreamingvk.co* +kellywhatcould.com* +nortorrent.support* +seriale-online.net* +tapeadsenjoyer.com* +unblocktheship.org* +wallpaperflare.com* +watchadsontape.com* +yacine-tv-app.live* +yggtorrent.support* +1jour1film.yachts* +agence-webside.fr* +blabla-stream.org* +clickndownload.cc* +clicknupload.club* +clicknupload.link* +clicknupload.name* +clicknupload.site* +extreme-down.cyou* +extreme-down.food* +extreme-down.meme* +extreme-down.work* +filmsexeporno.com* +french-stream.bio* +ithepiratebay.com* +lepetitlecteur.fr* +livestreams.click* +mega-torrent1.com* +mega-torrent3.com* +mega-torrent6.com* +streamingclic.com* +strtapeadblock.me* +xvideosharing.com* +zktorrent.support* +zone-annuaire.tel* +zone-annuaire.top* +zone-streaming.fr* +zone-torrent1.com* +zone-torrent2.com* +1jour1film.autos* +1jour1film.space* +android-zone.org* +animekaizoku.com* +blablastream.com* +buzzmonclick.com* +buzzmonclick.net* +clicknupload.one* +clicknupload.org* +clicknupload.vip* +dailyuploads.net* +extreme-down.icu* +extreme-down.ing* +filelions.online* +french-anime.com* +french-stream.es* +french-stream.gg* +french-stream.so* +gamecopyworld.eu* +lecteurvideo.com* +limetorrents.lol* +mega-torrent.com* +memoireetvie.com* +movie-series.net* +official-yts.com* +petit-fichier.fr* +sadisflix.beauty* +serialeonline.io* +serialeonline.to* +speedtorrent.com* +stream4free.live* +syrialive.online* +torrent-site.com* +torrentgalaxy.mx* +torrentgalaxy.to* +up4ever.download* +warez-serbia.com* +wiflix-hd.online* +wiflix-max.cloud* +xfilesharing.com* +yts-official.app* +1jour1film.bond* +1jour1film.cyou* +1jour1film.skin* +allmyvideos.net* +android-zone.ws* +anime-loads.org* +blablastream.eu* +blablastream.fr* +clicknupload.cc* +clicknupload.co* +clicknupload.me* +clicknupload.to* +cultissime.cyou* +discordbots.org* +dl-protect.link* +extreme-down.al* +file-upload.com* +file-upload.net* +file-upload.org* +fmoviesz-to.com* +gdriveplayer.me* +gdriveplayer.to* +gdriveplayer.us* +geneafrance.com* +hentaiforce.net* +k-streaming.com* +kickassanime.am* +kickassanime.mx* +kickassanime.ro* +kickassanime.rs* +ling-online.net* +mega4upload.com* +mega4upload.net* +moshahda.online* +nextorrent2.com* +nextorrent4.com* +nikaplayerr.com* +noblocktape.com* +nortorrent1.com* +nortorrent4.com* +nortorrent5.com* +nortorrent6.com* +sadisflix.click* +sportsonline.gl* +sportsonline.si* +sportsonline.so* +sportzonline.to* +stream-blog.org* +streamnoads.com* +tntendirect.com* +torrentfunk.com* +ultrastream.pro* +upload4earn.org* +vidhidefast.com* +wiflix-hd.store* +wiflix-max.site* +wiflixien.space* +wordcounter.icu* +wow-films.quest* +yggtorrent3.com* +yggtorrents.top* +yifyproxies.com* +yts-official.mx* +zetorrents1.com* +1jour1film.lol* +9xbuddy.online* +adultproxy.men* +anime-gate.com* +anime-gate.net* +archive-pdf.fr* +babblecase.com* +bonstreams.net* +casualient.com* +chatstream.org* +desi-porn.tube* +filelions.site* +fsmirror24.lol* +gettapeads.com* +gktorrents.org* +gomostream.com* +goodstream.one* +goodstream.uno* +kimechanic.com* +laceaccept.net* +ling-online.cc* +lulustream.com* +mistergeek.net* +nortorrent.com* +nulledwp.click* +oxtorrent.info* +oxtorrent1.com* +oxtorrent2.com* +oxtorrent3.com* +oxtorrent5.com* +pandamovies.pw* +peliculas24.me* +playerhost.net* +sadis-flix.com* +shavetape.cash* +short-url.link* +soccer24hd.com* +streambox.club* +streamhide.com* +streaminfr.com* +streamtape.com* +streamtape.net* +streamtape.xyz* +streamwish.com* +streamwish.fun* +thesextube.net* +torrent-p2p.my* +torrent9.ninja* +unblocked2.fun* +unblocked2.vip* +usersdrive.com* +voirfilms.live* +voirseries.rip* +wiflix-hd.live* +wiflix-hd.site* +wiflix-hd.tube* +wiflix-max.cam* +wiflix-max.top* +wiflix-max.vip* +wiflix-pro.mom* +yacine-app.com* +yamechanic.com* +yggtorrent.top* +zktorrent3.com* +zktorrent5.com* + adshrinks.com* + asianplay.pro* + atomcurve.com* + clicksfly.com* + cloudvideo.tv* + coginator.com* + cogismith.com* + coinfaucet.io* + cpasbien4.com* + cracksurl.com* + cybervynx.com* + ddownload.com* + desiporn.tube* + desiupload.co* + desiupload.in* + dlapk4all.com* + drop.download* + fanstream.ink* + fanstream.top* + fastproxy.win* + filelions.com* + foumovies.net* + frandroid.com* + freedream.org* + fullmoviz.org* + igg-games.com* + jetanimes.com* + kibuilder.com* + lelscanfr.com* + lelscanvf.com* + liiivideo.com* + mirrorace.com* + mp4upload.com* + myyouporn.com* + new.gdtot.dad* + nextorrent.cz* + nextorrent.my* + oneupload.net* + onlystream.tv* + pornbraze.com* + quainator.com* + quamiller.com* + replaymod.com* + sadisflix.ing* + sadisflix2.cc* + sendspace.com* + sharezweb.com* + smoothpre.com* + snowfiles.com* + softmaroc.org* + strcloud.club* + strcloud.link* + streamhide.to* + streamlive.to* + streamtape.cc* + streamtape.to* + streamwish.to* + strtape.cloud* + supervideo.cc* + supervideo.tv* + tapenoads.com* + toonanime.xyz* + uploadrar.com* + vid-guard.com* + vidspeeds.com* + voiranime.com* + vtube.network* + wiflix-hd.bio* + wiflix-hd.day* + wiflix.travel* + xsportbox.com* + yabuilder.com* + yacine-tv.com* + yacine-tv.vip* + yggtorrent.cv* + yobuilder.com* + zetorrents.my* + zipansion.com* + zktorrent.com* + zone-anime.me* + 1fichier.com* + allviid.live* + allviids.xyz* + atominik.com* + aunoptp.site* + cinemavf.net* + cpasbien.fun* + d0stream.com* + darkibox.com* + datanodes.to* + deepbrid.com* + dlpsgame.com* + draplay.info* + dz4link1.com* + embedscr.com* + exe-urls.com* + fanstream.us* + filecrypt.cc* + filecrypt.co* + filelions.to* + filescdn.com* + filescdn.net* + flaswish.com* + fmovie-to.to* + frembed.live* + gktorrent.cz* + gktorrent.my* + gktorrent.sh* + itdmusic.com* + kializer.com* + lelmanga.com* + liteapks.net* + luluvdoo.com* + matures.porn* + mavanimes.co* + mega-p2p.net* + microify.com* + moshahda.net* + oneupload.to* + onflemme.com* + oxtorrent.ac* + oxtorrent.co* + oxtorrent.cz* + oxtorrent.io* + oxtorrent.pw* + oxtorrent.tk* + picocurl.com* + pintient.com* + primewire.li* + primewire.tf* + rexdlbox.com* + riffhold.com* + seasonvar.ru* + skamaker.com* + skamason.com* + streamcdn.to* + streamhg.com* + streamsb.com* + strtape.site* + strtape.tech* + syrialive.cc* + syrialive.tv* + theproxy.how* + toonanime.cc* + toonanime.co* + torlock2.com* + tusfiles.com* + tusfiles.net* + ugmovies.org* + ugreen.autos* + up-4ever.com* + up-4ever.net* + vializer.com* + vidbinge.com* + vidspeed.net* + viidshar.com* + vipleague.im* + viwright.com* + vostfree.com* + wiflix.cloud* + wookafr.plus* + xfantazy.com* + yoalizer.com* + youdbox.site* + 2shrink.com* + 3hentai.net* + 9xbuddy.com* + 9xupload.me* + allviid.xyz* + animelek.tv* + bitigee.com* + bluenik.com* + cpasbien.cv* + cpasbien.do* + cpasbien.ke* + cpasbien.my* + cpmlink.net* + crichd.info* + crichd.live* + datoporn.co* + datpiff.com* + dz4link.com* + ebookdz.com* + embasic.pro* + filemoon.sx* + flemmix.net* + flemmix.top* + flemmix.vip* + forumdz.com* + frembed.lol* + ghbrisk.com* + hdss.studio* + hdss.yachts* + hexload.com* + hlswish.com* + ichmama.xyz* + itdmusic.in* + japscan.com* + japscan.lol* + jawcloud.co* + kaitect.com* + kinovibe.co* + ling.online* + luluvdo.com* + lvturbo.com* + mavplay.com* + migamex.fyi* + mp3clan.com* + neko-san.fr* + niquons.com* + oomoviz.com* + otakufr.com* + otakufr.net* + sbrapid.com* + scan-vf.net* + segavid.com* + simizer.com* + streamta.pe* + tinyium.com* + torlock.com* + torrent9.cm* + torrent9.cz* + torrent9.fm* + torrent9.gg* + torrent9.ke* + torrent9.la* + torrent9.pe* + torrent9.pw* + torrent9.to* + twineer.com* + upstream.to* + vgfplay.com* + viahold.com* + vidello.net* + videobin.co* + vidlooz.com* + vidshar.org* + vidtube.cam* + vidtube.pro* + vostfree.ws* + wawacity.al* + wgstream.sx* + wiflix.date* + wiflix.name* + www-yts.com* + yoineer.com* + yoitect.com* + youdbox.net* + +11anim.com* + +adkami.com* + +adshort.co* + +anitube.cx* + +coflix.app* + +crichd.com* + +crichd.xyz* + +daktna.net* + +dlgram.com* + +embedv.net* + +ettvdl.com* + +fapdig.com* + +film1k.com* + +flemmix.ws* + +fmovies.ec* + +frembed.cc* + +gnulahd.nu* + +hydrax.net* + +japscan.cc* + +japscan.me* + +japscan.se* + +japscan.ws* + +larati.net* + +linkbox.to* + +mamega.com* + +megamax.me* + +mixdrop.ag* + +mixdrop.ps* + +mixdrop.sb* + +mixdrop.si* + +mmoity.com* + +mrsexe.com* + +notube.net* + +offmp3.com* + +offmp3.net* + +otakufr.cc* + +sadis.wiki* + +sblona.com* + +smoner.com* + +tmearn.com* + +tmearn.net* + +unmoor.com* + +up-load.io* + +updown.cam* + +updown.icu* + +uqload.com* + +uqload.net* + +uqload.org* + +uupbom.com* + +vadbam.com* + +vadbam.net* + +vdesk.live* + +vedbam.xyz* + +vidbam.org* + +vidbem.com* + +vidbom.com* + +vidmoly.to* + +vidshar.tv* + +vidsrc.net* + +vidsrc.xyz* + +wiflix.bio* + +witv.store* + +wstream.to* + +www-yts.my* + 4anime.to* + ahvsh.com* + allvid.ch* + asd.homes* + crichd.to* + dausel.co* + dzapk.com* + exego.app* + govad.xyz* + goved.org* + hds.quest* + hxfile.co* + kinogo.cc* + koora.vip* + onion.pet* + opvid.net* + opvid.org* + ouo.press* + picons.eu* + rantop.cc* + rantop.my* + sbanh.com* + sekai.one* + simkl.com* + thevid.tv* + tilien.fr* + txxx.tube* + ukpass.co* + uppit.com* + uqload.co* + uqload.io* + uqload.to* + vidsrc.in* + vidsrc.me* + vidsrc.pm* + vidsrc.to* + vtpii.com* + webtor.io* + xcoic.com* + xpaja.net* + ybspw.com* + +1337x.cz* + +7-up.net* + +asd.rest* + +cam4.com* + +chine.in* + +fs11.lol* + +fs22.lol* + +fs44.lol* + +fs77.lol* + +gsurl.in* + +hdvid.tv* + +media.cm* + +onion.ly* + +opvid.co* + +sexu.com* + +shink.me* + +short.pe* + +txxx.com* + +up-4.net* + +vidlo.us* + +vtube.to* + +vudeo.co* + +vudeo.io* + +vudeo.ws* + +w0rld.tv* + +waaw1.tv* +ally.sh* +cam4.fr* +clik.pw* +ezie.cc* +gomo.to* +hdss.at* +kaas.am* +link.tl* +lulu.st* +ovid.tv* +send.cm* +t911.cz* +t911.pw* +veev.to* +vtbe.to* +waaw.to* +adf.ly* +ddl.to* +exe.io* +ouo.io* +srt.am* +tii.ai* +top.gg* +tpi.li* +uii.io* +voe.sx* +ygg.re* +yts.mx* +ay.gy* +fc.lc* +j.gs* +q.gs08@ +ò€* +mon-horoscope-du-jour.com* +free-telecharger.click* +clickndownload.online* +clicknupload.download* +ultimate-torrent1.com* +clickndownload.click* +clickndownload.space* +player.smashy.stream* +clickndownload.link* +clickndownload.live* +clickndownload.name* +clickndownload.site* +clicknupload.online* +clickndownload.cfd* +clickndownload.org* +clicknupload.click* +clicknupload.space* +clicknupload.store* +extreme-down.party* +tapeadsenjoyer.com* +unblocktheship.org* +clickndownload.cc* +clicknupload.club* +clicknupload.link* +clicknupload.name* +clicknupload.site* +extreme-down.cyou* +ithepiratebay.com* +lepetitlecteur.fr* +mega-torrent1.com* +shrink-service.it* +zone-annuaire.tel* +clicknupload.one* +clicknupload.org* +clicknupload.vip* +clipwatching.com* +dailyuploads.net* +play.playm4u.xyz* +torrentfunk2.com* +xfilesharing.com* +allmyvideos.net* +clicknupload.cc* +clicknupload.co* +clicknupload.me* +clicknupload.to* +convert2mp3.net* +nortorrent5.com* +streamnoads.com* +wordcounter.icu* +ling-online.cc* +nortorrent.com* +short-url.link* + adshrinks.com* + clicksfly.com* + cloudvideo.tv* + linkbucks.com* + mp4upload.com* + wawacity.blue* + allviids.xyz* + clictune.com* + exe-urls.com* + filescdn.com* + filescdn.net* + mega-p2p.net* + powvideo.net* + torlock2.com* + wawacity.one* + wawacity.vip* + 2shrink.com* + allviid.xyz* + animelek.tv* + clkmein.com* + corneey.com* + cpmlink.net* + dz4link.com* + jawcloud.co* + multiup.org* + torlock.com* + videobin.co* + vidshare.tv* + wawacity.al* + +adshort.co* + +ceesty.com* + +destyy.com* + +festyy.com* + +mixdrop.co* + +mixdrop.ps* + +mixdrop.sb* + +mixdrop.to* + +multiup.eu* + +multiup.io* + +netiap.com* + +pubiza.com* + +thevid.net* + +tmearn.com* + +tmearn.net* + +uqload.net* + +vidbem.com* + +vidsrc.net* + +vidsrc.xyz* + dausel.co* + exego.app* + hxfile.co* + onion.pet* + ouo.press* + shorte.st* + thevid.tv* + txxx.tube* + ukpass.co* + vidsrc.in* + vidsrc.me* + vidsrc.pm* + +7-up.net* + +e-wok.tv* + +gsurl.in* + +hdvid.tv* + +media.cm* + +onion.ly* + +sexu.com* + +shink.me* + +short.pe* + +txxx.com* + +vudeo.ws* + +waaw1.tv* +1ink.cc* +ally.sh* +clik.pw* +ezie.cc* +link.tl* +ovid.tv* +send.cm* +waaw.to* +exe.io* +ouo.io* +uii.io* +bc.vc* +sh.st* +so.gd08@ +… * +convertisseur-youtube-mp3.net* +torrentfunk-official.live* +databasegdriveplayer.co* +free-telechargement.org* +lookmovie-official.live* +lookmovie2-official.lol* +free-telecharger.click* +clickndownload.online* +clicknupload.download* +gum-gum-streaming.com* +stapadblockuser.click* +ultimate-torrent1.com* +clickndownload.click* +clickndownload.space* +cpasbien-support.com* +film-francais-vf.com* +french-stream.gratis* +roms-telecharger.com* +saison-streaming.com* +clickndownload.link* +clickndownload.live* +clickndownload.name* +clickndownload.site* +clicknupload.online* +extreme-down.tattoo* +french-stream.black* +protect-mylinks.com* +clickndownload.cfd* +clickndownload.org* +clicknupload.click* +clicknupload.space* +clicknupload.store* +extreme-down.party* +tapeadsenjoyer.com* +wallpaperflare.com* +clickndownload.cc* +clicknupload.club* +clicknupload.link* +clicknupload.name* +clicknupload.site* +filmsexeporno.com* +french-stream.bio* +ithepiratebay.com* +lepetitlecteur.fr* +livestreams.click* +mega-torrent1.com* +sunsky-online.com* +zone-annuaire.tel* +zone-annuaire.top* +centrum-dramy.pl* +clicknupload.one* +clicknupload.org* +clicknupload.vip* +dailyuploads.net* +french-stream.gg* +speedtorrent.com* +stream4free.live* +torrentfunk2.com* +xfilesharing.com* +clicknupload.cc* +clicknupload.co* +clicknupload.me* +clicknupload.to* +dl-protect.link* +file-upload.com* +file-upload.org* +fmoviesz-to.com* +nortorrent5.com* +stream-blog.org* +streamnoads.com* +tntendirect.com* +upload4earn.org* +yggtorrents.top* +9xbuddy.online* +fsmirror24.lol* +ling-online.cc* +mistergeek.net* +nortorrent.com* +oxtorrent3.com* +oxtorrent5.com* +ps4-torrent.ru* +streaminfr.com* +unblocked2.fun* +unblocked2.vip* +usersdrive.com* +voirseries.rip* + 01fmovies.com* + adshrinks.com* + clicksfly.com* + cloudvideo.tv* + drop.download* + foumovies.net* + jetanimes.com* + lelscanfr.com* + liiivideo.com* + mirrorace.com* + sendspace.com* + sharezweb.com* + snowfiles.com* + vid-guard.com* + voiranime.com* + vtube.network* + 1fichier.com* + darkibox.com* + dlpsgame.com* + exe-urls.com* + filescdn.com* + filescdn.net* + frembed.live* + liteapks.net* + mavanimes.co* + mega-p2p.net* + rexdlbox.com* + streamsb.com* + theproxy.how* + toonanime.co* + torlock2.com* + ugreen.autos* + wookafr.plus* + xfantazy.com* + youdbox.site* + 2shrink.com* + 9xbuddy.com* + 9xupload.me* + animelek.tv* + datpiff.com* + dz4link.com* + ebookdz.com* + frembed.lol* + hdss.yachts* + hexload.com* + japscan.lol* + jawcloud.co* + jheberg.net* + lvturbo.com* + otakufr.com* + sbrapid.com* + scan-vf.net* + segavid.com* + torlock.com* + vgfplay.com* + vidello.net* + videobin.co* + vidshare.tv* + vidtube.cam* + vidtube.pro* + wawacity.al* + youdbox.net* + +adshort.co* + +coflix.app* + +daktna.net* + +dropapk.to* + +embedv.net* + +ettvdl.com* + +fmovies.ec* + +fmovies.to* + +frembed.cc* + +japscan.se* + +linkbox.to* + +mixdrop.ag* + +mixdrop.ps* + +mixdrop.sb* + +mixdrop.si* + +offmp3.net* + +otakufr.cc* + +sblona.com* + +smoner.com* + +up-load.io* + +updown.icu* + +uqload.net* + +vidbem.com* + +vidsrc.net* + +vidsrc.xyz* + 4anime.to* + allvid.ch* + exego.app* + govad.xyz* + goved.org* + hds.quest* + hxfile.co* + onion.pet* + opvid.net* + opvid.org* + ouo.press* + sibnet.ru* + txxx.tube* + ukpass.co* + uppit.com* + vidsrc.in* + vidsrc.me* + vidsrc.pm* + vidsrc.to* + +7-up.net* + +asd.rest* + +fs11.lol* + +fs44.lol* + +fs77.lol* + +gsurl.in* + +hdvid.tv* + +media.cm* + +onion.ly* + +opvid.co* + +short.pe* + +txxx.com* + +vidlo.us* + +vtube.to* + +vudeo.ws* +ezie.cc* +ovid.tv* +send.cm* +veev.to* +vtbe.to* +exe.io* +ouo.io* +uii.io* +yts.mx* +fc.lc08@ +²* +protect-mylinks.com* +lepetitlecteur.fr* + adshrinks.com* + filescdn.com* + filescdn.net* + videobin.co* + ouo.press* + +gsurl.in* + +short.pe* +send.cm* +ouo.io08@ +ý* +protect-mylinks.com* +ithepiratebay.com* +dailyuploads.net* +tntendirect.com* +upload4earn.org* + adshrinks.com* + jetanimes.com* + 1fichier.com* + allviids.xyz* + filescdn.com* + filescdn.net* + kissanime.ru* + mavanimes.co* + mega-p2p.net* + 9xupload.me* + allviid.xyz* + jawcloud.co* + videobin.co* + onion.pet* + +7-up.net* + +gsurl.in* + +onion.ly* + +short.pe08@ +œ* +gamecopyworld.click* +gamecopyworld.eu* +android-zone.ws* +anime-loads.org* +babesxworld.com* +babblecase.com* +casualient.com* +kimechanic.com* +yamechanic.com* + atomcurve.com* + coginator.com* + cogismith.com* + cracksurl.com* + kibuilder.com* + quainator.com* + quamiller.com* + replaymod.com* + yabuilder.com* + yobuilder.com* + zipansion.com* + atominik.com* + cocogals.com* + imgdrive.net* + kializer.com* + microify.com* + picocurl.com* + pintient.com* + riffhold.com* + skamaker.com* + skamason.com* + vializer.com* + viwright.com* + yoalizer.com* + bitigee.com* + bluenik.com* + kaitect.com* + simizer.com* + tinyium.com* + twineer.com* + viahold.com* + yoineer.com* + yoitect.com* + +larati.net* + +mmoity.com* + picons.eu* +adf.ly* +ay.gy* +j.gs* +q.gs08@R.php +äÿï* +downloadpirate.com* +patchsoftwares.com* +bestfreecams.club* +istream2watch.com* +dailyuploads.net* +stream2watch.org* +uploadproper.net* +tntendirect.com* +upload4earn.org* +9xbuddy.online* +gomovieshub.io* +ling-online.cc* +voir-films.com* +zippyshare.com* + adshrinks.com* + clicksfly.com* + desiupload.co* + desiupload.in* + drop.download* + gostreams.net* + indishare.org* + keeplinks.org* + sendspace.com* + uploadrar.com* + bagas31.info* + sadeempc.com* + 2shrink.com* + 9xbuddy.com* + multiup.org* + vosbooks.tv* + +almstba.tv* + +dropapk.to* + +megaurl.in* + +multiup.eu* + +multiup.io* + +offmp3.net* + +okanime.tv* + +up-load.io* + dood.work* + upload.ac* + x1337x.eu* + x1337x.ws* + +1337x.st* + +1337x.to* + +gsurl.in* + +hdvid.tv* + +media.cm* + +sexu.com* + +short.pe* +ovid.tv* +sss.xxx* +clk.sh* +eio.io* +oii.la* +uii.io08@R/sw.js +'ÿï08@R000webhost.com/migrate? ++ÿï08@R10-81.s.cdn15.com/cr/38440/ +*ÿï08@R11footballclub.com/equipe/ +6ÿï08@R&11footballclub.com^*/indexcolonne.php? +@ÿï08@R011footballclub.com^*/indexhomepage2.php*&domain= +‚08@R123plaisir.com^ +-ÿï08@R123rfapis.com/crossdomain.xml +)ÿï08@R1873083787.rsc.cdn77.org^ + ÿï08@R1ink.cc/banners/ +#ÿï08@R1movietv.com/favis/ +%ÿï08@R2img.net/i/fa/banner/ +*ÿï08@R2img.net/i/fa/partenaires/ ++ÿï08@R360m2.fr/ui/widgets/iframe? +ÿï08@R 380.bu2z.com^ +ÿï08@R380.hotpix.fr^ +'ÿï08@R3dxbucks.com^*/banners/ +$ÿï08@R46.105.62.117/vador/ +&ÿï08@R4j.com/images/banners/ +ÿï08@R4k.video/*.htm +ÿï08@R4k.video/*.php? +ÿï08@R 4k.video/b.js +08@R50centfreedom.us^ +€08@Ra7.org^ +!08@Rabc-du-gratuit.com^´ +-ÿï08@Rabc-du-gratuit.net/bannieres/ +1ÿï08@R!abc-netmarketing.com/*/L160xH600_ +;ÿï08@R+abc-webmasters.net/images_annuaire_gratuit/ +4ÿï08@R$abcdelaremuneration.com/banniere.gif +2ÿï08@R"abcdelaremuneration.com/bouton.gif +$ÿï08@Rabowman.com/widgets/ ++ÿï08@Raccueil.pro/annuaire468.png +*ÿï08@Raccueil.pro/annuaire88.png +*ÿï08@Rachetezfacile.com^*/widget ++ÿï08@Racommeassure.com/publicapi/ ++ÿï08@Ractu-direct.fr/rep/rep_pub/ +ÿï08@Rad.genybet.fr^ +ÿï08@R ad.net-c.com^ +#ÿï08@Rad.publicidees.com^ + ÿï08@Rad.vacanceo.com^ +ÿï08@R ad.zanox.com^ +ÿï08@Rad1.sibnet.ru^ +%ÿï08@Rads-tracking.beop.io^ ++ÿï08@Rads-tracking.beopinion.com^ +ÿï08@R ads.itv.com^ +ÿï08@Rads.vnhell.com^ +#ÿï08@Radultempire.com/bn/ +"ÿï08@Raduwoc.footeo.com^ +Gÿï08@R7aexp-static.com/cdaas/axp-app/modules/axp-forum-banner/ +$ÿï08@Raffiliation.porn.fr^ +&ÿï08@Raffiliationv4.porn.fr^ +3ÿï08@R#agence-ecofin.com/mysimple/banners/ + ÿï08@Rah-me.com/flirt/ +€08@Rahlaejaba.com^ +€08@R airsexe.com^ +1ÿï08@R!ajoutezvotrelien.com/visuel46.png +/ÿï08@Rajoutezvotresite.com/button.php +3ÿï08@R#ajoutezvotresite.com/images/*88.gif +8ÿï08@R(ajoutezvotresite.com/images/allo-600.gif +8ÿï08@R(ajoutezvotresite.com/images/le1er468.gif +,ÿï08@Rakacdn.ru/assets/min/random/ +'ÿï08@Rakamaihd.net/*_vpaid.js +,ÿï08@Rakamaized.net/images/banner/ +"08@Rakamaized.net^*/dfp- +/ÿï08@Ralfafile.net/img/buttons/promo/ +€08@Rali.pub^ +€08@Rali.ski^ +]ÿï* +aliexpress.com* + aliexpress.ru* + alibaba.com08@Ralicdn.com^*-300x250. +]ÿï* +aliexpress.com* + aliexpress.ru* + alibaba.com08@Ralicdn.com^*_220x220. +'ÿï08@Rall-ladies.net/banners/ +;ÿï08@R+allkeyshop.com/blog/wp-content/uploads/g2a- +5ÿï08@R%allo-heberge.com/interface/bannieres/ +1ÿï08@R!allo-nom.com/interface/bannieres/ +/ÿï08@Rallodiagnostic.com/partenariat/ +#ÿï08@Rallopass.com^*/pub/ +'ÿï08@Ralloref.com/allo120.gif +'ÿï08@Ralloref.com/allo125.gif +'ÿï08@Ralloref.com/allo468.gif +'ÿï08@Ralloref.com/allo600.gif +08@R alloref.com^ +#ÿï08@Rallstatics.com/pub/ +2ÿï08@R"alphascore.com/wp-content/uploads/ ++ÿï08@Ramateursvideos.net/banners/ +0€08@R!amazon.fr/exec/*/external-search? +7ÿï08@R'amazonaws.com/accio-lib/accip_script.js +4ÿï* + affilae.com08@Ramazonaws.com/aeup/ +$ÿï08@Ramazonaws.com/hbams/ +(ÿï08@Ramazonaws.com/mftracker/ +%ÿï08@Ramazonaws.com/pubfig/¾ +:ÿï08@R*amazonaws.com/static.contentza.com/widgets +*ÿï08@Ramazonaws.com/waframedia*. +,ÿï08@Ramazonaws.com^*-ccmbenchmark +%€08@Ramazonaws.com^*/3x250- +)08@Ramazonaws.com^*/publishers/ +(ÿï08@Rambed.io^*/img/partners/ +8€08@R)ams.cdn.arkadiumhosted.com/advertisement/ +Qÿï08@RAams.cdn.arkadiumhosted.com/advertisement/display/*/display-ads.js +$ÿï08@Ranalystprep.com/img/ +€08@R anikawa.com^ +5ÿï08@R%annonce-et-promotion.com/images_site/ +&08@Rannonces-automobile.com^ +2ÿï08@R"annuaire-autosurf.com/banniere.gif +$08@Rannuaire-autosurf.com^ +,ÿï08@Rannuaire-fille-sexy.com/ban/ +9ÿï08@R)annuaire-generaliste.fr/affiche_logo.php? +>ÿï08@R.annuaire-sites.danslemonde.net/partenaires.php +8ÿï08@R(annuaire-transsexuelle.com/annuaire/ban/ +4ÿï08@R$annuaire-web-france.com/partenaires/ +-ÿï08@Rannuairedesexe.net^*/banniere +$ÿï08@Rantispamweb.com/top/ +ÿï08@Raolcdn.com/ads/ +,ÿï08@Rapi.gamerprices.com/compare/ +.ÿï08@Rapp.partnerlottery.com/widget/ +-ÿï08@Rappleboobs.com/images/banner/ +ÿï08@R april.fr/#/? +$ÿï08@Rapycdn.com^*/banner/ +/€08@R aramisauto.com/c/vente/automoto? +ÿï08@R arc.io/widget +708@R)arkea.com/banque/assurance/credit/upload/ +-ÿï08@Rasia-passion.fr/annuaire/ban/ +&ÿï08@Rassurland.com/widgets/ +!€08@Rastore.amazon.com^ +!ÿï08@Rastrill.com/bnrs/ +5ÿï08@R%astroportail.com/images/pubastro4.gif +!ÿï08@Rasumi.shinobi.jp^ +-ÿï08@Ratoowin.com/images/diffusion/ +"ÿï08@Rautosurf.me/promo/ +3ÿï08@R#autosurf4u.com/images/autosurf*.gif +-ÿï08@Rautotrack.be/scripts/partner/ +'ÿï08@Rautotrends.be^*/widget/ +Dÿï08@R4avefront.akamaized.net/extra/static/images/partners/ +&ÿï08@Rawin1.com/awclick.php? +=ÿï08@R-awreferencement.com/conception_referencement_ +,ÿï08@Razureedge.net/img/*habillage +)ÿï08@Razurewebsites.net/widget/ +0ÿï08@R b-cdn.net/uploads/banners_model/ +ÿï08@R b.clc2l.com^ +!ÿï08@Rb.clictoload.com^ +"ÿï08@Rb.photobucket.com^ +'ÿï08@Rba.commentcamarche.net^ +%ÿï08@Rba.copainsdavant.com^ +%ÿï08@Rba.hugolescargot.com^ +%ÿï08@Rba.jeux-gratuits.com^ +(ÿï08@Rba.journaldesfemmes.com^ + ÿï08@Rbaise3x.com/ban/ +(ÿï08@Rbandeiracorp.biz/images/ +'ÿï08@Rbanner-adz.com/view.php +:ÿï08@R*barredesurf.com/includes/images/bannieres/ +'ÿï08@Rbaseturf.com/bannieres/ +'ÿï08@Rbcrncdn.com/promotions/ +*ÿï08@Rbe.com/wp-content/uploads/ +$ÿï08@Rbelle-salope.fr/ban/ +'ÿï08@Rbelledesfleurs.com/ban/Œ +.ÿï08@Rbestchange.com/images/banners/ +'ÿï08@Rbestofartisans.com/app/ +3ÿï08@R#bestofmedia.com/sfp/images/partner/ +(ÿï08@Rbetclic.fr/partner.aspx? + ÿï08@Rbinnes.com/pubs/ +%ÿï08@Rbismirabbika.com/img/ +;ÿï* +nintendo-master.com* + upload.ac08@Rbit.ly^ +7* +phonandroid.com* + korben.info08@Rbit.ly^ +'* + korben.info08@R +bitly.com^ +*ÿï08@Rbitport.io/assets/banners/ +)ÿï08@Rblablaland.com/pubosaure/ +€08@Rbleu73.free.fr^ +*ÿï08@Rblickdeal.ch/blickdeal.xml +?ÿï08@R/blob.core.windows.net/ressources/img/autopromo/ + 08@Rblock.s*block.com^ + 08@Rblock.s*vesta.com^ +=ÿï* +mega-telechargement.com08@Rblogspot.com/*.gif +=* + desiupload.co* + desiupload.in08@R blogspot.com^ +"ÿï08@Rbon-reduc.com/pub/ +4ÿï08@R$boncoin-annonce.com/template/images/ +&ÿï08@Rbookiblog.com/iframe*. +1ÿï08@R!booking.com/static/img/*_banners_ +Fÿï08@R6boonex.com/modules/Txt/layout/default/img/txt-abt-file +#ÿï08@Rboostercash.fr/ban- +"08@Rboostersite.com/css/ +:ÿï08@R*boostersite.com/css/*/boostersite-logo.gif +)ÿï08@Rboostersite.com/site_ban/ +!€08@Rbourbonvoyages.fr^ +<ÿï08@R,bourgogne-restaurants.com/a_decouvrir_resto_ +/ÿï08@Rboutique.aero/images/block_pub_ +'ÿï08@Rbrfiles.com/static/pub/ +&ÿï08@Rbrocantelab.com/media/ +ÿï08@Rbrsimg.com/pub/ +&ÿï08@Rbtc.com/poster/banner/ +"ÿï08@Rbtcclicks.com/img/ +#ÿï08@Rbtcheat.com/images/ +Mÿï08@R=bugsfighter.com/wp-content/uploads/2016/07/adguard-banner.png +*ÿï08@Rbuildabizonline.com/share/ +6ÿï08@R&business-lounge.fr/public/widget-prod/ +€08@R buzzy9.com^ +lÿï08@R\c0.lestechnophiles.com/www.numerama.com/wp-content/uploads/2022/01/mon-petit-placement-1.jpg +-ÿï08@Rcadremploi.fr/assets/widgets/ ++ÿï08@Rcall-of-passion.com/banner/ +'ÿï08@Rcamgasm.com/affiliates/ +%ÿï08@Rcamtempel.com/banner/ +-ÿï08@Rcanalseduction.com/Bannieres/ +0ÿï08@R capasie.com/images/asie-shopping +(ÿï08@Rcashtravel.info/banners/ +Oÿï08@R?cdn-1.motorsport.com/static/custom/car-thumbs/icons/mycanal.jpg +Mÿï08@R=cdn-dekbh.nitrocdn.com/*/wp-content/uploads/2021/04/*.kid.jpg +Vÿï08@RFcdn-dekbh.nitrocdn.com/*/wp-content/uploads/2021/04/*.kidludik-top.jpg +'ÿï08@Rcdn.*/static/js/amvn.js +.ÿï08@Rcdn.a9fast.com^*/misc/partner/ +0ÿï08@R cdn.citytourgirls.com/static/bn/ +-ÿï08@Rcdn.escortdude.com/static/bn/ +ªÿï* +easyvoyage.co.uk* +easyviaggio.com* +easyviajar.com* +easyvoyage.com* + easyvoyage.de* + easyvols.fr08@R#cdn.ev.mu/js/optim/gg_cc/ev/boot.js +"ÿï08@Rcdn.maxcdn.info/a/ +'ÿï08@Rcdn.mgig.fr^*_1800x900. +0ÿï08@R cdn.nkstatic.com/images/*-skins. +2ÿï* + filehippo.com08@Rcdn.playwire.com^ +(ÿï08@Rcdn.statically.io/*/ads_ +$ÿï08@Rcdn.vndown.top/zo3x. +'ÿï08@Rcdn.x1cdn.com^*/banner/ +#ÿï08@Rcdn1.lp.saboom.com^Î +$ÿï08@Rcdn13.com^*/banners/ +"08@Rcdn13.com^*/license. +(ÿï08@Rcdna.meilleurmobile.com/ +1ÿï08@R!cdnpark.com/registrar/*/loader.js +!ÿï08@Rcdnwh.com/cecash/ +&ÿï08@Rcdscdn.com^*/banniere_ +)ÿï08@Rcdscdn.com^*/partenaires/ +&ÿï08@Rcdscdn.com^*/partners/ +2ÿï08@R"centreautos.com/contents//annonce/ +$€08@Rcentredecontrole.biz^ +1ÿï08@R!centreimmo.com/contents//annonce/ +9€* +lesmeilleurstalents.com08@R century21.fr^ +ÿï08@R +cex.io/rb/ +'€08@Rchaturbate.com^*/?track= +'ÿï08@Rchimeratool.com/banner/ +4ÿï* + +pubiza.com* +link.tl08@R chp.org.tr^ +)ÿï08@Rchtiflouz.com/upload/ban/ +%ÿï08@Rcinenews.be/partners/ +'ÿï08@Rclassement.pro/banners/ +)ÿï08@Rclassement.pro/button.php +6ÿï08@R&classement.pro/campagnes/files/banner_ +08@Rclassement.pro^ +*ÿï08@Rclassistatic.com/*/banner/ +3ÿï08@R#classistatic.com/*/homepage-banner/ +"ÿï08@Rclicjeux.net/bann/ +&ÿï08@Rclicjeux.net/banniere. +!ÿï08@Rclick-dz.com/img/ +#ÿï08@Rcliquojeux.com/pub/ +/ÿï08@Rcloudfront.net/dynamic-banners/ +)ÿï08@Rcloudfront.net/img/banner +?ÿï08@R/cloudfront.net/showcase/index.php?id=*&country= +2ÿï08@R"cloudfront.net/zdnet/i/partenaire/ +)ÿï08@Rcloudfront.net^*?partner= +"08@Rcloudfront.net^*tid= +9ÿï08@R)cloudinary.com/hd-numerique/*/amz-300.jpg +-ÿï08@Rclub-salopes.com/partenaires/ +‚08@R clublu.com^ +1ÿï08@R!clubsoleil.net/images/bannierecs. + ÿï08@Rcmp.vidcoin.com^ +-ÿï08@Rcoachingminceur.go2cloud.org^ +,ÿï08@Rcoinhouse.io/images/banners/ +2ÿï08@R"comdotcdn.com/hiqqu/files/widgets/ +*ÿï08@Rcompteur-blog.net/img/pub_ +5ÿï08@R%congosolution.com/img/images/pub*.gif +(ÿï08@Rconseillemoi.com/images/ +,ÿï08@Rcoorsa.com^*/?task=*.widget& +'ÿï08@Rcoquinissime.com/promo/ +#ÿï08@Rcoteblog.com/_logo/ +#ÿï08@Rcoupling.fr/widget_ +)ÿï08@Rcrankycash.com/affiliate/ +"ÿï08@Rcrazyjeux.com/pub/ +%ÿï08@Rcrichd.*/temp/cast4u. +>ÿï08@R.crm-pour-pme.fr/images/copie%20de%20728-90.png +-ÿï08@Rcrocastuce.fr/images/Boutons/ +Cÿï08@R3croquettesbio.com/wp-content/uploads/*/skyscreeper- +'ÿï08@Rcsm-e.cds1.yospace.com^ +%ÿï08@Rcsstatic.com/banners/ +"ÿï08@Rctb.intersport.fr^ +"ÿï08@Rctrip.com/?TypeID= +.ÿï08@Rcupinteractive.com^*/campagne/ +"€08@Rcyberbaiseuses.com^ +"ÿï08@Rcyberflirt.com/cx/ +€08@R +cyonix.to^ +ÿï08@R +d4.fr/img/É +uÿï* +gum-gum-streaming.com* +maison-travaux.fr* + mavanimes.co* + +hitek.fr08@Rdailymotion.com^*autoplay=1 +*ÿï08@Rdamoh.schneevonmorgen.com^ +0ÿï08@R damtours.com/static/img/damtous_ +*ÿï08@Rdanseraparis.com/46860.gif +*ÿï08@Rdanslemonde.net/images/pub +)ÿï08@Rdanslemonde.net/lien.php? +'ÿï08@Rdditscdn.com^*&isPromo= +&€08@Rdebrid-ultim.blogg.org^ +4ÿï* + gamekult.com08@Rdelivery.vidible.tv^ +08@R detroner.com^ +Cÿï08@R3devisprox-media.s3-website-eu-west-1.amazonaws.com^ +#ÿï08@Rdevisprox.com/ld.js +2ÿï08@R"dial.rencontres-celibataires.info^ ++ÿï08@Rdibujos.net/images/banners/ +ÿï08@Rding.pl/embed, +#ÿï08@Rdir-fr.com/banners/ +#ÿï08@Rdisco-sexe.com/ban/ ++€08@Rdmcdn.net^*/Orange_PingPong/ +&ÿï08@Rdnpanel.fr/images/PUB- +.ÿï08@Rdollarclix.com/images/banners/ + ÿï08@Rdrague.net/pubs/ +9ÿï08@R)dropboxusercontent.com/u/16447850/Baners/ +ÿï08@Rdzoic.com/gfx/ +0ÿï08@R e-cig-factory.fr/shop/bannieres/ ++ÿï08@Re-media-concept.com/medias/ +"ÿï08@Rea.numericable.fr^ ++ÿï08@Reamobile.com/*/dart_banner. +/ÿï08@Reamobile.com/*/dart_skyscraper. +$ÿï08@Reasy-charme.com/pub/ +&ÿï08@Reasy5now.com/images/b/ +"ÿï08@Recchi.fr/banieres/ +2ÿï08@R"echangedebannieres.fr/userbanners/ +.ÿï08@Rechangedeclics.com/plus468.png +-ÿï08@Rechangedeclics.fr/lien468.gif +4ÿï08@R$echangedeliens.fr/images/alloref.gif +!08@Rechangegagnant.com^ +;ÿï08@R+ecomnewsmed.com/application/images/banners/ +,ÿï08@Reden-deco.fr/media/banniere/ +$ÿï08@Redenai.go2cloud.org^ +*ÿï08@Redi-static.fr/Images/Pubs/ +.ÿï08@Rehanex.com/images/main/banner_ +#ÿï08@Reiffelturf.com/img/ +/ÿï08@Relite-auto.fr/api/visuel/essai/ +$ÿï08@Relkhadra.live/inter/ +(ÿï08@Relles-mouillent.com/ban/ +"ÿï08@Rembed.ly^*.amazon. ++ÿï* + korben.info08@R embedly.com^ +Jÿï08@R:emploipartner.com/uploads/media/5fb6411bbfd4d310595939.jpg +,ÿï08@Remploipartner.com^*-partner/ +,ÿï08@Remploipartner.com^*_partner/ +08@R enligne.biz^ +08@R enligne.com^ +(ÿï08@Requirodi.com/images/pub/ +&ÿï08@Rerotik-nrw.com/banner/ +3ÿï08@R#escort-galleries.com/images/banner/ +*ÿï08@Rescortspots.com/static/bn/ +.ÿï08@Ressayassist.com/images/banner/ +08@Retrevisible.com^ +6ÿï08@R&etudiant-podologie.fr/images/banniere_ +0ÿï08@R etwvideo.com^*/getvideos&*&name= +-ÿï* + 176.31.96.11908@R euroclix.fr^ +08@R europeup.com^ +(ÿï08@Revolucare.com/bannieres/ +.ÿï08@Rexceluser.com/images/info/pub/¼ +!ÿï08@Rexchange.pbem.fr^ +€08@R exoner.com^ +#ÿï08@Rextrasurf.fr/promo/ +-ÿï08@Rextremeporn.info/images/misc/ + ÿï08@Rezojs.com/ezoic/ +6ÿï08@R&f00.psgsm.net/p/891014/sigma-forum.gif +08@Rfaireunlien.com^ +$ÿï08@Rfapbase.com/widgets? ++ÿï08@Rfapmd.com/widgets/populars/ +ÿï08@Rfcdn.webme.com^ +-ÿï08@Rfeelingsurf.fr/images/banner_ +0ÿï08@R fetishgirls.com/liveshowbanners/ +/ÿï08@Rfile-upload.com/images/banners/ +/ÿï08@Rfile-upload.org/images/banners/ +7ÿï08@R'files.prsmedia.fr^*/gmex/surfaceprivee/ +.ÿï08@Rfiles.wordpress.com^*/sponsor- +$ÿï08@Rfilestore.me/banner/ +2ÿï08@R"fille-sensuelle.fr/annuaire/promo/ +,ÿï08@Rfilmesonlinegratisahd.com/v/ +%ÿï08@Rfindizer.fr/partners/ +(ÿï08@Rfitnext.com/masculin_box +%ÿï08@Rflux.effiliation.com^ +)ÿï08@Rfornobody.com/auto468.png +*ÿï08@Rforokeys.com/foro/banners/ +:ÿï08@R*forum-orange.com/img/banner-orange-min.gif +$ÿï08@Rfpcplugs.com/do.cgi? +)ÿï08@Rfree.fr/images/bannieres/ +7ÿï08@R'freeflights.net/electronique/bannieres/ +8ÿï* + choualbox.com08@Rfrenchfriendfinder.com^ +ÿï08@R fsx.i-run.fr^ +%ÿï08@Rfuckandcdn.com^*/ads/ +2ÿï08@R"full-wallpaper.com/wallpaperday.js + ÿï08@Rfull.video/*.htm +!ÿï08@Rfull.video/*.php? +!ÿï08@Rfull.video/btn.js +%€08@Rfullqurandownload.com^ +(ÿï08@Rfunradio.fr/partenaires/ +)ÿï08@Rfused.com/images/banners/ +-ÿï08@Rfusion.localpoint.ch/widgets/ +ÿï08@R g*.txxx.com^ +€08@Rg2a.com/r/user- +,ÿï08@Rgagne-facile.com/img/banner- +%ÿï08@Rgainsturf.com/pronos/ +)ÿï08@Rgamestorrents.*/realtime/ +7ÿï08@R'gametap.com/convergence/Header/framed/? +08@Rgamingadult.com^ +,ÿï08@Rgardena-house.fr/affilies.js +1ÿï08@R!geek-nerd-server.firebaseapp.com^ +>ÿï08@R.geekyalgeria.com/wp-content/uploads/*-600x400- +*ÿï08@Rgeneration-nt.com/img/ovh/ +%ÿï08@Rgerardmerinfo.fr/pub/ +4ÿï08@R$get-trust-zone.info/api_ip_info.php? +%ÿï08@Rgifsauce.com/widgets? +'ÿï08@Rgigaflat.com/affiliate/ +€08@R gigaflat.com^ +.ÿï08@Rgizblog.it/wp-content/uploads/ +ÿï08@Rgo.nordvpn.net^ +"ÿï08@Rgo.pancafepro.com^ +(ÿï08@Rgo2cloud.org^*?offer_id= +$ÿï08@Rgodaddy.com/getSeal? +'ÿï08@Rgold-barre.com/banner*. +1ÿï08@R!golden-blog-awards.fr/votePlugin. +'ÿï08@Rgolden-mines.biz/img/b/ +0ÿï* +gum-gum-streaming.com08@Rgoo.gl^¸ +%ÿï08@Rgotporn.com/delivery/ +ÿï08@R gpaf.net/b/ +&ÿï08@Rgpstatic.com^*/banner/ +-ÿï08@Rgrillegagnante.com/bannieres/ +*ÿï08@Rgrosnews.com/grosnews.php? +(ÿï08@Rgroupolitan.fr/partners/ +'ÿï08@Rgsmfastest.com/banners/ +!ÿï08@Rgtix.be/annuaire/ +9ÿï08@R)guide-hebergeur.fr/img/tophebergement.gif +)ÿï08@Rguitar-pro.com/img/links/ +7ÿï08@R'happyescorts.com/images/stories/banner/ +:ÿï08@R*harmonie-energetique.com/commander/images/ +%ÿï08@Rhashflare.eu/banners/ +1ÿï08@R!hawaii-surf.net/upload/bannieres/ +!ÿï08@Rhcore.pl/bannery/ +.ÿï08@Rhdfreaks.cc/wcf/images/banner/ +ÿï08@R hdfree.tv/ad. +>ÿï* +application-remuneratrice.com08@R hellobar.com^ +'ÿï08@Rhellocoton.fr/*/badges/ +ÿï08@Rhentai.fm^*.gif ++ÿï08@Rherocccam.com/herocccam.gif + ÿï08@Rhipub.hiwit.org^ +$ÿï08@Rhit-amateur.com/ban/ +&ÿï08@Rhitleap.com/banner.png ++ÿï08@Rhiwit.org/index.php?idsite= +$ÿï08@Rhln.be/static/*/adv/ +)ÿï08@Rholidaysexguide.com/_ban_ +(ÿï08@Rholidaysexguide.com/ban/ +,ÿï08@Rhop.com/sites/default/files/ +%€08@Rhostinrussia.com/user/ ++ÿï08@Rhotel-lion-or.com/banniere- +$ÿï08@Rhotpix.fr/widget_js. +&ÿï08@Rhowfun.org/welcome.php +/ÿï08@Rhubspot.com/cta/default/168374/ +/ÿï08@Rhubspot.com/cta/default/215217/ +,ÿï08@Rhungryforhits.com/getimg.php +'ÿï08@Rhurenportal.com/banner/ +3ÿï08@R#i.alicdn.com/*/show-window/index.js +Fÿï* +trackitonline.org* +trackitonline.ru08@R i.ebayimg.com +Oÿï08@R?i0.wp.com/galsen221.com/wp-content/uploads/2018/09/1xbanner.png +Pÿï08@R@i0.wp.com/www.frenchweb.fr/wp-content/uploads/2024/10/we_pub.png +'ÿï08@Richwuerde.com/images/b/ +6ÿï* +europeplusnet.info08@Ricpc.tv/banners/ +3ÿï08@R#idcloudhost.com/wp-content/uploads/ + ÿï08@Ridem.com/medias/ +)ÿï* + korben.info08@R +iframe.ly^ +#ÿï08@Riframe.ly^*%2Famzn. +&ÿï08@Rigraal.com/parrainage/ +2ÿï08@R"igstatic.com/igfiles/front/banner/ +-ÿï08@Rigstatic.com/merchant/banner/ +1ÿï08@R!ilbanat.com/images/pubilbanat.gif +%ÿï08@Rilliweb.com^*/banner/ +*ÿï08@Rilliweb.com^*/partenaires/ +.ÿï08@Rimage.filemanager.work/banner/ +08@Rimagefacile.com^ +%08@Rimg.grouponcdn.com/gpn/ +Vÿï08@RFimg.pmdstatic.net/scale/*.2Fa2d63f0c-9037-40f5-9138-1355b1642ffc.2Egif +Vÿï08@RFimg.pmdstatic.net/scale/*.2Fb38a701e-ca38-407a-adba-3fdc460005fc.2Egif +)ÿï08@Rimg.root-top.com/topsite/ +4ÿï08@R$img.webme.com/pic/p/piriketseverler/ +-ÿï08@Rindecentes-voisines.com/bans/ +.ÿï08@Rindecentes-voisines.com/promo/ +,ÿï08@Rindecentes-voisines.com/pub. +,ÿï08@Rinfojobs.com.br/banner.aspx?� ++ÿï08@Rinoutscripts.com/affiliate/ +1ÿï08@R!instantcashflowfunnel.com/images/ +#ÿï08@Rinstantjmm.com/pub/ +#ÿï08@Riptv-eu.com/banner/ +-ÿï08@Riris.ma/themes/maroc/img/pub/ +ÿï08@Risafe.pro/img/ +1ÿï08@R!ithreeweb.com/creationsiteweb.jpg +"ÿï08@Rjardisexe.com/ban/ +.ÿï08@Rjememontre.com/images/banners/ +0ÿï08@R jeniusplay.com/cdn/gif/qqbanner/ +1ÿï08@R!jeu-gratuit.net/images/bannieres/ +#ÿï08@Rjeu-gratuit.net/mg/ +*ÿï08@Rjeu-legal-france.fr/sites/ ++ÿï08@Rjeux-flash.jeu-gratuit.net^ +!ÿï08@Rjeux-web.com/pub/ +1ÿï08@R!jobaproximite.com/external-search +€08@Rjobat.be/ticker/ + €08@Rjobtransport.com^ +"ÿï08@Rjobup.ch/*?server= +Lÿï08@Rÿï08@R.messageries-adp.com/editeurs/medias/*/bandeau/ +2ÿï08@R"metaffiliation.com/emplacement.php +#ÿï08@Rmhcdn.net^*/banner/ +:ÿï08@R*mignonnettes.pagesperso-orange.fr/mignatus +'ÿï08@Rmini-jeux.com/jeuday.js +4ÿï08@R$mism-design.com/static/*/partenaire. +#ÿï08@Rmoevideo.net/getit/ +2ÿï08@R"moncaosurf.com^*/upload/bannieres/ +$ÿï08@Rmondeadulte.com/pub/ +*ÿï08@Rmontjeuturf.net/bannieres/ +8ÿï* +montrealamateur.com08@Rmontrealaise.com^ +)ÿï08@Rmoovijob.com/partenaires/ +#ÿï08@Rmotherless.com/*?i= +4ÿï08@R$mottodistribution.com^*/placeholder/ +#ÿï08@Rmozoo.go2cloud.org^ +,ÿï* + +jeux.com08@Rmsecnd.net^*.gif +.ÿï08@Rmultisurf.fr/upload/bannieres/ +@ÿï08@R0mvchallenges.s3-website-eu-west-1.amazonaws.com^ +!ÿï08@Rmwzip.com/banner. +ÿï08@Rmy.aliexpress. +/ÿï08@Rmy24hourincome.com/img/banners/ +*ÿï08@Rmynewblog.com/tracker.php? +€08@R mynewsnet.ch^ +-ÿï08@Rmynonpublic.com^*/_sponsoren/ +‚08@R mynudez.com^ +,ÿï08@Rmypayingads.com/img/banners/ +2ÿï08@R"mypayingcryptoads.com/img/banners/ +)ÿï08@Rmyposeo.com^*250x250.swf? +$ÿï08@Rmyxpass.com^*&affid= +$ÿï08@Rneotokyo.com/banner/ +7ÿï08@R'netbusinessrating.com^*/img/monitoring_ +)ÿï08@Rnetcomvad.com/shop-promo/ +€08@Rnetdna-ssl.com^ +(ÿï08@Rnetdna-ssl.com^*/banner. +;ÿï* + www.orange.be08@Rnetdna-ssl.com^*_banner. ++ÿï08@Rnetiris.fr/imgs/voslitiges/ +-ÿï08@Rnetmediaeurope.fr/images/btn_ +&ÿï08@Rnetu.tv/*.php?*&title= + ÿï08@Rnetu.tv/152.html ++ÿï08@Rnetu.tv/js/restore_googl.js +4ÿï08@R$netvisiteurs.com/autosurf-promotion/ +@ÿï08@R0newsharecounts.s3-us-west-2.amazonaws.com/nsc.js +(ÿï08@Rnjuko.com/oo/droite.html +3ÿï08@R#nols-o-surf.fr/images/btn-autosurf- +!ÿï08@Rnoogle.fr/banner/ +)ÿï08@Rnorefer.com/anonyme80.png +)ÿï08@Rnospartenaires.com/visuel +!08@Rnoticrypto.website^ + 08@Rnouslibertins.com^ +=ÿï08@R-nouvelobs.s3-website-eu-west-1.amazonaws.com^ +)ÿï08@Rnoviya.free.fr/bannieres/ +-ÿï08@Rnowlifestyle.com/7minbanners/ +!ÿï08@Rntweb.org/stored/ +"ÿï08@Rntweb.org/uploads/ +%ÿï08@Rnuit-torride.com/ban/ +%ÿï08@Rnyu-nyu.com/banieres/ +ÿï08@R o*.txxx.com^‹ +!€08@Roffer.alibaba.com^ + €08@Roffer.aliexpress. +'ÿï08@Rohlescoquins.com/promo/ +'ÿï08@Rokpay.com/img/partners/ +)ÿï08@Ron-veut-du-cul.com/promo/ +ÿï08@Rops.ccmbg.com^ +'€08@Roranum.com^*/lang-popup- +/ÿï08@Rotakufr.net/wp-content/uploads/ +%ÿï08@Rotakumode.com/widget/ +#ÿï08@Rouo.io/images/*-ad. +&ÿï08@Rouo.press/images/*-ad. +)ÿï08@Rouo.press/images/banners/ + ÿï08@Rout.be/partners/ + ÿï08@Rout.pladform.ru^ +%ÿï08@Rout.slutroulette.com^ +$ÿï08@Routils.worldoo.info^ +%ÿï08@Routils2.worldoo.info^ +3ÿï08@R#over-blog.net^*/js/OB.Disclaimer.js +$ÿï08@Roxyka.com/er/od.php? +)ÿï08@Royant.com/images/banners/ +ÿï08@R +p.porn.fr^ +"ÿï08@Rp0rno.com/banners/ +"ÿï08@Rpackbarre.com/pub/ +!€08@Rparaisowebcam.com^ +0ÿï08@R parked-content.godaddy.com/park/ +,ÿï08@Rparlonspiscine.com/img/pubs/ +'ÿï08@Rpartenaires.feerik.com^ +&ÿï08@Rpartner-ts.groupon.fr^ +$ÿï08@Rpartners.cmptch.com^ ++ÿï08@Rpartners.neteventsmedia.be^ + ÿï08@Rpartners.pmu.fr^ +ÿï08@Rparty-*.now.sh^ +€08@R paruvendu.fr^ +(ÿï08@Rpays4ever.com/bcode.php? +08@Rpblv-scoop.com^ +#ÿï08@Rpeimg.fr/bannieres/ +&ÿï08@Rpeimg.fr^*/partenaire- +%ÿï08@Rpetite-garce.com/ban/ +-ÿï08@Rphilatelistes.net/liens/cptr/ +€08@R +piazza.ch^ +#ÿï08@Rpimpland.pl/images/ +$ÿï08@Rpix-cdn.org/banners/ +!08@Rplacelibertine.com^ +%ÿï08@Rplanet49.com^*?click= ++ÿï08@Rplanete-adulte.com/hit.php? ++ÿï08@Rplanete-dangereuse.com/ban/ +(ÿï08@Rplanete-hit.com/hit.php? +2ÿï08@R"planethoster.net/images/bannieres/ +-ÿï08@Rplanethoster.net/img/banners/ +ÿï08@R play1.flashx. +ÿï08@R play2.flashx. +ÿï08@R play3.flashx. +ÿï08@R play4.flashx. +ÿï08@R play5.flashx. +ÿï08@Rplayit1.flashx. +ÿï08@Rplayit4.flashx. +-ÿï08@Rplugboard.fr/plugboard468.gif +(ÿï08@Rpm.gamedistribution.com^ +Zÿï08@RJpmcdn.priceminister.com/rakuten-static-deliver/*/module/pm_monet_offers.js +Uÿï08@REpmcdn.priceminister.com/rakuten-static-deliver/*/module/radsServer.js +'ÿï08@Rpmu.fr/content/*/offre- +3ÿï08@R#pointscommuns.com/images/bannieres/ +€08@R pokercast.eu^ +€08@R pokercast.tv^° +ÿï08@Rpornme.pm/wrb/ +)ÿï08@Rpornoparadies.org/banner/ +$ÿï08@Rpornspirit.com/logo- +&ÿï08@Rporntoxico.com/widgets +'ÿï08@Rpowerpress.fr/services/ +6ÿï08@R&powersante.com^*_products.php?partner= +3ÿï08@R#prebid-dev.reworldmediafactory.com^ +#ÿï08@Rprehraj.to^*/banner +(ÿï08@Rpremiumpress.com/banner/ +,ÿï08@Rprettybigescorts.com/images/ ++ÿï08@Rprodownload.newbetakey.com^ +3ÿï08@R#produits-asiatiques.com/ascreen.jpg +)ÿï08@Rprogonline.com/bannieres/ +#ÿï08@Rpromo.carasexe.com^ +#ÿï08@Rpromo.japanhdv.com^ + ÿï08@Rpromo.meexy.com^ +#ÿï08@Rpromo.payserve.com^ +$ÿï08@Rpromo.teenthais.com^ +€08@Rpromopure.com^ +3ÿï08@R#pronostic-facile.fr/images/bandeau_ +&ÿï08@Rpronoturf.free.fr/pub/ ++ÿï08@Rproxy.ads.canalplus-bo.net^ +"ÿï08@Rproxy.vidazoo.com^ +(ÿï08@Rptp-cash.net/banclickcpm +Aÿï08@R1pub-algeriatenders.s3.eu-central-1.amazonaws.com^ +"ÿï08@Rpub.cuisineaz.com^ +$ÿï08@Rpub.groupe-ldlc.com^ +!ÿï08@Rpub.vacanceo.com^ +*ÿï08@Rpub2.webmanagercenter.com^ + €08@Rpushresponse.net^ + ÿï08@Rqassa.fr/proban/ +!ÿï08@Rqkp2p.com/banner/ ++ÿï08@Rquelconstructeur.com*/tock/ +"€08@Rquickdomainfwd.com^ +.ÿï* + toutvendre.fr08@R r.kelkoo.com^ +1ÿï08@R!rabbitfinder.com/uploads/banners/ +jÿï08@RZradwarebotmanager.com/web/wp-content/themes/shieldsquare/assets/img/shieldsquare-badge.png +)ÿï08@Rraidrush.net/passback.php +(ÿï08@Rraidrush.ws/js/popup.php +.ÿï08@Rraincaptcha.com^*/frame/click? +-ÿï08@Rrapidequiz.com/content/media/ +3ÿï08@R#rapidgator.net/images/fdmanager.png +#ÿï08@Rratehub.ca/widgets/ +5ÿï08@R%readersdigest.ca/*/images/promobrick_ +*ÿï* + korben.info08@R rebrand.ly^ +)ÿï08@Rrecettes.de/images/logos/ ++ÿï08@Rreef-guardian.com/boutique/ +)ÿï08@Rrefgratuit.fr/images/pub/ +*ÿï08@Rregie-agricole.com^*/pubs^ +?ÿï08@R/rencontres-gratuites-ville.com/images/banniere- +"€08@Rrencontreshard.com^ +'ÿï08@Rrendez-vous.be/scripts/ ++ÿï08@Rrestaurants.infcdn.net/img/ +(ÿï08@Rrhcloud.com/*-affiliate- +08@Rroadsexe.com/ban +#ÿï08@Rrollersexe.com/ban/ +3ÿï08@R#roussillhotel.com/roussillhotel.png +.ÿï08@Rroxservers.com/images/banners/ +5ÿï08@R%royalautosurf.com^*/upload/bannieres/ +*ÿï08@Rrue89.com^*/wall89/widget- +6ÿï08@R&ruedeslibraires.com/livre-affiliation/ +=ÿï08@R-rueducommerce.fr/images/locales/*/widget/ban/ +;ÿï08@R+ruisseau-des-blaquieres.com/images/banniere +ÿï08@Rrwabe.com/pub/¸ +ÿï08@R rza.pmu.fr^ +)ÿï08@Rs-sfr.fr/stats/authMsg.js +ÿï08@R +s.beop.io^ +008@R"s.brsimg.com^*/cache/css/compress/ +-ÿï08@Rs3.amazonaws.com/*/affiliate/ +4ÿï08@R$s3.amazonaws.com/dynamic-extensions/ +'ÿï08@Rs3.amazonaws.com^*/ads/ +8ÿï08@R(s3content.s3.amazonaws.com/imgemails/ban +7ÿï08@R's3content.s3.amazonaws.com/imgemails/cf +%ÿï08@Rsafervpn.com^*?a_aid= ++ÿï08@Rsalopes-du-jour.com/sexy.js +"08@Rsalopes-du-jour.com^ +(ÿï08@Rsat-sharing.info/baners/ +*ÿï08@Rsatking.de/images/banners/ +.ÿï08@Rsatsupreme.com/images/banners/ +<ÿï08@R,schule-und-familie.de/assets/images/banners/ +7ÿï08@R'script.hentaicdn.com/cdn/*/core/js/arf- +5ÿï08@R%script.hentaicdn.com/cdn/*/js/script. +/ÿï08@Rsearchtrade.com/images/banners/ +#ÿï08@Rsecretturf.com/img/ +"€08@Rsecuritetotale.com^ +!€08@Rsecuritetotale.fr^ +ÿï08@R sejt.com/pub/ +0ÿï08@R seoclerk.com/images/promotional/ +.ÿï08@Rservice-factures.fr/bannieres/ +$ÿï08@Rsex-is-free.net/pub/ +,ÿï08@Rsexamtelefon.com/backbanner/ +)ÿï08@Rsexcity-girls.com/banner/ ++ÿï08@Rsexdatingtop100.nl/banners/ +%ÿï08@Rsexe-au-bois.com/ban/ +*ÿï08@Rsexe.trouves-tout.com/ban/ ++ÿï08@Rsexeautop.com/images/logos/ +"ÿï08@Rsextapes.fr/promo/ +-ÿï08@Rsexy.1001-recherches.com/ban/ +&ÿï08@Rsexy.yakoila.com/bans/ +&ÿï08@Rsexyadults.eu/banners/ +%ÿï08@Rsexyavenue.com/store/ +!ÿï08@Rsexytout.com/ban/ +$ÿï08@Rsfr.fr/eTagP/hab.jsp +9ÿï08@R)sfstatic.net/build/experiment/promoBlock- +(ÿï08@Rsftcdn.net^*/img/ablock/ +/ÿï08@Rsg-autorepondeur.com/bannieres/ +/ÿï08@Rshareasale.com/sale.cfm?amount= +!ÿï08@Rsherpa.agoda.com^ +ÿï08@Rshop.mango.com^ +ÿï08@Rshop.pe/widget/ +"ÿï08@Rshoperia.pl/embed, +#ÿï08@Rshopoon.fr/catalog/ +'ÿï08@Rshopping.com/publisher/ ++ÿï08@Rsimplyptp.com/images/banner +08@Rsinstaller.com^ +ÿï08@Rskrobs.com/pub/ +2ÿï08@R"sky-animes.com/public/Partenariat/ +(ÿï08@Rskynet.be^*_leaderboard_ +#ÿï08@Rsle.pagesjaunes.fr^ +&ÿï08@Rsliceblog.com/img/pub/ +,ÿï08@Rsmartdnsproxy.com/affiliate/ +)ÿï08@Rsocial.yoox.it/view.aspx? +&ÿï08@Rsocialporn.com/banner/ +"ÿï08@Rsocialporn.com/cx/ +(ÿï08@Rsofascore.com/affiliate/ +)ÿï08@Rsoonnight.com/images/pub/ +3ÿï08@R#sophielibertine.com/images/Banniere +1ÿï08@R!space-blogs.com/*/images/banners/¥ +/ÿï08@Rspilcloud.com/gameapi/*_banner_ +3ÿï08@R#sponsorboost.com/banniere-rotative. +7ÿï08@R'sponsoweb.com/htdocs/templates/banners/ +&ÿï08@Rssa.direct-running.fr^ +Wÿï* + fdesouche.com* + wikimonde.com* + tempr.email08@Rssl-images-amazon.com^ +7ÿï08@R'state-of-the-art-mailer.com/rfredir.php +'€08@Rstatic.*.netdna-cdn.com^ +/ÿï08@Rstatic.ccmbg.com/ops.ccmbg.com/ +.ÿï08@Rstatic.hugedomains.com/images/ +'ÿï08@Rstatic.k2s.cc/images/i/ +.ÿï08@Rstatic.keep2share.cc/images/i/ +!ÿï08@Rstatic.mntzm.com^ +2ÿï08@R"static.moneyplatform.biz/images/i/ +%ÿï08@Rstatic.ox.pl/banners/ +)08@Rstatic.s-sfr.fr/media/mire_ +3ÿï08@R#static.shoptimate.com/js/partner.js +!08@Rstatic.twincdn.com^ +-ÿï08@Rstatic.vadorcdn.com^*/banner/ +"€08@Rstatic.wii-info.fr^ +,ÿï08@Rstatic.wui.fr/widget-uptogo/ +508@R'static2.dmcdn.net/mc/skin_assets/*/body +#ÿï08@Rstatstools.porn.fr^ +)ÿï08@Rstorefollow.com/?support= +8ÿï08@R(stream365.live/assets/js/custombanner.js +/ÿï08@Rstreamcomplet.*/dyn-settings.js +,ÿï08@Rstreaming-hentai.org/images/ +7ÿï08@R'sublinet.com/www/public/images/*/72890_ +%ÿï08@Rsubmanga.com/s/nnj.js +‚08@Rsuper-plans.com^ +/ÿï08@Rsurf7.net/files/images/banners/ +#ÿï08@Rsurfeurdor.free.fr^ +(ÿï08@Rtac2.xcams.com/livecams/ +!ÿï08@Rtagbox.fr/banner/ +%ÿï08@Rtea-cerede.com/devis/ +)ÿï08@Rteambuildclub.com/images/ +Fÿï08@R6techbeat.com/wp-content/custom-php/tbrecentposts3.php? +Fÿï08@R6technologiesaintjoseph.com/addon/script/*?integration= +(ÿï08@Rteenlolly.com^*/banners/ +‚08@Rteenskitten.com^ +'ÿï08@Rtehitz.com/img/banners/ +#ÿï08@Rteliad.fr^*/banner/ +"ÿï08@Rterasexe.com/pubs/ +(ÿï08@Rtestcddc.atclouddev.net^ ++ÿï08@Rtheadsteam.com/img/banners/ + €08@Rtheliverugby.com^ +1ÿï08@R!themasoftware.com/images/banners/ +1ÿï08@R!thetrafficincome.com/img/banners/ +.ÿï08@Rtools.indecentes-voisines.com^ +%ÿï08@Rtools.prnewswire.com^ +%ÿï08@Rtools.sexedenfer.com^ +!ÿï08@Rtools.vpscash.nl^ +1ÿï08@R!toolspro.indecentes-voisines.com^ +€08@R toomai.fr/lp/ +€08@Rtoomai.fr/olp/ +/ÿï08@Rtooplay.com/midroll?session_id= +/ÿï08@Rtooplay.com/preroll?session_id= +"ÿï08@Rtop-pmu.com/logo2/ +)ÿï08@Rtopadultlinks.nl/banners/ +*ÿï08@Rtopescortsites.nl/banners/ +08@R topfion.com^ +.ÿï08@Rtopremuneration.com/banner.gif +08@R topsites.re^ +&ÿï08@Rtorah-box.com/upl/ban/ +%ÿï08@Rtounet.com/button.php— +2ÿï08@R"tounet.com/campagnes/files/banner_ +Kÿï* +europeplusnet.info08@R%toutsurlesabdos.com/images/bannieres_ +#ÿï08@Rtrack.mdsmatch.com^ +%ÿï08@Rtrackuity.*/*/ticker/ +8ÿï08@R(travelagency.travel/img/Partners/*/logo- +2ÿï08@R"trend-corner.com/images/bannieres/ +&ÿï08@Rtripadvisor.*/partner/ + €08@Rtripleclicks.com^ + ÿï08@Rtrivago.fr^/srv/ + ÿï08@Rtrouart.fr/labo/ +)‚08@Rtruesteamachievements.com^ +-ÿï* + planet.fr08@Rtry.abtasty.com^ +€08@R +tudou.com^ ++ÿï08@Rturfweb.siteneti.net/image/ +3ÿï08@R#turk-dreamworld.com/images/sponsor/ + ÿï08@Rtuto.com/banner/ +"ÿï08@Rtutti.ch/*_banner_ +Bÿï08@R2tvnt.net/forum/styles/tvnt/theme/images/2galli.png +?ÿï08@R/tvnt.net/sites/default/files/bandeau_2galli.jpg +&ÿï08@Rtvsat-sklep.com/baner/ +€08@Rtweetycoin.com^ +$ÿï08@Rtwenga.fr/publisher/ +&ÿï08@Rtxxx.com/api/senddata? +(ÿï08@Rucoz.net/cgi/uutils.fcg? +ÿï08@Rucweb.com^*/ad/ +,ÿï08@Rugcbrainient-a.akamaihd.net^ +-ÿï08@Runcadeau.com/partner_widgets/ +.ÿï08@Runifinance.net/images/banners/ +.ÿï08@Runiregistry.com/return_js.php? +&ÿï08@Rup-banner.wavecdn.net^ +9ÿï08@R)upload.amatrys.com/images/bannieresh2.jpg +4ÿï08@R$upload.amatrys.com/images/cougar.jpg +2ÿï08@R"upload.amatrys.com/images/jetm.jpg +8ÿï08@R(upload.amatrys.com/images/rencontres.gif +2ÿï08@R"upload.amatrys.com/images/sexhotel +9ÿï08@R)upload.amatrys.com/images/wyn_amatrys.jpg +€08@R uptojizz.com^ +"ÿï08@Rurafur.clubeo.com^ +2ÿï08@R"users.skynet.be/freewaooh2/ban.png +)ÿï08@Rvachvoi.cc/picture/files/ ++ÿï08@Rvanwa.tech/assets/js/app.js +&ÿï08@Rvaraineturf.com/logos/ +/ÿï08@Rvegemiam.fr/wp-content/uploads/ +%€08@Rvendezvotrevoiture.fr^ +3ÿï08@R#vernimmen.net/images/flash/300x300_ +&ÿï08@Rvidazoo.com/aggregate? +-ÿï* + aufeminin.com08@R vidcoin.com^ +/ÿï08@Rvide.maison/wp-content/uploads/ +#ÿï08@Rvideochart.net/mnc/ +%ÿï08@Rvideochart.net/vedro/ +8ÿï08@R(videoplaza*/aab/pulse-custom-svm-plugin. +1ÿï08@R!videos-pornographiques.com/promo/ +:ÿï* + positivr.fr08@Rviously.com/amp/szuG21KBA-F +*ÿï08@Rvip-tv.org.ua/logos/banner +$ÿï08@Rviteundevis.com/ads/ +"ÿï08@Rviwii.net/banners/ +%ÿï08@Rvoetbalkrant.com/pub/ +"€08@Rvoirseries.*/media/ +'ÿï08@Rvotrepromo.com/max*.gif +%ÿï08@Rvotrepromo.com/promo/ +)ÿï08@Rvoyage-langue.com/widget/ +€08@R vpn.express^ +ÿï08@R vpn1.flashx. +ÿï08@Rvultr.com/?ref=¼ +8ÿï08@R(vuplus-community.net/board/logos/vuplus_ +Vÿï08@RFvuplus-community.net/board/styles/BP-Black/xenforo/joiningbits5_vu.png +/ÿï08@Rvuplus-images.co.uk/mail/banner +:ÿï08@R*vuplus-support.org/custom_files/banner.gif + ÿï08@Rvws.vidcoin.com^ +€08@R vyper.io^ ++ÿï* + filehippo.com08@R +vzaar.com^ +$ÿï08@Rw3sexe.com/logo.php? +,ÿï08@Rwac.*.deltacdn.net^*/ta-cdn/ +$ÿï08@Rwac.a164.taucdn.net^ +0ÿï08@R wallmanga.com/img/anim_banniere_ +#ÿï08@Rwcdn.co.il/banners/ +'ÿï08@Rweb-autosurf.com/promo/ +.ÿï08@Rwebcilon.tripod.com/bannieres/ +"€08@Rwebdesignerhut.com^ +.ÿï08@Rwebjardiner.com/image/banniere +5ÿï08@R%webjardiner.com/image/webjardiner.gif +?ÿï08@R/webself.net/WebselfEditeur/FormulaireDemo.aspx? +,ÿï08@Rwebstar-auto.com/iframe.php? +/ÿï08@Rweedoit.fr/tracking/partenaire/ +5ÿï08@R%whatismyipaddress.cyou/assets/images/ +!ÿï08@Rwhentai.com^*.gif + ÿï08@Rwhoer.net^*/vpn- +(ÿï08@Rwidget.guide-epargne.be^ +,ÿï08@Rwidgets.meilleursagents.com^ +*ÿï08@Rwidgets.stackcommerce.com^ +&ÿï08@Rwindows.net/autopromo/ +€08@R worldssl.net^ +$ÿï08@Rwp.com/*.alicdn.com/ +>ÿï08@R.wp.com/*/wp-content/uploads/*?resize=160%2C600 +=ÿï08@R-wp.com/*/wp-content/uploads/*?resize=468%2C60 +=ÿï08@R-wp.com/*/wp-content/uploads/*?resize=728%2C90 +=ÿï08@R-wp.com/bluehost-cdn.com/media/partner/images/ +,ÿï08@Rwp.com/csstatic.com/banners/ +Dÿï08@R4wp.com/mediaguinee.org/wp-content/uploads/*-800x120- +Jÿï08@R:wp.com/mediaguinee.org/wp-content/uploads/*/banni%c3%a8re- +Eÿï08@R5wp.com/mediaguinee.org/wp-content/uploads/*/banniere- +Gÿï08@R7wp.com/medialot.fr/wp-content/uploads/*?resize=300%2C38 +;ÿï* + affilae.com08@Rwp.com/static.affilae.com/ +.ÿï08@Rwp.com/static.k2s.cc/images/i/ +5ÿï08@R%wp.com/static.keep2share.cc/images/i/ +!ÿï08@Rwp.com^*-300x250. +%ÿï08@Rwp.com^*.imglnka.com/ +$ÿï08@Rwp.com^*.misslk.com/ +!ÿï08@Rwrapper.lemde.fr^ +ÿï08@R ww2.flashx. +ÿï08@R ww9.flashx. +€08@Rx19network.com^ +"ÿï08@Rxavbox360.com/ban/ +.ÿï08@Rxavboxnews.com/files/*-468.jpg +%ÿï08@Rxxxtop100.nl/banners/ +€08@R yaagle.com^ +#ÿï08@Ryellowapi.com/twn/? +1ÿï08@R!yimg.com/hl/ap/default/*/HP_*.jpg + ÿï08@Ryospace.com/csm/ +08@R youpinet.com^ +Yÿï* +eldjoumhouria.dz* +mon-compte.org* + +hitek.fr08@Ryoutube.com^*autoplay=1 +*ÿï08@Rypncdn.com/static/partner/ +.ÿï08@Ryubee.free.fr/admin/bannieres/ +)ÿï08@Rz-o-o-m.eu/banner_images/ +%ÿï08@Rz51.biz/IBinnewz.aspx +-ÿï08@Rzdnet.com/mds/recommendation/ +(ÿï08@Rzinc7.cc/images/banners/ +#ÿï08@Rzlpaste.net/banner/©) ++ÿï08@Rzone-hot.com/thumblink.php? +&ÿï08@Rzone.*.netdna-cdn.com^ +@ÿï* +lejournaldelamaison.fr08@Rplatform.edisound.com^ +Bÿï* +lejournaldelamaison.fr08@Rpublishers.edisound.com^ +‹ÿï* +chartsinfrance.net* +villaschweppes.com* +get-the-look.fr* +terrafemina.com* +easyvoyage.com* +lebonguide.com* +musiquemag.com* +purepeople.com* + jeuxvideo.com* + plurielles.fr* + purebreak.com* + puretrend.com* + alibabuy.com* + jeuxactu.com* + allocine.fr* + cap-cine.fr* + cotecine.fr* + easyvols.fr* + lestream.fr* + +shopoon.fr* + +750g.com* + +ozap.com08@R /acceptable. +ýï08@R /acceptable. +‰ÿï* +chartsinfrance.net* +villaschweppes.com* +get-the-look.fr* +terrafemina.com* +easyvoyage.com* +lebonguide.com* +musiquemag.com* +purepeople.com* + plurielles.fr* + purebreak.com* + puretrend.com* + alibabuy.com* + jeuxactu.com* + millenium.gg* + allocine.fr* + cap-cine.fr* + cotecine.fr* + easyvols.fr* + lestream.fr* + +shopoon.fr* + +750g.com* + +ozap.com08@R /autopromo. +,ýï* + jeuxvideo.com08@R /autopromo. +ýÿï* +chartsinfrance.net* +villaschweppes.com* +get-the-look.fr* +terrafemina.com* +lebonguide.com* +musiquemag.com* +purepeople.com* + jeuxvideo.com* + plurielles.fr* + purebreak.com* + puretrend.com* + alibabuy.com* + jeuxactu.com* + millenium.gg* + allocine.fr* + cap-cine.fr* + cotecine.fr* + lestream.fr* + +shopoon.fr* + +750g.com* + +ozap.com08@R/autopromotion. +�ÿï* +amateurfrancais.com* +twistedporn.com* + sexefelin.com* + vidsexe.com* + webchoc.com* + +tubixe.com* + tootx.com08@R /license. +Œÿï* +amateurfrancais.com* +twistedporn.com* + sexefelin.com* + vidsexe.com* + webchoc.com* + +tubixe.com* + tootx.com08@R/script. +�ÿï* +amateurfrancais.com* +twistedporn.com* + sexefelin.com* + vidsexe.com* + webchoc.com* + +tubixe.com* + tootx.com08@R /scriptpop. +Šÿï* +amateurfrancais.com* +twistedporn.com* + sexefelin.com* + vidsexe.com* + webchoc.com* + +tubixe.com* + tootx.com08@R/test. +)ÿï08@Rinternal.terrafemina.com^ +%ÿï08@Rvideos.filmstarts.de^ +ÿï08@Rwads.ozap.com^ +#ÿï08@Rwads.plurielles.fr^ +!ÿï08@Rwbdds.fr.ign.com^ +08@R adyou.me^ +08@Rally.sh^ +08@R +binbox.io^ +08@R +bitly.com^ +‚08@Rclicksfly.com^ +08@Rclk.im^ +08@R coinlink.us^ +08@R cpmlink.net^ +08@R cut-urls.com^ +08@Rhypershort.com^ +08@Rlink.tl^ +08@R +ouo.press^ +08@R pubiza.com^ +08@Rsafelinku.com^ +08@R shink.me^ +08@R +shorte.st^ +‚08@R shortem.com^ +08@R tmearn.com^ +08@R tmearn.net^ +08@R yourlink.in^ +Uÿï08@RE1.bp.blogspot.com/-AEd6bgkmnCw/*/s1600/recrutement-freemobilesurf.jpg +�ÿï08@Rq1.bp.blogspot.com/-C7hQTHR_qPg/VhZ7pPnkQzI/AAAAAAAAEMc/XUQISlAANAE/s1600/DailyInstaller-Download-button-green.png +�ÿï08@R}1.bp.blogspot.com/-F1hVz0Ov_54/X7PxUM5Ua_I/AAAAAAAAH3E/_jcDu8y2mJUg0XeHRPNG1YIZoZliPi3fACLcBGAsYHQ/s300/poonam-pandey-hot.jpg +eÿï08@RU1.bp.blogspot.com/-FKjeYZg1nL4/U3EoY_fGRbI/AAAAAAAAOto/iVqJfIfrBWY/s1600/certfied.png +‚ÿï08@Rr1.bp.blogspot.com/-MnHDlGoBsZQ/XnXhT1uShFI/AAAAAAAAkGE/z9-JW_P29BQDJ9g29BiPKG6APSg3jza8gCLcBGAsYHQ/s1600/Eobot.jpg +…ÿï08@Ru1.bp.blogspot.com/-mxejTG9nhY8/XRHnEJraxmI/AAAAAAAAFBc/v9PuOnp9bKkFnG62A1b-tBQA6CwEAILVACLcBGAs/s1600/p2p-320x250.png +ÿï08@Ro2.bp.blogspot.com/-8PboBKVWk6k/XJZXzdFqZ3I/AAAAAAAAZco/KJXcycqYSoUN-6WmRG5fvjRHzClWE_QMACLcBGAs/s1600/video.jpg +ƒÿï08@Rs2.bp.blogspot.com/-9pkVLFyu5bw/W_n1R5ZXJYI/AAAAAAAAA5A/IQVV2P_BESwsbmjl2q1E9dr721zU_232wCLcBGAs/s1600/jack-icon.png +�ÿï08@R2.bp.blogspot.com/-hodxHpjBV8o/W_0kaaD7ZqI/AAAAAAAAAAs/FFaQa21ncEcNrb2waeuF0YY2UNt2LYRBACLcBGAs/s1600/banner3%2B%25281%2529.gif +5ÿï08@R%3.bp.blogspot.com/*/s1600/eL97xwC.gif +ÿï08@Ro3.bp.blogspot.com/-eYuWXDLoV8A/WsObkCStYBI/AAAAAAAAADk/qm86gsPX7nkqa43h4Wt7lAl7XSM31ZV3QCK4BGAYYCw/s1600/ee.png +˜ÿï08@R‡3.bp.blogspot.com/-P7sUEc_aSdI/WcrCDpSQvtI/AAAAAAAAAsU/cBzQxXtF9nkJGPoVwESQHHJvsQMmzAgKgCK4BGAYYCw/s400/158__21_Aqua_Animated_sn_FR.gif +�ÿï08@Rq4.bp.blogspot.com/-svqLifkr5VY/XAZcFiDby2I/AAAAAAAAABE/v5TkrGfxjXADtr5APgU5tIp89rVF7gICQCLcBGAs/s1600/banner2.gif +€ÿï08@Rp4.bp.blogspot.com/-vSuc1DnHveI/Xp43aFC0kDI/AAAAAAAABX4/XTwKnmAZGiYGTJlPBInsrT2AE24uf3m5ACLcBGAsYHQ/s1600/022.png +�ÿï08@R4.bp.blogspot.com/-wxeu_w7hr9A/XwSZKHTlotI/AAAAAAAAa6c/FCGdl7QKRjYZhkDXwQ1PFEzwpAcasIcZQCK4BGAYYCw/s1600/Creative3-300X250.webp +tÿï08@Rd4.bp.blogspot.com/-zS_NWfqyeRU/VCIaYAeLNmI/AAAAAAAAIKo/j5a5ts9aTik/s716/qcm%2Bconcours%2Bgratuit.png +-ÿï08@Rc.top4top.io/p_1080kx0tz1.jpg +Cÿï08@R3cjoint.com/doc/17_12/GLdotPvIfBO_index-annuaire.gif +8ÿï08@R(cjoint.com/doc/19_03/ICtp7oZTVeO_top.png +-ÿï08@Rh.top4top.io/p_24851d31n1.png +-ÿï08@Rhostingpics.net/pics/*468x60. +-ÿï08@Rhostingpics.net/pics/*ban.png +-ÿï* + fdesouche.com08@R hostpic.org^ +'ÿï08@Ri.goopics.net/vRo4o.jpg +,ÿï08@Ri.ibb.co/5v8KJgY/nordvpn.jpg +7ÿï08@R'i.ibb.co/6w36P4p/Express-VPNReview3.jpgû +*ÿï08@Ri.ibb.co/7zDNfJG/large.jpg ++ÿï08@Ri.ibb.co/DYqcFzy/medium.jpg +'ÿï08@Ri.ibb.co/KqP9wqf/46.png +*ÿï08@Ri.ibb.co/n0G5wHJ/small.jpg +;ÿï08@R+i.ibb.co/Vj7Pgys/Express-VPN-Review-png.gif +(ÿï08@Ri.ibb.co/Wg619PT/728.png +7ÿï08@R'i.ibb.co/WprZZcR/Express-VPNReview2.jpg +3ÿï08@R#i.ibb.co/yld650c/4381-ccbe52-aa.gif +'ÿï08@Ri.imgur.com/0mKekma.jpg +'ÿï08@Ri.imgur.com/0UpfQtJ.png +'ÿï08@Ri.imgur.com/2758lJa.png +'ÿï08@Ri.imgur.com/2Azjukl.png +'ÿï08@Ri.imgur.com/2hGm0lj.gif +'ÿï08@Ri.imgur.com/32xkKog.jpg +'ÿï08@Ri.imgur.com/3RxyL0Z.png +'ÿï08@Ri.imgur.com/4cUwoPk.gif +'ÿï08@Ri.imgur.com/4eP4DRG.jpg +'ÿï08@Ri.imgur.com/4FFURwf.png +'ÿï08@Ri.imgur.com/55mWBYv.mp4 +'ÿï08@Ri.imgur.com/5tS8GcN.png +'ÿï08@Ri.imgur.com/6mjTN5Y.gif +'ÿï08@Ri.imgur.com/6pBbPcM.png +'ÿï08@Ri.imgur.com/7hsNsFq.png +'ÿï08@Ri.imgur.com/9CYbhdV.png +'ÿï08@Ri.imgur.com/A4Kwg6k.png +'ÿï08@Ri.imgur.com/aQZFKkV.gif +'ÿï08@Ri.imgur.com/B6HYXCJ.png +'ÿï08@Ri.imgur.com/bbY9BQl.png +'ÿï08@Ri.imgur.com/BZVxEYl.png +'ÿï08@Ri.imgur.com/c6kYqbt.gif +'ÿï08@Ri.imgur.com/DeNQC6g.gif +'ÿï08@Ri.imgur.com/e6FJxIZ.png +'ÿï08@Ri.imgur.com/eXPCkwg.gif +'ÿï08@Ri.imgur.com/FinBqT8.jpg +'ÿï08@Ri.imgur.com/fUQmcN6.jpg +'ÿï08@Ri.imgur.com/GFNBdwT.png +'ÿï08@Ri.imgur.com/gmlIIYw.jpg +'ÿï08@Ri.imgur.com/GuWFUeO.gif +'ÿï08@Ri.imgur.com/GxZrWIx.mp4 +'ÿï08@Ri.imgur.com/gYmYWAn.png +'ÿï08@Ri.imgur.com/GzdIq2a.png +'ÿï08@Ri.imgur.com/hlQy8be.png +'ÿï08@Ri.imgur.com/IgVXBhx.png +'ÿï08@Ri.imgur.com/IIVYIrx.gif +'ÿï08@Ri.imgur.com/k04a2xK.png +'ÿï08@Ri.imgur.com/kAuRDjI.png +'ÿï08@Ri.imgur.com/kiJ9Xmc.png +'ÿï08@Ri.imgur.com/Le2fob0.png +'ÿï08@Ri.imgur.com/LjJzcZk.png +'ÿï08@Ri.imgur.com/MBfizp9.jpg +'ÿï08@Ri.imgur.com/nUEuHxd.png +'ÿï08@Ri.imgur.com/NzCgETU.png +'ÿï08@Ri.imgur.com/o7VgXT5.png +'ÿï08@Ri.imgur.com/pCcLL3S.png +'ÿï08@Ri.imgur.com/PRdyOv3.gif +'ÿï08@Ri.imgur.com/Q4Siivk.png +'ÿï08@Ri.imgur.com/qC2Tc51.png +'ÿï08@Ri.imgur.com/qnMnMxB.jpg +'ÿï08@Ri.imgur.com/QUr0jZA.gif +'ÿï08@Ri.imgur.com/SbXtwoQ.png +'ÿï08@Ri.imgur.com/sfBhycz.jpg +'ÿï08@Ri.imgur.com/SIdBuCi.png +'ÿï08@Ri.imgur.com/SmRC1lO.png +'ÿï08@Ri.imgur.com/T1HRFty.png÷# +'ÿï08@Ri.imgur.com/TjpOUk0.jpg +'ÿï08@Ri.imgur.com/tVd7BJY.gif +'ÿï08@Ri.imgur.com/Tw7RzL8.jpg +'ÿï08@Ri.imgur.com/u6iyMx4.png +'ÿï08@Ri.imgur.com/uWxp0xU.jpg +(ÿï08@Ri.imgur.com/vi5hfSvl.jpg +'ÿï08@Ri.imgur.com/wCHgmpy.gif +'ÿï08@Ri.imgur.com/WI1faon.png +'ÿï08@Ri.imgur.com/wOzHfhU.gif +'ÿï08@Ri.imgur.com/XaUOc8f.png +'ÿï08@Ri.imgur.com/yHKDYZT.mp4 +'ÿï08@Ri.imgur.com/YJfDBUt.png +'ÿï08@Ri.imgur.com/Yqo2mgc.jpg +'ÿï08@Ri.imgur.com/ZqIRV0I.gif +3ÿï* +nintendo-master.com08@R i.imgur.com^ +/ÿï08@Ri.postimg.cc/cLGhjvQr/large.jpg +1ÿï08@R!i.postimg.cc/fLDyKMYR/extreme.png +<ÿï08@R,i.servimg.com/u/f21/20/05/48/26/300x2510.jpg +<ÿï08@R,i.servimg.com/u/f21/20/05/48/26/animie10.gif +<ÿï08@R,i.servimg.com/u/f21/20/05/48/26/esra_210.jpg +<ÿï08@R,i.servimg.com/u/f21/20/05/48/26/verney10.gif +<ÿï08@R,i.servimg.com/u/f89/11/34/60/66/forums13.png +Tÿï08@RDi57.fastpic.ru/big/2013/1106/b1/aac81e450ff9dbf392f0e8d98ef8eab1.jpg +>ÿï08@R.i57.servimg.com/u/f57/16/34/19/42/zeturf10.png +>ÿï08@R.i83.servimg.com/u/f83/09/00/46/81/alg_ba10.jpg +Bÿï08@R2image.prntscr.com/image/-Y15yLq6QJOZjhiNH9kr-A.gif +Lÿï08@Rÿï08@R.algerie-eco.com/wp-content/uploads/*-banniere- +;ÿï08@R+algerie-eco.com/wp-content/uploads/*/*-728. +=ÿï08@R-algerie-eco.com/wp-content/uploads/*/alg-eco- +=ÿï08@R-algerie-eco.com/wp-content/uploads/*/alg-eco. +>ÿï08@R.algerie-eco.com/wp-content/uploads/*/alliance. +Bÿï08@R2algerie-eco.com/wp-content/uploads/*/kia-sportage. +?ÿï08@R/algerie-eco.com/wp-content/uploads/2018/02/mdi- +4€08@R%algerie-focus.com/wp-content/uploads/ +Nÿï08@R>algerie-focus.com/wp-content/uploads/2017/05/Sans-titre-12.jpg ++ÿï08@Ralgerie-focus.com^*/banner- +.ÿï08@Ralgerie-site.net/block_slider. +%ÿï08@Ralgerie-site.net/pub/ +(ÿï08@Ralgerie1.com/assets/pub/ +&ÿï08@Ralgerie360.com/pub360/ +=ÿï08@R-algerie360.com/wp-content/uploads/*/1090x250- +<ÿï08@R,algerie360.com/wp-content/uploads/*/Banniere +9ÿï08@R)algerie360.com/wp-content/uploads/*/fond-€ +>ÿï08@R.algerie360.com/wp-content/uploads/*/habillage- +Kÿï08@R;algerie360.com/wp-content/uploads/2017/05/Algeria-360-*.jpg +/ÿï08@Ralgerieclic.com/images/bandeau/ +:ÿï08@R*algerieclic.com/images/baniere_principale/ +/ÿï08@Ralgerieclic.com/images/lateral/ +Hÿï08@R8algeriepatriotique.com/wp-content/uploads/*-partenaires. +Hÿï08@R8algeriepatriotique.com/wp-content/uploads/*-patriotique- +Cÿï08@R3algeriepatriotique.com/wp-content/uploads/*/banner- +Eÿï08@R5algeriepatriotique.com/wp-content/uploads/*/banniere- +Rÿï08@RBalgeriepatriotique.com/wp-content/uploads/2018/03/lotopluslaki.png +Nÿï08@R>algeriepatriotique.com/wp-content/uploads/2018/04/Hadra-fr.jpg +'ÿï08@Ralgerlablanche.com/pub/ +.ÿï08@Raliasdmc.fr/js/dmc_banniere.js +'ÿï08@Raliasdmc.fr/publicsyst/ +.ÿï08@Raliceadsl.fr/modules/shopping. +/ÿï08@Ralimentation-france.com/*/pubs/ +,ÿï08@Ralldebrid.fr/lib/images/pub_ +'ÿï08@Rallmetsat.com/data/pub/ +Gÿï08@R7alloforfait.fr/wp-content/themes/alloforfait15/v/m-red- +&ÿï08@Ralloref.com/images/cdp +2ÿï08@R"alloref.com/images/maxdetrafic.gif +&ÿï08@Ralsacreations.com/pub/ +.ÿï08@Ralsacreations.com/xmedia/pubs/ +?ÿï08@R/alternatives-economiques.fr/pics_bdd/habillage/ +9ÿï08@R)alternatives-economiques.fr/pics_bdd/pub/ ++ÿï08@Ralterpresse.org^*/l560xh70/ ++ÿï08@Ralterpresse.org^*/l720xh90/ +*ÿï08@Ralvinet.com/images/pub.gif +(ÿï08@Ramateur2sexe.fr/droibam/ +'ÿï08@Ramateur2sexe.fr/droite/ +(ÿï08@Ramateur2sexe.fr/fooboom/ +(ÿï08@Ramateur2sexe.fr/footers/ +'ÿï08@Ramateur2sexe.fr/haubim/ +%ÿï08@Ramateur2sexe.fr/haut/ +&08@Ramateur2sexe.fr/include/ +,ÿï08@Ramateur2sexe.fr/static/haut/ +&ÿï08@Ramateur2sexe.fr^*/pub- +1ÿï08@R!amateurdesexe.com^*/zone_hard.gif +#ÿï08@Ramazon.wii-info.fr^ +/ÿï08@Randlil.com/prorealtime-trading- +Fÿï08@R6android-mt.com/wp-content/uploads/2018/11/bouygues.jpg +-ÿï08@Ranimefight.com^*/partenaires/ +/ÿï08@Ranimeka.com/_img/cache/partner/ +'ÿï08@Rannonce.lequipement.fr^ +=ÿï08@R-annonces-automobile.com/images/data/banniere/ +:ÿï08@R*annonces-automobile.com/images/partenaire/ +*ÿï08@Rannonces-dz.com/bellat.png +%ÿï08@Rannonces-nc.com/PUBS/ +$ÿï08@Rannonces.ci/widgets/ +!ÿï08@Rannonces.nc/pubs/ +%ÿï08@Rannonces.nc/wam_pubs_ +*ÿï08@Rannonciaweb.com/ZZ-intr-*. +Cÿï08@R3annu-liens.com/templates/arfooo/images/agencecc.jpg +:ÿï08@R*annuaire-horaire.fr/public/swf/paysage.swf +4ÿï08@R$annuaire-inverse-france.com/s/i/*/ad +7ÿï08@R'annuaire-inverse-france.com/s/i/encart_ +4ÿï08@R$api.annonces.nc/posts/random-boosted +!ÿï08@Rapipub.oumma.com^ +.ÿï08@Raps.dz/images/banners/clients/ ++ÿï08@Rarabwebtv.com/arabwebtv.gif +Bÿï08@R2archaic.fr/wp-content/uploads/link-library-images/ +Dÿï08@R4archimag.com/sites/archimag.com/files/*-ban-900x150_ +;ÿï08@R+archimag.com/sites/archimag.com/files/adds/ +0ÿï08@R argentmania.com/contentzonename/¾ +&ÿï08@Rariase.com/css/themes/ +'ÿï08@Rariase.com^*/media/pub/ +(ÿï08@Rasse.fr^*/bandeau_ok.swf +6ÿï08@R&asse.fr^*/banniere_mcc_billetterie.gif +<ÿï08@R,assets.allocine.fr/js/website/webedia-money. +!ÿï08@Rasso-web.com/pub/ +Nÿï08@R>astuces-grand-mere.fr/wp-content/uploads/2015/12/cdiscount.gif +2ÿï08@R"astuces-pratiques.fr/users/leplanb +;ÿï08@R+astuto.fr/wp-content/uploads/2023/04/bs.png ++ÿï08@Rathle.org/upload/marketing/ +! 08@Ratlantico.fr/*-img/ +'ÿï08@Rats.dz/img/partenaires/ +#ÿï08@Rats.dz/slider2.html +&ÿï08@Raufeminin.com/include/ + 08@Raufeminin.com^*% +2ÿï08@R"aujardin.info/img/pub/franceabris/ +$ÿï08@Raurelienr.com/liens/ +Tÿï08@RDauto-moto.com/wp-content/uploads/sites/9/2014/12/boutonParuVendu.jpg +Tÿï08@RDauto-moto.com/wp-content/uploads/sites/9/2015/07/Bouton-Automoto.jpg +2ÿï08@R"auto-utilitaire.com/files/banners/ +/ÿï08@Rautodeclics.com/images/partner/ +5ÿï08@R%autodeclics.com/inc/iframe/300x90.php +Cÿï08@R3autojournal.fr/wp-content/plugins/voiture-occasion/ +Qÿï08@RAautojournal.fr/wp-content/uploads/autojournal/2022/04/300x160.jpg +$ÿï08@Rautomobiles.nc/pubs/ +(ÿï08@Rautomobiles.nc/wam_pubs_ +@ÿï08@R0autoplus.fr/wp-content/plugins/voiture-occasion/ +9ÿï08@R)autoreflex.com^*/logo_map_partenaires.png +&ÿï08@Rautosurf.fr/campagnes/ + ÿï08@Rautosurf.me/pub- +$ÿï08@Rautotracer.org/cnc/? +6ÿï08@R&aviss.fr/wp-content/uploads/*/pubH.jpg +:08@R,ballad-et-vous.fr/wp-content/uploads/*-carr% +;08@R-ballad-et-vous.fr/wp-content/uploads/*-carre% +;ÿï08@R+ballad-et-vous.fr/wp-content/uploads/*-pub. +lÿï08@R\ballad-et-vous.fr/wp-content/uploads/*/avogadro-argis-isolation-thermique-ballad-et-vous.jpg +=08@R/ballad-et-vous.fr/wp-content/uploads/*/bandeau- +Mÿï08@R=ballad-et-vous.fr/wp-content/uploads/*/berger-jardin-octobre- +;ÿï08@R+ballad-et-vous.fr/wp-content/uploads/*/pub- +0ÿï08@R banquepopulaire.fr^*/habillages/ ++ÿï08@Rbanques-en-ligne.fr/img/hb- +0ÿï08@R banques-en-ligne.fr^*/habillage. +08@Rbas88.com/data/ +*ÿï08@Rbatiactu.com/cap_batiactu/ +%ÿï08@Rbatiactu.com/cap_pub/ +(ÿï08@Rbatiactu.com/images/pub/ +Jÿï08@R:batiactu.com/sites/all/libraries/bati/cronjobs/specials.js +*ÿï08@Rbatiactu.com^*/partenaire/ +!ÿï08@Rbatiment.nc/pubs/ +.ÿï08@Rbbox-news.com/forums/banniere- +ÿï08@Rbc.vc/mload.gif +&ÿï08@Rbdgest.com/habillages/ +"ÿï08@Rbdgest.com/prepub/ +8ÿï08@R(becompta.be/sites/default/files/banners/ +3ÿï08@R#bedetheque.com/javascript/campagne? +Cÿï08@R3belgianfootball.be/sites/default/files/img/banners/ +6ÿï08@R&belgique-tourisme.be/images/db/banner/ +-ÿï08@Rbelgiumapps.lesoir.be/iframe/ +Cÿï08@R3bergaag.com/wp-content/themes/bergaag/img/banniere- +$ÿï08@Rbesac.com/habillage/ +:ÿï08@R*best-fr.com/images/abcdelaremuneration.gif +/ÿï08@Rbest-fr.com/images/visible4.png +^ÿï08@RNbibamagazine.fr/extension/mfstandard/design/standard/javascript/lib/reload/mf. +*ÿï08@Rbienpublic.com/images/pub/ý +5ÿï08@R%bigbike-magazine.com/media/HABILLAGE/ +:ÿï08@R*bioalaune.com/sites/default/files/add_600/ +@ÿï08@R0bioalaune.com/sites/default/files/homeccdef2.jpg +Cÿï08@R3bioalaune.com/sites/default/files/mobile_habillage/ +*ÿï08@Rbismirabbika.com/img/*.gif +/ÿï08@Rbismirabbika.com/img/uxware.png +Aÿï08@R1bitcoin.fr/wp-content/uploads/2021/03/paymium.jpg +$ÿï08@Rblablastream.*/voir/ + ÿï08@Rblague.info/pub/ +$ÿï08@Rbleachmx.fr/dl/promo +6ÿï08@R&bleachmx.fr/wp-content/uploads/bleach- +)ÿï08@Rblog-adulte.fr/sextoy.gif +Eÿï08@R5blog-nouvelles-technologies.fr/wp-content/annonceurs/ +*ÿï08@Rblog-rct.com/propensities/ +Mÿï08@R=blog.fonepaw.fr/wp-content/themes/fonepaw/img/transparent.jpg +*ÿï08@Rblog.lesoir.be/*/banniere_ +Pÿï08@R@blog.lesoir.be/geeko/wp-content/uploads/sites/58/2015/06/im21bZ0 +Pÿï08@R@blog.lesoir.be/geeko/wp-content/uploads/sites/58/2015/06/N8-np_S +Pÿï08@R@blog.lesoir.be/geeko/wp-content/uploads/sites/58/2015/12/IMU.jpg +6ÿï08@R&blogsbd.fr/public/boulet-notes-t10.jpg +'ÿï08@Rboiteajeux.net/img/pub/ +)ÿï08@Rbongacams.com/load-promo/ +%ÿï08@Rbonporn.com/iframext/ +7ÿï08@R'bons-plans-elise.fr/wp-content/uploads/ +0ÿï08@R booska-p.com/images/*-habillage- +)ÿï08@Rbooska-p.com/images/habi- +,ÿï08@Rbooska-p.com/img/operations/ +*ÿï08@Rbooska-p.com/js/lolilol.js +Tÿï08@RDbourse-dz.com/wp-content/uploads/2019/11/Banniere-site-externe-1.jpg +5ÿï08@R%boursier.com/illustrations/campaigns/ +,ÿï08@Rboutique-marketing.net/*160x +4ÿï08@R$boutiquelingeriesexy.com/affiliates/ +6ÿï08@R&brain-magazine.com/images/_habillages/ +1ÿï08@R!brain-magazine.fr/images/banners/ +Dÿï08@R4bricozone.fr/styles/soft_responsive/xenforo/layout/j +Gÿï08@R7browserapi.manomano.*/banner-campaigns?*=bottom_banner& +%ÿï08@Rbu2z.com/desktop/pub/ +Pÿï08@R@buzzdefou.com/wp-content/themes/bztheme-child/images/dj_kayz.jpg +2ÿï08@R"buzzwebzine.fr/wp-content/banners/ +=ÿï08@R-ca-anjou-maine.fr/*/carrousel-mini-promo.html +8ÿï08@R(ca-anjou-maine.fr/content/binary/*_fond_ +;ÿï08@R+ca-anjou-maine.fr/content/binary/*_tetiere_ +>ÿï08@R.ca-briepicardie.fr/content/binary/vente_flash_ +8ÿï08@R(ca-centrest.fr/content/binary/*_annonce_ +9ÿï08@R)ca-centrest.fr/content/binary/*_banniere_ +5ÿï08@R%ca-centrest.fr/content/binary/*_fond_ +6ÿï08@R&ca-centrest.fr/content/binary/*_promo_ +1ÿï08@R!ca-sudrhonealpes.fr/*/fullscreen_ +.ÿï08@Rca-sudrhonealpes.fr/*_1920.jpg +=ÿï08@R-ca-sudrhonealpes.fr/content/binary/*_annonce_ +>ÿï08@R.ca-sudrhonealpes.fr/content/binary/*_banniere_ +:ÿï08@R*ca-sudrhonealpes.fr/content/binary/*_fond_ +;ÿï08@R+ca-sudrhonealpes.fr/content/binary/*_promo_ +=ÿï08@R-ca-sudrhonealpes.fr/content/binary/habillage_ +7ÿï08@R'cache.go4up.com/assets/img/abutoned.gif +>ÿï08@R.cache.go4up.com/assets/img/Download-button.gif +%ÿï08@Rcaci.dz/files/banner/ +ÿï08@R caci.dz/pub +Eÿï08@R5cadremploi.fr/emploi/jsp/include/home/bloc_promos.jsp +Cÿï08@R3caf.fr/sites/default/files/cnaf/Images/Headers/VDF/ +$ÿï08@Rcaledoccaz.com/PUBS/ +)ÿï08@Rcambro.tv/player/html.php +3ÿï08@R#camer.be/UserFiles/file/images/pub/ +.ÿï08@Rcameroon-info.net/img/banners/á +1ÿï08@R!camptocamp.org/static/images/pub/ +0ÿï08@R canal-plus.com/creatives/assets/ +4ÿï08@R$canal-plus.com/image/56/3/611563.jpg +-ÿï08@Rcap-sciences.net/upload/pubs/ +.ÿï08@Rcapinfoproreport.batiactu.com^ +-ÿï08@Rcapinfoproreport.com/cap_pub/ +0ÿï08@R capital.fr^*/boutons-pub-header/ +8ÿï08@R(careerbuilder.fr/lts/jobstreamintl.aspx? +08@Rcarrefoune.com^ +-ÿï08@Rcarrefour.fr/api/advertising/ +:ÿï08@R*carrefour.fr/js-ssr/footer-partner-banner. +>ÿï08@R.carrosseriemagazine.com/image/carrosserie/pub/ +1ÿï08@R!casavie.com/images/index_logo.gif +!ÿï08@Rcasavie.com/pubs/ +4ÿï08@R$castorsrhonealpes.fr/images/banners/ +?ÿï08@R/causeur.fr/wp-content/uploads/*/bannie%CC%80re- +)ÿï08@Rcbanque.com/i/*/habillage +6ÿï08@R&cbanque.com/i/media/04i/004966i1b4.png +'ÿï08@Rcbmanga.fr/images/pubs/ +3ÿï08@R#cci.fr/sites/default/files/src/pub/ +3ÿï08@R#cciaf.org/uploads/tx_macinabanners/ +2ÿï08@R"cdiscount.com/imagesok/*/partners/ +0ÿï08@R cdiscount.com/include/*/op_skin/ +*ÿï08@Rcdmail.fr//pro/Images/ban_ +"ÿï08@Rcdmail.fr/bandeau/ +#ÿï08@Rcdmail.fr/banniere/ +)ÿï08@Rcdmail.fr/pro/images/ban_ +2ÿï08@R"cdn-partners-references.lesoir.be^ +,ÿï08@Rcdn.betacie.com^*/autopromo/ +)ÿï08@Rcdn.flvto.biz/js/*_popup_ +)ÿï08@Rcdn.flvto.biz/push_app.js +[ÿï08@RKcdn.lechiffredaffaires.dz/wp-content/uploads/2022/03/investplus-300x201.png +Gÿï08@R7cdn.mgig.fr/2020/03/mg-955d46a3-59d5-462b-9a97-full.jpg +.ÿï08@Rcdn.ouedkniss.com/medias/okps/ +)ÿï08@Rcdn.scanmanga.eu/*/hGUvc/ +)ÿï08@Rcdn.scanmanga.eu/*/hHUvc/ +1ÿï08@R!cdn.scanmanga.eu/img/*/habillage_ +6ÿï08@R&cdn.tirage-gagnant.com/js/dynamic-ban- +_ÿï08@ROcdn.tirage-gagnant.com/js/popup.js/CJS2019_06_Crea_OpenMinded_Site_2106_Def.jpg +'€08@Rcdna.meilleurmobile.com/ +#ÿï08@Rcduporno.fr/disc.js +@ÿï08@R0cduporno.fr/themes/netleixtube/js/popupplayer.js ++ÿï08@Rcelebjihad.com/images/*.gif +(ÿï08@Rcelebjihad.com/widget.js +*ÿï08@Rcenterblog.net/buyproxies- +.ÿï08@Rcenterblog.net/cadre-*?zoneid= +$ÿï08@Rcenterblog.net/cu.js +2ÿï08@R"centerblog.net/your-private-proxy- +5ÿï08@R%centreimmo.com/contents/edition/lien/ +5ÿï08@R%cession-commerce.com/images/bandeaux/ +0ÿï08@R cession-commerce.com/images/pub_ +Wÿï08@RGcheminots.net/forum/uploads/*/B3F0CA1B-1340-4BCC-A1FE-7250D6ABB2B0.jpeg +7ÿï08@R'cheminots.net/forum/uploads/*/banniere_ +4ÿï08@R$chococlic.com/photo/mod-21199920.png +3ÿï08@R#choisir-ses-lunettes.com^*/banners/ +5ÿï08@R%choisir-ses-lunettes.com^*/bannieres/ +-ÿï08@Rchoualbox.com/js/siteunder.js +"ÿï08@Rchoualbox.com/pub/ +6ÿï08@R&chouf-chouf.com/wp-content/*/banniere- +;ÿï08@R+chronopost.fr^*/public/visuels/partenaires/ +2ÿï08@R"cine-media.fr/pictures/habillages/ +3ÿï08@R#classistatic.com^*/img/*_Kijiji_AD_ +!€08@Rclictune.com/?ref= +Bÿï08@R2clubpoker.net/medias/images/club-poker/habillages/§ +Dÿï08@R4clubpronostics.com/wp-content/images/bookmakers/pmu- +Hÿï08@R8clubpronostics.com/wp-content/images/bookmakers/winamax_ +,ÿï08@Rcmonecole.fr/images/banners/ +8ÿï08@R(cmonecole.fr^*/upload/image/partenaires/ +8ÿï08@R(cmsmadesimple.fr/uploads/images/banners/ +#ÿï08@Rcoco.fr/chat/bigban +#ÿï08@Rcoco.gg/chat/bigban +0€08@R!coincodex.com/apps/coincodex/lib/ +.ÿï08@Rcoingecko.com/assets/partners/ +.ÿï08@Rcommentcamarche.net/api/block/ +Uÿï08@REcommentseduire.net/wp-content/uploads/2014/12/chaturbate-gratuit.webp +9ÿï08@R)commitstrip.com^*/images/wejusthavetoeat/ +Fÿï08@R6comparatif-vpn.fr/wp-content/uploads/*/comparatif-vpn- +3ÿï08@R#compteur-gratuit.fr/images/bandeau_ +(ÿï08@Rcompteur-gratuit.fr/pub_ +8ÿï08@R(condor.dz/imgs/bannieres_accueil/294.jpg +6ÿï08@R&confidentielles.com/*/pubimppixel.php? +5ÿï08@R%confidentielles.com/bloquage_liens.js +7ÿï08@R'confidentielles.fr/dl/images/habillage/ +/ÿï08@Rconfig-gamer.fr/images/*__pub__ +/ÿï08@Rconfig-gamer.fr/images/banners/ +Bÿï08@R2conseils-courseapied.com/images/boutique-marathon/ +:ÿï08@R*conseils-courseapied.com/images/overstims/ +;ÿï08@R+conseils-courseapied.com/images/partenaire/ +:ÿï08@R*conseilsmarketing.fr/wp-content/pub-ebook- +2ÿï08@R"coques-iphone.com/modules/blockPub +3ÿï08@R#courrierlaval.com/images/wallpaper/ +.08@R cowcotland.com/images/habillage/ +2ÿï08@R"crack-wifi.com/forum/img/banniere- +:ÿï08@R*creadunet.com^*/overall_header_iframe.html +Nÿï08@R>creas.prismamediadigital.com/tv/jeux-push/300x225-michelin.gif ++ÿï08@Rcredit-agricole.fr/IMG/mp4/ +2ÿï08@R"cresus.dz/media/widgetkit/bandeau- +1ÿï08@R!cresus.dz/media/widgetkit/banner- +3ÿï08@R#cresus.dz/media/widgetkit/banniere- +.ÿï08@Rcresus.dz/media/widgetkit/pub- +Lÿï08@Rÿï08@R.dmcdn.net/mc/skin_assets/Orange_noel_2012_hub/ +%ÿï08@Rdmtk.linternaute.com^ +/ÿï08@Rdnslookup.fr/images/pubalto.gif +)ÿï08@Rdocvelo.com^*/kamvban.gif +5ÿï08@R%dojinshi.biz/wp-content/uploads/*.gif +:ÿï08@R*domimmo.com/assets/img/app/di/financement/ + ÿï08@Rdouploads.com/sw +(ÿï08@Rdramapassion.com/box.jpg +2ÿï08@R"dramapassion.com/images/aside/pub_ +ÿï08@R dsih.fr/pub/ +Iÿï08@R9dvbxtreme.com/wp-content/uploads/2016/03/CCCAM-VUPLUS.gif +Gÿï08@R7dvbxtreme.com/wp-content/uploads/2016/03/free-cccam.jpg +,ÿï08@Rdynamique-mag.com/files/pub/ +4ÿï08@R$dynamique-mag.com/images/partenaire/ +Iÿï08@R9dz-algerie.info/wp-content/uploads/2021/01/jpgliliane.jpg +1ÿï08@R!dzair-info.com/images/1santeb.gif +6ÿï08@R&dzair-info.com/images/algerianewsb.gif +@ÿï08@R0dzentreprise.net/wp-content/uploads/DZEJuner.swf +ÿï08@Rdzfoot.com/swf/ +%ÿï08@Rdzfoot.com/upload/hs_ +5ÿï08@R%dzsat.org/images/fastcccam_banner.gif +-ÿï08@Rdzsat.org/images/iptvabo3.gif ++ÿï08@Rdzsat.org/images/micmac.gif +/ÿï08@Rdzsat.org/images/pubicosium.gif +,ÿï08@Re-mazal.com/images/banp2.gif +1ÿï08@R!e-mazal.com/images/MacaronBOW.gif +/ÿï08@Re-orientations.com^*/habillage/ +708@R)e-sante.fr/sites/default/files/templates/ +&08@Re-sushi.fr/imagearticle/ +%ÿï08@Re-tchat.net/302pop.js +)ÿï08@Re-tchat.net^*/partenaire/ +ÿï08@R easy.onvid. +'ÿï08@Reasyrencontre.com/promo +,ÿï08@Rechangedeclics.com/files/ban ++ÿï08@Rechangedeclics.fr/files/ban +0ÿï08@R echangedeclics.fr/images/echange +8ÿï08@R(echangedeclics.fr/images/maxdetrafic.gif +0ÿï08@R echoroukonline.com/sponsors2015/ +=ÿï08@R-eco-algeria.com/sites/default/files/*-banner- +8ÿï08@R(eco-algeria.com/sites/default/files/pub_ +/ÿï08@Reconomiematin.fr^*-ban-300x150.È +%ÿï08@Redcom.fr/images/gaml/ +*ÿï08@Redcom.fr/images/habillage/ +'ÿï08@Redcom.fr/images/jbl.png +$ÿï08@Redcom.fr/img/popins/ +#ÿï08@Redcom.fr/img/skins/ ++ÿï08@Rediteurjavascript.com/bans/ +,ÿï08@Rediteurjavascript.com/bans2/ +*ÿï08@Reditions-humanis.com/Pubs/ +6ÿï08@R&educastream.com/IMG/Image/*-cligno.gif +-ÿï08@Reducastream.com/upload/popin/ +/ÿï08@Regaliteetreconciliation.fr/img/ +Eÿï08@R5egaliteetreconciliation.fr/squelettes/images/solider/ +ÿï08@Regora.fr^*/pub/ +"ÿï08@Rekipotel.net/_pub/ + ÿï08@Relahmad.com/ads/ +)ÿï08@Relahmad.com/js/extreme.js +7ÿï08@R'electrodz.com/wp-content/uploads/*-pub- +7ÿï08@R'electrodz.com/wp-content/uploads/*-pub. +7ÿï08@R'electrodz.com/wp-content/uploads/*/pub- +7ÿï08@R'electrodz.com/wp-content/uploads/*/pub. +2ÿï08@R"electromagazine.fr/images/banners/ +=ÿï08@R-electromenager-compare.com/images/*?nzkcheck= +@ÿï08@R0electromenager-compare.com/images/main/*/pub.jpg +7ÿï08@R'elevage-poules.com/Images/matpoules.gif +&ÿï08@Relheddaf.com/data/pub/ +>ÿï08@R.elkhabar.com/media/uploads/images/*-habillage- +Oÿï08@R?elkhadra.com/wp-content/plugins/99robots-interstitial-overlays- +*ÿï08@Relmoudjahid.com/images/pub +0ÿï08@R elmoudjahid.com/upload/img/vpub. +!ÿï08@Rembauche.nc/pubs/ +"ÿï08@Remoto.com/img/pub/ +,ÿï08@Remploi-energie.com/banniere/ +0ÿï08@R emploipartner.com/template/pubs/ +2ÿï08@R"emploipartner.com/uploads/banners/ +/ÿï08@Remploipartner.com/uploads/pubs/ +-ÿï08@Remploitic.com/images/bandeau/ +,ÿï08@Remploitic.com/images/banner/ +-ÿï08@Remploitic.com/images/banners/ +-ÿï08@Remu-fr.net^*/img_partenariat/ +Bÿï08@R2emu-france.com/wp-content/themes/emufrance/*casino +#ÿï08@Remule-island.*/bup/ +#ÿï08@Remule-island.*/pop/ +#ÿï08@Remule-island.*/pub/ +&ÿï08@Remule-island.*/yoo.php +?ÿï08@R/endurotribe.com/wp-content/uploads/*/fond-site- +5ÿï08@R%ennaharonline.com^*/images/habillage- +Iÿï08@R9enquete-debat.fr/wp-content/uploads/2017/11/betclic-1.gif +Bÿï08@R2entreprise-oran.com/domotique-maison-intilligente- +<ÿï08@R,entreprise-oran.com/file/*/agence_de_voyage_ +Cÿï08@R3entreprise-oran.com/file/*/agence_location_voiture_ +Bÿï08@R2entreprise-oran.com/file/*/assitance_dossier_visa_ +<ÿï08@R,entreprise-oran.com/file/*/assurance_voyage_ +:ÿï08@R*entreprise-oran.com/file/*/cafeteria_oran_ +@ÿï08@R0entreprise-oran.com/file/*/creation_de_site_web_ +;ÿï08@R+entreprise-oran.com/file/*/creationsiteweb. +>ÿï08@R.entreprise-oran.com/file/*/imprimerie_algerie_ +<ÿï08@R,entreprise-oran.com/file/*/invitation_chine_ +=ÿï08@R-entreprise-oran.com/file/*/omra_individuelle_ +>ÿï08@R.entreprise-oran.com/file/*/reservation_billet_ +=ÿï08@R-entreprise-oran.com/file/*/reservation_hotel_ +>ÿï08@R.entreprise-oran.com/file/*/transfert_aeirprot_ +;ÿï08@R+entreprise-oran.com/file/*/voyage_organise_ +?ÿï08@R/entreprise-oran.com/file/manual/cafeteria-oran- +;ÿï08@R+entreprise-oran.com/guide-restaurant-hotel-– +:ÿï08@R*entreprise-oran.com/promotion-immobiliere- +5ÿï08@R%entrevue.fr^*/image/global/habillage- +%ÿï08@Renvirojob.fr/img/pub/ +2ÿï08@R"epinalinfos.fr/wp-content/banners/ +'ÿï08@Requirodi.be/images/pub/ +)ÿï08@Requishopping.com/img/pub/ +"ÿï08@Reroprofile.com/ra/ +&ÿï08@Reroprofile.com^*/nvbl. +4ÿï08@R$esoxiste.com/wp-content/images/*.gif +7ÿï08@R'esoxiste.com/wp-content/images/bandeau- +=ÿï08@R-esoxiste.com/wp-content/images/banni%C3%A8re- +3ÿï08@R#esoxiste.com/wp-content/images/pub- +%ÿï08@Respaceagro.com/frasp/ +'ÿï08@Respritlib.com/banniere/ +>ÿï08@R.essonneinfo.fr/slide/articles/*/Massy-1000x90- +-ÿï08@Restrepublicain.fr/images/pub/ +ÿï08@Retr.fr/partner/ +1ÿï08@R!eugenol.com/images/abcdentpro.jpg +3ÿï08@R#eugenol.com/images/canalpalatin.png +"ÿï08@Reuropixhd.*/js/ads +&ÿï08@Reuropixhd.*/js/banner- +9ÿï08@R)exerciceabdo.fr/wp-content/uploads/*/bann +Aÿï08@R1exerciceabdo.fr/wp-content/uploads/*/capsimax.png +Gÿï08@R7exerciceabdo.fr/wp-content/uploads/2014/07/the-vert.png +Kÿï08@R;exerciceabdo.fr/wp-content/uploads/2014/07/Whey-protein.png +!ÿï08@Rexpomaroc.ma/pub/ +,08@Rextreme-down.*/uploads/telecha +(ÿï08@Rextreme-down.*/xvideo.js +008@R"extreme-download.*/uploads/telecha +,ÿï08@Rextreme-download.*/xvideo.js +7ÿï08@R'f-secure.com/static/general/img/banner/ +;ÿï08@R+f1i.com/wp-content/themes/*/site/pics/hype/ +ÿï08@R faf.dz/pub/ +=ÿï08@R-faf.dz/wp-content/uploads/2021/10/unnamed.jpg +-ÿï08@Rfaire-un-site.com/images/pub_ +.ÿï08@Rfcnantes.com/includes/sponsor/ +4ÿï08@R$fdata.over-blog.net^*/js/ob.bar1*.js +<ÿï08@R,fdesouche.com/wp-content/themes/*/js/libs.js +Sÿï08@RCfdesouche.com/wp-content/uploads/2018/02/71hx4NsnLRL._SL1000_-1.jpg +Aÿï08@R1fdesouche.com/wp-content/uploads/2018/02/arlo.jpg +Iÿï08@R9fdesouche.com/wp-content/uploads/2018/02/ArloQ_Header.jpg +Iÿï08@R9fdesouche.com/wp-content/uploads/2018/02/Sans-titre-2.jpg +%ÿï08@Rfeed4u.me/feedipop.js +;08@R-ferrarista.fr/forum-ferrari/uploads/referral- +.ÿï08@Rffr.fr/static/partenaires.json +*ÿï08@Rfiches-auto.fr/_carre_300_ +(ÿï08@Rfifostream.tv/video.html +'€08@Rfile-upload.net/include/ +!ÿï08@Rfilecrypt.*/blob/ +*ÿï08@Rfiles-save.com/noyaux/pub/ +)ÿï08@Rfiles.macg.co/macgupload/ +0ÿï08@R files.meteofrance.com/habillage/ +-ÿï08@Rfilierepro.fr/images/banners/ +1ÿï08@R!filmpornofrancais.fr/misty-brook- +)ÿï08@Rfilmsexeporno.com/vpn.gif +*ÿï08@Rfilmsexeporno.com/vpn2.gif +Cÿï08@R3filmstreaming1.*/templates/filmstreaming/images/468 +Dÿï08@R4filmstreaming1.*/templates/filmstreaming/images/pub/ +Hÿï08@R8filmstreaming1.*/templates/filmstreaming/images/vodb.gif +'ÿï08@Rfilmsvostfr.*/jscripts/ +9ÿï08@R)finbuzzactu.files.wordpress.com/*/180x150 +9ÿï08@R)finbuzzactu.files.wordpress.com/*/240x400 +9ÿï08@R)finbuzzactu.files.wordpress.com/*/250x250 +Fÿï08@R6finbuzzactu.files.wordpress.com/*/image-couple2016.jpg¯ +@ÿï08@R0finbuzzactu.files.wordpress.com/*/sex-pistol.jpg +;ÿï* + +avito.ma08@Rfirebasestorage.googleapis.com^ +.ÿï08@Rflaghit.com/images/nordvpn.gif +*ÿï08@Rflam.me/*/divers/partners/ +1ÿï08@R!flashkof.fr/flash/partenaires.swf +"ÿï08@Rflashmatin.fr/pub/ +1ÿï08@R!flashresultats.fr^*/image/banner/ +#ÿï08@Rflaticon.com/banner +(ÿï08@Rflaticon.com/edge/banner +ÿï08@Rflemmix.*/voir/ +(ÿï08@Rflux.liberation.fr/fnac/ +0ÿï08@R fm93.com/images/publiereportage/ +$ÿï08@Rfm93.com/js/larouche +Bÿï08@R2fm93.com/webradio/gabarits-webradio-poppers-bg.jpg +*ÿï08@Rfm93.com/webradio/poppers- +ÿï08@Rfm93.com^*/pub/ +2ÿï08@R"fmgsconcept.com/tvcom/images/shop/ +-ÿï08@Rfmgsconcept.com^*/images/pub/ +Cÿï08@R3focusur.fr/wp-content/plugins/simple-popup-manager/ +(ÿï08@Rfootball.fr^*/habillage/ +/ 08@R!footballclubdemarseille.fr/*-img/ +-ÿï08@Rfootendirect.com/images/wrap- +1ÿï08@R!force-download.*/lib/js/outils.js +/ÿï08@Rforce-download.*/yellowtoolbar/ ++ÿï08@Rforexalgerie.com/img/*/pub/ ++ÿï08@Rforexalgerie.com/img/*/pub_ +Bÿï08@R2forexalgerie.com/img/blackbull/336-280-desktop.png +5ÿï08@R%forexalgerie.com/img/fiver300_600.png +)ÿï08@Rforexalgerie.com/img/pub/ +0ÿï08@R formation-dz.com/images/banners/ +5ÿï08@R%formation-dz.com/modules/mod_banners/ +$ÿï08@Rforum-xiaomi.com/as/ +8ÿï08@R(forum308.com/images/lavageautomoto-5.jpg +"ÿï08@Rforumactif.*/dx?i= +2ÿï08@R"forumconstruire.com/img/*/bandeau_ +4ÿï08@R$forumconstruire.com/img/*/habillage/ +2ÿï08@R"forumconstruire.com/img/*/promoto/ +/ÿï08@Rforumconstruire.com/img/letsgo/ +.ÿï08@Rforumconstruire.com/img/pb_nf/ +-ÿï08@Rforumconstruire.com/img/pubs/ +/ÿï08@Rforumconstruire.com/img/sicked/ ++ÿï08@Rforumconstruire.com/letsgo/ + ÿï08@Rforumdz.com/pub/ ++ÿï08@Rforzamotorsport.fr/img/pub/ +<ÿï08@R,framapad.org/static/img/bearstech_hosted.png +<ÿï08@R,framboise314.fr/wp-content/uploads/*/banner- +9ÿï08@R)framboise314.fr/wp-content/uploads/*/pub_ +Iÿï08@R9framboise314.fr/wp-content/uploads/2020/06/our-300250.gif +>ÿï08@R.france-alerte.com/wp-content/uploads/popup.jpg +2ÿï08@R"france-pittoresque.com/Espace_Mag_ +6ÿï08@R&france-pittoresque.com/expstickybar.js +-ÿï08@Rfrance-pittoresque.com/pub.js +5ÿï08@R%france-pittoresque.com/pubexterne.htm +9ÿï08@R)france-troc.com/includes/inc_bandeau.php? +&ÿï08@Rfrancefootball.fr/pub/ +*ÿï08@Rfrancemobiles.com/img/pub/ +Kÿï08@R;francesoir.fr/sites/francesoir/files/promoitpret300x600.gif +2ÿï08@R"francetransactions.com/habillages/ +4ÿï08@R$francetransactions.com/img/habillage +-ÿï08@Rfrancetv.fr/css/habillagepub/ +:ÿï08@R*francoischarron.com/datascontent/insertech +3ÿï08@R#francoischarron.com/images/icon-vs- +Aÿï08@R1francoischarron.com/images/votre-site-article.png +*ÿï08@Rfrancoischarron.com^*/dfp/å +2ÿï08@R"francoischarron.com^*/placeholder/ ++ÿï08@Rfrancoischarron.com^*/pubs/ +$ÿï08@Rfrandroid.com/plsbl/ +$ÿï08@Rfree-proxy.cz/i/HMA/ +*ÿï08@Rfree-reseau.fr/images/ban_ +4ÿï08@R$free-strip-games.com/images/banners/ +)ÿï08@Rfree-strip-games.com/swf/ +8ÿï08@R(free-telechargement.*/images/7pzIy9Y.jpg +%ÿï08@Rfree.fr/webmails/pub/ +9ÿï08@R)freelance-informatique.fr/images/banniere +!08@Rfreemilfporn24.com^ +(ÿï08@Rfreemilfporn24.com^*.gif +-ÿï08@Rfreenduro.com/images/banners/ +Rÿï08@RBfreenews.fr/wp-content/uploads/2016/11/freenews0728x90FRNetObs.png +*ÿï08@Rfreepik.com/coupons/popup? +.ÿï08@Rfreepik.com/media/img/banners/ +Pÿï08@R@frenchweb.fr/wp-content/uploads/2018/02/webinar4opportunites.jpg +Kÿï08@R;frenchweb.fr/wp-content/uploads/2020/01/nuxeo3001201200.png +Kÿï08@R;frenchweb.fr/wp-content/uploads/2020/01/ozitem040220728.png +Jÿï08@R:frenchweb.fr/wp-content/uploads/2024/05/ovh-gitex-2024.png +Bÿï08@R2frenchweb.fr/wp-content/uploads/2024/10/we_pub.png +Fÿï08@R6frenchweb.fr/wp-content/uploads/2024/12/brevo_pub2.png +Yÿï08@RIfrenchweb.fr/wp-content/uploads/2024/12/display-970x250-beginners-1-2.jpg +,ÿï08@Rfrigoristes.fr/images/*_ban. +>ÿï08@R.frigoristes.fr/themes/frost/images/annonceurs/ +ÿï08@Rfrprn.com/even/ +1ÿï08@R!fullxmovies.com/catcheur-haut.php ++ÿï08@Rfullxmovies.com/fakeplayer/ +(ÿï08@Rfullxmovies.com/payglad/ +.ÿï08@Rfullxmovies.com/randomthumbs*. +!ÿï08@Rfun4fun.com/pubs/ +)ÿï08@Rfunradio.fr^*/skin/promo/ +*ÿï08@Rfusacq.com/buzz/*/encarts/ +.ÿï08@Rfusacq.com/images/megabanners/ ++ÿï08@Rfusacq.com^*/images/pub.gif +%ÿï08@Rgamalive.com/img/pub- ++ÿï08@Rgame-guide.fr/*/images/pub/ +)ÿï08@Rgameblog.fr/images/promo/ +)ÿï08@Rgameblog.fr/scripts/ebam/ + 08@Rgameblog.fr/skins/ +/ÿï08@Rgamekult.com/ajax-info/partner- ++ÿï08@Rgamekult.com/i/partenaires/ +2ÿï08@R"gamer-network.fr/wp-content/*/g2a- +?ÿï08@R/gamer-network.fr/wp-content/uploads/*/banniere. +(ÿï08@Rgamereactor.dk/prerolls/ +(ÿï08@Rgamovideo.com/js/ulnt.js +.ÿï08@Rgauleporno.xxx/assets/js/head. +$ÿï08@Rgauleporno.xxx/nbjs/ +!ÿï08@Rgeeek.org/amazon/ +(ÿï08@Rgeek-malin.fr/pm-728.gif +-08@Rgeekopolis.fr/images/habillage_ +1ÿï08@R!generation-nt.com/img/habillages/ +,ÿï08@Rgeny.com/web/images/genybet/ +Eÿï08@R5geo.fr/extension/geo/design/geo/images/planetride.gif +(ÿï08@Rgeoflotte.com/temp/part/ +)ÿï08@Rgerardmerinfo.fr/fondpub/ +4ÿï08@R$gerardmerinfo.fr/wp-content/banners/ +8ÿï08@R(gizchina.it/wp-content/uploads/*-banner. +ÿï08@Rgktorrent.*/z- +,ÿï08@Rglenatbd.com/images/banners/ +*ÿï08@Rglenatbd.com/images/skins/ +1ÿï08@R!glenatmanga.com/upload/habillage/ +)ÿï08@Rgoal.*/uploads/promotion/ +€08@R goal.com^  +&ÿï08@Rgofile.io/plugins/sw2/ +Jÿï08@R:goldenboys.fr/images/klops-promo-goldenboys-180x180-v5.jpg +@ÿï08@R0goldenmoustache.com/wp-content/uploads/*/300x250 +=08@R/gonzai.com/wp-content/uploads/*/gonzai-renault. +ÿï08@Rgoziga.com/ban/ +*ÿï08@Rgoziga.com^*/banangela.gif +%ÿï08@Rgoziga.com^*/banhead_ +0ÿï08@R goziga.com^*/goziga_underflv.gif +/ÿï08@Rgratostel.com/images/*/bandeau_ ++ÿï08@Rgratuiciel.com/media/*-pub- +1ÿï08@R!gratuiciel.com/media/*/habillage/ +*ÿï08@Rgratuiciel.com/media/pubs/ +,ÿï08@Rgrimper.com/media/habillage/ +2ÿï08@R"groupolitan.be/fr/partners/iframe/ +*ÿï08@Rguardiana.net/img/boutons/ +/ÿï08@Rguide-alger.com/images/banners/ +2ÿï08@R"guide-du-travail.com/images/promo/ +7ÿï08@R'guide-fitness.fr/images/Investir123.gif +/ÿï08@Rguide-hebergeur.fr/img/lwssuper +'ÿï08@Rguide-hebergeur.fr/pub/ +8ÿï08@R(guide-lavage.com/image/guide-lavage/pub/ +8ÿï08@R(guinee7.com/wp-content/uploads/*-460x68- +9ÿï08@R)guinee7.com/wp-content/uploads/*-800x120- +9ÿï08@R)guinee7.com/wp-content/uploads/*/baniere- +?ÿï08@R/guinee7.com/wp-content/uploads/*/banni%c3%a8re- +:ÿï08@R*guinee7.com/wp-content/uploads/*/banniere- +9ÿï08@R)gum-gum-stream.*/wp-content/uploads/*.gif +0ÿï08@R gum-gum-streaming.*/extension.js +*ÿï08@Rgum-gum-streaming.*/pub.js +<ÿï08@R,gum-gum-streaming.*/wp-content/uploads/*.gif +)08@Rhackforums.net/uploads/mam/ +'ÿï08@Rhandroit.com/annonceur/ +,ÿï08@Rhandroit.com/upl/slideshows/ +/ÿï08@Rhappymod.com/static/img/pvpbar- +ÿï08@Rhdss.*/playhd. +ÿï08@R hdss.*/voir/ ++ÿï08@Rhearthstone-decks.com/pub2/ +(ÿï08@Rhentai-3x.com/images/out +,ÿï08@Rhentai-paradise.fr/getblock2 +(ÿï08@Rhentai-paradise.fr/vast/ +!ÿï08@Rhentaibox.fr/hbS/ +08@R hentaibox.fr^ +!ÿï08@Rhentaihaven.org/_ +%ÿï08@Rhentaihaven.org/beta/ +%ÿï08@Rhentaihaven.org/lube/ +0ÿï08@R heures.be/template/images/publi/ +"ÿï08@Rhibamusic.com/pub/ +Eÿï08@R5hifipcguide.com/wp-content/uploads/smsl-ad18-hifi.jpg +#ÿï08@Rhiqqu.xxx/static/n/ +/ÿï08@Rhisse-et-oh.com/api/v1/neptune/ +5ÿï08@R%histoire-pour-tous.fr/images/banners/ ++ÿï08@Rhistoires-de-sexe.net/graf/ +#ÿï08@Rhitek.fr/img/*-ban. +7ÿï08@R'homecine-compare.com/images/*?nzkcheck= +:ÿï08@R*homecine-compare.com/images/main/*/pub.jpg +8ÿï08@R(homecinema-fr.com/iframe-header-300x600- +)ÿï08@Rhomecinema-fr.com/images/ +'ÿï08@Rhomecinema-fr.com/pubs/ +Gÿï08@R7horlogeparlante.com/wp-content/uploads/2021/*_08_99_05_ + ÿï08@Rhotvideo.fr/pub/ +&ÿï08@Rhotvideo.fr^*/banners/ +/ÿï08@Rhours.be/template/images/publi/ +'ÿï08@Rhtml.net/dm/recovery.js +Eÿï08@R5humanite.fr/sites/default/files/field/image/banniere_É +Dÿï08@R4humanite.fr/sites/default/files/medias/*/header_pub_ +#ÿï08@Ri.esprit-click.com^ +$ÿï08@Richhar.sante-dz.com^ +&ÿï08@Richmama.xyz/appsource/ +ÿï08@Ridf1.fr/banner/ + ÿï08@Ridf1.fr/partner/ +:ÿï08@R*idurarweb.com/file/manual/conception_logo_ +:ÿï08@R*idurarweb.com/file/manual/conception_site_ +@ÿï08@R0idurarweb.com/file/manual/formation_infographie_ +)ÿï08@Riframe.lachainemeteo.com^ +8ÿï08@R(igg-games.com/wp-content/uploads/20*.gif +ÿï08@Riiv.pl/banner/ +ÿï08@Rimabox.fr/pub/ +"ÿï08@Rimados.fr^*/habbo/ +6ÿï08@R&imadrassa.com/static/images/background +7ÿï08@R'imadrassa.com/static/images/next/banner +;ÿï08@R+imadrassa.com/static/imgfront/offres/banner +8ÿï08@R(imagelecourrier.vnanet.vn/uploaded//Adv/ +3ÿï08@R#images.fan-de-cinema.com/habillage/ +Iÿï08@R9images.leblogduhacker.fr/2017/12/etre-anonyme-dossier.jpg +9ÿï08@R)images.leblogduhacker.fr/hidemyassban.gif +*ÿï08@Rimages.opt.be/pictos/logo_ +1ÿï08@R!img.mrsexe.com/dating-gratuit.gif +4ÿï08@R$img.uefa.com/imgml/comp/ucl/sponsor/ + ÿï08@Rimgpeak.com/img/ +,ÿï08@Rimmobilier.nc^*/medias_pubs/ +.ÿï08@Rimmoweb.be/*/autopromo-footer? +%ÿï08@Rimmoweb.be/*/sponsor? +$ÿï08@Rimpimg.free.fr/pubs/ +5ÿï08@R%info-algerie.com/media/Polo-Sedan.jpg +$ÿï08@Rinformatruc.com/ejs_ +,ÿï08@Rinfosoir.com/images/banners/ +)ÿï08@Rinpi.fr^*/klee_evenement/ +<ÿï08@R,installations-home-cinema.eu/images/partner/ +lÿï08@R\intermarche.com/files/live/sites/intermarche/files/contributed/operation_speciale/*habillage +Aÿï08@R1internetparsatellite.net/usr/*/images/vskydsl.gif +bÿï08@RRinternetparsatellite.net/usr/www_internetparsatellite_net/images/*-leaderboard.gif +[ÿï08@RKinternetparsatellite.net/usr/www_internetparsatellite_net/images/nn201*.gif +-ÿï08@Rinvestiraucameroun.com/*/pub/ +5ÿï08@R%iphone-forum.fr/accessoire-iphone.png +%ÿï08@Riphone4.fr/bannieres/ +8ÿï08@R(iphone4.fr/wp-content/uploads/*-150x114. +8ÿï08@R(iphone4.fr/wp-content/uploads/*-300x167. +6ÿï08@R&iphone4.fr/wp-content/uploads/*600X90_ +Cÿï08@R3iphone4.fr/wp-content/uploads/2018/08/thefrench.png +aÿï08@RQiphone4.fr/wp-content/uploads/2019/11/capture-*-2019-11-17-*-20.55.54-300x131.png +.ÿï08@Riphonetweak.fr/js/prototype.js +5ÿï08@R%iplocation.net/assets/images/banners/ +Eÿï08@R5ipodtouchisapro.com/wp-content/uploads/*/CTP-banners- +Dÿï08@R4ipodtouchisapro.com/wp-content/uploads/*/gif-pub.gif +Dÿï08@R4israelmagazine.co.il/*/wp-cart-for-digital-products/ +8ÿï08@R(israelmagazine.co.il/wp-content/*238x198 +8ÿï08@R(israelmagazine.co.il/wp-content/*250x208 +8ÿï08@R(israelmagazine.co.il/wp-content/*300x250 +7ÿï08@R'israelmagazine.co.il/wp-content/*banner +=ÿï08@R-israelmagazine.co.il/wp-content/uploads/*/Dr- +3ÿï08@R#itele.fr/content/skins/*_habillage. +!ÿï08@Ritmag-dz.com/pub/ +#ÿï08@Ritnewsinfo.com/pub/ +%ÿï08@Ritnewsinfo.com^*/pub/ +8ÿï08@R(ivocommunication.com/amenagement-stands- +Aÿï08@R1ivocommunication.com/file/*/agence_communication_ +:ÿï08@R*ivocommunication.com/file/*/agence_voyage_ +?ÿï08@R/ivocommunication.com/file/*/amenagement-stands-ì +@ÿï08@R0ivocommunication.com/file/*/boite-communication- +@ÿï08@R0ivocommunication.com/file/*/boite_communication_ +Bÿï08@R2ivocommunication.com/file/*/cadeaux_de_fin_dannee_ +=ÿï08@R-ivocommunication.com/file/*/imprimerie-alger. +?ÿï08@R/ivocommunication.com/file/*/imprimerie_algerie. +?ÿï08@R/ivocommunication.com/file/*/imprimerie_algerie_ +Bÿï08@R2ivocommunication.com/file/*/promotion_immobiliere_ +Wÿï08@RGivocommunication.com/file/2020/10/29/boite_de_communication_alger_1.png +3ÿï08@R#ivoprint.com/cadeaux-de-fin-dannee- +=ÿï08@R-ivoprint.com/file/*/27993000_844677042378460_ +>ÿï08@R.ivoprint.com/file/*/agence_communication_oran_ +:ÿï08@R*ivoprint.com/file/*/agence_voyage_algerie_ +7ÿï08@R'ivoprint.com/file/*/amenagement-stands- +?ÿï08@R/ivoprint.com/file/*/amenagement_stands_algerie_ +8ÿï08@R(ivoprint.com/file/*/boite-communication- +:ÿï08@R*ivoprint.com/file/*/cadeaux_de_fin_dannee_ +5ÿï08@R%ivoprint.com/file/*/impression_alger_ +5ÿï08@R%ivoprint.com/file/*/imprimerie-alger. +5ÿï08@R%ivoprint.com/file/*/imprimerie_alger_ +7ÿï08@R'ivoprint.com/file/*/imprimerie_algerie. +:ÿï08@R*ivoprint.com/file/*/promotion_immobiliere_ +%ÿï08@Rjackypc.com/bann*.swf +0ÿï08@R japscan.lol/imgs/japo/reader.jpg +5ÿï08@R%jawharafm.net/*/upload/1579350911.png +Zÿï08@RJjeanmarcmorandini.com/sites/jeanmarcmorandini.com/files/morandinisante.jpg +=ÿï08@R-jemangejemincis.fr/wp-content/uploads/*banner +=ÿï08@R-jemangejemincis.fr/wp-content/uploads/immune- +,ÿï08@Rjemontremalingerie.com/*.php ++ÿï08@Rjemontremesfesses.com/*.php +*ÿï08@Rjemontremontorse.com/*.php +4ÿï08@R$jemontremontorse.com/images/banners/ +Fÿï08@R6jeretiens.net/wp-content/uploads/2020/10/amazon_prime_ +Lÿï08@R08@R0journaldugeek.com/wp-content/themes/*/habillages +=ÿï08@R-journaldumusulman.fr/wp-content/uploads/*.gif +?ÿï08@R/journaldumusulman.fr/wp-content/uploads/*/fond- +<ÿï08@R,journaldumusulman.fr/wp-content/uploads/*ban +Gÿï08@R7journaldumusulman.fr/wp-content/uploads/2021/04/kid.jpg +Pÿï08@R@journaldumusulman.fr/wp-content/uploads/2021/04/kidludik-top.jpg ++ÿï08@Rjournaldunet.com/api/block/ +,ÿï08@Rjournaldupirate.com/vpn2.png +,ÿï08@Rjournaldupirate.com/vpn4.png +.ÿï08@Rjournalintime.com/static/pubs/ +*ÿï08@Rjudgehype.com/pub2/bg.php? +&ÿï08@Rjuif.org/img/partners/ +)ÿï08@Rjumia.*/static/cms/*/ads/ +.ÿï08@Rjumia.*/static/cms/*?downsize= +Cÿï08@R3juristatic.com/public/js/Composant/Wengo/notify.js? +8ÿï08@R(juristatic.com/public/js/lib/*_popup.js? +&08@Rjustgeek.fr/img/widgets/ + 08@R k2nblog.com/? +)ÿï08@Rkacemb.com/kdda/sponsors/ + ÿï08@Rkairn.com/*/pub. +$ÿï08@Rkairn.com/files/pub/ +ÿï08@R kalo.onvid. +)ÿï08@Rkamehashop.fr/partenaire/ + ÿï08@Rkatibin.fr/pubs/ +8ÿï08@R(katibin.fr/wp-content/uploads/*/600x100- +3ÿï08@R#katibin.fr/wp-content/uploads/*/BG_ +8ÿï08@R(katibin.fr/wp-content/uploads/*/katibin- +) 08@Rkelbillet.com/services/dfp_ +#ÿï08@Rkeriximmo.net/_pub/ +/ÿï08@Rkeriximmo.net/images/habillage- +*ÿï08@Rkidiklik.fr/images/vendos/ +.ÿï08@Rkimcartoon.*/scripts/xvideo.js +€08@R kissanime.ru^ +4ÿï08@R$kiteboarder-mag.com/media/habillage/ +:ÿï08@R*kits-graphiques-deluxe.com/images/pub1.jpg +ÿï08@Rkoaci.com/pub/ +;ÿï08@R+kommunauty.fr/images/banniere_k-600x100.jpg +)ÿï08@Rkonbini.com^*/xhabillage_ +5ÿï08@R%korben.info/app/uploads/*/LogoAgarik_ +-08@Rkorben.info/app/uploads/*/mrf*. +2ÿï08@R"korben.info/app/uploads/*/seagate- +6ÿï08@R&korben.info/app/uploads/2015/12/ag.png +=ÿï08@R-korben.info/app/uploads/2018/06/CB1198675309- +*ÿï08@Rl.liberation.fr/img/promo/ +6ÿï08@R&lacanausurfinfo.com/admin/images/pubs/ +3ÿï08@R#lacanausurfinfo.com/ressources/pub/ +'ÿï08@Rlacasadeel.net/banners/ +)ÿï08@Rlacoccinelle.net/extra.js ++ÿï08@Rlacoccinelle.net/generic.js +#ÿï08@Rladepeche.fr/js/ab. +Jÿï08@R:ladiagonale.net/wp-content/uploads/2023/02/pub_article.jpg +>ÿï08@R.ladmedia.fr/var/public/storage/images/teasers/ +0ÿï08@R lafermeduweb.net/images/promote/ +%08@Rlafranceapoil.com^*.php +%ÿï08@Rlakroa.mg/images/pub/ ++ÿï08@Rlamanchelibre.fr/habillage/ +3ÿï08@R#lamanchelibre.fr/images/*-banniere- +:ÿï08@R*lamanchelibre.fr/images/teaser_phr_web.jpg +*ÿï08@Rlangochat.net/partenaires/ +,ÿï08@Rlanouvellerepublique.fr/pub/ +.ÿï08@Rlanutrition.fr/images/banners/ +*ÿï08@Rlaposte.net^*/scripts/pub_ +)ÿï08@Rlaptopspirit.fr/js/suo.js� +?ÿï08@R/laptopspirit.fr/wp-content/uploads/new/f22j.gif +,ÿï08@Rlaptopspirit.fr^*/habillage- +7ÿï08@R'laradieuse.com/images/logo-ooreedoo.jpg +8ÿï08@R(lareclame.fr/wp-content/uploads/*/hbllg- +<ÿï08@R,largus.fr/*/includes/javascript/advertising/ +4ÿï08@R$lasurfeuze.com/index.php?page=banner +)ÿï08@Rlasurfeuze.com/tagsky.php +:ÿï08@R*latribunedz.com/Contenu/files/bannersFile/ +@ÿï08@R0launedalgerie.com/images/stories/U/buy%20now.jpg +:ÿï08@R*launedalgerie.com/images/stories/U/mah.jpg +;ÿï08@R+launedalgerie.com/images/stories/U/wiko.jpg +>ÿï08@R.lautomarche.com/wp-content/uploads/*/auto-pub- +9ÿï08@R)lautomarche.com/wp-content/uploads/*/pub- +Zÿï08@RJlautomarche.com/wp-content/uploads/2014/10/emerger-animation5-copie-31.gif +]ÿï08@RMlautomarche.com/wp-content/uploads/2014/10/flash-liqui-moly-kadiri-copie1.gif +(ÿï08@Rlautosurf.com/images/cdp +1ÿï08@R!laverite.mg/images/Autodiffusion- +'ÿï08@Rlaverite.mg/images/pub- +2ÿï08@R"lcd-compare.com/images/*?nzkcheck= +5ÿï08@R%lcd-compare.com/images/main/*/pub.jpg +ÿï08@Rle1er.net/pub- +#ÿï08@Rle2minutes.com/pub/ +$ÿï08@Rlebuteur.com/danone/ +-ÿï08@Rlebuteur.com/data/gilette.jpg +(ÿï08@Rlebuteur.com/data/hs.jpg +&ÿï08@Rlebuteur.com/data/pub/ +2ÿï08@R"lebuteur.com/interstitiel/Scripts/ +.ÿï08@Rlebuteur.com/interstitiel/swf/ +Iÿï08@R9lecafedugeek.fr/wp-content/uploads/2020/12/600x600-fr.png +5ÿï08@R%lecancer.fr/media/*/logo_partenaires_ +6ÿï08@R&lechiffredaffaires.com/images/banners/ +ÿï08@R lecho.be/ad/ +'ÿï08@Rlecompagnon.info/promo/ +6ÿï08@R&lecourrier-dalgerie.com/images/pub.gif +8ÿï08@R(lecourrier-dalgerie.com^*/Banni%C3%A8re- +/ÿï08@Rlecture-en-ligne.com/*/pubs.php +(ÿï08@Rledemondujeu.com/pubcoin +1ÿï08@R!ledevoir.com/documents/image/pub/ +.ÿï08@Rledgerwallet.com/images/promo/ +:ÿï08@R*lefigaro.fr/assets-components/partenaires/ +)ÿï08@Rlefigaro.fr/com/bazachic/ +-ÿï08@Rlefigaro.fr/com/cadre-emploi/ +4ÿï08@R$lefigaro.fr/com/collectorsquare-box/ +/ÿï08@Rlefigaro.fr/com/explorimmo_loc/ +-ÿï08@Rlefigaro.fr/com/luisaviaroma/ +1ÿï08@R!lefigaro.fr/com/mytravelchic-box/ +&ÿï08@Rlefigaro.fr/com/store/ +(ÿï08@Rlefigaro.fr^*/bazarchic/ +,ÿï08@Rlegagnant.com/files/banners/ +&ÿï08@Rlegalis.net^*/swf/pub_ +0ÿï08@R legazdeschiste.fr/images/banner_ +!ÿï08@Rleguide.com^*/ad/ +5ÿï08@R%lejournaldelemploi.dz/images/banners/ +3ÿï08@R#lelectronique.com/images/xshopping- +Dÿï08@R4lelogicielgratuit.com/media/js/popupGenerator.min.js +'ÿï08@Rlemde.fr^*/partenaires/ +(ÿï08@Rlemeilleurdupsg.com/pub/ +)ÿï08@Rlemidi-dz.com/images/pub/ +Aÿï08@R1lemondeinformatique.fr/ajax/recuperation-pub.php? +<ÿï08@R,lemoniteurdubatiment.be/images/mediafactory_ +4ÿï08@R$lemoteurdusexe.com/images/*-shop.gif +-ÿï08@Rlemoteurdusexe.com/img/promo/ +>ÿï08@R.lenetexpert.fr/footer-denis.jacopini-redacteur +-ÿï08@Rlenouvelliste.com/images/pub/’ +5ÿï08@R%lensois.com/wp-content/uploads/*/BMW- +=ÿï08@R-lensois.com/wp-content/uploads/*/LE-FIL-INFO- +6ÿï08@R&lensois.com/wp-content/uploads/*/MINI- ++ÿï08@Rleparisien.fr/manchettepub/ +,ÿï08@Rleparisien.fr^*/partenaires/ +/ÿï08@Rleparking-moto.fr/images/alter- +*ÿï08@Rleparking.fr/images/alter- +.ÿï08@Rleparking.fr/images/Habillage_ +-ÿï08@Rleparking.fr/upload/partners/ +,ÿï08@Rlepetiteconomiste.com^*/pub- +5ÿï08@R%lepetiteconomiste.com^*/swf_banniere_ +(ÿï08@Rlepoint.fr/images/promo/ +>ÿï08@R.lequipement.fr/epsigon/style/EkipPrixEnDirect/ +1ÿï08@R!lequipement.fr/uploads/habillage/ +0ÿï08@R lequotidien-oran.com/img/pub.jpg +0ÿï08@R lerepairedesmotards.com/img/pub/ +Bÿï08@R2les-energies-renouvelables.eu/cssimg/site/*160.jpg +5ÿï08@R%les-horaires.fr/ajax/staytuned.popup. +-ÿï08@Rles-terrains.com/ajax/iframe/ +3ÿï08@R#les-terrains.com/assets/background/ +)ÿï08@Rles-terrains.com/bandeau_ ++ÿï08@Rles-terrains.com/bd_images/ +-ÿï08@Rles-terrains.com/images/link_ +,ÿï08@Rles-terrains.com/images_pub/ +$08@Rles-terrains.com^*.gif +%ÿï08@Rlesechos.fr/pratique/ +,ÿï08@Rlesechos.fr/promo-solutions/ +0ÿï08@R lesimprimantes3d.fr/partenaires/ +)ÿï08@Rlesmobiles.com/habillage/ +2ÿï08@R"lesmobiles.com/img/mobile-banners/ +*ÿï08@Rlesmobiles.com/img/popins/ +)ÿï08@Rlesmobiles.com/img/skins/ +-ÿï08@Rlesmobiles.com/img/slidebars/ +-ÿï08@Rlesnumeriques.com/habillages/ +8ÿï08@R(lesoirdalgerie.com/articles/*/dzauto.swf +%ÿï08@Rlespac.com/1/banners/ +=ÿï08@R-lespagesmaghreb.com/assets/fransabank_pharma- +.ÿï08@Rlespagesmaghreb.com/campaigns/ +Aÿï08@R1lespagesmaghreb.com/gollums/0000/8222/legrand.gif +-€08@Rlespagesmaghreb.com/particles/ +Fÿï08@R6lesparrains.fr/images/lesParrains.fr/offers/habillage_ +<ÿï08@R,lestrepublicain.com/modules/mod_flexbanners/ +'ÿï08@Rletelegramme.fr/js/dfp_ + ÿï08@Rletopdusexe.net^ +(ÿï08@Rletour.fr^*/partenaires. +!ÿï08@Rletoutx.com/pubs/ +1ÿï08@R!letraitdunion.com/images/headset/ +3ÿï08@R#letraitdunion.com/images/wallpaper/ +*€08@Rlettres-modeles.fr/include/ +2ÿï08@R"lexpress.fr/doc/minisites/laposte/ +<ÿï08@R,lexpress.fr/doc/minisites/solution_business/ +,ÿï08@Rlexpress.fr/doc/partenaires/ + ÿï08@Rlexpress.fr/pub/ +0ÿï08@R lexpressiondz.com/files/banners/ +"ÿï08@Rlfp.fr/images/pub/ +*ÿï08@Rlhebdoduvendredi.com/pubs/ +*ÿï08@Rlibe.com/libepartnerships/ +Hÿï08@R8libellules.ch/infomaniak-hosted-by-black-transparent.png +-ÿï08@Rliberte-algerie.com/data/pub/ +:ÿï08@R*libertyvf.*/libertyland/images/partenaire/ +,ÿï08@Rlibre.eu/homepage/relooking/ +"ÿï08@Rlig.liberation.fr^ +8ÿï08@R(ligloo.fr/images/CreditImmo300x250px.gif +kÿï08@R[limametti.com/wp-content/uploads/2020/08/whatsapp-image-2020-08-27-at-10.06.48-300x200.jpegã +@ÿï08@R0limetorrents.*/static/images/limetorrents_ad.jpg +*ÿï08@Rlinternaute.com/api/block/ +)ÿï08@Rlinternaute.fr/api/block/ ++ÿï08@Rlive.whassup.fr/*&campaign= +$ÿï08@Rlivecad.net/img/pub_ +2ÿï08@R"livefoot.fr/1800x1000-affiliation. +-ÿï08@Rlivefoot.fr/images/habillage_ +/ÿï08@Rlkeria.com/media/Polo-Sedan.jpg +)ÿï08@Rlkeria.com/media/publier- +'ÿï08@Rlnc.nc^*/habillage-lnc/ +ÿï08@Rlnr-dz.com/pub/ +!ÿï08@Rlobourse.com/pub/ +*ÿï08@Rlocation-etudiant.fr/pubs/ +Gÿï08@R7logicielespion.com/wp-content/uploads/2017/11/BL-LE.png +,ÿï08@Rlogicielmac.com^*/habillage/ +'ÿï08@Rlogicielmac.com^*/zpub/ +&ÿï08@Rlogicielmac.com^/pubs/ ++ÿï08@Rlogitheque.com/media/*-pub- +1ÿï08@R!logitheque.com/media/*/habillage/ +,ÿï08@Rlogitheque.com/media/*/zpub/ +*ÿï08@Rlogitheque.com/media/pubs/ +1ÿï08@R!loractu.fr/uploads/ad/background/ +5ÿï08@R%lotusnoir.info^*/images/pub/*_bandeau +6ÿï08@R&lotusnoir.info^*/images/pub/*_banniere +9ÿï08@R)lotusnoir.info^*/images/pub/*_skyscrapper +5ÿï08@R%lotusnoir.info^*/images/pub/ora-jeux- +,ÿï08@Rlyad.com/testrv/popdiv2.asp? +)ÿï08@Rlyoncapitale.fr/lyoncapx/ +.ÿï08@Rlyonmag.com/medias/habillages/ +0ÿï08@R ma-reduc.com/campaigns/covering/ +.ÿï08@Rma-reduc.com/img/meahabillage/ +)ÿï08@Rmacbidouille.com/banners/ +Vÿï08@RFmaddyness.com/wp-content/uploads/2016/05/serre-numerique-maddyness.jpg +<ÿï08@R,made-in-algeria.com/_medias_files/pub_files/ +<ÿï08@R,made-in-tunisia.net/_medias_files/pub_files/ +#ÿï08@Rmadeinfoot.com/pub/ +*ÿï08@Rmadstef.com^*/images/pubs/ +*ÿï08@Rmaghrebemergent.com/bannie +3ÿï08@R#maghrebemergent.com/images/banners/ +8ÿï08@R(maghrebemergent.com/images/logosmarques/ ++ÿï08@Rmaghrebemergent.info/bannie +4ÿï08@R$maghrebemergent.info/images/banners/ +9ÿï08@R)maghrebemergent.info/images/logosmarques/ +6ÿï08@R&maghrebex.com/_medias_files/pub_files/ +0ÿï08@R maghrebstar.com/images/MSPUB.gif +0ÿï08@R maidenfrance.fr/images/banniere- +1ÿï08@R!mailorama.fr^*/wearing/habillage_ +Fÿï08@R6maison-travaux.fr/wp-content/uploads/*/bouton-300x160. +Oÿï08@R?maison-travaux.fr/wp-content/uploads/sites/8/2019/06/bouton.jpg +Rÿï08@RBmaison-travaux.fr/wp-content/uploads/sites/8/2019/10/300x160-1.jpg +Mÿï08@R=maison-travaux.fr/wp-content/uploads/sites/8/2021/04/deco.jpg +.ÿï08@Rmameworld.info/net/pics/da.gif +*ÿï08@Rmamytwink.com/pub2/bg.php? +1ÿï08@R!manager-online.fr/images/sidebar/ +.ÿï08@Rmanga-news.com/js/_external.js ++ÿï08@Rmanga-news.com/public/bans/ +/ÿï08@Rmanga-sanctuary.com/pub*/*.php? +Aÿï08@R1manga-versus.fr/wp-content/plugins/popup-builder/ +-ÿï08@Rmangovideo.*/player/float.php +,ÿï08@Rmangovideo.*/player/html.php +$ÿï08@Rmanifone.com/banner/ +,ÿï08@Rmappy.com/*/files/campaigns/ +2ÿï08@R"mappy.com/services/annoncesjaunes/ +Cÿï08@R3margxt.fr/wp-content/uploads/2022/12/mgs-shop-2.jpgú +Aÿï08@R1margxt.fr/wp-content/uploads/2022/12/mgs-shop.jpg +.ÿï08@Rmarianne.net/photo/background- +"ÿï08@Rmaroc1000.net/pub/ ++ÿï08@Rmatchendirect.fr/image/tux/ +4ÿï08@R$matin.mg/wp-content/uploads/*/matin_ +!08@Rmature-amateur.com^ +%ÿï08@Rmax-videos.com/tools/ ++ÿï08@Rmaxisciences.com/js/amazon/ +!ÿï08@Rmaxisexy.com/pub/ +.ÿï08@Rmaxxxblog.com/disclaimer-st.js +0ÿï08@R mayottehebdo.com/images/banners/ +.ÿï08@Rmayottehebdo.com^*/pub_bottom. +'ÿï08@Rmed.tn/uploads/banners/ +&ÿï08@Rmedia-ext.wanarun.net^ +708@R)media.funradio.fr/online/image/*_skin-vip +9ÿï08@R)media.lelogicielgratuit.com/*/img/banner- +Cÿï08@R3media.peterhahn.fr/is/image/peterhahn/*_skyscraper_ +6ÿï08@R&media.quetelecharger.com/*/img/banner- +1ÿï08@R!media.rtl.fr/online/image/*_skin- +.08@R media.rtl.fr^*/image/*_habillage +%ÿï08@Rmediabong.*/campaign/ +%ÿï08@Rmediabong.*/loader.js +<ÿï08@R,mediaguinee.org/wp-content/uploads/*-460x68- +6ÿï08@R&medialot.fr/wp-content/uploads/*/Logo- +5ÿï08@R%medialot.fr/wp-content/uploads/*/pub- +8ÿï08@R(medias.jds.fr/medias/direct/*/habillage_ +'ÿï08@Rmediastay.net/delivery/ +5ÿï08@R%mediscom.com/_medias_files/pub_files/ +2ÿï08@R"mediscom.com/imagix/cv_annonceurs/ +8ÿï08@R(meditationfrance.com/2018-images/topban- + ÿï08@Rmeetine.net/ban/ +)ÿï08@Rmeetine.net/bannieres300/ +)ÿï08@Rmeetine.net/bannieres728/ +$ÿï08@Rmeetmuslima.net/ban/ +-ÿï08@Rmeetmuslima.net/bannieres300/ +-ÿï08@Rmeetmuslima.net/bannieres728/ +2ÿï08@R"mega-debrid.eu/images/cessfull.png +7ÿï08@R'meilleures-grandes-ecoles.com/*/int-mb/ +?ÿï08@R/meilleures-grandes-ecoles.com/images/habillage/ +:ÿï08@R*meilleures-grandes-ecoles.com/intertitiel/ +1ÿï08@R!meilleures-licences.com/*/int-mb/ +9ÿï08@R)meilleures-licences.com/images/habillage/ +4ÿï08@R$meilleures-licences.com/intertitiel/ +6ÿï08@R&meilleurmobile.com/scripts/home-mea.js +Aÿï08@R1meilleurmobile.com/scripts/var_xml_backgrounds.js +,08@Rmeilleurmobile.com^*background +/ÿï08@Rmeilleurs-masters.com/*/int-mb/ +7ÿï08@R'meilleurs-masters.com/images/habillage/ +2ÿï08@R"meilleurs-masters.com/intertitiel/ +Aÿï08@R1meilleurstreaminggratuit.com/cgi-bin/snippet.cgi? + €08@Rmemoireetvie.com^ +4ÿï08@R$mensuelautomobile.com/files/banners/ + ÿï08@Rmensup.fr/*/pub/ +(ÿï08@Rmensup.fr/jeux-concours/ +#ÿï08@Rmensup.fr/photo_cc/ +/ÿï08@Rmes-dialogues.net^*/gaysize.gif +0ÿï08@R mesbagages.com/images/habillage/ +*ÿï08@Rmesbagages.com/images/pub/ +.ÿï08@Rmesdialogues.net^*/gaysize.gif +/ÿï08@Rmesliensx.com/images/bannieres/ +'ÿï08@Rmesnotices.fr/shopping/ +Lÿï08@Rÿï08@R.objectifgard.com/wp-content/uploads/*-banniere +>ÿï08@R.objectifgard.com/wp-content/uploads/*/613x154- +@ÿï08@R0objectifgard.com/wp-content/uploads/*/habillage- +Bÿï08@R2objectifgard.com/wp-content/uploads/*/top-affiche- +Dÿï08@R4official-film-illimite.*/wp-content/uploads/*/banner +Lÿï08@Rÿï08@R.pcgamestorrents.com/wp-content/uploads/20*.gif +08@Rperfectgirls.*/*/ +08@Rperfektdamen.*/*/ +5ÿï08@R%permispratique.com/photo/*_habillage_ +2ÿï08@R"petit-bulletin.fr/multimedia/fond/ +-ÿï08@Rpetit-bulletin.fr^*/habillage +>ÿï08@R.petite-annonce-gratuite.com/encarts/bannieres/ +-ÿï08@Rpetitfute.com/img/partenaire/ +,ÿï08@Rpetitfute.com^*/images/pubs/ +Bÿï08@R2pharmaciengiphar.com/sites/default/files/produits- +&ÿï08@Rpharmasite.fr/img/pub/ +)ÿï08@Rpharmasite.fr/medias/pub/ +)ÿï08@Rpharmnet-dz.com/img/pubs/ +)ÿï08@Rpharmtroc.com/images/pub/ +0ÿï08@R php.blick.ch/static/*_blickdeal/ ++08@Rphpsources.org/images_amazon/ +$ÿï08@Rpictime.fr/boss/img/ +#ÿï08@Rpiecesauto.nc/pubs/ +2ÿï08@R"pizzahut.fr/img/habillage_site.jpg ++ÿï08@Rplancul-gratuit.*/disclame- +,ÿï08@Rplancul-gratuit.*/disclamer. +-ÿï08@Rplancul-gratuit.*/popupPerso/ +)ÿï08@Rplancul-paris.*/disclame- +*ÿï08@Rplancul-paris.*/disclamer. ++ÿï08@Rplancul-paris.*/popupPerso/ +6ÿï08@R&planet-casio.com/*/Images/Banniere.png +4ÿï08@R$planet-casio.com/images/partenaires/å +&ÿï08@Rplanet.fr/partenaires/ +(ÿï08@Rplateformemedia.com/pub/ +ÿï08@R playe.vidto. + ÿï08@Rplx.gameblog.fr^ +ÿï08@Rplx.tukif.com^ +*ÿï08@Rpmd-vp-aka.canal-plus.com^ +<ÿï08@R,pme-dz.com/wp-content/uploads/2019/07/01.jpg +>ÿï08@R.pme-dz.com/wp-content/uploads/2019/07/02-1.jpg +$ÿï08@Rpnc-contact.com/pub/ +gÿï08@RWpole-emploi.fr/accueil/image/mmlelement/pj/5b/ac/90/77/ffabtour-banniere-web-v50089.gif +cÿï08@RSpole-emploi.fr/accueil/image/mmlelement/pj/62/a3/83/19/gif-rdv-de-ladie_pe35046.gif +?ÿï08@R/pole-emploi.fr/WebUnidialog//bandeaupieddepage/ +5ÿï08@R%pons.com/p/files/dict_images/widgets/ +ÿï08@R pop.porn.fr^ +ÿï08@R pop3.porn.fr^ + 08@R porn.com^ +%ÿï08@Rporn.fr/v3/index.php? +-ÿï08@Rpornburst.xxx/assets/js/head. +#ÿï08@Rpornburst.xxx/nbjs/ +)€08@Rporndoe.com/movie/preroll/ +.ÿï08@Rporndoepremium.com/video/fake. +!08@Rpornvideospass.com^ +(ÿï08@Rpornvideospass.com^*.gif +-ÿï08@Rpov-house.com/images/banners/ +&ÿï08@Rprelude.me/public/pub/ +:ÿï08@R*presse-citron.net/*/wp-content/*/habillage ++ÿï08@Rprix-portables.fr/js/suo.js +.ÿï08@Rprix-portables.fr^*/habillage- +9ÿï08@R)produits-asiatiques.com/img/asie-shopping +;ÿï08@R+produits-asiatiques.com/img/massage-chinois +4ÿï08@R$progonline.com/js/message_display.js +)ÿï08@Rprojectfreetv.*?d=300x250 + ÿï08@Rpromo.vador.com^ +0ÿï08@R pronosoft.com/*/bookmakers/bwin/ +2ÿï08@R"pronosoft.com/*/bookmakers/unibet/ +7ÿï08@R'pronosoft.com/*/resultats/butenlive.jpg +&ÿï08@Rpronosoft.com/img/pub/ +'ÿï08@Rprotect-url.net/imgbup/ +ÿï08@Rps3-infos.fr/p/ ++ÿï08@Rpsgenforce.net/upload/Bwin/ +ÿï08@Rpub.babygo.fr^ +!ÿï08@Rpub.jeuxactu.com^ +ÿï08@R pub.le360.ma^ +#ÿï08@Rpub.lesinrocks.com^ +#ÿï08@Rpub.macommune.info^ + ÿï08@Rpub.nyu-nyu.com^ +1ÿï08@R!pyrenees-passion.info/WP_img_ban/ +;ÿï08@R+pyrenees-team.com/graphics/baniere/logo.jpg + ÿï08@Rqariya.info/adv/ +,ÿï08@Rqassa.fr/images/*/wallpaper/ +Cÿï08@R3ra-sante.com/wp-content/uploads/2020/01/isosteo.gif ++ÿï08@Rrabbitfinder.com/bannieres/ +<ÿï08@R,radinmalinblog.com/wp-content/uploads/*/pub_ +0ÿï08@R radio-monaco.com/images/banners/ +Jÿï08@R:radio.fr/assets/js/clickperformance/RAD_station.release.js +$ÿï08@Rradiorcj.info^*/pub/ +=ÿï08@R-rajacasablanca.com/site/images/flash_banners/ +'ÿï08@Rraje.fr/images/banners/ +0ÿï08@R rakuten.com/visuels/*-habillage. +08@Rrapeporn.name^ +-ÿï08@Rrapghetto.com/uploads/res.jpg ++ÿï08@Rrapidgator.net/images/pics/ +Aÿï08@R1realite-virtuelle.com/wp-content/cache/min/1/pub. +@ÿï08@R0recette.supertoinette.com/150944/m/autopromo.jpgë +'ÿï08@Rreclame.lequipement.fr^ +(ÿï08@Rrecreatisse.com/strumae/ +Fÿï08@R6recreatisse.com/wp-content/uploads/2018/09/xamazon.png +>ÿï08@R.redirection-web.net/img/ewr-marque-blanche.gif +4ÿï08@R$redirection-web.net/img/google-a.gif +,ÿï08@Rreezocar.com/assets/img/vvv/ +,ÿï08@Rreferences.lesoir.be/widget/ +5ÿï08@R%referentiel.nouvelobs.com/file/rw300/ +>ÿï08@R.reflectim.fr/wp-content/plugins/popup-builder/ + ÿï08@Rregie.hiwit.org^ +#ÿï08@Rregie.story-fr.com^ +&ÿï08@Rremiremontinfo.fr/pub/ +8ÿï08@R(renault-safrane.com/banierre_partenaire/ +<ÿï08@R,rencontres-coquines.jacquieetmichel.net/jm/? +Nÿï08@R>rencontresanslendemain.net/wp-content/uploads/*/banni%C3%A8re- +Iÿï08@R9rencontresanslendemain.net/wp-content/uploads/*/banniere- +Iÿï08@R9rennes-infos-autrement.fr/wp-content/uploads/2022/02/une- +bÿï08@RRrennes-infos-autrement.fr/wp-content/uploads/2022/03/sangles-photo-creationacc.jpg +eÿï08@RUrennes-infos-autrement.fr/wp-content/uploads/creationacc-portefeuille-cuir-souple.gif +Aÿï08@R1rennes-infos-autrement.fr/wp-content/uploads/pub- +2ÿï08@R"republicain-lorrain.fr/images/pub/ +?ÿï08@R/restoconnection.fr/wp-content/uploads/*_banner_ ++ÿï08@Rreverso.net^*/img/blockers/ + ÿï08@Rroadsexe.com/rs/ +,ÿï08@Rroulettechat.fr/dynjs/geoloc +-ÿï08@Rroulettechat.fr/js/adsacwm.js +3ÿï08@R#roulettechat.fr^*/facebook-api-pub/ +4ÿï08@R$routard.com/img/homepart/budget_air/ +0ÿï08@R routiers.com/image/routiers/pub/ +(ÿï08@Rrpgfrance.com^*_pubRPGF. +ÿï08@Rrpjf.com/pubs/ +&ÿï08@Rrtc.be/images/banners/ +ÿï08@R rtc.be/pub/ +3ÿï08@R#rtl.be/ipcreate/widget/jeveux1truc/ +5ÿï08@R%rtl.be/videos/player/vp_videoplaza.js +:ÿï08@R*rue89lyon.fr/wp-content/uploads/*habillage +*ÿï08@Rrue89lyon.fr^*/images/pub/ +9ÿï08@R)ruedesjoueurs.com/images/articles-/promo/ +1ÿï08@R!ruedesjoueurs.com/images/banners/ +=ÿï08@R-ruedesjoueurs.com/images/campagnes/habillage/ +2ÿï08@R"ruedufootball.com/images/partners/ +!ÿï08@Rs-sfr.fr^*/pubns. +!ÿï08@Rs-sfr.fr^*/pubsa. +!ÿï08@Rs-sfr.fr^*/pubtb. +!ÿï08@Rs-sfr.fr^*/pubwm. +/ÿï08@Rs-sfr.fr^*/sky160navmulti.json? +>ÿï08@R.sabqpress.net/wp-content/uploads/2020/03/0.jpg +Dÿï08@R4sabqpress.net/wp-content/uploads/2020/03/mobilis.jpg +1ÿï08@R!sainte-marie-mineral.com/img/pub_ +'ÿï08@Rsaison-streaming.com/z- +@ÿï08@R0salaire-brut-en-net.fr/wp-content/*/img/banners/ +(ÿï08@Rsanctuary.fr/pub*/*.php? +#ÿï08@Rsataid.net/banners/ +%ÿï08@Rsatim-dz.com/images2/ +3ÿï08@R#satlinker.dz/iso_album/partenaires_ +ÿï08@Rsatmag.fr/pub/ +:ÿï08@R*saucissonsexe.com/wp-content/uploads/*.gif +#ÿï08@Rsbx.pagesjaunes.fr^ +3ÿï08@R#scifi-movies.com/images/site/promo/ +-ÿï08@Rscoopnest.com/content_rb.php? +2ÿï08@R"script-pag.com/demo/fr/images/pub/ +'ÿï08@Rsdmy168.com/js/tujia.js +5ÿï08@R%sdv.fr/staticmacg/img/static/avosmac_ +#ÿï08@Rsecurite.01net.com^ë +>ÿï08@R.seduireunhomme.fr/wp-content/uploads/*/Banner_ +0ÿï08@R sendspace.com/images/shutter.png +4ÿï08@R$seneweb.com/dynamic/modules/banners/ +0ÿï08@R serre-editeur.fr/images/banners/ +#08@Rsexadonf.net/_images/ +,ÿï08@Rsexadonf.net/web/hqlinks.gif +08@R sexadonf.net^ +08@R sexe-i.com^ +(ÿï08@Rsexeautop.com/js/tube.js +*ÿï08@Rsexefelin.com/images/*.gif +!ÿï08@Rsexgratuit.tv/tp/ +&ÿï08@Rsexparadisiac.net/out/ +-ÿï08@Rsexparadisiac.net/static/vod/ +,ÿï08@Rsexparadisiac.net^*/img/pub. +%ÿï08@Rsfr.fr//arrow/banner? +$ÿï08@Rsfr.fr/arrow/banner? +%ÿï08@Rsfr.fr/eTagP/msg.jsp? +"ÿï08@Rsfr.fr^*/framePub_ +*ÿï08@Rshink.*/img/downloadad.png +&ÿï08@Rshink.*/js/creative.js +*ÿï08@Rshoppingbox.liberation.fr^ +Aÿï08@R1signification-prenom.com/images/myprenom-site.gif +Iÿï08@R9signification-prenom.com/Images/voyance-par-telephone.gif +5ÿï08@R%silicon.fr/wp-content/uploads/*/skin_ +-ÿï08@Rsite-de-cul.com/images/boost/ ++ÿï08@Rskieur.com/media/HABILLAGE/ +/ÿï08@Rskimagazine.fr/media/habillage/ +%ÿï08@Rskitour.fr/campagnes/ +$ÿï08@Rskitour.fr/divers/a/ ++ÿï08@Rskitour.fr/divers/annonces/ +$ÿï08@Rsky-animes.com/pubs/ +0ÿï08@R sky-animes.com/scripts/liens.php + 08@Rslideplayer.*/*/*/ +!ÿï08@Rsmoothpre.com/ad? +-ÿï08@Rsnowsurf.com/media/habillage/ +:ÿï08@R*sobusygirls.fr/uploads/editor/valentin.jpg +-ÿï08@Rsociete.com/cgi-bin/coalesce? +/ÿï08@Rsocietegenerale.fr^*/Habillage/ +2ÿï08@R"sofoot.com/img/sofoot_partenaires/ +*ÿï08@Rsoleilinvest.com/ima/prom/ +,ÿï08@Rsolimba.com/js/topbar.min.js +Gÿï08@R7solutions-numeriques.com/wp-content/uploads/*-banniere- +Hÿï08@R8solutions-numeriques.com/wp-content/uploads/*/habillage- +/ÿï08@Rsoonnight.com/*_ban_partenaire/ +(ÿï08@Rsoonnight.com/intro.php? +5ÿï08@R%soonnight.com^*/bande_partenaires.png +=ÿï08@R-sortir-prod.s3.amazonaws.com/uploads/annonce/ +:ÿï08@R*sosvirus.net/wp-content/uploads/*336x*.png +8ÿï08@R(soundlightup.com/wp-content/uploads/pub/ +'ÿï08@Rsourdline.com/banniere/ +9ÿï08@R)sous-la-mer.com/javascripts/sunder.min.js +ÿï08@Rsp.nasdaq.com^ +/ÿï08@Rspace-blogs.net/include/pub_ra/ +&ÿï08@Rsports.fr^*/habillage/ +(ÿï08@Rsports.fr^*/partenaires/ +!ÿï08@Rsta.extreme-down. +@ÿï08@R0stade-lavallois.com/media/anime_logo_gcm_470x90_ +5ÿï08@R%stade-lavallois.com/media/partenaires +?ÿï08@R/stade-lavallois.com/media/pavecorevatine470x90_ +:ÿï08@R*stade-lavallois.com/media/pubrelaisalsace_ +-ÿï08@Rstatic.ccm2.net/*/img/appstv/ +'ÿï08@Rstatic.flashx.*/banner/ +.ÿï08@Rstatic.flashx.*/img/player.png +*ÿï08@Rstatic.flashx.*/js/code.js• +Qÿï08@RAstatic.lacentrale.fr/ressources/images/pages/home/spot_banner.jpg +Yÿï08@RIstatic.latribune.fr/media_right_column/1724839/banque-des-territoires.png +:ÿï08@R*static.lci.fr/assets/scripts/modules/ad.js +*ÿï08@Rstatic.lefigaro.fr/figads/ +/ÿï08@Rstatic.mediafire.com/images/dl_ +Cÿï08@R3static.neowebcar.com/app/nwc/pix/allianz-widget.jpg +@ÿï08@R0static.neowebcar.com/app/nwc/pix/cetelem-300.jpg ++ÿï08@Rstatic.pornovore.fr/droite/ +Cÿï08@R3static.pornovore.fr/template/defaut/js/123soleil.js ++ÿï08@Rstatic.pornovore.fr/zboobz/ +9ÿï08@R)static.rtl.fr/versions/www/*/css/skin.css +#08@Rstatic.rtl.fr^*/skin/ ++ÿï08@Rstatic.rtl.fr^*/skin/promo/ +8ÿï08@R(static.s-sfr.fr/export/bloc/*/sky*.json? +7ÿï08@R'static.s-sfr.fr/media*messageriecentral +,ÿï08@Rstatic.s-sfr.fr/media/accga. +.ÿï08@Rstatic.s-sfr.fr/media/accsky*. +108@R#static.wanadoo.fr/webmail/*/meetic_ +'ÿï08@Rstatic.weemove.com/pub/ +/ÿï08@Rstatic.wii-info.fr/js/outils.js +08@Rstatic2.vidto. +Aÿï08@R1statique.lamarseillaise.fr/images/actulegales.jpg +Cÿï08@R3statique.lamarseillaise.fr/images/francemarches.jpg +1ÿï08@R!statique.lnc.nc/_slider/promo.nc/ +$ÿï08@Rstefgagnant.com^*ban +2ÿï08@R"storage.googleapis.com/kompagnion/ +*ÿï08@Rstrasbourg-tramway.fr/ban_ +,ÿï08@Rstrasbourg-tramway.fr/banner +&ÿï08@Rstrcloud.*/mainstream0 +$ÿï08@Rstream-island.*/bup/ +$ÿï08@Rstream-island.*/pop/ +$ÿï08@Rstream-island.*/pub/ +&ÿï08@Rstreambox.club/jsfeed/ +0ÿï08@R streamonsport.club/livesport.gif +0ÿï08@R streamonsport.club/theme/300.png +0ÿï08@R streamonsport.club/theme/600.png +&ÿï08@Rstreamtape.*/adult2.js +(ÿï08@Rstreamtape.*/mainstream3 +%ÿï08@Rstrtape.*/mainstream3 +.ÿï08@Rsudhorizons.dz/images/banners/ +;ÿï08@R+sunnabox.com/bundles/sunnaboxsalat/img/pub_ +*ÿï08@Rsupmag.fr/media/habillage/ +0ÿï08@R supplychainmagazine.fr/Annonces/ +/ÿï08@Rsur-la-toile.com/images/modami_ +4ÿï08@R$surace-jujitsu.fr/outils/images/pub/ +.ÿï08@Rsurf-prevention.com/*/300x300- +9ÿï08@R)surf-report.com/sites/default/files/wall_ +4ÿï08@R$surf-report.com^*/files/weeman_*.jpg +3ÿï08@R#surf-report.com^*/wallpaper293x936- +,ÿï08@Rswisstools.net/*/images/pub/ +*ÿï08@Rsylvainpellier.fr/bandeau/ +&ÿï08@Rsynonymes.com/add-img/ +1ÿï08@R!synonymes.com/js/capping-horos.js +&ÿï08@Rsynonymes.com/storpub/ +6ÿï08@R&syskb.com/wp-content/uploads/*-ban.gif +Bÿï08@R2syskb.com/wp-content/uploads/2020/06/img_5_3_1.gif +6ÿï08@R&syskb.com^*/wordpress-notification-bar +#€08@Rta-meteo.fr/include/ +,ÿï08@Rtahiti-infos.com/photo/*.gif +0ÿï08@R tahiti-infos.com/photo/*abillage +-ÿï08@Rtahiti-infos.com/photo/*banie +,ÿï08@Rtahiti-infos.com/photo/*bann +1ÿï08@R!tahiti-infos.com/photo/*crescendo +/ÿï08@Rtahiti-infos.com/photo/*korando² +,ÿï08@Rtahiti-infos.com/photo/*x120 +,ÿï08@Rtahiti-infos.com/photo/*x150 +,ÿï08@Rtahiti-infos.com/photo/*x90. ++ÿï08@Rtahiti-infos.com/photo/bann +*ÿï08@Rtayo.fr/images/igraaal.gif +0ÿï08@R tayo.fr/images/igrakl-en-bas.jpg +,ÿï08@Rtayo.fr/images/igrKalMid.jpg +"ÿï08@Rtchatche.com/123m? +,ÿï08@Rtcho.fr/assets/img/home_pub. +.ÿï08@Rteam-aaa.com/upload/admin/a_d/ +3ÿï08@R#team-iphone.fr/phpbbtip/images/pub/ +.ÿï08@Rtechnikart.com/images/banners/ +&ÿï08@Rtechpowerup.com/reviyu +4ÿï08@R$telechargerunevideo.com/fr/js/aal.js +*ÿï08@Rtelemb.be^*/image/banners/ +.ÿï08@Rtelemb.be^*/image/videos/*.mp4 +*ÿï08@Rtelemb.tv^*/image/banners/ +.ÿï08@Rtelemb.tv^*/image/videos/*.mp4 +7ÿï08@R'telephoneannuaire.fr/resources/amz*.jpg ++ÿï08@Rtelesatellite.com/images/a/ +.ÿï08@Rtendancehotellerie.fr/img/gif/ +.ÿï08@Rtendancehotellerie.fr/img/jpg/ +.ÿï08@Rtendancehotellerie.fr/spip.php +-ÿï08@Rtendanceouest.com/*/lightbox- +5ÿï08@R%tennisactu.net/*/encarts_partenaires/ +2ÿï08@R"tennistemple.com/images/shop/bann/ +,ÿï08@Rterre.tv/images/partenaires/ +Kÿï08@R;terredauphinoise.fr/w-sm/media/td/coralie/pub_carburant.jpg +'ÿï08@Rtest-achats.be/*/skins/ +%ÿï08@Rtest.sexeanonyme.com^ +5ÿï08@R%tetesaclaques.tv/public/images/promo_ +*ÿï08@Rtextograto.com/iframe1.php +#ÿï08@Rthedoujin.com^*.php +1ÿï08@R!thesiteoueb.net/uploads/banniere/ +%ÿï08@Rthevid.*/style/medio/ +-ÿï08@Rticketac.com/upload/banniere/ ++ÿï08@Rtignes.net/data/habillages/ +3ÿï08@R#tiplanet.org/forum/images/banniere_ +Aÿï08@R1tiplanet.org/forum/images/calcuso_group_2024.webp +7ÿï08@R'tiplanet.org/forum/images/jarrety5.webp +;ÿï08@R+tiplanet.org/forum/images/navbar-sprite.gif +/ÿï08@Rtlemcen-electronic.com/dfox.gif +3ÿï08@R#tlemcen-electronic.com/forum/vf.gif +-ÿï08@Rtlemcen-electronic.com/mf.swf +#ÿï08@Rtoocharger.com/pub_ +<ÿï08@R,tools.macg.co/widget-refurb/refurb-widget.js +3ÿï08@R#toolslib.net/assets/custom/img/4d5/ +5ÿï08@R%toolslib.net/assets/img/placeholders/ +%ÿï08@Rtoomai.fr/img/banner/ +&ÿï08@Rtop-for-phone.fr/imgs/ +4ÿï08@R$topachat.com/images/configo_*compos- +&ÿï08@Rtopjetm.net^*/img/pub. +-ÿï08@Rtopliste-fr.com/filmsdivx.gif +&ÿï08@Rtorrent9.*/rotation.js +ÿï08@Rtorrent9.*/vpn_ +7ÿï08@R'torrentgalaxy.to/common/images/*-lo.png +7ÿï08@R'torrentgalaxy.to/common/images/*-sc.png +:ÿï08@R*toucharger.com/media/files/data/habillage/ +Bÿï08@R2touchdownactu.com/wp-content/uploads/*_unibet_ban_ +$€08@Rtourmag.com/mymodule/ +1ÿï08@R!touslesprix.com/img_*/background/ +,ÿï08@Rtoutcash.com/images/bandeau- +)ÿï08@Rtouteladomotique.com/pub/ +<ÿï08@R,toutgagner.com/jeux-concours/specifique/img/‰ +-ÿï08@Rtoutmontpellier.fr/bannieres/ +*ÿï08@Rtoutpratique.com/imgs/pub/ +8ÿï08@R(trackandnews.fr/wp-content/uploads/*/bg- +5ÿï08@R%trafficzipper.com/rotatorShowBanners- +Aÿï08@R1tranquille-emile.com/wp-content/uploads/*/pub.jpg +7ÿï08@R'transactiondalgerie.com/images/banners/ +;ÿï08@R+transporteurs.net/image/commun/boutique.gif +:ÿï08@R*transporteurs.net/image/transporteurs/pub/ +,ÿï08@Rtrekmag.com/media/habillage/ +Bÿï08@R2tribunejuive.info/wp-content/plugins/smart-pop-up/ +Qÿï08@RAtribunejuive.info/wp-content/uploads/2012/11/PCC_TribuneJuive.swf +Eÿï08@R5tribunejuive.info/wp-content/uploads/2012/12/wizo.jpg +0ÿï08@R tribunejuive.info^*/module_pubs_ +4ÿï08@R$tribunejuive.info^*/PubTribuneJuive. +:ÿï08@R*trictrac.net/documents/formats/background_ +1ÿï08@R!trictrac.net/documents/originals/ +,ÿï08@Rtrixhentai.com/trixhentai.js +)ÿï08@Rtroc-velo.com/images/pub/ +ÿï08@Rtrou-fion.com^ +1 08@R#trovit.*/index.php/cod.get_premium/ +<ÿï08@R,trovitargentina.*/index.php/cod.get_premium/ +,ÿï08@Rtrucsdegrandmere.com/cbs.gif +!08@Rtrucsweb.com^*/ban- +!08@Rtrucsweb.com^*/ban_ +9ÿï08@R)tsa-algerie.com/wp-content/uploads/*-ads. +#ÿï08@Rtube-teen.fr/tools/ +,ÿï08@Rtubixe.com/site/images/*.gif +"ÿï08@Rtukif.com/webcams/ +1ÿï08@R!turbo.fr/themes/turbo/img/333x50- +$ÿï08@Rturbobit.net/vbxpvz/ +)ÿï08@Rturf-fr.com/images/*x250. +-ÿï08@Rturf-fr.com/include/img/*250x +-ÿï08@Rturfomania.fr/*-publicitaire/ +'ÿï08@Rturfomania.fr/banniere- + ÿï08@Rtuto-fr.com/pub/ +Dÿï08@R4tutoriels-video.fr/wp-content/uploads/*/o2switch.png +%ÿï08@Rtv-express.com/regie/ +2ÿï08@R"tv8montblanc.fr/docs/pub/pave1.jpg +4ÿï08@R$tv8montblanc.fr/photo/toorrisime.jpg +5ÿï08@R%tvcom.be/images/stories/bannierespub/ +Fÿï08@R6tvcom.be/index.php?option=com_content&view=article&id= + ÿï08@Rtwitch.tv/track? +&ÿï08@Rubergizmo.com/banners/ +)ÿï08@Ruhit.eu/iframe-secure.jpg +!ÿï08@Ruhit.eu/uhit.html +!08@Runblocked2.vip/app/ +2ÿï08@R"unblockproject.*/images/expressvpn +/ÿï08@Rundernews.fr/*/hip-2015_300.gif ++ÿï08@Rundernews.fr/*/NDH_2k15.gif +9ÿï08@R)undernews.fr/wp-content/uploads/*-ban.gif +:ÿï08@R*undernews.fr/wp-content/uploads/*_head.gif +Jÿï08@R:undernews.fr/wp-content/uploads/2016/06/bitdefender_23.gif +Qÿï08@RAundernews.fr/wp-content/uploads/2018/04/cyberghost-vpn_inPost.png +Mÿï08@R=undernews.fr/wp-content/uploads/2019/06/cyberghost_inpost.jpg +'€08@Rune-recette.com/include/ +-ÿï08@Runleashed.fr/media/habillage/ +?ÿï08@R/unsimpleclic.com/wp-includes/js/wp-embed.min.js +$ÿï08@Ruploaded.net/img/as/ +%ÿï08@Ruploaded.net/js2/*blo +#ÿï08@Ruploaded.net/video/ +%€08@Ruploadgig.com/static_/ +(ÿï08@Rupp-auteurs.fr/annonces/ +08@Rurbeez.com/fond +#08@Rurbeez.com/habillage_™ +ÿï08@Rurbeez.com/pub/ + ÿï08@Rvador.com/showm_ +1ÿï08@R!vador.com/templates/notification/ +/ÿï08@Rvakarm.net/css/sprite_vkm_2.css +ÿï08@Rvakarm.net/pub/ +9ÿï08@R)vakarm.net/statics/images/header/*_black. +2ÿï08@R"vakarm.net/statics/images/main/bg- +!ÿï08@Rvakarm.net^*/pub/ +<ÿï08@R,vbulletin-ressources.com/forum/planethoster/ +6ÿï08@R&velotaf.com/_themes/velotaf/habillage/ +/ÿï08@Rventsdouest.com/images/banners/ +-ÿï08@Rventsdouest.com/images/skins/ ++ÿï08@Rviamichelin.*/img/partners/ +#ÿï08@Rvideo.videos.vidto. +'08@Rvideos-de-celebrites.com^ +08@Rvideos-pornos.eu^ +:ÿï08@R*videos.porndig.com/js/videojs.logobrand.js + 08@R vidlox.*/js/ +ÿï08@Rvidlox.*/video/ ++ÿï08@Rvidmoly.to/static/vastAD.js +ÿï08@R vidsrc.to/lm/ +Jÿï08@R:viepratique.fr/wp-content/uploads/sites/*/Bloc_partenaire_ +8ÿï08@R(village-libertin.com/site_rencontre/ban/ +/ÿï08@Rvinted.*/promoted_closets/list? +<ÿï08@R,vinyculture.com/wp-content/uploads/*-banner- +ÿï08@R viral.onvid. +)ÿï08@Rvirusphoto.com/bannieres/ +%ÿï08@Rvisiclic.fr/banniere/ +'ÿï08@Rvisual-pagerank.fr/pub/ +<ÿï08@R,vitaminedz.com/images/general/pub-vitaminedz +4ÿï08@R$vocable.fr/images/banners/bannieres/ +0ÿï08@R voidspace.org.uk/images/banners/ +)ÿï08@Rvoirfilms.*/embediplayer- +/ÿï08@Rvoirfilms.*/templates/*/300x600 +1ÿï08@R!voirfilms.*/templates/*/habillage +;ÿï08@R+voiturego.com/ezoimgfmt/m.media-amazon.com/ +‚08@Rvosfemmes.com^ ++ÿï08@Rvostfr.club/system/banners/ +#ÿï08@Rvotrepromo.com/pub- +)ÿï08@Rvoxmakers.fr/partenaires/ +6ÿï08@R&voyages-sncf.com/ext/editorial/videos/ +Fÿï08@R6voyages-sncf.com/sites/default/files/*_background_odv_ +&ÿï08@Rvoyeur-webs.com/promo/ +"ÿï08@Rvtube.*/api/spots/ +08@R vtube.*/vtu_ +Bÿï08@R2vulgarisation-informatique.com/upload/partenariat/ +0ÿï08@R vuplus.fr/img/cms/partenaire.jpg +>ÿï08@R.vuplus4k.com/wp-content/uploads/2017/11/02.png +Aÿï08@R1vuplus4k.com/wp-content/uploads/2017/12/cccam.png +ÿï08@Rwalfoot.be/pub/ +'ÿï08@Rwamiz.fr/css/habillage/ +/ÿï08@Rwastedamateurs.com/js/script.js +%ÿï08@Rwawacity.*/img/bopcs/ +`€* + 0rechner.de* + 0calc.com* + +0calc.es* + +0calc.fr* + +0calc.in* + +0calc.ru08@Rweb2. +a * + 0rechner.de* + 0calc.com* + +0calc.es* + +0calc.fr* + +0calc.in* + +0calc.ru08@Rweb2.*/ ++ÿï08@Rwebcool69.com/toplist/bans/ +-ÿï08@Rwebfrance.com/images/*120135. +-ÿï08@Rwebfrance.com/images/*120600. +-ÿï08@Rwebfrance.com/images/*120max. +-ÿï08@Rwebfrance.com/images/*145100. +-ÿï08@Rwebfrance.com/images/*300250. +.ÿï08@Rwebfrance.com/images/*3002502. +,ÿï08@Rwebfrance.com/images/*56090. +,ÿï08@Rwebfrance.com/images/*58090.ú +,ÿï08@Rwebfrance.com/images/*72890. +-ÿï08@Rwebfrance.com/images/*980250. ++ÿï08@Rwebfrance.com/images/back*. +"ÿï08@Rwebftp.ki-oon.com^ ++ÿï08@Rweblettres.net/@images/pub/ +,ÿï08@Rwebmarchand.be/js/ov.js.php? +3ÿï08@R#webrankinfo.com/images/partenaires/ +-ÿï08@Rwebstar-auto.com/banners_pub/ +Aÿï08@R1webstar-auto.com/documents/document_service_*.swf +Aÿï08@R1webstar-auto.com/iframe_autos_neufs_occasions.php ++ÿï08@Rwebxfrance.org/images/bann_ +9ÿï08@R)weemove.com/ressources/images/habillages/ +>ÿï08@R.welovebuzz.com/wp-content/uploads/*-habillage- +,ÿï08@Rwelovetennis.fr/medias/pubs/ +&ÿï08@Rweshrak.com^*/imp.php? +&ÿï08@Rweshrak.com^*/pub.php? +!ÿï08@Rwgcdn.net/widget/ +7ÿï08@R'whassup.fr/wp-content/uploads/*/banner_ +*ÿï08@Rwheregoes.com/img/banners/ +9ÿï08@R)whois-raynette.fr/*/domaine-libre-big.gif +0ÿï08@R whynotclub.com/images/prelinker- +-ÿï08@Rwidermag.com/media/habillage/ +ÿï08@Rwiflix-*/voir/ +ÿï08@Rwiflix.*/voir/ + ÿï08@Rwii-info.fr/ban/ +!ÿï08@Rwii-info.fr/bane/ +ÿï08@Rwii-info.fr/p/ +&ÿï08@Rwikimonde.com/get_aff. +#ÿï08@Rwikimonde.com/mo.js +6ÿï08@R&willemsefrance.fr/media/*/partenariat/ +'ÿï08@Rwinamax.fr/img/banners/ +#ÿï08@Rwinamax.fr/img/pub/ +,ÿï08@Rwindmag.com/media/habillage/ +!ÿï08@Rwinds-up.com/pub/ +6ÿï08@R&worldissmall.fr/*/uploads/partenaires/ +6ÿï08@R&wp.com/www.algerie-focus.com/*/banner- +Yÿï08@RIwp.com/www.algerie-focus.com/wp-content/uploads/2017/05/Sans-titre-12.jpg +Y* +echangedeclics.com* +echangedeclics.fr08@Rwp.com/www.echangedeclics.*/ +5ÿï08@R%wp.com/www.echangedeclics.*/files/ban +-ÿï08@Rx1337x.*/css/images/atopg.gif +"ÿï08@Rx1337x.*/js/script +ÿï08@Rxavbox.com/ban/ +ÿï08@R xbooru.com/x. +'€08@Rxn--mto-bmab.fr/include/ +;ÿï08@R+xstarsnews.com/admin/gestion_bann/banniere. +*ÿï08@Rxstarsnews.com/banner-pub/ +0ÿï08@R yahoo.fr/wp-content/*/habillage/ +(ÿï08@Ryanik.com/pubcitibar.jpg +*ÿï08@Ryeswefoot.com/annuaire.gif +*ÿï08@Ryggtorrent.*/assets/img/a/ +2ÿï08@R"yggtorrent.*/assets/img/banner.jpg +,ÿï08@Ryggtorrent.*/assets/img/vpn_ +6ÿï08@R&yimg.com/dh/ap/default/*/yahoolast.jpg +/ÿï08@Ryimg.com^*/default/*/Habillage_ +!ÿï08@Ryoujizz.com/exoa/ +$ÿï08@Ryoujizz.com^*/cache/ +"€08@Ryourbittorrent.com^ +ÿï08@R yts.*/ypt.js +ÿï08@R yts.mx/*.gif +-ÿï08@Rz-barre.com/fonction/aff*.php +!ÿï08@Rzbporn.com/xdman/ +ÿï08@Rzbporn.com/zpi/ +-ÿï08@Rzdnet.fr/images/base/addv.gif +&ÿï08@Rzebest-3000.com/*.htmlÜ +'ÿï08@Rzestreaming.com/ban.jpg +ÿï08@Rzetorrents.*/z- +.ÿï08@Rzikinf.com/_services/noab.php? +2ÿï08@R"zinfos974.com/docs/images/bandeau_ +0ÿï08@R zone-annuaire.*/images/banniere_ +'ÿï08@Rzone-numerique.com/pub/ +Eÿï08@R5zone-streaming.fr/wp-content/uploads/amazon-video.jpg +3ÿï08@R#zone-telechargement.*/uploads/*iptv +2ÿï08@R"zone-telechargement.*/uploads/hola ++ÿï08@Rzone911.com/images/banners/ +1ÿï08@R!zone911.com/images/logo-banniere/ +2ÿï08@R"zoneadsl.com/_next/image?*-970x90. +'ÿï08@Rzonebourse.com/content_ ++ÿï08@Rzonecss.fr/js/dmc_banniere_ +&ÿï08@Rzoomdici.fr/media/pub/ +%ÿï08@Rztat.net^*/affiliate/ +/08@R!static.eroprofile.com^*/common.js +-08@Rstatic.eroprofile.com^*/jquery- +-08@Rstatic.eroprofile.com^*/jquery. +-08@Rstatic.eroprofile.com^*/json.js +.08@R static.eroprofile.com^*/tools.js +08@Reroprofile.com^ +€08@Rbiteautop.com^ +08@R tube-teen.fr^  #ADSblock#ad-300_atf-label#ad-banner-mobile#ad-banner_atf#ad-desktop-top-banner #ad-masonry#ad-medium-rectangle-1#ad-medium-rectangle-2#ad3  #ad_video #balloonads #balloonads2 #ban728 #ban_pub #bandeau_pub#bandeau_publicite#banner-carbonads #banner-pub#banner970Criteo#bannerLeaderboard#bannerLeaderboardTop #banner_pub #banner_pub_0 +#bannerad1#banniere-pub-top #bannierePub #bannierePub2#banniere_partenaire #banniere_pub #bas_pub #betAds1 #bg_pub +#bigadvert #blk_advert #bloc-fondpub  #bloc-pub#bloc-pub-droite-120-600#bloc-pub-gauche-120-600#bloc-pub-gauche-160-600#bloc-pub-headerç  #blocPub300#blocPub_CARRE_PUB#blocPub_MEGABAN#blocPublicitaire  #bloc_pub#bloc_pub_carre#bloc_pub_outer_float#bloc_pub_p4_top"#block-acp-block-publicite-top#block-fcbloc-publicite#block-gc-ad-bloc-centre-1#block-gc-ad-bloc-centre-2#block-gc-ad-bloc-centre-3#block-gc-ad-bloc-droite-1#block-gc-ad-bloc-droite-2#block-gc-ad-bloc-droite-3#block-gc-ad-dhtml#block-gc-ad-dhtml-mobile#block-gc-ad-megaban-haut#block-gc-ad-pave-haut#block-gc-ad-pave_bas#block-gc-ad-pave_haut#block-gc-ad-purl#block-pub-pav2#block-pub-pav3#block-rf-pub-middle#block-rf-pub-middle2 +#block_pub#block_pub_article#block_regie_pub_bas #block_regie_pub_bas_article +#bloctopad#bodyGoogleAnnounces #bodyPanpub#bonga-bottom-banner#bonsplansprospect #bottom-adv #bottom-pub#bottom-right-pub#bottom_ad_space #bottom_pub #box-izipub +#box-pub-1 +#box-pub-2 +#box-pub-3 +#box-pub-4 +#box-pub-5#bsa-block-125--125#bsa-block-1920--1200#bsa-block-250--250#bsa-block-250--600#bsa-block-300--250#bsa-block-300--600#bsa-block-336--280#bsa-block-468--60#bsa-block-728--90#bsa-block-970--250#bsa-block-970--90#cadre_infoads#cadre_pub_bas#captchmeCapsuleContent +#carre-pub +#carre_pub #carrepubHomeñ +#cb_t1_before_content_ad#colgauche_pub #comment-ad +#commentad #community-ad#community-ad-unit#container-pub#container_pub#container_pub_left #conteneurPub#conteneur_pub#content_left_pub #content_pub#content_pub_carre#contenu-text-publicite#contenu_liens-sponso#contextualAds#contextuel-publicite-video#coreads-wrapper +#criteoDiv #criteoDiv1 #criteoDiv2 #criteoDiv3  #criteoad#crocopush_banner#current_side_ad +#custom-ad#custom-fake-media-player #data-ad-name#data-ad-provider #derperd-ad +#desktopAd#desktopMessageAd#dfp-banniere_haute#dfp-habillage #dfp-pave_bas#dfp-pave_milieu#dfp_banniere_bas#dfp_banniere_haute#dfp_droite-ga #dfp_inread  #dfp_left +#dfp_right #displayedPub #div-ads#div-gpt-ad-Banniere_Haute#div-gpt-ad-Habillage#div-gpt-ad-Pave_Article#div-gpt-ad-Pave_Bas#div-gpt-ad-Rectangle#div-gpt-ad-banniere_haute#div-gpt-ad-habillage!#div-gpt-ad-mainColumn_double #divADV #divHomeAd1 #divHomeAd2 #divHomeAd3 #divPub#divPubAccueilGauche #divPubEntete#divPubRecetteDroit#divPubRecettePortable#divPublicityLateral#div_banniere_pubâ +#div_for_adnplay#div_invideo_ad#div_pub_google#dm_ads_Ban_desktop_bottom#dm_ads_mobile_bottom #dst_pub_728 #eShowPubTop #ebuyclub-ad#ecsc-ad-wrapper#encart-adsense-top-single #encart_pub#encart_pub_image #entete_pub +#exoad#external-floater-ad-wrap#fake-player-wrapper#favoris_pub_ligatus#fecharads1-fx#fecharads2-fx #firstpost_ad #fixe_plugin +#fixed-ads #floated-ad  #foot_pub#footer-ad-formation#footer-advertising #footer-pub#footer-reklam#footer_728x90_ad#footer_haut-publicite #footer_pub #footerpub1 #footerpub2 #footerpub3 #footerpubs #for_ad#free_pub_head#fuck-adb-enabled#fullScreenAdBg#game_leaderboard_container #gbPub728bas#general_subpub #google-ads-1 #google-ads-2 #google-ads-3 #google-ads-4#google-adsence-300-250#google-dfp-middle#google-dfp-right#googleAdSense #google_adds#google_adsencetxt#google_csa_ad_unit_RHS#google_csa_box_RHS"#gpt-ad-300x250-300x600-bottom #gpt-ad-728x90-970x66-bottom#gpt-ad-habillage#gpt-ad-inread#gpt-leaderboard-top  #grid-pub#habillage-mad#habillage_pub#haut_site_pub  #head-pub +  #head_pub #header-promo #header-pub#header-pub-banner#header-pub-top#header-standard-advert +#headerPUB +#headerPub#header_728x90_ad#header_bloc2_pub #header_pub#header_pub_contenu +#headerpub #hideAd #home-advert  #home-pub#home-pushdownAd#horizontal-pub#hp-pub-block-980x200#hp_ad_most-played#hp_ad_top-right#idpublicitepave#iframe-anAdScPpNgb160x600#iframe-pub-120x600#iframe-pub-300x250#iframe-pub-300x600 +#iframepub#iframesidebarpub#ima-ad-container #imagePubPave #inReadVideo +#inads #incontent_ad#incontent_ad2#incontent_ad3#index_module_pub#infinite-adslot-2#infopopup > a > img #infosad#inlineaddesktop  #innerpub#insidepage_ads  #intextad#ipBlock-LargeAdBox#ipBlock-mainAdBox +#j_ads#jasmine-ad-wrapper#js-MobileAd-insert#js-game-leaderboard-bottom#jw_video_popup  #keep-ads#kk-adsense-bottom#large-banner-ad#large-banner-bottom-ad#leaderboard.ads#left-ads-rail#left_slide_pub#lht-advertising #lht-space-ad #libelle_pub#liens_sponsorises #loading-ad #loop_advert#loop_advert_containerê #mainColRightPublireportage#mb_moving_container#mb_video_sponso#mb_video_syncad_bottom#md-media-overlay-ad#meaPubContainer#middle-publicite #milieu_pub#miniBoutiquePub#mobileMessageAd #mod-ad-msu-3 #modp-300600#module_publicite #monetiz-pub  #msgNoPub +#native_ad#news-droite-publicite#news_pub_centre #nf-fixed-ads#nuggadcontentadIF #oPublicite  #om_ads-7 #overVideoAd#over_video_ad#pagelet_advertiser_panel #partner-ads #partner-ads2  #pave1_ad  #pave2_ad  #pave3_ad  #pave4_ad #pavePub  #pave_pub #pavepub #photos_ad300#pie_pub_google #play-advert#player-advvertising#player-option-fake +#playerPub +#pm300x250  #pm728x90 #pmFooterBody #pmFooterMain #pmHeaderMain #pmd300x600 +#popup_pub #post_id_pub#posterAdContainer  #pre-1adv  #pre-2adv #pre-ad #product-ads +#psreklama #pub-200x197 #pub-300-250#pub-300-250-google #pub-300x250#pub-468-60-google #pub-468x60 #pub-728#pub-728-90-google#pub-728-90-sous-categories #pub-728x90ì  #pub-730x90 #pub-970x90#pub-after-adownload #pub-ban #pub-banner#pub-banner-content#pub-banner-refresh #pub-bottom #pub-carasexe +#pub-caree #pub-center #pub-collante #pub-dfp#pub-dfp-footer#pub-dfp-footer-fixe#pub-dfp-pano-bottom#pub-dfp-pano-top#pub-dfp-prehome#pub-dfp-rect-bottom#pub-dfp-rect-cont#pub-dfp-rect-middle#pub-dfp-rect-sp1#pub-dfp-rect-top#pub-display-120x600#pub-display-300x250#pub-display-300x600#pub-display-468x60#pub-display-728x90 #pub-droite #pub-footer#pub-ftv-middle#pub-habillage  #pub-haut#pub-haut-adblock  #pub-head #pub-header +#pub-large  #pub-left  #pub-main #pub-middle #pub-middle2 #pub-pave1-d #pub-pave2-d #pub-pave3-d +#pub-right#pub-right-bottom#pub-right-bottom-msg#pub-right-top#pub-right-top-ads-refresh#pub-right-top-msg #pub-sky  #pub-text #pub-top #pub-widget #pub-widget2 +#pub01#pub1-passback #pub120x600 #pub160 #pub160x320 #pub160x600#pub2-passback #pub250#pub3-passbackæ #pub300 +#pub300250#pub300_adscreen #pub300_home #pub300x120 #pub300x250 #pub336Criteo#pub336bas-criteo#pub4-passback +#pub468x15#pub468x60_centree#pub468x60_droite#pub468x60_gauche#pub468x60_match#pub468x60_text#pub468x60_text2 #pub728 #pub728_ATF +#pub728bas#pub728caracpub +#pub970acc#pubAdBlockHabillage #pubArticle  #pubAside +#pubAside2 #pubBandeau +#pubBanner +#pubBottom#pubBottomRight  #pubCarre +#pubCenter #pubChronique #pubContainer +#pubDeclic +#pubDroite +#pubEncart #pubEncart1 #pubEncart2  #pubFlash  #pubFloat  #pubFrame #pubHaut #pubHead +#pubHeader#pubHorizontale #pubImg #pubLeft #pubLigatus +#pubMiddle#pubMiddleRight#pubPartenaires  #pubPave2 #pubPosition1 #pubPosition2  #pubRight#pubRight-show#pubSidebarHaut #pubTop #pubTopPage  #pubVideo +#pub_1 #pub_300_100 #pub_300_250 #pub_300x250ü #pub_300x250-1#pub_300x250-2 #pub_460x60 #pub_468x60 #pub_728_90 #pub_728x90 #pub_728x90-1 #pub_728x90-2#pub_articlefooter #pub_ban #pub_bandeau #pub_banner#pub_banniere_basse#pub_banniere_haute#pub_banniere_medium #pub_bas#pub_bas_droit#pub_bas_gauche #pub_bottom #pub_brique +#pub_carre #pub_carre_1#pub_col_droite#pub_col_right #pub_column#pub_container#pub_contener_right #pub_content #pub_criteo#pub_dfp_article#pub_dfp_banniere_basse#pub_dfp_banniere_haute#pub_dfp_banniere_middle#pub_dfp_droite_haute#pub_dfp_flash_trans#pub_dfp_habillage#pub_dfp_pre_home #pub_droite #pub_droite_2 +#pub_enbas #pub_enbas1 #pub_entete #pub_entete1#pub_extensible #pub_footer#pub_footer_banner #pub_gauche #pub_gauche_2 #pub_geante  #pub_haut  #pub_head #pub_header#pub_header_chaine#pub_header_droite#pub_horizontale#pub_interstitiel#pub_leaderboard #pub_lecteur#pub_lecteur_0  #pub_left #pub_megaban#pub_megabanner#pub_middle_home  #pub_paveÍ  +#pub_pave2 +#pub_pave3 +#pub_pave4#pub_pave_article#pub_pave_bottom #pub_pave_top #pub_plop-1 #pub_plop-2 #pub_plop-3#pub_pole_position1 +#pub_pupop#pub_rectangle#pub_rectangle_moyen_bas +#pub_right#pub_slide_droite #pub_soonight #pub_square +#pub_texte #pub_top#pub_top_droit#pub_top_gauche #pub_ventre #pub_voyage #pubarticle2 #pubarticle3 +#pubbanner #pubbas #pubbetween  #pubcarre #pubcentrale#pubchageapresmiddle#pubchargeapres #pubcol2 #pubcoldroite #pubdetaillg #pubdetaillg2 +#pubdirect #pubdirecte +#pubdroite #pubdudessous #pubflottante +#pubfooter#pubfooter-md-lg #pubfooter-sm #pubfooter-xs +#pubgauche +#pubgoogle #pubhaut +#pubheader#pubhomeheader#pubiframe_sky#publ1c1te_300_250#publ1c1te_728_90#publicidad-videoancho #publicidade#publicidadlateral1#publicidadlateral2 +#publicite#publicite-bas#publicite-principale #publicite2#publiciteDeMesPartenaires#publiciteHaut#publicite_468_60Ø +#publicite_728_90#publicite_banniere#publicite_banniere_haut#publicite_droite#publicite_gauche#publicite_header#publicite_liste_bookmaker#publicite_orange#publicite_right#publicite_top#publicite_txt #pubmegaban#pubnativepassback #pubpreroll  #pubright#pubsCommentGoodDeals #pubsidebar #pubsousmenu#pubsousmenu-md-lg #pubtop #pubtopflex#quads-ad3_widget#quads-ad4_widget  #rail_ad3 #rectSlotAd#reklaamacasino2#reklam-160x600#reklam-468x60#reklam300x250#reklam300x600 +#reklamDiv #reklam_mgid  #reklama2  #reklama3#reklamarkaplan +#result_ad#right-side-ad #rightCol_ad#rightReklamIc #right_ad_3 #right_ad_4 +#right_pub#right_slide_pub#rightadBorder3#rightcolumn_160x600ad #rightpubbox#rightrail-ad-2#rotate_textads_2  #roundPub +#sagreklam #sbPubRegie#script-fallback-pub336%!#script-fallback-pub336bas-criteo #section-ad2#sg-pub-980x200#shopper-widget-wrapper#shopper_adsense##show_banner_bottom_leaderboard#show_banner_leaderboard#sideBarGoogleAnnounces #sideBar_pub1#sideBar_pub1_content#sideBar_pub1_title #sideBar_pub2† +#sideBar_pub2_content#sideBar_pub2_title#side_ad_container_B  #side_adv  #side_pub #sidead2#sideadcontent#sidebar-bottom-pub #sidebar-pub#sidebar_advert_widget#sidebar_pub_top #sitePubTop#skin_container_sidebar_ad#skin_td_sidebar_ad  #slidepub#small-banner-ad#small-banner-bottom-ad +#sneaky-ad +#solreklam#sp-entete-pour-la-pub #spaceForPub#splashbox-advcorner#sponsor-block#sponsor_google#sponsor_sidebar#sponsored-container#sponsoredContainer#sponsoredItemtop#sponsoredProducts#sponsoredResultitem#squareadvertise #standardAd0 +#stickyDFP #stop_ad#subheader_pub #tab-ad#tagPubBanniere#tag_pub_footer#teads_placement +#teaserPub #thePubDiv2 +#ticker_ad#titre-publicite #top-left-pub#topAdContainer728 #topAdscenter#top_player_adv #top_pub #top_side_pub +#topleftad #toppub #toppubbutton +#tower_pub #tube_ad_wrap #under-pl-ad +#user18div #vHeader-pub #vertical-ad #vertical-ads#videoOverAd300snd  #videoadv#videoplayerpub #wb_Adtext1 #wb_Adtext2è  #werbeblock #widget-pub-2 #widget-pub-3#widget_box_pub #wrapper-pub#wrapper_inread#youfoot-ad-banner#zatvorit-reklamu-popup1 #zone-sponso  #zone_pub +#zone_pub1 +#zone_pub2.MIXADVERT_NET +.Middle-Ad  .ad--desk .ad-container +.ad.banner .ad.billboard.ad.onlyMobile .ad_skyscrap  .ads-bloc.ads-container  .ads-foot.ads-footerBanner +.ads-group +.adwrapper.ap-AdContainer .article__ads .ban-728 .ban_pub.bandeauClosePub .bandeau_pub.bandeau_pub_630.bandeau_pub_centre.bandeau_pub_promo.banndar468x60.banner-ad-link.banner-adsense-holder.banner-leaderboard.banner_40X160.bannergroup_bannierepub .banners-adv .banniere_pub.barre_adsense.before-side-nav-ad .bg-adsense.bg_ads300x250.bi-ads-mobile.big-leaderboard.bigLogoAnnonceur .bigadbvert +.bigadvert .bigbox-pub  .bireklam +.bireklam2 +.bireklam3 .blc_ads_home  .bloc-ads.bloc-ads-container.bloc-ligatus-300.bloc-ligatus-500.bloc-parution-ad  .bloc-pub.bloc-pub-center-leftÌ +.bloc-pub-side +.bloc-pub2 .blocPub.bloc_annonce_2_ad .bloc_pub_250.bloc_pub_250_s_marge .bloc_pub_300 .bloc_pub_728.bloc_pub_header.bloc_pub_left.bloc_rightcol_pub.blocactucatpub.block-advertising-insert.block-artwhere-ads.block-cPublicite.block-dm-ads-prisma .block-gc-ad +.block-pub.block-pub-ban-btm.block-pub-ban-forum.block-pub-ens-th-forum.block-pub-fee1.block-pub-max-300x600.block-pub-partenaires.block-pubimage .block-rf-pub.block-with-ads-banner.block_ad_container .block_adtop +.block_pub .block_pub1 .block_pub2.block_small_pub .blockgrayad.blockpubiframe .blocpub .blocpubbas.border-box-ad .border_ads.bottom-ad-mob-tab.bottom-ad-normal .bottom-adv2.bottom-advertising.bottom_ad_con +.bottompub.box-advertisement-bottom.box-advertisement-top.box-centered-ads  .box-pubb +.boxAdLeft .boxAdRight  .boxAdTop.box_publicites.box_publicites2.box_publicites3.box_publicites_bg +.boxadvert .breaking-ad.bumpable-ima-ad-container +.bupgoogle.business-details-ads .buzz-ad-post.buzz-ad-post-top  .buzz-adsã + .bxl-advert.c-ads-sidebar.cadre-162-pub.cadre-pub-google +.cadre_pub  .cadrepub.cadrepubfooter.campagnePUBcoldroite .cap-ads.cap-ads-mobile.cap-ads-placeholder .cap-ads-text.card--row-ads .carouselpub.carouselpub300 .carouselpubf +.carre_pub  .carrepub .catAds.category__mobile-ads.closeStartAdZone .co-ads .col-advert.col-droite-pub-milieu.column_in_pub.common-ad-styling .container-ad.container-pubcarre .containerAds.container_pubcentrale.contenedorAds.conteneur_ligatus.conteneur_pub.conteneur_pub_250250.conteneur_pub_300250.conteneur_pub_footer.conteneur_pub_horiz.conteneur_pub_vertical.content-ad-bloc.content-pub-top.content-side-ad.content_slide_pub.contenu-bloc-sponsorise.coreads-wrapper.coreads_habillage.cpm-advertisement .creatividad .criteo-ban  .criteoad.ctn_ads_twins +.cubes-ads .d-ad-megaBan.deck--below-ads.deck--top-ads.delayedAdvertising.description_ad .desktop-dsa.desktop-ff-ads.desktop-ff-ads__main.desktop-mobile-ads .desktop-mobile-ads__desktop .dfp-ads.dfp-slot-bas-banniere.dfp-slot-habillageÕ .dfp-slot-megaban .discoverAd.div-publiciteh .divAd_Header .divAdsBottom .div_ads.div_pub_728_90.dm_ads_InRead .dossier-pub .dp-ad-chrome.dp-ad-visible.drop-down-advert .drt-ad-url.drt-sponsor-block.drt-sponsor-data.e3lan-below_header .e3lan-bottom .e3lan-cell .e3lan-post .e3lan300-600.e3lanat-layout-rotator .ebam_ad .encart_pub.espace-pub-top.esv-pub-300-250  .etiq-ads.expressAdBanner .facebook-twitter-ads-728-90 .fakeAd.fake_embed_ad_close .fake_player .fdw-ads .fig-ad .fig-ad-pave.fig-native-ads.fig-wid-ads-img .fix_reklama .fixedAd  .flash-ad  .flayr-ad .fly_head_ad .footer--pub .footer-pub.footerAdsPaves .footerlinkad.footerpubleft.footerpubright.frame-ads-left.frame-ads-right.frame-ads-top.frameForMoney +.ftAdPaves .ftv-ad-pave.full-width-add-footer .fun-adsense.g-ads-336-250 .gamebot_ads .gametop_ads.google-ads-keylink .googleAdTag .googleAds468 .google_ad2 +.gptAd .gr-ads-imu‰ +.gr-ads-imu-sticky  .green-ad .gtm-pub.gutter-ads-container .gz_ads_title +.h2-advert.hb__ad--bottom.hb__ad--content.hb__ad--header .hb__ad--side.head-advrtsmnt  .head-pub.header-add-wrapper .header-adds.header-blocked-ad.header-box-ads .header-promo .header-pub.header-pub-class.headerBannerAds +.headerPub .header_ad_3 .header_ad_4 .header_adv.header_bloc_pub.header_link_ads .header_pub.header_sponsors.header_top_ads.hidden-horizontal-pub.hide-pub-1000x90.hide-pub-300x250.hideStartAdZone +.hmads_1x1.hmads_300x250 +.hnadszone.home-ad-region-2.home-career-side-ad.home-jobs-side-ad  .home_pub .hori-advert.horizontal-pub  .howtoads.ibd-videos-paid-ad .iframe_pub +.iframeads +.iklan .iklan1 .iklan2.in_stream_banner.in_up_ad-area.inpage-adspace.inplayer_banners.insertPadList.insert_pub_center.inside-pub-container.inside_adv_section.istdg-sponsored.it-sponsor-site.item-ad-header .item-izipub +.item-pubb.item-pubb-728.itemlist-block-pub« .jeg_ad_module.jeg_ads_hide_desktop.jeg_ads_hide_phone.jeg_ads_hide_tab.jnews_article_bottom_ads.jnews_article_top_ads .job-ads.job_ads_container.js-ads-imu-sticky .js-smart-ad.js_DivPublicityLateral.jt-poublicidadContainer +.kadmer-ad.kelkoo--publicite.la-une__mobile-ads.label-pub-span  .labelPub.label_advertising.large-ad-center-close.large-left-ad.layout__adHeader.layout__adPlaceHolder +.lazypubli .lbl-ad.leaderboard728 .leftSideAds.left_middle_ad .left_top_ad .leftaddsense .leftmenupub +.lftBigAds.lien_commerciaux_bann .lien_commerciaux_bann_texte .lien_sponso.lien_sponsorise .liens-sponsorises__external.liens_commerciaux  .line-adv.link-background-advert  .link-pub .list-ads-282 .list-ads-468.listing_list_ad .little_pub.logo-right-ads  .logo_pub +.lrAds .ltas_adspot .m-adbanner.m-adbanner--megaban.m-adbanner--megabanfooter.m-adbanner--newsinread.m-adbanner--newsunder.mailPubHeader .map_fond_pub.marketing-container.masthead-overHeader".matador_dfp_channel_ad_widget.mb_video_syncad.mbanner-ad-wrapper .mdmAd-inner#.media-pub-1-in-article-adsence#.media-pub-2-in-article-adsence .megapubé  .midads.middle-publicite.mobile-ads__close.mobile-ads__main +.mobile_ad.mobile_adhesion.mobile_instream_ad.mod-ad-middle .mod-ad-top .mod-ad-top-2.mod-advertisement +.modAd  .modalPub .module-pub .moduleAds728.module_epg_publicite .module_epg_publicite_level0.module_sponsored.moduletable-pub2 .mom-ads-wrap .movie_728_90.mpu-adv-revamp  .mueveads .myAd .native_ad2 +.nativeads +.navAd +.nead-card .newads.nextread-advertisement .nf-aside-ads.nf-aside-ads__legal .nf-fixed-ads .nipnadszone.node-publicite.nosub-side-ad.nosub-side-ad-pos .null-ad .oa_bannerPub .oan_ad.oas-ad-160-600.oas-ad-728-90 .oas-ads-box.oas-ads-box-in .oas-ads-buy .oboxads.oboxads-ad-widget.oboxads-outstream .ocultar-ad.of-ad-container.openx-billboard +.orange-ad .ot_ads.outer_ads_left.outer_ads_right.outside120SkyAd.outside160SkyAd.outside300SkyAd.p-floating-ad-wrapper.p-with-floating-ad .padAdv +.padscreen .page-head-ad.pageLoadAdBoxœ + +.pagin_pub.pane-st-dfp-ads +.panel-ads +.panel_pub.panet-mars-adv-panel +.parent_ad.partner-asset-left-ad.partner-asset-right-ad .partner-pub  .pave-pub.pave_google_300_250  .pave_pub +.pave_pub2.paywall-widget-mosaic-ads .paywallAds .picads  .pjsleads.placeholder-pub_dfp .player-adv.player-adx-block .player-pub.player-screen-ads.player-screen-ads-item.player-screen-ads-list.player-screen-ads-wrapper.player-sponsor-block .player__ads .player_bg_ad +.playerpub .pmd-ads.pmd-ads-300x310.pmd-ads-300x600.pmd-ads-desktop.pmd-ads-mobile.pmd-ads-placeholder .pmd_dfp_ad .pmdfp-placer.pmdfp_habillage .po_wads  .popupads.porn-videos-ads .position_pub .ppub300.promo-extend-pub.promo-google-300x600.promo-google-300x600_new.promo-partenaire .propads +.pstAd .pstAdLegend .pub-1000x90.pub-1000x90-bottom.pub-1000x90-top .pub-138x200 .pub-160-600 .pub-290x200 .pub-290x80 .pub-300 .pub-300-250.pub-300-250-600 .pub-300-corp .pub-300x250.pub-300x250-bottom.pub-300x250-du-basè .pub-300x250-top .pub-300x600.pub-300x600-bottom .pub-300x85 .pub-336x280 .pub-468x60 .pub-728 .pub-728-90 .pub-728x90 .pub-730x90 .pub-960x90 .pub-970 .pub-970x90 .pub-980x200 .pub-Adtech  .pub-adsn.pub-after-download .pub-ban .pub-banner +.pub-block .pub-bottom  .pub-btns +.pub-carre.pub-carre-smart-php .pub-condor.pub-container.pub-container-bas.pub-container-haut.pub-container-middle .pub-demipage .pub-detail-1.pub-double-bande.pub-droite-player.pub-fil-discussion .pub-gigaban.pub-half-width  .pub-haut.pub-home-news-bloc .pub-img +.pub-index.pub-index-gauche +.pub-label.pub-ligatus-article .pub-megaban.pub-megabanner.pub-oan-rectangle-bottom.pub-oan-square-side.pub-partenaires  .pub-pave +.pub-promo.pub-push-produit.pub-rectangle-php .pub-replace +.pub-right.pub-rotate-bottom .pub-sidebar1 .pub-sidebar2.pub-single-top  .pub-text .pub-top .pub-top-site .pub-trailer.pub0-if-commerciales.pub1-if-commercialesš .pub160x600 +.pub242x90 .pub300 +.pub300250 .pub300250L .pub300250R .pub300_600.pub300_contenu .pub300a .pub300b .pub300c  .pub300px.pub300sidebar .pub300single .pub300x250.pub300x250_home .pub336 .pub336footer.pub350x250left .pub468 .pub468100top  .pub46860 +.pub468x60 +.pub468x80 +.pub600200 .pub728 +.pub728-90  .pub72890.pub72890-forum +.pub728_90 .pub728a .pub728b .pub728c +.pub728x90 .pub950  .pub96590 +.pub970x90 +.pub980x90 .pubAnnouncer +.pubBanner.pubBannersContainer.pubBottomRight .pubBox .pubButton300 .pubContainer .pubContent  .pubFlash .pubGoodDeals .pubGoogle300 .pubHabillage .pubHead +.pubHeader .pubHeading +.pubIframe  .pubLarge .pubLeft +.pubMobile .pubPadding .pubPave  .pubRight +.pubRight1 .pubText  .pubTitle .pubTopÏ .pubTopContainer  .pubVideo  .pub_1000.pub_1000_center.pub_1000_center_1.pub_1000_center_2.pub_1000_liste .pub_120x600 .pub_160_600 .pub_160x600 +.pub_2_728 .pub_300 .pub_300-250 .pub_300_250.pub_300_250_right.pub_300_250_right_interne .pub_300_600 .pub_468 .pub_468x60.pub_468x60_bas.pub_468x60_haut .pub_728 .pub_728-90 .pub_728_90 .pub_article +.pub_bande .pub_banner.pub_banner_bot .pub_banner_h.pub_banner_top.pub_bottom_post +.pub_carre .pub_centre  .pub_club.pub_container.pub_container_600 +.pub_droit .pub_droite.pub_encart_content +.pub_forum  .pub_head .pub_header.pub_header_banner  .pub_info .pub_kelkoo.pub_leaderboard  .pub_left.pub_left_content .pub_loader .pub_middle .pub_mobile.pub_mobile_une  .pub_open +.pub_outer  .pub_pave  .pub_plus .pub_premium  .pub_prod.pub_rectangle_300x100.pub_rectangle_300x250.pub_rectangle_728x90.pub_rectangle_moyen_out.pub_rm_inter_posts_forum .pub_skyæ .pub_skyscraper  .pub_slot .pub_square .pub_tag  .pub_text .pub_timeline .pub_top .pub_topright .pub_vertical +.pub_video .pub_vignette .pub_visuel.pubaccueildroite1.pubaccueilgauche1 .pubads .pubadsense .pubarticle.pubaudessunews .pubb-336-1 .pubb-336-2 .pubbigsize.pubbottomvideo .pubcontainer .pubfond  .pubimage .pubind1 .pubind2 .pubitem  .publSbar  .publarge .publicidad.publicidade-rodape +.publicite.publicite-bas.publicite-box .publicite1 .publicite2 .publicite3 .publicite4 .publicite5.publiciteHeader.publicitePartenaires .publicite_1 .publicite_2 .publicite_3 .publicite_4.publicite_468x60 .publicite_5.publicite_droite.publicite_droite_600.publicite_gauche.publicite_horizontale_well".publicite_horizontale_wrapper .publicite_l.publicite_locale.publicite_mobile.publicite_mobile_300x250.publicite_mobile_cache .publicite_r.publicite_resp.publicite_sidebar.publicite_sous_slider.publicite_text .publiciteacð .publiciteright +.publicity.publicityBottom.publicityRight.publireportage.publireportageFront.publireportage_simple .pubovh +.pubovh300 +.pubs-mini +.pubs_over .pubs_over1 .pubsidebar .pubsky .pubsoustag  .pubtexte .pubwrapper +.purple-ad.push-service-pub.question_page_ad.quickads_table.r-pub--banniere.r-pub--inread.r-pub--leader.ratio-ad-header.rd-widget-ads  .regiePub +.regiePub2 .regiePub728.region-pubheader.reklaama-casino2 .reklam-gizle .reklam-side.reklam-videoyan .reklam728x90.reklam_300_250.reklam_300x250.reklam_728_90 .reklama-box .reklama_vip +.reklambox +.reklamgec .reklamlink.related-stories-ad-unit.release-mangas-pub.remove-ads-component +.removeAds .remove_ads.replaceDelayedAds.responsive-house-ad.right-advertising  .rightPub.rightRailAdContainer.right_ad_box2.right_adv_block.right_advertissment.right_middle_ad .right_top_ad.rigthpubvideo +.ritBigAds  .river-ad .row_pub.sag-reklam-120x600  .scpe-pubô .sd-ad-container.sd-ad-wrapper.sda-img-container.search_publicity_box.search_square_publicity.section-ads-center +.separepub.shareaholic-ad.shareaholic-ad-content.shareaholic-canvas.shareaholic-dis-ad-col-2".shareaholic-dis-ad-contains-2 .shopperAds  .show-pub#.show_banner_bottom_leaderboard.show_banner_leaderboard.shvertise-banner .sidbar-ad1  .side-pub .side-pub-img.side_content_pub.side_slide_pub.sidebar-ads160 .sidebar-adv.sidebar-header-pub.sidebar-middle-ad.sidebar-wrapper-advert.sidebarAdHome .sidebar_adds.sidebar_share_ads.sidebarpub350250 +.simple-ad.single-top-ads.single-top-ads-bloc.site-inner-ads.site-pub-interstitiel.site-pub-skin .site-pub-top.six-article-with-ad.skin_outer_ad.skyscraper-ad-2 .smiliar_ads.snippet-publisher.soar-media-global.sol-reklam-120x600.span_pub_normal.special-banner.sponsor-inread.sponsor_leaderboard.sponsor_leaderboard-wrap.sponsor_sidebar.sponsored-amazon.sponsored-articles.sponsored-by__highlighted.sponsored-by__main.sponsored-by__main-wrap.sponsored-by__other.sponsored-by__outer.sponsored-fly.sponsored-fly__brand.sponsored-fly__close.sponsored-fly__head.sponsored-fly__head-outer.sponsored-fly__open  +.sponsored-panel.sponsoredLinksContainer.sponsoredLinksInfo.sponsoredPrisma.sponsored_banner.sponsorfooter .square-pub.squareadboxext.squareadevertise.squareadvertise .srcPub .srcPubZone.stackcommerce-widget.stage-advertising  .stageAds.standard_adv_link.sticky-ad-holder.structure_wrapper-ad .subimageAd .tab-reklam  .tableAds.tag-adverline.tag-sponsored-content .teaser-mpu  .text_pub +.texte_ads.texte_ads_plug +.texte_pub.threadSponsor.thumb_player_pub.timeline-media--ad.tipps-content-ad  .titrePub  .toast-ad.top-ads-728-90.top-banner-pub.top-horizontal-pub.top-publicite.top-reklam-normal .top-side-pub.topAdvertContainer .topPub.top_banner_ads.top_pub_google .top_reklama.topbanneradvertise +.topbarpub.topcenteradss +.topleftad .toppubs.tp-ad--full-browser.tp-ad__container.tradingCenterAd.tuto-pub-ad-caption.txt-ads-center .txt-pub.txt-top-publicity.unForceAdBlock.underplayer_banner.upload-advert +.ustreklam +.vda-block +.vda-title.vertical-ads-groupª .video-list-ads.videoOverAd300snd.videoOverAdBig .video_adp2 .video_adp3.video_reklama.videocontrols-ads.view-publicites.vjs-onceux-ad-container .vud_ads .wads-script.wgt-publicite-300-250.wid-sponsor-banner  .wide_add.widget-advert.widget-advert-300-600.widget-le_guide.widget-paruvendu .widget-pub.widget-pub-300x250.widget_advncdads.widget_box_pub.widget_keleops-ad.widget_keleops-adhalfpage.widget_om_ads$ .widget_positivr-sponsored-posts.widget_publicite +.widgetadv +.widgetpub.window-ad-container .with-ad-top.with-corner-ad .wppasrotate  .wrap-pub .wrapper.ad .wrapperPub.wrapper_pub_sidebar .xads-wrappe .xadv-invid .xadv-invid2.xplayer-banner-bottom.yourcolor-ads.zone_annonceurs.zone_pub_orange .zonepub[data-ad-position][data-ad-text][id^="adswidget"][id^="dfp_ban_"][id^="dfp_banner"]a[href*=".atimaze.com/"]#a[href*=".digital2cloud.com/?"]a[href*=".irtyd.com/"]%!a[href*="/aff_c?offer_id="] > imga[href*="/afu.php?"]a[href*="/www/delivery/"]51a[href*="?bz=160*600"] > img[src*=".alicdn.com/"]51a[href*="?bz=300*250"] > img[src*=".alicdn.com/"]40a[href*="?bz=725*90"] > img[src*=".alicdn.com/"]div[data-ad-id] div[data-ad]div[data-iab-tag]( +echoroukonline.com#Advertisement+ +bienpublic.com#AjaxCarreEditoIoomyzÛ! +algerie360.com #AlireAussi6 +belgique-tourisme.be +opt.be#BannerFrontpage) + basketusa.com#Basketusa_Habillage* +annoncesbateau.com#BlocPartenaires + amazon.fr#DAadrp + amazon.fr#DAr22 +journaldelenvironnement.net#ExpoPermanente + lefigaro.fr #Fe_Gigaban +dsih.fr #Hab_banner! +caradisiac.com #Habillage1! +caradisiac.com #Habillage21 + kijiji.ca #HeaderFeature > #FeatureContent + koaci.com #KPubSetTop! +africanmanager.com#Layer1$ + nostalgie.be#Leaderboard_row* +streamcomplet3.biz#PapaGooGorHDVid  +scan-manga.com +#TOPAMZ720 + +lepoint.fr #WRAP_BAN_ATF + mappy.com #a300x600c + ahlaejaba.com + paruvendu.fr + zalotech.com + net-iris.fr + radio.co.ma + orange.fr#ad + reverso.net #adBlockBnr + droidsoft.fr #addBlock$ +courrierlaval.com #add_bottom6 +courrierlaval.com +letraitdunion.com#add_top + zoneadsl.com#adfd% +telechargerunevideo.com#adlbl% +logitheque.com#adni_widgets-2! + clicanoo.re#adress_utilesc +tendancehotellerie.fr +djazairess.com + bobvoyeur.com + zalotech.com + ecogine.org#ads + +ustart.org #ads_tall + cuisineaz.com#advi" + finalclap.com #aff_tuto_com# + +dogzer.com#affichage_tag_58 + +zikinf.com#album +akeo.fr#amazon% + millenium.gg#amazon_container  +soap-passion.com#annonce  +upp-auteurs.fr +#annonce_a  +upp-auteurs.fr +#annonce_b$ +empire-streamz.fr #app_iframe, + +leberry.fr#appel_BR_home_BPI_Stonest* + +lejdc.fr#appel_JC_home_BPI_Stonest0 + lamontagne.fr#appel_MT_home_orange_fibre0 +lepopulaire.fr#appel_PC_home_BPI_Stonest +macbidouille.com#arch1 + nouvelobs.com#article-colonne-partenaires+ +autoreflex.com#arx_home_partenaires( +comment-economiser.fr #astuce_pubN +lanouvellegazette.be + laprovince.be + nordeclair.be#autovlan-widget! +africanmanager.com#bLayer# +lenouveleconomiste.fr#b_top? +commentcamarche.com +commentcamarche.net #ba_position4; +commentcamarche.com +commentcamarche.net #ba_right- +euro-2016-france.net#background-promo( +meilleurmobile.com#backgrounddiv" + +deavita.fr#badHabbitsPopup  +manga-news.com +#ban970250 + grandecran.fr#ban_big + cdmail.fr#bandeau# +les-terrains.com #bandeauBas% +degrouptest.com#bandeauFooter  +manga-news.com +#bangeanteV +lesaffaires.com + boursier.com + appcake.net + maliweb.net +nrj.fr#banner$ +jeuxvideo-live.com +#banner-igÝ + hitradio.ma#banner23 +jeuxdelajungle.fr#bannerGameSkyscraperRight# + lil-life.com#bannerRightTop& + clubpoker.net#bannerTopWrapper +nrj.fr#banner_bottom& + infobebes.com#banner_container# +gamesplanet.com #banner_data) +lacanausurfinfo.com#banner_footer + jeuxvideo.com +#banner_jv" +betaseries.com #banner_left' +tirage-gagnant.com #banner_promo# +betaseries.com #banner_right! +betaseries.com #banner_top + nticweb.com#banners + aliceadsl.fr #bannershop  +cowcotland.com +#bannertop= +france-pittoresque.com +matchendirect.mobi #banniereH +emploi-environnement.com +actu-environnement.com#banniereRight' +lafranceagricole.fr #banniereTop! + toutcash.com #banniere_top+ +jeux-gratuits.com#barre-partenaires! +tennisactu.net #bgclicable +algerie360.com#bglink + neomag.fr#big-ad +neurozinzin.com#bigAdd +tetesaclaques.tv#bigBox +save.ca #bigboxgate2 +footballclubdemarseille.fr#bloc-direct-pub@ +gratuiciel.com +logitheque.com#bloc-droit-haut-250-250@ +gratuiciel.com +logitheque.com#bloc-droite-bas-250-250< +gratuiciel.com +logitheque.com#bloc-milieu-300-250- +graphistesonline.com#bloc-partenaires# + leparisien.fr#blocMarketing + orange.fr #blocServices# +maisonbrico.com #blocSponsor. +ouest-france.fr#bloc_partenaires_sport* +ouest-france.fr#bloc_pleine_page_1* +ouest-france.fr#bloc_pleine_page_2& +montelimar-news.fr #bloc_promos3 +meteoconsult.fr#bloc_pub_sommaire_terrestre$ +algerie360.com#bloc_pub_sprt% +ouest-france.fr#bloc_shopping? +commentcamarche.com +commentcamarche.net #bloc_sponsor" + cap-public.fr #blocflottant$ +igen.fr#block-gsphere-refurb1 + lemouv.fr #block-lemouv_bloc-pub_ftv_right: + lemouv.fr +mouv.fr#block-lemouv_bloc-pub_ftv_top +manga-news.com #block-up= +lanutrition.fr'#block-views-remote-products-block-home3 +voyages-sncf.com#block-vsct_vsca-megabanner2 + franceinfo.fr#block-zerobloc-pub-ftv-carre1 +bricoleurdudimanche.com#block_a_decouvrir +cowcotland.com #blocpub1 +explorimmo.com#bob  + +soudure.fr#bodytopbanner + memoclic.com#bom_ban! +pagesjaunes.fr #bons-plans + +silicon.fr #boostToaster% + liligo.fr#bottom-banner-smart& +rugbyfederal.com#bottom_768x90# +cowcotland.com #bottom_pubN2* +meilleurmobile.com#bouyguestelecom +moov.mg#box-link-left +moov.mg#box-link-rightÔ= +flashresultats.fr + flashscore.fr#box-over-content-a +gala.fr #box-shopping  +previmeteo.com +#box_4_pub0 + laprovince.be + +lameuse.be #box_immovlan +algerie360.com#boxes6 +conseils-courseapied.com#cadre-vignette-carnet& + soonnight.com#cadre_partenaire! + ktotv.com#campain-bandeau + piwee.net #campain_bg +lafranceapoil.com#cams + sexeautop.com#catcher* +renovationettravaux.fr #cboxOverlay& + wanarun.net#chaussuresCarousel) +sitedesmarques.com#check-also-box) +ruedesjoueurs.com#classmentMobile* +solutions-numeriques.com +#clickable% + jetanimes.com#clickfakeplayer) + auchan.fr#cms-slot-disclaimerSlot + tukif.com #co_sponsor# +soundlightup.com #colonnePub' +renovationettravaux.fr #colorbox5 +signification-prenom.com#colpub > #bloc_forum" + orange.fr#commercial-links' + oujdacity.net#common-top-widget$ +matchendirect.fr #comparateur' + +geny.com#containerBanniere1mois+ +refurbgeneration.com#container_ebayY +ca-sudrhonealpes.fr +ca-anjou-maine.fr +ca-centrest.fr#conteneur_PROMO_Gauche' + +voici.fr#content-right-shopping- +guadeloupe-paradise.fr#content-shadow# +journaldunet.com #ctn_infeed + +edcom.fr#decouvrirActu: + amazon.fr)#desktop-rhs-carousels_click_within_right' +papvacances.fr#details-services + japscan.lol#dlinkc + fluvore.com #download  +boulistenaute.com#dropin# + petitfute.com#dv_partenaire# +webgirondins.com #encart-sky. + ladepeche.fr#encart_dernieres_annonces& +montelimar-news.fr #entreprises + maxifoot.fr#ep300z + maxifoot.fr#ep728+ +conseils-courseapied.com #equipement* +cuisineetvinsdefrance.com #eshop300 +ville-ideale.com#esspub  + +loractu.fr#estate-widget! +easyvoyage.com #esv-pub-hp +moov.mg#extruderLeft1G +cultissime.cyou +wow-films.quest +liensporno.com #fakeplayer$ +israelmagazine.co.il#featgalJ +auto-utilitaire.com +mobilealgerie.com + agroligne.com #floatdiv/ +algeriepatriotique.com#flottante_droite/ +algeriepatriotique.com#flottante_gauche" +forum.oujdacity.net#footer# +amateur2sexe.fr #footer-boom) + liberation.fr#footer-partners-box + hardware.fr #footer_img + equirodi.be #ft_partners& +ca-sudrhonealpes.fr #fullscreenA +centerblog.net+#gauche > iframe[width="300"][height="250"] + gameblog.fr +#gbFnac300# + gameblog.fr#gb_home_sponsor + gameblog.fr #gb_megaban�$ +pagesjaunes.fr#goodDealsArea +dsih.fr#hab. +bedetheque.com + +bdgest.com +#hab_click3 +bedetheque.com + +bdgest.com#hab_click_sideæ +comics-sanctuary.com +banques-en-ligne.fr +cine-sanctuary.com +bd-sanctuary.com +gamer-network.fr +letelegramme.fr +jeux-mmorpg.fr +lequipement.fr + bioalaune.com + ffeminin.com +nrj.fr +c8.fr +#habillage" + leparking.fr#habillage-pubä +marketing-etudiant.fr +brevetdescolleges.fr +mediaetudiant.fr +doc-etudiant.fr +alternance.com +ingenieurs.com + bac-pro.net + bac-stg.net + +bac-es.net + +devoirs.fr + bac-l.net + bac-s.net#habillage-rightâ +marketing-etudiant.fr +brevetdescolleges.fr +mediaetudiant.fr +doc-etudiant.fr +alternance.com +ingenieurs.com + bac-pro.net + bac-stg.net + +bac-es.net + +devoirs.fr + bac-l.net + bac-s.net#habillage-top + autobip.com #habillage_a + autobip.com #habillage_b% + besac.com#habillage_cliquable# + autobip.com#habillage_flash8 +gerardmerinfo.fr + buzzdefou.com#habillage_site" + millenium.gg#habillagesite  + geekopolis.fr #habitdroit! + geekopolis.fr #habitgauche( +clubpronostics.com#header-banner" + ezgif.com#header-infoblock! +mobiles-actus.com#header3  + autojdid.com #header72890$ +auto-utilitaire.com #header_3( + +lefaso.net#header_content_banner + lyonmag.com #header_empl: +tomshardware.fr + tomsguide.fr#header_leaderboard + intellego.fr #header_top% + +dogzer.com#header_tr_banniere" + pixmania.com#highlight-new +touslesprix.com#hleft +amateur2sexe.fr#home-p2" + webcamtoy.com #home-sponsor$ + leboncoin.fr#home-top-banner$ + ma-reduc.com#home-top-offers" +manga-news.com #homePromoEd' + +manageo.fr#homeSolutionsWrapper! +tsa-algerie.com +#home_immo% +meilleurmobile.com #home_mea_1% +meilleurmobile.com #home_mea_2% +meilleurmobile.com #home_mea_3/ +videopornoinceste.xxx#horizontal-banner! + lesoir.be#horoscope-promo +touslesprix.com#hright  +confidentielles.com#hunt3 +avis-express.com#icegram_messages_container + madstef.com +#idkey1ban + madstef.com +#idkey2ban + mega-p2p.net #imCell_2592 + mega-p2p.net#imStickyBar_imObjectButton_03/ + ladepeche.fr + midilibre.fr #immobilier + +walfoot.be#imu$ + freenews.fr#insidepic_widget# +loisirados.com #intersticiel* +conseils-courseapied.com +#ja-banner% +jeuxvideo-live.com #jeuAssocie! + lavenir.net#jobat_content + +whassup.fr #js-fixed-bar* +juritravail.com#jt-footerContainer* +virginradio.fr#la-promo-showskin-a + booska-p.com #ladivvid  +lafermeduweb.net#lastBar! + webactus.net #leader-small1 +marketing-professionnel.fr#leader-wrapper + +zdnet.fr #leaderBottom + +zdnet.fr +#leaderTopa +agriaffaires.com +play3-live.com + bloggif.com + topquizz.fr + lesoir.be #leaderboardí5 + tiplanet.org!#left_column > .archive:not([id])! +rugbyfederal.com #left_sky& + grandecran.fr#les_pubs_locales + orange.fr #lienComPart +lfp.fr#lien_billeterie) + besac.com#lien_brasserie_commerce +lachainemeteo.com#lig) +footendirect.com#link-wrap-around  +degroupnews.com #link_pub' +journaldugeek.com#linkhabillage  + +a40ans.com#liste-webcams  + millenium.gg #logo_droite( +centreimmo.com#logos-partenaires8 + cdiscount.com##lpHeadlineMain.headlineWithoutLogo  + laposte.net #lpn_pub_main& +lamanchelibre.fr#marketing_top + hellokids.com#mask + +gulli.fr #masthead, +lafranceagricole.fr#materielOccasion* +driverscloud.com#mc_cadrebottompub' +driverscloud.com#mc_cadretoppub + jeuxvideo.com +#mc_sponso +sfr.fr#meeticWrapper$ +goldenmoustache.com #mega-habŒ +franceantilles.fr +franceguyane.fr +ventsdouest.com + channelbiz.fr + itespresso.fr + glenatbd.com + lerevenu.com #megabannerc +lejournaldelamaison.fr +autojournal.fr +mariefrance.fr + autoplus.fr#megabanner_bottom` +lejournaldelamaison.fr +autojournal.fr +mariefrance.fr + autoplus.fr#megabanner_top( +jeuxvideo-live.com#meilleursPrix$ + jeuxvideo.com#menu_topventes + captchme.com #menubanner  + leparisien.fr #meteo-immo + liligo.fr +#midbanner + +20min.ch#min_billboard + jeu.video #mobile_clic + +w0rld.tv#modal + +le-buzz.fr #modal_chrome3 +lesmobiles.com + +edcom.fr#modals-container, + challenges.fr#moneytag-INARTICLE-ATF( + leparisien.fr#moteur-billetterie + +zdnet.fr +#mpuBottom + +zdnet.fr#mpuTop> +presse-citron.net +touchdownactu.com#mvp-leader-wrap< +presse-citron.net +touchdownactu.com#mvp-wallpaper + agroligne.com#myModal) +p-nintendo.com#network > ul > .jm# + vacanceo.com#new_travelbloc! + net-iris.fr#ni-barreGroup + +xrares.com#nuevoa + orange.fr #o_carrepub0 + orange.fr#oan_ora_1_300x250_hp.prospects0 + orange.fr#oan_ora_2_300x250_hp.prospects + net-iris.fr#offer  + youtube.com #offer-module) + mp4upload.com + +e-wok.tv#overlay + gameblog.fr #overlayFnac* + lebonfap.com#page-sexcam--roomlist + blogspot.com #pageflip  +les-reponses.fr #pann_bas$ +saucissonsexe.com #paragraphe* + leparisien.fr#parisien-partenaires2 +francoischarron.com#partipate_video_bottom$ + auchan.fr#partner--container' + expat.com#partner-ajax-on-forum! + cciaf.org#partner_contentƒF +miroirsocial.com +slateafrique.com + netbeopen.com #partners' + sante-dz.com#partners-container# + tiplanet.org#partnersWidget' +windsurfjournal.com #pave300x250& +windsurfjournal.com #pave695x90( +windsurfjournal.com #paves214x157 + +tube8.fr #pb_block@ +charentelibre.fr +lindependant.fr#petitesAnnoncesBlock +scan-manga.com #pob_haut + +terre.tv #point_part +clicbienetre.com#popup# + soonnight.com#popup_connect! +sitedesmarques.com#posPub  + aufeminin.com #precontent + hellokids.com#preroll) +lequipement.fr#prixendirect_block% + bobvoyeur.com#products-export4 +egaliteetreconciliation.fr#produits_en_vente + fluvore.com#prom! +lacanausurfinfo.com#promo" + ouedkniss.com #promo-header' +journaldemontreal.com +#promo-pkp + net-iris.fr#promote# + youtube.com#promotion-shelfü +annuaire-streaming.com +val-de-marne.gouv.fr +redirection-web.net +blablastream.space +science-et-vie.com +streampourvous.lol +jeux-2-filles.com +olivierdauvers.fr +service-public.fr +blablastream.com +planet-casio.com +toutpratique.com +wiflix-hd.online +film01stream.ws +virtuoflash.com +centerblog.net +cocostream.rip +nuked-klan.org +voirfilms.live +voirseries.rip +wiflix-pro.mom + iphonesoft.fr + wareziens.net + mac2sell.net + aliasdmc.fr + allocine.fr + cpasfini.me + elbilad.net + sortir47.fr + turf-fr.com + vfserie.win + orange.fr + +terre.tv +nrj.be +nrj.fr#pub +dici.fr#pub-background2 + francebleu.fr + franceinfo.fr #pub-ftv-top +jeu.net#pub0‰ +minuteur-en-ligne.fr +quiveutdufromage.com +matchendirect.mobi +maxifoot-live.com +ledemondujeu.com + alalettre.com#pub1w +minuteur-en-ligne.fr +quiveutdufromage.com +planeterenault.com +ledemondujeu.com +musculaction.com#pub2 +musculaction.com#pub3! +info-clipper.com #pubBando) + telequebec.tv#pubBaniereContainer! +voyageforum.com +#pubColumn& + telequebec.tv#pubIlotContainer! +gamer-network.fr #pubLarge +xoo.it#pubRdc6 +soundlightup.com +betaseries.com #pubSidebar1 + +remede.org#pubSky + +remede.org#pubSky2" +algerie360.com #pub_300_acc% +tele.premiere.fr #pub_a2d_pave +vo2.fr#pub_background  +maxifoot-live.com#pub_bc% +entrecoquins.com #pub_boutique  + jeuxvideo.com #pub_carre1( +emu-france.com#pub_casino_header! +entrecoquins.com #pub_club + soonnight.com#pub_imu# +algerie360.com #pub_rand300a# +algerie360.com #pub_rand300b" +entrecoquins.com +#pub_tatoo% +ouest-france.fr#pub_wallpaper% +histoire-pour-tous.fr#pubbott@ +paris-communiques.com +plateformemedia.com #publaterale +argentmania.com#publeft + troc-velo.com#publineC +focus-numerique.com +les-terrains.com + lapresse.ca#pubs! +algerie360.com #pubsousVid! +lamanchelibre.fr #pubsuper + gamaniak.com #pubtopmenu +jeu.net#pubz + liligo.fr #pulledbanner( + liligo.fr#pulledbanner-right-top‰> +watchgeneration.fr +igen.fr +macg.co#refurb-widget& + lexpress.mu#region-user-second1 +radio-monaco.com#responsive-banner-slider$ + sante-dz.com#revenue-wrapper# +competition.dz #right_banner" +rugbyfederal.com +#right_sky$ +tomshardware.fr #rightcol_top+ +tomshardware.fr#rightcol_top_anchor# + lesoir.be#rossel-imu-bottom + +7sur7.be #rpVacature + slappyto.net#shadow + zapiks.fr#shopB +portail.free.fr + aliceadsl.fr + laposte.net #shoppingBox +sfr.fr#shoppingWrapper= +emu-france.com'#sidebar-right a > img[style^="width:"]$ + mobigeeks.fr#sidebar-shell-2 + +lematin.ch #sidebarSky5 +glenatmanga.com#signature_chinoise > a > span + ezgif.com#sky + peterhahn.fr #skyscraper +france-alerte.com#slideG + channelbiz.fr + itespresso.fr + +silicon.fr#slider-partnerzone1 +maitresrestaurateurs.com#sliderPartenaire% +otaku-attitude.net #smart-bann& +sortirensemble.com #sondage_age$ + anime-sama.fr#sousBlocDroite$ + anime-sama.fr#sousBlocGauche + amazon.fr +#sp_detail + amazon.fr #sp_detail2+ + europages.fr + animeka.com#sponsor& +blogduwebdesign.com #sponsor250! +esi.dz +sfr.fr #sponsors- +maison-travaux.fr#sticker-video-popin& +ruedesjoueurs.com #supersticiel$ +brain-magazine.fr #t_logo_pub! + dinogaia.com #tableau_info + lelmanga.com#teaser3( + tech2tech.fr#text-html-widget-20) + frenchweb.fr#text-html-widget-324  + +psthc.fr#thc_amz_content, +quick-tutoriel.com#the-post .warning& +phpsources.org#titre_librairieA +plancul-gratuit.org +plancul-gratuit.fr#toast-container + viewsurf.com#top-ban# + 2ememain.be#top-banner-root" + liligo.fr#top-banner-smart' +webgirondins.com#top-pub-header + +itele.fr +#topBanner + +turbo.fr #topShopper' +webstar-auto.com#top_body_right$ + gameblog.fr#top_sales_slider +elmoudjahid.com#topads! + mac4ever.com #topappWidget0 +algeriepatriotique.com#topbanner_wrapper + freepik.com#topbar" + cbanque.com#trk_promoforum" +matchendirect.fr +#tux728x90% +matchendirect.fr #tux_centrale, +matchendirect.fr#tux_liste_bookmaker3 + +hclips.com + txxx.tube + +txxx.com#und_ban9 +watchgeneration.fr +igen.fr +macg.co #unepromo + flaticon.com#unicorn- + verif.com#verif_pub_adsense_commander  + verif.com#verif_pub_paveø$ + verif.com#verif_pub_vignette + europages.fr#vipBox% + systemed.fr#vitrineFabricants/ + sibnet.ru#vjs-overlayclip-container-box) +vivastreet.com#vs-summary-300x250 +rtl.be#w-leaderboard" +marocannonces.com #wafasalf + fdesouche.com +#wallpaper  + +pons.com#widget_difusion + +turbo.fr#widget_shopper +wix.com +#wixFooter +wix.com +#wixfooter$ +footendirect.com #wrap-around, +frequence-radio.com#wrap_pub_listing0 + +qassa.fr #wrapper > div > a[class][style] + +cnews.fr#wrapper-banner + casatv.ca#wrapperbanner + troc-velo.com #xpubpart + yahoo.com#yad-billboard +alloforfait.fr#zzone0 +ivocommunication.com + ivoprint.com.Ads  + +lequipe.fr.AmPlaceholder +magicmaman.com .External + +genybet.fr .GGFODTBDCS. +application-remuneratrice.com .HB-Modal. +estrepublicain.fr + +lalsace.fr.Iookaz$ + nouvelobs.com.ObsBox-Ligatus! + nouvelobs.com .ObsPartners1 +bienpublic.com + +lalsace.fr .OffreHabitat' +outlook.live.com.Ogt7j[id*="-"]! +essonneinfo.fr .Partenaire +radiofrance.fr.PopSlot% + marmiton.org.RCP__sc-i1pqes-4& + marmiton.org.SHRD__sc-juz8gd-2& + marmiton.org.SHRD__sc-oypy6n-0 + frenchddl.com.Usenet/ + amazon.fr.a-link-normal[href*="&adId="]& +journaldugeek.com .aawp-productC +shopping.fibladi.com'.accueil-derniere-annonce > #carou.well, +driverscloud.com.accueil_pubotherlan, +allotech-dz.com.active.progressModal + cotemaison.fr .actu_pub/ +lagazettedescommunes.com.actus-case-pub5 +lagazettedescommunes.com.actus-home-right-pubò +courrierinternational.com +fabriquer-des-meubles.fr +lequotidiendumedecin.fr +lachainemeteo.com +gamer-network.fr +journalmetro.com +soundlightup.com +allodocteurs.fr +directvelo.com +marques.expert +p-nintendo.com +truecaller.com + gqmagazine.fr + ubergizmo.com + ladepeche.fr + rue89lyon.fr + aerobuzz.fr + freepik.com + lopinion.fr + +e-sante.fr + +lematin.ch + auchan.fr + webtor.io + zapiks.fr + +photo.fr + +smail.fr + +tetu.com +msn.com +dna.fr.ad* + midilibre.fr + sudouest.fr.ad-box + basketusa.com .ad-large + eurosport.fr.ad.mpu +vinyculture.com.ad2 + +fusac.fr.adblock) + +sourds.net +msn.com .adcontainer + reverso.net +.adcontent? +online-image-editor.com +lebonguide.com +gmx.fr.add + agroligne.com +.add-inner +vinyculture.com.addLink + lejsl.com.addPic« +fourchette-et-bikini.fr +envertetcontretous.fr +jeune-independant.net +stars-portraits.com +webstar-electro.com +antoineguilbert.fr +floriankarmen.com +huffingtonpost.fr +motors-addict.com +supertoinette.com +webstar-auto.com +footespagnol.fr +hentaihaven.org +lephpfacile.com +televiseurs.net +viamichelin.com +sortiesdvd.com +universalis.fr +viamichelin.be +viamichelin.ch +viamichelin.fr + leparisien.fr + oujdacity.net + over-blog.com + actustar.com + hostinger.fr + tonmanga.com + shemsfm.net + +clubic.com + +jooble.org + +lequipe.fr + +p30day.com + replay.fr + +cnews.fr + +ldlc.com + +melty.fr +cvya.dz +raje.fr.ads +ennaharonline.com.adusk +rajacasablanca.com +letagparfait.com + lebonfap.com + lefigaro.fr + +laposte.fr + +fusac.fr.adv– +lestrepublicain.com +monpetitforfait.com +francemusique.fr +girlsgogames.fr + midilibre.fr + fipradio.fr + lesoir.be +jeu.fr.advert + +decitre.fr +.advertiseA + lemoniteur.fr + skipass.com + telerama.fr.advertisementn +commentcamarche.com +commentcamarche.net +traildesforts.com + latribune.fr +ccm.net .advertising + statistiks.fr.adz % + aufeminin.com.af-block-native +permaculteurs.com.aff  + neko-sama.fr .aff-wrapper! +mvideoporno.xxx +.affiliate + nestoria.fr.afsDiv< + pix-geeks.com + voiturego.com + +zebulon.fr.afxshop# + detecteur.net.alert-warning) +homecinema-fr.com.aliencable-link +sitesavisiter.com.alj +leparking-moto.fr.alter+ + amazon.fr.amzn-safe-frame-container + tourhebdo.com.annemp& +madagascar-tribune.com.annonce# + sortir.eu.annonce-container$ +estrepublicain.fr .annonceLoc# +estrepublicain.fr +.annonceOr' +montelimar-news.fr .annonce_bloc¥ +lechorepublicain.fr +centre-presse.fr +lepopulaire.fr + lamontagne.fr + +le-pays.fr + +leberry.fr + lyonne.fr + +larep.fr + +lejdc.fr.annonce_prompteur$ +voyageforum.com .annoncer_sur8 +autojournal.fr + autoplus.fr.annonces-container@ +autojournal.fr + autoplus.fr.annonces-container-sidebar, +herault-tribune.com.annonces-legales + leboncoin.fr.apn-na$ + opnminded.com.apnmndd-single* +linternaute.com.app_amazon_contentG +journaldunet.com +linternaute.com.app_aside--content_commerce  + neowebcar.com .argus-logoH +lejournaldelamaison.fr +mariefrance.fr.article-context-produit< +jeune-independant.net.articleText > .large_rectangle  + buzzly.fr.article_pubtop" + +causeur.fr.asa_product_box + nrj-play.fr +.aside-pub3 + telerama.fr .auto-promo > a[target="_blank"]# +lindependant.fr .auto300X250( + reezocar.com.autopromo-container  + buzzly.fr.ayl-ad-article( +nintendo-master.com .back_content/ +animedigitalnetwork.fr.background-click7 +top-for-phone.fr + +katibin.fr.background-cover' + +codeur.com.badge-project-urgent# + +cnews.fr.ban-bottom-desktop, +bedetheque.com + +bdgest.com.ban-top" + +cnews.fr.ban-top-habillage + archzine.fr +.banPlace1  + agroligne.com .ban_holder! + largus.fr.bandeau-annonce% + pornovore.fr.bandeau-vertical& +les-terrains.com.bandeauTrouve# + handroit.com.bandeau_header  + 01net.com.bandeau_promos + syskb.com .bandeaupub + cdmail.fr .bandeauvert+ +jeux-mmorpg.com + +iphone4.fr.baner7 +orientation-chabab.com +bismirabbika.com.bann” +solutions-numeriques.com +orientation-chabab.com +journaldugeek.com +hdnumerique.com +lautomarche.com +photofiltres.fr +ventsdouest.com +afrik-foot.com +jizzbunker.com +manga-news.com +mesbagages.com + afrikeco.com + expressio.fr + glenatbd.com + 1001jeux.fr + medialot.fr + textnow.com + +telquel.ma + 01net.com + 2conv.com + afrik.com + flvto.biz +mob.org.banner# +jizzbunker.com .banner-popup + lareclame.fr .banner-url) + judgehype.com.bannerATF_container* + 2ememain.be.bannerContainerLoading$ + darjadida.com.banner_125x125( + wheregoes.com.banner_leaderboard! + roadsexe.com .banner_right" + archzine.fr.banner_sidebar + bfmtv.com .banner_topÔ\ +sudhorizons.dz + agroligne.com + cultivoo.com + laverite.mg +rtc.be .bannergroup, +liberte-algerie.com.bannergroup_paveF +maghrebemergent.com + emploitic.com + laverite.mg .banneritem + turf-fr.com .banners-cong +emploi-environnement.com +actu-environnement.com +chouf-chouf.com + webfrance.com .banniere3 +envertetcontretous.fr + boulette.fr.banpub! + soonnight.com .bas_colonne + +laposte.fr +.basic-pub +ebay.fr.beta-placement + +multiup.io.bg-info! + +iladit.com.bg-pub-interne + jeu.video.bgClick +moov.mg.bgTGC! +ennaharonline.com.big-ad2) +lepetiteconomiste.com .big-banner2! +des-amours.com .big-button. +iphonetweak.fr + iphonesoft.fr.bigPub. +journaldemontreal.com.bigbox-container# + korben.info.bigwrap-univers( + 01net.com + bfmtv.com +.billboard + autonews.fr .bl-partnerS +auto-utilitaire.com +mobilealgerie.com + agroligne.com.blc_300x250_blanc9 +jeuxvideopc.com + jeuxvideo.fr.bloc-best-sellers* + jeuxvideo.com.bloc-boutique-droite) +programme-tv.net.bloc-header-play- +boursorama.com.bloc-liens-partenaires& + nouvelobs.com.bloc-partenaires# + nouvelobs.com.bloc-partners# + leparisien.fr.bloc-pratique1 + challenges.fr + +capital.fr.bloc-services$ + leparisien.fr.blocPartenaireQ +auto-utilitaire.com +mobilealgerie.com + agroligne.com.bloc_728x90_brd! +psychologies.com .bloc_abo  +reducavenue.com .bloc_iab# + lexpress.fr.bloc_partenaire  +tv5.org.bloc_promomiddle@ + premiere.fr-.bloc_rightcol.bloc_rightcol_dealjour.groupon( + public.fr.bloc_rightcol_shopping/ +jeuxvideopc.com.block-concours_en_cours6 +jeuxvideopc.com.block-divers-partenairePremium  + +egora.fr.block-egora-pub1 +francetvsport.fr.block-ftv-loading-of-mad +d8.tv.block-mozaic-pub" + latribune.fr.block-partner +nrj.fr .blockDisplay! + laposte.net.blockShopping! +maison-travaux.fr.blockUI& + +vakarm.net.block_news_main_pub! + lexpress.fr.block_partner$ + cotemaison.fr.block_partners$ +mystere-tv.com.blockrightpub$ +aveq.ca.blog-sidebar a > img, +trocdestrains.com.boite-partenaire-v + liligo.fr.bottom-banner$ +jardiner-malin.fr .boutiqueAd) +franceculture.fr.box-partner-link: + challenges.fr + nouvelobs.com.box-simulation-immo+ +banques-en-ligne.fr.boxEliracashLNA& +techniques-ingenieur.fr.boxPub+ + aujardin.info + telerama.fr.boxpub + +lepoint.fr .branding" +voyageforum.com .breadcrumb! +promos-algerie.com.bstpar + upload.ac .btn-dl-plus†- +generation-nt.com + gamergen.com.bup + pix-geeks.com.bzkshop' + +lecho.be.c-adh-connecthpwrapper- + cheriefm.fr.c-block-display--covering! +terrafemina.com +.c-product + +750g.com .c-pwned-gg2 + manomano.fr.c0mvxYj.X0Q2rg, .nfJi5Z.X0Q2rg* + metronews.fr.campaign-push-wrapper + lejsl.com.campaignImage  + lacentrale.fr .caradisiac" + orange.fr.carousel-hp-pub2, + tomsguide.fr.carousel-multi-css-side. +psychologies.com.carrousel_partenaires: +emu-france.com$.cas_version_mobile_cache_grande_pub8 +comptoir-hardware.com.cat_bons_plans_du_comptoir* +phonandroid.com.category-publicite$ + korben.info.category-sponsor& +girlsgogames.fr.categoryBannerO +commentcamarche.com +commentcamarche.net +ccm.net.ccm_pugoo__sponso' +journaldunet.com.ccmcss_oas_top + grosbill.com.cda-iabE +maison-et-domotique.com + maxiapple.com.cegg_widget_products + +akelys.com .cellulePUB + neowebcar.com.cetelem7 + +hclips.com + txxx.tube + +txxx.com .chan_banner + yahoo.com .classickick- +allkeyshop.com + +goclecd.fr .clb-left. +allkeyshop.com + +goclecd.fr +.clb-right$ +fourchette-et-bikini.fr.cluj± +republicain-lorrain.fr +estrepublicain.fr +bienpublic.com +ledauphine.com +vosgesmatin.fr + leprogres.fr + +lalsace.fr + lejsl.com +dna.fr.colStickyWrapperP2/ + mediadico.com.cold-bloc-video-generique + winds-up.com.colpub" + +seasons.fr.colsEditoMainMS3 +pagesjaunes.fr.containerPdsSitesPartenaires% + strastv.com.container_pubh_02 + largus.fr.conteneur-sas+ +quetelecharger.com.content-bloc-pub; + cotemaison.fr + lexpress.fr.content_inside_partner/ +nintendo-master.com.content_kelkoo_link! +lotusnoir.info .countclick# +boredpanda.com .cover-banner + ma-reduc.com .covering% +lastminute.com.cpt-oney-block+ +egaliteetreconciliation.fr .cpt-parw+ +egaliteetreconciliation.fr .cpt-wrap + boulanger.com +.criteoEms; +cyberguerre.numerama.com.cyberguerre-end-block-post  +basketsession.com.d-mezz: +watchgeneration.fr +igen.fr +macg.co +.deal-item+ +maison-et-domotique.com .deal_daywoo( + begeek.fr.deals-container-widget4 +logitheque.com.description + .telechargement& + livescore.in.detailLeaderboard + grosnews.com .deuxcarres + replay.fr.dfa" + cinenews.be +actu.fr.dfp +rtl.fr .dfp-pave + nestoria.fr.dfpDiv& +beaute-test.com.dfp_banner_atf + equirodi.be .div_pt_pub- + linguee.com + +linguee.fr .dlTopBanner + mavanimes.co .dmp_Player. + doctissimo.fr.doc-sticky-col-container + cuisineaz.com +.dynInFeedÐ4 +passion-net.fr + oujdacity.net .ebuzzing_box( +echoroukonline.com.ech-live__ads' + gamekult.com.ed__news-h--native" +howtofix.guide .eds-animate- +tsa-algerie.com.ekk-footer-ad-wrapper8 +maison-et-domotique.com.elementor-widget-headingB +maison-et-domotique.com#.elementor-widget-post_carousel_mod) +lesmobiles.com.emplacement__popin + xboxygen.com.eneba& +wp-infinity.com.entry-featured' +jemangejemincis.fr .entry-footer# + orange.fr.eui-footer-banner$ +manga-news.com.external-link% +direct-radio.fr.externe-right! + maddyness.com .extra-block* +steamgifts.com.fanatical_container> + humanite.fr+.field-name-bloc-pub-1ere-sidebar-contenu-38 + humanite.fr%.field-name-pub-sidebar-first-content + lefigaro.fr +.fig-adgps$ + lefigaro.fr.fig-promo-jardin( + lefigaro.fr.fig-widget-satellite) + lefigaro.fr.figsco__ad__container + lefigaro.fr .figsco__ads& + lefigaro.fr.figsco__ads__title +caradisiac.com .filetPub! + solvusoft.com .fileviewpro+ + lefigaro.fr.fim-annonces-similaires/ + lefigaro.fr.fim-container-bloc-annonces +sky-animes.com.fixe" +sous-la-mer.com .flexslider, +francetransactions.com.fondcliquable% +orientation-chabab.com.footer$ + lavenir.net.footer--partners' +jeunesfooteux.com.footer-actuly" + pixelads.fr.footer-partner. + lephoceen.fr +bx1.be.footer-partners$ + gameblog.fr.footer__partners" + orange.fr.footer_autopromo$ + legagnant.com.footer_banners2 + tukif.com!.footer_partner_container_wrapper& +realmadrid.com.footer_sponsors- + cdiscount.com.fpColFloatAddisplayBloc@ + positivr.fr-.front-page-featured_partnr-section-container" +jizzbunker.com .ftr-banners' +mistergooddeal.com .ftr_partners" +mistergooddeal.com.ftr_pub< +algeriepatriotique.com +israelmagazine.co.il.g-dyn + gamekult.com .g2__a-dc + nautiljon.com.gad$ + gamekult.com.gamerprices-tab +phonandroid.com.gm-vpn$ +voyages-sncf.com .gondola-pub' +voyages-sncf.com.gondola__video$ +pagesjaunes.fr.goodDealBlock& + lesoir.be.gr-panel--entrepriseA +lemondeinformatique.fr#.gradient-sponsor + .bloc-container? + star7arab.com*.grid[style="width: 770px; height: 69px;"] +footmercato.net.gtag + semageek.com.h300 + +hitek.fr .h_ad_970x250" +francetransactions.com.hab" +homecinema-fr.com .hab_linkú +lelogicielgratuit.com +made-in-algeria.com +made-in-tunisia.net +clubpronostics.com +quetelecharger.com +logicielmac.com +gratuiciel.com +logitheque.com +toucharger.com + maghrebex.com + mediscom.com + cbanque.com +.habillage9 +senscritique.com +le2minutes.com.habillage-leftœ: +senscritique.com +le2minutes.com.habillage-right$ +le2minutes.com.habillage-top + cbanque.com.habpage& +envertetcontretous.fr .halfpage( +realite-virtuelle.com .halfpageAd& +refurbgeneration.com +.head_ebay4 +avis-express.com + +lnr-dz.com.header-banner + +europe1.fr .header-space + medialot.fr .header-sub( + geek-malin.fr.header-widget-area% +peuple-vert.fr.header__banner( + lexpress.fr.header_content_editoI + +vakarm.net7.header_logo + div > table tr > td > a[target="_blank"]5 + ouiounon.net!.headertitrelien[target="_blank"]: +watchgeneration.fr +igen.fr +macg.co +.hello-bar& + ouedkniss.com.home-land-header' + ouedkniss.com.home-promo-footer' + ouedkniss.com.home-promo-header  +lafermeduweb.net.homePub + +lagence.fr .hor_banners0 +valeursactuelles.com.horizons-va-sidebar, +clubpronostics.com.horizontal-banner  + meteosun.com .hotelteaser2 + rakuten.com.hp--categories-populaires--pub + 2ememain.be +.hz-Banner +vide-greniers.org.iad + lexpress.fr.immo' +pagesblanches.be +rtbf.be.imu + +vidoza.net .in-block" +tsa-algerie.com .in-ooredoo + +hitek.fr +.incontent$ .incontent-promo-blitz-container) +promos-algerie.com.infoconso-left% +boursorama.com.injected.block) +quebeccoupongratuit.com +.inner-pub + zoomdici.fr .innerArtAdd) +toutpratique.com.inner_partenaire" + tchatche.com.inside-bannere +meilleures-grandes-ecoles.com +meilleures-licences.com +meilleurs-masters.com .int-mb-fond( +ajoutezvotresite.com .interessant4 +bedetheque.com + +bdgest.com.interne-300x140 + youscribe.com +.interpage, +maison-travaux.fr.intersticiel_block- +maison-travaux.fr.intersticiel_unilin7 +republicain-lorrain.fr +bienpublic.com.iookaz+ + numerama.com.is-terrible-chinchilla' + numerama.com.is-wrong-porcupine/ + jeuxvideo.com.item-home-accroche-sponso! + largus.fr.item-partenairei +viamichelin.com +viamichelin.be +viamichelin.ch +viamichelin.fr.itinerary-index-advertising +idf1.fr +.jcarouseli +lanouvellegazette.be + lacapitale.be + laprovince.be + nordeclair.be + +lameuse.be .jobsregions5 +automobile-magazine.fr.js-bloc-reezocar-event% + dealabs.com.js-idealo-section  + trovit.fr.js-loadPremium" + cdiscount.com .jsNoPrdtBloc% + boulanger.com.kaminoBillboard( +vivastreet.com.kiwii-box-300x2507 + boulanger.com + darty.com + +fnac.com .kmino-ad  + +fnac.com.kmino-component) + technplay.com.kt-inside-inner-col" + booska-p.com.l-top__header6 + linguee.com + +linguee.fr.l_deepl_ad_container + +faclic.com .lbx_contentß + +faclic.com .lbx_overlay+ + lefigaro.fr.le-figaro-ad-bar-custom& + nouvelobs.com.leGuideContainer… +hotmixradio.fr +marques.expert + meteovista.be + alvinet.com + +radiox.com + +walfoot.be +rtbf.be +jeu.fr .leaderboard + mappy.com.leftHabillage" +actualitte.com .lienExterne5 +prix-portables.fr +laptopspirit.fr .lien_hab; +prix-portables.fr +laptopspirit.fr.lien_habillage$ + cine-media.fr.lienbackground + +foot01.com.lig7 +trackitonline.org +trackitonline.ru +.liketable' +pagesjaunes.fr.linkPushEmbauche# +voir-films.com .links-bottom  +voir-films.com +.links-top/ +mavieencouleurs.fr.list-brands-carousel" + team-aaa.com.list-sponsors. +lequipement.fr.listepartenairecomplete" +lesnumeriques.com .ln__a-dc* +algerie-eco.com.local-home-300x600< +msn.com-.logo > a[target="_blank"] > img[width="300"]% +mavieencouleurs.fr .logo-brand' +caradisiac.com.logosPartenaires + cdiscount.com.lpMBan" + ma-reduc.com.m-coveringIab( +cuisineactuelle.fr.magazineBlock + allocine.fr .main-banner– +parlonspiscine.com|.margin_bottom[style="padding:5px;border:1px solid #8F8F8F;border-radius:5px 0px 5px 0px;box-shadow: 0px 0px 10px #000000;"]' + leparisien.fr.marketingParisien( +driverscloud.com.mcdescresumepub, +driverscloud.com.mcdescresumepubnews/ +mediacritik.com.media-in-article-header& +maison-et-domotique.com.mediad + radio-m.net .mega-banner + playtv.fr .mega-sqrpub + +kamaz.fr.megaBan3 +rugbyfederal.com +hdnumerique.com.megaban& +courrier-picard.fr .megaban-topb +meilleures-grandes-ecoles.com +meilleures-licences.com +meilleurs-masters.com .megabann! +p-nintendo.com .megabanner$ +fan-de-cinema.com .megasquare! + topsante.com .menu-btn-pub- +lesdebiles.com.menu_droite_partenaire4 +lesdebiles.com.menu_droite_thumb:first-child/ + auchan.fr.merchandising-html__butterfly' + kelkoo.fr.merchandising-modules( + +igraal.com.merchant__banner-wrap# + euroiphone.eu.middle-banners + clkmein.com + corneey.com + +ceesty.com + +destyy.com + +festyy.com + shorte.st +sh.st.middle-container + +bhmag.fr .mini-pub# +abidjanshow.com .mod-banners+ +academiedugout.fr.mod-promo--simple& +meteofrance.com.mod-publiinfos. +etudiant.lefigaro.fr.mod.breve.pave-bg$ +formation-dz.com .mod_banners! + +le-buzz.fr.modal-backdrop" + leparisien.fr .moduleNew300) +lanutrition.fr.moduletable-banner +rtl.fr .money-talks" +lemondeinformatique.fr.mpu + +zdnet.fr .mpu-middle# + gamekult.com.mpubas-wrapper3 + ouedkniss.com.mt-4.mt-md-6.home-front-store# +allo-streaming.one .mvic-btn + ouedkniss.com.my-4Ö/ + jetanimes.com.mysticky-welcomebar-fixed" + tchatche.com.native-banner1 +cyberguerre.numerama.com.native.ic-native, + agroligne.com.nbs-flexisel-container" +directvelo.com .news-banner$ + porndoe.com.news-ticker-wrap) +tsa-algerie.com.newsfeed__ooredoo +ad4.fr.nicebtn$ +echoroukonline.com +.no_design +msn.com .non-empty-ad# +nordicmag.info .nordi-widget- +moteurs-regionaux.com.normalCoupProjo, +valeursactuelles.com.nos-partenaires% +generation-nt.com .ntSponsored + +manjaro.fr.nuxit* +lenouveleconomiste.fr .nveco-widget- + +lecho.be.o-hpgrid__row-sponsoredcombo + orange.fr.o__pub + nouvelobs.com.obs-pub + 01net.com.od-tlc1 +journaldugeek.com + 01net.com .od-wrapper" + livescore.in.oddsPlacement + 01net.com.offers! + 01net.com.offers-selector  + rakuten.com .offersKelkoo + galaxynote.fr.offre  + moneyvox.fr .offre-sticky! + leparisien.fr .offresStage& +ruedesjoueurs.com .offretopsite" +ouest-france.fr .ofm-widget + numerama.com +.oopnative + wamiz.com.orange + lefigaro.fr .oto-blocvit- +promos-algerie.com.ourselection-right! + +lameuse.be.outbrain_gocar' + +lameuse.be.outbrain_jobsregions# +ledenicheur.fr .outsider-ads5 +programme-television.org.p-aside--placeholder6 +programme-television.org.p-inread--placeholder" +euro-2016-france.net.p-sky3 +programme-television.org.p-top--placeholder +planeterenault.com.p300' +intermarche.com.page-background + +laposte.fr .page-pub+ + ouedkniss.com.page-top.d-print-none' +lequotidiendumedecin.fr.pane-ad  + lefigaro.fr .pane-bloc-ad' + lesoir.be.pane-bloc-partenaires& +monbestseller.com .pane-mbspush' + lesoir.be.pane-vacances-web-box* +jardiner-malin.fr.parent-billboard/ + leparisien.fr.parisien-section.pratique3 +lequotidiendupharmacien.fr.parntners-holder# + jeuxvideo.com.part-boutique2 +portail.free.fr + sante-dz.com .partenaire# + +lepoint.fr.partenaire-block" + +lepoint.fr.partenaire-grid$ + petitfute.com.partenaire_mid+ +lachainemeteo.com.partenaire_simple0 +lachainemeteo.com.partenaire_simple_home+ +lachainemeteo.com.partenaire_tripleš +saint-etienne.fr +boursorama.com +caradisiac.com + nouvelobs.com + lesechos.fr + mangario.fr + dunod.com + +ficam.ma +lfp.fr .partenaires- +mistergooddeal.com.partenaires-header* + nouvelobs.com.partenaires-services¶"z +constructeurdemaison.net + swissquote.ch + gameblog.fr + lexpress.fr + mensup.fr + +turbo.fr +ffr.fr.partner" + topsante.com.partner-block1 +lequotidiendumedecin.fr.partner-container +rtl.fr .partner-mdl$ + phpboost.com.partner-picture\ +nintendo-master.com + savefrom.net + lavenir.net + +ogaming.tv +caci.dz .partners +psg.fr .partners-v2/ + leparisien.fr.partners__lpbox-container + +europe1.fr .pave-sticky? +montagnes-magazine.com +grands-reportages.com.pavepub5 +footballclubdemarseille.fr.pb-sidebar-article# +envertetcontretous.fr.pb3002 +supprimer-spyware.com.phone_support_banner' +ledenicheur.fr.pjra-w-\[970px\]% +pagesjaunes.fr.place-reservee) +tendanceaumasculin.fr .placeholder0 + lexpress.fr.placeholder--ban-atf-wrapper# +presse-citron.net +.plan-list# + pausefun.com.plugin_sidebar + turf-fr.com +.pmu-block + +e-wok.tv .pop_parent% + bongacams.com.popover_spygasm + +edcom.fr.popup" +zebrascrossing.net.post--0  + gamergen.com .post-google$ +businessinsider.fr +.post-push* +businessinsider.fr.post-push-intel + strastv.com .post_pub1 +leparking-moto.fr + leparking.fr.premium + kelkoo.fr.priceminister! + buzzporn.net .privacylinks; + boulanger.com&.product-list__item-sponsored-products* +sport-equipements.fr.product-photo# +lanutrition.fr .product-shop6 +leroymerlin.fr .product-thumbnail[data-vzbl-id]  + nitrotype.com .profile-ad) + +codeur.com.project-option-premiumT +openingstijdengids.nl +openingsurengids.be + heures.be + +hours.be.promSBY +openingstijdengids.nl +openingsurengids.be + heures.be + +hours.be .promSidebarM +euro-2016-france.net +matchendirect.fr + +pokaa.fr +deco.fr.promo7 + challenges.fr + nouvelobs.com.promo-bottom-art8 +gauleporno.xxx + pornburst.xxx.promo-gauleporno" + ouedkniss.com .promo-loader/ + ouedkniss.com.promo-loader-interstitial! +matchendirect.fr .promoApp! + orange.fr.promo_sur_etage +msn.com .promobanner" + wikiclic.com.promocentered" + meteosun.com.promote_large( + expressio.fr.promoted-vcontainerB + channelbiz.fr + itespresso.fr + +silicon.fr.promotion-boxô  +dictionnaire-synonymes.com +internetparsatellite.net +annuaire-streaming.com +construiresamaison.com +lanouvellegazette.be +nintendo-master.com +commentreparer.com +cuisineactuelle.fr +montelimar-news.fr +techno-science.net +watchgeneration.fr +ennaharonline.com +fan-de-cinema.com +radioclassique.fr +meilleurtaux.com +radio-monaco.com +docteurclic.com +infoconcert.com +jeux-hentai.com +jeux-mmorpg.com +logicielmac.com +mots-croises.ch +ouest-france.fr +skirandomag.com +tsa-algerie.com +afrik-foot.com +bienpublic.com +centerblog.net +cio-online.com +franceinter.fr +gratuiciel.com +iphonetweak.fr +lesdebiles.com +logitheque.com +macommune.info +nextinpact.com + cotemaison.fr + educatout.com + franceinfo.fr + hellokids.com + iphonesoft.fr + lacapitale.be + lacentrale.fr + laprovince.be + maximiles.com + nordeclair.be + over-blog.com + soonnight.com + telequebec.tv + zupimages.net + afrikeco.com + elbotola.com + elheddaf.com + europages.ma + ladepeche.fr + leprogres.fr + mapiaule.com + midilibre.fr + programme.tv + yabiladi.com + agoravox.fr + agoravox.tv + larousse.fr + lefigaro.fr + lesechos.fr + lexpress.fr + +foot01.com + +ici.tou.tv + +lameuse.be + +loractu.fr + +remede.org + +sofoot.com + afrik.com + cciaf.org + ktotv.com + lesoir.be + menara.ma + orange.fr + orange.mu + telemb.be + +bhmag.fr + +slate.fr + +turbo.fr + +vipsg.fr +ados.fr +igen.fr +macg.co +sfr.fr +tf1.fr.pub +yggtorrent.top.pub-box& + lefigaro.fr.pub-carrousel-mini, +constructeurdemaison.net .pub-content4 +direct-radio.fr +1point2vue.com .pub-header5 +sciencesetavenir.fr + challenges.fr .pub-home + lefigaro.fr +.pub-icone4 +bedetheque.com + +bdgest.com.pub-interne-top + +lematin.ma .pub-medium + yabiladi.com .pub-read$ +lequipement.fr.pub-revendeur! + francebleu.fr .pub-sidebar: +pagesjaunes.fr + 01net.com + bfmtv.com +.pub-titleÀ  + horoscope.fr .pub-transfo + lefigaro.fr .pub-zoom +rueducommerce.fr.pub1 + cdiscount.com.pubBloc + +fsolver.fr.pubCLS# +meilleurmobile.com .pubCarre! +voyageforum.com +.pubColumn + +niooz.fr.pubDiv + cciaf.org +.pubDroite + lapresse.ca .pubInterne + tuxboard.com .pubMixte$ +meilleurmobile.com +.pub_combo + +evous.fr .pub_contenu' +supportduweb.com.pub_contenu_cr" +science-et-vie.com.pub_dfp + aerobuzz.fr +.pub_image  +influencia.net +.pub_large + dzsat.org .pub_logo +space-blogs.net.pub_ra# +jeuxvideopc.com .pub_refonte  +loisirados.com +.pub_vip_0' +internetparsatellite.net.pubbas + tasante.com .pubcontent + winds-up.com.pubhaut5 +scifi-universe.com + orangeinfo.fr +.pubheaderW +openingstijdengids.nl +openingsurengids.be + heures.be + +hours.be +.publSibar) +lemondeinformatique.fr .publi-info + 24heures.ch .publiBox  + jeuxvideo.com .publi_info% + jeuxvideo.com.publi_info + ul + aussitot.fr .pubmidtext  +algerie-focus.com.pubpub + buzzly.fr .pubright% +tennisactu.net +cci.fr.pubs + orangeinfo.fr.pubside! +lanutrition.fr .push--shop + flvto.biz .push-offer  + avcesar.com .px_container0 + nouvelobs.com.r89-partenariats--vertical + rakuten.com.rads + rakuten.com.radsV2 +souk.ma .rbanner-wrap% + negronews.fr.rd-banner-header + imobie.fr .rec_download, +forumconstruire.com.recit_header_box  + +gonzai.com.red-one-thirdh +lanouvellegazette.be + lacapitale.be + laprovince.be + nordeclair.be + +lameuse.be .references7 +watchgeneration.fr +igen.fr +macg.co.refurb + cdiscount.com.regBloc +jds.fr .regie_20 +endirect24.com.rek + +jeux-e.com.rek_ban + qwant.com .result--ext + kelkoo.fr .results-lrec" + +premsgo.fr.results-sidebar$ + sante-dz.com.revenue-wrapper# + goldenboys.fr.right-minipub  + mappy.com.rightHabillageC +joursferies.fr-.rightnav[style="background-color: #efefef;"] + darty.com +.rm-format + darty.com .rm-productD + vista-xp.fr1.rules + script + .topic-actions + .clear + .post + lefigaro.fr.s24-pub  + lefigaro.fr .s24-shoppingÇ* + lefigaro.fr.s24-thematique--igraal$ +yggtorrent.top.safe_download  +forum-xiaomi.com.samItem! +phpsources.org .sample-lst$ + +avito.ma.sc-1p6rkuz-0.bdJKQF" + ouedkniss.com .search-top-1E +lejournaldelamaison.fr +mariefrance.fr.shoopingbox_products  + likeup.fr.shop-subscribe! +programme-tv.net .shopping + educatout.com.showpub. + korben.info.side a[href*="://bit.ly/"] + jeuxvideo.com +.sideStore +gmx.fr.sideadd* + +foot01.com.sidebar img:first-child& + wikiclic.com.sidebar-promotion' +businessinsider.fr .sidebar-push& +beaute-test.com.sidebar-sticky! + +deavita.fr.sidebar_banner& +clicbienetre.com.sidebar_block' +tirage-gagnant.com .sidebarclick, +francemobiles.com.simpleoFlashBanner+ +quebeccoupongratuit.com .size_200_90, +quebeccoupongratuit.com .size_300_250, +quebeccoupongratuit.com .size_300_600+ +quebeccoupongratuit.com .size_728_90 +test-achats.be.skin9 +lesinrocks.com + funradio.fr +rtl.fr +.skin-link + +picmix.com.sky + alvinet.com .skyscraper* +lequipement.fr.skyscrapper-produit( +infoconcert.com.slider.container# +ladiagonale.net .slidingDiv2 + +lepoint.fr.slotadm + lemoteur.fr +.slpartner +boursorama.com.smart + slappyto.net .sonicprice- +echoroukonline.com.soundcloud-related + playtv.fr .span-sidebar  + lefigaro.fr .spec-ops-box& +lagazettedescommunes.com.spons/ +phonandroid.com + jeuxvideo.com.sponso( +findmysexfriend.com .sponsoInsides +blogduwebdesign.com + channelbiz.fr + itespresso.fr + europages.fr + shake.events + +silicon.fr.sponsor + yahoo.com .sponsor-dd# +novaplanet.com .sponsor-home* +novaplanet.com.sponsor-home-square" +novaplanet.com .sponsor-top< +tsa-algerie.com + +telquel.ma + trovit.fr +.sponsored$ +tsa-algerie.com .sponsored-by  + xstory-fr.com .sponsorise + +skyyart.fr .sponsors! + +fifa.com.sponsors-section +msn.com .sponsorship: +msn.com+.startpage > div.refreshbody[style^="top:"]& +lesmobiles.com.stickyBestOfferA +msn.com2.stripecontainer[data-section-id="stripe.msstore"]. + imobie.fr.support_guide_download_upper' +lepetiteconomiste.com +.sw-banner+ +forum.sportytrader.com .tableau_bleu + tomsguide.fr +.tabletoff + +walfoot.be .take-banner + japscan.lol.tangoai0 + diaspordc.com.td-a-rec-id-content_bottom3 +auto-utilitaire.com.td-a-rec-id-content_top”B +auto-utilitaire.com +mobilealgerie.com.td-header-sp-recs  + lexpress.fr .teads__block + +turbo.fr.textPub# + lexpress.fr.thematic_widget& + +laposte.fr.tile--flag--partner% +france-alerte.com .titre-publi, +moteurs-regionaux.com.titreCoupProjoW +cinemotions.com@.titre_paragraphe + div[style="height:450px; margin-left:12px;"]\ +viamichelin.com +viamichelin.be +viamichelin.ch +viamichelin.fr.toggle-adinmap! +ecranlarge.com .top-banner + jeretiens.net.top-bar$ +euro-2016-france.net.top-pub + +gfycat.com .top-slot' +meilleurmobile.com .topListingSp7 + undernews.fr + softonic.fr +lnc.nc +.topbanner# +fan-de-cinema.com +.topmargin# +instinct-voyageur.fr.topsky& +ca-briepicardie.fr .total-cover +monpetitforfait.com.tpa$ +forum-actif.net .tradeDoubler" + expat.com.travel-insurance4 + qwant.com#.trends--general__info__text--brand2 +journaldemontreal.com.tuileLivreRepasSante  + lefigaro.fr .tvm-ads-pave  + lefigaro.fr .tvm-boutique' + lefigaro.fr.tvm-boutique-iframe# + lefigaro.fr.tvm-reagir__pub  + +topito.com.type-shopping/ +classement.pro + +tounet.com .ubm_banner" +juritravail.com .ui-pnotify6 + cresus.dz%.uk-slideshow[style="height: 718px;"], +jeuxetcompagnie.fr.umbg-overlay-link + +blick.ch +.unblurred + autonews.fr.uptogo + fibladi.com.urad" +excel-pratique.com.vba_300 +souk.ma .vbanner-wrap! + leparisien.fr .venteprivee +d8.tv.video-preroll1 +amateur2sexe.fr + pornovore.fr +.video-pub< +valeursactuelles.com .view-horizons-valeurs-actuelles$ + +geste.fr.view-id-partenaires! + +geste.fr.view-partenaires + bioalaune.com .view-pub; +science-et-vie.com +mariefrance.fr.viously-player- + pornovore.fr + tukif.com .vjs-toolbar +elmoudjahid.com.vpub9 + positivr.fr&.vsly-player, .positivr-positivrtv-cta! +brain-magazine.fr.vv-hide( +rtl.be.w-content-details-ligatus + +vidoza.net .wait_buffer+ +journaldumusulman.fr.wallpaper-link- + slappyto.net.webrox._300x250.centeredB +ballad-et-vous.fr).widget > img[width^="300"][height="250"]B +ballad-et-vous.fr).widget > img[width^="300"][height="600"]  + wikiclic.com .widget-area +rtl.fr.widget-leguide  +jeuxvideopc.com .widgetGA. +monpetitforfait.com.widget_custom_html< +place4geek.com&.widget_text.widget.widget_custom_html +msn.com .win10promo% +directmatin.fr.wrap_evenement' +directmatin.fr.wrap_pub_300_250 +macg.co .wrapper > a«6 +phonandroid.com + papergeek.fr.wrapper-banner + flaghit.com +.xd_footer- +boulistenaute.com.xo-banner-ad-footer + lapresse.ca.xtra" +lecrabeinfo.net .zohxnobrur) + jawharafm.net.zone_banner_content" +lepetiteconomiste.com.zoom +alloforfait.fr.zpart. +lesmobiles.com[action^="/regieV.php?"]% + fdesouche.com[class$="-link"]P +commentcamarche.com +commentcamarche.net +ccm.net[class$="_adsense"]) + amazon.fr[class*="-advertising-"]' + amazon.fr[class*="-sponsored-"]V +commentcamarche.com +commentcamarche.net +ccm.net[class*="_item--sponsor"]2 + filecrypt.cc + filecrypt.co[class*="adb"]$ + leparisien.fr[class*="ads-"]3 + +silicon.fr![class*="displayed_advertisers-"]$ + uploaded.net[class*="pico-"]" + +winamax.fr[class][onclick]* +voyageforum.com[class^="adShadow"]0 + narkive.com + +tourte.org[class^="ads_"]6 + carrefour.fr"[class^="advertising-placeholder"], +webstar-electro.com[class^="banner"]S +auto-utilitaire.com +mobilealgerie.com + agroligne.com[class^="banner_"]- + +sofoot.comlass^="bloc-partenaires"]$ + japscan.lol[class^="copine"]' + doctissimo.fr[class^="doc-ad-"]$ + +fnac.com[class^="f-kamino-"]/ +forumconstruire.com[class^="habillage"]L +watchgeneration.fr + orange.fr +igen.fr +macg.co[class^="lig_"]( +voyageforum.com[class^="offers"]; +ambiance-noel.fr +guide-piscine.fr[class^="pub_"]) +guide-piscine.fr[class^="regie_"]O +extreme-down.party +dl-protect.link +zktorrent5.com[class^="trust"]" + reverso.net[class^="vda-"] + korben.info [data-cfpa]) +cleanrider.com[data-content="ad"]* +jeu.fr[data-fallback-type="image"]# + frandroid.com[data-gtm-bic]N + cheriefm.fr;[data-page-builder--block-analytics-block-title-value="ad"]1 + leboncoin.fr[data-test-id^="advertising"]' + lessentiel.lu[data-testid="Ad"]) +radio-canada.ca[data-testid="ad"]6 +meteomedia.com [data-testid="ad-with-pre-text"]: +qwantjunior.com#[data-testid="autopromoJuniorLink"]: +meteomedia.com$[data-testid="content-feed-ad-slot"]7 +meteomedia.com![data-testid="header-ad-content"]1 +meteomedia.comata-testid="pre-ad-text"]1 + seloger.com[data-testid="serp-inline-ad"]7 + seloger.com$[data-testid="serp-masthead-testid"]7 + seloger.com$[data-testid="serp-side-skyscraper"]; + seloger.com([data-testid="serp-side-skyscraper-top"]0 + toutvendre.frref*=".kelkoogroup.net/"]0 +meteofrance.com[href*=".xiti.com"] > img9 + filecrypt.cc + filecrypt.co[href^="javascript:"]- + +fnac.com[id$="-sponsored_products-0"]/ +voyageforum.com[id*="billboardArround"]- + delhaize.be[id*="sponsored_products"]* + +blick.ch[id^="appnexus-placement"]) +comarketing-news.fr[id^="comar-"]- + boulanger.com[id^="criteo_pageListe"]# + 3dnatives.com[id^="dnati-"]} +journaldesfemmes.com +commentcamarche.com +commentcamarche.net + turf-fr.com + orange.fr +free.fr [id^="lig_"]> +jeuxvideomoinschers.fr +tahiti-infos.com [id^="pub_"]†*' + moneyvox.fr[mam-campaign="Ban"]! + ouedkniss.com [no-adsense]3 + toutvendre.fr[onclick*=".kelkoogroup.net/"]E +lacoccinelle.net + filecrypt.cc + filecrypt.co [onclick] img1 + filecrypt.cc + filecrypt.co [onmousedown]/ + filecrypt.cc + filecrypt.co [onmouseup]0 + lesoir.bea > [width="300"][height="250"]+ +basket-infos.coma > img[alt^="Pub"]* + maligue2.fra > img[alt^="Sponsor"]( + medialot.fra > img[height="250"]: +launedalgerie.com!a > img[src^="/images/stories/U"]0 +israelmagazine.co.ila > img[width="238"]6 + igg-games.com!a > img[width^="30"][height="25"]; +ballad-et-vous.fr"a > img[width^="30"][height="250"]< +ballad-et-vous.fr#a > img[width^="300"][height="500"]; +ballad-et-vous.fr"a > img[width^="728"][height="90"]  +cowcotland.com +a#habiclic* + jeuxvideo.orga.homepage_background +touslesdrivers.coma.seo8 +algeriepatriotique.coma[class][data-track][href]( +voyageforum.coma[class^="offer"]? + +zdnet.fr/a[data-track-action="partners_traffic_drivers"]4 + +zdnet.fr$a[data-track-category="powercenter"]( +audiofanzine.coma[href*="&ref="]3 +free-reseau.fra[href*="&tag=freereseaufr-"]P +lesimprimantes3d.fr +audiofanzine.com + 3dnatives.coma[href*="&utm_"]r +meilleures-grandes-ecoles.com +meilleures-licences.com +meilleurs-masters.coma[href*="&utm_campaign="]“ +papystreaming.stream +voirfilmstreaming.tv +filmzenstream.cloud +papystreaming.black +blablastream.space +extreme-down.party +streamonsport.club +streampourvous.lol +yggtorrent.support +blablastream.com +film01stream.com +sokrostream.tube +wiflix-hd.online +film01stream.ws +wiflixien.space +1001ebooks.com +cocostream.rip +mistergeek.net +voirfilms.live +voirseries.rip + supervideo.cc + vfcomplet.vip + cpasbien.fun + oxtorrent.ac + topsddns.net + amairgil.cz + cpasfini.me + hdss.yachts + vfserie.win + hds.quest + x1337x.eu + x1337x.ws + +1337x.st + +1337x.to + +zt-za.fr +hdss.ata[href*=".php"]3 +meilleurs-hebergeurs.coma[href*="/-"] > imgÓ +internetparsatellite.net +montagnes-magazine.com +telecharger-jeuxpc.fr +bigbike-magazine.com +radego.over-blog.com +kiteboarder-mag.com +nintendo-master.com +doukkalia.press.ma +watchgeneration.fr +algerie-focus.com +brain-magazine.fr +streaming-one.com +bismirabbika.com +letagparfait.com +tahiti-infos.com +algerie-eco.com +portail.free.fr +algerie360.com +skimagazine.fr + cnetfrance.fr + lebonfap.com + niveales.com + snowsurf.com + unleashed.fr + widermag.com + abidjan.net + grimper.com + trekmag.com + windmag.com + +mubawab.ma + +skieur.com + +vakarm.net + ktotv.com + public.fr + supmag.fr + upload.ac + +7-up.net +igen.fr +macg.coa[href*="//bit.ly/"]é +orientation-chabab.com +gum-gum-streaming.com +tendancehotellerie.fr +instinct-voyageur.fr +israelmagazine.co.il +journaldumusulman.fr +watchgeneration.fr +algerie-focus.com +bismirabbika.com +extratorrents.ch +proxylistpro.com +algerie360.com + abidjan.net + +jeux.com +igen.fr +macg.co +lnc.nc +bc.vca[href*="//goo.gl/"]* +presse-algerie.neta[href*="/?ad="]7 +amateur2sexe.fr + pornovore.fra[href*="/?id="]; +artdeseduire.com#a[href*="/?part="][target="_blank"], + webactus.neta[href*="/?utm_source="]$ + +tube8.fra[href*="/_xa/ads?"]� +ultimate-torrent1.com +cpasbien-support.com +mega-torrent6.com +zktorrent.support +zone-torrent2.com +torrent-site.com +nextorrent4.com +nortorrent4.com +nortorrent6.com +yggtorrent3.com +yggtorrents.top +zetorrents1.com +oxtorrent2.com +oxtorrent5.com +torrent-p2p.my +zktorrent3.com +zktorrent5.com + cpasbien4.com + rantop.cc + +1337x.cza[href*="/adsby/"]0 + sosvirus.neta[href*="/affiliate-"] > imgM +maghrebemergent.info +maghrebemergent.coma[href*="/banners/click/"]/ + espritlib.coma[href*="/goto_part.php?"]2 + nouvelobs.coma[href*="/leguide-shopping."]9 + nouvelobs.com$a[href*="/les-bons-plans-shopping/"]) + 3dnatives.coma[href*="/linkout/"]% + +20min.cha[href*="/paidpost/"]( + niquons.coma[href*="/porno.php"]- + +20min.cha[href*="/postfinance_news/"]F +watchgeneration.fr +igen.fr +macg.coa[href*="/publicite/"], + exefiles.coma[href*="/recommended/"]S +centre-audition.com +info-algerie.com + easyzic.coma[href*="/redirect."]* + booska-p.coma[href*="/rf/"][style]& + +20min.cha[href*="/sponsored/"]/ + 1001ebooks.wsa[href*="/telebooks.html"]$ + seneweb.coma[href*="/xban/"]/ +rtl.be!a[href*="://ad.doubleclick.net/"]? +forum-xiaomi.com + fdesouche.coma[href*="://amzn.to/"][ + channelbiz.fr + itespresso.fr + +silicon.fr'a[href*="://pubads.g.doubleclick.net/"]= +jeuxetcompagnie.fr#a[href*="://www.ludeek.com/"] > img, +mistergooddeal.coma[href*="=H_pub_"]- + challenges.fra[href*="=partenariat&"]) + nouvelobs.coma[href*="?partner="]@ + challenges.fr + nouvelobs.coma[href*="?partnerlinkid="]0 +voirseriestreaming.neta[href*="?title="]3 +jemangejemincis.fra[href*="?utm_campaign="]? +meteofrance.com + abcbourse.coma[href*="?utm_source="]º' +voyageforum.coma[href*="_ads;"]& +welovebuzz.coma[href*="_adw&"]# +jds.fra[href*="_clic.php?"]= + bleachmx.fr*a[href*="californiansmiles.com/products/"]7 + metaboli.fr$a[href*="gametap.com/convergence/?"]@ +forum-vista.net)a[href*="http://www.liutilities.com/aff"]2 +jemangejemincis.fra[href*="leadpages.co/"], + nouvelobs.coma[href*="leguide.com/"]) + ebookdz.coma[href*="offer?prod="]J +boursorama.com + +zdnet.fr(a[href*="smartadserver.com/h/cc?imgid="]) + corobizar.coma[href="/g2a-link/"]% +macg.coa[href="/macg-skross"]) +pmu.fra[href="/mon-pmu/easypari"]: + dzzik.com)a[href="http://dzzik.OurToolbar.com/exe"]G + +e-sushi.fr5a[href="http://e-sushi.fr/agence-voyage-comparateur"]B +jemangejemincis.fr(a[href="http://jemangejemincis.com/cb/"]6 + undernews.fr"a[href="http://meilleurs-vpn.fr/"]F +decodesign.space-blogs.com$a[href="http://www.bleuhabitat.fr/"]A +space-blogs.net*a[href="http://www.bleuhabitat.fr/"] > img2 + leparking.fra[href="http://www.ligloo.fr"]? + +capital.fr-a[href="https://innoveralacampagne.fr"] > img? +jemangejemincis.fr%a[href="https://track.webgains.com/"]A +radioalgerie.dz*a[href="https://www.radioalgerie.dz/pub/"]? +watchgeneration.fr +igen.fr +macg.coa[href^="/ad-"]h +jeunesfooteux.com +senioractu.com + zinfos974.com + ophtalmo.tv + avocat.fra[href^="/ads/"]B +tunisie-news.com*a[href^="/artpublic/banniere/click3.php?"]6 + marianne.net"a[href^="/blogsecretdefense/ads/"], + leparisien.fra[href^="/bons-plans/"]1 + +skitour.fra[href^="/campagnes/clic.php?"]B + agroligne.com + zone911.coma[href^="/component/banners/"]8 +babesxworld.com + cocogals.coma[href^="/goto/"]$ +nrj.bea[href^="/imu/click/"]@ +mayottehebdo.com(a[href^="/index.php?option=com_banners"]) + igg-games.coma[href^="/offernf?"], + immigrer.coma[href^="/p/bannieres/"]* +betaseries.coma[href^="/partner/"]8 +telemagazine.fr!a[href^="/produits_contextuels/"]/ +lesnumeriques.coma[href^="/publicite/"]. +confidentielles.coma[href^="/rc_787_"]! + +edcom.fra[href^="/regie"], + jeuxvideo.coma[href^="/sponso/"] img, + kerix.neta[href^="LienExterne.asp?"]. + +skitour.fra[href^="divers/a/out.php?"]5 + +skitour.fr#a[href^="divers/annonces/out.php?"], +boursorama.coma[href^="http://ads."]9 + oujdacity.net$a[href^="http://ads.oujdacity.net/"]B +watchgeneration.fr +macg.coa[href^="http://aos.prf.hn/"]0 +igen.fr!a[href^="http://aos.prf.hn/"] img6 + korben.info#a[href^="http://bitly.com/2MZMxbb"]B + premiere.fr/a[href^="http://clkde.tradedoubler.com/click?"]Z +only-iphone.frDa[href^="http://fr.copytrans.net/copytranscontacts.php?utm_source="]3 + aufeminin.coma[href^="http://hyperurl.co/"]9 +brunotritsch.fr"a[href^="http://rdinews.com/ads/"]A +needsandmoods.com(a[href^="http://sigma-beauty.7eer.net/"]= + lebonfap.com)a[href^="http://store.letagparfait.com/"]1 + fdesouche.coma[href^="http://vplan.com/"]9 + watchfomny.tv$a[href^="http://watchfomny.tv/Pop/"]R +scally.typepad.com +peuple-vert.fr&a[href^="http://www.amazon.fr/"] > imgD +alsacreations.com+a[href^="http://www.amazon.fr/gp/product/"]> + djelfa.info+a[href^="http://www.djelfa.info/ar/click/"]F + dzsat.org5a[href^="http://www.dzsat.org/forum/rbs_banner.php?"]g +notre-siecle.com +perelafouine.com;a[href^="http://www.fredbaroussechacunsonstyle.com/"] > imgW +guide-piscine.fr?a[href^="http://www.guide-piscine.fr/scripts/gp_div_clic.php?"]> +cowcotland.com(a[href^="http://www.ldlc.com#aff"] > imgðD + lyonmag.com1a[href^="http://www.lyonmag.com/home/habillage/"]@ +meetmuslima.net)a[href^="http://www.meetmuslima.net/go/"]B + lefigaro.fr/a[href^="http://www.ticketac.com/?utm_source="]< + webfrance.com'a[href^="http://www.webfrance.com/go/"]L + free-proxy.fr7a[href^="https://account.cyberghostvpn.com?affiliate="]0 + hentaifr.neta[href^="https://ahegao.fr"]: + yahoo.com)a[href^="https://beap.gemini.yahoo.com/"]3 + rugby365.fr a[href^="https://bit.ly/"] > img2 + hentaifr.neta[href^="https://drmanga.net"]2 + condor.dz!a[href^="https://e-faciliti.dz/"]4 + lefigaro.fr!a[href^="https://go.babbel.com/"]3 +dailyuploads.neta[href^="https://href.li/"]7 + bleachmx.fr$a[href^="https://meccha-japan.com/"]8 + paruvendu.fr$a[href^="https://res.paruvendu.fr/"]\ +notre-siecle.com +perelafouine.com0a[href^="https://riskassur-boutique.com/"] > img? + appsystem.fr+a[href^="https://shop.appsystem.fr/"] > imgL +journaldugeek.com3a[href^="https://shop.journaldugeek.com/go/"] > imgN + +toplien.fr imgg +lejournaldelamaison.fr +maison-travaux.fr +mariefrance.fr + zoneadsl.coma[rel="sponsored"]H +watchgeneration.fr +igen.fr +macg.coa[style*="width: 100%;"]@ + mega-p2p.net,a[style*="width: 98%; height: 100%; inset:"]T + jeu.videoCa[style="position: fixed;top: 110px;left: 0;bottom: 0;width: 50%;"]' + fusevideo.neta[target="_blank"]O +upload4earn.org + buzzporn.net + esoxiste.coma[target="_blank"] > imgA +israelmagazine.co.il%a[target="_blank"] > img[src$=".gif"]Q + lefigaro.fr>a[target="_blank"] > img[style="width: 463px; height: 170px;"]F + maliweb.net3a[target="_blank"] > img[width="300"][height="100"]F + maliweb.net3a[target="_blank"] > img[width="300"][height="200"]Q +forexmt4indicators.com3a[target="_blank"] > img[width="300"][height="250"]Q +forexmt4indicators.com3a[target="_blank"] > img[width="300"][height="385"]P +forexmt4indicators.com2a[target="_blank"] > img[width="728"][height="90"]1 +commentseduire.neta[target="blank"] > img< + footpy.fr+a[target^="_blank"] > [style="width:303px"]< + footpy.fr+a[target^="_blank"] > [style="width:584px"]9 +generation-nt.com + gamergen.comarticle .productD +scan-manga.com.article[itemtype="https://schema.org/Product"] + tchatche.combannerO +auto-utilitaire.com +mobilealgerie.com + agroligne.combody > a > img- + +lokan.frbody:last-child > div#message# + datanodes.tobutton[onclick] + domimmo.com +div#an-fin% + domimmo.comdiv#an-fin-legales! +annuaire-horaire.frdiv#aq! +pyrenees-team.comdiv#linkúJ +gamopat-forum.com1div#wrapper > div#right img[src*="/11/03/61/79/"]) + japscan.loldiv.container > [href]F +finansemble.fr0div.div_description_v2[style="max-width:750px;"]* + kozikaza.comdiv[class$="item--ad"]0 + net-iris.frdiv[class$="promo-container"]+ +laprovence.comdiv[class*="Ads_ad_"], + newpharma.frdiv[class*="adh-banner"]; +gauleporno.xxx + pornburst.xxxdiv[class*="banner"]2 + lefigaro.frdiv[class*="mad__partenaire__"]+ + lefigaro.frdiv[class*="mad__pub__"]/ + rakuten.comdiv[class*="rads_placement"]# + leboncoin.frdiv[class="vl"]3 + booska-p.comdiv[class][style^="background"]/ +ledenicheur.frdiv[class^="AdPlacement"]G + lessentiel.lu2div[class^="ContentPage_insideFullTopPlaceholder"]% +nrj.frdiv[class^="StyledAds"]- +une-recette.comdiv[class^="banniere"]2 +maison-et-domotique.comdiv[class^="deals"]) + gamekult.comdiv[class^="gk__ads"]3 +une-recette.comdiv[class^="milieubanniere"]* +algerie360.comdiv[class^="pub300"]* +algerie360.comdiv[class^="pub600"]* +algerie360.comdiv[class^="pub728"]) +la-tendinite.frdiv[class^="snp-"]0 +algeriepatriotique.comdiv[class^="spu-"]3 + leboncoin.frdiv[class^="styles_ad"]#generic4 + leboncoin.fr div[class^="styles_ad"]#outlined+ + +mahjong.frdiv[class^="sub_jeu_160"]+ + +mahjong.frdiv[class^="sub_jeu_300"]- + +mahjong.frdiv[class^="sub_jeu_72890"]( + e-monsite.comdiv[data-role="sp"]) + e-monsite.comdiv[data-role="sp2"]  + +edcom.frdiv[data-target]- + net-iris.frdiv[id$="promo_container"]' +maisonapart.comdiv[id*="-pub-"]) +maisonapart.comdiv[id*="-publi-"], +welovetennis.frdiv[id*="banner-top"]ß +ultimate-torrent1.com +cpasbien-support.com +mega-torrent6.com +zone-torrent2.com +torrent-site.com +nextorrent4.com +nortorrent4.com +yggtorrent3.com +yggtorrents.top +zetorrents1.com +oxtorrent2.com +oxtorrent5.com +torrent-p2p.my +zktorrent3.com + cpasbien4.com + rantop.cc + rantop.my + +1337x.czdiv[id*="vpn"]? +notebookcheck.biz&div[id] + div[class] > img:first-child) + +vakarm.netdiv[id][onclick][style]R +voyageforum.com;div[id][style*="float: left; height: 250px; width: 310px;"]f +voyageforum.comOdiv[id][style="display: block; width: 850px; margin-top: -9px; height: 285px;"]k +voyageforum.comTdiv[id][style="width: 850px; height: 127px; overflow: hidden; vertical-align: top;"]6 + routard.com +sfr.frdiv[id^="A2dEmplacement"]' + korben.infodiv[id^="alderaan-"]# + toutvendre.frdiv[id^="bup"]¶ +meltyfashion.fr +meltycampus.fr +virginradio.fr + meltystyle.fr + meltyxtrem.fr + meltybuzz.fr + meltyfood.fr + +melty.fr +fan2.fr +mcm.frdiv[id^="container_A2_"]˜ +francetvinfo.fr + francetv.fr + +france2.fr + +france3.fr + +france4.fr + +france5.fr + +franceo.fr + la1ere.fr + +pluzz.frdiv[id^="eShowPub"]B +developpez.com +developpez.netdiv[id^="gabarit_megaban"]- +lachainemeteo.comdiv[id^="ob_footer"]. +lachainemeteo.comdiv[id^="ob_in-feed"] +dsih.frdiv[id^="pub"], +ouest-france.frdiv[id^="pub_native"]2 +ouest-france.frdiv[id^="pub_pave_article"]/ +universfreebox.comdiv[id^="publicite-"]. +musculaction.comdiv[id^="pubsousmenu"]% +pagesjaunes.frdiv[id^="push"]$ +zonebourse.comdiv[id^="zpp"]; + gamalive.com'div[style$="width:300px;height:250px;"]' + ma-reduc.comdiv[style*="/ads/"]B +impotsurlerevenu.org&div[style*="float:right;width:300px;"]š +lookmovie-official.live +lookmovie2-official.lol +ultimate-torrent1.com +cpasbien-support.com +extreme-down.party +fmoviesz-to.com +oxtorrent5.com +zktorrent5.com + yggtorrent.cc + cpasbien.do + hdss.yachts + www-yts.com + +fmovies.ecdiv[style*="opacity:"]O +superphysique.org6div[style*="text-align: center"][style*="width:250px"]; + gamalive.com'div[style*="width:160px;height:600px;"]¤(< + judgehype.com'div[style*="width:300px;height:600px;"]C +echoroukonline.com + maxifoot.frdiv[style*="width:468px;"], + livehost.frdiv[style*="width:728px"]) +tayo.frdiv[style*="width:728px;"]K + +avito.ma;div[style="display: block; margin-bottom: 10px;"] > ._LaI0Dv +voyageforum.com_div[style="display: block; margin-top: 0px; width: 836px; margin-bottom: -7px; height: 285px;"]€ + androidpit.frkdiv[style="float:left; width:976px; line-height:0; min-height:90px; margin-bottom:5px; text-align:center;"]a +forum.gsmhosting.comEdiv[style="float:right; width:336px; height:560px; margin-left:10px"]D + 1fichier.fr1div[style="float:right;width:300px;height:600px"]B +futura-sciences.com'div[style="height:250px; width:300px;"]A +futura-sciences.com&div[style="height:90px; width:728px;"]F +phpsources.org0div[style="margin-bottom:15px;"] > table > tbody_ +moov.mgPdiv[style="margin-top:5px;float:auto;width:100%;height:250px;text-align:center"]X +supportduweb.com@div[style="margin:auto;margin-top:2px;width:728px;height:90px;"]c +lafermeduweb.netKdiv[style="overflow: hidden; width: 336px; height: 280px; margin: 0 auto;"]C +voyageforum.com,div[style="overflow: hidden; width: 454px;"]R +auto-utilitaire.com7div[style="position:relative;width:728px;height:90px;"]… + +groupon.frsdiv[style="width: 445px; margin: 8px auto; text-align: center; background-color: #fff; border: 1px solid #e4e4e4;"]³ +marketing-etudiant.fr +brevetdescolleges.fr +mediaetudiant.fr +doc-etudiant.fr +alternance.com +ingenieurs.com + bac-pro.net + bac-stg.net + +bac-es.net + +devoirs.fr + bac-l.net + bac-s.net_div[style="width:300px; height:250px;margin:10px; margin: 0 auto; padding:15px 0; clear:both;"]H + picasion.com + +koreus.com&div[style="width:300px;height:250px;"]: + vacanceo.com&div[style="width:310px;height:270px;"]k +rmc.fr]div[style="width:320px; height:280px; background:#000000; margin-top:20px; overflow:hidden;"]N + orangeinfo.fr9div[style="width:336px;height:280px;margin-bottom:20px;"]< + +winamax.fr*div[style^="cursor: pointer; background:"]^ +voyageforum.comGdiv[style^="display: table; float: left; height: 250px; width: 310px;"]V +echoroukonline.comdiv[style^="width:200px; padding:2px; border:#AAA 1px solid;"]@ +copine-coquine.com&div[style^="width:300px;height:250px"]@ +echoroukonline.com&div[style^="width:728px;height:90px;"]. + +poki.comdiv[width="160"][height="600"]. + +poki.comdiv[width="300"][height="250"]- + +poki.comdiv[width="728"][height="90"]# +distrowatch.com h2 > a > img7 +developpez.net!iframe[width="300"][height="250"]6 +developpez.net iframe[width="728"][height="90"]8 +annonces-dz.com!iframe[width^="728"][height="90"]5 +freemindparlexemple.frimg[alt="Banniere_ENI"]/ +inter-lignes.comimg[alt^="Instit_970p"]0 + medialot.frimg[height="38"][width="300"]" + jpost.comimg[src^="blob:"]: + filecrypt.cc + filecrypt.coimg[style^="display:"]7 +faf.dz)img[style^="width: 720px; height: 90px;"]2 + guinee7.comimg[width="1015"][height="221"]E +mediaguinee.org + guinee7.comimg[width="1080"][height="301"]E +mediaguinee.org + guinee7.comimg[width="1080"][height="398"]< +supplychainmagazine.frimg[width="120"][height="240"]D +ajoutezvotresite.com +jeu.frimg[width="160"][height="600"]E +mediaguinee.org + guinee7.comimg[width="1667"][height="250"]6 +avis-express.comimg[width="280"][height="425"]Å +israelmagazine.co.il +francoischarron.com +africaguinee.com +algerie-eco.com +framboise314.fr + soonnight.com + undernews.fr + maliweb.net +jeu.frimg[width="300"][height="250"]I +africaguinee.com +mediaguinee.orgimg[width="300"][height="300"]5 +algerie-eco.comimg[width="300"][height="500"]X +inter-lignes.com +framboise314.fr + guinee7.comimg[width="300"][height="600"]C +mediaguinee.org + guinee7.comimg[width="460"][height="60"]. +supplychainmagazine.frimg[width="468"]ü +abandonware-definition.org +abandonware-magazines.org +abandonware-videos.org +israelmagazine.co.il +comparatif-vpn.fr +africaguinee.com +abandonware.org +space-blogs.net + undernews.fr + lankhor.netimg[width="468"][height="60"]4 +mediaguinee.orgimg[width="600"][height="62"]9 +israelmagazine.co.ilimg[width="600"][height="90"]5 +mediaguinee.orgimg[width="692"][height="100"]4 +mediaguinee.orgimg[width="692"][height="85"]4 +mediaguinee.orgimg[width="695"][height="86"]÷ +tlemcen-electronic.com +francoischarron.com +africaguinee.com +algerie-eco.com +framboise314.fr +mediacritik.com + autosurfs.fr + frenchweb.fr + undernews.fr + maliweb.net + norefer.com +jeu.frimg[width="728"][height="90"]”9 +ºÿï08@R©1337x.cz,cpasbien4.com,extreme-down.party,mega-torrent1.com,mega-torrent6.com,nextorrent4.com,nortorrent.com,nortorrent4.com,nortorrent6.com,oxtorrent2.com,rantop.cc,torrent-p2p.my,torrent-site.com,ultimate-torrent1.com,yggtorrent3.com,yggtorrents.top,zetorrents1.com,zktorrent.support,zktorrent3.com,zone-torrent2.com#?#a:-abp-contains(/ANONYME|Anonyme|anonyme|gratuits|PREMIUM|Premium|premium|RAPIDE|Rapide|Usenet|VPN|Vpn/) +˜ÿï08@R‡1337x.cz,cpasbien4.com,mega-torrent1.com,mega-torrent6.com,nextorrent4.com,nortorrent.com,nortorrent4.com,nortorrent6.com,oxtorrent2.com,rantop.cc,torrent-p2p.my,torrent-site.com,ultimate-torrent1.com,yggtorrent3.com,yggtorrents.top,zetorrents1.com,zktorrent.support,zktorrent3.com,zone-torrent2.com#?#div[style]:-abp-contains(/adsby|ANONYME|Anonyme|anonyme|gratuits|premium|Usenet|VPN|Vpn/) +›ÿï08@RŠ1337x.cz,cpasbien4.com,mega-torrent1.com,mega-torrent6.com,nextorrent4.com,nortorrent.com,nortorrent4.com,nortorrent6.com,oxtorrent2.com,rantop.cc,torrent-p2p.my,torrent-site.com,ultimate-torrent1.com,yggtorrent3.com,yggtorrents.top,zetorrents1.com,zktorrent.support,zktorrent3.com,zone-torrent2.com#?#table[style]:-abp-contains(/adsby|ANONYME|Anonyme|anonyme|gratuits|premium|Usenet|VPN|Vpn/)e +^ÿï08@RN20min.ch#?#.clusterTop:-abp-has(.teaser:-abp-has(h3:-abp-contains(Paid Post))) +mÿï08@R]2ememain.be#?#.hz-Listing--list-item:-abp-has(.hz-Listing-priority:-abp-contains(Pub au top)) +~ÿï08@Rn2ememain.be#?#.hz-Listing--list-item:-abp-has(.hz-Listing-seller-link:-abp-contains(Visiter le site internet)) +cÿï08@RSalgerie-eco.com#?#.td_block_wrap:-abp-has(.block-title:-abp-contains(sponsorisés)) +oÿï08@R_aliexpress.com,aliexpress.us#?#._2FypS:-abp-has(._1rKqn:-abp-contains(/AD|Annonce|إعلان/)) +—ÿï08@R†aliexpress.com,aliexpress.us#?#.search-item-card-wrapper-gallery:-abp-has([class^="multi--ax"]:-abp-contains(/AD|Annonce|إعلان/)) +Cÿï08@R3allocine.fr#?#.news-card:-abp-contains(Sponsorisé) +Mÿï08@R=allocine.fr#?#.video-card-trailer:-abp-has([class*="sponso"]) +Eÿï08@R5allocine.fr#?#.video-card:-abp-has([class*="sponso"]) +Wÿï08@RGandroid-mt.com#?#.boutonlink:-abp-has(a:-abp-contains(/VPN|rencontre/)) +Sÿï08@RCandroid-mt.com#?#.bp-fin:-abp-has(a:-abp-contains(/VPN|rencontre/)) +Hÿï08@R8annonces.nc#?#annonces-post-detail:-abp-has(.bg-boosted) +Dÿï08@R4betaseries.com#?#.blockSearch:-abp-has(.adsbygoogle) +^ÿï08@RNblogdumoderateur.com#?#.breve:-abp-has(.breve-info:-abp-contains(Sponsorisé)) +Dÿï08@R4blogdumoderateur.com#?#.sticky:-abp-has(.sponsorise) +qÿï08@Rabusinessinsider.fr#?#.post-nonfeatured:-abp-has(.title-studio:-abp-contains(Contenu Sponsorisé))5 +mediaguinee.orgimg[width="740"][height="161"]5 +mediaguinee.orgimg[width="740"][height="185"]5 +mediaguinee.orgimg[width="800"][height="150"]% +emu-france.comimg[width="88"]1 + guinee7.comimg[width="958"][height="142"]2 + undernews.frimg[width][height][alt$="VPN"]& +bol.comli.js_sponsored_product; +leroymerlin.fr%li[data-product-list-id*="sponsored"]8 +bonjourmadame.fr object[width="728"][height="90"]1 +bol.com"section.js_slot-sponsored-productsA + dealabs.com.section[data-track*="widget_pirates_carousel"]0 +codepromo.ouest-france.frt1-ad-side-bars6 +virusphoto.com table[width="300"][height="280"]S + societe.com@table[width="303"] > tbody > tr > td[valign="top"][height="260"]O +depannetonpc.net7td[align="left"][colspan="3"] > div[style="width:70%;"]d +solutions-numeriques.comDtd[onclick^="window.open('https://www.solutions-numeriques.com/r/?"]E +people-looks.com-td[width="340"][height="265"][align="center"]G +people-looks.com/td[width="980"][height="40"][bgcolor="#FFFFFF"] + 1jour1film.* #fakeplayer_ +wiflix-catalogue.* + wiflix-max.* + wiflix-pro.* + wiflix-hd.* + wiflixien.*.btnnew^ +wiflix-catalogue.* + wiflix-max.* + wiflix-pro.* + wiflix-hd.* + wiflixien.*.sadstü +orizzontescuolaforum.net +passionmilitaria.com +sorcieremonique.com +walkingdead-rpg.com +fcmulhousefans.com +galoppourlavie.org +forums-actifs.com +easyforumpro.com +forumalgerie.net +ahlamontada.com +jordanforum.net +syriaforums.net +alamontada.com +forum2jeux.com +forumactif.com +forumactif.org +lebonforum.com + ahladalil.com + forumactif.fr + superforum.fr + arabepro.com + ze-43eme.com + banouta.net + forumpro.fr + +3oloum.com + +darkbb.com + +gid3an.com + +1fr1.net + +7olm.org + +own0.com + +yoo7.comO.croco_wrapper, [onclick*="var"], [onmousedown*="\x"], [style*="height: 90px;"]õ +discussionforyou.com +bestforumforyou.com +hotforumonline.com +bigboardlive.com +bigforum4you.com +forumdesfans.com +forumforever.com +newforumlive.com +positiforum.info +theforumcity.com +bestforum4u.com +boardforyou.com +discuforum.info +myforumlive.com +quickforum.info +smileforum.info +bestthread.com +coolforum.info +fansforum.info +hotforum4u.com + babaorum.info + clicforum.com + forum-box.com + forumserv.com + hereboard.com + lolforum.info + ogameteam.com + phpboard1.com + topbboard.com + vraiforum.com + clicforum.fr + lolforum.com + soforums.com + xooit.org.uk + 1freebb.com + bestoof.com + cforum.info + ebboard.com + level52.com + urtopic.com + webrpg.info + xooit.co.uk + +leforum.cc + +leforum.eu + +leforum.tv + +xooit.info + bboard.it + xooit.biz + xooit.com + xooit.org + +majz.com + +xooit.be + +xooit.cc + +xooit.eu + +xooit.fr + +xooit.tv +xoo.itFbody > div[id][style*="z-index: 99999999; height: 92px; width: 100%;"];7iframe[style="border: 0; width: 728px; height: 110px;"];7iframe[style="border: 0; width: 970px; height: 110px;"]b + japscan.lolO#main > .card:has(a[href*="/manga/?type="][href*="&content="][target="_blank"])Y +planetegrandesecoles.com9.elementor-element:has(picture.attachment-full.size-full)> + auchan.fr-.hp-banner:has(.hp-banner__message-sponsored)@ + frandroid.com+.is-hidden-mobile:has([class^="Billboard"])2 +radio-canada.ca.max-w-150:has(.srcPubZone)P +leroymerlin.fr:.ml-container:has(> [data-st-type*="sponsored caroussel"])6 + +zebulon.fr$.penci-feed:has(a[href*="/sponso-"])K + frandroid.com6.post-card:has(a[href^="https://native.humanoid.fr/"])> +fr.shopping.rakuten.com.prd_side:has(.gtm_ads_caption)C + nocibe.fr2.product-grid-column:has(.product-tile__sponsored)? + frandroid.com*.sticky-content:has([class^="HalfpageAd"])L + boulanger.com7[class*="kamino"]:has(.product-list__product-sponsored)C +cleanrider.com-[class*="min-h-"]:has([id^="optidigital-ad"])R +fr.shopping.rakuten.com3[data-productid]:has([class^="style_sponsoredAds"])X + seloger.comE[data-testid="serp-core-suggestion-card-testid"]:has([aria-haspopup])I + boulanger.com4[id*="kamino"]:has(.product-list__product-sponsored)Y +intermarche.comB[id^="stime-product-item"]:has(.stime-product--details__sponsored)  + comptoir.io a:has(.prime)M + auchan.fr svg) +[ÿï08@RKcdiscount.com#?#li:-abp-has(.prdtBlocInline:-abp-has(.c-sponsoredMentions)) +Kÿï08@R;cdiscount.com#?#li[data-sku]:-abp-has(.c-sponsoredMentions) +[ÿï08@RKcnetfrance.fr#?#.riverPost:-abp-has(.tag-desktop:-abp-contains(Publicité)) +gÿï08@RWcommentcamarche.com,commentcamarche.net#?#.ccm_list_catch__item:-abp-contains(Annonces) +Fÿï08@R6delhaize.be#?#.product-item:-abp-contains(Sponsorisé) +Yÿï08@RIdiscordbots.org,top.gg#?#.bot-card:-abp-has(.lib:-abp-contains(Promoted)) +Oÿï08@R?discordbots.org,top.gg#?#.bot-card:-abp-has(.lib:-abp-has(img)) +Nÿï08@R>distrowatch.com#?#.News1:-abp-has(td:-abp-contains(Sponsored)) +Hÿï08@R8doctolib.fr#?#.dl-card:-abp-has(.dl-card-sponsored-pill) +9ÿï08@R)ebay.fr#?#.sresult:-abp-has(.promoted-lv) +ƒÿï08@Rsebay.fr#?#[id^="nume_html_"]:-abp-has(.mfe-card-group:-abp-has(.mfe-card-group-title:-abp-contains(sponsorisées))) +wÿï08@Rgebay.fr#?#[id^="nume_html_"]:-abp-has(.mfe-header:-abp-has(.mfe-pull-left:-abp-contains(sponsorisés))) +@ÿï08@R0flaticon.com#?#.soul-p:-abp-has(.footer-sponsor) +bÿï08@RRfutura-sciences.com#?#.postcontainer:-abp-has(.username:-abp-contains(Publicité)) +[ÿï08@RKgameblog.fr#?#.highlight-item:-abp-has(.word-wrapper:-abp-contains(sponso)) +dÿï08@RTgameblog.fr#?#.item.full.gameblog:-abp-has(.post-details:-abp-contains(sponsorisé)) +Xÿï08@RHhitek.fr#?#.news-bloc:-abp-has(.article-type:-abp-contains(Sponsorisé)) +:ÿï08@R*homify.fr#?#.photo__m:-abp-has(.top-label) +>ÿï08@R.homify.fr#?#.premium-card:-abp-has(.top-label) +rÿï08@Rbigen.fr,macg.co,watchgeneration.fr#?#article:-abp-has(.sidebar-artitle:-abp-contains(/📣|📌/)) +dÿï08@RTigen.fr,macg.co,watchgeneration.fr#?#article:-abp-has(h2:-abp-contains(/📣|📌/)) +Kÿï08@R;indeed.fr#?#.jobsearch-SerpJobCard:-abp-has(.sponsoredGray) +Mÿï08@R=iphonesoft.fr#?#article:-abp-has(.date:-abp-contains(Sponso)) +\ÿï08@RLjeuxvideo.com#?#.anchorMiddleOne:-abp-has(.badge:-abp-contains(Sponsorisé)) +oÿï08@R_jeuxvideo.com#?#.anchorWrapper:-abp-has(.cardHorizontalList__footer:-abp-contains(Sponsorisé)) +Qÿï08@RAjeuxvideo.com#?#.card:-abp-has(.badge:-abp-contains(Sponsorisé)) +Xÿï08@RHjeuxvideo.com#?#.item-small-pres:-abp-has(a:-abp-has(.sponsored-prefix)) +Jÿï08@R:jeuxvideo.com#?#li:-abp-has(a:-abp-has(.sponsored-prefix)) +Xÿï08@RHjournaldugeek.com#?#.entry__item:-abp-has(.entry__img-container--sponso) +]ÿï08@RMkorben.info#?#.alderaan-sous-article:-abp-has(span:-abp-contains(publicité)) +Wÿï08@RGkorben.info#?#[class*="sous-categories"]:-abp-contains(Lien partenaire) +Lÿï08@R hr + article.type-post:-abp-has(header:-abp-has(a[href^="http://bit.ly/"])) +rÿï08@Rbkorben.info#?#div > hr + article.type-post:-abp-has(header:-abp-has(a[href^="http://bitly.com/"])) +]ÿï08@RMkorben.info#?#div[class*="sous-article"]:-abp-has(a[href^="http://amzn.to/"]) +oÿï08@R_krefel.be#?#div[class^="Flex-styled__StyledFlex-"]:has(h3:-abp-contains(Produits sponsorisés)) +_ÿï08@ROlatribune.fr#?#.article-wrapper:-abp-has(.subheading:-abp-contains(Partenaire)) +mÿï08@R]latribune.fr#?#.homepage-section.supplement-section:-abp-has(span:-abp-contains(Partenaires)) +iÿï08@RYlebigdata.fr#?#.elementor-widget-wrap:-abp-has(a[href^="http://clickmetertracking.com/"]) +Dÿï08@R4leboncoin.fr#?#.undefined:-abp-contains(Sponsorisé) +nÿï08@R^leboncoin.fr#?#a[data-test-id]:-abp-has([class]:-abp-contains(/À la une|Sponsorisé|Urgent/)) +[ÿï08@RKleseclaireuses.com#?#.article.small:-abp-has(a[href*=".smartadserver.com"]) +Qÿï08@RAleseclaireuses.com#?#.gslide:-abp-has(a[href^="https://bit.ly/"]) +@ÿï08@R0lesnumeriques.com#?#.l-section:has(.tops__items) +Tÿï08@RDlesnumeriques.com#?#.l-section:has(a[href*="/contenus-partenaires"]) +Dÿï08@R4lesnumeriques.com#?#.m-grid__item:has(.c-icon--star) +Tÿï08@RDlessentiel.lu#?#aside:-abp-has(div + span:-abp-contains(Publicité)) +Lÿï08@Rmediamarkt.be#?#[data-index-number]:-abp-contains(Sponsorisé) +Lÿï08@Rÿï08@R.nocibe.fr#?#.proditem:-abp-has(.rm-sponsorise) +Sÿï08@RCnumerama.com#?#.container_native_sidebar:-abp-has(.sponsoring-icon) +Nÿï08@R>numerama.com#?#.post-card:-abp-has(span:-abp-contains(sponso)) +Dÿï08@R4numerama.com#?#.post-grid:-abp-has(.sponsoring-icon) +oÿï08@R_on-mag.fr#?#.uk-margin-remove-last-child:-abp-has(div:-abp-has(span:-abp-contains(PUBLICITÉ))) +Õÿï08@RÄouedkniss.com#?#section:has(.o-section-heading:-abp-contains(/Ad|Publicité|Sponsored|Sponsorisées|Stores à la une|إعلان|إعلانات Ù�ÙŠ المقدمة|متاجر Ù�ÙŠ المقدمة/)) +Fÿï08@R6phonandroid.com#?#li:-abp-has(a:-abp-contains(sponso)) +Aÿï08@R1positivr.fr#?#article:-abp-has(.sponsored-notice) +Rÿï08@RBrakuten.com#?#[data-productid]:-abp-has(a[href^="/offer?action="]) +[ÿï08@RKsantemagazine.fr#?#[data-identifier]:-abp-has(div:-abp-has(.sponsor-color)) +kÿï08@R[sketchucation.com#?#.post:-abp-has(.postprofile:-abp-has(strong:-abp-contains(Ad Machine))) +Zÿï08@RJsookbtp.com#?#.owl-item:-abp-has(figure:-abp-has(img[src^="publicites/"])) +[ÿï08@RKstarbike.com#?#.post.has-profile:-abp-has(.postbody:-abp-has(.adsbygoogle)) +^ÿï08@RNtemp-mail.org#?#li:-abp-has(.inboxSenderEmail:-abp-contains(AD | Temp Number)) +rÿï08@Rbthesiteoueb.net#?#.panel:-abp-has(.panel-heading:-abp-has(.panel-title:-abp-contains(Publicité))) +Uÿï08@REtopito.com#?#div[class="cow"]:-abp-properties(content: "Publicité";) +Kÿï08@R;tourmag.com#?#.wm-module:-abp-contains(Contenu sponsorisé) +^ÿï08@RNtourmag.com#?#.wm-module:-abp-has(a[href^="https://www.hoteletlodgepro.biz/"]) +Iÿï08@R9tsa-algerie.com#?#.jwpv-desktop:-abp-contains(Publicité) +Nÿï08@R>twitter.com#?#[data-testid="tweet"]:-abp-contains(Sponsorisé) +Jÿï08@R:voyageforum.com#?#div[id]:-abp-properties(height: 127*px;) +dÿï08@RTvoyageforum.com#?#div[style*="width: 300px"]:-abp-contains(/Publicité|Publicités/) +Sÿï08@RCvoyageforum.com#?#div[style*="width: 300px"]:-abp-has(.adsbygoogle) +jÿï08@RZvoyageforum.com#?#table[class="post"]:-abp-has(tbody:-abp-contains(/annonces|annonceurs/)) +Jÿï08@R:voyageforum.com#?#table[style="width: 300px;"]:-abp-has(a) +`ÿï08@RPzataz.com#?#.custom-sidebar:-abp-has(h3:-abp-contains(/Partenaires|Publicité/)) +%ÿï08@Rfacebook.com/ajax/qm/ + ÿï08@Rfacebook.com/tr/ + ÿï08@Rfacebook.com/tr? +&ÿï08@Rfacebook.net^*/fbds.js +*ÿï08@Rfacebook.net^*/fbevents.js +ÿï08@Rhttp://ad4.fr^ +H* +123comparer.fr08@R(123comparer.fr/photoProd/*00px/*-120x60- +K* +123comparer.fr08@R+123comparer.fr/photoProd/*00px/*-300-x-250- +ÿï08@Rad-exchange.fr^ +ÿï08@R adimages.ch^ +=ÿï08@R-advertising.wellpack.fr/sites_annexes/optout/ +ÿï08@R adworks.fr^ +Aÿï08@R1affiliation.leboncontact.fr/template/Affiliation/ ++08@Raluson-eclairage.fr^*-120x60- +708@R)ami2.com/resources/img/mysite/publicites/ +5ÿï08@R%archives-numerisees.ain.fr^*/httpd/ad +808@R*assiste.com/Assiste/media/images/Ad-Aware_ +&08@Rassiste.com^*_publicite_ +0ÿï08@R aw-experience.com/banners/b0.png +/„08@R bannieres.telethon.fr/compteurs/ +Q* +bienpublic.com08@R1bourgogne-publicite.com/jeuxconcours/_bienpublic/ +%08@Rcdn.ay.gy/static/image/ +=08@R/compagniedelagare.com^*/image_resize.php?img=*/ +D08@R6cowcotland.com/scripjs.php?files=*,jquery.lazyload-ad- +Nÿï* +pmu.fr08@R4cstatic.weborama.fr/js/advertiser/wbo_performance.js +C* + +steller.co08@R'd2rbodpj0xodc.cloudfront.net/stories/*x +,ÿï08@Rdiplomatie.gouv.fr^*?adtype= +O* +worldsurfleague.com08@R*dqndusk8a84ol.cloudfront.net/cache/js/*.js +B* +www.befr.ebay.be08@R ebayrtm.com/rtm?RtmCmd&a=json&p= +E€* +www.befr.ebay.be08@R"ebayrtm.com/rtm?RtmPreviewContent& +6ÿï08@R&fatherandsons.fr^*/opecom/affiliation/ +/ÿï08@Rfrancesurfinfo.com/affiliation/ +Aÿï08@R1francetelevisions.fr^*/publicite/silverlight.php? +908@R+gareautheatre.com^*/image_resize.php?img=*/ +/08@R!gironde.fr/css/csspacker.jsp?css=R +businessinsider.fr#?6related-post-:-abp-has(a[href*="/contenu-sponsorise"])…I +I08@R;gpsfront.aliexpress.com/queryGpsProductAjax.do?*&imageSize= +/08@R!hostinger.fr/banners/*/hostinger- +b08@RTimages.meteoconsult.fr/images/meteoconsult2014/autopromo/paves/saisonnier/PRINTEMPS_ +2ÿï08@R"images.newmedia.lu^*/adtech_video/ +,08@Rkoifaire.com/upload/*/300x250- +@08@R2livinglanguage.com/content/html5/games/*/js/pub.js +1&* + lokalok.com08@Rlokalok.com*/advert/ +Jÿï* +live.m2stream.fr08@R$m2radio.fr/include/player/flash.swf? +=ÿï08@R-malakoffmederic.com/entreprise/*/affiliation/ +G* +musique.orange.fr08@R$media*.musique.woopic.com^*/400x250/ +F08@R8media2.ledevoir.com/documents/image/pub/abonnements2.gif +<ÿï08@R,miztral.com/www/images/banners/header_short_ +2ÿï08@R"mozfr.org/custom/img/*_300x250.png +;ÿï08@R+msf.fr/sites/www.msf.fr/modules/contrib/ad/ +Fÿï* +otaku-attitude.net08@R naruto-one.com/images/bannieres/ +.ÿï* + zap-tele.com08@Rnetavenir.com^ +9ÿï08@R)notre-planete.info/medias/pub_300x250.png +0€08@R!partner.skiset.com/*/motor/*?sid= +908@R+partner.skiset.com/js/partnerIntegration.js +M* +aphp.fr08@R4partners.doctolib.fr/doctors/detect_partner_profile? +$€08@Rpartners.doctolib.fr^ +Qÿï08@RApharmnet-dz.com/img/pubs/738_Conception%20sans%20titre%20(11).png +)08@Rplanet-casio.com/images/ad/ +C* + premiere.fr08@R&premiere.fr/inextenso/uploads/300x150_ +*08@Rpublicwww.com/images/labels. +*08@Rquefaire.be/annonces/imgads/ +Jÿï* +reseauforum.org08@R'reseauforum.org/*/modules/ad/serve.php? +^ÿï* +restoconnection.fr08@R8restoconnection.fr/wp-content/uploads/2014/12/publicite- +08@Rrockman.fr/Ads/ +ƒ * +gmx.net* +welt.de* +gmx.at* +web.de08@RKs3.amazonaws.com/homad-global-configs.schneevonmorgen.com/hd-main.js?cache= +G08@R9serrurier-menuisier-31-ad2.site-privilege.pagesjaunes.fr^ +V08@RHstatic.caradisiac.com/img_site/autopromo/300x90_autopromo_depot_avis.png +*08@Rstatic.jeux123.fr/ads/promo_ +h08@RZstatic.meilleur-mobile.com/images-product/logos-marchands/sprite_logosMarchands_120x60.png +6ÿï08@R&static.s-sfr.fr/resources/custom/adsl/ +Y08@RKsyndication.twitter.com/tweets.json?*&ids=*&lang=*&suppress_response_codes= +Qÿï* +tv5mondeplus.com08@R-videos-pub.ftv-publicite.fr/player/ad2play.js +8ÿï* +pmu.fr08@Rweborama.fr/wbo_performance.js +F* + wifeo.com08@R+wifeo.com/ads/promo/advertise-publicite.gif +-ÿï08@Rwww.bluesteel.fr/affiliation/ +:08@R,www.bna.dz/media/djmediatools/cache/300x250- +A08@R3www.les-terrains.com/images/chargement_en_cours.gif +0 * + +6play.fr08@Ryospace.com/csm/*.mpd^ +[* +lulustream.com* + luluvdoo.com* + luluvdo.com* +lulu.st08@Ra.lulucdn.com/js/ +_* +lulustream.com* + luluvdoo.com* + luluvdo.com* +lulu.st08@Ra.lulucdn.com/player/ +4 * +9xbuddy.online08@Rab.9xbud.com/extract +2 * +9xbuddy.online08@Rab.9xbud.com/token +ö * +databasegdriveplayer.co* +gum-gum-streaming.com* +filmpornofrancais.fr* +saison-streaming.com* +torrentdownload.info* +yacine-tv-app.live* +ithepiratebay.com* +mega-torrent1.com* +dailyuploads.net* +gamecopyworld.eu* +speedtorrent.com* +xfilesharing.com* +android-zone.ws* +anime-loads.org* +gdriveplayer.me* +gdriveplayer.to* +kickassanime.mx* +9xbuddy.online* +babblecase.com* +casualient.com* +kimechanic.com* +nortorrent.com* +unblocked2.fun* +unblocked2.vip* +voirfilms.live* +yamechanic.com* + adshrinks.com* + atomcurve.com* + coginator.com* + cogismith.com* + cracksurl.com* + foumovies.net* + kibuilder.com* + lelscanfr.com* + quainator.com* + quamiller.com* + replaymod.com* + shahidlive.co* + softmaroc.org* + streamlive.to* + toonanime.xyz* + yabuilder.com* + yobuilder.com* + zipansion.com* + atominik.com* + dlpsgame.com* + kializer.com* + mavanimes.co* + microify.com* + picocurl.com* + pintient.com* + riffhold.com* + skamaker.com* + skamason.com* + syrialive.cc* + syrialive.tv* + theproxy.how* + toonanime.co* + vializer.com* + viwright.com* + yoalizer.com* + crichd.live* + kaitect.com* + kinovibe.co* + segavid.com* + simizer.com* + tinyium.com* + twineer.com* + viahold.com* + yoineer.com* + yoitect.com* + +crichd.com* + +gnulahd.nu* + +larati.net* + +mmoity.com* + +offmp3.com* + +vidsrc.net* + +vidsrc.xyz* + 4anime.to* + koora.vip* + onion.pet* + ouo.press* + picons.eu* + simkl.com* + ukpass.co* + uppit.com* + vidsrc.in* + vidsrc.me* + vidsrc.pm* + vidsrc.to* + +gsurl.in* + +onion.ly* + +shink.me* +ezie.cc* +gomo.to* +adf.ly* +ouo.io* +ay.gy* +j.gs* +q.gs08@Rajax.googleapis.com/ajax/libs/ +f * + streamsb.com* + lvturbo.com* + sbrapid.com* + +sblona.com08@Rakamai-video-content.com/hls +Sÿï* + japscan.lol08@R4bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js +… +* +clickndownload.cfd* +ithepiratebay.com* +mega-torrent1.com* +speedtorrent.com* +xfilesharing.com* +nortorrent.com* + indishare.org* + sadisflix2.cc* + shahidlive.co* + snowfiles.com* + uploadrar.com* + mavanimes.co* + theproxy.how* + youdbox.site* + +ettvdl.com* + +sadis.wiki* + +uupbom.com* + onion.pet* + ukpass.co* + +7-up.net* + +onion.ly* +ezie.cc08@Rbootstrapcdn.com^ +D* +filmpornofrancais.fr08@Rcdn.fluidplayer.com^*/current/ +› +* +jasonresponsemeasure.com* +adrianmissionminute.com* +databasegdriveplayer.co* +nathanfromsubject.com* +direct-streamfr.live* +player.smashy.stream* +robertplacespace.com* +sandratableother.com* +richardsignfish.com* +cigarlessarefy.com* +kellywhatcould.com* +yacine-tv-app.live* +lecteurvideo.com* +play.playm4u.xyz* +wordcounter.icu* +filelions.site* +goodstream.one* +laceaccept.net* +voirfilms.live* +voirseries.rip* + cybervynx.com* + filelions.com* + sadisflix2.cc* + lelmanga.com* + streamcdn.to* + streamhg.com* + theproxy.how* + japscan.lol* + segavid.com* + videobin.co* + koora.vip* + +7-up.net* +voe.sx08@Rcdn.jsdelivr.net^ +5* + +vidmoly.to08@Rcdn.staticmoly.me/static/ +>ÿï* + frandroid.com08@Rchoices.consentframework.com^ +:* +clickndownload.cfd08@Rclicknupload.click/js/ +µ +* +jasonresponsemeasure.com* +adrianmissionminute.com* +databasegdriveplayer.co* +youtube4kdownloader.com* +filemoon-oe4w6g0u.xyz* +nathanfromsubject.com* +film-francais-vf.com* +french-stream.gratis* +robertplacespace.com* +saison-streaming.com* +sandratableother.com* +french-stream.black* +richardsignfish.com* +cigarlessarefy.com* +kellywhatcould.com* +yacine-tv-app.live* +french-stream.bio* +ithepiratebay.com* +mega-torrent1.com* +gamecopyworld.eu* +official-yts.com* +yts-official.app* +android-zone.ws* +anime-loads.org* +file-upload.net* +file-upload.org* +gdriveplayer.me* +gdriveplayer.to* +yifyproxies.com* +yts-official.mx* +babblecase.com* +casualient.com* +fsmirror24.lol* +kimechanic.com* +kooralive.info* +nortorrent.com* +unblocked2.fun* +unblocked2.vip* +usersdrive.com* +voirfilms.live* +yamechanic.com* + adshrinks.com* + atomcurve.com* + coginator.com* + cogismith.com* + cracksurl.com* + kibuilder.com* + new.gdtot.dad* + onlystream.tv* + quainator.com* + quamiller.com* + replaymod.com* + sadisflix2.cc* + toonanime.xyz* + uploadrar.com* + yabuilder.com* + yobuilder.com* + zipansion.com* + atominik.com* + kializer.com* + mavanimes.co* + microify.com* + picocurl.com* + pintient.com* + riffhold.com* + skamaker.com* + skamason.com* + streamsb.com* + syrialive.cc* + syrialive.tv* + theproxy.how* + toonanime.co* + vializer.com* + viwright.com* + yoalizer.com* + animelek.tv* + cpmlink.net* + filemoon.sx* + japscan.lol* + kaitect.com* + lvturbo.com* + sbrapid.com* + segavid.com* + simizer.com* + tinyium.com* + twineer.com* + upstream.to* + viahold.com* + yoineer.com* + yoitect.com* + +11anim.com* + +adkami.com* + +l1afav.net* + +larati.net* + +mmoity.com* + +sadis.wiki* + +sblona.com* + +uqload.net* + +vidmoly.to* + +vidsrc.net* + +vidsrc.xyz* + koora.vip* + onion.pet* + ouo.press* + picons.eu* + sbanh.com* + ukpass.co* + vidsrc.in* + vidsrc.me* + vidsrc.pm* + vidsrc.to* + xcoic.com* + ybspw.com* + +7-up.net* + +asd.rest* + +onion.ly* +ezie.cc* +adf.ly* +ouo.io* +voe.sx* +ay.gy* +j.gs* +q.gs08@Rcloudflare.com/ajax/libs/ +U08@RGcloudflare.com/cdn-cgi/scripts/*/cloudflare-static/rocket-loader.min.js +¬* +protect-mylinks.com* +clickndownload.cfd* +french-anime.com* +wiflix-hd.online* +geneafrance.com* +tntendirect.com* +wiflixien.space* +filelions.site* +goodstream.one* +streamhide.com* +unblocked2.vip* +voirfilms.live* +wiflix-pro.mom* + filelions.com* + indishare.org* + mp4upload.com* + new.gdtot.dad* + shahidlive.co* + streamhide.to* + uploadrar.com* + fanstream.us* + theproxy.how* + animelek.tv* + japscan.lol* + torlock.com* + +adkami.com* + +mixdrop.ps* + +mixdrop.sb* + +vidmoly.to* + ahvsh.com* +hdss.at08@Rcode.jquery.com^ +5* + filecrypt.co08@Rcutcaptcha.net/captcha/ +?* + jetanimes.com* + hds.quest08@Rdisqus.com/embed.js +:* + jetanimes.com* + hds.quest08@Rdisquscdn.com^ +X* +saison-streaming.com08@R2film-francais-vf.com/assets/js/jquery-3.2.1.min.js +8* + +cam4.com* +cam4.fr08@Rfirebaseio.com/.lp?» +* +* + +7-up.net08@Rfontawesome.com^ +ª* +protect-mylinks.com* +tntendirect.com* + adshrinks.com* + jetanimes.com* + mavanimes.co* + mega-p2p.net* + +gsurl.in* + +onion.ly08@Rfonts.googleapis.com/css +@* + govad.xyz* + goved.org08@Rgovad.*/js/jquery.min.js +9* + govad.xyz* + goved.org08@Rgovad.*/jwplayer. +.* + +txxx.com08@Rjs.txxx.tube/assets/ +7* + +txxx.com08@Rjs.txxx.tube/upd/*/static/js/ +J +* +file-upload.org* + +11anim.com08@Rjscloudflare.com/ajax/libs/ +Fÿï* + japscan.lol08@R'ko-fi.com/cdn/scripts/overlay-widget.js +=* + +mrsexe.com08@R!mrsexe.com/api/video.6.6.3.min.js +:* + vidlooz.com08@Rplayiri.com/player8/jwplayer. +:* + vidlooz.com08@Rplayiri.com/player8/provider. +6* + frandroid.com08@Rsdk.privacy-center.org^ +¤** +databasegdriveplayer.co* +gdriveplayer.me* +gdriveplayer.to* +filelions.site* +streamhide.com* + filelions.com* + liiivideo.com* + onlystream.tv* + streamhide.to* + supervideo.cc* + vidspeeds.com* + allviid.live* + allviids.xyz* + streamsb.com* + theproxy.how* + vidspeed.net* + allviid.xyz* + lvturbo.com* + sbrapid.com* + segavid.com* + vidshar.org* + +daktna.net* + +sblona.com* + +vadbam.com* + +vadbam.net* + +vdesk.live* + +vedbam.xyz* + +vidbam.org* + +vidmoly.to* + ahvsh.com* + sbanh.com* + +vidlo.us08@Rssl.p.jwpcdn.com/player/v/ +¨* +gdriveplayer.to* + jetanimes.com* + voiranime.com* + mavanimes.co* + crichd.live* + +adkami.com* + +crichd.com* + +otakufr.co08@Rst.chatango.com/js/gz/emb.js +d€* + jetanimes.com* + crichd.live* + +adkami.com* + +crichd.com08@Rst.chatango.com^*/id.html +-* + uppit.com08@Rstatic.uppcdn.com^ +>* +veev.to08@R%static.veevcdn.co/assets/videoplayer/ +J* +9xbuddy.online08@R*suggestqueries.google.com/complete/search? +=* + +updown.cam* + +updown.icu08@Rupdown.*/js/jquery- +:* + +updown.cam* + +updown.icu08@Rupdown.*/player/ +?* + vidtube.cam* + vidtube.pro08@Rvidtube.*/jwplayer. +_* +voirfilms.live* + streamlive.to* + streamcdn.to* + hexload.com08@Rvjs.zencdn.net^ +B* +gum-gum-streaming.com08@Rwp.com/*/build/lazy-images/ +=* +gum-gum-streaming.com08@Rwp.com/*/build/photon/ +?* +gum-gum-streaming.com08@Rwp.com/*/wp-includes/js/ +U* + +mrsexe.com08@R9www.mrsexe.com/bower_components/jquery/dist/jquery.min.js +>* + +mrsexe.com08@R"www.mrsexe.com/inc/clic.php?video= +=* + +mrsexe.com08@R!www.mrsexe.com/jwplayer/jwplayer. +=* + +cam4.com* +cam4.fr08@Rxcdnpro.com/plugin/epay/ +8* + +cam4.com* +cam4.fr08@Rxcdnpro.com/web/js/ +?* + +cam4.com* +cam4.fr08@Rxcdnpro.com/web/v2/app/js/ +*08@Rgstatic.com/*/cast_sender.js +D08@R6gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js +% 08@Rgstatic.com/recaptcha/ +'¤08@Rrecaptcha.net/recaptcha/ +-€08@Rwww.google.com/recaptcha/api2/ +$08@Ryoutube.com/iframe_api +$08@Ryoutube.com/player_api +,08@Ryoutube.com/s/player/*/player_ +)08@Ryoutube.com/s/player/*/www- +D€08@R5challenges.cloudflare.com/cdn-cgi/challenge-platform/ +;08@R-challenges.cloudflare.com/turnstile/*/api.js? ++08@Rhcaptcha.com/1/api.js?onload= ++08@Rhcaptcha.com/1/api.js?render= ++€08@Rhcaptcha.com/captcha/*&host= +008@R"hcaptcha.com/captcha/*/hcaptcha.js +408@R&hcaptcha.com/captcha/*/hcaptcha.min.js +.08@R static.stormwall.pro/captcha.css +-08@Rstatic.stormwall.pro/jsav1.3.js +&ÿï08@R/ad-blocking-detector/ +!ÿï08@R/adblock-checker. + ÿï08@R/adblockchecker. +#ÿï08@R/adblocker.blogads. +ÿï08@R/check-blocker. +ÿï08@R/kill-adblock/ +ÿï08@R /noadblock. +#ÿï08@R/wp-adblock-dedect/ +!ÿï08@R_adblockdetector/ + +payfit.com +.publicity/ +casualgame.hange.jpa[href*="/adclick?"]% +newsdig.tbs.co.jp div[data-ad] \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-IT b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-IT new file mode 100644 index 0000000..8acdbbc --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-IT @@ -0,0 +1,6580 @@ +© +ÿï08@R-000Pubblicita- +ÿï08@R-000pubblicita. +&ÿï08@R-banner-pubblicitario- +!ÿï08@R-Pubblicit%C3%A0- +ÿï08@R .it/_adv/ +08@R.it/ads/ +ÿï08@R.it/adv/ +ÿï08@R/000Pubblicita/ +%ÿï08@R/banner-pubblicitari/ +ÿï08@R /mnz_adsetup. +&ÿï08@R/mnz_adsetup_online.js +"ÿï08@R/pubblicita%CC%80- +ÿï08@R /pubblicita- +Qÿï* +pubblicita.lamilano.it* +tribunale.milano.it08@R /pubblicita. +ÿï08@R /pubblicita/ +!ÿï08@R/rcsad_partner.js +ÿï08@R /TiscaliADV_ +ÿï08@R _pubblicita. +ÿï08@R -adv-300. +ÿï08@R -adv-728. +ÿï08@R-dx/adv_ +-ÿï* + inoutsnc.it08@R -PUBBLICITa. +#ÿï08@R-pubblicita300x275. +ÿï08@R.it/ads? +ÿï08@R.it/ads_ +ÿï08@R.it/adv. +ÿï08@R.it/adv_ +ÿï08@R /adagioadv_ +ÿï08@R /ads-fissi/ +ÿï08@R /adv-300x300- +%ÿï08@R/adv-mediumrectangle- +ÿï08@R /adv/codice_ +ÿï08@R/adv_s_pirchio. +ÿï08@R /advpirchio. +"ÿï08@R/advpirchiofooter. +ÿï08@R /advsfondo/ +ÿï08@R/affiliati_img/ +ÿï08@R /ajax/adv/? +ÿï08@R /altro/adv/ + ÿï08@R/annunciogoogle. +&ÿï08@R/archivio/advertising/ +ÿï08@R /banner/adv- +%ÿï08@R/bannerpubblicitario. +ÿï08@R /banners/ADV- +ÿï08@R/banners/pubb/ +!ÿï08@R/banners/sponsor_ +ÿï08@R/generici/ads- +ÿï08@R /gfx/adv/ +ÿï08@R/immagini/adv_ + ÿï08@R/inclusioni/adv/ +ÿï08@R/it/adv/ +ÿï08@R/manzoni_hp.js +ÿï08@R/materiali_adv/ +ÿï08@R/mediamondads. +ÿï08@R /novcom_ads- +ÿï08@R /novcom_ads. +ÿï08@R /pubbl_vert. +!ÿï08@R/pubblicit%C3%A0- +!ÿï08@R/pubblicit%c3%a0/ +"ÿï08@R/pubblicita%CC%80. +ÿï08@R /pubblicita2. +ÿï08@R /pubblicita2/ +ÿï08@R /pubblicita_ +ÿï08@R/pubblicitadx.³ +1ÿï08@R!/pubblicitaimmaginecolonnadestra/ +*ÿï08@R/pubblicitaimmaginegrande/ +.ÿï08@R/pubblicitaimmaginetoppiccola/ +"ÿï08@R/pubblicitamobile/ +ÿï08@R/pubblicitasx. +$ÿï08@R/pubblicitatratopic/ +!ÿï08@R/Publicita%CC%80- +ÿï08@R/repubblicaad. + ÿï08@R/separatore-pub. +ÿï08@R/Sfondopubbli_ + ÿï08@R/sponsor/banner_ +ÿï08@R/sponsorizzate. +ÿï08@R /tiscali_ads. +ÿï08@R /tiscaliAds/ +'ÿï08@R/xbanner-pubblicitario- +ÿï08@R _adv300x250. +ÿï08@R _adv300x250_ +ÿï08@R _adv400x220. +ÿï08@R _adv400x90. +ÿï08@R _pubblicita- +ÿï08@R _pubblicita/ +ÿï08@R _pubblicita_ +ÿï08@R +_sito/adv/#adk_article-middle#adk_article-top#adk_interstitial#adk_spalla-bottom#adk_spalla-middle#adk_spalla-top  #admputop#adv-Middle1-hr#adv-Middle1-mobile#adv-Middle2-mobile #adv-Middle3#adv-Middle3-mobile #adv-TopLeft #adv-x40#adv-x40-mobile #adv_nativa#advertisingStriscia #eadv-aside #eadv-aside-2 #eadv-aside-3#eadv-billboard #eadv-bottom#eadv-in-content#eadv-in-content-2#eadv-in-content-3 #eadv-related#ioladv-wallpaper#rcsad_TopLeft_container#video-evo-desktop#video-evo-mobile&"#video-evo-player.player_evolution"#video-mh-mob.player_evolution#yobee-top-page.AlterVista_Banner.AlterVista_GoogleAdsense.ads--primo-piano .adunit-mark .adv-gptslot.banner_pubblicita.box_adv_cliccaofferta .eadv-aside–  .eadv-bottom.eadv-in-content .eadv-related.evolve-custom-header .footer-adv .gptslot-li .gptslotvideo.live-adv-container.partial-static-adv.partial-sticky-adv .pubblicita.pubblicitacentrata.pubbliredazionale.sal-list-sponsored.sb-box-pubbliredazionale.slyvi-ads-inserter-ad-unit.sponsorizzati .wrapper-adv .yb-floorad +.yb-sticky +.yobee-adv.*a[href^="http://media.vincitu.it/C.ashx?"]$ a[href^="https://ads.sisal.it/"]-)a[href^="https://adv.presscommtech.com/"],(a[href^="https://book-of-ra-online.it/"]73a[href^="https://campaigns.williamhill.it/C.ashx?"]'#a[href^="https://casinononaams.co"]/+a[href^="https://cloudvpn.to/link.php?id="]>:a[href^="https://media.goldbetpartners.it/redirect.aspx?"] av-adv-slot!div[class^="hbagency_space_"]div[class^="rtbuzz_"]div[id^="rtbuzz_"]#ADV_leaderboard_atf#ADVrettangolo#ADVrettangolopiede #ADVstriscia#HALFPAGE2_advadagio#HALFPAGE3_advadagio#HALFPAGE_BOTTOM_advadagio#HALFPAGE_advadagio#MID_RECTANGLE1_advadagio#MID_RECTANGLE2_advadagio#MediamondAd_bp#MediamondAd_bp_1#MediamondAd_rn_2#MediamondAd_rn_u#MediamondAd_sn_u#Sponsor728x90Top#UNITIS_ads_300250#WIDELEADERBOARD2_advadagio%!#WIDELEADERBOARD_BOTTOM_advadagio#ad_testa_foto#adasta_box_ros_2#adbanner-laterale#adbanner-stampa #adk_masthead#ads-interno-1#ads-interno-2 #ads-laterale#adsense-destra#adsense-notizia #adsense_lato +#adv-Piedeà +#adv-Piede-sticky +#adv-box-1#adv-broker-overlayer$ #adv-broker-overlayer-background#adv-iframe-sx-home#adv-masthead-0#adv-pushdown-1#adv-skin-colonnadx#adv-skin-colonnasx +#adv00 +#adv02#advAutopromo1#advAutopromo2 #advBB-left #advBB-right +#advBB-top#advSwiper_article#adv_ManchetteDx#adv_ManchetteSx#adv_Skin_left#adv_Skin_right #adv_Skin_top #adv_adagio +#adv_click #adv_in_post#adv_nativ_sopracartina##adv_outbrain_AR_1_sottocartina#adv_sotto_navigatore #adv_sponsor_canale_tematico #advcolonnadx #advcolonnasx +#advdivbp1 +#advsfondo#altervista_banner-3#annunciGoogle#annunci_google#annuncio-virgilio#blocco_servizi_sponsor1#body-adv-link#box_single_adv_sotto#box_single_adv_sotto_1#box_single_adv_sotto_2 #bt_adv_div #cardAdv  #contPubb#corpo_video_sponsor +#deaAdvTop#divPubblicita #evolutionadv #fullAdv-dx #fullAdv-sx #fwnetblocco#fwnetblocco160x600#fwnetblocco300x300#fwnetblocco_v#hp_sez_advmkt_01 #kauppa_box #leo-adv#lg-spalla-ads01-down#lg-spalla-ads01-up#lg-spalla-ads03#libero_header_adv #main_360_adv #mmAdDivSkDxì  #mmAdDivSkLb #mmAdDivSkSx #ppn_ad_div #pubbli-alto #pubbli_top #pubblicita#pubblicita-libero-top#pubblicita-menu#pubblicita-sotto-immagine#pubblicita_blog_post_testa#quattrownet_468x60#rcsad_BottomLeft_1 #rcsad_Frame1 #rcsad_Frame2#rcsad_TopLeft#ripBoxAdvCentroSX2 +#skinadvdx +#skinadvsx#sp-adv-header#syTagContainer #tccAdPlayer #top3-pubbli.Banner_VideoAd_Interno .Pubblicita.ab-box-adv-cn.actio-adlabel  .ad-fisso.ad-orizzontale .ad-verticale.adSenseLaterale +.ad_pedice.adagiowritebanner_dmtag .ads-dx .ads-sx .ads_dx.ads_pagineprof .ads_singolo +.ads_topdx +.ads_topsx .adsbyawcloud .adv--lg .adv--sq .adv-100x100 .adv-articolo.adv-banner-wrap .adv-cnt.adv-footer-kauppa +.adv-h-100.adv-iframe-sx.adv-inside-text.adv-loc-container .adv-margin .adv-masthead .adv-promobox .adv-sfondo  .adv-skin.adv-skin-weben.adv-son-300x650-page.adv-sponsor__content.adv-strip-container .adv-testata.adv-width-box .adv-wpz .adv100‚ + +.adv300eni .adv300x100vd .advArt .advBot .advBoxDxBis .advCollapse +.advFooter.advHm-cont-Ape .advPostLibri .advTestuale.adv_120x600_categoria.adv_160x600_categoria.adv_468x60_categoria .adv_articolo.adv_block__text.adv_bug_float .adv_esterno.adv_inner_notizia.adv_lateral_dx.adv_lateral_sx .adv_margin  .adv_news  .adv_oriz  .adv_vert +.adv_video +.advborder .advdsk .advhead.advnext_correlati.advricaricamediamond .alp-advert.archive-post__adv.aside-adv-scroll.av-banner-728X90.bannerPubblicita.bannerPubblicitaOrizz.banner_300x250_read .barraSipra.bck-adv-sponsor .bk-adv.blocco_servizi_sponsor  .box-pubb.box-pubblicita.box-pubblicita-multimedia.box-pubbliredazionale .boxADV .boxAdv.box_adv_annunci.box_adv_speciali_hp.boxpubblicita.boxpubblicitasx .bt_adv1 .bt_sub_adv1  .c-iol-ad.cellulare-adv .center-adv.center-adv-news +.cmt_bgadv.contenitore_ad_top.content-adv-manager.contenuto-sponsorizzato .cp_adv-box.cp_adv300x250 .dads-lk€ .dm20-adv-slot +.edSponsor".ed_Related_Record_Div_Sponsor.ed_Related_Sponsor%!.ed_Related_Sponsor_Top_Container .ed_Sponsor.edinet_adv_container&".edinews_widget_link_sponsorizzati +.epeex_Sas .evolve-adv .extra--adv +.first_adv.flexi-pubblicita .foc-adv-slot.foglia-middle-adv.google-adx-corpo.google-adx-spalla.googleAnnunci.google_adx_corpo .gptslot--adv .gtv-adv-slot.header-adv-wr.header-mobile-mega-adv.home-rubriche-adv.inews_adv_top .inread_adv +.intro-adv.jadv_leoadv_pd .lancio_adv.leaderboard-adv.lg-titolo-ads.lg-titolo-ads-dx.lg-titolo-ads-sx.linksponsorizzati.listatonativeadv.live-adv-square .live-adv-top.live-article-adv-container.mg-adv-controller.modPubblicita.netd_300x600adv +.newtekadv .nk-adv.nk-adv-in-article-1.nk-adv-in-article-2 .nw_adv_full.pat-adv-300x250 .pat-adv-box.pat-adv-masthead.post_pubblicita  .promo_sp  .pub_text +.pubblicit.pubblicita-banner.pubblicita-box.pubblicitaGoogle.pubblicitaSlider.pubblicita_728x90.pubblicita_col1.pubblicita_sottile.pubblicitapremium.pubblitalocaleaddADV.pubblitalocaleaddpiccola  .publi_adŒ.qtr-bacheca-adv.rcsad_BottomLeft_x_content .related-adv.sal-adv-adsense .sal-adv-slot .sdbadv .sidebar-adv.sidebar-item-adv .sidebar__adv.sito-adv-sopra-main  .slot-adv.sponsor160x600Dx.sponsor300x250Sx.tabella2Pubblicita.tabella3Pubblicita.tabellaPubblicita.tbm-adv-inside_desktop.tbm-adv-inside_mobile.tbm-adv-outside_desktop.tbm-adv-outside_mobile .tcc-banner +.tccbanner.textual-adv-text .tn_adv .topadv_left .topadv_right +.trama_ads.tw-adv-native .tw-adv-slot.view-pubblicita.widget_adv_multi .widget_eepex .widget_n1ad.wl_WidgetRel_Sponsor.wl_WidgetRel_Sponsor1.yobee-lazyadv!a[href*=".linksita2017.com/"]"a[href*=".offerte2019.store/"]&"a[href*=".offerteonline2017.com/"]A=a[href^="//edintorni.net/related/service/sponsor/redirect/?"]HDa[href^="//native.booster3d.com/related/service/sponsor/redirect/?"]D@a[href^="//native.publy.com/related/service/sponsor/redirect/?"]#a[href^="http://ads.sisal.it/"])%a[href^="http://ads.williamhill.it/"])%a[href^="http://adv.ilsole24ore.it/"].*a[href^="http://affiliazioniads.snai.it/"]*&a[href^="http://crazylead.com/video/"].*a[href^="http://direct.juiceadv.com/aff_"].*a[href^="http://display.tracksafe.click/"]FBa[href^="http://edintorni.net/related/service/sponsor/redirect/?"]&"a[href^="http://labseo.ddns.net/"]IEa[href^="http://native.publy.com/related/service/sponsor/redirect/?"].*a[href^="http://tracking.performoney.it/"]95a[href^="http://www.bet365.it/"][href*="?affiliate="]51a[href^="http://www.sostariffe.it/tracker2.php?"]0,a[href^="https://4kmovies.online/download/"]($a[href^="https://adserver.html.it/"]+'a[href^="https://affiliate.across.it/"]62a[href^="https://affiliati.gointernet.it/verify/"],(a[href^="https://affiliation.software/"]/+a[href^="https://affiliazioniads.snai.it/"]0,a[href^="https://direct.piuannews.com/aff_"],(a[href^="https://go.ketchupadv.it/aff_"]'#a[href^="https://guarda4k.online/"]¸ +ÿï08@Rad4m.at^ +ÿï08@R +adasta.it^ +ÿï08@R adbreak.ch^ + ÿï08@Raddendo.network^ +ÿï08@Radkaora.space^ +ÿï08@R +adplay.it^ +ÿï08@R +adspro.it^ +%ÿï08@Raffiliation.software^ +ÿï08@R bannerbuy.it^ +ÿï08@Rbreak-even.it^ +ÿï08@Rbroadbandy.net^ +ÿï08@Rbrznetwork.com^ +ÿï08@Rbtmarketing.it^ +ÿï08@R codesour.com^ +ÿï08@R consigli.it^ + ÿï08@Rdelosnetwork.it^ +ÿï08@Readv.it^ +ÿï08@R epeex.io^ + ÿï08@Revolutionadv.it^ +ÿï08@R gbucket.ch^ +ÿï08@R hbagency.it^ +ÿï08@R justearn.it^ +ÿï08@Rleonardoadv.it^ +ÿï08@R mediamond.it^ +ÿï08@R noddus.com^ +ÿï08@R open-up.it^ +ÿï08@R payclick.it^ +ÿï08@Rpreludeadv.it^ +ÿï08@R +publy.net^ +ÿï08@R +rcsadv.it^ +'ÿï08@Rringier-advertising.ch^ +ÿï08@Rrizzonelli.it^ +ÿï08@R rtbuzz.net^ +ÿï08@R seowebbs.com^ +ÿï08@Rshoppydoo.com^ +ÿï08@Rtjekscores.dk^ +ÿï08@R upstory.it^ +ÿï08@Rworldfilia.net^ +ÿï08@R yobee.it^ +ÿï08@R yohtads.com^ +ÿï08@Rad.citynews.it^*&a[href^="https://ic.aff-handler.com/"]-)a[href^="https://link.offerte2019.info/"].*a[href^="https://link.offerte2019.space/"]3/a[href^="https://marketing.net.occhiali24.it/"]HDa[href^="https://mediaserver.bwinpartypartners.it/renderBanner.do?"])%a[href^="https://n26-eu.c2nwa3.net/"])%a[href^="https://offerte2019.space/"]62a[href^="https://online.codere.it/promoRedirect?"]0,a[href^="https://promonow.shop/offers.php?"]-)a[href^="https://record.betpartners.it/"],(a[href^="https://tracking.tgmfraz.com/"]-)a[href^="https://www.18carati.com/?acc="]2.a[href^="https://www.centoxcento.net/?track="]C?a[href^="https://www.dazn.com/"][href*="?utm_source=affiliate"]# + adnkronos.com.avp-p-wrapper' +ilgiornaleditalia.it .bannervcms% +questaseratv.it.channelBoxAds +unionesarda.it.leftAds2 +radioalfalab.it.penci-adsense-below-slider +unionesarda.it .rightAds +unionesarda.it.topAdsJ +simulatoripensione.it-a[href^="https://www.financeads.net/tc.php?"]  +la7.itdiv[id^="rtbuzz_"]ž +$ÿï08@Radtech.vivimedia.it^ +#ÿï08@Radvtraining-ads.it^ +!ÿï08@Radvx.esprimo.com^ +.ÿï08@Raffiliatetxt.nextmediaweb.com^ +-ÿï08@Raffiliati.ionoleggioauto.com^ +-ÿï08@Raffiliazioni.misterdomain.eu^ +#ÿï08@Ralpitour.it/widget/ +2ÿï* + italiavela.it08@Rapi.vivisail.com^ +#ÿï08@Ratomikecn.nohup.it^ +4ÿï08@R$auto.noicompriamoauto.it/evaluation/ +7ÿï08@R'autoxy.it/js/combine/lead_banner_min.js +)ÿï08@Rbabbano.com^*/babbano.png +(ÿï08@Rbannerpress.bps.plap.it^ +6ÿï* + forumfree.it08@Rbellicapelliforum.com^ +)ÿï08@Rberuby.com/images/banner/ +-ÿï* +manfredonianews.it08@Rbit.ly^ +,ÿï08@Rbooking.autoeurope.com/?aff= +°€* +viaggiallafinedelmondo.it* +domanidoveandiamo.it* +viaggi-lowcost.info* +circuitoturismo.it* +ioamolasicilia.com* +italy.grosseto.it* +italy.catania.it* +italy.firenze.it* +italy.vicenza.it* +italiasearch.it* +italy.biella.it* +italy.milano.it* +italy.novara.it08@R booking.com^ +-ÿï* + armiusate.it08@R callister.it^ +5ÿï08@R%campingsportmagenta.com/CamperOnline/ +'ÿï08@Rcdn-immedia.net/banner/ +(ÿï08@Rcheautocompro.it/widget- +<ÿï08@R,civitatis.com/widget-activities/?affiliated= +.ÿï08@Rd1yhzddoi8ev99.cloudfront.net^ +.ÿï08@Rd2moz0h55szev9.cloudfront.net^ +5ÿï* +xtremehardware.com08@Rdhresource.com^ +%ÿï08@Rdigitaladv.despar.it^ +.ÿï08@Rdoyoogo.com/build/widgetDOM.js +5ÿï* + juzaphoto.com08@Rdynamic.rcefoto.com^ +"ÿï08@Revaneos.it/widget/ +'ÿï08@Rfattoremamma.com/fmn.js +/ÿï08@Rflywheel.cloud/gallerie/banner/ +,ÿï08@Rfunshopping.it/iframe_embed/ +0ÿï* +salernitananews.it08@R +giphy.com^ +(ÿï08@Rgmdigital.it^*/adplay.js +-ÿï* +vdj.it08@Rgocomunicazione.it^ +3ÿï08@R#graficadivina.it/grafica-divina.jpg +-ÿï08@Rgreenweez.it/data/img/banner- +?ÿï* +salernitananews.it* +marcheingol.it08@Ribb.co^ +:ÿï08@R*ilgiardinodeilibri.it/data/banner_partner/ ++ÿï* +lanuovariviera.it08@Rim.ge^ +=ÿï* +marcheingol.it* + venetogol.it08@R imgbox.com^ +Nÿï* +casertasette.com* + friuligol.it* + venetogol.it08@R +imgur.com^ ++ÿï08@Rinfodustrie.com/affima.php? +2ÿï08@R"insicilia.com/modules/psaffiliate/ +?ÿï* +trend-online.com08@Rinvestimenti.bnpparibas.it^ +,ÿï08@Ritalycharter.it/searchwidget +3ÿï08@R#jooble.org/css/images/logos/jooble_ +/ÿï08@Rkataweb.it/zbanner_consorzio.js +0ÿï08@R lacittasrl.it^*/bannerframe.php? +,ÿï08@Rlibreriadelsanto.it/banners/ +&ÿï08@Rlimone.iltrovatore.it^ +)ÿï08@Rmacrolibrarsi.it/banners/ +4ÿï08@R$macrolibrarsi.it/img/banner_partner/ +<ÿï08@R,macrolibrarsi.it^*/macrolibrarsi.partners.js +2ÿï08@R"meteosuper.it/public/adv_script.js +(ÿï08@Rmiddycdn-a.akamaihd.net^ +5ÿï08@R%netsons.com/manage/adv/frmbnnr.min.js +5ÿï08@R%netsons.com/manage/images/affiliates/ +*ÿï08@Rnetworkturismo.it/banners/ +)ÿï08@Roasjs.kataweb.it/neodata/ +!ÿï08@Rofferte.news/pub/ +$ÿï08@Roro24ksrl.it/widget/ +2ÿï08@R"pegasomedia.it/public/immaginibnr/Þ +Hÿï* +orologidiclasse.com08@R!pictures.glashuette-original.com^ + ÿï08@Rplug.it/banners/ +Tÿï* +napolimagazine.com* +settecalcio.it* + toscanagol.it08@R postimg.cc^ +5ÿï08@R%pratoverdecagliari.it/images/banners/ +ÿï08@Rroi.ediscom.it^ +,ÿï08@Rsailory.com/logo_sailory.gif +'ÿï08@Rscambiobanner.aruba.it^ +,ÿï08@Rscambiobanner.net-parade.it^ +5ÿï* +casaegiardino.it08@Rservices.brid.tv^ +\ÿï* +nonchiamatemiturista.it08@R1sherpa.agoda.com/SherpaRender/SimpleSearchWidget? +*ÿï08@Rside-box.it/seller/widget/ +2ÿï08@R"sorgentenatura.it/data/img/Banner_ +)ÿï08@Rsostariffe.it/sosWidget3/ +!ÿï08@Rspox.com/daznpic/ +?ÿï* +veneziaradiotv.it08@Rssl.p.jwpcdn.com/*/vast.js +8ÿï* +laprevisione.it08@Rsupercalcioextra.com^ +$ÿï08@Rtcccdn.com^*/banner/ +'ÿï08@Rtccstatic.com^*/banner/ +#ÿï08@Rtdn.da-services.ch^ +#ÿï08@Rtiqets.com/widgets/ +,ÿï08@Runifiedads.magellanotech.it^ + ÿï08@Ruplink.aruba.it^ +ÿï08@R uzi.it/b/ +'ÿï08@Rvenerota.it/lcn_jpg.php +3ÿï08@R#viaggiare.columbusassicurazioni.it^ +N* +lagazzettadiviareggio.it* + teleborsa.it08@Rviralize.tv/display/ +1ÿï* + paesenews.it08@Rvolantinopiu.com^ +ÿï08@Rvzbl.eu^ +(ÿï08@Rwidget.getyourguide.com^ +#ÿï08@Rwidgetbay.3labs.it^ +%ÿï08@Rwidgets.shop.moda.it^ +@ÿï* +thailandiapertutti.it08@Rwidgets.skyscanner.net^ +Bÿï* + investire.biz08@R!windows.net/public/images/banner/ +=ÿï* +divisionecalcioa5.it08@Rwindows.net^*/Banner/ +Hÿï08@R8wp.com/it.jooble.org/css/images/logos/jooble_135x110.png +5ÿï08@R%wp.com/www.ionoleggioauto.com/banner- +"ÿï08@R1001giochi.it/bfb/ +,ÿï08@R105tv.it/web/images/banners/ +9ÿï08@R)24emilia.com/wp-content/uploads/*/banner- +6ÿï08@R&24live.it/wp-content/uploads/*/banner- +0ÿï08@R 24newsonline.it/images/*_banner_ +.ÿï08@R24newsonline.it/images/banner/ +1ÿï08@R!24newsonline.it/index.php/banner- +#ÿï08@R3bmeteo.com/banner/ ++ÿï08@R3tre3.it/3tres3_common/pub/ +)ÿï08@R51news.it/images/banners/ +)ÿï08@R51news.it/images/banners_ +$ÿï08@R7per24.it^*/sponsor/ +(ÿï08@Rabc24.it/images/banners/ +-ÿï08@Rabcsalute.it/css/pics/banner_ +8ÿï08@R(abcsalute.it/fe/jsLibs/bannercarousel.js +)ÿï08@Rabilitychannel.tv^*/skin- +-ÿï08@Rabruzzolive.tv/images_client/ +=ÿï08@R-abruzzonotizie.com/wp-content/uploads/all.png +8ÿï08@R(abruzzonotizie.com^*/SkinLaserClinic.jpg +1ÿï08@R!accordo.it/cloud-assets/x/sfondi/ +,ÿï08@Racmonza.com/images/sponsors/ +&ÿï08@Racrenate.it^*/sponsor_ +'ÿï08@Racspezia.com^*/sponsor/ +6ÿï08@R&adozionilibriscolastici.it/advertiser/ +3ÿï08@R#adserver.ilgazzettinovesuviano.com^ +(ÿï08@Radv-img.edilportale.com^ +3ÿï08@R#affarienews.it/admin/public/banner/ +8ÿï08@R(aforismicitazioni.it/images/amazon-A.jpgÙ +9ÿï08@R)aforismicitazioni.it/images/amazonBuy.png +9ÿï08@R)agarymathematics.net/img/banner760-90.gif +5ÿï08@R%agensir.it/wp-content/uploads/*/skin_ +4ÿï08@R$agimeg.it/wp-content/uploads/*/Skin- ++ÿï08@Ragipronews.it/image/banner/ +)ÿï08@Ragronline.it/uploads/fre/ +'ÿï08@Raia-figc.it^*/legea.png +/ÿï08@Raia-figc.it^*/net-insurance.png +/ÿï08@Ralbinoleffe.com/images/banners/ +.ÿï08@Ralessandriacalcio.it^*/banner_ +7ÿï08@R'algheronotizie.com/immaginisito/banner_ +/ÿï08@Ralimentibevande.it/img/banners/ +=ÿï08@R-almanaccocalciotoscano.it/wp-content/banners/ +#ÿï08@Ralqamah.it/banners/ +.ÿï08@Raltadefinizione01.fyi/3001.gif +.ÿï08@Raltadefinizione01.global/buton +*ÿï08@Raltadefinizione4k.tv/c.png +,ÿï08@Raltadefinizioneita.me/it.gif ++ÿï08@Raltissimoceto.it^*_Banners_ +<ÿï08@R,altoadigegol.it/js/allinone_bannerRotator.js +-ÿï08@Raltoadigetv.it/images/banner/ +3ÿï08@R#altoadigetv.it/images/social/banner +0ÿï08@R altopiemonte24.it/images/banner/ +Gÿï08@R7altovicentinonline.it/wp-content/uploads/*/cora-viaggi- +/ÿï08@Raltramantova.it/images/banners/ +7ÿï* + armiusate.it08@Ramazonaws.com^*/Banner- +4ÿï* + armiusate.it08@Ramazonaws.com^*/pix/ +7ÿï* + armiusate.it08@Ramazonaws.com^*_banner_ +#ÿï08@Ramicidicasa.it/amb/ +.ÿï08@Rammirati.org/immagini/sponsor/ +Fÿï08@R6androidblog.it/wp-content/uploads/*/offerte-amazon.png +2ÿï08@R"animalinelmondo.com/images/banner/ +&ÿï08@Ranimeclick.it/Banners/ +5ÿï08@R%animeclick.it/immagini/campagna/skin- +*ÿï08@Ranimeclick.it/video-intro/ +&ÿï08@Ranimeemanga.it/banner_ +Tÿï08@RDanimeemanga.it/wp-content/uploads/*/dynit-su-prime-video-288x360.jpg +,ÿï08@Ranisearch.it/images/sponsor/ +%ÿï08@Ranisearch.it/partner? +4ÿï08@R$annuariodelcinema.it/images/banners/ +-ÿï08@Rannunci.modellismo.it/banner/ +3ÿï08@R#annunci69.it/include/ads_ponte.php? +-ÿï08@Rantenna1.fm/upload/publicite/ +,ÿï08@Raostaoggi.it/images/banners/ +%ÿï08@Raostasports.it^*/box/ +'ÿï08@Rapi.everyeye.it/amazon/ +T* +quotidianocanavese.it08@R-api.trecentodieci.it/serve/cdn/qcanavese/ads/ +U* +quotidianocanavese.it08@R.api.trecentodieci.it/serve/cdn/qcanavese/skin/ +;ÿï08@R+aprilianews.it/wp-content/uploads/*/Banner- +0ÿï08@R archi-magazine.it/media/banners/ +Aÿï08@R1archivio.ilfriuliveneziagiulia.it/images/banners/ +,ÿï08@Rarezzo24.net/images/banners/ +*ÿï08@Rarezzotv.it/images/banner/ +!ÿï08@Rarmiusate.it/pix/ +'ÿï08@Rarmiusate.it^*/sponsor/ +)ÿï08@Rarona24.it/images/banner/ +,ÿï08@Rarona24.it/images/rampolina_ +6ÿï08@R&art-news.it/wp-content/uploads/banner- +=ÿï08@R-assoallenatori.it/assets/img/content/sponsor/ +/ÿï08@Rasvicenza.it^*/Laerrevieffe.jpg +'ÿï08@Rasvicenza.it^*_sponsor_ +4ÿï08@R$atleticamentefoto.it/images/banners/ ++ÿï08@Rautomania.it/varie/sponsor/ +.ÿï08@Ravmagazine.it/js/common-tag.jsï +8ÿï08@R(avvisatore.com/wp-content/uploads/*/adv_ +8ÿï08@R(avvisatore.com/wp-content/uploads/*_adv_ +5ÿï* +cpop.it08@Rb-cdn.net/assets/partners/ +0ÿï08@R bagherianews.com/images/banners_ +:ÿï08@R*bagherianews.com/images/Webp.net-gifmaker- +)ÿï08@Rbalarm.it/attachment-web/ +!ÿï08@Rbalarm.it/banner/ +!ÿï08@Rbalarm.it^*-skin- +&ÿï08@Rbanner.moscarossa.biz^ +<ÿï08@R,baraondanews.it/wp-content/uploads/*-banner- +>ÿï08@R.baraondanews.it/wp-content/uploads/*/auto-doc. +Aÿï08@R1basketfemminilebiellese.altervista.org^*/Sponsor/ +Bÿï08@R2basketfemminilebiellese.altervista.org^*/Sponsors/ +6ÿï08@R&battipaglia1929.it/wp-content/banners/ +Cÿï08@R3benesserecorpomente.it/wp-content/uploads/*/banner- +.ÿï08@Rbeneventocalcio.club/partners/ +2ÿï08@R"beneventocalcio.it/images/banners/ +Tÿï08@RDbeneventonews24.it/wp-content/themes/weben-news/assets/images/skins/ +Wÿï08@RGbeneventonews24.it/wp-content/themes/weben-news/assets/images/sponsors/ +.ÿï08@Rbiancoebruno.it/images/banner/ +,ÿï08@Rbiccy.it/public/general/adv/ +5ÿï08@R%bicisupermarket.it/images/vintage.jpg +Pÿï08@R@biella24.files.wordpress.com/2019/10/fondo-autoland-biella24.jpg +,ÿï08@Rbiellese24.it/images/banner/ +'ÿï08@Rbierredue.it/banner.gif ++ÿï08@Rbierredue.it/estensione.gif +.ÿï08@Rbierredue.it/images/450x75.jpg +1ÿï08@R!bikerslife.com/contenuti/banners/ +Iÿï08@R9blogsicilia.it/wp-content/uploads/sites/*/banner-300x100- + ÿï08@Rbn.radiogold.it^ +"ÿï08@Rbolina.it/banners/ +6ÿï08@R&bolina.it/filemanager/userfiles/Popup/ +%ÿï08@Rbolina.it/img_header/ +'ÿï08@Rbolli.it/images/banner/ +/ÿï08@Rbolzano-bozen.it/images/banner/ +/ÿï08@Rborgomanero24.it/images/banner/ +.ÿï08@Rbresciasat.it/upload/*_banner- +-ÿï08@Rbrindisifc.it/images/sponsor/ ++ÿï08@Rbrindisisera.it/img/banner/ +,ÿï08@Rbrindisisettenews.it/banner/ +2ÿï08@R"brundisium.net/ilnautiluslogo2.jpg +7ÿï08@R'buoncalcioatutti.it/wp-content/banners/ +6ÿï08@R&buonenotiziebologna.it/images/banners/ +2ÿï08@R"buonenotiziebologna.it/images/pub/ +/ÿï08@Rbuongiornoslovacchia.sk/banner/ +:ÿï08@R*business24tv.it/wp-content/uploads/*/skin- +7ÿï08@R'cakemania.it^*/bannervoxmail300x100.png +Dÿï08@R4calabriapost.net/modules/mod_responsivebannerslider/ +:ÿï08@R*calabriatv.it/wp-content/uploads/*/banner- +108@R#calciomercato.com/build/images/adv. +'ÿï08@Rcampanialive.it/banner/ +Aÿï08@R1campaniameteo.it/CMS/Upload/GalleriaUtente/Image/ +"ÿï08@Rcamperonline.it/b/ +'ÿï08@Rcamperonline.it/sfondo/ +(ÿï08@Rcamping.it/xbDispatcher/ +%ÿï08@Rcanale12.it^*/banner- +&ÿï08@Rcanale58.com^*/banner/ +,ÿï08@Rcanalecinquetv.it^*/sponsor/ +)ÿï08@Rcanavesetoday.it/banners/ +(ÿï08@Rcaneogolf.it/img/banner/ + ÿï08@Rcani.it/banners/ +.ÿï08@Rcasateonline.it/public/banner/ +1ÿï08@R!casefunerarie.it/uploads/banners/ +5ÿï08@R%casertafocus.net/home/images/banners/² +,ÿï08@Rcasertasette.com/banners.php +&ÿï08@Rcb01.in/pellicola.html +:ÿï* +finestresullarte.info08@Rcdn77.org/banner/ +5ÿï08@R%centotrentuno.com/wp-content/banners/ +5ÿï08@R%cercacasa.it/assets/img/placeholders/ +.ÿï08@Rciclonews.it/media/imgbanners/ +.ÿï08@Rciclonline.com/images/banners/ +/ÿï08@Rcinafoniaci.com/images/banners/ +3ÿï08@R#cinafoniaci.com/images/gearbest.jpg +6ÿï08@R&cinafoniaci.com/images/hi9-air-250.jpg +&ÿï08@Rcineblog01.vet/300.gif +%ÿï08@Rcineblog01.vet/it.gif +7ÿï08@R'cinemaitaliano.info/_common/img/banner/ +9ÿï08@R)circusf1.com/wp-content/uploads/*/Amazon_ +3ÿï08@R#citroen-club.it/portale/img/banner_ +Aÿï08@R1citroen-club.it/portale/img/logo_lopez_racing.jpg +'ÿï08@Rclassificaporno.com/og/ +3ÿï* + armiusate.it08@Rcloudfront.net/pix/ +)ÿï08@Rcn24tv.it/images/banners/ +)ÿï08@Rcodedaze.me/scaricare.png + ÿï08@Rcodedaze.me/vpn_ ++ÿï08@Rcomingsoon.it/imgdb/banner/ +>ÿï08@R.comunicaffe.it/wp-content/uploads/angwp/items/ +4ÿï08@R$comunicati-stampa.net/images/banner/ +.ÿï08@Rconcorezzo.org/images/banners/ +,ÿï08@Rconcorezzo.org/images/bgmax/ +&ÿï08@Rcondominioweb.com/ban/ +;ÿï08@R+confinelive.it/wp-content/uploads/*/banner- +&ÿï08@Rcontusu.it/img_banner/ +(ÿï08@Rcorrezioneonline.it/cnc/ +2ÿï08@R"corriereannunci.it/images/banners/ +6ÿï08@R&corrieredellumbria.it/upload/addsense/ +4ÿï08@R$corrierediarezzo.it/upload/addsense/ +>ÿï08@R.corrierediragusa.it/wp-content/uploads/*-skin- +5ÿï08@R%corrieredisaluzzo.it/cgi-bin/sponsor/ +3ÿï08@R#corrieredisiena.it/upload/addsense/ +Qÿï08@RAcorriereelorino.it/wp-content/uploads/*/cover-corriere-expert.jpg +3ÿï08@R#corriereincontri.it/images/banners/ +/ÿï08@Rcorrierenews.it/images/banners/ +4ÿï08@R$corriereobjects.it/fascioni/sponsor/ +3ÿï08@R#corriereproposte.it/images/banners/ +Zÿï08@RJcorrieretoscano.it/wp-content/uploads/*/Oimmei-Digital-Consulting-Skin.jpg +=ÿï08@R-corrieretoscano.it/wp-content/uploads/*/Skin_ +;ÿï08@R+cosedicasa.com/wp-content/uploads/sidespot/ +>ÿï08@R.cralistruzione.it/images/convenzionati/banner/ +5ÿï08@R%cremaonline.it/ajax/visBanPub2018.php +)ÿï08@Rcremaonline.it/js/skin.js +)ÿï08@Rcronacaflegrea.it/banner/ +Bÿï08@R2cronachetarantine.it/images/nuovi-banner-quadrati/ +0ÿï08@R crotone24news.it/images/banners/ +$ÿï08@Rcrotoneok.it/?_dnid= +.ÿï08@Rcruisinlife.it/images/banners/ ++ÿï08@Rcuneocronaca.it/img/banner/ +1ÿï08@R!cuneocronaca.it/js/clickBanner.js +)ÿï08@Rcusio24.it/images/banner/ +#ÿï08@Rdailybet.it/banner_ +,ÿï08@Rdailybet.it/immagini/banner/ +Fÿï08@R6dailynautica.com/wp-content/uploads/*_enewsBannerSkin_ +>ÿï08@R.darkveins.com/wp-content/uploads/*/lhorror.jpg +3ÿï08@R#dedalomultimedia.it/images/banners/ +;ÿï08@R+dedalomultimedia.it/images/Confartigianato/ +Cÿï08@R3diaconale.it/wp-content/uploads/*/BannerSSLazio.jpg +0ÿï08@R dichesegnosei.it/images/banners/ +7ÿï08@R'digitalic.it/wp-content/uploads/*/skin_À +3ÿï08@R#dirittodicronaca.it/images/banners/ +>ÿï08@R.dirittoegiustizia.it/assets/js/banners-script/ +'ÿï08@Rdisabili.com/images/sa/ +<ÿï08@R,djmagitalia.com/wp-content/uploads/*-banner- +0ÿï08@R doppiozero.com^*/r_banner_box_d/ +Bÿï08@R2dossier.net/risorse/img/2010-rettangolo-336x280.js +>ÿï08@R.dovesciare.it/wd/includes/skin_config_ajax.php +(ÿï08@Rearone.it/themes/banner/ +4ÿï08@R$ecodellasabina.it/public/publicitas/ +7ÿï08@R'econote.it/wp-content/uploads/*/banner- +5ÿï08@R%edicoladigitale.info/app-data/banner_ +'ÿï08@Redilportale.com/Banner/ +/ÿï08@Relbanotizie.it/img/bluenavy.jpg +,ÿï08@Relbanotizie.it/img/moby2.png +-ÿï08@Relbareport.it/images/banners/ +8ÿï08@R(elettricomagazine.it/wp-content/banners/ +9ÿï08@R)emiliagol.it/js/allinone_bannerRotator.js ++ÿï08@Remiliagol.it^*/File_banner/ +,ÿï08@Rescort-advisor.com/ea/img/b/ +&ÿï08@Rescortaltop.it/banner/ +8ÿï08@R(escortinn.com/fe/img/helenecastelli3.jpg +/ÿï08@Reuroregionalpmed.eu/img/banner/ +3ÿï08@R#euroregionalpmed.eu/js/clickBanner_ +-ÿï08@Reurostreaming.beauty/gcode.js +)ÿï08@Reurostreaming.soy/300.gif +Gÿï08@R7excellentmagazine.it/wp-content/uploads/*/ADV-Quadrata_ ++ÿï08@Rfacciabuco.com/grafica/adv/ +0ÿï08@R fantacalciopedia.com/img/banner_ +/ÿï08@Rfantascientificast.com/partner/ +Cÿï08@R3fantascienzaitalia.com/wp-content/uploads/*/banner- +6ÿï08@R&fcprovercelli.it/images/images/banner/ +4ÿï08@R$federcanoa.it/images/banner-sponsor/ +/ÿï08@Rferalpisalo.it/images/sponsors/ ++ÿï08@Rferalpisalo.it/img/sponsor/ +3ÿï08@R#ferrovie.it/portale/images/banners/ +)ÿï08@Rfidaf.org/public/sponsor/ +(ÿï08@Rfidal.it/upload/sponsor/ +&ÿï08@Rfif.it/images/sponsor/ +,ÿï08@Rfilmatipornohd.com/sponsors/ +*ÿï08@Rfilmscoop.it/image/webngo_ +)ÿï08@Rfilmstreaming.page/it.gif +)ÿï08@Rfilmstreaming.page/sc.png +,ÿï08@Rfilmstreaming.page/strem.png +<ÿï08@R,fiorentinabaseball.it/assets/images/Partner/ +)ÿï08@Rfiorentinaweb.com/banner_ +2ÿï08@R"firenzespettacolo.it/media/banner/ +/ÿï08@Rfitp.it/media_contents/partner/ +(ÿï08@Rfitri.it/images/banners/ +3ÿï08@R#fiumicino-online.it/images/banners/ +6ÿï08@R&fmtv.live/wp-content/uploads/*-banner- +6ÿï08@R&fmtv.live/wp-content/uploads/*/banner- +-ÿï08@Rfocus-online.it/files/banner/ +1ÿï08@R!focus-online.it/files/img_banner/ +<ÿï08@R,fordfiestaitalia.com/images/stories/sponsor/ +'ÿï08@Rformula1news.it/banner/ +5ÿï08@R%fortune.it/images/all-studio-2017.jpg +)ÿï08@Rfortune.it/images/all.jpg +8ÿï08@R(fortune.it/images/allstudio-mani-dep.jpg +3ÿï08@R#fortune.it/images/banner-giallo.gif +4ÿï08@R$fortune.it/images/ritratti-rosso.gif ++ÿï08@Rfortuneita.com^*/banners.js +3ÿï08@R#forum.audirsclub.it/images/banners/ +8ÿï08@R(forum.audirsclub.it/images/misc/Faratech +0ÿï08@R forum.clubalfa.it/images/banner/Û +&ÿï08@Rfpi.it/images/banners/ +*ÿï08@Rfreeonline.org/img/banner/ +<ÿï08@R,fremondoweb.com/wp-content/uploads/*/banner_ +"ÿï08@Rfreshplaza.it^*/b/ +(ÿï08@Rfreshplaza.it^*/banners/ +9ÿï08@R)friuligol.it/js/allinone_bannerRotator.js +?ÿï08@R/fruitbookmagazine.it/wp-content/uploads/*/SKIN_ +;ÿï08@R+gamingtoday.it/wp-content/uploads/*/Banner- +9ÿï08@R)gardapost.it/wp-content/uploads/*/banner- +.ÿï08@Rgaredepoca.com/grafica/banner_ +;ÿï08@R+gazzettabenevento.it/Sito2009/image/banner/ +7ÿï08@R'gazzettadellaspezia.com/images/banners/ +5ÿï08@R%gazzettadellemilia.it/images/banners/ +>ÿï08@R.gazzettalucchese.it/assets/Uploads/inserzioni/ +Dÿï08@R4gazzettinodelchianti.it/wp-content/uploads/*/banner- +-ÿï08@Rgenova3000.it/images/banners/ +,ÿï08@Rgeronimo.news/media/banners/ +0ÿï08@R gigishow.it/site/images/banners/ +0ÿï08@R gigishow.it/site/images/sponsor/ +,ÿï08@Rgiglionews.it/images/banner_ +Fÿï08@R6giglionews.it/images/minicrociere-giglio-giannutri.jpg +0ÿï08@R giochi-gratis.eu/card-banner.png + ÿï08@Rgiochixl.it/bfb/ +4ÿï08@R$giornaleadige.it/wp-content/banners/ +Bÿï08@R2giornaledellabirra.it/wp-content/uploads/*/Banner- +'ÿï08@Rgnoccaforum.biz/banner/ +)ÿï08@Rgnoccaforum.com/static/b/ +.ÿï08@Rgnoccatravels.com/files/pbblct +0ÿï08@R goblins.net/files/images/banner/ +.08@R gratisfree.it/cgi-bin/bannergest +1ÿï08@R!greenews.info/wp-content/banners/ +.ÿï08@Rgreenreport.it/images/banners/ +-ÿï08@Rgrp.it/assets/images/banners/ +,ÿï08@Rgruppovideomedia.it/banners/ +<ÿï08@R,guida-aziende-italiane.it/img/c015banner.jpg +/ÿï08@Rhcgherdeina.com/img/db/sponsor/ +4ÿï08@R$hdblog.it/new_files/ajax/bf_new.php? +6ÿï08@R&hdmotori.it/new_files/ajax/bf_new.php? +)ÿï08@Rhlstatic.it/files/banner/ +7ÿï08@R'horecanews.it/wp-content/uploads/angwp/ +*ÿï08@Rhwupgrade.it/js/hwu_adv.js +-ÿï08@Rilcambiamento.it/data/banner/ +/ÿï08@Rilcervellone.it/images/banners/ +;ÿï08@R+ilcittadinodirecanati.it/images/new/banner/ +Aÿï08@R1ilcorrieredelgiorno.it/wp-content/uploads/*/SKIN_ +-ÿï08@Rilcorrierino.com/foto-banner/ +Fÿï08@R6ilcosentino.it/datistatic/globalimages/images/banners/ +Gÿï08@R7ildiariometropolitano.it/wp-content/uploads/background- +Cÿï08@R3ildiariometropolitano.it/wp-content/uploads/banner- +=ÿï08@R-ilfilo.net/wp-content/uploads/*/autoparti-it- +7ÿï08@R'ilfilo.net/wp-content/uploads/*/banner- +1ÿï08@R!ilgazzettinobr.it/images/banners/ +Bÿï08@R2ilgiornaledellaprotezionecivile.it^*/_abe_banners/ +7ÿï08@R'ilgiornaledelmolise.it/img/bannerlungo/ +6ÿï08@R&ilgiornaledelmolise.it/img/lamolisana_ +-ÿï08@Rilgoriziano.it/public/banner/ +5ÿï08@R%ilgrigioneitaliano.ch/images/banners/ +1ÿï08@R!ilmediano.com/wp-content/banners/ +%ÿï08@Rilmioip.it/img/banner +)ÿï08@Rilmioip.it/img/infermieri +@ÿï08@R0ilnuovoterraglio.it/wp-content/uploads/*/banner- +0ÿï08@R ilpisasiamonoi.it/public/banner- +0ÿï08@R ilquotidiano.it/userdata/banner/ +4ÿï08@R$ilroma.net/sites/default/files/SKIN_Ò +-ÿï08@Rilroma.net^*/rotating_banner/ +0ÿï08@R ilsicilia.it/wp-content/banners/ +9ÿï08@R)iltquotidiano.it/wp-content/uploads/Skin_ +4ÿï08@R$iltredici.it/resources/img/partners/ +/ÿï08@Rilvimercate.org/images/banners/ +.ÿï08@Rimperoland.it/billboardPh1.htm +?ÿï08@R/incontriamoci.xxx/oc-content/uploads/affiliate/ +/ÿï08@Rindustria-online.com/storage/b- +#ÿï08@Rinfooggi.it/banner- +(ÿï08@Rinformacalcio.it/banner/ +2ÿï08@R"informatissimo.net/images/banners/ +<ÿï08@R,informatrieste.eu/siti-non-aams-italiani.jpg +.ÿï08@Rinfovizzini.it/layout/banners/ +*ÿï08@Rinpiega.it/images/banners/ +0ÿï08@R insanitas.it/wp-content/banners/ +,ÿï08@Rinside.bz.it/images/banners/ +0ÿï08@R invaligia.com/images/ani1_MV.gif +5ÿï08@R%invaligia.com/images/YousosBanner.png +&ÿï08@Rioarte.org/img/banner/ +'ÿï08@Riolecal.it/blog/amazon/ +/ÿï08@Riovivoaroma.org/public/banners/ +,ÿï08@Ritalia-informa.com^*/banner/ +(ÿï08@Ritalia.fm^*/leaseweb.gif +1ÿï08@R!italiaatavola.net/images/banners/ +1ÿï08@R!italiaciclismo.net/images/banner_ +,ÿï08@Ritaliadelcalcio.it/bannerc1/ +,ÿï08@Ritaliadelcalcio.it/dailybet/ +.ÿï08@Ritaliafruit.net/upload/BANNER/ +>ÿï08@R.italiagol.it/js/allinone_bannerWithPlaylist.js +8ÿï08@R(italianews.org/master/aruba-small-hp.jpg +%ÿï08@Ritaliavela.it/banner/ +8ÿï08@R(italpress.com/wp-content/uploads/*/SKIN_ +Hÿï08@R8italpress.com/wp-content/uploads/2021/03/intesa-logo.png +(ÿï08@Rjuventus.com^*/sponsors/ +:ÿï08@R*katablog.it/images/e-commerce-carrello.jpg +Iÿï08@R9kimchiebasilico.it/wp-content/uploads/*/Spring21_PNG2.jpg +/ÿï08@Rkustom-world.it/images/banners/ +6ÿï08@R&labtv.net/wp-content/uploads/*/banner_ +5ÿï08@R%lacasainordine.it/wp-content/banners/ +*ÿï08@Rlacitta.eu/images/banners/ +4ÿï08@R$lacronacadiravenna.it/file/*/banner_ ++ÿï08@Rladigetto.it/files/banners/ +&ÿï08@Rladigetto.it^*/banner/ +6ÿï08@R&lafune.eu/wp-content/uploads/*/Banner- +:ÿï08@R*lagazzetta.info/wp-content/uploads/banner/ +Nÿï08@R>lagazzettaaugustana.it/wp-content/plugins/ruota-banner-widget/ +Dÿï08@R4lagazzettadelmezzogiorno.it/upload/1682775693137.jpg +8ÿï08@R(lagazzettadelserchio.net/images/banners/ +4ÿï08@R$lagazzettadilucca.it/images/banners/ +<ÿï08@R,lagazzettadimassaecarrara.it/images/banners/ +9ÿï08@R)lagazzettadiviareggio.net/images/banners/ +Eÿï08@R5lagazzettamarittima.it/wp-content/uploads/Background- +<ÿï08@R,lagazzettaonline.info/portal/images/banners/ +0ÿï08@R lagomaggiore24.it/images/banner/ +7ÿï08@R'lanuovacalabria.it/media/images/banner/ +8ÿï08@R(lanuovagazzettadisaluzzo.it/style/bg.JPG +*ÿï08@Rlapressa.it/imgs/partners/ +%ÿï08@Rlapressa.it/sponsors/ +9ÿï08@R)laprovinciacr.it/upload/1693226934775.jpg +9ÿï08@R)laprovinciacr.it/upload/1693477452631.jpg +Dÿï08@R4laprovinciakr.it/modules/mod_responsivebannerslider/ +Gÿï08@R7laragione.eu/wp-content/themes/yootheme/cache/*/banner- +-ÿï08@Rlasiritide.it/public/sponsor/ +(ÿï08@Rlausc.it/images/banners/¼ +1ÿï08@R!lavocedelpalio.it/uploads/banner/ +,ÿï08@Rlavocedelpopolo.it^*/banner_ +-ÿï08@Rlavocedelpopolo.it^*/holyart_ +-ÿï08@Rlavocedelpopolo.it^*_264x264_ +/ÿï08@Rlavocedilucca.it/images/banner_ +%08@Rlavorincasa.it/product/ +)ÿï08@Rlavoripubblici.it/banner/ +Bÿï08@R2lavoroecarriere.it/wp-content/uploads/*/sm-banner. +%ÿï08@Rleccesette.it/banner/ +4ÿï08@R$lecconotizie.com/wp-content/banners/ +.ÿï08@Rleccoonline.com/public/banner/ +#ÿï08@Rlegab.it^*/sponsor/ +7ÿï08@R'legabasketfemminile.com/Images/Sponsor/ +:ÿï08@R*leganavalenews.it/images/joomlart/banners/ +Aÿï08@R1legapallacanestro.com/sites/default/files/banner/ +Gÿï08@R7legapallacanestro.com/sites/default/files/logo_sponsor_ +0ÿï08@R legavolley.it/img/header_top.png +Cÿï08@R3legavolleyfemminile.it/wp-content/uploads/*/Banner_ +=ÿï08@R-leggopassword.it/wp-content/uploads/*/Banner- +>ÿï08@R.legnolab.it/media/imagecache/vetrina/*-banner- +6ÿï08@R&lespresso.it/js/banner-interstitial.js +)ÿï08@Rlespresso.it/js/banner.js +)ÿï08@Rlineaedp.it/files/*/skin_ +:ÿï08@R*lineameteo.it/files/images/2/banner_1_.png +6ÿï08@R&link24.it/wp-content/uploads/*/banner- +#ÿï08@Rlipari.biz/banners/ +&ÿï08@Rlnd.it/images/sponsor/ +)ÿï08@Rlocalidautore.it/banner2/ +&ÿï08@Rlospiffero.com/banner/ ++ÿï08@Rlostrillone.tv/foto-banner/ +'ÿï08@Rloudd.it/public/banner/ +*ÿï08@Rluce.lanazione.it/partner/ +#ÿï08@Rlupopornohd.it/bnr/ +,ÿï08@Rluxwatch.it/watches_250x250_ +(ÿï08@Rmaiescort.com/images/bn/ +9ÿï08@R)malindikenya.net/images/uploads/sponsors/ +>ÿï08@R.malpensa24.it/wp-content/uploads/*/background- +.ÿï08@Rmammedomani.it/images/banners/ +,ÿï08@Rmanduriaoggi.it/html/banner/ +4ÿï08@R$mangaforever.net/public/general/adv/ +Bÿï08@R2mangiobenevivobene.it/wp-content/uploads/*/banner- +:ÿï08@R*mantovauno.it/wp-content/uploads/*/banner- +;ÿï08@R+marcheingol.it/js/allinone_bannerRotator.js +Jÿï08@R:mareonline.it/wp-content/themes/mareonline3.0/img/banners/ +-ÿï08@Rmarigliano.net/upload/banner/ +,ÿï08@Rmarione.net/prog-sponsor-20/ +;ÿï08@R+marsicalive.it/wp-content/uploads/*/banner- +>ÿï08@R.matrimony.it/uploads/public/professionisti.jpg +'ÿï08@Rmegaescort.info/felo.js +&ÿï08@Rmegaescort.info/renif/ +.ÿï08@Rmerateonline.it/public/banner/ +,ÿï08@Rmetanogpl.it/images/banners/ +-ÿï08@Rmeteo4.com/mt/images/banners/ +.ÿï08@Rmeteoaquilano.it/images/Banner +-ÿï08@Rmeteoaquilano.it/images/logo_ +6ÿï08@R&meteoaquilano.it/images/pianeta_ciclo_ +)ÿï08@Rmeteoaquilano.it/Sponsor/ +,ÿï08@Rmeteocomo.it/images/banners/ +0ÿï08@R meteosestola.it/img/audiocar.jpg +0ÿï08@R meteosestola.it/img/bernardi.png +3ÿï08@R#meteosestola.it/img/modelmarris.jpg +3ÿï08@R#meteosestola.it/img/sevensummit.png ++ÿï08@Rmeteovalmorea.it^*/banners/ +/ÿï08@Rmicrogiochi.com/img/gdesire.jpg† +/ÿï08@Rmilanofinanza.it^*/sponsor2.png +Hÿï08@R8mio-ip.eu/wp-content/uploads/*/offerte-amazon-hi-tec.jpg ++ÿï08@Rmisterstudent.tv/o/sponsor/ +"ÿï08@Rmmawiki.org^*/adv- +$ÿï08@Rmobimart.it/ban.html +&ÿï08@Rmodellismo.net/banner/ +1ÿï08@R!modellismopiu.it/images/partners/ +1ÿï08@R!modellismopiu.it/modules/banners/ +,ÿï08@Rmomentosera.it/bannerupload/ +>ÿï08@R.mondopadano.it/media/statiche/mondopadano/ADV/ +;ÿï08@R+monitorimmobiliare.it/images/upload/banner/ +/ÿï08@Rmonrealenews.it/images/banners/ + ÿï08@Rmoondo.info/adv/ +&ÿï08@Rmotori.it/widget-agos/ +7ÿï08@R'motori360.it/wp-content/uploads/*/SKIN_ +/ÿï08@Rmyvalley.it/wp-content/banners/ +1ÿï08@R!napolicalcionews.it/images/Banner +;ÿï08@R+napolicittasolidale.it/portal/files/banner/ +/ÿï08@Rnarnionline.com/images2/banner/ +!ÿï08@Rnewlaw.it/banner/ +;ÿï08@R+newsinquota.it/wp-content/uploads/*/BANNER_ +9ÿï08@R)newtuscia.it/wp-content/uploads/*/banner- +3ÿï08@R#nordmilano24.it/wp-content/banners/ +1ÿï08@R!notebookitalia.it/images/banners/ +2ÿï08@R"notiziarioeolie.it/images/banners/ +5ÿï08@R%notiziediprato.it/caricaBannerIframe/ +1ÿï08@R!notiziediprato.it/uploads/banner/ +.ÿï08@Rnovara24news.it/images/banner/ +,ÿï08@Rnovarese24.it/images/banner/ +.ÿï08@Rnove.firenze.it/images/banner/ +7ÿï08@R'nozzeitalia.com/index2/costaframedx.JPG +3ÿï08@R#nozzeitalia.com/index2/framesx2.JPG +7ÿï08@R'nuoto.com/wp-content/uploads/*_skin.png +&ÿï08@Rnuovacosenza.com/spot/ +7ÿï08@R'nuovosud.it/sites/default/files/banner/ +.ÿï08@Roggimilazzo.it/images/banners/ +*ÿï08@Roggiroma.it/public/banner/ +)ÿï08@Roggisalute.it/fitelab.jpg +"ÿï08@Roksiena.it/banner/ +ÿï08@Roksiena.it/fo/ +,ÿï08@Roktennis.it/wp-content/skin/ +3ÿï08@R#olbianotizie.it/img/assets/siddura/ +-ÿï08@Rondalibera.it/images/banners/ +$ÿï08@Rondarock.it/banners/ +!ÿï08@Rondarock.it/skin/ +;ÿï08@R+operaclick.com/sites/default/files/banners/ +Aÿï* +deutscheskonto.org08@Roptimalb.de^*/rechte-seite- +,ÿï08@Rorologiepassioni.com/banner/ +*ÿï08@Rossola24.it/images/banner/ +7ÿï08@R'ottofm.com/wp-content/uploads/*/banner- +8ÿï08@R(ottofm.com/wp-content/uploads/*/mainini- +0ÿï08@R pablitoescort.com/images/banner/ +.ÿï08@Rpalermomania.it/images/banner/ +.ÿï08@Rpalermomania.it/images/banner_ +:ÿï08@R*palermomania.it/images/informaticanetizen- +.ÿï08@Rpalermomania.it/public/banner/ +Cÿï08@R3palermoparla.news/root/wp-content/uploads/*/banner_ +(ÿï08@Rpaolociraci.com/sponsor/ ++ÿï08@Rpaolociraci.it/media/coico- +7ÿï08@R'paradisetv.eu/paradisetvloghiok2023.jpg +2ÿï08@R"parigi2024.coni.it/images/partner/ +Lÿï08@Rÿï08@R.radioattivita.com/wp-content/uploads/*/banner- +)ÿï08@Rradioazzurra.it^*/banner/ +Aÿï08@R1radiocentraleweb.it/public/audio/campoDelSole.jpg +<ÿï08@R,radiocentraleweb.it/public/audio/sarsina.jpg +'ÿï08@Rradiociak.it^*/banners/ +3ÿï08@R#radiocittafutura.it/images/banners/ +*ÿï08@Rradiofusion.it/img/banner/ +>ÿï08@R.radiohollywood.net/images/europea-92-buono.jpg +5ÿï08@R%radiointemelia.it/images/pubb-online/ +4ÿï08@R$radiolike.it^*/banner-dba-group.jpeg +2ÿï08@R"radiolike.it^*/logo_autoscuola.jpg ++ÿï08@Rradiomia.it/images/banners/ +2ÿï08@R"radiopiave.it/immaginihome/banner- ++ÿï08@Rradiopnr.it/images/banners/ +=ÿï08@R-radioprimiero.it/cache/images/images/banners/ +&ÿï08@Rradiopuglia.it/banner/ +*ÿï08@Rradiopuglia.it/img/banner/ +*ÿï08@Rradioradio.it/media/angwp/ +Aÿï08@R1radioram.it/public/useful_banner_manager_banners/ +@ÿï08@R0radiosieve.it/wp-content/uploads/*/bannerbcc.png +2ÿï08@R"radiovenere.net/UserFiles/Sponsor/ +0ÿï08@R ragusanews.com//immagini_banner/ +/ÿï08@Rragusanews.com/immagini_banner/ +0ÿï08@R ravennaeventi.net/file/*/banner_ +*ÿï08@Rrecensionelibro.it/banner/ +2ÿï08@R"reggioemiliameteo.it/files/banner/ð +9ÿï08@R)reggioemiliameteo.it/images/main-sponsor/ +9ÿï08@R)rimini.com/data/thumb_cache/_data_banner_ +4ÿï08@R$rittnerbuam.com/images/sponsor_logo/ +,ÿï08@Rrmastri.it/42/webpatente/ban +0ÿï08@R romagnasport.com//public/banner/ +3ÿï08@R#romagnasport.com/public/dim_banner/ +!ÿï08@Rrosalio.it^*/adv/ +3ÿï08@R#rtinradio.com/images/utenti/banner/ +:ÿï08@R*ruminantia.it/wp-content/uploads/*/banner- +*ÿï08@Rsalernoinweb.it/o/sponsor/ +4ÿï08@R$salernonotizie.it/wp-content/banner_ +<ÿï08@R,salernonotizie.it/wp-content/uploads/*/skin_ +/ÿï08@Rsaliinvetta.com/images/banners/ +>ÿï08@R.sanfrancescopatronoditalia.it/immagini/banner/ +6ÿï08@R&sanitainsicilia.it/wp-content/banners/ +.ÿï08@Rsannicandro.org/data/farmacie/ +-ÿï08@Rsannicandro.org/data/sponsor/ +,ÿï08@Rsardanews.it/images/banners/ ++ÿï08@Rsardinias.it/files/partner/ +;ÿï08@R+sassarioggi.it/wp-content/uploads/*-banner- +9ÿï08@R)sassuolocalcio.it/wp-content/uploads/adv/ +Eÿï08@R5sassuolocalcio.it/wp-content/uploads/images/partners/ +2ÿï08@R"sassuolooggi.it/public/images/ban_ +.ÿï08@Rsassuolooggi.it/public/slides/ +,ÿï08@Rscaccoweb.it/images/banners/ +'ÿï08@Rscopateitaliane.com/nb/ +,ÿï08@Rsenigallianotizie.it/banner/ +Sÿï08@RCsentimentispezzini.cittadellaspezia.com/wp-content/uploads/*/al.jpg +>ÿï08@R.seriedgol.it/js/allinone_bannerWithPlaylist.js +;ÿï08@R+settecalcio.it/js/allinone_bannerRotator.js +6ÿï08@R&settimanasport.com^*/150x60_jooble.gif +0ÿï08@R sexycommunity.it/images/banners/ +/ÿï08@Rsexyguidaitalia.com/images/899/ +5ÿï08@R%shopping.tiscali.it/shopping/api/amz/ +bÿï08@RRshortpixel.ai/client/to_webp,q_glossy,ret_img/https://www.sslaziofans.it/*/BANNER- +)ÿï08@Rsichannel.tv/img_sponsor/ +3ÿï08@R#siciliammare.it/wp-content/banners/ +4ÿï08@R$siciliarurale.eu/wp-content/banners/ +(ÿï08@Rsienaweb.tv/img_sponsor/ +9ÿï08@R)skuola.net/assets/js/mm-banner-manager.js +?ÿï08@R/solosavoia.it/file/*/back_officina_creativa.jpg +%ÿï08@Rsolovela.net/imm_ADV? +-ÿï08@Rsolovela.net/immagini/banner/ +!ÿï08@Rsora24.it/banner/ +=ÿï08@R-specchiosesto.it/wp-content/uploads/*/banner- +(ÿï08@Rspoletonline.com/banner/ +-ÿï08@Rsport24news.it/images/banner/ +Bÿï08@R2sporteconomy.it/wp-content/plugins/custom-banners/ +(ÿï08@Rsportevai.it/img/banner/ +8ÿï08@R(sportevai.it/uploads/*/sportevai-banner. +,ÿï08@Rsportgrigiorosso.it/banners/ +8ÿï08@R(sprintesport.it/upload/1695828675019.jpg +@ÿï08@R0sslazionuoto.it/images/bt-shortcode/bt-carousel- +8ÿï08@R(ssvnaturns.it/images/Fussball/Sponsoren/ +7ÿï08@R'stabiachannel.it/assets/images/banners/ +1ÿï08@R!stabiachannel.it/home/img/banner/ +)ÿï08@Rstadiotardini.it/banners/ +0ÿï08@R staffettaonline.com/fcResources/ +Rÿï08@RBstampareggiana.it/wp-content/uploads/*/DOLCIARIA_SANPROSPERO-1.jpg +6ÿï08@R&startmag.it/wp-content/uploads/*_SKIN_ +2ÿï08@R"stile-magazine.it/uploads/partner/ +"ÿï08@Rstiletv.it/banner/ +-ÿï08@Rsudnews.it/upload/img/banner/ +1ÿï08@R!superenalotto.com/images/banners/· +$ÿï08@Rsvapo.it/dev/amzn.js +1ÿï08@R!svapo.it/dev/itemlookup_iframe.js +2ÿï08@R"teatronaturale.it/media2/partners/ +<ÿï08@R,telcoinsider.it/wp-content/uploads/*/banner- +&ÿï08@Rteleantenna.it/banner/ +/ÿï08@Rtelebari.it/wp-content/banners/ +2ÿï08@R"teleboario.it/uploads/advertising/ +Jÿï08@R:telecitynews24.it/wp-content/plugins/telecity-ad-platform/ ++ÿï08@Rtelegiornaliste.com/banner- +-ÿï08@Rteleglobal.tv/images/banners/ +&ÿï08@Rtelemolise.com/banner/ +1ÿï08@R!telemontekronio.it/images/BANNER/ +3ÿï08@R#telenord.it/img/uploads/video/*.mp4 +-ÿï08@Rtelepordenone.tv/js/banner.js +1ÿï08@R!teleradiostereo.it/images/banner/ +'ÿï08@Rtelesirio.it^*/banners/ +2ÿï08@R"ternieprovincia.com/images/banner/ +%ÿï08@Rterranauta.it/banner/ +?ÿï08@R/terredicampania.it/wp-content/uploads/*/banner- +5ÿï08@R%tg24.info/network/wp-content/banners/ +/ÿï08@Rtgnordsalento.it/images/banner- +Mÿï08@R=theapplelounge.com/wp-content/uploads/*/banner-trendevice.jpg +5ÿï08@R%theitaliantimes.it/js/gpt.plus.min.js +*ÿï08@Rticino24.it/images/banner/ +!ÿï08@Rtio.ch/ext/a.php? ++ÿï08@Rtio.ch/ext/adbreak/ads.php? +%ÿï08@Rtio.ch/ext/pdata.php? +9ÿï08@R)tio.ch/layout/js/native/newhome_widget.js +'ÿï08@Rtipster.space/FOTO/ADV/ +,ÿï08@Rtorinoaffari.it/img/tbl/ban/ +)ÿï08@Rtorinoerotica.com/banner/ +8ÿï08@R(torinofc.it/sites/default/files/sponsor/ +(ÿï08@Rtorinometeo.org/sponsor/ ++ÿï08@Rtorresette.news/img/banner/ +:ÿï08@R*toscanagol.it/js/allinone_bannerRotator.js +1ÿï08@R!toscanalibri.it/media/img_banner/ +(ÿï08@Rtp24.it/immagini_banner/ +1ÿï08@R!tp24.it/library/_popup_banner.php +'ÿï08@Rtrapaninfo.it/advor.htm +(ÿï08@Rtrapaninfo.it/banserver/ +/ÿï08@Rtrapaninfo.it/indexnotebook.htm +'ÿï08@Rtrapaninfo.it/wlink.htm +.ÿï08@Rtrapanioggi.it/uploads/banner/ ++ÿï08@Rtrapaniok.it/public/banner/ +0ÿï08@R trapanisi.it/wp-content/banners/ +@ÿï08@R0traveltik.it/wp-content/uploads/*/ENJOY-YOUR.png +,ÿï08@Rtrentinotv.it/images/banner/ +5ÿï08@R%trmtv.it/wp-content/uploads/*/banner_ +4ÿï08@R$trmtv.it/wp-content/uploads/banners/ +4ÿï08@R$turismoitalianews.it/images/banners/ +?ÿï08@R/turismovacanza.net/wp-content/uploads/*/banner- +5ÿï08@R%tusciaweb.eu/wp-content/uploads/*336x +5ÿï08@R%tusciaweb.eu/wp-content/uploads/*480x +&ÿï08@Rtuttasalute.net^*/adv/ +'ÿï08@Rtuttiprezzi.it/SPONSOR/ +2ÿï08@R"tutto-gratis.eu/images/sponsor.gif +(ÿï08@Rtuttocalciatori.net/adv/ +Sÿï08@RCtuttocalciocatania.com/wp-content/uploads/*/migliori-bookmakers.gif +Dÿï08@R4tuttocalciopiemonte.com/js/allinone_bannerRotator.js +<ÿï08@R,tuttostoria.net/images/storiadoc-animato.gif +Eÿï08@R5ufficistampanazionali.it/wp-content/uploads/*/banner- ++ÿï08@Rumbriamagazine.com/banners/ +1ÿï08@R!umbriamagazine.com/images/banner/ +&ÿï08@Runimondo.org^*/banner/¢ +.ÿï08@Runonotizie.it/immagini/banner/ +@ÿï08@R0uominietrasporti.it/wp-content/uploads/*/banner- +>ÿï08@R.uscarreunion.it/images/common/prenotazioni.jpg +-ÿï08@Rvaldarnopost.it/vpost-banner/ +?ÿï08@R/valdarnopost.it/wp-content/uploads/*/1920x1200_ +6ÿï08@R&vallesabbianews.it/files/Image/Banner/ +#ÿï08@Rvalmisa.com/banner/ +0ÿï08@R valtiberinaonline.it/ext/banner/ +)ÿï08@Rvaltiberinaonline.it/pub/ +5ÿï08@R%valtrompianews.it/files/Image/Banner/ +Dÿï08@R4varesenews.it/wp-content/themes/editheme/img/banner/ +3ÿï08@R#vdj.it/wp-content/uploads/*/banner- +.ÿï08@Rvelanet.it/lib/bannerArcip.php +>ÿï08@R.vendingnews.it/wp-content/uploads/angwp/items/ +9ÿï08@R)venetogol.it/js/allinone_bannerRotator.js ++ÿï08@Rverbano24.it/images/banner/ +.ÿï08@Rvercellese24.it/images/banner/ +Qÿï08@RAverdeazzurronotizie.it/wp-content/uploads/*/modello-skin-body.jpg ++ÿï08@Rverona.net/allegati_banner/ +Cÿï08@R3viaggio-in-cambogia.it/common/airport_taxi_link.jpg +Jÿï08@R:viaggio-in-cambogia.it/common/airports_shuttle_express.gif +Mÿï08@R=viaggio-in-cambogia.it/common/best-airport-transfers-logo.jpg +Fÿï08@R6viaggio-in-cambogia.it/common/clickairporttransfer.jpg +Iÿï08@R9viaggio-in-cambogia.it/common/personal-transport-logo.jpg +Cÿï08@R3viaggio-in-cambogia.it/common/taxiairportpickup.jpg +>ÿï08@R.viaggio-vacanza.it/small/airport_taxi_link.jpg +Eÿï08@R5viaggio-vacanza.it/small/airports_shuttle_express.gif +Hÿï08@R8viaggio-vacanza.it/small/best-airport-transfers-logo.jpg +Aÿï08@R1viaggio-vacanza.it/small/clickairporttransfer.jpg +Dÿï08@R4viaggio-vacanza.it/small/personal-transport-logo.jpg +>ÿï08@R.viaggio-vacanza.it/small/taxiairportpickup.jpg +3ÿï08@R#vicenzanews.it/javascript/banner.js +4ÿï08@R$vicenzanews.it/javascript/banner2.js +3ÿï08@R#videomakers.net/wp-content/banners/ +Xÿï08@RHvideomediterraneo.it/wp-content/themes/videomediterraneo/mejs/ads.min.js +,ÿï08@Rvienormali.it/images/banner/ +5ÿï08@R%vipiu.it/wp-content/uploads/*/sfondo_ +*ÿï08@Rvisitvco.it/images/banner/ +,ÿï08@Rvistanet.it^*/clienti_adv.js +&ÿï08@Rvitadamamma.com^*/adv/ +9ÿï08@R)vitaincamper.it/wp-content/plugins/angwp/ ++ÿï08@Rviterbonews24.it/gesBanner/ +)ÿï08@Rviterbooggi.eu/gesBanner/ +6ÿï08@R&vivafm.it/wp-content/uploads/*/banner- +5ÿï08@R%vivilondra.it/media/mod_vivi_booking/ +5ÿï08@R%viviparigi.it/media/mod_vivi_booking/ +0ÿï08@R voceaigiovani.it/images/banners/ +,ÿï08@Rvoglioviverecosi.com/banner/ +2ÿï08@R"vologratis.org/public/general/adv/ +8ÿï08@R(vuemmetv.it/wp-content/uploads/*/banner- ++ÿï08@Rvwgolfcommunity.com/banner/ +,ÿï08@Rvwgolfcommunity.com/sponsor/ +*ÿï08@Rwallis24.it/images/banner/ +?ÿï08@R/webandmagazine.media/wp-content/uploads/*/SKIN- +:ÿï08@R*wechianti.com/wp-content/uploads/*/Banner- +/ÿï08@Rwelfarenetwork.it/media/banner/ +1ÿï08@R!whiteradio.it/themes/img/sponsor/ +Gÿï08@R7wp.com/www.ilcarmagnolese.it/wp-content/uploads/*-Skin- +;ÿï* +buongiornoslovacchia.sk08@Rwp.com^*/banner/ +5ÿï08@R%xtremehardware.com/instant-gaming.png +$ÿï08@Ryuvideos.com/banner/ +$ÿï08@Rzonalotto.it/banner_ +,ÿï08@Rdatameteo.com^*/clickday.jpg +1ÿï08@R!datameteo.com^*/logo-scamuzzi.pngì +@ÿï08@R0datameteo.com^*/una-mano-per-i-bambini-onlus.png +#ÿï08@Rfacile.it^*/banner/ +1ÿï08@R!tuttocampo.it/Web/Images/Banners/ +ÿï08@R/~vda/*/*.php/" + automobile.it #ADV_filter_1" + automobile.it #ADV_filter_2! +trend-online.com #CONT_C_1! +trend-online.com #CONT_C_2! +trend-online.com #CONT_D_1! +trend-online.com #CONT_D_2! +trend-online.com #CONT_D_3- +trend-online.com + +youmath.it#CONT_T+ +comprovendolibri.it#CVLR_banner_ADX+ +comprovendolibri.it#CVLR_banner_ASXb +scambieuropei.info +chimica-online.it + flashgames.it + soldioggi.it + +youmath.it#C_1 + flashgames.it#C_2@ + investire.biz+#ContentPlaceHolder1_pnlDoubleLeftToRight_H8 +legabasketfemminile.com#DIV_MainSponsorContainerf +scambieuropei.info +chimica-online.it +trend-online.com + flashgames.it + +youmath.it#D_1# +unapennainviaggio.it#Image1# +unapennainviaggio.it#Image25 +sciscianonotizie.it#M629235ScriptRootC1263703 +acsi.it +#Parteners +scambieuropei.info#T + flashgames.it#T_1# +leggopassword.it #Tabella_01% +caffebaiadomizia.it +#_ad_10926 + +panoz.it#ad' + soldioggi.it + bsshotel.it#ad1' + soldioggi.it + bsshotel.it#ad2 + soldioggi.it#ad3 + soldioggi.it#ad4 + soldioggi.it#ad5\ +esigarettaforum.com +thegamesmachine.it +digital-forum.it#ad_global_below_navbar +lavocedelpopolo.it#ads* + buonapesca.it + picenooggi.it#adv: +financialounge.repubblica.it#adv-Middle-hr-wrapper- +liberoquotidiano.it#adv-after-briefly# +farmacia-aperta.eu #adv-info! +agarymathematics.net#adv1  +paginegialle.it #adv_side + libero.it #adv_topper +catt.ch #advertising+ + montagna.tv#advertorial-partnership/ +ilsussidiario.net#adwallpaper-container4 +reteimprese.it + empresite.it#afscontainer14 +reteimprese.it + empresite.it#afscontainer2& +lospicchiodaglio.it #amazon_apa +salernonotizie.net#amz  +notebookitalia.it#amznbi# +direttafacile.it #annuncidiv0 +separarensilabas.com#antiBannersGigantes8 +leroymerlin.it"#arm-pad[data-st-name="sponsored"]4 +excellentmagazine.it#articolo_annunci_slider! +oggimilazzo.it #ascomparsa& + altarimini.it#attivitaEvidenza› +ilportalediibiza.it +arrivi-partenze.it +lazionascosto.it +scorcidimondo.it +menevojoanna.it +tuttobaviera.it + 10cose.it#b_searchboxInc* + brocardi.it#background-head-spacer( +viterbonews24.it#backgroundPopup + +rimini.com #bann-top-dxD +daneel59.altervista.org + metanogpl.it + +ilmioip.it#banner( + comicsbox.it#banner-300x250-cont$ +incontriamoci.xxx #banner-advM +courmayeurnews.it +canavesenews.it +torinonews24.it#banner-bottom¾+ +quotidianocanavese.it#banner-column. +gazzettadellaspezia.com#banner-cornice# +toscanalibri.it #banner-home( + camperlife.it#banner-home-columnR +courmayeurnews.it +canavesenews.it +torinonews24.it#banner-left-bottomR +courmayeurnews.it +canavesenews.it +torinonews24.it#banner-left-centerO +courmayeurnews.it +canavesenews.it +torinonews24.it#banner-left-top) +reteradioazzurra.it#banner-level1( +reteradioazzurra.it #banner-sotto" + rpiunews.it#banner-testata4 +sannicandro.org +oggitreviso.it #banner-topT +courmayeurnews.it +canavesenews.it +torinonews24.it#banner-top-container, +cataniapubblica.tv +rid.it#banner1" +cataniapubblica.tv#banner2 + gayburg.com +#banner300  + hdblog.it#banner3_3006004 +viterbonews24.it + tusciaweb.eu #bannerFondo$ +viterbonews24.it #bannerPopUp$ +generacodice.com #bannerRight + +quice.it #bannerScheda" + investire.biz #bannerTicker( +edilportale.com#bannerTopWrapper + camperlife.it #banner_2 + camperlife.it #banner_3E +chiechiera.com + chiechiera.it + ondarock.it#banner_300x250% +chiechiera.com#banner_300x600* +finestresullarte.info #banner_8_div* +finestresullarte.info #banner_9_div& + teleboario.it#banner_container' +contosulconto.it#banner_content' +quizpatenteonline.it #banner_fix( +vocidicitta.it#banner_footer_728. + +entella.it + +inpiega.it#banner_header( +vocidicitta.it#banner_header_728! +scacchierando.it #banner_s + ornews.it #banner_skin$ + ornews.it#banner_skin_mobile* +chiechiera.com#banner_sotto_header& +notiziediprato.it #banner_strip& +salernonotizie.it #banner_testa% +radiovalbelluna.it #banner_top +chiechiera.com #bannerdg  +oggimilazzo.it +#bannerone1 +vivaparigi.com + frasimania.it +#bannerpop  + +linguee.it#banners_right + +linguee.it #banners_top! +chiechiera.com #bannervira! + +entella.it#barra_click_dx! + +entella.it#barra_click_sx" + +entella.it#barra_click_top& +forum.tomshw.it#belowfirstpost/ +orizzontescuola.it + +accordo.it#bglink< +informazionefiscale.it +bergamoesport.it +#billboard­ +leontinoinews.it +siracusanews.it +augustanews.it +catanianews.it +pachinonews.it +sicilianews.it + avolanews.it + ibleinews.it + notonews.it #billboard1/ +metalgermania.it#black-studio-tinymce-2 + imusicfun.it #block-13# +notiziebenessere.it#block-2  +sportcafe24.com #block-22! +tifosipalermo.it #block-273 +monetizzando.it +techuniverse.it #block-30  +techuniverse.it #block-33  +techuniverse.it #block-34  +techuniverse.it #block-35  +techuniverse.it #block-38ç4 +notiziebenessere.it + stadionews.it#block-4  +techuniverse.it #block-40 +litaliano.live #block-424 +mangialibri.com#block-banneramazonprimevideo3 +mangialibri.com#block-bannerkindleunlimited2 +mangialibri.com#block-bannerlibripagamento9 +tuttosuigatti.it!#block-bean-banner-content-bottom9 +tuttosuigatti.it!#block-bean-banner-content-center1 +tuttosuigatti.it#block-bean-banner-header* +radio-in-diretta.com#block-block-9) +mangialibri.com#block-sottopiatto( + torinofc.it#block-sponsor-headerT +doppiozero.com>#block-views-block-banner-inserzionisti-block-banner-box-inserW +doppiozero.comA#block-views-block-banner-inserzionisti-block-banner-box-inserz-2\ +doppiozero.comF#block-views-block-banner-inserzionisti-block-banner-box-inserzionisti= +ecodelchisone.it%#block-views-homepage-block-sponsored + ilformat.info +#bn-header" + ilformat.info #bn-loop-post) +beneventonews24.it#bnnews-skinned + maiescort.com#bnrf + maiescort.com#bnrt$ +recensionelibro.it +#book-shop6 + flashscore.it + +diretta.it#box-over-content-a  +rollingstone.it #box-wolf" +ilpentasport.it #boxSponsor( + corriere.it#box_mkt_hp_spalla_dx" + +alqamah.it#bp-sf-container! +filmpertutti.pizza#button' +ilpentasport.it#bx-next-sponsor' +ilpentasport.it#bx-prev-sponsor% +comune-info.net#campagnelead2' +comune-info.net#campagnesquare2X +ilpallonegonfiato.it +bolognasportnews.it + +blunote.it#carousel-sponsors-list# +sempionenews.it #cboxOverlay- +offroadlifestyle.com#cc-m-12085211599- +offroadlifestyle.com#cc-m-12085214099- +offroadlifestyle.com#cc-m-12458933899# + radiogold.it#click-piemonte+ +informazione-aziende.it #cls-banner2- +informazione-aziende.it#cls-upper-ads! +liricamente.it #colheader2! +liricamente.it #colheader34 +acquariofilia.biz#collapseobj_sidebar_googleD +cronacaossona.com+#colormag_featured_posts_vertical_widget-31D +cronacaossona.com+#colormag_featured_posts_vertical_widget-489 +meteotrentinoaltoadige.it#column-id-1539954322953# + lacapitale.it#comp-lw6uiytt$ + lacapitale.it#comp-lw6usgdz1# + lacapitale.it#comp-lwet79gq# + lacapitale.it#comp-lwetp9ib^ + quifinanza.it + siviaggia.it + supereva.it + virgilio.it + +dilei.it#cont-wallpaper; + +boatmag.it)#contenitore-articolo > .oxy-dynamic-listA + +boatmag.it/#contenitore-principale > .oxy-carousel-builder" + blablive.com#content_bonus" + corriere.it#cuponation_box- +parigi2024.coni.it#custom-sponsor-row5 +meteogiornale.it + mmawiki.org#custom_html-2& +meteogiornale.it#custom_html-4# + gommeblog.it#custom_html-47& +meteogiornale.it#custom_html-5# + gommeblog.it#custom_html-66# + radiocapri.it#custom_html-7' +gazzettadalba.it#custom_html-95 +salernonotizie.net#ddÒ* +calendario-365.it#dish-top-desktop) +calendario-365.it#dish-top-mobile" +agriaffaires.it #display-mb- +udineseblog.it#div-home-main-banner-11 +tuttomercatoweb.com#div-masthead-top_lazy# +portaledelverde.it #divPopUp* + investire.biz#divPromoBottonMobile$ + +boatmag.it#div_block-39-2182 + mymovies.it #div_topleft- +lecconotizie.com#domination-container' + +tiscali.it#dotnAd-970x120-strip +ecodicaserta.it#down) + clickcase.it#dvBoxDxBanner250x250, + clickcase.it#dvBoxDxSponsor1_250x100, + clickcase.it#dvBoxDxSponsor3_250x100) + clickcase.it#dvBoxSxBanner160x600# + clickcase.it#dvHeaderBanner + +sudnews.it +#dx-banner6 + repubblica.it + lastampa.it#editorial-Middle16 + repubblica.it + lastampa.it#editorial-TopLeft. +gnoccatravels.com#escortadvisor-widget# +laquilablog.it #evidenza-adv + +iltempo.it +#evolutionË +cagliarinews24.com +juventusnews24.com +calcionews24.com +futsalnews24.com +internews24.com +lazionews24.com +milannews24.com +sampnews24.com + lawebstar.it#evolve-desktop-mastheadÊ +cagliarinews24.com +juventusnews24.com +calcionews24.com +futsalnews24.com +internews24.com +lazionews24.com +milannews24.com +sampnews24.com + lawebstar.it#evolve-mobile-masthead, + screenweek.it#fading_desktop_wrapper+ + screenweek.it#fading_mobile_wrapper- + bolina.it +tp24.it#fancybox-overlay* + bolina.it +tp24.it#fancybox-wrap' + +cibo360.it#fascia_banner_bottomC +meteofinanza.com +borsainside.com#financial-popup-overlayœ +ilportalediibiza.it +arrivi-partenze.it +lazionascosto.it +scorcidimondo.it +menevojoanna.it +tuttobaviera.it + 10cose.it#flexi_searchbox$ +varesesport.com #floorsunrise" +vivilanotizia.it +#fondosito) +pablitoescort.com#footer > .panel4 +radioromacapitale.it#footer-i-nostri-partner( + lanostratv.it#footer-top-wrapper9$ +"ilmondodeglianimali.altervista.org#footer-widgets  +videosesso.com +#footertop + lasicilia.it#frame-1\ +luoghidanonperdere.com +incinqueterre.com +cinqueterre5.com + gogoterme.com#frm& +ilcittadinodirecanati.it#g-top6 + mondoxbox.com + mondoplay.it#gameBlock_amazon? + mondoxbox.com + mondoplay.it#gameBlock_amazon_noboxart + gayburg.com #gbnative) + infodifesa.it#gmpSkinMobileSpacer +cpop.it#goldrake-link, + it.advfn.com#google-ads-skin-wrapperE +financialounge.repubblica.it!#google-ads-sticky-side-container + tuttoquiz.it #googleLAT1 + tuttoquiz.it #googleLAT2 + tuttoquiz.it #googleLINK + tuttoquiz.it +#googleTOP# +orvietonews.it #gpt-passback+ +iphoneitalia.com#grid-offers-widget0 +100ideeperristrutturare.it#hausme-widget' +operaclick.com#head-left-banner( +operaclick.com#head-right-banner + ferrovie.it#head_r4 +centrometeoitaliano.it#head_skin_placeholderÝ +sanferdinandoviva.it +trinitapoliviva.it +giovinazzoviva.it +margheritaviva.it +spinazzolaviva.it +bisceglieviva.it +cerignolaviva.it +minervinoviva.it +altamuralife.it +barlettaviva.it +molfettaviva.it +terlizziviva.it +bitontoviva.it +gravinalife.it +modugnoviva.it + andriaviva.it + canosaviva.it + coratoviva.it + materalife.it + pugliaviva.it + traniviva.it + bariviva.it + hotelmag.it + ruvoviva.it + +insella.it#header-banner( +radiomugello.it#header-banner-dx) + ilfoggia.com#header-text-nav-wrap" +coniugazione.it #header_pubÆ' +blog.ilgiornale.it #headerleader! +gli-sport.info #hit-hd-top" +gli-sport.info #hit-sid-top' +vivinewyork.com#hm-rsp-txt-desk" +agriturismo.it #home-banner2 +transfermarkt.it#home-rectangle-newsticker1 +transfermarkt.it#home-rectangle-spotlight0 +excellentmagazine.it#home_annunci_slider + adirai.it #home_top, +filmatipornohd.com#horizontal-banner + 4yougratis.it +#img-60x60) +ilfattoquotidiano.it #immo-330x350 + soldioggi.it #inarticle2 + soldioggi.it #inarticle3 + adirai.it #index_blog2' +direttafacile.it#indirettadalgof +cronachemaceratesi.it +cronachefermane.it +cronacheancona.it +cronachepicene.it #infooter + soldioggi.it #insidebar10 +gnoccatravels.com#instant-message-banner( + tusciaweb.eu#interno_sottotitolo) +settegiorniatortona.it #lateraledx) +settegiorniatortona.it #lateralesx + +tellows.it +#lb_header + +ottofm.com #lcb_banner2 +hockeycortina.it#lcs_logo_carousel_wrapperE +lagazzettasiracusana.it +lagazzettamessinese.it #leader-wrap& +torrechannel.it#leader-wrapperZ +cronachedibirra.it +sexycommunity.it + avmagazine.it + chronist.it #leaderboard, +bollicinevip.com#leaderboard-wrapper* +finestresullarte.info #leaderboard1* +finestresullarte.info #leaderboard2 + concorsi.it #leaderbord$ +gazzettadellemilia.it#linkbg$ +teleradio-news.it #linkcat-12 + zazoom.it#logoads' +salernonotizie.it#machette_left( +salernonotizie.it#machette_right" + brindisifc.it #main-sponsor/ +forum.tomshw.it + leonardo.it #masthead$ +mondo-motori.it #masthead-adv$ + familygo.eu#masthead-desktop+ +gazzettinonline.it#masthead_wrapper* +allasianfootball.com#media_image-2" +operaclick.com #menu-banner% + mymovies.it#middle1_companion. +ricettedalmondo.it#mobile-primo-scrollu +lagazzettadimassaecarrara.it +lagazzettadiviareggio.net +lagazzettadilucca.it#module_buaxua_floating_leftv +lagazzettadimassaecarrara.it +lagazzettadiviareggio.net +lagazzettadilucca.it#module_buaxua_floating_right +gamereactor.it#mpu + 3bmeteo.com#mpu_t +forum.tomshw.it#mpudesk +oggimilazzo.it #multiplo +oggimilazzo.it#muro& +sportparma.com#mvp-leader-contj +pistoiasport.com +thrillercafe.it + laziopress.it + qdmnotizie.it + juorno.it#mvp-leader-wrap( +lavocedibolzano.it#mvp-site-wallK +lavocedibolzano.it +sportparma.com + qdmnotizie.it#mvp-wallpaper/ + mondoxbox.com + mondoplay.it +#offersbox4 + mondoxbox.com + mondoplay.it#offersbox_wide7 +voglioporno.com +prendiporno.tv#overlay-video  + +sposa.it#partner-content5 +sassuolocalcio.it +lucchese1905.it #partnersL +videopornoitalia.com + megasesso.com + pornopizza.it#playerOverlay+ + corriere.it#pno-text-article-bottomÑ( +gazzettadellemilia.it #popop_wrap! +notizieflash.net #post-advK +lagazzettasiracusana.it +lagazzettamessinese.it#post-sidebar-wrapF +lagazzettaaugustana.it(#post-sidebar-wrap > .theiaStickySidebar + +alqamah.it#ppp_box + +alqamah.it #ppp_overlay8 +legavolleyfemminile.it#prefooter > .container-xl! + investire.biz #promoBotton> +estrazionedellotto.it +superenalotto.com #promobanner! +goaldiretta.it #pscroller1% +sabatononsolosport.com#pubbli1 +termometropolitico.it#pubblicita-betblack. +termometropolitico.it#pubblicita-spike  +voce.it#publiredazionale + +quizlab.it#ql-cpa( + +boatmag.it#repeater-manchette-dx( + +boatmag.it#repeater-manchette-sxE +calabriapost.net +laprovinciakr.it#responsive-banner-slider1 +zerocinquantuno.it#rev_slider_4_2_wrapper3 +cosenostre-online.it#rev_slider_6_3_wrapper' +ricettedalmondo.it #ricetta-box1' +ricettedalmondo.it #ricetta-box2 +rid.it#right-banners + federgolf.it#rolex" + studio93.it#rotator1adLink# +odontoiatria33.it +#rowHeader$ +ecodisavona.it#ruby_0ba4fd8d$ +ecodisavona.it#ruby_4dfe6c07$ +ecodisavona.it#ruby_f8fff442% + studenti.it#scrolling_element& + sampdoria.it#section-b-sponsor4 +zaffiromagazine.com#section-id-15825639503083 +parigi2024.coni.it#section-id-1678964502057 + emiliagol.it #sfondo_pop< +notiziediprato.it##sgpb-popup-dialog-main-div-wrapper7 + +boatmag.it%#sidebar-articolo > .oxy-dynamic-list/ +notiziediprato.it#simplemodal-container- +notiziediprato.it#simplemodal-overlay( + vienormali.it#site-header-banner- + vienormali.it#site-header-leaderboardj +corrieredellosport.it +allmusicitalia.it +cremaonline.it +tuttosport.com + familygo.eu#skin  + arezzo24.net #skin-banner$ +cronacheancona.it #skin_above' +alimentando.info#skin_container$ +iovivoaroma.org #skin_link_dx$ +iovivoaroma.org #skin_link_sxg +cronachemaceratesi.it +cronachefermane.it +cronacheancona.it +cronachepicene.it +#skinabove" +mondopadano.it #skinadvtop2" +monrealenews.it #skinbannerR +altoadigegol.it + toscanagol.it + emiliagol.it + friuligol.it +#skinclickª +verdeazzurronotizie.it +comunicati-stampa.net +finestresullarte.info +algheronotizie.com +piazzaffariweb.com +torresette.news +freeonline.org #skinlink' +gamereactor.it + balarm.it#sky +gamereactor.it#sky2_1 +gamereactor.it#sky2_2" +milleunadonna.it +#sky_fluid# + settesere.it#slideBannerTop  +mail1.libero.it #slink-dx  +mail1.libero.it #slink-sx' +vallesabbianews.it #sostegno-box$ +oggimilazzo.it#sottoaperturaJ +casateonline.it +leccoonline.com +merateonline.it #sottotestata& +tvoggisalerno.it#sow-editor-22 +lnd.it +#sp-bottom) +tgnordsalento.it#sp-header-banner½# +portadimare.it #sp-pub-sup-1 +lnd.it #sp-sponsor + youtg.net #sp-testata% +aziendabanca.it#sp-top-bannerH +radioshowitalia.it +canottaggio.org +radiogalileo.it#sponsor$ + buonapesca.it#sponsor-bottom, + federcanoa.it#sponsor-bottom-wrapper, +paolociraci.it#sponsor-clima-160x160* +victorialibertas.it#sponsor-footer3 +corrieredisaluzzo.it#sponsor_destra_testata* +corrieredisaluzzo.it#sponsor_popup5 +corrieredisaluzzo.it#sponsor_sinistra_testata% +staffettaonline.com +#sponsored& +zerocinquantuno.it #sponsorhome! +powerhockey.info #sponsors* +regionalradio.eu#sponsors-carousel- +fortitudobaseball.it#sponsors-wrapper +sassuolooggi.it#spospo +stabiachannel.it#spot + zeusnews.it #spotEsterno* + youtg.net#sppb-addon-15798637882739 +spaziogames.it + tomshw.it +cpop.it #sticky_ads$ + hwupgrade.it#strip-container, +garedepoca.com#strisciabanner_destra. +garedepoca.com#strisciabanner_sinistra  + tusciaweb.eu #submenu-top + invaligia.com#table3P +giornaletrentino.it + altoadige.it%#taboola-below-article-thumbnails-2nd# +gamesvillage.it #takeover_gv5 +ecovicentino.it#td-layer-audio-article-banner + justnerd.it#tdi_270 + italynews.it#tdi_29+ +liberoquotidiano.it#teads-container! +onepiecepower.com#tendina5 +meglioviaggiare.it +betitaliaweb.it#text-10 + brand-news.it#text-11# +italiachecambia.org#text-132 +esportsonline.it +cioccolato.org#text-14( +viaggiasenzapensieri.com#text-15! +soccermagazine.it#text-18` +adviceandcommerce.it +stranieriinitalia.it +storiedisport.it + auguri.gratis#text-20 +vacanzeingrecia.eu + +contusu.it#text-23" +vacanzeingrecia.eu#text-25  +ricettealvolo.it#text-29B +libripiuvenduti.it +ingleseprecoce.it + +stile.it#text-3 +passioneauto.it#text-35 +passioneauto.it#text-36C +casilinanews.it +tecnofacile.com +tuttonatale.it#text-4 +tgfuneral24.it#text-40' +vocedelverbopartire.com#text-42 + teleaesse.it#text-473 +mousedagaming.com +naturalmania.it#text-5 + teleaesse.it#text-50 + teleaesse.it#text-53" +theapplelounge.com#text-55 +betitaliaweb.it#text-6 + viaggioff.it#text-7C +vacanzeingrecia.eu +betitaliaweb.it + metallus.it#text-9) + elaborare.com#text-html-widget-16. +tuttoesselunga.com#text-html-widget-24. +tuttoesselunga.com#text-html-widget-25# + subito.it#textlinks_wrapper" +umbriamagazine.com#thelink# + orvietosi.it#tirsena-bannerå% +onepiecepower.com #toCloseGADS+ +forum.tomshw.it#tomshw_it_halfpage1 + popcorntv.it#top7 +certificatejournal.it + finanza.com #top-banner% + +sposa.it#top-banner-container +tastoeffeuno.it#top100* + hwupgrade.it#top300x250-background) + hwupgrade.it#top300x250-container  + anisearch.it #topA_iframe" +stabiachannel.it +#topBanner* +sardegnalive.net#topBannerCarouselH +notiziarioattrezzature.com +notiziariomotoristico.com #top_bann + goblins.net #top_header! + escort46.it#top_image_div + tusciaweb.eu#topalto + mareonline.it #toplogo1 + mareonline.it #toplogo2$ + everyeye.it#topskin_clicktag( +hc-neumarkt.com#tr-contentbottom( +informazione-aziende.it #tr_publiW +videopornohdstreaming.com +filmpornoitaliano.org + filmporno.it #tracking-url( +stabiachannel.it#underLogoBanner. +stabiachannel.it#vertical-right-banner + +tipiace.it#vetrina  + +sposa.it#vetrina-content + +rtalive.it #wdslider-5" +sscalciobari.it #wl-sponsor3 +qds.it%#wrap > div[style="min-height:110px"] + italia.fm#xbtm + italia.fm#xttm +iltquotidiano.it.ADS# +iltquotidiano.it .ADSDesktop, + automobile.it.ADV300_250_600_Content$ + automobile.it.ADVBig_Content) + automobile.it.ADVFLEX_250_Content! + automobile.it .ADVParallax +focusjunior.it .ASponsorC +avvocatoandreani.it +ilmanifesto.it +mentelocale.it.Adv + fotonerd.it.Amazon  +comprovendolibri.it.BB14X +resegoneonline.it +valtellinanews.it +blackdevils.team + comolive.it.Banner$ +cinemaitaliano.info .Banner01( +cinemaitaliano.info .Banner430x45) +cinemaitaliano.info.Banner970x250( +fc-suedtirol.com.BannerContainer$ +cinemaitaliano.info .BannerDx$ +orvietonews.it.BannerFissodx" +atripaldanews.it +.BannerTop! +edilportale.com +.BigSquare  +sportoutdoor24.it.BoxAdv* + verovegan.com.CMAC_AdChangerWidgetA +viterbonews24.it +viterbooggi.eu.CON-fascia-alto-banner( +napolimagazine.com.CenterArticle+ +napolimagazine.com.CenterMiddleNews( +napolimagazine.com.CenterTopNews< +forum.fibra.click#.FibraClickAds-fake-poststream-item( +3go.it.FixedWidget__fixed_widget5" + audisportclubitalia.blogspot.com .Image.widget + tv2000.it .ImageBanner# +napolimagazine.com .LeftLong$ +napolimagazine.com +.LeftSmall& +trentinovolley.it .LogoTrentino* + orvietosi.it.MS_custom_feed_reader$ +iltquotidiano.it .PaddingPubbÞ-. +iltquotidiano.it.Posizione-Home-Grande3 +immoscout24.ch.ResultListPage_adStyle_SPs8t" +viterbonews24.it +.SepBanner" +theitaliantimes.it.Side_DX# +iltquotidiano.it .SkinMobile + whiteradio.it.Sp' +napolimagazine.com .TopLiveScore% +napolimagazine.com .TopTestata + +camping.it.XBPosŸ +fishingboatmagazine.it +radiocassinostereo.com +industriaitaliana.it +corriereelorino.it +centotrentuno.com +ilfattonisseno.it +giornaleibleo.it +lamescolanza.com +meteofinanza.com +monrealepress.it +djmagitalia.com +ilgolfonline.it +itacanotizie.it +madoniepress.it +newscatania.com +nordmilano24.it +anteprima24.it +vesuviolive.it + larionews.com + sicilia24h.it + vivicentro.it + araberara.it + dronezine.it + farevela.net + feelrouge.tv + assinews.it + labusa.info + subito.news .a-singlex +imiglioridififa.com +siciliaonpress.com +smartcentral.it + sienafree.it + ispazio.net + +teslers.it.a-wrap– +nerdmovieproductions.it +piscinegonfiabili.net +recensioniorologi.it +imiglioridififa.com +casa-domotica24.it +libripiuvenduti.it +meditazionezen.it +migliorecrema.com +migliorigiochi.eu +mille-animali.com +saluteopinioni.it +apple-notizie.it +salutemoderna.it +stampante-3d.net +comelofaccio.it +monetizzando.it +naturalogico.it +orgoglionerd.it +techbusiness.it +techprincess.it +tecnofacile.com +thrillercafe.it +fut18italia.it +ideericette.it +tivustream.com + casinamia.com + maccanismi.it + topdigamma.it + gommeblog.it + reviewbox.it + outofbit.it + tuttotek.it + +nomavic.it + +dilei.it.aawp; +recensioniorologi.it +tecnofacile.com .aawp-button +ilsole24ore.com.abox + selectra.net .action-box +ilmostardino.it.acx_ppt® +smartbuildingitalia.it +lonelyplanetitalia.it +lacrocequotidiano.it +lacucinaitaliana.it +le-citazioni.it + mondoxbox.com + vanityfair.it + ad-italia.it + eurosport.it + mondoplay.it + wallpapic.it + gqitalia.it + ilfoglio.it + +tellows.it + +icasa.ch + +vogue.it + +wired.it.ad + tusciaweb.eu .ad-article' +abruzzoindependent.it +.ad-banner½ +soluzionicodycross.it +lacucinaitaliana.it + vanityfair.it + ad-italia.it + badtaste.it + gqitalia.it + +supertv.it + adotta.me + +vogue.it + +wired.it +mtv.it .ad-container  + panorama.it .ad-correlati + badtaste.it .ad-sm-unit +laltrapagina.it.ad1 +laltrapagina.it.ad2 +laltrapagina.it.ad5 + virgilio.it.ad_t1 +theitaliantimes.it.adb% + hdmotori.it.adbox_placeholder0 +confinelive.it + +lojonio.it .adcontainer0 +mondobarcamarket.it + unonotizie.it.add7 + foodnrock.com".add-btn[href^="https://amzn.to/"] + +fidal.it .add-logo* +informagiovani-italia.com .add_left( +gazzettaconcorsi.eu .add_left_div + spagna.cc.add_top% +offertevolantini.it +.add_w2_h1 +condominioweb.com.addv' +mantovanotizie.com .adivi-infeed‹ +insidemarketing.it +orizzontescuola.it +casacinema.media +filmpertutti.boo +live-sport-tv.it +antennafebea.it +mattinonline.ch + buildnews.it + radiogold.it + brocardi.it + nuovosud.it + startmag.it + +hdtroll.it + +liberta.it + +legab.it.ads  + +mtbcult.it.ads-container( +scienzenotizie.it.ads-in-article + libero.it.ads-iol$ +fruitbookmagazine.it.ads-irn* + ilmohicano.it.ads-margin-secondary/ +scienzenotizie.it.ads-related-multiplex + ildolomiti.it.adsB + 4yougratis.it.adsVert- +corrieredellacalabria.it .ads_corriere +motorionline.com.adsboxÈ +chistachiamando.it +positanonotizie.it +occhisusalerno.it +ravellonotizie.it +trova-aperto.it +ilvescovado.it + amalfinews.it + cetaranews.it + ilportico.it + beatgogo.it.adsenseC +ilgazzettinovesuviano.com +animalidacompagnia.it .adserverë  +lagazzettadelmezzogiorno.it +fattoincasadabenedetta.it +girovagandointrentino.it +grandangoloagrigento.it +notiziecalciomercato.eu +laprovinciadivarese.it +ilfattoquotidiano.it +milanistichannel.com +calcionapoli1926.it +notiziebenessere.it +derbyderbyderby.it +ricettedalmondo.it +tuttobolognaweb.it +calciomercato.com +fantamagazine.com +radioindiretta.fm +sassuolocalcio.it +weekendpremium.it +ilbianconero.com +itasportpress.it +toscanadaily.com +altreconomia.it +buttalapasta.it +cittaceleste.it +mondoudinese.it +numericalcio.it +pianetamilan.it +altoadigetv.it +fcinter1908.it +forzaroma.info +ilmilanista.it +ilposticipo.it +latina24ore.it +movieplayer.it +multiplayer.it +padovasport.tv +spaziogames.it + gazzabet.news + gta-expert.it + hellas1903.it + trentinotv.it + violanews.com + gustoblog.it + prealpina.it + sosfanta.com + toronews.net + adessoin.tv + domusweb.it + gazzetta.it + juvenews.eu + leonardo.it + lexplain.it + mediagol.it + supereva.it + virgilio.it + winesurf.it + +cookist.it + +fanpage.it + +golssip.it + +skuola.net + geopop.it + ilpost.it + kodami.it + libero.it + tomshw.it + +amica.it +riza.it +toro.it +gay.it.adv/ +calciobresciano.it.adv-big-article-cardS +corrieredellumbria.it +corrierediarezzo.it +corrieredisiena.it .adv-big2! +paginebianche.it .adv-card& +centrometeoitaliano.it.adv-cmi8 +ilsussidiario.net + comingsoon.it.adv-container$ + +shipmag.it.adv-custom-widget. +calciomercato.com.adv-desktop-vertical$ +paroladeltifoso.it +.adv-imageI +mangaforever.net +vologratis.org + +biccy.it.adv-inside-content+ + lasicilia.it.adv-intext-placeholder( +infomotori.com.adv-listino-nuovo; +editorialedomani.it + lasicilia.it.adv-placeholderü$ + arte.sky.it.adv-section-sideX +corrieredellumbria.it +corrierediarezzo.it +corrieredisiena.it.adv-slideshowS +amicopediatra.it +mammecreative.it +filastrocche.it +ansa.it .adv-slot +oggi.it .adv-squareG +gravidanzaonline.it +robadadonne.it + diredonna.it +.adv-style' +stateofmind.it.adv-top-fullpage  +quattroruote.it .adv-wrap + +iodonna.it .adv-wrapper + +ilgallo.it.adv4  + gazzetta.it .adv__webvtls + empresite.it .adv_contq +corrierecomunicazioni.it +innovationpost.it + newsrimini.it + digital4.biz + esg360.it.adv_container1 +lameziaterme.it.advanced_floating_content. +mondopadano.it + automoto.it .advblock5 +garzantilinguistica.it + caneogolf.it.advbox| +trentinovolley.it +bicimagazine.it +morningstar.it + arezzotv.it + podisti.net + bimcal.it + +lausc.it.advertÜ +corrieredellumbria.it +corrieredisaluzzo.it +corrierediarezzo.it +liberoquotidiano.it +corrieredisiena.it +piazzaffariweb.com + ottopagine.it + pharmastar.it + ilfoglio.it + +iltempo.it.advertisement3 +necrologi.ilcorriere.net.advertisement-area; +ilgazzettinodisicilia.it.advertisement_above_footer# +frasicelebri.it .advertising" + +yogamap.it.advertising-box + aiutamici.com +.advgoogle + travel365.it +.advintext + tuttogreen.it .advplace + dauniacom.it .advt-col# +ilmiogiornale.net +.afc_popupB +videopornoitalia.com + megasesso.com + pornopizza.it.aff  + megasesso.com .aff__inner* +calciomercato.com.affiliate-button +agi.it .agi-ad-wrap" + edagricole.it .agriaffaires; +ilgiornaleditrani.net +chiamamicitta.it +.ai-rotaten +noisiamoagricoltura.com +cosenzaduepuntozero.it +chiamamicitta.it +velvetgossip.it.ai-viewport-1L +carovignonotizie.net +ostuninotizie.it +avvisatore.com +.ai_widget. +valsassinanews.com.aibwp_banner_widget# + petitchef.it.akcelo-wrapper& +alessandria24.com .aless-widget + ferrovie.it.alignC. +corrierinocampaniasport.it .alpha.omega + repubblica.it .alpitour# + monza-news.it.alternated-ad7 +informagiovani-italia.com + grecia.cc .alto_add + filmtv.it.altri +prezzisalute.com.amaz3 +iphoneitalia.com +nientepopcorn.it.amazon% +leggoquandovoglio.it .amazon-a1 + animeclick.it + gamerclick.it .amazon-row& +iolecal.blogspot.com +.amazonAds +my-personaltrainer.it +giallozafferano.it +valorinormali.com +donnamoderna.com +iconmagazine.it +nostrofiglio.it +pianetadonna.it +pianetamamma.it +cookaround.com +soldionline.it + smartworld.it + dmbeauty.it + sorrisi.com + studenti.it + thewom.it + webboh.it + +focus.it.amePlaceholderBox% +amicopediatra.it .amico-widget +ansa.it.ansa-c* +oraridiapertura24.it.anzeigenlabel< +omnitrattore.it +omnifurgone.it + insideevs.it.apv +iltquotidiano.it +stateofmind.it + lasberla.com + bznews24.it + +ilfilo.net + sdnews.it.apPluginContainer+ +omnitrattore.it + insideevs.it.apb6 +quotidianodelsud.it.argomenti-articolo-sponsor= +tuttoandroid.net + +tutto.tv.article-banner-container. + quilivorno.it.article-type-redazionale( +spoletonline.com.articleBannerDX( +spoletonline.com.articleBannerSX# + dererker.it.articles-pr-box& + gonews.it.articolo_redazionale. + gonews.it.articolo_redazionale_content# + tecnofun.eu.asa_product_boxœ#* +dirigentindustria.it.aside-banners% + +asroma.com.asr-header-sponsor + +asroma.com .asr-sponsors& + giochinet.com.ast-below-header! + cercacasa.it .avBannerCont + romasette.it.avf + ciaoporno.it.aviso: +ilrisveglio-online.it.aziende_singel_cervino_posts +tio.ch.aziendetiStrip +ingenio-web.it.b' + reggiotv.it + +canale7.tv.b-ads& +piuincontri.com.b-banner-group + azscore.co.it.b-odds + lecalorie.it.b_728 +quattroruote.it.bacheca& + canalearte.tv.background-cover + balarm.it .balarm_adv +oggitreviso.it.ban +oggitreviso.it.ban1¢ +pesarourbinonotizie.it +senigallianotizie.it +maceratanotizie.it +marchenotizie.info +fermonotizie.info +ascolinotizie.it + valmisa.com.ban_box" +condominioweb.com .ban_home# +castelvetranonews.it.banflo + lafune.eu +.banheaddx + lafune.eu +.banheadsx +piuincontri.com.banitem# +condominioweb.com +.bann-home + +modulo.net.bann_er# +olbianotizie.it .bann_square" +dirigentindustria.it.banneÀ $ +"ilgiornaledellaprotezionecivile.it +giornalemetropolitano.com +conquistedellavoro.it +cronachemaceratesi.it +coriglianocalabro.it +imagelinenetwork.com +sportando.basketball +valtiberinaonline.it +catanzaroinforma.it +euroregionalpmed.eu +calabriainforma.it +cronachefermane.it +ilpontecodroipo.it +insidemarketing.it +romagnanotizie.net +terredicampania.it +cesenanotizie.net +cronacheancona.it +cronachepicene.it +insurancetrade.it +luccaindiretta.it +ravennanotizie.it +rimininotizie.net +rivistaundici.com +teatronaturale.it +videonotizietv.it +centroimpiego.it +forlinotizie.net +informacalcio.it +modellismopiu.it +radioprimiero.it +romadailynews.it +smartdomotica.it +tuttoandroid.net +assisieventi.it +camperonline.it +casateonline.it +cremonasport.it +cuneocronaca.it +difesaonline.it +leccoonline.com +legnanonews.com +malpensanews.it +merateonline.it +paginehoreca.it +piacenzasera.it +riassuntini.com +vitatrentina.it +affarienews.it +asteannunci.it +cremonaoggi.it +cremonasera.it +ilgoriziano.it +ilturista.info +lostrillone.tv +movieplayer.it +oggitreviso.it +oglioponews.it +tgfuneral24.it +toscanaoggi.it +verbanonews.it +voceapuana.com + 1001giochi.it + assisinews.it + bikeitalia.it + crema-news.it + hellotaste.it + quibrescia.it + telepaceag.it + tuttotech.net + varesenews.it + 7giorni.info + aranzulla.it + cremaoggi.it + dagospia.com + ladigetto.it + sportevai.it + atalanta.it + giochixl.it + lanuova.net + +avinews.it + +foodweb.it + +key4biz.it + +ricetta.it + atnews.it + gossip.it + hdblog.it + tg24.info + trmweb.it + +5chat.it +hcb.net.banner' +welfarenetwork.it.banner-468-hp% +planetmountain.com .banner-515" + it.advfn.com.banner-728-90+ +radio24.ilsole24ore.com .banner-area$ + helplavoro.it.banner-aziende! +parmareport.it .banner-big4 +ediliziainrete.it + +modulo.net .banner-block + rpiunews.it .banner-body5 +universodelgioco.it.banner-btf-side-rectangleý +professionecamionista.it +quotidianocanavese.it +edicoladigitale.info +lacrocequotidiano.it +canavesetoday.it +amicidicasa.it +picchionews.it + 1001giochi.it + sscnapoli.it + divinafm.it + giochixl.it + +sposa.it.banner-container+ +punto-informatico.it.banner-content + quimedia.it +.banner-ct& +nove.firenze.it.banner-desktop# +tuttomaremma.com .banner-dex$ + buonapesca.it.banner-display+ +fiscal-focus.it.banner-full-width-3* +fiscal-focus.it.banner-grande-foot# +toscanalibri.it .banner-headC +legavolleyfemminile.it +euroregionalpmed.eu.banner-header' +algheroeco.com.banner-header-dx' +algheroeco.com.banner-header-sx" + prewarcar.it.banner-holder% +toscanalibri.it.banner-home-2' +valsassinanews.com .banner-image% +palermomania.it.banner-images: +abruzzoindependent.it +triestecafe.it .banner-img* +occhionotizie.it.banner-img-footer! + lacnews24.it .banner-inner( +ilcambiamento.it.banner-laterale. +universodelgioco.it.banner-leaderboard + kongnews.it .banner-left0 +escort-advisor.com.banner-link-container& +lostrillone.tv.banner-noborder( + ilmohicano.it.banner-orizzontaleï& +primocanale.it.banner-position+ +nauticareport.it.banner-post-slider• +calabriareportage.it +sportnotizie24.com +teleoccidente.it +ilpaesenuovo.it +lameziaterme.it + art-news.it.banner-promotions-wrapper0 + picenotime.it.banner-pt-orizzontale-home$ +radiotoscana.it .banner-radioC +fiscal-focus.it + solovela.net + kongnews.it .banner-right# +dailynautica.com .banner-row& +vercellioggi.it.banner-section9 +brindisisettenews.it + leccesette.it .banner-side( + it.advfn.com.banner-side-300-600< +dirittoegiustizia.it + viversano.net.banner-sidebar) +dailynautica.com.banner-skin-link& +universodelgioco.it .banner-sky* +radioecovicentino.it.banner-slider+ + laragione.eu.banner-sopra-correlati$ + vienormali.it.banner-testata` +edicoladigitale.info +superenalotto.com +fiscal-focus.it + frasimania.it .banner-top' +torresette.news.banner-top-left( +torresette.news.banner-top-right% +telegranducato.it .banner-wrap% +minigiochi.com.banner-wrapper + +rimini.com .banner-zona1! + +rimini.com.banner-zona1dx3 +lavocedilucca.it +virtusverona.it.banner1% +gnoccaforum.biz.banner250x250/ +italia-informa.com.banner250x250interno$ +campanialive.it .banner380x48 + calabria.live .banner50) +italia-informa.com.banner728x90CX/ +italia-informa.com.banner728x90CX-copia$ +gnoccaforum.biz .banner768x60) +statoquotidiano.it.bannerCommenti* +lamiachampagne.com.bannerContainer +bikerslife.com .bannerDx! +pressgiochi.it .bannerFila& + calabria.live.bannerFullCenter1 +fiumicino-online.it.bannerHeaderContainer$ + calabria.live.bannerHeaderDx$ + calabria.live.bannerHeaderSx# +iovivoaroma.org .bannerInner% + opinione.it.bannerMaincontent + filmtv.it .bannerRight$ +ravennaeventi.net .bannerSide! + opinione.it.bannerSidebarr +lacronacadiravenna.it +globalgeografia.com +edilportale.com +bikerslife.com + adcgroup.it +.bannerTop + woitalia.it .banner_200$ + cosafarei.it.banner__desktop# + cosafarei.it.banner__mobile. +professionemotori.it.banner_after_feat! + lafune.eu.banner_articolo$ + lafune.eu.banner_articolo_dx$ + lafune.eu.banner_articolo_sxG +infobuildenergia.it + infobuild.it.banner_associazioni_wrapper( +fantacalciopedia.com .banner_blog + bolina.it.banner_bottomK +casateonline.it +leccoonline.com +merateonline.it.banner_centro) + winenews.it.banner_concessionaria +arte.it .banner_cont! + everyeye.it.banner_destra( + everyeye.it.banner_destra_mobile% +brindisisera.it.banner_esteso% +radiopadova.com.banner_google$ +ilgoriziano.it.banner_header' + italpress.com.banner_img_widgetâ!6 +cronachedibirra.it.banner_in-article_container! +mareinitalia.it +.banner_mi# + news-town.it.banner_rotator" + ilsicilia.it.banner_sfondo/ +settegiorniatortona.it.banner_superiore + fidaf.org.banner_tab380_ +misterstudent.tv +salernoinweb.it + stellafm.it + bolina.it + ornews.it .banner_top% +ilmostardino.it.banner_tuudoo' +bicisupermarket.it .banner_width: +vivilanotizia.it +corriereal.info.banner_wrapper + +oksiena.it .banneralto# + +velanet.it.bannerarcipelago! + +oksiena.it.bannercentrale" + +oksiena.it.bannercentrale2: +gnoccaforum.biz +trovaescort.org.bannercontainerö# +!archivio.ilfriuliveneziagiulia.it +lagazzettadimassaecarrara.it +giornaledimontesilvano.com +lagazzettadiviareggio.net +ilcittadinodirecanati.it +lagazzettadelserchio.net +gazzettadellaspezia.com +gazzettadellemilia.it +ilgrigioneitaliano.ch +lagazzettadilucca.it +corriereincontri.it +fiumicino-online.it +sportgrigiorosso.it +zaffiromagazine.com +informatissimo.net +cralistruzione.it +energiamercato.it +ilgazzettinobr.it +notebookitalia.it +puntovendita.info +casertafocus.net +dichesegnosei.it +fcprovercelli.it +voceaigiovani.it +aziendabanca.it +biancoebruno.it +ilcervellone.it +ilvimercate.org +monrealenews.it +concorezzo.org +greenreport.it + genova3000.it + ondalibera.it + teleglobal.tv + aostaoggi.it + arezzo24.net + metanogpl.it + telesirio.it + radiopnr.it + youtg.net + +105tv.it .bannergroup' + youtg.net.bannergroupskinbanner +filmforlife.org.bannerh& +saturnonotizie.it .bannerheader( +torinoaffari.it.bannerimageright  +doppiozero.com +.bannerini + +oksiena.it .bannerinoa + +oksiena.it .bannerinob$ + +oksiena.it.bannerinocentrale% + +oksiena.it.bannerinocentrale2Ð +corriereproposte.it +dedalomultimedia.it +corriereannunci.it +bagherianews.com +tgnordsalento.it +corrierenews.it + elbareport.it + perotorino.it + primapress.it + radiomia.it .banneritem! + +oksiena.it.bannerlaterale% +prezzifarmaco.it .bannernativo( + +oksiena.it.bannerpiccolilaterale! +facciabuco.com .bannerpostv +eurogirlescort.it +metalitalia.com +assisisport.it +qualenergia.it + geronimo.news + vivafm.it.banners/ +radiobussola.it +rpz.it.bannerswidget" +trapanioggi.it .bannertestoh +biancoebruno.it +laprevisione.it +oggimilazzo.it +vicenzanews.it + album-mmt.it +.bannertop5 +ilgiornaleditalia.it.bannervcms [width="300"] +vicenzanews.it .bannexDX +vicenzanews.it .bannexSX* +coniugazione.it.banniere_haute_div +mondopadano.it.bbanner9 +guardaserie.marketing +guardaserie.okinawa.bbtn& + novaravive.it.bc_random_banner* +molisetabloid.it.bc_rb_click_trackî +notiziecalciomercato.eu +milanistichannel.com +calcionapoli1926.it +derbyderbyderby.it +tuttobolognaweb.it +fantamagazine.com +itasportpress.it +cittaceleste.it +mondoudinese.it +numericalcio.it +pianetamilan.it +fcinter1908.it +forzaroma.info +ilmilanista.it +ilposticipo.it +padovasport.tv + gazzabet.news + hellas1903.it + violanews.com + sosfanta.com + toronews.net + corriere.it + gazzetta.it + juvenews.eu + mediagol.it + +golssip.it.bck-adv9 + corriere.it + gazzetta.it.bck-media-list-sponsor +centropagina.it.bcp" + telejonio.com .bdaia-widget6 +lostrillonenews.it.bdt-carousel-style-carousel! + rockit.it.bello-container  + +mahjong.it.benvenuto_pub+ +loravesuviana.it.betteradscontainer' + gazzetta.it.betting-point-table + +diretta.it .bettingStrip2 + azscore.co.it.bettingTip__buttonsContainer4 +bluerating.com + forbes.it.bfc-ad-container +medicitalia.it.bg-adv + bikeitalia.it +.bg-banner + dueruote.it .bg-publired( +vivoconbenessere.it .bg.landscape5 +giornaletrentino.it + altoadige.it +.bg300x250 + nuovosud.it.bg_skinf +lagazzettadelmezzogiorno.it +giornalelavoce.it +torinocronaca.it + cronacaqui.it .bgbanner  +ediliziainrete.it.bglink' +hcgherdeina.com.big-sponsor-box" +spoletonline.com +.bigBannerî! +virtusverona.it +.bigbanner + +money.it +.billboard + azscore.co.it.bkw + antenna1.fm .bloc-pub1 +primaonline.it.blocco-autopromo-container% + winenews.it.blocco_banner_top + california.it .block-13+ +giornaledellamusica.it .block-ad-gdm? +corrierecesenate.it +lavitacattolica.it.block-banners* + alvolante.it.block-banners-manzoni/ +legapallacanestro.com.block-bean-banner% +cascinanotizie.it .block-block+ + alvolante.it.block-dcbanners-header; +lavocedimanduria.it + viviwebtv.it.block-first-ads, +ilclubdellericette.it.block-products( + +ilroma.net.block-rotating-banner6 +legapallacanestro.com.block-sponsor-e-partners# + repubblica.it.block__native) +telefonino.net +html.it.blz-url5 +punto-informatico.it + +webnews.it .blz_button$ +punto-informatico.it.bm-code + azscore.co.it.bn + ilformat.info.bn-loop$ + ilformat.info.bn-single-post$ + abcsalute.it.bnner_container + radioalex.it .bnnr_top  +meteovalmorea.it.bnr-rowS + genovadice.it + italiadice.it + torinodice.it + cuneodice.it .bnr_300_600T + genovadice.it + italiadice.it + torinodice.it + cuneodice.it .bnr_rt_medio, +corriereirpinia.it.body-link-padding, + azscore.co.it.bonus-offers-container + cosafarei.it .boo-link" +ilsole24ore.com .booki-linkf +turistadimestiere.com +mercatini-natale.com +salernonotizie.net + cosafarei.it .bookingaff + livescore.it +.bookmaker( +fantamaster.it.bookmakers-widget + solovela.net .bottmAdd( +piazzaffariweb.com.bottom-banner$ +secoloditalia.it .bottomright + lasiritide.it.box-1 + lasiritide.it.box-26 +centrometeoitaliano.it + popcorntv.it.box-adv + tvserial.it.box-atf +centropagina.it.box-b3 +difesaonline.it + tefchannel.it .box-banner$ + tefchannel.it.box-banner-top + balarm.it .box-evidenza + torinofc.it .box-partner + italiaoggi.it .box-slot! + adnkronos.com .box-sponsor! + corriere.it.boxADVmanuale- +portaledelverde.it.boxContainerBanner# + ludomedia.it.boxGiocoAmazon +oggi.it .boxOpenx& + hdblog.it.box_highlight_footerQ + genovadice.it + italiadice.it + torinodice.it + cuneodice.it +.box_oikia" + caneogolf.it.boxbannerhome + pneusnews.it.boxes- +oltreilfatto.it.boxes-size-horizontal! + +sposa.it.boxettini_header! +infocilento.it .boxprepost + corriere.it .boxpromo# +ricettedigusto.info.boxslot +clubdoria46.it .boxzilla¯:' +clubdoria46.it.boxzilla-overlay + open.online.branded- +skillandbet.com.brandlist_bonusbutton + tvserial.it +.break-adv, +borsainside.com.brokers-with-sidebar' +castelvetranonews.it .brotazione7 +cronachedelsannio.it +bresciasport.net.bs-sks" + bznews24.it.bsaProCarousel= +ilnuovotorrazzo.it +ilsarrabus.news.bsaProContainerR +infomedianews.com +torinomagazine.it + qdmnotizie.it.bsaProContainerNew5 +cosenzaduepuntozero.it +sigmagazine.it.bsac + diaconale.it +.bt_banner + +igds.pro.btn-01 + +igds.pro.btn-02! + +5chat.it.btnafterlistchat  +androidiani.com .buchamzn! +scaricarelibri.net.button) +altadefinizione.now.buttona_group + +libro.cafe.buy# + screenweek.it.buy-container% +frasicelebri.it.buy-on-amazon +sitiscommesse.com.bwin! +bresciasport.net .bwjliges, +casanapoli.net.bwp_gallery_slideshow + dererker.it .bxsliderV +corrieredellumbria.it +corrierediarezzo.it +corrieredisiena.it .bxsliderAdv' +quattroruote.it +sky.it.c-adv- + domusweb.it.c-article-prev--sponsored1 + empolifc.com.c-footer__sponsors-container# + trento2018.it.callExclusive1 +campanialike.com.cardSponsorColonnaDestraB +lavocedelpalio.it +assisieventi.it + superj.it .carousel& +monrealenews.it.carouselbanner& +oggimilazzo.it.cb-category-top" +leggere-facile.it .cb-large+ +ilfattoquotidiano.it.cc-adv-wrapper" +fitp.it.cc-content-sponsor/ +magazinedelledonne.it.ccm_pugoo__sponso^ +m.tuttomercatoweb.comA.center[style="margin:10px auto; height:auto; min-height:120px;"]* +casefunerarie.it.cf-nation-banners  + vienormali.it .cimarandom6 + carrefour.it".citrus-spotlight-external-wrapper  + carrefour.it .citrus-tile + telenord.it .click-foto# +moscarossa.biz .click_banner' +stile-magazine.it.clients-logos' +essemagazine.it.clients-section  +puntocellulare.it.clklnk  +pianetabambini.it.clsads7 +vispesaro1898.it.cmsmasters_clients_slider_wrap  + engage.it.cnt-banner-top* +magodelpronostico.com .cntBonusHomeŽ%# +!linkcoordinamentouniversitario.it +capitaleculturadimpresa2022.it +tuttipazziperilmotorsport.it +lintellettualedissidente.it +rollercoasterrevolution.eu +altaformazionemusicale.it +trattamentinaturalibio.it +economiafinanzaonline.it +contocorrenteonline.it +gallurainformazione.it +pallacanestrobiella.it +calciomercatonews.com +ilnuovogiornaleweb.it +ilprimatonazionale.it +radiogioiosamarina.it +ultimecalcionapoli.it +calciosalernitana.it +giornaledisegrate.it +giustiziagiusta.info +intercralcampania.it +ladradibiciclette.it +napolicalciolive.com +operarenamagazine.it +periodicoitaliano.it +settimanasportiva.it +zonacalciofaidate.it +caffeinamagazine.it +cultureducazione.it +ermesagricoltura.it +fifaultimateteam.it +giustiziabrescia.it +informazioneoggi.it +milanocittastato.it +notiziebenessere.it +cagliarinews24.com +calabrianews24.com +calciobenevento.it +calciocatanzaro.it +calciocremonese.it +calciofrosinone.it +juventusnews24.com +lascimmiapensa.com +meteoreporter24.it +passioneturchia.it +ricercaitaliana.it +sportchannel214.it +thewisemagazine.it +tuttowrestling.com +albengacorsara.it +automotorinews.it +calcioatalanta.it +calciocasteddu.it +calciorosanero.it +giornalesocial.it +grossetosport.com +huntermagazine.it +mangiabevigodi.it +notiziecatania.it +nuovocellulare.it +pianetabambini.it +pomiglianolive.it +telegranducato.it +trapanigranata.it +tuttomotoriweb.it +viaggi-estate.com +architectours.it +calciocrotone.it +calciomarcato.it +calciomercato.it +calcionews24.com +calcioudinese.it +calciovicenza.it +computer-idea.it +controcalcio.com +ffwebmagazine.it +forzasassuolo.it +futsalnews24.com +lalucedimaria.it +mammeincucina.it +motorinews24.com +mrinformatico.it +notizie-inter.it +notiziemusica.it +nuovecanzoni.com +pistoiasport.com +ricettasprint.it +siamoilnapoli.it +siciliareport.it +tvbiketreviso.it +universomamma.it +visionedioggi.it +altranotizia.it +buttalapasta.it +calcioascoli.it +calcioempoli.it +calciohellas.it +calciomodena.it +calciospezia.it +cookeatshare.it +donnaglamour.it +ilovetrading.it +internews24.com +labaricalcio.it +lazio5stelle.it +lazionews24.com +leggeremania.it +machedavvero.it +milannews24.com +mondopallone.it +motomondiale.it +notiziemilan.it +rivierapress.it +rompipallone.it +sdacmagazine.it +spazionapoli.it +stopandgoal.net +ticonsiglio.com +tifojuventus.it +vitadueruote.it +autoemotori.it +avvisatore.com +bottadiculo.it +calciogenoa.it +calciogrifo.it +calciolecce.it +calciopolis.it +chihaucciso.it +clubdoria46.it +direttagoal.it +direttanews.it +dolciveloci.it +fuoristrada.it +gazzettapmi.it +ilmoralista.it +latinapress.it +loudermusic.it +misterkappa.it +newsabruzzo.it +ossinotizie.it +pontilenews.it +rockforlife.it +sampnews24.com +serieturche.eu +siamolaroma.it +sologossip.com +sololalazio.it +spaziointer.it +spaziomilan.it +sportitalia.it +tifobrescia.it +tifocatania.it +tifocosenza.it +tifogranata.it +tiforeggina.it +tuttogratis.it +valsemotori.it +velvetmusic.it +velvetstyle.it +viagginews.com + asromalive.it + blueshouse.it + calcioblog.it + calciofere.it + calciopisa.it + calciospal.it + casinamia.com + cityrumors.it + dissapore.com + forzamonza.it + forzaparma.it + gametimers.it + gossipblog.it + ilnuovosud.it + iltorinese.it + informarea.it + mammastyle.it + napolinews.it + newnotizie.it + paviaunotv.it + rockgarage.it + allaguida.it + calcionow.it + casasuper.it + cellulari.it + cesenamio.it + checucino.it + ciaostyle.it + cultravel.it + designmag.it + gommeblog.it + ilciriaco.it + inabruzzo.it + infonurse.it + lawebstar.it + milanlive.it + neuragate.it + newsicily.it + newsmondo.it + ok-salute.it + portalino.it + pourfemme.it + primochef.it + sportnews.eu + stilearte.it + telenauta.it + tltonline.it + topicnews.it + ttiviaggi.it + urbanpost.it + valloshow.it + voltriweb.it + business.it + chedonna.it + chepoker.it + donnapop.it + flopgear.it + immezcla.it + justnerd.it + justnews.it + juvelive.it + leggilo.org + milanweb.it + notizie.com + pinkblog.it + +4minuti.it + +atopway.it + +bicizen.it + +biorace.it + +boatmag.it + +donnaup.it + +erfaina.it + +greenme.it + +icicero.it + +inews24.it + +larampa.it + +oggisud.it + +sfilate.it + +spazioj.it + +yeslife.it + crypto.it + gstv24.it + keblog.it + newsby.it + player.it + radio7.it + salbea.it + tvplay.it + +arlex.it + +stedo.it + +tag24.it + +tshot.it +toro.it .code-block% + picenotime.it.col-12.col-lg-6% + monza-news.it.col-12.col-md-4% + monza-news.it.col-12.col-md-6* + picenotime.it.col-12.col-sm-4.py-3" +maremmanews.it .col-12.my-2B + +money.it2.col-span-16.tablet\:col-span-6.laptop\:col-span-53 +quotidianodiragusa.it.col_ads_start_content* +lacrocequotidiano.it.column-banner +gay.it.compact-featured( +portaledelverde.it.consigliaProd + adnkronos.com .cont-adv™( +edilportale.com.cont-leaderBoard + settesere.it .contBanner# +brindisisera.it .cont_banner, +provinciagranda.it.cont_banner_slide- +portoravennanews.com.container-banner) + zazoom.it.container-banner-ads_no" + horecanews.it .container-bn' + ilombardia.it.container-sponsor) + ssvnaturns.it.container-sponsoren& +tuttiprezzi.it.container.basso/ +salernogranata.it.container.text-center, +torresette.news.content-banner-right% + lafune.eu.content-box-sidebar? +lookdavip.tgcom24.it#.conteprodotto > a[target="_blank"]' +ecodibergamo.it.contribute-cont" + picenotime.it .copy > .mb-56 +uominietrasporti.it.cp-slidein-popup-container + +nextpit.it.cpgSlot0 +ascolicalcio1898.it.cqcarousel-container + ilmeteo.net .creatividad" + +mowmag.com.crm-article-cut% + +mowmag.com.crm-layout-sidebar$ + +mowmag.com.crm-sticky-parent+ + automoto.it +moto.it .crm-unit-bx1+ + automoto.it +moto.it .crm-unit-bx2+ + automoto.it +moto.it .crm-unit-bx3+ + automoto.it +moto.it .crm-unit-bx4+ + automoto.it +moto.it .crm-unit-bx51 + automoto.it +moto.it.crm-unit-intxtdett* + automoto.it +moto.it .crm-unit-mh! + crotoneok.it .croto-widget1 +infobuildenergia.it + infobuild.it.cskin3 +autoscout24.ch +motoscout24.ch .css-ljr5pl% + techzilla.it.css_offerte_ajax! + corriere.ca.ct-code-block3 +mogliinmostra.it + +tse-tse.it .ctaiscriviti# + +fitri.it.custom-cont-banner- +meteofinanza.com.custom-cta-container‡ +gazzettinodelchianti.it +investomagazine.com +blogdellamusica.eu +fashionandroid.com +carpicalcio.it.custom-html-widget< +vivilanotizia.it + +tvqui.it.custom_banners_big_link8 +spaziogames.it + tomshw.it +cpop.it +.customads +calciostyle.it.d-block( +cucina-naturale.it.dalle-aziende. +buonaporno.com.default__interest-block + wallnews24.it .depicter( +destinazioneusa.com .desti-widget5 + flashscore.it + +diretta.it.detailLeaderboard' + 0766news.it + umbriaon.it.dfad +movieplayer.it.dfp + +likesx.com.dgdom' +lanuovariviera.it.dialog-widget! + helplavoro.it .divBannerHLR + genovadice.it + italiadice.it + torinodice.it + cuneodice.it .div_banner2 +saliinvetta.com +portadimare.it .djslider# + rpiunews.it.djslider-loader6 +autoscout24.it .dp-financing-insurance__wrapper + sicurauto.it +.ds-margin% + sicurauto.it.ds-margin-center +theitaliantimes.it.dx# +finestresullarte.info.dx250' + pisanews.net.e-swiper-container- +basilicatanotizie.net.e-widget-swiper' + euractiv.it.ea-gat-slot-wrapper + ledicola.it .eager-ad‚5 +trasporti-italia.com.edinet_box_sponsorizzati5 +bergamonews.it.edinews_widget_post_from_terms. + pc-gaming.it + +stile.it.egg-container- + rovigo.news.elementor-element-0429c68+ + liratv.it.elementor-element-078a7b4+ + nuoto.com.elementor-element-0afd1bc+ + nuoto.com.elementor-element-112e4a6/ + tuttopisa.com.elementor-element-157231d+ + nuoto.com.elementor-element-15edae8/ + terninrete.it.elementor-element-1827e931 +brindisitime.it.elementor-element-1a06c915 +lostrillonenews.it.elementor-element-1b7cba81+ + nuoto.com.elementor-element-1f1e93f+ + nuoto.com.elementor-element-21eec181 +vendingpress.it.elementor-element-2267f46/ + seguonews.com.elementor-element-2b63c83/ + teletruria.it.elementor-element-3182b785 +lostrillonenews.it.elementor-element-36b79523, + +tele8tv.it.elementor-element-3861025+ + liratv.it.elementor-element-39467578 +buongiornosuedtirol.it.elementor-element-3be5ec69 +gazzettadegliaurunci.it.elementor-element-41fcba5+ + nuoto.com.elementor-element-47125ff, + liratv.it.elementor-element-4b46f5651 +vendingpress.it.elementor-element-53466a9/ + tuttopisa.com.elementor-element-555c9691 +vendingpress.it.elementor-element-55cf7ab+ + nuoto.com.elementor-element-5b886237 +basilicatanotizie.net.elementor-element-5b9f270+ + nuoto.com.elementor-element-60036411 +vendingpress.it.elementor-element-60bfe991 +quintopotere.it.elementor-element-690a1f32 +brindisitime.it.elementor-element-6f94cf905 +lostrillonenews.it.elementor-element-7158b6531 +quintopotere.it.elementor-element-7684458+ + nuoto.com.elementor-element-7c264a85 +lostrillonenews.it.elementor-element-7d38ffb41 +brindisitime.it.elementor-element-7df2ea5. + crotoneok.it.elementor-element-80e080f+ + nuoto.com.elementor-element-812d66c/ + terninrete.it.elementor-element-81d25aa. + sienafree.it.elementor-element-820712b5 +gliacchiappafilm.it.elementor-element-86155c28 +buongiornosuedtirol.it.elementor-element-909b3f9+ + nuoto.com.elementor-element-9d61ccc5 +radiogelaexpress.it.elementor-element-a0fca315 +radiogelaexpress.it.elementor-element-b2b5cc31 +vendingpress.it.elementor-element-b50b7355 +gliacchiappafilm.it.elementor-element-ba10dde+ + nuoto.com.elementor-element-ba7d4b3/ + terninrete.it.elementor-element-bc84cfe/ + newslinet.com.elementor-element-c3fb427+ + nuoto.com.elementor-element-d025178. + sienafree.it.elementor-element-d126f8f7 +bussolafinanziaria.it.elementor-element-d1854171 +business24tv.it.elementor-element-d7cafb1. + tv9italia.it.elementor-element-d985f61+ + nuoto.com.elementor-element-dc930165 +lacittadisalerno.it.elementor-element-e1e064e- + rovigo.news.elementor-element-e55fe4b/ + tuttopisa.com.elementor-element-eafee8c8 +buongiornosuedtirol.it.elementor-element-f4432e84 +lostrillonenews.it.elementor-element-f5fc7c3- + twebnews.it.elementor-element-fb1b0adýF +infocilento.it + tvrxenon.it!.elementor-image-carousel-wrapper* + rovigo.news.elementor-jet-carousel) + twebnews.it.elementor-main-swiperP +lanuovariviera.it + newslinet.com + calabria7.it.elementor-popup-modal# + radiortm.it.elementor-videoA +tivustream.com+.elementor-widget-wp-widget-aawp_widget_box& + sienanews.it.eltd-image-widget+ + azscore.co.it.email-popup-container' + nanotv.it.entry-content > p > a0 +informazionecomunicazione.it .entry-inner  + +tiscali.it.entry-pos-vsb! + +tiscali.it.entry-shopping( + +tiscali.it.entry-shopping-header% + +tiscali.it.entry-shopping-sml) +webhostingmagazine.it .epcl-banner' + garganotv.com.erzodfm-container, +corriereproposte.it.eventi_associati0 +moscarossa.biz.evidenzia_accompa_diamond" + exibart.com.exibart_banner + archzine.it .external) +oroscopissimi.it.fascione-displayB +guidagrecia.net +guidaspagna.net.fascione-display__inner  +fortuneita.com +.fb-banner! +staffettaonline.com.fcRes) +staffettaonline.com.fcResContLati& + divinafm.it.fdc-widget-sponsor$ +rosa-rossa.com.feat-profiles% +omnitrattore.it.featured__apb' +brindisisera.it.featured_banner* +frequentflyeritalia.com .ffi_az_box( +masterviaggi.it.fieldset_sponsor& +castelvetranonews.it +.fixbottom% +luinonotizie.it.fixed-sponsor$ +spoletonline.com .fixedBanner2 +pisasportingclub.com.flex-contents-sponsor9 +beneventocalcio.it + podisti.net.flexbannergroupL +necrologi.ilcorriere.net +sassuolooggi.it + +entella.it .flexslider! + +finaria.it.floatingbanner& + wallnews24.it.fn-header-banner0 +corriereelorino.it.fn-widget_media_image + +focus.it .foc-coupon! + +udinese.it.foobar-sponsor% +animaliconla.it.footer-banner& +caleno24ore.it.footer-firstrow +figc.it .footer-loghi% +olimpiamilano.com .footer-logo# + lega-pro.com.footer-partner# + genoacfc.it.footer-partners> +hellasveronawomen.it +hellasverona.it.footer-sponsor* +cagliaricalcio.com.footer-sponsors/ +iliberiprofessionisti.it.footer-widgets- +serieturche.eu.footer-widgets-wrapper- +fmtournament.it.footer-widgets__inner" + caneogolf.it.footerADVping% + iltredici.it.footer__partners# + atalanta.it.footer__sponsor  + palermofc.com .footer_int8 +pornototale.com!.footer_partner_container_wrapper" +mitjetitalia.it .footer_top+ + forbes.it.forbes-ads-skin-container" +quattroruote.it .fullBanner& +ilromanista.eu.fullWidthBanner( +pressgiochi.it.full_width_banner8 +lodiedintorni.com.fusion-column-inner-bg-wrapperÌ)/ +ilnuovogiornaleweb.it.fusion-imageframe- + ruminantia.it.fusion-secondary-header, +dozenblogs.com.fw-block-image-parent» +ilgazzettinometropolitano.it +ilgiornaledellabellezza.it +vitadiocesanapinerolese.it +almanaccocalciotoscano.it +castelvetranoselinunte.it +sportmagazinetrentino.it +ilgiornaledelmolise.it +lagazzettamarittima.it +verdeazzurronotizie.it +giornaledellabirra.it +giornaledellavela.com +benessereconomico.it +calabriareportage.it +corrieresalentino.it +elettricomagazine.it +industriaitaliana.it +lavocedeltrentino.it +bolognaindiretta.it +buoncalcioatutti.it +financecommunity.it +lavocedellevalli.it +leccochannelnews.it +battipaglia1929.it +giovanigenitori.it +ilmeridianonews.it +lanuovaecologia.it +lavocedibolzano.it +modenaindiretta.it +montagneepaesi.com +sanitainsicilia.it +amicodelpopolo.it +barcheamotore.com +ilfattonisseno.it +lacasainordine.it +lavoceditalia.com +leggotenerife.com +radioaldebaran.it +radiosportiva.com +rivistastudio.com +rivistaundici.com +webradiodesign.it +gazzettadasti.it +giornaleadige.it +lecconotizie.com +meteofinanza.com +monrealepress.it +rietinvetrina.it +siciliarurale.eu +travelnostop.com +vesuvianonews.it +borsainside.com +centropagina.it +corriereal.info +forensicnews.it +ilsipontino.net +itacanotizie.it +lagendanews.com +lameziaterme.it +madoniepress.it +milanodabere.it +picenonews24.it +pugliapress.org +radiomugello.it +reggionline.com +reteabruzzo.com +siciliammare.it +varesesport.com +algheroeco.com +anteprima24.it +calciofvg.live +lapiazzaweb.it +laquilablog.it +messinaoggi.it +radiofrejus.it +sport-press.it +unicoebello.it +vesuviolive.it +viterbopost.it + creditnews.it + ilmediano.com + laconceria.it + lapalestra.it + piacenza24.eu + quicosenza.it + recoverweb.it + terranuova.it + dronezine.it + farevela.net + ilsicilia.it + lavalsusa.it + oltrefano.it + radioalex.it + radioalfa.fm + radioluna.it + radiotime.it + trapanisi.it + tusciaup.com + assinews.it + canale2.com + ferpress.it + iltamtam.it + labusa.info + myvalley.it + primoweb.it + subito.news + telebari.it + trileggo.it + webmarte.tv + +gdonews.it + +inbici.net + bastia.it + hrnews.it + labtv.net + +imola.it.g  + 4yougratis.it .g-top-text +gustosaricerca.it.gad) +virtusfrancavilla.it .gallery-icon. + abruzzoweb.it.gambit-carousel-anything* + flashscore.it + +diretta.it.gamble& + 1001giochi.it.game-leaderboard + 101games.it .game-m-dU +calciolecco1912.com +usviterbese.it + asgiana.com.gdlr-banner-item-wrapper$ +zerocinquantuno.it +.gdlr-logo% +quattroruote.it.genericBanner) +gestoricarburanti.it .gesto-widget + +354353.com .gggsadad21* + teleorte.it.ghostkit-custom-1BB0B1* +italia-informa.com.giapPageAdvCont& +estrazionedellotto.it .giocaBox + +mahjong.it .giochi_h" + solitario.it.gioco_public1œ +ilclubdellericette.it +portalebambini.it +milanofinanza.it +questaseratv.it +calciostyle.it +xiaomitoday.it + infodifesa.it + italiaoggi.it + mffashion.com + stadionews.it + bestmovie.it + meteolive.it + panorama.it + salepepe.it + rockit.it + +money.it.gmp' + laverita.info.gmp-repeating-ads& +quattroruote.it.google-adv-box* +sentieriselvaggi.it.google-banners# + dueruote.it.googleAdvSticky  + dueruote.it .googleBanner* + dueruote.it.googleBanner-BoxBottom% +goriziaoggi.news .goriz-widget + teamworld.it .gpt-sticky + 3bmeteo.com.gpt_top% +studiouniversal.it .grf-widget5 +cittafuture.quotidiano.net.gs_carousel_swiper( + sorrisi.com.gtv-trigger-elevator# + +354353.com.guanggadsadswqew! +cinqueterre5.com .gyg-list& +vacanzeinamerica.eu .gyg-static. +corrieredicarmagnola.it.h-text4.h-text + +ricetta.it .h728-up-homeA +boatindustry.it + boatsnews.it + pescare.news +.habillage + +cuckold.it .happy-headerV +filmpornoitaliano.org +pornoitaliano.com + filmporno.it.happy-inside-player- +pornoitaliano.com.happy-player-beside' +pornoitaliano.com.happy-section  + +cuckold.it.happy-sidebar: +meglioviaggiare.it +siciliaoggi.com .header-ainfo¹ +comesifasefaidate.it +radioviainternet.it +lagazzetta.info +oltreilfatto.it +assisisport.it +palermolive.it + siderweb.com + toscana.live + +oddslot.it.header-banner, +nauticareport.it.header-centerbar-ad. +genovaquotidiana.com.header-image-wrap% +vercellioggi.it.header-images$ + ondanews.it.header-promotion0 +cittafuture.quotidiano.net.header-slider, +veronavolley.it.header-title-sponsor" +mammafelice.it .headerright + startmag.it .headofpage( +internazionale.it.hentry--banner$ +vocedistrada.it .hh-cubo-wrap' +vocedistrada.it.hh-sponsor-wrap( +facileporno.com.hidden-under-920: +valseriananews.it!.hidden-xs[style="height:600px;"] + legaseriea.it +.hm-banner' + legaseriea.it.hm-sponsor-footer5 +grandangoloagrigento.it +blogsicilia.it.hoi' + radioram.it.home-featured-boxesŠ4 +pharmacyscanner.it.home-section-banner-large* +ecovicentino.it.home-top-banner-dx* +ecovicentino.it.home-top-banner-sx0 +flash---art.it.homepage__banner--wrapper, +radiosportiva.com.hotspots-container& +livingcesenatico.it .hover-wrap  + corriere.it .hp-adv-block + libero.it .hp_300x1 + virgilio.it .hp_300x250* + virgilio.it + libero.it +.hp_970x90# +moto.it.hpblock.linkedimage( +giornalesm.com.hthb-notification + +iodonna.it.id-vda! + +iodonna.it.id-vda-article + lastampa.it +.idealista% + idealista.it.idealista-banner$ +ilfattoquotidiano.it.ifq-dfp$ +allmusicitalia.it .iframe-adv. + infojobs.it.ij-AdvertisingRoadblockTop' + infojobs.it.ij-OfferList-banner! + +ilcaffe.tv.ilc_pubblicita< +ilcaffediroma.it + +ilcaffe.tv.ilc_pubbliredazionale3 +cinquecolonne.it.image-widget-wrapper-outer5 +ilnuovogiornaleweb.it.imageframe-align-center1 + oroscopi.info.img_oroscopo_personalizzato+ +internimagazine.it.in21-adv-mosaico1 +internimagazine.it.in21-native-small-wrap) +cronacaossona.com.info1-paragrafo) +cronacaossona.com.info2-paragrafo) +cronacaossona.com.info3-paragrafo( +cronacaossona.com.info5paragrafo$ +cronacaossona.com .infowidget, +lecconotizie.com.insert-adv-venerota3 +emiliaeunanotte.it.inserzione_pubblicitaria + orvietosi.it .inside-adv! + orvietosi.it .inside-adv-h + larionews.com +.intercept +affaritaliani.it.intesa! + dailybest.it .intextbanner+ +sitiscommesse.com.intro-brand-wrapp  + tviweb.it.ir-sidebar-top + +abr24.it.it-ad + ssvnaturns.it .item-464 + ssvnaturns.it .item-596& + aeroporto.net.items_aff_styles- + juventus.com.jcom-o-footer__corporate/ + juventus.com.jcom-o-sponsors-nav__child  +telesettelaghi.it.jeg_adH +ilsaviglianese.com +giornaleibleo.it.jeg_nav_item.jeg_nav_html + terninrete.it +.jet-popup4 +corrierenazionale.it.jetpack-image-container& +eurocampings.it.js-mock-banner( +facileporno.com.js-sticky-banner0 +eurogirlescort.it.js-stt-click > picture3 +pornototale.com.js_footer_partner_container* +pornototale.com.js_sidebar_webcams2 +pornototale.com.js_webcam_models_container" +nientepopcorn.it +.justwatch* +bolzanonuoto.it.kiwi-logo-carousel) +beneventocalcio.club .kode-partner. +pianetamountainbike.it.kopa-bnn-widget! + adcgroup.it.l-box-partner, +rollingstone.it.l-home-branded-block, +prezzifarmaco.it.label-sponsorizzata¡' + +laguida.it.laguidaadvads-widget  + laluce.news .laluc-widget + libero.it .lancio_promo' +oggitreviso.it.larghezza-banner! +pensieriparole.it.latspot/ +convertire-documenti.it.lead-responsive + +ilgallo.it .leader-boardK +lagazzettasiracusana.it +lagazzettamessinese.it.leader-right-wrap$ + blablive.com.leader-wrap-outU +riskcompliance.it + 7giorni.info + pneusnews.it + prealpina.it .leaderboard? +infobuildenergia.it + infobuild.it.leaderboard_wrapper# + lafune.eu.left-banner-block% + agimeg.it.lgx_logo_slider_app" +castelvetranonews.it.liban! + libero.it.ligatus_wrapper + balarm.it +.link-skin) +cruiselifestyle.it.linkBackground +pressgiochi.it .linkSkin + winenews.it +.link_skin! +facileporno.com +.links-out6 + armiusate.it".listing-ribbon-title-main-sponsor  +lupopornohd.it +.lnks-land + federgolf.it.loghi +hcb.net.logo# +spoletonline.com .longBanner + +jamma.tv +.look-data/ +lecconotizie.com.loop-pubbliredazionali +nauticareport.it.lozad + lapresse.it .lp-topleft  +lupopornohd.it +.lst_ft_bn +omnifurgone.it.m1-apb' +omnitrattore.it.m1-gapb-topside  +buttanissima.it .machette! + gonews.it.machette-destra$ + gonews.it.machette-over-logo# + gonews.it.machette-sinistra% + lifegate.it.magazine-lifegate1 +telenicosia.it.magazine_plus_widget_image& +piazzaffariweb.com .main-banner- +filmaltadefinizione.me.main-news-more +fip.it.main-sponsors& + azscore.co.it.make-a-bet__wrapc +portoravennanews.com +sanmarinofixing.com +tuttomercatoweb.com + opinione.it +.manchette< +quotidianosicurezza.it + noinotizie.it .manchette-dx< +quotidianosicurezza.it + noinotizie.it .manchette-sx + winenews.it .manchette_l + winenews.it .manchette_r& +ilcarmagnolese.it .manchettedxdU +corrieredellumbria.it +corrierediarezzo.it +corrieredisiena.it .manchettes& +ilcarmagnolese.it .manchettesxd + 24emilia.com .marquee0 + everyeye.it.masted! +milleunadonna.it .masthead… +passioneinter.com +corsedimoto.com + lacasadic.com + meteolive.it + seried24.com + romanews.eu +zon.it.masthead-block+ +matematicamente.it.masthead-wrapper! + dueruote.it.masthead_cont% + automoto.it +moto.it.mawrap# + radiogold.it.max-banner-top  +p2p-italia.com +.maxbutton% + laputa.it.mbt-book-buybuttons + 101games.it.mdd-d + ilmeteo.net .megabanner, +pistoiasport.com.menu-banner-wrapper  + anisearch.it .merchandise“ê +settegiorniatortona.it +terraetradizione.com +ecoaltomolise.net +teleoccidente.it +potenzanews.net +vulturenews.net +materanews.net + malpensa24.it + newslinet.com + 24live.it + nanotv.it + +70-80.it .metaslider + +oksiena.it.meteo" +cronachedelsannio.it.mgvyo! +sestonotizie.it +.mh-banner! +filmforlife.org +.mh-footer$ +leggopassword.it .mh-header-2a +piccolieviaggi.it +paesidelgusto.it +goodtrekking.it + trueriders.it.mha-slot-holder + automoto.it.mhwrap3 +giornaletrentino.it + altoadige.it.middle2$ +secoloditalia.it .middleright# +lavocedilucca.it .minwbanner! +tvdigitaldivide.it.mioadv. + automoto.it +moto.it.mit-skin-spacerD$ +"laprovinciadelsulcisiglesiente.com.mkdf-header-banner-widget% +ilgiallorosso.eu .ml-auto.py-2! +mercatinomusicale.com.mmv. +ricettedalmondo.it.mobile-ricetta-box1X +professionesuinicoltore.it +professioneallevatore.it +alimentibevande.it.mod) +sexycommunity.it.mod_bannerslider( +primocanale.it.mod_manualbanners. +quotidianodellumbria.it.modalJS_object + disabili.com.modsa0 +compagniadellacima.it.module-custom_html. + +fitri.it +fpi.it.moduletable-sponsor+ +valdichianaoggi.it.mom-e3lanat-wrap. +mondobalneare.com.mondobalneare-bannerN +cremonaoggi.it +oglioponews.it + cremaoggi.it.mondopadano-container3 +gravidanzaonline.it + +macplas.it +.mp-bannerE +gravidanzaonline.it +robadadonne.it + diredonna.it.mp-code& + eurogamer.it + +boingtv.it.mpuF +criptovalute.io/.mui-row.row.mui--text-center.mui--align-middle" + +tutti.ch.mui-style-17xiqz7" + anibis.ch.mui-style-lwlc47! + +tutti.ch.mui-style-z954cu, +bergamoesport.it.mv15 > .block > .fw# +bergamoesport.it .mv15 > .fw) +bergamoesport.it.mv15.block > .fw# + qdmnotizie.it.mvp-wall-link� +unicosettimanale.it +calabrianews24.com +calciofoggia.it +loccidentale.it +sarnonotizie.it + +telemia.it.n2-section-smartslider' +persemprecalcio.it .n2-ss-slider, + ildolomiti.it + dagospia.com.native" + dagospia.com.native_mobile{ +ilgiornaledivicenza.it +bresciaoggi.it +radioverona.it +telemantova.it + telearena.it + larena.it +.nativeadv. +livingcesenatico.it.nectar-slider-wrap2! +agenziagiornalisticaopinione.it .new-banner% +ecovicentino.it.new_class_eco +tio.ch.newhome_widget& + montagna.tv.news-sponsorizzate& +italia-informa.com .newsitemAdv! + +plaffo.com.nivo-imageLink/ +laleggepertutti.it.notizie-blue-bnr-one/ +laleggepertutti.it.notizie-blue-bnr-two& +voglioporno.com.ntv-disclaimer  + dailybest.it .nuovobanner + areanapoli.it.ob-box1 + flashscore.it + +diretta.it.oddsPlacement + +diretta.it .oddsWrapper# +esportsonline.it .oe-wrapper + hdblog.it .offer-icons" +spoletonline.com +.oldBanner* + bebeez.it.olo-row-banner-center-hp( + bebeez.it.olo-row-custom-sponsor: +guardaserie.marketing +guardaserie.okinawa.opbtn& +acffiorentina.com .our-partners‰< +guardaserie.marketing +guardaserie.okinawa.overmsgJ +reportageonline.it +sslazionuoto.it + radiociak.it .owl-carousel9 +boatindustry.it + boatsnews.it + pescare.news.p/ + +money.it.p-4.my-4.rounded-lg.text-white2 +livornopress.it.padding-top.hide-in-wm-xxl  + kultur.bz.it .page-banner+ +radioolympia.it.page-section-benner! + paisemiu.com .paise-widget* +nostrofiglio.it.par-listing-collab% + agrodolce.it.partial-promobox“ +telemiaplay.telemia.tv +crosspertutti.it +fc-suedtirol.com +hcpustertal.com +radiofly.cloud +ragusanews.com + +broncos.it.partner# + bolognafc.it.partner-footer( +padovacalcio.it.partner-img-logow +100ideeperristrutturare.it +quattrozampe.online +casa-naturale.com +villeecasali.com.partner-item-wrapper# +radio-gamma.it .partner-news' +radiogardena.it.partner-wrapper + lifegate.it +.partneredW +pallacanestrocantu.com +teatronaturale.it + rtinradio.com +fip.it .partnerss +100ideeperristrutturare.it +quattrozampe.online +casa-naturale.com +villeecasali.com.partners-wrapper + dererker.it .partvert" + dererker.it.partvert-right´ +leontinoinews.it +siracusanews.it +augustanews.it +catanianews.it +pachinonews.it +sicilianews.it + avolanews.it + ibleinews.it + notonews.it.paszone_container + ludomedia.it.pbi + lidentita.itk.pc-sezione-home-ultimiarticoli > .container > .row > .col-xs-12.col-md-4.sidebar > .row > .col-xs-12 > imgk + lidentita.itW.pc-sezione-home-ultimiarticoli > .container > .row > .col-xs-12.col-md-4.sidebar > img + lidentita.itk.pc-sezione-home-videoepolitica > .container > .row > .col-xs-12.col-md-4.sidebar > .row > .col-xs-12 > imgr + lidentita.it^.pc-sezione-home-videoepolitica > .container > .row > .col-xs-12.col-md-4.sidebar > .row > imgT + lidentita.it@.pc-sezione-single-sidebar-singlesidebar > .row > .col-xs-12 > aV + lidentita.itB.pc-sezione-single-sidebar-singlesidebar > .row > .col-xs-12 > imgN +ladiscussione.com +nonsolonautica.it + evosmart.it.penci-banner-box" + ore12.net.penci-promo-item+ +notiziediprato.it.penci_bottomblock, + kongnews.it.penci_list_banner_widget( +notiziediprato.it.penci_topblockÐ +cagliarinews24.com +juventusnews24.com +calcionews24.com +futsalnews24.com +internews24.com +lazionews24.com +milannews24.com +sampnews24.com + ragusaoggi.it + lawebstar.it .placeholder& +morethantech.it.placeholder-bg* +calcionapoli24.it.player_evolution( + radioamore.it.plugin-sidebar-adv? +misterstudent.tv +salernoinweb.it.pollice-volante-all- + radiociak.it.pop_up_modal_content > a% +pordenoneoggi.it .porde-widget* +notizielazio.it.post-middle-banner  + comingsoon.it .primeTrack& +nursetimes.org.primobanner-320( + +redacon.it.prj_artcorr_container# +theflightclub.it .pro_contro$ + sololibri.net.productContent! +prendiporno.tv .productora& +prendiporno.tv.productora-logo6 + comingsoon.it + pneusnews.it +ansa.it.promo + comingsoon.it +.promo-img, + sardinias.it.promo-partner-container$ +theflightclub.it .promo_carta + fibra.click .propaganda+ +tgfuneral24.it.psct-banners-wrapper% +programmitvstasera.it.ptv-ads( + giornalone.it + agoravox.it.pub  + radiogold.it .pub-content + ispazio.net .pub-header# +coniugazione.it .pub_contenu& +coniugazione.it.pub_inread_div$ +coniugazione.it .pub_pave_div% +coniugazione.it.pub_pave_div2 +paginebianche.it.pubbŸ + barinedita.it.pubbli% +prendiporno.tv.publ11s-b0ttom +camperonline.it.publink +carteprepagate.org.pum2 +lapancalera.it.pum-content.popmake-content2 + picenotime.it.py-1.colonna-singola > .py-5: +radiomessinasud.com +radiobussola.it .qt-sponsors# + vivafm.it.qt-widget-sponsor + rockol.it .rckl-promo  + lasicilia.it .rcs-sidebar* + it.advfn.com.recent-stocks-sibling# +live-sport-tv.it .rectangles  + prealpina.it .redazionale, +megaescort.info.region-banner-bottom, +megaescort.info.region-banner-header& +ilsole24ore.com.rel--brandconn$ +microgiochi.com .relacionados  +dday.it.relevant.preview" + mobimart.it.resp-container( +daninseries.it.responsive-bannerV +cosenostre-online.it +zerocinquantuno.it + +esperia.tv.revslider-initialised + tviweb.it .right-news" + ladigetto.it.right_sponsor" + +ilroma.net.rotating-banner. +corrierinocampaniasport.it .rotor-items' + +rimini.com.row-bann-home-mobile, +magodelpronostico.com.row-info-bonus + +wikihow.it .rr_container +bicimagazine.it.rstbox  +ilsole24ore.com .s24-abox  + ship2shore.it .s2s-banner% +carraresecalcio.it .saas-brand! + ok-salute.it .salut-widget0 +bmwpassion.com + +phica.eu.samBannerUnit. +bmwpassion.com + +phica.eu .samCodeUnit) +community.punterforum.com.samItem + lacnews24.it +.sb-banner' +radiosvolta.it.sc_widget_slider$ +spoletonline.com .scoopBanner' +fiorentinanews.com .secondWidget + +diretta.it .section--nmb• +certificatejournal.it +wallstreetitalia.com +finanzaonline.com + finanza.com + +borse.it0.section-sticky-rail[style="min-height: 800px;"]) +onlinesiracusa.it.sek-link-to-url- +campanialike.com.sezioneSponsorDestrap +coriglianocalabro.it + comunicalo.it + crotoneok.it + sibarinet.it#.sgpb-popup-dialog-main-div-wrapperu +coriglianocalabro.it +notiziediprato.it + comunicalo.it + crotoneok.it + sibarinet.it.sgpb-popup-overlay* + paesenews.it.shailan_banner_widget6 +fishingboatmagazine.it.shortcode-banner-insideB +guardaserie.marketing +guardaserie.okinawa.show-download0 +fattoincasadabenedetta.it.side-adv-group$ +assisieventi.it .side_banners+ +quotidianolacitta.it.sidebar-banner+ +estrazionedellotto.it.sidebar-right' + sicurauto.it.sidebar-sticky-top  + +rtalive.it.sidebarSliderG +tuttosporttaranto.com +fiorentinauno.com.sidesponsors_wrapper' +cosedicasa.com.sidespot-wrapper + bolognafc.it .single-adv* +theflightclub.it.single-bestseller" + radiociak.it.single-bottom% +manfredonianews.it .single-boxd +piccolieviaggi.it +paesidelgusto.it +goodtrekking.it + trueriders.it.single-slot-holder + archzine.it .single_ads + +greenme.it.skinÍ&" +norbaonline.it .skin-bannerl +cremonasport.it +cremonaoggi.it +cremonasera.it +oglioponews.it + cremaoggi.it.skin-container: +brindisisettenews.it + leccesette.it .skin-desktop# +lavoripubblici.it +.skin-link + digitalic.it +.skin_a_dx + digitalic.it +.skin_a_sx% +cellulare-magazine.it.skin_bg" +sempionenews.it .skin_click% +iovivoaroma.org.skin_link_top# + forumfree.it.skin_tbl_width$ +giocopulito.it.skinsuperiore + search.ch +.sl-banner9 +gazzettinodelchianti.it + hdgolf.it .slick-slider  + settesere.it .slick-track& + hellaslive.it.slider-container# +fremondoweb.com .sliderclass/ +buonenotiziebologna.it.slides_container” +altopiemonte24.it +lagomaggiore24.it +borgomanero24.it +24newsonline.it +novara24news.it +vercellese24.it +sport24news.it + biellese24.it + novarese24.it + verbano24.it + ossola24.it + ticino24.it + visitvco.it + +arona24.it + +cusio24.it .slideshowck + tmnotizie.com.slogan� +agrigentonotizie.it +brindisireport.it +agrifoodtoday.it +arezzonotizie.it +avellinotoday.it +sportpiacenza.it +bolognatoday.it +bresciatoday.it +cataniatoday.it +firenzetoday.it +livornotoday.it +palermotoday.it +perugiatoday.it +ravennatoday.it +salernotoday.it +sondriotoday.it +trevisotoday.it +triesteprima.it +veneziatoday.it +vicenzatoday.it +anconatoday.it +casertanews.it +cesenatoday.it +chietitoday.it +foggiatoday.it +genovatoday.it +latinatoday.it +milanotoday.it +modenatoday.it +napolitoday.it +novaratoday.it +riminitoday.it +romagnaoggi.it +torinotoday.it +trentotoday.it + forlitoday.it + ilpiacenza.it + lecceprima.it + leccotoday.it + monzatoday.it + padovaoggi.it + parmatoday.it + udinetoday.it + veronasera.it + baritoday.it + ilpescara.it + pisatoday.it + romatoday.it + +quicomo.it + +today.it.slot! + libreriamo.it .slot-banner + +sportal.it .slot_banner‘ +agrigentonotizie.it +brindisireport.it +agrifoodtoday.it +arezzonotizie.it +avellinotoday.it +sportpiacenza.it +bolognatoday.it +bresciatoday.it +cataniatoday.it +firenzetoday.it +livornotoday.it +palermotoday.it +perugiatoday.it +ravennatoday.it +salernotoday.it +sondriotoday.it +trevisotoday.it +triesteprima.it +veneziatoday.it +vicenzatoday.it +anconatoday.it +casertanews.it +cesenatoday.it +chietitoday.it +foggiatoday.it +genovatoday.it +latinatoday.it +milanotoday.it +modenatoday.it +napolitoday.it +novaratoday.it +riminitoday.it +romagnaoggi.it +torinotoday.it +trentotoday.it + forlitoday.it + ilpiacenza.it + lecceprima.it + leccotoday.it + monzatoday.it + padovaoggi.it + parmatoday.it + udinetoday.it + veronasera.it + baritoday.it + ilpescara.it + pisatoday.it + romatoday.it + +quicomo.it + +today.it.slots + +sluurpy.it .sluurpy_bdrw$ +salernogranata.it .slywdg-box, +mondoprimavera.com.slywdg-customhtml$ +lavoroecarriere.it +.sm-banner! + +ilgallo.it.small-banner-1) +hcgherdeina.com.small-sponsor-box$ +spoletonline.com .smallBanner, +trentinovolley.it.social-diatec-menu4 +itacanotizie.it + piacenza24.eu .sour-intext3 +tvoggisalerno.it.sow-slider-image-container +fantacalcio.it.sp +fantacalcio.it.sp-box0 + tgnewstv.it.sp-logo-carousel-pro-section3 +usavellino1912.com + virtus.it .sp-sponsors3 +betitaliaweb.it.space-companies-home-widget8 +betitaliaweb.it!.space-companies-sidebar-2-widget9 +betitaliaweb.it".space-organizations-home-8-widget0 +betitaliaweb.it.space-shortcode-wrap-ins) +lapancalera.it.spazi-pubblicitari$ +ilfattoquotidiano.it.special( + bimcal.it.special-calendars-wrap + radiogamma.it.spo + comingsoon.it.sponProç +stickmangames.altervista.org +girovagandointrentino.it +beneventonews24.it +bolzano-bozen.it +ilmonferrato.it +torinometeo.org +calciofvg.live +feralpisalo.it + catanista.com + +ioarte.org + +legab.it.sponsor1 +cagliarilivemagazine.it.sponsor-associati. +luinonotizie.it.sponsor-background-big+ +assoallenatori.it.sponsor-container# + sscnapoli.it.sponsor-footer* +victorialibertas.it.sponsor-header' +luinonotizie.it.sponsor-interna% +powerhockey.info .sponsor-logo' +rittnerbuam.com.sponsor-section% + zebreparma.it.sponsor-wrapperO +videopornoitalia.com + megasesso.com + pornopizza.it.sponsor-wrapperr" +facciabuco.com .sponsor_box. + sichannel.tv + sienaweb.tv .sponsor_dx! + vocetempo.it .sponsor_home% +tokyo2020.coni.it .sponsor_int- +m.cronachemaceratesi.it.sponsor_title$ + hellaslive.it.sponsor_widget; +italiachecambia.org +pharmacyscanner.it +.sponsored•$ +dailyonline.it.sponsored-adv3 +sportmediaset.mediaset.it.sponsored-section' +unionesarda.it.sponsored-teaserq +hellasveronawomen.it +parmacalcio1913.com +focus-online.it +hellasverona.it + slownews.it .sponsors + avvenire.it.spot> +cronachetarantine.it".sppb-addon-single-image-container  +classificaporno.com.sppc +facciabuco.com.sprbox  +ecoaltomolise.net.spu-bg' +ecoaltomolise.net.spu-container3 +livesicilia.it.square-placeholder-container# + assisinews.it.square_banner+ +sanitainsicilia.it.srur_leaderboard` +cremonasport.it +cremonaoggi.it +oglioponews.it + cremaoggi.it.standard-inside-text@ +corrierediviterbo.it +corrieredirieti.it.static-banner' +ilfattoquotidiano.it .sticky-adv +pmi.it.sticky-banner, + meteolive.it.sticky-banner-container1 +sempionenews.it.sticky-posts__redazionali# +prezzisalute.com .stickyleft( + laziorugby.it.stm-image-carousel +cb01.in.story-cover-bbß +gazzettadellavaldagri.it +metropolitanmagazine.it +dragonballforever.it +fifaultimateteam.it +quotidianodibari.it +giornalenordest.it +unaparolaperte.org +occhionotizie.it +vicenzareport.it +ilmoderatore.it + inter-news.it + viversano.net + ilgolfo24.it + ok-salute.it + iocaccio.it + cblive.it + mole24.it .stream-itemo +quotidianodifoggia.it +ilmoderatore.it + ilgolfo24.it + iocaccio.it + cblive.it.stream-item-widget + filmtv.it +.streaming! + motori.it.strip_agos_link% +vacanzeinamerica.eu +.su-button" +casa-domotica24.it.su-tabs& +quizpatenteonline.it +.subHeader! + ferrovie.info .subslider-0+ +ilsussidiario.net.sus_adv_container  +freeonline.org +.sw-banner# +yesmagazine.it .swiper-slide: +radiolaquila1.it +luinonotizie.it.swiper-wrapper; +diventaretrader.com +criptovalute24.com +.table-almi +direttasport24.comO.tablebutton[href="https://www.direttasport24.com/leovegas-bonus-di-benvenuto"] + ilpost.it .tag-branded! +videosesso.com .tagsection + techboom.net .tb_offerte¨ +wallstreetitalia.com +finanzaonline.com + soundsblog.it + agrodolce.it + cineblog.it + finanza.com + tvblog.it + +blogo.it + +borse.it +pmi.it .tbm-codeC +gazzettadiavellino.it +sardegnareporter.it.td-all-devices& + edagricole.it.td-banner-footerZ +zonawrestling.net +01smartlife.it + 01health.it + +01net.it.td-banner-wrap-fullë +calciofemminileitaliano.it +romagna24economia.it +secondamanoitalia.it +elettronicanews.it +bologna24ore.it +ferrara24ore.it +ravenna24ore.it +rimininews24.it +rovigo24ore.it + forli24ore.it.td-container-header5 + italiasera.it + radioroma.it.td-custom-image: + ilnautilus.it%.td-custom-image.td-no-img-custom-urlA +italianotizie.online + +ivl24.it + +jamma.tv .td-fix-index> +cucina-naturale.it + legavolley.it.td-header-rec-wrapF +okpronostico.it + ragusah24.it + laspia.it.td-header-sp-recs+ + +gdoweek.it.td-leaderboard-wrap-full+ +giustizianews24.it.td-single-image-\ +sangavinomonreale.net +amarantomagazine.it +vesuvionews.it.td_block_single_image€ +radiolombardia.it +notizialocale.it +biancorossi.net +liguriaoggi.it + moondo.info + +jamma.tv.td_single_image_bg0 + foggiatv.it.td_uid_15_64a1adc5c477f_rand7 +giustizianews24.it.td_uid_22_657632dcd06b2_rand6 +giustizianews24.it.td_uid_8_6576328c94bf2_rand" +energiaincomune.com.tdi_11! +ledicoladelsud.it.tdi_163% +ilgiornaledelticino.ch.tdi_17" +cronachedibirra.it.tdi_170% +ilgiornaledelticino.ch.tdi_29 + +artuu.it.tdi_446 + +artuu.it.tdi_450% +ilgiornaledelticino.ch.tdi_47ì + presepio.it.tdi_51  +gazzettajonica.it.tdi_65! +corriereflegreo.it.tdi_70 +rinnovabili.it.tdi_74 + cronachedi.it.tdi_82$ +cure-naturali.it .teaser-side? + motori360.it + vivaboy.com + +inbici.net.text-html-box + teleaesse.it +.text-left + teleaesse.it .text-right  + livorno24.com .textwidget +gds.it.thematic--adv! +caleno24ore.it .themequote# +comesifasefaidate.it.ticker% +veronavolley.it.title-sponsor + foodnrock.com .toolsADVL +cronachetarantine.it +offerteshopping.it + allsongs.tv .top-banner* +cagliaricalcio.com.top-banner-home2 + laverita.info + panorama.it.top-billboard) + it.advfn.com.top-pinned-container" +secoloditalia.it +.top-right + adirai.it .top-sidebar  + adirai.it.top-sidebar600) +cagliaricalcio.com.top-sponsor-hp + fmtv.live .top_banner! + antenna1.fm.top_publicite  +mammainviaggio.it.topbar- +piccoletrasgressioni.it.topbar-banner5 +mondoprimavera.com + +blunote.it .topbar-below + panorama.it .topbar-fake=) +'sentimentispezzini.cittadellaspezia.com.topbar-header + everyeye.it.topskin9 +incinqueterre.com +cinqueterre5.com .tour-banner  + +tvprato.it.tp-banner-bar, +giornaledibarga.it + +noitv.it.track + noinotizie.it +.tre-spazi5 +radiocompany.com + radiowow.com .trend-banner! + smartworld.it .tw-carousel7 + smartworld.it".tw-fragment-affiliation-container( + radioram.it.ubm_banners_rotation + uiblog.it .uiblo-widget* +notebookitalia.it.uk-height-mediumK +padelmagazine.it3.uk-padding.uk-padding-remove-bottom.uk-text-center* +monitorimmobiliare.it .uk-skin-link, +strumentiemusica.com.ulnqd-container + tviweb.it .under-pp + tviweb.it .under-video + tviweb.it .under-week- +portadimare.it.unite-carousel-wrapper' +siciliaonpress.com .upper-footer% +pablitoescort.com .upperbanner) +uspontedera.it.us_custom_99fe846b- +amadeusmagazine.it.us_custom_c62a4417- +amadeusmagazine.it.us_custom_d14818f6 +giardiniblog.it.uzuwtdg + azscore.co.it.v-bonusD +visitareromain3giorni.it +bottadiculo.it.vc_btn3-container( +casertaweb.com.vc_carousel-inner/ +nuovabrianza.it.vc_custom_1489165980187- + expartibus.it.vc_custom_1548952245523, + orvietosi.it.vc_custom_1588254538642, + orvietosi.it.vc_custom_1681230534173) + ondanews.it.verticalmainSliderDiv4 +pornoitaliano.com.video-block-happy-absolute + nuovosud.it .video-jsµH) +voglioporno.com.video-relacionado# +pressgiochi.it .videoCristal* +buonaporno.com.video__sidebar-item) +voglioporno.gratis.video_left_box5 +sportsondrio.it.view-inserzioni-sponsorizzate$ +vitatrentina.it .vitat-widgetF +videos.mrpornogratis.it +videos.pornototale.com .vjs-producer+ +ufficistampanazionali.it .vlchbykoag" +vetrinamotori.it +.vm-adunit + libreriamo.it +.vm_player) + catanista.com + +blunote.it.w-100+ + hdmotori.it.w-full.h-\[250px\].mb-4  + sora24.it.wallpaper-link* +webhostingmagazine.it .webho-widget +notiziarioeolie.it.well  +pokeritalia24.it.well-sm  +transfermarkt.it.werbung* +siciliainternazionale.com .widget-1& +foggiacalciomania.com .widget-2& +foggiacalciomania.com .widget-5C +siciliainternazionale.com +foggiacalciomania.com .widget-7* +siciliainternazionale.com .widget-8% +telcoinsider.it.widget-a-wrapI +lantidiplomatico.it +maremmanews.it + +oddslot.it.widget-banner. +supertennis.tv.widget-banner-container™ +agrigentonotizie.it +brindisireport.it +agrifoodtoday.it +arezzonotizie.it +avellinotoday.it +sportpiacenza.it +bolognatoday.it +bresciatoday.it +cataniatoday.it +firenzetoday.it +livornotoday.it +palermotoday.it +perugiatoday.it +ravennatoday.it +salernotoday.it +sondriotoday.it +trevisotoday.it +triesteprima.it +veneziatoday.it +vicenzatoday.it +anconatoday.it +casertanews.it +cesenatoday.it +chietitoday.it +foggiatoday.it +genovatoday.it +latinatoday.it +milanotoday.it +modenatoday.it +napolitoday.it +novaratoday.it +riminitoday.it +romagnaoggi.it +torinotoday.it +trentotoday.it + forlitoday.it + ilpiacenza.it + lecceprima.it + leccotoday.it + monzatoday.it + padovaoggi.it + parmatoday.it + udinetoday.it + veronasera.it + baritoday.it + ilpescara.it + pisatoday.it + romatoday.it + +quicomo.it + +today.it.widget-moovit/ +renewablematter.eu.widget-simple-banner, +ssmatelicacalcio.com.widget-sponsors: +siciliaunonews.com +iltecnoblog.com .widget.Image% + italiavela.it.widget.f300x524J +migliorecrema.com +caniegatti.info.widget_aawp_widget_bestseller/ +stampante-3d.net.widget_aawp_widget_boxS +ilgolfonline.it + minkiaroby.it + imgpress.it.widget_black_studio_tinymceM +grossetosport.com +trivenetogoal.it +scrivolibero.it .widget_block& + stilearte.it.widget_codewidget# + ecnews.it.widget_cta_bannerÙ% +#ilclandestinogiornale.italiasera.it +resetitaliablog.altervista.org +informazionecomunicazione.it +unviaggioinfiniteemozioni.it +ildiariometropolitano.it +ilgiornaledeiveronesi.it +cucinaresenzamenate.it +fantascientificast.com +corrieredelmolise.com +corrierequotidiano.it +ilprimatonazionale.it +italianiedimburgo.com +thailandiapertutti.it +tribunapoliticaweb.sm +immaginaviaggiare.it +italianotizie.online +mercatini-natale.com +sportando.basketball +stranieriinitalia.it +viaggioingermania.it +berlinomagazine.com +destinazioneusa.com +milanocittastato.it +momentidicalcio.com +sciscianonotizie.it +aroundtheworld.pro +carteprepagate.org +circuitoturismo.it +giustizianews24.it +ilpopolotortona.it +ioamolasicilia.com +tuttogossipnews.it +tvdigitaldivide.it +canalesassuolo.it +dayitalianews.com +ierioggidomani.it +ilcarmagnolese.it +ilsussidiario.net +mangiabevigodi.it +mondomobileweb.it +nonniavventura.it +pianetablunews.it +torremaggiore.com +tuttosuimotori.it +bollicinevip.com +floinviaggio.com +forestalinews.it +fortementein.com +ilnotiziario.net +laprimapagina.it +leggopassword.it +libringioco.blog +padelmagazine.it +putignanonews.it +sicilianews24.it +stadiotardini.it +trivenetogoal.it +corriereal.info +europacalcio.it +lameziaterme.it +laprevisione.it +scrivolibero.it +androidblog.it +assisisport.it +nonsolomac.com +tusciatimes.eu + expartibus.it + napolisera.it + nokioteca.net + padovagoal.it + umbria.webcam + dauniacom.it + motori360.it + nerdando.com + newsfood.com + newtuscia.it + oltrefano.it + radioalex.it + true-news.it + bznews24.it + domhouse.it + iocaccio.it + lamilano.it + radiomed.fm + startmag.it + tuttotek.it + +geekmag.it + gonews.it + ibizaa.it + +ifood.it.widget_custom_html2 + padovagoal.it.widget_cyclone-slider-widget$ + padovagoal.it.widget_execphp4 +informazionecomunicazione.it.widget_hu_video. + +wesud.it.widget_idemedia_banner_widget0 +riskcompliance.it.widget_itarget_banners + +notix.it .widget_mediaa +secolo-trentino.com +litaliano.live + telegolfo.com + +winemag.it.widget_media_galleryÄ +informazionecomunicazione.it +pornoamatorialeitaliano.it +ilgazzettinodisicilia.it +ufficistampanazionali.it +bambiniconlavaligia.com +corrispondenzaromana.it +lagazzettasiracusana.it +biella24.wordpress.com +nuotounostiledivita.it +ilnuovogiornaleweb.it +tribunapoliticaweb.sm +agenziaitalianews.it +benessereconomico.it +calabriamagnifica.it +coriglianocalabro.it +football-magazine.it +genovaquotidiana.com +naturalborngamers.it +amarantomagazine.it +castingeprovini.com +energiaincomune.com +esportsactivity.com +grossetonotizie.com +italiachecambia.org +lecronachelucane.it +meridiananotizie.it +milanocittastato.it +spiccandoilvolo.com +aroundtheworld.pro +citymilanonews.com +corrierepievese.it +dentrolanotizia.tv +ecodellalocride.it +fiorentinanews.com +ioamolasicilia.com +sassarinotizie.com +siciliaonpress.com +teleregionelive.it +terredicampania.it +tuttononprofit.com +veganiinviaggio.it +areamediapress.it +dayitalianews.com +funghimagazine.it +ierioggidomani.it +italiaonline.news +ladiscussione.com +lodiedintorni.com +napolivillage.com +nextstopreggio.it +onlinesiracusa.it +passionemaglie.it +sportcasertano.it +teleradio-news.it +torinomagazine.it +weekendpremium.it +casafacile24.com +ecodisicilia.com +esportsonline.it +ideeregaloper.it +irenedisumma.com +lanotiziaoggi.it +laprimapagina.it +natureatblog.com +positivitrip.com +salutemoderna.it +tecnogazzetta.it +telelazionord.it +teleoccidente.it +thedotcultura.it +agropolinews.it +calciofoggia.it +cinecorriere.it +ladriatico.info +monetizzando.it +portolivorno.it +sannicandro.org +sportpapertv.it +starwarsnews.it +techuniverse.it +teleambiente.it +telebrindisi.tv +tuttobasket.net +tuttolivorno.it +casanapoli.net +evangelici.net +foggiapost.com +giocopulito.it +giornalesm.com +ilponente.news +ilpontenews.it +irpinianews.it +laquilablog.it +magnifici7.com +nonsolomac.com +nursetimes.org +palermolive.it +pisainvideo.it +signorbet.news +sslaziofans.it + blograffo.net + calciogoal.it + cataniavip.it + chepreparo.it + garganofm.com + ilnautilus.it + padovagoal.it + paviaunotv.it + sicilia24h.it + siciliatv.org + stadionews.it + telegolfo.com + telestense.it + tmnotizie.com + tuttojuve.net + wallnews24.it + crotoneok.it + etvmarche.it + newsfood.com + radioluce.it + sibarinet.it + tgtourism.tv + vocetempo.it + alverde.net + gustoh24.it + metallus.it + moondo.info + nerdevil.it + ondanews.it + radiomed.fm + reporter.it + retesei.com + vuemmetv.it + +ceotech.it + +larampa.it + +mondo3.com + +telemia.it + +tgyou24.it + 24live.it + bsnews.it + laputa.it + ondatv.tv + trmweb.it + +mam-e.it + +notix.it + +stile.it +1web.tv +87tv.it.widget_media_imageŽ +teleradio-news.it +siciliaoggi.com +laquilablog.it + telestense.it + viaggioff.it + +larampa.it + +telemia.it.widget_media_videoP +vicenzareport.it +antennasud.com + nanotv.it.widget_metaslider_widgeta +buongiornosuedtirol.it +biancavillaoggi.it + novaravive.it.widget_random_banner_widgetD +yogajournal.it + toscana.live + agro24.it.widget_revslider% + +104news.it.widget_simpleimage' + olbianova.it.widget_sisw_widgetR +signoresidiventa.com +siciliaoggi.com +dozenblogs.com.widget_sow-image& + sabiniatv.it.widget_sow-sliderÅ +unviaggioinfiniteemozioni.it +corrieregiallorosso.com +giornaledicalabria.it +messinasportiva.it + emotionrit.it + +damasio.it + +novetv.com + ibizaa.it + lavoce.it.widget_sp_image/ + labusa.info.widget_supercarousel_widget½ +corrieregiallorosso.com +fishingboatmagazine.it +computer-acquisti.com +domanidoveandiamo.it +gliacchiappafilm.it +clientiesperti.it +grossetosport.com +laprimapagina.it +filmforlife.org +giornalesm.com +tusciatimes.eu + noinotizie.it + pisa24.info + +finaria.it + ilpost.it .widget_text0 +motoexcape.com.widget_w2dc_search_widget- +mondobarcamarket.it.widget_wpb_widget/ + +alqamah.it.widget_xyz_insert_php_widget  +vicenzanews.it +.wifiplaza/ + bresciasat.it.workspace__block--sponsor* +raccontivietati.com.wp-block-cover( + ondatv.tv.wp-block-embed-youtube, + newsmondo.it.wp-block-evolve-sponsor­Š +lagazzettaaugustana.it +giornalenisseno.com +areamediapress.it +nocerinalive.it + telegolfo.com + 24live.it.wp-block-image0 + telegolfo.com.wp-block-jetpack-slideshow/ +lacittanews.it.wp-block-stackable-image2 +massimoemanuelli.com +vaurosenesi.it.wpa8 + radiomarte.it + agro24.it.wpb_revslider_element% + orvietosi.it.wpb_single_image( +nuovabrianza.it.wpb_video_widget* + etvmarche.it.wpcp-carousel-section% +e-tv.it.wpcp-carousel-wrapper) +palermolive.it.wpls-logo-showcase# + +best5.it.wpmc-product-tableG +androidblog.it + agemobile.com + +best5.it.wpmc_inject_wrapper3 + +best5.it#.wpmoneyclick_template_product-card$ + siciliatv.org.wppopups-whole) +calciomercato.napoli.it +.wptb-cell- +radiomillennium.it.wrapper-banner-l-2 +oggi.it.wrapper-bottom1+ +centrometeoitaliano.it .wrapper-mgid+ +radiomillennium.it.wrapper-quadrati. +ilbacodaseta.org.wrapper-widget-imagen  + hwupgrade.it .wrapper-xyz + +iodonna.it .wrapperAdv# + ornews.it.youtube_adv_alert +rivistanatura.com.zcx! +rivistanatura.com.zcx-img + +weboggi.it.zen2 + infooggi.it.zero-margins.w-dyn-items.w-row + +3tre3.it .zona_publi" + canale58.com.zox-widget-ad' + acmilan.com[class^="Partners_"]A + +svapo.it1[data-blockid="plugin_12_sodPhpWidget_hbkztw3dh"]. +casertasette.com[href^="banners.php?"]8 +djmagitalia.com![href^="http://www.djpoint.net/"]D +tivustream.com.[href^="https://privadovpn.com/#a_aid="] > imgA +tivustream.com+[href^="https://zoogvpn.com/?a_aid="] > img1 +panoramadinovi.ita > .alignnone.size-fullC +ternieprovincia.com +narnionline.coma[class="banner_174"]C +ternieprovincia.com +narnionline.coma[class="banner_392"]@ +primocomunicazione.it +lavoripubblici.ita[data-banner]� +domanidoveandiamo.it +librierecensioni.com +differenzatra.it +tivustream.com + losport24.com + newtuscia.it + mio-ip.eua[href*="//amzn.to/"]E +bolognasportnews.it +kimchiebasilico.ita[href*="//bit.ly/"]Y +comprovendodischi.it +comprovendolibri.it +animeemanga.ita[href*="//goo.gl/"]Ž +comprovendodischi.it +immaginaviaggiare.it +videogiochi.com +tivustream.com + luxwatch.it&a[href*="//www.amazon."][href*="tag="]& + +cb01.archia[href*="/4k/film/"]A +paolociraci.com +paolociraci.ita[href*="/ad-click.php"]4 +ilquotidianodellazio.ita[href*="/ad/click/"]- + forumfree.ita[href*="/ad_click.php?"]5 +telecitynews24.it + +wesud.ita[href*="/ads/"]- +digital-news.ita[href*="/attivadazn"], +digital-news.ita[href*="/attivanow"]Y' +%migliorisitistreaming-hd.blogspot.com +pronosticideiguerrieri.ita[href*="/go/"]q +oltrepomantovanonews.it +altomantovanonews.it +mantovasport24.it + mantovauno.ita[href*="/linkout/"]0 +altadefinizione4k.tva[href*="/scar.php"]2 +filmaltadefinizione.mea[href*="/scarica-"]8 +filmstreaming.pagea[href*="/scaricare-film.php"]- +digital-news.ita[href*="/skynetflix"]< +altadefinizione4k.tv a[href*="/streaming-gratis.php"]@ +cartaricaricabile.net +borsainside.coma[href*="/vai/"]> + africaland.it)a[href="http://www.multicar4x4.it"] > img: + africaland.it%a[href="http://www.vale4x4.it"] > img: +mrpornogratis.it"a[href^="//plx.mrpornogratis.it/"]2 +archiportale.coma[href^="/click.asp?Url="], +amalficoast.ita[href^="/click.axd?"]/ +localidautore.ita[href^="/click2.axd?"]½& + codedaze.mea[href^="/go.php?"]2 +estrazionedellotto.ita[href^="/it/gioca/"]B +visitareromain3giorni.it"a[href^="http://www.booking.com/"]A +comprovendolibri.it&a[href^="https://affiliati.celai.it/"]3 +frontedelblog.ita[href^="https://amzn.to/"]7 +digital-news.it a[href^="https://bit.ly/"] > img? + losport24.com*a[href^="https://bookmakerstranieri.net/"]6 +settecalcio.it a[href^="https://casinohex.it/"]N +campaniameteo.it + +verona.net(a[href^="https://clk.tradedoubler.com/"]4 +stadiosport.ita[href^="https://crypto.com/"]; + teamworld.it'a[href^="https://disneyplus.bn5x.net/"]5 + tuttotek.it"a[href^="https://fujifilm-x.com/"]L +webradioitaliane.it1a[href^="https://inmystream.info/whmcs/aff.php?"]F +notiziegeopolitiche.net'a[href^="https://it.depositphotos.com"]@ +allmobileworld.it'a[href^="https://it.dhgate.com/"] > imgW +calcioefinanza.it +digital-news.it + gazzabet.newsa[href^="https://prf.hn/"]9 +toonitalia.xyz#a[href^="https://privatealps.net/"]B +sportnotizie24.com(a[href^="https://www.1betandgonow.com/"]F +tuttomercatoweb.com+a[href^="https://www.daily.it/dazn/?dazn="]< +lavocedelpopolo.it"a[href^="https://www.holyart.it/"]O +spaziogames.it9a[href^="https://www.instant-gaming.com/"][href*="?igr="]I +xtremehardware.com/a[href^="https://www.instant-gaming.com/?igr="]B +canicattiweb.com*a[href^="https://www.livetipsportal.com/"]] +ilcambiamento.it + botteega.it6a[href^="https://www.macrolibrarsi.it/"][href*="?pn="]7 + +occhi.it'a[href^="https://www.museibassano.it/"]5 + atalanta.it"a[href^="https://www.plus500.it/"]} +animeemanga.it +tivustream.com + comingsoon.it + newtuscia.it4a[href^="https://www.primevideo.com/"][href*="tag="]E +tuttoveneziasport.it)a[href^="https://www.sitiscommesse.com/"]0 +renewablematter.eua[href^="tracker.php"]4 +gnoccatravels.coma[onclick*="trackBanner('"]2 +marathonworld.ita[onclick^="BannerClick("]4 + juzaphoto.coma[onclick^="ajax_bannerclicks"]J +pressgiochi.it + foodohfood.it + solovela.neta[rel*="sponsored"]/ + italiasera.ita[rel="nofollow noopener"], +isoladiminorca.coma[rel="sponsored"]2 +direttafacile.ita[target="pubblicita.php"]* +lanuovacalabria.itapp-banner-popupm + +greenme.it[aside[style="margin: 8px auto; display: flex; justify-content: center; min-height: 251px;"] +italiafruit.netbannera +commentimemorabili.itDcenter[style="margin:10px auto;text-align:center;min-height:250px;"]@ +primapaginanews.it&di[style^="width:260px;height:153px;"]- +gnoccatravels.comdiv[class*="b-nner"]' + +insella.itdiv[class*="banner_"]< +ilgiornaleditalia.it div[class*="banner_article-dx-"]4 +ilgiornaleditalia.itdiv[class*="banner_dx-"]: +ilgiornaleditalia.itdiv[class*="banner_masthead_"]' + ekuonews.itdiv[class*="ekuon-"]2 +medicalexcellencetv.itdiv[class*="medic-"]3 +romaedintorninotizie.itdiv[class*="romae-"]) + tmnotizie.comdiv[class*="tmnot-"]+ +vitacasalese.itdiv[class*="vitac-"]) + zonalocale.itdiv[class*="zonal-"]B + subito.it1div[class^="AdDescription_card-block-container_"]; + subito.it*div[class^="AdInfo_useful-links-wrapper_"]O +corrieredellosport.it +tuttosport.com +auto.itdiv[class^="AdUnit_"]w +iltelegrafolivorno.it +ilrestodelcarlino.it +quotidiano.net + lanazione.it + ilgiorno.itdiv[class^="Ad_"]/ + subito.itdiv[class^="AdsGAMPlacement_"], + subito.itdiv[class^="AdvTopBanner_"]9 + +sslazio.it'div[class^="Footer_footerSponsorItem_"]5 +tuttoandroid.netdiv[class^="OfferteCarousel"]3 +luce.lanazione.itdiv[class^="Slots_brand_"], + subito.itdiv[class^="SmartAdvItem_"]& + 10cose.itdiv[class^="__lxG__"]x +iltelegrafolivorno.it +ilrestodelcarlino.it +quotidiano.net + lanazione.it + ilgiorno.itdiv[class^="ads_"]ë§ +quotidianodellumbria.it +umbriasettegiorni.it +alimentando.info +vitaincamper.it +vendingnews.it +wikihoreca.com + radioradio.itdiv[class^="angwp_"]8 +ideericette.it"div[class^="astra-advanced-hook-"]' +lavorincasa.itdiv[class^="bn-"]. +cilentochannel.comdiv[class^="cilen-"]. + subito.itdiv[class^="loanbox-module_"]& + +qdpnews.itdiv[class^="qdpne-"]8 +informazione.it + tvdream.netdiv[class^="r89-"]* + +alqamah.itdiv[class^="unit-zona-"]7 + subito.it&div[class^="vehicle-history-section_"]3 +lavorincasa.itdiv[class^="wrapper-banner-"]2 +unionesarda.itdiv[data-name^="Banner SEC"]1 +unionesarda.itdiv[data-name^="RCS FRAME"]3 +unionesarda.itdiv[data-name^="RCS_BOTTOM_"]2 +unionesarda.itdiv[data-name^="US_BANNER_"]< +unionesarda.it&div[data-name^="US_MEDIUM_RECTANGLE_"]5 +unionesarda.itdiv[data-name^="US_SKYBANNER_"]: + lacapitale.it%div[data-testid="slide-show-gallery"]  + rockol.itdiv[data-track]* +gnoccatravels.comdiv[id*="b-nner"] + romait.it div[id^="ad"]# + +seitv.itdiv[id^="admania_"]% +bellacanzone.itdiv[id^="adv"], + informare.itdiv[id^="advContainer_"]> + sportface.it + +104news.it +3go.itdiv[id^="advads-"]- +agricultura.itdiv[id^="agricultura-"]* +alessandria24.comdiv[id^="aless-"]& + friulioggi.itdiv[id^="altof-"]- +altomantovanonews.itdiv[id^="altom-"]' +aprilianews.itdiv[id^="april-"]% + arezzoweb.itdiv[id^="arezz-"]8 +assisisport.it + assisinews.itdiv[id^="assis-"]' +augustanews.itdiv[id^="augus-"]' +autobusweb.comdiv[id^="autob-"]% + avolanews.itdiv[id^="avola-"]( +bicidastrada.itdiv[id^="bicid-"]2 + +insella.it div[id^="block-banner-manzoni-"]/ +buongiornosuedtirol.itdiv[id^="buong-"]' +catanianews.itdiv[id^="catan-"]# + +citynow.itdiv[id^="cityn-"]) +cliccascienze.itdiv[id^="clicc-"]' +controradio.itdiv[id^="contr-"]T +corriereromagna.it +corrieretoscano.it +corriereal.infodiv[id^="corri-"]% + crotoneok.itdiv[id^="croto-"]$ + filmtv.itdiv[id^="datalit_"]' + alvolante.itdiv[id^="dfp-alv-"]* + +insella.itdiv[id^="dfp-ins-slot-"]/ + umbriatv.comdiv[id^="div-home-banner-"]$ + ekuonews.itdiv[id^="ekuon-"]- +eurofestivalnews.comdiv[id^="eurof-"]+ +assisieventi.itdiv[id^="evassisi-"]) +finanzareport.itdiv[id^="finan-"]# + +laviola.itdiv[id^="fiore-"]) +firstonline.infodiv[id^="first-"]' + fotonerd.itdiv[id^="fotonerd-"]' +galluraoggi.itdiv[id^="gallu-"], +ilgiornalediudine.comdiv[id^="gdu-"]' +giocopulito.itdiv[id^="gioco-"]. +giornaledelcilento.itdiv[id^="giorn-"]' +guidaviaggi.itdiv[id^="guida-"]) + mylondra.itdiv[id^="gyg-widget-"]+ +helpconsumatori.itdiv[id^="helpc-"]% + ibleinews.itdiv[id^="iblei-"]% + ideawebtv.itdiv[id^="ideaw-"]# + igizmo.itdiv[id^="igizmo-"]À. +ilgazzettinodigela.itdiv[id^="ilgaz-"]' +ilreventino.itdiv[id^="ilrev-"]! + +insic.itdiv[id^="insic-"]' +internapoli.itdiv[id^="inter-"]/ +lagenziadiviaggimag.itdiv[id^="lagen-"]$ + laluce.newsdiv[id^="laluc-"]* +leggilanotizia.itdiv[id^="leggi-"]) +leontinoinews.itdiv[id^="leont-"]$ + gardapost.itdiv[id^="ltco-"]& + mantovauno.itdiv[id^="manto-"]# + crotoneok.itdiv[id^="mdl-"]% + melarossa.itdiv[id^="melar-"]' +motoexcape.comdiv[id^="motoe-"]' +palermopost.itdiv[id^="mptha-"]3 + ebikecult.it + +mtbcult.itdiv[id^="mtbcu-"]9! +agenziagiornalisticaopinione.itdiv[id^="new-ad-"]$ + notonews.itdiv[id^="noton-"]0 +oltrepomantovanonews.itdiv[id^="oltre-"]$ + ondanews.itdiv[id^="ondan-"]' +oristanonoi.itdiv[id^="orist-"]' +pachinonews.itdiv[id^="pachi-"]% + paisemiu.comdiv[id^="paise-"]* +quizammissione.itdiv[id^="quiza-"]. +quotidianodiragusa.itdiv[id^="quoti-"]' +retegargano.itdiv[id^="reteg-"]# + radiofm1.itdiv[id^="rfm1-"]& + sanifutura.itdiv[id^="sanif-"]( +sarnonotizie.itdiv[id^="sarno-"]' +sassarioggi.itdiv[id^="sassa-"]& + siciliatv.orgdiv[id^="sicil-"]; +siracusanews.it +siracusaoggi.itdiv[id^="sirac-"]/ +oggicronaca.itdiv[id^="sponsorizzato-"], +sportnewstrapani.itdiv[id^="sport-"]; +sulpanaroexpo.net + sulpanaro.netdiv[id^="sulpa-"]. +tecnicadellascuola.itdiv[id^="tecni-"]& + telestense.itdiv[id^="teles-"]) +termolionline.itdiv[id^="termo-"]# + +tgcal24.itdiv[id^="tgcal-"]) +thewalkoffame.itdiv[id^="thewa-"]- +travelforbusiness.itdiv[id^="trave-"]. +tribunapoliticaweb.smdiv[id^="tribu-"]* +triesteallnews.itdiv[id^="tries-"]! + +trmtv.itdiv[id^="trmtv-"]7 +udineoggi.news + udinesetv.itdiv[id^="udine-"]( +umbriasocial.itdiv[id^="umbri-"]+ +unionemonregalese.itdiv[id^="ump-"]) +universofree.comdiv[id^="unive-"], +uominietrasporti.itdiv[id^="uomin-"]% + viaggioff.itdiv[id^="viagg-"]% + weareblog.itdiv[id^="weare-"]' +xiaomitoday.itdiv[id^="xiaom-"]T +lanuovagazzettadisaluzzo.it1div[onclick*="return x5engine.utils.imPopUpWin("]W +escort-advisor.com=div[onclick^="javascript:window.open('https://go.reebr.com/"]Y +escort-advisor.com?div[onclick^="javascript:window.open('https://go.xlivrdr.com/"]4 +differenzatra.itdiv[style*="height: 280px;"]/ + radiortm.itdiv[style*="height: 350px;"]5 +cruiselifestyle.itdiv[style*="height: 78px;"]5 +cruiselifestyle.itdiv[style*="height: 90px;"]0 +gdr-online.comdiv[style*="height:250px"]0 +gdr-online.comdiv[style*="height:280px"]. + we-news.comdiv[style*="height:280px;"]5 + ragusaoggi.it div[style*="min-height: 280px;"]3 +sportitalia.comdiv[style*="width: 1040px;"]2 +sportitalia.comdiv[style*="width: 160px;"]Þ'2 +sportitalia.comdiv[style*="width: 336px;"]2 +sportitalia.comdiv[style*="width: 468px;"]2 +sportitalia.comdiv[style*="width: 728px;"]C +ilprimatonazionale.it&div[style*="width:310px;height:260px"]¥ +leontinoinews.it +siracusanews.it +augustanews.it +catanianews.it + avolanews.it + ibleinews.it + notonews.it'div[style*="width:310px;height:270px;"]^ +manduriaoggi.itGdiv[style="background-color:#FFF; border:#FC0 1px solid; padding:10px"]; +ideericette.it%div[style="height: 330px!important;"]? + lacasadic.com + seried24.comdiv[style="height: 600px"]1 +notizieflash.netdiv[style="height:230px"]7 +risorsedidattiche.netdiv[style="height:250px;"]; + repubblica.it&div[style="height:300px; clear:both;"]: +corsedimoto.com +zon.itdiv[style="height:600px"]2 +passioneinter.comdiv[style="height:660px"]Z +live-sport-tv.itBdiv[style="margin-bottom:5px;width:300px;height:250px !important"]L +convertire-documenti.it-div[style="margin-top:10px;min-height:250px"]M +forum.tomshw.it6div[style="margin: 1rem 0; width:100%; display: flex"]ƒ + balarm.itñdiv[style="margin: 40px 0 !important; width: 630px !important; height:170px !important; background: #f3f3f3; padding: 0 15px 20px; text-align: center; font-size: 14px; color: #9b8b8c; font-family: 'Open Sans Condensed'; font-weight: 300px;"]2 + vastoweb.comdiv[style="min-height: 250px"]1 + +filmup.comdiv[style="min-height: 250px;"]? +spaziogames.it +cpop.itdiv[style="min-height: 280px"]/ + +cani.comdiv[style="min-height: 300px;"]1 + vastoweb.comdiv[style="min-height: 90px"]. + +tvzap.itdiv[style="min-height:115px;"]Y +passioneinter.com@div[style="min-height:300px; margin-top:1em; margin-bottom:1em"]H +secondamanoitalia.it,div[style="min-height:90px;min-width:940px"]r + epertutti.com]div[style="overflow:auto; width:100%; height:300px; box-sizing: border-box; display: block;"]s + epertutti.com^div[style="overflow:auto; width:480px; height:360px; box-sizing: border-box; display: block;"]f +calciofoggia1920.netJdiv[style="padding-right:16px; padding-top:5px; float:right; height:60px"]œ +firenzemeteo.netƒdiv[style="padding:10px;margin-bottom: 18px;color:#eaeaea;background-color:#494949;text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);"]¶ + lacasadic.com + seried24.com�div[style="position: sticky!important;top: 0px;width: 100%;text-align: center;border: 1px solid #efefef;padding: 22px 0;background: #f2f2f259;"]` +wiki.pokemoncentral.itBdiv[style="text-align: center; margin-bottom: 15px; height: 90px"]^ + ecoage.itMdiv[style="width:135px; float:right; padding:5px; background-color:#e4e4e4;"]Y +risvegliopopolare.it=div[style="width:320px !important;height: 480px !important;"]; + gta-expert.it&div[style="width:732px; height:105px"]X + adessoin.tvEdiv[style="width:970px; height:250px; margin:20px auto; float:left;"]S +thegamesmachine.it9div[style="width:970px;height:250px;margin: 0 auto 5px;"]> +torresette.news'div[style^="height: 250px !important;"]l +fritzbox-forum.comRdiv[style^="height: 90px; position:relative; max-height: 90px; min-width: 728px;"]+ + +latin.itdiv[style^="height:250px;"]3 +passioneinter.comdiv[style^="height:630px"]9 + +iltempo.it'div[style^="height:90px; width:728px;"]† +iltelegrafolivorno.it +ilrestodelcarlino.it +quotidiano.net + lanazione.it + ilgiorno.it div[style^="min-height: 250px;"]; +voglioviverecosi.comdiv[style^="min-height: 90px;"]H +tuttasalute.net +vitadamamma.comdiv[style^="min-height:250px"]6 +livornopress.itdiv[style^="min-height:300px;"][ +liberoquotidiano.it + +iltempo.it2div[style^="min-width: 300px; min-height: 250px;"]L +liberoquotidiano.it1div[style^="min-width: 728px; min-height: 90px;"][ +liberoquotidiano.it + +iltempo.it2div[style^="min-width: 970px; min-height: 250px;"]B + zazoom.it1div[style^="min-width: 970px; min-height: 90px;"]o + wallnews24.itZdiv[style^="position:fixed;top:0;bottom:0;left:0;right:0;z-index:0; background-image:url"]9 +tp24.it*div[style^="width: 300px; height: 250px;"]3 +pianetaempoli.itdiv[style^="width: 300px;"]. + radiortm.itdiv[style^="width: 350px;"]C +ilfogliodellarte.it(div[style^="width:250px; height:250px;"]< + hwupgrade.it(div[style^="width:300px; height:250px;"]A +cruiselifestyle.it'div[style^="width:300px;height:250px;"]A +trattoriusati.com(div[style^="width:336px; height:280px;"]+ + gonews.itdiv[style^="width:600px;"]< + earone.it+div[style^="width:968px;min-height:300px;"]2 +calcioline.comfigure[style="width:300px;"]¹ +positanonotizie.it +occhisusalerno.it +ravellonotizie.it +ilvescovado.it + amalfinews.it + cetaranews.it + ilportico.it1header > div > p > em > a[data-id][data-position]* +leggopassword.itimg[alt*="Banner"]) +powerhockey.infoimg[alt="Banner"] +ansa.itimg[alt="Cupra"]í/- +videomediterraneo.itimg[alt="DESPAR"]% +altissimoceto.it img[alt="ad"]/ + lamoneta.itimg[alt="advertisement_alt"]" + ondatv.tvimg[alt="banner"]$ + radiogold.itimg[alt^="adv-"]; +kustom-world.it +cruisinlife.itimg[alt^="banner"]* + +boatmag.itimg[class*="img-banner"]a +ternieprovincia.com +umbriamagazine.com +narnionline.comimg[class="block_banner_img"]H +tusciatimes.eu2img[data-eio-rwidth="800"][data-eio-rheight="250"]# + +outcast.itimg[height="100"]* +cronacaflegrea.itimg[height="120"]) +alimentando.infoimg[height="135"]W +notiziediprato.it + sienanews.it + canale12.it + +radio88.euimg[height="150"]' +teleischia.comimg[height="210"]� +ilfattodicalabria.it +turismovacanza.net +bimbonaturale.org +biancorossi.net +sportchianti.it + ilnautilus.itimg[height="250"]z +vercellinotizie.it +vocedimantova.it +ilcorriere.net + sienanews.it + +radio88.eu +ofcs.itimg[height="300"]# + +radio88.euimg[height="310"]= +paesesera.toscana.it + caprinews.itimg[height="500"]/ +ilgiornaledisalerno.itimg[height="520"]' +cinafoniaci.comimg[height="60"]" + lafune.euimg[height="600"]2 + fm-world.it + nerdface.itimg[height="90"]3 +affaritaliani.itimg[onload^="gtag('event'"]9 +tuttosporttaranto.comimg[style*="height: 400px;"]8 +tuttosporttaranto.comimg[style*="width: 400px;"]C +mondoprimavera.com)img[style="width: 200px; height: 400px;"]C +mondoprimavera.com)img[style="width: 300px; height: 250px;"]? +operaclick.com)img[style="width: 300px; height: 300px;"]; + reggiotv.it(img[style="width: 650px;height: 115px;"]? +sscalciobari.it(img[style="width:100%;margin-top:20px;"]9 +lagazzetta.info"img[style="width:300;height:250;"]K +lanuovagazzettadisaluzzo.it(img[style^="width: 234px; float: left;"]A +primapaginanews.it'img[style^="width:336px;height:136px;"]A +primapaginanews.it'img[style^="width:728px;height:210px;"]G +viaggiallafinedelmondo.it&img[style^="width:728px;height:90px;"]D +autoelettrica101.it)img[style^="width:900px; height: 180px;"]% + sienanews.itimg[width="1080"]B +destinioltreconfine.com +formula1news.itimg[width="120"]5 +specchiosesto.it + gratis.itimg[width="125"]( +sexycommunity.itimg[width="140"]… +chefperpassione.it +settimanasport.com +1stationradio.com + sienafree.it + tusciaweb.eu + tvadrano.comimg[width="150"]' +cinafoniaci.comimg[width="155"]3 + prewarcar.it + katablog.itimg[width="160"]4 +narnionline.comimg[width="174"][height="72"]‹ +risvegliopopolare.it +1stationradio.com +molisetabloid.it +artemagazine.it +cinafoniaci.com + tusciaweb.euimg[width="200"]( +museionline.infoimg[width="219"]( +museionline.infoimg[width="220"]* +informatissimo.netimg[width="225"]D +civatenews.com + radiogold.tv + +valnews.itimg[width="240"]• +ilcorrieredelgiorno.it +animalidacompagnia.it +brontolodicelasua.it +cartabiancanews.com +cronacaflegrea.it +direttasicilia.it +siciliareport.it +specchiosesto.it + ascolinews.it + radiogold.tv + toscanatv.it + ciclonet.it + livegp.itimg[width="250"]$ + pisanews.netimg[width="252"]$ + pisanews.netimg[width="254"]# + radiortm.itimg[width="256"]P +quotidianosanita.it +urbancycling.it +ilcorriere.netimg[width="260"]= +mercatini-natale.com + messinaweb.tvimg[width="270"]Š% +#ilclandestinogiornale.italiasera.it +ilgazzettinometropolitano.it +gazzettadelmediterraneo.it +notiziariofinanziario.com +ufficistampanazionali.it +ilgiornaledelticino.ch +ilgiornaledisalerno.it +napolicittasolidale.it +concorsi-letterari.it +gazzettinodelgolfo.it +radiocastelluccio.com +thailandiapertutti.it +veneziaorientale.news +domanidoveandiamo.it +ilgiornaleditalia.it +luxurypretaporter.it +viaggiperfamiglie.it +videomediterraneo.it +lanuovaprovincia.it +sentieriselvaggi.it +senzacolonnenews.it +carteprepagate.org +chefperpassione.it +informatissimo.net +messinamagazine.it +radiostudio2000.it +salernitananews.it +vercellinotizie.it +xtremehardware.com +alessandria24.com +altropensiero.net +blocchiautocad.it +cosenzachannel.it +ilcarmagnolese.it +ilpisasiamonoi.it +ilpuntonotizie.it +ladiscussione.com +lanuovariviera.it +latinacorriere.it +turistipercaso.it +valtrompianews.it +alimentando.info +altissimoceto.it +borderline24.com +campaniapress.it +dentrosalerno.it +imperiasport.net +mogliinmostra.it +nuovacosenza.com +pordenoneoggi.it +radiolaquila1.it +tvoggisalerno.it +vocedimantova.it +business24tv.it +ladriatico.info +lavorolazio.com +nuovabrianza.it +sardiniapost.it +sarnonotizie.it +scrivolibero.it +sportchianti.it +thrillercafe.it +ambientebio.it +clubdoria46.it +confinelive.it +guidaviaggi.it +ilcorriere.net +irnonotizie.it +lattemiele.com +letteraemme.it +liguriaoggi.it +melarumors.com +ragusanews.com + abruzzoweb.it + calabriatv.it + casertace.net + comunicalo.it + ilnautilus.it + imperoland.it + larionews.com + legavolley.it + londraweb.com + malpensa24.it + mantovauno.it + todinforma.it + calabria7.it + circusf1.com + iamnaples.it + ideefesta.it + macitynet.it + newtuscia.it + orvieto24.it + pugliain.net + sienanews.it + toscanatv.it + zerosette.it + eastwest.eu + ilmonito.it + justnerd.it + lapresse.it + radiortm.it + reporter.it + startmag.it + tgnewstv.it + +canale3.tv + +outcast.it + +tse-tse.it + 2anews.it + lafune.eu +1web.tvimg[width="300"]* +affaritaliani.itimg[width="300px"]) +nonsoloturisti.itimg[width="301"]' +radio5punto9.itimg[width="302"]' +radio5punto9.itimg[width="303"]; +mogliinmostra.it +radio5punto9.itimg[width="305"]$ + ideawebtv.itimg[width="310"]( +ilmetapontino.itimg[width="312"]9 +ilsalvagente.it +parmareport.itimg[width="320"]µ"I +umbriajournal.com +nuovabrianza.it + lavoce.itimg[width="324"]  +viaggiallafinedelmondo.it +bimbonaturale.org +notiziediprato.it +ragusanews.com +sportitalia.it + wechianti.com + tusciaweb.euimg[width="336"]% + laziopress.itimg[width="344"]# + art-news.itimg[width="345"]c +umbrianotizieweb.it +vestirsidicorsa.it +ragusanews.com + iamnaples.itimg[width="350"]3 + foggiagol.it + art-news.itimg[width="360"]C +lavocedeigiornalisti.com +sestonotizie.itimg[width="375"]/ +radiostereosantagata.itimg[width="386"]¹ +giornaledipuglia.com +luxurypretaporter.it +padelmagazine.it +spaziotennis.com +artemagazine.it +grandenapoli.it + radiortm.it + +canale3.tv +grp.itimg[width="400"]+ +senzacolonnenews.itimg[width="401"]& +marsicalive.itimg[width="420"]( +sexycommunity.itimg[width="450"]+ +giornalerossoblu.itimg[width="460"]* +italiaciclismo.netimg[width="466"]6 +sportitalia.it + roadnroll.itimg[width="468"]' +sarnonotizie.itimg[width="469"]$ + sienanews.itimg[width="475"]% + ilnautilus.itimg[width="479"]× +ilgiornaledisalerno.it +radiocastelluccio.com +paesesera.toscana.it +ilmiogiornale.net +letteraemme.it + casertace.net + glianni80.com + crotoneok.it + sibarinet.it + radiortm.itimg[width="500"]" + +canale3.tvimg[width="512"]$ + tusciaweb.euimg[width="520"]$ + sienanews.itimg[width="521"]) +agendapolitica.itimg[width="530"], +genovaquotidiana.comimg[width="543"]³ +ilgiornaledisalerno.it +ilportaledelcavallo.it +radiocastelluccio.com +ilfattodicalabria.it +videomediterraneo.it +artemagazine.it +nuovabrianza.it +radio5punto9.it +dazebaonews.it + abruzzoweb.it + ilmonito.it + radiortm.it + +inpiega.it + fisco7.it + fmtv.liveimg[width="600"]% + cataniavip.itimg[width="609"]$ + sienanews.itimg[width="625"]) +alessandria24.comimg[width="626"]( +scattidigusto.itimg[width="640"]& +tgfuneral24.itimg[width="680"]' +ilsalvagente.itimg[width="690"]; +ilprimatonazionale.itimg[width="693"][height="191"]F +calabrianews.it + sabiniatv.it + orawebtv.itimg[width="700"]B +ilcorrieredelgiorno.it +borderline24.comimg[width="720"]© +viaggiallafinedelmondo.it +ilgiornaledisalerno.it +sciscianonotizie.it +salernonotizie.net +agendapolitica.it +altissimoceto.it +ladriatico.info +bottadiculo.it +faretennis.com +guidaviaggi.it + glianni80.com + senzalinea.it + zerosette.it + agro24.itimg[width="728"], +brontolodicelasua.itimg[width="730"], +brontolodicelasua.itimg[width="735"]( +museionline.infoimg[width="744"], +brontolodicelasua.itimg[width="750"]% + messinaweb.tvimg[width="768"]. +ilgiornaledisalerno.itimg[width="794"]+ +sciscianonotizie.itimg[width="799"]B +ilgiornaledisalerno.it +padelmagazine.itimg[width="800"]% + laziopress.itimg[width="805"]& +lacittanews.itimg[width="900"]& +signorbet.newsimg[width="930"]% + innovami.newsimg[width="940"]H +scattidigusto.it + armiusate.it + zerosette.itimg[width="970"]' +saperesalute.itimg[width="980"]! +corriereelorino.itp > img’ + sportevai.it~p[style="margin-top: 25px; border: 1px solid #0D8600; padding: 10px; font-weight: bold; text-align: center; font-size: 12px;"]� + sportevai.itmp[style="margin-top: 30px; border: 1px solid #0D8600; padding: 10px; font-weight: bold; text-align: center;"]. +paganinotizie.it + agro24.it rs-slidesº +positanonotizie.it +occhisusalerno.it +ravellonotizie.it +ilvescovado.it + amalfinews.it + cetaranews.it + ilportico.it2section > div > p > em > a[data-id][data-position]0 +luce.lanazione.itspan[class^="Partner_"]/ +annunci.modellismo.ittable[width="300"]L +cellularitalia.com2table[width="300"] > tbody > tr > td[height="600"]‹ +archiportale.comstd[style="height:278px; background-color:#E8E8E6; cursor:pointer;position:relative;z-index:95;padding:40px 0 18px"]/ +elbanotizie.ittd[style="width: 160px;"]; + acmilan.com(ul[class*="TopHeader__SponsorsSection-"] + +gioco.it.advert( + +nelfaro.it.bdotcom_bc_mbe_banner + giochi.it .cpx-content! + robacinese.it .deal_daywoo“) +foodaffairs.it.footer-widget-area  + barbanera.it .l-subheader, +blastingnews.com.leaderboard-article) +italiangourmet.it.leaderboard-col1 +simonandthestars.it.leaderboard-container1 +fotografareindigitale.com.lepopup-element7 +fotografareindigitale.com.lepopup-popup-overlay) +calciodangolo.com.link-light-code$ +cosavederein1giorno.it.links& +infomotori.com.logo-topdealers' +magazinepragma.com .magaz-slider< +cycletteprezzi.it +pesipalestra.it.main-cta-banner + +hceppan.it .mainSponsor# +ebay.it.mfe-recos-container + forumfree.it.mgbo. +federscherma.it.module-bannerContainer) +badmintonitalia.it.module-partner! +fise.it.module-sponsor-HP( +fise.it.module-sponsor-container + +tiscali.it .mofrtsrc-c + +gioco.it.mpu- +passioneorologio.it.my_best-price-btn + donnaclick.it.myadv + +nabbi.it .nabbi-widget# +newsiciliacasa.it +.narrative# +scuolissima.com .nascondiads' + petpassion.tv.navbar-purina-red +goodtrekking.it.no-one) + newsonline.it.nol-sponsor-clusterª +nerazzurrisiamonoi.it +rossonerisiamonoi.it +atalantalive.it +magiconapoli.it +romanistaweb.it + gazzaviola.it + lazionews.eu + junews.it.nostro-banner + viaggi-usa.it .notabene$ + techzilla.it.offerta-img-box +machineseeker.it.ofni + +tiscali.it +.ofrtsrc-c, +architetturaecosostenibile.it.onetag +italiacashback.com.opt+ +autoscout24.it.osa-as24-placeholder( + milanocam.it.overcam_advertising' + parmakids.it.overheader-sidebar¨ +vacanzenelmediterraneo.com +isoladifuerteventura.com +isoladicretavacanze.com +isoladimaltavacanze.com +isoladirodivacanze.com +isoladiformentera.com +isoladilanzarote.com +isoladimaiorca.com +isoladiibiza.com +mollaretutto.com + listooo.com + tierra.it.partner-banner( +replytotem.com.partners-carousel# + infobuild.it.partnersection9 +coltivazionebiologica.it.penci-header-signup-form + pressmare.it.pm-adv( + pressmare.it.pm-adv-intermediate% + assopoker.com.poker-room-list- + sslazio.org.post-div-banner-sp-medium+ +insuranceup.it.powered_by_container+ + assopoker.com.prbox-table-container" + +pixeltv.it.primary-sidebar3 +viaggievacanze.com + ideegreen.it .promobox3 +playstationzone.it.psz_template_prices_comp# + kikapress.com.pub_container# +pornolatte.com .pub_h_250new + agoravox.it .publarge +giochigratis.net.publi + solitario.it.public1$ +prendiporno.tv.publis-bottom; +ssvbozenhandball.it .qodef-e-logo > img[height="80"]% +giardinaggio.it.reattiva_x_90, +passioneorologio.it.rehub_feat_block) + promoqui.it.retailer-app__MainAdv! + router-4g.it .review-links" + +newsnow.it.rs-banner-strip‘" +cliccascienze.it +.rtecenter, +matrimoniosolidale.it.scegli-bomb-dx + ad-italia.it .sectionbox+ +trovaprezzi.it.sell_on_ebay_wrapper + excite.it +.serp-item + aphorism.it.shop+ + +mitindo.it.sidebar-right-bottomleft- +oltrefreepress.com.singleBannerWidget + atvreport.it .skinlink + +tiscali.it.sky-n + +gioco.it .skyscraper  + unimondo.org .slide-image2 +asbiscegliecalcio.it + alpauno.com.slides  + +gas.social.socia-adlabel( +studiocataldi.it.sopraarticolo200 +radiodiffusionepistoia.com.spazio_banner0 +pallacanestrotrieste.it.sponsor-carousel) +classicipodcast.it.sponsor-single, +milanbergamoairport.it.sponsor-strip% +teramocalcio.it.sponsor_slide% + techgaming.it.sponsored-texts) +aquilabasket.it.sponsors-carousel( +sportclub-meran.it.sponsorslider + +hceppan.it +.sportnews + mostraip.com.spot1( + radiorcs.it.spotaltosottomenutre  + radiorcs.it .spotcentrato + ttgitalia.com +.spotlight +ebay.it .srp-banner + +leggo.it +.stickyAdv‡ +quotidianodipuglia.it +corriereadriatico.it +ilgazzettino.it +ilmessaggero.it + ilmattino.it + +leggo.it.strip-autopromoŽ +quotidianodipuglia.it +corriereadriatico.it +ilgazzettino.it +ilmessaggero.it + ilmattino.it + +leggo.it.strip-guidalloshopping  +noisiamofuturo.it.stripe; +ideeregaloperte.it + diconews.com.su-button-centerO +molecularlab.it8.table-riq > a[href^="http://tracker.tradedoubler.com/"]" + +avtrend.it.tcb-button-link1 +amoreaquattrozampe.it.td-footer-containerb +ilgiornaledeltermoidraulico.it +pescaracalcio.com +ternanacalcio.com.td-footer-wrapper) +ideeviaggio.it.td-ss-main-sidebar. +3dprintingcreative.it.td_block_sponsor# +guidalloshopping.com.td_btn3 +ilparmense.net.td_uid_18_606dd7c7652fd_rand9 +cronacadelveneto.com.td_uid_25_6159d23837660_rand2 +ilparmense.net.td_uid_2_606dd7c74fb8e_rand + volleynews.it.tdi_127 + volleynews.it.tdi_131& +computermagazine.it .tdi_15_a67 + runlovers.it.tdi_240 + runlovers.it.tdi_301 + runlovers.it.tdi_357 +dituttounpop.it.tdi_45 + vivitelese.it.tdi_61 + vivitelese.it.tdi_71 + vivitelese.it.tdi_72  +periodicodaily.com.tdi_9& + +telesud.it.teles-header-banner4 +tempostretto.it.testo > .hidden-sm.hidden-xsT +ilfattoalimentare.it +pianetadonne.blog + attualita.it.theiaStickySidebar% + +tiscali.it.tiscali-shp-dayblk( + +tiscali.it.tiscali-shp-dayblk-v3% + +tiscali.it.tiscali-shp-dayoff) +irlandaonline.com.togglecontainer$ + acspezia.com.top-bar-sponsor" + nicktv.it.top-featured-mpuþ1 +bresciacalciofemminile.it.top-sponsor-new  + robacinese.it .top_offers + travel365.it .toparticle  +millecanali.it +.topheader! + viviwebtv.it .topstriplive% + tvsportiva.it.tvg-manager-box. +viaggioincoppia.com.uagb-buttons__wrap0 +radiotorremacauda.it.ubm_rotation_widget2 +colonnesonore.net.uk-panel.uk-panel-headerK +cartedicredito24.it0.uk-section-default.uk-section.uk-section-xsmall +alfemminile.com.unfyas1 +fiammeororugby.it.vc_custom_1442391520819. +vidanetwork.it.vc_custom_1530168853732+ + pangea.news.vc_custom_16214929126852 +londononeradio.com.vc_custom_1625055430306! +ebay.it.vi-lb-placeholder$ +securindex.com.view-trackingi +austria-facile.com + statiuniti.cc + giappone.cc + ungheria.tv + +irlanda.cc + svezia.cc.voli* +secerchicasa.it.weblink_items.grid, +spettegolando.it.wf-widget-container + +wired.it.wia' +montecarloliving.com .widget-asd; +yoga-magazine.it#.widget_alobaidirandombannerswidget. +scambiaricette.it.widget_boodo_wp_300pI + quifinanza.it + siviaggia.it + +dilei.it.widget_promo_box_widget& +viaggiadipiu.it.widget_qjpbhmf! + +boatmag.it.widget_sponsor4 +radiodigione.net.widget_ubm-banners-rotation6 + apinsieme.it".widget_wooslider_slideshow_slides4 +fitnesspalestra.org.wp-block-product-on-sale + +golfpiu.it .wpmc_display5 + +golfpiu.it#.wpmoneyclick-product-box-multiprov4 +tuttoapp-android.com.wpmoneyclick_amazon_box9 + +golfpiu.it'.wpmoneyclick_template_amz_simil_footer@ +tuttoapp-android.com$.wpmoneyclick_template_simple_buttonJ +razzedicani.net + +golfpiu.it%.wpmoneyclick_template_single-product' +allertaprivacy.it.wpsm_promobox + autobelle.it.xdad+ +giochimahjong.it.ympb_target_banner + consigli.it.zio_ +ilmigliore.org.zioboxã +windowsblogitalia.com +footballscouting.it +unideanellemani.it +unquizalgiorno.com +futurelements.it + murkymask.com + imlestar.com + bollablu.it + +jguana.com + +mr-loto.it + +okpedia.ita[href*="//amzn.to/"]: +veronanews.net + temponews.ita[href*="//bit.ly/"]Ú +miglioriofferteweb.com +termometropolitico.it +aforismicitazioni.it +italianiinguerra.com +arredoingiardino.it +bellezzasalute.it +cibocanigatti.it +cliccascienze.it +giardinaggio.net +giardinaggio.org +robotincucina.it +vivailfitness.it +giardinaggio.it +lasiciliaweb.it +videogiochi.com +beppegrillo.it +cdclassico.com +serialclick.it + 2backpack.it + rifaidate.it + consigli.it +bora.la&a[href*="//www.amazon."][href*="tag="]< +italianoxxx.com%a[href^="http://www.orgasmi899.com/"]4 +blog.libero.ita[href^="https://nplink.net/"]� +terrazzofacile.it +beautytester.it +digital-news.it +partiteoggi.net +petrolioggi.it + neomag.it +msn.com!a[href^="https://www.awin1.com/"]š +viaggi-lowcost.info +borghistorici.it +ioviaggiblog.it +tuttobaviera.it +ideeviaggio.it + maremma.name#a[href^="https://www.booking.com/"]S + 2backpack.it?a[href^="https://www.worldnomads.com/Turnstile/AffiliateLink?"]E + 2backpack.it1a[href^="https://www.worldnomads.it/?affiliate="]9 +autoscout24.it#div[class*="FinancingAndInsurance"]* + +tiscali.itdiv[class*="shp-dayblk"]3 +autoscout24.itdiv[class^="AdContentBanner"]1 + homegate.chdiv[class^="AdSlotContainer_"]) +autoscout24.itdiv[class^="AdTop"]" +ebay.itdiv[id^="ad_html_"]; + aleteia.org(div[id^="article-desk-after-header-ad_"]< + aleteia.org)div[id^="article-desk-before-footer-ad_"]( +assocarenews.itdiv[id^="assoc-"]# + +boatmag.itdiv[id^="boatm-"]" + +lojonio.itdiv[id^="bsac-"]& + 1900cucina.itdiv[id^="cucin-"], +zero.eudiv[id^="ez_sponsor_widget-"]0 +autoscout24.itdiv[id^="finance-section"]Ÿ. +Zÿï08@RJmediaworld.it#?#[data-test="mms-router-link"]:-abp-contains(Sponsorizzati) +aÿï08@RQadnkronos.com#?#.cont-ev-list:-abp-has(.title-channel:-abp-contains(in Evidenza)) +eÿï08@RUagi.it#?#.agi-article-card:-abp-has(.article-category:-abp-contains(BRANDED CONTENT)) +oÿï08@R_cronacadiverona.com#?#.td_block_template_1:-abp-has(.td-block-title-wrap:-abp-contains(Banner)) +Wÿï08@RGforum-wranglermania.com#?#.box:has(.box-head:-abp-contains(WM Sponsor)) +_ÿï08@ROguadagna.net#?#center:-abp-has(a:-abp-contains(Esponi i tuoi banner sul forum)) +]ÿï08@RMilpiccolo.net#?#.article:has(div.categories:-abp-contains(pubbliredazionale)) +rÿï08@Rbilprogettistaindustriale.it#?#.td_block_wrap:-abp-has(span:-abp-contains(Contenuti sponsorizzati)) +]ÿï08@RMimpiego24.it#?#.boxAnnunci:-abp-has(h4:-abp-contains(Annuncio pubblicitario)) +–ÿï08@R…investire.biz#?#.container-fluid.py-3.bg-white-color.pl-5.pr-5:-abp-has(.text-black.weight-400.mb-0:-abp-contains(I Nostri Partners)) +aÿï08@RQlalaziosiamonoi.it#?#.testo > div:-abp-has(b:-abp-contains(PARTNERS COMMERCIALI)) +vÿï08@Rflaleggepertutti.it#?#.cl-amp-important-information:-abp-has(div:-abp-contains(Annuncio pubblicitario)) +eÿï08@RUlaleggepertutti.it#?#.custom-html:-abp-has(div:-abp-contains(Annuncio pubblicitario)) +dÿï08@RTlogisticanews.it#?#.td_block_wrap:-abp-has(a:-abp-contains(Contenuti sponsorizzati)) +lÿï08@R\lospiffero.com#?#.article-blog-default:-abp-has(span:-abp-contains(CONTENUTO SPONSORIZZATO)) +‰ÿï08@Rymediamarkt.ch,mediaworld.it#?#li[data-index-number]:-abp-has([data-test="mms-product-card"]:-abp-contains(Sponsorizzati)) +bÿï08@RRpaginegialle.it#?#.search-itm:-abp-has(.search-itm__label:-abp-contains(annuncio)) +pÿï08@R`pharmacyscanner.it#?#.similar-post-holder:-abp-has(.categoria:-abp-contains(Post sponsorizzato)), +nationalgeographic.itdiv[id^="gpt-"]# + +grpnews.itdiv[id^="grpne-"]. +ildentistamoderno.comdiv[id^="ilden-"]. +ilgallettomugello.comdiv[id^="ilgal-"]' +ilparmense.netdiv[id^="ilpar-"]+ +italianotizie24.itdiv[id^="itali-"]+ +letestedicalcio.itdiv[id^="letes-"]S + plcforum.it@div[style="align:center; width:100%; clear:both; height:270px;"]Á + lasiritide.it«div[style="background-color: #f0fff0; width: 310px; height:710px; overflow: auto; text-align: justify; font-family:arial,sans-serif; color:#000; border-top-color:inherit"]� + +livigno.cx{div[style="background-color:#FFFF00; padding:5px; border:thin; border-color:#0000FF; border-style:solid; margin-top:10px;"]p + chicucina.it\div[style="background-color:#FFFFFF; width:310px; height:162px; padding: 12px 0px 0px 2px;"]b +liberinforma.comJdiv[style="display: block; margin: 10px; padding: 10px; overflow: hidden"]4 +consigli-regali.itdiv[style="height: 90px;"]N +finalsayan.com8div[style="margin: 0 auto; width: 468px; height: 60px;"]Ë +quizzonline.it´div[style="margin: 1em; max-width: 366px; height: auto; border: 1px solid grey; padding: 25px; font-size: 16px; line-height: 1.4em; font-family: Verdana; background-color: white;"]Š +psicocultura.itsdiv[style="max-width:290px;text-align:center;border:2px solid orangered;padding:12px 18px;box-shadow:0px 0px 1px;"]= + siciliafan.it(div[style="min-height: 250px!important"]G +lasiciliaweb.it0div[style="min-width: 728px; min-height: 90px;"]H +giornalemotori.it/div[style="min-width:310px;min-height: 280px;"]R +studiocataldi.it:div[style="width: 300px; height: 250px;margin-bottom:8px"]K + albanesi.it8div[style="width: 970px; height: 250px; margin: 0 auto"]� +immoscout24.chwdiv[style="width: auto; height: auto; min-height: 250px; display: flex; justify-content: center; align-items: center;"]~ +immoscout24.chhdiv[style="width: auto; height: auto; min-height: 250px; justify-content: center; align-items: center;"]? +notizieweblive.it&div[style="width:280px;height:260px;"]7 + +megalab.it%div[style="width:300px;height:250px"]W +paginainizio.com?div[style="width:300px;height:600px;margin:25px 27px 9px 8px;"]Ê +ragionierieprevidenza.it +radiogammastereo.it +cybersecitalia.it +terrazzofacile.it +conoscimilano.it +sportavellino.it +senzabarcode.it + ecoseven.netimg[width="300"][height="250"]2 + tusciaweb.itimg[width="520"][height="100"]j + datameteo.comUtd[style^="border-top-style: solid; border-top-color:#d3d3d3; border-top-width: 1px"]P + investire.biz;.card.shadowLink:has(#ContentPlaceHolder1_rptAzzMain_btn_0)R + monetaweb.it>.content-row.wrapper.border--primary:has(.wp-block-adv-banner)< + +money.it,.flex.flex-col.space-y-3.relative:has(.mr-2)@ + orvietosi.it,.jeg_slide_item:has(.category-sponsorizzate)N +sportmediaset.mediaset.it-.lancio-adv:has(span.contenuto_sponsorizzato)P + forbes.it?.post.type-post.status-publish.format-standard:has(.brandvoice)G + +douglas.it5.product-grid-column:has(.product-tile__sponsored-it)E +leroymerlin.it/.product-thumbnail:has(.o-thumbnail__sponsored)0 +cruiselifestyle.it.rowthumb:has(a[href])T + italpress.com?.td-block-row:has(a[href^="https://group.intesasanpaolo.com/"])X +ledicoladelsud.it?.td_block_inner.td-mc1-wrap:has(a[href*="/pubbliredazionale/"])M +01smartlife.it + 01health.it + +01net.it.td_block_wrap:has(.sponsor)W +sportando.basketball;.widget.widget_block:has(a[href^="https://betsquare.com/"])H +freshpointmagazine.it+.wpb_wrapper > .td_block_wrap:has(.sponsor)l + mediamarkt.ch + mediaworld.itF[data-test="mms-product-card"]:has(div[data-test="mms-plp-sponsored"])> +pharmacyscanner.it$article:has(.featured + .spons-post)V +liberoquotidiano.it;div[style="min-height: 885px;"]:has(.advertisement-wrapper)õ4 +fÿï08@RVradioluna.it#?#.feat-widget-wrap:-abp-has(div:-abp-contains(INFORMAZIONE REDAZIONALE)) +mÿï08@R]repubblica.it#?#.block.is-postit:has(.block__overtitle:-abp-contains(Contenuti promozionali)) +[ÿï08@RKtechnofashion.it#?#.td_block_wrap:-abp-has(span:-abp-contains(Advertorial)) +vÿï08@Rftgcom24.mediaset.it#?#div[data-testid="section"]:-abp-has(span:-abp-contains(Contenuto sponsorizzato)) +Oÿï08@R?tuttoandroid.net#?#.card.dark:-abp-has(span:-abp-contains(Adv)) +5* +tio.ch08@Radbreak.ch/js/ext/adbreak.js? +½* +messaggeroveneto.it* +tribunatreviso.it* +mattinopadova.it* +corrierealpi.it* +nuovavenezia.it* + ilnordest.it* + ilpiccolo.it08@R)ads.talkscreativity.com/assets/publisher/ +P * + ilquaderno.it* + automoto.it* +moto.it08@Rads.viralize.tv/player/ +I* + ilquaderno.it* + automoto.it* +moto.it08@Rads.viralize.tv^ +xÿï* +radiomontecarlo.net* +virginradio.it* +105.net* +r101.it08@R)adswizz.com/adswizz/js/SynchroClient2.js? +ÿï* +radiomontecarlo.net* +virginradio.it* +105.net* +r101.it08@R0adv.mediamond.it/hp_sponsor/utility_mediamond.js +€ÿï* +radiomontecarlo.net* +virginradio.it* +105.net* +r101.it08@R1adv.mediamond.it/hpsponsor/*/tag_adv_mediamond.js +Òÿï* +notiziecalciomercato.eu* +corrieredellosport.it* +calcionapoli1926.it* +derbyderbyderby.it* +tuttobolognaweb.it* +fantamagazine.com* +formulapassion.it* +video.gazzetta.it* +itasportpress.it* +cittaceleste.it* +mondoudinese.it* +numericalcio.it* +pianetamilan.it* +fcinter1908.it* +forzaroma.info* +ilmilanista.it* +ilposticipo.it* +padovasport.tv* +tuttosport.com* + gazzabet.news* + hellas1903.it* + violanews.com* + toronews.net* + juvenews.eu* + mediagol.it* + +golssip.it* + +ilmeteo.it* +105.net* +auto.it* +r101.it08@R"amazon-adsystem.com/aax2/apstag.js +Zÿï* + adnkronos.com08@R9assets.evolutionadv.it/adnkronos_com/adnkronos_com.new.js +Nÿï* + adnkronos.com08@R-assets.evolutionadv.it/adnkronos_com/video.js +?* + adnkronos.com08@R assets.evolutionadv.it/optiload/ +Nÿï* + adnkronos.com08@R-assets.evolutionadv.it/prebid/*/prebid.min.js +%* +tio.ch08@R b.adbreak.ch^ +Hÿï08@R8buonenotiziebologna.it/images/banners/logos/bnb/logo.png +Jÿï* + adnkronos.com08@R)cdnadn.evolutionadv.it/Assets/Video/*.mp4 +2ÿï08@R"centrosangiorgio.com^*_pubblicita. +2ÿï08@R"centrosangiorgio.com^*_pubblicita/ +2ÿï08@R"centrosangiorgio.com^*_pubblicita_ +…* +notiziecalciomercato.eu* +calcionapoli1926.it* +derbyderbyderby.it* +tuttobolognaweb.it* +fantamagazine.com* +video.gazzetta.it* +itasportpress.it* +cittaceleste.it* +mondoudinese.it* +numericalcio.it* +pianetamilan.it* +fcinter1908.it* +forzaroma.info* +ilmilanista.it* +ilposticipo.it* +padovasport.tv* + gazzabet.news* + hellas1903.it* + violanews.com* + toronews.net* + juvenews.eu* + mediagol.it* + +golssip.it08@RFcomponents2.rcsobjects.it/rcs_adv/v1/distro/dfp/common/prebid7.33.0.js +› * +gianlucadimarzio.com* +tuttoeuropei.com* +fantacalcio.it* + circusf1.com* + +ilmeteo.it08@R1fluid.4strokemedia.com/www/delivery/asyncspc.php? +c* +corrieredellosport.it* +tuttosport.com* +auto.it08@Rg.doubleclick.net/tag/js/gpt.js +#€08@Rgay.it/adv/empty.mp4 +Q* +consiglibenessere.org08@R*go.ezodn.com/tardisrocinante/lazy_load.js? +·ÿï* +highlights.legaseriea.it* +notiziecalciomercato.eu* +radio24.ilsole24ore.com* +gianlucadimarzio.com* +calcionapoli1926.it* +highlights.legab.it* +derbyderbyderby.it* +tuttobolognaweb.it* +fantamagazine.com* +formulapassion.it* +mistergadget.tech* +video.corriere.it* +video.gazzetta.it* +itasportpress.it* +tuttoeuropei.com* +cittaceleste.it* +mondoudinese.it* +numericalcio.it* +pianetamilan.it* +fantacalcio.it* +fcinter1908.it* +forzaroma.info* +ilmilanista.it* +ilposticipo.it* +padovasport.tv* +rdssocialtv.it* + gazzabet.news* + hellas1903.it* + violanews.com* + circusf1.com* + toronews.net* + vrsicilia.it* + juvenews.eu* + mediagol.it* + +golssip.it* + +ilmeteo.it* + +iodonna.it* +oggi.it* +agi.it* +la7.it* +qds.it* +tio.ch08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +q* + ilquaderno.it* + automoto.it* +moto.it08@R8monetize-static.viralize.tv/viralize_player_content.min. +9* + adnkronos.com08@Rplayer.aniview.com/script/ +:* + adnkronos.com08@Rplayer.avplayer.com/script/ +g * + telefriuli.it08@RHquery.yahooapis.com/v1/public/yql?*/pubads.g.doubleclick.net/gampad/ads? +Kÿï* + +ilmeteo.it08@R-repstatic.it/cless/common/adv/prebid6.28.0.js +9* +tio.ch08@R!tdn.da-services.ch/current/tio.js ++„08@Rvideo.comingsoon.it/Adv/Box/ +X08@RJd11otsap2ziep3.cloudfront.net/resources/videojs-ads/videojs-contrib-ads.js +Y* +d11otsap2ziep3.cloudfront.net08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +G* +spaghetti-interactive.it08@Rads.lfstmedia.com/getad?site= +7 * +quotidiano.net08@Rads.viralize.tv/player/ +g* +corrieredellosport.it* +tuttosport.com08@R.adsafeprotected.com/vans-adapter-google-ima.js +Q* + +gioco.it08@R7adserver.adtech.de/addyn/3.0/1183/3769607/0/170/ADTECH; +#08@Ransa.it^*/ad-gallery/ +9ÿï08@R)antonioranesi.it/cache/Lavori/Pubblicita/ +0 08@R"api.everli.com/sm/api/*&adgroupid= +`ÿï* + comingsoon.it08@R?assets.evolutionadv.it/comingsoon_it/comingsoon_it-fresh.new.js +Dÿï* + +money.it08@R(assets.evolutionadv.it/quantcast-fix.css +^ÿï* + comingsoon.it* + +money.it08@R1assets.evolutionadv.it/violations/*.violations.js +?ÿï* + +money.it08@R#assets.evolutionadv.it^*/gpt.min.js +Uÿï* + comingsoon.it* + +money.it08@R(assets.evolutionadv.it^*/optiload.min.js +Sÿï* + comingsoon.it* + +money.it08@R&assets.evolutionadv.it^*/prebid.min.js +Jÿï08@R:carloneworld.it^*/tastixhumpp_b12_Pubblicita_Taroccate.png +@ÿï08@R0carrozzeriabertazzoni.it/immagini/PUBBLICITA.gif +4ÿï08@R$carrozzeriabertazzoni.it/pubblicita/ + ÿï08@Rcheapnet.it/adv/ +gÿï* + comingsoon.it08@RFconfiant-integrations.global.ssl.fastly.net/*/gpt_and_prebid/config.js +Uÿï* + adnkronos.com08@R4confiant-integrations.net/*/gpt_and_prebid/config.js +008@R"dincontri.com/ads/galleries/crops/ +Y* +corrieredellosport.it* +tuttosport.com08@R doubleclick.net/gpt/pubads_impl_ +3ÿï08@R#foolbite.com/foolbite/*_pubblicita_ +/08@R!forebase.com/plugin/*/images/ads/ ++€08@Rforebase.com/plugin/ads.htm? +8€* +sedo.ch* +sedo.it08@Rgoogle.com/adsense/ +:* + +tutti.ch08@R google.com/adsense/search/ads.jsç +�ÿï* +video.espresso.repubblica.it* +video.lanuovasardegna.it* +video.rep.repubblica.it* +corrieredellosport.it* +video.ilsecoloxix.it* +video.repubblica.it* +guerinsportivo.it* +huffingtonpost.it* +video.lastampa.it* +velvetgossip.it* +video.deejay.it* +livesicilia.it* +movieplayer.it* +multiplayer.it* +radioitalia.it* +tuttosport.com* +youreporter.it* + liveksoft.tv* + 3bmeteo.com* + +capital.it* + inmoto.it* + vvvvid.it* +auto.it* +m2o.it* +rtl.it08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +Uÿï* + funnygames.it* + +gioco.it08@R(improvedigital.com/pbw/headerlift.min.js +108@R#labs.ebuzzing.it/blogs/top/getrank? +Aÿï08@R1labs.ebuzzing.it/shared/images/wikiothis/buttons/ +5 08@R'mail1.libero.it/appsuite/api/apps/load/ +,ÿï08@Rmisterdomain.eu/affiliation/ +v08@Rhmm-one.tv/wp-content/uploads/2021/03/Social-Media-e-Social-Media-Advertising_-i-cavalli-vincenti-del.jpg +R* +multiplayer.it08@R2multiplayer.net-cdn.it/thumbs/images/*/pubblicita- +/ÿï08@Ronline-retail.unicredit.it/adv/ +e08@RWpropathos.com/wp-content/uploads/2020/11/cropped-propathos-certified-google-adwords.png +.€* + +sisal.it08@Rstats.betradar.com^ +2ÿï08@R"sun.novara.it/image/pubblicita.jpg +q* +radiomontecarlo.net* +virginradio.it* +105.net* +r101.it08@R$synchrobox.adswizz.com/register2.php +<€* +mailweb.virgilio.it08@Rvirgilio.it^*?advTile= +,08@Rvobis.it/ZeusInc/AdFarm/Image/ +*ÿí08@Ryouston.agency/google-ads/ +008@R"zincontri.com/ads/galleries/crops/ +-ÿï08@Radmin.ammadv.it/pop-under.it/ +5ÿï08@R%oggiroma.it/public/news_foto/300x250_ +5ÿï08@R%zeusnews.it/thumbs/1/300x250/300x250- \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-NL b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-NL new file mode 100644 index 0000000..6f0536f --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-NL @@ -0,0 +1,2418 @@ +¨ +!ÿï08@R-reclameplaatjes/ +ÿï08@R/adbron. +ÿï08@R/adtwee/ + ÿï08@R/adv_tekstlinks. +ÿï08@R/adverteerders/ +$ÿï08@R/advertentie-banner- +ƒÿï* +anzeigen-aufgabe-alpha.de* +anzeigen-aufgabe-beta.de* +anzeigen-aufgabe-test.de* +rd.nl08@R /advertentie. +ƒÿï* +anzeigen-aufgabe-alpha.de* +anzeigen-aufgabe-beta.de* +anzeigen-aufgabe-test.de* +rd.nl08@R /advertentie/ +ÿï08@R/advertentie1. +ÿï08@R/advertentie2/ +"ÿï08@R/advertentie_head. +)ÿï08@R/advertentieblokje120x20. +)ÿï08@R/advertentieblokje300x20. +ÿï08@R/advertenties. +ÿï08@R/advertenties/ +ÿï08@R/bannerlookup. +ÿï08@R/big_reclames/ +:ÿï08@R*/bolcom-partnerprogramma-wordpress-plugin/ +ÿï08@R +/img/recl/ +ÿï08@R/mediahuis-ads/ +ÿï08@R /nmc/adv/ +ÿï08@R/pebble-adhese. +%ÿï08@R/prikbordAdvertentie_ +ÿï08@R/reclame-extra. + ÿï08@R/reclame-nieuws. +ÿï08@R +/reclame2. + ÿï08@R/reclamebanners/ + ÿï08@R/small_reclames/ +#ÿï08@R/tekst_advertentie_ + ÿï08@R/topadvertentie. +ÿï08@R ://promotie. +$ÿï08@R_advertentie300x250_ +,ÿï08@R_advertentieleaderboardhome. +ÿï08@R2k19.nl^ +ÿï08@Radrequest.net^ +ÿï08@R adshim.com^ +ÿï08@R +adswag.nl^ +ÿï08@R affilaxy.com^ +&ÿï08@Raffiliatepartners.com^ +&ÿï08@Raffiliateprogramma.eu^ +!ÿï08@Rbanner-online.nl^ +$ÿï08@Rbelieve-the-hype.be^ +ÿï08@R +botndm.nl^ + ÿï08@Rcashpartners.eu^ +ÿï08@Rcrnsgngrpj.nl^ +ÿï08@Rdntblckmpls.nl^ +ÿï08@Rds1.nl^ +ÿï08@R dt51.net^ +ÿï08@R dt71.net^ +"ÿï08@Rgratis-neuken.com^ +ÿï08@R mt67.net^ +ÿï08@R +nojazz.eu^ +#ÿï08@Rnonstoppartner.net^ +"ÿï08@Ronline-banners.nl^ +&ÿï08@Roptoutadvertising.com^ +ÿï08@R publize.net^ +!ÿï08@Rsponsorkliks.com^ + ÿï08@Rstatic-dscn.net^ +!ÿï08@Rtools-affil2.com^ + ÿï08@Rtools.islive.nl^ +ÿï08@R travelads.be^ +ÿï08@Rtrickyrock.com^ +ÿï08@Rviadata.store^ +ÿï08@R vpscash.nl^¤ +ÿï08@R xpartners.nl^ +/ * +start-player.npo.nl08@R +.nl/adurl/ +ÿï08@Radcdn.ster.nl^ +"ÿï08@Rads.nextday.media^ +/ÿï08@Radvertising-cdn.dpgmedia.cloud^ +6ÿï08@R&advertising-module.api.dpgmedia.cloud^ +(ÿï08@Rbannersimages.s-bol.com^ +,ÿï08@Rbnpparibasmarkets.nl/widget/ +*ÿï08@Rbol.com/nl/upload/banners/ +3ÿï08@R#bol.com/nl/upload/partnerprogramma/ +Hÿï08@R8centraal.helpmij.nl/images/nieuwsbrief/nod32-colofon.jpg +Eÿï* + feyenoord.nl08@R%cloudfront.net/-/media/6-parnerships/ +Fÿï* + feyenoord.nl08@R&cloudfront.net/Assets/images/partners/ +8ÿï* + eredivisie.nl08@Rcloudfront.net/banners/ +4ÿï08@R$feenstra-internetservices.nl/?_dnid= +*ÿï08@Rflexwebhosting.nl/banners/ +"ÿï08@Rfx.nl/_ext/widget/ +!ÿï08@Rgo2.go2cloud.org^ +.ÿï08@Rinfotalia.com/worktalia_promo_ +:ÿï08@R*jobat.be/extra/trackuityhn/ticker_new.html +"ÿï08@Rjobfish.nl/widget/ +1ÿï08@R!kjdsfjisdfjr23.azurewebsites.net^ +ÿï08@Rmmcdn.nl/tags/ +2ÿï08@R"nextdaymedia-ads.s3.amazonaws.com^ +4ÿï* + +viafora.nl08@Rouders.nl/uploads/alt/ + ÿï08@Rpartner.bol.com^ +)ÿï08@Rpartnerprogramma.bol.com^ +7ÿï* +intermediair.nl08@Rpexi.nl/dpos/widget- +08@Rpornokartel.nl^ +6ÿï08@R&pubble.nl/Content.svc/getAdCollection? +4ÿï08@R$recreatief.nl/kerstarrangementen.gif +5ÿï08@R%s-bol.com/nl/upload/partnerprogramma/ +.ÿï08@Rsearch-result.com^*/klokad2.js +*ÿï08@Rsedproductions.nl/banners/ +$ÿï08@Rseks.com/img/bnr.gif +2ÿï08@R"seksbuddy.nl/img/frontend/banners/ +.ÿï08@Rsociaaldigitaal.nl/img/Banner- + ÿï08@Rsp.dpgmedia.net^ +0ÿï08@R stepstone.be/*?event=widgettool. +4ÿï08@R$strafrechtadvocaten.nl/media/banner/ +3ÿï08@R#swpportal.com/upload/squarebanners/ +ÿï08@Rt.bazarow.com^ +$ÿï08@Rtraffic.12flirt.com^ +Œÿï* +albrandswaardsdagblad.nl* +barendrechtsdagblad.nl* +ridderkerksdagblad.nl* +zoetermeersdagblad.nl* +rijswijksdagblad.nl* +voorburgsdagblad.nl* +goudsdagblad.nl* +startpagina.nl* + dagblad010.nl* + dagblad070.nl* +sgxl.nl08@Rviralize.tv/display/ +/ 08@R!wertuipsertj34.azurewebsites.net^ +8ÿï* + nzbserver.com08@Rwidget.vpnnederland.nl^ +8ÿï* + puuropreis.nl08@Rwidgets.skyscanner.net^ +cÿï* +groentennieuws.nl* + uiennieuws.nl* + bpnieuws.nl* +agf.nl08@Rwindows.net/banners/ +>ÿï08@R.wp.com/www.bol.com/nl/upload/partnerprogramma/ +?ÿï08@R/xmissy.nl/admnfiles1809/sinclub/freechatbanner_ +&ÿï08@R123video.nl^*/300x100_ +ÿï08@R1twente.nl/Ads/ +0ÿï08@R 24cars.nl/api/advertise-deliver/ +!ÿï08@R2link.be/banners/ +ÿï08@Raa.tweakers.nl^ +Gÿï08@R7aafm.nl/cms/wp-content/themes/omroepalmelo/img/banners/ +/ÿï08@Rabcsuriname.com/images/banners/ +-ÿï08@Radodenhaag.nl/images/banners/ +;ÿï08@R+agconnect.nl/sites/ag/files/styles/partner_ +7ÿï08@R'am-forum.nl/upload/logo_elektrodump.png +6ÿï08@R&antilliaansdagblad.com/images/banners/ +#ÿï08@Rapintie.sr/bannerz/ ++ÿï08@Rautosport.nl/images/Banner- +,ÿï08@Rautosport.nl/images/banners/ÿ +@ÿï08@R0baarsclassicrock.nl/wp-content/uploads/*/banner_ +9ÿï08@R)bdsm-vrienden.nl/sb_data/modules/mod_aav/ +$ÿï08@Rbdsmgirl.nl/banners/ +%ÿï08@Rbdsmgirl.nl^*/banner/ +,ÿï08@Rbelgiancycling.be^*/Banners/ +8ÿï08@R(belgiancycling.be^*/Logo%27s%20partners/ +1ÿï08@R!bloovi.be/frontend/files/banners/ +6ÿï08@R&bodemvondstenwereld.nl/images/banners/ +<ÿï08@R,boek9.nl/sites/default/files/advertisements/ +>ÿï08@R.boek9.nl/sites/default/files/rotating-banners/ +3ÿï08@R#bol-an.nl/wp-content/uploads/*/Adv_ +5ÿï08@R%brandweerspotters.nl/modules/banners/ ++ÿï08@Rbuzzbie.nl/uploads/banners/ +%ÿï08@Rcdn-tmo.nl^*/banners/ +,ÿï08@Rcdn-webcam-harlingen.nl/adv/ +/ÿï08@Rchatmetvreemden.be/static/html/ +/ÿï08@Rchatmetvreemden.nl/static/html/ +.ÿï08@Rchristelijknieuws.nl^*/banner/ +7ÿï08@R'ciaotutti.nl/wp-content/uploads/Banner_ +(ÿï08@Rclubbrugge.be^*/partner/ +1ÿï08@R!coastline945fm.nl/cache/partners/ +.ÿï08@Rcoastlinefm.nl/cache/partners/ +#ÿï08@Rcontent1.pcmweb.nl^ +ÿï08@Rcontent1.pu.nl^ +(ÿï08@Rcontent1.wasmachines.nl^ +!ÿï08@Rcontent1.zoom.nl^ +)ÿï08@Rcontent2.besteproduct.nl^ +'ÿï08@Rcontent2.kieskeurig.nl^ +ÿï08@Rcontent2.pu.nl^ +(ÿï08@Rcontent2.wasmachines.nl^ +!ÿï08@Rcontent2.zoom.nl^ +>ÿï08@R.cryptobenelux.com/wp-content/uploads/*-banner- +>ÿï08@R.cryptobenelux.com/wp-content/uploads/*-Banner. +>ÿï08@R.cryptobenelux.com/wp-content/uploads/*/banner_ +7ÿï08@R'cryptoprijzen.com/cryptoprijzen-widget/ +2ÿï08@R"debestevpn.nl/wp-content/*-banner. +7ÿï08@R'decibel.nl/wp-content/uploads/*/banner- +5ÿï08@R%dewereldmorgen.be/wp-content/banners/ +Lÿï08@Rÿï08@R.maaslandradio.nl/wp-content/uploads/*/autodoc. +=ÿï08@R-maaslandradio.nl/wp-content/uploads/*/Banner- +Bÿï08@R2maaslandradio.nl/wp-content/uploads/*/Hekwerkland. ++ÿï08@Rmandelnieuws.be^*/Sponsors/ +<ÿï08@R,mannennieuws.nl/wp-content/uploads/*-banner. +<ÿï08@R,marktplaats.nl/*/api/complementary-listings? +-ÿï08@Rmeerdangewenst.nl^*/sponsors/ +$ÿï08@Rmetalfan.nl/banners/ +0ÿï08@R midvliet.nl/images/advertenties- +2ÿï08@R"mo.be/sites/default/files/banners/ +*ÿï08@Rmotocrossplanet.nl/banner/ +6ÿï08@R&motocrossplanet.nl/wwwuploads/banners/ +9ÿï08@R)motokicx.com/wp-content/uploads/*/BANNER- +=ÿï08@R-motokicx.com/wp-content/uploads/*/Website-ad- +,ÿï08@Rnetonline.be/slices/banners/ +$ÿï08@Rnevobo.nl^*/sponsor/ +)ÿï08@Rniburu.co/images/banners/ +Bÿï08@R2nieuwsopbeeld.nl/wp-content/uploads/*/Advertentie- +1ÿï08@R!nieuwsuitnijmegen.nl/gfx/banners/ +5ÿï08@R%nieuwsuitnijmegen.nl/uploads/banners/ +-ÿï08@Rnoordkopcentraal.nl^*/banner_ +8 08@R*notebookcheck.nl/fileadmin/Sonstiges/amaz_ +!ÿï08@Rnrc.nl/tag/tag.js +'ÿï08@Romroeppenm.nl^*/banner/ +0ÿï08@R onderwijsland.com/files/banners/ +1ÿï08@R!onderwijsland.com/files/partners/ +'ÿï08@Ronlinecorrectie.nl/cnc/ +;ÿï08@R+ontdek-amerika.nl/marketing/bartsbanner.gif +,ÿï08@Roogtv.nl/wp-content/banners/ +ÿï08@Roops.nl/banner/ +?ÿï08@R/openingsurengids.be/includes/js/checkblockv2.js +:ÿï08@R*openingsurengids.be/template/images/publi/È +'ÿï08@Ropwindend.net/Promotie/ +&ÿï08@Rpdd-nos.nl/footer.html +1ÿï08@R!persberichten.com/Images/Banners/ +3ÿï08@R#persberichten.com/Images/marcommit/ +Cÿï08@R3popinstituut.nl/wp-content/uploads/2014/02/Huren.nl +Mÿï08@R=pornokartel.nl/wp-content/uploads/*/wp-script-leaderboard.gif +7ÿï08@R'promootjesite.nl/images/affliateBanner/ +:ÿï08@R*propertynl.com/media/organization/banners/ +0ÿï08@R puurnaturisme.nl/images/banners/ +*ÿï08@Rracexpress.nl/advertising/ +0ÿï08@R racingnews365.nl/images/banners/ +)ÿï08@Rradioacacia.nl/sponsoren/ +Cÿï08@R3radioeenhoorn.nl/images/Maxaro-badkamers-tegels.png +8ÿï08@R(radiolelystad.nl/images/stories/Banners/ +&ÿï08@Rradioluisteren.fm/ads/ +8ÿï08@R(radionl.fm/wp-content/uploads/*/Maxiaxi_ +2ÿï08@R"radiostadmontfoort.nl/cms/img/ads/ +1ÿï08@R!radiovisie.eu/wp-content/banners/ +9ÿï08@R)railhobby.nl/wp-content/uploads/*_banner- + ÿï08@Rrd.nl/deliver.js +Vÿï* +voetbalverslaafd.nl* + +topgear.nl08@R!resources.planetnine.com/scripts/ +;ÿï08@R+retaildetail.be/sites/default/files/banner/ +;ÿï08@R+retaildetail.nl/sites/default/files/banner/ +2ÿï08@R"rickfm.nl/cwm/fm/userfiles/banner/ +.ÿï08@Rrivierenland-radio.nl/banners/ +8ÿï08@R(rtvdordrecht.nl/cwm/fm/userfiles/banner/ +6ÿï08@R&rtveen.nl/wp-content/uploads/*-Banner- +6ÿï08@R&rtveen.nl/wp-content/uploads/*/banner- +Fÿï08@R6rtvlansingerland.nl/wp-content/uploads/*/Zorgvilla.gif +)ÿï08@Rrtvmaastricht.nl/banners/ +"ÿï08@Rrtvnof.nl/prowurk/ +'ÿï08@Rschie.nu/images/banner/ +,ÿï08@Rschuttevaer.nl/partnersites/ +0ÿï08@R seksverhalen.org/telefoonsex.png +0ÿï08@R seksverhalen.org/vluggertjes.png +1ÿï08@R!sexchatlounge.nl/bannerlinks.html +2ÿï08@R"sexchatlounge.nl/bannerrechts.html +,ÿï08@Rsexervaringendelen.nl/porno/ +6ÿï08@R&simone.nl/wp-content/uploads/*-banner- +Bÿï08@R2simone.nl/wp-content/uploads/*-besteonderdelen.nl- +Cÿï08@R3simone.nl/wp-content/uploads/*-onderdelenexpert.nl- +@ÿï08@R0simone.nl/wp-content/uploads/*/tijdelijkkkkk.png +)ÿï08@Rsolarmagazine.nl/u/edwin/ +:ÿï08@R*spreekbuis.nl/wp-content/uploads/*-banner- +:ÿï08@R*spreekbuis.nl/wp-content/uploads/*/Banner- +0ÿï08@R srherald.com/wp-content/banners/ +<ÿï08@R,streamwijzer.be/wp-content/uploads/*-banner. +(ÿï08@Rte-les-koop.nl/images/B_ +6ÿï08@R&techgaming.nl/image_uploads/sponsored/ +Aÿï08@R1tennisplaza.be/wp-content/uploads/*/tennisdirect- +>ÿï08@R.tennisvlaanderen.be/documents/*/19Sponsorblok- +>ÿï08@R.tennisvlaanderen.be/documents/*/21Sponsorblok- +ÿï08@R tijd.be/ad/ +5ÿï08@R%touretappe.nl/images/topposblock.html +*ÿï08@Rtouretappe.nl/images/xtra/ +"ÿï08@Rtpo.nl/broodplank/ +%ÿï08@Rtradeidee.nl/banners/ +Aÿï08@R1transport-online.nl/site/includes/uploads/banner- +-ÿï08@Rtvvisie.be/textads/textads.js +Iÿï08@R9twentefm.nl/directcast/custom/rtvnot/playout/commercials/ +'ÿï08@Ruecl-voetbal.nl/derden/ +&ÿï08@Ruel-voetbal.nl/derden/ +$ÿï08@Ruitslagen.nl/banner/ +#ÿï08@Runity.nu^*/Banners/¥ +/ÿï08@Rvagina.nl/fish-hooks/fetch.json +>ÿï08@R.vbro.be/wp-content/uploads/*/autoonderdelen24_ +,ÿï08@Rverkeerplaza.nl/js/banner.js +1ÿï08@R!visserijnieuws.nl/images/banners/ +;ÿï08@R+vitesse.nl/assets/img/layout/etoro-logo.png +0ÿï08@R vitesse.nl^*_sponsors_footer.png +5ÿï08@R%vives.nl/wp-content/uploads/*-Banner- +3ÿï08@R#vives.nl/wp-content/uploads/Banner_ +,ÿï08@Rvoetbalkrant.com/images/pub/ +1ÿï08@R!voetbalnederland.nl/img/bravo.gif +Qÿï08@RAvoetbalrotterdam.nl/wp-content/uploads/*/soccerdealbanner1170.jpg +4ÿï08@R$volleybal.nl/uploads/images/Banners/ +2ÿï08@R"volleybal.nl/uploads/images/Logos/ +5ÿï* + koken.vtm.be08@Rvtm.be^*-achtergrond- +0ÿï* + koken.vtm.be08@Rvtm.be^*-header- +-ÿï08@Rwaarzo.nl/imagestore/banners/ +2ÿï08@R"waarzo.nl/imagestore/site-banners/ +%ÿï08@Rwaldnet.nl/images/ac/ +%ÿï08@Rwanttoknow.nl^*Banner +:ÿï08@R*watersport-tv.nl/content/31400/pages/clnt/ +1ÿï08@R!webcam-aalsmeer.nl/media/banners/ +2ÿï08@R"webcam-aalsmeer.nl/media/banners2/ +0ÿï08@R webcam-airport.nl/media/banners/ +1ÿï08@R!webcam-airport.nl/media/banners2/ +4ÿï08@R$webcam-binnenvaart.nl/media/banners/ +5ÿï08@R%webcam-binnenvaart.nl/media/banners2/ +1ÿï08@R!webcam-blokzijl.nl/media/banners/ +2ÿï08@R"webcam-blokzijl.nl/media/banners2/ +2ÿï08@R"webcam-brandaris.nl/media/banners/ +3ÿï08@R#webcam-brandaris.nl/media/banners2/ +1ÿï08@R!webcam-delfzijl.nl/media/banners/ +2ÿï08@R"webcam-delfzijl.nl/media/banners2/ +2ÿï08@R"webcam-denhelder.nl/media/banners/ +3ÿï08@R#webcam-denhelder.nl/media/banners2/ +1ÿï08@R!webcam-denoever.nl/media/banners/ +2ÿï08@R"webcam-denoever.nl/media/banners2/ +/ÿï08@Rwebcam-dokkum.nl/media/banners/ +0ÿï08@R webcam-dokkum.nl/media/banners2/ +2ÿï08@R"webcam-dordrecht.nl/media/banners/ +3ÿï08@R#webcam-dordrecht.nl/media/banners2/ +2ÿï08@R"webcam-enkhuizen.nl/media/banners/ +3ÿï08@R#webcam-enkhuizen.nl/media/banners2/ +4ÿï08@R$webcam-friesemeren.nl/media/banners/ +5ÿï08@R%webcam-friesemeren.nl/media/banners2/ +-ÿï08@Rwebcam-grou.nl/media/banners/ +.ÿï08@Rwebcam-grou.nl/media/banners2/ +2ÿï08@R"webcam-harlingen.nl/media/banners/ +3ÿï08@R#webcam-harlingen.nl/media/banners2/ +6ÿï08@R&webcam-havenijmuiden.nl/media/banners/ +7ÿï08@R'webcam-havenijmuiden.nl/media/banners2/ +4ÿï08@R$webcam-hindeloopen.nl/media/banners/ +5ÿï08@R%webcam-hindeloopen.nl/media/banners2/ +7ÿï08@R'webcam-hoekvanholland.nl/media/banners/ +8ÿï08@R(webcam-hoekvanholland.nl/media/banners2/ +/ÿï08@Rwebcam-kampen.nl/media/banners/ +0ÿï08@R webcam-kampen.nl/media/banners2/ +3ÿï08@R#webcam-lauwersoog.nl/media/banners/ +4ÿï08@R$webcam-lauwersoog.nl/media/banners2/ +3ÿï08@R#webcam-leeuwarden.nl/media/banners/ +4ÿï08@R$webcam-leeuwarden.nl/media/banners2/ +1ÿï08@R!webcam-lelystad.nl/media/banners/ +2ÿï08@R"webcam-lelystad.nl/media/banners2/ +2ÿï08@R"webcam-maassluis.nl/media/banners/ +3ÿï08@R#webcam-maassluis.nl/media/banners2/Ð +3ÿï08@R#webcam-maastricht.nl/media/banners/ +4ÿï08@R$webcam-maastricht.nl/media/banners2/ +/ÿï08@Rwebcam-marken.nl/media/banners/ +0ÿï08@R webcam-marken.nl/media/banners2/ +5ÿï08@R%webcam-monnickendam.nl/media/banners/ +6ÿï08@R&webcam-monnickendam.nl/media/banners2/ +2ÿï08@R"webcam-rotterdam.nl/media/banners/ +3ÿï08@R#webcam-rotterdam.nl/media/banners2/ +.ÿï08@Rwebcam-sneek.nl/media/banners/ +/ÿï08@Rwebcam-sneek.nl/media/banners2/ +2ÿï08@R"webcam-terneuzen.nl/media/banners/ +3ÿï08@R#webcam-terneuzen.nl/media/banners2/ +4ÿï08@R$webcam-vlaardingen.nl/media/banners/ +5ÿï08@R%webcam-vlaardingen.nl/media/banners2/ +1ÿï08@R!webcam-volendam.nl/media/banners/ +2ÿï08@R"webcam-volendam.nl/media/banners2/ +0ÿï08@R webcam-workum.nl//media/banners/ +0ÿï08@R webcam-workum.nl/media/banners2/ +2ÿï08@R"webcam-zaanzicht.nl/media/banners/ +3ÿï08@R#webcam-zaanzicht.nl/media/banners2/ +1ÿï08@R!webcam-zoutkamp.nl/media/banners/ +2ÿï08@R"webcam-zoutkamp.nl/media/banners2/ +3ÿï08@R#webcam-zwartsluis.nl/media/banners/ +4ÿï08@R$webcam-zwartsluis.nl/media/banners2/ +1ÿï08@R!webcams-ameland.nl/media/banners/ +2ÿï08@R"webcams-ameland.nl/media/banners2/ +6ÿï08@R&webcams-scheveningen.nl/media/banners/ +7ÿï08@R'webcams-scheveningen.nl/media/banners2/ +/ÿï08@Rwebcams-texel.nl/media/banners/ +0ÿï08@R webcams-texel.nl/media/banners2/ +4ÿï08@R$webcams-vlissingen.nl/media/banners/ +5ÿï08@R%webcams-vlissingen.nl/media/banners2/ +7ÿï08@R'webcamschiermonnikoog.nl/media/banners/ +8ÿï08@R(webcamschiermonnikoog.nl/media/banners2/ +0ÿï08@R webcamvlieland.nl/media/banners/ +1ÿï08@R!webcamvlieland.nl/media/banners2/ +.ÿï08@Rwebstick.nl/images/images-ads/ +Lÿï08@R* +crime-nieuws.nl08@Rads.viralize.tv/display/?zid= +L * +sportnieuws.nl08@R,advertising-module.api.dpgmedia.cloud/video/ +O* +radioluisteren.fm08@R,aka.spotxcdn.com/integration/ados/v1/ados.js +^* +autoblog.bbvms.com08@R:cdn.bluebillywig.com/scripts/prebid/*/bluebillywig_pbjs.jsœ +O* +radioluisteren.fm08@R,cdn.spotxcdn.com/integration/easi/v1/easi.js +N08@R@files.skoften.net/website/lib/vjs/plugins/ads/videojs.ads.min.js +¥ÿï* +crime-nieuws.nl* +sportnieuws.nl* + dailybuzz.nl* + weerplaza.nl* + skoften.net* + goplay.be* +vtm.be08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +Kÿï* + goplay.be08@R.imasdk.googleapis.com/js/sdkloader/ima3_dai.js +Iÿï* + spelletjes.nl08@R(improvedigital.com/pbw/headerlift.min.js +@* +radioluisteren.fm08@Rjs.spotx.tv/ados/v1/106185.js +[* +welingelichtekringen.nl* + dailybuzz.nl* + +radio.nl08@Rmassariuscdn.com/pubs/ +<* + vkmag.com08@R!mmcdn.nl/tags/vkmag.com/pagina.js +U* +crime-nieuws.nl08@R4monetize-static.viralize.tv/viralize_player_content. +E* +radioluisteren.fm08@R"search.spotxchange.com/js/spotx.js +R* +radioluisteren.fm08@R/sync.search.spotxchange.com/partner?source=easi +K€* + flirtmee.nl08@R-tools.vpscash.nl/datingv3/docs/plug_and_play/ +P* + 2dehands.be08@R3images.2dehands.com/api/v1/listing-twh-p/images/ad/ +:ÿï08@R*showmodeluitverkoop.nl/upload/advertentie/ +Tÿï08@RDsliedrecht24.nl/wp-content/uploads/2022/02/Banner-300x250-1.jpg.webp +/ÿï08@Rte-les-koop.nl/advertenties.php +7ÿï08@R'zilverengoudkopen.nl/banners/header.jpg +6ÿï08@R&zilverengoudkopen.nl/banners/onder.jpg +708@R)vinatera.be/wp-content/uploads/*_300x600. #adBoven  #adRechts +#adRechts2 #advertentie.advertentie-2-container.advertentie_226.advertentie_links.content-rechts-ad.gamereel_featured-ad.gesponsord_blokje.gesponsord_blokje_wrap  .hoofdAd2.kwebler-ad-minimal.massarius-dfp-unit($a[href^="https://go2.go2cloud.org/"] a[href^="https://mt67.net/"]#a[href^="https://www.2k19.nl/"]A=a[href^="https://www.flirtadvertenties.nl/direct-sexdating/"]'#a[href^="https://xltube.nl/click/"]#advertentieblokjeid#gesponsordelink  #reclame2#reclame_rechts#reclamebanner #reclamediv#rightbanner_adbest#semilo-lrectangle #sidereclame#vipAdmarktBannerBlock .ads-mobiel  .adstekst .advertentie .advertenties!.advertorial_koersen_home_top.ankeiler--advertisement.aw_url_admarkt_bottom.banner_advert6blok.banner_advertentie_footer .bericht_adv1.bovenadvertentiediv.category-advertentie.gesponsordelink  .groei-ad .justLease_ad.mp-adsense-header-topî .ontwerp_ads .reclame .reclameIndex .reclamekop .reclamelogos .sponsorbalk! + immo.vlan.be #ProvidersBox" + immo.vlan.be#TopCompareBoxP +dingenvoorvrouwen.nl + autobahn.eu + +playboy.nl#WB_VIDEO_PLAYER_TARGET + +gaynews.nl#abri + +gaynews.nl#abri1) + voetbal24.be#ad-desktop-incontent& +voetbalkrant.com#ad-intro-text- + voetbal24.be#ad-mobile-home-rectangle( + voetbal24.be#ad-mobile-incontent( + voetbal24.be#ad-mobile-outstream# +welklidwoord.nl #ad-takeover +menselijklichaam.nl#ad1$ + filmtotaal.nl#adf-autonative& + filmtotaal.nl#adf-autonative-26 +lonelyplanet.nl + filmtotaal.nl#adf-billboard' +lonelyplanet.nl#adf-billboard-2# + filmtotaal.nl#adf-rectangle` +noordernieuws.nl +112nederland.nl +gelrenieuws.nl + 112brabant.nl + +apintie.sr#ads& +openingstijden.com #adsense_CSA +veto.be#advert-campaign + rtveen.nl #advertenties0 + omroeppenm.nl + rickfm.nl#advertisement. + alle-tests.nl + bloovi.be #advertisingQ + volkskrant.nl + demorgen.be + parool.nl + +trouw.nl#article_paragraph_1… + volkskrant.nl + demorgen.be + margriet.nl + +libelle.nl + parool.nl + +flair.nl + +trouw.nl +humo.be#article_paragraph_3Q + volkskrant.nl + demorgen.be + parool.nl + +trouw.nl#article_paragraph_6Q + volkskrant.nl + demorgen.be + parool.nl + +trouw.nl#article_paragraph_9! + autobahn.eu#avantisTarget# + ciaotutti.nl#b_searchboxInc/ +belgiancycling.be + zoekhulp.nl#banner' + autowereld.nl#banner-detail-top' + autowereld.nl#banner-lister-top= +marktplaats.nl + 2dehands.be#banner-top-dt-container + dwtonline.com#banner1# +afkortingen.nu #banner_right! +afkortingen.nu #banner_top" +kranenwebsite.nl +#bannerdivX +brandweerspotters.nl +fanclubbarcelona.nl +a1mediagroep.nl +coc.nl#banners# + historiek.net#before-header  + bierdopje.com #billboards + bol-an.nl #block-10 + bol-an.nl #block-11! +groningerkrant.nl#block-2 + spreekbuis.nl#block-3% +tiener-sexverhalen.nl#block-6 + bol-an.nl#block-9+ +luchtvaartnieuws.nl#block-block-191& +blikopnieuws.nl#block-block-382 +scheepvaartkrant.nl#block-topbannersidebar< +zakenreisnieuws.nl"#block-views-banner_carousel-block: + +boek9.nl*#block-views-block-advertisements-ads-left; + +boek9.nl+#block-views-block-advertisements-ads-right: +mandelnieuws.be##block-views-block-sponsors-block-1: +mandelnieuws.be##block-views-block-sponsors-block-2: +mandelnieuws.be##block-views-block-sponsors-block-3: +mandelnieuws.be##block-views-block-sponsors-block-4= + willem-ii.nl)#block-views-block-view-business-partners8 + willem-ii.nl$#block-views-block-view-main-sponsorÑ9 + willem-ii.nl%#block-views-block-view-shirt-sponsor1 + +boek9.nl!#block-views-sponsor-banner-block# + vagina.nl#bottom-fish-hooks! +voetbalnederland.nl#bravo + +kekmama.nl#c1 + startkabel.nl #campagne< + +indiexl.nl*#carousel-indiexl_partners_carousel_widget, +basketballbelgium.be#carousel-item-2' +topvolleybelgium.be #contacts3-5# +almere-nieuws.nl #containerx% + looopings.nl#contentBillboard( +grandprixradio.nl#custom_html-109 +grandprixradio.nl + cryptosjop.nl#custom_html-13( +grandprixradio.nl#custom_html-17( +grandprixradio.nl#custom_html-18P +omroepeemsdelta.nl +wereldreizigers.nl +minimumloon.nl#custom_html-24 +messianieuws.nl + arrowcaz.nl#custom_html-3  + exxact.nl#custom_html-31$ + historiek.net#custom_html-38< +heelhollandkijkt.nl +messianieuws.nl#custom_html-46 +messianieuws.nl + huisvlijt.com#custom_html-5* +rtvalbrandswaard.com#custom_html-6 + nljug.org#custom_html-7! + +vroom.be#divBanneringSlot  +oops.nl#dropinboxv2cover3 +cryptonieuws.nl#elementor-popup-modal-256753 +cryptonieuws.nl#elementor-popup-modal-256861 + cryptoclan.nl#elementor-popup-modal-400651 + cryptoclan.nl#elementor-popup-modal-40079& +pornoplekje.nl#exitpopup-modal8 + fcupdate.nl%#fcupdate\.nl_web_billboard_970x250_1: + fcupdate.nl'#fcupdate\.nl_web_billboardskin_970x2506 +androidplanet.nl + +iphoned.nl#featured-header9 +androidworld.be +androidworld.nl#fh-placeholderT +footballtransfers.com7#footballtransfers\.com_ros_alpha_leaderboard-billboardQ +footballtransfers.com4#footballtransfers\.com_ros_bravo_rectangle-halfpage" +alkmaarguardians.nl#footer + nieuws.nl#footer-banner% + manpedia.nl#gridlove-module-2' + vrouwpedia.nl#gridlove-module-3 + nieuws.nl#header-banner: + unitednews.sr%#image-vertical-reel-scroll-slideshowG +indeleiderstrui.nl-#indeleiderstrui_ros_alpha_rectangle-halfpageJ +indeleiderstrui.nl0#indeleiderstrui_ros_bravo_leaderboard-billboardB +indeleiderstrui.nl(#indeleiderstrui_ros_bravo_mini_ad_fluidG +indeleiderstrui.nl-#indeleiderstrui_ros_bravo_rectangle-halfpage% +marktplaats.nl#inloggenDialog* + +itdaily.be#itdaily-article-sidebar& + +itdaily.be#itdaily-article-top! + +itdaily.be#itdaily-footer + techzine.nl#lead" +eindexamens.nu #leaderboard" + +made-in.be#leaderboard_row$ + autosport.nl#liggende-banner" +greenkeeper.nl #lijst_logos  + autowereld.nl #mainbanner3 +messianieuws.nl + palnws.be#media_image-10$ + spreekbuis.nl#media_image-11  + palnws.be#media_image-12  + bol-an.nl#media_image-13& +omroepalmere.nl#media_image-16& +omroepalmere.nl#media_image-18O +dutchcryptotalk.com +classicstogo.nl +messianieuws.nl#media_image-2& +omroepalmere.nl#media_image-21Ã& +omroepalmere.nl#media_image-22# + mariabode.nl#media_image-28r +schiedamsnieuws.nl +kanaancourant.nl +oomroepalmere.nl + keizerstad.nl + vivocyclo.com#media_image-3# + mariabode.nl#media_image-34J +schiedamsnieuws.nl + keizerstad.nl + vivocyclo.com#media_image-4% +messianieuws.nl#media_image-5& +maaslandradio.nl#media_image-7/ +wielerflits.be +wielerflits.nl#mm_hpa7 +wielerflits.be +wielerflits.nl#mm_leaderboard5 +wielerflits.be +wielerflits.nl #mm_rectangle# +surinameview.com #nav_menu-2 + autoblog.nl #nav_menu-5  + +pokeren.nl#onetime-popup$ +starnieuws.com#overig_nieuwsY +indeleiderstrui.nl +wielerflits.be +wielerflits.nl + autoreview.nl +#parentgpt! + eredivisie.nl #partner-bar + vagina.nl#partner-linksm +belgiancycling.be +coastline945fm.nl +fonkmagazine.nl +coastlinefm.nl + elfvoetbal.nl #partners) +coastline945fm.nl#partners_slides1 + ans-online.nl#penci_latest_news_widget-120 + ans-online.nl#penci_latest_news_widget-7& +rtvkrimpenerwaard.nl +#pg-1407-8$ +meteoalblasserdam.nl#pic_446& + sexpower.nl#pre-footer-banners" + bdsmgirl.nl#product_banner$ + boerderij.nl#rb_logolink_box + fcutrecht.net#reclame/ + stubru.be +mnm.be#reclameblok-wrapper +nashvilletv.nl#ribbon" +motorfietsblog.nl #shopside' + +franska.nl#shopsuiteApplication! + vagina.nl#side-fish-hooks' +112achterhoek-nieuws.nl#sidebar + +top40.nl#sky1 + +top40.nl#sky2 + +top40.nl#sky3 + +top40.nl#sky4 + geelfm.be#slider& + jammfm.nl#slider_32982_slide010 + dartfreakz.nl#soliloquy-container-3268310 + dartfreakz.nl#soliloquy-container-3268350 + dartfreakz.nl#soliloquy-container-3341750 + dartfreakz.nl#soliloquy-container-3341860 + dartfreakz.nl#soliloquy-container-334192- +sciencelink.net#sponsored-content_280) +zwartewaterfm.nl#sponsorenBtmCntr0 + easyfm.nl + goldfm.be#sponsors-carousel% + adodenhaag.nl#sponsors-normal +itwm.nl#tdi_37 + voetbal4u.be#text-11. +livestreamvandaag.be +h20.gg#text-14- +radiozuidrand.be + exxact.nl#text-15" +edelmetaal-info.nl#text-161 +edelmetaal-info.nl + loemedia.nl#text-179 +voetbalweddenrss.nl +edelmetaal-info.nl#text-19 + omrekenen.org#text-2" +edelmetaal-info.nl#text-20 +messianieuws.nl#text-24! +edelmetaal-info.nl#text-3% +despirituelewereld.be#text-37- +goedkoopstekeukensduitsland.nl#text-5" +feyenoordreport.nl#text-50 + psvreport.nl#text-57 + psvreport.nl#text-58¾X +goedkoopstekeukensduitsland.nl +voetbalnotering.nl +duurzaamnieuws.nl#text-6 +voetbalsnafu.nl#text-64 +voetbalsnafu.nl#text-65 +voetbalsnafu.nl#text-66 +senseigaming.be#text-7A +goedkoopstekeukensduitsland.nl +hoekschnieuws.nl#text-8 + voetbal4u.com#text-81 + ajaxreport.nl#text-88 + ajaxreport.nl#text-91 + sexpower.nl #top-banner) +marktplaats.nl#top-banner-wrapper1 +onderwijsnieuwsdienst.nl#topAdvertisement! + escort46.nl#top_image_divR +hollandskroonnieuws.nl +wieringernieuws.nl +radio-minerva.be +#topbanner! +voetbal-vandaag.nl#topbox# +hotradiohits.nl #tpl_banners% +gratissextube.be #tracking-url + tweakers.net#true0 +omroepalmere.nl#widget_carousel_slider-3) +culturescope.nl#widget_sp_image-2) +culturescope.nl#widget_sp_image-44 + +negerin.nl"#widget_text.widget-sidebar.widget* +broadcastmagazine.nl.Advertisement5 + telegraaf.nl!.ArticleBodyBlocks__bannerWrapper/ + telegraaf.nl.ArticlePageWrapper__banner + telegraaf.nl.Banner7 +marktplaats.nl + 2dehands.be.BannerBottom-root' +marktplaats.nl.BannerRight-root- +marktplaats.nl.Banners-bannerFeedItem+ + telegraaf.nl.BasicTeaser__sponsored + guruwatch.nl +.Billboardh +beursduivel.be +beursonline.nl + eurobench.com + belegger.nl + +debeurs.nl.Billboard-wrapper& + telegraaf.nl.ComponentRotation +iex.nl.ContentPartner# + guruwatch.nl.LargeRectangle' + +iexgeld.nl.LeaderboardContainer + +topgear.nl .Pnvp__ad + +iexgeld.nl +.Rectangleh +beursduivel.be +beursonline.nl + eurobench.com + belegger.nl + +debeurs.nl.Rectangle-wrapper/ + telegraaf.nl.SectionPage__bannerWrapper + onsoranje.nl .SponsorBar +knvb.nl.SponsorBar-list% +totoknvbbeker.nl .SponsorBlock0 + telegraaf.nl.SportScoreboardPage__banner0 +zelfmaak-ideetjes.nl.Sticky_Ad_Widget_SP! + +buzzbie.nl.TS_Banner_Spot3 + telegraaf.nl.TextArticlePage__bannerWrapper- + telegraaf.nl.VideoArticlePage__banner& + telegraaf.nl.VideoPage__bannerg +deondernemer.nlP.\-mb-10.box-content.flex.hidden.items-center.p-4.md\:mb-0.md\:flex.md\:min-h-25T +christelijknieuws.nl + dartfreakz.nl + zozwanger.nl + +thehike.nl .a-single + upinthesky.nl.a-wrap! +ditishelmond.nl +.aanbieder + rtveen.nl .aas_zone! +rivierenland-radio.nl.aba2 + +newsbit.nl .acf-block-cta-conversion-ratingÀ +beleggersbelangen.nl +hetnieuwsvandaag.be +banden.autoweek.nl +voetbalprimeur.nl +voetbalnieuws.nl +a1mediagroep.nl +alarmeringen.nl +besteproduct.nl +rtvnunspeet.nl +tripadvisor.nl + wijlimburg.nl + eurosport.nl + indebuurt.nl + koopplein.nl + limburger.nl + persinfo.org + tradeidee.nl + autozine.nl + +dumpert.nl + +gpblog.com + +tellows.nl + 24cars.nl + bright.nl + +sport.be +vrmg.nl +xgn.nl +rd.nl.ad& +crypto-insiders.nl .ad-category„ +omroepflevoland.nl +sportuitslagen.org + soccernews.nl + trendalert.nl + babybytes.nl + +bruzz.be +pu.nl .ad-container + voetbal.com.adbox + +sozio.nl +.adchannel, +faillissementsdossier.nl .adcontainer% +nieuwsmotor.nl.add-background1 +voetbalvandaag.be +vlaamskijken.nl.adds¼! + +beurs.nl.addslotJ +a1mediagroep.nl +rtvnunspeet.nl + loemedia.nl +vrmg.nl.adlead) +westerwoldeactueel.nl .adr-wrapper¢ +dagelijkseverhalen.nl +openrotterdam.nl +wegdamnieuws.nl +viamichelin.be +viamichelin.nl + cinenews.be + +handbal.nl + vkmag.com + +clint.be.ads> +treinreiziger.nl&.ads-adsense-treinreiziger-horizontaal@ +treinreiziger.nl(.ads-adsense-treinreiziger-horizontaal-5* +faillissementsdossier.nl +.adsbybinqD +openingstijden.com +promootjesite.nl + +radiofm.nl.adsense) + adodenhaag.nl + spelletje.nl.adví +talentenjacht.tv +informatief.tv + gezondheid.tv + ondernemen.tv + spelletjes.tv + verkiezing.tv + amusement.tv + nederland.tv + formule1.tv + jongeren.tv + kinderen.tv + politiek.tv + vaartuig.tv + voertuig.tv + +cultuur.tv + +onrecht.tv + +sporten.tv + +voetbal.tv + geloof.tv + kennis.tv + lachen.tv + mensen.tv + muziek.tv + natuur.tv + nieuws.tv + oranje.tv + +beurs.tv + +gamen.tv + +serie.tv +kook.tv +mode.tv +reis.tv +weer.tv +woon.tv +.adv-tekst? +intermediair.nl + filmtotaal.nl + hoimedia.com.advert( + +newsbit.nl.advert-converting-bar& + juf-milou.nl.adverteerdersblok) +startlijstjes.nl.advertentieblock( +rallylovers.be.advertentierechts + autoweek.nl +.advertiseÑ +elektormagazine.nl +fonkmagazine.nl +maassluis24.nl + kieskeurig.nl + schiedam24.nl + zijaanzij.nl + hpdetijd.nl + twentefm.nl + +1twente.nl + +bnnvara.nl + tvgids.tv +nl24.nu.advertisement+ + +goodbye.be + sporza.be .advertisingÖ +albrandswaardsdagblad.nl +barendrechtsdagblad.nl +ridderkerksdagblad.nl +zoetermeersdagblad.nl +rijswijksdagblad.nl +voorburgsdagblad.nl +goudsdagblad.nl + dagblad010.nl + dagblad070.nl.advrow" + geenstijl.nl.afctr-wrapper8 +wielerflits.be +wielerflits.nl.affiliate_links4 + gfcnieuws.com + historiek.net.ai-viewport-1& +voedingswaardetabel.nl.amgrayB& +voedingswaardetabel.nl.amgrayT$ + autoreview.nl.ar_300_600_mid$ + autoreview.nl.ar_300_600_top  + autoreview.nl .ar_970_2500 +rtvkrimpenerwaard.nl.art-positioncontrol' + zeelandnet.nl.article-bnr-first4 + geenstijl.nl .article-premium-promotion-block* +motocrossplanet.nl.artikel-banners' + zeelandnet.nl.as__bottom-banner + nailtalk.nl .ashe-widget! +klimaatinfo.nl .aside__add +yachtfocus.com.av' + +salvora.nl.avia-content-slider1 + gaykrant.nl.awac  + +hookers.nl.axd-container + stadszaken.nl.b-sideö +executive-people.nl +dutchitchannel.nl +beursgorilla.nl +retaildetail.be +retaildetail.nl +afkortingen.nu +beursduivel.be +propertynl.com +startpagina.nl + filmladder.nl + televizier.nl + uiennieuws.nl + uitslagen.nl + uw-folder.nl + bpnieuws.nl + ibestuur.nl + iexprofs.nl + metalfan.nl + telezien.nl + totaaltv.nl + tvgemist.be + +folderz.nl + +waldnet.nl + klasse.be + tvgids.nl + +beurs.nl + +oogtv.nl + +unity.nu +vnci.nl +agf.nl +nrc.nl +nu.nl.banner) +nieuwsuitnijmegen.nl .banner-box-1" + goudengids.be .banner-boxes0 +speeleiland.nl.banner-btf-side-rectangle$ + feyenoord.nl.banner-carousel& +sportnieuws.nl.banner-centered· +deliciousmagazine.nl +rootsmagazine.nl +lokaaltotaal.nl +fietsactief.nl + truckstar.nl + knipmode.nl + +seasons.nl + +vorsten.nl + +fiets.nl +zin.nl.banner-container + tvblik.nl .banner-fluid" + prewarcar.nl.banner-holder" +yachtfocus.com .banner-item( + ewmagazine.nl.banner-leaderboard& + freeones.nl.banner-placeholder! +marktplaats.nl .banner-row2 +maarkelsnieuws.nl.banner-secondary-sidebar  + +nnieuws.be.banner-silver2 +radioviainternet.be.banner-size-leaderbord! +speeleiland.nl .banner-skyD +nieuwsuitnijmegen.nl +wijchensnieuws.nl.banner-slider-item! + dolcevia.com .banner-style' +maarkelsnieuws.nl.banner-widget5 +deblueskrant.nl +nieuweoogst.nl .banner-wrap2 + autowereld.nl + +sexjobs.nl.banner-wrapper" + opwindend.net .banner468x60$ +motocrossplanet.nl +.banner540' +rtvdordrecht.nl.bannerContainer‘% +meetingmagazine.nl .bannerLine# + iexprofs.nl.banner__article' + tostrams.nl.banner__articleside$ + tostrams.nl.banner__homeside  + iexprofs.nl .banner__side +tpo.nl .banner__true  + iexprofs.nl .banner__wrap& + iexprofs.nl.banner__wrapbottomð +talentenjacht.tv +informatief.tv + gezondheid.tv + ondernemen.tv + spelletjes.tv + verkiezing.tv + amusement.tv + nederland.tv + formule1.tv + jongeren.tv + kinderen.tv + politiek.tv + vaartuig.tv + voertuig.tv + +cultuur.tv + +onrecht.tv + +sporten.tv + +voetbal.tv + geloof.tv + kennis.tv + lachen.tv + mensen.tv + muziek.tv + natuur.tv + nieuws.tv + oranje.tv + +beurs.tv + +gamen.tv + +serie.tv +kook.tv +mode.tv +reis.tv +weer.tv +woon.tv .banner_imageñ +talentenjacht.tv +informatief.tv + gezondheid.tv + ondernemen.tv + spelletjes.tv + verkiezing.tv + amusement.tv + nederland.tv + formule1.tv + jongeren.tv + kinderen.tv + politiek.tv + vaartuig.tv + voertuig.tv + +cultuur.tv + +onrecht.tv + +sporten.tv + +voetbal.tv + geloof.tv + kennis.tv + lachen.tv + mensen.tv + muziek.tv + natuur.tv + nieuws.tv + oranje.tv + +beurs.tv + +gamen.tv + +serie.tv +kook.tv +mode.tv +reis.tv +weer.tv +woon.tv.banner_image2: +zwaremetalen.com +abcsuriname.com.banner_wrapper· +lokaleomroepzeewolde.nl +antilliaansdagblad.com +h2owaternetwerk.nl +halstadcentraal.nl +radiolelystad.nl +abcsuriname.com + dolcevia.com + midvliet.nl .bannergroup# +puurnaturisme.nl .banneritem0 + +kbradio.nl + +rkvvo.nl +gic.nl.banners% +radiomonique.am.bannerswidget% + twentefm.nl.bannerzone_728x90! +dutchitchannel.nl.bannner + fcupdate.nl.bet365@ +feyenoordpings.nl + twentefans.nl.betcity-intro-wrapper/ +voetbalnieuws.nl.betting-article-insert" +vi.nl.betting-provider-row$ +bieos-omroep.nl .bieos-widget + autosport.nl +.bigbanner* +faillissementsdossier.nl +.billboard+ + tostrams.nl +iex.nl.billboardwrap( + tostrams.nl.billboardwrap-bottom  +iex.nl.billboardwrapdown$ + cryptosjop.nl.bitvavo-widgetA +hagelandactueel.be +leuvenactueel.be.block-banner-block# + livios.be.block-leaderboard" +psv.nl.block-sponsors--psv% +psv.nl.block-sponsors-desktop% +scholieren.com.blockvertorialA +escortgirls.be + topescort.nl + sexguide.nl .blogBanners` +voetbalverslaafd.nl +feyenoordpings.nl +kantinepraat.nl + twentefans.nl .bn__wrapper0 +podcastluisteren.nl + zeelandnet.nl.bnr +bnr.nl .bnr-message! +bodylifebenelux.nl.bnrrow +tpo.nl .bol_pml_box + wijwedden.net.bookies* +voetbalvandaag.nl.bookmaker-banner& + autoreview.nl.bottom-bannuring, +onderwijsnieuwsdienst.nl .bottomSpace +bnr.nl.branded + +classic.nl .brievenbus +xgn.nl.bs + mijnserie.nl.buyThis + tzum.info.bzrwfrm$ + wradio.be.c-advertiser-logos* +tijd.be.c-articleteaser--sponsored* +flaironline.nl.c-commerical_banner  +ngf.nl.c-footer-sponsorsA +financialinvestigator.nl!.c-newsList__story--partnernieuws$ +ditjesendatjes.nl .c-partners- + farmaline.be.c-sidebar-banner-wrapper5 + tennis.nl + +knltb.nl.c-site-footer__partners( +lekkercryptisch.nl.c-sponsoredBy' + qmusic.nl +golf.nl .c-sponsors/ +binnenlandsbestuur.nl.c-teaser--partner# + hockey.nl.card--leaderboard  + hockey.nl.card--partners  + volleybal.nl .card-banner& + volleybal.nl.card-banner-largeN +webcam-maastricht.nl +webcam-harlingen.nl +rkcwaalwijk.nl .carouselž. +halstadcentraal.nl.carouselbanner_left' + fonkonline.nl.carrousel-wrapperM + nieuwsblad.be + standaard.be +hbvl.be +gva.be.cba_container_grid# +motorfietsblog.nl +.cbcontent# +monitor.iex.nl .centerbanner + techzine.nl.chimney< +autoscout24.be +autoscout24.nl.cl-billboad-wrapper, +bitcoinmagazine.nl.clickout-relative+ + skoften.net.cls-placeholder-160-600+ + skoften.net.cls-placeholder-300-600+ + skoften.net.cls-placeholder-970-250 +rd.nl.codalt-container1 + gfcnieuws.com + techgaming.nl .code-block? +achterhoeknieuwswinterswijk.nl.component__pubble-banner% +bol.com.consideration-displayE +deaandeelhouder.be +deaandeelhouder.nl.container-commercial% + jumbo.com.container.sponsored$ + twentefans.nl.content-action) + juf-milou.nl.content_blok_reclame +iex.nl.contentwidget> +weerstationleeuwarden.nl.cookieconsent-optin-marketing + +tameteo.nl .creatividad) +veronicasuperguide.nl .css-12wfacz + +dumpert.nl .css-12wfvx3 + +dumpert.nl .css-1e3vcj9) +veronicasuperguide.nl .css-1t8ljyq + +dumpert.nl .css-44y8rm + +dumpert.nl .css-50zgs1 + +dumpert.nl .css-izjevn  +voetbaluitslagen.com.cta + menttv.be.cta-container) +voetbaluitslagen.com .cta__toplist" + +kekmama.nl.cts-row-wrapper) +zelfmaak-ideetjes.nl .da-containerÝ +albrandswaardsdagblad.nl +barendrechtsdagblad.nl +ridderkerksdagblad.nl +zoetermeersdagblad.nl +rijswijksdagblad.nl +voorburgsdagblad.nl +goudsdagblad.nl + dagblad010.nl + dagblad070.nl.ddbad_wrapper! + +radionl.fm.desktop_mobile + touretappe.nl +.desktopad' + flashscore.nl.detailLeaderboard +sliedrecht24.nl.dfad‰ +gelderlander.nl + goedgevoel.be + destentor.nl + bndestem.nl + tubantia.nl +hln.be +pzc.nl +ad.nl +bd.nl +ed.nl.dfp+ +dagelijksekost.een.be.dish-sponsors  + +rkvvo.nl.divFooterBanner  + +rkvvo.nl.divHeaderBanner +tpo.nl.dus6 +androidplanet.nl + +iphoned.nl.dynamic-content= +androidplanet.nl + +iphoned.nl.dynamic-content-native# +turksemedia.nl .easingslider( + +decibel.nl.edgtf-carousel-holderM + 247spice.com9.elementor-element-2da19501 + .elementor-element-6406e4833 +cryptobenelux.com.elementor-element-3839f8f- + biflatie.nl.elementor-element-3f470751 +dartsactueel.nl.elementor-element-4a0fad51 +domstadradio.nl.elementor-element-a6b91341 +dartsactueel.nl.elementor-element-b29a928. + mr-online.nl.elementor-element-b8e990e- + radio182.nl.elementor-element-bf3ae4f1 +dartsactueel.nl.elementor-element-cda7c32. + mr-online.nl.elementor-element-da14229, + biflatie.nl.elementor-location-popup) + biflatie.nl.elementor-popup-modal; +motorrijder.be%.elementor-widget-container > a > img: +aalsmeervandaag.nl .elementor-widget-media-carousel1 +radiocontinu.nl.eskimo-carousel-container +sol2.nl.et_pb_image_0³  +sol2.nl .et_pb_slider2 +noordkopcentraal.nl.ewic-slider-pro-widget- +pornoplekje.nl.exitpopup-modal-window( +crypto-insiders.nl.exp-google-ad + musicmeter.nl .external> +escortgirls.be + topescort.nl + sexguide.nl .fBanners +voetbalzone.nl.fco-ad% +voetbalzone.nl.fco-openweb-ad. +voetbalzone.nl.fco-sponsored-text-link +fd.nl .fd-message, +ml5.nl.fl-module-uabb-image-carousel‡ +id.nlz.flex.items-center.justify-center.mx-auto.min-h-\[280px\].md\:my-2.w-\[336px\].h-\[280px\].md\:w-\[970px\].md\:h-\[250px\]÷ +webcam-hoekvanholland.nl +webcamschiermonnikoog.nl +webcam-havenijmuiden.nl +webcams-scheveningen.nl +webcam-monnickendam.nl +webcam-binnenvaart.nl +webcam-friesemeren.nl +webcam-hindeloopen.nl +webcam-vlaardingen.nl +webcams-vlissingen.nl +webcam-lauwersoog.nl +webcam-leeuwarden.nl +webcam-zwartsluis.nl +webcam-brandaris.nl +webcam-denhelder.nl +webcam-dordrecht.nl +webcam-enkhuizen.nl +webcam-maassluis.nl +webcam-rotterdam.nl +webcam-terneuzen.nl +webcam-zaanzicht.nl +webcam-aalsmeer.nl +webcam-blokzijl.nl +webcam-delfzijl.nl +webcam-denoever.nl +webcam-lelystad.nl +webcam-volendam.nl +webcam-zoutkamp.nl +webcams-ameland.nl +webcam-airport.nl +webcamvlieland.nl +webcam-dokkum.nl +webcam-kampen.nl +webcam-marken.nl +webcam-workum.nl +webcams-texel.nl +webcam-sneek.nl +webcam-grou.nl .flexslider9 +bdsm-vrienden.nl!.floatLeft.marginTop.resizeImages! + heracles.nl.footer-blocks! + fcutrecht.nl .footer-logos$ +bekijkporno.nl.footer-margin# + heracles.nl.footer-sponsors + +handbal.be .footer-top) +anoniem-surfen.nl.footer-widget-1# + +ajax1.nl.footer__footer-fat; +feyenoordpings.nl + twentefans.nl.footer__partners4 +voetbalverslaafd.nl.footer__partners-wrapper + +rtvgo.nl +.footeradd! + burggolf.nl.footercontent6 +uecl-voetbal.nl +uel-voetbal.nl .footerderden + kanaalxxx.nl.fpbnrp +motorrijdenexpert.nlT.full-row.relative-row.no-padding-bottom.title-txt-btn.flat-theme.flat-theme-content/ + unitednews.sr.fullwidthbanner-containerÎ +despirituelewereld.be +westerwoldeactueel.nl +binnenvaartkrant.nl +amateursexstart.nl +dewereldmorgen.be +regioinbedrijf.nl +christmaholic.nl +hoekschnieuws.nl +noordernieuws.nl +dbsuriname.com +dehavengids.nl +sekswebsite.nl +sleutelstad.nl + dartfreakz.nl + +curacao.nu + +seksmet.nl + +shespot.nl.g + zozwanger.nl .g-single + zeelandnet.nl .g_banner + radiovisie.eu.gmollik + srherald.com.gsrhera +ninefornews.nl.gyehnsh5 + porntube.nl + +sextube.nl.happy-player-beside/ + porntube.nl + +sextube.nl.happy-section& +noordkopcentraal.nl .headbannere +voetbalnieuws.be +wielernieuws.be + televizier.nl + +gpinfo.com + tvblik.nl.header-banner1 + hardware.info.header-navigation__truelogo) + schaatsen.nl.header-partners-logo +wos.nl .header-right. +anoniem-surfen.nl.header-widget-region' +gratisoptehalen.nl .headerAdWrap +golf.be.header__bottom" + +4gamers.be.header__combell$ +ajax.nl.header__partner-link+ + eredivisie.nl.header__top__partners$ +arenalokaal.nl.header_banner! + zeelandnet.nl .hero-banner" + psvinside.nl.hide-ad-small0 +basketbal.vlaanderen.holder--divider-top + +oogtv.nl .home-banner + +funda.nl.home-billboard1 + eurogamer.nl.homepage-billboard-container0 +racingnews365.nl.homepage-casino-wrapper( +jan-magazine.nl.homepage-marquee + autosport.nl .horizontal$ + autosport.nl.horizontal-logo  +retailtrends.nl .href-a-b& + racesport.nl.hthb-notificationå +vrouwenvoetbalkrant.be +autosportkrant.be +basketbalkrant.be +volleybalkrant.be +atletiekkrant.be +voetbalkrant.com +handbalkrant.be +sport-planet.eu +hockeykrant.be +tenniskrant.be +wielerkrant.be.imu +rd.nl .infotainment/ +dansendeberen.be.inhype-bb-block-header�( + radiopros.be.inside-left-sidebarA + dolcevia.com-.ira-container.ira-format-block > .bookingaff, +reformatorischeomroep.nl .item-banner$ +defeijenoorder.nl .jet-banner% +beursgorilla.nl.js--billboard  +beursgorilla.nl .js--rect +iex.nl +.js-banner& +eurocampings.nl.js-mock-banner! +eoswetenschap.eu .l-banner* +webwoordenboek.nl.layout__main-ads +gic.nl.lead( +speeleiland.nl.leader-below-game" +rendez-vous.be .leaderBoard· +vrouwenvoetbalkrant.be +autosportkrant.be +basketbalkrant.be +volleybalkrant.be +atletiekkrant.be +voetbalkrant.com +handbalkrant.be +sneeuwhoogte.nl +sport-planet.eu +hockeykrant.be +tenniskrant.be +wielerkrant.be + tradeidee.nl + pcactive.nl + +sportid.be +psv.nl .leaderboard% + moviemeter.nl.leaderboard-bar' +monitor.iex.nl.leaderboard-downA + tvoost.be + +robtv.be +atv.be +tvl.be.leaderboardWrap- +blikopnieuws.nl.ligatus-sidebar-blockL +escortgirls.be + topescort.nl + sexguide.nl.link-buttons-container: +rtvstichtsevecht.nl + roulettefm.nl.list-sponsors+ +businessinsider.nl.ll_partnerexpert + motorboot.com.logo3 +sparta-rotterdam.nl.logo_main_sponsor_image- +sparta-rotterdam.nl.logo_slider_logos +greenkeeper.nl .logoblok( +nieuweoogst.nl.logolinks-wrapper+ + techpulse.be.magazine-sidebar-block  +humo.be.marketing-banner" +live-voetbal.com +.match-bet" + ga-eagles.nl.match-sponsor +mediacourant.nl.mc-adv + gaykrant.nl .metasliderœ +metronieuws.nl + autovisie.nl + beautify.nl + jmouders.nl + +bedrock.nl + +manners.nl + +famme.nl + +nsmbl.nl +culy.nl +want.nl.mha_container€ + volkskrant.nl + demorgen.be + margriet.nl + +libelle.nl + parool.nl + +flair.nl + +trouw.nl +humo.be.mid1-container +mijn-tv-gids.be.midzone* + autobahn.eu.min-h-280.min-h-md-250 +scholieren.com .min-h-90< +aalsmeervandaag.nl +wegdamnieuws.nl.mk-sponsorlink" +wordfeudwoorden.nl.mobblue) +radioeenhoorn.nl.module_round_box& +marktplaats.nl.mp-Listing--cas0 +marktplaats.nl.mp-Listings__admarktTitle( +marktplaats.nl.mp-adsense-header$ +financialinvestigator.nl.mpu  +wintersport.nl +.mq-banner9 + +edestad.nl'.mtb-0.ptb-15.mb-30.text-center.bg-grey + +qassa.nl .muurpapier` + autoreview.nlK.my-12.py-6.relative.border-y.border-slate-300.sm\:flex.sm\:justify-between + +schie.nu.my-5+ + dmgdeurne.nl.n2-section-smartslider +iex.nl .nativeblock% + scientias.nl.ndm-desktop-only+ + scientias.nl.ndm-mobile-header-only% +iex.nl.network:nth-of-type(2)H +escortgirls.be + topescort.nl + sexguide.nl.newbottom-fbanners  + partyflock.nl .nice-thing + nieuws.nl.nieuws-banner, +tijd.be.o-hpgrid__row-sponsoredcombo) +tijd.be.o-hpgrid__row-tijdconnect! + twentefans.nl .odd-wrapper# + flashscore.nl.oddsPlacement" +vlaamskijken.nl .order-book= +autoscout24.be +autoscout24.nl.osa-as24-placeholder, + hardware.info.overview-item--success·$ +classicstogo.nl .owl-carousel2 +lekkercryptisch.nl.p-footer__randomPartner+ +ajax.nl.page-footer__partners-block +nd.nl.page-header__ad$ +nd.nl.page-header__inner__ad$ + 123video.nl.page-load-switch/ + klokradio.nl.panel-grid.rslides-content> + tvoost.be + +robtv.be +atv.be +tvl.be .parallaxBnnr* + ewmagazine.nl + qmusic.nl.partner% +sc-heerenveen.nl .partner-grid$ +sc-heerenveen.nl .partnerlink} +voetbalindebollenstreek.nl +royalantwerpfc.be +schuttevaer.nl + clubbrugge.be + feyenoord.nl +ftm.nl .partners# + agraaf.nl.partners-carousel +golf.be.partners-holder +weespernieuws.nl.pbph- +denachtvlinders.nl.plek-boven-artikel +watersport-tv.nl.pos16' + twentefans.nl.powered-by-footer! + fhm500.nl.powered_by_page$ + fhm500.nl.powered_by_profile& +marktplaats.nl.premium-content/ + +blokker.nl.product-tile__column--criteo  + fhm500.nl.profileh_tabacx +omroephorstaandemaas.nl +rtvstichtsevecht.nl +omroepvenlo.nl + roulettefm.nl + dtvnieuws.nl +wos.nl.prom" +openingsurengids.be.promSB& +voetbalnieuws.nl.promo-element$ +fondsnieuws.nl.promo-wrapper  +synoniemen.net +.promoblok + skoften.net .promoted- + skoften.net.promoted-entry-in-content# + oneworld.nl.promotion-block! + +guidinc.nl.promotion_link6 +girlpowerradio.nl.proradio-owl-sponsorcarouselP +europa-landbouwmachines.nl +hetnieuwsvandaag.be +mijn-tv-gids.be.pub$ + +gocar.be.pub-leaderboard-top# + nedporno.com.publ11s-b0ttom/ + tostrams.nl +iex.nl.publisher-sh-spot' + guruwatch.nl.publisher-sh-spot1& + simone.nl +wfm.be .qt-sponsor + rbsradio.be .qt-sponsors& + nedporno.com.r11ght-pl4yer-169u +dagelijksestandaard.nl +wielrennenuptodate.nl +sportbookies.nl + viraal.nl +puna.nl.raw-html-component' +hoekschnieuws.nl.rbct > a > imgB + eurobench.com + belegger.nl + +debeurs.nl.recommendbanner  +wasmachines.nl +.rectangle +iex.nl .rectanglemid +iex.nl.rectanglewrap( + +nnieuws.be.region-banner-diamond& +halstadcentraal.nl .respbanners* +id.nl.richtext_richtext-cta__ldQ3jA +marktplaats.nl + 2dehands.be.right-banner-root-container& + zeelandnet.nl.row--bnr-between- + racesport.nl.rs_sponsorbanners_widget + motorblog.nl.sale) +oisterwijknieuws.nl.sam-containerô +dagelijksestandaard.nl +indeleiderstrui.nl +vechtsportinfo.nl +ajaxshowtime.com +androidworld.be +androidworld.nl +dartsnieuws.com +twenteinsite.nl + dartfreakz.nl + f1maximaal.nl + loesoe.nl + vkmag.com +fr12.nl.sda& +scholieren.com.searchvertorial* +dutchcowboys.nl.section-a-dvertise  + tvgids.nl.section-banner' +deondernemer.nl.section-branded7 + ewmagazine.nl + fotografie.nl.section-partners- +uitzendinggemist.net.serie_info_adbox- + baanwacht.nl.shailanOFF_banner_widget* + baanwacht.nl.shailan_banner_widgetÛ+ +indeleiderstrui.nl.shopsuite-widget& + wijlimburg.nl.sidebar-partners, +fcgroningen.nl.sidebar__item--banner' + hardware.info.sidebar_right_top% + radiobingo.be.single-partners) + +proshop.nl.site-background-banner# + +proshop.nl.site-home-banner" + +proshop.nl.site-top-banner + geenstijl.nl +.slajeslag" + infinance.nl.slickcarousel& + unitednews.sr.slider-container$ + omroepwest.nl.slider-wrapper# +volleyvlaanderen.be.slider5) +maaslandradio.nl +hyc.be.slides' + veluwefm.nl.slideshow_containerM + funnygames.be + funnygames.nl + +spele.be + +spele.nl.slot-container +solarmagazine.nl.sols& +live-voetbal.com.special-offer( +spidersolitairespelen.nl.spel_b1( +spidersolitairespelen.nl.spel_b2 + niburu.co .sponsers2 +sc-heerenveen.nl +bekijkporno.nl.sponsor( +omroephouten.nl.sponsor-carousel% +sc-heerenveen.nl .sponsor-grid  + radio0511.com .sponsorImg& + computable.be.sponsorartikelen) +amsterdamtigers.com.sponsorbanner + nevobo.nl .sponsorbarB +businessinsider.nl + computable.nl + 24cars.nl +.sponsored + hoimedia.com +.sponsorenŒ +volleybelgium.be +nec-nijmegen.nl +fcgroningen.nl + ga-eagles.nl + mijnserie.nl + trappers.nl + +cambuur.nl +az.nl .sponsors# +fleet-mobility.nl +.spotlight< + tvoost.be + +robtv.be +atv.be +tvl.be .squareWrap +nos.nl .ster-banner$ + autobahn.eu.sticky-incontent" + autobahn.eu.sticky-sidebar" +ninefornews.nl .stream-item0 +despirituelewereld.be.stream-item-widget +iex.nl.strossle-widget + 123video.nl .stunt-wide> +aalsmeervandaag.nl +dagbladdewest.com.swiper-wrapper +bekijkporno.nl.table + iexprofs.nl .tagwrapper. + koken.vtm.be.taxonomy-dedicated-header( + techpulse.be.td-banner-wrap-full +sportamerika.nl.tdi_133  +rtvpapendrecht.nl.tdi_149 +bollenstreekomroep.nl +rtvpapendrecht.nl.tdi_36" +omroepspakenburg.nl.tdi_48 + elegance.nl.tdi_58 + waterkant.net.tdi_68 +nu.nl.tealium3 + volkskrant.nl + demorgen.be.teaser-branded +taaloefenen.nl .tekstads  +nos.nl.teletekst__bannerK +startpagina.nl5.template-redesign-5-column-top-3-center-banner-outerƒ +deondernemer.nll.text-center > .mt-2.box-content.flex.min-h-25.max-w-full.overflow-x-hidden.bg-background-1.p-4.md\:min-h-10& + wanttoknow.nl.text-center.mb-3& + netonline.be.text_12_jobs_only2 +meerdangewenst.nl.tg-site-footer-section-1$ + +topgear.nl.theme-advertorial + +fantv.nl .tm-top-a + +fantv.nl .tm-top-c! +startpagina.nl .top-bannerü" + willem-ii.nl.top-bar-logos* + wijwedden.net.top-bookmaker-widget" +live-voetbal.com +.top-match€ + volkskrant.nl + demorgen.be + margriet.nl + +libelle.nl + parool.nl + +flair.nl + +trouw.nl +humo.be.top1-container@ +escortgirls.be + topescort.nl + sexguide.nl .topBanners + +negerin.nl.topban + +waldnet.nl.topdesk + +waldnet.nl.topmob + feyenoord.nl .totoOdds= +chatmetvreemden.be +chatmetvreemden.nl .trackerclick0 + computable.be + computable.nl +.true-logo +fok.nl.trueTop7 +uecl-voetbal.nl +uel-voetbal.nl.uitgelichtboxA +nieuwnieuws.nl+.uk-text-center[style="min-height: 250px;"]A +nieuwnieuws.nl+.uk-text-center[style="min-height: 265px;"]0 +nieuwsfiets.nu.ult-content-box-container) +nieuwsfiets.nu.us_custom_7370a357% +beursgorilla.nl.ut--rectangle + +gaynews.nl.va500 + dartfreakz.nl.vc_btn3+ + linuxmag.nl.vc_custom_1589883706945+ + linuxmag.nl.vc_custom_1590576060705) + jammfm.nl.vc_custom_15973924761353 +voetbalrotterdam.nl.vc_custom_1620132793304 + kieskeurig.nl.vda! + vagina.nl.video-fish-hook! +mo.be.view-id-banners_top" + +nnieuws.be.view-vw-banners. +rubenweytjens.be.view-weather-ads-view +vi.nl.vinl-promotionBarE +marktplaats.nl + 2dehands.be .vip-banner-top-sticky-container* + moviemeter.nl.vod-widget-container4 +wordfeudhelp.nl.w-full.my-6.text-center.hoogB +dingenvoorvrouwen.nl + autobahn.eu + +playboy.nl .wb-label + osuradio.nl .wdslider  +isgeschiedenis.nl.webads6 +baarsclassicrock.nl + tweakers.net .widebanner + tweakers.net.widebnr4 +basketballbelgium.be.widget-aoclubs-sponsors) +handbalstartpunt.nl.widget-banner) +onderwijsland.com.widget-partners) + indebuurt.nl.widget-tabs--partner* + indebuurt.nl.widget-tabs--partners} +wos.nlo.widget.rounded-lg.lg\:rounded-2xl.p-1.lg\:p-4.border.overflow-visible.lg\:w-full.lg\:max-w-\[754px\].\!mx-auto% + autoblog.nl.widget_ab_sidebar# + nieuws.nl.widget_add_widget­ +tiener-sexverhalen.nl +christelijknieuws.nl +wieheeftmijgebeld.nl +transport-online.nl +groningerkrant.nl +ecobioliving.eu +pokemonkaart.nl +ajaxfanzone.nl + jazzradar.com + visionair.nl + vmlnieuws.nl + iculture.nl + +jazznu.com + +klapjes.nl + nljug.org.widget_custom_html% +mannenstyle.nl.widget_execphp0 +riskcompliance.nl.widget_itarget_banners� +onlinekraslotenrss.nl +livestreamvandaag.be +feyenoordreport.nl +voetbalsnafu.nl + ajaxreport.nl + voetbal4u.com + psvreport.nl .widget_links( + infinance.nl.widget_links_widgetØ +tiener-sexverhalen.nl +rtvalbrandswaard.com +noordkopcentraal.nl +daemesenheeren.nl +eindtijdklok.org +omroeptholen.nl +sliedrecht24.nl + radionova.be + nljug.org + rtveen.nl.widget_media_image4 +noordkopcentraal.nl.widget_metaslider_widget' +schuttevaer.nl.widget_minisites8 +vlootschouw.nl".widget_miw_widget_multiple_images¿ +automobielmanagement.nl +rijschoolpro.nl +verkeersnet.nl + carwashpro.nl + mobiliteit.nl + infrasite.nl + spoorpro.nl + +tankpro.nl + +taxipro.nl + +ovpro.nl.widget_nlpartners0 + rtvideaal.nl.widget_random_banner_widget/ + tubelight.nl.widget_sp_image-image-link& +123geldzaken.nl.widget_sponsor- +radioreflex.be.widget_sponsors_widget0 + spreekbuis.nl.widget_spreekbuis_partnersQ +wielerflits.be +wielerflits.nl).wielerflits_ros_bravo_rectangle-halfpage  + telegraaf.nl .withBanners  + indebuurt.nl .woty-banner·( +streamwijzer.nl.wp-block-buttons# + debestevpn.nl.wpsm_promobox, + +iphoned.nl.wrap.hidden.lg\:flex.mt-8W +androidworld.nl@.wrap.overflow-hidden.relative.pt-5.z-30.sm\:h-\[90px\].sm\:pt-0# + +beurs.nl.wrapper--topbanner' +voetbalprimeur.nl[class^="Ad_"]" + bright.nl[class^="Ad_ad_"]' +at5.nl[class^="Advertisement_"]' + +gamer.nl[component-export="Ad"]5 +androidplanet.nl[data-name="featured-header"]& +9292.nl[data-testid^="gpt-ad"], +indeleiderstrui.nl[data-ub-carousel]- + delhaize.be[id*="sponsored_products"]& +regionoordkop.nl[id^="regio-"]0 + geenstijl.nla[data-ga-event^="link-tip"]9 +nbs-bouwmaterialen.nla[data-testid="linkElement"]' +nu.nla[data-type="advertorial"]# +cip.nla[href*="/ad/click/"]% +nu.nla[href*="/advertorial-"]8 + +seks.com(a[href*="https://sexlijnen.anoniem.nl/"]. + +gaynews.nla[href^="/_global/_cp.php?"]. + +gaynews.nla[href^="/_global/_fp.php?"]* + +biernet.nla[href^="/bja/ga-naar/"]( +nummerzoeker.coma[href^="/out/"]@ + zeelandnet.nl+a[href^="http://partnerprogramma.bol.com/"]5 +voetbalvandaag.bea[href^="http://unibet.me/"]@ + racexpress.nl+a[href^="http://www.onderdelenstore24.nl/"]N +sexervaringendelen.nl1a[href^="http://www.rushcommerce.com/click.php?"]8 + focus-wtv.be$a[href^="https://ads.focus-wtv.be/"]: + voetbal4u.com%a[href^="https://b1.trickyrock.com/"]+ + emerce.nla[href^="https://bit.ly/"]C + autobahn.eu + +playboy.nl"a[href^="https://casinoscout.nl/"]0 +tennisplaza.bea[href^="https://ds1.nl/"]³ +wereldstopcontacten.nl +nieuwsuitnijmegen.nl +wijchensnieuws.nl +ecobioliving.eu +radiozenders.fm + bestetop5.nl + nailtalk.nl#a[href^="https://partner.bol.com/"]? + nailtalk.nl,a[href^="https://partnerprogramma.bol.com/"]/ + zeelandnet.nla[href^="https://prf.hn/"]> + opwindend.net)a[href^="https://spannendsexcontact.nl/"]< +sexervaringendelen.nla[href^="https://tinyurl.com/"]K + doorbraak.be7a[href^="https://vnz.be"] > .w-full.object-contain.mb-21 +gids.tv"a[href^="https://www.autodoc.be/"]; + +ajax1.nl+a[href^="https://www.awin1.com/cread.php?"]@ + bollywood.nl,a[href^="https://www.onderdelenshop24.com/"]@ + omrekenen.org+a[href^="https://www.onlinebingokaart.nl/"]C +ijshockeynederland.nl&a[href^="https://www.trexrubber.com/"]8 + tweakers.net$a[href^="https://www.true.nl/?utm_"]< + tweakers.net(a[href^="https://www.truefullstaq.com/"]M +edelmetaal-info.nl3a[onclick^="javascript:pageTracker._trackPageview"]; +gostreaming.nl +tennisplaza.bea[rel*="sponsored"]3 +oisterwijknieuws.nla[target="_blank"] > img( +hoekschnieuws.nlcenter > a > img) + pcmweb.nldiv.block:nth-of-type(1)) + pcmweb.nldiv.block:nth-of-type(2)A +oisterwijknieuws.nl&div[align="center"] a[target="_blank"]` +hartvannederland.nl +vandaaginside.nl + shownieuws.nl div[class*="-bannerTopWrapper-"]] +hartvannederland.nl +vandaaginside.nl + shownieuws.nldiv[class*="-bannerWrapper-"], + meteovista.bediv[class*="AdWrapper"]) + agconnect.nldiv[class*="ad-slot"]À +ditjesendatjes.nl +webwoordenboek.nl +whiskymonkeys.com +voetbalnieuws.be +kidsenkurken.nl +meemetoranje.nl +wielernieuws.be +lovereality.nl +mannenzaken.nl + gloednieuw.nl + showupdate.nl + crimesite.nl + headliner.nl + looopings.nl + nieuws365.be + voetbal14.nl + klusidee.nl + nextplay.nl + showblad.nl + skoften.net + +fem-fem.nl + +gpinfo.com + +reality.nl + tvblik.nl +puna.nl +fok.nldiv[class*="r89-"]) +omroepbrabant.nldiv[class^="ad-"]; +deondernemer.nl + +vtwonen.nldiv[class^="adBlock_"]= +omroepbrabant.nl +reclamefolder.nldiv[class^="ad_"]1 +zoom.nl"div[class^="display-ad_container"]* +klimaatinfo.nldiv[class^="space_"]5 + weeronline.nl div[class^="styled__AdWrapper-"]½; + weeronline.nl&div[class^="styled__FooterAdWrapper-"]! + autobahn.eudiv[data-aaad]& +rtl.nldiv[data-adslot-variant]2 + basketball.nldiv[data-component="partner"]. +telefoonboek.nldiv[data-role="csaads"]/ + meerradio.nldiv[id="pristineslider.12"]$ + +drimble.nldiv[id^="ASTAGQ_"]) + motokicx.comdiv[id^="adtemplate"]/ +alblasserdamsnieuws.nldiv[id^="albla-"]$ + +sexjobs.nldiv[id^="banner-"]; +motorrijder.be + motokicx.comdiv[id^="bannerhome"]  +nuus.bediv[id^="beiaa-"]1 +gewoonvoorhem.nldiv[id^="below-article-"]" + trosfm.bediv[id^="dries-"], +dutchcryptotalk.comdiv[id^="dutch-"]* +duurzaamnieuws.nldiv[id^="duurz-"]) +handbalinside.nldiv[id^="handb-"]' +nauticlink.comdiv[id^="nauti-"]& +jaap.nldiv[id^="property_ad_"]n +gewoonvoorhem.nl + soccernews.nl + girlscene.nl + +fem-fem.nl + +reality.nl +tpo.nldiv[id^="r89-"]" + revive.nldiv[id^="reviv-"]) +voetbalbelgie.bediv[id^="voetb-"]& + zeilwereld.nldiv[id^="zeilw-"]. + +waldnet.nldiv[style*="height: 560px;"]< + +apintie.sr*div[style*="width: 300px; height: 250px;"]: + +apintie.sr(div[style*="width:300px; height:250px;"]: + routenet.nl'div[style*="width:730px; height:90px;"]v + +waldnet.nlddiv[style="clear: both; height: auto; text-align: center; padding-top: 50px; padding-bottom: 50px;"]- + +waldnet.nldiv[style="height: 300px;"]Z +bitcoinmagazine.nl +indeleiderstrui.nl + f1maximaal.nldiv[style="height:52px;"]Z +welingelichtekringen.nl + nextplay.nl,div[style="margin-top:0px;min-height:250px"]Z +welingelichtekringen.nl + nextplay.nl,div[style="margin-top:0px;min-height:252px"]Y +welingelichtekringen.nl + nextplay.nl+div[style="margin-top:0px;min-height:90px"]T +voetbalrotterdam.nl9div[style="max-width: 728px; width: 100%; height: 90px;"]R +voetbalrotterdam.nl7div[style="max-width:300px; width:100%; height:250px;"]2 + skoften.netdiv[style="min-height: 250px;"]2 + skoften.netdiv[style="min-height: 265px;"]J +gamereactor.nl4div[style="min-height: 600px; margin-bottom: 20px;"]G + +waldnet.nl5div[style="padding-top: 30px; padding-bottom: 30px;"]U +spellingoefenen.nl;div[style="text-align: left; height: 320px; width: 240px;"]8 + +gamer.nl(div[style="width: 100%; height: 280px;"]@ +landbouwgrond.nu(div[style="width: 100%; height: 320px;"]Õ +ammoniakrechten.nl +pluimveerechten.nu +varkensrechten.nu +landbouwgrond.nu +mechanisatie.nl + koemarkt.nl + +fosfaat.nu + quotum.nu + +efarm.nl3div[style="width:100%;height:320px;display:block;"]. + +waldnet.nldiv[style^="height: 280px;"]E +sommenoefenen.nl-div[style^="max-width: 960px; height:280px;"]1 +starnieuws.comdiv[style^="width : 250px"]< + +apintie.sr*div[style^="width: 300px; height: 180px;"]> + autosport.nl*div[style^="width: 300px; height: 427px;"]: + +apintie.sr(div[style^="width:300px; height:180px;"]: + +finance.nl(div[style^="width:300px; height:250px;"], +oisterwijknieuws.nlimg[alt="banner"]# + +jazznu.comimg[alt="jazznu"]% + racesport.nlimg[height="250"]= +camping-frankrijk.nl!img[style*="234px; height: 60px"]9 +rotterdambasketbal.nlimg[title^="roba_sponosor_"]2 + crimesite.nlimg[width="120"][height="240"]3 + dartfreakz.nlimg[width="120"][height="600"]% + partyflock.nlimg[width="140"]% + partyflock.nlimg[width="160"]/ + gratis.nlimg[width="160"][height="600"]1 + prewarcar.nlimg[width="160"][height="92"]= +rtvmiddenholland.nl +climaximaal.nlimg[width="200"]# + webstick.nlimg[width="220"]" + +jazzism.nlimg[width="250"]”, +>ÿï08@R.agconnect.nl#?#.c-teaser:has(.c-pill--partner) +Eÿï08@R5delhaize.be#?#.product-item:-abp-contains(Gesponsord) +oÿï08@R_krefel.be#?#div[class^="Flex-styled__StyledFlex-"]:has(h3:-abp-contains(Gesponsorde producten)) +Uÿï08@REmarktplaats.nl#?#.hz-Listing--list-item:-abp-contains(Topadvertentie) +qÿï08@Ra2dehands.be#?#.hz-Listing--list-item:-abp-has(.hz-Listing-priority:-abp-contains(Topadvertentie)) +]ÿï08@RMalmere-nieuws.nl#?#.wpb_wrapper:has(.section-heading:-abp-contains(partners)) +±ÿï08@R amstelveensnieuwsblad.nl,baarnschecourant.nl,barneveldsekrant.nl,bennekomsnieuwsblad.nl,biltschecourant.nl,deputtenaer.nl,derijnpost.nl,destadamersfoort.nl,destadgorinchem.nl,dewoudenberger.nl,edestad.nl,ermelosweekblad.nl,harderwijkercourant.nl,hcnieuws.nl,hetkompashardinxveld-giessendam.nl,hetkompassliedrecht.nl,houtensnieuws.nl,huisaanhuiselburg.nl,huisaanhuisoldebroek.nl,leusderkrant.nl,nieuwsbladdekaap.nl,nunspeethuisaanhuis.nl,recreatiekrantveluwe.nl,regiosportveenendaal.nl,rijnenveluwe.nl,scherpenzeelsekrant.nl,soestercourant.nl,stadnijkerk.nl,stadwageningen.nl,weekbladvoorouderamstel.nl,wijksnieuws.nl#?#.component__plugin:has(h6:-abp-contains(advertentie)) +bÿï08@RRautobahn.eu#?#.d-none.d-md-block.mb-3:-abp-has(a[target="_blank"][rel="noopener"]) +[ÿï08@RKbuienradar.nl#?#.linklist:-abp-has(h1:-abp-contains(Lekker Dichtbij Deals)) +cÿï08@RSbusinessinsider.nl#?#.widget_custom_html:-abp-has(h2:-abp-contains(Beter Beleggen)) +{ÿï08@Rkduurzaamnieuws.nl#?#.avia_codeblock_section:-abp-contains(Duurzaamnieuws wordt mede mogelijk gemaakt door:) +Rÿï08@RBfonq.nl#?#[data-cy="plp-tile-container"]:-abp-contains(Gesponsord) +6ÿï08@R&fonq.nl#?#li:-abp-contains(Gesponsord) +yÿï08@Rigeenstijl.nl#?#.article.row.no-image:-abp-has(.row.compost-warn:-abp-contains(- ingezonden mededeling -)) +_ÿï08@ROglutenvrij.nl#?#.Article__inner:has(.Article__title:-abp-contains(Advertentie)) +Vÿï08@RFhardware.info,tweakers.net#?#:-abp-properties(content: "Advertentie";) +mÿï08@R]linda.nl#?#.article-column_article:-abp-has(.category-label_label:-abp-contains(Advertorial)) +ÿï08@Rolinda.nl#?#.article-row_article:-abp-has(.article-row_category.category-label_label:-abp-contains(Advertorial)) +[ÿï08@RKmediamarkt.be,mediamarkt.nl#?#[data-index-number]:-abp-contains(Gesponsord)3 + dartfreakz.nlimg[width="250"][height="250"]“ +dagelijksestandaard.nl +deaandeelhouder.be +deaandeelhouder.nl +franekeractueel.nl +dagbladdewest.com +ninefornews.nl +ucl-voetbal.nl + creditexpo.nl + unitednews.sr + omroeprsh.nl + psvinside.nl + +luister.nl + +negerin.nl + +fiets.nlimg[width="300"]6 +regio-voetbal.nlimg[width="300"][height="100"]É +goedkoopstekeukensduitsland.nl +yourlittleblackbook.me +mannennieuws.nl +streamwijzer.be +lflmagazine.nl +thatsgaming.nl + teqnation.com + advocatie.nlimg[width="300"][height="250"]& + ciaotutti.nlimg[width="300px"]* +franekeractueel.nlimg[width="310"]3 + racexpress.nlimg[width="310"][height="200"]' +abcsuriname.comimg[width="320"]. + +vives.nlimg[width="330"][height="520"]& +nauticlink.comimg[width="336"]2 + advocatie.nlimg[width="336"][height="280"]4 +minimumloon.nlimg[width="350"][height="350"]" + +jazzism.nlimg[width="400"]' +abcsuriname.comimg[width="420"]8 +dutchcryptotalk.comimg[width="468"][height="60"]< +franekeractueel.nl +climaximaal.nlimg[width="500"]5 +streamwijzer.beimg[width="500"][height="500"]" + +jazzism.nlimg[width="600"]0 + +decibel.nlimg[width="640"][height="180"]6 +nieuwsopbeeld.nlimg[width="640"][height="640"]8 +volleyvlaanderen.beimg[width="670"][height="80"]# + webstick.nlimg[width="680"]. + wildfm.nlimg[width="699"][height="90"]< +rtvmiddenholland.nl + waterkant.netimg[width="720"]m +rtvmiddenholland.nl +cryptobenelux.com +ucl-voetbal.nl + +pokeren.nlimg[width="728"][height="90"]3 + ajaxinside.nlimg[width="750"][height="400"]" + +jazzism.nlimg[width="843"]* +franekeractueel.nlimg[width="960"]: +basketballbelgium.beimg[width="970"][height="250"]1 +bol.com"section.js_slot-sponsored-products~ + landenweb.nljtable[style="margin-left: auto; margin-right: auto; border: 1px solid; width: 100%; margin-bottom: 10px;"]7 +radiocaramba.nl table[width="120"][height="600"]) +fok.nl.col-1.h4:has(.sponsorsTxt)± +androidplanet.nl˜.group.relative.flex-shrink-0.lg\:flex-shrink.lg\:first\:col-span-2.lg\:first\:row-span-2.w-\[300px\].lg\:w-auto.flex:has(div[data-name="sponsor-logo"])T +investmentofficer.nl8.io-tape-card__wrap:has(.io-tape-card__label__sponsored)^ +weer.nlO.items-center.w-full.justify-center:has(div[data-advert-placeholder-collapses])H + indebuurt.nl4.list-item.list-item--aagje:has(.list-item__sponsor)E +welingelichtekringen.nl&.post:has(a[href*="/partnerposting/"])K +ah.nl>.product-card-portrait_root__ZiRpZ:has(.promotion_root__pAAlu)- + tvgids.nl.square-item:has( > .banner)3 +plus.nl$a[data-link]:has(.sponsored-product)P +androidplanet.nl8div[data-name="post"]:has(div[data-name="sponsor-logo"])6 +bol.com'li.js_item_root:has(.dsa__list-padding)‡ +feijenoordnieuws.nll.cv-table-left > a:not([target="_blank"]):not([rel="nofollow"]):not(a[href^="https://feijenoordnieuws.nl/"])l + mediamarkt.be + mediamarkt.nlF[data-test="mms-product-card"]:has(div[data-test="mms-plp-sponsored"])¤ +gÿï08@RWmnm.be#?#.grid-item.grid-item-pebble:-abp-has(#pebble-label:-abp-contains(Advertentie)) +Yÿï08@RImoviemeter.nl#?#.footer-artikelen:has(.footer-h6:-abp-contains(Partners)) +hÿï08@RXnieuwsopbeeld.nl#?#.td_module_wrap:-abp-has(.td-post-category:-abp-contains(Gesponsord)) +]ÿï08@RMpsvinside.nl#?#.td_block_template_1:has(.block-title:-abp-contains(Partners)) +cÿï08@RStijd.be#?#.o-hpgrid__row-tijdconnect:-abp-has(h2:-abp-contains(Gesponsorde inhoud)) +~ÿï08@Rntostrams.nl#?#section.network:-abp-has(.contentheader.contentheader--network:-abp-contains(Gesponsorde links)) +Iÿï08@R9tvvisie.be,tvvisie.nl#?#.side:-abp-contains(Aanbiedingen) +“ÿï08@R‚vi.nl#?#.c-articles-list__item.c-articles-list__item--highlight:-abp-has(.c-tag.c-articles-list__label:-abp-contains(Advertorial)) +Oÿï08@R?voetbalcentraal.nl#?#.blok:-abp-has(h3:-abp-contains(Partners)) +[ÿï08@RKweer.nl#?#.shadow-lvl-2:-abp-has(a[href^="https://www.voordeeluitjes.nl/"]) +`ÿï08@RPwielerflits.nl#?#.widget-container:-abp-has(.h3.mb-4:-abp-contains(Wielerdeals)) +`ÿï08@RPwielerflits.nl#?#li.list-item.list-item-aside:-abp-has(.badge:-abp-contains(Ad)) +`ÿï08@RPwielerflits.nl#?#li.list-item.list-item-default:-abp-has(span:-abp-contains(Ad)) +@ÿï08@R0wintersport.nl#?#.mb-6:-abp-contains(gesponsord) +Sÿï08@RCwkdarts.nl#?#.wpb_wrapper:-abp-has(div:-abp-contains(#advertentie)) +bokt.nl.ad-body$ +gratisaftehalen.nl +.ads-image$ +wereldklokken.nl .adsbygoogle- +mechanisatiemarkt.nl.advert-container) +mechanisatiemarkt.nl .advert-title, +paginamarkt.nl +fok.nl .advertentie' +mechanisatiemarkt.nl .advertiser + veeteelt.nl .advertorial. +modekoninginmaxima.nl.after-content-ad! +vakantieplaats.nl.feed-ad +bokt.nl.node-adû +casinovergelijkingen.com +vergelijkbookmakers.nl +blockchainvandaag.com +livestreamvandaag.be +cryptobelegging.com +cryptotoekomst.com +feyenoordreport.nl +formula1report.com +voetbalnotering.nl +fultimateteam.com +gamblingreport.nl +voetbalvisie.com +casinoreport.nl +voetbalsnafu.nl + ajaxreport.nl + psvreport.nl + +ajaxrss.nl.top-ads-block! +directwonen.nl .top-advert  +vakantieplaats.nl.topAds \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-RU b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-RU new file mode 100644 index 0000000..b8e3be2 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-RU @@ -0,0 +1,41054 @@ +¬ +08@R .me/js/pop.js +08@R //uno.*/?t= +!ÿï08@R/js/popup.php?id= +ÿï08@R kachkachi.tk^ #AF_kph0 #AF_kph1#BlWrapper > .b-temp_rbc #JobInformerQM#MT_overroll ~ div[class][style="left:0px;top:0px;height:480px;width:650px;"]#PopWin[onmousemove] #SR_PopOver#SR_PopOverModalBackground #ad_ph_2 #ad_ph_3 #ad_ph_4 #ad_ph_8 #addsDiv#adv#adv_kod_frame#adv_kod_frame ~ #gotimer73#adv_unisound ~ #ad_module_cont > [id^="ad_module"]3/#adv_unisound ~ #main > #slidercontentContainer  #advblock #advideo_adv#advideo_adv_main_div #advm_preload#cyberinfrm_18 #eropromo_icq#export_test_inboobs #fp_adv +#fp_banner#fresh_flyroll_div#fullBannerContent +#gaminator  #girlsBar #h_24x4 #idealmedia#idealmedia_container#limonads_body#logethy_iframe#magnaInformer +#marketgid +#mmmBanner#movie_video:empty  #nor_wrap#novem_billboard#onesignal-bell-container#potok_flyroll_div #radeant #vPreloader#vid_vpaut_div! + +vk.com +vk.ru#vkMsg#winvideoPlayer!#zhlobam_net_informer_console .AdWheelClick.MIXADVERT_NET +.SC_TBlock .ad-240x400 .ad-richmedia.ad-richmedia-overlay.admachina-banner .ads300-thumb .ads600x200 .ads_600x200¸  .adsbyyottos! +mail.ru +ru +ua.adv +.adv-youdo  .advblock .advertblock.ah-teaser-wrapper.ainsyndication.airbnb-embed-frame  .ammblock.appwidget-journalpromo  .b-banner.b-journalpromo-container.b-media-banner.b-offers_type_extra .banner-label. +mail.ru +by +ru +ua .banner_box$ .base-page_center > .banerBottom!.base-page_center > .banerTop%!.base-page_center > .banerTopOver&".base-page_container > .banerRight$ .base-page_left-side > #left_ban .bc-adv.bc_adv_container.bigClickTeasersBlock .block_rekl .blockadwide.blog-post__video-ad.bottom_serial_reklama .btn_rec.cls_placeholder_gnezdo".content_rb[id^="content_rb_"] +.da-widget.da_adp_teaser.directadvert-block .e-ta-rg.flat_ads_block°«.fp-player > div[style*="position: absolute"][style*="inset: 0px"][style*="overflow: hidden"][style*="z-index:"][style*="background: transparent"][style*="display: block"] +.gaminator  .goha_ads.goha_ads_acceptable.grv-bell-host  .h_banner0,.header-banner > #moneyback[target="_blank"].health-inline-ads .idealmedia0,.itemLinkPET.plista_widget_belowArticle_item.j-li_sidebar-banner.js-ognyvo__item.js-setka-media.lj-recommended .madv .mc_cars_row  .mediaget.medicinetizer .merc_title .merc_title_2 .modul-search.module-one-search .mov_ads.mts_ad_widget.mtt-adhesion-container+'.mywidget__col > .mywidget__link_advert .ncwAdCommon62.novelty-banner ~ .dle_b_help > a[target="_blank"]§ +.novinator .onona-block.pb_left_banner.pb_right_banner .pb_top_img)%.pip-video-wrapper > .pip-video-label)%.player-wrap > #kt_player ~ .spot-box.plista-powered95.pop-transformer-form[style*="2C3F57"][style*="flex"] .pr-AVA .pr-AVA2 .redtram.roxot-dynamic.serp-adv__banner".serp-block_type_market-offers.shareaholic-ad.smi24__informer.sp_search2_table.sp_search3_table.sp_search_table.surbis_banner .tiezerlady  .topbaner51.travelpayouts_container-offers-carousel.carousel.tv-grid__item-adv-content.tv-grid__item-adv_wide_no^Z.tv-grid__item.tv-sortable-item.tv-sortable-item_sortable_no.tv-sortable-item_draggable_no .vit_adf.webnavoz_notificationbox +.ya-direct .ya-partner .yandex-rtb.yandex-rtb-blockDIV[id^="DIV_NNN_"]%![class^="flat_"][class*="_cross"]$ [class^="flat_"][class*="_crss"]%![class^="flat_"][class*="_modal"]#[class^="flat_"][class*="_out"]$ [class^="fpm_"][class*="_cross"]#[class^="fpm_"][class*="_crss"]$ [class^="fpm_"][class*="_modal"]"[class^="fpm_"][class*="_out"]GC[data-href^="https://download.cdn.yandex.net/yandex-tag/weboffer/"][data-la-block-show-id][data-la-block][data-la-custom-block][data-la-refresh-timeout][data-la-show-block-id][data-la-show-id]40[data-link*="//sub"][data-link*="bubblesmedia."]#[data-link*="//ufiler-pro2.ru"][data-link*="/sb/clk/"]%![data-link*="://topclicks.club/"][data-link*="://ubar-pro"][data-membrana-container],([data-src^="https://news.te.ua/widget/"]$ [data-url*="://installpack.net"][href*=".drp.su/"]ref*="//loadbrowser.ru/"] [href*="//takenewsofts.ru/"][href*="/uni-tds.com/"][href*="/vaigowoa.com"][href*="://browseit.ru/"]"[href*="://click.1k3pub.com/"]ÿ"[href*="://click.1k3web.com/"]"[href*="://click.1k3web.net/"][href*="://clickpzk.com/"][href*="://drp.su/"]#[href*="://edgrmtracking.com/"]%![href*="://go.leadgid.ru/aff_c?"][href*="://morelnk.ru/"]Ë +worldofwarplanes.ru +worldofwarships.ru +worldoftanks.com +worldoftanks.ru +wowslegends.com + wowsblitz.com + wotblitz.com + +caliber.ru![href*="://redir.wargaming.net/"]![href*="://shopblogger.top/"]*&[href*="://simpalsid.com/ad/click?id"]+'[href*="://track.leadbazaar.co/click?"]![href*="driftawayforfun.com"][href*="driverpack.io/"]8 +media.hubfiles.gdn[href*="media.hubfiles.gdn"][href*="pigiuqproxy.com"][href*="postlnk.com"]B>[href^="https://download.cdn.yandex.net/yandex-tag/weboffer/"])%[href^="https://pxl.leads.su/click/"]($[href^="https://trkleads.su/click/"] [id^="n4p_"]d^="newPortal_informer_"]#[id^="relap-custom-iframe-rec"]-)[id^="unit_"] > a[href*="://mirtesen.ru"]($[id^="unit_"] > a[href*="://vrf.ru"]$ [id^="unit_"] > a[href*="smi2."][onclick*=".twkv.ru"][onclick*="//msetup.pro/"]0,[onclick*="//sub"][onclick*="bubblesmedia."][onclick*="/sb/clk/"][onclick*="mixadvert.com"]<8[onclick*="msetup"][onclick*="partner"][onclick*="utm_"]![onclick*="traffic-media.co"][onclick*="trklp.ru"][src*="://dynspt.com/"][src*="mixadvert.com"][src^="//am15.net/?"]UQa[class*="button"][href^="//"][href*="yandex"][onclick*="dnl"][onclick*="knopka"]EAa[class*="button"][href^="/go/"][href*="visitid"][onclick*="dnl"] a[data-href*="recreativ.ru"]w +online.sberbank.ru + b-kontur.ru + +pokupay.ru + sunsim.ru+a[href*="&utm_medium=cpa"][target="_blank"]a[href*=".adsbid.ru"]a[href*=".braun634.com/"]8 +converteam.onlinea[href*=".converteam.online"]a[href*=".orgsales.ru"]a[href*=".pokupkins.ru"]; + +refocus.ru'a[href*=".refocus.ru"][target="_blank"]a[href*=".twkv.ru"]a[href*=".ufiler.pro/"]K + tribuna.com + +winline.ru + sports.rua[href*=".winline.ru/"]$ +yvok.rua[href*=".yvok.ru"]a[href*="//12traffic.ru/"]a[href*="//1xbetlk.site/"]&"a[href*="//24smi."][href*="/top/"]* + admag.proa[href*="//admag.pro/"]a[href*="//adoffer.pro/"] a[href*="//adretarget.net/"]a[href*="//advtise.ru/"]a[href*="//appt12mn.com/"]a[href*="//avertise.ru/"] a[href*="//bestonewos.com/"]"a[href*="//clickdome.online/"]a[href*="//dagamah.com/"]a[href*="//do-rod.com/"]'#a[href*="//dzen.ru"][href*="favid"]ªa[href*="//ext-load.net"]a[href*="//febrare.ru/"] a[href*="//fofuvipibo.com/"] a[href*="//gerocenius.com/"]!a[href*="//getmybrowser.ru/"]a[href*="//givemysoft.ru/"]%!a[href*="//go.leadassets.net/r/"]#a[href*="//go.webredir.net/r/"]#a[href*="//historategory.com/"]a[href*="//loderla.online"]a[href*="//loderls.ru"]a[href*="//loderlx.ru"]a[href*="//loderna.ru"], + +mobiads.rua[href*="//mobiads.ru/"]"a[href*="//myblogshop.top/r/"]a[href*="//newbrowser.me/"]a[href*="//offergate.pro/"]a[href*="//parandeya.com/"] a[href*="//partners.house/"] a[href*="//portakamus.com/"] a[href*="//refpabjgth.top/"] a[href*="//refpaewsbc.top/"]"a[href*="//reruniversal.com/"] a[href*="//restofarian.com"]a[href*="//softboxik1.ru/"]a[href*="//spishi.vip/"]+'a[href*="//sub"][href*="bubblesmedia."]a[href*="//tdsrotate.ru/"]a[href*="//tekaners.com/"]"a[href*="//tiruniversal.com/"]!a[href*="//tranqvilius.com/"]a[href*="//ubar-pro"]a[href*="//ubar.pro"]a[href*="//ufiler-pro2.ru"]6 +ukrmedia.centera[href*="//ukrmedia.center/"]#a[href*="//universalice.info/"]"a[href*="//universalie.info/"]#a[href*="//universalies.info/"]"a[href*="//universalin.info/"]#a[href*="//universalini.info/"]"a[href*="//universalse.info/"]"a[href*="//universalut.info/"]a[href*="//utimg.ru/"]"a[href*="//viruniversal.com/"]!a[href*="//webbrowser.club/"]a[href*="//yojlf.com"]a[href*="//zen.yandex.ru/"]$ a[href*="/advertisesimple.info"]a[href*="/advjump.com"], + advtise.neta[href*="/advtise.net"]a[href*="/afftraf.co/"]%!a[href*="/api/redirect?offerid="]a[href*="/ber-ter.com"]0 + bodyclick.neta[href*="/bodyclick.net"]a[href*="/clubleads.ru"]a[href*="/eversaree.bid"]a[href*="/fastvk.com"]a[href*="/get-torrent.ru"]a[href*="/go.1k3.net/"]a[href*="/installpack.net"]a[href*="/kshop3.biz"]a[href*="/loaderu.ru/"]4 +luckproducti.rua[href*="/luckproducti.ru"], + maniya.infoa[href*="/maniya.info"]—a[href*="/mosday.ru/ad/"]"a[href*="/myuniversalnk.com/"]"a[href*="/myuniversalnk.net/"] a[href*="/newbrowser.club/"]($a[href*="/ogclick.com/api/redirect"].*a[href*="/onvix.co/promo/"][target=_blank].*a[href*="/onvix.me/promo/"][target=_blank].*a[href*="/onvix.tv/promo/"][target=_blank]a[href*="/rapidtor.ru"]a[href*="/rapidtor.site"]+ +relap.ioa[href*="/relap.io/adv/"], + rikkobr.coma[href*="/rikkobr.com"] a[href*="/rlink/simptizer/"]a[href*="/sarimsolus.com/"]a[href*="/sb/clk/"], + skiles.linka[href*="/skiles.link"]0 + starinform.rua[href*="/starinform.ru"]. + traforet.coma[href*="/traforet.com"]a[href*="/u-loads.ru/"]a[href*="/uloads.ru/"]a[href*="/uni-lnk.com/"]"a[href*="/universal-lnk.net/"]!a[href*="/universallnk.net/"]!a[href*="/universalsrc.com/"]!a[href*="/universalsrc.net/"]a[href*="/vkout.ru"]a[href*="/yfiles1.ru"]6 + 101xp.com#a[href*="101xp.com/?utm_source=ad"]' + 1xwgn.xyza[href*="1xwgn.xyz"]% +2di.sitea[href*="2di.site"]($a[href*="://101partners-stat2.com/"]a[href*="://adv-views.com"] a[href*="://analyticsq.com"]!a[href*="://bestnewsoft.ru/"] a[href*="://betahit.click/"]$ a[href*="://bs.serving-sys.ru/"]!a[href*="://bubblevard.com/"]a[href*="://chikidiki.ru"] a[href*="://click2soft.ru/"] a[href*="://clickbytes.ru/"]a[href*="://clickfrm.com/"]/ + clickio.coma[href*="://clickio.com/"]a[href*="://clickrpk.com/"]!a[href*="://clickstats.fun/"]$ a[href*="://clickstats.online/"] a[href*="://clickstats.pw/"]!a[href*="://cozibaneco.com/"]a[href*="://dafeb.ru/"]a[href*="://dmtech05.com/"])%a[href*="://downloadbrowsernew.com/"]&"a[href*="://downloadcontent2.ru/"]!a[href*="://doxod24.online/"]#a[href*="://edugrampromo.com/"]a[href*="://elgrur.com/"]a[href*="://et-cod.com/"]a[href*="://etcodes.com/"]a[href*="://extlinka.ru/"] a[href*="://fast2click.ru/"] a[href*="://filesmytop.ru/"]a[href*="://filetaker.ru/"]a[href*="://folltiz.site/"]/ + gdz-ru.worka[href*="://gdz-ru.work/"]a[href*="://gertadv.ru/"] a[href*="://getbrauzer.ru/"]û a[href*="://getfiletds.ru/"]!a[href*="://getyoursoft.ru/"] a[href*="://getyousoft.ru/"]"a[href*="://go.btraffic.net/"]&"a[href*="://go.bundlebyte.net/r/"]#a[href*="://go.click2bit.net/"]&"a[href*="://go.progfile.space/r/"] a[href*="://gonewfiles.ru/"]$ a[href*="://gopremiumsoft.com/"] a[href*="://gridsiali.com/"],(a[href*="://hypmag.ru/search/pereh.php"] a[href*="://installpack.ru"]a[href*="://kinobud.site/"]%!a[href*="://landingtracker.com/"]a[href*="://lapina.best/"]a[href*="://lapina.xyz/"]a[href*="://lobar.site/r/"]a[href*="://loderkkis.ru"]"a[href*="://manysoftlink.ru/"]a[href*="://matchnow.info"]J +mediasyndicate.ru/a[href*="://mediasyndicate.ru"][href*="banner"]G + mt-pbs.te.ua1a[href*="://mt-pbs.te.ua"][target="_blank"] > img"a[href*="://mysoftrotate.ru/"]&"a[href*="://new.torrent-pack.ru/"]"a[href*="://newbrowserme.ru/"]*&a[href*="://offergate-apps-phkr.com/"] a[href*="://ourbrowser.net"]a[href*="://parandaya.com"]"a[href*="://premiumredir.ru/"]#a[href*="://profiledbase.com/"] a[href*="://r.advg.agency/"]!a[href*="://r.advmusic.com/"]"a[href*="://ref.studwork.ru/"]!a[href*="://refpamjeql.top/"] a[href*="://reidancis.com/"]a[href*="://riaccaw.com/"]9 +rotagmbetdog.xyza[href*="://rotagmbetdog.xyz/"]a[href*="://ruonline.bar/"]!a[href*="://ruprivate.club/"] a[href*="://sdertjnbv.xyz/"]"a[href*="://search-cdn.ru/r/"]!a[href*="://searchlnk.ru/r/"] a[href*="://segodnia.club/"]!a[href*="://shusnarmuk.com/"]- + +smi.experta[href*="://smi.expert/"]+ + smi.todaya[href*="://smi.today/"] a[href*="://softclicks.ru/"]!a[href*="://sugisatomi.com/"]!a[href*="://superiortds.ru/"]!a[href*="://takenewsoft.ru/"] a[href*="://tatarkoresh.ru"]"a[href*="://tdsrotations.ru/"]a[href*="://techdmn.com/"]51a[href*="://telamon"][href*="/tracker/?partner="]a[href*="://tele.gg/"]3/a[href*="://tlmnt"][href*="/tracker/?partner="]!a[href*="://topclicks.club/"]a[href*="://topsofto.ru/"],(a[href*="://tracker.partnersmelbet.ru/"]&"a[href*="://tracker.rioaffi.com/"]%!a[href*="://ufiler-download.ru/"] a[href*="://ufiler-pro.ru/"]!a[href*="://viewfilesup.ru/"] a[href*="://vpnbrowser.ru/"]Ñ%!a[href*="://vse-sdal.com/promo/"]5 + vsesdal.com a[href*="://vsesdal.com/promo/"]L + tribuna.com + +winline.ru + sports.rua[href*="://winline.ru"]$ a[href*="://womens-journal.ru/"],(a[href*="://www.meendoru.net/?partner="]"a[href*="://ya-browser.ru/r/"]a[href*="://ya-cdn.ru/r/"]"a[href*="://ya-distrib.ru/r/"]a[href*="://yadistr.ru/"]#a[href*="://yasearchcdn.ru/r/"]a[href*="://yourlnk.ru/r/"].*a[href*="://z.cdn.traffic"][href*="/load"]K + abs-cdn.org + tribuna.com + sports.rua[href*="abs-cdn.org"]3 +actionteaser.rua[href*="actionteaser.ru"]' + adbid.biza[href*="adbid.biz"]a[href*="adpool.bet/"]a[href*="ads-provider.com"]a[href*="ads2-adnow.com"]? +adsmedia-provider.com a[href*="adsmedia-provider.com"]/ + advclicks.neta[href*="advclicks.net"]9 +advert-content.coma[href*="advert-content.com"]a[href*="advertwebgid.ru"]+ + aff-ads.coma[href*="aff-ads.com"]a[href*="amgfile.ru"]%!a[href*="amigo-biz.ru/ads/click"]3 + autochetki.rua[href*="autochetki.ru"] img a[href*="awesomeredirector"]a[href*="beauty-list.ru"]!a[href*="bestforexplmdb.com"]* + +betcity.rua[href*="betcity.ru/"]a[href*="bgrndi.com"]+ + bigleads.rua[href*="bigleads.ru"]5 + +binomo.com!a[href*="binomo.com/promo"] > imga[href*="browser-ru.site"]†# +mobile-4at-obshenie.chatovod.ru +forum.zaycev.net + oknotivi.ru + opa-kino.ru + +catcut.neta[href*="catcut.net"]a[href*="clickscloud.net"]a[href*="cmsmodnews.com"]+'a[href*="cosmolot.me/"][href*="banner"]- + cpagette.coma[href*="cpagette.com"]- + cpagetti.coma[href*="cpagetti.com"]a[href*="cpagetti1.com"]/ + cpagettio.coma[href*="cpagettio.com"]/ + cpaggetti.coma[href*="cpaggetti.com"]- + cpaggetti.rua[href*="cpaggetti.ru"]/ + cpamatica.coma[href*="cpamatica.com"]a[href*="cpl1.ru"]a[href*="cpl11.ru"]= +directadvert.ru$a[href*="direct"][href*="advert.ru"]= +download-center.cluba[href*="download-center.club"]a[href*="ex.24smi.info"]a[href*="feellights.ru"]a[href*="filebase.me"]a[href*="films.ws"]a[href*="flylinks.pw"]a[href*="fortedrow.pro"]a[href*="ftpglst.com"]3 +globalteaser.rua[href*="globalteaser.ru"]a[href*="go.ad2up.com"]a[href*="gocdn.ru"]a[href*="goext.info"]a[href*="goodtrack.ru"]a[href*="gpclick.ru"]a[href*="herrabjec.pro"]&"a[href*="homework.ru/?partnerId="]Á"a[href*="https://relap.io/r?"]a[href*="idealmedia.io"]P + incrypted.net9a[href*="incrypted.net"][href*="banner"][target="_blank"]5 +installoffer.neta[href*="installoffer.net"]a[href*="intovarro.ru"]&"a[href*="joycasino.com/?partner="]a[href*="katuhus.com"]a[href*="kinqon.ru"]a[href*="kma1.biz"] a[href*="kodielinktrust.ru"]a[href*="kshop2.biz"]a[href*="land-gooods.ru"]/ + leadadvert.rua[href*="leadadvert.ru"]@ +cashbackmenu.ru'a[href*="lenkmio.com"][target="_blank"]a[href*="lifebloggersz.ru"]a[href*="lifenews24x7.ru"]a[href*="linkmyc.com"]"a[href*="litewebbusiness.com"]a[href*="m1cpl.ru"] a[href*="makegreat.website"]? +marathonmirrorbet.com a[href*="marathonmirrorbet.com"]a[href*="media-rotate.com"]5 +medicinetizer.rua[href*="medicinetizer.ru"]a[href*="mixadvert.com"]a[href*="muz-loader.site"]a[href*="navaxudoru.com"]a[href*="netcrys.com"]"a[href*="news"][href*="favid"]D +news-network.ru+a[href*="news-network.ru"][target="_blank"]a[href*="news-sphere.com"]B +newsnetwork.ru*a[href*="newsnetwork.ru"][target="_blank"]a[href*="nhebd.xyz"]3 +novostimira.biza[href*="novostimira.biz"]a[href*="octoclick.net"]a[href*="offhealth.ru"]) + +omnicpa.rua[href*="omnicpa.ru"]= +onetwoaffiliates.coma[href*="onetwoaffiliates.com"]3 +people-group.sua[href*="people-group.su"] a[href*="please-direct.com"]a[href*="please-direct.me"]a[href*="problogrus.ru"]1 +promoheads.coma[href*="promoheads.com"]a[href*="re-directme.com"]3 +reals-gooods.rua[href*="reals-gooods.ru"]- + recreativ.rua[href*="recreativ.ru"]+ + redtram.coma[href*="redtram.com"]a[href*="refpazus.top"]a[href*="retagapp.com"])%a[href*="rexchange.begun.ru/rclick?"]- + rootmedia.cca[href*="rootmedia.cc"]; + runetki.com + +runetki.tva[href*="runetki.com"]a[href*="sandratand.ru"]a[href*="sapmedia.ru"]a[href*="shakes.pro"]a[href*="shakescash.com"]a[href*="shakesclick.com"]a[href*="shakesin.com"]a[href*="shakespoint.com"]a[href*="slovosil.com"]!a[href*="sviruniversal.com/"]a[href*="tdstrk.ru"]3 +teasermoney.coma[href*="teasermoney.com"]#a[href*="thor-media.ru/click/"]1 +tizerclick.coma[href*="tizerclick.com"]Ïa[href*="top.24smi.info"]a[href*="torrentum.ru"]< + helloprice.ru%a[href*="tovar.helloprice.ru/click/"]a[href*="tptrk.ru"]a[href*="trafgid.xyz"]a[href*="traflabs.xyz"]+ + trafmag.coma[href*="trafmag.com"]a[href*="trk-1.com"]a[href*="trklp.ru"]a[href*="trtkp.ru"]1 +true-gooods.rua[href*="true-gooods.ru"]a[href*="turbotraf.com"]a[href*="tvks.ru"]a[href*="tvkw.ru"]a[href*="tvroff.net"]a[href*="twtn.ru/"]a[href*="ultrabit.ws"]5 +universallnk.coma[href*="universallnk.com"] a[href*="webdiana.ru/click"])%a[href*="wow-partners.com/click.php"]% + +nnn.rua[href*="www.nnn.ru"]1 +wwwapteka.infoa[href*="wwwapteka.info"]"a[href*="xxxrevpushclcdu.com"]a[href*="zdravo-med.ru"]($a[href="http://advert.mirtesen.ru/"]a[href^="/go/ubar?"]a[href^="/go/ufiler?"]<8a[href^="/images/obmen/"][href$=".php"][target="_blank"]E +amigo-source.website'a[href^="http://amigo-source.website/"]$ a[href^="http://amigodistr.ru/"]3 + amigoman.pwa[href^="http://amigoman.pw/"]1 + +amigone.pwa[href^="http://amigone.pw/"]'#a[href^="http://apytrc.com/click/"]'#a[href^="http://browserload.info/"] a[href^="http://datxxx.com"] a[href^="http://eaplay.ru/"]"a[href^="http://fly-shops.ru"])%a[href^="http://glprt.ru/affiliate/"] a[href^="http://kshop.biz/"]-)a[href^="http://luckiestclick.com/goto."]!a[href^="http://olivka.biz/"],(a[href^="http://putanapartners.com/go."]%!a[href^="http://reals-story.ru/"]a[href^="http://tds-2.ru"]-)a[href^="http://traderstart.mirtesen.ru"]$ a[href^="http://trafmaster.com"]3 + 20idei.ru a[href^="https://20idei.ru"] > *2 + +bither.onea[href^="https://bither.one/"]40a[href^="https://bongacams"][href*="com/track?"]: +lesta.ru(a[href^="https://click.track-lesta.ru/"]#a[href^="https://homyanus.com"]+'a[href^="https://kshop"][href*=".com/"]+'a[href^="https://kshop"][href*=".pro/"]!a[href^="https://msetup.pro"]2 +pari.ru!a[href^="https://pari.ru/promo/"]73a[href^="https://relap.io/"][href*="promo_ad_link"]JFa[href^="https://wcm-ru.frontend.weborama.fr/fcgi-bin/dispatch.fcgi?"].*a[href^="https://www.juicer.io?referrer="]L + litres.ru9a[href^="https://www.litres.ru/"][href$="#buy_now_noreg"]a[onclick*="/link-fes.ru"].*a[onclick*="https://dzen.ru/news/?favid="]8 +media-rotate.coma[onclick*="media-rotate.com"] a[onclick*="n284adserv.com"]!a[onclick*="offergate-amigo"]�6 +reklamka.ru.neta[onclick*="reklamka.ru.net"]a[onclick*="trtkp.ru"]o +meebody[onfocus*="reloadliveblock"] > #bugoverlay ~ table table[bgcolor="#dbdbdb"] td[bgcolor="#fafafa"]^ +meTbody[onfocus*="reloadliveblock"] > #bugoverlay ~ table tr > td[height^="9"][bgcolor]+'div[class*="relap"][class*="-rec-item"]'#div[class*="spklw"][data-type="ad"]div[class*="td-a-rec-id-"]!div[class^="adfinity_block_"] div[class^="bidvol-widget-"] div[class^="block_fortress"]'#div[class^="cnt32_"][id^="cnt_rb_"]div[class^="da-widget-"]div[class^="da-ya-widget"]div[class^="mixadvert"]div[class^="yandex_rtb"]div[data-adv-type="dfp"]div[data-id^="div-gpt-ad-"]84div[data-server-rendered="true"] > div[id^="block-"]51div[data-server-rendered="true"] > div[id^="la-"]div[id*="Teaser_Block"]div[id^="CGCandy"]div[id^="Crt-"][style]div[id^="DIV_DA_"]!div[id^="M"][id*="Composite"]div[id^="adfox_"]div[id^="admixer-"]div[id^="admixer_"] div[id^="adpartner-jsunit-"]div[id^="ads_games_"]div[id^="advertur_"]div[id^="b_tz_"]div[id^="beroll_rotator"]div[id^="bidvol-widget-"] div[id^="cpa_rotator_block"]div[id^="criteo-"][style]div[id^="gnezdo_ru_"]div[id^="infox_"]div[id^="itizergroup_"]div[id^="join_informer_"]div[id^="news_2xclick_ru_"]div[id^="news_nest_msk_ru"]div[id^="news_nest_net_ru"]div[id^="republer_"]div[id^="rtn4p"]div[id^="smi2adblock_"]div[id^="smi_teaser_"]div[id^="tizerws_"]div[id^="traffim-widget"]div[id^="trafmag_"]- + +vk.com +vk.rudiv[id^="vk_ads_"]div[id^="yandex_rtb"]div[id^="zcbclk"]+'div[style*="am15.net/img/player_skins"]K + 12go.asia8form[action^="//12go.asia/"][target="_blank"] > .powered2.iframe[data-src*="fwdcdn.com/frame/partners/"]iframe[id^="marketgid_"]iframe[id^="republer"]7 +kwork.ru%iframe[src*="//kwork.ru/api/widget/"]"iframe[src*="//refpakglscpj."]2 + sass.com.uaiframe[src*="//sass.com.ua/"]iframe[src*="/3647.tech"]: +adnetpartner.com iframe[src*="/adnetpartner.com"])%iframe[src*="/carta.ua/ajax/widget."]iframe[src*="/mixadv_"]ý +ÿï08@R &divid=prre_ +ÿï08@R &teasersTtl= + ÿï08@R&vk_t=*&adv_ids= +ÿï08@R -240x400_ +ÿï08@R -336x280- + 08@R-bk.ligastavok.ru^ +ÿï08@R -teasers- +08@R.*.com/show.html? +<08@R..*/video/get/?platformId*&sig=*&vbmuid=*&data= +808@R*.*/video/get/?userId*&sig=*&vbmuid=*&data= +ÿï08@R .bannerbank. +ÿï08@R .bannerbank_ +08@R.biz/next.html? +ÿï08@R.braun634.com^ +08@R.com/next.html? ++08@R.com/resources/draw_script.js + 08@R.com/services/?id= +08@R.com/vinos.js? +08@R.gold/next.html? +$ÿï08@R.htm?href=*&tm_mode= +08@R.info/next.html? +08@R.mail.ru/pixel/ +2ÿï* + marketgid.com08@R.marketgid.com^6 +uniontraff.comiframe[src*="/uniontraff.com"]&"iframe[src*="://ab.adpro.com.ua/"]LHiframe[src*="://goodgame.ru/html/embed-player/dist/index.html?partner="]'#iframe[src*="://mark-media.com.ua"]F +playmaker24.ru.iframe[src*="://match-center.playmaker24.ru/"]2.iframe[src*="://partner-widget.vse-sdal.com/"]1-iframe[src*="://partner-widget.vsesdal.com/"]#iframe[src*="://promo-bc.com/"]"iframe[src*="://rstbtmd.com/"]!iframe[src*="://vidroll.ru/"]!iframe[src*="ads.exosrv.com"]3 + bongacams.comiframe[src*="bongacams.com"]4 +directadvert.ruiframe[src*="directadvert"]-)iframe[src*="fwdcdn.com/frame/partners/"], + giraff.ioiframe[src*="giraff.io/"]iframe[src*="hd.gg33.top/"]#iframe[src*="laim.tv/rotator/"]+'iframe[src*="litres.ru/static/widgets"]4 + steambets.netiframe[src*="steambets.net/"]#iframe[src*="traffic-media.co"]"iframe[src*="trafic-media.ru"]3/iframe[src*="tureckiy-serial.ru/"][src$=".php"]iframe[src*="utraff.com"]&"iframe[src*="zhitomir.info/price"]'#iframe[src^="https://a.adtng.com/"]iframe[title="mixAd"]E + mc-terra.ru + rusdtp.ru!iframe[width="240"][height="400"]+'img[src*="://cp.beget.com/promo_data/"]"img[width="120"][height="600"]"img[width="160"][height="600"]4 + primegrid.comimg[width="468"][height="60"]!img[width="728"][height="90"]51noindex > .search_result[class*="search_result_"]Š + westmister.eusnoindex a[href^="http://www.westmister.eu/collection/"],noindex a[href^="http://www.westmister.eu/collection/"] ~ *#object[data*="ads.com/clk.swf"]object[data^="blob"]R +meHtd[background^="//cdn.livetv"] tr > td[valign="top"] + td[align="right"]thetruestory-widget-top.a-buttons.blue-but.a-check .a-buttons.green-but.a-clockvrdiv[style="width: 252px; height: 450px; position: fixed; right: 0px; top: 0px; overflow: hidden; z-index: 10000;"]š +ÿï08@R.md/ads/ +ÿï08@R .php?idadv= +-ÿï08@R.php?type=*=/js/loader.min.js +&* + kneu.edu.ua08@R.pp.ua^ +08@R.pro/code.php? + ÿï08@R.pro/up/?id=*&r= +ÿï08@R .pushPopup.js +08@R.pw/next.html? +*ÿï* + redtram.com08@R .redtram. +08@R.rest/script.js +ÿï08@R .richbanner. +08@R.ru.com/script.js +ÿï08@R.ru/ads/adfox/ +08@R.ru/next.html? + 08@R.ru/script.js?sid= +ÿï08@R +.sextizer. +#ÿï08@R.site/show/?id=*&r= +!ÿï08@R.site/up/?id=*&r= +$ÿï08@R.space/show/?id=*&r= +ÿï08@R .swf?*&link1= +ÿï08@R .swf?alink= +!ÿï08@R.swf?banner_href= +ÿï08@R.swf?click_url= + ÿï08@R.swf?flash_link= +ÿï08@R.swf?flash_url= +ÿï08@R +.swf?href= +ÿï08@R .swf?lnk= +ÿï08@R.swf?path=http +ÿï08@R +.swf?pURL= +&ÿï08@R.swf?superpreroll_url= +#ÿï08@R.swf?target=_blank& +&ÿï08@R.swf?target=_self&link +ÿï08@R.swf?targetURL= +ÿï08@R .swf?url=http +&ÿï* +beetv.kz08@R.teaser. +ÿï08@R.tizer- +ÿï08@R .tizermedia. +ÿï08@R.tizers. +!ÿï08@R.trafficbass.com^ + ÿï08@R.trafficdok.com^ +!ÿï08@R.trafficlide.com^ +ÿï08@R +.viptizer. +m * +dj19uo012yu4h.cloudfront.net* +lite.boxshot.com* + amt-games.com* + rbwtech.net08@R.wasm +& 08@R.xml?v=*&external_subid= +08@R /*.*pix.xyz^ +!08@R/*?pubId=*=branding +%ÿï08@R/*PRVD_partnerChat.js +ÿï08@R //b.*/iframe/ +0ÿï08@R //cds.*.hwcdn.net/s/*-*-*-*-*.js +08@R//jsn. +3ÿï* + mads.team* +mads.uz08@R//mads. +ÿï08@R/1script.js?*= +ÿï08@R /240x400.gif +'ÿï* +price.ru08@R /240x400_ +ÿï08@R/468-80- +ÿï08@R/700x70_ +ÿï08@R /8831_1.gif +08@R/?*=:&ids=*&r= +&08@R/?get_code&template_uid= +!ÿï08@R/?site=*admachina +"08@R/?t=*&noadult=1&pid= +08@R/?t=b&blockids= +08@R /?t=rot&pid= +08@R +/a/ipn/js/‘ +08@R +/a/pop/js/ +ÿï08@R/abnl/?ucozads^ +08@R/ad/base.js?id= +08@R +/ad_click/ +Yÿï* +online-audio-converter.com* +convert-video-online.com08@R /ad_iframe/ +ÿï08@R /adland.php +ÿï08@R +/adlift.js +ÿï08@R/adliftQueue.js +@ÿï08@R0/admin-ajax.php?action=*default*_code*_url*&rnd= +=ÿï08@R-/admin-ajax.php?action=*default_code_url&rnd= +ÿï08@R /admixer.js +ÿï08@R /admixer/ +'ÿï08@R/admixercloudcreatives. +'ÿï08@R/admixermonitorstorage. +&ÿï08@R/AdotubeYouTubePlayer. +,ÿï08@R/ads*?saitDomain=*&referrer= +"ÿï08@R/Ads.asmx/GetInfo? +ÿï08@R /ads?*mxttrf_ +ÿï08@R /adsnews. +ÿï08@R /adsteroid.js +ÿï08@R/adstil. +08@R +/adv-out/? +ÿï08@R /adv?banners= +&ÿï08@R/adwolfScriptScroll.js +ÿï08@R/afisha_banner/ +ÿï08@R /aika.swf +08@R/amcu_ +)08@R/api/content/jsonp?offerid= ++ 08@R/api/getslug*?partner_apikey= +! 08@R/api/outreach/vast/ +%ÿï08@R/api/scripts/creo?id= +(08@R/api/scripts/universal?id= + ÿï08@R/api/topl/*/*.js +08@R/b?size=*&catgry= +ÿï08@R/b_bs_killdog_ +ÿï08@R /backlinks. +ÿï08@R/baner. +Üÿï* +stalker-2-2012.ucoz.net* +ferr-um.ucoz.ru* +stocking.com.ua* + slovo-shop.ru* + churchjc.com* + fitlife62.ru* + helpsetup.ru* + market-oz.ru* + zokko.com.ua* + barva.km.ua08@R/baner/ +Šÿï* +planetarium.dn.ua* +campworld.com.ua* +uslugi.mosreg.ru* +triatek.com.ua* + pcmart.com.ua* + tambov.gov.ru* + brabrabra.ua* + churchjc.com* + zippo.net.ua* + nenc.gov.ua* + pizzamel.ru* + aplica.pl* + food16.ru08@R/baner_ +Ñÿï*% +!xn--40-6kcayb8aoh7afog0b.xn--p1ai* +xn--100-8cdz0be5b.xn--p1ai* +masterps.com.ua* +altera-auto.ru* +vyviska.com.ua* + redbubbles.ru* + mgpk.bntu.by* + +mirofox.ru08@R/baners/ ++ÿï08@R/banmas/index.php?informer= +Aÿï* +e.aviasales.ru* + xcom-shop.ru08@R /banner.gif +Rÿï* +drakescans.com* + kirmuseum.org* + +github.com08@R /banner.png +fÿï* +pervyi-tv.online* +russia-tv.online* + limehd.tv* + litehd.tv08@R /banner2.gif +08@R/banner_ +#08@R/banner_l*.php?pubId= +.ÿï08@R/bannerex.cgi/getbanner.js?id= +ÿï08@R /bannergzo/ +ÿï08@R /banners.mvc? +$€08@R/banners/*/*/0/index. +eÿï* +moto-store.com.ua* + challonge.com* +asus.com* +etsy.com08@R/banners/*_*x*? +08@R /bannerz. +ÿï08@R /bazar_fast/ +!08@R/bb/getcode?apiKey= +ÿï08@R /begun.js +"08@R/bens/somejscode*.js +08@R/bens/vinos*.js +-ÿï08@R/bfile.ashx?placeid=*&fileid= +)ÿï08@R/bframe.ashx?place=*&ids= +$ÿï08@R/block_view.php?bid= +ÿï08@R +/bn.php?s= +ÿï08@R/bodyclick.php +$ÿï08@R/branding-rotator.js +08@R /branding.js� +!ÿï08@R/branding/casino/ +ïï08@R/branding/css/ ++ÿï08@R/branding/images/*-banners. +>ÿï* + manualov.net* + vgamp.com08@R /branding/js/ +#08@R/bshow.php?dimension= +&ÿï08@R/bstats.ashx?ck=*&rnd= +ÿï08@R /by.banclk? +,ÿï08@R/cdn-cgi/pe/bag2?r*adnxs.com +,ÿï08@R/cdn-cgi/pe/bag2?r*adplus.io +-ÿï08@R/cdn-cgi/pe/bag2?r*adserv.com +-ÿï08@R/cdn-cgi/pe/bag2?r*advideo.ru +1ÿï08@R!/cdn-cgi/pe/bag2?r*aksessuarov.ru ++ÿï08@R/cdn-cgi/pe/bag2?r*am15.net +-ÿï08@R/cdn-cgi/pe/bag2?r*byzgoso.ru +3ÿï08@R#/cdn-cgi/pe/bag2?r*digitaltarget.ru +0ÿï08@R /cdn-cgi/pe/bag2?r*ecefibwja.xyz +,ÿï08@R/cdn-cgi/pe/bag2?r*gynax.com +-ÿï08@R/cdn-cgi/pe/bag2?r*hgbn.rocks +0ÿï08@R /cdn-cgi/pe/bag2?r*interfax.info +.ÿï08@R/cdn-cgi/pe/bag2?r*interfax.pw +/ÿï08@R/cdn-cgi/pe/bag2?r*itisanime.ru +1ÿï08@R!/cdn-cgi/pe/bag2?r*ledsitling.pro +,ÿï08@R/cdn-cgi/pe/bag2?r*m-shes.ru +.ÿï08@R/cdn-cgi/pe/bag2?r*mailget.net +0ÿï08@R /cdn-cgi/pe/bag2?r*mp-https.info +-ÿï08@R/cdn-cgi/pe/bag2?r*mrelko.com +,ÿï08@R/cdn-cgi/pe/bag2?r*mwcvu.com +-ÿï08@R/cdn-cgi/pe/bag2?r*mxtads.com +.ÿï08@R/cdn-cgi/pe/bag2?r*oconner.biz +/ÿï08@R/cdn-cgi/pe/bag2?r*recreativ.ru ++ÿï08@R/cdn-cgi/pe/bag2?r*rtl.info +4ÿï08@R$/cdn-cgi/pe/bag2?r*smartadserver.com +/ÿï08@R/cdn-cgi/pe/bag2?r*tizmarkov.ru ++ÿï08@R/cdn-cgi/pe/bag2?r*tlr1.biz +.ÿï08@R/cdn-cgi/pe/bag2?r*tredman.com +-ÿï08@R/cdn-cgi/pe/bag2?r*vidroll.ru +-ÿï08@R/cdn-cgi/pe/bag2?r*ytimgg.com +2ÿï08@R"/cdn-cgi/pe/bag2?r[]=*an.yandex.ru +"ÿï08@R/cgi-bin/adt.fcgi? +"ÿï08@R/cgi-bin/adv.fcgi? + ÿï08@R/cgi-bin/banner/ +!ÿï08@R/cgi-bin/banners/ +*ÿï08@R/check.php?user_id=*&mode= +ÿï08@R /clickheat. +ÿï08@R/clk.js + ÿï08@R/code/bshow.php? +08@R /codes/*.js + 08@R/comabacker.php + 08@R/comebacker.js + 08@R/comebacker.php +.ÿï08@R/content/get?*&previous_ad_id= +08@R/cout.php?sid= +"ÿï08@R/criteo_adblock.js +ÿï08@R /crt_adb.js +'08@R/cs3?user_id=*&stream_id= +08@R/cshi/ +08@R/cszz/ +ÿï08@R +/ctxtlink/ +08@R /cu.js?p= +08@R/cu.php? +ÿï08@R +/cu.php?s= +08@R/cu1.php?*&ref= +08@R /cu1.php?ref= +08@R/cu2.php?*&ref=È +08@R/cu2.php?block_ +08@R /cu2.php?ref= +$ÿï08@R/data/Siropu/images/ +ÿï08@R/datagroup.gif +ÿï08@R/delivery/fc2. +, * + cdromance.com08@R /direct.php +=* + edgemesh.com* + edgeno.de08@R/edgemesh.*.js +ÿï08@R /edu_chat.js +ÿï08@R /educhat.js + ÿï08@R/edugram_chat.js +ÿï08@R +/ekbn/src/ +&ÿï08@R/external/adliftQueue/ +.ÿï08@R/fgc.php?script=bannerTypeHtml +´ÿï* +xn--d1abblrh2byewa.xn--p1ai* + technoavia.ru* + crbmpurga.ru* + easyship.ru* + saabcity.ru* + +answear.ua* + bel-mt.ru* + yarkiy.ru08@R/files/banner/ +¬ÿï* +boysandgirls24.com* + rooborisov.by* + dsns.gov.ua* + ivory.co.il* + ksimart.com* + +aktiv48.ru* + +ksimart.ml* + pgpru.com08@R/files/banners/ +€08@R /forum?t= +ÿï08@R /fotocash.js +ÿï08@R/free/banners/ +08@R /fron_lo.js +Mÿï* +gaminator-vulcan.com* +gaminator-slot.biz08@R /gaminator- +/ÿï* +gaminator.tech08@R /gaminator. +ÿï08@R /gaminator/ +08@R/get.js?user_id= +&08@R/get.php?user_id=*&mode= +.ÿï08@R/get?script_slot=beroll_script +" 08@R/get_ads.php?player= +)ÿï08@R/get_banner_flash.*&shop= +ÿï08@R /get_tiz. +08@R/getcode/?domain= +€08@R/getThumbs?uid= +&ÿï08@R/google_adv?targeting= +08@R/grand/vinos.js +*ÿï08@R/handler_static/js/vast.js +,ÿï08@R/handler_static/swf/cndr.swf +%ÿï08@R/hh/BannerHandler.js? +ÿï08@R/hotfilebanner. +€08@R/iframe/glomu. +€08@R/iframe/inosmi. +ÿï08@R /images/ad_ +ÿï08@R /images/ban/ +ÿï08@R /images/bn/ +ÿï08@R /images/rek/ +ÿï08@R /images/rekl/ +Øÿï*' +#xn-----6kcvbohzccf5ajf4a7e.xn--p1ai* +amusement-center.com* +stavsalut.hostcrm.ru* +needcoolershoes.com* +lifestylelabel.ru* +gostas-klimat.ru* +megabitschool.ru* +chitai-gorod.ru* +themelooks.org* + besmart.pp.ua* + frosbyte.org* + flexen.tech* + webnames.ru* + +almicro.ru* + +imhonet.ru* + +miralin.ru* + +mtsbank.ru* + rustix.io* + vavlab.ru* +belby.by* +bsky.app* +fvds.ru* + +mts.ru08@R /img/banner/ +(ÿï* + +praimed.ua08@R/img/bn/ +ÿï08@R /img/bnr- +Ðÿï* +dataprotection.com.ua* + drweb-av.de* + drweb-av.es* + drweb-av.it* + drweb-av.pl* + drweb.co.jp* + drweb.com* +drweb.cn* +drweb.fr* +drweb.kz* +drweb.ru08@R /img/bnr/ +ÿï08@R +/img/rekl/ +ÿï08@R/imp.php?a_aid= +‚08@R/in.cgi? +08@R/inc/angular.js +!ÿï08@R/inc/banner_zone/ +ÿï08@R/inc/brand.css? +yÿï* +weatherwidget.org* + topvisor.com* + topvisor.dev* + finfront.ru* + mignews.com08@R /informer.js +ÿï08@R/informer.php? +(ÿï08@R/informer/script.php?id= +*ÿï08@R/informer?*&callback=__smi +08@R/initRTv2.php?id= +ÿï08@R/j65.php +ÿï08@R +/jads.php? +#ÿï08@R/javascripts/rot.js +ÿï08@R /jban.js?idd= +ÿï08@R /jollywallet/ +9ÿï08@R)/journal_proc.php?action=get_mediametric_ƒ +.ÿï08@R/jquery-2.3.1.min.js?ref=&pef= +Cÿï* +apteka9800000.ru* + myauto.ge08@R/js/banners.js + ÿï08@R/js/code.php?id= +ÿï08@R /js/girls.php +ÿï08@R/js/if.php?id= +$ÿï08@R/js/peeldown.php?id= +ÿï08@R/js/rot.php?id= +ÿï08@R/js/sjplugin.js +"ÿï08@R/js/slider.php?id= +$08@R/js/v1.2/script.min.js +08@R/js/vk.php?id= +2ÿï08@R"/json/?user_id=*&site_id=*&blocks= +ÿï08@R /jstbt.js +ÿï08@R/kmabiz/ +08@R/l*.php?pubId= +- +* + tmconsult.ru08@R /landing_btn/ +08@R +/lc?pubId= +(ÿï08@R/lentainform_widget.json +08@R/lhzbsrfkjf/js/ +ÿï08@R/linkexchange/ +ÿï08@R /load-promo/ +# 08@R/load-xml/?id=*&roll= +.ÿï* + marketgid.com08@R /marketgid_ +!ÿï08@R/marketplace.asp? +ÿï08@R/media/banners/ +4ÿï* +mediaget-download.ru08@R +/mediaget- +-ÿï08@R/mgid_automatically_creating_ +08@R /mirmaek/ +.ÿï* + mixadvert.com08@R /mixadvert. +-ÿï08@R/mp3player.swf?file=*/bb1.mp3 +-ÿï08@R/mp3player.swf?file=*/bb2.mp3 +,ÿï08@R/mp3player.swf?file=*/vk.mp3 +08@R/mSetupWidget? +&08@R/multishows/*/?rt=*&scr= +ÿï08@R /mybaner/ +ÿï08@R /myout.php?g= +08@R/native.php?b= +)ÿï08@R/nativebuzz-latest.min.js +#ÿï08@R/networks//banners/ +!08@R/news.php?sid=*&bn= +&ÿï08@R/newsanons/*?advert[]= +"ÿï08@R/nodelmag/ytjs.php +ÿï08@R/onCl1ckCU/?_= +08@R /out.php?sid= +08@R/output/index/ +'€08@R/ovp.php?ver=*&autoplay= +ÿï08@R/oyy.js + ÿï08@R/partner/banner/ +(ÿï08@R/partner/images/banners/ +08@R/pixel2/video? +!€08@R/play/?ref=*/play/ +"ÿï08@R/plugins/adhelper/ +#ÿï08@R/plz.somechange.js? +*ÿï* + lacoste.com08@R /popin.js +ÿï08@R +/popin4.js +ÿï08@R/popout.php?id= +ÿï08@R/ppndr/ + ÿï08@R/priceru_advert_ +08@R/protJS/ +!ÿï08@R/pseudocounter.js +&ÿï08@R/push.js*utm_campaign= +ÿï08@R/r_show.php?b= +08@R/ranging/*/?rand= +ÿï08@R /rbknews/Œ +(ÿï08@R/rbs_scripts/rbs_banner_ +ÿï08@R /rbt_banner/ +ÿï08@R /rcl/all/ +ÿï08@R /rcl/ban/ +ÿï08@R/redirect/cpa/ +*ÿï* + redtram.com08@R /redtram. +ÿï08@R +/reklama6. +Fÿï* +komarovskiy.net* + +mos.ru* + +vkn.lt08@R /reklama_ +$ÿï08@R/render?surfer_uuid= +ÿï08@R /richarbuz. +ÿï08@R /richbanner. + 08@R/rise.rotator-new- +ÿï08@R /rnb.php?id= +ÿï08@R +/robanner. +'ÿï08@R/rotation/r.php?format= +ÿï08@R /rotator/*.js +08@R/rsi.php +ÿï08@R /rsland2.js? +08@R /rttr*.min.js +ÿï08@R/ru-n4p/ +08@R /s/11022.js +08@R /s/11198.js +08@R +/sb.php?s= +ÿï08@R/sbn2.js +ÿï08@R +/sextizer. +$ÿï08@R/sexvodnokalssnikah/ +ÿï08@R/shared/promos/ +"ÿï08@R/shop-banner.ashx? +'08@R/show.php*^placeid=*&rnd= +'08@R/show.php*^type=*&method= +08@R/show/?block_id= +)08@R/show/out.php?t=*&async=1&v +&ÿï08@R/show_adv.php?page_id= +€08@R /showf.php?u= +!08@R/siropu/am/*.min.js +!08@R/Siropu/AM/display. +ÿï08@R /slatefp.asp +!08@R/sm/getcode?apiKey= +08@R /sm?referrer= +(08@R/sm?saitdomain=*&referrer= +(08@R/smartrotator.js?referrer= +%ÿï08@R/sovetnik.webpartner. +ÿï08@R /sphinx_*.gif +$ÿï08@R/splash/page_header/ +ÿï08@R/sprava_baner/ +08@R/src/uadlib.js +08@R/ssi.php +ÿï08@R /start_ad.js? +ÿï08@R /start_tr.js? +08@R/static/bc.js? +ÿï08@R/static/tds.js +08@R /sticker?id= +ÿï08@R/sun_*_ajax.js +ÿï08@R/swf/tionline/ +ÿï08@R/t.bbn? +ÿï08@R /talky3d.gif +08@R /tds.php?*=*= +‚ïë* +v-tatarstane.ru* +insomnihack.ch* +pik-comfort.ru* + gosuslugi.ru* + novostivl.ru* + ryazan.life* + textbook.ru* + +uplabs.com* + +yakutsk.ru* + amocrm.ru* + gitlab.io* + krym.news* + play.date* +kp.ru08@R/teaser. +ÿï08@R /teaser2. +!ÿï08@R/teaser_klubnika/ +$ÿï08@R/teaserblock.site.js +ÿï08@R /teasers. +ÿÿï* +adventuregamers.com* +business-gazeta.ru* +stackoverflow.com* +www.kinopoisk.ru* +kinobulvar.info* +wetteronline.de* +agderposten.no* +meganomkino.ru* + teaserstar.ru* + yandex.com.tr* + ableton.com* + fujifilm.eu* + gismeteo.by* + gismeteo.kz* + +yandex.com* + yandex.by* + yandex.fr* + yandex.kz* + yandex.ru* +amway.ru* +amway.ua* +babla.ru* +novsu.ru* +road.cc* + +bmw.de* + +bmw.ro* + +bmw.ru* + +rce.by* +av.by08@R /teasers/ +*ÿï08@R/testserial/vendor/vast.js‰ + ÿï08@R/tionline120x60. + ÿï08@R/tionline150x60. +!ÿï08@R/tionline240x100. +!ÿï08@R/tionline240x400. +pÿï* +metropolnemiga.by* +blogbaster.org* + cybersport.ru* + f1comp.ru* + +1ab.ru08@R/tizer- +%ÿï* +tizer.io08@R/tizer. +$ÿï* +asau.ru08@R/tizer/ +ÿï08@R/tizer2. +ÿï08@R/tizer2/ +šÿï* +designchat.com* + neyvabank.ru* + pro-obraz.ru* + mosmetod.ru* + rosmediy.ru* + stopgame.ru* + +1ab.ru* + +mos.ru08@R/tizer_ +ÿï08@R /tizermedia. +ÿï08@R /tizerotator/ +ÿï08@R/tizers/ +ÿï08@R /tizers2. +ÿï08@R /tizers3. +ÿï08@R/tizers_ +ÿï08@R /tizshow. +!ÿï08@R/topminigames.jpg +ÿï08@R /traff.js +ÿï08@R/trsm.js +ÿï08@R/ua-n4p/ +%ÿï08@R/ucodes.ru.banners.js + ÿï08@R/ucounter2.js?r= +ÿï08@R/ucoz/img/uads/ +ÿï08@R/unintrover.js +1ÿï* + mebelion.ru08@R/upload/banners/ +ÿï08@R /upload/bx/ +&ÿï08@R/upload_photo/banners/ +!08@R/uploads/slider/col +#ÿï08@R/userfiles/banners/ +ÿï08@R /utarget.js +#ÿï08@R/utarget_patched.js +ÿï08@R +/utftizer. +# 08@R/vast.php?partner_id= +ÿï08@R/vast.xml?key= +ÿï08@R +/vendshow/ +(ÿï08@R/video/?format=overroll& +ÿï08@R /videoadcode/ +ÿï08@R /viewt.js +ÿï08@R +/viptizer. +ÿï08@R /visitweb.php +08@R/vk_code.php?id= +"08@R/vknotifier1.php?id= +08@R/vkshow.php?id= +08@R /vkshow1.php? +ÿï08@R/volcano_banner +#ÿï08@R/vpaid_traforet.xml +ÿï08@R/vse-pricheski. +ÿï08@R +/vsemayki_ +ÿï08@R/w_inc/reklama. +ÿï08@R/warlog. +"08@R /wcm/?sh= +ÿï08@R +/webunder_ +ÿï08@R/widget-a-b.js +$ÿï08@R/wp-content/imgrekl/ +F08@R8/wp-content/plugins/*-background*/js/wpsite_clickable.js +2ÿï08@R"/wp-content/plugins/adsplacer_pro/ +,ÿï08@R/wp-content/plugins/aw-bnrs/ +.ÿï08@R/wp-content/plugins/distr-adv/ +6ÿï08@R&/wp-content/plugins/distr/*/distr-adv- +,ÿï08@R/wp-content/plugins/flat_pm/ +@ÿï08@R0/wp-content/plugins/nativerent/static/content.js +2ÿï08@R"/wp-content/plugins/realbig-media/ +"ÿï08@R/wp-json/adhelper/Ç +08@R /www/imgget/ +ÿï08@R /xhr_ab_block +ÿï08@R /ya-awaps2/ +08@R /youtube.php +!ÿï08@R/zozoter.php?bid= +08@R ://*.*.biz/x +&08@R://js*.*.com/js/customs/ +08@R://tds. +ÿï08@R =ads_top&rand +08@R=DIV_DA_ +ÿï08@R?a_aid=testaff& +!ÿï08@R?action=adhelper_ +ÿï08@R?ads/criteo.js +9ÿï08@R)?begun=*&begun_referrer=*&begun_location= +" 08@R?cp.host=*&cp.token= +&08@R?frm=script&se_referrer= +/08@R!?p_id=*&hold=*&subid_*sitescript& +ÿï08@R?teaser_ +ÿï08@R ^clickunder- +^ÿï* +xn----8sblrkq3eyc.xn--p1ai* +torrentpharma.ru* + gemotest.ru08@R_baner. +µÿï* + igrushki7.ua* + videoigr.net* + biotorg.com* + gemotest.ru* + laolavka.ru* + +gmk.center* + ortovm.ru* +canon.ru* +ikea.com* + +5ka.ru08@R_baner_ +ÿï08@R _banner.gif +ÿï08@R _spy2wc.org ++ÿï* +agrovit.com.ua08@R_tizer. +ÿï08@R_tizer2. +ÿï08@R_tizers. +$08@Rhttp://*.biz/js/sys.js +%08@Rhttp://*.link/js/sys.js +&08@Radforce.*/code/bshow.php +08@R +adshunter. +08@Ragency/init.js +08@R +biz/*&bid= +08@Rbiz/?pu= +ÿï08@R biz/banner/ +08@Rbiz/v^ +,ÿï08@Rcdn.*.*/load?o=v&z=*&random= +$08@Rcdn.*.agency/libs/b.js +!08@Rcdn.*.com/libs/b.js +08@Rcom/?pu= +08@R com/?pus= +08@Rcom/bgout.php?id= +08@Rcom/bout.php?id= +&ÿï08@Rcom/js/check_blocks.js +"ÿï08@Rcom/rotator.min.js +)08@Rcom/video/*^format=rotator& +08@R date/?pu= +ÿï08@Rdate/ + 08@Rde/ +0ÿï08@R emb.apl*.me/export/ltv_popup.php +08@Rfun/?pu= +08@Rin/?for= +08@R info/?pu= +ÿï08@R info/alert/ +"08@Rinfo/banner/tiz.php? +,08@Rinfo/embed_code/*/goclick?ref= +08@R info/init.js +ÿï08@R info/vk2/ +#ÿï08@Rlive/rotator.min.js +ïï08@R +madbanner. +08@Rme/?pu= +08@R +me/init.js +08@R name/?pu= +ÿï08@R net/banners/ +08@Roblivki.æ +%ÿï08@Ronline/rotator.min.js +"08@Rporno*/images/obmen/ +"ÿï08@Rpro/rotator.min.js +08@Rru/?pu= +:ÿï* + chita-game.ru* + +zabgame.ru08@Rru/ban/ +lÿï* + allplanets.ru* + gibdd-gai.ru* + knigilub.ru* + +megafon.ru* + +rsa.su08@R +ru/banner. +¡ÿï* +matematikalegko.ru* +smotriuchis.ru* + newdaynews.ru* + +autodoc.ru* + +utkonos.ru* + befree.ru* +svka.ru* + +rfs.ru08@R +ru/banner/ +’ÿï* +departamentar.ucoz.ru* +animespirit.ru* +cheese-cake.ru* +wildberries.ru* + toptracker.ru* + mrtexpert.ru* + zalivalka.ru* + citilink.ru* + webnames.ru* + +rosbank.ru* + killot.ru* + onlime.ru* +irad.ru* + +e96.ru08@R ru/banners/ +ÿï08@Rru/bpoint/bnr/ + ÿï08@Rru/code/yaoffer/ +ÿï08@R ru/i/banner/ +ÿï08@R ru/i/banners/ +!ÿï08@Rru/jquerymin18.js +ÿï08@R +ru/news.js +!08@Rru/r/get/?id=*&div= +08@Rru/resources?key= +!ÿï08@Rru/rotator.min.js +%08@Rru/show/?*=*%*%*%*%*%*& +'ÿï08@Rru/stat/*=adsstat&cntr= +(08@Rru/static/static_pc.min.js +)08@Rru/static/sticker_pc.min.js +ÿï08@R ru/t/*.php?_= +"08@Rru/text_show.php?id= +!08@Rru/tiz_show.php?id= +iÿï* +tkani-magazin.ru* + fresh-book.ru* + +rf-mods.ru* +m-mc.ru08@Rru/uploads/banners/ +08@Rservices/init.js +08@R site/*/*/ +08@R site/?pu= +08@R +site/?pus= +08@R +space/*/*/ +08@R space/jscl/ +08@R tech/*/*/ +$ÿï08@Rtoday/rotator.min.js +ÿï08@R +ua/banner/ ++ÿï* + +oneclub.ua08@R ua/banners/ +ÿï08@R ua/i/banner/ +ÿï08@R ua/i/banners/ +"ÿï08@Rua/upload/jackets/ +$ÿï08@Rucoz.*/img/ma/cv.gif +008@R v.adfox.ru^ +08@Rvip/?pu= +ÿï08@Rvst.videolink. +08@R work/?pu= + ÿï08@Rxn--p1ai/banner/ +@ 08@R2xyz/*?mobile=null&tablet=null&os=null&site=*&rand= +!ÿï08@Rxyz/teaser/block/ +)ÿï08@Rz.cdn.*.*/load?*=*=*&zyx= +08@R zone/init.js +08@Ram/rtr/ +08@Rbiz/rtr/ +08@Rby/rtr/ +08@Rcc/rtr/ +08@R club/rtr/ +08@Rco/rtr/ +08@Rcom/rtr/ +08@Res/rtr/ +08@R info/rtr/ +08@Rkz/rtr/ +08@Rme/rtr/ +08@Rnet/rtr/ +08@Rorg/rtr/ +08@Rpl/rtr/ +08@Rro/rtr/ +"08@Rru/rtr/� +08@Rso/rtr/ +** +oczuevka.moy.su08@Rsu/rtr/ +08@Rtv/rtr/ +08@Rua/rtr/ +‚08@Rchangeip.name^ +!‚08@Rchickenkiller.com^ +‚08@Rdyndns- +‚08@Rdyndns. +‚08@R itsaol.com^ +‚08@Rquelliclub.ru^ +‚08@R servebbs.net^ +&¢* + gallerix.org08@Rasia^ +ä"* +forum.worldofwarships.eu* +forum.worldofwarships.ru* +sportsvideoline3.pw* +masterclub.store* +vulpecula.host* + hdvbplayer.tk* + herokuapp.com* + dewalt.store* + live-gol.net* + liveball.uno* + movielab.pro* + tikkurila.ru* + adwiz.pp.ua* + liveball.cc* + liveball.gg* + liveball.my* + liveball.ws* + panomama.ru* + softpir.com* + vk-apps.com* + +osu.ppy.sh* + +philips.ru* + pelcn.net* + purina.ru* +tefal.ru08@Rpw^ +,08@R12go.asia/dist/prod/build.*.js +#08@R12go.asia/tools/form/ +. 08@R als-test.xyz/finserv/zgv/votezgv +1 08@R#als-test.xyz/finserv/zgv/zgvresults +("08@Rapp.dynamic.xyz/api/*/sdk/ +"08@R callback.pw^ +-ÿï* + gallerix.ru08@Rgallerix.asia^ +¢08@Rgetplr.xyz/embed + "08@Rmultilanguage.xyz^ +€08@Rmyvi.xyz/embed/ +"08@Rnyan.pw^ +) 08@Rrecheck.12go.asia/*/recheck +ÿï08@R .serialu.tv^ +ÿï08@R.steambets.net^ +08@R +.vipko.ru^ +$ÿï08@Rhttp://*.vzlomko.ru^ +‚08@R http://u.to/ +ÿï08@R003.ua^ +ÿï08@R1000zakazov.ru^ +ýï08@R123service.ru^ +ÿï08@R +1popov.ru^ +ÿï08@R +1xwgn.xyz^ +ÿï08@R2000zakazov.ru^ +ÿï08@R 24new.ru^ +ÿï08@R24s.ru^ +ÿï08@R 24smi.host^ +ÿï08@R 24smi.in^ +ÿï08@R 24smi.info^ +ÿï08@R 24smi.life^ +ÿï08@R +24smi.net^ +ÿï08@R +24smi.one^ +ÿï08@R 24smi.online^ +ÿï08@R +24smi.pro^ +ÿï08@R 24smi.pw^ +ÿï08@R 24smi.site^ +ÿï08@R 24smi.ws^ +ÿï08@R +24smi.xyz^ +ÿï08@R 2baksa.net^ +ÿï08@R2da2.ru^ +ÿï08@R2vs2.ru^ +ÿï08@R2x2.kz^ +ÿï08@R35.178.185.67^ +ÿï08@R 3d-ero.com^ +ÿï08@R3rs.ru^ +ÿï08@R 4-moto.ru/ad/ +#ÿï08@R468.vologdainfo.ru^ +ÿï08@R60sk.ru^ +ÿï08@R 7gomedia.ru^ +ÿï08@R 7rtv.com^ +ÿï08@R +8coins.ru^ +ÿï08@R 9fine.ru^¹ +!ÿï08@Ra-love.nninfo.ru^ +ÿï08@R a.fobos.tv^ +08@R a.votpusk.ru^ +'ÿï08@Ra24help.ru/_partners.js +"ÿï08@Ra24help.ru/assets/ +"ÿï08@Ra24help.ru^*scalc/ +ÿï08@R abcfilm.org^ +*ÿï08@Rabelus.ru/index/ms_reklam_ +"ÿï08@Rabs.ispsystem.com^ +ÿï08@Racademy.com.ua^ +ÿï08@Raccommon.info^ +$ÿï08@Raction.raadword.com^ +ÿï08@R activiks.ru^ +!ÿï08@Rad.aorta-net.com^ +ÿï08@Rad.fantiki.net^ +ÿï08@Rad.iplayer.org^ + ÿï08@Rad.ir.ru/bb.cgi? +"ÿï08@Rad.leongaming.com^ +ÿï08@R ad.sweb.ru^ +ÿï08@Rad1.sibnet.ru^ +ÿï08@R adbee.com.ua^ +"ÿï08@Radblockotsosal.ru^ +ÿï08@Radbn.ru^ +ÿï08@R +adbomb.ru^ +ÿï08@R +adcast.ru^ +ÿï08@Radcomplete.ru^ +ÿï08@R addflow.ru^ +ÿï08@R addisp.com^ +-ÿï08@Raddmefast.com/images/banners/ +ÿï08@R +addnow.ru^ +ÿï08@R +addweb.ru^ +ÿï08@Radgo-online.de^ +ÿï08@R adhands.ru^ +ÿï08@R adhub.ru^ +ÿï08@R +adizer.ru^ +ÿï08@R +adland.ru^ +ÿï08@Radmgarshino.ru^ +ÿï08@R admimsy.com^ +ÿï08@R admulti.ru^ +ÿï08@R adpix.ru^ +ÿï08@R adpro.com.ua^ +ÿï08@R adregain.com^ +ÿï08@R adregain.ru^ +"ÿï08@Radriverm.narod.ru^ +#ÿï08@Radriverm.narod2.ru^ +ÿï08@R adru.net^ +ÿï08@Radsellers.net^ +ÿï08@R +adtime.ru^ +!ÿï08@Radunit.chango.ca^ +ÿï08@R advaction.ru^ +ÿï08@R advertbox.ru^ +ÿï08@R advertpay.ru^ +ÿï08@Radvertpro.com^ +ÿï08@R advertpro.ru^ +ÿï08@R advvideo.com^ +ÿï08@R +adward.ru^ +$ÿï08@Raedrvt.majordomo.ru^ +2ÿï08@R"aff.sportsevents365.com^*/banners/ +)ÿï08@Raffilates.doktordick.com^ +&ÿï08@Raffiliate.vsemayki.ru^ +%ÿï08@Raflt.*.ya.ru/widgets/ +"ÿï08@Raforextrading.com^ +ÿï08@R agava.ru/b/ +%ÿï08@Ragentbilet.com/sites/Ñ +ÿï08@Ragitmedia.com^ +ÿï08@R +agrotv.ru^ +%ÿï08@Rairbnb.ru/embeddable/ +ÿï08@R akabo.ru^ +-ÿï08@Ralawar.ru/onlinegames/*&link= +(ÿï08@Ralfabank.ru/api/banners/ +ÿï08@R aliprofi.ru^ +ÿï08@R allnews24.me^ +!ÿï08@Rallnewspoint.com^ +ÿï08@R allnokia.ru^ +ÿï08@Rallsiemens.com^ +&ÿï08@Rallsportstat.ru/1xbet/ +ÿï08@R allwomens.ru^ +ÿï08@R alonged.com^ +!ÿï08@Ralpari.ru/static/ +ÿï08@Ralphacash.biz^ +%ÿï08@Ramazonaws.com/*leadia +1ÿï08@R!amazonaws.com/bucket-files-widget +:ÿï* +fotomag.com.ua08@Ramazonaws.com/fotomag/ +1ÿï08@R!amazonaws.com/widget-bucket-files +ÿï08@Ramh.ru^ +!ÿï08@Ramigo-browser.ml^ +#ÿï08@Ramssoft.ru^*/banner +ÿï08@Ranalitycs.net^ +ÿï08@R anews.cc^ +ÿï08@R +anews.one^ +%ÿï08@Rangryzebra.ru^*banner +#ÿï08@Ranons.greenmama.ru^ +ÿï08@R anstatal.biz^ +ÿï08@R antiext.ru^ +*ÿï08@Rantihacker.info^*/partner/ +ÿï08@R antmoney.com^ +)ÿï08@Ranvaga.ru/partners_block/ +.ÿï* + moi-progi.ru08@R anyfiles.ru^ +ÿï08@R anyreads.com^ +ÿï08@R ap-jam.com^ +.ÿï08@Rapi-pravoved.s3.amazonaws.com^ +@ÿï* + sibintek.ru* +offt.ru08@Rapi.hh.ru/widgets/ + ÿï08@Rapi.styleru.net^ +ÿï08@R app4u.today^ +ÿï08@R arsfu.ru^ +!ÿï08@Rartbanner.com.ua^ +ÿï08@R artluch.ru^ +!ÿï08@Rasg.vidigital.ru^ +ÿï08@Rashurbeyli.ru^ +ÿï08@Raskmarket.net^ +%ÿï08@Rassessoria.hotbox.ru^ +%ÿï08@Rassist.multiwork.org^ +ÿï08@R astro7.com^ +ÿï08@R +astro7.ru^ +ÿï08@R astroinf.ru^ +#ÿï08@Rathotel.net/vst.xml +#ÿï08@Ratlassolutions.com^ +&ÿï08@Rau.ru/auctioninformer/ +€08@Rautocentre.ua^ +ÿï08@R autoreg.ru^ +#ÿï08@Rautospot.ru/widget/ +ÿï08@R autotizer.ru^ +ÿï08@R autoua.com^ +ÿï08@R avazone.ru^ +#ÿï08@Raviasales.ru/promo/ +ÿï08@R avifilm.ru^ +08@Ravtovod.org.ua^ +$ÿï08@Razartaffiliates.com^³ +ÿï08@Razartcash.com^ +ÿï08@Razbukasexa.ru^ +ÿï08@R b-one.com.ua^ +ÿï08@R +b.acpr.su^ +ÿï08@Rb.candy.vl.ru^ +!ÿï08@Rb.madplace99.com^ +ÿï08@R b.nwave.de^ +08@Rb2bcontext.ru^ +ÿï08@R b2bvideo.ru^ +ÿï08@Rb81x63nc.ws.md^ +ÿï08@R babyclick.ru^ +"ÿï08@Rbabyzone.ua^*/bmn/ +08@Rbachchpok.com^ +ÿï08@R baks-mail.ru^ +ÿï08@Rbalansirka.ru^ +08@Rbambun.ru/images/ +ÿï08@Rban.mchost.ru^ +ÿï08@R +banage.ru^ +ÿï08@R banganet.com^ +%ÿï08@Rbanner-storage.fo.ru^ +#ÿï08@Rbanner-viewers.com^ +ÿï08@R +banner.ua^ +ÿï08@Rbannerhost.ru^ +ÿï08@R +bans.name^ +ÿï08@R +bantex.ru^ +ÿï08@R base.kiwi.kz^ +ÿï08@R bashnya.ru^ +!ÿï08@Rbasketfan.my1.ru^ +"ÿï08@Rbattlespace.ru/ad/ +ÿï08@Rbazr.ru^ +.ÿï* + bazzarobot.ru08@R bazzaro.ru^ +ÿï08@Rbb.stream24.ru^ +ÿï08@Rbbn.by^ +ÿï08@Rbbn.img.com.ua^ +ÿï08@R bcggo.ru^ +!ÿï08@Rbcontent.life.ru^ +ÿï08@R be-mine.ru^ +,ÿï08@Rbelta.by/jscript/*&informer_ +ÿï08@R bepartner.ru^ +Tÿï* + facebook.com* + twitter.com* + +vk.com* +ok.ru08@R +beseed.ru^ +ÿï08@R +beseva.ru^ +ÿï08@R bestclick.ru^ +ÿï08@Rbestexotic.com^ +ÿï08@R +betfaq.ru^ +ÿï08@Rbetsonsport.ru^ +ÿï08@Rbetstatgr.biz^ +"ÿï08@Rbezlimitvideo.com^ +ÿï08@Rbezpalatki.ru^ +ÿï08@R bigbord.net^ +.ÿï08@Rbigbuzzy.ru/m/proposal/banner/ +-ÿï08@Rbigmir.net/?_module=informers +ÿï08@R +bistr4.ru^ +€08@Rbit.ly^ +ÿï08@R bither.one^ +ÿï08@R +bizua.com^ + ÿï08@Rblandernova.com^ +ÿï08@Rblocklistme.ru^ +ÿï08@R +blogun.ru^ +ÿï08@R +bloha.net^ +ÿï08@R blowclick.ru^ +ÿï08@R +bmfeed.ru^ +ÿï08@R bn.ohah.ru^ + ÿï08@Rbn.orthodoxy.ru^ +ÿï08@R bnfest.com^ž +"ÿï08@Rbomb-club.com/aff/ +$ÿï08@Rbongacams.com/promo. +ÿï08@Rbongo-shop.com^ +ÿï08@R boobzi.com^ +&ÿï08@Rbookmaker-ratings.*/rb +ÿï08@R books555.com^ +ÿï08@R +bp-api.ru^ +/ÿï08@Rbqhost.net/_rootimages/banners/ +&ÿï08@Rbravohost.ru/volgaban. +$ÿï08@Rbrothers-company.ru^ +ÿï08@R browser1.ru^ +ÿï08@R bs.mybb.ru^ +ÿï08@R bs.orsk.ru^ ++ÿï* + +bt.kiev.ua08@R bt.kiev.ua^ +ÿï08@Rbuxify-v2.com^ +ÿï08@R buy-link.ru^ +ÿï08@R bvf.ru/upchk/ +ÿï08@R bx.metka.ru^ +ÿï08@R +c.tbex.ru^ +08@Rcapricornus.cc^ +#ÿï08@Rcaptainsofcrush.ru^ ++ÿï08@Rcarambis.ru/images/promo_b/ +%ÿï08@Rcarta.ua/ajax/widget. +ÿï08@Rcasas-mario.ru^ +ÿï08@Rcashimtrap.com^ +ÿï08@R casian.club^ + ÿï08@Rcasino-kaza.com^ +4ÿï08@R$casino-piramida.com/partner/banners/ +ÿï08@Rcbn.ru^ +%08@Rcdn.leon.ru/*/*banners/ +.ÿï08@Rcdn.sportlabs.online/libs/e.js +ÿï08@Rcdn.wpshop.ru^ +ÿï08@R cenovik.net^ +ÿï08@Rcentrpush.com^ +ÿï08@R +cex.io/rb/ +ÿï08@Rchbn.ru^ +%ÿï08@Rcheap-copywriting.tk^ +!ÿï08@Rcheckgeonew.info^ +ÿï08@Rcheckmygeo.com^ + ÿï08@Rcheckmygeo.info^ + ÿï08@Rcheckmygeog.com^ +ÿï08@Rcheckpage.org^ +"ÿï08@Rcheckyourgeo.info^ +!ÿï08@Rchekergeeomy.com^ +(ÿï08@Rchembion.ru/js/inside.js ++ÿï08@Rcherrystatic.net^*/banners/ +5ÿï08@R%chessmatenok.ru/wp-content/uploads/b/ +ÿï08@R chitika.org^ +!ÿï08@Rchromebrowser.ru^ + ÿï08@Rcinemateka3d.ru^ +�ÿï* +retailrocket.net* + rutracker.lib* + rutracker.net* + rutracker.org* + rutracker.nl* + citilink.ru* + rutr.life08@R citilink.ru^ +$ÿï08@Rcity-advertising.ru^ + ÿï08@Rclick.readme.ru^ +ÿï08@R click4wm.ru^ + ÿï08@Rclickburner.com^ +ÿï08@R clickbux.ru^ +ÿï08@Rclickcoin.com^ + ÿï08@Rclickconvert.ru^ +ÿï08@R clickhere.ru^ +ÿï08@Rclickozavr.com^ +ÿï08@R clickvip.ru^ +ÿï08@R clloudia.com^ +ÿï08@R cloud-cdn.ru^ +ÿï08@Rclx.ru^ç +%ÿï08@Rco.cc/img/affiliates/ +ÿï08@R code-zp1.com^ + ÿï08@Rcode.barrior.ru^ +ÿï08@R coeffir.com^ +)08@Rcollector.mediator.media/*/ +ÿï08@R comp-ex.ru^ +ÿï08@Rcompany.1ps.ru^ +Aÿï* +compare.primpogoda.ru08@Rcompare.primpogoda.ru^ +#ÿï08@Rcontent.fishki.net^ +!ÿï08@Rcontent.mql5.com^ +!ÿï08@Rcontent.relax.ru^ +%ÿï08@Rcontext-platform.com^ +#ÿï08@Rcontext.hotline.ua^ +ÿï08@Rcorporative.ru^ +ÿï08@Rcositonetal.ru^ +"ÿï08@Rcosmorelax.ru/tmp/ +&ÿï08@Rcostaction.com/refers/ +(ÿï08@Rcp.beget.com/promo_data/ + ÿï08@Rcpa.ostrovok.ru^ +ÿï08@Rcpmsolution.ru^ +ÿï08@Rcqc.ru^ +ÿï08@R craptoke.com^ + ÿï08@Rcreara-media.ru^ +ÿï08@Rcrroptown.com^ +ÿï08@R +crutop.nu^ +ÿï08@Rcry.ru/sexclub/ +ÿï08@Rcshi.ru^ +ÿï08@Rcsht.ru^ +ÿï08@Rcszz.ru^ +ÿï08@Rculpainnata.ru^ +ÿï08@Rcurk.ru^ +ÿï08@Rcurrepush.com^ +ÿï08@Rcyberstyle.ru^ +ÿï08@R cykahax.net^ +.ÿï08@Rd1uw69x4c2zrim.cloudfront.net^ +(ÿï08@Rdash.getsitecontrol.com^ +$ÿï08@Rdating-exchange.com^ +!ÿï08@Rdcontent-fot.com^ +ÿï08@R dcplayx.com^ +ÿï08@R dcpromo1.com^ +ÿï08@R ddkdr.ru^ +ÿï08@Rdeiterius.com^ +#ÿï08@Rdemoreklama.net.ua^ +@ÿï08@R0denezhnyie-rucheyki.ru/partner_programs/banners/ +,ÿï08@Rdengi.ua/?_module=informers_ +-ÿï08@Rdepositfiles.com/img/banners/ +1ÿï08@R!depositphotos.com^*/widget-ext.js +ÿï08@R dewis.h1.ru^ +ÿï08@Rdgstr.website^ +ÿï08@R dhgate.com^ +5ÿï08@R%diamondelectric.ru/partner_block.php? +ÿï08@Rdimpy.narod.ru^ +08@R dnr.kz/test/ +#ÿï08@Rdns-shop.ru/export/ +(08@Rdocinfo.ru/scripts/context +ÿï08@R dostavka.ru^ +%ÿï08@Rdotua.org^*/branding/ +)ÿï08@Rdoublecapital.org/object/ + ÿï08@Rdozatv.net/foto/ +!ÿï08@Rdozory.goodoo.ru^ +ÿï08@R drakonas.eu^ +08@Rdrweb.com/pix/ +ÿï08@R duuw.nm.ru^ +%ÿï08@Rdverizamki.org/bshow/Ý +ÿî08@Rdzen.ru^ +ÿï08@R e-links.ru^ +ÿï08@R +e-mint.ru^ +ÿï08@R e-place.ru^ +*ÿï08@Recosigara.com.ua/partners/ +ÿï08@Redn.ru^ +ÿï08@R +edwago.ru^ +ÿï08@R effad.ru^ + ÿï08@Relektronauka.ru^ +6ÿï* +elenabertram.ru08@Relenabertram.com^ +6ÿï* +elenabertram.com08@Relenabertram.ru^ +ÿï08@R elfmoney.ru^ ++ÿï08@Relvengold.com/images/banner +;€* + twitch.tv08@Rembed.twitch.tv/*channel=xop0 +ÿï08@R emnodar.ru^ +ÿï08@R entercash.ru^ +ÿï08@R +eogli.biz^ +ÿï08@R +eogli.com^ +ÿï08@R +eogli.org^ +(ÿï08@Rep.umobile.pl/js_banner? +ÿï08@R epartner.ru^ +ÿï08@R epleads.ru^ +"ÿï08@Reradio.net.ua/ban/ +ÿï08@R erotraf.com^ +ÿï08@R esc-team.com^ +!ÿï08@Reserver.ru/img/b/ +$ÿï08@Reskhosting.ru/img/b/ +ÿï08@Reurosmi.ru/ad/ +ÿï08@Revilfighter.ru^ +'ÿï08@Revviva.com.ua/images/b/ +"ÿï08@Rex-load.com/promo/ +ÿï08@R exaccess.ru^ +%ÿï08@Rexchange.informer.ua^ +08@R exdiy.ru^ +$ÿï08@Rexmo.me^*/affiliate/ +"ÿï08@Rexo.kiev.ua/?zone= +ÿï08@R exo.kiev.ua^ +ÿï08@R expert-sib.ru +ÿï08@Rext.week.news^ +!ÿï08@Rexteriormedia.ru^ +#ÿï08@Rextool.biz/banners/ +ÿï08@R extstat.info^ +ÿï08@R extstat.ru^ +ÿï08@Rface-push.com^ +8ÿï08@R(factor-vesa.net/enter/?url=dont_go_away/ +ÿï08@R fairlink.ru^ +ÿï08@R fanat.kz^ + ÿï08@Rfanat.ru/versus/ +*ÿï08@Rfanshop.ru/images/__nners/ +%ÿï08@Rfantasy.d2.ru/showban +ÿï08@R farle.ru/?bn= +ÿï08@Rfast-anime.ru^ +#ÿï08@Rfatal.ru/adfatal.js +ÿï08@Rfavbet999.com^ +"ÿï08@Rfbs.for-ua.org.ua^ +*ÿï08@Rfedsp.com/showcase/banner? +%ÿï08@Rfeed.teasermaster.ru^ +0ÿï08@R feisovet.ru/js/partner-widget.js +(ÿï08@Rfermasosedi.biz/reflink/ +ÿï08@Rfermasosedi.ru^ +4ÿï08@R$festival-leonardo.ru/images/banners/ +ÿï08@R fialet.com^ ++ÿï08@Rfictionbook.ru/static/imgb/ +ÿï08@Rfile-online.ru^õ +ÿï08@R filepost.ru^ +ÿï08@R filmcool.ru^ +ÿï08@R finbs.ru^ + ÿï08@Rfire-casino.com^ +$ÿï08@Rfishki.net/informer/ +ÿï08@R flapoint.ru^ +*ÿï08@Rfleshlight-russia.com/fbn/ +!ÿï08@Rfo.ru^*/affilate/ +ÿï08@R +fooder.ru^ +#ÿï08@Rfootball-game.club^ +*ÿï08@Rforex-i-love-you.ru/files/ +-ÿï08@Rforex4you.org/flash/partners/ +%ÿï08@Rforexstart.org/banner +ÿï08@R forsage.biz^ +08@Rfortrader.org^ +€08@R forumrpg.ru^ +08@R fotkidepo.ru^ +$ÿï08@Rfotostrana.ru/promo/ +!ÿï08@Rfreeavalanche.ru^ +ÿï08@Rfreehd.com.ua^ +ÿï08@R +freewm.ru^ +"ÿï08@Rfresher.ru/widget/ +ÿï08@R freshmac.ru^ +ÿï08@Rfrogadvert.ru^ +"ÿï08@Rfsimg.ru/elephant/ +ÿï08@R funcoin.club^ +,ÿï08@Rfunkit.ru/i/partner_banners/ +ÿï08@R funnation.ru^ +ÿï08@R fxbn.fxcd.ru^ +ÿï08@R fxcast.com^ +ÿï08@Rg2a.com/widget_ +ÿï08@Rgalaxymeet.ru^ +$ÿï08@Rgamblingbuilder.com^ +ÿï08@R gamebet.news^ +€08@R gamebook.pw^ +"ÿï08@Rgamenet.ru^*/?rnd= +#ÿï08@Rgamingpartners.org^ +#ÿï08@Rgbs.gamingmedia.ru^ +&ÿï08@Rgde-luchshe.ru/widget/ +!ÿï08@Rgeocheckermy.com^ +ÿï08@Rgeocheckmy.com^ +*ÿï08@Rgeolocation.netpeak.group^ +ÿï08@Rgeronaimus.com^ +ÿï08@Rget-click.net^ +ÿï08@R getb.7ya.ru^ ++ÿï08@Rgetcryptotab.com^*promo/ad/ +ÿï08@R +getta.top^ +ÿï08@R gettraf.org^ +"ÿï08@Rggsaffiliates.com^ +ÿï08@Rgig-games.net^ +ÿï08@R gigamega.ru^ +ÿï08@R +giraff.io^ +ÿï08@R girl-rus.com^ +ÿï08@R girl-s.pro^ +ÿï08@Rgirlstalks.ru^ +,ÿï08@Rgiveawayoftheday.com/ticker/ +ÿï08@Rglamursgirl.ru^ +0ÿï08@R globus-inter.com/images/banners/ +ÿï08@R globusgps.ru^ +ÿï08@R glows.ru^ +ÿï08@R gnezdo.news^ +ÿï08@R +gnezdo.ru^ +ÿï08@R gnezdo2.ru^ + ÿï08@Rgo.bb.ru/images/ì +-08@Rgo.sampo.ru/splash/js/loader.js +"ÿï08@Rgolden-fishka.com^ +'ÿï08@Rgoldfishkapartners.com^ +ÿï08@R goldline.pro^ +"ÿï08@Rgood-football.com^ + ÿï08@Rgood-teasers.ru^ +"ÿï08@Rgoodadvert.com.ua^ +ÿï08@R goodbody.ru^ +"ÿï08@Rgoodgame.ru/candy/ +Fÿï08@R6goodgame.ru/html/embed-player/dist/index.html?partner= +ÿï08@Rgoodkukhni2.ru^ +ÿï08@Rgoon.ru^ +ÿï08@R goontex.com^ + ÿï08@Rgorodnews.ru/bb/ +ÿï08@R +govazd.am^ +!ÿï08@Rgrattis.ru/promo/ +ÿï08@R gravdee.com^ +ÿï08@R grifiins.ru^ +ÿï08@R +grt01.com^ ++ÿï08@Rgzonline.ru//upload/iblock/ +&ÿï08@Rhairstyles-galaxy.com^ +ÿï08@Rhalsehold.com^ +ÿï08@R hardprice.ru^ +!ÿï08@Rhata.nikolaev.ua^ +ÿï08@R hd-tube.ru^ +08@R hdgo.online^ +&ÿï08@Rheroeswm.ru/some_junk/ +(ÿï08@Rhideme.ru/images/static- +ÿï08@Rhighflyers.ru^ +ÿï08@R hit-sales.ru^ +ÿï08@Rhit.gemius.pl^ +/ÿï* + hitex.com.ua08@R hitex.com.ua^ +ÿï08@R hitlist.ru^ +(ÿï08@Rhmn.ru/mhmb_bs/viewb.js? +ÿï08@Rhmwk.ru^ +ÿï08@Rholder.com.ua^ +ÿï08@R homework.ru^ +ÿï08@R homrus.net^ + ÿï08@Rhooks.slack.com^ +'ÿï08@Rhorror-web.net/uploads/ +-ÿï08@Rhost.ru/images/txt_iframe.php +ÿï08@Rhost4media.com^ +ÿï08@Rhostpush.info^ +-ÿï08@Rhostweek.net/manimg/userdata/ +*ÿï08@Rhotelliveeb.ee/htmlbanner/ +0ÿï08@R hotels.ru/content/images/poster/ +¼ÿï* +campaign-archive2.com* +googleusercontent.com* +hghltd.yandex.net* +uahotels.com.ua* + allkharkov.ua* + +maplos.com* + adabor.ru* + +tat.ua08@R hotels24.ua^ +ÿï08@R hotinga.ru^ +ÿï08@Rhsm5azph84.com^ +ÿï08@R hypernews.ru^ +ÿï08@R +hypmag.ru^ +08@Rhypo.ufanet.ru^ +ÿï08@R i.j2j.ru^ +$ÿï08@Ri.sdska.ru^*/sdb.js? +ÿï08@R ice-media.ru^ +ÿï08@Rid5.ru^ +%ÿï08@Rigromagaz.ru/partner/ + ÿï08@Rigrushek.net/ad/ +'ÿï08@Rihor.ru/images/banners/ +ÿï08@Rilfumomoney.ru^ +#ÿï08@Rillicium.web.money^ +(ÿï08@Rillicium.wmtransfer.com^ +ÿï08@R imarker.ru^ +$08@Rimg.carnage.ru/i/main/û +)ÿï08@Rimg.ruclicks.com/ruclicks +ÿï08@R imobilco.ru^ +ÿï08@R inboobs.net^ +$ÿï08@Rinferno.name/banner. +&ÿï08@Rinfo-dvd.ru/*/rotator/ +!ÿï08@Rinfo.emoment.com^ +ÿï08@R info2you.ru^ +08@Rinfocar.ru/media/ +ÿï08@Rinforesell.ru^ +ÿï08@Rinformfeed.ru^ +;ÿï08@R+infosec.ru/common/data/pub/images/articles/ +ÿï08@R inmoment.ru^ +ÿï08@R +inoe.name^ +&ÿï08@Rinsalea.ru/bannerfans_ +ÿï08@Rinstantcash.ru^ ++ÿï08@Rintermedia.ru/NewsInformer/ +&ÿï08@Rinternalinspector.com^ +%ÿï08@Rinternet-russia.info^ +"ÿï08@Rinternetdengi.net^ +'ÿï08@Rinternetportal.ru/*.gif +G* +intimniymagazin.ru* +sex-fishki.com08@R intimshop.ru^ +$ÿï08@Rintimznaki.tomsk.ru^ +ÿï08@Rinvest-pool.ru^ + ÿï08@Rinvesthotels.ru^ +'ÿï08@Rinvi.tv/player.php?pid= +&ÿï08@Rinvictory.org/banners/ +)ÿï08@Rinvitemaster.ru/widget.js +ÿï08@R +ipgold.ru^ +ÿï08@Riphone10gs.com^ +08@Riphoto365.com^ +ÿï08@Ripic.su^ +ÿï08@Ripru.ru^ +ÿï08@Ripz.ru/cgi-bin/ +$ÿï08@Riqbinaryoptions.com^ +ÿï08@R +iso100.ru^ +7ÿï08@R'ispmega.ru/billing/_rootimages/banners/ +ÿï08@R itcgin.net^ +ÿï08@R +itizer.ru^ +7ÿï* +itsmygame.com.ua08@Ritsmygame.com.ua^ +ÿï08@R ivan-teas.ru^ +ÿï08@R j-shops.ru^ +08@Rjenugolok.com^ +&ÿï08@Rjet3.ayola.net/cn.php? +ÿï08@R job.ws/_bann/ + ÿï08@Rjollywallet.com^ +ÿï08@Rjpegshare.net^ +ÿï08@R js.einfo.by/? +ÿï08@R jsn.st02.net^ +ÿï08@R justiva.ru^ +ÿï08@R +ka7co.com^ +ÿï08@Rkachestvoo.ru^ +ÿï08@R kadabada.com^ +ÿï08@R kadamata.com^ +ÿï08@R kakgu.ru^ +5ÿï08@R%karabalikelektronik.com/images/reklam +!ÿï08@Rkarambas.ru/flash +-ÿï08@Rkartinka.com.ua/partner/load? +8ÿï08@R(kaspersky.ru/images/miscellaneouses/468- +ÿï08@Rkattepush.com^ +%ÿï08@Rkavkazweb.net/tc.cgi? +ÿï08@R +kazban.su^ +ÿï08@Rket.ru^ +ÿï08@R kingpeon.com^ +ÿï08@R kinoclub.org^ñ +ÿï08@R kinolib.com^ +ÿï08@Rkinoman. +08@R kinozov.ru^ + ûï08@Rkitchenhub.club^ +'ÿï08@Rknigopoisk.com/partner/ +ÿï08@R knstats.com^ +"ÿï08@Rkolkhida-trade.ge^ +"ÿï08@Rkolobok.us/button/ ++ÿï08@Rkomisite.ru/images/ban*.gif +ÿï08@R +komok.com^ +,ÿï08@Rkontur.ru/Files/Modules/ban/ +&ÿï08@Rkontur.ru/partnership/ + 08@Rkorrespondent.net^ +ÿï08@Rkpdn.ru^ +ÿï08@Rkpk.me^ +!ÿï08@Rkredit.beregu.ru^ +ÿï08@R kriloff.ru^ +ÿï08@R +kritka.kz^ +ÿï08@R krutilki.ru^ +ÿï08@R kset.kz/imgb/ +ÿï08@R kudapoiti.by^ +ÿï08@R kupitraff.ru^ +;ÿï* + +kupivip.by* + +kupivip.kz08@R kupivip.ru^ +08@R +kv.by/img/ +08@R kvasu.net/*/ +$ÿï08@Rkwork.ru/api/widget/ +9ÿï* + kworks.ru* +kwork.ru08@R kwork.ru/js/ +ÿï08@R l2top.ru^ ++ÿï08@Rlabirint.ru/design/partner/ + ÿï08@Rladyshopping.ru^ +ÿï08@Rladytrack.net^ +ÿï08@R laser44.ru^ +!ÿï08@Rlawyer-feedot.ru^ + ÿï08@Rleadiacloud.com^ +ÿï08@R leadobur.com^ +ÿï08@R leetero.ru^ +ÿî08@R lendvost.org^ +ÿï08@R lenty.ru^ + ÿï08@Rleporno.org/img/ +#ÿï08@Rletcheckyougeo.com^ +#ÿï08@Rletitbit-porno.com^ +$ÿï08@Rletitfile.ru/images/ +ÿï08@Rletitsoft.com^ +%ÿï08@Rletscheckyourgeo.com^ +ÿï08@R letsseks. +ÿï08@Rletssex. +ÿï08@Rlexlivinow.com^ +ÿï08@Rlexprofit.net^ +ÿï08@R lexprofit.ru^ +ÿï08@R lexprofit.su^ +"ÿï08@Rlibertytraffic.ru^ +ÿï08@R liderus.ru^ +ÿï08@Rliex.ru^ +ÿï08@Rlif.yaicom.ru^ +ÿï08@R likenul.com^ +ÿï08@R linkcase.ru^ + ÿï08@Rlinkexchange.ru^ +ÿï08@Rlinkme.org.ua^ +ÿï08@R +linkwm.ru^ +!ÿï08@Rlinkzilla.ru/seo/ +ÿï08@R liny-ads.net^ +ÿï08@R listsites.ru^ +,ÿï08@Rlitres.ru/pages/get_vidget/? +9ÿï08@R)litres.ru/static/partners/goods-widget.jsû +(ÿï08@Rlitres.ru/static/widgets +ÿï08@R liveclix.net^ +ÿï08@Rliveexpert.ru^ +ÿï08@R livetor.ru^ +ÿï08@R loadmovie.ru^ +ÿï08@R loadmult.ru^ +!ÿï08@Rloadpartners.com^ +.ÿï08@Rloadpays.com^*/images/banners/ +ÿï08@Rloadserial.ru^ +08@R +loftlm.ru^ + ÿï08@Rloki.hsmedia.ru^ +ÿï08@R +loksly.io^ +#ÿï08@Rlook-sport.*/*.html +$ÿï08@Rlook-sport.*/banner/ +ÿï08@R looksmile.ru^ +ÿï08@R lopuer.biz^ +ÿï08@Rloveadvert.ru^ +ÿï08@Rlovecity3d.ml^ +ÿï08@R lovikupon.ru^ +ÿï08@Rlovn.ru^ +(ÿï08@Rlpgenerator.ru/partners/ +ÿï08@Rlux-bn.com.ua^ +ÿï08@R luxcash.ru^ +ÿï08@Rluxurycash.net^ +ÿï08@Rm2k.ru/cgi-bin/ +ÿï08@R +mabila.ua^ +ÿï08@R magna.ru^ +3ÿï* +magnet.kiev.ua08@Rmagnet.kiev.ua^ +!ÿï08@Rmail.banklife.ru^ +ÿï08@R mainlink.ru^ +08@R +mama.land^ +ÿï08@R mamavika.com^ +1ÿï* + mambo.kiev.ua08@Rmambo.kiev.ua^ +ÿï08@Rmamyshev.ru/bn/ +ÿï08@Rmanagermest.ru^ +ÿï08@R manwm.ru^ +)ÿï08@Rmarathonbet.com/view.php? +7ÿï08@R'market.autoua.net/partnership/uxi/?ref= +'ÿï08@Rmarket.yandex.ru/widget + ÿï08@Rmaster-push.com^ +,ÿï08@Rmatch-center.playmaker24.ru/ +ÿï08@R match.org.ru^ +ÿï08@R +maxdps.ru^ +ÿï08@R maxtrust.ru^ +ÿï08@R mayka.kz^ +ÿï08@R +mazuma.ru^ +ÿï08@R mbanner.net^ +ÿï08@Rmben.ru^ +ÿï08@R +mbn.kr.ua^ +ÿï08@Rmbn.su^ +"ÿï08@Rmdesign.planet.ee^ +!ÿï08@Rmed.finsecret.ru^ +(ÿï08@Rmedia.online.ua/all/gft/ +ÿï08@R mediacontext. +ÿï08@R mediaget.com^ + ÿï08@Rmediarealtor.ru^ +ÿï08@Rmediarepost.ru^ +$ÿï08@Rmediatraffic.com.ua^ +ÿï08@Rmega-cash.net^ +ÿï08@Rmega-push.com^ +ÿï08@Rmegaban.com.ua^ +!08@Rmegaline.kz/images/ +7ÿï* +meganews.kiev.ua08@Rmeganews.kiev.ua^ +ÿï08@R megastock.ru^� +E* +mega-track.info* +mega-track.org08@Rmegatrack.org^ +ÿï08@R megawmr.ru^ +ÿï08@R mercatos.ru^ + +08@Rmeta.ua/*/partn. +$08@Rmetabar.ru/static/api/ +ÿï08@Rmetaprofit.net^ +)ÿï08@Rmetod-online.com^*/promo/ +*ÿï08@Rmgnc.org/external-banners/ +ÿï08@Rmicro-win.com^ +ÿï08@R miniban.ru^ +&ÿï08@Rmir-games.org/uploads/ +ÿï08@R miralinks.ru^ +ÿï08@R mirmaek.ru^ +-08@Rmirtesen.ru/gadgets/partner.php +ÿï08@R mirvolos.com +ÿï08@Rmisrepush.com^ +7ÿï08@R'misto.travel/templates/js/promowghot.js +ÿï08@R mixed.news^ +.ÿï08@Rmlgame.ru/wiki/attach/Referal/ +!ÿï08@Rmlsn.ru/specials/ +"ÿï08@Rmmcispartners.com^ + ÿï08@Rmobi-cinema.net^ +ÿï08@R mobn.net^ +ÿï08@R +mobtop.az^ +ÿï08@R modastro.ee^ +ÿï08@Rmoifoto.ru/rek_ +ÿï08@R +moijs.com^ +ÿï08@Rmoldovenii.md^ +&ÿï08@Rmolokovo.my1.ru/promo/ +*ÿï08@Rmonetti.ru/images/banners/ +ÿï08@R money-job.ru^ +'ÿï08@Rmoney.loveplanet.ru/nb/ +ÿï08@Rmoneysyst.biz^ +'ÿï08@Rmonolit.franchia.pp.ua^ +ÿï08@R +moogle.ru^ +"ÿï08@Rmoonbit.co.in/img/ + ÿï08@Rmoovy.ru/b*.php? +$ÿï08@Rmoshoster.ru/images/ +%ÿï08@Rmostinfo.net/img/top/ +€08@R mostlv.com^ +ÿï08@R moviecash.ru^ ++ÿï08@Rmrringo.com/images/banners/ +ÿï08@Rmulticlick.ru^ +ÿï08@R multonly.ru^ +$ÿï08@Rmusicrank.ru/js.php? + ÿï08@Rmusictraffic.ru^ +ÿï08@R +my-ext.ru^ +'ÿï08@Rmy-friends.ru/campaign/ +*ÿï08@Rmy.hostiman.ru/aff/banner/ +!ÿï08@Rmydatingcash.com^ ++ÿï08@Rmyhosti.ru/manimg/userdata/ + ÿï08@Rmyinfocenter.ru^ +ÿï08@R myiphone.be^ +ÿï08@R myjulia.ru^ +A* +mylove.na-chas.ru* + myloveru.com08@R +mylove.ru^ +0ÿï08@R myshopthings.com/partner-rtb.js? +!ÿï08@Rmysiten.ucoz.net^ +ÿï08@R mystatext.ru^ +ÿï08@R +mytraf.ru^ + ÿï08@Rn.vipadvert.net^ +ÿï08@Rnadavi.com.ua^ +ÿï08@R +nadavi.ru^ +"ÿï08@Rnanoav.ru^*/banner +ÿï08@R nasf.ru/ad/© +$ÿï08@Rnativesubscribe.pro^ +'ÿï08@Rnbzip.ru/images/banner/ +ÿï08@R +nclick.ru^ +ÿï08@R +ndiksi.ru^ + ÿï08@Rneed2buy.1gb.ru^ +ÿï08@R nehudeyka.ru^ +ÿï08@R +neoban.su^ +ÿï08@R +neosap.ru^ +ÿï08@R +neosmi.ru^ +ÿï08@R netporno.org^ +ÿï08@R newclick.org^ +!ÿï08@Rnewportal.com.ua/ +!ÿï08@Rnews.mirtesen.ru^ +ÿï08@R news.rin.ru^ +"ÿï08@Rnews.te.ua/widget/ +ÿï08@Rnewsforall.biz^ + ÿï08@Rnewsprom.ru/img/ ++ÿï08@Rnextonmarket.com/i/banners/ +ÿï08@R +ngads.com^ +ÿï08@R nic.ua/i/b/ +ÿï08@R nimp.org^ +ÿï08@R ningres.ru^ +'ÿï08@Rnline.net.ua/nl_banner/ +"ÿï08@Rnoi.md/newsbar.php +ÿï08@R noion.ru^ +ÿï08@R nomer1.ru.ru^ +#ÿï08@Rnostalgia.onego.ru^ +)ÿï08@Rnoteru.com/generateposts/ +!ÿï08@Rnotifypushka.com^ +ÿï08@R nova-star.ru^ +ÿï08@Rnovatizer.com^ +ÿï08@R novem.pl^ +08@Rnowa.cc^ +ÿï08@R nsoft-s.com^ +ÿï08@R nu-stars.com^ +!ÿï08@Rnwphysicians.com^ +'ÿï08@Roberegi-runi.ru/assets/ +-ÿï08@Roberegi-runi.ru^*partnership/ +ÿï08@Robmenki.ru.com^ +!ÿï08@Rodb.outbrain.com^ +ÿï08@Rodds.ru^ +&ÿï08@Roffers.sidex.ru/promo/ +%ÿï08@Rogorodniki.com/banner +ÿï08@Roiya.ru^ +ÿï08@R +old.fx.co^ +ÿï08@R oliliga.ru^ +08@R omappapi.com^ +ÿï08@Romskrielt.com^ +ÿï08@R onban.ru^ +,ÿï08@Rongm.net^*/images/banner.png +(ÿï08@Ronlineresume.ru/banner*? +ÿï08@R only4men.ru^ +#ÿï08@Ronlygip.tech/ssp.js +"ÿï08@Ronlyrichgames.com^ +%ÿï08@Ronlytrailer.ru/embed/ +ÿï08@R oowl.ru/ab/ +ÿï08@R open.by/bnrs/ +ÿï08@R openlinks.ru^ +ÿï08@R opershop.ru^ +ÿï08@R or.ru/inner +ÿï08@Roru.ru^ +ÿï08@R +osb-nk.ru^ +ÿï08@R otgerpesa.ru^ +ÿï08@Rowap.su^è +ÿï08@R owebmoney.ru^ +ÿï08@R oxysoft.ru^ +)ÿï08@Rpalantir.in/showban*.php? +ÿï08@R pammru.net^ + 08@Rparimatch.com/jss/ +ÿï08@R partikat.com^ +ÿï08@Rpartishion.com^ +ÿï08@Rpartistone.com^ +,ÿï08@Rpartner-widget.vse-sdal.com^ ++ÿï08@Rpartner-widget.vsesdal.com^ + ÿï08@Rpartner.alfa.kz^ +#ÿï08@Rpartner.allsoft.ru^ +&ÿï08@Rpartner.cryptonet.biz^ +$ÿï08@Rpartner.gameboss.ru^ +"ÿï08@Rpartner.hideme.ru^ +ÿï08@Rpartner.ixi.ua^ +"08@Rpartner.join.com.ua^ +%ÿï08@Rpartner.napishem.com^ +$ÿï08@Rpartner.napishem.ru^ +(ÿï08@Rpartner.ozon.ru/widgets/ +!ÿï08@Rpartner.porta.ru^ +&ÿï08@Rpartner.privatbank.ua^ +ÿï08@Rpartnerfeed.ru^ +6ÿï08@R&partners.author24.ru/assets/img/promo/ +%ÿï08@Rpartners.mobiguru.ru^ +$ÿï08@Rpartners.otpusk.com^ +%ÿï08@Rpartners.vsemayki.ru^ +ÿï08@Rpartyroots.com^ +/ÿï08@Rpassport-rk.ru/widgets/partner/ +"ÿï08@Rpathfootprint.com^ +ÿï08@R pathlime.com^ +ÿï08@R pay-hit.com^ +ÿï08@Rpay-partner.ru^ +ÿï08@R +payban.su^ +ÿï08@R paytraf.ru^ + ÿï08@Rpbid.iforex.com^ +ÿï08@R pbnet.ru^ +'ÿï08@Rpc-newcomer.ru/partner/ +%ÿï08@Rpc-user-shop.com/aff/ +08@Rpcmag.ru/upload/ +*ÿï08@Rpcweek.ru/upload/*/160x100 +ÿï08@R peel-down.ru^ +5ÿï08@R%penza-online.ru/cgi-bin/userstats.pl? +ÿï08@R penzensky.ru^ +ÿï08@Rpersonalspy.ru^ +ÿï08@R pharance.com^ +%ÿï08@Rphotoshop-master.org^ +ÿï08@R +picbay.ru^ +ÿï08@R piccy.info^ +ÿï08@R pickegg.com^ +ÿï08@R picturer.xyz^ +ÿï08@R pingmedia.ru^ +$ÿï08@Rpinkintim.com/image/ +ÿï08@R piranida.com^ +ÿï08@Rpiranious.com^ +ÿï08@R pirantic.com^ +ÿï08@Rpirantika.com^ +ÿï08@R pirastic.com^ +ÿï08@R piratman.com^ +ÿï08@R pirojok.net^ +)ÿï08@Rpix-cdn.org/image/banner/ +%ÿï08@Rpix-cdn.org/image/ts/ +%ÿï08@Rpix-cdn.org/image/vk/ +'ÿï08@Rplaceholder.treeum.net^� +ÿï08@R placeoff.ru^ +!ÿï08@Rplatinumcode.net^ +-ÿï08@Rplay-in-flash.com/wp-content/ +ÿï08@R +play2.biz^ +;ÿï* +riamo.ru08@Rplayer.panda.video/*luster.js +ÿï08@Rplesen.net/kp*. +ÿï08@R plus10sm.ru^ +ÿï08@Rpo2l.ru^ +!ÿï08@Rpoisk.su/img.php? +!ÿï08@Rpoisk.su/top.php? +ÿï08@R pokrutim.ru^ +$ÿï08@Rpomogi.org/i/pomogi- +$ÿï08@Rpomogi.org/urgent/1/ +ÿï08@R ponsshop.ru^ +ÿï08@R pop-banner. +ÿï08@R pop-wmz.ru^ +ÿï08@R popad.ru^ +%ÿï08@Rpopularsite.ru/*.php? +ÿï08@R +popuptraf. +&ÿï08@Rporno4you.org/uploads/ +ÿï08@Rpornovau.club^ +ÿï08@R pornula1.com^ +ÿï08@Rporter.vip/ban +ÿï08@R pozzitiv.ru^ +ÿï08@R pr-inc.biz^ +ÿï08@Rpravdoryb.info^ +ÿï08@Rprbn.ru^ +!08@Rpressball.by/files/ +ÿï08@R price.ru^ +ÿï08@R price.ua^ +ÿï08@R pricelib.ru^ +ÿï08@Rprikoly2016.ru^ +;ÿï08@R+printbar.ru/upload/partners/images/banners/ +ÿï08@Rprivatteaser.ru +ÿï08@Rprivatzone.biz^ +ÿï08@R +prizma.kz^ +ÿï08@Rpro100news.ru^ + ÿï08@Rprobestfilm.com^ +-ÿï08@Rprodnepr.dp.ua/informermp.php +!ÿï08@Rprofi.ru^*/banner +"ÿï08@Rprofit-partner.ru^ +!ÿï08@Rprofitwizard.net^ + ÿï08@Rprofitwizard.ru^ +,ÿï08@Rpromag.com.ua/images/banner/ +ÿï08@R promo.md^ +ÿï08@R promoblock. + ÿï08@Rpromobuster.net^ +ÿï08@R promofor.me^ + ÿï08@Rpromoloader.com^ +ÿï08@R pronpic.org^ +ÿï08@Rpronskaya.ru/b/ +ÿï08@Rpropushka.com^ +ÿï08@R prospero.ru^ +!ÿï08@Rprospertinum.com^ +ÿï08@R prosto.cn.ua^ +-ÿï08@Rprostootdam.ru/modules/about/ +&ÿï08@Rprotect-lab.com/promo/ +*ÿï08@Rpult.ru/pictures/p_banner/ +ÿï08@Rpush-house.net^ +ÿï08@Rpush-money.ru^ +ÿï08@Rpush-plus.net^ +ÿï08@R push-pro.net^ + ÿï08@Rpush-sender.com^ +ÿï08@Rpushcentr.com^¾ +ÿï08@R pusheds.info^ +ÿï08@R pushelf.info^ +ÿï08@R pushere.info^ +ÿï08@R pushers.info^ +ÿï08@R pushex.net^ +ÿï08@R pushiki.ru^ +ÿï08@R pushine.info^ + ÿï08@Rpushington.info^ +ÿï08@Rpushinkaa.com^ + ÿï08@Rpushkacentr.com^ +ÿï08@R pushkah.info^ +ÿï08@Rpushkapro.com^ +ÿï08@R pushkov.info^ +!ÿï08@Rpushofferpro.com^ +ÿï08@Rpushsender.com^ +ÿï08@Rpushsender.net^ +ÿï08@Rpushsender.pro^ +ÿï08@R pushtora.com^ +ÿï08@R pushtun.info^ +ÿï08@R pushua.info^ +ÿï08@R pustoty.net^ +ÿï08@R +putana.cz^ +ÿï08@Rqle.ru/cgi-bin/ ++ÿï* + +qs.kiev.ua08@R qs.kiev.ua^ +9ÿï08@R)quotiq.ru/widgets/widget.default.promo.js +.ÿï* +media.2x2tv.ru08@R +quotiq.ru^ +ÿï08@Rqwex.ru^ +ÿï08@R +qzx.ru/gf/ +ÿï08@R r-money.ru^ +ÿï08@R r.qip.ru^ +ÿï08@R r1media.ru^ +ÿï08@R radikal.ru^ +(ÿï08@Rradio-tech.ru/pic/pages/ +"ÿï08@Rrambler.ru/xpromo_ +)ÿï08@Rraptop.ru/images/img*.gif +ÿï08@R rarenok.biz^ +&ÿï08@Rrate.7surf.ru/img.php? +%ÿï08@Rrate.ee/pics/banners/ +ÿï08@Rrating.km.ua/*? +ÿï08@Rrax.ru^ +ÿï08@R +rb.rfn.ru^ +$ÿï08@Rrb.sport-express.ru^ + 08@Rrealfuckdates.net^ +ÿï08@Rrealpush.media^ +ÿï08@Rrec2000.at.ua^ +ÿï08@R red.by/redban +ÿï08@Rredsurf.ru/bn/ +ÿï08@R refer.ru^ +ÿï08@Rreferalov.net^ +ÿï08@Rrefo.ru^ +%ÿï08@Rreforum.ru/j/partner/ + ÿï08@Rreg.ru^*_widget. +ÿï08@R regac.ru^ +$ÿï08@Rreggun.ru/images/b*_ + ÿï08@Rreklamaster.com^ +ÿï08@R reklamist.ru^ +"ÿï08@Rreklamnoedelo.com^ + ÿï08@Rrelevisibly.com^ +ÿï08@Rrenhepharop.ru^ +ÿï08@R rexpush.net^ +ÿï08@Rrich-banner.ru^ +ÿï08@R richclick.ru^ +ÿï08@Rrichpopup.com^ +ÿï08@Rrichtraffic.ru^Å +ÿï08@R rimvoyeur.ru^ +'ÿï08@Rrivalo.com^*/affiliate/ +ÿï08@Rrnbn.ru^ +ÿï08@R robottext.ru^ +ÿï08@R +rollad.ru^ +ÿï08@R +rookee.ru^ +ÿï08@R rorer.ru^ +?ÿï* + bibliofond.ru* + rosdiplom.ru08@R +rosdip.ru^ +?ÿï* + bibliofond.ru* + rosdip.ru08@R rosdiplom.ru^ +ÿï08@R rosladi.ru^ +!ÿï08@Rrosphoto.com/img/ +&ÿï08@Rrot.rusoul.ru/rotator/ +ÿï08@R rotapost.ru^ +ÿï08@Rrotator. + ÿï08@Rrrru.ru/img.php? +ÿï08@Rrs-context.ru^ + ÿï08@Rrssnewser.ru/add +ÿï08@Rru-top.net/img/ +"ÿï08@Rru.gg/werbemittel/ +/ÿï08@Rrucaptcha.com^*/uploads/banner/ +&ÿï08@Rruinfosale.com/banner/ +ÿï08@R rus-porno.ru^ +ÿï08@R ruscams.com^ +ÿï08@Rruscontext.com^ +ÿï08@R rushhips.com^ +ÿï08@Rrushkolnik.ru^ +"ÿï08@Rruskompas.ru/incs/ +ÿï08@Rrusmedserv.com^ +ÿï08@R rusnabat.com^ +0ÿï08@R ruspravda.info/resources/images/ ++ÿï08@Rrustarot.ru/pl/lite/widget/ +ÿï08@R rustizer.com^ +ÿï08@Rrustrackers.ru^ +"ÿï08@Rruvideo.net/obzor/ +"ÿï08@Rruwm.ru/links.php? +"ÿï08@Rs-pl.ru/downloads/ +!ÿï08@Rs.ex.region70.ru^ +#ÿï08@Rs.ladoshki.com/p/a/ ++ÿï08@Rs.ladoshki.com/pics/shirts/ +ÿï08@Rs.s-ports.ru/i/ +=ÿï08@R-s.s-ports.ru/sites/default/files/i/brandings/ +.ÿï08@Rsabrinavi.ru/external_list.js? +ÿï08@R sampishi.ru^ +ÿï08@R sape.ru/bn/ +'ÿï08@Rsape.ru/images/banners/ +ÿï08@R +sapfir.tv^ +ÿï08@R sass.com.ua^ +)ÿï08@Rsaturn-plus.ru/downloads/ +ÿï08@R sb-money.ru^ +1ÿï08@R!sb.google.com/safebrowsing/update +Ùÿï* + megamarket.ru* + salutejazz.ru* + technopark.ru* + 24ttl.stream* + citilink.ru* + dns-shop.ru* + eldorado.ru* + visper.tech* + giga.chat* + mvideo.ru* +sber.ru08@Rsberdevices.ru^ +ÿï08@R +scrool.ru^ +ÿï08@R sdkloc1.com^ +&ÿï08@Rsearchmeta.webhost.ru^ +5ÿï08@R%secure-it.imrworldwide.com/cgi-bin/m? +ÿï08@R segamen.ru^ +"ÿï08@Rselectroduced.com^ +"ÿï08@Rsenoval.sports.ru^ +ÿï08@Rsenseagency.ru^ +#ÿï08@Rseo-monster.ru/img_ +ÿï08@R seo-sport.ru^ +&ÿï08@Rseoheep.com/affiliate/ +ÿï08@R seoliner.ru^ +ÿï08@R seopult.ru^“ +ÿï08@R seorate.ru^ +,ÿï08@Rseotechnology.ru/imgseo.php? +.ÿï08@Rseotechnology.ru/imgygpag.php? +ÿï08@Rserialinfo.ru^ +"ÿï08@Rseriouspartner.ru^ +!ÿï08@Rserver.adeasy.ru^ +,ÿï08@Rservidormensseger.hotbox.ru^ +ÿï08@R setka.media^ +ÿï08@R setka.news^ +ÿï08@R setlinks.ru^ +ÿï08@Rsevensteps.biz^ +ÿï08@Rsex-finger.com^ +#ÿï08@Rsexfabrika.ru/*.gif +ÿï08@R sexfilms.ru^ +ÿï08@Rsexplay.com.ua^ +ÿï08@R sexprice.ru^ +3ÿï* +sextalk.com.ru08@Rsextalk.com.ru^ +!ÿï08@Rsexualmastery.ru^ +ÿï08@R sexytal.com^ +ÿï08@R +shopcn.ru^ +€08@R +shopik.tv^ +ÿï08@R sib-crm.ru^ +&ÿï08@Rsimplechange.ru/promo/ +ÿï08@R simplity.ru^ +ÿï08@Rsir.uz^ +ÿï08@R sitetraff.ru^ +,ÿï08@Rskinon.ru/uploads/media/bnr_ +"ÿï08@Rskylog.kz/img.php? +(ÿï08@Rskymec.ru/image/banners/ +.ÿï08@Rslavabogam.ru/catalog/partner/ +ÿï08@R +slimp.net^ +ÿï08@Rsmart-soft.ru^ +ÿï08@Rsmartbucks.ru^ +&ÿï* +smi2.ru08@R smi2.net^ +ÿï08@Rsmi2.ru^ +ÿï08@Rsmi2.tv^ +ÿï08@R smi24.kz^ +ÿï08@R smiar.ru^ +ÿï08@R +smigid.ru^ +ÿï08@R smile32.ru^ +ÿï08@Rsminewsnet.ru^ +"ÿï08@Rsmotret-anime.com^ +%ÿï08@Rsmotret-anime.online^ + ÿï08@Rsmotretanime.ru^ + ÿï08@Rsmsconvertv3.ru^ +$ÿï08@Rsmsfiles.ru/ban*.gif +ÿï08@R smsvcash.ru^ +ÿï08@Rsnelwilcox.com^ +ÿï08@R snyviza.ru^ +%ÿï08@Rsocialmart.ru/widget/ +ÿï08@Rsoft-landia.ru^ +,ÿï08@Rsoft-teleport.ru/uploads/ad/ +ÿï08@R +softbn.ru^ +0ÿï* + liferoom.net08@Rsoftoroom.org^ +ÿï08@R somon.tj^ +ÿï08@R sosnews.ru^ +*ÿï08@Rsovetnik.market.yandex.ru^ +$ÿï08@Rsovetnik.yandex.net^ +ÿï08@R spacepush.ru^ + ÿï08@Rspbland.ru/bban/ + ÿï08@Rspitter.pauk.ru^ +"ÿï08@Rsponsor.gazeta.ru^ + ÿï08@Rsport-fitnes.ru^ +!€08@Rsportbookmaker.ru^÷ +ÿï08@R sportoboz.ru^ +%ÿï08@Rsppromo.com/feed.php? +!ÿï08@Rsprosivracha.com^ + ÿï08@Rsprotiv.com/bnr/ +ÿï08@R sputnik1.ru^ +ÿï08@Rspynigeria.com^ + ÿï08@Rspytrack.tic.ru^ +ÿï08@R +sravni.ru^ +ÿï08@Rsrv.mzcdn.com^ + ÿï08@Rstableprofit.ru^ +!ÿï08@Rstaffcop.ru/rekl/ +"ÿï08@Rstarphotoblog.com^ +1ÿï08@R!stat.webtrack.biz/api/impression/ +ÿï08@Rstatcontent.ru^ +.ÿï08@Rstatic.fortfs.com/images/bnrs/ +(ÿï08@Rstatic.leadia.ru/widget/ +Qÿï* + in-facts.info* + localrent.pl08@Rstatic.localrent.com/widget/ +-ÿï08@Rstatic.myrentacar.com/widget/ +!ÿï08@Rstatic.terrhq.ru^ +"ÿï08@Rstavkiprognozy.ru^ +ÿï08@R +stdate.ru^ +ÿï08@Rsteam-sell.ru^ +ÿï08@Rsteamaccs.com^ +$ÿï08@Rsteambuy.com/banner/ +"ÿï08@Rsteambuy.com^*.gif +ÿï08@Rsteptocash.ru^ +!ÿï08@Rsterno.ru/widget/ +"ÿï08@Rstrana.az/banners/ +(ÿï08@Rstrichka.com^*/informer/ +ÿï08@Rstripvidz.com^ +%ÿï08@Rstrobist.ua/strobist_ +ÿï08@R strogonet.ru^ + ÿï08@Rstroy-birzha.ru^ +"ÿï08@Rstroyka-direct.ru^ +7ÿï08@R'studio-moderna.com/upload/uploadTopshop +=ÿï08@R-studlancer.net/images/chat/studlancer_form.js +#ÿï08@Rsubmitter.ru*/i.php +!ÿï08@Rsugar-traff2.com^ +ÿï08@R sunfeed.me^ +ÿï08@Rsuper.md/?col= +$ÿï08@Rsupercatalog.3dn.ru^ +ÿï08@Rsuperfish.com^ +ÿï08@Rsuperstyle.ru^ +ÿï08@R supertop.ru^ +ÿï08@Rsuperwoomen.ru^ +ÿï08@R +surbis.ru^ +!ÿï08@Rt.mediacartel.ru^ +ÿï08@R +t.pusk.ru^ +ÿï08@Rtak.ru^ +ÿï08@R +takru.com^ +ÿï08@Rtanygin.me/tmp/ +!ÿï08@Rtaverkegaard.com^ +ÿï08@R tdmplus.ru^ +!ÿï08@Rtds-banner.do.am^ +ÿï08@R teaone.net^ + ÿï08@Rteaser-goods.ru^ +ÿï08@Rteaser2go.com^ +ÿï08@Rteasercode.net^ +ÿï08@Rteasergate.com^ +"ÿï08@Rtechdigest.ru/?ad& +ÿï08@R +teeser.ru^ +ÿï08@R tehnoklad.ru^ +'ÿï08@Rtelderi.ru/img/banners/ ++ÿï08@Rtelderi.ru/uploads/promote/Ñ +)ÿï08@Rtelepark.ua/tpb.php?code= +€08@R teren.in.ua^ +ÿï08@Rterthoreper.ru^ +!ÿï08@Rtestosteroid.com^ +ÿï08@R testsbox.ru^ +*ÿï08@Rthebestphotos.ru/exper.jpg +<ÿï08@R,thebestphotos.ru/wp-content/uploads/banners/ +4ÿï08@R$thetruestory.news/widget-top.iife.js +ÿï08@R ticount.ru^ +ÿï08@R tidycdn.com^ +ÿï08@Rtigame.ru/div/? +ÿï08@Rtimedirect.ru^ +!ÿï08@Rtimeweb.ru/img/b/ +ÿï08@R tizerget.net^ +ÿï08@R +tizero.ru^ +ÿï08@R tizertraf.ru +ÿï08@R tizrotba.ru^ +ÿï08@R +tizzer.ru^ +ÿï08@Rtle.ru^ +ÿï08@Rtn.kz/informer/ +ÿï08@Rtnx.net^ +ÿï08@R tobe.tv/sda/ +ÿï08@R todaymix.ru^ +ÿï08@Rtofun.ru/traff/ +)ÿï08@Rtop-js-metrics.top.my.ua^ +ÿï08@R top-shop.ru^ +ÿï08@R +top.my.ua^ +ÿï08@R +topcto.ru^ +'ÿï08@Rtopdownloads.ru/charts/ +ÿï08@R topiz.ru^ +ÿï08@R +topwot.ru^ +ÿï08@R +torgnn.ru^ +*ÿï08@Rtorrentum.ru/images/brand/ +%ÿï08@Rtorrentum.ru^*/tiser/ +ÿï08@Rtorrextanti.ru^ +ÿï08@R +trade7.ru^ +ÿï08@R tradelinks. +-ÿï08@Rtrading-sys.com/affil/banner/ +ÿï08@R traf-3rs.com^ +ÿï08@Rtraf-birga.net^ +ÿï08@R traf.biz^ +ÿï08@R traf.spb.ru^ +#ÿï08@Rtraff.travelata.ru^ +ÿï08@R traffikk.biz^ +ÿï08@Rtraffmaster.ru^ +ÿï08@Rtraffstock.ru^ +ÿï08@Rtraffworld.ru^ +ÿï08@R traficon.pro^ +ÿï08@R trafogon.ru^ +ÿï08@R +trafunder. + ÿï08@Rtrailerstube.ru^ +"ÿï08@Rtravelpayouts.com^ +ÿï08@R tremona.ru^ +#ÿï08@Rtrening-maximum.ru^ +'ÿï08@Rtrusearch.net/affblock/ +ÿï08@R trustlink.ru^ +ÿï08@R tryanka.ru^ + ÿï08@Rtsr.cdns.com.ua^ +ÿï08@Rttcl.ru^ + ÿï08@Rtubecontext.com^ +ÿï08@Rturboroller.ru^ + ÿï08@Rtvmir.ru/tracks/ + ÿï08@Rtvoy-startup.ru^ +"ÿï08@Rtwevent.org.ua/bn/µ + ÿï08@Rtwistcasino.net^ +ÿï08@Rtx2.ru^ +ÿï08@R +txtrk.com^ +ÿï08@R ua-teens.com^ +ÿï08@R +uadvt.net^ +$ÿï08@Ruaportal.com/bannes/ +ÿï08@R uberlaw.ru^ +ÿï08@R +ucfeed.ru^ +ÿï08@R ufeed.ru^ +ÿï08@R +ugkod.com^ +"ÿï08@Rugly.ru/adv_frame. +ÿï08@R uicp.ru/?bn= +ÿï08@R ujav.net^ +ÿï08@Rukrbanner.net^ +#ÿï08@Rukrbuy.com/partner/ +08@Rukrmedia.center^ +08@Rulitka.ru/logo +ÿï08@R umatno.ru/mm/ +ÿï08@Runattepush.com^ +ÿï08@R unionlab.ru^ +#ÿï08@Runiq-ip.com/via/np? +ÿï08@R unlockers.ru^ +ÿï08@R uptracker.ru^ +ÿï08@R usde.biz^ +$ÿï08@Ruserator.ru/img/ban/ + ÿï08@Ruznatpochemu.ru^ +%ÿï08@Rv-kino.net/pay_click_ +ÿï08@R vafrike.ru^ +ÿï08@R vareza.net^ +ÿï08@Rvba.ru^ +ÿï08@Rvbm1.ru^ +ÿï08@R vclicks.net^ + ÿï08@Rventivmedia.com^ +ÿï08@Rvertucash.com^ +ÿï08@R vezetmne.ru^ +ÿï08@R via-shop.ru^ +ÿï08@R vicepiter.ru^ +!ÿï08@Rvideo-invest.net^ +ÿï08@Rvideo-link.ru^ +,ÿï08@Rvideo-tutorial.ucoz.ru/Foto/ +ÿï08@R +videoclik. +ÿï08@Rvideoclubot.pw^ +(ÿï08@Rvideocore.tv^*/pladform_ +ÿï08@R videofan.ru^ +&ÿï08@Rvideoigr.net/includes/ +€08@R videoigr.net^ +ÿï08@Rvideoklass.ru^ +ÿï08@R videomay.ru^ +!ÿï08@Rvideoruletka.net^ +Wÿï* + facebook.com* + twitter.com* + +vk.com* +ok.ru08@R videoseed.ru^ +ÿï08@Rvideotraff.ru^ +ÿï08@R vip-movie.ru^ +ÿï08@R vipaccess.su^ ++ÿï08@Rvipsex.su^*/images/banners/ +€08@Rvitr.alawar.ru^ +ÿï08@Rviva-vivata.ru^ +ÿï08@R vk-traf.ru^ +ÿï08@R vladja.com^ +ÿï08@R vladkofe.ru^ +ÿï08@R vladmag.ru^ +ÿï08@R vodkov.net^ + ÿï08@Rvolzhanka-ug.ru^ +ÿï08@Rvotetraffic.ru^ +!ÿï08@Rvoyna-plemyon.ru^¨ +ÿï08@R +vpered.ru^ +ÿï08@R +vpsite.ru^ +ÿï08@Rvrf.ru^ +ÿï08@R vsekino.su^ +ÿï08@Rvsekrediti.ru^ +ÿï08@Rvsem.ru^ +ÿï08@R vsemp.ru^ +%ÿï08@Rvseokino.com/rotator/ +ÿï08@R vsesumki.com^ +ÿï08@R +vtizr.com^ +ÿï08@R vtochku.net^ +ÿï08@Rvyatka-host.ru^ +8ÿï08@R(wambacdn.net/images/*/promo_search_form/ +ÿï08@Rwap-click.net^ +ÿï08@R wapstart.ru^ +"ÿï08@Rwarezplatinum.com^ +"ÿï08@Rwarnet.ws/banners/ ++ÿï* + +wau.com.ua08@R wau.com.ua^ +ÿï08@Rwbn.su^ +ÿï08@R web-rom.ru^ +ÿï08@R webasm.com^ +ÿï08@R webdiana.ru^ +ÿï08@R webex.ru^ +#ÿï08@Rwebhost1.ru/design/ +)ÿï08@Rweblist.ru/images/weblist +!ÿï08@Rwebmax.su/banner/ +(ÿï08@Rwebme.com/selfpromotion. +&ÿï08@Rweboborona.ru/pic/wban +ÿï08@R webocat.ru^ + ÿï08@Rwebproficlub.ru^ +ÿï08@R websurf.ru/? +>ÿï08@R.webtransfer-finance.com/upload/partner_banner/ +&ÿï08@Rweclever.ru/block.php? +ÿï08@Rwertendium.com^ +2ÿï08@R"westbyte.com/scripts/bs/bc.php?bi= +ÿï08@Rwewonurgold.ws^ +ÿï08@Rwhitepush.biz^ +&ÿï08@Rwidget.info-static.ru^ +!ÿï08@Rwidget.insapp.ru^ +!ÿï08@Rwidget.retell.cc^ +0ÿï08@R win2profit1.com/upload_dynamics/ +ÿï08@R windbet1.com^ +ÿï08@R windbet2.com^ +ÿï08@R winline.ru^ +ÿï08@Rwinlinebet.com^ +ÿï08@Rwizzzards.com^ +"ÿï08@Rwm-goldenclick.ru^ +"ÿï08@Rwm-help.net/b.php? +ÿï08@R wm-talk.org^ +ÿï08@R wmirk.ru^ +ÿï08@Rwmlink. +ÿï08@R wmplace.ru^ +ÿï08@R wmzona.com^ +ÿï08@R +wolist.ru^ +ÿï08@Rwomenclick.ru^ +$ÿï08@Rwork.ua/i/press_kit/ +;ÿï* +worldofrest.com.ua08@Rworldofrest.com.ua^ +*ÿï08@Rwp.com/livesurf.ru/faners/ +ÿï08@R wpclktls.com^ +0ÿï08@R wpshop.ru/tools/widget/widget.js +ÿï08@Rwq3.ru^ +,ÿï08@Rwww.cmlt.ru/js/widget_ans.js +ÿï08@R wwwomen.ru^ +ÿï08@R x-ero.ru^½ +ÿï08@R x-love.com^ +ÿï08@R +x-traf.ru^ +ÿï08@Rx4u.ru^ +08@Rxap.ru^ +"ÿï08@Rxchange.cc/banner/ +7ÿï08@R'xn-----6kcabjzj3azhemz8a4p.xn--p1ai/js/ +:ÿï08@R*xn--80aalwclyias7g0b.xn--p1ai/rd_widget.js +0ÿï08@R xn--b1aygfn8d.xn--p1ai/informer/ +ÿï08@R +xstats.in^ +ÿï08@R xxx-news. ++ÿï08@Ryandex-games.ru/ok/banners/ +"ÿï08@Ryandex.net/banner/ +ÿï08@Ryandexo.ru/rek/ +~ÿï* + yandex.by* + yandex.kz* + yandex.ru* + yandex.uz* +ya.ru08@R'yastatic.net/*/market-static/affiliate/ + ÿï08@Ryellowmedia.biz^ + ÿï08@Ryoga-terapia.ru^ +ÿï08@R +yottos.com +*ÿï08@Ryournewhosting.com/images/ +$ÿï08@Ryousticker.com/load/ +-ÿï08@Ryoutravel.me/widgets/admitad/ +ÿï08@R +ysexy.org^ +ÿï08@Ryuga.ru^ +$ÿï08@Rzadarma.com^*/banner +ÿï08@R zamok911.com^ + ÿï08@Rzapasnoylead.ru^ +0ÿï08@R zapato.ru/upload/affiliate_pics/ +ÿï08@Rzdos.ru^ ++ÿï08@Rzen.yandex.ru/widget-loader +ÿï08@R zez.su/ban/ +ÿï08@R zheton.com^ +"€08@Rzhitomir.info/price +ÿï08@Rzipmonster.ru^ +ÿï08@Rzmoe.ru^ +ÿï08@R znate.ru^ +ÿï08@R znews.su^ +ÿï08@R zorkabiz.ru^ +ÿï08@R zozocash.biz^ +ÿï08@Rzremcom.ru/anim +ÿï08@R zto.h16.ru^ +ÿï08@Rzybu.ru^ + ÿï08@R1k.by/informers/ +%ÿï08@R1k.by/user/informers/ +*ÿï08@R24au.ru/*/24au_informer.js +08@R 24smi.org/i/ + ÿï08@R66.ru/mod/news2/ +ÿï08@Raif.ru/iframes/ +,ÿï08@Ranalyzethis.ru/informer.cgi? +7ÿï08@R'autonet.ru/extra/autoclub_informer.aspx ++ÿï08@Rbanki.ru/_export/informers/ +ÿï08@Rbash.*/forweb/ +$ÿï08@Rbestnews.biz/js/out/ +%ÿï08@Rbigmir.net/informers/ +ÿï08@R cmexota.ru^ +2ÿï08@R"cnews.ru/inc/partners/rotator.php? +!ÿï08@Rcomon.ru/data/js/ +08@R d.drive.ru/_/ +$ÿï08@Rdoramy.net/informer/ +&ÿï08@Rduty.webbia.ru/change/ +!ÿï08@Rexchange.meta.ua^ + ÿï08@Rfair.ru/*/i.php? +&ÿï08@Rfark.ru/js/bannerLink. +!ÿï08@Rfinam.ru/data/js/ +#ÿï08@Rforbes.kz/informer/ +€08@R from-ua.com^Æ +&ÿï08@Rgazetavv.com/informer- +)ÿï08@Rinfo-dvd.ru/bbm/informer/ + ÿï08@Rjhf.ru/informer/ +-ÿï08@Rkinobzor.tv/_cron/js/informer +%ÿï08@Rkp.ru/_ajax/informer_ +#ÿï08@Rlenta-novostei.com^ +'ÿï08@Rmakeup.com.ua/informer/ + ÿï08@Rmediametrics.ru^ +"ÿï08@Rmeta.ua/*/block.js +#ÿï08@Rmeta.ua/informers/? + ‚08@Rnews.findres.com^ + ÿï08@Rnnn.novoteka.ru^ +ÿï08@Rnnn.ru^ +ÿï08@Rnntx.ru^ +]ÿï* +novostimira.press* +novostimira.biz* +novostimira.com08@R novostimira. +!ÿï08@Rnyx.su/informers/ +#ÿï08@Rotvali.ru/informer/ +%ÿï08@Rpiter.tv/widget_news/ +"ÿï08@Rpodfm.ru/informer/ +$ÿï08@Rportak.net/informer/ +#€08@Rpravda.ru/cache/cqc/ +1ÿï08@R!protoplex.ru/cgi-bin/informer.pl? ++ÿï08@Rprotoplex.ru/images/rating/ +&ÿï08@Rrosinvest.com/informs/ +-ÿï08@Rrssportal.ru/getinformer.php? +ÿï08@Rru-novocti.com^ +/ÿï08@Rseowebtools.ru/inform/infb.php? ++ÿï08@Rshkolazhizni.ru/img/export/ +8ÿï08@R(shopnow.com.ua/media/openmedia_informer/ +&ÿï08@Rsibhealth.by/informer/ +#ÿï08@Rsmigid.ru/informer/ + ÿï08@Rtophot-news.com^ +%ÿï08@Rtraffim.com/informer/ +,ÿï08@Rvideo.909.su/feeds/feed.php? +$ÿï08@Rvtomske.ru/informer/ +!ÿï08@Rwqa.ru/show/?inf= +!ÿï08@R//176.58.105.153^ +%ÿï08@R//188.120.246.210/ad/ + ÿï08@R//188.40.18.172^ +!ÿï08@R//188.72.225.106^ +#ÿï08@R//194.135.105.*/js/ +"ÿï08@R//195.161.119.239^ +&08@R//213.151.2.195/storage/ +!ÿï08@R//213.163.70.183^ +*ÿï08@R//213.186.217.210/banners/ +'ÿï08@R//217.170.78.*/banners/ +!ÿï08@R//78.140.145.178^ + ÿï08@R//80.91.178.234^ +ÿï08@R//80.93.49.192^ +ÿï08@R//80.93.56.187^ +4ÿï08@R$//83.218.204.107/numbers.md/banners/ +ÿï08@R//85.10.194.51^ + ÿï08@R//90.156.144.98^ + ÿï08@R//91.194.251.66^ +%ÿï08@R//95.168.161.173/www/ +(ÿï08@R//95.211.26.129/banners/ +ÿï08@R .vnadsrv.com^ +08@R//89.108.109.12^ +!ÿï08@R//95.169.186.139^ +!ÿï08@Rws*//*.igrid.org^ +'ÿï08@Rws*//*10root25.website^ +$ÿï08@Rws*//*185.87.50.147^ + ÿï08@Rws*//*adlabs.ru^ +.ÿï08@Rws*//*adspayformymortgage.win^ƒ +"ÿï08@Rws*//*amgload.net^ +!ÿï08@Rws*//*aviabay.ru^ +!ÿï08@Rws*//*bgrndi.com^ +&ÿï08@Rws*//*biberukalap.com^ +#ÿï08@Rws*//*brokeloy.com^ +"ÿï08@Rws*//*civitik.com^ +$ÿï08@Rws*//*cnamerutor.ru^ +#ÿï08@Rws*//*dreadfula.ru^ +!ÿï08@Rws*//*et-code.ru^ +"ÿï08@Rws*//*etcodes.com^ +#ÿï08@Rws*//*film-doma.ru^ +#ÿï08@Rws*//*franecki.net^ +ÿï08@Rws*//*gocdn.ru^ + ÿï08@Rws*//*hghit.com^ +!ÿï08@Rws*//*infomir.pw^ +!ÿï08@Rws*//*kinott.com^ + ÿï08@Rws*//*kinott.ru^ +"ÿï08@Rws*//*kuveres.com^ +!ÿï08@Rws*//*lepubs.com^ +$ÿï08@Rws*//*loadercdn.com^ +!ÿï08@Rws*//*luxadv.com^ +ÿï08@Rws*//*luxup.ru^ +$ÿï08@Rws*//*luxupadva.com^ +$ÿï08@Rws*//*luxupcdna.com^ +$ÿï08@Rws*//*mixadvert.com^ +!ÿï08@Rws*//*mxtads.com^ +"ÿï08@Rws*//*nickhel.com^ +"ÿï08@Rws*//*oconner.biz^ +#ÿï08@Rws*//*oconner.link^ +$ÿï08@Rws*//*octoclick.net^ +#ÿï08@Rws*//*octozoon.org^ +&ÿï08@Rws*//*piguiqproxy.com^ +"ÿï08@Rws*//*pkpojhc.com^ +!ÿï08@Rws*//*psma01.com^ +!ÿï08@Rws*//*psma02.com^ +!ÿï08@Rws*//*psma03.com^ +ÿï08@Rws*//*rcdn.pro^ +#ÿï08@Rws*//*recreativ.ru^ +"ÿï08@Rws*//*redtram.com^ +"ÿï08@Rws*//*regpole.com^ +#ÿï08@Rws*//*rootmedia.cc^ +#ÿï08@Rws*//*rootmedia.ws^ +#ÿï08@Rws*//*ruttwind.com^ +"ÿï08@Rws*//*rutvind.com^ +&ÿï08@Rws*//*salamaleyum.com^ +ÿï08@Rws*//*skidl.ru^ +"ÿï08@Rws*//*torvind.com^ +'ÿï08@Rws*//*traffic-media.co^ +"ÿï08@Rws*//*trafmag.com^ +!ÿï08@Rws*//*ttarget.ru^ +"ÿï08@Rws*//*utorido.com^ +'ÿï08@Rws*//*webadvert-gid.ru^ +&ÿï08@Rws*//*webadvertgid.ru^ +!ÿï08@Rws*//*xxuhter.ru^ +&ÿï08@Rws*//*xxx-hunt-er.xyz^ +$ÿï08@Rws*//*yuiout.online^ +#ÿï08@Rws*//*zoom-film.ru^ +&ÿï08@Rws*://*185.127.19.213^ +ÿï08@R03ab2qdorz.com^ +ÿï08@R 0816bvh.ru^ +ÿï08@R 0916video.ru^ +ÿï08@R0gs5mb24su.ru^ +ÿï08@R0iqiehoa35.ru^ +ÿï08@R0p1ohj2f5f.ru^¾ +ÿï08@R 0y2im3ma.ru^ +ÿï08@R100level.store^ +ÿï08@R11nov2022.site^ +ÿï08@R 11wishes.com^ +ÿï08@R123torrent.ru^ +ÿï08@R +12cpm.com^ +)08@R1app.blob.core.windows.net^ +ÿï08@R1dmp.io^ +ÿï08@R1k3.com^ +ÿï08@R 1k3.systems^ +ÿï08@R +1klink.ru^ +ÿï08@R +1oshop.ru^ +ÿï08@R1p3opxwwet.ru^ +ÿï08@R +1rtl.info^ +ÿï08@R1ru.tv^ +ÿï08@R1torrent-tv.ru^ +ÿï08@R1twmhj98ai.ru^ +ÿï08@R +1under.ru^ +ÿï08@R 1zdorov.ru^ +ÿï08@R2-ch.ga^ +ÿï08@R22ei7q8l12.com^ +ÿï08@R 22pornz.site^ +ÿï08@R 24olimp.ru^ +#ÿï08@R24productions.info^ +ÿï08@R28xppc6e0q.com^ +ÿï08@R2ad.wtf^ + ÿï08@R2am0yc33wt2e.ru^ +ÿï08@R2fk0iss45c.ru^ +ÿï08@R2gwzdkjrtb.ru^ +ÿï08@R 2lycosu.com^ +ÿï08@R 2lycosy.com^ +"ÿï08@R2sfygwfxvsxv.info^ +ÿï08@R +2under.ru^ +"ÿï08@R2vaxwkujrfwh.info^ + ÿï08@R2wswg32trqa2.ru^ +ÿï08@R 2xclick.ru^ +ÿï08@R33a89nw03k.ru^ +ÿï08@R 33portala.ru^ +ÿï08@R +3647.tech^ +ÿï08@R3cdn.ru^ +ÿï08@R3ez1ja1uq3.ru^ +ÿï08@R3grg8dqjil.ru^ +ÿï08@R3h1fpq39jb.ru^ +ÿï08@R3kbktygzr5.ru^ +ÿï08@R 3lucosy.com^ +ÿï08@R 3mnhfoqm.ru^ +ÿï08@R3mtr.ru^ +ÿï08@R +3under.ru^ +ÿï08@R +4251.tech^ +ÿï08@R4623.ru^ +ÿï08@R4736.in^ +ÿï08@R 4allclick.ru^ +$ÿï08@R4broomandbrush.zone^ +ÿï08@R4mjlixyhcc.com^ +ÿï08@R4mlhn1ocg4.com^ + ÿï08@R4n1hqmcoms.rest^ +ÿï08@R 4pseo.ru^ +ÿï08@R4smi.ru^ +ÿï08@R5.101.115.170^ +4ÿï08@R$55421d35f3a0719b4269b3f474dbf9fa.ru^ +ÿï08@R 5cacard.ru^ +ÿï08@R5moxhf6z8c.ru^ +ÿï08@R 5visions.com^ +ÿï08@R5xanz2dxcn.ru^í +ÿï08@R62.109.18.206^ +ÿï08@R6598kn9gpf.ru^ +ÿï08@R6c5xnntfvi.com^ +ÿï08@R6jfvnf69jx.ru^ +ÿï08@R6rn05mmbct.ru^ +ÿï08@R6t5n9h77m8.com^ +ÿï08@R6v7q4txztl.ru^ +ÿï08@R +7-link.ru^ +ÿï08@R +7ad.media^ +ÿï08@R7cipgmg8r6.ru^ +ÿï08@R7fvdh40aoz.ru^ +ÿï08@R7kprtners.com^ +ÿï08@R7nkbwdf1uq.ru^ +ÿï08@R 7offers.ru^ +ÿï08@R7out.ru^ +ÿï08@R7szhvp97gv.ru^ +(ÿï08@R7x7br2h1ujdoi391.in.net^ +ÿï08@R 8245.digital^ +ÿï08@R841k8qv38d.ru^ +ÿï08@R89rscocasf.ru^ +$ÿï08@R8cbafb733a8bb5f.com^ +ÿï08@R 8ikr3dfn.ru^ +ÿï08@R8jk35km0r3.com^ +ÿï08@R 8nr2bisa.ru^ +ÿï08@R 8pulse.com^ +(ÿï08@R8q2g560ynxlkz9rm.in.net^ +ÿï08@R95.213.229.88^ +ÿï08@R95.213.231.34^ +ÿï08@R +9lt1f7.ru^ +ÿï08@R +9solo.biz^ +ÿï08@R9vds.ru^ +ÿï08@R9vzzijbj5f.com^ +ÿï08@Ra-akamaihd.com^ +ÿï08@R a.aviabay.ru^ +ÿï08@Ra.mayakinfo.ru^ +ÿï08@R a0resmb.com^ +ÿï08@R a6lxbeui.ru^ +ÿï08@Ra7i02p23sj.xyz^ +ÿï08@R aa-ds.ru^ +ÿï08@R +aahvz.top^ +ÿï08@R aastob.com^ +ÿï08@R abcpark.ru^ +ÿï08@R abdmi.ru^ +ÿï08@R +abeets.ru^ +ÿï08@Rabourselfi.com^ +ÿï08@R abs-cdn.org^ +ÿï08@Racademand.com^ +ÿï08@R acdnpro.com^ +ÿï08@R ackhoo.com^ +ÿï08@Raclicktds.org^ +ÿï08@Ractionpay.net^ +ÿï08@Ractionrtb.com^ + ÿï08@Ractionteaser.ru^ +ÿï08@Ractivepr.info^ +ÿï08@Ractuanius.com^ +!ÿï08@Rad-app.morion.ua^ +ÿï08@Rad.ddestiny.ru^ +%ÿï08@Rad.gameagregator.com^ +ÿï08@R ad.h-vip.ru^ +ÿï08@R ad.hutor.ru^ +!ÿï08@Rad.liveburst.com^ +ÿï08@R ad.luxnet.ua^ +"ÿï08@Rad.olymptrade.com/ +%ÿï08@Rad.or.ru/inner?block=¬ +#ÿï08@Rad.outstream.today^ +%ÿï08@Rad.starlightmedia.ua^ +ÿï08@R ad.vidver.to^ +ÿï08@Rad.vo-media.ru^ +ÿï08@Rad1.ru^ +ÿï08@R ad1game.ru^ +ÿï08@R ad2the.net^ +ÿï08@R ad4sell.com^ +ÿï08@R +adb01.pro^ +ÿï08@R +adbean.ru^ +ÿï08@R +adbid.biz^ +ÿï08@R adblade.com^ +ÿï08@R adblender.ru^ +"ÿï08@Radblockmetrics.ru^ +ÿï08@R adbutton.net^ +ÿï08@R +adcamp.ru^ +ÿï08@R +adcryp.to^ +ÿï08@R adddpc01.ru^ +ÿï08@Raddsleeper.com^ +ÿï08@Radeniznet.com^ +ÿï08@R +adflax.ru^ +ÿï08@R adfox.ru^ +ÿï08@R adfun.ru^ + ÿï08@Radghndou0sdh.ru^ +ÿï08@R adiam.tech^ +ÿï08@Radjarabet.com^ +ÿï08@Radjs.ru^ +ÿï08@R adkraft.ru^ +ÿï08@R +adlabs.ru^ +#ÿï08@Radlabsnetworks.com^ + ÿï08@Radlabsretail.ru^ +ÿï08@R adlmerge.com^ +ÿï08@R adlook.tech^ +ÿï08@R +adluxe.ru^ +ÿï08@R +admag.pro^ +ÿï08@R +admail.am^ +ÿï08@Radmaster.click^ +ÿï08@R admaxer.ru^ +ÿï08@Radmediator.ru^ +ÿï08@R admelon.ru^ +ÿï08@R +admile.ru^ +ÿï08@R +admilk.ru^ +ÿï08@R admitlead.ru^ +7ÿï08@R'admixercreatives.blob.core.windows.net^ +ÿï08@R admondom.ru^ +!ÿï08@Radmp-tc.delfi.ee^ +ÿï08@R +adname.ru^ +!ÿï08@Radnetpartner.com^ +ÿï08@R adoffer.pro^ +ÿï08@R +adp4wb.ru^ +ÿï08@R +adplay.ru^ +ÿï08@R +adplus.io^ +ÿï08@R adpool.bet^ +ÿï08@R adpremium.ru^ +ÿï08@R adprofits.ru^ +ÿï08@R adradle.life^ +ÿï08@R adram.media^ +ÿï08@Radreaction.ru^ +ÿï08@R +adrek*.ru^ +ÿï08@Radretarget.net^ +ÿï08@R adrow.ru^ +ÿï08@R adrun.ru^ +ÿï08@R ads-lot.ru^ +!ÿï08@Rads-provider.com^� +-ÿï08@Rads-upload.gazprom-media.net^ +'ÿï08@Rads.digitalcaramel.com^ +) * + +ads.vk.com08@R ads.vk.com/ +ÿï08@R ads2.bid^ +ÿï08@R adsclick.ru^ +ÿï08@Radseedtech.com^ +ÿï08@Radselector.ru^ +ÿï08@R adservob.com^ +ÿï08@Radservone.com^ +ÿï08@R adsfin.pro^ +ÿï08@Radsgarden.com^ +ÿï08@R adsgid.com^ +ÿï08@R adslinks.ru^ +ÿï08@R adsmeda.com^ +ÿï08@R adsmmgp.com^ +ÿï08@R adsmo.ru^ +ÿï08@R adsorg.com^ +ÿï08@Radspeeker.com^ +ÿï08@Radspend.space^ +ÿï08@Radstag0102.xyz^ +ÿï08@R adstark.com^ +ÿï08@Radsteroid.pro^ +ÿï08@R adstime.org^ +ÿï08@R adstock.ru^ +ÿï08@Radstreamer.ru^ +ÿï08@R adsubon.com^ + ÿï08@Radswrapme.click^ +ÿï08@R +adsyst.ru^ +ÿï08@R adtags.pro^ +ÿï08@R adtarget.me^ +!ÿï08@Radtcodeblack.com^ +"ÿï08@Radtech-digital.ru^ +ÿï08@R adtraf.pro^ +ÿï08@R adtraff.ru^ +#ÿï08@Radtscriptshark.com^ +ÿï08@R adulthub.ru^ +&ÿï08@Radv-cdn.tnt-online.ru^ +ÿï08@R adv-first.ru^ +ÿï08@Radv-target.ru^ +ÿï08@Radv-views.com^ +ÿï08@Radvancets.org^ +ÿï08@R advcache.ru^ +ÿï08@R advcake.com^ +ÿï08@Radvcake.online^ +ÿï08@Radvclicks.net^ +ÿï08@R adveasy.ru^ +ÿï08@R adveg.ru^ +ÿï08@R +advego.ru^ +ÿï08@R +adverd.ru^ +ÿï08@Radverdata.net^ +ÿï08@R adversni.com^ ++ÿï08@Radversting.riamedia.com.ua^ +ÿï08@R advertise.ru^ +ÿï08@Radvertland.ru^ +ÿï08@Radvertlink.ru^ +ÿï08@R advertmi.ru^ +ÿï08@Radvertoly.com^ +ÿï08@Radvertronic.io^ +ÿï08@Radvertshot.ru^ +ÿï08@R advertte.com^ +ÿï08@R advg.agency^ +ÿï08@R advgame.org^ + ÿï08@Radvice.imho.net^ +6ÿï* +ohoro.ru* +zugr.ru08@R advideo.ru^Æ +ÿï08@R advjump.com^ +ÿï08@R advkino.ru^ +ÿï08@R advland.ru^ +ÿï08@R advmedia.kz^ +ÿï08@R advmusic.com^ +ÿï08@R advmusic.net^ +ÿï08@R advrush.com^ +ÿï08@R advscdn.com^ +ÿï08@Radvservert.com^ +ÿï08@R advtise.net^ +ÿï08@R advtise.ru^ +ÿï08@Radvtracker.ru^ +ÿï08@R +advweb.ru^ +!ÿï08@Radwadvert.com.ua^ +ÿï08@R +adwels.ru^ +ÿï08@R adwidgets.ru^ +ÿï08@Radwise.agency^ +ÿï08@R +adwist.ru^ +ÿï08@R +adwolf.ru^ +ÿï08@R adx.com.ru^ +ÿï08@R adxgeeks.com^ +ÿï08@R adxzqk.com^ +ÿï08@R adylalahb.ru^ +ÿï08@R +aegke.top^ +ÿï08@R aeidive.info^ +ÿï08@R aeowrb.com^ +ÿï08@R aerontre.com^ +$ÿï08@Raff.mediarotate.com^ +ÿï08@R affpros.net^ +'ÿï08@Rafishamedia.uz/*banner. +)ÿï08@Rafishamedia.uz/*branding. +ÿï08@R afojjm.com^ +ÿï08@R afrek.ru^ +ÿï08@Rafrguard.space^ +ÿï08@R afruits.ru^ +ÿï08@R afterview.ru^ +"ÿï08@Ragainandagain.biz^ +'ÿï08@Ragenteimmobiliare.info^ +ÿï08@R agitazio.com^ +ÿï08@R agrohod.ru^ +ÿï08@R ahaclub.ru^ + ÿï08@Rahhmpxdcpy.info^ +ÿï08@R +ahial.top^ +ÿï08@R ahotron.ru^ +ÿï08@R ahyvmx.com^ +ÿï08@Rahzxppktgc.com^ +ÿï08@R aiadvi.com^ +ÿï08@R aif.yadro.ru^ +ÿï08@R +aimgd.com^ +ÿï08@R aintere.com^ +ÿï08@R aiqotg.com^ +ÿï08@R airlead.ru^ +ÿï08@R aitpqm.com^ +ÿï08@Raj1058.online^ +ÿï08@Raj1433.online^ +ÿï08@Raj1713.online^ +ÿï08@Raj1834.online^ +ÿï08@Raj1860.online^ +ÿï08@Raj1939.online^ +ÿï08@Raj2021.online^ +ÿï08@Raj2113.online^ +ÿï08@Raj2171.online^ +ÿï08@Raj2178.online^ +ÿï08@Raj2204.online^À +ÿï08@Raj2313.online^ +ÿï08@Raj2345.online^ +ÿï08@Raj2392.online^ +ÿï08@R aj2517.bid^ +ÿï08@R aj2635.bid^ +ÿï08@R aj3081.top^ +ÿï08@R ajaxbig.ru^ +ÿï08@R +ajur.info^ +ÿï08@Rajx130.online^ +ÿï08@Rajx161.online^ +ÿï08@Rakamaihd.site^ +ÿï08@R akashy.com^ +ÿï08@Rakifedalus.com^ +ÿï08@R akiwi.ru^ +ÿï08@Raksessuarov.ru^ +ÿï08@R akvile.site^ +ÿï08@Ral-adtech.com^ +ÿï08@R aleba.ru^ +ÿï08@R alemobile.ru^ +ÿï08@R alfadart.com^ +ÿï08@Ralfasense.net^ +ÿï08@R alfasrv.com^ + ÿï08@Rali-bestshop.ru^ +ÿï08@Ralibestru*.ru^ +ÿï08@R alibestru.ru^ +ÿï08@R alidtd.com^ +'ÿï08@Raliexpress-internet.ru^ +$ÿï08@Raliexpressforyou.ru^ +#ÿï08@Raliexpresskupit.ru^ +ÿï08@R alifenix.ru^ +ÿï08@R +aliru*.ru^ +ÿï08@Raliscaton.com^ +ÿï08@R alishop*.ru^ +ÿï08@R alitarget.ru^ +ÿï08@R +alixil.ru^ +ÿï08@R all-cod.com^ +ÿï08@R all-tcod.com^ + ÿï08@Rallergiya-na.ru^ +ÿï08@Ralli-tcod.com^ +ÿï08@Ralljournal.ru^ +ÿï08@R alloffs.ru^ +!ÿï08@Ralloviewroll.com^ +ÿï08@R allowac.com^ + ÿï08@Rallowandgo.link^ +ÿï08@R allroll.biz^ +ÿï08@R alltizer.ru^ +$ÿï08@Rallvideometrika.com^ +ÿï08@R almosto.com^ +ÿï08@R alshops*.ru^ +ÿï08@R +alshp1.ru^ +ÿï08@R +alshp2.ru^ +ÿï08@R +alshp3.ru^ +ÿï08@R alsmdb.com^ +ÿï08@Ramacritus.com^ +ÿï08@R +amads.xyz^ +ÿï08@R amazingcl.ru^ +ÿï08@R amgload.net^ +ÿï08@R +amiok.org^ +ÿï08@R amperse.info^ +ÿï08@R amuseer.com^ +ÿï08@R amusevar.com^ +ÿï08@R +amzbr.com^ +ÿï08@R +amzuu.com^ +#ÿï08@Ran.media-active.ru^í + ÿï08@Ran.webvisor.org^ +ÿï08@R anaheim.ru^ +ÿï08@Ranalytic.press^ +!ÿï08@Ranalyticsncc.net^ +ÿï08@R andlache.com^ +ÿï08@Randsedrit.com^ +ÿï08@R andumb.com^ +ÿï08@Ranidublink.ru^ + ÿï08@Ranilibriadub.ru^ +ÿï08@Ranilibriaz.ru^ +ÿï08@Ranimebest.zone^ +ÿï08@Ranimegofan.ru^ +ÿï08@Ranimegofans.ru^ +ÿï08@Ranimesvost.ru^ +ÿï08@Ranimesvosts.ru^ + ÿï08@Ranistarbests.ru^ +ÿï08@Rankunding.biz^ +ÿï08@R annienne.com^ +ÿï08@R annrdf.com^ +#ÿï08@Rantiblockseries.ru^ +ÿï08@R anvgej.com^ +ÿï08@R apedah.com^ +ÿï08@R api-keks.com^ +&ÿï08@Rapi-marketolog.mts.ru^ +"08@Rapi.market-place.su^ + ÿï08@Rapi.smartadv.ru^ +ÿï08@R api9.net^ +ÿï08@R apirelay.ru^ +$ÿï08@Rappintop.com/widget/ +ÿï08@R applieda.com^ +#ÿï08@Rappscriptshark.com^ + ÿï08@Rappsflybeta.biz^ +1ÿï08@R!apptoday.ru/videowidget/autoplay/ +ÿï08@R apreces.com^ +ÿï08@R aprement.com^ +ÿï08@R apucdt.com^ +ÿï08@R apycdn.com^ +ÿï08@R apytrc.com^ +ÿï08@R archeurs.com^ +ÿï08@R +arded.com^ +ÿï08@R +ardeta.ru^ +ÿï08@R ardiver.ru^ +ÿï08@R areanew.ru^ +ÿï08@Rareastock.site^ +ÿï08@R arigami.ru^ +ÿï08@R armi.media^ + ÿï08@Rartfiles.online^ +ÿï08@R aruhdx.com^ +ÿï08@R as4zjsw7.ru^ +ÿï08@R asdhit.com^ +ÿï08@R asdlk.stream^ +%ÿï08@Rasennessterfter.mobi^ +!ÿï08@Raserverstats.com^ +ÿï08@R asing.ru^ +ÿï08@R +asketo.ru^ +ÿï08@R +asowp.com^ +ÿï08@R asrsrtat.pro^ +ÿï08@R assantie.com^ +ÿï08@Rassociazio.com^ +ÿï08@Rassocieta.com^ +ÿï08@R astatic.site^ +ÿï08@R astdn.ru^ +ÿï08@R +asuler.ru^ +ÿï08@R +atavas.ru^Ç +ÿï08@R ati30re4.ru^ +ÿï08@R +atizer.ru^ +ÿï08@R atrafik.ru^ +ÿï08@R atrnv.info^ +ÿï08@R atshops1.ru^ + ÿï08@Raudiotouch.info^ +ÿï08@R +audtd.com^ +ÿï08@R auflink.com^ +ÿï08@R aurabom.ru^ +ÿï08@Rautosiga.site^ +ÿï08@R av-by.ru^ +ÿï08@R avacd.us^ +ÿï08@R +avcyr.com^ + ÿï08@Ravdahjhxbg.site^ +ÿï08@R avdego.net^ +ÿï08@R avertise.ru^ +ÿï08@R avmgetdo.ru^ +ÿï08@R avmul.space^ +ÿï08@R +avpris.ru^ +ÿï08@Rawebanner.net^ +ÿï08@R aweets.com^ +&ÿï08@Rawesomeredirector*com^ +ÿï08@R +awhate.ru^ +ÿï08@R +awsoop.ru^ +ÿï08@R +axapte.ru^ +ÿï08@R +axaxh.com^ +ÿï08@R +axesor.ru^ +ÿï08@R +ayjvb.com^ +ÿï08@R aytlpb.com^ +'ÿï08@Raz708531.vo.msecnd.net^ +ÿï08@R azart24.net^ +ÿï08@Razartdaddy.com^ +ÿï08@R +azazla.ru^ +ÿï08@R +azeves.ru^ +ÿï08@R azfitn.com^ +ÿï08@R +azmdy.com^ +ÿï08@R +azmnp.com^ +ÿï08@R azsin.ru^ +ÿï08@Razvjudwr.info^ +ÿï08@R azxovat.ru^ +ÿï08@R azyi9utz.ru^ +ÿï08@R azzpbn.com^ +$ÿï08@Rb.digital-tv.com.ua^ +ÿï08@R b.vtomske.ru^ +"ÿï08@Rb076a8317149e.com^ +ÿï08@R b21ywa9a.ru^ +ÿï08@Rb280c10798.com^ +%ÿï08@Rb37225ff40413593.com^ +ÿï08@Rb3r4muzf.site^ +!ÿï08@Rb4e2ab957324.com^ +ÿï08@Rb4q.ru^ + ÿï08@Rb53484e55a9.com^ +ÿï08@Rb65718899e.com^ + ÿï08@Rb8872cdad41.com^ +ÿï08@R babcohem.com^ +&ÿï08@Rbabdgihecgaedbdfgg.ru^ +ÿï08@Rbabe380812.com^ +&ÿï08@Rbabjeffaiicibehhag.ru^ +ÿï08@R bablace.com^ +ÿï08@R bablogon.net^ +$ÿï08@Rbaccelerator.online^ +ÿï08@R bachmedia.ru^ + ÿï08@Rbackforward.bid^ +ÿï08@R backromy.com^„ +ÿï08@Rbadamareus.com^ +ÿï08@Rbadumtsium.com^ +ÿï08@Rbafffnewss.com^ +ÿï08@R baiducdn.org^ +ÿï08@R +bajvt.com^ +ÿï08@Rbakibarus.com^ +ÿï08@Rbaks-easy.com^ +ÿï08@R bamboss.ru^ +ÿï08@R +bambun.ru^ +ÿï08@R banalyze.net^ +ÿï08@R banamau.com^ +ÿï08@Rbanamertur.com^ +ÿï08@R +banbot.ru^ +ÿï08@Rbandidandy.com^ +ÿï08@Rbanermaner.com^ +ÿï08@R +baneru.ru^ +ÿï08@R bank-cab.ru^ +ÿï08@R bankoved.com^ + ÿï08@Rbanner-media.ru^ + ÿï08@Rbanner.aismo.ru^ +"ÿï08@Rbannerms54489.com^ +"ÿï08@Rbannernetwork.net^ +ÿï08@Rbannersold.eu^ +!ÿï08@Rbannersvideo.com^ +ÿï08@Rbannuncio.com^ +ÿï08@R banquant.com^ +ÿï08@R baon-shop.ru^ + ÿï08@Rbara-banner.com^ + ÿï08@Rbarabanimira.ru^ +ÿï08@Rbarabanner.ru^ + ÿï08@Rbarbarisnews.ru^ +ÿï08@R barberz.ru^ +ÿï08@R +barbys.ru^ +ÿï08@R barpe.ru^ +ÿï08@R barraien.com^ +ÿï08@Rbarrior.online^ + ÿï08@Rbarrowsauer.bid^ + ÿï08@Rbarter-media.ru^ +ÿï08@Rbartponson.ru^ +ÿï08@R basbi.club^ +ÿï08@R basemedia.me^ +ÿï08@R basetts.com^ +ÿï08@R basewomen.ru^ +ÿï08@Rbashirian.biz^ +ÿï08@Rbashirian.link^ + ÿï08@Rbasicconfig.com^ +!ÿï08@Rbatecrowle.click^ +ÿï08@R batterlis.ru^ +ÿï08@Rbauerstroy.ru^ +#ÿï08@Rbavefqd1egybifo.ru^ +ÿï08@Rbaxofalis.com^ +ÿï08@R baz-tor.com^ +ÿï08@R bazakrovi.ru^ +ÿï08@R bazarad.ru^ +ÿï08@R bazazath.com^ +ÿï08@R bazilhan.com^ +ÿï08@R baztors.com^ +"ÿï08@Rbb7c59fd2c7e0.com^ +&ÿï08@Rbbacghhgfejedfbbeg.ru^ +ÿï08@R bbdfzl.com^ +#ÿï08@Rbbeljxm2dvwnfib.ru^ +"ÿï08@Rbbf26c5373c67.com^ +#ÿï08@Rbbfggzd3duxpsmo.ru^ +ÿï08@R bbtrf.info^¦ +ÿï08@R bbtyup.com^ +ÿï08@R +bbvc2.com^ +ÿï08@R +bbzcg.com^ +ÿï08@R bc-news.net^ +ÿï08@R bc-news.ru^ +ÿï08@R bc-news1.ru^ +ÿï08@Rbc22addf47.com^ +&ÿï08@Rbcbgadiagaeidjjheh.ru^ +ÿï08@R bcbljk.com^ + ÿï08@Rbce924fa02fa.ru^ +&ÿï08@Rbcgjjdbdgiggdcfjah.ru^ +ÿï08@R bchaser.info^ +ÿï08@R bcprn.club^ +ÿï08@R bcre002.me^ +ÿï08@R +bctwe.com^ +ÿï08@R bcvideod.com^ +ÿï08@R bcwwxc.com^ +!ÿï08@Rbd01etxdnree.org^ +!ÿï08@Rbd01qz3lnqt0.pro^ +!ÿï08@Rbd01uttfnqt0.top^ +ÿï08@Rbd09ertjo.tech^ +!ÿï08@Rbd09ertjpree.org^ +!ÿï08@Rbd09ertjpree.pro^ +%ÿï08@Rbd39beb2e1d7f0a4.com^ +ÿï08@Rbd81bbc5f2.com^ +ÿï08@Rbdbdqbdkdb.com^ +ÿï08@Rbdbdqddkdb.com^ +ÿï08@Rbdbdqdkibb.com^ +ÿï08@Rbdbdqdxkdb.com^ +ÿï08@Rbdbdqexkdb.com^ +ÿï08@Rbdbdqfdkdb.com^ +ÿï08@Rbdbdqfkibb.com^ +ÿï08@Rbdbdqfxkdb.com^ +ÿï08@Rbdbdqidkdb.com^ +ÿï08@Rbdbdqixkdb.com^ +ÿï08@Rbdbdqixkib.com^ +ÿï08@Rbdbdqkdkdb.com^ +ÿï08@Rbdbdqkkibb.com^ +ÿï08@Rbdbdqkxkdb.com^ +ÿï08@Rbdbdqndkdb.com^ +ÿï08@Rbdbdqndkib.com^ +ÿï08@Rbdbdqnxkdb.com^ +ÿï08@Rbdbdqnxkib.com^ +ÿï08@Rbdbdqqdkdb.com^ +ÿï08@Rbdbdqqdkib.com^ +ÿï08@Rbdbdqqxkdb.com^ +ÿï08@Rbdbdqskibb.com^ +ÿï08@Rbdbdqsxkdb.com^ +ÿï08@Rbdbdqxdkdb.com^ +ÿï08@Rbdbdqxkibb.com^ +ÿï08@Rbdbdqxxkib.com^ +ÿï08@R bdzhhjnml.pw^ +!ÿï08@Rbearsandfish.com^ +ÿï08@R bebyt.ru^ +ÿï08@Rbechtelar.link^ +&ÿï08@Rbedhbifaicdidaagei.ru^ +ÿï08@R bednar.biz^ +ÿï08@Rbedowntoft.com^ +ÿï08@Rbee.gl^ +!ÿï08@Rbee5eqxhpv.space^ +ÿï08@Rbeeblebroks.ru^ + ÿï08@Rbeedbe8ebba.com^ +ÿï08@R beerboms.ru^ +"ÿï08@Rbefouled-fire.com^µ +Gÿï* +zvezdniyolimp.com* +forum.kamsha.ru08@R beget.tech^ +ÿï08@Rbeglorena.com^ + ÿï08@Rbek5qstfnr.club^ +ÿï08@R +belhak.ru^ +ÿï08@R beligana.ru^ + ÿï08@Rbelo0snezhka.ru^ +ÿï08@R +belole.ru^ +!ÿï08@Rbelos2nez5hka.ru^ + ÿï08@Rbelosne6zhka.ru^ +ÿï08@R bench55.me^ +ÿï08@R bepolite.eu^ +ÿï08@R bequri.com^ +ÿï08@R berdent.com^ +ÿï08@R bergfi.com^ +ÿï08@R beriche.ru^ +ÿï08@R berle.ru^ +ÿï08@R +beroll.ru^ +!ÿï08@Rberrtiodsez.mobi^ +ÿï08@Rberryfico.com^ +ÿï08@R bertofo.ru^ +ÿï08@R bertyno.com^ +ÿï08@Rbesplatno.life^ +ÿï08@Rbest-buy24.biz^ +ÿï08@Rbest-cargo.ru^ +#ÿï08@Rbest-multi-rang.ru^ +ÿï08@R bestcpm.ru^ +ÿï08@Rbesteroffs.ru^ +"ÿï08@Rbestincome2017.ru^ +$ÿï08@Rbestnewsforbest.com^ +ÿï08@R bestoffs.ru^ +!ÿï08@Rbestofgeorgia.ge^ +!ÿï08@Rbestogameros.com^ +ÿï08@R bestssrv.com^ +ÿï08@R bestwaygo.ru^ +"ÿï08@Rbeta.mediafort.ru^ +ÿï08@Rbetamedia.biz^ + ÿï08@Rbetimogolef.com^ +!ÿï08@Rbetonmarkets.com^ +ÿï08@R bezrukov.fun^ +ÿï08@R bfgvqx.com^ +ÿï08@Rbg1kfdzzsq.ru^ +&ÿï08@Rbgaeedihjgbachfecj.ru^ +*ÿï08@Rbgajeddhdcjhbijhgaj.world^ +ÿï08@R +bgclck.me^ +ÿï08@R bgdmmb.com^ +ÿï08@Rbget.ru/adblock +ÿï08@R bggbbgbbg.ru^ +ÿï08@R +bggcdn.ru^ +ÿï08@R +bghost.ru^ +ÿï08@R bgkecb.com^ +ÿï08@R +bgxmq.com^ +ÿï08@R bgynsr.com^ +'ÿï08@Rbhfadjicddhbjaejebb.ru^ +!ÿï08@Rbhggbeynqhwm.bid^ +'ÿï08@Rbhhbgjcfajiccfabgba.ru^ +ÿï08@Rbhiesfffga.com^ +'ÿï08@Rbhigieabgdbabegiibb.ru^ +ÿï08@R biasdo.com^ + ÿï08@Rbiberukalap.com^ +ÿï08@R bict.pro^ +ÿï08@Rbid.run^ +ÿï08@R bidajet.info^ +&ÿï08@Rbidder.smartytouch.co^ +ÿï08@R bidmatic.io^› +ÿï08@R bidster.net^ +ÿï08@R bidtizadd.ru^ +ÿï08@Rbidtraffic.ru^ +ÿï08@R bidvay.com^ +ÿï08@R big-karp.ru^ +ÿï08@R big-sovet.ru^ +ÿï08@Rbig6q4y2oy.ru^ +ÿï08@R bigbonga.com^ +ÿï08@R bigclick.me^ +ÿï08@R bigctr.best^ +ÿï08@R bigirum.ru^ +ÿï08@R bigleads.ru^ +ÿï08@Rbigpigcz.club^ +ÿï08@R bigreal.org^ +ÿï08@R bigrstr.com^ +ÿï08@R bigrtrust.ru^ +ÿï08@R bigrun.info^ +ÿï08@R bilation.com^ +ÿï08@R bimsld.com^ +ÿï08@R +bin40.com^ +ÿï08@R bin700.com^ +ÿï08@R bin800.com^ +ÿï08@R bing0.ru^ +ÿï08@R bingp.ru^ +ÿï08@R binmedia.ru^ +ÿï08@Rbinpartner.com^ +ÿï08@R biocdn.net^ +ÿï08@R +biper1.ru^ +ÿï08@R biruriy.ru^ +ÿï08@R +bistr3.ru^ +ÿï08@R bistroduy.ru^ +ÿï08@R bitorent.ru^ +ÿï08@R bitvene.ru^ + ÿï08@Rbixmarketing.ru^ +ÿï08@R +bizaes.ru^ +ÿï08@R +bizmix.ru^ +ÿï08@Rbizowutum.com^ +'ÿï08@Rbjdijegccdfeccejcbb.ru^ +ÿï08@R bjdsfgg.pro^ +ÿï08@R bjiuck.com^ +ÿï08@R bjoxsc.com^ +ÿï08@R +bjpwv.com^ +!ÿï08@Rbk.goodline.info^ +"ÿï08@Rbkbb316fjx3.space^ +ÿï08@R bkqqpm.com^ +ÿï08@R bkrkv.com + ÿï08@Rblabla.tword.ru^ +ÿï08@R blackads.ru^ +ÿï08@R blackboot.ru^ + ÿï08@Rblaindgatum.com^ +ÿï08@R +blef11.ru^ +ÿï08@R blendac.com^ +ÿï08@R blessdi.com^ +ÿï08@R blikas.site^ +ÿï08@R blkmyco.com^ +ÿï08@R blogis.org^ +ÿï08@R bloglive.ru^ +ÿï08@R blogsdas.ru^ +ÿï08@Rblosteros.com^ +ÿï08@R bluksun.com^ +ÿï08@Rbm.ebacdn.com^ +ÿï08@Rbm.lencdn.com^ +!ÿï08@Rbm01qsxpovek.pro^ +ÿï08@R bmddea.com^Î +ÿï08@Rbme9usxpo.tech^ +ÿï08@R +bmgo.life^ +ÿï08@Rbmk1qvxpp.shop^ +!ÿï08@Rbmk5ez3pore1.top^ +ÿï08@R bmmwa.info^ +ÿï08@R bmrdrct.best^ +ÿï08@R bmstox.com^ +ÿï08@R bndozm.com^ +ÿï08@R bngpop.com^ +#ÿï08@Rbnjoajn5dfhbbam.ru^ +ÿï08@R +bnlif.com^ +ÿï08@R bnpdgha.pro^ +ÿï08@R bnr.ss.com^ +ÿï08@R bnstero.com^ +ÿï08@R +bnxhe.com^ +ÿï08@R +bnxkm.top^ +ÿï08@R boat2.info^ +ÿï08@Rbobi-bobi.info^ +ÿï08@Rbobi-mobi.info^ +$ÿï08@Rbobik.playflock.com^ +ÿï08@R bobrilla.com^ +ÿï08@R bodaybo.net^ +ÿï08@Rbodyclick.net^ +#ÿï08@Rbodyfit-muscles.ru^ +ÿï08@R bodykaa.ru^ +#ÿï08@Rbofjbnzsffbshf.com^ +ÿï08@R bogrex.com^ +ÿï08@R bold-in.ru^ +ÿï08@R bombago.ru^ +ÿï08@R bombeers.ru^ +ÿï08@Rbomentrima.xyz^ +ÿï08@R bondzgi*.tk^ +ÿï08@R bondzgi.cf^ +ÿï08@R bondzgi.ga^ +ÿï08@R bondzgi.gq^ +ÿï08@R bondzgi.ml^ +ÿï08@R bondzgi.tk^ +ÿï08@Rbongacash.com^ +ÿï08@Rbongobono.com^ +ÿï08@R bonusmne.com^ +!ÿï08@Rboogieiwoogie.ru^ +ÿï08@R booksdst.ru^ +ÿï08@R boolff.com^ + ÿï08@Rboostervideo.ru^ + ÿï08@Rboostingads.com^ +ÿï08@R bootlet.ru^ +ÿï08@Rboredsloth.net^ +ÿï08@R botkano.info^ +ÿï08@Rboyswork.info^ +ÿï08@Rbp5hq5jivj.ru^ +ÿï08@R bpioqb.com^ +ÿï08@R bpkbqp.com^ +ÿï08@Rbpkk.ru^ +ÿï08@R +bpyxg.com^ +ÿï08@Rbraaisstew.pro^ +ÿï08@Rbraipholl.com^ +ÿï08@Rbrandarium.ru^ +"ÿï08@Rbratuxaborcuxa.ru^ +ÿï08@Rbraviration.ru^ +ÿï08@Rbravo-lea.com^ +ÿï08@Rbravo-mejdu.ru^ +ÿï08@Rbravolius.com^ +"ÿï08@Rbrawlstars-app.ru^ +ÿï08@Rbreadwinner.ru^­ +!ÿï08@Rbreathetooth.com^ +ÿï08@R breedac.com^ +ÿï08@Rbreeffnet.com^ + ÿï08@Rbreitenberg.biz^ +ÿï08@R brelqiel.com^ + ÿï08@Rbrightilight.ru^ +"ÿï08@Rbrilliantbc9.club^ +ÿï08@Rbrinaltrak.com^ +"ÿï08@Rbrlxlpe8pmdgqv.ru^ +ÿï08@R brndrm.com^ +ÿï08@R bro2.biz^ +ÿï08@R broklam.com^ +ÿï08@Rbrolink*s.site^ + ÿï08@Rbromusic1s.site^ +ÿï08@R bropush.site^ + ÿï08@Rbroredir*s.site^ +ÿï08@Rbroweb3s.site^ + ÿï08@Rbroworker*s.com^ +"ÿï08@Rbrowser-livetv.ru^ +#ÿï08@Rbrowser-onelike.ru^ +"ÿï08@Rbrowser-onlytv.ru^ + ÿï08@Rbrowser-ru.site^ +"ÿï08@Rbrowser-tvizor.ru^ +#ÿï08@Rbrowser-tvlevel.ru^ +ÿï08@R brpktq.com^ +ÿï08@R +brunse.ru^ +ÿï08@Rbrushmoney.com^ +#ÿï08@Rbrvyjcu0ablfhwx.ru^ +ÿï08@R bs-dante.ru^ +$ÿï08@Rbs.quadrosystems.ru^ +"ÿï08@Rbs.serving-sys.ru^ +ÿï08@Rbs0zhksn3n.ru^ +ÿï08@Rbsgv3mn2fe.ru^ +#ÿï08@Rbshjzxt3apcciws.ru^ +ÿï08@R bspdyp.com^ +ÿï08@Rbsr9emrt8.net^ +#ÿï08@Rbsrmcgp7bbcpdky.ru^ +ÿï08@R bsvideo10.ru^ +ÿï08@Rbt3f4hjsf6.ru^ +ÿï08@R btloader.com^ +ÿï08@R buawdshes.ru^ +ÿï08@Rbubblenik.com^ +!ÿï08@Rbubblesmedia.net^ +ÿï08@Rbuckridge.link^ +ÿï08@Rbudaicius.com^ +ÿï08@R budrem.club^ +ÿï08@Rbufircation.ru^ +ÿï08@Rbufupacamo.com^ +ÿï08@R buildbull.ru^ +"ÿï08@Rbuilthuosefor.com^ +ÿï08@R bukhaja.ru^ +ÿï08@R bukolii.ru^ +ÿï08@Rbumampaid.club^ +ÿï08@R bumlam.com^ +ÿï08@Rbumphoalli.com^ +ÿï08@R +bunkr.top^ +ÿï08@R burburem.ru^ +$ÿï08@Rburningpushing.info^ +ÿï08@R businesq.men^ +#ÿï08@Rbusncuy4dmiuurl.ru^ +ÿï08@R bussters.com^ +ÿï08@R busyprice.ru^ +ÿï08@R butcalve.com^ +ÿï08@Rbutjohnce.com^ý +ÿï08@Rbutthenetti.ru^ +ÿï08@Rbuy-banner.com^ + ÿï08@Rbuy-traffic.org^ +ÿï08@R buytraf.ru^ +ÿï08@R buzzday.info^ +ÿï08@Rbvbypswhds.com^ +#ÿï08@Rbvcpedy6dyjgkkl.ru^ +ÿï08@R bveyge.com^ +ÿï08@R +bviin.com^ +ÿï08@Rbvl5bziz9d.ru^ +ÿï08@R bw95vpjda.ru^ +$ÿï08@Rbwbw2kje848hsmla.ru^ +#ÿï08@Rbwjtldk6flxispz.ru^ +ÿï08@Rbws0wvqt3k.ru^ +ÿï08@R +bwsru.com^ +#ÿï08@Rbwtvmnf9fxmvanw.ru^ +ÿï08@R +bxjch.top^ +ÿï08@R byevkj.com^ +ÿï08@R bykhovrya.ru^ +ÿï08@R bymotofyd.ru^ +ÿï08@R +bynff.com^ +ÿï08@R +byrgin.ru^ +ÿï08@Rbyri.by^ +ÿï08@R +bytde.com^ +ÿï08@Rbytemedia.org^ +ÿï08@R +byuop.com^ +ÿï08@R byzgoso.ru^ +#ÿï08@Rbzeypkk0dagcotd.ru^ +ÿï08@R +bzidp.com^ +ÿï08@R +bzlwe.com^ +ÿï08@R bzrpvk.com^ +*ÿï08@Rc02c34ce7c.a83dab28b3.com^ +ÿï08@Rc153yb4hps.ru^ +ÿï08@Rc1crbe4hvq.ru^ +ÿï08@R c2mix.ru^ +ÿï08@R c3itnot.ru^ +!ÿï08@Rc425ca36e118.com^ +!ÿï08@Rc4e384174a44.com^ +ÿï08@R c4mwm.ru^ +!ÿï08@Rc510216b59f2.com^ + ÿï08@Rc5dnrqs2vbl4.ru^ +%ÿï08@Rc704655a9050bdcc.com^ +ÿï08@Rc97eaqj38e.ru^ +ÿï08@R cachand.com^ +ÿï08@R +cadwx.com^ +ÿï08@R cafjwf.com^ +ÿï08@R cafmjvh7.ru^ +'ÿï08@Rcagadgfihecfiigbgbc.ru^ +'ÿï08@Rcajgbabcfhjceiacabd.ru^ +ÿï08@R +cajkov.ru^ +ÿï08@R cake017.ru^ +(ÿï08@Rcalculatorstatement.com^ +ÿï08@Rcalendar101.ru^ +#ÿï08@Rcallmebadguy.press^ +"ÿï08@Rcamera-realist.ru^ +ÿï08@R camihis.com^ +ÿï08@R campeut.com^ +ÿï08@R canalds.com^ +ÿï08@Rcannablepr.bid^ +ÿï08@R +cantn.top^ +ÿï08@Rcanzocoos.com^ +ÿï08@R capliman.com^ +ÿï08@R capriced.net^ +ÿï08@Rcapsnewss.info^î +ÿï08@R caragots.com^ +ÿï08@R card120.ru^ +"ÿï08@Rcarplaytoday.site^ +ÿï08@Rcartion.stream^ +ÿï08@R carveac.com^ + ÿï08@Rcashandfavor.ru^ +ÿï08@Rcashheaven.ru^ +ÿï08@Rcashinform.ru^ +ÿï08@R cashprom.ru^ +ÿï08@R cashstat.ru^ +ÿï08@R cashthe.ru^ +ÿï08@R cashtube.ru^ +ÿï08@R casinoha.ru^ +ÿï08@R castdome.ru^ +ÿï08@Rcastellol.com^ + ÿï08@Rcasualshark.com^ +ÿï08@R catcut.net^ +ÿï08@R catdog.today^ +!ÿï08@Rcatsflownblow.ru^ +ÿï08@Rcatsnetwork.ru^ +ÿï08@Rcau1aighae.com^ +!ÿï08@Rcawcowbar.online^ + ÿï08@Rcba0ee28e89.com^ +'ÿï08@Rcbagbjjjdhcgbjjgebc.ru^ +$ÿï08@Rcbbd66c6a387297.com^ +ÿï08@R +cbbvi.com^ +#ÿï08@Rcbrykorvsqihfy.com^ +"ÿï08@Rcc616fb0d8ea9.com^ +ÿï08@Rcc6d2cd48a.com^ +'ÿï08@Rccceegfjfgdggfjeibd.ru^ +ÿï08@Rcccpkinocom.ru^ +ÿï08@Rcccpkinonet.ru^ +ÿï08@R +cclaf.top^ +ÿï08@R +cclick.ru^ +%ÿï08@Rccokeryfilm.services^ +ÿï08@R ccstatic.net^ +ÿï08@Rccsyncuuid.net^ +ÿï08@Rcd11cf9055.com^ +ÿï08@Rcddn.ru^ +%ÿï08@Rcdn-bk.ligastavok.ru^ + ÿï08@Rcdn-ds.ddns.net^ +ÿï08@R cdn-img.ru^ +ÿï08@R cdn-my1.ru^ +ÿï08@R cdn-my2.ru^ +ÿï08@R cdn-my3.ru^ +ÿï08@R cdn-my4.ru^ +ÿï08@R cdn-my5.ru^ + ÿï08@Rcdn-rtb.sape.ru^ +ÿï08@Rcdn-static.ru^ +ÿï08@R cdn-vgtrk.ru^ +ÿï08@Rcdn.neon.click^ +ÿï08@R cdn.umh.ua^ +ÿï08@R cdn0.moy.su^ +ÿï08@Rcdn0.ru^ +ÿï08@R cdn1now.com^ +ÿï08@R cdn2now.com^ +ÿï08@R cdn3now.com^ +ÿï08@R cdn4now.com^ +ÿï08@R cdn5now.com^ +ÿï08@R cdn6.do.am^ +ÿï08@R cdn6now.com^ +ÿï08@R cdn7.space^ +ÿï08@R cdn8now.com^ +ÿï08@R cdn9now.com^´ +&ÿï08@Rcdnbuy.bidonmajet.com^ +)ÿï08@Rcdncache1-a.akamaihd.net^ +ÿï08@Rcdneurope.com^ +ÿï08@R cdnjs.nl^ +ÿï08@R cdnport.ru^ +ÿï08@R cdnrefpa.com^ +ÿï08@Rcdnrtbsape.ru^ +ÿï08@R cdnvt.ru^ +ÿï08@Rce4g6j97hi.ru^ +ÿï08@R ceatwilmo.ru^ +)ÿï08@Rceeahahdgehabejcabe.site^ +ÿï08@Rcefc1hv100.ru^ + ÿï08@Rcelebhistory.ru^ +%ÿï08@Rcelebratearrival.com^ + ÿï08@Rcelesterium.com^ +!ÿï08@Rcellulitmedic.ru^ +ÿï08@R ceoftca.ru^ +ÿï08@R cepereh.ru^ +ÿï08@R ceregete.com^ +ÿï08@R cetoftit.ru^ +ÿï08@R cettente.com^ +ÿï08@R cettenu.com^ +ÿï08@R cettenus.com^ +ÿï08@R cf9tn.ru^ +)ÿï08@Rcgahjgbahiecbcdjabf.site^ +%ÿï08@Rcggeajaigdeehhdhb.ru^ +ÿï08@R cghjdwd.info^ +#ÿï08@Rcgpomaw2dtitivf.ru^ +ÿï08@R +chabg.top^ +ÿï08@R +chajv.top^ +ÿï08@Rchampionwin.ru^ + ÿï08@Rchangelifer.biz^ +ÿï08@R chanluu.ru^ +ÿï08@Rcheburchik.ru^ +ÿï08@R checke.biz^ +ÿï08@Rcheckleads.ru^ +ÿï08@R cheff77.info^ +"ÿï08@Rchensenconter.com^ + ÿï08@Rcherryplane.com^ +)ÿï08@Rchhfcbehjcbeajigibg.site^ +ÿï08@R chicgar.info^ +"ÿï08@Rchickenfrutty.com^ +$ÿï08@Rchief-inpp-code.com^ +ÿï08@Rchik.ru^ +ÿï08@Rchikhanos.info^ +ÿï08@R china-air.ru^ +ÿï08@R chjbwz.com^ +!ÿï08@Rchoco-wonka.info^ +(ÿï08@Rchozashewuphoxeno.space^ +!ÿï08@Rchtoposmotret.su^ +ÿï08@Rchudoiog.info^ +ÿï08@R +chygam.ru^ +'ÿï08@Rcibahdggeeieeichabi.ru^ +ÿï08@Rcicleaxis.com^ +ÿï08@R ciement.com^ +ÿï08@R cientrer.com^ +ÿï08@R cigquf.com^ +ÿï08@R cihuvube.ru^ +*ÿï08@Rciiiiigiiacdcjfeaabh.site^ +ÿï08@R cilep.ru^ +ÿï08@Rcinemahd.info^ +ÿï08@R citaire.com^ +ÿï08@R citerrol.com^ +ÿï08@R citunse.ru^î +ÿï08@R cityads.com^ +ÿï08@R cityads.ru^ +ÿï08@R +ciuvo.com^ +ÿï08@R civezue.ru^ +ÿï08@R ckcsuk.com^ +ÿï08@R +ckqby.com^ +ÿï08@R cl.ekzo.org^ +ÿï08@R cl1abdoba.ru^ +ÿï08@R cl2alnizu.ru^ +ÿï08@Rcl3orbelen.ru^ +ÿï08@Rcl4tsalepi.ru^ +ÿï08@R cl5tudale.ru^ +ÿï08@Rcl6khotyeny.ru^ +ÿï08@Rclairpixum.com^ +ÿï08@R clanbanan.ru^ +ÿï08@R clangere.com^ +ÿï08@R clckmedia.ru^ +ÿï08@R +clckom.ru^ +ÿï08@R +clcktm.ru^ +ÿï08@R clcktms.ru^ +ÿï08@Rclctraffic.com^ +ÿï08@R cldappru.com^ + ÿï08@Rcleanernow.info^ +"ÿï08@Rcleverculture.pro^ +ÿï08@R +clhko.top^ +ÿï08@Rclick-make.com^ +ÿï08@Rclickads.name^ +ÿï08@Rclickbaza.com^ +#ÿï08@Rclickcashmoney.com^ + ÿï08@Rclickgate02.biz^ + ÿï08@Rclickiocdna.com^ + ÿï08@Rclicknetwork.ru^ +$ÿï08@Rclickonmeplease.com^ + ÿï08@Rclicks-cloud.ru^ + ÿï08@Rclickscloud.net^ +!ÿï08@Rclicksfordsm.com^ +ÿï08@R clickspay.ru^ +ÿï08@Rclicktimes.bid^ +ÿï08@Rclicktimes.net^ +ÿï08@R clicktms.ru^ + ÿï08@Rclicktoclick.ru^ +!ÿï08@Rclickunderad.com^ +!ÿï08@Rclickwizard.site^ +ÿï08@R cliennes.com^ +ÿï08@R clierets.com^ +ÿï08@R clievise.com^ +ÿï08@R clkmon.com^ + ÿï08@Rcllckdomain.com^ +#ÿï08@Rclmawdd9chhcaii.ru^ +ÿï08@R clme.biz^ +ÿï08@R clme.net^ +ÿï08@R cloakac.com^ +ÿï08@R close7p.com^ +ÿï08@R cloud-tar.ru^ + ÿï08@Rcloudfastads.ru^ + ÿï08@Rcloudleadia.com^ +ÿï08@Rcloudsdns.net^ +!ÿï08@Rclub-vulkano.com^ +ÿï08@R clubleads.ru^ +ÿï08@R clunder.net^ +!ÿï08@Rclusterslice.com^ +ÿï08@R clyilp.com^ +ÿï08@R cmcxmh.com^ +ÿï08@R cmoneba.ru^ +"ÿï08@Rcmp.quantcast.com^ +ÿï08@R cms-skin.com^ +ÿï08@R cmsat.space^ +ÿï08@Rcmsmodnews.com^ +ÿï08@Rcnamerutor.ru^ +ÿï08@R +cndmye.ru^ +ÿï08@R +cndmyp.ru^ +ÿï08@R +cndmyt.ru^ +ÿï08@R +cndmyu.ru^ +ÿï08@R +cndmyw.ru^ +ÿï08@R cnfgggj.info^ +ÿï08@Rcnhv.co^ +ÿï08@Rcny5.ru^ +ÿï08@Rcobocritus.com^ + ÿï08@Rcobrand.ria.com^ + ÿï08@Rcocabollla.site^ +ÿï08@R +codata.ru^ +08@R +code.*.ru/ + ÿï08@Rcode.roadvel.ru^ + ÿï08@Rcodedome.online^ +"ÿï08@Rcodeextrarich.net^ +!ÿï08@Rcodemediarich.ru^ +ÿï08@R codenet.one^ +ÿï08@Rcodes-media.ru^ +ÿï08@R codexq.net^ +ÿï08@R +codez1.me^ +ÿï08@R codezp1.com^ +ÿï08@R coe5n.ru^ +ÿï08@Rcoin-have.com^ +<ÿï* + 3dzone.link* +cnhv.co08@Rcoin-hive.com^ +!ÿï08@Rcoin-service.com^ +ÿï08@R coinerra.com^ +Qÿï* +btc-miner.online* + 3dzone.link* +cnhv.co08@R coinhive.com^ +ÿï08@Rcoinmakler.ru^ +ÿï08@Rcoinnebula.com^ +ÿï08@R coixan.com^ +ÿï08@Rcolamirus.com^ +ÿï08@Rcoldigloo.com^ +ÿï08@Rcoldtonight.ru^ +ÿï08@Rcoldtovarka.ru^ +ÿï08@Rcoldtreads.com^ +ÿï08@Rcolimavdar.ru^ +ÿï08@Rcollanetti.com^ +!ÿï08@Rcollegiumvita.ru^ +ÿï08@R +com495.ru^ +ÿï08@Rcometbetta.com^ +ÿï08@R comin.co^ + ÿï08@Rcommontools.net^ +'ÿï08@Rcomoestaschuvak.online^ +ÿï08@R comp-mash.ru^ +'ÿï08@Rcompeting-stinger.site^ +#ÿï08@Rconfigforthis.site^ +ÿï08@Rconline0121.ru^ +!ÿï08@Rconnection36.com^ +ÿï08@R connees.com^ +ÿï08@Rconst.website^ +ÿï08@Rcontactsin.com^ + ÿï08@Rcontactsin.mobi^ +ÿï08@Rcontactsin.ru^ +ÿï08@R contema.ru^ +ÿï08@R contemo.ru^ +ÿï08@Rcontentika.com^ +ÿï08@Rconteresse.com^ +ÿï08@Rconteresso.com^ô +ÿï08@Rconternet.com^ +ÿï08@Rcontext-art.ru^ +ÿï08@Rcontextbar.net^ +ÿï08@Rcontextbar.ru^ +ÿï08@Rcontextlab.ru^ +ÿï08@Rcontextrtb.com^ +ÿï08@R contlist.com^ +ÿï08@R +contr.biz^ + ÿï08@Rconvergator.net^ +ÿï08@Rconvertds.com^ +"ÿï08@Rconverteam.online^ +%ÿï08@Rconvertiblestate.com^ +#ÿï08@Rcooleefbaldw.uk.to^ +ÿï08@Rcooleightds.eu^ +ÿï08@Rcooltovarka.ru^ +ÿï08@R cooster.ru^ +ÿï08@Rcopercato.com^ +ÿï08@Rcopylon.space^ +ÿï08@R corer.ru^ +ÿï08@R corkery.biz^ +ÿï08@R corntire.com^ +ÿï08@R coroftert.ru^ +ÿï08@R corpore.ru^ +ÿï08@Rcortonlab.com^ +ÿï08@R corulka.net^ +ÿï08@R corulu.com^ +ÿï08@Rcostaction.com^ +&ÿï08@Rcostumefilmimport.com^ +ÿï08@R +cotsta.ru^ +%ÿï08@Rcounterpartonline.ru^ +!ÿï08@Rcounterparttv.ru^ +'ÿï08@Rcoupleglassesofmilk.ru^ +ÿï08@R coweve.info^ + ÿï08@Rcpa-sov-part.ru^ +ÿï08@Rcpa-system.ru^ +ÿï08@Rcpa6.ru^ +ÿï08@R +cpa600.ru^ +ÿï08@R cpaff.ru^ +ÿï08@R cpagetti.com^ +ÿï08@Rcpagettio.com^ +ÿï08@Rcpaggetti.com^ +ÿï08@Rcpamedia.info^ +ÿï08@R +cpiyz.com^ +ÿï08@R cportbokc.ru^ +ÿï08@R +cppgf.com^ +ÿï08@R cpvsoler.com^ +ÿï08@R +cpwub.com^ +#ÿï08@Rcq475kknl7thzf.top^ +#ÿï08@Rcqhciif9bjtplrc.ru^ +ÿï08@R cr09.biz^ +ÿï08@R crackac.com^ +ÿï08@Rcraftmine-2.ru^ +ÿï08@R +crapka.ru^ +ÿï08@R crateac.com^ +!ÿï08@Rcrazynews.ru.com^ +ÿï08@R crcvba.com^ +ÿï08@R credishe.com^ +ÿï08@R creofive.com^ +ÿï08@R creofun.com^ +!ÿï08@Rcrimpy-baboon.eu^ +ÿï08@Rcrispmedia.ru^ +ÿï08@Rcrm-cpa-sib.ru^ +ÿï08@R crmsibcpa.ru^ +ÿï08@R crocmedia.ru^¦ +ÿï08@R +crpoy.com^ +ÿï08@R crtbmf.life^ +ÿï08@R crtgmf.life^ +ÿï08@R crtkmf.life^ +ÿï08@R crtlmf.life^ +ÿï08@R crtlqf.life^ +ÿï08@R crtlwf.life^ +ÿï08@R crtlxf.life^ +ÿï08@R crtlzf.life^ +ÿï08@R crtpmf.club^ +ÿï08@Rcrtpmf.online^ +ÿï08@R crtpmf.today^ +ÿï08@R crtumf.club^ +ÿï08@Rcrtumf.online^ +ÿï08@R crtumf.today^ + ÿï08@Rcrypto-loot.com^ +#ÿï08@Rcryptobossc.online^ +!ÿï08@Rcs-files-free.ru^ +ÿï08@R csaster.ru^ +ÿï08@R csfails.us^ +ÿï08@R +csitec.ru^ +ÿï08@R cslwcvdd.ru^ +ÿï08@R csnem.ru^ +ÿï08@Rcsp-qcw5yi.ru^ +ÿï08@Rcsscloud.live^ +ÿï08@R csvideos.ru^ +ÿï08@R ctadaci.ru^ + ÿï08@Rctomatolog74.ru^ +ÿï08@R +ctqqo.com^ +ÿï08@Rcubicmedia.net^ +ÿï08@Rcubo.ru^ +ÿï08@R +cufcw.com^ +ÿï08@R cufitf.com^ +ÿï08@R cugowy.info^ +ÿï08@R +cuioj.com^ +ÿï08@R cukcopo.ru^ +ÿï08@Rcup2board.gold^ +ÿï08@Rcuraleani.club^ +ÿï08@R +curker.ru^ + ÿï08@Rcutiedomain.com^ +!ÿï08@Rcutralflibsye.ru^ +ÿï08@Rcuys.ru^ +ÿï08@Rcuzrfkzwkn.ru^ +ÿï08@Rcv46.ru^ +ÿï08@R +cvdow.com^ +ÿï08@R cvnqiv.com^ +!ÿï08@Rcwadpreroll.club^ +!ÿï08@Rcwadryjehmnq.com^ +ÿï08@R cwh7tdf.com^ +ÿï08@R cwyxyw.com^ +ÿï08@R +cxepp.com^ +ÿï08@R cxmolk.com^ +ÿï08@R cxsjskd.info^ +ÿï08@R cxwsqv.com^ +#ÿï08@Rcyancornflower.com^ +ÿï08@R cycsfe.com^ +ÿï08@R +cyhtr.com^ +ÿï08@R cyjpfn.com^ +ÿï08@Rczihyzbul.com^ +ÿï08@Rd-ughwashes.ru^ +ÿï08@R +d-zeus.ru^ +%ÿï08@Rd.igra-prestoloff.cx^ +ÿï08@R d0.mradx.net^ +ÿï08@R d0wnloads.ru^¶ +ÿï08@Rd1776dc25a.com^ +-ÿï08@Rd19lkhros9wke.cloudfront.net^ +.ÿï08@Rd1af165twk0zgn.cloudfront.net^ +.ÿï08@Rd1f5rbi95y1icu.cloudfront.net^ +.ÿï08@Rd1p7elpjrt6qav.cloudfront.net^ +.ÿï08@Rd1uvhm532ipx9t.cloudfront.net^ +.ÿï08@Rd1zfhhmz4n1jvq.cloudfront.net^ +.ÿï08@Rd1zk0i9yiryb1j.cloudfront.net^ +.ÿï08@Rd24rtvkqjwgutp.cloudfront.net^ +.ÿï08@Rd27jk9dqha8met.cloudfront.net^ +.ÿï08@Rd2i5pngfrazn5t.cloudfront.net^ +.ÿï08@Rd2oa97wrxvxm7y.cloudfront.net^ +.ÿï08@Rd30gt5larl1k8h.cloudfront.net^ +.ÿï08@Rd30s0lx1onfwyh.cloudfront.net^ +.ÿï08@Rd31nb97nd8ha11.cloudfront.net^ +.ÿï08@Rd36sxvmjoflc2i.cloudfront.net^ +!ÿï08@Rd3a8342081c3.com^ +.ÿï08@Rd3c8l61zd5ltf8.cloudfront.net^ + ÿï08@Rd3f2a916f05.com^ +.ÿï08@Rd3p2b5qewrnsyv.cloudfront.net^ +.ÿï08@Rd3pb9zw46rm6zr.cloudfront.net^ +ÿï08@Rd4knadd23t.ru^ +ÿï08@R d4wmt.ru^ +!ÿï08@Rd5466b375f1f.com^ + ÿï08@Rd59309764cd.com^ +-ÿï08@Rd6z72aalekwc3.cloudfront.net^ +"ÿï08@Rd7921da5d4c24.com^ +ÿï08@R +da.mybb.ru +ÿï08@Rda083c9e32.com^ +ÿï08@Rdaayenetra.ml^ +ÿï08@R +dabca.top^ +ÿï08@R daccrois.com^ +ÿï08@R daccroit.com^ +!ÿï08@Rdadafilehost.com^ +'ÿï08@Rdafbaihceabgbefiibi.ru^ +ÿï08@R daffecte.com^ +ÿï08@R dafferes.com^ +ÿï08@R daffices.com^ +ÿï08@R dafficha.com^ +ÿï08@Rdaffydack.info^ + ÿï08@Rdagecisaxeze.cf^ +ÿï08@R dagradu.ru^ +ÿï08@Rdailyview.site^ +%ÿï08@Rdallworldnews2.store^ +ÿï08@R dalmspb.top^ +ÿï08@R damnetut.ru^ +ÿï08@R damskiy.xyz^ + ÿï08@Rdankulavius.com^ +ÿï08@R +daopz.top^ +ÿï08@R daredac.com^ +$ÿï08@Rdarmancerinelil.com^ +ÿï08@R dartimyl.com^ +ÿï08@Rdasftresns.com^ +ÿï08@Rdashslesh.com^ +ÿï08@R dasterx.ru^ +ÿï08@R datafeed.bet^ +!ÿï08@Rdataforthis.site^ +ÿï08@R datamind.ru^ +ÿï08@R datariver.ru^ +ÿï08@R datelycu.com^ +$ÿï08@Rdatingbestsite.life^ +ÿï08@R datropy.com^ +ÿï08@Rdavarello.com^ +ÿï08@R +dazbig.ru^¥ +'ÿï08@Rdcbfbihdccdeegbdgbj.ru^ +ÿï08@R +dclgy.com^ +ÿï08@R dcplayf.com^ +ÿï08@R dcwacl.com^ +!ÿï08@Rddbfd4e491c5.com^ +ÿï08@R ddcfzd.com^ +ÿï08@Rdddevki4u.com^ +ÿï08@R +ddomb.com^ +ÿï08@Rddpwhd77eg.ru^ +ÿï08@R ddxmgy.com^ +ÿï08@R ddyipu.com^ +ÿï08@R dealsplus.ru^ +ÿï08@R deammer.ru^ +ÿï08@R +decajo.ru^ +!ÿï08@Rdecce2efaeca.com^ +ÿï08@R dedenye.ru^ +$ÿï08@Rdedicatedgroups.com^ +ÿï08@R dedmi.ru^ +!ÿï08@Rdee7101d4cae.com^ +*ÿï08@Rdeeeccjgehabjjhhcca.world^ +#ÿï08@Rdeemnnc2ebecekx.ru^ +ÿï08@R deenomo.com^ +!ÿï08@Rdeepsteelsky.com^ +ÿï08@R defiques.com^ +ÿï08@R defiru.com^ +ÿï08@Rdefundium.com^ +ÿï08@Rdelikatsov.com^ +"ÿï08@Rdelivery.promo.ge^ +Eÿï* +techcrunch.com* +aol.com08@Rdelivery.vidible.tv^ +ÿï08@R delmlk.com^ +ÿï08@R delo-teh.ru^ +#ÿï08@Rdelta.mediafort.ru^ +ÿï08@R deltomix.ru^ +ÿï08@Rdemepatut.com^ +ÿï08@Rdemigart.info^ +ÿï08@R demilith.com^ +ÿï08@Rdenlorian.com^ +ÿï08@R +deobp.com^ +ÿï08@R derderus.ru^ +ÿï08@R derilam.com^ +ÿï08@Rderploime.com^ +ÿï08@R dert.pro^ +ÿï08@Rdertendium.com^ +ÿï08@Rdesignedy.com^ +ÿï08@R +desola.ru^ +#ÿï08@Rdesucofuzulobiv.ru^ +ÿï08@R detaires.com^ +ÿï08@R detdove.ru^ +!ÿï08@Rdetermineapp.com^ +ÿï08@R dev4enki.com^ +ÿï08@R devaxi.org^ +ÿï08@Rdevelenius.com^ + ÿï08@Rdevilclicks.com^ +ÿï08@R devoknet.ru^ +ÿï08@R +devrik.ru^ +ÿï08@R devtizer.ru^ +ÿï08@R +dewife.ru^ +ÿï08@Rdezisparum.com^ +-ÿï08@Rdf09rp0cm6rp6.cloudfront.net^ +ÿï08@R +dfebr.com^ +'ÿï08@Rdfeddiheighbajccicb.ru^ +'ÿï08@Rdffijaiagajbedddccc.ru^ +ÿï08@R +dfgqz.com^ +ÿï08@R dfkbf.ml^¬ +ÿï08@Rdfkjsd0.trade^ +ÿï08@Rdfkljasod.fun^ +ÿï08@R dfmnbv.pro^ + ÿï08@Rdfn-network.pro^ +ÿï08@R dfthplx.net^ +*ÿï08@Rdgbbeiddgahdjhcfacb.world^ +ÿï08@R dgdzoy.com^ +ÿï08@R dgktubd.info^ +ÿï08@R dgulden.ru^ +'ÿï08@Rdhbggjccdjigcfffacd.ru^ +'ÿï08@Rdhbjfjibeaajfejdgce.ru^ + ÿï08@Rdhoj0vaxks.rest^ +ÿï08@R +dhygr.com^ +ÿï08@R di5stero.com^ +ÿï08@R diabetdoc.ru^ +ÿï08@R +dicki.net^ +ÿï08@R dictus.biz^ +ÿï08@Rdididzroxa.ml^ +ÿï08@Rdidnkinrab.com^ +ÿï08@Rdidntontrof.ru^ +ÿï08@R dificaux.com^ +ÿï08@R digisets.com^ +$ÿï08@Rdigital-forest.info^ +)ÿï08@Rdigitalaccess.ru^*&rnd=*. +ÿï08@Rdigitalbox.ru^ + ÿï08@Rdigitalcases.ru^ +"ÿï08@Rdigitalcombine.ru^ +!ÿï08@Rdigitaltarget.ru^ +!ÿï08@Rdigitello.agency^ +ÿï08@R +dihlw.com^ +ÿï08@Rdik-news1.club^ +ÿï08@R dimprive.com^ +ÿï08@Rdingdarop.pro^ +ÿï08@Rdingibley.pro^ +ÿï08@Rdinglahim.pro^ +ÿï08@R dingligh.ru^ +ÿï08@Rdingonpar.com^ +ÿï08@Rdinthegmige.ru^ + ÿï08@Rdiomedis.online^ +ÿï08@Rdionis-um.com^ +ÿï08@R dioperu.com^ +ÿï08@R diradvert.ru^ +ÿï08@R dircont3.com^ +"ÿï08@Rdirect-advert.org^ +!ÿï08@Rdirect3advert.ru^ +!ÿï08@Rdirectadvert2.ru^ +ÿï08@Rdirectadvrt.ru^ +ÿï08@R directerp.ru^ +ÿï08@Rdirectlnk.org^ + ÿï08@Rdirectprofit.ru^ +ÿï08@Rdirecttogo.ru^ +ÿï08@R +diriba.ru^ +ÿï08@Rdisklaimer.ru^ +ÿï08@R disp-x.space^ +ÿï08@R disredi.ru^ +ÿï08@R disterme.com^ +ÿï08@R dizzyac.com^ +-ÿï08@Rdjaaajcx5ngq4.cloudfront.net^ +ÿï08@R +djbvq.top^ +%ÿï08@Rdjchfgacdfaaadfdc.ru^ +%ÿï08@Rdjfbgfcdgdjgegjac.ru^ +ÿï08@R djjdf.ru^ +ÿï08@R +djjrq.com^ +ÿï08@R +djpff.top^Ö +ÿï08@R djujxz.com^ +ÿï08@R dkemeli.ru^ +ÿï08@R dl6pkf7e.ru^ +ÿï08@Rdle-news.info^ +ÿï08@R +dlfja.gdn^ +ÿï08@Rdlyaoblivok.ru^ +ÿï08@Rdlyarek22.site^ +"ÿï08@Rdlyasaitovnarb.ru^ +$ÿï08@Rdlyasaitovpushey.ru^ +ÿï08@Rdlyatizera.ru^ +ÿï08@Rdmn2light.com^ +ÿï08@R dmnlight.com^ +ÿï08@R +dmoid.top^ +ÿï08@R dmpprof.com^ +ÿï08@R dmtgvn.com^ +ÿï08@R +dmxxa.com^ +ÿï08@Rdn3hksy6kf.com^ +ÿï08@Rdnenitsa.info^ +ÿï08@R dnovaku.ru^ +ÿï08@R dnoyrz.com^ +ÿï08@R +dnudg.com^ +ÿï08@R do-credit.ru^ +ÿï08@R dobrotds.com^ +ÿï08@Rdoctorisaev.ru^ +!ÿï08@Rdoctorwelcome.ru^ +ÿï08@R dodrek.com^ +ÿï08@Rdoichering.ru^ +ÿï08@R doikery.com^ +ÿï08@R doireg.com^ +ÿï08@R doiuhrht.ru^ +ÿï08@Rdolohatum.com^ +ÿï08@Rdolweerum.com^ +ÿï08@R dolykon.com^ +ÿï08@R dom1408.ru^ +ÿï08@R domah.ru^ +ÿï08@R domain100.ru^ +ÿï08@R domenuyi.ru^ +ÿï08@R domertb.com^ +ÿï08@R dometoj.com^ +%ÿï08@Rdominas.femdomina.ru^ +ÿï08@R dominasy.com^ +ÿï08@Rdommediciny.ru^ +ÿï08@R domo-zond.ru^ +ÿï08@Rdomostroy37.ru^ +ÿï08@R donalise.com^ +08@R dondlo.*^ +ÿï08@R dopikas.com^ +ÿï08@Rdoprodavec.ru^ +ÿï08@Rdoramobi.info^ +ÿï08@R dornut.com^ +ÿï08@Rdorogodom.club^ +ÿï08@Rdosterrium.com^ + ÿï08@Rdostupnozdes.ru^ +ÿï08@R dosug.cz^ +ÿï08@R dosugcz.in^ +ÿï08@R dosugcz.net^ +ÿï08@Rdotbrataev.ru^ +"ÿï08@Rdotcombinator.net^ +!ÿï08@Rdoubleclick.host^ + ÿï08@Rdougartinus.com^ +ÿï08@R douteure.com^ +ÿï08@R doxodnyi.ru^ +ÿï08@R dpohga.com^ +-ÿï08@Rdqvpww3nzoeeq.cloudfront.net^¡ +ÿï08@R dqvzrs.com^ +ÿï08@R dqwlii.com^ +ÿï08@Rdqwzhseasq.com^ +ÿï08@R +dqzuy.com^ +ÿï08@R dragpro.ru^ +ÿï08@R dreadfula.ru^ +!ÿï08@Rdreampartners.ru^ +ÿï08@R dreimer.ru^ +ÿï08@R dreti.ru^ + ÿï08@Rdrivenetwork.ru^ +ÿï08@R +drlyy.com^ +ÿï08@R dromokly.ru^ +ÿï08@R drontres.com^ +ÿï08@R drtraff.ru^ +ÿï08@R drtyov.com^ +ÿï08@R drulelet.ru^ +ÿï08@R +drunga.ru^ +ÿï08@R +drycle.ru^ +ÿï08@R dryum.ru^ +ÿï08@Rdsail-tech.com^ +ÿï08@R dsaprel.ru^ +ÿï08@R +dskrt.net^ +ÿï08@R dsmstats.com^ +ÿï08@R dsn-cdn.ru^ +ÿï08@R dsn-vgtrk.ru^ +ÿï08@R dsnrtg.com^ +ÿï08@R dspco.ru^ +ÿï08@R +dspnow.ru^ +"ÿï08@Rdtashjvcjswq.info^ +ÿï08@R +dtudz.top^ +ÿï08@R dubnokhi.ru^ +ÿï08@R dubochiy.ru^ +ÿï08@R dudintrec.ru^ +ÿï08@R duhtate.ru^ +ÿï08@R dunta.ru^ +ÿï08@R dupalet.com^ + ÿï08@Rduper8flash.com^ +ÿï08@R durrent.com^ +ÿï08@R dushanbe.me^ +ÿï08@R dutrmedi.ru^ +ÿï08@R +duvyu.com^ +ÿï08@R dvanadva.ru^ +ÿï08@R dverser.ru^ +#ÿï08@Rdvgrkhx3bidjmnu.ru^ +#ÿï08@Rdvwnfic0apgjlhv.ru^ +ÿï08@R +dw1cdf.ru^ +-ÿï08@Rdwf6crl4raal7.cloudfront.net^ +ÿï08@R +dwtes.com^ +ÿï08@Rdxasracer.bid^ +$ÿï08@Rdxracers.accountant^ +$ÿï08@Rdyaconiconelino.com^ +ÿï08@R dyagiti.ru^ +ÿï08@R dygadan.info^ +ÿï08@Rdyjdj358q.com^ +ÿï08@R dynaads.net^ +ÿï08@R dynotech.io^ +ÿï08@Rdypapatius.com^ +ÿï08@R dyrevnya.ru^ +ÿï08@R dyshagi.ru^ +ÿï08@R dytupr.com^ +ÿï08@R +dyzha.com^ +ÿï08@R dz01rk.com^ +ÿï08@R dzizsih.ru^ +ÿï08@R +dznhe.com^¦ +ÿï08@Rdzrs3yuexz.com^ +ÿï08@R e-leads.ru^ +ÿï08@Re-publick.info^ + ÿï08@Re1221f6466a.com^ +ÿï08@Re1e39121ca.com^ +ÿï08@Re216db4f72.com^ +"ÿï08@Re272ab16d0c12.com^ + ÿï08@Re2e8f409861.com^ +ÿï08@R e5mbjzv.com^ +ÿï08@Re8a04btlr3.ru^ +#ÿï08@Re968806fd491b3.com^ + ÿï08@Rea8460bc653.com^ +!ÿï08@Reab72ab21d90.com^ +'ÿï08@Readfgihhddcgadihace.ru^ +ÿï08@R eadgxy.com^ +ÿï08@R +eaplay.ru^ +ÿï08@R +eaqci.com^ ++ÿï* + +easy.au.ru08@R easy.au.ru^ +ÿï08@R easybusy.biz^ +ÿï08@Reban.su^ +ÿï08@Reberalofe.pro^ +$ÿï08@Rebitda-i-demping.me^ +ÿï08@R ebkofor.ru^ +ÿï08@R ebloren.ru^ +ÿï08@R +ebmzp.top^ +ÿï08@Rebyadbloc.com^ +ÿï08@Rebyadblock.de^ + ÿï08@Rec2f1xubcblb.ru^ +ÿï08@R +ecales.ru^ +ÿï08@Rece8c2alhz.ru^ + ÿï08@Receb2e05d66.com^ +"ÿï08@Recffa7e733048.com^ +ÿï08@Recgawdakfa.biz^ + ÿï08@Rechobanners.net^ +ÿï08@Recoagronom.ru^ +ÿï08@R econdus.com^ +ÿï08@R econneau.com^ +ÿï08@R econsubi.de^ +ÿï08@R +ecqph.com^ +ÿï08@R ecsexyp.info^ +(ÿï08@Red98512111bb19e5.in.net^ +ÿï08@Redabeznews.ru^ +ÿï08@R edanews.ru^ +'ÿï08@Redcffafiadfjfjdiaci.ru^ +%ÿï08@Reddggciaaagefcbcc.ru^ + ÿï08@Redfc3ac402a.com^ +ÿï08@R +edfila.ru^ +** + edgemesh.com08@R +edgeno.de^ +"ÿï08@Redgrmtracking.com^ +ÿï08@R edhmnn.com^ +ÿï08@Redig44vmyx.ru^ +ÿï08@R edigest.ru^ +ÿï08@R edkaduy.ru^ +ÿï08@R ednqbb.com^ +ÿï08@R edonat.com^ +ÿï08@R eduforms.org^ +ÿï08@R edugram.com^ + ÿï08@Redugramlink.com^ +!ÿï08@Redugrampromo.com^ +"ÿï08@Redugrampromo2.com^ +ÿï08@R edumsg.org^ +ÿï08@R edxhxu.com^ +ÿï08@R edyazyk.ru^ +#ÿï08@Ree2020419e64bd.com^ú +ÿï08@Ree750dd4c4.com^ +#ÿï08@Refbvrlg6dnjyllx.ru^ +#ÿï08@Refngeka8czukzyb.ru^ +ÿï08@R +efpark.ru^ +ÿï08@R eggyey.com^ +ÿï08@R eghstt.com^ +!ÿï08@Regnatius-ear.com^ +#ÿï08@Regoistic-heron.com^ +ÿï08@R egpofy.com^ +ÿï08@R +egzlx.com^ +ÿï08@R ehmqlr.com^ +ÿï08@R ehnejin.ru^ +#ÿï08@Rehntqzv1apeizca.ru^ +ÿï08@Rehqaobjhna.com^ +#ÿï08@Rehxuonl3adfgxvy.ru^ +ÿï08@R ehzggd.com^ +ÿï08@R ei0mwcgu.com^ +ÿï08@R eibsldv.pro^ +ÿï08@R eichmann.biz^ +ÿï08@R eijwpxc.net^ +ÿï08@R +eioxy.top^ +ÿï08@R +ejfuh.com^ +ÿï08@R ejmovec.ru^ +"ÿï08@Rejousoa0tzvuxt.ru^ +#ÿï08@Rejywtxa2agahkqt.ru^ +ÿï08@R ekinos.net^ +#ÿï08@Rekkhgwp5atpuxdq.ru^ +ÿï08@R +ekod.info^ +ÿï08@R eksemech.ru^ +ÿï08@R ekteche.ru^ +ÿï08@Rekulavabuf.com^ +$ÿï08@Relectricbalance.com^ +ÿï08@Relektrodelo.by^ +(ÿï08@Relementmentconsoles.com^ +ÿï08@Relevemoney.ru^ +ÿï08@R elkagoda.ru^ +ÿï08@R +elnpe.com^ +ÿï08@R elparmo.ru^ +ÿï08@Relpushnot.com^ +ÿï08@R eluxer.net^ +ÿï08@R elwarvi.info^ +#ÿï08@Remadztc6crnxjvj.ru^ +ÿï08@R emboba.info^ +ÿï08@R emcze.us^ +ÿï08@R emierete.com^ +ÿï08@R emisses.com^ +ÿï08@R +emqgfo.ru^ +ÿï08@Renamadugib.com^ +ÿï08@R enbpvt.com^ + ÿï08@Rencephalopat.ru^ +ÿï08@R enfreine.com^ +ÿï08@R engageya.com^ +(ÿï08@Rengine-bk.ligastavok.ru^ +*ÿï08@Rengine-pmbk.ligastavok.ru^ +ÿï08@R enkonyus.ru^ +ÿï08@R +enmbg.com^ +ÿï08@Renobamagil.com^ +ÿï08@R +enod.info^ +ÿï08@R enorkear.ru^ +ÿï08@R enrecte.com^ +#ÿï08@Renrecuq2eqvbauv.ru^ +ÿï08@R ensepare.com^ +ÿï08@Rensurania.com^ +ÿï08@R entimee.com^Ÿ +ÿï08@R entovoc.ru^ +ÿï08@Renvd07r9mf.ru^ +ÿï08@R envhpx.com^ +ÿï08@R enwitle.com^ +#ÿï08@Reomrvyl9fqmkwiw.ru^ +ÿï08@R eozjqg.com^ +ÿï08@R epaaab.com^ +ÿï08@R epoquels.com^ +ÿï08@R epqzviy9.bid^ +ÿï08@R eprofri.info^ +ÿï08@R epsexda.ru^ +ÿï08@R eqfgrt.com^ +ÿï08@Reqmx04n5s0.ru^ +ÿï08@R eqtaxag.ru^ +ÿï08@R +eqthb.top^ +ÿï08@R equippro.xyz^ +ÿï08@R eqzhyr.com^ + ÿï08@Rer2fl22b1w.site^ +ÿï08@R erate.co.il^ +ÿï08@R erbwebs.com^ +ÿï08@R erefya.com^ +ÿï08@R erileni.ru^ +ÿï08@R +ernozi.ru^ +ÿï08@R ernser.org^ +%ÿï* +vpets.ru08@Rero.ru^ +ÿï08@Reroticahd.org^ +ÿï08@R eroticxx.ru^ +ÿï08@R +erpito.ru^ +ÿï08@R +eruji.com^ +"ÿï08@Reruption22.center^ +ÿï08@Rervtm9lrdj.com^ +ÿï08@R escense.ru^ +ÿï08@R escoad.pro^ +ÿï08@R esdykv.com^ +ÿï08@R esfoxo.com^ +ÿï08@R +esliga.ru^ +ÿï08@R esloten.ru^ +ÿï08@R essokosi.com^ +ÿï08@R estasos.ru^ +!ÿï08@Restetic-club.net^ +ÿï08@R estiques.com^ +ÿï08@Restoniaanna.ru^ +ÿï08@Resuxdqovni.com^ +ÿï08@R et-cod.com^ +ÿï08@R et-land.xyz^ +ÿï08@R +et-pu.com^ +ÿï08@R etarg.ru^ +ÿï08@R etfory.info^ +ÿï08@R ethelic.ru^ +ÿï08@R ethkmf.com^ +ÿï08@R etnmvg.com^ +ÿï08@R +etpsn.com^ +ÿï08@R etqigt.com^ +!ÿï08@Retranslater1.com^ +ÿï08@R ettalhap.com^ +#ÿï08@Rettamscqyvocxz.com^ +$ÿï08@Retwinternational.ru^ +ÿï08@R +etwun.com^ +ÿï08@R etyrv.ru^ +#ÿï08@Reu.market-place.su^ +ÿï08@R +euadw.com^ +ÿï08@R +euadw.net^ +ÿï08@R +euqrj.com^ +ÿï08@R euzavnv.info^ø +ÿï08@R +evaff.com^ +$ÿï08@Revendividualita.com^ +ÿï08@Revengparme.com^ +"ÿï08@Reventwisparwil.ru^ +ÿï08@R everme.win^ +ÿï08@Reversaree.bid^ +ÿï08@Reversmipro.ru^ +ÿï08@R evghwr.com^ +ÿï08@R +evlsn.com^ +ÿï08@R evsembu.com^ +ÿï08@R ewaline.su^ +ÿï08@R ewazux.com^ +ÿï08@R +ewfzv.top^ +ÿï08@R ewiuw.faith^ +#ÿï08@Rewplbev9bkgqqxe.ru^ +ÿï08@Rewtcbedtmx.ru^ +ÿï08@R ewtopas.ru^ +ÿï08@R +ewutka.ru^ +ÿï08@Rexcalatom.com^ + ÿï08@Rexchangenews.ru^ +ÿï08@Rexe.bid^ +ÿï08@R +exewaz.ru^ +ÿï08@R exfjpw.com^ +"ÿï08@Rexhaustedtype.pro^ +ÿï08@Rexilelink.com^ +"ÿï08@Rexolkkl6i2puvf.ru^ +ÿï08@R +exopay.ru^ +#ÿï08@Rexploresoption.com^ ++ÿï08@Rextension-keeper.github.io^ +!ÿï08@Rexternalmedia.ru^ +ÿï08@R extfiles.net^ +ÿï08@R extronext.ru^ +ÿï08@R eyehzn.com^ +-08@Reyenewton.ru/scripts/sda.min.js +ÿï08@R ezaktak.ru^ +ÿï08@R +ezaste.ru^ +ÿï08@R ezcore.pro^ +ÿï08@R +eznagi.ru^ + ÿï08@Rezvbegy1wtxv.ru^ +%ÿï08@Rf166d08ccce8e77b.com^ +ÿï08@Rf24qr3sb3h.ru^ + ÿï08@Rf254e1b756a.com^ +"ÿï08@Rf2563ae9e4f78.com^ +ÿï08@R f27tltnd.de^ + ÿï08@Rf3f9cbaddc5.com^ +ÿï08@Rf4cebacks.com^ +ÿï08@Rf6dy9wgfbf.ru^ + ÿï08@Rf7407890c54.com^ +ÿï08@R f8s.club^ +"ÿï08@Rf996a0780c4b9.com^ +$ÿï08@Rfa242957c982754.com^ +ÿï08@Rfabricmedia.ru^ +ÿï08@R faceblum.ru^ +ÿï08@R facmtf.com^ +ÿï08@R factpic.ru^ +ÿï08@R faddgetdo.ru^ +ÿï08@Rfadrewols.com^ +ÿï08@R fae5ret.top^ +ÿï08@R fafc5ra6.ru^ +ÿï08@R fafggde.net^ +ÿï08@R faktino.ru^ +ÿï08@R faktozhe.ru^ +ÿï08@R faktty.com^ +ÿï08@Rfalacamais.com^á +ÿï08@Rfangurubob.com^ +#ÿï08@Rfaqzpiv1fphpway.ru^ +"ÿï08@Rfarantitid.racing^ +#ÿï08@Rfarecnop.loftlm.ru^ +#ÿï08@Rfarulll1foitnbq.ru^ +ÿï08@Rfasferesa.com^ +ÿï08@R fast12g.com^ +ÿï08@R fast2load.ru^ +ÿï08@R fastbtc.net^ +"ÿï08@Rfastertabs.online^ + ÿï08@Rfastertabs.site^ +$ÿï08@Rfastlovedatings.com^ +ÿï08@Rfastnewsis.net^ + ÿï08@Rfastsearcher.ru^ +"ÿï08@Rfasyth3fqiurqq.ru^ +ÿï08@Rfatokyphy.pro^ +ÿï08@Rfattepush.com^ +ÿï08@R faundop.com^ +ÿï08@R faxso.ru^ +#ÿï08@Rfbbamvq2fdinvtx.ru^ +#ÿï08@Rfbbvjxh3fcjqiyk.ru^ +ÿï08@R fbcctf.com^ + ÿï08@Rfbfa8babbbe.com^ +ÿï08@R fbpopr.com^ +ÿï08@R fbvkcdn.club^ +'ÿï08@Rfcdedghcjiieggafade.ru^ +'ÿï08@Rfcdjgjjdcehgdeecedc.ru^ +ÿï08@R fceneme.ru^ +(ÿï08@Rfcjfijejhjfefgfaaadc.ru^ +ÿï08@Rfcrgzqkbtgu.co^ +ÿï08@R fdgeen.com^ +ÿï08@R fdgsdgsd.com^ +'ÿï08@Rfdifieecbehcbhbgadf.ru^ +ÿï08@R fdrhbw.com^ +ÿï08@R fdrschv.ru^ +%ÿï08@Rfdsfsderfbigclick.ru^ +ÿï08@R +fdsur.com^ +ÿï08@R +fdzev.com^ +"ÿï08@Rfe4r7k22y68p.info^ +#ÿï08@Rfearlessfaucet.com^ +ÿï08@Rfebwinter.com^ +"ÿï08@Rfed2nkspbdnr.info^ +ÿï08@Rfeductius.com^ +#ÿï08@Rfeedbackrights.com^ + ÿï08@Rfeedot-cloud.ru^ +!ÿï08@Rfeedot-lawyer.ru^ +ÿï08@R feedot.com^ +ÿï08@Rfeefbb88a9.com^ +ÿï08@R feetct.com^ +ÿï08@R fegmamy.ru^ +ÿï08@Rfegortius.com^ +'ÿï08@Rfejhjhddaajibegjadf.ru^ +!ÿï08@Rfek5erxlnale.top^ +ÿï08@R feneteko.com^ +ÿï08@Rferaciumus.com^ +ÿï08@Rferdarius.com^ +ÿï08@Rferganils.com^ + ÿï08@Rfermerrekrb.bid^ +ÿï08@R fetalli.com^ +ÿï08@R fevofep.com^ +ÿï08@R +fextor.ru^ +#ÿï08@Rffdjxcg4agnipwv.ru^ +$ÿï08@Rffebaf26a7bfcda.com^ +'ÿï08@Rffgbfjcccfjafhjhgde.ru^ü +"ÿï08@Rffovoxb9swkkbu.ru^ +ÿï08@R ffsklsf.pro^ +ÿï08@R fgesshf.pro^ +ÿï08@R fgjlgea.info^ +ÿï08@R fgsffil.pro^ +ÿï08@R fgtjy.club^ +'ÿï08@Rfhccfdighgehgjhgadf.ru^ +'ÿï08@Rfieachejgcdehafaadi.ru^ +ÿï08@R fifwin.com^ +ÿï08@R +figgq.com^ +%ÿï08@Rfijfigaahebebdigd.ru^ +ÿï08@Rfijystoun.pro^ + ÿï08@Rfilesdownget.ru^ +ÿï08@R filightot.ru^ +ÿï08@R fillplace.ru^ +ÿï08@R film-ka.ru^ +!ÿï08@Rfilm-smotret.net^ +ÿï08@Rfilmokong.net^ +ÿï08@R filmolub.ru^ +!ÿï08@Rfilmonline-hd.ru^ +ÿï08@R filmu777.ru^ +ÿï08@R filoner.ru^ +ÿï08@R filoperd.ru^ + ÿï08@Rfinancy-life.ru^ +ÿï08@R findfor.net^ +ÿï08@R findpre.net^ +#ÿï08@Rfindtrustinfo.info^ +ÿï08@R +fineg.pro^ +ÿï08@R fingoty.com^ +ÿï08@R finimini.ru^ +ÿï08@R fireb1.com^ +ÿï08@R fireb2.com^ +!ÿï08@Rfirrycandour.com^ +ÿï08@Rfirstmedia.pro^ +ÿï08@R firsttex.ru^ +ÿï08@R +fitbut.ru^ + ÿï08@Rfitfatdeals.com^ +ÿï08@R fitobliv.com^ +ÿï08@R fityjhnl.biz^ +ÿï08@R fixzila.com^ +ÿï08@R fiyifo.com^ +ÿï08@R fizpk.club^ +ÿï08@R +fjjuo.com^ +"ÿï08@Rfkeg9d6jew.ru.com^ +ÿï08@R +fkehg.com^ +ÿï08@R fkhkjhj.biz^ +!ÿï08@Rfkr63eryj6sp4.ru^ +ÿï08@R flascom.com^ + ÿï08@Rflashteaser.com^ +#ÿï08@Rfleshyourlight.com^ +ÿï08@R flightsy.win^ +ÿï08@Rflipdigital.ru^ +ÿï08@R flipflap.pro^ +ÿï08@R float-l.ru^ +"ÿï08@Rfloornotalava.com^ + ÿï08@Rflowpubdom.info^ +"ÿï08@Rflushmviolent.org^ +ÿï08@R flyroll.ru^ +!ÿï08@Rfm05qrtvoele.pro^ +ÿï08@R fmich.ru^ +!ÿï08@Rfmk1ezzboz.space^ +ÿï08@R fmk5eqte.top^ +!ÿï08@Rfmk5qstnnvg.info^ +!ÿï08@Rfmu1qrtjoamc.pro^ù +!ÿï08@Rfmu1qrtjoamc.top^ +ÿï08@R fmusive.ru^ +ÿï08@Rfnasmpygwa.com^ +ÿï08@R fncdev.in.ua^ +!ÿï08@Rfne9ez3lpqt.info^ +ÿï08@Rfnhffxhnqd.com^ +#ÿï08@Rfnu5ustborg.online^ +ÿï08@R +fobise.ru^ +ÿï08@R +focdn.net^ +ÿï08@R fodorw.com^ +ÿï08@Rfofuvipibo.com^ +ÿï08@Rfoganonura.com^ +#ÿï08@Rfoitnbp1depoaoy.ru^ +ÿï08@Rfoolfishes.com^ +"ÿï08@Rfooluminou.review^ +!ÿï08@Rfor-ladies-oy.ru^ +ÿï08@R foreshis.ru^ +ÿï08@Rforeverseed.ru^ +ÿï08@R +foricq.ru^ +ÿï08@R forretres.ru^ +ÿï08@Rforsupwron.pro^ + ÿï08@Rfortbegother.ru^ +ÿï08@Rfortedrow.pro^ +ÿï08@Rfortsould.pro^ +ÿï08@R fortuka.com^ +(ÿï08@Rforwardandbackwards.com^ +ÿï08@Rforwardrb.bid^ +ÿï08@Rfotoviagra.ru^ +ÿï08@R fotrento.com^ +ÿï08@R foulsa.com^ +ÿï08@R foundtr.com^ +ÿï08@R +fouoh.com^ +ÿï08@R four8city.in^ +ÿï08@R foxbitbit.ru^ +ÿï08@R foxylinks.ru^ +ÿï08@Rfoxyscripts.ru^ +ÿï08@R fperefo.ru^ +ÿï08@R +fpmef.com^ +#ÿï08@Rfpzsdwm6bfkdzvh.ru^ +"ÿï08@Rfqab5xq7qlgt.info^ +ÿï08@R fqrpcd.com^ +ÿï08@R +fqsbi.com^ +ÿï08@R fquqhe.com^ +#ÿï08@Rfqurmqe6agjyofb.ru^ +ÿï08@R +fqwgi.com^ +"ÿï08@Rfragrantanger.com^ +#ÿï08@Rfrankiesupport.com^ +ÿï08@Rfreddyman.com^ +ÿï08@Rfree-cloud.ru^ +ÿï08@R freefield.ru^ +ÿï08@R freeimg.ru^ +ÿï08@R freeone.link^ +ÿï08@Rfreepotato.fun^ +!ÿï08@Rfrenchcrunch.com^ + ÿï08@Rfresh-video.com^ +ÿï08@Rfreswweda.pro^ +ÿï08@R frmsafe.com^ +ÿï08@R +frolla.ru^ +ÿï08@R frolvid.ru^ +$ÿï08@Rfrostedcaramilk.com^ +ÿï08@R frvid.ru^ +ÿï08@R fryvzw.com^ +ÿï08@R +frzaj.com^ +ÿï08@R fsafemi.info^Ÿ +ÿï08@R fseed.ru^ +ÿï08@R +fsibs.top^ +ÿï08@Rfstredirr.com^ +ÿï08@R ftcoml.com^ + ÿï08@Rftd2q1g8id1z.ru^ +ÿï08@R ftkmmc.com^ +ÿï08@R ftphost.ru^ +ÿï08@R ftrnum.club^ + ÿï08@Rftrnwcewum.club^ +ÿï08@R ftylpm.com^ +ÿï08@R fuckfff.top^ +ÿï08@R fuder.ru^ +ÿï08@R fueox.us^ +ÿï08@R +fufko.com^ +ÿï08@R +fuicy.top^ +ÿï08@Rfullcupful.com^ +ÿï08@R fulldl.net^ +ÿï08@Rfunctor.online^ +ÿï08@R funpick.site^ +ÿï08@R +funsmi.ru^ +ÿï08@R funtrop.com^ +ÿï08@Rfutureocto.com^ +ÿï08@R futureup.ru^ +ÿï08@R fuyviz.com^ +ÿï08@R +fuzari.ru^ +ÿï08@R +fvbrp.com^ +ÿï08@R fvftus.com^ +ÿï08@R fvtyhe.com^ +ÿï08@R +fvuvr.com^ +ÿï08@R fxadjc.com^ +ÿï08@R fxfahn.com^ +ÿï08@R fxhoog.com^ +ÿï08@R +fyrafi.ru^ +ÿï08@R fytboti.ru^ +ÿï08@Rfzgrpqktmq.com^ +ÿï08@R +fzhxi.com^ +ÿï08@R +fznpq.com^ +ÿï08@R +fztff.com^ +ÿï08@R +fzwoa.com^ +ÿï08@Rg-content.bid^ +$ÿï08@Rg-entertainment.net^ +"ÿï08@Rg17ie3l1k7iarm.ru^ +ÿï08@R +g20d19.ru^ +ÿï08@R g4news.biz^ +ÿï08@Rg52bxi1v1w.com^ +%ÿï08@Rgaajbgfbdhiecgihd.ru^ +ÿï08@Rgadaskalis.com^ + ÿï08@Rgadewsolics.com^ +ÿï08@R gadnape.ru^ +ÿï08@Rgagelivius.com^ +ÿï08@R gagnifie.com^ +ÿï08@Rgainclick.biz^ +ÿï08@R gainclick.co^ +ÿï08@R gainnet.ru^ +ÿï08@Rgakk.ru^ + ÿï08@Rgakogedifoda.ru^ +ÿï08@Rgaldarael.com^ +$ÿï08@Rgalinapogorelov*.ru^ +ÿï08@R gamaads.com^ +ÿï08@R gamacp.pro^ +ÿï08@Rgame-rust.ru.^ +ÿï08@R game-rust.ru^ +ÿï08@Rgame-tester.ru^ +ÿï08@R gameadnet.ru^ô +ÿï08@R +gameak.ru^ +-ÿï* + playground.ru08@R +gamedl.ru^ +ÿï08@R gameleads.ru^ +ÿï08@Rgameorakul.ru^ + ÿï08@Rgamerickius.com^ +ÿï08@Rgamerynis.com^ +ÿï08@R games-n1.ru^ +ÿï08@R gameson.site^ +!ÿï08@Rgamesrotator.com^ +ÿï08@Rgamethalyz.top^ + ÿï08@Rgamevarilis.com^ +ÿï08@Rgamz48qlok.ru^ +ÿï08@Rgaratrelitt.ru^ +ÿï08@Rgarewolis.com^ +ÿï08@R garewuld.com^ +ÿï08@R garpbs.com^ +ÿï08@R gate-cdn.ru^ +ÿï08@Rgatecurium.com^ +ÿï08@Rgateway-02.com^ +ÿï08@Rgateway-03.com^ +ÿï08@Rgateway-04.com^ +ÿï08@R gatgirl.com^ +ÿï08@R +gatorr.ru^ +ÿï08@Rgaveasword.com^ +ÿï08@R +gawxf.com^ +ÿï08@R gbaseby.ru^ +'ÿï08@Rgbedccihjeajhchcaea.ru^ +ÿï08@Rgbf77po03m.com^ +'ÿï08@Rgbgijiiiabgebdjiadh.ru^ +ÿï08@R gbhpvm.com^ +ÿï08@R gcebhl.com^ +ÿï08@R +gcfln.top^ +'ÿï08@Rgcjehafhajjhcdicaeb.ru^ +&ÿï08@Rgcontentdelivery.info^ +ÿï08@R gddrio.com^ +ÿï08@R gdeslon.ru^ +'ÿï08@Rgdjjacdcibjicdddgea.ru^ +ÿï08@R gdsln.ru^ +ÿï08@R gdz.work^ +ÿï08@Rgearnews.info^ +'ÿï08@Rgeegbicgcfiehejdgec.ru^ +ÿï08@Rgeegedolum.com^ +ÿï08@R gefetot.com^ +ÿï08@R gegmanu.info^ +ÿï08@R +geiey.com^ +ÿï08@R gemorno.top^ +ÿï08@Rgena.io^ +ÿï08@R gendaurg.com^ +ÿï08@R geotraff.com^ +ÿï08@R gerbara.com^ +ÿï08@R gerberka.com^ +ÿï08@Rgerecning.pro^ +ÿï08@Rgeroniumal.com^ +ÿï08@R get-ads.ru^ +ÿï08@R get-hit.ru^ +ÿï08@Rget1xzone.com^ +ÿï08@R get2.fun^ +ÿï08@R +getads.ru^ +ÿï08@R getandgo.ru^ +ÿï08@R getelem.ru^ +ÿï08@R getgale.info^ +ÿï08@R getmygeo.com^ +ÿï08@Rgetnodejs.com^ +ÿï08@R getrotai.ru^é +ÿï08@R getrotaq.ru^ +ÿï08@R getrotas.ru^ +ÿï08@R getsale.io^ +ÿï08@R getshop.tv^ +ÿï08@Rgettate.racing^ +ÿï08@R gettraf.com^ +ÿï08@Rgetuplinks.ru^ +ÿï08@Rgewfwdgd.site^ +ÿï08@Rgexr.ru^ +ÿï08@Rgfr2.ru^ +ÿï08@R ggtraf.com^ +ÿï08@R ghaires.com^ +'ÿï08@Rghejbdgefhfjhhbgaee.ru^ +ÿï08@Rgheochecke.com^ +ÿï08@R ghjnpy.com^ +ÿï08@R ghoff.ru^ +ÿï08@R gibevay.ru^ +%ÿï08@Rgibsonswaniawski.bid^ +ÿï08@R gidrantus.ru^ +'ÿï08@Rgiejbgdidaehfccaaec.ru^ +'ÿï08@Rgihicgbbbdbddedhged.ru^ +ÿï08@R gimnsr.com^ +ÿï08@R gingardo.com^ +ÿï08@R giokole.com^ +ÿï08@R gioorrs.pro^ +ÿï08@R giosany.com^ +ÿï08@R giotyo.com^ +ÿï08@Rgipahetus.com^ +ÿï08@Rgipohitum.com^ +ÿï08@R giprnh.com^ +ÿï08@R girkali.ru^ +!ÿï08@Rgirlz42night.biz^ +ÿï08@R gislason.net^ +ÿï08@R githabs.ru^ +&ÿï08@Rgithub.io/asdsdfdhgfh/ +$ÿï08@Rgithub.io^*adsplacer +%ÿï08@Rgithub.io^*adsreplace +"ÿï08@Rgithub.io^*aplacer +ÿï08@R +gityii.ru^ +ÿï08@Rgivemelink.cc^ +ÿï08@Rgivemethis.org^ +ÿï08@R gizenon.ru^ +ÿï08@Rgj7.ru^ +'ÿï08@Rgjafchbcfgbigaheeeg.ru^ +ÿï08@R +gjslm.com^ +ÿï08@R +gkiop.com^ +ÿï08@R +gkzba.com^ +ÿï08@R +gkzrev.ru^ +!ÿï08@Rgla4h2wbz4.space^ +ÿï08@R +gladra.ru^ +ÿï08@R glammor.ru^ +"ÿï08@Rglavnyenovosti.ru^ +ÿï08@R glavrich.com^ +ÿï08@R gldlwt.com^ + ÿï08@Rglobalsnslp.com^ +!ÿï08@Rglobalteaser.com^ + ÿï08@Rglobalteaser.ru^ +ÿï08@R globeac.com^ +ÿï08@R glopart.ru^ +ÿï08@R glordd.com^ +ÿï08@Rglossingly.com^ +ÿï08@Rglothouw.link^ +ÿï08@R glouposek.ru^ + ÿï08@Rglue-length.biz^Œ +ÿï08@R glvczl.com^ +ÿï08@R glxfls.com^ +ÿï08@Rgmache.online^ +ÿï08@R gmache.space^ +!ÿï08@Rgmachinteh.space^ +#ÿï08@Rgmachinteh.website^ +ÿï08@R +gmelvi.ru^ +ÿï08@R gmoshk.com^ +ÿï08@R +gnogle.ru^ +ÿï08@R gnuliga.ru^ +ÿï08@Rgo.adjika.net^ +`ÿï* + jethosting.ru* + jetswap.com* + regjet.ru* +jetgo.ru08@Rgo.jetswap.com^ +ÿï08@R go.unas.ru^ +ÿï08@Rgo2net.com.ua^ +ÿï08@R +go2of.com^ +ÿï08@R go7media.ru^ +ÿï08@R goabd.ru^ +ÿï08@R goallead.ru^ +ÿï08@R gocdn.ru^ +ÿï08@R goclass.ru^ +ÿï08@R godsave.lgbt^ +ÿï08@Rgogetlinks.net^ +ÿï08@Rgogo4girlz.com^ +ÿï08@Rgogolusin.site^ +ÿï08@R gogoway.ru^ +ÿï08@R gokliks.ru^ +ÿï08@R golynx.tech^ +"ÿï08@Rgomakemerich1.com^ +"ÿï08@Rgomakemerich2.com^ +ÿï08@R gomiligh.pro^ +ÿï08@Rgomken.online^ +ÿï08@R gomtdata.com^ + ÿï08@Rgomtdatacom.xyz^ +ÿï08@Rgonet-ads.com^ +ÿï08@R gonews1.net^ +ÿï08@R gonews2.net^ +ÿï08@R gonews3.net^ +ÿï08@R gonzoad.com^ +ÿï08@R good-lead.ru^ +ÿï08@Rgood-track.ru^ +ÿï08@R good-traf.ru^ +!ÿï08@Rgood.win-yagd.ru^ +ÿï08@R gooddmn.com^ +ÿï08@R goodkind.ru^ +!ÿï08@Rgoodlooknews.net^ +ÿï08@Rgoodsshake.com^ +ÿï08@Rgoogleapls.ru^ +%ÿï08@Rgooglsyndication.com^ +ÿï08@Rgooogles.site^ +ÿï08@Rgooooodle.com^ +ÿï08@R gooooooo.ru^ +ÿï08@R goossb.com^ + ÿï08@Rgoplayslots.com^ +ÿï08@Rgoplus789gq.ru^ +ÿï08@R goremer.ru^ +ÿï08@R gorenpe.ru^ +ÿï08@R goretnak.pro^ +ÿï08@R gorgasal.co^ + ÿï08@Rgosj9ichlf.tech^ +ÿï08@Rgot.by^ +ÿï08@R goto2024.ru^ +ÿï08@R goto2031.ru^ + ÿï08@Rgotogirlzzz.com^ +ÿï08@R gotoredr.com^Ñ +ÿï08@R gotriki.com^ + ÿï08@Rgottittothin.ru^ +ÿï08@R gotunekst.ru^ +ÿï08@R gotvvk.com^ +ÿï08@R +gover.bid^ +ÿï08@R gowapgo.com^ +$ÿï08@Rgoyetteconnelly.bid^ +ÿï08@R goyhnq.com^ +ÿï08@R gpfsrx.com^ +ÿï08@R +gpjph.com^ +ÿï08@R +gprhe.com^ +ÿï08@R gqedxf.com^ +ÿï08@Rgqer.ru^ +ÿï08@R grafimo.ru^ +ÿï08@R grainac.com^ +ÿï08@R gramodo.com^ +ÿï08@R grand-pr.ru^ +!ÿï08@Rgrand-t-code.com^ +$ÿï08@Rgrandmediatizer.com^ +ÿï08@R greate2.com^ +ÿï08@Rgredinatib.biz^ +ÿï08@Rgredinatib.org^ +ÿï08@Rgrednomex.pro^ +ÿï08@R greeentea.ru^ +$ÿï08@Rgreenbackground.xyz^ +$ßï08@Rgreencuttlefish.com^ +!ÿï08@Rgreenfelder.link^ +ÿï08@Rgreerlies.pro^ +ÿï08@Rgrekaser.space^ +ÿï08@Rgresssews.mobi^ +ÿï08@R gretts.pro^ +ÿï08@R gribokdoc.ru^ +ÿï08@Rgridsiali.com^ +ÿï08@R grocoowk.com^ +ÿï08@R grofku.com^ + ÿï08@Rgrotomesco.club^ +"ÿï08@Rgrotomesco.online^ +!ÿï08@Rgrotomesco.today^ + ÿï08@Rgrotomesko.club^ +"ÿï08@Rgrotomesko.online^ +!ÿï08@Rgrotomesko.today^ +ÿï08@Rground24.info^ +ÿï08@R grouteg.com^ +!ÿï08@Rgrrrrodesforu.ru^ +ÿï08@R +grt04.com^ +ÿï08@R grteab.com^ +ÿï08@R gruntok.ru^ +ÿï08@R grupoli.ru^ +ÿï08@R gsaklsf.pro^ +ÿï08@R gsasd.info^ +ÿï08@Rgsimvqfghc.com^ +ÿï08@R gslqxv.com^ +ÿï08@R +gsnnx.top^ +ÿï08@R +gtcrm.top^ +ÿï08@R guanoaps.pro^ +ÿï08@Rguatevengmi.ru^ +ÿï08@R +gudros.ru^ +ÿï08@R guepslka.com^ +ÿï08@R +gueur.com^ +ÿï08@R gueurs.com^ +ÿï08@R guktuti.ru^ +!ÿï08@Rgus.host/coins.js +ÿï08@R +gvahh.top^ +ÿï08@R gvfror.com^• +ÿï08@R +gwxpv.com^ +ÿï08@R gxlecc.com^ +ÿï08@Rgxpsl3vg5q.ru^ +ÿï08@R gxxcbj.com^ +ÿï08@R +gyfwz.com^ +ÿï08@R gyrbise.ru^ +ÿï08@R +gyvjv.com^ +ÿï08@R gzppit.com^ +ÿï08@R h1summer.com^ +)ÿï08@Rh31135kjn6ajywtrupze.com^ +"ÿï08@Rh3a.t.r.vpath.net^ +ÿï08@Rh3qk7v86i.net^ +(ÿï08@Rh7fy4ur0in94g016.in.net^ +ÿï08@Rha09ixi55m.ru^ +ÿï08@Rha9.ru^ + ÿï08@Rhablababla.club^ + ÿï08@Rhaderilovas.com^ +ÿï08@R hadoman.net^ +'ÿï08@Rhafdfjefeafcegcjgeh.ru^ +!ÿï08@Rhaginge.download^ +ÿï08@R hahemla.com^ +!ÿï08@Rhailandrain.zone^ + ÿï08@Rhakiloporet.com^ + ÿï08@Rhallaert.online^ +ÿï08@R +haln.info^ +ÿï08@Rhamphlete.com^ +#ÿï08@Rhandiest-logic.com^ +ÿï08@Rhanding6.info^ +ÿï08@R handred.ru^ +ÿï08@R hannist.com^ +ÿï08@R +hapket.ru^ +ÿï08@Rhaproltal.com^ +$ÿï08@Rharmwelluv.download^ +ÿï08@Rharrabrela.ru^ +ÿï08@R hatoleft.com^ +ÿï08@R hay-borsa.ru^ +ÿï08@R hbawqr.com^ +ÿï08@R hbhook.com^ +ÿï08@Rhbplatform.com^ +ÿï08@R +hbrmu.top^ +'ÿï08@Rhcabjbhiceigdbigaei.ru^ +'ÿï08@Rhcadfghcafccdaejaeh.ru^ +"ÿï08@Rhcaepj7devesma.ru^ +"ÿï08@Rhcowzr7dedquas.ru^ +ÿï08@R hcqnm.us^ +ÿï08@R hd.gg33.top^ +ÿï08@R hd720biz.com^ +ÿï08@R hdbcall.com^ +ÿï08@R hdbcell.com^ +ÿï08@R hdgqqoz.biz^ +ÿï08@R he-game.ru^ +ÿï08@Rhead-gshame.in^ +"ÿï08@Rhead-insider.info^ +ÿï08@Rheader-slog.ru^ +"ÿï08@Rheadinsider.space^ +ÿï08@Rhealthoffer.ru^ +ÿï08@Rhealthymag3.ru^ +ÿï08@Rheawnqbmsi.bid^ +ÿï08@Rhecaningar.ru^ +ÿï08@Rhedevokjwl.biz^ +ÿï08@R hedseted.ru^ +ÿï08@Rhedtbethole.ru^ +ÿï08@R hedtfior.pro^ +ÿï08@Rhedthertsu.pro^á +!ÿï08@Rhedtronverhan.ru^ +ÿï08@R hedvid.com^ +ÿï08@R heelwork.com^ + ÿï08@Rhelicoooper.com^ +#ÿï08@Rhelth-guarantee.ru^ +ÿï08@Rhelvetinus.com^ +ÿï08@R henerun.com^ +ÿï08@Rhenwilkson.com^ +ÿï08@Rheprenhan.com^ +ÿï08@Rhepsithert.ru^ +ÿï08@R heqop.ru^ +ÿï08@R her-ber.top^ + ÿï08@Rherhestaspar.ru^ +ÿï08@Rhermiston.biz^ +ÿï08@Rheroesdom.com^ +ÿï08@Rherrabjec.pro^ + ÿï08@Rhershaharhec.ru^ +ÿï08@R hertugwa.pro^ +ÿï08@Rhescerensed.ru^ +ÿï08@R hexorzloy.ru^ +ÿï08@Rhfnuqljjnt.com^ +'ÿï08@Rhgfhjjhjfcieidicafa.ru^ +ÿï08@R hgfsdzfs.com^ +%ÿï08@Rhgibhacchfaeabgde.ru^ +ÿï08@R hgofcd.com^ +ÿï08@R +hgqea.top^ +ÿï08@R +hgtem.com^ +ÿï08@R hgvkw.us^ +ÿï08@R hhnhxu.com^ +ÿï08@Rhhooyivpxq.com^ +'ÿï08@Rhiajeheigihcdejeafb.ru^ +ÿï08@R hickle.biz^ +%ÿï08@Rhighlightingalive.in^ +"ÿï08@Rhighofferever.com^ +ÿï08@R +higohi.ru^ +ÿï08@R hiholmo.com^ +ÿï08@R +hilll.biz^ +ÿï08@R himowith.pro^ +ÿï08@R hiopdi.com^ +ÿï08@R hisfine.ru^ + ÿï08@Rhisharjusrew.ru^ +ÿï08@R hit-star.ru^ +ÿï08@R hits.ss.com^ +ÿï08@R hittoadv.com^ +!ÿï08@Rhivideoworld.com^ +ÿï08@R hiwoenrep.ru^ +ÿï08@R hjdkhts.info^ +ÿï08@R +hjiss.com^ +ÿï08@R hjjevg.com^ +ÿï08@Rhkarlv24h9.ru^ +ÿï08@R +hkbpt.com^ +ÿï08@R +hkeig.com^ +ÿï08@Rhkik.ru^ +$ÿï08@Rhlergrobloundraq.ru^ +ÿï08@R +hnikna.ru^ +ÿï08@R +hnixr.com^ +"ÿï08@Rhnlvld1crehqne.ru^ +ÿï08@R hnreef.com^ +ÿï08@Rhodkiewicz.net^ +ÿï08@Rhodkiewicz.org^ +ÿï08@Rhoholikik.club^ +ÿï08@R hoilop.com^ +ÿï08@R holeq.ru^ +ÿï08@R holysts.com^º +ÿï08@Rhomeblogger.ru^ +ÿï08@R homenick.biz^ +ÿï08@R hommisse.com^ +ÿï08@R hommunit.com^ + ÿï08@Rhoneenatrus.com^ +ÿï08@Rhoneypoet.com^ +ÿï08@R hopedac.com^ +ÿï08@Rhotpartner.biz^ +ÿï08@Rhotpartner.ru^ +ÿï08@R hottod.info^ +ÿï08@Rhoumekredit.ru^ + ÿï08@Rhowrinwassed.ru^ +ÿï08@R +hpcyk.com^ +ÿï08@R hpkgqhmp.biz^ +ÿï08@R +hpyue.com^ +"ÿï08@Rhqrsuxsjqycv.info^ +ÿï08@R hrbpark.bid^ +ÿï08@R hrijqd.com^ +ÿï08@Rhromasoma.com^ +ÿï08@R hsgdyq.com^ +ÿï08@R hstraffa.com^ +$ÿï08@Rhttps//diradvert.ru^ +ÿï08@R +hubll.com^ +ÿï08@R hudasion.com^ +ÿï08@R huel.biz^ +%ÿï08@Rhuffson-delivery.com^ +%ÿï08@Rhuffson-derivery.com^ +ÿï08@R hugedi.com^ +!ÿï08@Rhumanredirect.ru^ +ÿï08@R hundana.ru^ +#ÿï08@Rhunterdelivery.com^ +ÿï08@Rhunterers.com^ + ÿï08@Rhunterycity.com^ + ÿï08@Rhunteryvely.com^ +ÿï08@R +hupers.ru^ +ÿï08@R hushodo.com^ +ÿï08@R hutzxn.com^ +ÿï08@R huxtoq.com^ +ÿï08@R hvjudtzf.ru^ +ÿï08@R hw4mm.ru^ +!ÿï08@Rhwmgcurmtkxk.bid^ +ÿï08@R hxeljv.com^ +"ÿï08@Rhxmtwz3cffemjy.ru^ +ÿï08@R +hybrid.ai^ +ÿï08@R +hydr.work^ +ÿï08@R hymipacu.pro^ +ÿï08@R +hymona.ru^ +ÿï08@R hyndir.com^ +ÿï08@Rhypolavius.com^ +ÿï08@R +hytres.ru^ +ÿï08@R +hzfcx.top^ +ÿï08@R hzucji.com^ +ÿï08@R +i-adv.biz^ +ÿï08@R i-traf.net^ +ÿï08@R i-vengo.com^ +ÿï08@Ri3st.ru^ +ÿï08@Ri7xdx6p6.space^ +ÿï08@R +i8y156.ru^ +ÿï08@R iadv.biz^ +ÿï08@R iafxnv.com^ +ÿï08@R ibakhal.ru^ +ÿï08@R iberacon.com^ +ÿï08@R ibishic.ru^ + ÿï08@Ribiza-court.com^¤ +ÿï08@R ibsecta.ru^ +ÿï08@R +icelam.ru^ +)ÿï08@Richecknotifyfriends.info^ +ÿï08@R icilfj.com^ +ÿï08@Riclbodnew.pro^ +ÿï08@R iclckk.com^ +ÿï08@R icqad001.net^ +ÿï08@R icqad002.net^ +ÿï08@R icqad003.net^ +ÿï08@R icqad004.net^ +ÿï08@R icqad005.net^ +ÿï08@R icqad006.net^ +ÿï08@R icqad007.net^ +ÿï08@R icqad008.net^ +ÿï08@R icqad009.net^ +ÿï08@R icqad010.net^ +ÿï08@R icqad011.net^ +ÿï08@R icqad012.net^ +ÿï08@R icqad013.net^ +ÿï08@R icqad014.net^ +ÿï08@R icqad015.net^ +ÿï08@R icqad016.net^ +ÿï08@R icqad017.net^ +ÿï08@R icqad018.net^ +ÿï08@R icqadv.net^ +ÿï08@R icqadve.net^ +ÿï08@Ricqadvert.net^ +ÿï08@R icqfsp.com^ +ÿï08@R +id9uep.ru^ +ÿï08@R idaschop.ru^ +ÿï08@R idbhsgy.com^ +ÿï08@R ideibeer.com^ +ÿï08@R +idkng.com^ +ÿï08@R idlego.info^ +ÿï08@R +idomn.com^ +ÿï08@R idpojar.ru^ +ÿï08@R idrindi.ru^ +ÿï08@R +idrlq.top^ +ÿï08@R +iducg.gdn^ +ÿï08@R +idwrx.com^ +ÿï08@R ieagkw.com^ +'ÿï08@Rieggdijjfccaffgdafb.ru^ +ÿï08@Riejka.download^ +ÿï08@Riemieshohx.com^ +ÿï08@R +ieuhd.com^ +ÿï08@R iexqhm.com^ +ÿï08@R igbfwa.com^ +'ÿï08@Rigdaejaadediihbiafc.ru^ +ÿï08@R igetsend.ru^ +ÿï08@R igkek7a2.ga^ +ÿï08@R +igkxr.biz^ +ÿï08@R ignitna.info^ +ÿï08@Rignorelist.com^ +ÿï08@Rigraemroli.ru^ +ÿï08@R igronas.ru^ +ÿï08@R +igvuw.com^ +ÿï08@R ihfxao.com^ +ÿï08@Rihhg3or2es.ru^ +ÿï08@R ihlasbe.ru^ +ÿï08@R +iholot.ru^ +ÿï08@R +ihqht.com^ +ÿï08@R iidfxj.com^ +ÿï08@R iiewuy.com^ +ÿï08@Riiltsdqcsb.com^Œ +ÿï08@R ijacgw.com^ +ÿï08@R ijdenha.ru^ +ÿï08@R +ijgs5i.ru^ +ÿï08@R ijkcmm.com^ +ÿï08@R +ijsve.com^ +"ÿï08@Rijvvsearfavi.mobi^ +ÿï08@R ikersont.com^ +ÿï08@R +ikiif.com^ +ÿï08@Rikinbugen.com^ +ÿï08@R +ikingi.ru^ +ÿï08@R +ikk2gh.eu^ +ÿï08@R ikolop.com^ +ÿï08@R ikritis.ru^ +ÿï08@R ikzoncud.com^ +ÿï08@R +ildws.com^ +ÿï08@R +ileads.ru^ +ÿï08@R illiage.com^ +ÿï08@R illiages.com^ +ÿï08@R illiap.com^ +ÿï08@R ilopotun.com^ +ÿï08@Riloveeagle.ru^ +ÿï08@R ilovemp3.top^ +ÿï08@R iloverain.ru^ +ÿï08@R ilowcost.ru^ +ÿï08@R iluzur.com^ +ÿï08@R ilysa.ru^ +ÿï08@R im1-tub.com^ +ÿï08@R im2-tub.com^ +ÿï08@R im3-tub.com^ +ÿï08@R im4-tub.com^ +ÿï08@R im5-tub.com^ +ÿï08@R im6-tub.com^ +ÿï08@R im7-tub.com^ +ÿï08@R im8-tub.com^ +ÿï08@R im9-tub.com^ +ÿï08@R imagans.com^ +ÿï08@R image325.ru^ +ÿï08@R +imamby.ru^ +ÿï08@R imeteti.info^ +ÿï08@R img-cdn.ru^ +'ÿï08@Rimg1461.r.worldssl.net^ +"ÿï08@Rimhvlhaelvvbrq.ru^ +ÿï08@R impannon.com^ +ÿï08@R imparfum.com^ +"ÿï08@Rimpressionsme.net^ +ÿï08@R impromot.com^ +ÿï08@R imrk.net^ +ÿï08@R +imrk2.net^ +ÿï08@R imrkcrv.net^ +ÿï08@R imrksvr2.net^ +ÿï08@R imtowoz.ru^ +ÿï08@R imwarwi.ru^ +ÿï08@R imwhite-ru^ +ÿï08@R imwhite.ru^ +ÿï08@Rimyadomena.ru^ +ÿï08@R +imycpm.ru^ +ÿï08@R inaly.ru^ +ÿï08@R incielle.com^ +ÿï08@R inctivee.com^ +ÿï08@R indcoest.com^ +ÿï08@R inetrek.com^ +ÿï08@Rinferalton.com^ +ÿï08@R info-app.ru^ +ÿï08@R info-app2.ru^› +ÿï08@R info-app3.ru^ +ÿï08@R info-app4.ru^ +%ÿï08@Rinfo.howto-news.info^ +ÿï08@R info33.info^ +ÿï08@R info4park.ru^ +ÿï08@Rinfoblog.site^ +ÿï08@Rinfoboom.life^ + ÿï08@Rinfocelebrit.ru^ +!ÿï08@Rinfoguardru.info^ +ÿï08@R infomir.pw^ +ÿï08@R infomix.best^ +ÿï08@R infomovie.ru^ +ÿï08@Rinformer.link^ +ÿï08@Rinformplel.ru^ +"ÿï08@Rinfortractor.site^ +ÿï08@Rinforuss.site^ +ÿï08@Rinfostuet.com^ + ÿï08@Rinfowarship.com^ +&ÿï08@Rinfowarship.pages.dev^ +ÿï08@R +inghe.biz^ +ÿï08@R inhadhen.com^ +ÿï08@R inharne.com^ +ÿï08@R +inhole.ru^ +#ÿï08@Rinhz49xhphar5k.top^ +ÿï08@R inlive.link^ +ÿï08@R inmedias.biz^ +ÿï08@R inmeund.ru^ +ÿï08@R innoapi.info^ +ÿï08@R inpiza.com^ ++ÿï* + sova.live08@R inplayer.ru^ + ÿï08@Rinppfinder.info^ +ÿï08@Rinpptouch.info^ +ÿï08@Rinrd.ru^ + ÿï08@Rinstadrama.site^ +ÿï08@R installs.pro^ +!ÿï08@Rinstreamatic.com^ +ÿï08@Rint-news.info^ +ÿï08@Rintegralniy.ru^ +ÿï08@R intelaxa.com^ +%ÿï08@Rintelligencehost.net^ +!ÿï08@Rinterbuddies.com^ + ÿï08@Rinteresnoe24.ru^ +$ÿï08@Rinteresnoevsele.com^ +ÿï08@Rinterfax.info^ +ÿï08@R interfax.pw^ +ÿï08@R interieu.com^ +ÿï08@R intim.love^ +ÿï08@R intim40.com^ +ÿï08@Rintimcity.com^ +ÿï08@Rintimcity.net^ +.ÿï08@Rintroductioncleavernipple.com^ +ÿï08@Rinvistionik.ru^ +ÿï08@R +iohfi.top^ +ÿï08@R iovpmg.com^ +ÿï08@R ipapin.info^ +ÿï08@R iplayad.com^ +ÿï08@R ipmarte.ru^ +ÿï08@Ripml-qvr8go.ru^ +!ÿï08@Rippcodeblack.com^ +ÿï08@Rippcodered.com^ +#ÿï08@Rippscriptshark.com^ +ÿï08@R ipqolj.com^ +ÿï08@R iprxfx.com^ +ÿï08@R +ipsqh.com^é +ÿï08@Ripvertnet.com^ +ÿï08@R ipzlsr.com^ +ÿï08@R +iqkbi.top^ +ÿï08@R +iqnbe.top^ +!ÿï08@Riqrsr161o3y.site^ +ÿï08@R +iqsns.top^ +ÿï08@R iqtcqw.com^ +ÿï08@R +iqtewa.ru^ +ÿï08@R iredirr.com^ +ÿï08@Riroebhuszq.com^ +ÿï08@R +irozl.com^ +ÿï08@R +irtula.ru^ +ÿï08@R +irufaq.ru^ +ÿï08@R iruyouy.ru^ +ÿï08@R irvizem.ru^ +ÿï08@R is1njb3.ru^ +ÿï08@R isinodo.ru^ +ÿï08@Rislamclick.ru^ +ÿï08@R ismcxv.com^ +ÿï08@R isrv07.com^ +ÿï08@R +istcs.top^ +ÿï08@R isterra.ru^ +ÿï08@R istmvh.com^ +ÿï08@R istokiku.ru^ +ÿï08@R istori.site^ +ÿï08@R istunin.ru^ +ÿï08@R it-pearl.com^ +ÿï08@R itageli.ru^ +ÿï08@R itakhin.ru^ +ÿï08@R +itdzv.top^ +ÿï08@R ithoahie.com^ +ÿï08@R itisanime.ru^ +ÿï08@R itrigra.ru^ +ÿï08@R itsurta.ru^ +ÿï08@Ritunestore.ru^ +ÿï08@R itxfdw.com^ + ÿï08@Riuiyeje4qmbe.ru^ +ÿï08@R iulftx.com^ +ÿï08@R iupgxu.com^ +ÿï08@R ivancept.com^ +ÿï08@R ivances.com^ +ÿï08@R ivanie.com^ +ÿï08@R ivantat.com^ + ÿï08@Rivi.ru/mad/vast/ +ÿï08@R ivjswq.com^ +ÿï08@R ivnsssc.pro^ +ÿï08@R ivsiveg.ru^ +ÿï08@R +ivwolo.ru^ +#ÿï08@Riwantyourpromo.com^ +ÿï08@R +iwhha.top^ +ÿï08@Riwq5kreqjj.ru^ +ÿï08@R iwqzrm.com^ +ÿï08@R ixcbqp.com^ +ÿï08@R +ixlok.com^ +ÿï08@R ixmzrw.com^ +ÿï08@R ixtuseq.info^ +ÿï08@R ixtyted.ru^ +ÿï08@R +iygac.com^ +ÿï08@R +iygke.com^ +ÿï08@R +iylhv.com^ +ÿï08@R iylia12.site^ +ÿï08@R izdatra.ru^ +ÿï08@R +iztori.ru^ +ÿï08@R +izuvis.ru^ƒ +ÿï08@R izvygon.ru^ +ÿï08@Rj1oxqq05ry.ru^ +%ÿï08@Rjaabeieacddhbdcdf.ru^ +ÿï08@Rjad-news1.club^ +ÿï08@R jadedi.com^ +ÿï08@R jafcpd.com^ +ÿï08@Rjagevirom.com^ +ÿï08@R jajnhd.com^ +ÿï08@Rjaklikora.com^ +ÿï08@R +jaqmk.top^ +ÿï08@R jaqupee.ru^ +ÿï08@Rjaskolski.biz^ +ÿï08@R jboqxw.com^ +ÿï08@R +jbugk.com^ +ÿï08@R jccpaz.com^ +ÿï08@R jcyjly.com^ +#ÿï08@Rjd01estvnre.online^ +#ÿï08@Rjd01esxhoel.online^ +!ÿï08@Rjd01etxdoree.com^ +!ÿï08@Rjd01etxdoree.top^ +!ÿï08@Rjd01qstbprek.top^ +ÿï08@R jd01qwt.info^ +!ÿï08@Rjd05esxdnre.info^ +ÿï08@R jdgwr.space^ +ÿï08@R jee1qz.site^ +ÿï08@R jegkxt.com^ + ÿï08@Rjek16wtbov.site^ +ÿï08@Rjek1qttvo.tech^ +!ÿï08@Rjek1quxdnrfe.org^ +ÿï08@R jek56zz0.com^ +ÿï08@R jek56zz0.pro^ +ÿï08@R jekson44.ru^ +ÿï08@Rjelfmtsr5i.ru^ +ÿï08@Rjerwested.info^ +]ÿï* + jethosting.ru* + jetswap.com* + regjet.ru* +jetgo.ru08@R jetswap.net^ +ÿï08@Rjeu5utxlo.tech^ +ÿï08@R jewnsk.pro^ +ÿï08@Rjewongilum.com^ +ÿï08@R +jfhoq.com^ +ÿï08@R jfveak.com^ +ÿï08@Rjhdnntmkom.com^ +ÿï08@Rjhn-news1.club^ +ÿï08@R jhvhbc.com^ +ÿï08@Rjin0cbonpi.ru^ +ÿï08@Rjincodiks.com^ +ÿï08@R +jinton.ru^ +ÿï08@R jinxy.ru^ +ÿï08@Rjionerrt.mobi^ +ÿï08@R jiwklz.com^ + ÿï08@Rjizzfzhubf.site^ +ÿï08@R +jjabr.com^ +ÿï08@R +jjcus.com^ +ÿï08@R +jjuau.com^ +ÿï08@R +jkhad.com^ +ÿï08@R +jkolp.com^ +ÿï08@R jktexpert.ru^ +ÿï08@R +jljnh.top^ +ÿï08@R jlloshis.pro^ +ÿï08@R jloush.pro^ +ÿï08@R jlpbyt.com^ +ÿï08@R jlxsgk.com^ +ÿï08@R +jlxzr.top^ + ÿï08@Rjlzebszkilcz.ru^ +!ÿï08@Rjme1quxporf.info^Š +#ÿï08@Rjme1urtvodz.online^ +ÿï08@Rjme5erxdn.tech^ + ÿï08@Rjme9ustnnel.com^ +!ÿï08@Rjme9ustnnel.info^ +ÿï08@Rjmf-news1.club^ +!ÿï08@Rjmk1uttboek0.pro^ +#ÿï08@Rjmk1uz3dodz.online^ +!ÿï08@Rjmk56rtfove.info^ +ÿï08@R jmk5uut.info^ +ÿï08@Rjmpmedia.info^ +!ÿï08@Rjmu1eqxppr.space^ +!ÿï08@Rjmu1eqxppvfv.top^ +ÿï08@R jmu5qvx.com^ +ÿï08@R jmu5qvx.info^ +ÿï08@R jncfri.com^ +!ÿï08@Rjne1quxhoqt0.top^ +!ÿï08@Rjnu16azvozz0.pro^ +!ÿï08@Rjnu1euxlnems.pro^ +!ÿï08@Rjnu1usxpndz0.pro^ +#ÿï08@Rjnu9uwxlprf.online^ +ÿï08@Rjo0kfb10xr.ru^ + ÿï08@Rjob-info2015.ru^ +ÿï08@R +jofbu.com^ +ÿï08@Rjohnlactal.com^ +ÿï08@Rjohnoftwass.ru^ +"ÿï08@Rjohnsandsofhar.ru^ +ÿï08@Rjohnsitsi.pro^ +ÿï08@R jojlih.com^ +ÿï08@R jokek.ru^ +(ÿï08@Rjokerhaus.moskva-tv.com^ +ÿï08@R +jokeyr.ru^ +ÿï08@R joneself.com^ +ÿï08@R jonjo.cf^ +ÿï08@R jonjo.ga^ +ÿï08@R jonjo.life^ +ÿï08@R jorjfix.ru^ + ÿï08@Rjoubertymus.com^ +%ÿï08@Rjoulipodpodushkoy.ru^ +!ÿï08@Rjournalrussia.ru^ +ÿï08@Rjouzeeps.click^ +ÿï08@R joxar.ru^ +ÿï08@R jpjgod.com^ +ÿï08@R +jpqgs.com^ +ÿï08@Rjpserver.site^ +ÿï08@R jqedid.com^ +ÿï08@Rjqk2me2mzf.ru^ + ÿï08@Rjqtsknmobyw.com^ +$ÿï08@Rjquery-uim.download^ +ÿï08@Rjquerylibe.ru^ +ÿï08@R jrfced.com^ +ÿï08@Rjrg-news2.club^ +ÿï08@R +jrlne.top^ +ÿï08@Rjroqvbvw.info^ +ÿï08@Rjrs2igoimq.ru^ +ÿï08@R jrvdga.com^ + ÿï08@Rjsc.tovarro.com^ +$ÿï08@Rjscdn.yieldbird.com^ +ÿï08@R jsecoin.com^ +ÿï08@R jserv.ru^ +ÿï08@Rjsgbmmcapc.com^ +ÿï08@R +jsite.top^ +ÿï08@R +jsopen.ru^ +ÿï08@R jsrlfg.com^ +ÿï08@R jsutils.net^¤ +ÿï08@R jtsfxb.com^ +ÿï08@R jttjtj.com^ +ÿï08@R jucaih.com^ +ÿï08@R +juddy.top^ +ÿï08@R julidoll.ru^ +ÿï08@R jump-wap.com^ +ÿï08@R juppser.ru^ +ÿï08@Rjuslatofbab.ru^ +ÿï08@R jusorpa.ru^ +ÿï08@Rjustonsrep.com^ +ÿï08@R jutsubest.ru^ +ÿï08@R jutulep.com^ +ÿï08@Rjux9ms4vc7.ru^ +ÿï08@R jvljpv.com^ +ÿï08@R jvvqm.us^ +ÿï08@R jxo3yhu8m.ru^ +ÿï08@R jxqopk.com^ +ÿï08@R jxrhjcb.biz^ +ÿï08@R jxteaj.com^ +ÿï08@R jxvjiq.com^ +ÿï08@R +jxxgg.top^ +ÿï08@Rjyhfuqoh.info^ +ÿï08@Rjza67479be.ru^ +ÿï08@R jzonie.com^ +ÿï08@R +jzqce.com^ +ÿï08@Rk0r2eokjm6.ru^ +ÿï08@R k3dqv.ru^ +ÿï08@R k3node.com^ +ÿï08@R +k675zr.ru^ +ÿï08@R kabriksu.com^ +ÿï08@R kachkachi.cf^ +ÿï08@R kachkachi.ga^ +ÿï08@R kachkachi.gq^ +ÿï08@R kachkachi.ml^ +ÿï08@R +kadam.net^ +ÿï08@R kadanoda.ru^ +ÿï08@R kadavara.com^ +ÿï08@R kagortus.ru^ +ÿï08@R kaidop.com^ +ÿï08@R kak-bit.ru^ +ÿï08@R kakanas.ru^ +%ÿï08@Rkalistanasobachke.ru^ +ÿï08@R kaloev.site^ +$ÿï08@Rkamradamnaradost.ru^ + ÿï08@Rkan.kanoner.com^ +!ÿï08@Rkan.karpovka.net^ +ÿï08@Rkaneki-ken.ru^ + ÿï08@Rkaraokepesni.ru^ +ÿï08@R kartinuly.ru^ +ÿï08@R karuna4u.com^ +ÿï08@R kaserom.ru^ +#ÿï08@Rkatalog-stroyka.ru^ +ÿï08@Rkataprius.com^ +ÿï08@R katriie.ru^ +ÿï08@R kbtzxl.com^ +ÿï08@R kcfdom.com^ +ÿï08@R kcycpp.com^ +ÿï08@R kdfar.space^ +ÿï08@Rkdowqlpt.info^ +ÿï08@Rkdr8etp22t.ru^ +ÿï08@R keebler.biz^ +ÿï08@Rkeeporhard.com^ +ÿï08@R keiskar.ru^ +ÿï08@R keitush.ru^´ +ÿï08@R keitush1.ru^ +ÿï08@R keitush2.ru^ +ÿï08@Rken-kaneki.ru^ +ÿï08@R kenizg.com^ +ÿï08@R +keqrd.top^ +ÿï08@R kerluke.biz^ +!ÿï08@Rketharotons.info^ +ÿï08@R keyti.ru^ +ÿï08@R kfrar.club^ +ÿï08@R kfrer.life^ +ÿï08@R kfrfr.life^ +ÿï08@R kfrpr.club^ +ÿï08@R kfrqr.club^ +ÿï08@R kfryur.club^ +ÿï08@R kgijkc.com^ +ÿï08@R +kgt-nn.ru^ +ÿï08@R +khaek.top^ +ÿï08@R khanate.pro^ +ÿï08@R kharnani.ru^ +ÿï08@R khedliyo.ru^ +ÿï08@R khetopa.info^ +ÿï08@R khiledar.ru^ +ÿï08@Rkhimandi.info^ +ÿï08@R khirosha.ru^ +ÿï08@R khukbakhu.ru^ +ÿï08@R +khvfg.com^ +ÿï08@R kibaneba.ru^ +ÿï08@R kijkxx.com^ +ÿï08@R kilkiva.ru^ +ÿï08@Rkilltarget.biz^ +ÿï08@Rkilltarget.com^ +ÿï08@Rkilltarget.pro^ +ÿï08@Rkilonefast.net^ +ÿï08@R kilopog.com^ +!ÿï08@Rkimagramratom.tk^ +ÿï08@R kimgcdn.com^ +ÿï08@R kimosai.com^ +ÿï08@R kimus.ru^ +ÿï08@R kin0.biz^ +ÿï08@R kin4ik.com^ +ÿï08@R +kinak.top^ + ÿï08@Rkindorlemis.com^ +ÿï08@R +kinfly.ru^ +ÿï08@R king-ad.ru^ +ÿï08@Rkingleads.pro^ +ÿï08@Rkinhenathow.ru^ +ÿï08@Rkinhintont.com^ +!ÿï08@Rkino-serial.info^ + ÿï08@Rkino-serial.pro^ +ÿï08@R kino4you.ru^ +ÿï08@Rkinoaction.ru^ +ÿï08@Rkinoblock.name^ +ÿï08@R kinobol.ru^ +ÿï08@Rkinoboss.info^ +ÿï08@Rkinoclub77.ru^ +ÿï08@Rkinofilmax.com^ +ÿï08@R kinoget.tv^ +&ÿï08@Rkinogo.r.worldssl.net^ +ÿï08@R kinohard.com^ +ÿï08@R kinokayf.com^ +ÿï08@R kinonas.ru^ +!ÿï08@Rkinopromobase.ru^ +"ÿï08@Rkinopromobase2.ru^ +ÿï08@Rkinoshka-ru.ru^© +!ÿï08@Rkinostream.media^ +ÿï08@R kinosup.icu^ +ÿï08@R kinott.com^ +ÿï08@R +kinott.ru^ +ÿï08@R +kinozz.in^ +ÿï08@R kinozz.pro^ +ÿï08@Rkinozznet.com^ +ÿï08@R +kinqon.ru^ +ÿï08@R kinqp.ru^ +ÿï08@Rkinrowone.pro^ +ÿï08@R +kiojet.ru^ +ÿï08@R +kipyn.com^ +"ÿï08@Rkires.umk-spo.biz^ +ÿï08@R kirlin.link^ +!ÿï08@Rkiruniversal.com^ +ÿï08@R kisakuku.org^ +#ÿï08@Rkissedthetrain.com^ +3ÿï08@R#kisshentai.net/Content/js/c-hive.js +ÿï08@R kistured.com^ +ÿï08@Rkit5hgver.com^ +ÿï08@R kitopr.com^ +ÿï08@R +kitri*.tk^ +ÿï08@R kitri.tk^ +$ÿï08@Rkiworeequnasaw.info^ +ÿï08@R +kjaay.com^ +ÿï08@R +kjhmg.com^ +ÿï08@R +kkkmr.com^ +ÿï08@R kletki16.ru^ +ÿï08@Rklyuchev.in.ua^ +ÿï08@R klyunker.ru^ +ÿï08@R kma1.biz^ +ÿï08@R kmabiz.org^ +ÿï08@R +kmndj.top^ +ÿï08@R +knewy.com^ +"ÿï08@Rknkqjmjyxzev.info^ +ÿï08@R knowens.com^ +ÿï08@R +knwmou.ru^ +ÿï08@R ko6ka.ru^ +ÿï08@R koddpush.ru^ +ÿï08@R kodli.site^ +ÿï08@R koe-dv.net^ +ÿï08@R koelpin.biz^ +ÿï08@R kohx3.ru^ +ÿï08@R koiper.com^ +ÿï08@Rkokorzabil.com^ +ÿï08@R kokos.click^ +ÿï08@Rkol-baskin.com^ +ÿï08@R kolendrin.ru^ +ÿï08@R kolest.pro^ +ÿï08@R koliser.com^ +ÿï08@R kolites.com^ +ÿï08@R kolitter.com^ +ÿï08@R koluty.com^ +ÿï08@R kombost*.tk^ +ÿï08@R kombost.tk^ +ÿï08@Rkonopelski.biz^ +ÿï08@Rkonsterst.mobi^ +ÿï08@Rkont-news.com^ +ÿï08@R +koova.top^ +ÿï08@R kopterka.ru^ + ÿï08@Rkorenizsemi.net^ +ÿï08@Rkoreshblock.ru^ +ÿï08@Rkornistvol.ru^ +ÿï08@Rkost.tv^š +ÿï08@Rkoviovius.com^ +ÿï08@Rkpnqp847j4.ru^ +ÿï08@R +kpqnj.top^ +ÿï08@R +kptda.com^ +ÿï08@R kpwp7.ru^ +ÿï08@R +kpyub.com^ +ÿï08@R +kpztl.top^ +ÿï08@Rkq6lwk3m9g.ru^ +ÿï08@Rkrab-studio.ru^ +ÿï08@R krajcik.biz^ +ÿï08@R krashiha.ru^ +ÿï08@R krasisa.info^ +ÿï08@R kreepo.com^ +ÿï08@R kremaga.ru^ +ÿï08@R kremiv.com^ +ÿï08@Rkringrdrct.com^ +ÿï08@R krtrvl.com^ +ÿï08@R +krut.link^ +ÿï08@R kryukoto.ru^ +ÿï08@R +ksdnf.com^ +ÿï08@R +kshop.biz^ +ÿï08@R kshop2.biz^ +ÿï08@R kshop3.biz^ +ÿï08@R ksjch.ml^ +)ÿï08@Rktozabanittotkirkorov.ru^ +ÿï08@R +ktvgv.com^ +ÿï08@R +ktyog.com^ +ÿï08@Rkunleen.online^ +ÿï08@R kurberi.ru^ +ÿï08@R +kuretr.ru^ +ÿï08@R kuseless.ru^ +ÿï08@R kutabi.info^ +ÿï08@R kuveres.com^ +ÿï08@Rkvcd7w375h.ru^ +ÿï08@R kvihit.com^ +ÿï08@R kvvadrat.net^ +ÿï08@R kvydqw.com^ +ÿï08@R kwdssc.com^ +ÿï08@R kwrqsc.com^ +ÿï08@R kwtrdd.com^ +ÿï08@R kwtyuv.com^ +ÿï08@Rkwzdbbkpre.com^ +ÿï08@R kxfhep.com^ +ÿï08@R kxvzsil2.ru^ +ÿï08@R +kxye9.gdn^ +ÿï08@R kyefakwa.com^ +ÿï08@Rkypivukypi.ru^ +ÿï08@R kzqoeu.com^ +ÿï08@R +kzqox.com^ + ÿï08@Rl48ioxvhakxv.ru^ +!ÿï08@Rl6hba7sosm1.site^ +ÿï08@R laaming.com^ +ÿï08@R labadon.com^ +ÿï08@R lacembre.com^ +ÿï08@R lacemme.com^ +ÿï08@R lacest.com^ +ÿï08@R lachee.com^ +ÿï08@R lachest.com^ +$ÿï08@Rlaconic-comment.com^ +ÿï08@R lactotof.ru^ +#ÿï08@Rladiesnadosuge.com^ + ÿï08@Rladoshka.webcam^ +ÿï08@Rlady-click.com^ +ÿï08@Rlady-clicks.ru^¿ +ÿï08@Rlady-sroryz.ru^ +ÿï08@Rlady24life.ru^ +ÿï08@R ladyads.ru^ +ÿï08@R ladycash.ru^ +ÿï08@Rladyclicks.ru^ +ÿï08@Rladyclicks2.ru^ +ÿï08@Rladyclicks8.ru^ +ÿï08@R ladycoin.ru^ +ÿï08@R ladyoffer.ru^ +ÿï08@Rladytizer.com^ +ÿï08@R +ladyya.ru^ +ÿï08@Rladyzxxyz.com^ +ÿï08@R ladzatsi.ru^ +ÿï08@R lagrobe.ru^ +ÿï08@R lamanin.ru^ +ÿï08@R lamason.ru^ +ÿï08@R +lanapa.ru^ +ÿï08@R lancheck.net^ +ÿï08@R langueur.com^ +ÿï08@R lapakita.ru^ +ÿï08@Rlapatiya.info^ +ÿï08@Rlapeduzis.org^ +ÿï08@R lapumo.com^ +ÿï08@R lareson.com^ +ÿï08@Rlargelydi.com^ +ÿï08@Rlaroshepos.ru^ +ÿï08@R larotret.ru^ +ÿï08@R lartebou.com^ +ÿï08@Rlascicordo.com^ +ÿï08@R lastras.ru^ +ÿï08@R laterxxx.com^ +ÿï08@R latritsa.ru^ +ÿï08@R latyitsy.ru^ +ÿï08@Rlaughtill.net^ +ÿï08@R +lazabu.ru^ + ÿï08@Rlazyengines.com^ +ÿï08@Rlbbanners.net^ +ÿï08@R +lc2ads.ru^ +ÿï08@R lcads.ru^ +!ÿï08@Rldfgoxoee234b.ru^ +ÿï08@Rleadadvert.ru^ +ÿï08@Rleadgidads.ru^ +ÿï08@R leadmob.ru^ +ÿï08@R leads.black^ +ÿï08@R leads.su^ +ÿï08@R leannon.biz^ +ÿï08@R leannon.net^ +ÿï08@R leashac.com^ +"ÿï08@Rlechenie-kozhi.ru^ +ÿï08@Rledhenone.com^ +ÿï08@R ledner.net^ +ÿï08@R ledner.org^ +ÿï08@R ledsitat.ru^ +ÿï08@Rledsitling.pro^ +ÿï08@R leforma.com^ +ÿï08@R leftaxi.ru^ +"ÿï08@Rleftdidnughert.ru^ +ÿï08@Rleftherla.pro^ +ÿï08@R legalaxy.com^ + ÿï08@Rlegalidioms.com^ +ÿï08@Rlegandruk.com^ +ÿï08@Rlegikqw6ps.com^ +ÿï08@R legistco.ru^ +$ÿï08@Rlegitimatecurve.pro^º +ÿï08@R lekane.net^ +ÿï08@R leleorix.ru^ +ÿï08@R lelerum.ru^ +ÿï08@R lend-rb.bid^ +ÿï08@Rlentouch.info^ +ÿï08@R +leofur.ru^ +ÿï08@R leokross.com^ +ÿï08@R leplena.ru^ +ÿï08@R lepubs.com^ +ÿï08@R lequ6.ru^ +ÿï08@R lerester.com^ +ÿï08@R +lerrex.ru^ + ÿï08@Rleruanmarket.ru^ +$ÿï08@Rlethargic-smock.com^ +ÿï08@Rletmelook.net^ +ÿï08@Rletmenowme.biz^ +ÿï08@R letmeok.com^ +ÿï08@R letodron.ru^ +$ÿï08@Rletscheckmygeos.com^ +ÿï08@R letsjan.com^ +ÿï08@Rletsjanua.com^ + ÿï08@Rletsjanuary.com^ +ÿï08@R letswrite.ru^ +ÿï08@R +leuxq.com^ +ÿï08@Rlevel1cdn.com^ +ÿï08@R levelpay.ru^ +ÿï08@Rlevitatsia.ru^ +ÿï08@R levrico.com^ +ÿï08@R lexament.com^ +ÿï08@R lfd-media.ru^ +ÿï08@R lffeed.site^ +ÿï08@R +lfi9fh.ru^ +ÿï08@R lfony.space^ +ÿï08@R lfovf.space^ +ÿï08@Rlgtf.ru^ +ÿï08@R lgxcza.com^ + ÿï08@Rlhvmt5et8vq0.ru^ +ÿï08@R lhzmkyl.biz^ +ÿï08@R lib1.biz^ +!ÿï08@Rlibrarymedic.com^ +ÿï08@R lichenz.ru^ +ÿï08@R lichyela.ru^ +#ÿï08@Rlicked-alphabet.eu^ +ÿï08@R lidetds.net^ +ÿï08@R +lidgol.ru^ +ÿï08@Rlidicando.com^ +ÿï08@R lidplay.net^ +ÿï08@R liendans.com^ +ÿï08@R lifeads.ru^ + ÿï08@Rlifenews24x7.ru^ +ÿï08@R lifeonmed.ru^ +ÿï08@R liferek.live^ +ÿï08@R lifewild.ru^ +ÿï08@Rlight2gr0w.me^ +ÿï08@Rlightframe.ru^ +ÿï08@Rlike-shop24.ru^ + ÿï08@Rlikemagazine.ru^ +ÿï08@R likondok.com^ +ÿï08@R lilinit.info^ +ÿï08@Rlim915iej7.ru^ +ÿï08@R limaten.info^ +ÿï08@R +limo20.ru^ +"ÿï08@Rlimonadsources.ru^ +ÿï08@R +lin02.bid^¹ +ÿï08@R linabap.ru^ +ÿï08@R linakay.ru^ +ÿï08@Rlinghistof.com^ +ÿï08@Rlingresbab.pro^ +ÿï08@R lingtoro.ru^ +ÿï08@R linicom.com^ +ÿï08@Rlinkerfast.ru^ +ÿï08@Rlinkerlink.ru^ +ÿï08@R linkodir.ru^ + ÿï08@Rlinkpeoples.com^ +ÿï08@R links-wm.ru^ +$ÿï08@Rlinksviewer2013.com^ +ÿï08@R linkunder.ru^ +ÿï08@R linkupper.ru^ +ÿï08@R linkwall.ru^ +ÿï08@R linogu.info^ +ÿï08@R linokle.ru^ +ÿï08@R +linono.ru^ +ÿï08@Rliolexina.com^ +ÿï08@R liolu.site^ +ÿï08@R lionkrit.pro^ +ÿï08@R lipsn.ru^ +ÿï08@Rlisakova98.ml^ +ÿï08@Rlisamobile.ru^ +ÿï08@R lisrrf.info^ +ÿï08@R listat.biz^ +ÿï08@R +listis.ru^ +ÿï08@R listof.mobi^ +$ÿï08@Rlitewebbusiness.com^ +ÿï08@R litiumo.com^ +ÿï08@R littel.biz^ +ÿï08@R littel.net^ +ÿï08@Rlitthegre.com^ +ÿï08@R lityesu.ru^ + ÿï08@Rlive-advert.net^ +ÿï08@R live24.info^ +ÿï08@R livea.ru^ +ÿï08@Rlivedecmov.com^ +ÿï08@Rlivedecnow.com^ +ÿï08@Rlivedecwow.com^ +"ÿï08@Rlivefactblog.club^ +ÿï08@R liveruim.com^ +ÿï08@R livesurf.ru^ +ÿï08@Rlivewweb.click^ +ÿï08@R livingy.com^ +ÿï08@R +ljbbq.com^ +ÿï08@R ljknem.com^ +ÿï08@R ljteas.com^ +ÿï08@R lkrszr.com^ +ÿï08@R llgerege.com^ +ÿï08@R llyvjs.com^ +ÿï08@R +lmbicg.ru^ +ÿï08@R +lmcuba.us^ +ÿï08@R lnico.ru^ +ÿï08@Rloader-tor.ru^ +ÿï08@R loaderr.ru^ +ÿï08@Rloadloccat.win^ +!ÿï08@Rlocalibitcoin.ru^ +&ÿï08@Rlocallchicks-here.com^ +ÿï08@Rlocandito.com^ +ÿï08@Rlocodata.site^ +ÿï08@R locoday.com^ +ÿï08@R lodder7.biz^ +ÿï08@R logethy.com^” +ÿï08@R loginbox.ru^ +ÿï08@R +logsoc.ru^ +ÿï08@R lolaken.com^ +ÿï08@R +lolper.ru^ +ÿï08@R lomtor.com^ +ÿï08@R loneday.com^ +ÿï08@R look4file.ru^ +ÿï08@R looker9.ru^ +ÿï08@R lookrtb.com^ +!ÿï08@Rloonylunatic.com^ +ÿï08@R lopiner.ru^ +ÿï08@R lopireto.com^ +ÿï08@R lopitus.com^ +ÿï08@R loponop.com^ +ÿï08@R +lopuut.ru^ +ÿï08@R lopytol.com^ +ÿï08@R lordlink.ru^ +ÿï08@Rlordofads.com^ +!ÿï08@Rlorhamnvukws.bid^ +ÿï08@Rlostfilmer.ru^ +ÿï08@Rlostfilmik.ru^ +"ÿï08@Rlostplanetcdn.com^ +ÿï08@R lostrklm.ru^ +ÿï08@Rlotomoney.biz^ + ÿï08@Rlotraden.online^ + ÿï08@Rlotsofslots.net^ +ÿï08@R lounerr.com^ +ÿï08@R +lovad.pro^ +ÿï08@R lp1block.com^ +ÿï08@Rlp9.ru^ +ÿï08@R lpirha.com^ +ÿï08@R lpprza.com^ +ÿï08@R +lptiu.top^ +ÿï08@R +lpwre.top^ +ÿï08@R +lqhto.com^ +ÿï08@R lrclpb.com^ +ÿï08@R lresoza.ru^ +ÿï08@R +lrfjz.top^ +ÿï08@R +lriver.ru^ +ÿï08@R lsbfakyx.ru^ +ÿï08@R +lsqsn.com^ +ÿï08@R +lstay.com^ +ÿï08@R ltzvs.ru^ +ÿï08@R lubimkino.ru^ +ÿï08@R lucky-mob.ru^ +ÿï08@R luckyade.ru^ +$ÿï08@Rluckymoneygames.com^ +ÿï08@Rluckypush.pro^ +!ÿï08@Rluckysearcher.ru^ +ÿï08@Rlueilwitz.net^ +ÿï08@R luisardo.com^ +ÿï08@R lujacej.com^ +ÿï08@Rlukpiot0dz.ru^ +ÿï08@R lunat.club^ +ÿï08@R lunikasta.ru^ +ÿï08@R luravius.com^ +ÿï08@R luredac.com^ +ÿï08@R lux-tyres.ru^ +ÿï08@Rlux1.me^ +ÿï08@R luxads.net^ +ÿï08@R luxfp.space^ +ÿï08@Rluxtraffic.ru^ +ÿï08@Rluxuceros.com^ +ÿï08@R luyfrk.com^Ò +ÿï08@R +lvkwz.com^ +ÿï08@R +lvuic.com^ +ÿï08@Rlwrnikzjpp.com^ +ÿï08@R +lwzbk.com^ +ÿï08@R lycodz.com^ +ÿï08@R lycosu.com^ +ÿï08@R lycosy.com^ +ÿï08@R +lydiz.com^ +ÿï08@R lydohedt.pro^ +ÿï08@R lyhowtot.ru^ +ÿï08@R lynoron.ru^ +ÿï08@Rlyparizh.info^ +ÿï08@R lytanon.pro^ +ÿï08@R lyx.guru^ +"ÿï08@Rlzbhby4aopbepr.ru^ +$ÿï08@Rm-growninppcode.com^ +ÿï08@R m-hub.info^ +ÿï08@R m-setup.net^ +ÿï08@R +m0zdeb.ru^ +ÿï08@R m1.kahoxa.ru^ +ÿï08@R m1cpl.ru^ +ÿï08@R m1xclick.ru^ +ÿï08@R +m2corp.ru^ +ÿï08@R m3-shop.ru^ +ÿï08@R m3gadeth.ru^ + ÿï08@Rm41egdcqogb3.ru^ +ÿï08@Rm86xgpyhz6.ru^ +ÿï08@R ma-code.ru^ +ÿï08@R ma-static.ru^ +ÿï08@Rmacanspeed.com^ +ÿï08@R madite.info^ +ÿï08@R +madnet.ru^ +ÿï08@Rmafecotegu.com^ +"ÿï08@Rmagariusaqmuri.cf^ +ÿï08@R magic1.biz^ +ÿï08@R +magic1.me^ +ÿï08@R magic4.biz^ +ÿï08@Rmagicanfy.com^ +ÿï08@Rmagifirst.com^ +ÿï08@Rmagnomita.com^ +ÿï08@Rmaherthin.pro^ +ÿï08@Rmahidevrat.com^ +ÿï08@Rmain-tcod.com^ +ÿï08@R mainclc.com^ +ÿï08@R mainews.ru^ +ÿï08@Rmainotter.com^ +$ÿï08@Rmainscriptshark.com^ +ÿï08@R maisyy.com^ +$ÿï08@Rmajor-inpp-code.com^ +!ÿï08@Rmajor-t-code.com^ +ÿï08@R makedeal.me^ +ÿï08@R makemole.ru^ +!ÿï08@Rmaks-reklama.com^ +*ÿï08@Rmakschuvaksobakadotkom.ru^ +ÿï08@Rmalictuiar.com^ +ÿï08@R mallplg.com^ +ÿï08@Rmalokacha.club^ +ÿï08@R mampark.ru^ +ÿï08@R mamypos.com^ +$ÿï08@Rmanagedcollapsed.in^ + ÿï08@Rmanselisten.com^ +ÿï08@R manuelu.com^ + ÿï08@Rmanymycodes.com^ +ÿï08@R marchtv.ru^î +ÿï08@Rmarcomobili.ru^ + ÿï08@Rmargadoncat.com^ +"ÿï08@Rmark-media.com.ua^ +"ÿï08@Rmarketplacepro.ru^ +ÿï08@R markhab.ru^ +ÿï08@R marmuzhi.ru^ +ÿï08@R martakava.ru^ +*ÿï08@Rmashinnaya-shtukaturka.ru^ +$ÿï08@Rmastercodeblack.com^ +!ÿï08@Rmasterconvert.ru^ +#ÿï08@Rmasterdomain24.com^ +ÿï08@Rmastershik.com^ +ÿï08@R masudel.com^ +ÿï08@R matbello.cl^ +ÿï08@R mateast.com^ +#ÿï08@Rmaturecodes-ip.com^ +ÿï08@R +maus77.ru^ +ÿï08@R maxforta.com^ +ÿï08@R maxtraff.com^ +ÿï08@R maxwaps.ru^ +ÿï08@Rmaybachvip.ru^ +ÿï08@R mayert.link^ +ÿï08@R mayvbm.com^ +ÿï08@R mb.akado.ru^ +ÿï08@Rmb.interfax.ru^ +ÿï08@R mb.rian.ru^ +ÿï08@R mb.vesti.ru^ +ÿï08@R mb49mn8bz.ru^ +ÿï08@R +mbn-1.com^ +ÿï08@R +mcbag.top^ +%ÿï08@Rmcd-sdk.playbuzz.com^ +ÿï08@R +mcljm.top^ +ÿï08@R mcmetrika.ru^ +ÿï08@R +mctqu.com^ +ÿï08@Rmd5s.ru^ +ÿï08@R +mdeih.com^ +ÿï08@Rmdlo324fsd.ru^ +ÿï08@R mdomata.ru^ +ÿï08@R +mdvkn.com^ +ÿï08@R +mdyhb.com^ +ÿï08@R meatthe.ru^ +ÿï08@R mebablo.com^ +ÿï08@R +mecash.ru^ +ÿï08@R med-rul.ru^ +ÿï08@Rmed22iwqeq.ru^ +ÿï08@R +medads.ru^ +ÿï08@R medhelp03.ru^ +ÿï08@R medhurst.biz^ +ÿï08@Rmedia-kod.net^ +ÿï08@Rmedia-rich.ru^ +!ÿï08@Rmedia-rotate.com^ +#ÿï08@Rmedia-rotation.net^ +"ÿï08@Rmedia-rotator.net^ +"ÿï08@Rmedia-storage.org^ + ÿï08@Rmedia.kahoxa.ru^ +ÿï08@Rmediaboom.site^ +ÿï08@Rmediabrama.com^ +ÿï08@R mediacot.com^ +ÿï08@R mediadar.ru^ +#ÿï08@Rmediadirectory.net^ +ÿï08@Rmediaiguana.ru^ + ÿï08@Rmediainform.net^ +ÿï08@R mediaip.ru^ +ÿï08@R mediakadr.ru^… +"ÿï08@Rmedialand.ru/code? +ÿï08@Rmediamars.biz^ +ÿï08@Rmedianaft.com^ +ÿï08@R medianaft.ru^ +ÿï08@Rmediapays.info^ +ÿï08@Rmediapoint.biz^ +"ÿï08@Rmediarich-code.ru^ +ÿï08@R mediarich.cc^ +ÿï08@R mediarich.ru^ +ÿï08@R mediarich.us^ +ÿï08@R mediarich.ws^ +!ÿï08@Rmediarichcode.ru^ +!ÿï08@Rmediarotator.net^ + ÿï08@Rmediarotator.ru^ + ÿï08@Rmediaskyline.ru^ +ÿï08@Rmediateas.com^ + ÿï08@Rmediateaser.biz^ +ÿï08@Rmediatoday.ru^ + ÿï08@Rmediaunder.info^ +ÿï08@Rmediaunder.org^ +ÿï08@Rmediaunder.us^ +ÿï08@Rmediawayss.com^ +"ÿï08@Rmedicinehistor.ru^ +"ÿï08@Rmedicineteaser.ru^ +!ÿï08@Rmedicinetizer.ru^ +ÿï08@R medigaly.com^ +ÿï08@R mednowpro.ru^ +ÿï08@R mednowslo.ru^ +ÿï08@R medpiar.ru^ +ÿï08@Rmedprelend.ru^ +ÿï08@R medri.ru^ +ÿï08@Rmedshowtiz.ru^ +ÿï08@R medstamp.ru^ +ÿï08@R medtiz.com^ + ÿï08@Rmedzdravinfo.ru^ +ÿï08@R +meealt.ru^ +ÿï08@R meelba.com^ +ÿï08@R meemdo.net^ +ÿï08@R meemobi.ru^ +ÿï08@Rmeet-buddy.com^ +(ÿï08@Rmeetandfuckgames-rus.ru^ +ÿï08@R mega-bc.info^ +ÿï08@Rmega-leech.net^ +ÿï08@Rmega-polza.ru^ +!ÿï08@Rmegabestnews.net^ +ÿï08@Rmegactds6.net^ +%ÿï08@Rmegaindex.ru*/banner/ +ÿï08@R megainf.ru^ +ÿï08@R megaopen.ru^ +ÿï08@R megartb.com^ + ÿï08@Rmegaserial77.ru^ +ÿï08@R megasliv.com^ +ÿï08@Rmegatizer.com^ +ÿï08@R megatizer.ru^ +ÿï08@R megatraf.biz^ +ÿï08@R mekadr.com^ +ÿï08@R melban7.top^ +!ÿï08@Rmelodramo-adv.ru^ +ÿï08@R melodramo.ru^ + ÿï08@Rmelotiratum.com^ +ÿï08@R mementes.com^ +ÿï08@R memtkh.com^ +ÿï08@R +menato.ru^ +ÿï08@R +mendir.ru^î +ÿï08@R menuobliv.ru^ +ÿï08@R +menuse.ru^ +ÿï08@R +meofur.ru^ +ÿï08@R meow-x.com^ +ÿï08@R meowfix.ru^ +ÿï08@Rmepirtedic.com^ +ÿï08@R +meqxh.com^ + ÿï08@Rmercurybest.com^ +ÿï08@Rmerdihatus.com^ + ÿï08@Rmerkel-loves.me^ +ÿï08@R +meryga.ru^ +ÿï08@R meryyyn.ru^ +ÿï08@Rmeseal.bget.ru^ +ÿï08@R +mesopo.ru^ +!ÿï08@Rmessage-site.net^ +ÿï08@Rmessiupal.com^ +ÿï08@Rmestmaster.ru^ + ÿï08@Rmetafakufovu.ru^ +ÿï08@Rmetaliners.ru^ +ÿï08@R meykato.ru^ +ÿï08@R meyonet.ru^ +ÿï08@R mezima.com^ +ÿï08@R mfatallp.com^ +5ÿï08@R%mfmfsfsfifmsmmssssfsffmmifsfi.online^ +ÿï08@Rmforgood.life^ +ÿï08@R +mgid.info^ +ÿï08@R mgogo.ru^ +ÿï08@Rmgtz.ru^ +ÿï08@R mhggzg.com^ +ÿï08@R mhjcpn.com^ +ÿï08@R +mhjsr.com^ +ÿï08@R mhkx4.ru^ +ÿï08@R +mhzaj.com^ +ÿï08@Rmi5h2zku5s.com^ +ÿï08@R mibknb.com^ +ÿï08@R mibmcbm.com^ +ÿï08@R microads.ru^ +ÿï08@Rmicurochka.com^ +ÿï08@Rmicylvoubx.biz^ +ÿï08@R midlemee.ru^ +ÿï08@R midtuq.com^ +ÿï08@R migineg.com^ +ÿï08@R +mikas.win^ +ÿï08@R mikellli.com^ +ÿï08@R mikla.site^ +ÿï08@Rmilemgats.com^ +ÿï08@Rmilliardytv.ru^ +ÿï08@Rmimi-lady18.ru^ +"ÿï08@Rminemytraffic.com^ +8ÿï08@R(miner.pr0gramm.com/cryptonight-worker.js +#ÿï08@Rminer.pr0gramm.com^ +"€ 08@Rminer.pr0gramm.com^ +!ÿï08@Rminescripts.info^ +ÿï08@R minidoc.ru^ +ÿï08@Rminimilitya.ru^ +!ÿï08@Rminioncarl.click^ + ÿï08@Rminitds-12.info^ + ÿï08@Rminitds-14.info^ + ÿï08@Rminitds-21.info^ +ÿï08@R +minso1.ru^ +ÿï08@R miokoo.com^ +ÿï08@R +mipwm.com^ +ÿï08@Rmirotools.net^ +ÿï08@Rmirskidok.net^� +ÿï08@Rmirtrailer.ru^ +!ÿï08@Rmithdilinonel.ru^ +ÿï08@Rmivefanulo.com^ +ÿï08@R mixcdnpr.com^ +ÿï08@Rmixmarket.biz^ +ÿï08@R mixshnuk.ru^ +'ÿï08@Rmixtraff.silvercdn.com^ +ÿï08@R miyavlus.com^ +ÿï08@R mjxukx.com^ +ÿï08@R mkavkaz.ru^ +"ÿï08@Rmkmyvy8bcfzjlr.ru^ +ÿï08@Rmkvaviod.info^ +ÿï08@R mlivaka.ru^ +ÿï08@R +mmcge.com^ + ÿï08@Rmmoney.services^ +ÿï08@R +mn-tz.ltd^ +ÿï08@R mnayto.com^ + ÿï08@Rmnogobabok.info^ +ÿï08@R mnogodiva.ru^ +ÿï08@Rmo-space.space^ +ÿï08@R mo.spaces.ru^ +ÿï08@R mob2web.com^ +ÿï08@Rmobapeople.com^ +ÿï08@R mobbober.com^ +ÿï08@Rmobflow21.com^ +ÿï08@Rmobi-offers.in^ +*ÿï* + mobtop.ru08@R mobiads.ru^ +ÿï08@R mobidump.com^ +#ÿï08@Rmobiile-service.ru^ +ÿï08@R mobikont.com^ +!ÿï08@Rmobile-click.biz^ + ÿï08@Rmobilebanner.ru^ +$ÿï08@Rmobiledirectors.com^ +ÿï08@R mobiloba.com^ +ÿï08@R mobiloza.com^ +ÿï08@Rmobioffers.ru^ +ÿï08@Rmobirollcom.ru^ +ÿï08@Rmobirollru.com^ +ÿï08@Rmobisway.info^ +ÿï08@R mobitds.ru^ +ÿï08@Rmobnumbers.com^ +ÿï08@R mobocut.com^ +"ÿï08@Rmobpartnerka02.ru^ +ÿï08@R mobraner.com^ +ÿï08@R mobuli.info^ +ÿï08@R mobyrol.com^ +ÿï08@R mocdn.info^ +ÿï08@Rmodelatos.com^ +ÿï08@Rmodisotay.com^ +ÿï08@R modverka.ru^ +ÿï08@R +moe.video^ +ÿï08@R moevideo.biz^ +ÿï08@R mogolico.com^ +ÿï08@R moipep.com^ +'ÿï08@Rmoist-thunderstorm.com^ +ÿï08@R mokerty.com^ +#ÿï08@Rmolefefiseranis.ru^ +ÿï08@R molesi.info^ +ÿï08@Rmolihetas.com^ +ÿï08@R molyk.ru^ +ÿï08@Rmonbonsai.info^ +ÿï08@R moneytrap.ru^ +"ÿï08@Rmonox.org/getcode. +"ÿï08@Rmonstarhistory.ru^¯ +ÿï08@R moonhappy.ru^ +ÿï08@R +morar.biz^ +ÿï08@R more152.net^ +ÿï08@R more427.net^ +ÿï08@R moreget.net^ +ÿï08@Rmorenews1.net^ +ÿï08@Rmorenews2.net^ +ÿï08@Rmorenews3.net^ +ÿï08@Rmorenews4.net^ + ÿï08@Rmorissette.link^ +ÿï08@R morksin.com^ +ÿï08@R mortalo.com^ +ÿï08@Rmosciski.link^ +ÿï08@Rmotazeever.com^ +ÿï08@Rmoundere.info^ +ÿï08@R mountrs.com^ +ÿï08@R movdec.com^ +ÿï08@Rmovemken.space^ +ÿï08@R moviead.ru^ +ÿï08@Rmoviefilms.ru^ +ÿï08@Rmow2rye.agency^ +!ÿï08@Rmowronsparhis.ru^ +ÿï08@Rmoytorrent.ru^ +ÿï08@R +mozgup.ru^ +ÿï08@R +mp-a.info^ +ÿï08@R +mp-b.info^ +ÿï08@R +mp-c.info^ +ÿï08@Rmp3dance.live^ +ÿï08@R mp3detka.com^ +ÿï08@R mp3lofts.com^ + ÿï08@Rmp3stalkers.com^ +ÿï08@R mpay1.info^ +ÿï08@R mpay3.info^ +ÿï08@R mpcrow.org^ +ÿï08@R mpmppo.com^ +ÿï08@R mpraven.org^ +ÿï08@R +mpwxj.com^ +ÿï08@R mqems.us^ +ÿï08@R +mqpte.top^ +ÿï08@R mqqrud.com^ +"ÿï08@Rmquvqdhzgfyjl.com^ +ÿï08@Rmqwcuesny6.ru^ +ÿï08@R mradx.ru^ +ÿï08@R mrakosy.ru^ + ÿï08@Rmrgreekroad.com^ +ÿï08@R mromalt.ru^ +ÿï08@Rmrot0n5vwb.ru^ +ÿï08@R mrrvmp.com^ +ÿï08@Rmrs-twister.ru^ +ÿï08@R mrtok.ru^ +ÿï08@Rmrvwjekfpl.ru^ +!ÿï08@Rmscictkarueuw.ru^ +ÿï08@R mscimg.com^ +ÿï08@R msgby.ru^ +ÿï08@R mshues.com^ +ÿï08@Rmsk-realtor.ru^ +ÿï08@Rmsrv.su^ +ÿï08@R msstance.icu^ +ÿï08@R mstcs.info^ +ÿï08@R mstngh.com^ +ÿï08@Rmsyftmtgjf.biz^ +ÿï08@R +mt-data.ru +*ÿï* + +mt-data.ru08@R +mtdata1.ru +!ÿï08@Rmtdatahaba.rocks^Í +ÿï08@R mtrcss.com^ +ÿï08@R mtwbedsl.biz^ +ÿï08@R mubra.ru^ +ÿï08@Rmuchhetont.ru^ +ÿï08@Rmucizewus.com^ +ÿï08@R mukipol.com^ +ÿï08@R multibux.org^ +'ÿï08@Rmulticolored-carry.com^ +ÿï08@R multirek.ru^ +ÿï08@R munderal.com^ +ÿï08@R muposa.com^ +ÿï08@R +murnec.ru^ +ÿï08@R murqyi.com^ +ÿï08@Rmusic-zone.ru^ +'ÿï08@Rmusicmaargarit63.uk.to^ +"ÿï08@Rmusticizeded.info^ +ÿï08@R mutrik.com^ +ÿï08@R muttr.ru^ +$ÿï08@Rmutualvehemence.com^ + ÿï08@Rmuz-loader.site^ +ÿï08@R +muzile.ru^ +ÿï08@R muzokit.ru^ +ÿï08@R muzomuz.ru^ +ÿï08@R muzotur.info^ +ÿï08@R muzrutu.ru^ +ÿï08@Rmv6sajryr.net^ +ÿï08@R mvozne.info^ +ÿï08@R mvuhy.space^ +ÿï08@R +mwcvu.com^ +ÿï08@R mwtraff.mobi^ +ÿï08@R mwtrf.mobi^ +ÿï08@R +mxccs.com^ +ÿï08@R mxcount.com^ +ÿï08@Rmxgetdata.com^ +ÿï08@R mxgwyd.com^ +ÿï08@R mxshuh.com^ +ÿï08@R mxttrf.com^ +ÿï08@R +mxxpa.top^ +ÿï08@R mxzijg.com^ +ÿï08@R +my-img.ru^ +ÿï08@Rmy-tiz.online^ +ÿï08@R myads.ru^ +ÿï08@Rmyander.do.am^ +ÿï08@R myannet.ru^ +!ÿï08@Rmyarusel.gpor.ru^ + ÿï08@Rmybasilsoup.com^ +ÿï08@R +mybce.top^ +"ÿï08@Rmyborschtsoup.com^ +ÿï08@R mycdn.info^ +!ÿï08@Rmycheckergeo.com^ +ÿï08@R myconst.net^ +ÿï08@R mycpacash.ru^ +ÿï08@R mycpm.ru^ +"ÿï08@Rmydomainab*.space^ +ÿï08@R myextstat.ru^ +ÿï08@Rmyfishsoup.com^ + ÿï08@Rmyfreegamez.com^ +$ÿï08@Rmyfreetopcu1.online^ +ÿï08@R myintapi.com^ +ÿï08@R mykaren.ru^ +(ÿï08@Rmyloveadblock.ucoz.club^ +ÿï08@R mynagor.com^ +ÿï08@R mynysy.com^ + ÿï08@Rmyonionsoup.com^« +#ÿï08@Rmypagestats.online^ +/ÿï08@Rmypictures-kievinformator.info^ +.ÿï08@Rmypictures-onlinemaxpark.info^ +/ÿï08@Rmypictures-onlinesegodnya.info^ +!ÿï08@Rmypromooffer.com^ +ÿï08@R myquery.ru^ +ÿï08@R myshops.biz^ +ÿï08@R myskybe.ru^ +ÿï08@R mytds.ga^ +ÿï08@R myteasers.ru^ +ÿï08@R mytizer.com^ +ÿï08@R mytochka.ru^ +!ÿï08@Rmytomatosoup.com^ +ÿï08@R mytraff.net^ + ÿï08@Rmyvzuc8cum.site^ +ÿï08@R mywhite.ru^ +ÿï08@R mywifenok.ru^ +ÿï08@R mywinspin.ru^ +ÿï08@R mzlpro.com^ +ÿï08@R n04m9b14.pro^ + ÿï08@Rn1307adserv.xyz^ +ÿï08@R n1gopush.com^ + ÿï08@Rn1vzzp6c4ycn.ru^ +ÿï08@Rn278adserv.com^ +ÿï08@Rn282adserv.com^ +ÿï08@Rn283adserv.com^ +ÿï08@Rn284adserv.com^ +ÿï08@Rn2ws7kzn.info^ +ÿï08@Rn3owhe6qa4.com^ +)ÿï08@Rn5fk8moaj29ivsbn6a0n.com^ +ÿï08@R n7pusher.com^ +ÿï08@R na-zdor2.ru^ +ÿï08@Rna0z0thlap.com^ +ÿï08@R nacdn.info^ +ÿï08@Rnadajotum.com^ +'ÿï08@Rnaiton.ru^*/lookbanner/ +"ÿï08@Rnalabutenahah.com^ +ÿï08@R nalivaj.ru^ +$ÿï08@Rnamefeedever.online^ +ÿï08@R namezones.ru^ +ÿï08@R namogemi.ru^ +ÿï08@Rnamokuris.com^ +ÿï08@R naos.ink^ +ÿï08@R naplene.ru^ +ÿï08@R naruhap.pro^ +ÿï08@R nasdfg.com^ +ÿï08@R nashindex.ru^ +"ÿï08@Rnasledstvo.int.ru^ +ÿï08@Rnasrispit.com^ +ÿï08@Rnastroyka.club^ +ÿï08@Rnastroyka.site^ +ÿï08@Rnathetsof.com^ +ÿï08@Rnative-cdn.com^ +!ÿï08@Rnative-track.com^ +ÿï08@Rnativebro.com^ +ÿï08@Rnativerent.ru^ +ÿï08@Rnativevideo.ru^ +ÿï08@Rnav-links.com^ +ÿï08@R navdmp.com^ +ÿï08@R navlili.ru^ + ÿï08@Rnaxerposlan.com^ +ÿï08@R +nb.msk.ru^ +ÿï08@R nbolame.ru^ +ÿï08@R +ncbqi.com^† +ÿï08@R ncnew.space^ +ÿï08@R ncsnew.space^ +ÿï08@R +ncuoz.com^ +!ÿï08@Rnd01erxppvee.top^ +!ÿï08@Rnd05esxpnrfe.pro^ +!ÿï08@Rnd05qutfnrfv.top^ +!ÿï08@Rnd05uutrne.space^ + ÿï08@Rnd09etxloe.site^ + ÿï08@Rnddmcconmqsy.ru^ +ÿï08@R +ndyzz.com^ +ÿï08@R ne20.biz^ +ÿï08@R neblvb.com^ +#ÿï08@Rnebulajzer-shop.ru^ +ÿï08@R nectini.ru^ +#ÿï08@Rnedorogo-vkusno.ru^ +ÿï08@R nedrofu.ru^ +!ÿï08@Rneedmorecola.com^ +#ÿï08@Rnegative-speed.pro^ +ÿï08@R nehmien.com^ +!ÿï08@Rnek1urtfoveu.pro^ +ÿï08@R nelittte.com^ +ÿï08@Rneolofting.ru^ +ÿï08@R neomion.com^ +ÿï08@R neotizer.com^ +ÿï08@R nepalon.com^ +ÿï08@Rnephritish.com^ + ÿï08@Rneponaroshku.ru^ +ÿï08@R +nepozn.ru^ +ÿï08@R neprepa.ru^ +ÿï08@R +neqky.com^ +ÿï08@R +neroom.ru^ +ÿï08@Rnerukopilut.ru^ +ÿï08@R nesnews.pro^ +ÿï08@R neso.pro^ +ÿï08@R nest.msk.ru^ +ÿï08@R nest.net.ru^ +ÿï08@R nest.ru.net^ +ÿï08@R nest.spb.su^ +ÿï08@R netcrys.com^ +ÿï08@Rnetmark.online^ +ÿï08@Rnetrotator.net^ +ÿï08@R netsled.net^ +ÿï08@Rnetwork-t.net^ +$ÿï08@Rnetworkandfaces.com^ +!ÿï08@Rneu1eqxpnrf.info^ +ÿï08@Rneu1quxpp.shop^ +ÿï08@R neu5qwt0.pro^ +ÿï08@R neu5uwt.info^ +'ÿï08@Rnevernevergiveyouup.ru^ +&ÿï* +hot.game08@Rnew4.me^ +ÿï08@R newadplus.ru^ +ÿï08@R newales.ru^ +08@R newanons.ru^ +ÿï08@Rnewisnews.info^ +ÿï08@Rnewlixica.com^ +ÿï08@Rnewlostrek.ru^ +ÿï08@R newmedia.az^ + ÿï08@Rnewmonetrate.ru^ +&ÿï08@Rnewrotatormarch23.bid^ +ÿï08@R newrrb.bid^ +"ÿï08@Rnews-announce.org^ +ÿï08@Rnews-code.com^ +ÿï08@Rnews-horonu.cc^ + ÿï08@Rnews-network.ru^ë +ÿï08@R news-obl.top^ +ÿï08@Rnews-super.com^ +ÿï08@R news24-24.ru^ +ÿï08@R news2you.ru^ +ÿï08@R newsanons.ru^ + ÿï08@Rnewscode.online^ +ÿï08@Rnewsfabric.ru^ +ÿï08@R newsgate.biz^ +ÿï08@Rnewsgrabber.me^ +ÿï08@Rnewshowto.info^ +ÿï08@R newskanal.ru^ +&ÿï08@Rnewsmarket.pixarea.ru^ +ÿï08@R newsmovie.ru^ +ÿï08@Rnewsnetwork.ru^ +!ÿï08@Rnewsofworld.club^ +!ÿï08@Rnewsonlynews.com^ + ÿï08@Rnewsportal1.com^ +ÿï08@Rnewsportal2.ru^ +ÿï08@Rnewsportal3.ru^ +ÿï08@Rnewsportal4.ru^ +ÿï08@Rnewsportal5.ru^ +ÿï08@Rnewsportal6.ru^ +ÿï08@Rnewsportal7.ru^ +ÿï08@Rnewsportal8.ru^ +ÿï08@Rnewsportal9.ru^ +#ÿï08@Rnewsportalssl1.top^ +"ÿï08@Rnewsrubanners.com^ +ÿï08@Rnewsteaser.ru^ +!ÿï08@Rnewsvidnews.info^ + ÿï08@Rnewtestprofi.ru^ +ÿï08@R newtizz.net^ +ÿï08@R +newup.bid^ +ÿï08@R nextbdom.ru^ +"ÿï08@Rnextclearnews.com^ +!ÿï08@Rnextclick.com.ru^ +ÿï08@R neyron.com^ +ÿï08@R neytibo.ru^ +ÿï08@R +nffsg.com^ + ÿï08@Rnfk0tiuxep.site^ +ÿï08@R nfztms.com^ +ÿï08@R ngjzmt.com^ +ÿï08@R ngutegi.info^ + ÿï08@Rnhivb7sjnyn1.ru^ +ÿï08@R nhotewi.ru^ +ÿï08@R nhqqv.space^ +ÿï08@R nhqwt.space^ +ÿï08@R nickhel.com^ +ÿï08@R nideqoa.ru^ +ÿï08@R nidjxulb.ru^ +ÿï08@Rnighkclick.biz^ +ÿï08@Rnigivarium.com^ +ÿï08@R nigvbyd.net^ +ÿï08@R nihewfi.net^ +ÿï08@R nikagg.com^ +ÿï08@R nimigal.ru^ +ÿï08@R ninavyg.ru^ +ÿï08@R ningnohed.ru^ +ÿï08@R nipicaa.ru^ +ÿï08@R nitsano.ru^ +ÿï08@R niuegjj.info^ +ÿï08@R nizliro.ru^ +ÿï08@R njnawm.com^ +ÿï08@R njsjpb.com^ +ÿï08@R nklgfgs.info^Å +ÿï08@R nkstkp.com^ +ÿï08@Rnm05qsxpn.tech^ +ÿï08@R nme5u.shop^ +!ÿï08@Rnme9ettforek.pro^ +!ÿï08@Rnmk5qqtbnr.space^ +!ÿï08@Rnmk5qrtrorfk.top^ +!ÿï08@Rnmu5qrtfprf.info^ +ÿï08@R +nmyby.com^ +!ÿï08@Rnnavigation.info^ + ÿï08@Rnne1uuxpna.site^ +!ÿï08@Rnne1uwtbnem.info^ +#ÿï08@Rnne9ertfore.online^ + ÿï08@Rnnltp07nnq7e.ru^ +ÿï08@R nntjqn.com^ +ÿï08@Rnnu1eqxln.tech^ +ÿï08@R nnu1ett0.top^ +ÿï08@R +nnvkh.com^ +ÿï08@R noblok.com^ +%ÿï08@Rnode.market-place.su^ +ÿï08@R nogee.ru^ +ÿï08@R noglaba.ru^ +ÿï08@Rnogravity.fun^ +ÿï08@Rnoletdint.net^ +ÿï08@R nolix.ru^ +ÿï08@R +nomkb.com^ +"ÿï08@Rnomoreproblems.me^ +ÿï08@R nonad.ru^ +ÿï08@R noncies.win^ +ÿï08@Rnonniforma.bid^ +ÿï08@R nonoqcm.net^ +ÿï08@R nonunce.top^ +ÿï08@R +noptes.ru^ +ÿï08@Rnorinning.com^ +ÿï08@R nostushi.ru^ +ÿï08@Rnot-only.info^ +!ÿï08@Rnoticetoday.site^ +ÿï08@R +noty.info^ +ÿï08@R novbrom.com^ +ÿï08@R novfox2.com^ +"ÿï08@Rnovinkifilmov.com^ +ÿï08@R novinkiki.ru^ +"ÿï08@Rnovosti-online.ga^ +ÿï08@R novosti10.ru^ +ÿï08@R novosti3.ru^ +!ÿï08@Rnovosticenter.ru^ +&ÿï08@Rnovostidlyavas.ru.com^ +ÿï08@R novostrus.ru^ +ÿï08@R novwolf.com^ +ÿï08@R now09.ru^ +ÿï08@R nowda.info^ +ÿï08@R +nozago.ru^ +ÿï08@R +npbnj.com^ +ÿï08@R +nplxa.com^ +ÿï08@R npykocy.ru^ +ÿï08@R nqizef.com^ +ÿï08@R nqohup.com^ +ÿï08@R +nqvlw.com^ +ÿï08@R +nrged.com^ +ÿï08@R nrjprice.com^ +ÿï08@R nrqqjb.com^ +ÿï08@R +nrzcj.top^ +ÿï08@R nsddniu.pro^ +ÿï08@R nshes.ru^ +ÿï08@Rnsn-azert.xyz^‹ +ÿï08@R nsrealbig.ru^ +ÿï08@R nsx3g.ru^ +ÿï08@Rntfhglciig.bid^ +ÿï08@R nuigyin.net^ +ÿï08@R num-link.ru^ +ÿï08@R numberia.com^ +ÿï08@R numking.com^ +!ÿï08@Rnushegvchamet.ml^ +ÿï08@R +nuslc.top^ +ÿï08@R nutcpa.com^ +ÿï08@R nutxxi.com^ +ÿï08@R +nvjqm.com^ +ÿï08@R +nvsey.com^ +ÿï08@Rnwhoxwpuj6.com^ +ÿï08@R +nwmum.com^ +ÿï08@R nxcmlk.com^ +ÿï08@R +nxstx.top^ +ÿï08@R nyalisiy.ru^ +ÿï08@R nybvs.club^ +ÿï08@R +nyrevi.ru^ +ÿï08@R +nysani.ru^ +ÿï08@R +nyyed.com^ +ÿï08@R nzbugd.com^ +ÿï08@Rnzt-news.club^ +ÿï08@R +nztrt.top^ +ÿï08@Ro0nzlh5ew4.ru^ +ÿï08@Ro1qry0qq83.com^ +ÿï08@Ro6mmm2q054.ru^ +ÿï08@R oaaty.space^ +ÿï08@R oaovcb.com^ +ÿï08@R ob-livki.com^ +ÿï08@Rob-payment.ru^ +ÿï08@R obedkormi.ru^ + ÿï08@Roberbrunner.biz^ +ÿï08@R obhodsb.com^ +"ÿï08@Robinstrumentax.ru^ +ÿï08@R obitel.org^ +ÿï08@R obkatra.ru^ +ÿï08@R oblivdom.ru^ +ÿï08@R oblivinfo.ru^ +!ÿï08@Robliviusrach.com^ +ÿï08@R oblivki.biz^ +ÿï08@R obltiz.com^ +ÿï08@R oblvk.ru^ +ÿï08@R obmlt.ru^ +ÿï08@R +obnale.ru^ +ÿï08@R obnamed.ru^ +ÿï08@R obraz-dam.ru^ +ÿï08@R obsespa.ru^ +ÿï08@R obsudam.ru^ +ÿï08@R obuynits.ru^ +ÿï08@R ocatdog.live^ +ÿï08@R ochanki.ru^ +ÿï08@R +ochze.com^ +ÿï08@R octclck.xyz^ +ÿï08@R +octo25.me^ +ÿï08@R octobird.com^ +ÿï08@Roctoclick.net^ +ÿï08@Roctomarket.com^ +ÿï08@R octonew.me^ +ÿï08@Roctonewjs.com^ +ÿï08@Roctopus16.net^ +ÿï08@R octorte.ru^ +!ÿï08@Roctotracking.com^ÿ +ÿï08@R octozoon.org^ +ÿï08@R ocxtfq.com^ +ÿï08@R oczkgx.com^ +ÿï08@R od3ai.ru^ +ÿï08@R odcedes.ru^ +ÿï08@R oderyuk.info^ +ÿï08@Rodf-news5.club^ +ÿï08@Rodfp2bb3.space^ +ÿï08@R odinkod.ru^ +ÿï08@R odnapus.ru^ +ÿï08@R odomal.info^ +ÿï08@R odonozh.ru^ +ÿï08@R odtoxup.ru^ +!ÿï08@Rodtpmadfx5.space^ +ÿï08@R +oeode.com^ +"ÿï08@Roeopl2y96q.ru.com^ +ÿï08@R +oezkf.com^ +ÿï08@R +ofbez.org^ +ÿï08@R ofbjgf.com^ +ÿï08@R +ofenop.ru^ +"ÿï08@Roffer.megabait.ru^ +ÿï08@Roffmaxbond.com^ +ÿï08@R offsbst.ru^ +ÿï08@R +ofjiq.top^ +ÿï08@R oflopol.info^ +ÿï08@R oflroc.com^ + ÿï08@Roftjofortred.ru^ +ÿï08@R og0go.ru^ +ÿï08@R ogclick.com^ +ÿï08@R ogeri.ru^ +ÿï08@R +oggda.com^ +ÿï08@R ogocvet.ru^ +ÿï08@R +ogoyj.com^ +ÿï08@R ogratsan.ru^ +ÿï08@R +ogrid.org^ +ÿï08@Rogtz5yn2u1.ru^ +ÿï08@R ohgskf.com^ +ÿï08@R ohmy.bid^ +ÿï08@R ohtaxof.ru^ +ÿï08@R ohwoman.ru^ +ÿï08@R oicmsf.com^ +ÿï08@R oijkse.com^ +ÿï08@R oilefy.com^ +ÿï08@R oindaa.com^ +ÿï08@Roindsqww.site^ +!ÿï08@Roiokewfkjnvq.com^ +ÿï08@R oirplane.com^ +ÿï08@R +ojgti.top^ +ÿï08@R +ojnaho.ru^ +ÿï08@R +ojtep.com^ +ÿï08@R +okcbb.top^ +ÿï08@R +okezs.com^ + ÿï08@Rokfuidnfss.mobi^ +ÿï08@R +okiol.pro^ +ÿï08@R okjsdkj.ru^ +ÿï08@R okk3ssd.com^ +ÿï08@R okuneva.biz^ +"ÿï08@Rold-are-they.info^ +ÿï08@R oldrrb.bid^ +ÿï08@Rolgin-svet.ru^ +"ÿï08@Rolimpbanners.info^ +ÿï08@R olivka.biz^ +ÿï08@R olizyr.com^ +ÿï08@R olmiweb.com^Ÿ +ÿï08@R ologyro.ru^ +ÿï08@R olomara.ru^ +ÿï08@R oltonve.ru^ +ÿï08@R olvdxl.com^ +ÿï08@R +omarti.ru^ +ÿï08@R omhnjv4u.ru^ +ÿï08@R +omine.org^ +ÿï08@R +omkbk.com^ +ÿï08@R omnicpa.ru^ +ÿï08@R +omoby.net^ +ÿï08@R omwater.ru^ +ÿï08@R +onclck.ru^ +ÿï08@Rone-bmedia.ru^ +ÿï08@R one-klick.ru^ +$ÿï08@Rone-media-advert.ru^ +ÿï08@R one1lady.com^ +ÿï08@R onedrive.su^ +ÿï08@R onelink.me^ +ÿï08@R onemontay.ru^ +ÿï08@R +onenet.ru^ +ÿï08@R onenima.com^ + ÿï08@Roneretarget.com^ + ÿï08@Ronerighbutle.ru^ +ÿï08@R onesebab.pro^ +ÿï08@R oneund.com^ +ÿï08@R +oneund.ru^ +ÿï08@R +onfeed.ru^ + ÿï08@Ronline-multi.ru^ + ÿï08@Ronline-path.com^ +!ÿï08@Ronlineredirr.com^ +"ÿï08@Ronlinerotator.net^ +"ÿï08@Ronlinesupaads.com^ +ÿï08@Ronlyforyap.ru^ +ÿï08@R ontagru.ru^ +ÿï08@R +oogzc.top^ +ÿï08@R ooobss.info^ +ÿï08@R oopef43l.ru^ +ÿï08@R ooredrr.com^ +ÿï08@R oothoh5.top^ +ÿï08@R oownik.com^ +!ÿï08@Ropadgibnwigs.com^ +ÿï08@R opaleri.ru^ +ÿï08@R opapo.ru^ +"ÿï08@Ropcbcqdjfvzff.com^ +ÿï08@R opendone.net^ +ÿï08@R opendsp.ru^ +ÿï08@R openmace.net^ +!ÿï08@Ropenofficerus.ru^ +ÿï08@R openssp.ru^ +ÿï08@R opnbwg.com^ +ÿï08@R +oprara.ru^ +ÿï08@R opresat.ru^ +ÿï08@R +optawa.ru^ +ÿï08@Ropuxppwnnf.com^ +ÿï08@R opyavar.ru^ +ÿï08@R +oqhgy.com^ +ÿï08@R oqida.ru^ +ÿï08@R oqkuwkax.com^ +ÿï08@R oqwrba.com^ +ÿï08@R orbit.lun.ua^ +ÿï08@R oreporu.info^ +ÿï08@Roridasapap.com^ + ÿï08@Roriondigital.ru^ +ÿï08@R +orjzy.com^ó +ÿï08@Roromantity.com^ +ÿï08@Rortermodown.ru^ +ÿï08@R ortetse.ru^ +"ÿï08@Rorzcqez8x3n.space^ +ÿï08@R +os340.com^ +ÿï08@R osalats.ru^ +ÿï08@R osbal.ru^ +ÿï08@R +osfeco.ru^ +ÿï08@R +osnn.work^ +ÿï08@R ospolyush.ru^ +ÿï08@R +osqbk.com^ +ÿï08@R osrones.ru^ +ÿï08@R ost24.ru^ +ÿï08@R osteogood.ru^ +ÿï08@R osteolive.ru^ +ÿï08@R osveves.ru^ +ÿï08@R +osviwe.ru^ +ÿï08@R otbqdw.com^ +ÿï08@Rotclick-adv.ru^ +ÿï08@R otegika.ru^ +ÿï08@R otlipnu.ru^ +ÿï08@R otogkg.com^ +ÿï08@R +otoply.ru^ +ÿï08@R otrenver.ru^ +ÿï08@R otsarec.com^ +ÿï08@R +otuweb.ru^ + ÿï08@Rotvetbistros.ru^ +ÿï08@R otvetes.com^ +ÿï08@R +otyso.com^ +ÿï08@R ou2ie.ru^ +ÿï08@Rouo3ophlpm.ru^ +ÿï08@R oupox.club^ +ÿï08@R outwitch.com^ +ÿï08@R ouues.space^ +ÿï08@R ouvyil.com^ +ÿï08@R ovajaaw.pro^ +ÿï08@Rovap.in^ +!ÿï08@Roveration.review^ +$ÿï08@Roverridingnichts.in^ +ÿï08@R +ovotvi.ru^ +ÿï08@R ovustav.ru^ +ÿï08@R +ovyzd.gdn^ +ÿï08@R +oweer.com^ +ÿï08@R ownadne.ru^ +ÿï08@R owsezan.ru^ +ÿï08@R +owtori.ru^ +ÿï08@Roxdx7ahb.site^ +ÿï08@R oxlerco.info^ +ÿï08@Roxn.gerkon.eu^ +ÿï08@R oxredex.ru^ +ÿï08@R oxruse.info^ +ÿï08@R oxtavul.info^ +ÿï08@R +oxtkt.top^ +ÿï08@Roys234w0zq.com^ +ÿï08@Royy.ru^ +ÿï08@R +ozdau.top^ +ÿï08@R ozdpxc.com^ +ÿï08@R +ozhila.ru^ +ÿï08@R +ozjga.top^ +ÿï08@R +oznul.com^ +ÿï08@R ozombik.info^ +ÿï08@R ozpivat.ru^ +ÿï08@R +ozwvd.com^ +%ÿï08@Rp.igra-prestoloff.cx^¬ +%ÿï08@Rp0o9cl4ebarckwni.com^ +ÿï08@R p0snm6w9.pro^ +ÿï08@R p2m0001.com^ +ÿï08@R pabliri.ru^ +ÿï08@Rpabrashu.info^ +"ÿï08@Rpacificwebart.com^ +ÿï08@R pacode.org^ +ÿï08@R padfukkk.ru^ +ÿï08@R +pagac.biz^ +ÿï08@R pagefair.com^ +ÿï08@Rpajigkcel.work^ +ÿï08@R palandan.com^ +ÿï08@Rpalecount.com^ +ÿï08@R paleseyi.ru^ + ÿï08@Rpalestarius.com^ +ÿï08@R palkodrin.ru^ + ÿï08@Rpallsvility.pro^ +ÿï08@Rpampopholf.com^ +ÿï08@R pandre10.ru^ +ÿï08@Rpaningheck.ru^ + ÿï08@Rpanksnotdead.ru^ + ÿï08@Rpapatyrodum.com^ +ÿï08@R parabit.ru^ +ÿï08@Rparafiliya.ru^ +ÿï08@Rparamedjo.com^ +ÿï08@Rparametr01.ru^ +ÿï08@Rparandeya.com^ +ÿï08@R parents1.ru^ +ÿï08@R parhadat.com^ +%ÿï08@Rparkdomainreal*.site^ +!ÿï08@Rparkdomen.online^ +ÿï08@R parrylac.ru^ +"ÿï08@Rparthenophobia.me^ +ÿï08@R parthetwo.ru^ +$ÿï08@Rpartner-earning.com^ +Oÿï* +multfilms.online* + gidonline.fun08@Rpartnercoll.github.io^ + ÿï08@Rpartnerearn.net^ +ÿï08@Rpartnerna5.ru^ + ÿï08@Rpartners.ru.com^ +ÿï08@R parusdon.ru^ +ÿï08@Rparuseatno.ru^ + ÿï08@Rparviz.ehost.tj^ +ÿï08@R pasekerit.ru^ +ÿï08@R pastilon.com^ +!ÿï08@Rpastrentroom.com^ +ÿï08@R pautina.mobi^ +ÿï08@Rpayandpray.ru^ +ÿï08@Rpaybrides.org^ +ÿï08@R payeer.com^ +!ÿï08@Rpaygamesport.net^ + ÿï08@Rpaymonsters.biz^ +ÿï08@Rpazt.in^ +!ÿï08@Rpb-gfj-3de-ey.ru^ +!ÿï08@Rpb.plat.services^ +ÿï08@R pbedle.com^ +ÿï08@R pbmusf.com^ +ÿï08@R +pcable.ru^ +ÿï08@R pcads.ru^ +ÿï08@R +pctext.ru^ + ÿï08@Rpcx-qgh2-wit.ru^ +ÿï08@Rpdayyocpnvh.ru^ +ÿï08@R pdbnfjd.info^ +ÿï08@R pdhshss.pro^ +ÿï08@R pdjvsha.pro^ö +ÿï08@R +pdloo.com^ +ÿï08@R pdmayt.com^ +ÿï08@Rpdomainbig.ru^ + ÿï08@Rpe5avnvi81ed.ru^ +ÿï08@R pecfuk.com^ +ÿï08@Rpecukirom.com^ +ÿï08@R peettold.ru^ +#ÿï08@Rpelicanprogram.com^ +"ÿï08@Rpelicansource.com^ +ÿï08@R pentoch.com^ + ÿï08@Rpeoplemobile.ru^ +'ÿï08@Rperfectlinestarter.com^ +ÿï08@Rperfecttds.net^ +ÿï08@Rperfmelab.com^ +ÿï08@R peromut.com^ +ÿï08@R perrest.com^ +ÿï08@R persinhi.ru^ + ÿï08@Rpervoevtoroe.ru^ +ÿï08@R petsdata.ru^ +ÿï08@R peveshnu.com^ +ÿï08@R pfhasjs.pro^ +ÿï08@R +pftfk.com^ +ÿï08@R pfvhsja.pro^ +ÿï08@R pgold.info^ +ÿï08@R +pgold.pro^ +ÿï08@Rpgusgyzdfpj.ru^ +ÿï08@Rpheasantnt.com^ +ÿï08@R pheriss.com^ +ÿï08@R phibile.ru^ +ÿï08@R phinker.ru^ +!ÿï08@Rphobosdeimos.net^ +#ÿï08@Rphoenix-widget.com^ +ÿï08@R phsyqy.com^ +ÿï08@R phwten.com^ +ÿï08@R pic-foto.ru^ +ÿï08@R pichyefu.ru^ +ÿï08@R pick25.info^ + ÿï08@Rpicturehot.link^ +ÿï08@R pidarunki.ru^ +ÿï08@R +pidorg.ru^ +!ÿï08@Rpiedppienews.com^ +ÿï08@R pifvfovy.biz^ + ÿï08@Rpigiuqproxy.com^ +#ÿï08@Rpiiqrmvymwue.world^ +ÿï08@R pikachun.ru^ +ÿï08@R pikadu.info^ +ÿï08@R pikalop.com^ +$ÿï08@Rpillowinthewoods.ru^ +%ÿï08@Rpipki.r.worldssl.net^ +$ÿï08@Rpiranha.workers.dev^ +ÿï08@R piroji.com^ +ÿï08@R pirosim.ru^ +ÿï08@R pjgffds.info^ +ÿï08@R pjjoqc.com^ +ÿï08@Rpjkyxrd15e.ru^ +ÿï08@R pketred.com^ +ÿï08@R pkoqeg.com^ +"ÿï08@Rpkqeg5z3xffs.info^ + ÿï08@Rplaceithere.net^ +ÿï08@R placeport.ru^ +!ÿï08@Rplaneta-fresh.ru^ +"ÿï08@Rplaneta-online.tv^ +ÿï08@R planoti.info^ +ÿï08@R play-two.ru^ì +!ÿï08@Rplay4victory.net^ +ÿï08@R playframe.ru^ + ÿï08@Rplayjusting.com^ +%ÿï08@Rplayvulkanonline.net^ +ÿï08@R +pldrag.ru^ +"ÿï08@Rpleasedonotban.ru^ +ÿï08@R plomihy.com^ +ÿï08@Rploxogonet.ru^ +ÿï08@R plpromos.com^ +ÿï08@Rplsdontban.ru^ +"ÿï08@Rpluginsjquery.com^ +ÿï08@Rpluralismus.ru^ +!ÿï08@Rplus-2launch.biz^ +ÿï08@Rplusfind.info^ +!ÿï08@Rplusvkarmuvam.ru^ +!ÿï08@Rpmaffiliates.com^ +ÿï08@R pmddby.com^ +ÿï08@Rpmi1yarhxx.com^ +ÿï08@Rpmndbsjd.site^ +ÿï08@Rpmtdatarow.pro^ +ÿï08@Rpnewspages.com^ +ÿï08@R pnulice.ru^ +ÿï08@R poblemi.info^ +'ÿï08@Rpodrobnosti-online.com^ +ÿï08@R podruzke.ru^ +ÿï08@R pointclc.com^ +ÿï08@R pointrtb.com^ +ÿï08@R poketall.ru^ +ÿï08@R pokitom.com^ +ÿï08@R pokupkinz.ru^ +ÿï08@R pokutaf.com^ +ÿï08@R poldqo.com^ +ÿï08@R poli12.bid^ +ÿï08@R polimadv.com^ +ÿï08@R polirtb.com^ +ÿï08@R polisrtb.com^ +ÿï08@R polnut.com^ +ÿï08@R pomdol.com^ +ÿï08@R +pomgal.ru^ +ÿï08@Rpomolation.ru^ +ÿï08@R pompolu.info^ +ÿï08@R pomtiy.com^ +ÿï08@R ponmeby.com^ +ÿï08@R ponyvod.ru^ +ÿï08@R pool5.info^ +ÿï08@R poollast.com^ +ÿï08@R poolpool.biz^ +ÿï08@R pop-under.ru^ +ÿï08@Rpopcornews.me^ +ÿï08@R poptyto.ru^ +-ÿï08@Rpopunder-mladnet.medialand.ru +ÿï08@R popup.su^ +ÿï08@Rpopvalcom.com^ +ÿï08@R porhuk.com^ +!ÿï08@Rporno365ads.info^ +ÿï08@Rporno365go.com^ +ÿï08@R poroniko.com^ +ÿï08@Rportakamus.com^ +ÿï08@Rportech315.net^ +ÿï08@R potedly.co^ +ÿï08@R potined.com^ +ÿï08@R potovich.ru^ +ÿï08@Rpotyaglo.info^ +ÿï08@R poulop.com^” +ÿï08@R povsyulya.ru^ +ÿï08@R povtotse.ru^ +ÿï08@R povyspo.ru^ +ÿï08@Rpowercheff.com^ +(ÿï08@Rpoymiteetobespolezno.ru^ +ÿï08@R +poyva.com^ +ÿï08@R ppmcdv.com^ +ÿï08@R ppoi.org^ +ÿï08@R +ppvlj.com^ +"ÿï08@Rppvmvewssqer.mobi^ +ÿï08@R ppwaat.com^ +ÿï08@R ppytyk5t.ru^ +"ÿï08@Rpq6bdw4b2yw.space^ +ÿï08@R pqakcn.com^ +"ÿï08@Rpqrtd9hhtu9x.info^ +ÿï08@R +pqvsm.com^ +ÿï08@R +pr0fit.ru^ +ÿï08@R pr28.com^ +ÿï08@Rpracratre.club^ +!ÿï08@Rpracratre.online^ + ÿï08@Rpracratre.today^ +ÿï08@R prdlam.com^ ++ÿï08@Rprecision-machining-tw.com^ +ÿï08@Rprecratre.club^ +!ÿï08@Rprecratre.online^ + ÿï08@Rprecratre.today^ +ÿï08@R preldom.ru^ +ÿï08@Rpreligions.com^ +ÿï08@R prelinfo.ru^ +ÿï08@R prelmon.ru^ +ÿï08@R prelstar.ru^ +ÿï08@R prelzar.ru^ +ÿï08@Rpremclubs.com^ +ÿï08@Rpremiumapp.ru^ +ÿï08@Rpremixture.com^ +ÿï08@Rprerol.tut.by^ +ÿï08@Rpresssnews.biz^ +ÿï08@R prf29bk47.ru^ +ÿï08@Rprgm.b-cdn.net^ +ÿï08@R +prgmh.com^ +ÿï08@R priesty.com^ +!ÿï08@Rprime-hunage.com^ +!ÿï08@Rprime-hunter.com^ +"ÿï08@Rpriorityboxer.com^ +ÿï08@R prioz.space^ + ÿï08@Rprivatediet.pro^ +!ÿï08@Rprivatelands.biz^ +ÿï08@Rprivetadb4.ru^ +!ÿï08@Rprivetadblock.ru^ +ÿï08@Rprkpshpr.site^ +ÿï08@R prnhpe.pro^ +ÿï08@Rproalisa.space^ +ÿï08@R problgers.ru^ +ÿï08@Rproblogrus.ru^ +"ÿï08@Rprocesinacton.com^ +ÿï08@Rprocratre.club^ +!ÿï08@Rprocratre.online^ + ÿï08@Rprocratre.today^ +!ÿï08@Rprofiledbase.com^ + ÿï08@Rprofiprobest.ru^ + ÿï08@Rprogrammatic.ru^ +"ÿï08@Rprogrammatica.com^ +ÿï08@Rprojectpoi.com^ +ÿï08@R proligtb.com^ˆ +ÿï08@R prolinker.ru^ +"ÿï08@Rpromedia-click.ru^ +ÿï08@R +promit.ru^ + ÿï08@Rpromo-kovrov.ru^ +ÿï08@R promobit.pw^ +ÿï08@Rpromoblocks.ru^ +ÿï08@Rpromoboom.org^ + ÿï08@Rpromobuster.org^ +ÿï08@Rpromobyte.org^ + ÿï08@Rpromocenter.biz^ +ÿï08@R promocns.com^ +ÿï08@Rpromodmedia.ru^ + ÿï08@Rpromoengine.biz^ +ÿï08@Rpromoheads.com^ +ÿï08@R promojet.ru^ +ÿï08@R promonew.biz^ +ÿï08@Rpromostats.ru^ +ÿï08@Rpromoworld.pw^ +ÿï08@R pronews.me^ +ÿï08@R proofly.win^ + ÿï08@Rpropellera.info^ +ÿï08@Rproponga.ninja^ +#ÿï08@Rpropper-clean.info^ +ÿï08@R +propub.ru^ + ÿï08@Rproravenstvo.ru^ +!ÿï08@Rproravnovesie.ru^ +ÿï08@R prosmazke.ru^ +ÿï08@Rprosmotrov.net^ +ÿï08@R prostolos.ru^ +ÿï08@Rproteaser.com^ +ÿï08@Rprotkrutka.ru^ +ÿï08@Rprotrafv2.com^ +ÿï08@R protyazh.ru^ +'ÿï08@Rproxy4http.appspot.com^ +ÿï08@Rprozapas.dn.ua^ +"ÿï08@Rprp-solnechnyj.ru^ +ÿï08@Rprqcratre.club^ +!ÿï08@Rprqcratre.online^ + ÿï08@Rprqcratre.today^ +ÿï08@R +prqhn.com^ +ÿï08@Rprycratre.club^ +!ÿï08@Rprycratre.online^ + ÿï08@Rprycratre.today^ +ÿï08@Rprzcratre.club^ +!ÿï08@Rprzcratre.online^ + ÿï08@Rprzcratre.today^ +!ÿï08@Rpsa9e9co4t.space^ +ÿï08@R psd25.ru^ +ÿï08@R psjvjja.pro^ +ÿï08@R psma01.com.^ +ÿï08@R psma02.com.^ +ÿï08@R psma03.com.^ +ÿï08@R psmardr.com^ +ÿï08@R psnets.com^ +ÿï08@R psony.ru^ +ÿï08@Rpstatrbnew.bid^ +ÿï08@Rpt0zhwhc26.ru^ +ÿï08@Rptigjkkds.com^ +ÿï08@R ptlkt.ru^ +ÿï08@R ptredir.com^ +ÿï08@R pub2srv.com^ +#ÿï08@Rpublicitysmart.com^ + ÿï08@Rpuddingweek.com^ +ÿï08@R +puipui.ru^¥ + ÿï08@Rpukchpok.online^ +ÿï08@R purecash.ru^ +ÿï08@Rpurestairs.com^ +ÿï08@R +purige.ru^ +ÿï08@Rpush.exchange^ +ÿï08@R pushadv.biz^ +ÿï08@Rpushadvert.bid^ +ÿï08@Rpushadvert.fun^ +ÿï08@Rpushbasitop.ru^ +ÿï08@Rpushcodetop.ru^ +ÿï08@Rpushdealer.com^ +!ÿï08@Rpusherworker.com^ +ÿï08@Rpushprofit.ru^ +ÿï08@Rpushreal.media^ +ÿï08@R pushtosh.fun^ +ÿï08@Rpushworks.bid^ + ÿï08@Rpustgovorjat.ru^ +ÿï08@R puttyac.com^ +ÿï08@R puuzan.com^ +ÿï08@R +puwws.pro^ +ÿï08@R +puzcd.top^ +ÿï08@R +pvafh.com^ +ÿï08@R pvjlrfg.pro^ +ÿï08@R pvngnfe.pro^ +ÿï08@Rpwfb7w87ov.ru^ +ÿï08@R +pwieu.com^ +ÿï08@R pwkvdk.com^ +ÿï08@Rpwrlkyotm.com^ +ÿï08@R pwukvp.com^ +ÿï08@R pxksnymto.ru^ +ÿï08@Rpxpfnbe1t1.com^ +ÿï08@R pxxifc.com^ +ÿï08@R pyenara.ru^ +ÿï08@R +pyksf.com^ +ÿï08@R pypad.ru^ +ÿï08@R pyreme.info^ +ÿï08@Rpyrolawis.com^ +ÿï08@R +pzlzv.com^ +ÿï08@Rpzoifaum.info^ +ÿï08@R +pzyfh.top^ +ÿï08@Rq0mn5t187u.ru^ +ÿï08@Rq0yxfvuo32.ru^ +ÿï08@Rq2ee19i2xu.ru^ +ÿï08@Rq5e40b17ii.ru^ +ÿï08@Rq7361zs951.ru^ +ÿï08@Rq8bfdpoknn.ru^ +ÿï08@R +qaadv.com^ +ÿï08@Rqaik1opepc.ru^ +ÿï08@R qakdki.com^ +ÿï08@Rqakhpthc.info^ +ÿï08@R qanmw.space^ +ÿï08@R qasta.club^ +ÿï08@R qasubil.com^ +ÿï08@R qbann.ru^ +ÿï08@Rqbhyczr5hw.ru^ +ÿï08@R +qcjam.top^ +ÿï08@R qcroag.com^ +ÿï08@Rqcvdwtpnit.ru^ +ÿï08@Rqdb6gd3nth.ru^ +ÿï08@R qerdome.com^ +ÿï08@R +qergh.top^ +ÿï08@R +qerrex.ru^ +ÿï08@R qertu.ru^ +ÿï08@Rqerusgreyt.com^ä +ÿï08@R +qeyps.com^ +ÿï08@R qfhzki.com^ +ÿï08@R +qgdzy.top^ +ÿï08@R qgmwby.com^ +ÿï08@Rqgvcswdmgd.com^ +ÿï08@R qhdhtd.com^ +ÿï08@R qhdlssvk.pro^ +ÿï08@R qhfsbg.com^ +ÿï08@R +qhiip.com^ +ÿï08@R +qhvbq.com^ +ÿï08@R qigeea.com^ +ÿï08@R qiklsv.com^ +ÿï08@R +qirnz.com^ +ÿï08@R +qitxa.com^ +ÿï08@R qjrkum.com^ +ÿï08@R qkdtat.com^ +ÿï08@R +qkeyn.com^ +ÿï08@R +qkffv.com^ +ÿï08@R +qkrrvc.ru^ +ÿï08@Rqkurtnucn.com^ +ÿï08@Rqkyb8htwd9.ru^ +ÿï08@Rqkyspzfxnc.ru^ +ÿï08@R qlnomb.com^ +ÿï08@R qload.ru^ +ÿï08@R qmebelist.ru^ +ÿï08@R +qmsdxo.ru^ +ÿï08@R +qoabf.top^ +ÿï08@R +qocsb.com^ +ÿï08@R +qoheo.com^ +ÿï08@Rqooqleplay.ru^ +ÿï08@R qprskl.com^ +ÿï08@R qpxohp.com^ +ÿï08@Rqq86tbqodk.ru^ +ÿï08@R qqdress.ru^ +ÿï08@R +qqmeat.ru^ +ÿï08@R +qqmilk.ru^ +ÿï08@R qractv.com^ +ÿï08@R qrdeom.com^ +ÿï08@R qrrgv.space^ +ÿï08@R qrstes.com^ +ÿï08@R +qshare.ru^ +ÿï08@R qshmug.com^ +ÿï08@R qtarget.tech^ +ÿï08@R +qtymi.com^ + ÿï08@Rquantumpers.com^ +ÿï08@R quber.ru^ +ÿï08@R quqizo.com^ +ÿï08@R qurtol.com^ +ÿï08@Rqvol.ru^ +ÿï08@R qvsaga.com^ +ÿï08@R qvvoom.com^ +ÿï08@Rqwertypay.com^ +ÿï08@R +qwocz.com^ +ÿï08@R +qwshop.ru^ +$ÿï08@Rqyclshhsxykpype.top^ +ÿï08@Rqzoeltaw.info^ +ÿï08@Rr-publick.info^ +ÿï08@Rr.interakt.ru^ +ÿï08@R r0.mail.ru^ +ÿï08@R r0.mradx.net^ +ÿï08@R r01.website^ +ÿï08@R +r0tl.info^ +ÿï08@Rr0wa9z6t8t.ru^ +ÿï08@Rr16kff9ug2.com^× +ÿï08@Rr1bs94ko2v.ru^ +ÿï08@R +r1tl.info^ +ÿï08@Rr2gf0vo139.ru^ +ÿï08@Rr2j97oxqvr.ru^ +ÿï08@R r5jpkacq.ru^ +"ÿï08@Rr6112kfezy0.space^ +ÿï08@Rr9ljguu1k4.ru^ +ÿï08@R r9nj4.ru^ +ÿï08@R rabbitbit.ru^ +!ÿï08@Rrabbitstorage.ru^ +ÿï08@R radyln.com^ +ÿï08@R rafiana.info^ +ÿï08@Rrafmentrqwp.ru^ +ÿï08@Rragitupime.com^ + ÿï08@Rrain4cloud.gold^ +ÿï08@R rajniko.ru^ +ÿï08@R +rakoff.ru^ +ÿï08@R rakxjt4c.ru^ +ÿï08@R ralkipa.info^ +ÿï08@Rralnekind.com^ +ÿï08@Rramosetlex.ru^ +"ÿï08@Rramphysion.stream^ +ÿï08@R +rantez.ru^ +ÿï08@R +ras1.site^ +.ÿï08@Rrasionononemusmorkitpalace.ru^ +ÿï08@R ratioboom.ru^ +ÿï08@R ratyakhu.ru^ + ÿï08@Rravishstroke.in^ +"ÿï08@Rravnovesienews.ru^ +ÿï08@R raxzne.com^ +"ÿï08@Rrazvitie-dushi.ru^ +#ÿï08@Rrazvod-suprugov.ru^ +ÿï08@R rb-net.com^ +ÿï08@R rb.infox.sg^ +ÿï08@R rbaleno.info^ +ÿï08@R rbarore.ru^ +ÿï08@R rbdiqz.com^ +ÿï08@R rbfour.bid^ +ÿï08@R rbinfox.ru^ +ÿï08@R +rbmain.ru^ +!ÿï08@Rrbmdlvu5ygi.site^ +ÿï08@R rbmedia.pro^ +ÿï08@R rbone.link^ +ÿï08@R +rbp2.site^ +ÿï08@R rbreal.bid^ +ÿï08@R +rbrxg.com^ +,ÿï08@Rrbt-partner-web.interakt.ru^ +ÿï08@R +rbtds.net^ +ÿï08@R +rbzyi.com^ +ÿï08@R rc7pf.ru^ +ÿï08@R rcacase.ru^ +ÿï08@R rcdn.pro^ +ÿï08@R rcqzgq.com^ +ÿï08@R rcvgoods.com^ +!ÿï08@Rrd01eqxpnv.space^ +ÿï08@Rrd05qttbo.tech^ +!ÿï08@Rrd09ettvoemc.pro^ +ÿï08@R rdb1.online^ +ÿï08@R re-lead.tech^ +ÿï08@R reacten.com^ +ÿï08@R reactor.wiki^ +ÿï08@R readone.ru^ +ÿï08@Rready4win.com^ +ÿï08@Rready4win1.com^® +ÿï08@R real6traf.ru^ +ÿï08@R realadev.ru^ +"ÿï08@Rrealdomenclear.ru^ +#ÿï08@Rreallydistance.com^ +ÿï08@R realmon.ru^ +ÿï08@Rrealnetwrk.com^ +!ÿï08@Rrealpush.digital^ +!ÿï08@Rrealpush.network^ +ÿï08@R realtraf. +ÿï08@R realtraf3.ru^ +ÿï08@R realtraf9.ru^ +ÿï08@R reashr.com^ + ÿï08@Rrebevengwas.com^ +ÿï08@R rebletla.com^ +ÿï08@R reborko.com^ +#ÿï08@Rreceivedachest.com^ +%ÿï08@Rreckintersupwas.info^ +ÿï08@R reclame.io^ +(ÿï08@Rrecordsbluemountain.com^ +!ÿï08@Rrecreativ.com.ua^ +ÿï08@Rrecreativ.com^ +ÿï08@R recreativ.ru^ +ÿï08@R recrinsit.ru^ +ÿï08@R +recwy.com^ + ÿï08@Rredarianman.com^ +ÿï08@Rredatastore.ru^ +ÿï08@R +redavu.ru^ +ÿï08@R redclick.ru^ +ÿï08@R +redel.pro^ + ÿï08@Rredexchange.net^ +ÿï08@Rredfikedug.ru^ +ÿï08@R redichat.com^ +!ÿï08@Rredirrtosite.com^ +ÿï08@R redllama.ru^ +!ÿï08@Rredmarket.online^ +ÿï08@R redmyco.com^ +ÿï08@R rednews.me^ +#ÿï08@Rree1qrtnove.online^ +ÿï08@Rree56vxln.tech^ + ÿï08@Rree9usxpoe.club^ +!ÿï08@Rrefpajttvenj.top^ +"ÿï08@Rrefpakglscpj.best^ +!ÿï08@Rrefpakglscpj.top^ +!ÿï08@Rrefpakntjoyg.top^ +"ÿï08@Rrefpakqrnazy.best^ +!ÿï08@Rrefpakwqoigx.top^ +!ÿï08@Rrefpakykgqyf.top^ +ÿï08@Rrefpaqeiko.top^ +!ÿï08@Rrefpasjfol.space^ +ÿï08@Rrefpavdzdd.top^ +"ÿï08@Rrefractionius.com^ +ÿï08@Rrefuntinrin.ru^ +ÿï08@R regeef.site^ + ÿï08@Rregion-media.su^ +ÿï08@R regisg.com^ +ÿï08@R regiskin.ru^ +ÿï08@R regpole.com^ +ÿï08@Rreguliruyka.ru^ +ÿï08@Rreidancis.com^ +ÿï08@R reingod.com^ +!ÿï08@Rrek1erxloak.info^ +!ÿï08@Rrek5qqxpne.space^ +!ÿï08@Rrek5qstfnek0.top^ +ÿï08@R +rekbar.ru^› +ÿï08@R rekl2.ru^ +ÿï08@R reklam9.com^ +'ÿï08@Rreklama-cluster.tut.by^ +ÿï08@Rreklama.direct^ +!ÿï08@Rreklamadarom.com^ +ÿï08@Rreklamaizer.ru^ +ÿï08@R reklink.ru^ +ÿï08@R +rekola.ru^ +ÿï08@R rekomiko.ru^ +ÿï08@R +reks.club^ +ÿï08@R rekvid1.ru^ +ÿï08@Rrelangean.com^ +L * + +ustaliy.ru* + sntch.com* + +tut.by08@Rrelap.io/api/*/recs +Èÿï* +dynamo.kiev.ua* + fitseven.ru* + inmyroom.ru* + www.goha.ru* + zhzh.com.ua* + +briefly.ru* + +ustaliy.ru* + sntch.com* + zhzh.info* +life.ru* + +tut.by08@R relap.io^ +€08@R relap.io^ ++ÿï08@Rrelap.io^*/custom_rec_item/ +ÿï08@Rrelap.mail.ru^ +ÿï08@Rremoyetum.com^ +ÿï08@Rrenewnewss.net^ +ÿï08@R rerelep.info^ +ÿï08@R +rerer6.ru^ +ÿï08@Rresourse43.com^ +ÿï08@R resttort.ru^ +ÿï08@R +resuno.ru^ +ÿï08@R retagapp.com^ +!ÿï08@Rretail-server.ru^ + ÿï08@Rretargetadv.com^ +ÿï08@Rretharitus.com^ +ÿï08@R retreid.pro^ +ÿï08@Rretrollitt.ru^ +ÿï08@R +rettal.ru^ +ÿï08@R +rettik.ru^ +ÿï08@R retumyi.ru^ +ÿï08@R returso.com^ +ÿï08@R retytu.com^ +!ÿï08@Rreu1ertfprfe.top^ +!ÿï08@Rreu1ua3doqt0.top^ +!ÿï08@Rreu1uqtbpqt.info^ +ÿï08@R +reu5q.com^ +ÿï08@R reu5q.tech^ +ÿï08@R reu9evxk.top^ +ÿï08@R reunice.com^ +ÿï08@R rew43h2.ru^ +ÿï08@R +rewalt.ru^ +ÿï08@Rrewdinghes.com^ +ÿï08@R rexpush.me^ +ÿï08@R rexpush.org^ +ÿï08@R rexpush.pro^ +ÿï08@R +rezale.ru^ +ÿï08@R +rezhiv.ru^ +ÿï08@R rgqxbf.com^ +ÿï08@R rhhmaq.com^ +ÿï08@R riaccaw.com^ +ÿï08@R riafdi.com^ +ÿï08@Rriamiavid.com^ +"ÿï08@Rrich-adv-code.net^ +ÿï08@R richthof.com^ +ÿï08@Rridapsipsy.com^ +ÿï08@Rrifflingo.com^ +ÿï08@R +riibl.com^ +ÿï08@R rikolet.ru^ +ÿï08@R rimeyer.ru^ + ÿï08@Rrinlohedtron.ru^ +ÿï08@R rintinwa.com^Õ +ÿï08@Rrinwasmahis.ru^ +ÿï08@R rinwisi.pro^ +"ÿï08@Rrioaffiliates.com^ +ÿï08@Rripemember.com^ + ÿï08@Rririnranleft.ru^ +"ÿï08@Rriseup-t-code.com^ +ÿï08@R ritrag.com^ +ÿï08@R riverlead.ru^ +ÿï08@R rivgo.info^ +ÿï08@R rj7xw.ru^ +ÿï08@R rkczot.com^ +ÿï08@Rrkft2sdl8b.ru^ +ÿï08@R +rkkvq.com^ +ÿï08@R +rl7944.ru^ +ÿï08@R rlcg9jtt.ru^ +ÿï08@Rrle.ru^ +ÿï08@R rluuva.com^ + ÿï08@Rrlylpl6k499y.ru^ +ÿï08@Rrme16a3.online^ +#ÿï08@Rrme1euxpnak.online^ +ÿï08@R +rmnje.top^ +ÿï08@R rmqnfg.com^ +ÿï08@R rmqunan.com^ +ÿï08@R rmraos.com^ +ÿï08@R rmu1ezz0.top^ +!ÿï08@Rrmu1qtxhpve.info^ +ÿï08@R +rmvjk.com^ +!ÿï08@Rrne1uqtnnzz0.pro^ + ÿï08@Rrne5qrtjov.club^ + ÿï08@Rrne5qrtjov.site^ +#ÿï08@Rrne9esxdorf.online^ +6ÿï* + +passion.ru* + +wmj.ru08@R +rnet.plus^ +ÿï08@R +rnnuw.com^ +ÿï08@R roagz.us^ +ÿï08@Rrobaduvulo.com^ +ÿï08@Rrobcalwith.ru^ +ÿï08@R robimobi.com^ +ÿï08@R robinius.pro^ +ÿï08@Rrobjusrew.com^ +ÿï08@R rofhathe.com^ +ÿï08@R roft.pro^ +ÿï08@R rofufupo.ru^ +ÿï08@R rofunseve.ru^ +ÿï08@Rrofurekika.com^ +ÿï08@R rogahn.net^ +ÿï08@R rohlita.ru^ +ÿï08@R roida.club^ +ÿï08@R roklerok.com^ +ÿï08@R +rokno.com^ +ÿï08@R roletan.com^ + ÿï08@Rrolhedkemuch.ru^ +ÿï08@Rrollerads.com^ +ÿï08@Rrolloversl.net^ +ÿï08@Rrollovervk.net^ +ÿï08@Rrolrewhert.com^ +ÿï08@R rolzox.com^ +ÿï08@R roma.artm.su^ +ÿï08@Rromaguera.biz^ +ÿï08@R romilit.com^ +ÿï08@R roncano.com^ +ÿï08@R roninex.ru^ +ÿï08@R rontar.com^ +ÿï08@R +rontar.ru^ +ÿï08@R roofsing.com^¬ +ÿï08@Rrootclick.biz^ + ÿï08@Rrootinmyhead.ru^ +ÿï08@R rootmedia.cc^ +ÿï08@R rootmedia.ws^ +ÿï08@Rrootspace.biz^ +ÿï08@Rropandhep.com^ +ÿï08@R ropedri.com^ +*ÿï08@Rroseemariepatterson.uk.to^ +ÿï08@R +rosona.ru^ +ÿï08@Rrostok-de.com^ +ÿï08@R rotaads.ru^ +#ÿï08@Rrotacmbettime.site^ +ÿï08@R +rotads.ru^ +#ÿï08@Rrotation-media.net^ +%ÿï08@Rrotation-message.net^ +!ÿï08@Rrotation-web.net^ +$ÿï08@Rrotationmessage.net^ +ÿï08@R +rouhb.com^ +ÿï08@R roukel.com^ +ÿï08@R rovarti.info^ +ÿï08@Rrove.cl^ +ÿï08@R rowketly.com^ +ÿï08@R rozaura.ru^ +ÿï08@Rrozetka.cloud^ +ÿï08@R rozitaz.ru^ +ÿï08@R rp-srw.net^ +ÿï08@R rpbln.work^ +ÿï08@R +rpqjo.top^ +ÿï08@R +rpsehc.ru^ +ÿï08@R rq6acf4x.ru^ +ÿï08@R rquecb.com^ +ÿï08@R rrenumo.com^ +ÿï08@R rrmovh0f.ru^ +ÿï08@Rrrnhb863j.tech^ +(ÿï08@Rrrolawcats2bsl4b.in.net^ +ÿï08@Rrruytrooytr.tk^ +ÿï08@R +rsepv.com^ +ÿï08@R rstbtmd.com^ +ÿï08@R +rsuuc.com^ +ÿï08@R rt-ns.ru^ +ÿï08@R +rt-rrr.ru^ +ÿï08@R +rt-ttt.ru^ +ÿï08@R rtb-media.ru^ +ÿï08@Rrtb.beeline.ru^ +ÿï08@R rtb.mts.ru^ +ÿï08@R rtb.wedeo.ru^ +ÿï08@R rtbads.com^ +ÿï08@R rtbads.info^ +ÿï08@R rtbclick.net^ +ÿï08@R +rtblog.ru^ +ÿï08@R rtbtraf.com^ +ÿï08@R rtbweb.com^ +ÿï08@R rtdns.ru^ +ÿï08@R +rtfnm.com^ +"ÿï08@Rrtfslp5ejugqsy.ru^ +ÿï08@R rtkrtb.com^ +ÿï08@R rtl1.biz^ +ÿï08@R rtl1.net^ +ÿï08@R rtl1.org^ +ÿï08@R rtmain.com^ +ÿï08@R rtoayt.site^ +ÿï08@R +rts.click^ + ÿï08@Rru7mee8nhmz8.ru^ +ÿï08@R ruad.net^– +ÿï08@R ruadlist.ru^ +ÿï08@R rubejads.ru^ +ÿï08@Rrubejtizer.ru^ +ÿï08@Rrubiginose.com^ +ÿï08@R rubkate.ru^ +ÿï08@R rugfrfji.win^ +ÿï08@R ruigra.com^ +ÿï08@R rukavilat.ru^ +"ÿï08@Rrukodelkinshop.ru^ +ÿï08@Rrukoebads.com^ +ÿï08@R +ruktar.ru^ +ÿï08@R +rulive.ru^ +ÿï08@Rrunmken.space^ +ÿï08@Rrunoffree.bid^ +ÿï08@Rrunolfsson.net^ + ÿï08@Rruproverrcwc.tk^ +ÿï08@R ruschopi.ru^ +ÿï08@Rruserials.club^ +ÿï08@R rusprices.ru^ +!ÿï08@Rrusservisbest.ru^ + ÿï08@Rrussianluck.com^ +ÿï08@R rustds.click^ +ÿï08@Rrustds1.click^ +ÿï08@R +rustiz.ru^ +ÿï08@R rutad.ru^ +ÿï08@R rutarget.ru^ +ÿï08@R rutorad.ru^ +ÿï08@R rutorads.com^ +ÿï08@R ruttwind.com^ +ÿï08@R rutvind.com^ +ÿï08@R rutyago.ru^ +ÿï08@R ruunews.info^ +ÿï08@R +rvktu.com^ +ÿï08@R rvsport.ru^ +$ÿï08@Rrvzr-a.akamaihd.net^ +ÿï08@Rrwaxcl7hij.ru^ +ÿï08@R rwhxz.space^ +ÿï08@R rwpypf.com^ +ÿï08@R rx-tds.com^ +ÿï08@R +rxjfh.com^ +ÿï08@R +rxtbb.top^ +ÿï08@R rybkono.ru^ +ÿï08@R +rybyzi.ru^ +ÿï08@Rrydarobron.ru^ + ÿï08@Rryehetywyt4.com^ +ÿï08@R rygfjv.com^ +ÿï08@R +ryios.com^ +ÿï08@R rypamigbr.ru^ +ÿï08@R rytesav.ru^ +ÿï08@R ryuosy.com^ +ÿï08@R rzhujam.com^ +ÿï08@R rzjirk.com^ +ÿï08@R rzukou.com^ +ÿï08@R +rzviy.com^ +ÿï08@R s-onetag.com^ +ÿï08@R s-www.ru^ +ÿï08@R s17365.org^ +ÿï08@R s1adult.com^ +ÿï08@R s1r.tut.by^ +ÿï08@R s1venus.biz^ +ÿï08@R s1venus.com^ +ÿï08@R s1venus.org^ +ÿï08@R s1vesta.com^ +ÿï08@R +s2517.com^È +ÿï08@R s2normal.com^ +ÿï08@R s2r.tut.by^ +ÿï08@R s37click.fun^ +ÿï08@R s3block.com^ +ÿï08@R s3r.tut.by^ +ÿï08@R s4r.tut.by^ +ÿï08@R s5block.com^ +ÿï08@R s5r.tut.by^ +ÿï08@Rs6mf2ru8h1.ru^ +#ÿï08@Rs7sdtgz7zre5ms.top^ +ÿï08@Rs98k2dmmbm.ru^ +ÿï08@R sad2tizer.ru^ +ÿï08@Rsadji.cricket^ +ÿï08@Rsadkasd.party^ +ÿï08@R sadreno.com^ +ÿï08@R saegiw.pro^ +ÿï08@R saferedd.com^ +"ÿï08@Rsaferedirrect.com^ +ÿï08@Rsafesource.ru^ +ÿï08@R safevideo.cc^ +ÿï08@R saftraf.com^ + ÿï08@Rsalamaleyum.com^ +!ÿï08@Rsalesdoubler.pro^ +!ÿï08@Rsaltedslimes.com^ +ÿï08@R salutbook.ru^ +ÿï08@R samiana.com^ +ÿï08@Rsandratand.ru^ +ÿï08@Rsandsewass.com^ +ÿï08@Rsandsitfor.com^ +!ÿï08@Rsaparaninghin.ru^ +ÿï08@R sapmedia.ru^ +ÿï08@R +sar.66.ru^ +ÿï08@R sarafan.fun^ +ÿï08@R sarimsol.com^ +ÿï08@R sawayn.link^ +ÿï08@Rsaytservis.ru^ +ÿï08@R sbbjdr.com^ +ÿï08@Rsbest10s.info^ +ÿï08@R sblftg.com^ +ÿï08@R +scafer.ru^ +ÿï08@R scancpa.ru^ +ÿï08@R scanleads.ru^ + ÿï08@Rscarpbooking.ru^ + ÿï08@Rscatrouting.com^ +ÿï08@R schmeler.biz^ +ÿï08@Rsckxppzdm.com^ +ÿï08@R scr-tz.com^ + ÿï08@Rscreen-model.ru^ +ÿï08@R screenpix.ru^ +ÿï08@R scriter.ru^ +'ÿï08@Rscrooge-uncle.services^ +ÿï08@Rscsjpefk.info^ +ÿï08@R sdfbfaa.pro^ +ÿï08@R sdflsdfl.ru^ +ÿï08@R sdmot.ru^ +ÿï08@R sdoklad.ru^ +ÿï08@R sdoper.com^ +ÿï08@Rsdx.ru^ +ÿï08@R sdziy.us^ +ÿï08@R seafox26.com^ +ÿï08@R sealine.pro^ +ÿï08@Rseaparrot.info^ +ÿï08@R searchfun.in^ +ÿï08@Rsearchnow.site^ˆ +ÿï08@R searchtds.ru^ +"ÿï08@Rsearchtweaker.com^ +ÿï08@Rseavideo22.com^ +ÿï08@Rseawolf16.com^ +ÿï08@R +sebina.ru^ +#ÿï08@Rseconominative.com^ +!ÿï08@Rsecuremember.net^ +#ÿï08@Rsecurewebboard.com^ +$ÿï08@Rsecuritypeoples.com^ +)ÿï08@Rsee-this-domain-now.info^ +ÿï08@Rseed.by^ +ÿï08@R seedeasy.ru^ +ÿï08@R +seedr.com^ +ÿï08@R seedr.ru^ +ÿï08@R seedrug.ru^ +ÿï08@R seeliner.com^ +ÿï08@R seertul.com^ +ÿï08@R sehtjv.com^ +ÿï08@R seilope.com^ +ÿï08@R seligers.ru^ +ÿï08@Rsellaction.net^ +ÿï08@R seloinru.ru^ +ÿï08@R selosin.com^ +ÿï08@Rsemantik01.ru^ +ÿï08@Rsemantiqo.com^ +ÿï08@Rsendelven.com^ +!ÿï08@Rsenkevich-vk.net^ +ÿï08@Rsenpaianime.ru^ +ÿï08@R seoftsup.pro^ +ÿï08@R seoha.ru^ +ÿï08@R seozubr.club^ + ÿï08@Rsepteefepp.club^ +ÿï08@Rseptemnrt.club^ +ÿï08@Rseptepmde.club^ + ÿï08@Rseptermerr.life^ +ÿï08@Rsepterpet.club^ +ÿï08@R +sercdn.ru^ +ÿï08@Rserconius.com^ + ÿï08@Rsereendipit.com^ +ÿï08@Rsergh34ds.com^ +ÿï08@R serial.homes^ +ÿï08@Rserialok.club^ +ÿï08@R serlive.ru^ +ÿï08@R sernen.com^ +ÿï08@R +sernow.ru^ +ÿï08@R +seroit.ru^ +ÿï08@R serolan.com^ +ÿï08@Rserumawus.com^ +#ÿï08@Rserv.prison-bot.ru^ +ÿï08@R serv7553.ru^ +ÿï08@Rservantolog.ru^ +ÿï08@R serveac.com^ +ÿï08@Rservemoney.ru^ +$ÿï08@Rserver-akcept-yr.ru^ +#ÿï08@Rserver-number-1.ru^ +#ÿï08@Rserver-rotation.ru^ +ÿï08@Rserver2034.ru^ +ÿï08@Rservicelead.ru^ + ÿï08@Rservicelead.top^ +ÿï08@R servized.com^ +ÿï08@Rservtodown.ru^ +ÿï08@Rsesisurom.com^ +ÿï08@R setads.bid^ +'ÿï08@Rsetforconfigplease.com^ó +"ÿï08@Rsetterlistjo.link^ +(ÿï08@Rsexshop4ik.ru.swtest.ru^ +ÿï08@Rsexshop4ik.ru^ +ÿï08@Rsexvrusko.org^ +ÿï08@R sf2ej57.com^ +ÿï08@R sfold141.ru^ + ÿï08@Rsfqhdeamds.info^ +ÿï08@R sfsdlkd.ru^ +ÿï08@R sghmho.com^ +ÿï08@R sgirqr.com^ +ÿï08@R sgolden.ru^ +ÿï08@Rshakescash.com^ + ÿï08@Rshakesclick.com^ +ÿï08@R shakesin.com^ +ÿï08@Rshakesine.com^ +ÿï08@R shakeson.ru^ + ÿï08@Rshakespoint.com^ +ÿï08@Rshakesspot.com^ +ÿï08@Rsharilon.site^ +"ÿï08@Rsharkfirelife.com^ +"ÿï08@Rsharksplayer2.com^ +ÿï08@Rsharp.ondu.ru^ + ÿï08@Rshazzefiass.com^ +ÿï08@R sheat.ru^ +ÿï08@R shifrosy.ru^ +ÿï08@R shigopo.ru^ +ÿï08@Rshimlabi.info^ + ÿï08@Rshonretimus.com^ +ÿï08@R shop3784.ru^ +"ÿï08@Rshopgameslive.com^ +ÿï08@Rshopnetic.com^ + ÿï08@Rshopsonnies.top^ + ÿï08@Rshoptop-24.info^ +ÿï08@R shotad.com^ +ÿï08@R shotyfy.com^ +ÿï08@R shoveac.com^ +ÿï08@R showdysl.com^ +ÿï08@R showede.com^ + ÿï08@Rshowmelinks.com^ +"ÿï08@Rshpovaw8wu.ru.com^ +ÿï08@R shpro10.com^ +ÿï08@R shpultiki.ru^ +ÿï08@R shtzrrr.biz^ +ÿï08@R shuffele.com^ +ÿï08@R shulitet.ru^ +ÿï08@R shvhse.com^ +"ÿï08@Rsibiryak-soft.net^ +$ÿï08@Rsiblesectiveal.club^ +ÿï08@Rsideonwest.com^ +ÿï08@R sider.org.ru^ +ÿï08@Rsilvermob.com^ +ÿï08@R simofor.ru^ +!ÿï08@Rsimplejsmenu.com^ +ÿï08@R sinfosi.ru^ +ÿï08@R sionotti.ru^ +ÿï08@Rsiresuperm.bid^ +ÿï08@R sirokuzo.com^ +ÿï08@R siteme.org^ +ÿï08@R sitewithg.me^ +ÿï08@R sitorew.com^ +ÿï08@Rsitroptert.com^ +ÿï08@R sitsts.com^ +ÿï08@R siwbowo.ru^ +ÿï08@R sjdfkjh.ru^¦ +ÿï08@R sjgbgv.com^ +#ÿï08@Rsjsmartcontent.org^ +"ÿï08@Rsjsmartcontent.ru^ +ÿï08@R +skawto.ru^ +ÿï08@R skcrtxr.com^ +ÿï08@R skidka50.net^ +ÿï08@R skidl.ru^ +ÿï08@R skiles.link^ +ÿï08@R skwstat.ru^ +ÿï08@R +skyad1.ru^ +ÿï08@R +skyad5.ru^ + ÿï08@Rskyadsvideo1.ru^ +ÿï08@R skyadvert.su^ +ÿï08@Rskyadvideo.ru^ +ÿï08@Rskycdnhost.com^ +!ÿï08@Rskyscrappear.com^ +ÿï08@R skyvideo1.ru^ +ÿï08@R sl1et.ru^ +"ÿï08@Rslartibartfast.ru^ +ÿï08@R +slasop.ru^ +"ÿï08@Rslavedomain48.net^ +ÿï08@R sleepac.com^ +ÿï08@R slejv.space^ +ÿï08@Rsleshdash.com^ +ÿï08@R +slhnj.com^ +ÿï08@Rslickjump.com^ +ÿï08@Rslickjump.net^ +ÿï08@Rslickjump.org^ +ÿï08@R +slivz.com^ +ÿï08@R slon.biz^ + ÿï08@Rslot-portal.com^ +ÿï08@Rslotblost.com^ + ÿï08@Rslotoportal.com^ +ÿï08@Rslotorio.link^ +!ÿï08@Rslova-accordy.ru^ +ÿï08@R slowpoker.ru^ +ÿï08@R sltvtk.com^ +ÿï08@R +slzix.com^ +ÿï08@R sm-dafa.com^ +ÿï08@R sm-img.com^ +ÿï08@R +sm-ini.ru^ +ÿï08@R sm-ini2.com^ +ÿï08@R sm-out.com^ +ÿï08@R +sm0tri.eu^ +ÿï08@R smallege.icu^ +ÿï08@R smallel.icu^ +ÿï08@R smalltyan.ru^ +ÿï08@R +smarf.icu^ +ÿï08@Rsmart-tds.info^ +$ÿï08@Rsmartns.cdnvideo.ru^ +!ÿï08@Rsmartzaim.online^ +ÿï08@R smazaz.icu^ +ÿï08@R smi.expert^ +ÿï08@Rsmi.fm^ +ÿï08@R +smi.media^ +ÿï08@R smi10.ru^ +ÿï08@R smi2-js.net^ +ÿï08@Rsmi2020.ru.com^ +ÿï08@R smi2020.ru^ +ÿï08@R smi2you.ru^ +ÿï08@R smi4u.ru^ +ÿï08@R +smi6.info^ +ÿï08@R smicenter.ml^ +ÿï08@R smicenter.ru^æ +ÿï08@Rsmiinform.zone^ + ÿï08@Rsmiinformer.com^ +!ÿï08@Rsmiinformer1.com^ +$ÿï08@Rsmiinformeri.online^ +ÿï08@Rsmikitchen.ru^ +ÿï08@Rsmimarket.com^ +ÿï08@R smiru.site^ +ÿï08@R smitham.org^ +ÿï08@R smklso.com^ +ÿï08@R +smntq.com^ +ÿï08@R smonstr.ru^ +ÿï08@Rsmpbhfiwr.com^ +ÿï08@R smvhv.space^ +ÿï08@R snakeac.com^ +"ÿï08@Rsnitchlittle.info^ +ÿï08@Rsnlyjkf3vs.ru^ +"ÿï08@Rsnovimgodomyap.ru^ +!ÿï08@Rsnowgeranium.com^ +ÿï08@R sochetat.net^ +ÿï08@Rsocialnow.site^ +ÿï08@R +socks5.ru^ +ÿï08@R +socola.ru^ +ÿï08@Rsocpublic.com^ +ÿï08@R +sof3.site^ +ÿï08@R sof32dsso.ru^ +ÿï08@R soft-pays.ru^ +ÿï08@R soghqcf.pro^ +ÿï08@R soilebol.com^ +ÿï08@R +soknm.com^ +ÿï08@R solanog.com^ +ÿï08@R solarois.com^ +ÿï08@Rsolegingly.co^ +ÿï08@R soleniece.ru^ +ÿï08@R sololslol.ru^ +ÿï08@R solopon.com^ +#ÿï08@Rsoloway.su/rotator/ +ÿï08@R solta.io^ +ÿï08@Rsome.demuz.ru^ +ÿï08@Rsometired.com^ +ÿï08@R +sonaro.ru^ +ÿï08@R sonnents.com^ +ÿï08@R sontere.com^ +ÿï08@R sopital.com^ +9ÿï* +sosedi.tamboff.ru08@Rsosedi.tamboff.ru^ +ÿï08@R sosedky.ru^ +ÿï08@R sotbispro.ru^ +ÿï08@R soulety.com^ +ÿï08@R sourdi.com^ +ÿï08@Rsourserve.com^ +#ÿï08@Rsov-inform-buro.ru^ + ÿï08@Rsov-part-cpl.ru^ +ÿï08@Rsov-sib-cpl.ru^ +ÿï08@R sov.stream^ +ÿï08@R sova.ru.net^ +ÿï08@Rsovetnikdam.ru^ +ÿï08@R sovietit.com^ +ÿï08@R spads.me^ +ÿï08@R sparelli.com^ +ÿï08@R sparical.com^ +ÿï08@R sparnove.com^ +ÿï08@Rsparonero.pro^ +ÿï08@R sparrow.ru^ +ÿï08@R spechee.com^ +ÿï08@R spechete.com^Ž +ÿï08@R specisez.com^ + ÿï08@Rspeedmydata.com^ +ÿï08@Rspeedteest.pro^ +"ÿï08@Rspeedtest-net.pro^ +%ÿï08@Rspetsodezhda-best.ru^ +ÿï08@R +sphjtw.ru^ +ÿï08@Rspicysales.ru^ +ÿï08@Rspiderbig.info^ + ÿï08@Rspiritslice.com^ +ÿï08@R spload.site^ +ÿï08@R sploads.site^ +ÿï08@R sportbets.su^ +ÿï08@R spostic.date^ +&ÿï08@Rspotlesscomplaint.com^ +ÿï08@Rspotsniper.ru^ +ÿï08@Rsputnikads.ru^ +ÿï08@Rspwdfr38rg.ru^ +ÿï08@R sqa41.ru^ +ÿï08@R +sqjda.com^ +ÿï08@R sravniali.ru^ +ÿï08@R +srkft.com^ +ÿï08@R +srtzq.com^ +-ÿï* + srv1.tlt.ru08@R srv1.tlt.ru^ +ÿï08@R srv43.ru^ +ÿï08@R srvd2204.com^ +ÿï08@Rssd7.ru^ +ÿï08@Rssliivuqpm.ru^ +ÿï08@R +ssrv7.com^ +ÿï08@Rssso.ru^ +ÿï08@R +ssvim.com^ +ÿï08@R sszru.ru^ +ÿï08@R st-wp.ru^ +ÿï08@Rst.astraone.io^ +ÿï08@Rstablemoney.ru^ +%ÿï08@Rstableprofit4you.com^ +!ÿï08@Rstadobaranoov.ru^ +ÿï08@R stadoovec.ru^ +ÿï08@Rstadygogo.biz^ +ÿï08@R standadv.com^ +ÿï08@Rstarhistory.ru^ +ÿï08@Rstarinform.ru^ +ÿï08@Rstartovarka.ru^ +ÿï08@Rstartscript.ru^ +ÿï08@R starvid.site^ +ÿï08@Rstat-well.com^ +&ÿï08@Rstatchecker.yandex.ru^ + ÿï08@Rstatdynamic.com^ +ÿï08@R static-pp.ru^ +!ÿï08@Rstatic.aio.media^ +%ÿï08@Rstatic.prototypes.ru^ + ÿï08@Rstatic.wi-fi.ru^ +ÿï08@Rstaticsfs.host^ +ÿï08@Rstatredpic.ru^ +ÿï08@R stattorr.ru^ +ÿï08@Rstattorrext.ru^ +ÿï08@R stayeda.com^ +ÿï08@Rstb.eat.int.ru^ +ÿï08@R stcvhf.com^ +$ÿï08@Rsteadfastsystem.com^ +ÿï08@R steamac.com^ +ÿï08@Rstengeholt.com^ +ÿï08@R +stf779.ru^ +%ÿï08@Rstg.truvidplayer.com^ +ÿï08@Rstiedemann.biz^Ž +ÿï08@R stino.info^ +ÿï08@R +stizer.ru^ +ÿï08@R stopget.ru^ +!ÿï08@Rstoprussians.com^ + ÿï08@Rstopthewar.live^ +ÿï08@Rstopvirus.link^ +ÿï08@R storm01.ru^ +ÿï08@R str99.ru^ +ÿï08@Rstrannosty.ru^ +#ÿï08@Rstreamingcastle.me^ +'ÿï08@Rstreetuptowind.com.com^ +ÿï08@R striere.com^ +ÿï08@R striete.com^ +ÿï08@Rstriglusor.com^ +ÿï08@Rstroy-sam.com^ +ÿï08@Rstrucewe.info^ +ÿï08@Rsts-bts-td.ru^ +ÿï08@R +stsdv.com^ +#ÿï08@Rstteeruptowind.com^ + ÿï08@Rstumtererum.com^ +ÿï08@R styleload.ru^ +!ÿï08@Rsu2lgyoeucscn.ru^ +ÿï08@Rsubnewss*.net^ +ÿï08@Rsubstraktor.ru^ +ÿï08@Rsubsworker.bid^ +ÿï08@R subxpk.com^ +ÿï08@R +sucior.ru^ +ÿï08@Rsuffusion.info^ +ÿï08@R sugvuxa.ru^ +ÿï08@R sumano.info^ +ÿï08@R sunburgh.com^ +ÿï08@R suneren.com^ +ÿï08@R sunina.info^ +ÿï08@R sunrima.ru^ +ÿï08@Rsuper-sxema.ru^ +ÿï08@R super12.eu^ +"ÿï08@Rsuperbestvideo.ru^ +"ÿï08@Rsupercampfire.com^ +'ÿï08@Rsuperdigitalsupport.ru^ +ÿï08@Rsuperfacts.ru^ +%ÿï08@Rsuperfastcomputer.ru^ +ÿï08@Rsuperfilms.ru^ +!ÿï08@Rsuperfloooow.com^ + ÿï08@Rsuperkinobob.ru^ +ÿï08@Rsuperkuhnja.ru^ +ÿï08@Rsuperlady.org^ +$ÿï08@Rsupernovosti.ru.com^ +#ÿï08@Rsuperpromokody.com^ +"ÿï08@Rsuperrdomain.info^ +!ÿï08@Rsuperrnovosti.ru^ +$ÿï08@Rsuperrstar.services^ +ÿï08@R supersmi.cf^ +ÿï08@R supersmi.ga^ +ÿï08@R supersmi.gq^ +#ÿï08@Rsupertopclick.club^ +ÿï08@Rsupertura.com^ +ÿï08@R supinatio.ru^ +ÿï08@R suprion.ru^ +ÿï08@R surfy.space^ +ÿï08@R surfy.tech^ +ÿï08@R susfvjh.pro^ +ÿï08@R +sutgof.ru^ +ÿï08@R +suuut.com^ +ÿï08@R sv-pr.ru^£ +ÿï08@R svedkan.com^ +ÿï08@R +svegt.com^ +ÿï08@R sveklon.com^ +ÿï08@R svekol.com^ +ÿï08@Rsvekolasg.pro^ +ÿï08@R svekolka.com^ +ÿï08@Rsvekolnik.com^ +ÿï08@R svitnews.com^ +ÿï08@Rsvk-native.ru^ +ÿï08@R svk100hp.ru^ +ÿï08@R +svotu.top^ + ÿï08@Rsvrssngsjy.info^ +ÿï08@R svxcwr.com^ +ÿï08@R svysoru.ru^ +ÿï08@Rswagfind.info^ +ÿï08@R swampgods.ru^ +ÿï08@Rswaniawski.net^ +ÿï08@Rswaptrap.live^ +ÿï08@Rswaymanlim.win^ +ÿï08@R swdqyi.com^ +ÿï08@Rsweetbc4.club^ +ÿï08@R sxbrvx.com^ +ÿï08@R +syekg.top^ +ÿï08@Rsyncuser.info^ +ÿï08@Rsyndang.party^ +ÿï08@R sypleni.ru^ +ÿï08@R sysdiag.ru^ + ÿï08@Rsysenvfiles.net^ +ÿï08@R sysfiles.net^ +ÿï08@R sytxao.com^ +ÿï08@R +szame.biz^ +ÿï08@R +szimh.com^ +ÿï08@R t-kibo.com^ +ÿï08@Rt4ergzwf7r.com^ +ÿï08@R t800.org^ +ÿï08@R ta.mybb.ru^ +"ÿï08@Rta9xknwqzfz.space^ +ÿï08@R tabun.info^ +ÿï08@Rtacaveros.com^ +ÿï08@R tadic.tk^ +ÿï08@Rtafimedia.com^ +ÿï08@Rtafrebadus.com^ +!ÿï08@Rtafreshtatum.com^ +ÿï08@R +tagol2.ru^ +ÿï08@Rtagslimit.com^ +ÿï08@Rtahedtheg.com^ +ÿï08@Rtaitroupe.com^ +ÿï08@R tajmaru.ru^ +ÿï08@Rtakealldir.ru^ +ÿï08@R takeman.ru^ +ÿï08@R takia.ru^ +ÿï08@R takib.ru^ +ÿï08@R takibb.com^ +ÿï08@R +takibb.ru^ +ÿï08@R takic.ru^ +ÿï08@R +takicc.ru^ +ÿï08@R takicc.site^ +ÿï08@Rtakidd.online^ +ÿï08@R takidd.site^ +ÿï08@R +takipp.ru^ +ÿï08@R takitdska.ga^ +#ÿï08@Rtalktomeplease.biz^ +ÿï08@Rtamerliqus.com^ +"ÿï08@Rtanlitthisdint.ru^Í +ÿï08@Rtapnetwork.ru^ +ÿï08@R tapstats.ru^ +ÿï08@R tare51vkh.ru^ +ÿï08@R targetan.com^ +ÿï08@Rtargetanza.ru^ +ÿï08@Rtargeterra.com^ +ÿï08@R targetix.net^ +"ÿï08@Rtargetmedicine.ru^ +ÿï08@R targetp.ru^ +ÿï08@Rtarguslame.com^ +ÿï08@R +taril1.ru^ +ÿï08@R +taril2.ru^ +ÿï08@R +taril3.ru^ +ÿï08@Rtarnifotum.com^ +ÿï08@R tarry.ru^ +ÿï08@R tauptoat.com^ +$ÿï08@Rtauruallop.download^ +ÿï08@R tb.mybb.ru^ +ÿï08@R +tbizw.top^ +ÿï08@Rtbn.ru/bb.cgi? +ÿï08@R tc.mybb.ru^ +ÿï08@R tcamav.com^ +ÿï08@R tcesqj.com^ +ÿï08@R +tch10.com^ +ÿï08@R +tch30.com^ +ÿï08@R tcrybv.com^ +ÿï08@Rtd-everest.biz^ +ÿï08@R td.mybb.ru^ + ÿï08@Rtd9tgaersp.site^ +ÿï08@R +tdeug.com^ +ÿï08@R tdkino.com^ +"ÿï08@Rtds-minionhelp.ru^ +ÿï08@Rtds.bid^ +ÿï08@Rtds.io^ +ÿï08@Rtdsantcrazy.ru^ +ÿï08@R tdsrmbl.net^ +ÿï08@Rtdstorage.site^ +ÿï08@R teachac.com^ + ÿï08@Rteachmeiwnd.com^ +ÿï08@R tealtan.com^ +ÿï08@R teamrtb.net^ +ÿï08@R tear55.info^ +ÿï08@R teaser1m.com^ +ÿï08@Rteaserbar.com^ +ÿï08@R teasercpm.ru^ +ÿï08@Rteaserfast.ru^ + ÿï08@Rteasermedia.net^ + ÿï08@Rteasermoney.com^ +!ÿï08@Rteasernet.com.ua^ +"ÿï08@Rteasertraffic.com^ +ÿï08@Rtech4215978.ru^ +ÿï08@Rtech5877413.ru^ +ÿï08@Rtech783281.ru^ +ÿï08@Rtech9638514.ru^ +ÿï08@Rtechhybrid.net^ +!ÿï08@Rtechnical-rtl.ru^ +ÿï08@R tecontx.com^ +ÿï08@R tedpasit.com^ +ÿï08@R tedpasit.net^ +ÿï08@R tehranvd.pw^ +ÿï08@R tekaners.com^ +ÿï08@Rtel1mekar.com^ +ÿï08@Rtelacrered.ru^ + ÿï08@Rtelespravka.com^¿ +#ÿï08@Rtelevisionbomb.com^ +ÿï08@R telnqa.com^ +"ÿï08@Rtemporarympay.com^ + ÿï08@Rtempwmpbdan.bid^ +ÿï08@R terapou.com^ +ÿï08@R terevy.com^ +ÿï08@R terhimpa.pro^ +ÿï08@R teromil.com^ +ÿï08@R terrout9.biz^ +ÿï08@R tertuyq.ru^ +$ÿï08@Rteser.webakcent.pro^ +ÿï08@R teset.info^ +ÿï08@R tessom.com^ +ÿï08@R test37.com^ +ÿï08@R test4432.ru^ +!ÿï08@Rtestablisha.info^ +ÿï08@R testad.bid^ +ÿï08@R testikm.ru^ +ÿï08@R +testsi.ru^ +ÿï08@R tetabe.info^ +ÿï08@Rtetrawicus.com^ +ÿï08@R text-ali.ru^ +ÿï08@R texto.click^ +ÿï08@R +textun.ru^ +ÿï08@R teydevi.ru^ +ÿï08@R tf.mybb.ru^ +ÿï08@R tg.mybb.ru^ +ÿï08@R tg2016.net^ +ÿï08@R tgaqxo.com^ +ÿï08@Rtgb.hsmedia.ru^ +ÿï08@R tgdmpf.com^ +ÿï08@Rtgearheads.com^ +ÿï08@R +tggay.top^ +ÿï08@R +tgnvk.top^ +ÿï08@Rtgsmtdata4.pro^ +ÿï08@R th.mybb.ru^ + ÿï08@Rthagrechulo.com^ +ÿï08@Rthairesort.ru^ +ÿï08@Rthathislitt.ru^ +ÿï08@Rthawinewa.pro^ +ÿï08@R the-peer.net^ +ÿï08@R the7re.com^ +ÿï08@R thefox.mobi^ +ÿï08@R thefoxads.ru^ +ÿï08@R thefoxm.com^ +ÿï08@R thegrap.ru^ +ÿï08@Rthekupdom.com^ +ÿï08@Rthekupidom.ru^ +$ÿï08@Rthemarketplaza.info^ +ÿï08@Rthemoneyes.ru^ +ÿï08@Rthetabdot.com^ +!ÿï08@Rthetlingheck.pro^ +ÿï08@R theuncal.com^ +ÿï08@R theverve.ru^ +ÿï08@R thevtk.com^ +ÿï08@Rthor-media.ru^ +ÿï08@R thor-t.com^ +ÿï08@R thor-z.com^ +ÿï08@Rthreedrive.su^ +#ÿï08@Rthrewawaythetv.com^ +ÿï08@R thulun.com^ +ÿï08@R thumpac.com^ +ÿï08@R tibimed.ru^ +ÿï08@Rtibrashadow.ru^Ö +ÿï08@R +ticlon.ru^ +ÿï08@R tidentes.com^ +ÿï08@R tidopro.biz^ +ÿï08@R tierest.com^ +ÿï08@R tifrive.ru^ +ÿï08@R tigart.club^ +ÿï08@R tiger947x.ru^ +ÿï08@Rtigragroup.com^ +ÿï08@Rtikitaki.info^ +ÿï08@R tikstok.fun^ +ÿï08@R tilafast.com^ +ÿï08@R tilili007.ru^ +#ÿï08@Rtiming-js-menu.xyz^ +ÿï08@R timonom.com^ +ÿï08@R tin-ton.info^ +ÿï08@Rtinj.ru^ +ÿï08@R tinnotet.com^ +ÿï08@R +tinsvt.ru^ +!ÿï08@Rtipebixartbli.ml^ +!ÿï08@Rtiploxoyuxodi.ru^ +ÿï08@R tirimon.ru^ +!ÿï08@Rtiruniversal.com^ +ÿï08@R tirwdq.com^ +ÿï08@R tisapama.com^ +ÿï08@R tisarama.com^ +ÿï08@Rtisgaturus.com^ +ÿï08@Rtiutietur.com^ +ÿï08@Rtiveriches.pro^ +ÿï08@R +tiz-et.ru^ +%ÿï08@Rtiz.healthy2life.com^ +ÿï08@R tizenoid.ru^ +ÿï08@R tizer.ws^ +ÿï08@R tizer12.net^ +ÿï08@R tizer13.net^ +ÿï08@R tizer6.net^ +ÿï08@R tizer7.net^ +ÿï08@R tizer8.net^ +ÿï08@Rtizerbank.com^ +ÿï08@Rtizerbest.net^ +ÿï08@R tizerbox.net^ +ÿï08@Rtizerclick.com^ +ÿï08@Rtizerclik.com^ +ÿï08@R tizerda.net^ +ÿï08@Rtizerelite.net^ +ÿï08@R tizerfly.net^ +ÿï08@R tizergo.net^ +ÿï08@R tizergun.net^ +ÿï08@R tizerka.biz^ +ÿï08@R tizerka.net^ +ÿï08@Rtizerlady.biz^ + ÿï08@Rtizerlady.click^ +ÿï08@Rtizerlady.com^ +ÿï08@Rtizerlady.info^ +ÿï08@Rtizerlady.net^ +ÿï08@Rtizerlady.org^ + ÿï08@Rtizerlady.party^ +ÿï08@R tizerlady.ru^ +ÿï08@Rtizerlady.win^ +ÿï08@Rtizerlady.work^ +ÿï08@Rtizerleads.ru^ +ÿï08@Rtizerlink.com^ +ÿï08@Rtizermanako.ru^ + ÿï08@Rtizermedias.com^ +ÿï08@Rtizermine.net^€ +ÿï08@R tizermy.net^ +%ÿï08@Rtizernaya-reklama.ru^ +ÿï08@R tizerset.net^ +ÿï08@Rtizerstock.com^ + ÿï08@Rtizertracker.ru^ +ÿï08@R tizgo.ml^ +ÿï08@Rtizierlady.ru^ +ÿï08@R +tizirc.ru^ +ÿï08@R +tizlex.ru^ +ÿï08@R tizmarkov.ru^ +ÿï08@R tiznews.ru^ +ÿï08@R +tiznic.ru^ +ÿï08@R +tizpan.ru^ +ÿï08@R +tizru.com^ +ÿï08@R +tjfot.com^ +ÿï08@R tjj7k.ru^ +ÿï08@Rtjlgfdfnk.tech^ +ÿï08@Rtkts.cl^ +ÿï08@R tl1fast.com^ +ÿï08@R +tl1r.info^ +ÿï08@R tl2fast.com^ +ÿï08@R tl3fast.com^ + ÿï08@Rtldredenter.com^ +ÿï08@R tlgrm.click^ +ÿï08@R tlr1.biz^ +ÿï08@R tlxjuj.com^ +ÿï08@R +tm-79.com^ +ÿï08@R tm46k0ij.ru^ +ÿï08@R +tmozs.com^ +ÿï08@R +tmska.com^ +ÿï08@R tmstrack.com^ +ÿï08@R tn.mybb.ru^ +ÿï08@R tneduf.com^ +ÿï08@R tnevota.ru^ +ÿï08@R tnsis.ru^ +ÿï08@R tnxptj.com^ +08@Rto/code/ +ÿï08@R to/files/ +ÿï08@R +to330.com^ +ÿï08@R tod99shi.com^ +ÿï08@R todayad.ru^ +ÿï08@R todaytodo.ru^ +ÿï08@Rtofilego.site^ +ÿï08@Rtoftforcal.com^ +ÿï08@Rtoftofcal.com^ +ÿï08@R toftori.ru^ +#ÿï08@Rtoftroprecaning.ru^ +ÿï08@R tohopes.ru^ +ÿï08@R tojinr.com^ +!ÿï08@Rtoldundevent.com^ +ÿï08@Rtolicando.com^ +"ÿï08@Rtolko1dogovor.com^ +ÿï08@R tolkunov.com^ +ÿï08@Rtomi.ai^ +ÿï08@R tomi.net.ru^ +ÿï08@R tomillion.ru^ +ÿï08@R +tomiti.ru^ +ÿï08@R tomobol.com^ +ÿï08@R tonopole.com^ +ÿï08@R tonsunjo.com^ +ÿï08@R toolcount.ru^ +ÿï08@R toolsins.com^ +ÿï08@R toormpc.com^ +ÿï08@R top-news.su^Ô +ÿï08@R top-news3.ru^ +ÿï08@R top10blog.ru^ +ÿï08@Rtopadvertur.ru^ +ÿï08@R +topcpa.ru^ +ÿï08@R +tophin.ru^ +ÿï08@Rtopisiders.ru^ +ÿï08@Rtoplaygame.ru^ +ÿï08@Rtopsmi.ru.com^ +ÿï08@R toraccept.ru^ +ÿï08@R torgdom.biz^ +ÿï08@R +torguz.ru^ +ÿï08@R torkok.com^ +ÿï08@R tormun.com^ +ÿï08@Rtoroptotrab.ru^ +ÿï08@R torr-ext.ru^ +!ÿï08@Rtorrent-6gg.site^ +!ÿï08@Rtorrent-gox.site^ +ÿï08@Rtorstytons.pro^ +ÿï08@R torwind.com^ +ÿï08@R totrena.ru^ +ÿï08@R totsinuts.ru^ +ÿï08@R toujoute.com^ +ÿï08@Rtourteaser.ru^ +ÿï08@R toutiles.com^ +$ÿï08@Rtovar.helloprice.ru^ +ÿï08@R tovarro.com^ +ÿï08@Rtowithdureb.ru^ +ÿï08@R towrfd.com^ +%ÿï08@Rtoxy9ikenenxtf0f.com^ +ÿï08@R tozimoto.com^ +ÿï08@R tozipoto.com^ +ÿï08@R tozitoto.com^ +ÿï08@Rtozovulozi.com^ +ÿï08@R tp-em.cc^ +ÿï08@R tpembar.com^ +ÿï08@R tpjsqt.com^ +ÿï08@R +tpxur.top^ +!ÿï08@Rtqeobp89axcn.com^ +ÿï08@R +tqqjk.top^ +&ÿï08@Rtr6rfgjix6tlr8bp.info^ +!ÿï08@Rtrackclicks.info^ +ÿï08@R trackeroc.tk^ +ÿï08@Rtracklab.club^ +ÿï08@R trackni.com^ +ÿï08@Rtradeleads.su^ +ÿï08@R traderseo.ru^ +ÿï08@R trafall.com^ +ÿï08@R trafalz.com^ +ÿï08@R trafers.ru^ +ÿï08@R trafex.net^ +ÿï08@Rtraffclick.me^ +ÿï08@R traffer.biz^ + ÿï08@Rtraffic-king.ru^ +!ÿï08@Rtraffictoadv.com^ +ÿï08@R traffim.com^ +ÿï08@R traffkin.org^ +ÿï08@Rtraffmagic.ru^ + ÿï08@Rtraffpartner.ru^ +ÿï08@R traffpay.ru^ +ÿï08@R traffru.ru^ +ÿï08@R trafgid.com^ + ÿï08@Rtrafic-media.co^ +ÿï08@R trafidet.ru^ +ÿï08@R +trafka.ru^Þ +ÿï08@R traflink.ru^ +ÿï08@R trafmake.ru^ +ÿï08@Rtrafmaster.com^ +ÿï08@R trafned.ru^ +ÿï08@R trafobmen.ru^ +ÿï08@R trafoklik.ru^ + ÿï08@Rtraforet.online^ +ÿï08@R +trafpo.ru^ +ÿï08@R trafpyat.ru^ +ÿï08@R trafser.ru^ +ÿï08@R trafshet.ru^ +ÿï08@R trafsiz.com^ +ÿï08@Rtrafstore.com^ +ÿï08@R trafsub.ru^ +ÿï08@R traftiz.com^ +ÿï08@R trafviv.ru^ +ÿï08@R +trahik.ru^ +ÿï08@R traient.com^ +"ÿï08@Rtrailer-games.com^ +$ÿï08@Rtrailerfilma.online^ + ÿï08@Rtrailerfilma.ru^ +!ÿï08@Rtrailermarket.ru^ +ÿï08@R trampam.co^ +ÿï08@Rtrandsey.info^ + ÿï08@Rtranqvilius.com^ + ÿï08@Rtransfertraf.ru^ +ÿï08@R transfto.com^ +ÿï08@R transiz.ru^ +ÿï08@Rtranziceleb.ru^ +ÿï08@Rtranzitcash.ru^ +!ÿï08@Rtranzithealth.ru^ +"ÿï08@Rtranzithistory.ru^ +ÿï08@Rtranzitinfo.ru^ +ÿï08@R tranzits.com^ + ÿï08@Rtrapfleyb-bs.ru^ +ÿï08@R traszer.pro^ +!ÿï08@Rtratataololol.ru^ +ÿï08@Rtratouler.com^ +ÿï08@Rtravelerstv.ru^ +ÿï08@R tredman.com^ +ÿï08@R treered.ru^ +ÿï08@R treis.ml^ +ÿï08@R trelss.club^ +!ÿï08@Rtrenchenious.com^ +ÿï08@R treprime.com^ +ÿï08@R +trevro.ru^ +ÿï08@R trfmxt.com^ +ÿï08@Rtrial4eset.com^ +ÿï08@R trilebas.ru^ +"ÿï08@Rtriplestat.online^ +ÿï08@R +trisol.ru^ +ÿï08@Rtriuudsad.mobi^ +ÿï08@R trkleads.ru^ +ÿï08@R trklp.ru^ +ÿï08@R trmedie.ru^ +ÿï08@R trofiso.ru^ +ÿï08@R trofvid.com^ +ÿï08@R trofvido.com^ +ÿï08@R +tromen.ru^ +'ÿï08@Rtropic88weather.center^ +ÿï08@Rtropicalos.com^ +ÿï08@R trst-st.com^ +"ÿï08@Rtruefalsetalk.com^ +ÿï08@R truemedic.ru^� +ÿï08@R truenat.bid^ +ÿï08@R truenty.com^ +ÿï08@R trufavid.com^ +ÿï08@R truksi.com^ +ÿï08@R trunderka.ru^ +ÿï08@R truned.com^ +ÿï08@R trunex.info^ +#ÿï08@Rtrusthalloween.com^ +ÿï08@R trustjs.net^ +#ÿï08@Rtrustrevievvs.info^ +ÿï08@R +trvdp.com^ +ÿï08@R +trxxh.com^ +ÿï08@R trynews.me^ +ÿï08@R ts-ads.info^ +ÿï08@R tsilepe.ru^ +ÿï08@R tsinadol.ru^ +ÿï08@R tsita.ru^ +ÿï08@R tsitroma.ru^ +ÿï08@Rtsnsniper.com^ +ÿï08@R +tsunam.ru^ +ÿï08@Rtsystatic.com^ +ÿï08@R tsytomer.ru^ + ÿï08@Rtta3w6e98cka.ru^ +ÿï08@R ttarget.ru^ +ÿï08@R ttclkl.com^ +ÿï08@R tteasr.com^ +ÿï08@R ttfean.com^ +ÿï08@R ttluae.com^ +ÿï08@R ttvnps.com^ +ÿï08@Rtubogomifo.com^ +ÿï08@Rtuclother.info^ +ÿï08@R tuiote.com^ +ÿï08@R tulip18.com^ +ÿï08@R tune-up.site^ +ÿï08@Rturbotraf.com^ +!ÿï08@Rturismosport.com^ +$ÿï08@Rturkishturkish.info^ +ÿï08@R turmene.ru^ +ÿï08@R +tv-ads.ru^ +ÿï08@Rtv-serial.info^ +ÿï08@R tverfss.ru^ +ÿï08@R tvigl.info^ +ÿï08@R tvoigost.ru^ +)ÿï08@Rtvoy-start.com/partnerka/ +ÿï08@Rtvw8edxhpf.ru^ +ÿï08@R tw0dmn.com^ +ÿï08@R twibe.su^ +ÿï08@R twitep.com^ +ÿï08@R twodrive.su^ +ÿï08@R twtmle.com^ +ÿï08@R txtfeed.club^ +ÿï08@Rtyjjavlp5w.ru^ +ÿï08@R typiol.com^ +ÿï08@R typwwg.com^ +ÿï08@R typyky.com^ +ÿï08@R tytytutu.ru^ +ÿï08@R +tyupo.com^ +ÿï08@R +tyypv.com^ +ÿï08@Ru0mgpv6831.ru^ +ÿï08@R u1tshop.ru^ +ÿï08@R u2bmco.com^ +ÿï08@R u2mshop.ru^ +ÿï08@R u2tshop.ru^ +ÿï08@Ru7kgr54jr7.ru^Ä +ÿï08@R +uaadi.com^ +ÿï08@Rub41.tk^ +ÿï08@R +ubdwc.com^ +ÿï08@R +ubfhq.top^ +ÿï08@R ublrfs.com^ +ÿï08@R ubqeoa.com^ +ÿï08@R uchmuk.com^ +ÿï08@R uclead.com^ +ÿï08@Rucurtatus.com^ +ÿï08@R +uegbqw.ru^ +ÿï08@R uehwxf.com^ +ÿï08@R +ueopf.com^ +"ÿï08@Ruezbshzpdcbb.info^ +ÿï08@R ufcplayer.ru^ +ÿï08@R ufuemi.com^ +ÿï08@R ugadn39.ru^ +ÿï08@R ughtedrab.ru^ +ÿï08@Rughtottof.com^ +ÿï08@R ughwashis.ru^ +ÿï08@R ugonrin.com^ +ÿï08@R +ugyfw.top^ +ÿï08@R ugyyod.com^ +ÿï08@R uhabab.com^ +ÿï08@R +uhdif.top^ +ÿï08@R uitrens.ru^ +ÿï08@R ujokee.com^ +"ÿï08@Rujoongeilaej.info^ +ÿï08@Rujrigp3vkr.com^ +ÿï08@R ujtjjj.com^ +ÿï08@R +ukamer.ru^ +ÿï08@R ukhjac.com^ +'08@Rukrmir.net/top_rating.php +ÿï08@R ukrotsel.ru^ +ÿï08@R +ulaen.com^ +ÿï08@R ulclick.ru^ +ÿï08@R uldmare.com^ +ÿï08@R +ulenr.top^ +ÿï08@R +ulogin.ru^ +ÿï08@R ultrapay.net^ +ÿï08@Rulyvjty4rd.com^ +ÿï08@R umagnet.ru^ +ÿï08@Rumrefebaot.biz^ +ÿï08@R umwiba.com^ +ÿï08@R unads.ru^ +ÿï08@Runbraceous.men^ +ÿï08@R +unclic.ru^ +ÿï08@Runder-click.ru^ +ÿï08@R undere.com^ +$ÿï08@Rundersite.pages.dev^ +ÿï08@Rundrithadat.ru^ +ÿï08@R undzbe.com^ +#ÿï08@Runfeaecmhszmsx.com^ +!ÿï08@Runholyrsounds.in^ +ÿï08@R uniads.net^ +ÿï08@R unikuni.com^ +ÿï08@Runiontraff.com^ +1ÿï* + +dfm.ru08@Runisound.cdnvideo.ru^ +ÿï08@R unisound.net^ +"ÿï08@Runiversal-lnk.net^ +"ÿï08@Runiversal-mat.com^ +!ÿï08@Runiversallnk.com^ +ÿï08@Runixfuture.com^ +ÿï08@Runmonoland.net^ +ÿï08@R unoadsrv.com^— +ÿï08@R untily.com^ +ÿï08@R unugren.ru^ +#ÿï08@Runworthytongue.com^ +ÿï08@R +unwsrv.ru^ +ÿï08@R +unzpc.com^ +ÿï08@R +uocux.com^ +ÿï08@R +uoldid.ru^ +ÿï08@R +upboom.ru^ +&ÿï08@Rupdatesflashplayer.ml^ +ÿï08@R +upgyu.com^ +ÿï08@R upincome.ru^ +ÿï08@R upkbrx.com^ +ÿï08@R upravel.com^ +ÿï08@Ruptodater.net^ +ÿï08@R +uqfot.com^ +ÿï08@R uqystk.com^ +ÿï08@R ur-listok.ru^ +!ÿï08@Rurancspitte.info^ +ÿï08@R +uredy.top^ +ÿï08@R urfphr.com^ +ÿï08@R +urgdk.top^ +ÿï08@R urlrtb.com^ +ÿï08@R uryle.ru^ +ÿï08@Rus1tryasemi.ru^ +ÿï08@Rus2ozhalin.ru^ +ÿï08@Rus3mnavice.ru^ +ÿï08@Rus4hnicser.ru^ +ÿï08@Rus5fzonaco.ru^ +ÿï08@Rus6odtasve.ru^ +ÿï08@R us97udx.com^ +ÿï08@R uself.in^ +ÿï08@Ruselingdo.com^ +ÿï08@R useorthe.com^ +"ÿï08@Rusermediaclick.ru^ +ÿï08@Rusesentry.com^ +ÿï08@R usimonat.com^ +ÿï08@R uss1star.com^ +ÿï08@R uss2star.com^ +"ÿï08@Russelftarocco.com^ +ÿï08@R usstero.com^ +ÿï08@R ustinvest.ru^ +ÿï08@R utilient.com^ +ÿï08@R utilieur.com^ + ÿï08@Rutilmasters.com^ +ÿï08@R utimg.ru^ +ÿï08@R utl-utils.ru^ +ÿï08@R utraff.com^ +ÿï08@Ruttclimber.com^ + ÿï08@Ruua5jr2z1vq0.ru^ +ÿï08@R +uuaoy.com^ +ÿï08@R uvbngsj.pro^ +ÿï08@R +uvcwj.com^ +ÿï08@R uvekeofb.biz^ +ÿï08@R uvlefon.ru^ +ÿï08@R +uvrago.ru^ +ÿï08@R uwams.info^ +ÿï08@R uwamsfd.cc^ +ÿï08@R uwdvcn.com^ +ÿï08@R uwqfq.space^ +ÿï08@R +uwsxz.com^ +ÿï08@R uwuyn.us^ +ÿï08@R uwwaml.com^ +ÿï08@R uymjbn.com^ +ÿï08@R uytichas.ru^ð +ÿï08@R uyzfal.com^ +ÿï08@R uzmdfi.com^ +ÿï08@R uznat-vse.ru^ +ÿï08@R uzttnr.com^ +ÿï08@R v.cdn4.life^ +"ÿï08@Rv1-c73e.kxcdn.com^ +ÿï08@Rv1v.be^ + ÿï08@Rv2mlemerald.com^ +ÿï08@R v2mljs.org^ +ÿï08@Rv2mlyellow.com^ +ÿï08@Rvaderinis.com^ +ÿï08@R vadideo.com^ +%ÿï08@Rvaivaishemeshinda.ml^ +ÿï08@R vakafaro.com^ +ÿï08@R vakataro.com^ +ÿï08@R vaksamu.ru^ +ÿï08@R valkirum.com^ +ÿï08@Rvallgalium.com^ +ÿï08@R var-tovar.ru^ +#ÿï08@Rvarinitconfique.ru^ +!ÿï08@Rvarious1down.biz^ + ÿï08@Rvarroterius.com^ +ÿï08@Rvarsloqt.name^ +"ÿï08@Rvast*.videocdn.tv^ +ÿï08@Rvast.6550.tech^ +&ÿï08@Rvast.bazonserver.site^ +!ÿï08@Rvast.videocdn.tv^ +ÿï08@Rvathesab.info^ +ÿï08@R vatizon.com^ +ÿï08@R vbm2016.com^ +ÿï08@R vbmay16.com^ +ÿï08@R +vbmer.com^ +ÿï08@Rvbmjune25.com^ +ÿï08@R vboys.ru^ +ÿï08@R vbymag.com^ +ÿï08@Rvcmjf535tx.ru^ +ÿï08@R +vcnnz.com^ +ÿï08@R +vdwlf.net^ +ÿï08@R vdxybm.biz^ +ÿï08@Rvectorzone.net^ + ÿï08@Rveda-consult.ru^ +ÿï08@Rvedofuros.com^ +ÿï08@R +vedrun.ru^ +ÿï08@R +veezy.one^ +#ÿï08@Rvek9usxpoal.online^ +&ÿï08@Rvelimudrperemudril.ru^ +ÿï08@R velopoc.ru^ +ÿï08@Rvengovision.ru^ +ÿï08@R +venova.ru^ +ÿï08@R ventite.com^ +ÿï08@Rveretiggoo.com^ +ÿï08@Rvergilimus.com^ +ÿï08@Rverhedttot.pro^ +ÿï08@R veroui.com^ +ÿï08@R vesiboe.ru^ +%ÿï08@Rvesjolye-vedrussy.ru^ +ÿï08@R vesofich.ru^ +!ÿï08@Rveu16utbnrg.info^ + ÿï08@Rveu9erxdnr.site^ +ÿï08@R vexvwh.com^ +ÿï08@R vfunls.com^ +ÿï08@Rvgfutxwgq.com^ +ÿï08@Rvhffsspdsw.com^ +ÿï08@Rvi.cdnvideo.ru^† +ÿï08@R +vi012.com^ +ÿï08@R viaqoo.tech^ +!ÿï08@Rviavideo.digital^ +ÿï08@R vicodes.com^ +ÿï08@Rvictorycorp.ru^ +ÿï08@R vidalak.com^ +ÿï08@R vidasys.ru^ +ÿï08@R vidaugust.ru^ +ÿï08@R videc10.com^ +ÿï08@Rvideo-play.ru^ +!ÿï08@Rvideo-remonta.ru^ +ÿï08@Rvideo-share.ru^ +&ÿï08@Rvideo.market-place.su^ +"ÿï08@Rvideo.videonow.ru^ +ÿï08@R video001.com^ +ÿï08@R video002.com^ +ÿï08@R video003.com^ +ÿï08@Rvideo1002.com^ +ÿï08@R video103.ru^ +ÿï08@Rvideo1132.com^ +ÿï08@Rvideoaugust.ru^ +!ÿï08@Rvideoblock.co.il^ +ÿï08@Rvideobrain.org^ +$ÿï08@Rvideoburner2015.com^ +ÿï08@R videocap.org^ +"ÿï08@Rvideocolector.com^ + ÿï08@Rvideoframe.blue^ +"ÿï08@Rvideoframe.online^ +ÿï08@Rvideohead.tech^ +ÿï08@R videohup.com^ +ÿï08@Rvideohype.net^ +ÿï08@R videojuly.ru^ +ÿï08@R videojune.ru^ +ÿï08@Rvideoleks.com^ +ÿï08@Rvideolink.host^ +ÿï08@Rvideolink.site^ + ÿï08@Rvideolink.space^ +#ÿï08@Rvideonews24.online^ +ÿï08@R videonow.ru^ +)ÿï08@Rvideoplayer.ru^*/banners/ +ÿï08@Rvideopotok.pro^ +!ÿï08@Rvideoprodavec.ru^ +ÿï08@R videorot.com^ +ÿï08@R videortb.ru^ +ÿï08@R videoseed.by^ + ÿï08@Rvideoselfer.com^ +ÿï08@Rvideosmor.com^ +ÿï08@Rvideotoper.com^ +!ÿï08@Rvideotrailer.top^ +ÿï08@Rvideovikt.com^ +ÿï08@Rvideovint.com^ +ÿï08@R videsjs.com^ +ÿï08@R vidgain.com^ +ÿï08@R vidigital.ru^ +ÿï08@R vidik.co^ +ÿï08@R vidkoz.com^ +ÿï08@R vidmsc.com^ +ÿï08@R vidodim.com^ +ÿï08@R vidozex.ru^ +ÿï08@R vidplah.com^ +ÿï08@R vidroll.ru^ +ÿï08@R vids63.com^ +ÿï08@R vidseed.com^ +ÿï08@R +vidseed.ru© +ÿï08@R vidshm.com^ +ÿï08@Rvidsummer.com^ +ÿï08@R +vidtok.ru^ +ÿï08@R vidustal.com^ +ÿï08@R +vidyp.com^ +ÿï08@R vietalle.com^ +ÿï08@R viewst.com^ +ÿï08@Rviewtraff.xyz^ +ÿï08@R +vifog.com^ +ÿï08@R vifzod.com^ +ÿï08@R vigisz.com^ +ÿï08@R +viglir.ru^ +ÿï08@R viifax.com^ +ÿï08@R viille2.com^ +ÿï08@R viiotx.com^ +ÿï08@R vijule.com^ +ÿï08@R vijune.com^ +ÿï08@R viksate.com^ +ÿï08@Rvilumirian.biz^ +ÿï08@R +vim100.ru^ +ÿï08@R vimart16.com^ +ÿï08@R +vimvio.ru^ +,ÿï08@Rvincakrdzalosimasmoxvdes.ga^ +ÿï08@R vinov24.com^ +ÿï08@R vinregle.com^ + ÿï08@Rvioturallis.com^ +ÿï08@Rvip-click.biz^ +ÿï08@Rviparchive1.ru^ +ÿï08@R vipavf.com^ +ÿï08@Rvipsearch.guru^ +ÿï08@Rvipteaser.net^ +ÿï08@R vir70n.news^ +ÿï08@R viral-cdn.ru^ +ÿï08@Rvirtonnews.com^ +ÿï08@R viruntek.ru^ +ÿï08@R +vis19.com^ +!ÿï08@Rvisitscounter.ru^ +ÿï08@R visiweb.top^ +ÿï08@R visummer.com^ +ÿï08@R +vitido.ru^ +$ÿï08@Rvitos.freezfiles.ru^ +ÿï08@R vitsum.com^ +ÿï08@R viturek.com^ +ÿï08@R +viutb.com^ +ÿï08@Rviva-vanna.ru^ +ÿï08@R vivacocc.com^ +ÿï08@Rvivilonium.com^ +ÿï08@R +vjcbm.com^ +ÿï08@R vjqvcl.com^ +ÿï08@R vk.com/rtrg +ÿï08@R vk242.ru^ +)ÿï* + +vk.company08@R vkcdn.ru^ +ÿï08@R +vkkpv.com^ +ÿï08@R vklasse.info^ +ÿï08@R +vkmoll.ru^ +ÿï08@Rvkmonster.com^ +ÿï08@Rvkonrakte.com^ +ÿï08@R vkout.ru^ +ÿï08@R vkw4n.ru^ +ÿï08@R vkwaeo.com^ +ÿï08@R vlgpkn.com^ +ÿï08@R vlkpcdn.com^ +ÿï08@R vlvmo.space^ +!ÿï08@Rvm05usxhnvfu.pro^Š +ÿï08@R vmblock.net^ +ÿï08@Rvmet.ro^ +ÿï08@R +vmjel.com^ +ÿï08@R vmk9esx.info^ +ÿï08@R vmkxcsss.ru^ +ÿï08@Rvn-chk123.com^ +ÿï08@Rvn-chk777.com^ +!ÿï08@Rvne56qxpovf.info^ +ÿï08@Rvne56wxlo.shop^ +ÿï08@Rvne56wxlo.tech^ +ÿï08@R +vnhhg.com^ +!ÿï08@Rvnlxijwb6yu1w.ru^ +ÿï08@R vnrvss.com^ +ÿï08@R vogfzg.com^ +ÿï08@R vogodita.com^ +ÿï08@R vogorita.com^ +ÿï08@R vogozapa.ru^ +ÿï08@R vogozaq.ru^ +ÿï08@R vogozara.ru^ +ÿï08@R vogozita.com^ +"ÿï08@Rvoidnetwork.cloud^ +ÿï08@R voiledu.com^ +ÿï08@R voilek.com^ +ÿï08@Rvokayatus.com^ +ÿï08@Rvolanosier.com^ +ÿï08@Rvongomedia.ru^ +ÿï08@Rvonline0121.ru^ +ÿï08@R vooment.com^ +ÿï08@R voono.ru^ +ÿï08@Rvoortexter.com^ +ÿï08@R +vornz.com^ +ÿï08@R +vpbyl.com^ +ÿï08@R +vpdsd.top^ +ÿï08@R +vpejn.top^ +ÿï08@R vpnclick.biz^ +ÿï08@R +vpvsy.com^ +ÿï08@R vqfqo.us^ +ÿï08@R vqhrqt.com^ +ÿï08@R +vqjep.com^ +ÿï08@R vqmcyx.com^ +ÿï08@R vrcteam.ru^ +ÿï08@R vrt.news^ +ÿï08@R +vrzgn.com^ +ÿï08@R vsdjk44.ru^ +ÿï08@Rvse-molitvi.ru^ +ÿï08@R vseobmrt.ru^ +ÿï08@R vseokei.ru^ + ÿï08@Rvsevmedicine.ru^ +ÿï08@R +vt4dlx.ru^ +ÿï08@R +vtbqk.com^ +ÿï08@R +vtds.info^ +ÿï08@R +vtexte.ru^ +ÿï08@R vtomate.biz^ +ÿï08@Rvtow9hdcvj.ru^ +"ÿï08@Rvuidbsgnhfdaa.com^ + ÿï08@Rvultispotus.com^ +ÿï08@R vumek.club^ +ÿï08@R vuntara.com^ +ÿï08@R vutatik.ru^ +ÿï08@R vutrem.com^ +ÿï08@R +vuwgt.com^ +ÿï08@R vuwsdds.pro^ +ÿï08@R vvmblock.ru^ +ÿï08@R vvvsd.space^£ +ÿï08@R +vwcsl.com^ +ÿï08@R +vwijf.com^ +ÿï08@R +vxbykr.ru^ +ÿï08@R vxibqk.com^ +ÿï08@Rvyd5aaalwd.ru^ +ÿï08@R vydxiw.com^ +ÿï08@R vymapa.info^ +ÿï08@R vyocqq.com^ +ÿï08@R vyufpd.com^ +ÿï08@R vyvodyo.ru^ +ÿï08@R vzclick.com^ +ÿï08@R vzrufh.com^ +ÿï08@R +vztfc.com^ +ÿï08@R +vzuxy.com^ +ÿï08@R vzvkok.info^ +ÿï08@R +w-llke.ru^ +ÿï08@R w-lobo.com^ +ÿï08@R w-lofo.com^ +ÿï08@R w-loko.com^ +ÿï08@R w-lolo.com^ +ÿï08@R w-lomo.com^ +ÿï08@R w-loro.com^ +ÿï08@R w-loto.com^ +ÿï08@R w-lovo.com^ +ÿï08@R w-lozo.com^ +ÿï08@R w-rada.com^ +ÿï08@R w38store.ru^ +ÿï08@R +w4h5ae.ru^ + ÿï08@Rw697oiiqsbmp.ru^ +ÿï08@Rw716eb02n9.ru^ +ÿï08@R w717.com^ +ÿï08@Rwad.ojooo.com^ +ÿï08@Rwaigettwini.ml^ +ÿï08@Rwait.re^ +ÿï08@R waladon.com^ +!ÿï08@Rwalkingdead.club^ +ÿï08@R wand66.info^ +ÿï08@R +waogi.com^ +ÿï08@Rwap-click.bid^ +ÿï08@R wapbublik.ru^ +ÿï08@R wapratios.ru^ +!ÿï08@Rwapstaterpart.ru^ +ÿï08@Rwasbetenhep.ru^ +ÿï08@R wasdalta.ru^ +ÿï08@R washadca.ru^ + ÿï08@Rwasshimundme.ru^ +!ÿï08@Rwasslitthimor.ru^ +ÿï08@R watch73.info^ +"ÿï08@Rwateraddicted.com^ +ÿï08@R +watrz.com^ +ÿï08@R waverhow.pro^ +ÿï08@Rwbid.ru^ +ÿï08@R wcgthe.com^ +ÿï08@Rwcoeaykv78.ru^ + ÿï08@Rwcyqvibm8i.site^ +ÿï08@R wdfg.pro^ +$ÿï08@Rweather-suits.today^ + ÿï08@Rweaveworldtv.ru^ +ÿï08@Rweb-games.biz^ +!ÿï08@Rweb-rotation.net^ + ÿï08@Rweb-rotator.net^ +!ÿï08@Rwebadvert-gid.ru^ + ÿï08@Rwebadvertgid.ru^ +ÿï08@R webkinq.ru^‡ +%ÿï08@Rweblion777.github.io^ +ÿï08@Rwebmastak.net^ +"ÿï08@Rwebmasterskyi.com^ +ÿï08@R webmine.cz^ +!ÿï08@Rwebminerpool.com^ +ÿï08@R webmining.co^ +!ÿï08@Rweborama-tech.ru^ +ÿï08@R weborama.com^ +ÿï08@R webpushs.com^ +ÿï08@Rwebrotator.net^ +ÿï08@Rwebrotator.org^ +ÿï08@Rwebstudia1.ru^ +ÿï08@R webturn.ru^ +%ÿï08@Rwebvideomarketing.ru^ +ÿï08@R wecai.us^ +ÿï08@R wedgeac.com^ +ÿï08@R wedlsite.com^ +ÿï08@Rwednesfeb.com^ +ÿï08@R wedtor.com^ +#ÿï08@Rweebvivian72.uk.to^ +ÿï08@R weevah2.top^ +ÿï08@Rwegonnaout.com^ +ÿï08@Rwek7ipqx359.ru^ +ÿï08@Rwelldanius.com^ +ÿï08@Rwelocnews.info^ +ÿï08@R wepekud.com^ +ÿï08@Rwerastinus.com^ +ÿï08@R weropiy.com^ +ÿï08@R wertuip.com^ +"ÿï08@Rwesternbubble.com^ + ÿï08@Rwet-kitty.store^ +ÿï08@Rwetg.ml^ +ÿï08@Rwetpussyhd.com^ +ÿï08@R +wett45.ru^ +ÿï08@R wexesz.com^ +ÿï08@R +wfhoj.com^ +ÿï08@R wgtqqn.com^ +ÿï08@R +wguke.com^ +ÿï08@R wgwrp7yv.ru^ +ÿï08@Rwhatsupp25.biz^ +ÿï08@Rwheretogo.bid^ +ÿï08@R whhrux.com^ +ÿï08@R whisla.com^ +#ÿï08@Rwhiteboxdigital.ru^ +!ÿï08@Rwhiteippcode.com^ +ÿï08@R whtmyco.com^ +ÿï08@R widefox.ru^ +ÿï08@R widetunel.ru^ +(ÿï08@Rwidget.mediastealer.com^ +%ÿï08@Rwidget.socialmart.ru^ +ÿï08@Rwikianimez.ru^ +ÿï08@Rwildianing.ru^ +ÿï08@Rwildmikky.com^ +ÿï08@Rwildownload.ru^ +ÿï08@R wilpehap.pro^ +ÿï08@Rwin-legko.info^ + ÿï08@Rwin2profit1.com^ +ÿï08@R windcdna.com^ +ÿï08@R window7.info^ +$ÿï08@Rwings-dark.services^ +ÿï08@R winloader.ru^ +ÿï08@Rwinniepuh.info^ +ÿï08@R winvideo.me^ +ÿï08@R winvideo.org^¶ +ÿï08@R winvideo.su^ +ÿï08@Rwirtusspro.ru^ +ÿï08@R wis-his.com^ +ÿï08@R wisertb.com^ +ÿï08@R wisoky.biz^ + ÿï08@Rwisokykulas.bid^ +ÿï08@R witherty.ru^ +&ÿï08@Rwithnewswearebest.com^ +ÿï08@Rwitthethim.com^ +&ÿï08@Rwizard-traffstock.com^ +!ÿï08@Rwizardclick.site^ + ÿï08@Rwizardmedia.org^ +ÿï08@R wizmzp.com^ +ÿï08@R +wjzvx.com^ +ÿï08@R wkrek.ru^ +ÿï08@R +wksym.top^ +ÿï08@R wlbann.com^ +ÿï08@R wlboon.com^ +ÿï08@R wlsport.com^ +ÿï08@R wlyeo90l.pro^ +ÿï08@R wmbankir.ru^ +ÿï08@Rwmd773834t.com^ +ÿï08@Rwme.biz^ +ÿï08@R wmgroup.us^ +ÿï08@Rwmip.ru^ +ÿï08@R +wmrak.com^ +ÿï08@R wmrfast.com^ +ÿï08@R wmsites.ru^ +ÿï08@R wnpbdan.bid^ +ÿï08@R woazowup.net^ +ÿï08@R +wokoq.com^ +ÿï08@R wom8day.ru^ +ÿï08@Rwomanshouz.ru^ +ÿï08@Rwomenchop.com^ +ÿï08@Rwomendesign.ru^ +ÿï08@R womenset.ru^ +ÿï08@R woofpok.com^ +"ÿï08@Rworkerconnect.biz^ +ÿï08@R workerz1.com^ +ÿï08@R worldeye.ru^ +ÿï08@Rworldoffer.ru^ +ÿï08@Rwormjimfans.ru^ +ÿï08@R woryuc.com^ +ÿï08@R wowboom2.ru^ +ÿï08@R wowlink.ru^ +ÿï08@Rwowodarta.com^ +'ÿï08@Rwp-r.github.io/hgfhfgh/ +ÿï08@R +wpad.farm^ +ÿï08@R wpvdt.space^ +ÿï08@Rwqgkainysj.ru^ +ÿï08@R wqs7j.ru^ + ÿï08@Rwraithrolls.com^ +ÿï08@R +wregf.biz^ +ÿï08@Rwronsitand.ru^ +&ÿï08@Rwrontineventonjec.pro^ +ÿï08@R wshosting.ru^ +ÿï08@R wsnsol.com^ +ÿï08@R wsnzjh.com^ +ÿï08@R wssdoo.com^ +ÿï08@R +wsvay.com^ +ÿï08@R wtoredir.com^ + ÿï08@Rwts-rotator.com^ +ÿï08@Rwucm.ru^ +ÿï08@R wuidtl.com^ý +ÿï08@R +wuvxr.top^ +ÿï08@R wvclrl.com^ +ÿï08@R wveeir.com^ +ÿï08@R +wvghl.com^ +ÿï08@R +wvzhj.com^ +ÿï08@R wwclick.su^ + ÿï08@Rwwclickads.club^ +ÿï08@Rwwclickgo.com^ +!ÿï08@Rwwclicknews.club^ +ÿï08@R +wwgate.ru^ +ÿï08@R wwgdwl.com^ +"ÿï08@Rwwopenclick.space^ + ÿï08@Rwwopenclick.vip^ +ÿï08@R wwsphj.com^ +#ÿï08@Rwww-orbit-promo.ru^ +ÿï08@R www.rt-ns.ru^ +ÿï08@Rwwwapteka.info^ +ÿï08@R wwytjk.com^ +ÿï08@R +wxbup.top^ +ÿï08@R wxsbph.com^ +ÿï08@Rwxwf9klazp.ru^ +ÿï08@R +wycji.top^ +ÿï08@R +wydpt.com^ +ÿï08@R +wyuxy.com^ +ÿï08@R +wyznj.com^ +ÿï08@R +wzaqh.com^ +ÿï08@R x-ip-adv.com^ +ÿï08@Rx-ip-adwpc.com^ +ÿï08@R x-ip-wiz.com^ +ÿï08@R +x-tds.com^ +ÿï08@R x-vulkan.net^ +!ÿï08@Rx4bvzeu74j1.site^ +ÿï08@R x7nkj.ru^ +ÿï08@R xafhra.com^ +ÿï08@R +xalisi.co^ +ÿï08@R +xanxj.com^ +ÿï08@R +xaogi.com^ +ÿï08@R +xawab.com^ +!ÿï08@Rxaxvixamanwka.tk^ +ÿï08@R +xb8nuy.ru^ +ÿï08@Rxbasfbno.info^ +ÿï08@R +xcufz.top^ +ÿï08@R xdbwoc.com^ +ÿï08@R +xdgeph.ru^ +ÿï08@R xebalovo.com^ +ÿï08@R xeclick.com^ +ÿï08@R xeemcol.com^ +ÿï08@Rxenuhetus.com^ +ÿï08@R +xepok.icu^ +ÿï08@R xeqzsa.com^ +ÿï08@R xeroz.ru^ +ÿï08@R xewoza.com^ +ÿï08@Rxewuzetus.com^ +ÿï08@R +xexyc.com^ +ÿï08@R xfjfyb.com^ +ÿï08@R +xfktm.com^ +ÿï08@R +xfncv.com^ +ÿï08@R +xfnvb.biz^ +ÿï08@Rxg2o402yyy.ru^ +ÿï08@R xguqeh.com^ +ÿï08@Rxgwegewd.site^ +ÿï08@Rxhivjkfghj.com^ +ÿï08@R xhzspi.com^ +ÿï08@R xicoef.com^© +ÿï08@R +xiepl.com^ +ßï08@R +xifg6h.ru^ +ÿï08@Rxiss.ru^ +ÿï08@R +xiuuh.com^ +ÿï08@R +xjqha.com^ +ÿï08@R xjwzbo.com^ +ÿï08@R xl-trk.com^ +ÿï08@R +xl415.com^ +ÿï08@R xlbz.com^ +ÿï08@R xlfccb.com^ +ÿï08@R +xlnuj.com^ +ÿï08@R +xlog.info^ +ÿï08@R xlounge.ru^ +ÿï08@R +xlrvh.top^ +ÿï08@R xltraff.net^ +$ÿï08@Rxlugjbgvlxjpxbl.com^ +;ÿï08@R+xn-----7kcnh2ac3afebiffxijf2d6a5e.xn--p1ai^ +*ÿï08@Rxn----8sbb1a6bcd.xn--p1ai^ +(ÿï08@Rxn----btbuotfd.xn--p1ai^ +-ÿï08@Rxn----etbhjdhwegjlz.xn--p1ai^ + ÿï08@Rxochuanime.site^ +ÿï08@R xooplo.com^ +ÿï08@Rxoor.ru^ +ÿï08@Rxoramotus.com^ +ÿï08@R xoueiu.com^ +ÿï08@R +xpbgo.top^ +ÿï08@R +xpicw.top^ +ÿï08@R +xptvk.com^ +ÿï08@R xpush.site^ +"ÿï08@Rxq5tf4nfccrb.info^ +ÿï08@R xr-tds.com^ +ÿï08@R xrb3w.ru^ +ÿï08@R xrlpgy.com^ +ÿï08@R xs-tds.com^ +ÿï08@R +xshop1.ru^ +ÿï08@R +xshop2.ru^ +ÿï08@R +xshop3.ru^ +ÿï08@R xstat.me^ +ÿï08@R xtkl7.ru^ +ÿï08@R xtpfhu.com^ + ÿï08@Rxtransferme.com^ +ÿï08@R +xtvoh.com^ +ÿï08@R xulidu.info^ +ÿï08@R xulowi.com^ +ÿï08@R xunbl.space^ +ÿï08@R xuqktf.com^ +ÿï08@Rxutixatum.com^ +ÿï08@R xuuclck.com^ +ÿï08@R xuvqgs.com^ +ÿï08@Rxv17qt39j6.ru^ +ÿï08@R xveenk.com^ +ÿï08@R +xvhvm.top^ +ÿï08@R xvisred.ru^ +#ÿï08@Rxvqiwmxomsvekp.com^ +ÿï08@Rxw1fx50x35.com^ +ÿï08@R xwell.ru^ +!ÿï08@Rxwjwdjhb3a.space^ + ÿï08@Rxxf65z4o6a.club^ +ÿï08@R xxslu.space^ +ÿï08@R xxuhter.ru^ +ÿï08@R xxuz.com^ +ÿï08@R xxyolk.com^ +ÿï08@R +xyapj.com^ +ÿï08@R +xydjj.top^‰ +ÿï08@R +xyghv.com^ +ÿï08@R xytur.ru^ +ÿï08@Rxzf7fjodct.ru^ +ÿï08@R +xzwdo.top^ +ÿï08@R y0gasoil.fyi^ +ÿï08@Ry3br2xj9q6.ru^ + ÿï08@Ry7nrz6vobc.tech^ +ÿï08@Ry8lsyibocd.ru^ +"ÿï08@Ry93u1vln04t5n1.ru^ +ÿï08@Rya-storage.ru^ +ÿï08@R yabawc.com^ +ÿï08@R yafeland.ru^ +ÿï08@R yafeling.ru^ +ÿï08@R yakhudobo.ru^ +ÿï08@R yalyagich.ru^ +ÿï08@R yanabmw.ru^ +ÿï08@R yandepit.com^ +%ÿï08@Ryandexbrowser2019.ru^ +ÿï08@R yanews24.com^ +ÿï08@R yangot.com^ +ÿï08@R yanudy.com^ +ÿï08@Ryap2017ura.ru^ + ÿï08@Ryaprealpolza.ru^ +%ÿï08@Ryapspecialrequest.ru^ +ÿï08@R yavkino.info^ +ÿï08@R ybcrwm.com^ +ÿï08@Rybej5ohp0x.ru^ +ÿï08@R +ybpxv.com^ +ÿï08@R +ybvnx.top^ +ÿï08@Rybz1jsblbv.com^ +ÿï08@R ychrpd.com^ +ÿï08@R ycounter.ru^ +ÿï08@R ydare.space^ +ÿï08@R ydbbs.us^ +ÿï08@Rydbsmpnt.mobi^ +ÿï08@R +ydjak.com^ +ÿï08@R ydsts.ru^ +ÿï08@R +ydxmtr.ru^ +ÿï08@R ydxsr.ru^ +ÿï08@R ydxst.ru^ +ÿï08@R yebmyp.com^ +ÿï08@R yenlqi.com^ +ÿï08@R yettyz.com^ +ÿï08@R +yfzbn.com^ +ÿï08@R yheyit.com^ +ÿï08@R +yi1mgo.ru^ +ÿï08@R +yidop.com^ + ÿï08@Ryiocvesrty.mobi^ +ÿï08@Ryisogarom.com^ +ÿï08@R +yiudy.com^ +ÿï08@R yjmvx.space^ +ÿï08@R +yjuqi.top^ +ÿï08@R yjxtaz.com^ +ÿï08@R ylesmn.com^ +ÿï08@R ylik.top^ +ÿï08@R +ylkkp.com^ +ÿï08@R yluqkf.com^ +ÿï08@R +yluvo.com^ +ÿï08@R ymjfhg.com^ + ÿï08@Rymzxqndyzx.info^ +ÿï08@R yndmtcs.ru^ +ÿï08@R yndstatis.ru^ +ÿï08@Ryndxmetric.ru^ +ÿï08@R yndxmtrc.ru^¾ +ÿï08@Ryndxserver.ru^ +ÿï08@R +yndxst.ru^ +ÿï08@R yndxstat.ru^ +ÿï08@Rynlfpyeifc.com^ +ÿï08@R +ynwia.com^ +ÿï08@Rynyy83za4i.ru^ +ÿï08@R yoajqj.com^ +ÿï08@R yofsaaa.pro^ +ÿï08@R yohioo.com^ +ÿï08@R +yojlf.com^ +ÿï08@R yomzba.com^ +ÿï08@R yost.biz^ +!ÿï08@Ryou-cant-win.com^ +!ÿï08@Ryoubestvideo1.ru^ +!ÿï08@Ryoubestvideo2.ru^ +!ÿï08@Ryoubestvideo3.ru^ +!ÿï08@Ryoubestvideo4.ru^ + ÿï08@Ryouformobile.ru^ +ÿï08@R youhave.mobi^ +!ÿï08@Ryourbestbro.site^ + ÿï08@Ryourbestru.site^ +ÿï08@R yourfoxes.ru^ +ÿï08@Ryourfoxes2.ru^ +ÿï08@Ryourfoxes3.ru^ +ÿï08@Ryourfoxes4.ru^ +ÿï08@Ryourfoxes5.ru^ +#ÿï08@Ryourpromooffer.com^ +%ÿï08@Ryoursitestatstube.ru^ + ÿï08@Ryoutube2top.com^ + ÿï08@Ryoutuberedit.ru^ +ÿï08@Ryoutuibes.com^ +ÿï08@R yoxeqn.com^ +ÿï08@R +ypfdp.com^ +ÿï08@R ypgvnb.com^ +ÿï08@R yplan.ru^ +ÿï08@R yppdir.com^ +ÿï08@R +ypxnu.com^ +ÿï08@R +yqkpt.com^ +ÿï08@R yqvqxx.com^ +ÿï08@R +yqwfo.com^ +ÿï08@R +yrsfs.com^ +ÿï08@Ryso70kwbuo.com^ +ÿï08@R +ysowy.com^ +ÿï08@Rystatic.online^ +ÿï08@R ystatic.site^ +ÿï08@R yt4k.com^ +ÿï08@R ytimgg.com^ +ÿï08@R ytrwew.com^ + ÿï08@Rytsmoda3jcne.ru^ +ÿï08@R ytsyss.com^ +ÿï08@R yugaley.info^ +ÿï08@R yulinata.ru^ +ÿï08@Ryummyanimez.ru^ + ÿï08@Ryuo5lmkcvc.site^ +ÿï08@Ryurmater.info^ +ÿï08@R yuryerin.ru^ +ÿï08@R yvkyil.com^ +ÿï08@Ryvok.ru^ +ÿï08@R yvosyo.com^ +ÿï08@R +ywadk.top^ +ÿï08@R ywcbst.com^ +ÿï08@R +ywhnh.top^ + ÿï08@Ryxhstwzjbu.info^ + ÿï08@Ryxswtummev.info^° +ÿï08@R yycjho.com^ +ÿï08@R +yyouut.ru^ +ÿï08@R yyredir.com^ +ÿï08@R +yyuin.com^ +)ÿï08@Rz.cdn.bescore.com/load?z= +(ÿï08@Rz0zi9ixqfrfbv18u.in.net^ +ÿï08@R zachaga.ru^ +(ÿï08@Rzachemtimeniazabanil.ru^ +ÿï08@R zaeavr.com^ +ÿï08@R zamaraika.ru^ +ÿï08@R zambara*.tk^ +ÿï08@R zambara.tk^ +ÿï08@R +zamiko.ru^ +ÿï08@R +zanena.ru^ +ÿï08@R zapcdn.space^ +ÿï08@R +zaphod.ru^ +ÿï08@Rzaprosbaza.pw^ +ÿï08@R zarabotki.ru^ + ÿï08@Rzarabotkipro.ru^ +ÿï08@R zarakat.site^ +"ÿï08@Rzargutivisor.info^ +ÿï08@R +zawuf.com^ +ÿï08@Rzaxakerom.com^ +ÿï08@R zaynay.com^ +ÿï08@R zbiz-scr.com^ + 08@Rzbp.ru^ +ÿï08@R zbtlgd.com^ +ÿï08@Rzbyynuew9g.ru^ +ÿï08@R zc9l27wq.ru^ +ÿï08@R zcapfb.com^ +ÿï08@R zcl-js.com^ +ÿï08@R zclcode.com^ +ÿï08@R zclick.biz^ +ÿï08@Rzclpro-clk.com^ +ÿï08@R zclpro.com^ +ÿï08@R +zcmxa.com^ +ÿï08@R zcode1*.com^ +ÿï08@R zcode1*.me^ +ÿï08@R +zcode5.me^ +ÿï08@R +zcode6.me^ +ÿï08@R zcrqsfq.biz^ +ÿï08@R zcwimx.com^ +!ÿï08@Rzd01etxhnree.top^ + ÿï08@Rzd01eutjnak.com^ +!ÿï08@Rzd05urtrpr.space^ +ÿï08@R zd05us.space^ +ÿï08@Rzdenochary.com^ +ÿï08@R zdivai.com^ +ÿï08@R zdorov911.ru^ +ÿï08@R zdyksh.com^ +ÿï08@R ze-fir.com^ +ÿï08@R zedinfo.info^ + ÿï08@Rzee1qzzfnr.site^ +ÿï08@R +zeldl.top^ +ÿï08@R zelpomi.com^ +ÿï08@R zemanty.ru^ +ÿï08@R zendmin.com^ +ÿï08@Rzeniocloud.com^ +ÿï08@R +zeojd.com^ +"ÿï08@Rzereditiberet.com^ +ÿï08@R zerokom.ru^ +ÿï08@Rzeroparking.ru^ +ÿï08@R +zersai.ru^ +ÿï08@R zesdmn.com^• +ÿï08@R zetrade.net^ +ÿï08@R zetwvo.com^ +#ÿï08@Rzeu5esxdovg.online^ +ÿï08@Rzeu5ust.online^ +ÿï08@R +zeueg.com^ +ÿï08@R +zeures.ru^ +ÿï08@R zezkfb.com^ +ÿï08@R zezvty.com^ +ÿï08@R zfoffp.com^ +ÿï08@R zfsfkp.com^ +ÿï08@R zgnzxm.com^ +ÿï08@R +zgvvx.com^ +ÿï08@R zhalobpa.ru^ +ÿï08@R zhastila.ru^ +ÿï08@R +zhazha.ru^ +ÿï08@R +zherva.ru^ +ÿï08@Rzhitkise.info^ +ÿï08@R +zhkzt.com^ +!ÿï08@Rzhurnal-land.com^ +ÿï08@Rzhyefedo.info^ +ÿï08@R +zilabi.ru^ +ÿï08@Rzima.kg^ +!ÿï08@Rzinseritatum.com^ +ÿï08@R zinutay.com^ +ÿï08@R zirikoni.com^ +ÿï08@R zismone.ru^ +ÿï08@R zivkatsa.ru^ +ÿï08@R zizavr.site^ +"ÿï08@Rzkdkvnzsdxge.info^ +ÿï08@Rzkshfbdg.info^ +ÿï08@R +zkypj.com^ +ÿï08@R +zlkbo.com^ +ÿï08@R +zlmoh.com^ +ÿï08@R zlobazik.ru^ +!ÿï08@Rzm01qttrnqt0.com^ +ÿï08@R zm05qst0.pro^ +ÿï08@R zmctrack.com^ +ÿï08@R zmu1qq.site^ +ÿï08@R zmu1ust0.com^ +ÿï08@R zmu1ust0.top^ +"ÿï08@Rznatokionline.com^ +ÿï08@R +znbdr.com^ +!ÿï08@Rzne1esxpove.info^ +ÿï08@R znetimi.ru^ +ÿï08@Rznewswork.com^ +ÿï08@R +znnmt.com^ +#ÿï08@Rznu1ustboak.online^ +ÿï08@R zontrans.com^ +ÿï08@R zopodta.ru^ +ÿï08@Rzorbanmat.com^ +ÿï08@R zoviede.com^ +ÿï08@R zozoter.ru^ +ÿï08@R zpcode1.com^ +ÿï08@R zpcode11.com^ +ÿï08@R zpcode2.com^ +ÿï08@R zpcode3.com^ +ÿï08@R zqclick.net^ +ÿï08@R +zqizn.com^ +ÿï08@R +zrcir.com^ +ÿï08@R zreluo.com^ +ÿï08@R +zrepe.com^ +ÿï08@R zscript.site^ +ÿï08@R zscript1.com^ +ÿï08@R +zsdat.com^… +ÿï08@R +zseut.com^ +ÿï08@R zslhmw.com^ +ÿï08@R zszhfffyd.ru^ +ÿï08@R +ztgm17.ru^ +ÿï08@R ztmol.club^ +ÿï08@R zu-zu.ru^ +ÿï08@R +zuaoo.top^ +ÿï08@R +zvkzl.com^ +$ÿï08@Rzvonok.mapakids.net^ +ÿï08@Rzwmms11941.ru^ +ÿï08@R zworker11.me^ + ÿï08@Rzworld-news.com^ +ÿï08@R zwvwh.us^ +ÿï08@R zwyymwy.com^ +ÿï08@R zxeubv.com^ +ÿï08@R zxoedq.com^ +ÿï08@R zxpxt.space^ +ÿï08@R +zxrtn.com^ +ÿï08@R zyanechi.ru^ +ÿï08@R +zyhi.info^ +ÿï08@R +zyrji.com^ +ÿï08@Rzysheptany.com^ +ÿï08@R +zz2017.ru^ +ÿï08@R zzfoms.com^ +ÿï08@R zzxjlr.com^ + ÿï08@R-dom-2-onlain.ru +ÿï08@R -murmann.ru +ÿï08@R -ru-admin.net +ÿï08@R +-softin.ca + ÿï08@R-todayanekdot.ru +ÿï08@R +_2krota.ru +&ÿï08@R_camelot.multilocal.ru +#ÿï08@R_camelot.userlan.ru +ÿï08@R_doublepunch.ru +ÿï08@R_haxa.ru +ÿï08@R _kipfilms.ru +ÿï08@R _multiky.ru +ÿï08@R_narodclub.net +ÿï08@R_saytturtsii.ru +ÿï08@R _softbaron.ru +(ÿï08@R_stock-exchange.ucoz.com +ÿï08@R _vodkov.net +ÿï08@Rextract.zz.mu^ +"ÿï08@Rgetout.besaba.com^ +ÿï08@R kipfilms.ru^ +ÿï08@R people-group. +!ÿï08@Rthe-people-group. +%ÿï08@Rad.minecraft-mods.ru^ +$ÿï08@Radr.alltorrents.net^ +ÿï08@Rbn1.homefot.ru^ +*ÿï08@Rbookforall1.bookforall.ru^ +ÿï08@Rbt1.gutgirl.ru^ +&ÿï08@Rcrashes.autodanger.ru^ +#ÿï08@Rdvasub.kipfilms.ru^ +#ÿï08@Rforum.dwnld.net.ua^ +"ÿï08@Rgo.mega-games.org^ +!ÿï08@Rgov.hentaipix.ru^ +$ÿï08@Rn.gold-liter.org.ua^ +#ÿï08@Rnews.movieworld.kz^ +ÿï08@Rnews.soptv.ws^ +#ÿï08@Rplus.pornoshara.tv^ +ÿï08@Rpu.zipsites.ru^ +%ÿï08@Rpublic.screenhost.ru^ #pgeldizÊ +"ÿï08@Rrecloma.cssmod.ru^ +#ÿï08@Rrikki.bukvaved.net^ +$ÿï08@Rrx9aef.driver-id.ru^ +'ÿï08@Rsailor.rutracker21.org^ +!ÿï08@Rsctipt.prons.org^ +"ÿï08@Rskeet.advetime.ru^ +$ÿï08@Rstatic2.ero2you.com^ +!ÿï08@Rwells.murmann.ru^ + ÿï08@Rwolf.fan-guf.ru^ +(ÿï08@Rwww.online.anime-box.ws^ +!ÿï08@Ryaload.yaload.ru^ +ÿï08@R1.miniporn.ru^ +ÿï08@Rfair.huz84.com^ +ÿï08@Rfair.jones.se^ +$ÿï08@Rkuhni.goodtrend2.ru^ +ÿï08@R lg.yaload.ru^ +ÿï08@Rpo.spynets.ru^ +ÿï08@R pop.spy4.in^ +ÿï08@Rpop.turnik.su^ +$ÿï08@Rqwerty.arenda263.ru^ +#ÿï08@Rreal.attico-mos.ru^ +ÿï08@R root.qw.su^ +"ÿï08@Rsamsung.yaload.ru^ +!ÿï08@Rsearch.a-vega.ru^ + ÿï08@Rsport.hudaem.ru^ +ÿï08@Rtop.softweb.ru^ +!ÿï08@Rzork.jerkngo.com^ + ÿï08@Rnord.murmann.ru^ +$ÿï08@Rwebweb.picforall.ru^ +ÿï08@R wt.lovfot.ru^ +Æ‚* +koti-voiteli.ru* +bleachforum.ru* +forum.graphics* +maminforum.com* +narutoforum.ru* +potterforum.ru* + igraemroli.ru* + shamanking.su* + volshebniy.ru* + witchforum.ru* + animetalk.ru* + clanboard.ru* + goodboard.ru* + narutorpg.ru* + pogovorim.su* + userforum.ru* + fludilka.su* + forumrpg.ru* + magicrpg.ru* + maroderi.ru* + mybb.online* + mybb.social* + offtopic.su* + sims2rpg.ru* + tibidohs.ru* + +animebb.ru* + +forum.cool* + +magicbb.ru* + +mybb.rocks* + +obleach.ru* + +onaruto.ru* + +opotter.ru* + +webtalk.ru* + bbcity.ru* + boltun.su* + clanbb.ru* + forum.wtf* + goodbb.ru* + oanime.ru* + owitch.ru* + +bbrpg.ru* + +dogbb.ru* + +funbb.ru* + +icebb.ru* + +nc-21.ru* + +topbb.ru* +mybb.by* +mybb.kz* +mybb.ru* +0bb.ru* +1bb.ru* +2bb.ru* +3bb.ru* +4bb.ru* +5bb.ru* +6bb.ru* +7bb.ru* +8bb.ru* +9bb.ru08@R/ajax/? +™‚* +porno-torrent.biz* +porno-torrents.ru* +sibiryak-soft.org* +video-magnet.com* +bestcamsxxx.com* +exoticvideo.net* +kinohost.nov.ru* +pornovizion.com* +tyt-kinofilm.ru* +freepublish.ru* +kinoonlain.org* +mega-track.org* +porno-gid.info* +xxx-russian.ru* + mnogohlama.ru* + moresofta.com* + porn-news.org* + pornogovno.ru* + pornomage.net* + promotevid.ru* + v-chulkahh.ru* + vserisunki.ru* + gidporno.com* + guide-box.ru* + politland.ru* + pornoboss.tv* + pornorip.biz* + pornorun.com* + ru-admin.net* + seasonvar.ru* + xxlbunny.com* + babestar.ru* + imgmoney.ru* + kino-zal.kz* + rosporn.com* + tedkino.com* + vodvore.net* + +kritka.net* + +palevo.com* + +privsex.ru* + +uvideos.ru* + +vodkov.net* + +x-zona.org* + uptube.su* + wifilm.ru* + +suero.tv* + +vzale.tv08@Rcom/s/ +ÿï08@R -image2you.ru +#ÿï08@R/design-warez.ru.js +ÿï08@R =anime-box.ws +ÿï08@R =beetor.org +!ÿï08@R=erevan-online.ru +"ÿï08@R=gold-liter.org.ua +ÿï08@R=hentaichan.ru +ÿï08@R =hentaiz.org +ÿï08@R =hottrash.ru +*ÿï08@R=http%3A%2F%2Fpicforall.ru +&ÿï08@R=http%3A//payforpic.ru +&ÿï08@R=http%3A//picforall.ru +&ÿï08@R=http%3A//rustorka.com +ÿï08@R =payforpic.ru +ÿï08@R =picforall.ru +#ÿï08@R=pick.megatrack.org +ÿï08@R =picmani.ru +ÿï08@R +=pix-x.net +ÿï08@R=porno4you.org +ÿï08@R =ppronpic.org +ÿï08@R +=prons.org +ÿï08@R =ruspicbox.ru +ÿï08@R =santikov.net +ÿï08@R=torrent-telik. +ÿï08@R =videotuts.ru +ÿï08@R =x-uboino.net +7ÿï08@R'_verified.php?code=*&server=runetki.com +­ÿï* + betwinner.com* + fan-sport.com* + ua-1x-bet.com* + 1xbet.com.gh* + 1xbet.com* +1xbet.by* +1xbet.kz* +1xbet.ng* +1xbet.tj08@R ccdnss.com^ +¯ÿï* + betwinner.com* + fan-sport.com* + ua-1x-bet.com* + 1xbet.com.gh* + 1xbet.com* +1xbet.by* +1xbet.kz* +1xbet.ng* +1xbet.tj08@R cdnsfree.com^ +ÿï08@R .24smi.host^ +ÿï08@R +.24smi.in^ +ÿï08@R .24smi.info^• +ÿï08@R .24smi.life^ +ÿï08@R .24smi.one^ +ÿï08@R.24smi.online^ +ÿï08@R .24smi.pro^ +ÿï08@R +.24smi.pw^ +ÿï08@R .24smi.site^ +ÿï08@R +.24smi.ws^ +ÿï08@R .24smi.xyz^ +ÿï08@R 1k-shop.ru^ + ÿï08@R24onlinesmi.net^ +ÿï08@R academyun.ru^ +ÿï08@R act-news.com^ +ÿï08@R adiabetic.ru^ +ÿï08@Rads.bid^ +ÿï08@R adwile.com^ +ÿï08@R afftraff.net^ +ÿï08@R allblog24.ru^ +ÿï08@R ant-top.ru^ +"ÿï08@Ranti-gemorroy.com^ +ÿï08@R apicloud.ru^ +ÿï08@R appt12mn.com^ +ÿï08@Rart-family.pro^ +ÿï08@R artdemon.ru^ +ÿï08@R artmaxim.ru^ +ÿï08@R astrack.ru^ +)ÿï08@Ravtozapchastivazlanos.ru^ +ÿï08@Rbesplodstop.ru^ +!ÿï08@Rbest-binary.site^ +ÿï08@Rbilderfest.ru^ +ÿï08@R binarniks.ru^ +ÿï08@Rblogifeed.com^ +ÿï08@Rblogistars.com^ + ÿï08@Rblogistarts.com^ + ÿï08@Rblogo-sfera.org^ +ÿï08@Rblogofest.com^ +ÿï08@R blogs-new.ru^ +"ÿï08@Rblogs-peoples.com^ +ÿï08@Rblogs-shop.org^ + ÿï08@Rblogs-stars.org^ +ÿï08@R blogshop.org^ +!ÿï08@Rblogss-stars.org^ +ÿï08@Rblozggerz.com^ +ÿï08@Rburlyblogs.com^ + ÿï08@Rbuyfordreams.ru^ +ÿï08@R +c9wap.com^ +'ÿï08@Rchain-reaction-pro.com^ +%ÿï08@Rcifaceg.gos-arhiv.ru^ +ÿï08@R +cobrax.ru^ +(ÿï08@Rcontent.directadvert.ru^ +ÿï08@R cpagoods.ru^ +ÿï08@R cs-serva.net^ + ÿï08@Rdailyblogzz.com^ + ÿï08@Rdiallyblogs.com^ + ÿï08@Rdlyazdorovia.ru^ +ÿï08@Rdnevni4ok.com^ +"ÿï08@Rdownloadamigo.com^ +ÿï08@Rdriverpack.io^ +%ÿï08@Rdriverpaksolution.ru^ +ÿï08@Rdrp.su^ +ÿï08@Rdugtor-deer.pw^ +ÿï08@Rdw1-msetup.org^ +$ÿï08@Relementsbrowser.com^ + ÿï08@Rerobestvideo.ru^ +ÿï08@Retarg.network^� +ÿï08@Retojackpot.com^ +ÿï08@R etonews.ru^ +ÿï08@Reverinform.com^ +ÿï08@R ex.infox.sg^ +ÿï08@R exonews.ru^ +ÿï08@Rfastmoment.ru^ +ÿï08@R filebase.me^ +ÿï08@R films.ws^ +ÿï08@Rfin-vector.ru^ +ÿï08@R find-it.pro^ +ÿï08@Rfinsotins.com^ +ÿï08@R flebolab.ru^ +ÿï08@R fly-shops.ru^ +%ÿï08@Rfsb-russia.dtdns.net^ +ÿï08@Rgameloft.name^ +ÿï08@R gamerulet.ru^ +!ÿï08@Rgamezonenews.net^ +!ÿï08@Rgemoroy-stop.biz^ +ÿï08@R get-news.net^ + ÿï08@Rglance-news.com^ + ÿï08@Rglobalstylis.ru^ +ÿï08@Rgoods-story.ru^ +ÿï08@R hanata.pp.ua^ +#ÿï08@Rhealth-official.com +#ÿï08@Rhealth-official.ru^ +"ÿï08@Rhealthofficial.ru^ +"ÿï08@Rhmqzhs0csdealn.ru^ +%ÿï08@Rhot-news-bloggers.ru^ +ÿï08@R igrok.rocks^ + ÿï08@Rinstallpack.net^ +ÿï08@R intoxic.biz^ +ÿï08@Rkinemathek.ru^ +ÿï08@R kotofotto.ru^ + ÿï08@Rlentainform.com^ +!ÿï08@Rlifebloggersz.ru^ +ÿï08@Rlifenewblog.ru^ +ÿï08@Rlifeonblog.com^ +ÿï08@R liferead.ru^ +ÿï08@R like-th.ru^ +ÿï08@Rlitebrowser.ru^ +!ÿï08@Rlitemybrowser.ru^ +ÿï08@R live-smi.ru^ +ÿï08@Rlivebloggs.com^ +ÿï08@Rloadbookvo.ru^ +ÿï08@R losnews.ru^ +ÿï08@R lotto770.com^ +ÿï08@Rlucky-blogs.ru^ +ÿï08@R m0g24.ru^ + ÿï08@Rmagnet-ball.com^ +!ÿï08@Rmainrusnews.info^ +ÿï08@R malysheva.ru^ +ÿï08@R marketgid.ru^ +ÿï08@Rmchostings.ru^ +ÿï08@Rmedblog.online^ +'ÿï08@Rmedicin-novosti-24.com^ +#ÿï08@Rmedicineteaser.org^ +ÿï08@R medinses.ru^ + ÿï08@Rmoney4leads.biz^ +ÿï08@R mosblog24.ru^ +$ÿï08@Rmsetup-partners.com^ +ÿï08@R msetup.pro^ +ÿï08@R +mytrk.xyz^ +ÿï08@R mytvblogs.ru^ +ÿï08@R nalivali.ru^� + ÿï08@Rnaroda-blog.com^ +#ÿï08@Rnarodnii-sovet.com^ +ÿï08@Rnew-glance.com^ +!ÿï08@Rnew-rutor.eu.org^ +ÿï08@R new-rutor.eu^ + ÿï08@Rnew-rutor.pp.ua^ +ÿï08@R newmed24.ru^ +ÿï08@R news-are.com^ +ÿï08@R news-bc.ru^ + ÿï08@Rnews-decent.com^ + ÿï08@Rnews-glance.com^ +ÿï08@R newseer.net^ +ÿï08@R +newsma.ru^ +ÿï08@R nnm-club.eu^ +ÿï08@R nutmore.com^ + ÿï08@Roblivki-news.ru^ +ÿï08@Roffergate.pro^ +ÿï08@R offhealth.ru^ +#ÿï08@Roficinadafesta.com^ +ÿï08@R +ognyvo.ru^ +ÿï08@R only-new.com^ +ÿï08@R orgsales.ru^ +ÿï08@Rparinamatch.ru^ + ÿï08@Rpeople-blog.org^ +!ÿï08@Rpeople-blogs.org^ + ÿï08@Rpeterfarley.net^ +"ÿï08@Rpeterjfarley.info^ +ÿï08@R plaff-go.ru^ +ÿï08@R plapl.ru^ +!ÿï08@Rplaster-orto.com^ +%ÿï08@Rplastir-hyperost.biz^ +ÿï08@R pleertv.ru^ +ÿï08@R pochistit.ru^ +ÿï08@R pogodis.ru^ +ÿï08@Rpop-bloggz.com^ +ÿï08@Rpop-blogs.com^ +ÿï08@Rpop-blogz.com^ + ÿï08@Rportal-info.org^ +%ÿï08@Rpropolis-shungit.biz^ +ÿï08@R rayzest.com^ +ÿï08@R rcforme.biz^ +ÿï08@R readvesti.ru^ +ÿï08@Rreal-blog.name^ +ÿï08@Rreal-mind.com^ +ÿï08@R realblog.biz^ +ÿï08@Rrealblogs.biz^ +ÿï08@Rrealblogs.info^ +ÿï08@Rrealblogs.name^ +ÿï08@Rreallblog.info^ +ÿï08@Rreallblog.net^ +!ÿï08@Rrealmengames.com^ +ÿï08@Rreals-story.ru^ +ÿï08@Rreserches.com^ +!ÿï08@Rrightroundark.ru^ +ÿï08@R rus-news.biz^ +ÿï08@Rrus-news.club^ +ÿï08@R rusnews.biz^ +ÿï08@Rrusnewsclub.ru^ +$ÿï08@Rrustoria-topnews.ru^ +ÿï08@R rustoria.ru^ +ÿï08@R rutor.eu.org^ +ÿï08@R rutor.ml^ +ÿï08@R +rutors.tk^ +ÿï08@R rutracker.eu^á +ÿï08@Rsaymigren.net^ +ÿï08@R sbiten.biz^ +ÿï08@R sdv-shop.ru^ +ÿï08@Rshock-news.net^ +ÿï08@Rshoko-slim.biz^ +ÿï08@Rshop-blogs.org^ +ÿï08@R shopblog.org^ +ÿï08@Rsmi-inform.ru^ +ÿï08@R +smi.pp.ua^ +ÿï08@R +smi.today^ +ÿï08@R smi24x7.com^ +ÿï08@R smibooks.ru^ +ÿï08@R smiru.ru^ +ÿï08@R socssite.ru^ +ÿï08@Rsome-things.ru^ +ÿï08@R starblog.org^ +ÿï08@Rstarblogs.name^ +ÿï08@Rtele.gg^ +ÿï08@R tft-test.ru^ +ÿï08@R tivinot.ru^ +ÿï08@R top-rutor.eu^ +ÿï08@Rtop-stores.ru^ +ÿï08@Rtopclicks.club^ + ÿï08@Rtopnews.smi.one^ +ÿï08@R topnews2.ru^ +ÿï08@Rtops-blogs.ru^ +ÿï08@R +torren.eu^ +ÿï08@R tovarzona.ru^ +ÿï08@R trafmax.ru^ +ÿï08@R trtkp.ru^ +ÿï08@R tvgoods.ru^ +ÿï08@R tvnotivi.ru^ +ÿï08@R ubar-pro.ru^ +ÿï08@R ubar-pro2.ru^ +ÿï08@R ubar-pro3.ru^ +ÿï08@R ubar-pro4.ru^ +ÿï08@R ubar.pro^ +ÿï08@Rufiler-pro.ru^ +ÿï08@Rufiler-pro2.ru^ +ÿï08@R ufiler.pro^ +ÿï08@R ultrabit.ws^ +ÿï08@Rupro.me^ +ÿï08@R vabloggs.biz^ +ÿï08@R vacoou.info^ +ÿï08@R +viniki.ru^ +ÿï08@R wmactive.ru^ +ÿï08@R wogoods.com^ +"ÿï08@Rwomens-journal.ru^ +ÿï08@Rwork-vseti.com^ +ÿï08@Rworldinform.ru^ +-ÿï08@Rxn----ctblib1bagjll.xn--p1ai^ +ÿï08@Rzdravo-med.ru^ +ÿï08@Rzdravosite.ru^ +!ÿï08@Rzhit-zdorovo.com^ +!ÿï08@Rzodiac-game.info^ +ÿï08@R zpppstop.ru^ + ÿï08@Rzqwjpxow7boc.ru^ +zakarpattya.net.ua#A12 +zakarpattya.net.ua#A2* + europaplus.ru#AdwolfVerticalBanner- + ivanovy.info + grand2.ru #AutoNumber1 +zakarpattya.net.ua#B2 +zakarpattya.net.ua#B3 +zakarpattya.net.ua#B4Š + poiskvps.ru#BlueA" +tutu.ru#DBdesktopBillboard¡ + rp5.co.nz + rp5.co.uk +rp5.am +rp5.by +rp5.kz +rp5.md +rp5.ruQ#FheaderContent > #archiveString ~ div[id]:not([class]):not([id="forecastShort"]) + +nday.te.ua#Flash# +onlinemusic.com.ua #GoodVane& +cheline.com.ua#IUAfinanceBlock +sportsdaily.ru #KefTable + samods.ru#LeftBox + +www.i.ua#Premium! + +7days.ru#RutubePlayerNews +urod.ru#Stage + myzuka.club#TVZavrO +flicksbar.info + flicksbar.fun + flicksbar.mom + flcksbr.top#TopAdMb + smartpress.by#TopBox" + videovegas.ru #VegasHeadAdsk + podarkus.ruX#__next > div[style^="position:"] > div[style^="position:"]:empty + div:not(:last-child)< +sport-express.net +sport-express.ru#_ad_container_ + newsroom24.ru +#_prizmaNE$ +w98008mo.beget.tech #a_center% + calcus.ru#a_sidebar_container +znaj.ua #above-header + alphapedia.ru#action +sbp-program.ru#activee0 +balticlivecam.com +speedtest.org.ua#ad + gazeta.ua#ad-730 + tvigle.ru #ad-padding" + 1000.menu#ad-recipe-bottom +glaz-ok.online#adFooty +solnechnogorsk.net +mobile-files.com + nexia-club.ru + +cqham.ru + +zx-pk.ru +foto.ua#ad_global_below_navbarD + ecigtalk.ru1#ad_global_below_navbar > div[align] + div[style]1 +moeobrazovanie.ru#adapt-wrapper > noindex# +floristics.info #adb-aft-art% + 78.142.19.8 + +aliez.me#adbtm  +demotivation.me #add2_div + system-fx.ru #add_header$ +cian.ru#adfox-stretch-banner# + +wefilms.ru#adfoxPromoBanner, + prosports.kg + prosports.kz#adhider. + +bilshe.com#adpartner_branding > center& + volnorez.com#adriver_ClickAreaK +context.reverso.net + smartphone.ua + 78.142.19.8 + +aliez.me#ads" +vologdahistory.ru #ads-full  + +namba.kg#ads-full-screen% + findhow.org#ads-sidebar-block6 +10fastfingers.com#ads-speedtest-view-container" +instagram-foto.ru #adsClose + sinoptik.ua #adsLeftZone + want2vote.com +#adsWall-0 + want2vote.com +#adsWall-1( +shopinfo.com.ua#ads_header_right$ +shpargalkablog.ru #adsenseNiz + 4creates.com#adsh + academ.info #adslinks3 + +zvukoff.ru +z200.fm +zk.fm #adv-list-top + domkad.ru #adv-sidebar +v102.ru +#adv-tizer +rpod.ru #adv240x400' + zhzh.com.ua + zhzh.info#advBox + +orakul.com #advLeftZone! +math-prosto.ru #advTopLine" +servers-rust.ru #adv_banner + +vseazs.com #adv_top2& + chastnik-m.ru#adver_block_left' + chastnik-m.ru#adver_block_right¤9 + prowebber.ru + vk.xakep.org + +gamedev.ru#advert$ +debaty.sumy.ua#advertisement6 +book-online.com.ua + motorshop.kz #advertising  +click.alfabank.ru#advise  + +muzmo.cc#advmusic_banner) +androidphone.su#after_ask_helpful* + +cqham.ru#after_first_post_yadirect9 + muzland.info + +muzland.es + +muzland.ru #agbordid  +aces.gg#alert > #overlay + pic-chik.com #alert-wrap + assessor.ru +#alfa-dart + smartbobr.ru #alioffer& + delpos.ru#allEntries ~ a[href] + zserials.cc#amgf: + songpros.ru + songspro.ru + +pesenok.ru +#amigo_btn$ + allcrimea.net#anews_bigtizer< +thequestion.ru&#answers div[style*="overflow:hidden"] + komedra.com#apextŽ + +dtf.ru#?~app:-abp-has(> .bar > .header [href="/auth"]) .content-list > .content:-abp-has(> .content-header > .author > [href="/ggsel"])– + +dtf.ru#?…app:-abp-has(> .bar > .header [href="/auth"]) .content-list > .content:-abp-has(> .content-header > .author > [href="/ruslan-titov"])¢ + +dtf.ru#?‘app:-abp-has(> .bar > .header [href="/auth"]) .content-list > .content:-abp-has(> .content-header > .author > [href="/u/903841-gamespayberryru"])š + +dtf.ru#?‰app:-abp-has(> .bar > .header [href="/auth"]) .content-list > .content:-abp-has(> .content-header > .author > [href="/u/954970-kupikod"])) + +ecology.md#article > .right-blockn + varta1.com.uaY#article-content > header > h1:first-child + div > div[style^="--position-aspect-ratio:"]$ + agropolit.com#article_banner0 + sport.tut.by#article_body > .TitledImage, +sib.fm#article_feeds .title-commentsf + +sib.fm#?Varticle_feeds > .row:-abp-has(> div > a[href*="yandex."][href*="news"][href*="favid"])W + +sib.fm#?Garticle_feeds > .row:-abp-has(> div > p:-abp-contains(/Ñ�ндекÑ�/i)), +portal-kultura.ru#aside > center ~ *1 + sinonim.org#aside > div[style^="border:"]# + vsebasni.ru#aside > noindex" + minfin.com.ua #aside-teaser! + stopress.ru#aside.punktir" +upn.ru#aspnetForm > center! + +gorod55.ru#at-cv-lightbox + comments.ua#atlanta! + promodj.com#atlas_240x400Q + google.com.ua + +google.com + google.by + google.kz + google.ru#atvcap +meta.ua#aukro_s +nm71.ru#az1 +nm71.ru#az2 + +23met.ru #b-bottom + +23met.ru#b-top + f1news.ru #b2-container +meta.ua #b_meta_popup# +prestige-gaming.ru #back_brd$ +westudents.com.ua #ban > #lin% +westudents.com.ua #ban noindex + meteonova.ru#ban_500û +redheadsound.studio +fergananews.com +liveangarsk.ru +premiership.ru + ping-admin.ru + readbookz.com + cripo.com.ua + live-gol.net + lm-games.com + voxpopuli.kz + infobank.by + +qupier.org + xtreme.ws +link.ac +urod.ru#banner + gamexp.ru#banner-slider; + get-tune.net + oneprogs.ru + mirmmo.ru #banner-top +grad.ua#banner-top-page' + pn.com.ua#banner-top-stretching +kiwi.kz#banner1000_250 + +drive.ru#banner240x400 +kiwi.kz#banner300_250S + kupikolesa.ru>#bannerContent > div[id^="banner"] a:not([href*="kupikolesa"])! + playvega.com #bannerHolder! +smotrisport.tv #bannerXbet + +talks.by #banner_750 + oneprogs.ru #banner_big + radiokot.ru #banner_codeã" +sfw.so#banner_left_arsenal& + winitpro.ru#banner_registrator+ +charming-face.ru#banner_right_place† + chemezova.ru + rada.com.ua + zebra-tv.ru + +bigmir.net + +bmwclub.ru + +dengi.ua + +mport.ua + +vd-tv.ru +gp.by #banner_top + +grind.fm #bannerborder +now.ru #bannerholderE +kinoprosmotr.site + casstudio.tv + kinomania.kz #bannerlayers +matematikalegko.ru +rgfootball.net +shadowlands.ru + orangeapps.ru + tapclap.com + ascnb1.ru#banners + +spbit.ru #banners > aJ + pobedish.ru7#banners > noindex > a[href]:not([href*="pobedish.ru"])+ + sletat.ru#banners-after-search-form$ +ogo.ua#banners-header-bottom% +marketing.spb.ru #banners-klik) + kursk.com#banners-partners-blocks& + +namba.tj +ogo.ua #banners-top! + spartak.com#bannersPlayer# +onxa.ru#basic-modal-content + mirfactov.com#bb + fclmnews.ru#bcat¹ +fast-torrent.club +fast-torrent.ru +fast-torrent.su + fast-fiml.ru + filmpotok.ru + kinomuch.ru + pickfilm.ru + +nebeda.net + veleto.ru + +vixim.ru#before_film_torrents  +delo.ua#bg-brander-promo + +topgame.su#bg_img+ + litportal.ru#biblio_book__read > h2 + +sdamgia.ru +#bigBanner + +ndscalc.ru #bkbanner + cyberinfo.ru#bl_05$ + chelnyclub.ru#bl_top_reklama( + poezdato.net + poizdato.net#bla + chuvyr.ru +#blackfire + fastpic.org#bleft + ketchuptv.ru#blink +newsroom.kh.ua #block-15 +newsroom.kh.ua #block-16 +russkiiyazyk.ru#block-2 + fapvdo.ru #block-24 + fapvdo.ru #block-26 + fapvdo.ru #block-29 + growhow.in.ua#block-5 + growhow.in.ua#block-6% +anti-malware.ru#block-block-1& +anti-malware.ru#block-block-210 + rusvesna.su + +rusnext.ru#block-block-22& +anti-malware.ru#block-block-31& +anti-malware.ru#block-block-77. + ilikenews.com#block-informer-news-page7 +zaholovok.com.ua#block-reklamappidzagolovokdnya% +traveller-eu.ru#block-rsamain + htmlbook.ru #block-sape& + +zwezda.net#block-zwzd-partners  +klassnye-chasy.ru#block1  +klassnye-chasy.ru#block3 + sewin.net#blokya + serial.wiki #bnadplayer + +4itaem.com#bnnr + rebill.me#bnr +hdtv.ru#bnr_1 +v102.ru#bns-c > .photos3 +cherkassy-sport.com#body > #top .textwidget4 + sxnarod.com + sxn.today#bonga-bottom-banner  +lineageternal.ru#bordTop + kurskcity.ru +#botbanner + arhangel.ru#botr" + rutab.net#bottomBlockAdfox$ +nmosktoday.com#bottom_banner±! + lostfilm2.ru #bottom_media! +news.turizm.ru #bottomdies + +kyiv.media +#br_hg_allI +anti-malware.ru + onyxgame.com + minizal.net + brd24.com#brand& +videoprobki.com#brand-adv-left' +videoprobki.com#brand-adv-right + voxpopuli.kz #brand_logo/ +klopotenko.com + altapress.ru #branding& +allbasketball.org #branding-ads" +foto.ua#branding-bg-pickit$ + truba.com#branding-head-link + +namba.tj#branding-html" + promodj.com#branding_clickL +telegraf.in.ua + traffilm.net + +kolyan.net +vse.kz#branding_link# +telegraf.in.ua #branding_top +24tv.ua#branding_wrap + +infocar.ua +#brandlink9 + forumodua.com$#breadcrumb ~ div[style^="padding:"]* + world-mmo.com + tparser.org#brend + fastpic.org#bright# + finanz.ru#brokerintegration + +vpk.name #bt-stop-ra# +odysseus.ctc.ru #btn_wrapper + translate.ru +#bttBanner! + +point.md#business-sidebar. + +ritsatv.ru#button-container > .overlay) + militarist.ua#bx-composite-banner# + forum.byw.ru#byw_top_banner + prankota.com +#c7b82880e + prankota.com +#cab741974 + copypast.ru#calcs1' + sportnet.live#carouselPrintstok + kurs.com.ua #catfishWrap= +webcam-erotic.tv%#center > div[style^="height: 250px"]( + dugtor.ru#center-block > noindex. + +kerch.fm#center-left > aside > section% + xxx-base.org#center2 > .block + aacalc.ru #center_b( + +kerch.fm#center_left > .informerA +rabota.kharkov.ua(#central > table > tbody > tr > .noprintm + newsland.comY#channelsFeed > [data-block-type="channel-card"] ~ :not([data-block-type="channel-card"]) + finget.ru#chart_a + okrain.net.ua#citata/ + megapeer.top + megapeer.vip #clickunder( + +zoodrug.ru#clone[style*="250px"] + gg.xooxo.cc #closed-vid +3mv.ru#closing" +mediaryazan.ru #cnt_top_topj& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1ai +kingisepp-today.ru(#cntr > .l-outer ~ style + table ~ tablee + glianec.com#?Pcol-left > .contest-bl:-abp-has(> h4 > strong:-abp-contains(/^Ð�овин|Join/))g + glianec.com#?Rcol-right > .bl-middle2:-abp-has(> h4:-abp-contains(/новини|додати/i))" + glianec.com#col-right > br + +infocar.ua #cols2premium# +tg-a.ru#column-left .banner: + forzajuve.ru&#column-left noindex > .module-content? +megasoft.3dn.ru(#column_center > [class^="modern_block"]* + +jeder.ru#colwrap > .module-notitle + +7days.ru#comment_banner< +police-russia.com##commercial_ad_showthread_firstpost7 + samara24.ru$#common_div > .top_bb + .bb_table_bg% + rutube.ru#communicationBanner# + stocktime.ru#cont_right_240# + +doska.fi#container + center$ + kirovnet.ru#container > #topÉO +fapreactor.com +pornreactor.cc'#container > :not(#page) a[target^="_"]k + otzyvua.netX#container > div.otzyv_box_float[id^="review_"] ~ .otzyv_box_float:not([id^="review_"] )& +oper.ru#container > div[style]D +sql-tutorial.ru-#container > div[style] > script + style ~ ul4 +agilerussia.ru#container > style + ul[class]' + minfin.com.ua#container-deposit* +ua-electro.com#content .metaslider- + kosmetista.ru#content > .b-under-menuN + sport-tv.by#?9content > .block:-abp-has(a[href][target="_blank"] > img)+ +kak-prosto.net#content > .container5 + rz.com.ua$#content > .container > #page-header' + wotsite.net#content > .info-boxL + kyron-clan.ru7#content > .ipsAd > script + div:not([id]):not([class])( +news-front.info#content > .lenta; +it-actual.ru#?%content > .nav-single:-abp-has(> ins)* + ukrlib.com.ua#content > .readalser5 +forum.niiot.net#content > .unspecific.message$ + mobbit.info#content > center< +forum.saransk.ru$#content > div > div[class^="zone_"]- + pesni-tut.com#content > div[id^="mx"]9 + wooordhunt.ru$#content > div[style*="min-height:"]Y + oddstyle.ruF#content > div[style="margin-left: 15px; margin-top: 10px;"] > a > img@ +professorweb.ru)#content > div[style="margin:30px auto;"]8 + melodiimp3.ru##content > div[style^="max-width:"]3 + portamur.ru #content > div[style^="padding"]c +forum.masterforex-v.org +diabet-med.com + 4allwomen.ru + on-movie.net#content > noindexK +forum.tvercity.ru2#content > table[cellspacing="1"][cellpadding="1"]Z +auto.kufar.by#?Ccontent div[class]:not([id]):-abp-has(> [id^="adfox_"]:first-child)1 +pickupforum.ru#content div[id^="slider_"]= + vsezdes.info)#content h3[style] > span[style^="color"]F + chipinfo.pro2#content-container > div[style^="display: block;"] + stratege.ru #content-sub + stratege.ru #content-top# + +tvsok.ru#content-wraper > p† + rp5.co.nz + rp5.co.uk +rp5.am +rp5.by +rp5.kz +rp5.md +rp5.ru6#content-wrapper > #content ~ div[id]:not([id="mapa"]). + doranime.net + nnm-club.pw #content123 + kinogorod.com +#content14$ + tr.anidub.com#content::after% + tr.anidub.com#content::before9 + people-ask.ru$#contentBox > #right > #rightContentL + top-mods.ru9#content_l_box > .column_wrap > div[style*="min-height:"]‰ +freescreens.ru + payforpic.ru + picforall.ru + imgclick.ru + picclick.ru + picclock.ru + +imgbase.ru + +imgcach.ru +#content_r" + alldonors.ru#content_r_boxe + youtube.com#?Pcontents > ytd-rich-item-renderer:-abp-has(> #content > ytd-display-ad-renderer)X + ucrazy.ruG#crazy-content > div:not([id]):not([class])[style^="background-color:"]/ +zzap.ru #ctl00_TopPanel_LangPanel > .top# + oterraria.ru#custom_html-14  + +zalinux.ru#custom_html-2% +winreviewer.com#custom_html-6" +binary-forum.com +#da-slider +pingvinoff.net#daos# +bbs.nashalife.ru #daos_outer+ + aptekamos.ru#data-column-center-adv% +forum.china-iphone.ru#datebar +last.by#dbtn2& +serialrussian.ru#dd-flash-area + povarenok.ru #delta_14 + +diets.ru #delta_18. + +boxrec.com#desktop_sticky_ad_container( + topvideo.tj#dfp_fullscreen_block: + udaff.com)#di356 > div[style^="text-align: center"] + directlot.ru +#dirlotbah! +softportal.com #divAffLink +dj.ru +#divHeaderÑ' +penzainform.ru#divMain > .clearQ +penzainform.ru;#divMain > div[id][style="margin: 0px 10px; height: 60px;"]; + tuchkatv.ru(#dle-content > #aceplayer ~ [class*=" "]* + droidmod.ru#dle-content > #overlay’ +online-stars.org#? +online-star.org + anistar.org + +astar.bzÉdle-content > .news:-abp-has(> .news_text :not(.text_spoiler) > a:not([href^="/"]):not([href*="anistar.org/"]):not([href*="astar.bz/"]):not([href*="online-star.org/"]):not([href*="online-stars.org/"]))y +online-stars.org#? +online-star.org + anistar.org + +astar.bz1dle-content > .news:-abp-has(> .news_text object)* + x-uboino.net#dle-content > .searchA +mymedicalportal.net&#dle-content > .short-post > .category( + bestradio.fm#dle-content > .well' + kritka.su#dle-content > a[href]/ + kichkas.biz#dle-content > a[href] > img^ +politobzor.net + finobzor.ru + warfiles.ru + topwar.ru#dle-content > div[id^="id-"]l +joker.ykt.ru#?Vdle-content > div[style="margin-top:7px;"]:-abp-has(.newstitle > a[href*="/reklama."])> + univertv.org*#dle-content > div[style^="float: right;"]1 + batzbatz.com#dle-content > span > noindexD + +diakov.net2#dle-content > table td > a[target="_blank"] > img8 + 2krota.ru'#dle-content > table:first-child center; + xtreme.ws*#dle-content > table[width="100%"][height]/ + +boxkino.ru#dle-content a[href*="aHR0c"]B + best-soft.net-#dle-content div[align="center"]:not([class])3 + kinoakter.net#dle-content div[style*="440"]E +films-torrent.ru-#dle-content noindex a[href][target="_blank"]E +vesti-ua.net#?/dle-speedbar > .hblock:-abp-has(> .adsbygoogle) + +infox.ru#dmLarge +samoychiteli.ru#docAd$ + argumenti.ru#doscroll_prompt + coil32.ru #down_ads! + orangeapps.ru #downbanners& +playmarket-for-pc.com #download; +playmarket-for-pc.com#download + div[style*="text"]E +zoneofgames.ru/#download ~ table[width="100%"][align="center"]  + animemovie.ru #drakensang) +forums.drom.ru#drom_catalog_block= +photoshop-master.ru + +pc-user.ru + mosuch.ru#dropin + +drive.ru#dv-topF + tea-online.ru1#edd_cart_widget-2 + .widget_text > .widget-title + +v-dacha.ru #edge_top  + stratege.ru #elid_out_one  + stratege.ru #elid_out_two7 + sportrecs.com"#embed .MuiButton-containedPrimary + tipsboard.ru#execphp + +indivip.ru +#execphp-3  + +deita.ru#external_iframe + +inpot.ru#ezobann" +bitcryptonews.ru +#faq-index! + +turmush.kg#fb_bottom_like# + myparcels.ru#featured-wantsú +vk.ru#? +vk.comàfeed_rows > div[class^="feed_row"]:-abp-has(> [id^="post-"] > ._post_content .PostHeader > .PostHeaderInfo > [class^="PostHeaderSubtitle"] > [class]:-abp-contains(/Community ad|Реклама|РÑ�клама|жарнама/))ž +vk.ru#? +vk.com„feed_rows > div[class^="feed_row"]:-abp-has(> [id^="post-"] > ._post_content .PostHeader > .PostHeaderInfo [onclick*="ads_params:"])Ÿ +vk.ru#? +vk.com…feed_rows > div[class^="feed_row"]:-abp-has(> [id^="post-"] > ._post_content .PostHeader > .PostHeaderInfo [onmouseover*="AdsLight"])§ +vk.ru#? +vk.com�feed_rows > div[class^="feed_row"]:-abp-has(> [id^="post-"] > ._post_content .post_header_info .post_date:-abp-contains(/Ad|Реклама/))’ +vk.ru#? +vk.comyfeed_rows > div[class^="feed_row"]:-abp-has(> [id^="post-"] > ._post_content .post_header_info [onmouseover*="AdsLight"]) + itop-gear.ru#fguruG + partarium.ru3#filter-form a[href^="/redirect/"][target="_blank"] + litres.ru #finishBuyBox$ + city.ogo.ua#first-top-bannerD +footballtransfer.com.ua + +site-do.ru + +tagaev.com #fixblock +studopedia.net #fixcyber  + +vesti.ru#fixed-adv-block + helpsetup.ru#fixed1 + life-prog.ru#fixlife + poisk-ru.ru#fixydivI +api.turk-sinema.ru +api.ekranka.tv + api.yadoma.tv #flash_layer& + metamarket.ua#flash_market_468Õ' +games.apitech.ru#flip_container1 + sport247.live#float-bottom-content-closer + mmoglobus.ru #floating + +diets.ru#fly-container + mozgotvet.com #fly_mozg + shram.kiev.ua#flydivF + softoroom.org1#fo_cblock2 > .row2 > table ~ div[align="center"]0 +smolensk-auto.ru#fo_ОбъÑ�влениÑ�, +smolensk-auto.ru#fo_Партнеры( +smolensk-auto.ru#fo_ПреÑ�Ñ�а +cherkassy-sport.com#fon + goldenlib.ru#fon-adv+ + shaiba.kz#fonbet_oversize_containerF + uaprom.info +cwer.me +cwer.ru +cwer.su +cwer.ws#footer. +prestige-gaming.ru#footer + div[align]* + instantcms.ru#footer > #wide_links+ + +izbavsa.ru#footer > .block ~ .blockT + +24dom.infoB#footer > .row-fluid > div[style="padding-top: 10px; float:left;"]+ + tltonline.ru#footer > div > noindex' +dungeonmaster.ru#footer noindex, + fotostrana.ru#footer-ads-banner-cont) + tophotels.ru#footer-banner-widget. + piki-trip.ru#footer-widgets .group.pad! + stratege.ru#footer[class]‹ +freescreens.ru + payforpic.ru + picforall.ru + imgclick.ru + picclick.ru + picclock.ru + +imgbase.ru + +imgcach.ru #footer_left  + ruseller.com #footer_wrapV + +dni.ru#?Ffor_fix > *:-abp-has(.titlebar > span:-abp-contains(партнеры)) +ok.ru #fthColWrp *! +xxx-russian.ru #full-smile# + ex-press.by#full-top-layout@ + etextlib.ru-#full_det > div[style]:not([id]):not([class]) + +vsluh.ru #fullscreen" +cq.ru#fullscreen-container +khl.ru#fullscreenBanner + dk003.com#gads + academic.ru#games5 + +la2nika.ru##general > a[href][target="_blank"] + narkoseti.ru#gifts +zaqw.ru +#gkBanner1% + gameround.ru#global_back_link + chepetsk.ru#glory + +seriatv.ru #google_box& + otzyvua.net#google_recommended! +womanadvice.ru #googlerekl# + gamepedia.com#gp-pro-upsellT +dnevnienovosti.ru#?9grid-loop > .post:-abp-has(> a[href*="://urldirect.ru/"]) + trisosny.ru #grid-top + +gts39.ru #gts-carousel + gitaristu.ru +#guitarist$ +tomat-pomidor.com #guseff_top +bdf.ms#gxFooterBanner$ +viknaodessa.od.ua #half_right + +webtun.com#hbanner +sd.ua #head--area& +zastroyschiki39.ru #head-banner" + volyninfo.com #head-content  + pornotales.ru #head-links= + www.sibnet.ru(#head-links > a[href*="://rt.sibnet.ru"]7 + city.ogo.ua$#head-top > div > a[target="_blank"] + oblgazeta.ru +#headBaner3 +novostiliteratury.ru +31tv.ru #head_banner! + pnzstroi.ru#headban_right& + 6barrel.com + +samru.ru#header8 +hostingkartinok.com#header + div[style*="960px"]Ñ" +hubs.ua#header .textwidgetF + afisha.fi5#header > .container > div[style="padding-top:20px;"]' + poglyad.te.ua#header > .rounded) + fitseven.ru#header > .widget_textH +liveangarsk.ru2#header > :not(#logo):not(.block):not(:last-child)@ + karpovka.net + kanoner.com#header > center > div[style]C +sat-ukraine.info+#header > div[style^="text-align: center;"]+ + rebill.me#header a[target="_blank"]1 + gearshout.net + +bagnet.org#header-banner+ + yaplakal.com +yap.ru #header-flashA + +16-bits.ru/#header-inner > font > a[href][target="_blank"] + +gta.com.ua #header-rek1 +theageoffootball.com#header-right-section) + nnews.com.ua#header-text-nav-wrap! + +namba.kz#header-top-space$ + world-mmo.com#header-wrapperF + nikvesti.com2#header-wrapper noindex > a[href][target="_blank"] +sysadminblog.ru#header2# + fisher.spb.ru#headerBanners: + pornhub.com + pornhub.org#headerUpgradePremiumBtn5 + +arigato.tv##header[style] #header:not([style])% + zaxid.net#header_advt-wrapper + tr.anidub.com #header_by +moe-belgorod.ru +moe-lipetsk.ru + moe-online.ru + moe-tambov.ru + prokuzbass.ru + moe-kursk.ru #header_baner' +sudostroenie.info#header_banner# + megalyrics.ru#header_bottom% +sitepartners.ru#header_center( +radidomapro.ru#header_partenaire" + +pesiq.ru#header_right_cell + gzt-sv.ru#headerq# +chess-samara.ru #headlineAdvj +zagonkop.gb.net +zagonkov.gb.net + zagonka.net + zagonko.org + zogonka.org + +zagonka.tv#hfsn + wbprx.com #hidemead + +intvua.com#hit_pr + +vecdn.pw#holdon% + pickupclub.ru#home-wide-block* +lifehaker.forum-top.ru #html-footer* +lifehaker.forum-top.ru #html-header1 +dokfilm.maminforum.com#html-header > #obj8 + goodgame.ru%#html5player > div[style*="absolute"]( +root-nation.com#id-custom_banner~ + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life*#idx-sidebar2 > div:not([id]):not([class]) + +batpic.com #imRunetkiPop, + lostpic.net#image_after_image-viewer* + lostpic.net#image_image-viewer_top7 +penzavzglyad.ru #index-right > .col-border.col-1u + gazeta1.com#?`index_desktop > .row:-abp-has(> div > #span-title:-abp-contains(/^реклама|^партн/i))5 + igra.life$#info > div[id^="mp_wid_"] ~ .textos$ + gamedayz.net#info-main-block! + avan-ti.net#infobox_right# +checkfootball.info #informerA +kirov-portal.ru*#inner > div[style="margin-bottom: 24px;"] + stalkermod.ru #innertop + inoe.name #inoe-banner3 +greasyfork.org#install-area > .post-install3 +prozoro.net.ua +radarmedia.net #installAppT +download-windows.org + softhome.ru)#installpack-table > .buttons-wrapper > pO +download-windows.org + softhome.ru$#installpack-table > .center-wrapper' + +keypro2.ru#interesting_articles" + cripo.com.ua#internetuacom' + argumenti.ru#invite_bottom-news3 + lr-club.com #ipbwrapper > table + #userlinks2 + xboxland.net#ipd-msg-wrapper + br + centerN +tomat-pomidor.com5#ipsLayout_contentWrapper > div[style*="min-height:"]Û4 + disput.az##ipsLayout_mainArea > center[style]M +tomat-pomidor.com#?2ipsLayout_sidebar .ipsBox:-abp-has(> .adsbygoogle)S +tomat-pomidor.com#?8ipsLayout_sidebar .ipsBox:-abp-has(> [id^="yandex_rtb"])j +tomat-pomidor.com#?OipsLayout_sidebar .ipsBox:-abp-has([href][target^="_blan"] > img[src*="/gra/"])V +chipmaker.ru#?@ipsLayout_sidebar .ipsWidget:-abp-has([alt="advertisement_alt"]) + kinonews.ru #ivi_footer0 + www.ixbt.com#ixbt-video-news-block:empty1 +pravo-porada.com.ua#jm-right .bannergroup + metanit.com#jma% + joker.ykt.ru#jok-banner-affix$ + +autoua.net#js-preload-banner + vkfaces.com #js-slider-1 +nur.kz #js-widget-pm + ifreeapps.ru +#jv-banner) +broadcast.net.ua#kinoafishaslider5 +buknews.com.ua +portal.lviv.ua #kinotvukrnet+ + kloomba.com + +klumba.com +#kl-ad-top# + kloomba.com#kl-o-gallery-ad + +price.ru#kontainer-top + compulenta.ru#kph0$ + clubtk.ru#kplus-popup-banner= +private-records.com + +xcadr.tv#kt_player > a[target]) + moviki.ru#kt_player > iframe[src]" +forum.vingrad.ru +#kupitraff + kurs.com.ua #kurs_pixel + +batpic.com #l0ZKuGa775' + stranamam.ru#last-ad-link-block + mp4upload.com#lay.lay/ + volynpost.com#layout-center > a[target]E +sergeistrelec.name+#left > .bl0 ~ .bl0:not(:nth-last-child(2))* + novate.ru#left > .post ~ .bordered( + fullgames.ru#left > div:not(#ms). +oper.ru#left a[href*="://opershop.ru"]- +irtafax.com.ua#left a[rel="dofollow"]5 + oper.ru#?$left li:-abp-has(a[href*="//wink."])< + oper.ru#?+left li:-abp-has(a[href*="://opershop.ru"])& +rabota.kharkov.ua #left-banners + questtime.net #left-botM + 3dnews.kz + 3dnews.ru/#left-sidebar > .sidebar-chunk.mid:not(.strong)2 +gk-press.if.ua#left-sidebar > .widget_textA +mosgorzdrav.ru+#left_banners > a[href="http://sod.mos.ru"]= + pesni-tut.com(#left_block > div:not([id]):not([class])4 + rus-linux.net#left_col .center > noindex ~ *7 +laststicker.ru!#left_menu > div[style] > noindex) + katushka.net#left_menu_no_adv ~ *Q + studbooks.net + +studme.org.#left_slide > #conteiner,#left_slide > noindex +kidstaff.com.ua#leftban + +seopult.ru#leftbn  + alfa-form.ru #leftcol > *3 +soft.oszone.net#leftcol-c > br + div[style] + anekdot.bar +#leftcolonÑ +fast-torrent.club +fast-torrent.ru +fast-torrent.su + fast-fiml.ru + filmpotok.ru + kinomuch.ru + pickfilm.ru + +nebeda.net + veleto.ru + +vixim.ru-#leftmenu .no-mobile a[href][target="_blank"]+ +windows-disk.com#leftmenu > noindex; +vashuchebnik.com + lyrsense.com + +en365.ru#leoDiv" + myparcels.ru#letystd-block( +forum.rcdesign.ru#lh_bar-product +now.ru #lightbox +now.ru#lightboxOverlay + +relasko.ru +#linkPlace  + mixupload.org #link_brand + litmir.me #litres_btn, +liveinternet.ru#liveinternet_600x250. +liveinternet.ru#liveinternet_billboard8 + sibmail.com%#ll_slot_3 + * + div[style*="160px;"]Ó +sm.news#loaded/ + lurkmore.wtf#localNotice #aside_buttons) + lurkmore.wtf#localNotice .infobox� +root-nation.comx#login-form + .tdc-zone > .tdc_zone > div[class^="tdi_"][class*="_rand_style"] + .tdc-row > .tdc-row-content-vert-center! + +rupier.com#logo > noindex + osadovod.ru +#logo-areal + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life#logo-td + .w100.tCenter0 +motoliga-nn.ru#logodesc td[width][align] + +virpl.ru +#logoslide +sapr.ru#lolotop( +prestige-gaming.ru#m1-link[href]" + fullgames.ru#main + #right0 + kaztorka.org#main > #logo + [class*=" "]! + igropoisk.com #main > #top" + 1000.menu#main-aside > .ib + pnzstroi.ru #main-ban +lgz.ru #main-citatB +serveradmin.ru,#main-content > :not(.content):not(#sidebar)? + yaplakal.com +yap.ru!#main-menu > a[href*="://yoy.so"]j + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life#main-nav > .ext-links7 + +gramota.ru%#main-sec > .block-side ~ .block-side< +hdd.by.#main-sidebar > .widget_custom_html:last-child + vjazhi.ru #main-top$ +referatwork.ru#main2 > table1 + fastpic.org#mainContainer > div:not([id])* + shans.com.ua#mainContent > noindex' +avtotachki.com#mainFloatDesctop6 + shans.com.ua"#mainNav > .titleBlue ~ .titleBlue? + shans.com.ua+#mainNav > div[style="margin-bottom:20px;"] + argumenti.ru #main_adv2 + forum.hdtv.ru + zadonbass.org #main_banner9 +file-tracker.net!#main_content + td[width="240px"]\ +forum.tradelikeapro.ru>#main_content_section > table > tbody > tr > td:nth-of-type(2)? + rugrad.eu.#main_right_col > .section:not(.section_blogs) +zoneofgames.ru#mainbg + ignio.com #mainnews +tut.by #marketWidget6 + news-tape.ru"#masonry-container > .corner-stamp  +readytospeak.ru #masthead  +dou.ua#max-header-adv-id% +mega-tracker.net #mb_top_space + colorforum.ru #mbanners +coap.kz #mc_baner< + +banki24.by*#menu a[href^="https://insnc.onelink.me/"] +streamzone.org #menuLeft. +bash.im#menubar > div[style^="float:"]  +freakenergy.ru +#menuforum + thevidosss.ru #mess_boxO + forumhouse.ru:#messageList > [id^="post-"] ~ .message:not([id^="post-"])" +meta.ua#meta_market_bottomk +zagonkop.gb.net +zagonkov.gb.net + zagonka.net + zagonko.org + zogonka.org + +zagonka.tv#mfoot +donday-novocherkassk.ru +donday-taganrog.ru +donday-shakhty.ru +donday-aksay.ru + volga-day.ru + donday.ru#mgidH + oper.ru#?7middle > .thumbnails:-abp-has(> ins a[href*="//wink."])C + oper.ru#?2middle > dd:-abp-has(> .body > a[href*="//wink."])' + fotostrana.ru#middle-ads-banner8 + +stadion.uz&#middle_section > div[style^="float:"]F + +k-agent.ru4#middletbl_r_in > a[href="http://www.sushivenik.ru"]! +tort.fm#min-banners-block + bestfree.ru#mine" +bankchart.com.ua +#modal-cpa  +mozilla-russia.org#modex` + animevost.one + animevost.org + animevost.top +vost.pw#moduleLeft[style="border:0;"]  + ekaraganda.kz #moneyblock± +flash-player.net +clip-share.net + ru-clip.com + ru-clip.net + thclips.com + uaclips.com + +brclip.com + +kzclip.com + +ruclip.com + +vnclip.net + frvid.com#morev®! +chinaspb350.ru #mouselayer3 +westernfilm.ru#movie-right noindex > center4 + youtube.com!#movie_player > .ytp-cards-teaser; + inforuss.info + lentaruss.ru + +smiruss.ru#msg_pop + mediapapa.org#mv# + shotam.info#mvp-leader-wrap) +daily-inform.ru#mvp-post-bot-wrap" +internetsms.org #myCarousel +doctorrouter.ru#myModal + pythonru.com#mytest7 + lurkmore.wtf##n-Группа-в-ДиÑ�корде7 + lurkmore.wtf##n-Канал-в-Телеграме + afportal.ru#nadoelo" +matematika-club.ru#nagadai* + +dofiga.net#nav_news > table[class] + +dofiga.net +#nav_right= + bitmakler.com(#navbar-container > div[style^="height"]5 + divx-kino.ru!#navlist a[href][target="_blank"] + liwihelp.ru #ne_nazhimat  + kinored.club #new-ad-part% + the-ebook.org#new-adver-promo- + the-ebook.org#new-header > #leftQuote. + the-ebook.org#new-header > #rightQuote` +bookskeeper.ru#?Hnews-arch:-abp-has(h4:-abp-contains(/Реклама|Партнеры/i))y +www.zoneofgames.ru#?]news-list > .news-item:-abp-has(> .news-content > div > p[style] > span:-abp-contains(erid:))# +interesniy.com #news-partner + +7days.ru #news-widget; + football24.ua&#newsRightColumn .right-column-divider? + football24.ua*#newsRightColumn div[style*="min-height:"]. + +iguides.ru#newsTape > .row > .col > h2 + finget.ru#news_a% + sevnews.info#news_bannerPlace9 + tvtver.ru(#news_lenta > .hidden-xs:not(.news_item); + +ua.today+#news_partner > .relap-default__block-titleX + +sport.ua#?Fnews_text > div[class]:-abp-has(table[cellpadding] a[target="_blank"])/ +pogodavtomske.ru#news_tomsk > div:empty + yachaynik.ru +#newsflash +ntv.ru#newszen: + anekdotov.net%#no_mobile > a[href][target="_blank"] +kv.by #node-banners +forum.inoe.name#notices/ + +sudga.ru#notifications_menu + .t1borderƒ +donday-novocherkassk.ru +donday-taganrog.ru +donday-shakhty.ru +donday-aksay.ru + volga-day.ru + donday.ru #novoteka$ +saratovnews.ru#nws > .banner- +soccer365.com.ua + soccer365.ru#odds + cross.bet +#oddsBlock  + youtube.com #offer-module +russian.rt.com#offers! + kupidonia.ru #offers-right$ + samlib.ru#offfy-agent-bottom2 +anime-joy.online + animejoy.ru #offreklama) + +sdamgia.ru#old_school > .App > brL +onlinemschool.com3#oms_center_block div[id][style*="text-align:"] > a% + zenit-fk.ru#online-bookmakers" + kino-line.su#open_new_site' + hl-inside.ru + +np.pl.ua#orphusJ +infoselection.ru#?0ot-right > div[id^="mod"]:-abp-has(.bannergroup)! + kino-teatr.ua #ourBranding + +vashdom.ru #out_banner, +electricalschool.info#outer > #third + +woman.ru #outside-col + kinogo.fm +#overlay_u# + promodj.com#overlaybranding& + 1plus1.video#ovva-player .o-pp…! +outlook.live.com #owaadbar) +wikireality.ru#p-sidebar-extlinks$ + rserials.net#page > #overlay. +kv.by!#page > .region-secondary-content+ + fapvdo.ru#page > .users:first-child! + carsweek.ru#page > :empty* + brestcity.com#page > a[href] > img  + +allunix.ru#page > centerj +praetorians.wsT#page > noindex a[href][target="_blank"]:not([href^="http://praetorians.ws/forum/"])9 +forum.baginya.org #page-body > .bg2.post:not([id])d + zx-pk.com#?Qpage-body > .post:-abp-has([class="username-coloured"]:-abp-contains(Advertiser))3 + all-best.pro#page-body > div[class="panel"], + ruseo.net#page-body > noindex > .bg3) + poiskvps.ru#page-footer > noindex' + +torg.rv.ua#page-header > .panel, + multiurok.ru#page-sidebar > div > h31 + multiurok.ru#page-sidebar > div > h3 ~ ul + blisch.by #page::after? + +siteua.org-#pageBody > div[style^="text-align: center;"]R + +7days.ruB#page_content > div > div:not([id]):not([clas])[style*="padding:"] + totori.ru +#page_flipx + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life$#page_footer > div[style^="padding"]+ +rgfootball.net#page_header > center' +rgfootball.net#page_header > hrY +vk.ru#? +vk.com@page_wall_posts > div[id^="post-"]:-abp-has(.wall_marked_as_ads)÷ +vk.ru#? +vk.comÝpage_wall_posts > div[id^="post-"]:-abp-has(> ._post_content > .PostHeader > .PostHeaderInfo > .PostHeaderSubtitle > .PostHeaderSubtitle__item:-abp-contains(/Community ad|Реклама |РÑ�клама | жарнама/))_ + radiokot.ru#?Jpagecontent > .tablebg:-abp-has(.postauthor:-abp-contains(Реклама))3 + rf-cheats.ru#pagenav_menu + center ~ center( + +talkers.ru#pagenav_menu ~ centerd& +$xn----btbdkbsogebtjq6bm4g5b.xn--p1ai +promebelclub.ru%#pagenav_menu ~ div[style*="height:"]� +freescreens.ru + payforpic.ru + picforall.ru + imgclick.ru + picclick.ru + picclock.ru + +imgbase.ru + +imgcach.ru#pai_thumbz_hider+ +best-soft.npps.biz#parent-erocritic_ +joomlatown.net + sportnet.live + ruspicbox.ru + +klanwin.ru + ipadus.ru #parent_popupA +www.onliner.by+#parimatch-widget .b-main-page-result__list + clip2net.com#partbn# +hostingkartinok.com#partner) +hostingkartinok.com#partner-aside +lux.fm#partner-block- + bash.news#partner-widget-mediametrics + litres.ru #partnerLine# + footballua.tv#partner_title+ + sibmama.info + +sibmama.ru #partners + +dofiga.net#pbie_25 + +poleno.net#pddk221# + onyxgame.com#pegination ~ a$ + +mamba.ru#photo_viewer[style]8 + sportrecs.com##player .MuiButton-containedPrimary' + konohatv.org#player > .absolute1 + toples.cc #player > div[style*="pointer;"] +ts.kg#player-blocker9 +ovva.tv*#player-mobile-select > .buttons-container +protonvideo.to #playerBg* + +matchtv.ru#player_ima-ad-container# + postal.ninja#pn_gsc_pblocks! +pressa-online.com#po-vips/ +healthystyle.info#podnovka ~ div[style]) +999.md#pointer-informer-container% +riotpixels.com#pologo-article$ + +pons.com#pons-ad-leaderboard( +smile-vkontakte.ru#pop-up-window + myfelt.ru +#popap_top& + autonevod.ru#poppup-ads-banner + xexe.club#popular7 +fototeens.lifeforums.ru +propohoroni.ru#popupá$ +akakpravilno.ru #popup-bottom +kp40.ru #popup-id +muz.ru #popupBanner + vizyt.com #popup_block + prodengi.kz #popup_prod& +hereinteresting.ru #popupwindow‹ +nakrutiperiscope.ru +starlinemedia.ru +invisiblebra.ru +pervoevtoroe.ru +iv-modelist.ru + +tv-mari.ru + +nrbiz.ru +#popwindow8 + manutd.ru'#positioner > div[style="height:30px;"]" + aptekamos.ru#post-data-adv% +wysiwygwebbuilder.ru #post_adsw +forum.developing.ru +ruboard.website +virusinfo.info + forumodua.com&#posts > .postcontainer[id^="yui-gen"] + rf-cheats.ru #posts > br. + rf-cheats.ru +nowa.cc#posts > center! + pptcloud.ru#pptcloud-mail + cpainform.ru#pr_top + +1ttv.net +#prerollad  +delovoy-kirov.ru#preveav + +freehat.cc #prgm-block + +legends.ru +#pricerbigK +bloknot-khersona.ks.ua + osnovu-ved.ru#primary .textwidget noindexd +dimonvideo.ru#?Mprimary > article:-abp-has(> .panel > .panel-heading > [href="/reklama.php"])  +ain.ua#prjctrHightlights  + bankiros.ru #product-bestX +bookarchive.ru + micro-win.com + headsoft.kz + rl-team.net + vsetyt.us#promo& + fit4power.ru#promo > div > div! + macilove.com #promo-app-ap" +delovoy-kirov.ru +#promo-fix +24tv.ua #promoArticle + +sofirus.ru #promo_bottom + +dofiga.net #ptext_15' +wmforum.2bb.ru#pun-announcement0 +forums.heroesofnewerth.com#purchase_pref +slitherio.club#pwindow +slitherio.club#pwrap +soft-i-kino.ru #pxsnazzy +delovoigorod.ru#rB +duster-clubs.ru+#r-colonka > .f-block ~ .f-block ~ .f-block� +mundolatino.org.ua#?er-colonka > .f-block:-abp-has(.b-topa:-abp-contains(/интереÑ�ные блоки|еклама/i))6 +duster-clubs.ru#r-colonka > a[target="_blank"]* +duster-clubs.ru#r-colonka > center! + netall.ru#r_detail_bottom + volna.top #radiorek +documentalnye.ru#rbc +meta.ua#rbn + +ereko.ru#rcl( +vologdahistory.ru#rdp-we-adswiki + 73online.ru #read-mediam> +live-sports101.org +pastila-club.ru + uchim.org#rec! +live-sports101.org#rec_bg + +rus24.tv#rec_vert_right +roadvictory.ru#recl + +mykozha.ru #reclbarfix! + enovosty.com #redtram_news + +ria-m.tv#rek+ +football-russia.tv#rek-right-column + samlab.ws#rek-top +glasscannon.ru#rek_bg7 +vkusneedoma.ru + notefood.ru#rek_desktop_fixed* +gigantporno.com + +htmlweb.ru#rekl" +psihologia.biz #rekl-center  + truba.com#reklama_banner +mamabook.com.ua#related9 +korabelov.info##related-posts-after .mag-box-title- +games-porno.net#relategames > noindexÀP +portall.zp.ua#?9relationfield > div:-abp-has([href*="://aliclick.shop/"])  + itnet.com.ua #reply-title' +mediametrics.ru#reportsInfoBase +drom.ru#rest_vl_block + funlog.ru#rfunlog… + google.com.ua + +google.com + google.by + google.kz + google.ru;#rhs_block .xpdopen div[data-ved] > .mod:not([data-attrid])- +viknaodessa.od.ua + +pozdrav.ru#rightI +sergeistrelec.name/#right > .bl0 ~ .bl0:not(:nth-last-child(-n+2))4 + novate.ru##right > .bordered + br + .bordered; + novate.ru*#right > .bordered ~ .bordered ~ .bordered8 +filmitorrent.net + +utorr.cc#right > .colorstrip +n71.ru#right > .nofloatG + sun-news.ru4#right > .sideblock > :not(#vk_groups):not(.fb-page)A + kinokong.sk.#right > div[style*="height:"][style*="255px"]3 + itnews.com.ua#right > div[style^="height:"]1 + novate.ru #right > h2 ~ div + br + br + h2V +kulturologia.ru + novate.ru#?0right > h2:-abp-contains(Рекомендуем)U +kulturologia.ru#? h2:-abp-contains(Рекомендуем) + .bordered- + novate.ru#right > noindex ~ .bordered) + +komplat.by#right-banner-container/ +astromeridian.ru#right-column > noindex4 + aptekamos.ru #right-data-container [bannerid]2 +opensharing.org + freepiks.ru #right-image +sia.ru #right-rand-1F +nezhatin.com.ua/#right-sidebar > .widget_text:not(:first-child)O + kali.tools#? + hackware.ru,right-sidebar > aside:-abp-has(.adsbygoogle)U + kali.tools#? + hackware.ru2right-sidebar > aside:-abp-has([id^="yandex_rtb"])L + kali.tools#? + hackware.ru)right-sidebar > aside:-abp-has(div[name])& + smska.net.ua#right.widget-area" + translate.ru#rightAdvBlock + disput.az #rightBanners + sinoptik.ua #rightCol# + risu.org.ua#rightCommercial +tut.by#rightLinksBlock +qip.ru#rightPanelBanner + maxikarta.ru #rightRnd/ +klopotenko.com + +diary.ru #right_banner$ +myvi.ru#right_banner_wrapper- +rk1.ru#right_banners img[width="230"]= +onlinemix.club#?%right_case > .module:-abp-has(script)% + brd24.com#right_col > .banner) + memstatus.ru#right_col2 > .module% +mult-film-pro.ru #right_column% + tvtver.ru#right_column_banner& +milliarderr.com#right_informerB + katushka.net.#right_menu div[id][class][style^="display"] *6 +www.vashsad.ua #right_part > .new_section:empty+ +www.vashsad.ua#right_part > noindex> + +stadion.uz,#right_section > div[style^="height: 400px"]= +naruto-base.tv'#rightbar > .block:first-child + .block! + alfa-form.ru #rightcol > *2 +sudakonline.info#rightcol > .module-outer19 +sudakonline.info!#rightcol > .module-outertoppanell +nintendo.moy.su#?Srightcol > div[class^="box"]:-abp-has(> .spacer > h3:-abp-contains(Реклама))- + +oszone.net#rightcol-c > div > noindex + anekdot.bar #rightcolon# +uti-puti.com.ua #rightcolumnA + kinonews.ru.#rightcolumn > .blockdiv[style^="text-align:"]2 + +gumer.info #rightcolumn[valign="top"] > divV + +php.ru#?Frightpan > .block:-abp-has(> div > a[href*="banner"][target="_blank"])J +alcodistillers.ru#?/rightside .main-content:-abp-has(> span script)d +alcodistillers.ru#?Irightside .main-head:-abp-has(> .hn > span:-abp-contains(Реклама))< + fullsite.org(#rightside > .right-block:nth-of-type(2)- + lion-tv.org#rightside > div > noindexÝT + lion-tv.org#??rightside > div:-abp-contains(Ð�а правах рекламы)9 + lion-tv.org&#rightside > div[style^="background:"]% + oskazkax.ru#rightside noindex= +cwer.me +cwer.ru +cwer.su +cwer.ws #rightsidebar! + k1news.ru#rigthBlokBaners + +softbox.tv #rk-content +animeonline.cc #rkl-left! +blackhole.beeline.ru#rootG + +adme.media5#root > div > div:not([id]):not([class]):not([style])9 + forzajuve.ru%#root-wrapper > .top-module-container +irk.ru #rotateAdvert + +ekranka.tv +#rrrFooter + +ekranka.tv +#rrrHeader + +ekranka.tv #rrrToper + useron.ru #rt-maintop + +fakty.ua #rt_obmen + musinfo.net#rtm-top +66.ru +#runBanner! + +ruslife.eu#ruslife-banner + arhangel.ru#rzdl# + stroy.ykt.ru#s-diamond-most + gidonline.fun#s-side + magtimes.info#s\(1\)" + vputilkovo.ru #sadetsbouter +liveangarsk.ru#samtop= + youtube.com*#savefrom__yt_btn a.sf-menu-item[href="#"] +irr.ru#sb-calc-wrapper +om1.ru#screenGlideAdb  + winxland.ru #script_block. +technical.city#scroll_banner_container + webdiana.ru #scrollableQ + pravda.ru@#scrolling-news-list > div[style*="height:"][style*="overflow:"]# +hubs.ua#secondary > #text-2P +keysportal.com#?8secondary > .sidebar-widget:-abp-has([id^="yandex_rtb"])L +game-roblox.ru#?4secondary > .widget-wrap:-abp-has(> .widget_execphp)5 + sysadmin.link #secondary > .widget_custom_html[ + svoboda.te.ua + donbass.name6#secondary > .widget_custom_html ~ .widget_custom_htmlB + listaj.ru1#secondary > .widget_custom_html:not(:last-child)K +keysportal.com5#secondary > .widget_recent_entries ~ .sidebar-widget? + belprauda.com + desktophut.ru#secondary > .widget_textZ +dimonvideo.ru#?Csecondary > aside:-abp-has(> .widget-title > [href="/reklama.php"])) + provapes.ru#secondary.widget-area2 + shans.com.ua#secondaryContent > .titleBlue7 + shans.com.ua##secondaryContent > .titleBlue ~ br{ + shans.com.uag#secondaryContent > div[style="margin-top:20px;"] > noindex > :not([title="ГорÑ�чаÑ� линиÑ�"])e + shans.com.uaQ#secondaryContent > div[style="margin-top:20px;"] ~ div[style="margin-top:20px;"]# +www.semestr.ru #semestr-newsi +russianpost.ruS#service_column > a[target="_blank"]:not([href*="почтоваÑ�карта.рф"])# + smartbobr.ru#servisybuttons. + superhumor.ru + +voffka.com #shapka-blk + +klubok.com #shops-wrap + literator.org #showcase? + h-chan.me.#side > div:not([id]):not([class]):first-childD + h-chan.me3#side > div:not([id]):not([class]):first-child + brR + h-chan.meA#side > div:not([id]):not([class]):first-child + br + .area_right; + +vpk.name+#side > div[style*="300px"][style*="600px"] + +drive.ru#side-dv + igrozor.org#sideAdvl +newstudio.tv#?VsideLeft > .accordion-group:-abp-has(.accordion-heading:-abp-contains(seedbox.org.ua))& + ebooktime.net#sideLeft > .baza) + xreferat.com#sideLeft > .left ~ *+ + ruseller.com#sideRight > .box ~ divB +ua-ekonomist.com*#sideRight > div[align="center"] > a[href]) + sterlegrad.ru#sideRight > noindexÞ' + 5litra.ru#side_left > .bnav ~ *1 + 5litra.ru #side_right > .side_right_bl ~ *I +politobzor.net + finobzor.ru + warfiles.ru + vsluh.net#sidebarF +servers-rust.ru#?-sidebar .toggled:-abp-has(> .mob_quad_banner)Q +kulinarnayamozaika.ru + z-city.com.ua + +kakbog.com#sidebar .widget_text< +remontcompa.ru&#sidebar .yashare-auto-init ~ :not(em)$ + oddstyle.ru#sidebar > #boxes) +creativportal.ru#sidebar > #fixed? + +hrk.aero/#sidebar > .banners-list > :not([id^="email-"])' +privetsochi.ru#sidebar > .block, + kosmetista.ru#sidebar > .block-empty? +creativportal.ru'#sidebar > .block-social:nth-of-type(2)- +sportarena.com#sidebar > .block-title[ + boomtv.ru#?Hsidebar > .block:-abp-has(> .blockcontent > noindex > [id^="kdm-bloc-"])M +101kofemashina.ru4#sidebar > .custom-html-widget ~ .custom-html-widget) + +tvsok.ru#sidebar > .left_ad_blockŠ +donday-novocherkassk.ru +donday-taganrog.ru +donday-shakhty.ru +donday-aksay.ru + volga-day.ru + donday.ru#sidebar > .mb10� + mobzon.ru#?zsidebar > .module:-abp-has(> .inner h3:-abp-contains(/Блок Ñ�Ñ�ылок|Блок Google|Рекламный блок/))( +referatwork.ru#sidebar > .scrolle + videomin.ws#?Psidebar > .sidebar-content:-abp-has(> .top > .fix:-abp-contains(Реклама))n +tvvse.my1.ru#?Xsidebar > .sidebox:-abp-has(> .sidetitle > span:-abp-contains(/^интереÑ�ное/i)), +sportarena.com#sidebar > .textwidgetH +openssource.biz#?/sidebar > .widget:-abp-has([href*="//pwnd.cx"])T +openssource.biz#?;sidebar > .widget:-abp-has([href*="utm_"][target="_blank"])- +sportarena.com#sidebar > .widget_text0 + kinolook.top#sidebar > :not(.sb-watched)F + russian7.ru3#sidebar > :not([class="banner240box"]:first-child)T +domodedovod.ru>#sidebar > [style="width:420px; margin-top:15px;"] > div ~ div: +radioshanson.fm##sidebar > a[href][target="_blank"]# + +glavufa.ru#sidebar > center* + +fixygen.ua#sidebar > div > a > img= + uptracker.ru)#sidebar > div > a[href][target="_blank"]J + bikepost.ru7#sidebar > div[style*="visibility: visible !important"]7 + +futbik.net%#sidebar > div[style]:not(#rightmenu)O +fapreactor.com +pornreactor.cc'#sidebar > h2[style="margin-top: 10px"]U +fapreactor.com +pornreactor.cc-#sidebar > h2[style="margin-top: 10px"] + divC +ruboard.website#?*sidebar > li:-abp-has([id^="yandex_rtb_"])) + +zx-pk.ru#sidebar > li:first-child1 + videovegas.ru#sidebar div[id*="rotator_"]' + +vrgames.by#sidebar-first object, + chezasite.com#sidebar-first-screen-0? + 4rama.com.#sidebar-fixed > div[class*="group"] > noindex' +all-gigiena.ru#sidebar-floating& +stroimdom.com.ua#sidebar-forum/ + uralpress.ru#sidebar-left .all_news ~ *f +liveangarsk.ru#?Nsidebar-right > .block:-abp-has(> h2:-abp-contains(Ð�аши партнёры))G + lypa.com.ua4#sidebar-right > .widget_custom_html:nth-child(-n+2)] + lypa.com.uaJ#sidebar-right > .widget_custom_html:nth-child(-n+3) ~ .widget_custom_html2 + +lib.rus.ec + +posters.ec#sidebar-right img) + pnzstroi.ru#sidebar-right noindex& + chezasite.com#sidebar-stream-04 + gubdaily.ru!#sidebar-wrap .widget_custom_htmld + underverse.su + underver.se@#sidebar1-wrap > .tCenter ~ .sb_back ~ .sb_back + .sb_bottom ~ *C + alltor.me2#sidebar1-wrap > center > a[href][target="_blank"]8 + rutracker.ru$#sidebar1-wrap > div[align="center"]) +rgfootball.net#sidebar1-wrap > hr6 +rgfootball.net #sidebar1-wrap > noindex ~ table) +rgfootball.net#sidebar2-wrap > hr6 +sitepartners.ru + melodiimp3.ru#sidebar_right+ + postmoda.ru#sidebarinner > fieldset? +tvoj-onlajn.ru)#sidebars > .widget_search + .widget_text] +tvoj-onlajn.ruG#sidebars > .widget_search + .widget_text + .widget_text ~ .widget_text' +planet-today.ru#sidright > .srm +999.md#simpalsid-newsž< +nezhatin.com.ua%#site-container > #container > center$ +wordpressinside.ru +#site5top2$ +wordpressinside.ru +#site5top3 +thg.ru #sitilink +meta.ua #slando_s8 +gadania-na-lubov.ru + dom-sonnik.ru #slide-close; +printerprofi.ru$#slide-sidebar[role="complementary"] + +edablog.ru #slidebotbox + brd24.com#slider  +islam-today.ru +#slider_01$ + mebelminsk.by#slider_content + +topfile.tj +#sliderbar + angvremya.ru #slides_top8 +gadania-na-lubov.ru + dom-sonnik.ru #sliding-bar* + zaxid.net#slotPromoinformer300x250% +sprashivalka.com #slot_central + news29.ru +#slyWindow+ +softportal.com#smart-aff-link-table  + mignews.com #smart_banner + tyndex.ru #snippetprice + animestars.ru#snow +onlinetambov.ru#socAds* +agro-business.com.ua#sp-breadcrumb1 +download-software.ru#sp-component .custom + trend-city.ru#sp-leftW +igra-prestoloff.cx#?;sp-right > .sp-inner > .module:-abp-has([id*="ScriptRoot"])N +igra-prestoloff.cx#?2sp-right > .sp-inner > .module:-abp-has([onerror])1 +slavinfo.dn.ua + +hi.dn.ua#sp-top-banners + rebill.me#space, + rebill.me#space + a[target="_blank"] +31tv.ru #special-link+ + minfin.com.ua#special-product-offer, +cian.ru#special-promo-link-container# + kino-teatr.ru#special_block + itop-gear.ru#sping  + apihot.ru#sponser_vidjet + belprauda.com #sponsors2 + +vesti.ru"#sportbox_migration_adv_click_link- + polochka.net#ss-menu > ul > li[style]& +info.sibnet.ru#stakanDomostroy + +finzz.ru #stb-overlay! + +finance.ua#sticky-wrapper3 + minfin.com.ua#sticky-wrapper > .js-ad-aside# + argumenti.ru#sticky_top-adv& +irtafax.com.ua#stretch > video# +onlinepetition.ru +#sub-songs% + +ander.su#subscribe_book_happy + ibusiness.ru +#substrate +payeer-gift.ru#surfbe + rifme.net #sverhuAd( + muzofond.fm#sveta__muzika-banner + kinoshek.net#swf" + +eurolab.ua#swiffycontainer7 +xn--80awhdeco3h.xn--p1ai + yarportal.ru#table1+ + sxnarod.com + sxn.today #tablespons + +monteon.ru#tad-boxF + +yesasia.ru4#td-outer-wrap > div[style^="display:block;height:"] + +rubook.org#teas$ + filmodrom.net#teaser-cc-cell= + poravkrym.ru + +cowcash.ru + +udermis.ru #teaser_table* +multiki-online.net#teasers-sidebar& +multiki-online.net #teasers-top + tnt-online.ru#tegA3 + astralomir.ru +#teleastroå + porjati.net #tesaerleft + +zh24.com#test— +lostfilm.download +lostfilmtv2.site +lostfilmtv3.site +lostfilmtv5.site +lostfilmtv.site +lostfilm.space +lostfilm.today +lostfilmtv.uno + lostfilm.life + lostfilm.one + lostfilm.pro + lostfilm.uno + lostfilm.win + lostfilm.tv + lostfilm.tw +#testVideo' + +zalinux.ru + medved.us#text-10 + +zalinux.ru#text-12 +zaporpobedim.ru#text-21 +tengritravel.kz#text-3 + oddstyle.ru#text-33 + oddstyle.ru#text-34 +volnorez.com.ua#text-57 +volnorez.com.ua#text-59 +te4h.ru#text-6" + money.energy#text-7.widget + itechua.com#text-9' + mir-snov.net#text-html-widget-4 + translit.net +#theBanner4 +hqq.tv&#this-pays-for-bandwidth-container-hor† + radiorelax.ua + melodiafm.ua + radioroks.ua + tavrmedia.ua + rusradio.ua + +tavr.media + kissfm.ua + +hitfm.ua #ticketsbox" +31tv.ru#title-partner-news* +russian.rt.com#today-media-article + +kerch.fm #toolsbarI + +artsgtu.ru7#tooplate_wrapper > center > table[style*="background"]& + +artsgtu.ru#tooplate_wrapper br2 + xpicture.ru + +zadolba.li + imgbum.ru#top% + tenstars.ru#top > .header-top + +patee.ru #top > .sepA% + stopress.ru#top > .top_action2 + +patee.ru"#top > div[style*="height: 200px"]) + fotostrana.ru#top-ads-banner-wrap" + kaluga.ru#top-advertisment + ketchuptv.ru#top-b + macovod.net #top-band-29 + valetudo.ru + +kinopod.ru + absite.ru #top-banner  +para.by#top-banner-block! + +bagnet.org#top-banner-box! +dnevnienovosti.ru#top-bar + macilove.com +#top-candy= + +price.ua-#top-categories-autoscroll > #main-autoscroll + ex-press.by #top-layout% +chinaspb350.ru#top-lighthouseI +buhgalter.com.ua + yaplakal.com + +trinixy.ru +yap.ru #top-line. +yap.ru.yaplakal.com#top-line > noindex +cont.ws #top-page-ads +37.ru #top-pannel$ + +dyvys.info#top-random-banner +sudakonline.info#top45 + +spbit.ru #top4banners  +sudakonline.info#top6out +om1.ru#topAdb# +chess-samara.ru #topAdsBlock+ + sibmama.info + +sibmama.ru #topBaner* + riatomsk.ru + avatan.ru +#topBanner +ugo.ru#topBnr_container + wm-help.net #top_ajax_ad +hmn.ru#top_ban· +studclub.poltava.ua +nashmontreal.com + consultant.ru + livesport.ws + kriminal.tv + +kursktv.ru + +vlasti.net + mgnews.ru + +7dach.ru + +cossa.ru + +diary.ru #top_banner" + +mamba.ru#top_banner_ad_foxR + rlsnet.ruA#top_content + div[style="padding: 0px 3px 0px 10px; margin: 0;"] +zk.fm#top_error_notify + kino-teatr.ru #top_line +tass.ru #top_page_box" +actualtraffic.ru +#top_promo0 +myzooplanet.ru + +knigi.link #top_reklama + lineykasm.ru#top_rtbì* + forum.amit.ru#top_section #smflogo + kino-teatr.ru +#top_space" + +stadion.uz#top_two_articleX +pogodasakhcom.ru + rusprofile.ru + sakhalin.tv + +sakh.com +ykt.ru +#topbanner$ + disney.ru#topbanner-wrapper0/ +asiaplustj.info + v-info.ru #topbanners +big.az#topbanners_bg + wiaderko.com#topbar + transinfo.by#topbn + wowlol.ru#topbox$ + glavmore.ru#topbox-container +economistua.com#topbun + +5terka.com#topgame + +c-s.net.ua #toplayer-bg- + fatalgame.com + itop-gear.ru#topline& + +goporez.ru + vjazhi.ru#topmod + unit-car.com#topnewsˆ +piratbit.top#? + piratbit.fun + piratbit.org + pirat.one +pb.wtf;topocs_maine > [id^="post_"]:-abp-has(> tr .banner-rotator) + arhangel.ru#topr + animenfo.com #topright! + xtreme.ws#torrent_77_info+ +filmitorrent.site#torrents ~ centerC +filmitorrent.net + +utorr.cc#torrents ~ div[align="center"] +3mp3.ru#trance + starve.io#trevda + cikavosti.com #tvukrnetb + shophelp.ru#?Mtwocol center:-abp-has(> div[style] [src="//an.yandex.ru/system/context.js"]) +forum.ixbt.com#uLogin( +penzainform.ru#ulNewsList > li.b + f-igri.ru#ulogin+ + calcus.ru#under-calc-ad-placeholder! + +yeisk.info#unified-slider# + 0tvet.com#unique-because-id + aacalc.ru#up_b2 +autotheme.info + autocentre.ua #upg-banner_ + +tut.by#?Outm_article_block > div > #article_body > p > strong:-abp-contains(/^Ð�иже/)- + bigboss.video + 1bigboss.com#uvpromo! +delovoy-kirov.ru #uzhanina! + 1parazit.ru#vertbar_table/ + heregirl.ru + ledilana.ru #vgtrk_bottom +virusinfo.info#vi_ad  +virusinfo.info +#vi_adlink +ivi.ru #video-flack + xv-ru.com #video-right# +videonews.club #video_bootom + +enter.az#videorekframe  + smartphone.ua #videos-ads; + drochunov.net&#vista_toolbara > table:nth-of-type(2)5 +video.sibnet.ru#vjs-overlayclip-container-box + nagon.net #vk_up_table + +galya.ru #vp_main_520 + +stolica.ru #vst_mvideo + multiurok.ru #vue-bubble + +zh24.com#warning! + browserss.ru #wb_Image1044" +solncewonews.ru #widget_ads2 +soccer365.com.ua + soccer365.ru +#widget_bk) +kriminal.net.ua#widget_wrapper_46) +kriminal.net.ua#widget_wrapper_48) +dachnye-sovety.ru#widgetized-area, + +1snau.ru#widgets .custom-html-widget + tonkosti.ru #wikihead +news14.wifiram.ru#winR +vk.ru#? +vk.com9wk_content > #wl_post > div:-abp-has(.wall_marked_as_ads)ß- +Cÿï08@R3ruero.com#?#*:-abp-has(> a[href*="prostitutkixxx"]) +Eÿï08@R5glav.su#?#*:-abp-has(> div[id^="js-hb-"]:first-child) +Yÿï08@RImyshows.me#?#.AsideHeading:-abp-contains(/kinopoisk|кинопоиÑ�к/i) +Oÿï08@R?unews.pro#?#.BodyNewsStyle:-abp-has(> div > [id^="yandex_rtb"])é +vk.ru#? +vk.comÏwk_content > #wl_post:-abp-has(> #wl_head_wrap > .PostHeader > .PostHeaderInfo > .PostHeaderSubtitle > .PostHeaderSubtitle__item:-abp-contains(/Community ad|Реклама |РÑ�клама | жарнама/)) + tuningkod.ru#wlyeyyz# +leonkrevs.ucoz.ru +#wmciframeD +zakarpatpost.net,#wp-custom-header > .header-image-wrap > img5 + elektrik-a.su #wpfront-notification-bar-spacer/ + 2proraba.com + paperdoc.ru #wpstb-blockQ +webos-forums.ru:#wrap > #page-header ~ div[class="forabg"]:nth-child(-n+5)M +forum.mobzon.ru#?4wrap > .forabg:-abp-has(> div > div > .adbp > table)  + zx-pk.com#wrap > .navbary + animevost.one + animevost.org + animevost.top +vost.pw7#wrap > div[class^="headbg"] > a[href][target="_blank"]; + +eschemo.ru)#wrap > div[style]:not([id]):not([class])# + metrologe.ru#wrap-popup-box" +realnoevremya.ru +#wrap-smi24 + for-ua.info!#wrapcentre > div[align="center"]@ + +nntt.org0#wrapcentre td[colspan="3"] > table:nth-child(4) + +csmania.ru #wrapfooterJ +forum.china-iphone.ru-#wrapheader > div[align="center"]:first-child3 + +hv-info.ru!#wrapheader > table[width="100%"]! +oper.ru#wrapper > #bglink& + motorpuls.ru#wrapper > #header' + metodsilva.ru#wrapper > .fma-bgF + gagadget.com2#wrapper > .l-container_wide[style*="min-height:"]4 + rasfokus.ru + waralbum.ru#wrapper > noindex* + myzcloud.me#wrapperBillboardScroll + newsko.ru#xtest-videoad +soft.sibnet.ru #ya-block +80-e.ru +#ya-bottom, +avtovzglyad.ru +mk.ru #ya_feed_cont# +snatchnews.com #yandexBanner! + +ixbt.com#yandex_recommend# +planet-today.ru #yandex_save + maxikarta.ru #yandex_sim$ + vbsupport.org#yandexbot_post + arhangel.ru#yar! + cyberforum.ru #yatopbanner  + nikcenter.org #youcontrol< +yp.ru/#yp-fullscreen[data-statclick-action*="banner"]> + unoforum.ru + +forum24.ru + +borda.ru + +myqip.ru#zfix +kiwi.kz#zharnama300_250 +kiwi.kz#zharnama300_400 + zhkt.guru #zhiviprosto +cn.ru#zilfondí +browser-extensions.club +content.directadvert.ru +medicin-novosti-24.com +programma-ochistki.ru +driverpaksolution.ru +elementsbrowser.com +rustoria-topnews.ru +activation-keys.ru +downloadbrowser.ru +health-official.ru +medicineteaser.org +ufiler-download.ru +banner.mob.ru.com +downloadamigo.com +medicineteaser.ru +new-rutor.website +womens-journal.ru +toprated-film.co +zodiac-game.info +download.studio +globalstylis.ru +install-now.com +installpack.net +manysoftlink.ru +news-decent.com +news-sphere.com +olx.ua.partners +prime-oblako.ru +sysenvfiles.net +tdsrotations.ru +topnews.smi.one +xbox-torrent.ru +yasearch-cdn.ru +zqwjpxow7boc.ru +dugtor-deer.pw +dw1-msetup.org +everinform.com +getdstudio.cab +getdstudio.com +getdstudio.dev +getyoursoft.ru +hdvideoboxs.ru +linksoftbox.ru +litebrowser.ru +rutracker.work +t-lafa-site.ru +top.24smi.info +ufiler-pro2.ru +worldinform.ru +yasearchcdn.ru + bestsoft.club + click2soft.ru + clickbytes.ru + dnevni4ok.com + driverpack.io + etarg.network + ex.24smi.info + ex.24smi.site + fast2click.ru + fin-vector.ru + getfiletds.ru + idealmedia.io + offergate.pro + rutorgame.org + saymigren.net + sb-on-line.ru + search-cdn.ru + softboxtds.ru + tdsclicks2.ru + ufiler-pro.ru + ya-browser.ru + ya-distrib.ru + appt12mn.com + cs-serva.net + filetaker.ru + getappwiz.ru + marketgid.ru + mysoftbox.ru + novostly.com + pochistit.ru + popcornhd.ru + readvesti.ru + rutorrent.co + rutracker.eu + rutraker.org + searchcdn.ru + starblog.org + top-rutor.eu + torrentum.ru + ubar-pro2.ru + ubar-pro3.ru + ubar-pro4.ru + yabrowser.su + adregain.ru + apicloud.ru + cheatget.ru + directx.biz + ex.infox.sg + flebolab.ru + getdstud.io + kinowinx.ru + nalivali.ru + orgsales.ru + rotateme.ru + t1mcapp.com + tft-test.ru + tordrom.com + ubar-pro.ru + wogoods.com + ynsearch.ru + zpppstop.ru + +exonews.ru + +losnews.ru + +mainews.ru + +msetup.pro + +picpick.ru + +spishi.vip + +ufiler.pro + +yadistr.ru + mytrk.xyz + newsma.ru + ognyvo.ru + rsboot.ru + rutors.tk + tlmnt.com + viniki.ru + vserpg.ru + ya-cdn.ru + +rutor.ml + +smiru.ru + +ubar.pro +ads.bid +upro.me +drp.su*™ +www.aviasales.by +www.aviasales.kg +www.aviasales.kz +www.aviasales.md +www.aviasales.ru +www.aviasales.ua +www.aviasales.uz .--advert +cq.ru .--ligastavok + knigavuhe.org.-adfb‘ +arbitr-praktika.ru +zarplata-online.ru +pro-goszakaz.ru +pro-personal.ru +hr-director.ru +sekretariat.ru + gazeta-unp.ru + trudohrana.ru + budgetnik.ru + dirsalona.ru + stroychet.ru + business.ru + glavbukh.ru + +buhsoft.ru + +cxychet.ru + +kom-dir.ru + menobr.ru + resobr.ru + +kdelo.ru + +zdrav.ru +26-2.ru +ugpr.ru +law.ru +rnk.ru +fd.ru +gd.ru.ASE_brandImage + ua-ix.biz .Advertising" + meduza.io.App-bannerBottom + meduza.io.App-bannerTop + +myshows.me .AppPromo= +www.zoneofgames.ru + obninsk.name + +wi-fi.ru.Banner! +hqq.tv.BetterJsPopOverlay + +ndn.info .BigBlock + +ixbt.com .BlocksmasterF +f1analytic.com + f1ua.org.ua!.BoxVideo.clear ~ .BoxVideo.clear +mail.google.com.Bu.y3 + +delfi.ee .C-banner  + +myshows.me.CommentBanner  + meduza.io.DFPBanner-root® +Uÿï08@REmyshows.me#?#.Grid-in .GridItem:-abp-has(> div [class*="advertiser"]) +Vÿï08@RFrazvitierebenka.com#?#.HTML:-abp-has(> .widget-content > .adsbygoogle) +Qÿï08@RAmyshows.me#?#.Home-section:-abp-has(> div .title [class*="romo"]) +^ÿï08@RNmyshows.me#?#.HomeSection--separator:-abp-has(> .Container > [class*="Promo"]) +aÿï08@RQgoogle.by,google.com,google.com.ua,google.kz,google.ru#?#.VkpGBb:-abp-has(.gghBu)T +radioromantika.ru +comedy-radio.ru +veseloeradio.ru + relax-fm.ru.D_Top + euro2016.cc .DmWidget! + nulled.cc.EstBS-bnContent + +fakty.ua +.FKY_VIDEO + forbes.ru.IQXal + russiandc.com.L" + meduza.io.Layout-bannerTop' + +myshows.me.LayoutWrapper__promo +spot.uz .LeaderBoard$ +russian.rt.com.Mirtesen-root +do.ru .MyOpacity1 + tonkosti.ru +.NoCurTips, +forums.sumy.ua.Notices.PanelScroller% +zerocoolpro.biz.PanelScroller8 +games-archive.net.PostContent > noindex > center + russiandc.com.R6 +therussianamerica.com.RightColumn .Content > a +muz.ru.SEO$ + startgamer.ru.SG-fixed-block +softportal.com.TblOBan + siddgames.ru +.TeraPromo +i.ua .TopBanner730! + onlineguru.ru .V3-wrap-big +auto.ru +.VertisAds +i.ua.Wrap > .anons + +bmwclub.ru .XenAdvShop +cameralabs.org .Yreklama. +2gis.by +2gis.kz +2gis.ru ._1xza2sg +novayagazeta.ru._1ysoK) + yaplakal.com +yap.ru .__axcode__  + gamestar.ru .__b-popup1__) +vk.com +vk.ru._ads_block_data_w1 +vk.com +vk.ru._ads_promoted_post_data_w' +telesputnik.ru +n1.ru._banner! + nakanune.ru._block-bannerX + animelib.org + anilib.me7._container--indent > div[style="margin-bottom: 15px;"] +2gis.ru._im72e8 + novosti-n.org._sm24 +2gis.ru._y2b48h + altapress.ru.a" + +ppt4web.ru.a-absolut-div-b6 + www.sport.ru + +izhlife.ru + +fight.ru.a-block +bryansktoday.ru.a-d-v" +gdetraffic.com .a-insertiono +ternopillive.com +uamotors.com.ua +cheline.com.ua + autocentre.ua + itechua.com +te.ua .a-single! + hitfile.net.a-video-block +mail.kz.a6 +zagorod.spb.ru.a990_90 + peterburg2.ru.a__link + rivne.media.a_d_v + +anekdot.ru.a_mh250 + +sharij.net.a_top  + altapress.ru .a_top_place + mp3party.net +.a_wrapper + obyava.ua .ab-block +sd.ua.ablock +cont.ws .ablock_side + healthinfo.ua.abox +matematikalegko.ru.absÛ + we-reads.com.abs_row +kidstaff.com.ua.absk + digger.ru.acid + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf4.active[style="background: #f9561b;; padding: 8px;"]# +alvin-almazov.ru .active_bet‚ +prostopleer.com +clickthis.blog +inform-ua.info + filehippo.com + obsuzhday.com + primpogoda.ru + regmarkets.ru + agravery.com + dumskaya.net + kinda.media + lookmeet.tv + myshared.ru + +geekmir.ru + +mmovote.ru + +pik.net.ua + riavrn.ru + vgolos.ua + +babla.ru + +klops.ru + +liga.net + +vogue.ru +cont.ws +ifun.ru +news.pn +zaks.ru +tut.by +vz.ru.ad + +versii.com .ad ~ noindex) + gta5-mods.com.ad-above-mod-dl-btn. +online.zakon.kz + zaycev.fm +.ad-banner + newsinfo.ru +.ad-before + +it-here.ru .ad-bottom-dc +abw.by .ad-branding/ + moskva.fm + +piter.fm.ad-branding-block- + igromania.ru + kanobu.ru .ad-brending + +delfi.ee .ad-container" + kirovnet.ru.ad-forum-block" + blackwot.ru.ad-free-button + 1927.kiev.ua .ad-modal& + newsvideo.su + +akniga.org.ad11 + newsvideo.su + +akniga.org +orda.kz.ad2 + +mk.tula.ru +.ad200x150 + +mk.tula.ru +.ad200x300 + +mk.tula.ru +.ad240x400& + newsvideo.su + +akniga.org.ad3 + newsvideo.su.ad4" + radiopotok.ru .ad5en5eCheck + +yk-news.kz .adBanner +103.by .adFoxBanner& +fototelegraf.ru.adOnPostBtwImg + ngp-ua.info +.ad_260_px$ + ninemanga.com.ad_728_90_page + +twizz.ru.ad_block_inner + infectus.ru .ad_customs$ + buyerinfo.ru.ad_header_inner  +media-online.ru .ad_money" + marvel.com.ru .ad_nameplate  +bhf.su.ad_sponsor_banner& +bhf.su.ad_sponsor_banner_forum, + center.bz.ad_sponsor_newbanner_forum  + +eneyida.tv.ad_subcontent +autotraveler.ru.ad_yad + gamer-mods.ru.adaptiv! + +vmo24.ru.adaptive_banners +dni.ru.adaurum, +leroymerlin-jeb.ru + +allinfo.kz.adb +beon.ru.adbgU +allforpeople.net + +myshows.me + 433175.ru + govp.info + naurfo.ru.adblock! + jaomix.ru.adblock-service + +agroxxi.ru .adchoice% +agri-gator.com.ua .adcontainer + factroom.ru .adcredit + tatfish.com.add  +openssource.biz .add-link0 +poleznii-site.ru + brunet-ka.ru.add_zen] + multiurok.ruI.additional-info > nofollow > [align="center"] > a[target="_blank"] > img + spbdnevnik.ru.adds + kg-portal.ru.adex +togliatti24.ru.adf-ins! + gastronom.ru .adfox-banner. +www.onliner.by.adfox-banner-background + +profile.ru .adfox-hidden  +baby.ru.adfox-video-desk +ren.tv.adfox-wrapper# + sravni.ru.adfox_placeholderÊ + +vgtimes.ru .adfshift +wintech.net.ru .adgoogle  +onlinetestpad.com.adleft + +ua.today.admix + promigren.ru +.adp-block/ +asiaplustj.info +news.tj .adredirector& + ittour.com.ua +cn.ru.adriverš +scooter-remont.com +novostiplanety.ru +dumka.poltava.ua +like-film.online +football-fun.ru +kinoafisha.info +seasonvar24.com +chatadelic.net +podrobnosti.ua +world-knigi.ru + bigpicture.ru + euromd.com.ua + sexytales.org + 1927.kiev.ua + aviaforum.ru + gagadget.com + my-calend.ru + savevideo.me + takprosto.cc + coderoad.ru + gotoshop.ua + gsconto.com + hotzoom.net + infoniac.ru + malenkiy.ru + mangalib.me + tvsezon.com + +allnews.kz + +fotokto.ru + +jooble.org + +klubok.com + +timeout.ru + gameme.eu + icons8.ru + jooble.ua + soccer.ru + sports.kz + +ura.news +meta.ua +024.by +day.az +orl.ec +gs.by.ads + 24smi.org .ads-headline# +tarkov-market.com +.ads-horiz +orl.ec.ads-inner-top& +wav-library.net.ads-long-block +sm.news.ads-ob" +fightnews.info .ads-overlay + +hsl.com.ua +.ads-place + fireman.club +.ads-popup$ + medialeaks.ru.ads-run-blocks  + +klubok.com.ads-separator +cn.ru .ads-soloway" + in-poland.com .adsContainer +meta.ua.ads_240 + topradio.me.ads_R& + obrazovaka.ru.ads_banner_right# + infoyarsk.com.ads_body_page# +androidphone.su .ads_desktop + 1000.menu .ads_enabled + +vsluh.ru .ads_list + lelang.su .ads_mark# +naked-science.ru .ads_single + +webtun.com.adsb +pogodavtomske.ru.adsbox$ +azpolitika.info .adsbyskyline + sharknews.ru .adsdesctop" +investsocial.com +.adsection, +agrarii-razom.com.ua.adsence-wrapperr +vash-ortoped.com +videoculinary.ru + game-mcpe.com + reshator.com + polismed.ru + +taurion.ru.adsense( + zestradar.com.adsense_anchor_ads1 + englishsub.ru + lenglish.ru .adsense_blok9 + uman24.org.ua + +sho.org.ua + +24.cv.ua +.adsgoogle + mp3lemon.net +.adsh_ads4$ +vise.im.adsplaser_pro_abtest + ok-pressa.ru +.adstitles½ +internet-technologies.ru +reestr.rublacklist.net +reviewscompanies.club +androidkino.net +crimea-news.com +proukraine.news +dv-gazeta.info +progroshi.news + kinosimka.be + novyny.live + resheba.top + wotsite.net + +qna.center + btrans.by + dugtor.ru + +3iks.org + +vesti.uz + +xcadr.tv.adv6 + regnum.news + regnum.ru.adv-container-wrapper + do-slez.com .adv-heading| +dedicated.menu + hosting.cafe + license.menu + backup.menu + shared.menu + +https.menu + +vds.menu.adv-hidden-xs + komionline.ru .adv-hint$ +xn--c1acj.xn--p1ai +.adv-links + +vesti.ru .adv-list > *S + kodikdb.com + +aniqit.com + +kodik.info + kodik.biz + +kodik.cc .adv-player + sintetiki.net .adv-sale* + pise4ka.net +24tv.ua .adv-wrapper + education.ua .advOnTop + splkirov.ru .adv_240x400# + vestivrn.ru.adv__horizontal  + promodj.com .adv_advmusic" +games-reviews.net .adv_algn +me.fo.adv_big* +harpersbazaar.com.ua.adv_block_txt' +inoprosport.ru.adv_code_wrapper& + gurutestov.ru.adv_collumn > h32 + gurutestov.ru.adv_collumn > p:not([style]) +aif.ru .adv_content + govp.info .adv_headerò! +serialochka.ru .adv_holder> + kommersant.ru + autopilot.ru + myweekend.ru .adv_nest + btrans.by .adv_test + mobportal.net +.adv_video + +bookre.org.adva2 +gamesubject.com.advb + gamestar.ru.advback + forbes.ua +.adver_top! + turizm.ru.adversing_block3 +gtk.tv%.adversting-block-1 > .col-no-padding‡ +solnechnogorskriamo.ru +krasnogorskriamo.ru +domodedovoriamo.ru +zhukovskiyriamo.ru +footballreview.ru +riamobalashiha.ru +schelkovoriamo.ru +sergposadriamo.ru +lubertsyriamo.ru +mytischiriamo.ru +serpuhovriamo.ru +girlsgogames.ru +kolomnariamo.ru +korolevriamo.ru +podolskriamo.ru +forum.mista.ru +inforesist.org +reutovriamo.ru + flashgames.ru + nightwarez.ru + klinriamo.ru + paparazzi.ru + +biofile.ru + +kubnews.ru + +serialu.tv + +riamo.ru +1obl.ru +nur.kz.advert# + +study.ru.advert-banner-wrapa +anilibria.iss.one + anilibria.tv + +anilib.moe + +anilib.one + +anilib.top.advert-header% +doska.tamboff.ru .advert-tizer! + ucheba.ru.advert-uz-block +qip.ru +.advertTop" + apostrophe.ua .advertinline, +soft-i-kino.ru + +np.pl.ua +.advertise$ + +kyiv.media.advertise-section` +liveinternet.ru +fightnews.info + expres.online + +almodi.org +kun.uz.advertisement +dzr.by.advertisementsƒ +prostoprosport.ru +pershij.com.ua + fireman.club + +track24.ru + ufanet.ru + +diary.ru +ku66.ru +qrz.ru .advertising+ + +podolsk.ru.advertising > span.title0 +online.zakon.kz.advertising-action-timer' + turanpress.kz.advertising-blank) + minfin.com.ua.advertising-caption& + vinnitsa.info.advertising-card' + infotime.co.advertising-heading" +mlyn.by.advertising-widget* +artemsannikov.ru.advertisingColumn% + +gamemag.ru.advertising_review' + baby-mult.com.advertisingheader* +sportarena.com.advertisment-events + +showgid.tv .advrigth> +rabota-kovrov.ru + sosnovskij.ru + acer-a500.ru.advs +mirf.ru.advt-mf +9111.ru.advzone + recept.ua .adw-link +tmbw.ru .adwidget  + burdastyle.ru .aff-offers. + rubryka.com.after-content-advertisment( +wallscloud.net.after_image_promo$ + theuk.one.afterpost-teaser-x* +ktonanovenkogo.ru.ag-adv-container; + muzland.info + +muzland.es + +muzland.ru .agbordfull +3mv.ru .agregator_R + synthira.ru .ahuelguardd +znaj.ua .ai-placementL + hyperione.com + cripo.com.ua + mod-land.ru + +gameout.ru +.ai_widget +post-tracker.ru.aimage+ + +p-p.com.ua.ainfo-block[class*="b-"] + +drive.ru .aio_banner +telegraf.in.ua.air-top + tonkosti.ru.airelle# + +gamer.ru.alarmalarm-backtop) +x-raydoctor.ru + promtu.ru.alert  + osnova.news .alert-danger; +xn--b1ats.xn--80asehdb + gorvesti.ru.alert-warning + +myfin.by.alfa-promo-btn +rt02.ru.alibut% +vidstezhyty.com.ua .aliexpress8 + the-clu.com%.alignnone[width="300"][height="300"]4 + inopressa.ru .alignright div[style^="height"]" +tabloid.pravda.com.ua.alko¡ +[ÿï08@RKminfin.com.ua#?#.all-news > .items > .item:-abp-has(> div > [data-bn-slot]) +Pÿï08@R@wotsite.net#?#.article-right > div:-abp-contains(Реклама) +Uÿï08@REgames.24tv.ua#?#.article-text > .insert:-abp-has(a[rel*="sponsored"]) +[ÿï08@RKkorrespondent.net#?#.article:-abp-has(> .article__title > a > .advertising) +`ÿï08@RPvedomosti.ru#?#.article__sticky > div[class^="adfox"]:-abp-has(.teaser-commerce) +Cÿï08@R3deita.ru#?#.article_block:-abp-has(> [id^="unit_"])& +moldfootball.com.all_bet_block$ + +vringe.com.all_news_partners5 +liveinternet.ru.allpageinner td[height="100"] + people-ask.ru.altAdA + mediapapa.org.am +cmlt.ru.an-pic-top-box + +hitagro.ru .an-sidebar10 + pogodnik.com.animate > .day-expectations1 +creativportal.ru.anime > script + div[id]' + youtube.com.annotation.iv-promo' +vidstezhyty.com.ua .answear.sale% +agronomy.com.ua.apm-container? + photopea.com+.app > div ~ div > a[target="_blank"] > imgO +soft.mydiv.net9.app-page__left > .app-page__menu ~ div[style*="height:"]Ž +techinsider.ru +thevoicemag.ru + pravilamag.ru + thesymbol.ru + mentoday.ru + novochag.ru + robb.report + grazia.ru .app-popups# +kriminal.net.ua .append_html + megamult.net.apygame" + dnpr.com.ua.area-after-nav + +c-sgo.ru.arendaS +narutoplanet.ru<.art-postcontent div[style] > a[href][target="_blank"] > imgA + bvedomosti.ru,.art-sidebar1 input[src^="/images/banners/"]2 +nashashcola.ru.art-sidebar2 > .widget_text +delovoymir.biz .art_dzen + osvita.ua +.artbanner# + luxurynet.ru.artbannersplus, + newsoboz.org.articl_center > noindex" + +riamo.ru.article--external% +penzadoctor.ru.article-banner) + techdigest.ru.article-banner-side1 + www.sport.ru.article-bottom-block > .hdr2D + +playua.net2.article-comments > .row > div[class] + div[class]3 + studopedia.ru.article-description > noindex + mmorpg.su .article-free$ +mk.ru.article-grid__good-top- + +liga.net.article-header__video-bannerj +euro-football.ruR.article-item > .article__footer ~ :not(.article__footer):not(.comments-container)  +viva.ua.article-partners; +tvoymalysh.com.ua + +4mama.ua.article-partners-news+ + vedomosti.ru.article-recommendation4 +industry-hunter.com.article-single .bg-lightH + +espreso.tv6.articleContent > .recomendation_list + h2.block-title" + 1istochnik.ru .article__aaa +u24.ua.article__adml* + +allcarz.ru +ria.ru.article__aggr +fb.ru.article__annex/ + tsargrad.tv + +myfin.by.article__banner+ +info.sibnet.ru.article__banner-link1 + +the-day.ru.article__block_type-productSet< +studopedia.net&.article__content > table[width="336"]8 +nv.ua+.article__content__footer > div[class^="r"]& + +hi-fi.ru.article__content__zen! + tsargrad.tv.article__dpen6 +novorosinform.org + tsargrad.tv.article__dzen) + 1istochnik.ru.article__dzen-share+ +kanalukraina.tv.article__footer_adv% + vedomosti.ru.article__metricse +v-tatarstane.ru + novostivl.ru + ryazan.life + +yakutsk.ru + krym.news.article_ads_section+ +kinoafisha.info.article_contentrollð +Nÿï08@R>auto43.ru#?#.aside-block:-abp-has(> .media_aside_our-partners) +Rÿï08@RBkinoblog.tv#?#.aside-block:-abp-has(div[class^="adfinity_block_"]) +dÿï08@RTnews-tape.ru#?#.aside-col > .moduletable:-abp-has(> .inner > .box-ct > .adsbygoogle) +ºÿï08@R©electric-house.ru#?#.asideblock > div:-abp-has(.icon > dt > span:-abp-contains(/ИнтереÑ�ные новоÑ�ти|ПредложениÑ�|Смотрите также/)) +>ÿï08@R.ua-football.com#?#.asside:-abp-has(> .topBook)& + maanimo.com.article_end_banner' + gorodovoy.ru.article_footerText* +kanalukraina.tv.article_idealmedia! + otvetkak.ru.article_openx; + banker.ua*.article_sidebar > div[class="textwidget"] + nick-name.ru .articles6 +psychologies.ru.articles-page__banners_wrapper$ + gotennis.ru.articles-special + 1000.menu .as-ad-stepF + shazoo.ru5.aside > .grid > div > img[alt="Shazoo @ Yandex.Zen"]L + shazoo.ru;.aside > .grid > div > img[alt="Shazoo @ Yandex.Zen"] ~ div3 + cwetochki.ru.aside > .widget > [class*=" "]# +sm.news.aside > [id][class]# + efir.plus.aside > div ~ div* +sm.news.aside div[id][class]:empty +iz.ru.aside-advertising$ + +kurkul.com.aside-banner-wrapA + reporter.ua..aside-column > a > img[src*="/home/banners/"] +u24.ua +.aside-gab +snob.ru .aside-p-c-a? + minfin.com.ua*.aside-wrap > .js-ad-aside.mfm-aside-block# +obozrevatel.com .asideBannerL +chelseanews.ru6.asideContainer > aside[class="asideBox "]:first-child% + +pik.net.ua.aside__advertising + tsargrad.tv .aside__fly" +kinoafisha.info .aside_item + wotspeak.org.asn3 + enovosty.com + expert.in.ua.asp-widget-ads! +specials.goha.ru .asus_prmn + tapochek.netZ.attach > tbody > tr:not([class]) > td[width="100%"][class="attachheader"][align="center"] +au.ru .au-candy* +au.ru.au-prime-page-desktop-banner +au.ru.au-right-banner" +nn.ru.au-top-ads-container% + +ndelo.ru.auth-box__social-boxM +happy-biock.info +happy-block.info +howto-news.info.author-widget + r-kopilka.ru .autor-bl +andro-news.com .av-block  +av.by.av-branding-bottom +av.by.av-branding-topG +pornovkisku.com +teplomontag.net + pindosoff.net .avr-wrapper + primanki.com.avyesF +agroreview.com + agroweek.com + agronews.ua.aw-ads-container + +chas.cv.ua .awac-wrapper$ + bestinfo.am.awd-hidden-phone + gsconto.com .azk-banner + tverisport.ru.azsbx + magcity74.ru.b) + inmyroom.ru.b-Article_main-banner! + inmyroom.ru.b-BannerPlace! + inmyroom.ru.b-PopupBanner + +serfery.ru.b-addsA + ixbt.market + +ixbt.games + +ixbt.com + +ixbt.pro.b-adfox +tut.by .b-aditem! + primpress.ru .b-adv-marker" +siliconrus.com .b-adv-micro( + www.abok.ru.b-advert__horizontal& + www.abok.ru.b-advert__vertical$ +news.sportbox.ru .b-advertise¤ +^ÿï08@RNixbt.com#?#.b-article > h4:-abp-contains(Справочник по ценам) +Gÿï08@R7www.abok.ru#?#.b-blocks:-abp-has(> .b-advert__vertical) +pÿï08@R`shikimori.me,shikimori.one,shikimori.org#?#.b-forum > article:-abp-has(> .inner > footer .promo)  + +pulscen.ru.b-advertising! +astrakhan-24.ru +.b-adverts) +irk.ru.b-adwords-news-read-banner +finance.tut.by .b-alpari% + auto.vesti.ru.b-anons--banner+ +kinokladovka.com.b-background__link% + sho-me.ru.b-baner-sho-me-link# + +dengi.ua.b-banner-container% +forums.drom.ru.b-banner-group% + cyberstyle.ru.b-banner_600x90( + +dengi.ua + +mport.ua .b-banner_sm& + rapsinews.ru.b-banners__bottom +siliconrus.com.b-bks' + +inter.ua.b-block > table[class]" + +sibdepo.ru.b-block--banner% + +ixbt.com.b-block__parterslist( + svpressa.ru.b-blockquote-partner + +liga.net .b-blocks% + sobaka.ru.b-body-brand-banner) + sobaka.ru.b-body-sidebar__banners +hata.by .b-card__sale% +hata.by.b-catalog-table__sale + kolesa.kz .b-container! +penzavzglyad.ru +.b-content& + runews24.ru.b-content > .right/ + svpressa.ru.b-content__section_partners. + svpressa.ru.b-content__section_teasersD + svpressa.ru1.b-content__title[href^="http://mediametrics.ru"]L + svpressa.ru9.b-content__title_ads:not([href*="partners.svpressa.ru"])$ + prophotos.ru.b-custom-banner( + +edadeal.ru.b-dsk-hero-ads-banner + gzt-sv.ru.b-fad% +xn--80ady2a0c.xn--p1ai.b-flex% + sobaka.ru.b-head-banner__link + komiinform.ru .b-header" +m24.ru.b-header-adv-stripe +now.ru.b-header__banner  + factroom.ru .b-horizontal +tut.by.b-hota# + +7days.ru.b-hz2_type_section  + gdekluet.ru .b-imp-notice + redtram.com .b-informers" +gdetraffic.com .b-insertion# +siliconrus.com .b-instaforex) + 1tv.od.ua.b-layout__right::before7 + soccer.ru&.b-links > a[href^="/bookmakers/"] ~ a) +penzavzglyad.ru.b-main__important) +rep.ru.b-main__split.hidden-print) + cy-pr.com.b-main_body-i > noindex +tut.by .b-mainbanner) + mirkvartir.ru.b-map-tgb-container* +drom.ru.b-media-cont_theme_adverts + friday.ru .b-mts-logoK + altapress.ru7.b-nav li > a:not([href^="/"]):not([href*="altapress"])  + +bigmir.net.b-net-preview2 + www.abok.ru.b-news__preview .bannerWrapper  +104.ua.b-obozrevatel-top) +catalog.onliner.by.b-offers-promo + f1news.ru .b-other-news< + +unn.com.ua*.b-page-border > ul[style*="width: 600px"] + tolknews.ru .b-partners� +Oÿï08@R?aldebaran.ru#?#.b_read_online:-abp-has(> .litres_fragment_body)( + rusplt.ru.b-partners-integration$ + primpress.ru.b-partners-news- +mel.fm.b-pb-frontpage__240x400-banner# + factor.ua.b-place-art__mark* +nemo-crack.org + +imgal.ru.b-popup" + sobaka.ru.b-post-view__tgb +tut.by .b-prmplace  + biwork.ru.b-promo-slider  + +mport.ua.b-puzzle-bannerŠ +autotuning.expert +7zip-download.ru +kazakh-zerno.net + soft-click.ru + makeupkey.ru + +csgamer.ru + +egdz.net +fbm.ru.b-r + podolyaka.ru.b-r > b" +buhgalter911.com +.b-reclame +ont.by.b-renommee__wrap + +vmuzice.me.b-right# + agrotimes.net.b-rightBanner0 + +7days.ru .b-section_content_partners-newsC +anatomia-strasti.com'.b-side-block:not(.b-side-block-slider) +d3.ru .b-sidebar-ad* +politnavigator.net.b-sidebar-rightC + altapress.ru/.b-sidebar-right > div[style*="height: 300px;"] +irr.ru .b-specOffers$ + pddua.com +pdd.ua .b-stella% +www.onliner.by.b-tiles-banner, +www.onliner.by.b-tiles-outer_special* + +www.tut.by.b-top + #resource_block  +siliconrus.com +.b-top-adv+ + +unn.com.ua + +inter.ua .b-top-banner& + +cossa.ru.b-top-banner__content) + svpressa.ru.b-top-header__partner% +penzavzglyad.ru.b-top-wrapper( + search.tut.by +rep.ru .b-widget& + magtimes.info + +yakutsk.ru.b1 +s13.ru .b100Px60 + +artfile.ru.b240 + itvcom.ru .b240.rc4 +s13.ru .b240x400* + yuginform.ru + stranaru.ru.b2bCnt +s13.ru .b468x120 +s13.ru.b880x90 + +ura.news .bPosition_c2$ + gazeta.uz.bVerticalRectangle% + +tochka.net.b_articles__banner + motorpage.ru.b_block +forum.ixbt.com .b_footer' + +espreso.tv +24tv.ua +.b_reklama + 101poisk.ru.b_top! +photoshablon.ru +.b_verh_st + kommersant.ru.ba + tsargrad.tv .back-fixed% + skam.online.background-banner! +nv.ua.background-branding" + +cossa.ru.background-figure! + rz.com.ua.background-link + +vmo24.ru.background_url! + +app2top.ru.backgroundmaink + 1informer.com + fainaidea.com + mediasat.info + itech.co.ua + +moika78.ru +alau.kz .backstretch + videozal.club.bad! + musify.club.badge-primary +all-for-kompa.ru.badven  + animemobi.ru .badversting@ +irtafax.com.ua + +sibinfo.su + ntr-24.ru +delo.ua.ban + mgorod.kz .ban-head" +nashmontreal.com +.ban-popup©4 + +life170.ru.ban-r* + +life170.ru.ban-r + .prodlist-links" +nashmontreal.com +.ban-right + afanasy.biz.ban1. +scooter-remont.com + afanasy.biz.ban2 + vsetv.com.ban200 + igui.mobi.ban240! + slovodel.com .ban__wrapper* + animemobi.ru.ban_center_screenlist +irtafax.com.ua.ban_h + russiancfg.ru +.ban_rek_a/ +libertycity.net +libertycity.ru.banad  + get-tune.net .banan_blockG& +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +syzran-small.ru.bancode£ +footballfacts.ru +ru-minecraft.org +gotovim-doma.ru +islam-today.ru + vdv-kavkaz.ru + helpiks.org + +fbc.biz.ua +mota.ru +ojin.tv +i.ua.baner + arigus.tv.baner noindex  + galka.if.ua .baner-widget' + aqua-therm.ru.baner-wrap-inside, + yuginform.ru + stranaru.ru .banerCnt + +allbest.ru +.baner_top + kinodroid.net.banerp +sexgamesbox.com.baners! +kurer-sreda.ru .banersline) +russian-bazaar.com +nr2.ru.bannã +1plus1.international +agrobusiness.com.ua +hostingkartinok.com +news.nashbryansk.ru +peugeot-citroen.net +officepackage.info +dentalmagazine.ru +foodinnovation.ru +klassnye-chasy.ru +playboyrussia.com +forum.tiguans.ru +moldfootball.com +supersadovnik.ru +vce-besplatno.ru +baikal-daily.ru +bzserial.online +champion.com.ua +delovoibiysk.ru +lentasporta.com +livejournal.com +mos-holidays.ru +online-mult.net +post-tracker.ru +theblueprint.ru +2pricolisty.ru +defence-ua.com +echomsk.spb.ru +fotoinform.net +intex-press.by +kherson.net.ua +mosfilmgold.ru +moviestape.net +penzadoctor.ru +politobzor.net +portal.lviv.ua +ringside24.com +rudetective.tv +skypefree.info +trademaster.ua +ukurier.gov.ua + bestrussia.tv + bgoperator.ru + chehov-vid.ru + chistosex.org + dostyp.com.ua + gooool365.org + intermedia.ru + kinoafisha.ua + minus.lviv.ua + ogosex.com.ua + sakhalin.info + sarnovosti.ru + spbdnevnik.ru + subota.online + tr.anidub.com + tulapressa.ru + usionline.com + altgazeta.ru + belretail.by + copyright.ru + dailycomm.ru + domashniy.ru + echo-oren.ru + gordonua.com + igry-man.net + it-weekly.ru + konkurent.ua + kulichki.net + kursiv.media + loveradio.ru + nnews.com.ua + odpublic.net + poltavske.tv + render911.ru + sopsport.org + strashnoe.tv + superomsk.ru + uaportal.com + ugorod.kr.ua + ukrreal.info + vprognoze.ru + weukraine.tv + yuginform.ru + yugopolis.ru + 78.142.19.8 + baltnews.ee + blitz.if.ua + carsweek.ru + chipfind.ru + danilin.biz + factroom.ru + fc-zenit.ru + fedpress.ru + finobzor.ru + fn-volga.ru + football.ua + gamestar.ru + gre4ka.info + hen-tay.com + hightech.fm + inc-news.ru + info-ua.com + interfax.by + interior.ru + it-world.ru + kinoplex.ru + kurs.com.ua + live4fun.ru + lookatme.ru + mods-fs.net + ontvtime.ru + reporter.ua + reverso.net + rusroman.ru + rybalka.com + samara24.ru + sonikelf.ru + sport-tv.by + stopcor.org + stranaru.ru + tvernews.ru + vesty.co.il + warfiles.ru + yourlink.in + +anadyr.org + +apihost.ru + +dnl.com.ua + +ecology.md + +fnvolga.ru + +glavcom.ua + +gorod55.ru + +hen-tai.ru + +iasakh.com + +korabel.ru + +maximum.ru + +mipped.com + +newslab.ru + +oneprog.ru + +savepic.ru + +showgid.tv + +softkey.ru + +tele.click + +tochka.net + +ukraina.ru + +ukrlife.tv + +www.ivi.ru + 1prime.ru + 2plus2.ua + allcio.ru + belsat.eu + blizko.ru + bzrus.pro + cinetv.ru + dialog.ua + dnl.dn.ua + examen.ru + f1news.ru + fraza.com + i2hard.ru + inosmi.ru + kolesa.kz + kurgan.ru + ligasy.kz + marker.ru + mv.org.ua + osvita.ua + pn.com.ua + ppc.world + repost.uz + russia.ru + seodiz.ru + sports.uz + stereo.ru + teleg.run + topwar.ru + turizm.ru + tvrain.tv + vomske.ru + vsluh.net + weacom.ru + zanoza.kg + zvezdi.ru + +avoka.do + +be-in.ru + +delfi.lt + +dengi.ua + +exler.ru + +fantv.ru + +namba.kg + +namba.kz + +namba.tj + +pravo.ru + +rzn.info + +sakh.com + +tumix.ru + +unian.tv + +vlast.kz + +wildo.ru + +yznal.ru +f1cd.ru +go32.ru +joxi.ru +news.pn +oper.ru +roem.ru +slon.ru +tass.ru +text.ru +168.ru +1sn.ru +2mm.ru +kod.ru +prm.ru +ria.ru +sib.fm +tet.tv +val.ua +vm.ru +yk.kz.banner +kod.ru .banner + hr' +saratovnews.ru.banner > noindex' + football.ua.banner ~ .separator+ +paramountcomedy.com.ua .banner--tall +roem.ru.banner-970x90) + pluggedin.ru.banner-advertise-img9 + highload.tech + +mc.today +itc.ua.banner-agency + +liga.net .banner-area) + +siropik.ru + shaiba.kz +.banner-bg— +diletant.media +ohranatruda.ru + newsmaker.md + ast-news.ru + fn-volga.ru + privatka.ua + amur.info + osvita.ua +24sk.ru .banner-block3 +avtovod.com.ua.banner-block > :not(noindex)1 +visnyk.lutsk.ua.banner-block.banner-label& + lookatme.ru.banner-border-wrapH +1743.ru +ntsk.ru +orki.ru +orsk.ru +gts.tv.banner-bottom. +gid-minecraft.ru.banner-bottom-wrapper" +dynamomania.com .banner-box4 + driveroff.net + samlab.ws.banner-categories+ + repost.uz + +tvmag.ru.banner-centerû +krasnoyarskmedia.ru +sevastopolmedia.ru +kamchatkamedia.ru +krasnodarmedia.su +chukotkamedia.ru +sakhalinmedia.ru +irkutskmedia.ru +magadanmedia.ru +priamurmedia.ru +stavropol.media +yakutiamedia.ru +nakhodka.media + chitamedia.su + primamedia.ru + ussurmedia.ru + amurmedia.ru + shedevrum.ai + ulanmedia.ru + wallnews.org + yugopolis.ru + eaomedia.ru + +tayga.info + +unian.info + +vctr.media + newsvl.ru + unian.net + +unian.ua +job.ru +tet.tv.banner-container +para.by .banner-cube" + biysk-ok.ru.banner-default% + vikna.if.ua.banner-fullborder& + +scandar.ru.banner-glav-240x4008 +nashvancouver.com + kaktutzhit.by.banner-header6 +reklama-crimea.com + +podolsk.ru.banner-holder( + info-ua.com.banner-holder > .box, + news.meta.ua + usm.media .banner-img~ + +bnkirov.rul.banner-img:not([href^="http://bnkirov.ru/"]):not([href*="rodnaya-vyatka.ru"]):not([href*="che-online.com"]) +168.ru.banner-in-frame  + shrlink.top .banner-inner) + amur.info + +gts39.ru .banner-item6 +gameportalrf.ru +profi-forex.org .banner-left* + newsomsk.ru.banner-left-detail-new0 + zhitomir.info + amoledo.com .banner-link' +newsazerbaijan.ru.banner-middle( + gx.net.ua +tut.by .banner-place" +sdelanounas.ru .banner-post0 +agroter.com.ua.banner-promotions-wrapper- +profi-forex.org +vl.ru .banner-rightè= +officelife.media + +ivona.ua +dfm.ru.banner-section0 + kinoprofi.vip + +aum.news.banner-sidebar! + gotennis.ru.banner-simple) + +trud.com.banner-systems-container& +kievvlast.com.ua.banner-targetÚ +bashinform.rugameportalrf.ru + kinoprofi.vip + pornolenta.cc + sakhalin.info + solncevo.info + online.ua + smotra.ru + +liga.net +1743.ru +k-ur.ru +ntsk.ru +orki.ru +orsk.ru +gts.tv .banner-top$ + buhonline.ru.banner-top-wrap# + satsis.info.banner-topflash, + e-katalog.ru +ek.ua.banner-topline + ur8lv.com .banner-unit! + teleportal.ua .banner-wide, + kavtoday.ru + sletat.ru .banner-wrap3 + +habr.com +day.az +lux.fm.banner-wrapper# +appleinsider.ru .banner-zone! + allboxing.ru .banner.black + allboxing.ru .banner.red + +rfpl.org +.banner2404 + kazanfirst.ru.banner:not(.topcontent_banner) + +domik.ua .bannerAffix + russian7.ru +.bannerBox + +domik.ua .bannerHeader! +drugasmuga.com .bannerWrap! + +xporno.xyz.banner__holder! + region15.ru.banner__image + bzrus.pro.banner__promo% + computerra.ru.banner__sidebar% +time-to-read.ru.banner__title[ +infoindustria.com.ua +avtovzglyad.ru + computerra.ru + horo.meta.ua .banner__top+ +open4business.com.ua.banner_article' + +povar.ru.banner_before_mainmenu, + socproxy.ru + +domik.ua .banner_block + azovnews.ru .banner_bot6 +livejournal.com + +novyny.pro.banner_container" + autostat.ru.banner_content + listaj.ru +.banner_dc) + +autodoc.ru + +spbit.ru .banner_divA +camelot.multilocal.ru +camelot.userlan.ru.banner_header" + mybrazz.club.banner_holder + +vd-tv.ru .banner_home + kriminal.tv .banner_long" +allmoldova.com .banner_main" + metronews.ru.banner_margin! + mix.tn.kz.banner_mix_left" + ittour.com.ua .banner_modal + +glavcom.ua .banner_news + +cpasee.com .banner_rekl + mix.tn.kz .banner_right" +sobitie.com.ua .banner_side  + f1news.ru.banner_sidebar) +express-prigorod.ru.banner_slider  + kriminal.tv .banner_small +kg.ua .banner_style  + club-lexus.ru .banner_tgb‚ +nemezisworld.com +ferrum-body.ru +progroshi.news + odessa.online + fileclub.biz + +sharij.net + +ridus.ru .banner_top  +grad.ua.banner_top_right  + f1news.ru.banner_topline0 +infotechnic.pro +meta.ua.banner_widget* + cisoclub.ru.banner_wrap.MAIN_RIGHT( + cisoclub.ru.banner_wrap.MAIN_TOP + +smotri.com .banner_wrp + minfin.com.ua +.bannerbar + +vkdiz.ru .bannerbg: + 100filmov.net + keys-kas.ru +orl.ec .bannerblock" +pogodavtomske.ru +.bannerbox™! + crmonline.ru .bannercenter + compress.ru .bannercount‚ +infoselection.ru +planetaskazok.ru +forpost.lviv.ua +7days2die.info +chronicles.pro +mamadysh-rt.ru +shansonline.ru + muzcentrum.ru + newgubakha.ru + izmacity.com + ok-inform.ru + fermagid.ru + medicalj.ru + radnuk.info + ualinux.com + +arz-biz.ru + +hv-info.ru + dtpptz.ru + kaskad.tv + obs.in.ua + +ndn.info + +zvid.org +ko44.ru +tv29.ru .bannergroup6 +objavlenija.respublika.cz.bannergroupr-nostyle  + micro-win.com .bannerhead) + webmasters.ru.bannerheader_header  + bvedomosti.ru .banneritem + +ufamama.ru .bannerline + hctorpedo.ru .bannermain + fit4power.ru +.bannermodÒ +planetaseminarov.ru +forexsystemsru.com +wordpressinside.ru +dentalmagazine.ru +softbesplatno.net +tods-blog.com.ua +omskregion.info +profi-forex.org +gtavicecity.ru +russian.rt.com + marpravda.ru + smoldaily.ru + sport-tv.by + znamyuzl.ru + +24dom.info + +timeout.ru + 32cars.ru +f1cd.ru +vl.ru.banners" +myfootball.top .banners-ads  + kingisepp.ru .banners-box! + +hi-news.ru.banners-center% +kulturomania.ru.banners-group + ruwest.ru .banners-head) + usionline.com.banners-list__items! + +eapteka.ru.banners-puzzle% +videoprobki.com.banners-right + kratko.plus .banners-top" + flashboot.ru.banners-topic+ +privetsochi.ru.banners-topic-banner +zk.fm.bannersIframe! + sevastopol.su .bannersList% +gazeta-tula.ru.banners_bottom$ +shop.vashsad.ua .banners_home! + trassae95.com .banners_img. +police-russia.com.banners_navbar_below" + sevnews.info.banners_tmpl3( + gfxstuff.ws +ntsk.ru +.bannertop5 +anidubonline.com + +anidub.vip.bannertopclass + +belta.by.bans + prowebber.ru.bantop +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.in .banx-top +risk.ru +.barInPost  + probirka.org .bar_bannerz + moto.com.ua.baright + +pulscen.ru .barmen-item› + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + uanews.org.ua + cvnews.cv.ua + rvnews.rv.ua3.base-post-divider ~ a[href][target="_blank"] > img + animemobi.ru .basecont" + +zh24.com.baseer > .headingH + animevost.one + animevost.org + animevost.top +vost.pw.batre +aces.gg.baz +omastopatii.ru.bb-a_b + uzreport.news.bbh + uzreport.news.bbn" + +4doma.info.bbody > noindex + smart-lab.ru .bbr__big" +blockchain.info .bci-ad ~ p + +ixbt.com .bcontainer +ma.by.bdiv + +kabar.kg.belta-informer + +sport.ua .best_bookies  + +zbirna.com.best_game_sec! + aldebaran.ru .best_sellers" +partnerkin.com .bests_block +fightnews.info.bet + allhockey.ru .bet-wrap + +vesti.kz +.betconest& +officelife.media.betera-widget +myfootball.top.bets + 1927.kiev.ua .bets-block +ska.ru.betting + mmotop.ru .bg-generalÞ +eÿï08@RUwebsdr.space#?#.bg-websdr:-abp-has(> .card-body > div > [id] > div[id^="yandex_rtb"]) +oÿï08@R_myfreeproject.com#?#.blblock > .pheading:-abp-has(> h3 > span:-abp-contains(/реклама/i)) +?ÿï08@R/footballhd.ru#?#.bloc1:-abp-has(div[id^="bn_"]) +Kÿï08@R;footballhd.ru#?#.bloc_right > div:-abp-has(> .nopromo_view) +Iÿï08@R9siddgames.ru#?#.block-body.block-row:-abp-has(.TeraPromo) +Pÿï08@R@siddgames.ru#?#.block-body.block-row:-abp-has(.resourseReklverx) +?ÿï08@R/rgmechanics.info#?#.block-dark:-abp-has(script) +Nÿï08@R>konstruktortestov.ru#?#.block-test:-abp-has(#marketAttractive) +Kÿï08@R;konstruktortestov.ru#?#.block-test:-abp-has(#vid_vpaut_div) +Qÿï08@RAkonstruktortestov.ru#?#.block-test:-abp-has(> [id^="yandex_rtb"]) + agronom.top.bg-gray + +myfin.by.bg-light-blue[ +gdetraffic.com +penza-press.ru + novaposhta.ua + +eurolab.ua + +tveda.ru.bg-link" +socportal.info .bg-logo-ads! +mobiltelefon.ru +.bg_banner- + redirekt.info.bg_header_right > .soft" + g-list.ru + +ongab.ru.bgad. + g-list.ru.bgad + div[style*="height:"] + altgazeta.ru .bgbanner9 + +kmory.ru).bgcolortr > td[style*="padding-right"] * + gre4ka.info.bgroup + sheensay.ru.bgt_top) + ain.business.big-ad-animation-box/ +servers-rust.ru + ntr-24.ru .big_banner& + techdigest.ru.billboard-banner +post-tracker.ru.bimage + 777score.ru +.bk-widget + povarenok.ru .bl:empty" +avtovokzaly.ru .bla-bla-car +forum.saransk.ru.blabel  + energyfm.ru .black-footer +3mod.ru.bldownload > b" +3mod.ru.bldownload-reklama + gorvesti.ru.blnk  +live-sports101.org.bloc0  +buhgalter.com.ua.bloc__r) + footballhd.ru.bloc_right > .bloc0) + +gorod47.ru.block > a > img[width]" + +hen-tai.ru.block > noindex9 +yantann.rbsmi.ru +yanzori.rbsmi.ru .block-banner! +vtb-league.com .block-bets1 +evening-kazan.ru + govp.info .block-block- + tokzamer.ru.block-block [class^="cp"]* + tokzamer.ru.block-block [id^="cp"]1 + yougame.biz.block-body > article#js-post-! +nur.kz.block-branded-iconJ + soccer.ru9.block-centering[style*="min-width"][style*="min-height"], + readovka67.ru.block-community-yanewsI +iz.ru<.block-container-margins [style^="height:"][style*="250px;"]$ +znaj.ua.block-custom-banners$ + igroutka.ru.block-full-width@ + naogorode.net+.block-header[style="margin-bottom: 15px;"]$ + +mover.uz.block-info-vertical+ + 100filmov.net.block-inner > noindex- +nur.kz.block-main-info__sponsor-image9 + readovka.news + readovka67.ru.block-mediametrics4 + +stena.ee$.block-outer a[href][rel="nofollow"]( + +lovitut.ru.block-reklamo_rotator + sntch.com .block-relap7 +sib.fm).block-sticky > div[style^="min-height:"]# + sntch.com.block-superwidget, + vitatv.com.ua.block-type-advertising" + velvet.by.block-velcompanyK + filmozavr.com + filmozavr.net + bogmedia.org.block-video > .tableŸ +;ÿï08@R+sport-tv.by#?#.block:-abp-has(.adsbygoogle) +²ÿï08@R¡uniongang.net,uniongang.org#?#.block:-abp-has(> .block-title:-abp-contains(/ИнтереÑ�ное|Ð�аши друзьÑ�|Реклама|СидбокÑ�|MARKETGID/)) +Iÿï08@R9euro-football.ru#?#.block:-abp-has(> .block__body script) +Gÿï08@R7clib.me#?#.block:-abp-has(> .content > [data-la-block]) +Sÿï08@RCclib.me#?#.block:-abp-has(> .content:-abp-contains(Реклама)) +Hÿï08@R8liveresult.ru#?#.block:-abp-has(> .relap-runtime-iframe) +Pÿï08@R@euro-football.ru#?#.block:-abp-has(> div > [class*="bookmaker"]) +Rÿï08@RB24warez.ru#?#.block:-abp-has(> h4:-abp-contains(Партнеры)) +Aÿï08@R1sport-tv.by#?#.block:-abp-has([id^="yandex_rtb"]) +mÿï08@R]meteonova.ru#?#.block_top:-abp-has(> .block_title > .title > b:-abp-contains(РЕКЛÐ�МÐ�)) +~ÿï08@Rnmeteonova.ru#?#.block_top:-abp-has(> .block_title > .title > b:-abp-contains(РЕКЛÐ�МÐ�)) + .block_content +Žÿï08@R~meteonova.ru#?#.block_top:-abp-has(> .block_title > .title > b:-abp-contains(РЕКЛÐ�МÐ�)) + .block_content + .block_bottom +?ÿï08@R/meteonova.ru#?#.block_top:-abp-has(> div:empty) +Eÿï08@R5meteonova.ru#?#.block_top:-abp-has(> div:empty) + div +Uÿï08@REmeteonova.ru#?#.block_top:-abp-has(> div:empty) + div + .block_bottom +cÿï08@RSarmourbook.com#?#.blocklite:-abp-has(> div > [class]:-abp-contains(Реклама)) +<ÿï08@R,pogodavtomske.ru#?#.blockm:-abp-has(> #sela) +Mÿï08@R=superhumor.ru,voffka.com#?#.blogbody:-abp-has([href*="utm_"]) +Fÿï08@R6oko-planet.su#?#.bltitle:-abp-contains(Реклама)% +processer.media.block-wrap-da + +zh24.com .block.elite1 + sotniktv.org.block12 > a[target="_blank"] + +sunsurv.ru .blockBottom + +sunsurv.ru +.blockLeft + +znaikak.ru .blockLinks& + news29.ru.blockOverlay.blockUI) +forum.domik.ua.blockProjects_post+ + +domik.ua.blockProjects_stocksInNews + +sunsurv.ru .blockRight' +programma-peredach.com .blockSns, + aktobeinfo.kz.block[id*="-banners-"] + gooool365.org.block_df +thelastdb.games +thelastupd.org + byrutgame.org,.block_down_game > .block_down ~ .block_down" +openssource.biz .block_leftð +kak-spasti-mir.ru +chatadelic.net + moi-detsad.ru + prostomac.com + db.chgk.info + forzajuve.ru + gubkabob.net + recensent.ru + dsvload.net + imageban.ru + podrobno.uz + rap-text.ru + +seriatv.ru + volomy.ru .block_links, +sportanalytic.com.block_project_menu + electrik.org.block_r+ +show-online.tv.block_rekno + iframe# +openssource.biz .block_right: + +allbest.ru(.block_saitbar > .ul_partner ~ .link_all2 +lfl.ru$.block_sidebar.banner-video ~ .block +bfm.ru +.block_smi + kvnews.ru.block_sponsor + +igrhost.ru +.block_top" + isport.ua.block_top_banner  + wotspeak.org .blockmainkv + +unvan.az .blockreklamI +poltavaforum.com1.blocksubhead.righttb + a[style^="z-index:1000;"]5 + wotsite.net".blog-cat > .box[style^="height:"] + +zakon.ru.blogtbg + papillomy.com.blok1 +omastopatii.ru.blopr + +dnepr.info +.blue-bann +ecm-journal.ru.blurb\ +emotionalrating.com +ok-magazine.ru + 777score.ru + kluch.media + +poltava.to.bn + +dota2.ru.bn-btm + brokker.news .bn-content + mgorod.kz +.bn-slider + kinoplex.ru .bn-top10] + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life .bn-topic +v102.ru.bn-w100$ +pkrc.ru.bn-wrapperWrithwhasd! + eadaily.com.bn_news_incut + facenews.ua.bnblockð +qÿï08@Ranewdaynews.ru#?#.bnd-cnt:-abp-has(> [class] > b:-abp-contains(Ð�овоÑ�ти партнеров)) +Hÿï08@R8vklasse.online#?#.book-box:-abp-has(> [class*="banner"]) +Eÿï08@R5vikna.tv#?#.border-top:-abp-has(> [id*="ScriptRoot"]) +Mÿï08@R=kulturologia.ru#?#.bordered:-abp-has(> center > .adsbygoogle) +Sÿï08@RCkulturologia.ru#?#.bordered:-abp-has(> center > [id^="yandex_rtb"]) +Rÿï08@RBvgae.ru#?#.box-primary:-abp-has(> .box-body[style^="min-height:"]) +Hÿï08@R8gotovim-doma.ru#?#.box-shadow:-abp-has(> [id^="adfox_"]) + 1istochnik.ru.bnboxT +bitcryptonews.ru + apostrophe.ua + ogolosha.ua + turizm.ru +news.ru.bnr# + splkirov.ru.bnr-2horizontal + +newauto.kz .bnr-tall + punkt-a.info.bnr-top + +onliner.by .bnr-top-wide% +biomolecula.ru.bnr-top_holder! + stroyobzor.ua .bnr-wrapper! + politolog.net .bnr_300_600  +onlinetrade.ru +.bnr__mark$ +armfootball.com .bnrcontainer  +zagorod.spb.ru +.bnrobject5 +agroreview.com + agronews.ua +akak.ru.bnrs +sexvideobaza.net.bns-bl +orki.ru.bnz_horizontal€ +staforceteam.rui.boardlistInner[style="background-image: url(/logo/Standart/TemaLine2.png); background-repeat: repeat-y"] + primpogoda.ru.bober? + +newsru.com-.body-page-right-column > div[align="center"]! + gdz-ru.work.body-sub-formS +forum.sibmama.info +forum.sibmama.ru%.bodyline > div[style*="height:90px"]K + +tamboff.ru9.bodyline ~ td[style="width: 240px;vertical-align: top;"] + factroom.ru.boff\ +vse-pro-sport.com.ua +vseprosport.by +vseprosport.kz +vseprosport.ru +.bonus-btn +ua-football.com.bonuses$ +alvin-almazov.ru .book_banner? + etextlib.ru,.book_bl > div[style]:not([id]):not([class]) + +litlib.net +.book_ltrs + football.by .bookgDiv + drinks.ua.booking + ccoins.ru .bookingaff( + bombardir.ru.bookmaker-container. +alvin-almazov.ru +meta.ua .bookmakers! +sportarena.com .bookrating + simhost.org.booster +ek.ua +.bot-brand  + football24.ru .bot_banner$ +strahnadzor.ua.bottom > .bnr +slo.ru.bottom-adv-color +nn.ru.bottom-auto-ads* + docs.cntd.ru +m.ua.bottom-bannerS& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1ai +kingisepp-today.ru.bottom-banner-ks* + +freetp.org + freetp.ru .bottom-bar" + osocionike.ru .bottom-money" + +whl.khl.ru.bottom-partners. +android-club.ws + +noddb.ru .bottom-rkl5 +shkolazhizni.ru + calend.ru.bottomFixedBlock# + obrkarta.ru.bottom_abs_info9 +forum.finance.ua +moscow-post.com.bottom_banner" +delovoigorod.ru .bottom_bun# +tehno-rating.ru .bottom_rekl + +anekdot.ru .bottombanner+ + danilin.biz.bounceIn.hola.attention  +ringside24.com +.bout-bets# +freeisland.org .box-Customs2# +freeisland.org .box-Customs3 +zoon.ru .box-banner4 + +podolsk.ru".box-side > .box-content > noindex£ +hÿï08@RXversia.ru#?#.box-title:-abp-has(> span:-abp-contains(Ð�овоÑ�ти партнеров)) +@ÿï08@R0wincore.ru#?#.box:-abp-has(> div > .adsbygoogle) +Fÿï08@R6superkarate.ru#?#.box:-abp-has(> div[data-dlebclicks]) +;ÿï08@R+bitcryptonews.ru#?#.box:-abp-has(> noindex) +rÿï08@Rbovego.tv#?#.boxTable:-abp-has(.boxTitle:-abp-contains(/Это интереÑ�но|Ð�овоÑ�ти/))F + +litlib.net4.box_title_on_pages:first-child[style="width:100%;"]' +marketsakhcom.ru + +sakh.com.bp +all-for-kompa.ru.bpartn] + igroutka.ruJ.bq-menu ~ div:not([class="top-side side1"]):not([class="top-side side2"])z + ruporus.biz + ruporus.com + ruporus.net + ruporus.top + ruporus.xyz + +ruporus.cc + +ruporus.tv + +porus.ru.br + ggscore.com.br-body + ggscore.com.br-col +riotpixels.com.br-new$ + gdeetotdom.ru.bracing-bannero +livejournal.com +flicksbar.info + flicksbar.fun + flicksbar.mom + agroinfo.kz + flcksbr.top.brand! + smolensk2.ru .brand-banner + +bnkirov.ru .brand-bg + gamegpu.com .brand-block + +kinopod.ru .brand-click$ + +kinopod.ru.brand-click-inner" + +kinopod.ru.brand-container + +fishki.net +.brand-ear/ +androidinsider.ru +myvi.ru .brand-link + babyblog.ru .brand-list" + carambatv.ru.brand-overlay + mmorpg.su.brand-shifter  +forum.rarib.ag +.brand-top + +citydog.by +.brandLink + ekaraganda.kz.brand_a' +harpersbazaar.com.ua .brand_left( +harpersbazaar.com.ua .brand_right¯ +superagronom.com +elevatorist.com +lada-granta.net +latifundist.com +overclockers.ua +inoprosport.ru +popcornnews.ru + agropolit.com + filmozavr.com + filmozavr.net + gotennis.ru + kinopati.ru + zemliak.com + +lkforum.ru + +myshows.me + +podfm.ru + +psm7.com +osp.ru .branding +tut.by .branding > a" + +3dtoday.ru.branding-banner + +banki.ru .branding-bg. +sovet.kidstaff.com.ua.branding-bg-link" + koolinar.ru.branding-click, +belarushockey.com.branding-container$ +zombie-film.live .branding-fkE +newkaliningrad.ru + megalyrics.ru + zanoza.kg.branding-link +ifin.kz.branding-space" + +gameru.net.branding-spacer" + pogoda.tut.by .branding-top  +roem.ru.branding-wrapper+ +info.sibnet.ru.branding-wrapper > a' + prophotos.ru.branding:not(body)! + +citydog.by.brandingBottom + +citydog.by .brandingTop% + prophotos.ru.branding__footer: +china-review.com.ua +meat-expert.ru .branding_adv$ +tut.by.branding_bottom_links# + zerno-ua.com.branding_place" + littleone.com .branding_top! +tut.by.branding_top_links + games-tv.ru +.brandingh + +kerch.fm .branners +s13.ru.brbH + +gdzbot.com6.breadcrumbs ~ [value*="://gdz-ru.work/"] ~ #exercises +av.by.break' + multmer.org + +tourdom.ru.brend + cpainform.ru .brendingBg + stalkermod.ru.britem# + znanija.com.brn-blocker-box + games-tv.ru +.brndblock� +\ÿï08@RL365news.biz#?#.bs-vc-sidebar-column > div > div:-abp-has([id^="yandex_rtb"]) +Gÿï08@R7drive2.com,drive2.ru#?#.c-block:-abp-has(> .c-dv-label) +Oÿï08@R?dsnews.ua#?#.c-feed__list-item:-abp-has(> .c-feed__item > .c-r) +Tÿï08@RDdrive2.com,drive2.ru#?#.c-header:-abp-contains(/Ads|Реклама/) +Wÿï08@RGtelegraf.com.ua#?#.c-post__content > div:-abp-has(> [id^="_vidverto-"]) +Aÿï08@R1mskins.net#?#.card-panel:-abp-has(> center > .ds) +Rÿï08@RBvkfaces.com#?#.card-separator__title:-abp-contains(реклама) +Cÿï08@R3marketsakhcom.ru#?#.cards__col:-abp-has(> .card_cb) +Dÿï08@R4vsthemes.org#?#.catalog > .shorty:-abp-has(> .block) +`ÿï08@RPtabletki.ua#?#.category-card__card-row > .col:-abp-has(> div > .tabletki-adunit) + games-tv.ru.brndlnk + irecommend.ru.brocock$ + +klanwin.ru +pi-c.ru.browse' +templateinstant.ru .bs-topbanner + seeds.org.ua.bsacX + +nnmclub.ro + +nnmclub.to8.btTbl > tbody > .row1 > .genmed[align="center"] noindex! + +livelib.ru.btn-buy-holder; +download-windows.org + softhome.ru.btn-installpack( +shopping.nv.ua.btn-product-embed + mozhaysksg.ru.btop  + newauthor.ru .bue-align-c! +ua-football.com +.buk-table +delovoigorod.ru.bun% + kulichki.net.bunner_container + hr-portal.ru .burger_b9 +knigi-chitaty.ru!.button[href^="/download.php?q="]) + kino-teatr.ru.button_online_block( + kino-teatr.ru.button_online_info + needtext.ru.buttons +7days2die.info .buy-game# +online.zakon.kz .buy-sidebar + kinobanda.net .buyframe$ + carsweek.ru.bx-composite-btn +electroandi.ru.bybit +tsn.ua.c-aside__port) + vsplanet.net.c-center > .cols ~ *\ + drive2.ruK.c-darkening-hover-container ~ :not(.c-darkening-hover-container) > div[id]* + +drive2.com + drive2.ru .c-dv-label + drive2.ru.c-dv-p( + +drive2.com + drive2.ru .c-dv-sns( + vsplanet.net.c-left > .block ~ *, + dsnews.ua + +focus.ua +delo.ua.c-r +5-tv.ru +.cFadeDark1 +tomat-pomidor.com.cPost + script + center+ + sravni.ru.calculator-branded-button +gorod24.online.canshowG + bash.news6.capybara-mini[style^="width:300px;min-height:300px;"]- + vedomosti.ru.card-banner-priorityclub$ + vedomosti.ru.card-banner-tgb& +odinelectric.ru.card-container3 +pronovostroy.ru.card-special-gallery--topic# +solidarnost.org .card-yandex +1tv.ru .card.promoW + sovsport.ruD.cardForecast_card_container__b_Ukm > div[class^="cardForecast_btn"]% + bzrus.pro.card__inner-premium  + bzrus.pro.card__re-video# + edimdoma.ru.card_commercial4 + kasparov.ru + +ria-m.tv.caroufredsel_wrapper +programy.com.ua.cars2 + echosevera.ru.cartoon1 +livejournal.com.cat-widget__adv-container2 +livejournal.com.cat-widget__card-wrap--adv) + +hotline.ua.catalog-three-products + yamart.ru .catalogElAd³ +“ÿï08@R‚planet-today.ru#?#.center-article-bottom > .custom_ :-abp-has(.blacktitle > span:-abp-contains(Ð�овоÑ�ти партнеров)) +vÿï08@Rftlgrm.ru#?#.channel-feed > .channel-feed__brick:-abp-has(> .cfeed-card > .cfeed-card-contents--banner) +Xÿï08@RHnonameno.com#?#.clauses_block_rel .panel:-abp-has([href*="dex.browser"]) +Bÿï08@R2vsekamni.net#?#.code-block:-abp-has(> .content_rb) +Cÿï08@R366.ru#?#.col > .news-grid:-abp-has([class*="adv-"]) +Oÿï08@R?kleo.ru#?#.col-2 > div[id^="right_block"]:-abp-has(.content_rb) +Iÿï08@R9vashdosug.ru#?#.col-light-grey:-abp-has(> .bottom-banner) +Iÿï08@R9ru-an.info#?#.col-right tbody > tr:-abp-has(.adsbygoogle) +Kÿï08@R;ru-an.info#?#.col-right tbody > tr:-abp-has([id*="banner"]) +Jÿï08@R:ru-an.info#?#.col-right tbody > tr:-abp-has([id^="SRTB_"]) +Pÿï08@R@ru-an.info#?#.col-right tbody > tr:-abp-has([id^="yandex_rtb_"]) +Kÿï08@R;ru-an.info#?#.col-right tbody > tr:-abp-has([src*="/ads/"]), + ufanotes.ru.category2 > .fa-exchange3 + ufanotes.ru .category2 > .fa-exchange ~ span + +3iks.org .categoryrek +3iks.pw.catrek& +megaresheba.ru.caution-message* +megaresheba.ru.caution-message ~ *$ +footballreview.ru .center-adv7 +moyareklama.by +moyareklama.ru.center-special + friends10.ru .center_b' +reviewdetector.ru.center_banner* + pornoshara.tv.center_col > .layout + +dokak.ru .center_tizer$ + vseosi.ru.centercol > center0 +all-for-kompa.ru.centersideinn > .cblock + +pulscen.ru +.chameleonD +play.tavr.media-.channel-centre > .bottom-links ~ .d-md-block + profinance.ru +.charts-ad + +mmo13.ru .cl-block-rk( + ruwest.ru.cl-simple-border-block! +i.ua.clear.logo_container! +games-archive.net.cleared/ +northern-newspaper.ru.clearfix > .media2 + softboard.ru.clearfix > center:first-child+ + babyblog.ru.clearfix.blog-incut-uad8 + metrologe.ru$.clearfix.content > div > .col-sm-12U +forum.saransk.ru=.clearfix.ipsSideBlock > div[class^="zone_"]:not(:last-child)* + zamunda.net + +zamunda.ch .clickads + glazey.info.client" + literaguru.ru .clinic-image# +gorodkiev.com.ua .clr[style]( + timeweb.com.cmn-banner-containerß +selfmanga.live + allhen.online + doramatv.live + mintmanga.one + doramatv.one + findanime.ru + librebook.me + readmanga.io + doramatv.ru + +grouple.co + +selflib.me + koro.life + usagi.one +mose.su.co_baç +itbusiness.com.ua +autogeek.com.ua +gadgets-help.ru +bolshoyulov.ru +hersonweek.net +itsider.com.ua + vsviti.com.ua + ampercar.com + fuzzmusic.ru + nnews.com.ua + pcminipro.ru + poravkrym.ru + find-key.ru + gubdaily.ru + o-polze.com + villaved.ru + +kakbog.com + +mmr.net.ua + femmie.ru + +gsett.ru +kovi.ru +024.by .code-block$ +prozoro.net.ua.code-block-34 + slivup.me.code11 + +sport.ua .coefficient! + allboxing.ru .coefficients + fclmnews.ru.coeffs. + fastpic.org.col-auto[style^="height:"]> + prog-top.net*.col-cont div[align="center"]:not([class])* + rusdtp.ru.col-left > .pope ~ .pope + prsport.net .col-lg-3? +shraibikus.com).col-main > h2[style="margin-top: 30px;"]( + +tracker.ru.col-md-2 > .thumbnail2 + probiysk.ru.col-md-3 > center > img[style]. + poiskm.me.col-md-4 > .mynavblock ~ div$ + gotoroad.ru.col-md-4 noindex& + g-list.ru.col-md-4.text-center" +koko.by.col-partner-offers% + +anekdot.ru.col-right > .blockN + daxshat.site:.col-right > .side-box > a[href^="http:"][target="_blank"] + expert.ru .col-right hrõ +Dÿï08@R4detaly.co.il#?#.col:-abp-has(> .container_ads_small) +Cÿï08@R3argumenti.ru#?#.col:-abp-has(> [id^="yandex_rtb_"]) +Lÿï08@R .footer:-abp-contains(реклама) +Žÿï08@R~old.myshows.me#?#.container > .marginBottomBase:-abp-contains(/Смотри на КиноПоиÑ�к HD|Watch on KinoPoisk HD/) +–ÿï08@R…old.myshows.me#?#.container > .marginBottomBase:-abp-contains(/Смотри на КиноПоиÑ�к HD|Watch on KinoPoisk HD/) + .row +¡ÿï08@R�old.myshows.me#?#.container > .marginBottomBase:-abp-contains(/Смотри на КиноПоиÑ�к HD|Watch on KinoPoisk HD/) + .row + .contAlt2 + livecars.ru.col-z-right > #livecars_ru ~ * +telegraf.in.ua.col3 +telegraf.in.ua.col5! +vo-production.com.colLeft  + +ololo.fm.col_1 > .block2? +zi.ua2.col__big .unit-rubric__head[style^="margin-top:"]< +korrespondent.net#.col__sidebar > .unit-side-informer + argumenti.ru.col_advH + talkwebber.ru3.col_c_stats > a[href^="http://talkwebber.ru/go/?"] + alive-ua.com.col_l_b + itvcom.ru +.colr > h4, +ukrfootball.ua.colum_widget_block_pp1 + naurfo.ru .column a[href][target="_blank"]A + www.sport.ru-.column-right > div[style="margin-top:20px;"]+ + www.sport.ru.column-right > h5.hdr2( + travelask.ru.column-sidebar__ads) + porngames.su.column.last.mini > p + +alser.kz .columnBanner; +russian.rt.com%.column__row_article-page_right:empty' + transinfo.by.column_banner-wrap% + tabletki.ua.com__panel-header + pcportal.org.come_d2 +news.tj#.comment-area .newsbox-outer-banner' + kirov.online.comments ~ noindex1 + superhumor.ru + +voffka.com.comments-head3 + glavnoe.net + infotime.co.comments-wrapper + pikabu.ru.comments__advK +novayagazeta.ru4.comments_block div > article + div[style^="margin"] +car.ru .commercial8 + anilibria.top + anilibria.wtf.commercial-bannerL +yantann.rbsmi.ru +yanzori.rbsmi.ru + mgazeta.com.commercical_wrap> +sportanalytic.com%.common_content_news > .news > center9 + samara24.ru&.common_left > [id^="rep_"] > .bl_main( + samara24.ru.common_right_banners + +mc.today.company-slider% +kinoafisha.info.companyButton( + rabota.md.company_related-bannerV + doska.ykt.ruB.compilations section.compilation-section--desktop:nth-child(-n+2)4 + +sdamgia.ru".con_warper > div[class$="_block"]G + +sdamgia.ru5.con_wraper ~ div[class] > div:not([class="content"]) + vsitv.org.conrek$ + docfilms.info.cont > noindex% + djrogoff.ru.cont_in_c > .item: + comments.ua'.cont_station > .tags ~ .K_t_a ~ .K_t_a# + rivne1.tv.container > .info3 + fbsearch.ru .container > .row > .text-centerQ + glavnoe.in.ua<.container > .row > div[class^="col-"] > a[href="/gambling"]c + glavnoe.in.uaN.container > .row > div[class^="col-"] > a[href="/gambling"] + div[class*=" "]' + +dictat.net.container > .sidebar5 +bazr.ru&.container > .wrapper > .row > .grid_4R + solncevo.info=.container > a[href*="utm_campai"] ~ a[href][target="_blank"]/ +saratovnews.ru.container > div > object< + imagenizr.net'.container > div[id^="adblock-"] ~ .row, + nashdisk.ru.container > table[align]! +club.ru.container-banners + +mctop.su.container-bbbs8 + +ant-top.ru&.container-fluid > .row:nth-of-type(2)@ + +comss.ru0.container-fluid > div[class="container uphead"]Þ! +Lÿï08@R .mag-box-title:-abp-contains(Партнери проекту)) +pÿï08@R`alexbruni.ru#?#.container:-abp-has(> div[align="center"] > video > [src*="://dental-paint.ru/"]) +Oÿï08@R?igra.life#?#.content > #info:nth-of-type(1):-abp-has(> .textos) +Yÿï08@RIlist-org.com#?#.content > .card ~ div:-abp-has(> center > [id^="adfox_"]) +…ÿï08@Rudtf.ru#?#.content > .content-header:-abp-has(> .author > [href="/br"]) ~ .content__body a[href][target="_blank"][rel] +“ÿï08@R‚dtf.ru#?#.content > .content-header:-abp-has(> .author > [href="/luchshii-rating"]) ~ .content__body a[href][target="_blank"][rel] +Šÿï08@Rzdtf.ru#?#.content > .content-header:-abp-has(> .author > [href="/toprate"]) ~ .content__body a[href][target="_blank"][rel] +pÿï08@R`seasonvar.one#?#.content > .content-wrap:-abp-has(.pgs-head:-abp-contains(ИнтереÑ�ное)) +iÿï08@RYekabu.ru#?#.content-block:-abp-has(font:-abp-contains(Ð�овоÑ�ти партнеров)) +bÿï08@RRautocentre.ua#?#.content-rules > p:-abp-has([href^="https://autoshini.com/shop/"]) +Aÿï08@R1afportal.ru#?#.content:-abp-has(> div > #nadoelo) +cÿï08@RSfishki.net#?#.content__sub-heading:-abp-contains(Ð�овоÑ�ти партнёров) +jÿï08@RZkino-teatr.ru#?#.content_block > .page_content_block:-abp-has(> div[style] [id*="_dobro"])! + mmotop.ru.container-links& + theplace.ru.container-rekl-topŒ +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.in.container__bannerZone$ + rosserial.net.container_gads+ +yakusubstudio.forum2x2.ru +.contbaner +novostioede.ru.contdi +novostioede.ru.contdiv+ + papillomy.com.content .custom-block: + +mos.news*.content > .comment-block[style^="margin"]= + +www.i.ua-.content > .news > div > #news_cont ~ [class]3 + poimel.live .content > .text-block.form-wrap= +irad.ru..content > div[align="right"][style^="float:"]K + royallib.com7.content > div[style="width:100%; text-align: center;"]A + +tyurem.net/.content > noindex > :not([href*="tyurem.net"])K + ko.com.ua:.content > p[style^="font-size: 1.3em"] > strong > a[href]& + ufanotes.ru.content > span > b5 + animego.org".content div[style^="min-height:"]0 + royallib.com.content table[height="250"]+ + +otzyv.ru.content table[height="90"]G + primemusic.ru + vsezdes.info +dtf.ru +vc.ru.content-banner< + softpir.com).content-block > div[style^="background"]R + zrelki.click + ebaland.net/.content-box div[style^="margin-bottom: 20px;"]< + +votpusk.ru*.content-box-r > div[style^="width:240px"]5 + +votpusk.ru#.content-box-r > table[width="240"]Q + joyreactor.cc<.content-card ~ :not(.content-card) a[href][target="_blank"]0 + ohotniki.ru.content-footer__subscription! + +fairtop.in.content-imagesP +masterok.livejournal.com0.content-inner > .entry-wrap > .disabledcomments7 +footballtransfer.com.ua.content-inner > noindex7 +dtf.ru +vc.ru .content-list > div[style^="--"]G +animespirit.tv1.content-middle > .leading-publishers:first-childx +online-stars.org +online-star.org + anistar.org + +astar.bz2.content-pravo > .news-list ~ div[class^="center"]( +podillyanews.com.content-reclame- +info.sibnet.ru.content-right-branding + zaxid.net .content-roll% + gazeta.spb.ru.content-teasers0 + temp-mail.ru.content.main ~ .text-center' +xxx-russian.ru.content5 > .rad5* + sexytales.org.contentBox > noindex+ +spot.uz.contentBoxR.floating_banner# + i2hard.ru.content__col-left2 + marpravda.ru + kriminal.tv.content_banner? + kino-teatr.ru*.content_block > div[class*="_text_white"]# + noob-club.ru.content_cactus/ +yaminecraft.ru.content_f > div > center6 + tvsezon.com#.content_player > noindex > noindexY + inforuss.info + gotovchik.ru + lentaruss.ru + +smiruss.ru +kleo.ru .content_rb) +yagramotniy.ru.content_right_avvd& + maanimo.com.content_top_banner' +zoon.ru.contents > .box-paddingî +hÿï08@RXua-football.com#?#.contents-content > ul > li:-abp-has(> a:-abp-contains(Ñ�тавки )) +wÿï08@Rgcq.ru#?#.cq-code-block:-abp-has(a[href][rel="nofollow"]:not([href^="/"]):not([href^="https://cq.ru/"])) +Gÿï08@R7cq.ru#?#.cq-content > h2:-abp-contains(/Ñ�тавки/i) +ƒÿï08@Rsrealt.by#?#.csc-textpic:-abp-has(> .csc-textpic-imagewrap > a > img[src*="realt.by/uploads/pics/bsb-bank_mechty_"]) +Lÿï08@R div[id*="ScriptRoot"]) +Hÿï08@R8planet-today.ru#?#.custom_:-abp-has(> div[id^="infox_"]) +Gÿï08@R7planet-today.ru#?#.custom_:-abp-has(> div[id^="unit_"]) +Fÿï08@R6ren.tv#?#.d-flex:-abp-has(> div > [class^="partners"]) +@ÿï08@R0nnovosti.info#?#.d-none:-abp-has(> .adsbygoogle) +meta.ua.context + +aviso.bz .context-ad$ +zavisimost03.ru .contextblockC +seo-master.org + seosprint.net + vip-prom.net .contextlink' +smotriserial.me.contleft-nomenu + 24smi.org .cookie-modal$ +fitomarket.com.ua .coolbanner  +libelle.com.ua +.copyright* +motoliga-nn.ru.copyright > a[href]H + +nnmclub.ro + +nnmclub.to(.copyright tbody > tr > :not(.copyright)- + ua-news.in.ua.copyright-inner > p ~ p! + stopgame.ru.corner_banner  + kg-portal.ru .cough_block + multiurok.ru.courses  +rus-urologiya.ru.cpa_top + promtu.ru .cpablcok+ + ecology-of.ru + agro-biz.ru.cpatop' + +starhit.ru + +woman.ru .creative] +maximonline.ru +vokrugsveta.ru + +parents.ru + +the-day.ru.creative-container._vb-2 + +pogoda.com .creatividad +cmlt.ru.cross-ans-box� +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.in .crttextpad4 +openssource.info +openssource.biz .crymoreb +te.ua .csa-head% +1000sovetov.ru.ctaRightWidgetw + google.com.ua + +google.com + google.by + google.kz + google.ru-.cu-container > div[class*="commercial-unit"]) +business-gazeta.ru.currency__logo + kurs.com.ua .currencycom' +diabethelp.org +8vp.ru.custom0 + ok-tv.org.custom > div[style*="display"]2 + +tvizor.org .custom > div[style^="padding:"]" + ok-tv.org.custom > noindex$ + vp.donetsk.ua.custom > p > a& + vp.donetsk.ua.custom > p > imgv +uroki-pitaniya.ru + orchardo.ru + vipidei.com + +dacha.help + +udermis.ru + +devby.io +dev.ua .custom-block% + mignews.com.custom-height-250Z +xn---2--mddxunv8a2esa.xn--p1ai +dovidka.biz.ua + forumua.org.custom-html-widget, + topgir.com.ua.custom-html-widget > a8 + ukrnews24.net#.custom-html-widget > a[href] > img] + minsknews.byI.custom-html-widget > a[href][target="_blank"][rel="noopener noreferrer"]7 +dzr.by).custom-html-widget > a[target="_blanck"]. + topgir.com.ua.custom-html-widget > div0 + miasskiy.ru.custom-html-widget > noindex +cofp.ru.custom-reklama! +vc.ru.custom_subsite_html" + +rupor73.ru.customnopadding2 +dubikvit.livejournal.com.customtext-widgetA + +fishki.net/.cycle-carousel-wrap > [style*="z-index: 100;"] +ykt.ru.d-advs +ykt.ru +.d-banners) +ren.tv.d-flex [class^="partners"]  + banki.loans .d-none:empty( +materinstvo.ru.d290 > .adv_small + automoto.ua +.da-iframe" +filmstvclub.net .da-section� +gÿï08@RWcomss.ru#?#.dlblock .dropdown-menu > li:-abp-has(> small:-abp-contains(Реклама)) +@ÿï08@R0comss.ru#?#.dlblock:-abp-has([href*=".drp.su/"]) +Mÿï08@R=repackov.net#?#.download_file:-abp-has(> a[href*="/sb/clk/"]) +Uÿï08@REfishki.net#?#.drag_element:-abp-has([href*="poleznaja-reklama.html"]) +Wÿï08@RGfishki.net#?#.drag_element:-abp-has([href]:-abp-contains(Peклама)) +beliyspisok.ru.danabolP +govoritmoskva.ru8.darkPart > .connection ~ a[href][target="_blank"] > img + darkwebs.ws.darkrek) + obrkarta.ru.data-banner > #brunch* + obrkarta.ru.data-banner > #zarniza + kirovnet.ru .data-place' + 3dnews.kz + 3dnews.ru .dc_promo$ + optimistt.ru.dcont .b_center + fc-zenit.ru.ddb-adv +dermatitanet.ru.ddd + pcprogs.net.dds- +qwe.ru.default_menu > div:first-child+ + gdzputina.me + botanam.net.desctop' + ixbt.market + +ixbt.com.deskadv& +hromadske.radio.desktop-banner; + direct.farm(.desktop-context > div[class*="_cover_"]" + +euroki.org.desktop_bannersˆ +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.in.detailLeaderboard@ +camtasia.com.ua).details > a[href="http://gamelion.net/"]# + playground.ru.dfp-container + qna.habr.com +.dfp_label7 + sovets24.ru + vkurske.com + +sovets.net.direct + expertcen.ru +.direct-ad$ + +korabel.ru.direct_elm_footer+ +newkaliningrad.ru.discount-side-240) +v-androide.com.distr-vidget-block$ +dtf.ru +vc.ru .distribution + kinonews.ru.div1000 + +petcare.ua .divBanners + kinonews.ru .div_dzen + mv.org.ua.divider- + +bookre.org.dl_link ~ [class]:not(div)0 + +bookre.org.dl_link ~ div[align="center"]) + +comss.ru.dlblock [href*="?erid="]% +appstorrent.ru.dle_b_ad_block# + +a7d.com.ua.dle_b_big_header! + lrepacks.net .dle_b_yandex/ +dreamprogs.net.dlogo td[align="center"] +vgr.by.dmi-header-ads) +teleprogramma.org.dna-adfox-block + +good73.net .dns_banner# +gtk.tv.document-advertising + tatler.ru.dog + griffiny.ru.dopoln + torrpeda.org .dosugban5 +notorgames.net + 1progs.me + 1progs.ru.down  +gamestracker.org.down-mg9 +slo.ru+.download-box > div:not([class="download"])( + rl-team.net.download_blue_yellow" + terabit.biz.download_inner4 + +hostmp3.ru".download_method > .method_box ~ *, +gennadij.pavlenko.name.draggable_oio + +vgtimes.ru .dragon_lord' +maximonline.ru.ds-block-productp +windows-program.com +windows-driver.com +windows-driver.net +softomania.net + warezok.net.ds-down + +dom72.ru +.duck-line2 +inforesist.org.dw_focus_widget_news_ticker# +game-tournaments.com.dynban + +psm7.com .dynbaner¦ +Vÿï08@RFitc.ua#?#.entry-content > p:-abp-has(> strong > a[href*="utm_campai"]) +¬ÿï08@R›zhzh.com.ua,zhzh.info#?#.entry-galery:-abp-has(> .entry-galery-title:-abp-contains(/полезное объÑ�вление|горÑ�чие новоÑ�ти/i)) +eÿï08@RUsuperjob.ru#?#.f-test-search-result-item:-abp-has(> div > div .f-test-link-Podrobnee) +mÿï08@R]superjob.ru#?#.f-test-search-result-item:-abp-has(> div li div:empty:first-child + div:empty)+ + +yk-news.kz +2x2.su +ntv.ru.dzen + 24smi.org +.dzen-logo" +politexpert.net .dzenSlider + sibnet.ru .dzen_widjet + football24.ru.dzenreg + video.khl.ru.e-bnr + +ekabu.ru .e-zen-block + bashskazki.ru.ea-col + bankua.com.ua.eb-inst  + +briefly.ru.ebooks-widget? + sivator.com,.edina > a[href="http://monstro-beats.com/"], +semestr.online + +semestr.ru.eduChat* +sergeydolya.livejournal.com.edwrap +prostolinux.ru .egg-list! + zemliak.com.eldala_widgetk +alau.kz\.elementor-image > a[href]:not([href^="/"]):not([href^="https://alau.kz/"])[target="_blank"]P + format.kr.ua<.elementor-widget-container > a[href][target="_blank"] > img+ + weukraine.tv.elementor-widget-video( + +mydecor.ru.elle-special-projects3 +pingvinoff.net.entry > div[style^="float:"]9 + brestcity.com$.entry > p > a[href][rel="nofollow"]: + lifter.com.ua%.entry-aside a[target="_blank"] > img  + vikna.if.ua .entry-banner( + rmnt-aqua.ru.entry-con > noindexk +ua-novosti.online +glamour.kyiv.ua +ua-novosti.info + prankota.com.entry-content > .textwidgetW +v-tatarstane.ru@.entry-content > .twp-article-wrapper ~ a[href][target="_blank"]_ +lessonsflash.ruH.entry-content > div:not([id]):not([class]):not([style])[align="center"]Q + prazdnovik.ru<.entry-content > div:not([id]):not([class])[style^="height"]1 +bisnesideya.ru.entry-content > div[style]? +bukety-iz-konfet.ru$.entry-content > div[style^="float"]A + faston24.ru..entry-content > div[style^="min-width:300px"]+ +tnt-premier.life.entry-content > h33 + proglazki.com.entry-content > table[border]( +livejournal.com.entry-wrap-promo + +nullcms.ru .epcl-banner* +livejournal.com.eplayer-time-to-ad  +espanarusa.com +.er-banner +cpa.rip.eriuue-contentC +rating-avto.ru-.erm-sidebar-part.hs-shadow[id] > .textwidget2 +mp3.uzhgorod.name.esc_adv_inside_container! +anime100500.ru .esg-bleach( +mediavitrina.ru.eump-com-linktxt + +infocar.ua.eurobanF + shanson.name2.execphpwidget > div[id]:not([class]):not([style])+ + pohudet.org + +diets.guru +.exitblockR + autogrodno.by=.expautos_detail_right > .moduletable_menu:first-child > span + +korabel.ru .ext_link_img& +russian.rt.com.external-widget + carsweek.ru.extra +1777.ru.f80% + +fotokto.ru.fRight > .rightBox- + medicina.ua.face-right > .direct-link +roem.ru.factus-promoted% + +activ.kz.fade[class*="modal"]' + ipicture.ru.faq > ul > li + div + +bigness.ru.fark% +prostatitanet.com .fasc-button + +vgtimes.ru.fatad  + ficbook.net .fb-ads-blockc + versii.if.uaO.fb-s-blog-two-top a[href]:not([href^="/"]):not([href^="https://versii.if.ua"])  +„ÿï08@Rtsyl.ru#?#.featured_articles > .header:-abp-contains(/^Ð�овоÑ�ти партнеров|^Также читайте/) +Sÿï08@RCallboxing.ru#?#.field-item > p:-abp-has(noindex [href*="adfox.ru"]) +Rÿï08@RBallboxing.ru#?#.field-item > p:-abp-has(noindex [href*="pari.ru"]) +Wÿï08@RGallboxing.ru#?#.field-item > p:-abp-has(noindex [href*="utm_campaign"]) +–ÿï08@R…forum.ixbt.com#?#.folders:-abp-has(> .title > [href="/?id=favorites"]) ~ .forumpage_table div[style^="background: #aea; color:#020;"] + villaved.ru.fbln" + +hi-fi.ru.feature__ad-block +anypictures.ru .featured% + pravoved.ru.feed-bnnrs--right2 + report.az!.feed-col > div[style^="height:"]= +vk.com +vk.ru&.feed_row ._post_content > .page_blockE +vk.com +vk.ru..feed_row > :not([id^="post"]) > div[class=""]* +vk.com +vk.ru.feed_row > [theme]E +vk.com +vk.ru..feed_row > div[class*=" "] > div:not([class])5 +online.fliphtml5.com.fh5---banner---containerO +libertycity.net +libertycity.ru&.file_download > div[style*="height:"]6 +libertycity.net +libertycity.ru .file_info_ad. + kinorium.com.film-page__buttons-cinemaÔ +fast-torrent.club +fast-torrent.ru +fast-torrent.su + fast-fiml.ru + filmpotok.ru + kinomuch.ru + pickfilm.ru + +nebeda.net + veleto.ru + +vixim.ru0.film_page > div:not([id]):not([class]) > center" + asn.in.ua.filter-container +nixp.ru.firefox- + slivup.me.firstPostRandomCode_wrapper. + finfront.ru.first_block > .right_block +www.pesticidy.ru.fix" +alvin-almazov.ru +.fix_block + e-sant.ru.fixday  + sims3pack.ru .fixed-block& + +sochi24.tv.fixed-bottom-banner! + agroportal.ua .fixedBanner  + agroportal.ua .fixedBlock + avtoblog.ua .fixedBrand + toptracker.ru.flash +syl.ru +.flatBlock +5-tv.ru .flatBottom +5-tv.ru.flatTop: + province.ru'.flexbannergroup > div:not(.gsInformer)V + pawno-info.ruA.floatcontainer.formcontrols.blockbody > a[href][target="_blank"] + goldroyal.net .floating& + factroom.ru.floating.b-sidebar + +notik.ru .floating_bnr + waitpost.ru.fly6 +pornoneverdie.com +bountyporn.com .fly_player + +softbox.tv .fmessage  + banki.loans .fn-more-info + banki.loans .fn-sources! +openssource.info .focus-ad$ +mogilev.online.follow_button+ +russian.rt.com.follows-channel_djen# +oper.ru.follows-channel_zen + mmotop.ru.fon-ref + +c-sgo.ru .fon-reiting +khl.ru.fonbet  + +hcbarys.kz.fonbet-banner +khl.ru .fonbet-logo1 +uaexpert.blogspot.com.foot > .widget.HTML! + novafilm.tv.foot-partners +karavan.tver.ru.foot_20 + isport.ua.football-link[target="_blank"]- + znamyuzl.ru.footbox > .rcol > noindex( + pcportal.org.footer #banner ~ td) +pogodavtomske.ru.footer > .centerF +soccer365.com.ua + soccer365.ru.footer > :not(.footer_bottom)s +mozutil.mozilla-russia.orgQ.footer > span > div[style="text-align: left;"] > div[style="text-align: right;"]2 +rutracker-net.ru.footer a[target="_blank"]° +ÿï08@Royarnews.net#?#.for-article > .js-switch-blocks-center > .news-feed-wrapper:-abp-has(> .news-feed > .for-banner) +Eÿï08@R5bez-smenki.ru#?#.form-group:-abp-has(> .ulogin_block) +Pÿï08@R@osnova.news#?#.fotorama__stage:-abp-has(> div img[src*="/i/a/"]) +Hÿï08@R8vesti-ua.net#?#.full-story > .mblock:-abp-has(> noindex) + +sport.kg.footer-add > a2 +kino-archive.ru + silver.ru.footer-banner$ + +finam.ru.footer-banner-block7 + +kino.video + +tasix.me.footer-container #blink7/ + +zaruba.fun.footer-first-widgets-section# + hitsovet.ru.footer-one.fbox) + +diets.ru.footer-other-interesting +zi.ua.footer-partners* + fc-zenit.ru.footer-partners__block( + megatyumen.ru.footer-promo-blockI + +zaruba.fun7.footer-second-widgets-section > section > .widget_textF + shaiba.kz5.footer-top__partners > .footer-block-wide:only-child/ + lifehacker.ru.footer-widgets__container + 4rama.com .footerLegal% +wildberries.ru.footer__banner# + +resheba.me.footer__btn-link/ + relax-fm.ru.footer__promotion_container# +kinoafisha.info .footer_apps) +forum.fonarevka.ru.footer_bannersJ + tverigrad.ru6.footer_contact > div > .row > .hidden-xs:nth-child(3)+ + comments.ua.footer_link_bottom_main" + +mhl.khl.ru.footer_sponsors + moybrauzer.ru.footr + yarnews.net .for-banner7 + pornorip.biz#.forabg div[class][style*="cursor"]) +alvin-almazov.ru.forecast-ad-line  + +vgtimes.ru.forge_empires" + +loginz.org.form-wrapper.cf$ +baby.ru.format_video_comment? + only-paper.ru*.forum-section .main > div[align="center"]! + rybalka.com.forum_buttonsL + poiskvps.ru9.forumbg.forumbg-table[style*="background-color:#00A857"]Q + sysadmins.ru=.forumline > tbody > tr > td[valign="middle"] > a[href] > img + mp3sort.biz +.forumlinkG + airgun.org.ru2.forumrules > a[href]:not([href*="airgun.org.ru"])D +www.radioscanner.ru).forums ~ table[cellpadding][cellspacing] +mmgp.ru.fotwdgt_bt_adw + +xcadr.tv .fp-brandI + bogmedia.org5.fp-player a[href^="https://bogvideo.com/partneram/"] + plodovie.ru +.fpa-block# + satsis.info.fr-banners-main* + comments.ua + +fbc.biz.ua .franshiz + softonic.ru .free-games) +comboplayer.ru.free-period-banner! + forbes.kz.freedom__banner" + bestweapon.in .friend_links# + gagadget.com.friends-holder! +slavutich.cn.ua +.friks-row, + trueua.info.front-content > .pos-rel# + belkagomel.by.front-widgets" +3mv.ru.fs_bottom > noindex% +funtime.kiev.ua.ft-bnnr-block  + newdaynews.ru .ftbn-b-yan  + newdaynews.ru .ftbn-b-zen% + fototips.ru.ftips-branding-ad: +wintorrents.ru$.full-news-head > .full-news-top ~ *o +wintorrents.ruY.full-news-stb-content a[href]:not([href^="https://wintorrents.ru/engine/download.php?"])( + kino2018.fun.full-page > noindex? + +intv.com/.full-right-video1[style="text-align: center;"]" +1gai.ru.full-story__bannerÕ +”ÿï08@Rƒglavnayatema.com#?#.gazeta-widget:-abp-has(.widget-title > span:-abp-contains(/реклама|новоÑ�ти партнеров/i)) +Sÿï08@RCiz.ru#?#.get_news_link__bottom__item:-abp-has(> a[href*="yandex."])b +consol-games.com +consol-games.net6.full-text > div[align="center"] ~ div[align="center"]* +topasnew24.com.full_pict1 > center + gamestar.ru .full_screen( + santikov.net.full_story + center + serial.wiki .fullpanefn+ + +kinow.ru.fullstory a[href*="aHR0c"]- + +wkino2.net.fullstory ~ noindex .pleer0 +news.agro-center.com.ua.fullwidthabanner/ + marathonec.ru.fullwidthbanner-container +zerocoolpro.biz.funbox + anison.fm .fw.topbanner1 + rubryka.com + test-nmo.ru + theuk.one.g8 + dok-film.net + howdyho.net + howdyho.pro.g-ads + +volga.news .g-banner +ysia.ru.g-dyn + nagadala.com .g-single7 +autogeek.com.ua + bitfin.info.g1-injected-unit + bankiros.ru +.g_ban_bot +u24.ua.gab-ins + kaifolog.ru.gads, + glavpost.com.gallery-center-ad-block( +open3dmodel.com.gallery-full > p! + splkirov.ru.gallery-gusar' + travelask.ru.gallery-sidead__ad€ + rbkgames.coml.game-description-text a[class][href][target="_blank"]:not([href^="/"]):not([href^="https://rbkgames.com/"])# + shaiba.kz.game-info__bottomX +gamasexual.com + gamasexual.ru1.game-preview-wrap > :not([class="game-preview"]) + +myfin.by .game__label# + +myfin.by.game__partner-logo, + myplaycity.ru.gamepage_download_left- + myplaycity.ru.gamepage_download_right1 +flashplayer.ru.gametiles > div[id][style]! +kinoafisha.info +.gamma-zen  + fc-zenit.ru .gazprom-logo +deti.fm .gazprom-top' + softobase.com.gc-question-ads-2 + cfts.org.ua.gd& +plohihmacov.net.gdeslon-widget" +legkopolezno.ru .gen-banner. +semerkainfo.ru.gensmall > .block_links+ +iz.ru.get_yandex_subscription_links + +dota2.ru +.ggbetgift + +dltv.org.gift  + bobsoccer.ru .gift-banner/ +euro-football.ru + +fight.ru .gift-block +liveinternet.ru.gifts + +fakty.ua .gis_logo' + video.oboz.ua.global_overheader( + investoday.ru.globalmesswarnwrap +usa.one.glsdklj0 +diabethelp.org + sustav.info .gmp_widget +instagrabber.ru.gnice + radiogrom.com.goo_gle + ohotniki.ru.good$ +manga-online.biz .good-target$ + ohotniki.ru.good__header_top + +sportmk.ru +.good__top( + djekxa.ru.goods ~ h3,.goods ~ h4 + yakako.ru .goods-blockh- +catalog.onliner.by.google-banner_wide + 1plus1.ua.google-intext$ +obozrevatel.com .googleBannerë +Aÿï08@R1taurion.ru#?#.gray_block:-abp-has(> .block_links) +Vÿï08@RFsm.news#?#.grid > div[class^="it_"]:-abp-has(a[href][target="_blank"]) +Wÿï08@RGamic.ru#?#.grid__title:-abp-contains(Ð�овоÑ�ти партнеров) +Pÿï08@R@sovetromantica.com#?#.header--text:-abp-contains(Реклама) + +medkrug.ru .google_advD + loveradio.ru0.google_container,.google_container + div[style]$ + pingvin.pro.googlesingledown +yakutsk-news.net.gooo" + ctnews.ru.goto_news__block$ + +banki.ru.gpb-currency-banner + volyn.com.ua .gpt-main + radioradio.ru.grafity8 + sibmail.com%.gray > center > div[style*="125px;"]  + +pleer.ru.gray_border.pie + 47news.ru.grayb + +webpark.ru.grey +2mm.ru +.greyblock + ogorod.ru .grf_wrapper3 +baby.ru$.grid > div[style^="height: 250px;"] + softking.ru .grid-ad-box  +slon.ru.grid-advert-wrapw + nachasi.comd.grid-main > div[class^="style_heading_"] + div[class^="style_block_"] > div[class^="style_poster_"]# + novostivl.ru.grid-news-none + ryazan.life.grid-r +tomat-pomidor.com.gusev + +playua.net .h-advert' + +klerk.ru.h-header-banner-height, + peterburg2.ru.h-menu__item--external + casstudio.tv +.h-top-pad + octavia-a5.ru.h2o$ + rabota.md.h_banner-container4 + pslan.com#.h_right_center > noindex > a[href]4 +psychologies.ru + +starhit.ru.hb-placeholder0 +narodna-osvita.com.ua + +doctube.ru.hban + +rcity.by.hbaner0 +bookskeeper.ru +interesniy.com.hbanner- + +ixbt.com + +ixbt.pro +www1.ru.hcont + hdtrailer.ru.hd_head +foto.ua .hdr_banner + +onporn.fun.hdsd  + rugame.mobi .head + .main + +playua.net .head-ad_vert + 73online.ru.head-bV +chis-chernomorsk.com.ua + floraprice.ru + www.ogorod.ru +vl.ru .head-banner; + newsgsm.com + softpir.com + +wkino4.net .head-block# + factroom.ru.head-horizontal0 + +gameru.net.head-margin > .nomargin.block +news.ru .head-reban  +moeobrazovanie.ru.headBn! +moeobrazovanie.ru.headZyx, + etextlib.ru + radnuk.info +.head_bann# + landlord.ua.head_img_parent" +forum.ixbt.com .head_ulogin+ +game-bomb.ucoz.ru +fvhm.ru.header$ +sm.news.header #person:emptyA + +nnmclub.ro + +nnmclub.to!.header .row2 tr:not(:last-child)- +liveinternet.ru.header > .headerlinks* + dpchas.com.ua.header > .sticky-top0 + parnuxi.com.header td[align="right"] > a' + +7days.ru.header-7days__branding9 + +7days.ru).header-7days__recommendation_advertising& + tulapressa.ru.header-adv_space¡ +rabochy-put.ru + afisha.s13.ru + agrostory.com + perepostil.ru + sportmaps.ru + vikna.if.ua + drinks.ua +depo.ua +168.ru +zi.ua.header-banner! + +strikes.ru.header-bannersü$ +ua-football.com .header-bonus) + guberniya.tv.header-bottom-second, +aliexpressblog.ru.header-decor.index# + soft-click.ru.header-html-1 + rozetked.me .header-img +mmo.one .header-link  + babyblog.ru .header-links& + +mi100.info.header-main__banner+ + football.ua.header-nav .isport-link. + wowhead.com.header-nav-wowhead-premium3 + +fishki.net!.header-nav__link[href="/games/"]) +torontovka.com.header-partnership" + tabletka.by.header-reclame" + nevnov.ru.header-rek-block  + sports.uz.header-reklama> + pikabu.ru-.header-right-menu > a[href][target="_blank"]# + fc-zenit.ru.header-sponsors1 +radarmedia.net + lrepacks.net .header-top, +teleprogramma.org.header-top-banners* + liveresult.ru.header-top-bar a[id] + +votpusk.ru .header-vt-bn' +gazeta-severny.ru.header-widget +cont.ws.header2$ + +xvatit.com.header2 > .header$ +obozrevatel.com .headerBiding + city-n.ru .header__adv( +1tv.ru.header__advertising-blockG + agropolit.com + loveradio.ru +024.by +kp.ua.header__banner, +time-to-read.ru.header__banner__cont= +chelny-izvest.ru%.header__block > .header__block-title` +vse-pro-sport.com.ua +vseprosport.by +vseprosport.kz +vseprosport.ru.header__bonus% + tsargrad.tv.header__btn-small" + +tvmag.ru.header__dzen-linkD + it-weekly.ru + it-world.ru + allcio.ru.header__main-bannerC + it-weekly.ru + it-world.ru + allcio.ru.header__top-banner% + www.sibnet.ru.header__toplineG + +smotrim.ru5.header__wrapper--inner a[href^="/tariffs?redirect="]K +tengrisport.kz + tengriauto.kz + tengrinews.kz +i.ua .header_adv, + greenpost.ua +job.ru.header_banner  +999.md.header_numbersTop + +pogliad.ua .header_rec +trk7.ru .header_rek +sgad.ru .header_right  + kelmochka.ru .header_site' +tengrisport.kz.header_sub_links + azovnews.ru .header_top! +qrz.ru.header_top > .leftL +soccer365.com.ua + soccer365.ru$.header_top > :not(.header_top_logo)@ + +torg.rv.ua..headerbar > .inner > div[style="float:right"]/ +sportsdaily.ru.heading > .heading__logo" +freakenergy.ru .headreklama, + znaigorod.ru.health_wrapper > .links +tods-blog.com.ua.hedban- +sovetromantica.com.helkamaAnimeGoogle6 + +humor.fm&.hfm-right-content > .hfm-block[style] + +kyiv.media .hg-adv-item! + konkurent.ru .hidden-print' +rgho.st.hidden-xs.alert-warning+ +russian.rt.com.hide--partner--block + vokrug.tv .hide_640* + finanz.ru.highlightbox.content_box + www.film.ru .hochuvkino +uzum.tv.hokblokrights! +work.ua.holiday-banner-blï +hÿï08@RXgameme.eu#?#.home .td-pb-row:-abp-has(> .wpb_column:only-child .wpb_wrapper > .td-a-rec) +[ÿï08@RKgameme.eu#?#.home .vc_row > .vc_column:-abp-has(> .wpb_wrapper > .td-a-rec) +Zÿï08@RJcomss.ru#?#.horizontal > .rbox:-abp-has(> div a[href*="page.php?id=3023"]) +sÿï08@Rcvomske.ru#?#.hr:-abp-contains(/ЯндекÑ�.Директ ВОмÑ�ке|Другие новоÑ�ти/)S + incrypted.com>.home-new-column-bunner > [class] ~ [class*="home-new-bunner"]# + mmatoday.info.home-right-rk + +apparat.cc .homeBanner  + volnorez.com .home_Advert + kinovit.org.homeads + helpiks.org.homes + +briefly.ru.honey' + +ixbt.com.honor-mobile-menu-logo + +ixbt.com.horb& + kino-teatr.ru.horisontal_delim& + gorodovoy.ru.horizontal-banner# + +pdalife.ru.horizontalBanner" + rz.com.ua.horizontal_baner& + tonkosti.ru.hotel-form__header( +bezformata.com.hottopicadvertbox' +lifehaker.forum-top.ru .html-box- +travelsakhcom.ru + +sakh.com .html5-bp +hentai-hub.net.htvad" +echomsk.spb.ru .huge_banner, +bolshoyulov.ru + fastcarp.ru.hungry + www.film.ru.hvk + reshebnik.com .hvosting, +inspired.com.ua.hygge-layout-sidebar + +iguides.ru +.i-box-ads& +mel.fm.i-layout__branding-link/ +mel.fm!.i-layout__top-leaderboard-banner +hh.ua .i-topbanner1 + +polit.ru!.ib-col div[style="width:600px;"] + +qrcoder.ru.icoStr% + 1plus1.ua.idealMediaContainer + +infox.ru .idv3-advert2! + +infox.ru.idv3-popup-frame5 +rp-mechanics.ru + abkhasiya.ru.ignore-select + moybrauzer.ru.igrof + +fairtop.in .image-side+ + asiapoisk.com.img-banner-responsive( +odessa-life.od.ua.img-responsive + +cossa.ru.imgCorp + mamcompany.ru.img_ban) + toptracker.ru.imgblock > a[style]" + kinopult.com.imgonline ~ *B +tut.by4.impl-vscroll-container[style="max-height: 1200px;"]; + nikvesti.com'.important-news-block ul > li > noindex@ +baraholka.onliner.by$.important.b-fleamarket__right-block, +avtonovostidnya.ru + gdeichto.ru.in+ +kinonavigator.ru.in-list-banner-env +hdkinoteatr3.net.inRek# +zvezdaweekly.ru .in_othersmi + cfts.org.ua.inad + mydiv.net.inban* + incrypted.com.incrypted-top-banner + agroinfo.kz.indent" + fisher.spb.ru .index-banner5 +odysseus.more.tv.index-module__wrapper--XM_aBB +pravo.zakon.kz,.index-page-widget-pravo-google-banner-right8 +pravo.zakon.kz".index-page-widget-pravo-pravmedia* +volodymyrets.city.index-top-banner* +realty.vesti.ru.inedx-right-banner + fantasiya.net .infTable$ + +egida.by.infTable.goods-listý +pÿï08@R`cyberleninka.ru#?#.infoblock > .full:-abp-has(> div[style*="height:"] > div > div[id^="adfox_"]) +lÿï08@R\howdyho.net,howdyho.pro#?#.inner > .default:-abp-has(> header > h1:-abp-contains(PEKЛAМA)) +`ÿï08@RPfisher.spb.ru#?#.ipsList_reset > .ipsWidget:-abp-has(> div > [id^="yandex_rtb"]) +kÿï08@R[fisher.spb.ru#?#.ipsList_reset > .ipsWidget:-abp-has(> div > p > a > img[src*="/banners/"]) +Bÿï08@R2dev.ua,devby.io#?#.island:-abp-has(> .adsbygoogle) +_ÿï08@ROvsezdorovo.com#?#.item-content:-abp-has(> .title > a[href*="//zen.yandex.ru/"]) + itvmg.com.info$ + image2you.ru.info > .t_tips2 + +babla.ru .info-wrapper  +soft.oszone.net .info_one6 +pnp.ru(.infoblock > div[style="height: 900px;"]" +gorodkiev.com.ua +.infolinks +aces.gg.infopanel_left' + uaspectr.com.information__image4 + igromania.ru + kanobu.ru.informer-container! + gazeta.ua.informer.double + sinoptik.ua .informerTop/ + meteoprog.ua.informer[id^="mp_banner_"] + lostpix.com .infotext + europaplus.ru.infox + education.ua.inl-blk( +catalog.onliner.by.inline-banner +bb.lv .inline-desk- + snn-mn.ru.inner > .widget_media_image& + totori.ru.inner-wrap > #header, +24tv.ua.inner-wrap > .nav-additional + gidonline.cx .inner__ads + onfilmz.net .inner_box38 + comments.ua%.inner_right > div[style*="display:"]! + +wtftime.ru.ins_art_native" +solidarnost.org .inside-smi +stih.su +.insta_rek. +ktonanovenkogo.ru.instagram-block-wrap0 +besplatnyeprogrammy.ru.install-pack-info- +mobile-review.com.integration--advert$ + loveradio.ru.interactive__vk% +turkish-tv-series.ru .intereso+ +express-novosti.ru.interesting-news! + etextlib.ru.interestingly( +business-gazeta.ru.interests-box; +businessman.ru + +neva.today +syl.ru .intext-block% + highload.tech +itc.ua.introE +api.turk-sinema.ru +api.ekranka.tv + api.yadoma.tv.invideo' +besplatnyeprogrammy.ru .ip-motto] +besplatnyeprogrammy.ru?.ip-motto + table > tbody > tr:last-child > td:not(:last-child)M +besplatnyeprogrammy.ru/.ip-motto + table > tbody > tr:not(:last-child)7 +besplatnyeprogrammy.ru.ip-motto + table > thead1 +2ip.ua#.ipblockmap > div > .ip ~ .ip + div + +slivup.biz.ipsA1d + zismo.biz .ipsAd1230 + zismo.biz.ipsAd123 + div[align="center"]/ + kyron-clan.ru.ipsLayout_right > a[href]$ +meat-expert.ru.ipsPad_bottom( + baku365.com.ipsSpacer_both:emptyE + fisher.spb.ru0.ipsWidget > div > p > a > img[src*="/banners/"]  +kovi.ru.is-style-warning + +fishki.net .is_adv_post + +ura.news .is_momenty# +story.neskromnie.ru.iseeyou + landlord.ua.isfixed< + +devby.io +dev.ua".island[style^="padding: 2rem 0;"]( + business.ua.islands--recommended + carambatv.ru .item-adv9 +russkoekino.net".item-full > .list-items ~ .subcolý +Oÿï08@R?ura.news#?#.item-text > div:-abp-has(> div > .inpage_block-adv) +Hÿï08@R8obmenvsem.org#?#.item:-abp-has(> div > [src*="pek.png"]) +4ÿï08@R$appmo.org#?#.item:-abp-has(> script) +Dÿï08@R4appmo.org#?#.item:-abp-has([src*="/images/pek.png"]) +rÿï08@Rbbookmo.org,eromo.org,vidmo.org,vpopke.com#?#.items:-abp-has(> .item-card [src*="/images/pek.png"]) +`ÿï08@RPbookmo.org,eromo.org,vidmo.org,vpopke.com#?#.items:-abp-has(> .item-card script) +Vÿï08@RFdrive2.com,drive2.ru#?#.js-gallery ~ .x-box:-abp-has(div[id] + script) +Iÿï08@R9dynamo.kiev.ua#?#.js-relap__item:-abp-has([data-ad-link])# +topgearrussia.ru .item.promoA + ketchuptv.ru-.itemFullText > center + div[style*="center"]= +mypresentation.ru$.items > .p-item ~ div[class][style]* + sexsmotri.com.items-list > noindexB + news.qip.ru/.items_block > article.item[style*="important"]@ + news.qip.ru-.items_block.news > .low_new:not(.aside_left)% + itzine.ru.itzin-podcast-promo +zr.ru.ixCWPA= +varlamovru.livejournal.com.j-e-afterpost-randomsocial/ +varlamovru.livejournal.com .j-mainbanner/ +yurasumy.livejournal.com.j-promo-widget +livejournal.com.j-w-adv' +livejournal.com.j-w-adv-contentn +odin-moy-den.livejournal.com +sergeydolya.livejournal.com +yurasumy.livejournal.com.j-w-customtext! + obrazbase.ru .jPanelModule+ +2000.ua.jcarousel-wrapper:not([id]) + +tehnot.com +.jeg_deals + vashgorod.ru.job42# + rz.com.ua.journal_top_baner0 +dokumentalkino.net + lektsia.info.jptop/ +news.turizm.ru.jq_turoperator_adv_items& +mo4movin.dyndns.org .jqmOverlay% +mo4movin.dyndns.org +.jqmWindowœ +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru.js--direct-ad-host + +drive.ru.js-adv-widget + megalyrics.ru +.js-banner@ + blizko.ru/.js-barmen-loaded:not([data-barmen="Showcase"]) +nur.kz.js-branding-top! + tsargrad.tv.js-clickcount! +nur.kz.js-commercial-menu$ + promodj.com.js-core_branding( + masterstl.ru.js-info-block-fixed* + shakai.ru.js-layout__block--banner1 + auto.ria.com.js-newAutoSearchItemInformer+ + gagadget.com.js-r-menu-item_friendsP +womanadvice.ru:.js-relap__item-inner > a[href*="https://relap.io/r?"] ~ *H + uaspectr.com4.js-sidebar > .pst-block > .textwidget:first-of-typeA + uaspectr.com-.js-sidebar > .pst-block > a[target="_blank"]$ + +rzn.info.js-site-top__banner  + gastronom.ru .js_aside_sp + +tourpom.ru +.js_bannerC +stroitel-list.ru +obogrevguru.ru + termogurus.ru.js_load> + ctnews.ru-.js_out-block ~ .modal-backdrop,.js_out-block + vkfaces.com.jsx= + ifreeapps.ru).jvmod-pad.png > a[target="_blank"] > img3 + auto43.ru + +dom43.ru + +job43.ru +.kaka_zone$ + newsyou.info.kama-inline-ads$ + cybersport.ru.kaspersky-chat + +c-sgo.ru.kaz + tvernews.ru.kc6a + kg-portal.ru .kg_promo> +kubik-v-kube.com&.kino-text > div[style^="clear:both;"] + +myshows.me +.kinopoisk& +old.myshows.me.kinopoiskBanner + +kivvi.kz .kivvi_social + kloomba.com .kl-ad-itemŸ +·ÿï08@R¦igromania.ru#?#.knb-list > [class^="ShelfCard_card_"]:-abp-has(> [class^="ShelfCard_cardFooter_"] > [class^="CardTags_tags_"] > [href="/tags/partnyorskij-material/"]) +Jÿï08@R:tsn.ua#?#.l-col.l-col--xs.l-gap:-abp-has(> .c-aside__port) +Rÿï08@RBallboxing.ru#?#.last-news:-abp-has(> .block_title ~ [id^="unit_"]) +Kÿï08@R;footballhd.ru#?#.lastnewscat:-abp-has(> [id*="ScriptRoot"]) +„ÿï08@Rtmobzon.ru#?#.left > div.moduletable:-abp-has(> h3 span:-abp-contains(/Блок Google|Рекламный блок/)) +Tÿï08@RDzhzh.com.ua,zhzh.info#?#.left-column center:-abp-has(> .adsbygoogle)> + igromania.ru + kanobu.ru.knb-grid-layout > .no-radius. + igromania.ru + kanobu.ru .knb-informer + +topfile.tj.knopka + osvita.ua.kom% +tabloid.pravda.com.ua.koz-box# + aqua-therm.ru.kp-top-banner( +tabloid.pravda.com.ua .kr-loo-box2 +old.kurs.com.ru.kursInformer #head-content) +old.kurs.com.ru.kursInformer #ref& +xn--80ady2a0c.xn--p1ai.l-a-flyP +hwp.ruB.l-article-wrapper > center > a[target="_blank"] > img[border="0"] +66.ru.l-branding-top+ + +www.tut.by.l-main > .b-top + .b-top# +kazanutlary.ru .l-mainAdArea* + cy-pr.com.l-navigation-i > noindex* +obogrevguru.ru + termogurus.ru.l2 + 38mama.ru.lad +2000.ua.last_articles> +eurointegration.com.ua .layout_news > .separator::after) + ko.com.ua.layout_right_column > pC +izvestia.kiev.ua+.lazy-load-box[style^="font-size: 0.75em;"] + savepic.net .lb-sideleft + kompas74.ru.lban+ + prowebber.ru.lcol.mainside > center  + +3ppc.net.leep_promo_link" + kiev2000.com.left + .right# +world-knigi.ru .left noindex" +footballreview.ru .left-advj + agrostory.com + club.foto.ru + wm-school.ru + +l2anons.ws + +l2oops.com + acc.cv.ua .left-banner +liking-soft.ru .left-bnr9 +liking-soft.ru#.left-col > .left-bnr ~ .left-block- +kramatorsk.info.left-col.hidden-phone$ + tonkosti.ru.left-menu-pcodesA + musify.club..left-sidebar > a[href][target="_blank"] > img/ + kinofrukt.me.left-wrap > .left-block-bg& +matematika-club.ru .leftAdClass  + tehnobeton.ru .leftBanner +risk.ru.leftBar  + lelang.su.leftSideAdLink7 +allmoldova.com!.left_banner > a[target="_blank"] + +dofiga.net .left_banners& + +kurufin.ru.left_bl > .floatingJ + softru.ru9.left_block_bg_container + td td[width="340"]:first-child! +samsebeyurist.by .left_col" + omskinform.ru .left_col_top& + omskinform.ru.left_col_top ~ *= +forexsystemsru.com#.left_ff a[href*="/fortrader.org/"]2 + runews24.ru.left_information_block > aside" + +ua.today.left_mob > .title# + mult-fan.tv.left_panel_shop. + poezdato.net + poizdato.net +.left_side$ +daily-inform.ru .left_sidebar + kalugacity.ru.leftbS + guland.com.ua>.leftbar a[href][target="_blank"] > img[src*="/image/banner/"] + thevista.ru .leftblinks' + docfilms.info.leftcol > noindex7 +soft.sibnet.ru!.leftcolumns-programm_of_the_week* +smotriserial.me.leftside > noindex¬ +yÿï08@Riyap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage > a[href*="utm_campai"]) +~ÿï08@Rnyap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage > a[href*="utm_campai"]) + tr +ƒÿï08@Rsyap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage > a[href*="utm_campai"]) + tr + tr +mÿï08@R]yap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage:first-child) +rÿï08@Rbyap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage:first-child) + tr +wÿï08@Rgyap.ru,yaplakal.com#?#.lenta > tbody > tr:-abp-has(> .newshead > div > .mainpage:first-child) + tr + tr +Vÿï08@RFtut.by#?#.m-hop > [class]:-abp-has(span:-abp-contains(Реклама))B +the-cinema.online).leftside.lcolomn > .block:nth-of-type(1)% + biletyplus.ru.lending_adv_top& + asn.in.ua.lenta > .clear_block+ + asn.in.ua.lenta > .clear_block + hr3 + asn.in.ua".lentanewspost > .clear_block + hr: +cwer.me +cwer.ru +cwer.su +cwer.ws +.like_hide9 + homeporno.org$.line > a[href][target="_blank"] > * + mmotop.ru.link-1 + vinbazar.com .link_image + vinbazar.com .link_img' +online-films.ckoro.ru +.link_testA +avtomaniya.com+.link_textblock > div[style="height:250px"] + ucrazy.ru.links + newsua.ru .lipuchka$ +rabotasakhcom.ru .list-banner% + aldebaran.ru.list_other_sites# + aldebaran.ru.list_other_tabV + innal.top + zannn.top8.lista > center a[rel="nofollow"][href][target="_blank"]' + litportal.ru.listen_online > h27 +trackitonline.ru.listform[style^="margin-left"], +russian.rt.com.listing_partners-news# + +bookz.ru.litres_widget_body# + spbdnevnik.ru.live--article= +agro-business.com.ua +agronomy.com.ua.live__wallper$ +game-tournaments.com.livebet& +livejournal.com.lj-recommended + oxy.cloud .load_banner + +vse42.ru.loader0 + glavred.info + glavred.net .loader:empty +link.ac.loading + ucrazy.ru.loginza +3mv.ru.logo# + platon.kz.logo + #ja-search$ +torrent-pirat.com .logo + div= + zabeba.li,.logo-container > div[class="widget-header"] + +gamemag.ru.logo-df0 + clubfile.net.logo-w + a[target="blank_"]  + +gamemag.ru.logo-zen-feed  + chevy-niva.ru .logo.right! + 21region.org .logo_ad_wrap + +ixbt.com +.logohonor +sapr.ru .lolcount +1pnz.ru .long-banner6 + gameguru.ru#.lootguru-link[data-toggle="modal"]" + +galya.ru.lr_block > iframe! + seasonvar.ru .lside-player + +mytor.info.lt_blI +izmailovtv.xyz + southpark.su + lyucifer.tv +m-z.tv +.luckTitle  + +imhonet.ru.m-advertising' +khl.ru.m-bnr.b-float_panel_item + search.tut.by .m-market  + mirkvartir.ru .m-mimikria + +rifey.ru +.m-padding- +tut.by.m-topic-tam,.m-topic-tam ~ div' + +imhonet.ru.m-videoplayer-advert + +fotokto.ru.m2 +cq.ru.m[class*="--"]º +Lÿï08@R .container:-abp-has(> div:empty ~ script) +^ÿï08@RNvolyninfa.com.ua#?#.main-box:-abp-has(> .main-box-inside > div[id^="MIXADV_"]) +“ÿï08@R‚racurs.ua#?#.main-content > .inner-page-container ~ .inner-page-container > .block_section > .container_padding:-abp-has(> .block_section_header > div > div > .section_title:-abp-contains(/новини партнерів|новоÑ�ти партнеров/i)) +_ÿï08@ROmobile-review.com#?#.main-feed > [class*="-block"]:-abp-has(> div .integration) +mÿï08@R]vedomosti-ua.com#?#.main-sidebar > .row > div:-abp-has(.active:-abp-contains(Реклама)) +Qÿï08@RAvoennoedelo.com#?#.mainVideoWrapper:-abp-has(> script:last-child) +?ÿï08@R/pik.net.ua#?#.main__business:-abp-has(> script) + ppl.nnov.ru +.m_lbanner# + promodj.com.magig_conteiner/ + tonkosti.ru.magnifique-header__partners7 + raenza.ru&.main > .container > .row .placeholderB + +odnako.org0.main > .new_header_90.boxNoPadding3:first-child! + carsweek.ru.main > :empty2 + cameleo.xyz.main > a[href*="bit.ly"] > img? +101kofemashina.ru&.main > div > a[href][target="_blank"]H + driveroff.net + samlab.ws&.main > div:first-child[style*="99%;"]/ + mp3no.com + +mp3co.co.main > div[style]/ + gorod.cn.ua + armtv.org.main > noindex3 + +pik.net.ua!.main > section:not([class]) ~ br= + driveroff.net + samlab.ws.main > table[height="128"], +gorod24.online + 73online.ru.main-b  + rapsinews.ru .main-banner" +1in.am.main-banner-wrapper# +gorod24.online .main-banners6 + kinobanda.net!.main-bg a[target="_blank"] > img4 + +rideo.tv$.main-body > .box-admin ~ .box-admin +odds.ru.main-branding# +nn.by.main-branding-bg-link@ + softpir.com-.main-center-block > div[style^="background"]* + salonav.com.main-col > .mom_box_scZ + uaspectr.comF.main-content > div[class*=" vc_row-fluid vc_custom_"]:nth-child(-n+2)$ + giantessa.ru.main-footer-btn( + hdkinomir.cc.main-full > noindex  + monstrbit.ru .main-header/ +info.sibnet.ru.main-header-center > div/ +info.sibnet.ru.main-header-middle > div3 + +namba.kz#.main-links > [style*="background"]S +ru-minecraft.ru<.main-news2 > div[style^="position: fixed;"][style*="left:"]E +industry-hunter.com*.main-page .card-body > a[target="_blank"]K +industry-hunter.com0.main-page > .container > .row > div + div ~ divM +industry-hunter.com2.main-page > .container > div[class^="text-black"]/ + vashdosug.ru.main-page-banner-container1 + glavred.info + glavred.net.main-partners7 + protdt.ru&.main-post-content > p[style] > strongP + loveread.info;.main-right > div:not([class])[style^="margin-bottom:20px"]< + football.ua).main-right > div[style^="width: 300px;"]! +ska.ru.main-section-adfoxF + salonav.com3.main-sidebar > .mom_custom_text ~ .mom_custom_text) + autostat.ru.mainBannerBlockCenter1 +polosedan-club.com.mainContent > #Notices  + vuzopedia.ru .mainReclame +au.ru.main__appendix* +pogoda.meta.ua.main__banner-bottom+ +torrent-bort.ru.main__left > .block& + live24.ru.main__rightside--rbt+ + avtoradio.ua.main__row > .tns-outer7 + avtoradio.ua#.main__row > .tns-outer + .controls +nrj.ua .main__slider$ +dv-gazeta.info.main_ad728x901 + csgolife.ru.main_block > center > .slider2 + meteonova.ru.main_container[style*="90px"], + vbryanske.com.main_content > noindexT + uvelir.infoA.main_frame > div[style="float:left; width:245px; height:130px;"]E + +fbc.biz.ua3.main_header > .full_width a[target="_blank"] > imgÕ +Wÿï08@RGmyfreeproject.com#?#.mainb > .main_block:-abp-has(> #slides > #reklama) +Oÿï08@R?csgolife.ru#?#.mainb > .main_block:-abp-has(> center > .slider) +‹ÿï08@R{www.livejournal.com#?#.mainpage__wrap-content div[class*="card"]:-abp-has(> div > div[class*="empty"] [id*="directive.id"]) +Wÿï08@RGforum.materinstvo.ru#?#.maintitlecollapse:-abp-contains(Реклама) +Wÿï08@RG7days.ru#?#.material-7days__paragraf-info:-abp-has(> #RutubePlayerNews), + +myjob.by +job.ru.main_logo_carusel. + ural56.ru.main_news_right_block_advert +cont.ws .main_top_ads# + kinoafisha.ua.main_top_line= +dni.ru/.main_wrapper > div[class="column column_left"]# +dungeonmaster.ru .mainbannerU +sport-interfax.ru + interfax.ru-.mainblock ~ .mainblock .infinitblock::before+ +the-cinema.online.maincont > centerF +torrents-soft.net-.maincont > div:nth-last-of-type(2) > a > img2 +bookskeeper.ru.maincont > div[class="clr"]8 +bazatabletok.ru!.maincontentcell td[valign="top"]$ +penzavzglyad.ru .mainmenu-ads + stiletto.blog.mainos. + +oboznik.ru.mainrams > div[class^="cd"]u + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf*.mains a[href^="/"][href*="xt/"]:not(.btn)( + sex-empire.tv.maintable td#right + lfootball.ws.makeBet + kinofann.ru.market  + russkiypro.ru .market-div  + belretail.by .market-link +cq.ru.market-widget% + wylsa.com.marketWidgetWrapper" +supersadovnik.ru +.marketgid& + sovets24.ru + +sovets.net.mask- +match-center.playmaker24.ru +.match-bet. +match-center.playmaker24.ru .match-coef# + pimpletv.ru.match-info ~ h3: + soccer.ru).match-menu > .ul-wrapp > .main > .noajax< + soccer.ru+.match-tab-content > #match-header + .block. +kulturomania.ru.material-bottom-banner  + babyblog.ru .mb7.clearfix' +mobiltelefon.ru.mbanner_in_post + newdaynews.ru.mbl-adv% + vesti-ua.net.mblock > noindex + rainbowsky.ru.mblok +meta.ua.mbnr + hyperione.com.mbywx + +jut-su.net.mcompl2 +galinfo.com.ua.mcontent.read > span[class]) +martrending.ru.md-block-native_ad! + translate.ru .mddlAdvBlock +bookskeeper.ru.mdl + ximepa.ru.mdwrŸ +xn--c1acj.xn--p1acf +xn--c1acj.xn--p1ai +gdzotputina.club +megaresheba.com +gdz-putina.fun +megaresheba.ru + gdzputina.net + reshebnik.com + zoobrilka.net + sumypost.com + gdzguru.com + +resheba.me + +spishi.fun + +stavcur.ru + gdz.ninja +gdz.fm +gdz.ru.media  + +myslo.ru.media-ads-block4 + shostka.info .media:not([style="padding:0;"])* + auto43.ru.media_aside_our-partners! + gazeta.spb.ru .mediacartel9 + +zwezda.net + kurgan.ru + newsua.ru .mediametrics + gubdaily.ru .mediametrix# + subscribe.ru.mediawayss_adv + tdaily.ru +.megabitus + +mytor.info .megasale + brd24.com.megatopB + motorshop.kz..menu + .block > div > a > img[src^="images/"]# + list-org.com.menu > .sticky+ + 2krota.ru.menu > a:not([href^="/"])6 +1yar.tv'.menu > li > a[href^="https://vk.com/"]: +appleinsider.ru#.menu-item > a[href*="utm_campaig"]© +Hÿï08@R8northern-newspaper.ru#?#.mg-posts-sec:-abp-has(> script) +Uÿï08@REstalker-mods.clan.su,stalker-mods.su#?#.module-full:-abp-has(#banner) +hÿï08@RXstalker-mods.clan.su,stalker-mods.su#?#.module-full:-abp-has(span:-abp-contains(advert)) +[ÿï08@RKprocherk.info#?#.module-title > .title:-abp-contains(/ПÐ�РТÐ�ЕРІВ/i) +Fÿï08@R6world-knigi.ru#?#.module:-abp-contains(Реклама) + kursiv.media .menu-promo( + freelansim.ru.menu__item.special +2ip.ua .menu_banner + +diary.ru .menu_block\ + ru-admin.netH.menu_block.navi > a:not([href^="/"]):not([href^="http://ru-admin.net"])+ +freakenergy.ru.menublock:last-child& +novostroykin.ru.mesre.amessage/ + biqle.org + +biqle.ru.message-container& + fisher.spb.ru.message-view-ads6 + old-games.ru".message[data-author="Ads Master"]K + +bmwclub.ru9.message[data-author="KADR"] > .primaryContent .signature + obmenvsem.org.meti, + minfin.com.ua.mfm-aside-block[style]6 + torrent10.ru + torrent50.ru + torrent3.ru.mg + winstation.ru +.mg_button$ +allmoldova.com.middle_banner + gazeta.uz .middleboard + +artfile.ru .midtizer& + oblgazeta.ru.miko-baner-centerB + medinfo.zp.ua-.min a[target="_blank"][rel="nofollow"] > img + cheezu.ru .min-h-90" + select.by.min-height-200px" + trendymen.ru.mirtesen-feed + primanki.com.mixma! +russian-seriali.ru.mixmob + afisha.tut.by.mm-main + yakutia.info +.mm_widgetH +dreamprogs.net2.mmenu a[href^="http"]:not([href^="http://dream"])( + +2ch.life +2ch.hk +2ch.su.mmm + minsknews.by .mn-a-rec. +gamer-info.com.mn-news-lst-ad-bl > div +openssource.info.mob! +gdzputina.info .mob-banner3 + www.zakon.kz.mob_hide[style*="min-height:"]' +servers-rust.ru.mob_quad_banner + +ixbt.com.mobadv + +ixbt.com.mobb) + zaxid.net.mobile-branding-wrapper  + bankua.com.ua .mod-custom' + love-sims.ru.mod-custom3[style]# + newdaynews.ru.mod-floatbann# + +ruslife.eu.mod_bannerslider; +w10.jeanzzz.ru%.mod_ext_dropdown_box_module_position' +agronomy.com.ua.mod_ijoomlazone# + kadik.com.ua.modal-backdrop- + sovets24.ru + +sovets.net .modal-baner/ + +ifias.ru.modal-open div[class^="modal"]% +ivanovonews.ru.modal__sidebarG +znaemtolk.forum2x2.ru*.module > .box-content[style] > div[class]  + +ruslife.eu.module-banner- + e-book.in.ua.module-content > noindexC +stalker-mods.clan.su +stalker-mods.su.module-full #banner: + ukrmir.info'.module-social .module-social.hidden-xs2 + ukrmir.info.module-top > .module-inner ~ *, + mayaksbor.ru.module__block_rectangle +2ip.ua.module_adsense9 + osobye.ru(.modulebody > table[style="width:200px"]3 +zamena-podshipnikov.ru.moduletabletimer-buf + autogrodno.by +.mogo-link� +Yÿï08@RIdorognoe.ru#?#.more-news:-abp-contains(Ð�овоÑ�ти партнеров) +Rÿï08@RBanilibria.top,anilibria.wtf#?#.mt-8:-abp-has(> .commercial-banner) +Rÿï08@RBinfosmi.net#?#.mvp-widget-home-title:-abp-contains(Реклама) +Iÿï08@R9argumentiru.com#?#.namerub:-abp-contains(/гнездо/i) +Zÿï08@RJargumentiru.com#?#.namerub:-abp-contains(/новоÑ�ти|партнер/i) +\ÿï08@RLkafanews.com#?#.nb2-list:-abp-has(> .nb2-head:-abp-contains(Визитка)) +[ÿï08@RKnikcenter.org#?#.nchead:-abp-has(> .ncheading:-abp-contains(/партн/i)) +ˆÿï08@Rxkommersant.ru#?#.network_share > .network_share__item:-abp-has(> .network_share__name > [data-href^="https://dzen.ru/"])& +multiki-online.net .more-teaser# + macosworld.ru.morefoot_back +serveradmin.ru.mot' + +hd-720.biz.movie-full > noindex + emu-land.net .mreklama[ +ru.motorsport.comB.ms-article-content > div[style^="overflow: hidden; padding-top:"]4 +ru.motorsport.com.ms-side-items--with-banner! + multitest.ua .mt_adv_block# + +bigmir.net.mtbottom_priceua + +7days.ru.mtop + omskpress.ru .mts__block + +feofan.net.mtsnb) +videochart.net.mv-advert-positionc +playvideolink.com +videochart.net + moevideo.net + +thesame.tv.mv-advert-position__paused +beremennost.net +menportal.info + imolodost.com + opitanii.net + nmedic.info .mv-content; +teleport2001.ru + glavred.info + glavred.net.my-3 +ip.osnova.news.my-4 + mymsk.online.my-55 + inetsovety.ru .my-block[style="height:730px;"]" + bst.bratsk.ru .my-sheet-Adv + xboxrussia.ru.mylink/ + +drive.ru.mywidget-item[class*="teaser"] +ykt.ru .n-ad-silver# + +lk.rt.ru +ykt.ru .n-bannerH + stranamam.ru4.n-main-center-rounded-block[style="padding:20px 0"]g + stranamam.ruS.n-main-center-rounded-block[style="padding:20px 0"] ~ .n-main-center-rounded-block- + stranamam.ru.n-main-left-banner-delta$ +ykt.ru.n-most-banner-wrapper$ +tehno-rating.ru .nadav-market% +naked-science.ru .naked-banner + +namba.kg +.nambafood + novate.ru .native > h2" +floristics.info .native-ads& + app-time.ru.native-brand > div& + chistosex.org.nav > .menu-part9 + +drive.ru).nav-menu > li > a[href][target="_blank"]g + webmasters.ruR.nav_we > a:not([href^="http://webmasters.ru/"]):not([href^="/"]):not([href^="."])& +forum.soft4dle.com .navbar > br* +forum.soft4dle.com.navbar > center' + nalogikz.kz.navbar-fixed-bottom1 +newkaliningrad.ru.navbar-nav > .important3 + fastpic.org .navbar-nav > a[target="_blank"]! +cq.ru.navbar-steam-button) +forum.fonarevka.ru.navbar_banners9 + +srtclub.ru'.navbar_notice a[href][target="_blank"]) +mobile-review.com.navmenu__advert +nur.kz.nearest-matches  + +eapteka.ru.neon-skeleton) + reshator.com + +gdzplus.me.nerban0 + superhumor.ru + +voffka.com .neteye-posts + +ingrus.net +.nevidimka +znaj.ua .new-banners + +grimuar.ru +.new-block: +govoritmoskva.ru".newContent > .all > :not(.button)) +jewishnews.com.ua.newcatside-left; + +liveday.ru).news > center > a[target="_blank"] > imgÄ +iÿï08@RYsport.ua#?#.news-event__text > div[class]:-abp-has(table[cellpadding] a[target="_blank"]) +Oÿï08@R?go64.ru#?#.news-grid > .news-grid__col:-abp-has([id^="banner"]) +\ÿï08@RLgamemag.ru#?#.news-item-wrap > .news-item:-abp-has(> span:-abp-contains(Ad)) +Iÿï08@R9onliner.by#?#.news-promo:-abp-has(> .news-promo__details) +_ÿï08@ROonliner.by#?#.news-promo[style^="background-color:"]:-abp-has([href*="banner"]) +qÿï08@Raonliner.by#?#.news-promo[style^="background-color:"]:-abp-has([href]:not([href*=".onliner.by/"])) +tÿï08@Rdonliner.by#?#.news-promo[style^="background-color:"]:-abp-has([href^="https://catalog.onliner.by/"]) +Sÿï08@RCfootball24.ua#?#.news-text > .insert:-abp-has(> a[target="_blank"]) +Zÿï08@RJkasparov.ru#?#.newsItem > .otherBlock:-abp-has(> .textContainer > noindex) +?ÿï08@R/kasparov.ru#?#.newsItem:-abp-has(> div > small) +:ÿï08@R*toneto.net#?#.newsText > p:-abp-has(> ins) +yÿï08@Rishikimori.me,shikimori.one,shikimori.org#?#.news_wall > article:-abp-has(> a[href] > .status-line .promo)@ + narodclub.net+.news > div[onmouseout][onmouseover][style]' + gorod.cn.ua.news > li > noindex! + +zhmak.info.news > noindex +gtavicecity.ru .news-ads/ + fisher.spb.ru + +onliner.by .news-banner' + newsomsk.ru.news-banners-source& + glavpost.com.news-block-magick3 + primpogoda.ru.news-container > hr ~ hr ~ hr( + chasdiy.org.news-content-wrapper' +penzavzglyad.ru.news-content__bC +belaruspartisan.by).news-detail > .animate.content ~ div[id]U +ivanovonews.ru?.news-detail__panel > .news-detail__panel-col:first-child > div4 +noi.md&.news-feed-item[style="height: 400px"]+ +om1.ru.news-grid > div[id^="first"]/ +om1.ru!.news-grid > div[id^="rastyagka"], + +onliner.by.news-incut_position_right, + zaxid.net.news-list-col > .news-listK + +onliner.by9.news-media__preview > a:not([href*="onliner.by/"]) > imgQ +armyinform.com.ua8.news-section_items > li.link > a[target="_blank"] > imgW + +onliner.byE.news-text > * > a[href^="https://catalog.onliner.by/"][href*="utm_"]Q + +onliner.by?.news-text > .news-media a[href^="https://catalog.onliner.by/"]1 + +onliner.by.news-tidings__item.js-closable + +onliner.by .news-widget" +kirov-portal.ru .newsBanner/ +obozrevatel.com.newsFull_textEmptyBlock& +penzainform.ru.newsList > li.b# +vesti-yamal.ru .newsPartners. +radioromantika.ru.news__item_promotion% + tulapressa.ru.news_alert-text1 +eurointegration.com.ua.news_divide-banner! +ladyspecial.ru .news_list1 +i.ua.news_premium_item? + gta-gaming.ru*.news_t_left[style^="background:#ff0000;"]Q +ura-inform.com;.news_view > a[href][rel="nofollow"][target="_blank"] > img' + proporno.org.newsbody > noindex, +asiaplustj.info.newsbox-outer-banner" +apostrophe.com.ua .newscomp8 + +unian.info + unian.net + +unian.ua .newsfeed__ad< + +unian.info + unian.net + +unian.ua.newsfeed__banner- + forseven.ru.newss2 a[target="_blank"] + novostroy.su +.newton-ad" + babyblog.ru.nivea-pr-block +nn.by +.nn-banner2 +yap.ru$.no-compress > a[href*="yap.ru/go/"]H + yaplakal.com +yap.ru*.no-compress > a[href*="yaplakal.com/go/"]# +online-south-park.ru.no-pop$ + www.sport.ru.no-print ~ * hr* + +ura.news.no-print[style*="height"] + +cadelta.ru.no_amp8 + 27sysday.ru + webdiana.ru + +ojimail.ru.no_ampr + autogener.ru.no_gav + ekaraganda.kz.no_newsÄ +oÿï08@R_24smi.org#?#.out__inner > div:-abp-has(> div > .title:-abp-contains(Читайте также)), + appstudio.org.nobo + .box-categories + forumodua.com.nobord +russian-bazaar.com.nobr7 +t.ks.ua(.node-article > .row ~ .row.only-desktop + hideip.me.node-promoted& +moya-planeta.ru.nofs_container# + fatalgame.com.noindex-block +forum.athlete.ru.nopad< + +c-s.net.ua*.nopad > center > a[href][target="_blank"]7 + 1000.menu&.noprint > div[style*="height:300px;"]" + footballhd.ru .nopromo_view + +kerch.fm.norkos + +cossa.ru +.noteFrame$ + siddgames.ru.notice--primary- + +esp8266.ru.notice[data-notice-id="1"]! + +sandero.ru.notices_img_ad  +audiopoisk.narod.ru.noun$ + +wi-fi.ru.novelty-aside__i_ad + mmatoday.info.npt +novostroykin.ru.ntgb_" +999.md.numbers-placeholder + +focus.ua.o-adds + infekc.ru.obl +nikopolnews.net.oblivki + pimpletv.ru.odds1 +cardiologiya.com +omastopatii.ru.offbloB +notorgames.net + 1progs.me + 1progs.ru + +gafki.ru.offer  +dermatitanet.ru .offer-ac! + gagadget.com .offers-index0 + ecology-of.ru + agro-biz.ru .offersblock* +gamestatus.info.offline-act-banner˜ +lostfilm.download +lostfilmtv2.site +lostfilmtv3.site +lostfilmtv5.site +lostfilmtv.site +lostfilm.space +lostfilm.today +lostfilmtv.uno + lostfilm.life + lostfilm.one + lostfilm.pro + lostfilm.uno + lostfilm.win + lostfilm.tv + lostfilm.tw .oi_papa_oi + +myshows.me.okko + disput.az .okus_topL + uniondht.org8.oldest_neews > table > tbody > tr > td:not(:last-child) +avtonovostidnya.ru.on- + moniheal.com.one-news__content-bannerC + get-tune.cc + mp3cc.biz + mp3iq.com.onesongblock-download? + get-tune.cc + +mp3iq.comz + mp3cc.biz.onesongblock-rbt + +myshows.me .online-link  + +myshows.me.online-poster# +kinoafisha.info .onlineBlock + audit-it.ru.opadvW& +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +syzran-small.ru.open-table > .pr > .dcb + aptekamos.ru .orgs-adv-c„ +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.in.otPlaceholder + +fixygen.ua .other-news4 +govoritmoskva.ru.otherNews > .newsList ~ div + osocionike.ru.others +karavan.tver.ru.otstup +stroy-telo.com.ououou’ + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + uanews.org.ua + cvnews.cv.ua + rvnews.rv.ua*.our-news ~ a[href][target="_blank"] > img| + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + uanews.org.ua + cvnews.cv.ua + rvnews.rv.ua.our-news ~ img[src]! +electric-house.ru.out_new1 + uniongang.net + uniongang.org .outer > brX + uniongang.net + uniongang.org2.outer noindex > center > a[href][target="_blank"]$ +zvezdaweekly.ru .outer-banner, + avtoradio.ru + energyfm.ru .outreach< +zazbruchem.te.ua$.ova-place-block__position--rendered + tv-assia.org.ovdiv + domkad.ru .over-rsiK +russia-tv.online3.overflow-hidden.border[class*="border-brand-base"]) + +shuba.life.overflow-hidden.c-card +½ÿï08@R¬selezen.club,selezen.net,selezen.org#?#.page-content > .row > div[class^="col"] + div[class^="col"] > div:-abp-has(> .card h6:-abp-contains(/Реклама|ДрузьÑ�/i)) +Dÿï08@R4businessman.ru#?#.page__section:-abp-has(> .partner) +Gÿï08@R7portall.zp.ua#?#.panel-default:-abp-has(> .widget_rekl) +oÿï08@R_chelny-izvest.ru#?#.panel-group > .panel_primary:-abp-has(> .panel__body > #MediaMetricsInject) +kÿï08@R[repack.me#?#.panel-primary:-abp-has(> .panel-body[style="padding: 20px;"] a[href*="aeza."]) +lÿï08@R\repack.me#?#.panel-primary:-abp-has(> .panel-body[style="padding: 20px;"] a[href*="neovpn"]) +Kÿï08@R;tuzlist.ru#?#.panel:-abp-has(> .panel-body > #marketWidget) +Qÿï08@RAtuzlist.ru#?#.panel:-abp-has(> .panel-body > [id^="yandex_rtb_"]) +›ÿï08@RŠelectric-house.ru#?#.panel:-abp-has(> .panel-heading:-abp-contains(/ИнтереÑ�ные новоÑ�ти|Полезное|Реклама/))ƒ + studbooks.net + studwood.net + studref.com + +bstudy.net + +studme.org + +vuzlit.com + ozlib.com + xstud.org .overheader! + krastown.com .overlay_wrap + truba.com +.overvideo" + magtimes.info .owl-carousel + sims3pack.ru +.ozon_link[ + safezone.ccH.p-body-content > div[style^="text-align:center;"][style*="min-height:"]? + yougame.biz,.p-body-inner > p > a[href][target="_blank"]Y + +probiv.one + probiv.in:.p-body-pageContent center > [href^="https://t.me/"] > img +snob.ru.p-c-a: + +esp8266.ru(.p-header-content > .p-header-logo ~ div? + +mreadz.com-.p-md.text-center.ibox-content:nth-of-type(2) + vk-smi.ru.p-news + +tv.meta.ua.pRight8 +cq.ru+.p__header > .p__header-image ~ div::before + +habr.com .pack-sponsor/ + posylka.net.package-timeline__item--advr +perevolockday.ru +sorochinskday.ru + buzulukday.ru + +orenday.ru + +saltday.ru + +nsday.ru .pad > .readd! + ne-kurim.ru.pad > noindex + +domik.ua .pad_banner> + +komapz.net,.padding > table[width="180"]:nth-of-type(4)& +8lap.ru.padding.right > .block + +uralweb.ru.padspo  + pravda.ru.page > .header. + +3ppc.net.page > div > center > noindex& + mydiv.net.page-banner__wrapper* +superkarate.ru.page-content > .rowO +dumka.poltava.ua7.page-element > .page-element__ads ~ .page-element__ads. + mmotop.ru.page-header > .bg-one-server% + mmotop.ru.page-header > .left& + mmotop.ru.page-header > .right$ + yarnews.net.page-new > .left + knizhnik.org +.page-note) + +golos.ua.page-single > .col-right- + gdz-ru.work +gdz.fun.page-subscribe� + filmix.date + filmix.life + filmix.tech + filmix.zone + +filmix.pub + filmix.my4.page-wrapper .last-news ~ .container > .information? + likemetr.ru,.page-wrapper > .analyzer-page > .subscriber +1yar.tv .pageBrandingW +bdf.msI.pageContent > div[style^="outline"] > a[href]:not([href^="../threads/"])& +matematikalegko.ru .page_BannerA +darktorrent.org*.page__main a[href][target="_blank"] > img= +redheadsound.studio".page__text > div[style^="color:"]F +redheadsound.studio+.page__text > div[style^="color:"] + p > br +nur.kz +.page__topL + nnovosti.info7.page_content > .article_content ~ div[style^="width:"]G + djekxa.ru6.page_index.content > p a[href][target="_blank"] > imgB +1777.ru3.pages_sf_right_block > table[style*="min-height:"]E + m-strana.ru2.pagination-item > [id^="bx_"] ~ :not([id^="bx_"]) +km.ru.pane-advertisment3 + rz.com.ua".pane-node-field-right-long-banner* +komarovskiy.net.panel-body noindex6 + www.km.ru%.panel-col-top .pane-content > :empty +mkap.ru .panel-danger$ +snovidenija.ru.panel-reklama# + seolik.ru.panel.text-center) + seolik.ru.panel[style^="height:"]Š +Bÿï08@R2bidbaits.ru#?#.pg-section:-abp-has(> .abox-layout)4 + +evlas.ru$.panneliker a[href][target="_blank"]& + kg-portal.ru.paracontainer img- + vitatv.com.ua.paragraph--type--banner + kg-portal.ru .paralink + sportnet.live.parent  + business.ua .parner--news% + business.ua.parner--side-news! + fc-zenit.ru.parnters-foot  + tulapressa.ru .part_block  +detector.media +.parthners5 + chehov-vid.ru + +fbr.info + +ura.news.partner  + 3dtuning.com .partner-ads$ + edyna.media.partner-articles/ + lrepacks.net + rusplt.ru.partner-block( +autosport.com.ru.partner-content + +zahav.ru.partner-iframe% + +w7phone.ru.partner-in-sidebar+ + zaxid.net +24tv.ua.partner-insert- +24tv.ua.partner-insert + .media_embed' +24tv.ua.partner-insert + p[dir]‘ + gorodkirov.ru + allboxing.ru + glavred.info + glavred.net + +dyvys.info + +unian.info + unian.net + +unian.ua +ictv.ua .partner-news" +zi.ua.partner-news-content& + rusplt.ru.partner-news-wrapper3 + +tochka.net!.partner-news:not(.b_crosswidget) +itc.ua.partner-posts( + +maximum.fm.partner-recomendation# + lifehacker.ru.partner-strip$ + zaxid.net.partner-wrap-block + usemind.org .partner_! +iz.ru.partner_before_head, +moidom.citylink.pro.partner_citylink +i.ua.partner_links + +intvua.com .partner_news, + pln-pskov.ru.partner_news__containerÆ + grodnonews.by + highload.tech + twogarin.info + fc-zenit.ru + rybalka.com + +censor.net + +siteua.org + +vesti42.ru + mgorod.kz + xsport.ua + +mc.today + +mos.news + +nsnet.ru .partners1 +sportonline.ua + +sport.ua.partners-block; + zanmsk.ru*.partners-block > a[href][target="_blank"]) + +tyzhden.ua.partners-block-wrapper3 + regnum.news + regnum.ru.partners-container +1fnl.ru.partners-list! + fc-zenit.ru.partners-logo$ +telekritika.ua.partners-news# +kp40.ru.partners-news-block. + bombardir.ru +gol.ru.partners-widget + +siteua.org .partnersList! + zanmsk.ru.partners__title +qrz.ru.partners_box > *" + mayday.rocks.partners_rows + allhockey.ru .pasta-wrap + +litlib.net.pay + motorpage.ru.pban + roypchel.ru.pblock + shophelp.ru +.pc-banner/ +lookmedbook.ru.pediatr-banner-container# + onyxgame.com.pegination ~ a' + dotaguide.ru.penci-sidebar-left6 + +umu.org.ua$.penci-sidebar-widgets.widget-area-2$ + dotaguide.ru.pered-kontentom  + vbryanske.com .peretyajka  + krymr.com.pg-title--ymla@ +fansector.info*.pg_content_nav > a[href][target="_blank"]5 + seasonvar.ru!.pgs-player > div[align="center"] + multitran.com.pic  +]ÿï08@RMmegacritic.ru#?#.platform-content:-abp-has(> .moduletable a[rel="sponsored"]) +Rÿï08@RBbilshe.com#?#.playfair:-abp-has(> b:-abp-contains(/^партн/i)) +]ÿï08@RManime-joy.online,animejoy.ru#?#.playlists-items > ul > li:-abp-contains(Dzen) +]ÿï08@RMkulturologia.ru#?#.post > h2:-abp-contains(Обратите внимание) +pÿï08@R`kovi.ru#?#.post-cards > .post-card:-abp-has(.post-card__description:-abp-contains(://keltr.ru/)) +fÿï08@RVnewstula.ru#?#.post-content + div[style^="border:"]:-abp-has(> div > [href*="yandex"]) +]ÿï08@RM433175.ru#?#.post-footer > span:-abp-contains(Реклама на Ñ�айте) +Gÿï08@R7mmorpg.su#?#.post-list__card:-abp-has(> .popular-block) +Mÿï08@R=itc.ua#?#.post-txt > p:-abp-has(.highlight > a[href*="utm_"]). + telegraf.news + telegraf.plus.pikachu! +moeobrazovanie.ru.pinBnFs + nick-name.ru.place# +eva.ru.place-content-center + +patee.ru.placeR > .link! + nnportal.org .place_bottom, + spletnik.ru + galnet.fm .placeholder3 + +mashina.kg + +house.kg.placeholder-branding) + spletnik.ru.placeholder_billboard# +oane.ws.plaintext > noindex + bigpicture.ru.plashka + +bnkirov.ru .plate-panel + muzofond.fm +.playOther$ + +seetv.tv.player > .reklama_b" +sexvideobaza.net +.player-bn/ +novinki-kino.net + +smotra.net .player22 + pikabu.ru.player__adfox + +lideo.ru.player_advertV + iplayer.info + get-tune.cc + ipleer.fm + mp3cc.biz + mp3iq.com .playlist-ad# +rp-mechanics.ru .plusonet-sl + kinovit.org .pmedia_240) + +mdex-nn.ru + +videout.ru .podpiska + +point.md +.point-ads# + filmhd1080.me.polna-rkl > a +10i5.ru +.pop-block + yakutia.info.popular + mmorpg.su.popular-block( +officelife.media.popular-section" + konkurent.ua.popularBanner/ +footballgazeta.com.popularList > center` + tourister.ruL.popularMaterialList > div[id^="readmore_"] ~ [class]:not([id^="readmore_"]) + +stavcur.ru .popup-army +nrj.ua .popup-banner+ + equity.today.popup_module_container  + nashaniva.com .pos-market' +denzadnem.com.ua.post .g-single* + +cod31.ru.post > .entry-tags + .row9 + +cod31.ru).post > .entry-tags ~ div[style*="clear"]$ +ustanovkaos.ru.post > .title% +ustanovkaos.ru.post > noindex& + 101poisk.ru.post-banner-bottom# +kyivvlada.com.ua .post-block, +kot-i-koshka.ru.post-block > div[id]: +kot-i-koshka.ru#.post-block ~ .post-block ~ div[id]L +cq.ru?.post-content > div:not([class]):not([id]) > div[class]::before@ + calculat.ru-.post-content > p[style*="line-height: 230%"]* + sportmaps.ru.post-conversion-block$ + mks-onlain.ru.post-right-adsU +opisanie-kartin.com:.post-single-content div[style^="padding:"][style*="40px"] + +apparat.cc .postBanner| + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life(.postLink[href*="://sbermegamarket.ru/"]s + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life.postLink[href*="citilink.ru/"] + repost.uz .post__banner) + apnews.com.ua.post__bottom-banner> +dermatitanet.ru'.post__entry > div[style^="background"]¨ +iÿï08@RYnewstudio.tv#?#.post_wrap span[class^="post"]:-abp-contains(/при поддержке/i) +Dÿï08@R4pickupforum.ru#?#.post_wrap:-abp-has(> #post_body_b) +oÿï08@R_zx-pk.ru#?#.posts > [id^="post_"]:-abp-has(> .postdetails > .userinfo > [title*="Advertiser"] ) +[ÿï08@RKanadyr.org#?#.posts-container > .card:-abp-has(> div > [id^="yandex_rtb_"]) +Zÿï08@RJanadyr.org#?#.posts-container > .card:-abp-has(> iframe[src*="/banners/"]) +bÿï08@RRmolbuk.ua#?#.presreliz:-abp-has(a:-abp-contains(на правах реклами)) +Gÿï08@R7study.ru#?#.preview-item:-abp-has(> [id^="yandex_rtb"]) +ÿï08@Romoe-belgorod.ru,moe-kursk.ru,moe-lipetsk.ru,moe-online.ru,moe-tambov.ru#?#.pro-block:-abp-has(> .pro-block-adv) +[ÿï08@RKvechirniy.kyiv.ua#?#.promo-inner > .container:-abp-has(> .media:only-child) +_ÿï08@ROvechirniy.kyiv.ua#?#.promo-inner > .container:-abp-has(> a[href*="://bit.ly/"]) +aÿï08@RQvechirniy.kyiv.ua#?#.promo-inner > .container:-abp-has(> a[href*="utm_campaign"]) +wÿï08@Rgvechirniy.kyiv.ua#?#.promo-inner > .container:-abp-has(> a[href^="https://vechirniy.kyiv.ua/reklama/"])  + 1plus1.ua.post__partners) + apnews.com.ua.post__partners-news( + talkwebber.ru.post_block ~ table— +rustorkacom.lib + game4you.top + rustorka.com + rustorka.net + rustorka.top + innal.top + naylo.top&.post_body center > a[target="_blank"] + nastroy.net .post_liked* +vk.com +vk.ru.post_marked_as_ads +imtw.ru.post_pole_post� + newstudio.tvy.post_wrap > span[id] > a[href]:not([href*="imdb"]):not([href*="tv.com"])[class="postLink"][target="_blank"]:last-of-type0 + sonikelf.ru.postbitlegacy[id^="yui-gen"]1 + paparazzi.ru.poster > .poster-content + p[ + rbkgames.comG.poster-grid-item > a[target="_blank"]:first-child ~ a[target="_blank"]! + agrotimes.ua .poster-modal& + +iphones.ru.postitem__dpd_blockR +denzadnem.com.ua:.postmeta-primary ~ .hr1[style="border-bottom-color:#eee"]& + inform.zp.ua.posts-list-banner" + gotennis.ru.posts-relative^ +the-village-kz.com +the-village.me +the-village.ru +village.com.ua.posts-sidebar$ +svoimirykami.club .posts__adv" +infotechnica.ru .ppoibrorzf' +professionali.ru.pr-banner-wrap% +newkaliningrad.ru .pr-side-240( + bst.bratsk.ru.preloadBannerSizer + gencit.info .preloadText! +megaresheba.ru .preloading + isport.ua .premium-desk% + wowhead.com.premium-promo-row! + +bigmir.net.premium_banner& + +vidoza.net.prevent-first-click1 + epizod.life.prf-box[style="padding:30px"]: + news.qip.ru'.primary > .low_new.item:nth-of-type(2)" + +xcadr.tv.primary > noindex + +livelib.ru +.prm-block + +livelib.ru .prm-header +bon.ua.prmtnc +moe-belgorod.ru +moe-lipetsk.ru + moe-online.ru + moe-tambov.ru + moe-kursk.ru.pro-adv + kinorium.com.proBan + iccup.com.proakk- + probirka.org.probirka-popup-container( + +the-day.ru.product-block__footer$ + +finam.ru.profile-text-banner! + prsport.net.prognoz_block +mmgp.ru.prom +tut.by.prom-l +tut.by.prom-r¢ +rentv-smolensk.ru +allmoldova.com +telesputnik.ru + gdeposylka.ru + pavlodar.news + webmasters.ru + infomir59.ru + ubuntovod.ru + +pavon.kz.promo& +roskomsvoboda.org .promo-banner  + expertcen.ru .promo-block$ + +habr.com.promo-block_courses1 + regnum.news + regnum.ru.promo-card-smalla +vechirniy.kyiv.uaH.promo-inner > .container > a[href="https://vechirniy.kyiv.ua/reklama/"] +v102.ru .promo-left  + multiurok.ru .promo-popup‘ +^ÿï08@RNcrackstatus.net#?#.px-nav-dropdown-menu > .px-nav-item:-abp-has(> a > #uLogin) +Eÿï08@R5ktozvonit.com.ua#?#.question:-abp-has(> .adsbygoogle) +Cÿï08@R3friday.ru#?#.rc2:-abp-has(div:first-child > #rc-bn) +<ÿï08@R,friday.ru#?#.rc2:-abp-has(div[id^="adfox_"])$ +ren.tv.promo-slider__wrapper& +igry-bitva-zamkov.ru +.promo-top +vbr.ru .promo-trust% +blog.korabli.su.promo-wrapper  + sea-man.org .promo-yandex  + cpainform.ru .promo_block + +anekdot.ru .promo_head +now.ru .promo_link + +anekdot.ru .promo_middle' +disgustingmen.com.promo_sidebar + kinoafisha.ua .promobar  + kinoafisha.ua .promobrand +156.ru +.promotion" +dtf.ru +vc.ru .propaganda + tonkosti.ru.proxima( + pravoved.ru.prvd-af-primary-rnnb^ +the-village-kz.com +the-village.me +the-village.ru +village.com.ua.pseudosidebar! + psy-music.ru .psyTopBanner + +znak.com.pub-box + +ura.news.publication-c43 + gdetoedet.ru.pull-right > [class] ~ [class]1 +game-tournaments.com.pull-right > noindex9 + rutube.ru(.push-notification-popup-module__wrapper" + parnuxi.biz.pw-rkl-section +qip.ru .q_banner +qip.ru .q_teaser" +shopping-spb.su .queen_link) +bash.im.quote > .text:first-child" +bash.im.quote > div[style]% + multiurok.ru.r-courses__lists+ + +myfin.by.r-sidebar > .own-placement +oka.fm.r2016Ì +xn--80aaivjfyj3e.com +economics.studio +scicenter.online +textbooks.studio +uchebnikfree.com +lawbook.online +myzooplanet.ru +psihologia.biz + economuch.com + lawbooks.news + finbook.news + medinfo.live + pravo.studio + all-sci.net + provse.news + sci-lib.biz + +bib.social + sci.house + +lib.sale.r21 + medikforum.ru .r_bannerI + +porjati.ru7.r_block > div[style="height: 600px; overflow: hidden"]  + second.by.r_col > center$ + second.by.r_col > div[style] + kirovnet.ru.r_links  +gnatkovsky.com.ua.r_sell + rosphoto.com.rad + +fiteria.ru.rads + +tivix.co.rakana +a42.ru.ranbne.clearfix/ +aromatmasla.ru + +progrib.ru .randomizer+ + animemobi.ru.randomnews > .videorek + +zakonia.ru .randomtableT +www.zoneofgames.ru:.randshop > a:not([href^="https://forum.zoneofgames.ru/"]) +glas.ru.rbI +kinozaltv.life + kinozal.guru + +kinozal.me + +kinozal.tv.rb_new + bashskazki.ru.rblock +payeer-gift.ru.rbrocks + +sefon.cc.rbt_web  +vsezdorovo.com +.rca-block + +yakutsk.ru.rca_des +omastopatii.ru.rcbloe +superagronom.com +elevatorist.com +latifundist.com + zemliak.com + +kurkul.com +.rcl-label! +superagronom.com .rcl-note + midasbox.net .re-blockP +happy-biock.info +happy-block.info +howto-news.info.read-also__title" + vokrug.tv.read-more__blocký +pÿï08@R`carrotblog.ru#?#.recomend-section:-abp-has(> .flex > :not([data-href^="http://carrotblog.ru/"])) +„ÿï08@Rtcalorizator.ru#?#.region[id^="content-"] > .block:-abp-has(script:-abp-contains(/adsbygoogle|advmanager|yadblock/i)) + +twizz.ru +.read-next +okna.ua .read__right( + +vmo24.ru.readall > p:first-child* + sustav.info + +udermis.ru .readthis + +vmo24.ru .readyandex* + flatfy.lun.ua.realty-short-preview + kafanews.com.rec, + livesport.ru + livecup.run .rec_book + +ru-m.org.rechka# + tvcook.ru.recipe-adv_bottom + 19216811.ru.recl + depfile.com +.recl_vert + arigus.tv.reclam* + meteoprog.ua + +kurkul.com.reclama + programki.net +.reclama_v + big-anime.ru.reclame$ + peopletalk.ru.reclame-banner + +mmo13.ru .recomend( +kot-i-koshka.ru.recomend-section. + pythonru.com.recomendation-feed-bottom + +aum.news .recomended +oper.ru +.recommend& +obozrevatel.com.recommendation$ +cardiologiya.com .recommended5 + prosports.kg + prosports.kz.recommended-wrapT +soft.sibnet.ru>.recommended_soft_alltab_content > #tabWindows > :nth-child(1) +bdg.by.redTram# +telegraf.in.ua .redtram_news + pronpic.org .ref_link< + knijky.ru+.region > #block-biblioteka-zanr-menu ~ div< + krymr.com+.region > .most-popular ~ .media-block-wrapG +bdg.by9.region-sidebar-second-inner > .block ~ .block .rtecenter +kv.by.region-top-banner� +ternopoliany.te.ua +hemingway-lib.ru + sex-empire.tv + +kinogo.biz + +sms24.info + +fonzo.ru + +sms24.me +oka.fm.rekw +perevolockday.ru +sorochinskday.ru + buzulukday.ru + +orenday.ru + +saltday.ru + +nsday.ru.rek,.rek ~ .ramka + med-heal.ru.rek-bar + +lenov.ru.rek-but( + yapolitic.ru + +lenov.ru.rek-top + +sport.kg .rek-widgets + baginya.org.rek1K + okaygorod.com6.rek_ban a[href]:not([href^="https://okaygorod.com/"]) + +cxem.net .rek_plashka + tabletka.by +.rekblockr + +mipped.com.rekblokS +sex-comics.mobi + russian7.ru + youblogs.ru + +lenfilm.tv +3iks.pw.rekl  +minecraft-mod.su.rekl_ad# + +pogoda7.ru.rekla_down_block  + asn.in.ua.reklam_in_text +24tv.ua.reklama-block + chesnok.media +.reklama_d& + prsport.net.reklama_img_ssilka +tut.by.reklama_links* +1pokirpichy.ru.reklama_sidebar_ads! + tnt-online.ru .reklama_top +3mod.ru .reklamafull + +nabat.news .reklbanner + yakako.ru.rekwrap + do-slez.com +.rel_block  +aromatmasla.ru +.rela_page; +kulturologia.ru$.relap-novate_ru__widetitles-wrapper5 + eurosport.ru!.related-content-story--sponsored +kod.ru.related-posts¸ +;ÿï08@R+newsua.one#?#.related_news:-abp-has(script) +;ÿï08@R+tmbw.ru#?#.reviewwidget:-abp-has(.adwidget) +Xÿï08@RHvesti-ua.net#?#.right .mblock:-abp-has(> a[href][target="_blank"] > img) +Uÿï08@REorsk.ru#?#.right-cell > div:-abp-has(div:-abp-contains(Paid Content)) +€ÿï08@Rpchis-chernomorsk.com.ua#?#.right-col > .hint-block:-abp-has(> .hint-block-title:-abp-contains(Партнеры)) +Nÿï08@R>russian.rt.com#?#.right-column > .aside-block:-abp-has(script) +†ÿï08@Rvf1analytic.com,f1ua.org.ua#?#.right-indent > .wrapper-box:-abp-has(> div > .boxTitle:-abp-contains(/реклама/i)) +Yÿï08@RIgorod48.ru#?#.right-side > .reading:-abp-has(> div > #MediaMetricsInject) +rÿï08@Rbcensor.net#?#.right-sidebar__title_without_border:-abp-has(> div[style^="width: 300px; height: "]) +Bÿï08@R2librebook.me#?#.rightBlock:-abp-has(> .shopOffers) +Jÿï08@R:mods-fs.net#?#.rightColomn > aside:-abp-has(> .textwidget)9 + +fishki.net + yandex.ru.related-root.typo:empty6 + topvideo.tj#.related-video-holde-right > .table) +pronovostroy.ru.relative-products +kurer-sreda.ru.reld-1% + zenit-fk.ru.remodal-is-opened% + ero-top.info.remove_in_mobile + remontka.pro.remt+ +business-class.su +time.kz.rennab3 + terabit.biz .reset > li > a[target="_blank"]% + otzovik.com.review-body > div + medvesti.com +.rew-block% + +matchtv.ru.rexona_player_play + 62info.ru.rhead +meta.ua +.riaBanner +koob.ru.rideo) + x-true.info.right > .mblock > div" + ufanotes.ru.right > .ratesA + valetudo.ru..right > .v_left > .moduletable ~ .moduletableE +benzin-price.ru..right > :not([style="padding-bottom: 25px;"]). + ufanotes.ru.right > div[class="block"]  + +playua.net.right-a_dvert + 73online.ru.right-b +lgz.ru +.right-banœ +kanalukraina.tv + agrostory.com + superhumor.ru + club.foto.ru + 3vozrast.ru + +l2anons.ws + +l2oops.com + +voffka.com + acc.cv.ua .right-banner  + +pulscen.ru.right-banners" +xxx-russian.ru .right-block$ + hl-inside.ru.right-block.rek* +liking-soft.ru +oxu.az +.right-bnr" + expert.ru.right-box-banner! +kino-portal.net +.right-col1 +chis-chernomorsk.com.ua.right-col > .mob1: +lostfilm.hdkino.biz.right-col > .right-block-title( +fion.ru.right-column .bx-wrapperF +fion.ru7.right-column .select-content[style="margin:9px auto;"]' + +wkino4.net.right-full > noindex: +1kr.ua,.right-inner > .right-social ~ .right-socialm +online-stars.org +online-star.org + anistar.org + +astar.bz'.right-panel-bottom > .favorites ~ span. +playboyrussia.com.right-side > .sticky. +sochinyashka.ru.right-sidebar > .blockE + +censor.net3.right-sidebar div[style^="width: 300px; height: "]" + +sport.ua.right-top__bannerC +dni.ru5.right.article-reklame > * > :not(.block_all_day) > *9 + terrikon.com%.right.col > div[style^="min-height"]; + terrikon.com'.right.col > div[style^="width:300px;"] + sinoptik.ua .rightAdvBox! + dailylviv.com .rightBanner" + game01.ru.rightBanner > h48 +ap22.ru).rightColumn a[href][target] > .Recbanner3 + gazeta.uz".rightContainer > .floating_banner3 + +siteua.org!.rightSide > .social_groups ~ div  + +siteua.org.rightSide > a! + +inkorr.com.right__bar > p! + rozetked.me.right__imagesá +rÿï08@Rbcofp.ru#?#.right_coll > .moduletable:-abp-has(> h3:-abp-contains(Рекламные Ñ�Ñ�ылки)) +Tÿï08@RDkino-archive.ru#?#.rightcol > div:-abp-has(a[href][target="_blank"]) +Tÿï08@RDautosoftos.com#?#.rightside > .block:-abp-has(> .dcont > div > ins ) +tÿï08@Rdgoogle.by,google.com,google.com.ua,google.kz,google.ru#?#.rlfl__tls > div[jstcache]:-abp-has(.gghBu) +Fÿï08@R6pingvin.pro#?#.row > div:-abp-has(> .card-blog script) +Mÿï08@R=websdr.space#?#.row[style="display: block;"]:-abp-has(iframe) +vÿï08@Rfnikcenter.org#?#.row[style^="padding-"]:-abp-has(> .nchead > .ncheading:-abp-contains(/^партн/i))/ + football24.ru + banana.by .right_banner+ + rekportal.ru.right_banner_container$ + +vgorode.ua.right_banner_hold! + newsbalt.ru.right_banners' + +seetv.tv.right_bar > .reklama_b7 + +elbruso.ru%.right_col > div[style^="margin-top"]% + noob-club.ru.right_col_bamboo4 + +fanday.net".right_colum > section:first-child, + raskraska.com.right_column > noindexM +eurointegration.com.ua/.right_column_content > [href][target="_blank"]@ + otzyvua.net-.right_column_one > div[class^="mainblock h"]5 +karavan.tver.ru.right_con > :not(.city_paper)) + glavpost.ua.right_content noindex + +ritsatv.ru .right_panel + prisnilos.su .right_side' + +sotovik.ru.right_zone > #banner) +best-antidepressanty.ru +.rightbann  + anison.fm.rightbanner_in  +novostroykin.ru .rightbar8 + +inflora.ru&.rightbar > div[align="center"][style]< + biqle.org + +biqle.ru.rightbar > div[style^="width"]$ +2mm.ru.rightblock > .shadowp +bookskeeper.ru .rightcol" +1001-dollar.com .rightpanel# +tv-interny.online +.rightrekl" +smotriserial.me .rightslide  + kinonews.ru .rightzagolup) + m-live.tv.rk1,.rk2,.rk3,.rk4,.rk5+ +lineageternal.ru + tera-lib.ru.rkb + runyweb.com.rkl + uafilm.tv.rkl-box$ + softobase.com.rkl-horizontal +severstalclub.ru.rkl3 +severstalclub.ru.rkl4# +severstalclub.ru .rkl_united + filmovmir.com.rklma +floristics.info.rmgm +nn.ru.rn-global-sidebar +nn.ru.rn-top-banner! +root-nation.com +.rn-widget  + kommersant.ru .rocket_man) +in-english.club.roll_autoplay_ads  + novgorod.ru .root > .bigb( +matematikalegko.ru.rotac_reklama5 +officepackage.info +dtf.ru +vc.ru.rotator + +milknet.ru .rotator-wrap& + bestradio.fm.row .panel-danger, +5-tv.ru.row > .col3.positionRelative= + +my-hit.org+.row > .hidden-sm.hidden-xs > :not([class]), + lookatme.ru + +censor.net .row-banner_ +the-village-kz.com +the-village.me +the-village.ru +village.com.ua.row-banner-top- +internetsms.org.row-fluid.center > h3- +internetsms.org.row-fluid.center > h4( + metrogame.net.row.row-flash.roll2 + investoday.ru.row2 > span[style^="float:"]0 + www.eg.ru.row[style="margin-top: 30px;"]X +eurointegration.com.ua +epravda.com.ua(.rpad script[src*="orbit.lun.ua"] + span‹ +Aÿï08@R1nastroyvse.ru#?#.saitbar_bock:-abp-has(.mpwidget) +Pÿï08@R@sho.org.ua#?#.sample-posts > h4:-abp-contains(/партнер/i) +bÿï08@RR24.cv.ua#?#.sample-posts:-abp-has(> h4:-abp-contains(/^новини партн/i)) +=ÿï08@R-5.ua#?#.sb-block:-abp-has([id*="ScriptRoot"]) +Qÿï08@RAedyna.media#?#.sb__column > .sb__section:-abp-has(> .sb-partners) +bÿï08@RRtornado.3dn.ru#?#.sblock:-abp-has(> .b_title > .ins:-abp-contains(Реклама)) +Zÿï08@RJflatfy.lun.ua#?#.search-results-section:-abp-has(.new-building-offer-list) + +thesame.tv .rs-promo> +imenie-home.ru + vamrecipes.ru + news-tape.ru.rstbox' +zamena-podshipnikov.ru .rstboxes + newsua.ru.rsya + bitshare.link.rtbCont8 + rusvesna.su%.rtecenter > a[href][target="_blank"]L +cardiologiya.com + alkogolu.net + prizvanie.su + sustav.info.rtiz! + seriallife.ru .rtp-wrapper + foodretail.ru .rttr_bnr + cheboksary.ws .ru200200  + rubukkit.org .rubadv-post" + rubukkit.org.rubadv-top-in +tut.by .rubric-brand  + +medside.ru.rusfond-block + stroy.ykt.ru .s-slider  + map.cn.ua.sModuleContent! +latifundist.com +.sa_widget +sport-express.ua.sadse8 +autosakhcom.ru + sakh.name + +sakh.com .sakhui-b# +fitomarket.com.ua +.sales-boxH + rk.karelia.ru3.sam-container a[href]:not([href*="rk.karelia.ru"])$ + +hi-tech.ua.sam-pro-container + softonic.ru .sam-slot+ +forum.antichat.club.sam3Bannner2Uni‹ +forum-volgograd.ru +zerocoolpro.biz +beliyspisok.ru +termoportal.ru + rusfishing.ru + clubvolvo.ru +ifud.ws.samBannerUnitC +zerocoolpro.biz +termoportal.ru + +cnc3018.ru .samCodeUnit& +forum-volgograd.ru .samListItem" + uman24.org.ua .sample-posts +materialscience.ru.sape. + ladylib.net.sape[style="width:500px;"]@ + +rupier.com..sb > a > img[src^="http://rupier.com/forum/"] + med.vesti.ru +.sb-banner( + beauty.ua +viva.ua .sb-partners + agroinfo.kz.sbanner> + uaspectr.com*.sbr-slider > .pst-block > .pst-block-head + tagilcity.ru.sbs_p* +sportsdaily.ru.schedule__bet-block +eva.ru.scroll-smooth( + +klanwin.ru +pi-c.ru .scrollable + +sovets.net .scrolled-adv7 +sport-express.net +sport-express.ru +.se-banner5 +sport-express.net +sport-express.ru.se-bets? +sport-express.net +sport-express.ru.se-brandedbuttonsV +sport-express.net +sport-express.ru).se-material-page__footer-recommendationsF +sport-express.net +sport-express.ru.se-partner-stuffing-infoR +sport-express.net +sport-express.ru%.se-translation-scoreboard-event-betsU +sport-express.net +sport-express.ru(.se-translation-scoreboard-extra__bookieI + search.tut.by4.search-i > .b-results-list:first-child:not([start]) +move.ru.search-item_tgb8 + sletat.ru'.search-result__list-item[data-offerid]  + +rusnext.ru.searchField_y) +ura-inform.com.search_bar ~ .padd8 + salonav.com%.secondary-sidebar > .mom_custom_text" + drinks.ua.secondary-slider# +softbesplatno.net +.sect-reclO + strana.today + strana.news + +ctrana.one + +strana.one.sect-repeat-ban& +utkonos.mybb.ru.section > #tn1ê +Fÿï08@R6gorvesti.ru#?#.section-feed-sm > div:-abp-has(> .blnk) +oÿï08@R_tele.ru#?#.section-heading:-abp-has(> .h-text:-abp-contains(Ð�овоÑ�ти партнеров)) +€ÿï08@Rpsobesednik.ru#?#.section:-abp-has(> .navbar > .flex-center > p:-abp-contains(Ð�овоÑ�ти партнеров)) +cÿï08@RSaramil.city#?#.sectionColumn:-abp-has(> .subTitle:-abp-contains(/реклама/i)) +}ÿï08@Rm24.animez.live#?#.serials > .serial:-abp-has(> .serial-btn > .row > div > img[src^="/assets/smotret_anime-"]) +@ÿï08@R0briefly.ru#?#.shelf:-abp-has(> .adaptive-banner) +>ÿï08@R.briefly.ru#?#.shelf:-abp-has(> .ebooks-widget) +Sÿï08@RCbriefly.ru#?#.shelf:-abp-has(> [data-disclaimer*="Реклама"]) +€ÿï08@Rpkoolinar.ru#?#.shortcode-html:-abp-has(> header > div > [class]:-abp-contains(ПопулÑ�рное в Ñ�ети)) +aÿï08@RQua-football.com#?#.show-post > h2:-abp-has(> strong:-abp-contains(Ñ�тавки )) +wÿï08@Rgtv-gubernia.ru#?#.side-block:-abp-has(> .side-header + .side-article > .side-article-title > [href=""]) +^ÿï08@RNe-news.pro,e-news.su#?#.side-block:-abp-has(div:-abp-contains(Реклама)) +Oÿï08@R?knigomir.info#?#.side-box:-abp-has(> [id="div-gpt-ad-sidebar"]) +@ÿï08@R0siteua.org#?#.sideBlock:-abp-has(> .adsbygoogle) +?ÿï08@R/siteua.org#?#.sideBlock:-abp-has(> [id^="CNM"])& +kulturomania.ru.section-banner^ +mastergrad.comH.section-body > [itemprop="comment"] ~ div[style="margin-bottom: 15px;"]" + bidbaits.ru.section-marked. +ivanovonews.ru.section-marketing-block + gorvesti.ru +.section-r; +xn--b1ats.xn--80asehdb + gorvesti.ru.section-r-top +news.ru.section-renab' + mezha.media.section_article_adv$ + mezha.media.section_news_adv' +openssource.biz.section_spoiler! +bolshoyvopros.ru .seedbnrs  + subscribe.ru .sendsay_adv + nakanune.ru.seo + gmod-fan.ru .seo-info' + micro-win.com.seoquake-nofollow + xtreme.ws +.separator + +rbook.me.shadow.sidebar/ + mmogamez.ru.shapka > a[target="_blank"]B + moniheal.com..shares-wrap > .container > .swiper-pagination- + +briefly.ru.shelf_type_recommendations. +naked-science.ru.shesht-ad-side-banner +pogodasakhcom.ru.shoppy" + sakhalin.biz.shoppy_offers + catorrent.org +.short_band + animevost.one + animevost.org + animevost.top +vost.pw".shortstoryContent > center[style]# +gamingservers.ru .show-block +av.by.show-on-desktop, + kelmochka.ru.show[class^="fix_post"] + kineshemec.ru .showcase) + +myfin.by.showcase-aside.hidden-xs +job.ru.showcase_search? +dv-gazeta.info).sid_ad300x250 > a[href][target="_blank"]! + mobtop.ru.side .in[style]% + sampik.ru.side > #menu ~ .box/ +kinopoiskhd.com.side > .random-link ~ *! + grodnonews.by .side-banner% + +medside.ru.side-banner-yandexA + wm-school.ru-.side-bar > div[style="margin-bottom: 10px;"]5 + +kinotv1.ru#.side-block > .boxTable ~ .boxTable* +redheadsound.studio.side-block[id]( + chasdiy.org.side-content-wrapper + agro-biz.ru .side-cpa + +drive.ru +.side-link% +1tv.ru.side-promo-place-right$ + parnuxi.biz.side-rkl-section2 +officelife.media.side-section__banner-wrap + the-geek.ru +.side-text[ +transkarpatia.netB.side-widget > a[href][target="_blank"] > img:not([alt*="elegra"])" + smartpress.by .side_bannersð +mÿï08@R]compromat.group#?#.side_block > .side_header:-abp-contains(Ð�овоÑ�ти партнеров) +Eÿï08@R5lifedon.com.ua#?#.side_block:-abp-has(> .adsbygoogle) +Iÿï08@R9vokrug.tv#?#.sidebar .h3:-abp-contains(За кадром) +Zÿï08@RJfukushima-news.ru#?#.sidebar > .block-content:-abp-has(> noindex > script) +]ÿï08@RMfukushima-news.ru#?#.sidebar > .block-title:-abp-contains(/^реклама/i) +Xÿï08@RHsport-tv.by#?#.sidebar > .block:-abp-has(a[href][target="_blank"] > img) +Yÿï08@RIdo4a.net#?#.sidebar > .section:-abp-has(h3:-abp-contains(Реклама)) +Nÿï08@R>ktozvonit.com.ua#?#.sidebar > .widget:-abp-has(> .adsbygoogle) +qÿï08@Ralavnik.net#?#.sidebar > .widget_list_mag_wp_300px:-abp-has(> .img-300 > a[href][target="_blank"]) +`ÿï08@RPlavnik.net#?#.sidebar > .widget_list_mag_wp_300px:-abp-has(> .img-300 > div[id]) +•ÿï08@R„4mama.ua#?#.sidebar > [class]:-abp-has(> [class]:-abp-contains(/Ð�овоÑ�ти партнеров|Ð�овини партнерів/)) +Hÿï08@R8online-fix.me#?#.sidebar > div:-abp-has(> #twitch-embed) +Dÿï08@R4animedub.ru#?#.sidebar div:-abp-has([data-relap-id]) +Uÿï08@REmyfootball.top#?#.sidebar--right > .block_full:-abp-has(.banners-ads) +Iÿï08@R9theuk.one#?#.sidebar-block:-abp-has(> .sticky .comm-blog) +Fÿï08@R6t.ks.ua#?#.sidebar-box:-abp-has(> .row > .block-block) +Hÿï08@R8t.ks.ua#?#.sidebar-box:-abp-has(> [class^="ne-banner-"])! + +diary.ru.side_banners_box + gorockop.ru .side_block7 +compromat.group .side_block > .side_header:empty +rcmm.ru .side_rek + v-info.ru .sidebannerV + vjazanie.info + subsidii.net + kykarek.com + sobakada.ru.sidebanner-wrapper? +dic.academic.ru +forum.vorota.de + f1comp.ru.sidebar? + report.if.ua+.sidebar .g-single a[href][target="_blank"]L +lfl.ru>.sidebar .start_block a[href^="http"]:not([href*="://lfl.ru"])@ +lfl.ru2.sidebar .start_block table[style="width: 263px;"]0 +headphone-review.ru.sidebar .widget_text" + pc-aio.ru.sidebar > #HTML2# + +vesti.uz.sidebar > .adv ~ *' + +litnet.com.sidebar > .b-popular# + +webtun.com.sidebar > .dcont' + wikiwolrd.com.sidebar > .flying4 +nashemisto.dp.ua.sidebar > .nm-banner-widget4 + anigang.org!.sidebar > .side-box > center ~ *K +turkcinema.org5.sidebar > .widget-wrap ~ .widget-wrap > .widget_textv +ukrmilitary.com_.sidebar > .widget:nth-child(-n+4) > .widget-content div[style="text-align: center;"] > a[href]B + +lavnik.net0.sidebar > .widget_list_mag_wp_300px:first-child; + golos.zp.ua(.sidebar > .widget_rvuoi:nth-child(-n+4)? +book-briefly.ru + vazremont.com.sidebar > .widget_textG + 365news.biz + +newgoal.ru&.sidebar > .widget_text ~ .widget_text) + womanhit.ru.sidebar > :not(.card)W +happy-biock.info +happy-block.info +howto-news.info.sidebar > :not(.widget)) + vokrug.tv.sidebar > :not([class]) + beauty.ua .sidebar > a5 + +eftwiki.ru#.sidebar > a[href][target="_blank"]P +ru-minecraft.ru9.sidebar > a[href][target="_blank"][rel="nofollow"] > img5 + +fbc.biz.ua#.sidebar > a[target="_blank"] > img7 +blizzardheroes.ru.sidebar > div[class^="block"]* + vakhta-job.ru.sidebar > div[style]4 + nnovosti.info.sidebar > div[style^="width:"]I +news-front.info + zdravotvet.ru + animang.one.sidebar > noindex8 + 24smi.org'.sidebar a[href][target="_blank"] > img, +prostopleer.com.sidebar-a330-contentm +pornobomba.vip +securitylab.ru + 101poisk.ru + +pbembed.me + vostok.fm + +study.ru.sidebar-banner( + pikabu.ru.sidebar-banner-300x250) + glavpost.com.sidebar-banner-block* +diletant.media.sidebar-banner-wrap$ + pikabu.ru.sidebar-block_half+ + pikabu.ru.sidebar-block_placeholderG +web-shpargalka.ru..sidebar-blocks-block[style="height: 1700px;"]B +buknews.com.ua,.sidebar-container > a[rel="nofollow"] > img@ +culturemeter.od.ua&.sidebar-content > .widget_custom_htmlB +istorikonline.ru*.sidebar-content > .widget_custom_html ~ *á +Kÿï08@R;m-strana.ru#?#.sidebar-module:-abp-has(> div[id^="adfox_"]) +Eÿï08@R5cherkasy.live#?#.sidebar-widget:-abp-has(> .bra__col) +Vÿï08@RFtvoymalysh.com.ua#?#.sidebar-wrap > div:-abp-has(> [id*="ScriptRoot"]) +mÿï08@R]bioware.ru#?#.sidebar__content-wrp:-abp-has(.sidebar__image > a[href^="http://gamazavr.ru/"]) +mÿï08@R]mediaryazan.ru#?#.sideblock:-abp-has(> .sideblock_title > span:-abp-contains(Реклама)) +~ÿï08@Rnsiver.com.ua#?#.sidebox > .sidetitle:-abp-has(> span:-abp-contains(/купуй|реклама|формац/i)) +<ÿï08@R,krolmen.ru#?#.sidebox:-abp-has(.adsbygoogle) +Jÿï08@R:modsgaming.ru#?#.sidebox:-abp-has(> .inner > .adsbygoogle) +Cÿï08@R3pidru4nik.com#?#.sidebox:-abp-has(> div[id^="bn_"])D + belkagomel.by/.sidebar-content a[href][target="_blank"] > img4 +colonelcassad.livejournal.com.sidebar-customH +masterok.livejournal.com(.sidebar-custom > dd > a[href] > [title]9 +masterok.livejournal.com.sidebar-custom > dd > br_ +analitikaua.net +ua-report.info + aspekty.net'.sidebar-inner > .widget ~ .widget_text+ + raenza.ru.sidebar-island.box-shadow( + www.aport.ru.sidebar-item.banner$ + kinovidos.com.sidebar-nadpis +101.ru .sidebar-news( +podillyanews.com.sidebar-reclame! + ptzgovorit.ru .sidebar-rek + mv.org.ua.sidebar-right7 + +gorod55.ru%.sidebar-right > div[class*="banner"] + jsprav.ru .sidebar-rk + factroom.ru .sidebar-rtb% + +habr.com.sidebar-small-banner) +tvoymalysh.com.ua.sidebar-special0 +oxu.az".sidebar-top a[href*="/advertise"]1 +vc.ru$.sidebar-tree-list-item--custom-html& + tvcook.ru.sidebar-useful-block/ + +my.rv.ua.sidebar-widgets > .widget_text^ + proidei.comK.sidebar-widgets-1 > div[id^="codewidget-"] ~ .widget_text:not(:last-child)^ +onlineclass.spaceE.sidebar-wrapper div[style="text-align:center;"] > a[target="_blank"] + +study.ru .sidebar.blue% +penzavzglyad.ru.sidebar.col-1/ + mayday.rocks.sidebar.column > div:empty( + mayday.rocks.sidebar.column > h5- + erotix-tv.com + kinorai.org .sidebar1! + +speedme.ru.sidebar300x600 +med2.ru .sidebarAds- + vremenno.net.sidebarBlock:first-child# +pogoda.meta.ua .sidebar__ads" + +gitflic.ru.sidebar__banner? + +fishki.net-.sidebar__block_trend ~ .sidebar__block_trend! + teploguru.ru .sidebar__rek6 + 24smi.org%.sidebar__wrap > :not(.sidebar__info)  + landlord.ua .sidebar_kdbnN +solncewonews.ru7.sidebar_list > .widget_text:not(#text-4):not(#text-89): +solncewonews.ru#.sidebar_list > [id*="custom_html"]& +minecraft-files.ru .sidebar_rek0 + burdastyle.ru.sidebar_top > .mobile-hide# + autocentre.ua.sidebar_upper + +jlady.ru .sidebarinner' + lubbook.org.sidebarleft > aside) + kinorai.net.sidebarsB > .sidebar1a + +mywebpc.ruO.sidebarzap .widget_custom_html ~ .widget_custom_html.FixedWidget__fixed_widgetK + othereal.ru8.sideblock > .sidecap,.sideblock > .sidecap + .sideinner! +voenhronika.ru .sideboxrek +ng.ru .sideitem +healthystyle.info.sigo + grodno24.com.similar% +podillyanews.com .similar-news# + novostiua.net.simple-banner# + +kurs.if.ua.simple-top-block7 +novadoba.com.ua .single-bottom-advertising-blockœ +Fÿï08@R6hi-tech.ua#?#.single-post:-abp-has(.sam-pro-container) +Yÿï08@RIfootball-ukraine.com#?#.site-section-header:-abp-contains(РЕКЛÐ�МÐ�) +eÿï08@RUkerch.fm#?#.slick-slide:-abp-has(div:-abp-contains(Ð�а правах рекламы)) +”ÿï08@Rƒkommersant.ru#?#.slider-commercial .multimedia__item:-abp-has(.spend__text > .spend__tag:-abp-contains(/^ПартнерÑ�кий /)) +Jÿï08@R:queen-time.ru#?#.small-fancy-sheet:-abp-has(> .adv_banner) +Eÿï08@R5queen-time.ru#?#.small-fancy-sheet:-abp-has(> script) +Pÿï08@R@hi-news.ru#?#.small-text:-abp-has(> a[href^="https://dzen.ru/"]) +Qÿï08@RAarmflot.ru#?#.sp-column > .sp-module:-abp-has([id*="ScriptRoot"])* + pravda.if.ua.single-post-6__author- + usionline.com.single-sidebar__banners  + mockva.ru.single-teasersA + dnpr.com.ua..single-widgets > p[style="font-size:1.25rem"]2 + slovodel.com.single__right > .right__title + forklog.com .single_brba$ + pronedra.ru.single_news_smi2Q +opisanie-kartin.com6.single_post > div[style^="height:"][style*="weight:"]" + pronedra.ru.single_sidebar+ + kinospy.com.singlebox > .blockquote" + pingvin.pro.singlepartners$ + +cod31.ru.site-header__banner" + itzine.ru.site-header__img + auto-kmu.ru.sitebarn +moe-belgorod.ru +moe-lipetsk.ru + moe-online.ru + moe-tambov.ru + moe-kursk.ru.sitebar_reklama_wr4 + lurkmore.wtf .sitenotice > .floatleft + p + p + emusic.me .skin-block + +festyy.com .skip-advert + fc-zenit.ru.sl-foot, + +lib.rus.ec + +posters.ec .slide_anons + rayon.in.ua .slider-mainT +yanzori.rbsmi.ru<.slider-main > .single-item > a[href]:not([href*="yanzori"])6 +sat-expert.com + gorodvkusa.ru.slider-wrapper + +ng.pl.ua .slider_big + nonameno.com.slides! + wowjp.net.slideshow__link + +dnepr.info .slideshowbg# +planet-today.ru .slideshowck" + felomena.com.sliding-block + real-vin.com +.sm-widget0 + ain.business +ain.ua.small-white-block` +v-tatarstane.ru + novostivl.ru + ryazan.life + +yakutsk.ru + krym.news.small_ads_cell% +smartmama.com.ua .smart-widget + smb.ixbt.com.smbad + proufu.ru.smi + factroom.ru.smi2" +mel.fm.smi2-news-container + kurgan.ru.smi24 +31tv.ru .smi24_tisers" +csharpprogramming.ru.smile +season-var.net .smotrite& +news.pn.snap-block > .ad + div + +mensgen.ru .snp-root + vkurske.com.soa" + hitmotop.com.soc-auth-btns + expert.ru.soc-line ~ hr% + ukrlib.com.ua.social-box-items + podolyaka.com + podolyaka.ru + tvcenter.ru + +pay-day.ru + +warhead.su +pnz.ru.social-button--yandexzen" + nevnov.ru.social-container% + ukrinform.ua.socialBlockSlide3 + samlab.ws".soft-day:not(:first-child) > .boxš +soft.sibnet.ruƒ.softmain_content__newprogram_tabs + .softmain_content__newprogram_content > .softmain_content__newprogram_content_item:first-child/ +moiprogrammy.net.softobase-client-promo + torrpeda.org.someban! + miformat.info .source-link +market-pages.ru.sovetÞ +Lÿï08@R a[href*="/asd/"]) +bÿï08@RRwww.obozrevatel.com#?#.splide__list > .splide__slide:-abp-has(> article > .banner) +Tÿï08@RDsport.tut.by#?#.sport-table tr > th ~ th:-abp-contains(Ставка)% +serialrussian.ru .sp-container$ + povarenok.ru.sp-header-blockN +slavinfo.dn.ua + +hi.dn.ua,.sp-module-content > div[class=""][style=""]E +forum.taxiservice.com.ua%.sp_block script[src*="pagead2."] ~ a + kinofilm.co .sp_darkvids? +matematikalegko.ru%.spanlink[onclick*="biorepet-ufa.ru"]= +matematikalegko.ru#.spanlink[onclick*="e-autopay.com"]7 +matematikalegko.ru.spanlink[onclick*="foxford"]8 +matematikalegko.ru.spanlink[onclick*="ohnet.ru"]9 +matematikalegko.ru.spanlink[onclick*="uchmet.ru"] + www.zakon.kz +.spec-list + totori.ru.spec_img[src]) + trashbox.ru + +profile.ru.special6 + stopress.ru#.special > a[href][target="_blank"], + softsalad.ru.special-block-yabrowser + pravda.ru.special.block' + newsroom24.ru.special_banner_in! + +vmo24.ru.special_branding +move.ru .specs-column +move.ru .specs-near' +xxx-russian.ru.speedbar ~ .rad5Þ +forexsystemsru.com +anilibria.iss.one +avtovzglyad.ru + filmozavr.com + filmozavr.net + anilibria.tv + must-see.top + +anilib.moe + +anilib.one + +anilib.top + +fco.com.ua + +medkrug.ru + alexua.tv.sponsor8 +radioshanson.fm!.sponsor a[href][target="_blank"] + +taker.im.sponsor-thread! +stroimdom.com.ua .sponsors +zi.ua.sponsors-holder% +stroimdom.com.ua .sponsors_big + +sr-week.ru .sponsorslist) +sport-interfax.ru.sport__champcom + erocadr.com.spot + topvideo.tj.spot1" +porn0sex.online .spots-side$ +pornopodborka.com .spots-wrap= + +skatay.com+.sprite-14 + * > hr + table[align="center"]) + ogolosha.ua.square-banner-wrapper' + polochka.net.ss-overflow-hidden! + satsis.info.st-allbanners1 +info.sibnet.ru.stakan-border:not([style])' + tod-news.com.stamp_main ~ .itemG + newsroom24.ru2.standart_banner > [src*="/advertising/flash"] + * +nn.ru.starnews-block + riatomsk.ru .stat-zen +ykt.ru .static-adv0 + tripoli.land + +kubnews.ru.static-banner +vl.ru.static-banners3 +bigcaucasus.com + pravda.ru.staticFragment +calc.ru +.static_re + +finzz.ru.stb-container +cq.ru .steam-popup + +diakov.net.stic( + wylsa.com.stick-promo--container& +www.zoneofgames.ru .stickBanner% +receptisalatov.com .stickblock( + autolikes.ru + topwar.ru.sticky' +yuga.ru.sticky > .aside__reload +yp.ru.sticky-banner? +payeer-gift.ru +topasnew24.com +upl.uz .sticky-block! + tsargrad.tv.sticky-bottom7 + dorognoe.ru$.sticky-holder > .block-title.yellow( + bidbaits.ru.sticky-promo-wrapper9 + hevcclub.com%.sticky-top > div > .card:first-childÎ +>ÿï08@R.infox.ru#?#.stlt:-abp-contains(Реклама) +dÿï08@RTpikabu.ru#?#.stories-feed__container > .story:-abp-has(> .story__main .story__promo) +]ÿï08@RMpikabu.ru#?#.stories-feed__container > .story:-abp-has(> .story__main > [id]) +]ÿï08@RMpikabu.ru#?#.stories-feed__container > .story:-abp-has(> .story__placeholder) +Zÿï08@RJpikabu.ru#?#.stories-feed__container > .story:-abp-has([class*="sponsor"]) +Rÿï08@RBprovladimir.ru#?#.stream-item-widget:-abp-contains(Реклама) +Nÿï08@R>red-soft.ru#?#.su_video > ul > li:-abp-has([href*="dzen.ru/"]) +Sÿï08@RCbilshe.com#?#.svejnov:-abp-has(> h2 > b:-abp-contains(/^Інші/)) +Iÿï08@R9ictv.ua#?#.swiper-slide:-abp-has(> a[href*="utm_campai"]) +kÿï08@R[vokrug.tv#?#.swiper-wrapper > .series-carousel__item:-abp-has(> a[href*="//ads.adfox.ru/"]) +bÿï08@RRvokrug.tv#?#.swiper-wrapper > .series-carousel__item:-abp-has(a[onclick*="adfox"]) +§ÿï08@R–igromania.ru#?#.swiper-wrapper > .swiper-slide:-abp-has(> div > .knb-card--footer > div > span:-abp-contains(ПартнерÑ�кий материал)) +Kÿï08@R;ascnb1.ru#?#.tablebg:-abp-has(> tbody > tr > td > .nalivaj) +Nÿï08@R>glav.su#?#.tbl:-abp-has(> tbody > tr > td > div[id^="js-hb-"]) + +oneprog.ru .sticky.firstE + za4eti.ru4.stl_d3 [class^="stl_"],.stl_d3 [class^="stl_"] + br + igry-man.net +.stockgame +gdz.ru.store-hosting3 + pikabu.ru".stories-feed__related-stories-adv/ +korabelov.info + 4esnok.by .stream-item, + newxboxone.ru.stream-item-above-post6 + 1news.com.ua + hariola.com.stream-item-widget! + 9tv.co.il.strip_only_desk + promtu.ru .strochkaP + meddaily.ru=.structure-index > div:not([id]):not([class])[style^="width"]f + meddaily.ruS.structure-index > div:not([id]):not([class])[style^="width"] + div[align="center"]' +netschool-edu22-info.ru.su-note< + animaunt.org(.sub-info a[href][target="_blank"] > img4 +ruskinonovoe.net +novoruskino.net .sub-text + newinform.com +.subscribe# + rtraveler.ru.subscribe-wrap+ + autopilot.ru.subscribe_announcement3 +playmaker24.ru.subscrite-widget:first-child# +dtf.ru +vc.ru .supbar--top) + +klops.ru.supercover-banner-header' +games-porno.net.swfgame_bannersD + moniheal.com0.swiper-wrapper > a:not([href*="moniheal.com/"]) + tonkosti.ru.sys-sky! + tv2.today.t-aside-banners + tv2.today .t-bannerb + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life.t-body-txt-ad= + +sheru.ru-.t3-sidebar > div[class="t3-module module "] + translit.net.tBoxAdv! + freezpic.ru.t_bg > center" +taba.ru.taba_rss_wr.rel.fl' +online-buhuchet.ru .table-scrollC + poiskvps.ru0.table1 > tbody > tr[style^="background-color:"] + argumenti.ru.tabloid + kinopati.ru.tabs + sterlegrad.ru.tad +ain.ua.tag-brand-link  + winitpro.ru .targetHolder +kurer-sreda.ru.tax +n71.ru .tb-container! + kafanews.com .tban-content +mobiltelefon.ru.tbannerK +finance.tut.by5.tbl-lite > tbody > tr.clickable ~ tr:not(.clickable)I +finance.tut.by3.tbl-lite > tbody > tr[onclick] ~ tr:not([onclick])T& +$xn----btbdkbsogebtjq6bm4g5b.xn--p1ai +promebelclub.ru.tborder[width="165"]' +wmforum.2bb.ru.tclcon > noindex2 +wmforum.2bb.ru.tclcon > table[height="31"]% +oren.ru.td-ad-background-link$ + botanichka.ru.td-all-devicesF +hs-manacost.ru + botanichka.ru +oren.ru.td-banner-wrap-fullï# +kÿï08@R[molbuk.ua#?#.td-for-other > div:first-child[style] ~ .s-block:not([style]):not(:last-child) +Xÿï08@RHroot-nation.com#?#.td-is-sticky > .wpb_wrapper > div:-abp-has(.td-a-rec) +aÿï08@RQroot-nation.com#?#.td-is-sticky > .wpb_wrapper > div:-abp-has(.wpb_wrapper:empty) +[ÿï08@RKdontimes.news#?#.td-post-content > p:-abp-has(> i > [onclick^="yaCounter"]) +Fÿï08@R6yaizakon.com.ua#?#.td-post-content > p:-abp-has(> ins) +ªÿï08@R™yaizakon.com.ua#?#.tdc-content-wrap > .tdc-row:-abp-has(> div > div > .wpb_wrapper > div > style ~ h4 > span:-abp-contains(/наши партнеры/i)) +fÿï08@RVex-press.by#?#.template:-abp-has(> .template-content > .template-block > div > script) +¬ÿï08@R›auto62rus.ru#?#.text-center:-abp-contains(/ДВИГÐ�ТЕЛЬ ТОРГОВЛИ|И еще немного рекламы|новоÑ�ти партнеров/i) +Tÿï08@RDgagadget.com#?#.text-center:-abp-has(> [style="min-height: 249px;"]) +;ÿï08@R+gdz4you.com#?#.text-center:-abp-has(script) +>ÿï08@R.te.ua#?#.textwidget:-abp-contains(adrotate_ad) +Mÿï08@R=ria.ru#?#.the-in-carousel__item:-abp-has(> [data-has-banner]) +kÿï08@R[1news.com.ua#?#.theiaStickySidebar > .text-html:-abp-has(> div > iframe[src="about:blank"]) +•ÿï08@R„433175.ru#?#.theiaStickySidebar > .widget > .widget :-abp-has(.widget-title > h2:-abp-contains(ИнтереÑ�наÑ� реклама))% + allmmorpg.ru.td-bnr-wrap-full= + vsviti.com.ua(.td-fix-index > a[href][target="_blank"]H + itechua.com5.td-fix-index > p[style="text-align: center;"] > span8 + ani-mania.com#.td-for-blocks > .left-block[style]J + molbuk.ua9.td-for-blocks div[style="margin-bottom: 5px;"] > noindex + mediasat.info .td-g-rec4 +poradumo.com.ua.td-main-sidebar .widget_text( + fainaidea.com.td-menu-backgroundN +dialogs.org.ua8.td-ss-main-content > div[style="margin-top: 40px;"] ~ *- +mister-blister.com.td-ss-main-sidebar2 + newsmsk.com.td_only_right td[height="300"]: + ladylib.net'.td_poisk[style*="background:#f5f0e8;"] + tehnoyug.com.tdsAdG +potolokspec.ru + hardstones.ru + omaske.ru + +selok.ru.teaser  + azovnews.ru .teaser_links/ +nashbryansk.ru + mebelminsk.by.teasers + +rufox.ru .teasers_list$ + gg.xooxo.cc.telegram__wraper# + www.tema.ru.tema_start_wrap' +progroshi.news.temporary_banner& + kg-portal.ru.ten_banner_center$ + kg-portal.ru.ten_footer_wrap3 + +korzik.net!.text > div[style^="min-height:"] +yp.ru .text-banner< + +klubok.com*.text-center > div[style="height: 250px;"]- + horrorzone.ru.text_block_widget_video« +medicalanswers.com.ua +medicalanswers.site +lifeinvest.com.ua +medfactor.com.ua +zhenskiy.kyiv.ua +doctorrouter.ru +uapress.kyiv.ua +woman24.kyiv.ua +bisnesideya.ru +dialogs.org.ua +dv-gazeta.info +halyavapliz.ru +ua-vestnik.com +yroki-kompa.ru + az-priroda.ru + samogonpil.ru + kopilohka.ru + edu-lib.net + farmamir.ru + marketer.ua + mods-fs.net + +ruskweb.ru + +x-kuzov.ru .textwidget, +news.center4.me.textwidget > a[href]H +story-house.ru + +publy.ru&.textwidget > a[href][target="_blank"]F +rating-avto.ru0.textwidget > a[href^="http://www.masmotors.ru"]n +lospopadosos.com +radojuva.com.uaC.textwidget > a[target="_blank"] > img[src*="/wp-content/uploads/"]/ + auto-dvrs.ru.textwidget > div > a > imgu + zarabotoki.ru + geekteam.pro + val-woman.ru + vsezdes.info + +kaminyn.ru + promtu.ru.textwidget > noindexQ +tvoyazhizn50.ru:.textwidget a[href]:not([href^="http://tvoyazhizn50.ru/"])9 + grand-lion.ru$.textwidget a[href][target="_blank"]T + xxx-game.org@.textwidget a[href][target="_blank"]:not([href*="xxx-game.org"])I +eurointegration.com.ua +epravda.com.ua + pravda.com.ua.tfblockT +sportsite777.com +sportabar01.com + tv-assia.org + assiatv.com +.tg-button +mmgp.ru .tg-fon-gif + +pasmi.ru .tg-promo$ + +starhit.ru + +uralweb.ru.tgb +vbr.ru .tgb-content + +parents.ru .tgb__heading +telegraf.com.ua.tgr-ads6 + vedomosti.ru".the-header__top a[href*="?erid="] + vedomosti.ru .the-loader: +shraibikus.com + topdaynews.ru.theiaStickySidebar3 + ukrs.com.ua .theiaStickySidebar .widget_text? +elegantwoman.kyiv.ua#.theiaStickySidebar > .widget_blockg +kino-russfilm.ru + topgir.com.ua + +apral.ru +te.ua).theiaStickySidebar > .widget_custom_htmlš +Zÿï08@RJgorod24.online#?#.title-block:-abp-has(> h2:-abp-contains(Реклама)) +iÿï08@RYunian.net,unian.ua#?#.title-without-border:-abp-contains(Ð�овини партнерів)C + newxboxone.ru..theiaStickySidebar > .widget_text:first-childÌ +serveradmin.ruµ.theiaStickySidebar > :not(#text-html-widget-13):not(#text-html-widget-18):not(#text-html-widget-25):not(.posts-list):not(.login-widget):not([class*="widget_wpforo_widget_recent_"])E + bragazeta.ru1.theiaStickySidebar > [class^="post-"] ~ .clear200 +sm.news!.theiaStickySidebar > [id][class]: + med-heal.ru'.theiaStickySidebar > ul > .widget_text! + +talks.by.themaBannerPlace: + lifetambov.ru%.theme-wrapper > .container > div > *4 +thequestion.ru.theq-header__beta__nav__promo# + nulled.cc.theshit_top_block + +vgtimes.ru.thisad + xv-ru.com .thumb-ad + primorye.ru .ti-block* + +mmamama.ru.tidymag-sidebar-content_ +player.cvary.org +metaverseid.tk + divxplayer.ml + hcdn.online + haes.tech.timecssa +player.cvary.org +metaverseid.tk + divxplayer.ml + hcdn.online + haes.tech +.timecssip + +app2top.ru .tingle-popup  + raceportal.ru .tiser_sape + newsyou.info.tiserpc + +fakty.ua .tit_line + softby.ru .title-inst + +zh24.com.title_spoiler/ +aromatmasla.ru + +progrib.ru .tiz_intext+ +videoshara.net + notefood.ru.tizer5 +avtoelektrik-info.ru +jekstrasens.ru.tizers + gidonline.fun.tiznews +rusdemotivator.ru.tizz* + +habr.com.tm-company-card__brandingT +newformat.info>.tm-content ~ .tm-main-bottom .widget_custom_html:not([style]) + itcrowd.top.tm-top +tmbw.ru .tmbwrekbelow! + kinovdom.tv.tn-player-tsr + +riwkus.pro +.tnx-block( +russia-tv.online.to-brand-danger„ +donday-novocherkassk.ru +donday-taganrog.ru +donday-shakhty.ru +donday-aksay.ru + volga-day.ru + donday.ru +.tobbanner# +kursk-izvestia.ru +.today_cbr + +lovitut.ru +.toneBlock- +urod.ru.toolbarContent > .toolbarLink$ +khersondaily.com .top--banner + igroutka.ru +.top-adapt! + finatica.com .top-admitadv' +portaltele.com.ua.top-ads-links +iz.ru.top-advertising/ + +mashina.kg + +house.kg.top-after-banner3 +soel.ru$.top-b-place > .container > .b-place + india-tv.net +.top-b.rowØ +nikolaev24.com.ua +v-variant.com.ua +dnepr24.com.ua +livejournal.ru +smilekaluga.ru +ura-inform.com + novosti-n.org + odessa.net.ua + bookslist.me + bragazeta.ru + fullsite.org + gazeta.zp.ua + konkurent.ua + afanasy.biz + football.ua + kr24.com.ua + rusvesna.su + samara24.ru + +1tulatv.ru + +rusnext.ru + litrpg.ru + russia.ru + ucheba.ru + +dengi.ua + +riamo.ru + +study.ru + +wildo.ru +1fnl.ru +job.ru +prm.ru +km.ru .top-banner$ +foto.ua.top-banner-container) +pronovostroy.ru.top-banner-slider, +kazan.32top.ru.top-banner__container + kinoplex.ru .top-banners( +dynamomania.com.top-banners-area  + nnews.com.ua .top-bar-ads+ + key-test.ru + +kurs.if.ua +.top-block + +liga.net.top-bnr& + +fight.ru.top-bookmakers-widget + +gamemag.ru .top-branding' + chasdiy.org.top-content-wrapper  +37.ru.top-header-wrapper + +gamemag.ru .top-img-wrap" +ug.ru.top-kitten-container +yk.kz.top-line button + kluch.media .top-line-bn€ +…ÿï08@Rupb.wtf,pirat.one,piratbit.fun,piratbit.org,piratbit.top#?#.top_menu:not([class*=" "]):-abp-has(> a[href="#"] > span)# + +klubok.com.top-m-used-block^ + prsport.netK.top-menu > .top-menu-item ~ .top-menu-item ~ .top-menu-item > :not([href])  + +cossa.ru.top-menu-banner& +vtb-league.com.top-menu-fonbet + orakul.ru .top-news +tut.by +.top-offer + rugrad.eu +.top-promo0 + pavlodar.news + +pavon.kz.top-promo-view" +euro-football.ru +.top-rates# +nikopolnews.net .top-reklama+ +autosport.com.ru.top-sidebar-banner + +fcenter.ru .top-site-an& +anti-malware.ru.top-text-block- + ebanoe.it.top-xata > .content_wrapper + shophelp.ru .top-yoox  + splkirov.ru .top2-banners + map.cn.ua.topAdv˜ +arbitr-praktika.ru +zarplata-online.ru +pro-goszakaz.ru +pro-personal.ru +hr-director.ru +sekretariat.ru + gazeta-unp.ru + trudohrana.ru + budgetnik.ru + dirsalona.ru + stroychet.ru + business.ru + glavbukh.ru + +buhsoft.ru + +cxychet.ru + +kom-dir.ru + menobr.ru + resobr.ru + +kdelo.ru + +zdrav.ru +26-2.ru +ugpr.ru +law.ru +rnk.ru +fd.ru +gd.ru.topAdvertize__wrapperI +govoritmoskva.ru + megomult.ru + +karaoke.ru +ctc.ru +.topBanner +risk.ru.topBar +ua-football.com.topBookX + otipb.at.uaE.topBorder > noindex a[href^="http"]:not([href*="otipb.at.ua"]) > img1 + panzer35.ru.topLink a[href*="ruscale.ru"]) + sexytales.ru + sexytal.com.top_a" +magical-skin.com +.top_baner\ +deti-obninsk.ruE.top_baners > a[href][target="_blank"]:not([href^="/deti/index.php"])£ +vse-sto.com.ua + football24.ru + cntime.cn.ua + inedelya.ru + meteo-tv.ru + +bigmir.net + +maulnet.ru + +tourdom.ru + banana.by + +media.az .top_banner% + autodmir.ru.top_banner_hidderG +forum.fonarevka.ru + twogarin.info + artofcare.ru .top_banners + simhost.org .top_bg > a' + greenpost.ua.top_blogger_banner + pressball.by +.top_brand +tut.by.top_brand_links +delovoigorod.ru.top_bun" + rekportal.ru.top_container3 +rcmm.ru$.top_header a[href][target="_blank"]* +coronavirus-monitor.info +.top_links + self-edu.ru .top_lnk_imgi + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf.top_menu > a[href="#"] > spanƒ + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf8.top_menu:not([class*=" "]) > a[href^="/"][href*="xt/"]! + +sunhome.ru.top_right_side + top.thepo.st.top_row! + +consmed.ru.top_tizer_cell + dalaaadno.ru.topad& +forum.smolensk.ws .topad_banner  + remontka.pro .topadmobile) +zerocoolpro.biz + krisha.kz.topb + vsetv.com.topban% + +pushkin.ru.topbannans-wrapper@ +post-tracker.ru + automobili.ru + +rtkorr.com +.topbanner  + santikov.net .topbannerbg +news.tj .topbannersV& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1ai +kingisepp-today.ru.topbar__link > .red + mp3poisk.net.topbnrN + superkot.com:.topic-actions + .clear + .post.bg2 + .divider + .post.bg3" + +7dach.ru.topic_shop_offers% + bezformata.ru.topicbanner_box; +murman-fishing.ru".topiclist + div[style^="padding"] + +finiz.ru.topline +m.ua .toplineban/ + interfax.ru.toplogo__advertisement-wrap+ +mymedicalportal.net.topnews noindex + +sport.kg.toprek… +dÿï08@RTtrueua.info#?#.tui_section__pad:-abp-has(> .tui_title:-abp-contains(Реклама)) +Lÿï08@R [data-widget-id]) +Sÿï08@RCtsn.ua#?#.u-divider--t > .l-row > .l-gap:-abp-has(> .c-aside__port) +pÿï08@R`gubkinskiy.com#?#.ui-sortable > .ui-sortable-handle:-abp-has(> h4:-abp-contains(Реклама)) +sÿï08@Rcinformburo.kz#?#.uk-container > .uk-grid:-abp-has(> div > strong ~ div > script[src*="idealmedia"])" +rabota24online.ru .topright+ +cinephile-online-hd.xyzy.ru.topsbox& + +baibako.tv.topserial > a[href]/ +dynamo.kiev.ua.torba-lightbox-side-wrapE + +tproger.ru3.tp-layout-default__aside-right-content > div:emptyD + +rybolov.ee2.tp_rightblock_noframe [width="336"][height="240"] +irad.ru +.tr-banner9 + fanforum.ru +24.kz.tradingview-widget-container6 + bizmedia.kz#.tradingview-widget-container__logo! + trashbox.ru.trash_special +work.ua.trn-info-block + +kerch.fm.trongds +nixp.ru .trueoffice$ + doramax.org.tt-panel > .note + tonkosti.ru.tt-tim +actualnews.org.ttte + kissfm.ua.tuborg + trueua.info .tui_banner, +news.turizm.ru.turoperator_adv_title +vgorodekirove.ru.two-ad + +podolsk.ru .two-banners* + theuk.one +usa.one.two-big-block + expert.ru .two-col ~ hr, +iz.ru.two-col-with-advertise2__right1 +iz.ru$.two-col-with-partner__inside__right% + wowhead.com.type-coupon-codes, +all-biography.ru.tz-widget.container + +focus.ua +.u-m-h-250: + koolinar.ru'.u-sidebar [style="min-height: 400px;"]# + dublikat.one.uix_ad_banners: + otvetkak.ru'.uk-article-header-content:nth-child(2)' + otvetkak.ru.uk-panel-box.linker, + otvetkak.ru.uk-panel-box.widget_textR + aflenses.net>.uk-width-8-10 > div[align][style*="width:"][style*="height:"]  +vechirniy.kyiv.ua.ukrnet  + tvoemisto.tv .ukrnetlinks +kp40.ru +.ul-button + +allbest.ru .ul_partner$ + slukh.media.ult-banner-block + +gamer.ru .under-back$ + 49000.com.ua.under-menu-area" + kinoprofi.vip .under-player +66.ru .underNewsAdb + weacom.ru.unicorn+ +korrespondent.net.unit-inner-banner* +korrespondent.net.unit-side-banner) +korrespondent.net.unit-top-banner. +korrespondent.net.unit-top-dark-banner1 +eurointegration.com.ua.unit_header-banner + hibiny.ru .up-pek-top + lelang.su.up_b +101.ru.uracy +noi.md.ushi +zoneofgames.ru.ushki2& +rockstargame.su.ut-contentroll + gta-gaming.ru.v-recom  + vitaportal.ru .vHeight300, +express-novosti.ru + +batsa.me.v_adv' +val.ua.val-external__top-bannerø +kÿï08@R[d-russia.ru#?#.vc_column_inner > .vc_column-inner:-abp-has(.g-single > [id^="yandex_rtb_"]) +\ÿï08@RLbizua.org,podruzke.ru#?#.vce-related-box:-abp-has(> .main-box-inside script) +Iÿï08@R9vesti.ru#?#.vgtrk-a1:-abp-has([id^="MediaMetricsInject"]) +=ÿï08@R-vesti.ru#?#.vgtrk-a1:-abp-has([id^="adfox_"]) +Lÿï08@R a[href][target="_blank"]  +24tv.ua.video-dv-wrapper´ +fast-torrent.club +fast-torrent.ru +fast-torrent.su + fast-fiml.ru + filmpotok.ru + kinomuch.ru + pickfilm.ru + +nebeda.net + veleto.ru + +vixim.ru.video-inner-top + geomap.com.ua +.video-rowy +pornobomba.click +porn0sex.online +porno-bomba.net +pornoklad.live + p0sembed.com + +pbembed.me .video-spot) +pornopodborka.com.video-spots-col! + gayzona.pro.video-sqrs-blG +sport-express.net +sport-express.ru.video-wrapper-advert-slot& +www.zoneofgames.ru .videoBannerL +obozrevatel.com + uaportal.com + stopcor.org +oboz.ua .videoOfDay& +video.sibnet.ru.video__topline; +moyareklama.by +moyareklama.ru.video_advert_block  +go32.ru.video_code:empty + hdstudio.org .video_rekl# + ebongo.tv.video_right_block, +smotrikinohit.ru.videoconteiner ~ h4$ + anime777.ru.videoroll-banner( +gossipgirl.top.videoroll-wrapper + seriallife.ru.vids +rbc.ua.vidverto-wrapper2 + lostpix.com.view > div[align="center"] > a+ + drupal.ru.view-advertisement-blocks= +mypresentation.ru$.view-related-item[style^="height:"] + +ridus.ru .view_banner' + kino-teatr.ru.view_online_block. + lektsii.org.viewinfo ~ center > .link1. + lektsii.org.viewinfo ~ center > .link2( +teleport2001.ru.views-row-banner( + l2argument.ru.vipblock.container +baby.ru .viqeo-embed& +virus-stop.com.ua .virus-widget2 +modernfirearms.net.visible-lg .widget_text + +sochi24.tv +.visit-url( + 3dnews.kz + 3dnews.ru +.vivo-wide, + pornbase.info.vjs-inplayer-container2 +api-video.khl.ru.vjs-link_view-yandex-plus1 +sovetromantica.com.vjs-overlay-background + prgazeta.ru .vk-group" + mp3poisk.net.vk-music-link¤ +fÿï08@RVallboxing.ru#?#.voting > .block_title:-abp-contains(Ð�овоÑ�ти партнеров) +eÿï08@RUlimehd.tv#?#.w-full > a[href^="/channel/"] ~ div:-abp-has(> div > [id^="yandex_rtb"]) +Rÿï08@RBwallscloud.net#?#.walls_data > .item:-abp-has(> .thumbnail script) +Vÿï08@RFsport-kr.com.ua#?#.widget > .widgettitle:-abp-contains(Реклама) +lÿï08@R\sport-kr.com.ua#?#.widget > .widgettitle:-abp-contains(Реклама) + .clear + .widgetbox +cÿï08@RSvolnorez.com.ua#?#.widget-area:-abp-has(> .widget_text > .textwidget > [id^="CNM"]) +iÿï08@RYvolnorez.com.ua#?#.widget-area:-abp-has(> .widget_text > .textwidget > [id^="MarketGid"]) +Uÿï08@REshopinfo.com.ua#?#.widget-group-no-name:-abp-has(.sidebarAdvertising) +gÿï08@RWinterface31.ru#?#.widget-pages:-abp-has(> .widget-header:-abp-contains(Реклама)) +Hÿï08@R8au-ok.com#?#.widget-sidebar:-abp-has(> div .adsbygoogle) +Lÿï08@R div > [id^="adfox_"]) +rÿï08@Rbmnogovoprosov.ru#?#.widget-sidebar:-abp-has([src*="/wp-content/uploads/"][src*="/ban"][src*="er"]) +Gÿï08@R7mnogovoprosov.ru#?#.widget-sidebar:-abp-has(p > script) +[ÿï08@RKpkzsk.info#?#.widget-title:-abp-contains(Ð�овоÑ�ти партнёров) +Hÿï08@R8stravy.net#?#.widget-title:-abp-contains(Реклама) +rÿï08@Rbfainaidea.com#?#.widget:-abp-has(.block-title > span:-abp-contains(Ð�овоÑ�ти партнер)) +<ÿï08@R,vekx.ru#?#.widget:-abp-has(> .pm-ads-banner) +Iÿï08@R9only-paper.ru#?#.widget:-abp-has(> .text-center > script)$ + mp3poisk.net.vk-player-promo +gdz-putina.fun.vk_show6 + spletnik.ru#.vms_article_parent a[href*="utm_"]- + ecology-of.ru + agro-biz.ru .vnimanie# +megaresheba.ru .vopros-block + vprognoze.ru .vp-bonus' +8vp.ru.vp-content-l-r > div > ** + oblgazeta.ru.vr_mobile_right_block + vuzopedia.ru .vsplyvOkno& + bvedomosti.ru.vtem_bannergroup +dermatitanet.ru.vtizer + kinomania.ru .w-banner& +vgorodekirove.ru.w_back_shapes( + livesport.ru + livecars.ru.wall" + +xmages.net.we-are-featured% +securitylab.ru.webinar-banner + gotoshop.ua .welcome20 +semestr.online + +semestr.ru .well-google + portsoft.info.wf_ads/ + +m.vk.com.wi_head[href*="/away.php?to="]: + +m.vk.com*.wi_head[href*="/away.php?to="] + .wi_bodyF +sport-express.net +sport-express.ru.wichtig[class*="hidden"] +lgz.ru .wide-ban + glavmore.ru .wide-banner +all.biz .widebanner9 +crypto-coins.ru".widget > a[href][target="_blank"] +nur.kz .widget-1xbet" + report.if.ua.widget-a-wrap+ +chelny-izvest.ru.widget-any-content5 + factroom.ru".widget-area div[class*="-banner"]3 +lemonade.style + knife.media.widget-banner + +allcarz.ru .widget-bnnr; + 5peciali5t.tk&.widget-content > a > img[width="200"]# + bibliofond.ru.widget-direct@ +shopinfo.com.ua).widget-group-no-name .sidebarAdvertising# +tv.i.ua.widget-news_premium! + maanimo.com.widget-offers' +nur.kz.widget-parimatch-wrapper# + bibliofond.ru.widget-pomogi5 + highload.tech + +mc.today.widget-spec-project# +itc.ua.widget-spec-projects: +gorsovet.com.ua + dnpr.com.ua.widget-type-banners! + fatcatslim.ru .widget.HTML) +videoculinary.ru.widget.d-xs-none: +matiz-club.com$.widget.indexcontent[style*="fixed"]; +prostatitanet.com + hitsovet.ru.widget.widget_text‹5 +Hÿï08@R8liveresult.ru#?#.widget:-abp-has(> [class*="bookmaker"]) +Dÿï08@R4andro-news.com#?#.widget:-abp-has(> div > .av-block) +Fÿï08@R6liveresult.ru#?#.widget:-abp-has(a[href*="bookmaker"]) +Gÿï08@R7liveresult.ru#?#.widget:-abp-has(a[href*="utm_campai"]) +fÿï08@RVrustaste.ru#?#.widget_categories:-abp-has(> div[align="center"] > img[src*="/aliban"]) +qÿï08@Raprofootball.ua#?#.widget_custom_html:-abp-contains(/^новоÑ�ти партн|^реклама/i) +`ÿï08@RP125region.ru#?#.widget_custom_html:-abp-has(> .textwidget > #MediaMetricsInject) +Zÿï08@RJgrippua.com.ua#?#.widget_custom_html:-abp-has([data-wpel-link="external"]) +Kÿï08@R;reedr.ru#?#.widget_custom_html:-abp-has([id^="yandex_rtb"]) +Tÿï08@RDgrippua.com.ua#?#.widget_custom_html:-abp-has(a[href*="utm_campai"]) +oÿï08@R_bitva-ex.ru#?#.widget_custom_html:-abp-has(span:-abp-contains(Реклама партнера)) +Aÿï08@R1zaruba.fun#?#.widget_text:-abp-has(#kwork-widget) +Cÿï08@R3bookzvuk.ru#?#.widget_text:-abp-has(.medicinetizer) +iÿï08@RYphotolessons.org#?#.widget_text:-abp-has(> .td-block-title:-abp-contains(Реклама)) +Wÿï08@RGnovynarnia.com#?#.widget_text:-abp-has(> .textwidget > #mt_promo_wghot) +Xÿï08@RHthe-geek.ru#?#.widget_text:-abp-has(> .textwidget > [id^="yandex_rtb_"]) +Oÿï08@R?volnorez.com.ua#?#.widget_text:-abp-has(> .textwidget > script) +\ÿï08@RLvolnorez.com.ua#?#.widget_text:-abp-has(> .textwidget img[src*="/banners/"]) +nÿï08@R^progolovne.ck.ua#?#.widget_text:-abp-has(> .widget-title > span:-abp-contains(Реклама)) +…ÿï08@Rurg-adguard.net#?#.widget_text:-abp-has(> .widget-title:-abp-contains(/ХоÑ�тинг-партнёр|Реклама/)) +yÿï08@Rinews.center4.me#?#.widget_text:-abp-has(> .widget-title:-abp-contains(Реклама партнеров)) +mÿï08@R]obzor-new.ru,softfl.ru#?#.widget_text:-abp-has(> .widget-title:-abp-contains(Реклама)) +Wÿï08@RGaverina.com,just-for-fun.ru#?#.widget_text:-abp-has([id^="yandex_rtb"]) +ÿï08@Roforum.taxiservice.com.ua#?#.windowbg:-abp-has(> .poster > h4:-abp-contains(Форум ТакÑ�и СервиÑ�))I +storinka.com.ua + storinka.site!.widget:not([class$="hidden-xs"])- +sport-express.ua.widgetBestBookmakers/ +ukrfootball.ua.widgetBestBookmakersNews# + gazetavv.com.widget_ad_unit +i.ua .widget_advk +atlasprirodirossii.ru +portaltele.com.ua + hyperione.com + +sho.org.ua + zazloo.ru .widget_blockC + volyninfo.com..widget_calendar ~ .widget_text ~ .widget_text( +sdelalremont.ru.widget_cb_widgetŸ +borodina-protiv-buzovoj.ru +simptomy-lechenie.net +auto-portal.com.ua +kazakh-zerno.net +kyivvlada.com.ua +smartmama.com.ua +ternopillive.com +analitikaua.net +electric-220.ru +gizchina.com.ua +psiholog4you.ru +root-nation.com +sdelalremont.ru +4studio.com.ua +avtotachki.com +cryptodzen.com +erokomiksi.org +flytothesky.ru +glavradio.info +happymodern.ru +ua-report.info + alladvices.ru + amorefilms.ru + rubrowsers.ru + ua-news.in.ua + volyninfo.com + cheb-live.ru + detaly.co.il + gametrick.ru + lhealth.info + netsofta.net + new-s.com.ua + pravda.cn.ua + sharknews.ru + tipsboard.ru + 100pdf.club + aspekty.net + golos.te.ua + vgolove.net + vizitnlo.ru + withcars.ru + wona.com.ua + +chas.cv.ua + +dacha.help + +koskomp.ru + +mi100.info + +vseiski.ru + dietdo.ru + ebanoe.it + zelenj.ru + +24.cv.ua + +muwhi.ru +1.zt.ua +m-zh.ru.widget_custom_htmlO + femmie.ru>.widget_custom_html > .partners__heading ~ .custom-html-widget> +vsepredohraniteli.ru".widget_custom_html ~ .widget_text> + aeslib.ru-.widget_custom_html.FixedWidget__fixed_widget0 + +blagden.ru.widget_custom_html:last-child1 + actual.today.widget_exchange_rates_widgetß +soderzhanki2.ru +holostyak.site + discover24.ru + edurusnews.ru + inforuss.info + krashevseh.ru + mobnovelty.ru + lentaruss.ru + mezha.media + trud-ost.ru + +smiruss.ru + +aplik.ru +itc.ua.widget_execphp& + +censor.net.widget_header aside1 + animalbox.ru.widget_html_javascript_adder2 +podskazki.info.widget_hugeit_slider_widget' + +kyiv.media.widget_leftadvbanner" + hyperione.com .widget_mbywxñ +politarena.online +cryptonewsua.com +volyninfa.com.ua +autogeek.com.ua +gk-press.if.ua + expert.com.ua + hronikers.com + svoboda.te.ua + inform.zp.ua + kulemet.com + mezha.media + +pclegko.ru +sn.by.widget_media_image) +bazarmedia.info.widget_mpslwidget' + vegetarian.ru.widget_multiplead! + testsoch.net .widget_partn + giport.ru .widget_pfj! + portall.zp.ua .widget_rekl# +tula-football.ru .widget_rss& + tea-online.ru.widget_sslwidgetP +analitikaua.net +ua-report.info + aspekty.net.widget_super_rss_reader¿ + +portalvirtualreality.ru +chudesniesovetiki.site +domashnie-zagotovki.ru +atlasprirodirossii.ru +northern-newspaper.ru +1000iodinsovet.ru +domashniecvety.ru +golovnie-boli.com +lightstories.site +ventilationpro.ru +legkopolezno.ru +mamabook.com.ua +meganovosti.net +poleznaya.dp.ua +portable-rus.ru +roza2012.net.ua +svoitabachok.ru +zdorovia.com.ua +clubwindows.ru +erokomiksi.com +koroleffsov.ru +nash-sekret.ru +newssky.com.ua +paratechnik.ru +prostolinux.ru +putin-today.ru +sci-fi-news.ru +snelwilcox.com +udobreniya.net +ustanovkaos.ru + agrimpasa.com + boxvideotv.ru + calend.online + excelprost.ru + hyperione.com + inforpost.com + krashevseh.ru + macosinfo.com + miformat.info + ovetryanke.ru + podarok.video + rainbowsky.ru + uman24.org.ua + alkogolu.net + brunet-ka.ru + free-news.su + geomedia.top + giantessa.ru + hronika.info + makeupkey.ru + nagadala.com + strana-it.ru + belattra.ru + cherepah.ru + chirik.info + galas.te.ua + htmlhook.ru + kopomko.com + kulemet.com + mezha.media + newsrank.ru + podruzke.ru + yconsult.ru + +golbis.com + +hitagro.ru + +ofigeno.ru + +ogribax.ru + +ru-mir.net + +ruslo.info + +sich.zp.ua + 2info2.ru + 4esnok.by + bizua.org + +srnsk.ru + +trmzk.ru + +walaw.ru +alau.kz +pzik.ru .widget_text2 +expert-dacha.pro.widget_text > .widget-top7 +gitarshkola.net .widget_widget_catchbox_adwidget# +elevatorist.com .widget_wrapR +samelectric.ru + agrognom.ru + kvmarvel.ru + +apral.ru.widget_zen_widget' + inetsovety.ru.wiged.widget_text$ + enovosty.com.wiget.ukr_links + ural56.ru .wikimart + lookatme.ru.with-ad +thelastgame.ru .wogame553 +portal.lviv.ua.wonderpluginslider-containerç +‡ÿï08@Rwbuhgalter911.com#?#.wrapper-all-news > .news:-abp-has(> .news__description > a > span:-abp-contains(/реклама/i)) +Cÿï08@R3drive2.com,drive2.ru#?#.x-box:-abp-has(> .c-dv-sns) +Hÿï08@R8drive2.com,drive2.ru#?#.x-box:-abp-has(> [id^="adfox_"]) + showfilm.club.work + livecars.ru.wow_box@ +players.com.ua*.wp-block-image > figure img[height="107"]@ +players.com.ua*.wp-block-image > figure img[height="160"]$ + levashove.ru.wp-block-spacer + +travel3.ru .wpInsert% + experttur.com.wp_baraban_like" + provce.ck.ua.wp_image_wrap$ + giantessa.ru.wpb_text_column% +vsaduidoma.com.wppopups-whole- +irr.by +irr.ru.wrBanerPlace noindex# + avtosreda.ru.wrap > noindex# + +vse42.ru.wrap-adplace-frame" +kurer-sreda.ru .wrap-inf4x4, +prosadiogorod.ru.wrap_flat_ads_block + osvita.ua .wrapbannerB +novy.tv3.wrapper > #header > a[href][target="_blank"] > img& +grinkod.spb.ru.wrapper > aside8 +euro-football.ru .wrapper > div[style*="height:"]Q + multiurok.ru=.wrapper > div[style^="background:"][style*="videouroki.net"]9 + 2whois.ru(.wrapper > div[style^="overflow:hidden"]4 + +feofan.net".wrapper-outer > .background-cover& + charter97.org.wrapper-sponsors + +urank.ru.wrapper-sticky3 +tele.ru$.wrapper-sticky .wpb_content_element  + aldebaran.ru .wrapper_ban@ + volnafm.com-.wsite-image-border-thin > a[target="_blank"] +cq.ru.wtb + winzoro.net.wzADS + +xakep.ru +.xakep-ads) + tverisport.ru + tvtver.ru.xasdfx + +namba.kg.xbet+ + gamer-mods.ru.xopo-player-container& +telestrekoza.com.xoxo.blogroll) + pornoham.net.xpwt_video-spots-col + tvernews.ru.y_dzen + macilove.com .ya-candy + vokrug.tv.ya-dzen  + +infox.ru.ya-invite-block +u-f.ru.ya-news, +bestpersons.ru.ya-partner_ads-up > *) +game-tournaments.com .yaadstracker +softportal.com.yablock + obsuzhday.com.yad + +mytor.info.yamin +vn.ru.yan-zen + +webtous.ru.yand + mixmuz.ru.yandex$ + agronomu.com.yandex-absolute& + +mashina.kg.yandex-ad-container! + tvcook.ru.yandex-adv_list$ +realnoevremya.ru .yandex-dzen" +radarmedia.net .yandex-link) + expertcen.ru.yandex-market-widget! +sdelanounas.ru .yandex-zen + regmarkets.ru .yandexAd( + queen-time.ru.yandex_ad_floating + freeexe.net .yandex_ads8 + +ixbt.com + +ixbt.pro +www1.ru.yandex_recommend + promodj.com .yandexmusic +1777.ru.yanews__blockÅ +8ÿï08@R(24smi.org#?#.yet:-abp-has(div[id]:empty) +aÿï08@RQovgorskiy.ru#?#.zsnazzy:-abp-has(.color_b:-abp-contains(Блок рекламы)) +]ÿï08@RMkerch.fm#?#:not(#dle-content) > .shortstory:-abp-has(> a > div > .advs-label) +Gÿï08@R7kurs.com.ua#?#[aria-live] > tr:-abp-has(> .currencycom)p +windows-program.com +windows-driver.com +windows-driver.net +softomania.net + warezok.net.yaoffer +ideaprog.download.yapr + womanhit.ru .yasubscribe + +mytor.info.yelobv4 + +sport.kg.yelrec' +news.soundex.ru.yjround_in > br# + +zpravda.ru.yjsquare.zpravdaZ +prosound.ixbt.comA.ym-gbox-right > div[style="margin:0; padding:0"][align="center"]' + pravda.com.ua.ym-video--wrapperH + irecommend.ru + 3dnews.kz + 3dnews.ru.ymarket-affiliate-widget + androeed.ru.you_a + sinonim.org.youtube& + tonkosti.ru.youtube-lm-trailer + +mob.org.ru .yt-header-bgM + +zx-pk.ru=.yui-sidebar > [id^="widgetlist_column"] > li:nth-child(-n+2)$ + livesport.ru.z_picard_card_d" + livecars.ru.z_wow_aftertxtU +zab.ru +zab.tv=.zab-news > article.zab-news__item ~ div:not(.zab-news__item) + gidonline.eu.zbin + +wtftime.ru.zen + tverlife.ru +.zen-block& + minsknews.by.zen-block-wrapperC + nashgorod.ru + mgazeta.com + +56orb.ru.zen-popup-component; +businessman.ru + volkovysk.by +syl.ru .zen-sector + mskgazeta.ru .zen-widget& + +setafi.com + +reedr.ru.zen_box" + mmohelper.ru.zen_subscribe +pechiexpert.ru.zenlink! +znaj.ua.znaj-banners_ajax + lfootball.ws .zoneBanner + topcraft.ru .zverinco + +vrhell.com.zzz4 + freepiks.ru!:not(#container-top) > blockquote# + +meteo.by:not(.blinks) > .ad0 + 365news.biz:not(.sidebar) > .widget_text6 + +vesti.ru&:not(.vgtrk-a1-list_inner) > .vgtrk-a1o +patrioty.org.uaX:not(html) > iframe[style*="important"]:not([src^="https://disqus.com/embed/comments/"])¯ +rutor-search.info +tracker-rutor.tk +blackrutor.site +fastrutor.site + 123torrent.ru + extrutor.site + listrutor.org + new-rutor.org + rutor-live.tk + 37.1.202.140 + 37.1.203.156 + 37.1.204.182 + 37.1.205.159 + 37.1.206.118 + 37.1.206.121 + 37.1.206.231 + 37.1.207.130 + 37.1.216.106 + 37.1.216.119 + 37.1.217.105 + 37.1.217.113 + berutor.site + extrutor.org + 37.1.201.32 + 37.1.204.76 + 37.1.205.47 + 37.1.206.95 + 37.1.207.65 + 5.45.65.153 + 5.45.66.118 + 5.45.70.162 + herutor.org + pipitor.org + pronpic.org + prutor.site + rutor1.site + +5.45.86.39 + +5.45.87.85 + +sssrtor.ru + +xrutor.org + hawk.live + +r-tor.ru:not(obhod-adblocka), + +csmania.ruA[onclick^="countAdClick"]; +semestr.online + +semestr.ru[action*="homework.ru"]< +semestr.online + +semestr.ru[action*="vse-sdal.com"]3 + topcraft.ru + +mctop.su[action^="/bclick/"]B +fluence-club.ru+[align="CENTER"] > a[href][target="_blank"]H +duster-clubs.ru1[align="CENTER"] > a[href][target="_blank"] > imgA +vsaduidoma.com+[align="center"] > a[href][target="_blank"]$ +putingamer.net[alt*="Amigo"] + +ilenta.com [alt="Ads"]! + taxifm.ru[alt="LoveProd"]; + chipmaker.ru + +goldsrc.ru[alt="advertisement_alt"]( + gzt-sv.ru[alt^="Реклама"]/ + uznayvse.ru[aria-label="areaAdvertise"]0 + uznayvse.ru[aria-label="Реклама"]I + rutube.ru8[aria-label="информационный баннер"]W + insite.suF[cellspacing="2"] > tbody > tr > td[bgcolor="#ffffff"][align="center"]& + hotcharts.ru[class$="_banner"][ + softru.ruJ[class$="_block_bg_container"] td[align="center"] > p > a[target="_blank"]" + finget.ru[class$="_top_a"]& + klivent.net[class$="ad_title"]# + petromap.ru[class$="banns"]" + +exnews.org[class$="bbody"]® +oÿï08@R_pravdanews.info,ruspravda.info#?#[class*="_title"]:-abp-contains(/ партн|реклама/i) +Kÿï08@R;vedomosti.ru#?#[class*="banner"]:-abp-has(.teaser-commerce) +dÿï08@RTigrigo.net#?#[class*="navi_title"]:-abp-contains(/браузер|партнеры/i) +vÿï08@Rfrintor.info,rintor.net#?#[class] > div:-abp-has(> [class*="title"]:-abp-contains(/Our Friends|Sluts/))  +news.tj[class$="bsnack"] +cq.ru[class*="-odd"]# + +vesti.kz[class*="-top-btn"]  +oboz.ua[class*="Banner"]F + igromania.ru + kanobu.ru%[class*="HeadingPage_most_discussed"]3 +business-gazeta.ru[class*="__advertising-"]  + libsib.ru[class*="_a24"] +cq.ru[class*="_book"]& + kino-teatr.ru[class*="_dobro"] +cq.ru[class*="_odd"]' + scarabey.org[class*="ad-block"]' +nur.kz[class*="ad-slot-module"]! +vz.ru[class*="ad_banner"]1 +nur.kz#[class*="adv"][class*="laceholder"]J + football24.ua + zaxid.net +24tv.ua[class*="adv-"][class*="new"]# + argumenti.ru[class*="adv_"]O +androidinsider.ru +appleinsider.ru + +hi-news.ru[class*="af_advert_"]! + +drive.ru[class*="autoRu"]' + +drive.ru[class*="autoRu"] + .hrÜ +ua-independent.com +anime-bit.online +obozrevatel.com +players.com.ua +podrobnosti.ua + lifenews78.ru + vbryanske.com + opticlub.org + lifenews.ru + +inflora.ru + +hi-fi.ru +amic.ru[class*="banner"]; + avtosreda.ru + vikna.if.ua[class*="banner-border"]- +disgustingmen.com[class*="bg_banner"]% + vse.rv.ua[class*="billboard"]6 +anna-news.info [class*="blog-holder"] > noindex^ + glavred.info + glavred.net + +unian.info + unian.net + +unian.ua[class*="bnr-block"]E +football.konkurent.ua +euro-football.ru[class*="bookmaker"]4 + cybersport.ru[class*="bookmaker"]:not(.root)( + expert.ru[class*="box-partners"]% + argumenti.ru[class*="cc_adv"]) + mcrate.su[class*="commerc_panel"]4 +dni.ru&[class*="container"][class*="partner"], + prokuzbass.ru[class*="container-ad"], + detaly.co.il[class*="container_ads"]R + pravda.if.ua>[class*="footer"] > [class*="menu-section footer-"]:last-child2 +cq.ru%[class*="grid"] > a[href*="playerok"]2 + forum.guns.ru[class*="hide"][class$="ban"]- +appleinsider.ru[class*="home-credit"]4 +puerrtto.livejournal.com[class*="kupibilet"]( +espritgames.ru[class*="landing"]+ +www.onliner.by[class*="megabanner"]* + minfin.com.ua[class*="mfz-banner"]* + minfin.com.ua[class*="mfz-teaser"]6 +virusbase.ru.free-anti-spy.com[class*="modal"]% +kg.ua[class*="region-banner"]B +kg.ua5[class*="region-news"] > .block > * > .img-responsiveE +kg.ua8[class*="region-news"] > .block a[href][target="_blank"]h +mypresentation.ru +tonna-games.ru + +pshack.net + +2ch.life +2ch.hk +2ch.su[class*="rekl"]' +yapx.ru[class*="revenue-block"]0 + sexoporno.su[class*="sam"][class*="pro"] +hwp.ru[class*="tbann"]? +nakrutiperiscope.ru +sdelala-sama.ru[class*="teaser"]0 +espritgames.ru[class*="templatespromo_"]@ +novadoba.com.ua + agroinfo.kz[class*="widget_sp_image"]# + +pdalife.ru[class*="winner"]1 + livesport.ru + livecup.run[class*="wow"] + +vesti.kz[class*="xbet"]ß +solnechnogorskriamo.ru +krasnogorskriamo.ru +domodedovoriamo.ru +zhukovskiyriamo.ru +riamobalashiha.ru +schelkovoriamo.ru +sergposadriamo.ru +lubertsyriamo.ru +mytischiriamo.ru +serpuhovriamo.ru +kolomnariamo.ru +korolevriamo.ru +podolskriamo.ru +reutovriamo.ru + klinriamo.ru + +riamo.ru[class*="yandex-news-promo"], +moreprodukt.info[class*="yandexzen"]) + neosmi.ru[class="0"] > .firstnews± + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life][class="attach bordered med"] > tbody > .row3 ~ .row3 > td > :not([class^="internal-promo-"])Í +ïÿï08@RÞallpravda.info,geo-politica.info,globalwarnews.ru,inosmi.info,news24today.info,polit-mir.ru,pravdoryb.info,putin24.info,vnn24.ru#?#[class]:-abp-has(> .name:-abp-contains(/больше | партн|прочие | Ñ�ми/i)) +Mÿï08@R=argumenti.ru#?#[class]:-abp-has(> a[href] [class*="partner"]) +Eÿï08@R5tsn.ua#?#[class]:-abp-has(> iframe[src*="/banners/"]) +cÿï08@RSlife.ru#?#[class^="styles_title_"]:-abp-contains(Ð�овоÑ�ти партнеров)4 + examenpdd.com[class][style*="important"] * *7 + igromania.ru + kanobu.ru[class^="AdFoxBanner"]& + brestcity.com[class^="BlockR"]1 +diletant.medialass^="HomePage_aBanner"]2 + kanobu.ru![class^="IgromaniaChannel_mania"]7 + igromania.ru + kanobu.ru[class^="LentaAdFox_"]" + +360tv.ru[class^="LinkZen"]* + www.sibnet.ru[class^="WinkPromo_"]) +overclockers.ua[class^="ad_slot"]/ + +bug.org.ua + +yvision.kz[class^="ads_"]( + wot-news.com[class^="adv_first"]! + +sr-week.ru[class^="advt"] +cpa.rip[class^="bablo"]‡ +perevolockday.ru +sorochinskday.ru +agronom.com.ua + buzulukday.ru + +orenday.ru + +saltday.ru + +nsday.ru[class^="baner"]M + gorodkirov.ru + goodgame.ru + kolo.news +sm.news[class^="banner"], +sport-express.ua[class^="best_game"]' + autodmir.ru[class^="block_tgb"]b + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life[class^="bn-"]$ + season.ru[class^="bnnr_bx_"] +101.ru[class^="bnr-"]7 +geonavigator.ge + navigator.az[class^="brand"]. + slovoidilo.ua[class^="branding-link-"]% + +shuba.life[class^="c-banner"]( + ukrsport.pro[class^="cs-banner"]. + fastpic.orglass^="embed-responsive"]" + +klubok.com[class^="gekon"]1 + protocol.ua[class^="headerBanner"] > .topd +brainstorage.me + freelansim.ru + +moikrug.ru + tmfeed.ru![class^="menu"][class*="special"]' +gig-torrent.ru[class^="mgedwn"]' + +zona.media[class^="mz-advert-"]. + abnews.ru +sm.news[class^="partner"]) + +fishki.net[class^="partner-post"]& +vc.ru[class^="post-branding-"]  +itc.ua[class^="product"] +hwp.ru[class^="promo"]  +cpa.rip[class^="quads-"] + +c-sgo.ru[class^="rekl"]) + +kinohit.uz[class^="reklama-ads-"]- +sovetromantica.com[class^="sbrand--"]A +sport-express.net +sport-express.ru[class^="se-bookie"]E + +fishki.net3[class^="side"][class*="right"] div[class*="promo"]$ +neg.by[class^="side-banner"]$ +1kr.ua[class^="spec-block-"]$ + sports.kz[class^="sponsor_"]7 + sims3pack.ru + myzcloud.me[class^="st-br"] > */ + eanews.ru[class^="styled__AdvLink-sc-"]+ + kg-portal.ru[class^="ten_frontrow"]/ +sportsdaily.ru[class^="timetable__bet"]6 + obrazovaka.ru + moyskelet.ru[class^="tizdiv"]) + volynnews.com[class^="view_back"]j + povarenok.ru + stranamam.ru + +asienda.ru + +mycharm.ru + myjane.ru + +diets.ru[class^="vigvam"]4 +guitarplayer.ru[class^="windowbg"] > noindex  + sports.kz[class^="xbet"]' + buhonline.ru[class^=sideBanner]6 +realist.online +zn.ua[data-action="banners"]* +vk.com +vk.ru[data-ad-block-uid]# + +delfi.lv[data-ad-placement] + ps4.in.ua[data-ad-slot]s +buhgalter.com.ua +buhgalter911.com + +unian.info + factor.ua + unian.net + +unian.ua +tsn.ua [data-ad]& + +banki.ru[data-adfox-container]· +ˆÿï08@Rxbryansknovosti.ru,novozybkov.su#?#[data-alias="Copyright"] .widget-area > .widget_text:not(:last-child):-abp-has(script) +aÿï08@RQshuba.life#?#[data-article] > [data-feed-gallery]:-abp-has(a[href*="utm_campai"]) +^ÿï08@RNforbes.ru#?#[data-io-article-url] > footer > div[class]:-abp-has(> .undefined) +dÿï08@RTre.kufar.by#?#[data-name="ad_in_listing"] > article:-abp-has(> div > [id^="adfox_"])% + +vse42.ru[data-adplace-inited] + 18000.com.ua +[data-ads]  + doska.ykt.ru [data-adurl]( + teknoblog.ru[data-advadstrackid]' +vc.ru[data-analytics*="native"]) + +shuba.life[data-banner-container]; + buhonline.ru + +zakon.ru +bobr.by[data-banner-id]Ÿ +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru[data-banner-place-id]8 + +sovets.net + tvtver.ru + +focus.ua [data-banner] + tophotels.ru [data-bh]+ + newsland.com[data-block-type="ads"]1 + bbs-sk.ru [data-blockid^="app_cms_Blocks"]# + minfin.com.ua[data-bn-slot]6 + +7dach.ru&[data-campaign-code][data-url*="http"]" +click-or-die.ru [data-cfpa]$ +vgorodekirove.ru [data-click]* + tvtver.ru[data-comment*="reklama"]@ +liveinternet.ru + examenpdd.com[data-container="outer"]) + rosteplo.ru[data-content*="ERID"]N + gdz4you.com;[data-controller="SearchInputController"] ~ .well-container" +vgae.ru[data-count="b/s/"]! + +starhit.ru[data-creative]$ + +banki.ru[data-dfp-container]5 + +briefly.ru#[data-disclaimer*="Реклама"]( + +shuba.life[data-discount-banner]š +redheadsound.studio +weblance.com.ua +superkarate.ru + basaru.net.ru + gooool365.org + +topfile.tj + uzmov.net + +lexxs.us[data-dlebclicks]ž +medicalanswers.com.ua +elegantwoman.kyiv.ua +arguments.kyiv.ua +dailynews.kyiv.ua +womanlife.kyiv.ua +zhenskiy.kyiv.ua +glamour.kyiv.ua +ua-novosti.info +ua-vestnik.com + lady.kyiv.ua + news24.in.ua + useti.org.ua.[data-element_type="widget"] a[rel="nofollow"]' +gdetraffic.com[data-gcat="ads"]% +gamer-info.com[data-gmimplid]> +cq.ru1[data-gtag-analytics="click:ya-market-post-link"]! +vc.ru[data-gtm*="ponsor"]; + +banki.ru+[data-gtm-view*="view_calc_widget_content"]5 + tulapressa.ru [data-href*="://zen.yandex.ru/"]% + +progrib.ru[data-href*="adbl"]+ + softonic.ru[data-href*="offer_id="]R + tulapressa.ru=[data-href*="yandex."][data-href*="news"][data-href*="favid"] + +dltv.org [data-id]! +smi2.ru[data-id^="exAd_"]$ + +app2top.ru[data-information]D + forbes.ru3[data-interval] > li div[style="min-height: 64px;"]2 +om1.ru$[data-io-article-url] .content-block( +ozon.ru[data-lcp-name*="anner-"]- +myukraina.com.ua[data-link*="goo.gl"]) + +myfin.by[data-link*="winline.by"]& +rocketdockfree.ru [data-msetup]% + +woman.ru[data-name*="Banner"]+ + +mamba.ruata-name="search-banner"]% + +esports.ru[data-name^="ads/"]0 + +eapteka.ru[data-neon-skeleton-removable] + vladnews.ru [data-newsb] +cq.ru[data-odds-series] + bankiros.ru [data-offer]P +news.soundex.ru9[data-original^="http://news.soundex.ru/images/banners/"]4 + studopedia.ru + studopedia.su[data-partner]% +iz.ru[data-partners-block-id]0 +satellitetvforum.info[data-phpbb-ads-id]* + +litnet.com[data-popmechanic-embed]# +odds.ru[data-popup="bonus"]  + +shuba.life[data-product]) + cheezu.ru[data-provider="yandex"]ã +`ÿï08@RPshuba.life#?#[data-purchase-ingredients-url] button:-abp-has(> [src*="/silpo."]) +Tÿï08@RDdrive2.ru#?#[data-target]:-abp-has(> div > h3 ~ [href*=".drom.ru/"]) +pÿï08@R`russia-tv.online#?#[data-test="channel-name-link"] ~ div:-abp-has(> div > div[id^="yandex_rtb"]) +[ÿï08@RKdom.ru#?#[data-test="custom-wrapper"]:-abp-has(> div > [href*="movix.ru/"]) +Kÿï08@R;drive2.ru#?#[data-track]:-abp-has(> div[id]:empty + script) +hÿï08@RXozon.ru#?#[data-widget="freshIsland"]:-abp-has(> div > [data-widget="objectBannerList"])F +ozon.ru7[data-replace-layout-path] > div[style="height:300px;"]a +ozon.ruR[data-replace-layout-path]:only-child > div[style^="min-width:"][style*="height:"]% + nachasi.com[data-right-aside]J + +goldsrc.ru8[data-role="primaryNavBar"] a[href^="http://csserv.ru/"]L + +goldsrc.ru:[data-role="primaryNavBar"] a[href^="https://gamecms.ru/"]- +zoneofgames.ru[data-role="sidebarAd"]3 + malenkiy.ru [data-role="sidebarAd"] > center7 + +tgstat.com + tgstat.ru[data-slick*="autoplay"] +zr.ru[data-slot-name]) + +iphones.ru[data-slug="damprodam"]4 + pravda.if.ua [data-source="editor"] > section' + +mac.org.ua[data-src*="bashmac"]' + drive2.ru[data-target^="drom_"]< + scores24.live'[data-testid="ExpressCouponBookmakers"]A +telegraf.com.ua*[data-text^="Ð�овини партнер"] +my.ua[data-top-iid]/ + dotabuff.comata-type="elo-placement"]6 +historyrusedu.ru[data-uk-grid-match*="target"], + conversion.im[data-url*="/banners/"]% + slukh.media[data-vc-parallax]* +nv.ua[data-vr-zone="Баннер"]% + trychatgpt.ru[data-widget-id]. + safezone.ccata-widget-key="friends"]( +ozon.ru[data-widget="advBanner"]- +ozon.ru[data-widget="advVideoBanner"]6 + pravda.cn.ua"[data-widget_type="image.default"]. +photos-models.com[gnezdo_container_id]* + pikabu.ru[href*="/acceptable-ads"]{ +xn--80awhdeco3h.xn--p1ai + yarportal.ruK[href*="/goto.php?id="][target="_blank"] > img[src^="http://yarportal.ru/"]& + gorobzor.ru[href*="/link?to="], +football.kulichki.net[href*="/pari"]1 + dotaguide.ru[href*="://dotaguide.ru/go/"]a +online-stars.org +online-star.org + anistar.org + +astar.bzref*="://r.advg.agency/"]- + ogemorroe.com[href*="=ogemorroe.com"], + mmorpg.suref*="apygame.com/click"]1 + local.com.ua[href*="local.com.ua/banner"]) +tnt-premier.life[href*="mclk.ru"]) +podelki-doma.ru[href*="ohnet.ru"]3 +torrent-igruha.ru[href="/kak-skachat.html"]5 +onlinestreams.ru[href="/reyting-bukmekerov/"]2 + +comss.ru"[href="download/page.php?id=5511"]H +surgeryzone.net1[href="http://surgeryzone.net/knigi-po-medicine"]/ + +mobiset.ru[href="http://www.ivlim.ru/"]- + +fishki.netref="https://servers.ru"]+ + +allbest.ru[href="union/advert.htm"]) + phpbbguru.net[href^="go.php?to="]. + +nntt.org[href^="http://numbuster.com"]. + +nntt.org[href^="http://www.cenam.net"], + game2day.ru[href^="https://p2d.ru/"]x +player.cvary.org +metaverseid.tk + divxplayer.ml + hcdn.online + haes.tech +hqq.tv[href^="https://t.me/"]  +forum.ru-board.com…[href^="postings.cgi?action=edit&forum=5&topic=51141"]:not([href$="postno=1"]) ~ .post img:not([src*="://forum.ru-board.com/board/"]) + +virpl.ru[id$="-banner"]Ð +intermusic.name +market4game.ru +yellowpages.uz + iplayer.info + get-tune.cc + +vmuzice.me + cools.biz + ipleer.fm + k1news.ru + kolesa.kz + mp3cc.biz + mp3iq.com + +cools.dj[id*="Banner"]< + +espreso.tv*[id*="ScriptRoot"]:not(.news-block-magick), + football24.ua[id*="VideoAdvWrapper"]7 +liveinternet.ru +livejournal.com [id*="_R-A-"]# + kino-teatr.ru[id*="_dobro"]" + makler.md[id*="_wideBann"]¬' +tÿï08@Rdkinokordon.net#?#[id^="oframevideoplayer"] > pjsdiv:-abp-has(> pjsdiv:-abp-contains(СекÑ�чат)) +bÿï08@RRnashamama.com#?#[itemprop="articleBody"] > p:-abp-contains(/ТЬСЯ ТÐ�КОЖ/i)* +liveangarsk.ru[id*="abovecontent"]" + +floomby.ru[id*="adsPlace"] +sia.ru[id*="banana"]  + allgosts.ru [id*="baner"]R +semestr.online + lifenews78.ru + lifenews.ru + +semestr.ru[id*="banner"], + forum.guns.ru[id*="hide"][id$="ban"]! + hideme.ru[id*="hidemead"]- + +p-p.com.ua + +iarex.ru[id*="redtram"]A + polaremont.ru + mychords.net + +stokvod.ru[id*="teaser"] + telek.top [id*="wmg-"] + livesport.ru [id*="wow"] + ditey.com [id="2222"]H + stratege.ru5[id][class] > [src*="ads.adfox.ru"] + style + div[id]< + stratege.ru)[id][class] > style:first-child + div[id]" + +cxem.net[id^="_myproduct"]/ +onlinetambov.ru[id^="ad"][class*="ads"]! + svpressa.ru[id^="adfox_"]( +depositfiles.com[id^="ads_zone"]% +forum.krasmama.ru [id^="adv_"]% + +tuzlist.ru[id^="adv_orders_"]2 +forum.astrakhan.ru[id^="agat_plus_banner"]³ +elsyst.gnomio.com +videoredaktor.ru +forum.niiot.net +freeopenvpn.org + bestradio.fm + kulichki.net + +htmlweb.ru + pvpru.com + +ghame.ru +ph4.ru[id^="aswift_"]> +forum.mista.ru + cross.bet + unews.pro[id^="banner"]( +rabota.kharkov.ua[id^="banner_"]  + sheensay.ru [id^="beget"]= +geonavigator.ge + navigator.az[id^="bg_banner_link"]# + kirovnet.ru[id^="bg_link_"]5 + poezdato.net + poizdato.net[id^="blabla_tr"]! + imgfiles.ru[id^="bn"] > *_ + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life [id^="bn-"]( + thisisus.ru +rbc.ua [id^="bn_"]! + horadric.ru[id^="brand-"]" + nefrolab.ru[id^="cmdgebh"]] +forexsystemsru.comC[id^="collapseobj_forumbit"] .alt1Active > div[style="float:right"]! + +funmult.ru[id^="icqwin_"]* +popcornnews.ru[id^="illumination"]7 + zaxid.net +24tv.uad^="mobileBrandingPlace"]$ + floradoma.com[id^="my1kil_"]  + +hitvk.mobi[id^="n-rek-"]% +tech-choice.net[id^="nadavi"]O + underverse.su + underver.se+[id^="noty_bottom"][id$="layout_container"]  + zismo.biz[id^="numlink"]# + +korabel.ru[id^="ocean2011"]- +rst.ua[id^="rst-page-banner-300x250"]  + novostivl.ru [id^="rtb_"]; + motovolg.com'[id^="slider"][id*="ontent"] span.right; +parazitovnetu.ru + +delpc.ru[id^="smartrotator_ad"]u +znachenieimenipro.ru +progipertoniyu.ru +kriminal.net.ua +myhairsalon.ru + moyskelet.ru[id^="teaser_"]) + mirmmo.ru[id^="trumedia_holder_"]* + mirmmo.ru[id^="trurlmedia_holder"]¢  +xn--b1ats.xn--80asehdb +radioromantika.ru +govoritmoskva.ru +steaklovers.menu +daily-inform.ru +kirov-portal.ru +kriminal.net.ua +news-front.info +penzavzglyad.ru +politexpert.net +sevkavportal.ru +veseloeradio.ru +gazeta-tula.ru +inforeactor.ru +melodrama1.com +nation-news.ru +penzainform.ru +politonline.ru +radidomapro.ru +rueconomics.ru +russian.rt.com +vesti-yamal.ru +vokrugsveta.ru + bigpicture.ru + chehov-vid.ru + hightech.plus + newinform.com + sobesednik.ru + allboxing.ru + argumenti.ru + bombardir.ru + glavnoe24.ru + myhistori.ru + nashgorod.ru + pikinform.ru + sharknews.ru + trendymen.ru + uralpress.ru + vedomosti.ru + afanasy.biz + baltnews.ee + do-slez.com + eadaily.com + gorobzor.ru + gorvesti.ru + gubdaily.ru + osnmedia.ru + rusvesna.su + sun-news.ru + tsargrad.tv + tvernews.ru + vestivrn.ru + +19rus.info + +agitpro.su + +anekdot.ru + +dnpmag.com + +livelib.ru + +polit.info + +sminews.ru + 62info.ru + belive.ru + expert.ru + mgorod.kz + nevnov.ru + radio1.ru + riafan.ru + rusplt.ru + topwar.ru + versia.ru + +56orb.ru + +7info.ru + +ferra.ru + +iarex.ru + +mir24.tv + +ratel.kz + +ria56.ru + +tsn24.ru + +ua.today + +vesti.ru + +vesti.uz + +zakon.kz +2000.ua +5-tv.ru +pora.ru +sm.news +usa.one +101.ru +dni.ru +m24.ru +ntv.ru +pnp.ru +ren.tv +eg.ru +iz.ru +mk.ru +nn.ru +zr.ru [id^="unit_"]& + pravda-tv.ru[id^="warta_ads-"]) +guitarplayer.ru[id^="ya_direct_"]& +radidomapro.ru[id^="zone_pub"]; +sm.news,[itemprop="articleBody"] > [id][class]:emptyd + fedpress.ruQ[itemtype*="://schema.org/NewsArticle"] .article-box + div[style="padding: 10px"]o + +iguides.ru][itemtype="http://schema.org/Article"] > .i-v-list-hr + .row > div[class^='col-']:first-child± +agri-gator.com.ua +rusfootball.info +itsider.com.ua + youtebem.com + rama.com.ua + +mmr.net.ua + +obozvrn.ru + +subbota.ua)[itemtype="https://schema.org/WPAdBlock"]- + cheezu.ru[jello-component="yamarket"]> +livejournal.com'[lj0sale0autoplay0dockable0video0mount]> +floristics.info +car.ru[onclick*="//zen.yandex.ru/"]/ + +myshows.me[onclick*=":hd.kinopoisk.ru"]° +^ÿï08@RNnewsomsk.ru#?#[style*="font"]:-abp-contains(Ð�овоÑ�ти партнеров) +Kÿï08@R;cyberforum.ru#?#[style^="margin: 3px 0px"]:-abp-has(script), +yellowpages.uz[onclick*="ClickOnAd"]0 +yellowpages.uz[onclick*="ClickOnBanner"]1 + novostroev.ru[onclick*="Click_slider_ad"]* + vokrug.tv[onclick*="ads.adfox.ru"]$ + +anekdot.ru[onclick*="brand"]- + sims-game.com[onclick*="btsearch.me"]. +plateginfo.com[onclick*="cashalot.su"]' + tsargrad.tv[onclick*="dzen.ru"]8 + sims-game.com + povarenok.ru[onclick*="goo.gl"]T + softodrom.ru@[onclick="window.location.href='https://domains.softodrom.ru/'"]T + +youhack.ruB[onclick]:not([onclick^="window.open('https://youhack.ru/posts/"])- +onlinemschool.com[onclick^="oms_zz_"]2 + enovosty.com[onclick^="trackOutboundLink"]/ + reporter64.ru[onclick^="update_banner"]8 + browserss.ru$[onclick^="window."][onclick*="://"]6 + allboxing.ru"[onmouseenter="onClickPbButton()"]5 +penzainform.ru[pnz-ads]:not(eto-dlya-mob-ver)A + apteki.su0[poster^="http://static.apteki.su/img/banners/"]. + radiokot.rurc*="//radiokot.ru/adv/"]5 + nashamama.com [src*="//rutube.ru/play/embed/"]# + ozersk74.ru[src*="/banner"]& + vprognoze.ru[src*="/banners/"]2 + informburo.kz[src*="/embed/SportsBetting"]@ +xn--b1ats.xn--80asehdb + gorvesti.ru[src*="/files/rk/"]‰ + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + uanews.org.ua + cvnews.cv.ua + rvnews.rv.ua![src*="/frontend/assets/advert/"]' +bazr.ru[src*="/global/banner/"]* + +ilenta.com[src*="/images/banner/"]G + highload.tech + abnews.ru + +fakty.ua[src*="/images/banners/"]I +allsport-news.net +allsport-live.ru[src*="/images/tennisspar."], +sport-express.ua[src*="/img/sadse/"]" + allrefrs.ru[src*="/imgr/"]( + gecid.com[src*="/inc/getBanIf."]( + radio1.ru[src*="/media_banner/"]) + arenda.az[src*="/public/banner/"]' + freesoft.ru[src*="/sponsored/"]4 + pechera.info [src*="/storage/banner_upload/"], + promin.cv.ua[src*="/uploads/banner"], + +kuban24.tv[src*="/uploads/banners/"]. + bidbaits.rurc*="/uploads/commerce/"]2 + 73online.ru[src*="://73online.ru/advert/"]@ +happymodern.ru*[src*="://pagead2.googlesyndication.com/"]* +hi-fi-forum.net[src*="_partners/"]% + arminfo.info[src*="banners/"]5 + gorod.cn.ua"[src*="gorod.cn.ua/image/upload/"]O + shans.com.ua;[src*="images/banners"]:not([src="images/banners/lin.gif"])$ + +7themes.su[src*="promo_res"]. + +ixbt.com[src*="rose.ixbt.com/banner/"]/ + sibnet.ru[src*="sibnet.ru/iframe-wink"]' +ski.ru[src*="ski.ru/vertelka/"]G +clubsandero.ru1[src="//an.yandex.ru/system/context.js"] ~ iframe+ + rutor.org.ru[src="/download32.png"]" + linux.org.ru[src^="/adv/"]F +news.soundex.ru/[src^="http://news.soundex.ru/images/banners/"], + yarportal.ru[style$="height: 60px;"]_ +penzainform.ruI[style*="height: 43px"][style*="max-height: 43px"] ~ div[class^="space_"]G + procherk.info2[style*="line-height:1;"][style$="font-size:8px;"]b + procherk.infoM[style*="line-height:1;"][style$="font-size:8px;"] ~ a[href][target="_blank"]3 + tltgorod.ru [style*="tltgorod.ru/Pics/ban/"]< + +anirem.org*[style="background:#2f2d38; margin:10px;"]: + kinonews.ru'[style="height:250px;overflow:hidden;"]L + molbuk.ua;[style^="height: 200px; left"][style*="position: absolute"]7 +auto.ru([style^="height:"][style*="250px"]:empty· +Oÿï08@R?point.md#?#[style^="position:"] div[class]:-abp-has(.point-ads) +\ÿï08@RLpoint.md#?#[style^="position:"] div[class]:-abp-has(> a[href*="utm_campai"])= +penzainform.ru'[style^="width: 140px; height: 280px;"]M + radiodacha.ru8[summary="content_table"] > tbody > tr > td[height="90"]; +root-nation.com$[swg-standard-button="contribution"]N + +izcity.com + cdmail.ru/[title*="быÑ�трый браузер!"] > img( + zx-pk.com[title="Yandex Direct"]' +ozon.ru[title="Реклама"]2 + www.film.ru[title="ЯндекÑ� Дзен"]% +ruboard.website[vid_vpaut_pl]- + lost-abc.ru[width="630"][height="90"] + +fcpug.rua + br + +fcpug.ru a + br + br0 + browserss.rua > img[alt*="ЯндекÑ�"]( + omskmama.rua > img[height="100"]6 + gaynsk.ru%a > img[src^="http://gaynsk.ru/img/"]1 + +btcsec.coma > img[style*="height:100px;"]@ +rin.ru2a > img[width="120"][height$="0"][src^="/images/"]2 + +ariom.ru"a > img[width="160"][height="120"]I +omskregion.info + forzajuve.ru"a > img[width="240"][height="400"]g +novosti24.kyiv.ua +ua-novosti.info +uapress.kyiv.ua + tenews.org.ua + news24.in.uaa video +tort.fma#bgW + gorodrabot.ruBa.additional-earnings-banner-snippet:not([href*="gorodrabot.ru/"]) + gameinside.uaa.banner, +zoneofgames.ru + +focus.ua +a.brandingV + poker-wiki.ruAa.external[rel="nofollow"][href*="/go/?site="] > img[src$=".gif"]& + +ria56.rua.gofollow[data-track]4 +rivnepost.rv.uaa.info[href][target="_blank"]$ + tsargrad.tva.link-social-zen@ + litres.ru/a.logo[href*="#buy_now_noreg"][target="_blank"]D +sportsdaily.ru.a.match-mini__heading-link > .match-mini__logo + kinobaza.neta.red0 + +www.ivi.rua.teaserImage[target="_blank"]G +video.matchtv.ru/a.vjs-link[href*="://matchtv.ru/subscriptions"]K + moniheal.com7a:not([href*="moniheal.com/"]) > img[src*="/m-public/"] + +good73.net a[\;] > img +ren.tva[class*=" ya_"]* +solverbook.coma[class*="-banner-"]0 +siliconrus.coma[class*="b-menu__li__a-"]1 +prm.ru#a[class*="http"] > img[width="240"]Y + amurpress.ruEa[class*="rekl"][target="_blank"]:not([href^="http://amurpress.ru/"])0 +economistua.coma[class="gofollow"] > img, + igromania.rua[class^="MaterialCpa_"]3 + sport-tv.by a[class^="adv-"][class$="-link"]% + +lol24.eea[class^="alex_bnr_"]L +zloy-odessit.livejournal.com(a[class^="banne"][href][target="_blank"]2 +the-village.rua[class^="base-BuyAdvLink-"]+ +newformat.infoa[class^="branding-"]u + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life!a[class^="ref-"][target="_blank"] +vc.rua[class^="sber-"]- + nachasi.coma[class^="style_sublogo_"]' + cybersport.rua[class^="vkPlay"]/ + tulapressa.rua[data-href*="//dzen.ru/"]1 + bombardir.rua[data-href*="://bmbrdr.ru/"]( + +ixbt.coma[data-menuitem="honor"]Q +grippua.com.ua;a[data-wpel-link="external"][target][rel*="nofollow"] > img4 +mycooking.pp.ua + +menu.cc.uaa[href$=".htm"]: +serialy-2021.com +serialy-tor.coma[href$=".php"]& + 2baksa.wsa[href$=".php"] > img4 + pr-people.ru a[href$=".php"][target="_blank"]* + eadaily.coma[href*="#after_incut"]ž +lostfilm.download +lostfilmtv2.site +lostfilmtv3.site +lostfilmtv5.site +lostfilmtv.site +lostfilm.space +lostfilm.today +lostfilmtv.uno + lostfilm.life + lostfilm.one + lostfilm.pro + lostfilm.uno + lostfilm.win + lostfilm.tv + lostfilm.twa[href*="&brid="]. + allfight.rua[href*="-pokupka-zhilya-"]3 + sportliga.com + manutd.rua[href*=".ashx?"]ç4' + +onliner.bya[href*=".betera.by"]4 +creativportal.rua[href*=".creativportal.ru"]_ + fishingsib.ru + +hunting.ru img$ + texnic.rua[href*=".php?ad="]# + +onliner.bya[href*=".pm.by"]& + sport.tut.bya[href*=".pm.by/"]U +pirate-party.ru +piratemedia.net+a[href*=".sim-networks.com/index.php?pid="]# + +ctc-rnd.rua[href*=".space"]i + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.lifea[href*=".vkplay.ru"]0 +wintorrents.rua[href*=".wintorrents.ru"]« +onlinestreams.ru +www.pesticidy.ru +kinoafisha.info +livejournal.com + kinorium.com + pluggedin.ru + kinonews.ru + spletnik.ru + tolknews.ru + +gamemag.ru + +myshows.me + +trinixy.ru + f1news.ru + pikabu.ru + vokrug.tv + +drive.ru +film.ru +1tv.rua[href*="//ads.adfox.ru/"]Œ & +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +avtonovostidnya.ru +sport-express.net +teleprogramma.org +naked-science.ru +sport-express.ru +belarus-news.by +moe-belgorod.ru +new-magazine.ru +overclockers.ru +syzran-small.ru +avtovzglyad.ru +moe-lipetsk.ru +penzainform.ru +russian.rt.com +sportsdaily.ru + bst.bratsk.ru + kommersant.ru + moe-online.ru + moe-tambov.ru + peterburg2.ru + stiletto.blog + tulapressa.ru + coop-land.ru + finuslugi.ru + metronews.ru + moe-kursk.ru + myweekend.ru + nevasport.ru + energyfm.ru + fontanka.ru + gdeichto.ru + ladys.media + ohotniki.ru + regnum.news + sovsport.ru + timeweb.com + tsargrad.tv + tvzvezda.ru + ytronews.ru + +fonmod.com + +moika78.ru + +mydecor.ru + +mywebpc.ru + +rusnext.ru + +smotrim.ru + +thegirl.ru + +utyug.info + +zaycev.net + ixbt.shop + radio1.ru + regnum.ru + rutube.ru + tochka.by + +360tv.ru + +7days.ru + +ixbt.com + +media.az + +rifey.ru + +super.ru + +ura.news +5-tv.ru +life.ru +mash.ru +news.ru +oper.ru +sm.news +www1.ru +zaks.ru +bfm.ru +nsn.fm +pnz.ru +u-f.ru +mk.ru +vz.ru +zr.rua[href*="//dzen.ru/"]. + beatmake.rua[href*="//go.acstat.com/"]- +porno-island.sitea[href*="//goo.su/"]\ +adult-images.ru + screenpost.ru + xpicture.ru + imgbum.rua[href*="//parnuxi.biz"]Z& +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +syzran-small.rua[href*="//pulse.mail.ru/"], + kommersant.rua[href*="//rusfond.ru"]H +www.kinopoisk.ru +kinoafisha.info +oper.rua[href*="//wink."]1 + zserials.cc + kritka.sua[href*="/1b.yt"]$ + zserials.cca[href*="/1w.tf"]5 + sportliga.com + +c-sgo.rua[href*="/1xstavka"]= + akipress.org)a[href*="/?from=portal&place=ver-slider"]& +sia.rua[href*="/?section=519"]1 + glazey.infoa[href*="/Na-pravah-reklamy/"]$ + +pr-cy.rua[href*="/a/click/"]Ü  +presentation-creation.ru +smotret-fizruk-online.su +revelationonlinedb.ru +torrent-games-2016.ru +peugeot-citroen.net +etika-education.ru +repack-fitgirl.com +moy-instrument.ru +remont-avtovaz.ru +torrent-games.rip +klub-masterov.ru +multfilms.online +outsidethebox.ms +trackitonline.ru +atlantisfood.ru +click-or-die.ru +ecofoodferma.ru +gitjournal.tech +instrument16.ru +privatbankrf.ru +stiralkainfo.ru +topmmo-games.ru +cheatground.ru +gazetaby.media +inform-ua.info +mrtranslate.ru +samelectric.ru +technical.city +ustanovkaos.ru + chelnyagro.ru + elektrosat.ru + gazetaby.info + ognennoetv.ru + ravis-avto.ru + shkolniku.com + tvoilokony.ru + algagroup.su + alive-ua.com + animemobi.ru + appsgames.ru + big-anime.ru + chemezova.ru + gamelendi.ru + gazetaby.com + kritika24.ru + parazit24.me + pluggedin.ru + rutracker.ru + siddgames.ru + steampass.ru + uaspectr.com + zhaparova.ru + 2x2forum.ru + app-time.ru + bakemono.ru + bik-info.ru + igra-wow.ru + ladylib.net + newsgsm.com + only-tv.org + simhost.org + tv-only.org + vizazh-2.ru + +5terka.com + +aniplay.tv + +anirem.org + +etotop.net + +gameout.ru + +geekmir.ru + +jut-su.net + +libking.ru + +mixbits.ru + +osortah.ru + +rpgdon.com + +selomoe.ru + +seloved.ru + +tuttop.com + +uanic.name + +volga.news + +vsetop.org + +yamdex.net + f-igri.ru + hdclub.ua + hype.tech + igui.mobi + mmorpg.su + ok-tv.org + rusplt.ru + totori.ru + vsetut.su + +cknow.ru + +sonix.tk + +tivix.co +ap22.ru +tmbw.ru +kp.kg +kp.kz +kp.md +kp.rua[href*="/ad.admitad.com/"]£ +disgustingmen.com +mobiltelefon.ru +penzavzglyad.ru +forums.goha.ru +gamer-info.com +maximonline.ru +radiorecord.ru + alogvinov.com + compulenta.ru + computerra.ru + omskpress.ru + gamebomb.ru + gismeteo.ru + sportbox.ru + +1tulatv.ru + +kudago.com + +ps3hits.ru + gotps3.ru + mmorpg.su + shazoo.ru + sobaka.ru + soccer.ru +1fnl.ru +move.ru +aif.ru +osp.rua[href*="/ad.adriver."]< +forum.woodtools.ru"a[href*="/ad/www/delivery/ck.php"], + alldz.neta[href*="/addownload.html"]" + +liga.neta[href*="/adfree"]& + skachaj24.rua[href*="/adhunt"]" + cisoclub.rua[href*="/adv"]$ + vmeste.tva[href*="/advert/"]/ +rabota24online.rua[href*="/affiliate/"]{ +moy-instrument.ru +e-ink-reader.ru + pcminipro.ru + for-ua.info + youblogs.ru + ruspdd.rua[href*="/ali.pub/"]# + pornogam.tva[href*="/asd/"]- +kudainvestiruem.rua[href*="/banner/"]3 + +opennet.me + +opennet.rua[href*="/banners"]& + +korabel.rua[href*="/banners/"]0 +internetno.neta[href*="/banners/go_to/"]% + livetv.sxa[href*="/betinfo/"]h +ua-football.com + scores24.live + livesport.ru + livecup.run + +sport24.rua[href*="/betting"]& + sovsport.rua[href*="/bonuses"]6 + football.by + +fanday.neta[href*="/bookmaker"]3 + otzovik.com a[href*="/buy/"][rel="nofollow"]' + sportliga.coma[href*="/c.php?"]2 +tvoymalysh.com.uaa[href*="/cgi-bin/click"]B +forum.sibmama.info +forum.sibmama.rua[href*="/cl.php?b"]= + smb.ixbt.com + +ixbt.gamesa[href*="/click/branding/"]  +cq.rua[href*="/cq67er/"]6 + podolyaka.com + podolyaka.rua[href*="/dzen/"]. +liveinternet.rua[href*="/fastvk.com/"]' + +litlib.neta[href*="/feisovet/"]5 +revelationonlinedb.rua[href*="/ffg.su"] > img4 + +fonzo.ru +kape.cca[href*="/fonzo.ru/adv/"] +vz.rua[href*="/games/"]v +mymedicalportal.net +mp3davalka.com + hen-tay.com + +samru.ru +work.ua#a[href*="/go.php"][target="_blank"]% +x-16.rua[href*="/go.php?id="]# + gametimer.rua[href*="/go/"]" + +dota2.rua[href*="/gobet/"]+ +gig-torrent.rua[href*="/gobtn.php"]0 +black-warez.rua[href*="/goto.php?file="]- + newsyou.infoa[href*="/goto/"][target]† +Xÿï08@RHprogrammersforum.ru#?#a[href*="://clck.ru/"] ~ *:-abp-contains(https://) +[ÿï08@RKprogrammersforum.ru#?#a[href*="://slurm.club/"] ~ *:-abp-contains(https://)- + +shuba.lifea[href*="/ingredients/buy"]{ +sportlive365.net +zfilme-hd1.site + soccer24.top + zfilm-hd.org + mixsoft.org + zserials.cca[href*="/is.gd/"]$ + +posudaa.rua[href*="/offer/"]: +profootball.ua$a[href*="/php/rotator/goto.php?id="]% + gofrag.rua[href*="/pomoshch"], +sakh.tva[href*="/promo/out/banner/"]7 + +shuba.life%a[href*="/purchase"][target="_blank"]4 + flatfy.lun.uaa[href*="/redirect-andromeda/"]5 + soccer.ru$a[href*="/redirect.php?destination"]' + rubryka.coma[href*="/reklama/"]6 + docfilms.info!a[href*="/search?"][href*="pid="]+ + scores24.livea[href*="/sportbooks"]= + chezasite.com(a[href*="/stat/click-"][target="_blank"]& + +ant-top.rua[href*="/teasers/"]% + scores24.livea[href*="/tsr/"]- + muzofond.fma[href*="/zvuk_transfer?"]% + filmisub.coma[href*="728x90"]8 + 0day.kiev.ua$a[href*="://1001gagarin-stat2.com/"]1 + bizmedia.kz +nur.kza[href*="://1xbet."]2 + allboxing.rua[href*="://aff1xstavka.com/"]; + wuxiaworld.ru + rutracker.rua[href*="://ali.ski/"]i + shinigami.tv + anigang.org + animecos.ru + animesos.ru + +anifors.rua[href*="://animedub.ru/"]A + argumenti.ru-a[href*="://argumenti.ru/ad_informer/click/"]8 +penzainform.ru"a[href*="://b.penzainform.ru/go/"]— + povarenok.ru + stranamam.ru + +asienda.ru + +mycharm.ru + myjane.ru + relook.ru + +diets.ru1a[href*="://beta.mediafort.ru/textclick.php?id="]/ + football.bya[href*="://betonmobile.by"], + bombardir.rua[href*="://bmbrdr.ru/"]( + joyreactor.cca[href*="://candy"]* + kinobase.orga[href*="://clcr.me/"]+ + newstudio.tva[href*="://cutter.li"]> +fast-torrent.tv'a[href*="://fast-torrent.tv/gomed.php"], +players.com.uaa[href*="://fav.bet/"], + +spys.onea[href*="://fineproxy.org/"]L +virus-stop.com.ua +smartmama.com.uaa[href*="://flavovir.ua"] > img6 + oterraria.ru"a[href*="://genshindrop.com/ref/"]4 + pleogame.ru!a[href*="://go.pleogame.site/r/"]- + +sport24.rua[href*="://go.sport24.ru"]- + bwtorrents.rua[href*="://goo-gl.su/"]a +online-stars.org +online-star.org + anistar.org + +astar.bza[href*="://litmarket.ru/"]. + ok-tv.orga[href*="://look-sport.net/"]2 + +eschemo.ru a[href*="://marchelas.tilda.ws"]. + +tsn24.rua[href*="://mediametrics.ru/"]. + 595.ucoz.neta[href*="://money-birds."]7 +nowa.cc(a[href*="://nowa.cc/page.php?p=rek"] img3 + o-keys.ru"a[href*="://o-keys.ru/ya_browser"]> + tenews.org.ua + golos.te.uaa[href*="://opillia.com/"]. + +sochi24.tva[href*="://orionschool.ru"]+ + 595.ucoz.neta[href*="://payad.me/"]( + sport.tut.bya[href*="://pm.by/"]3 +tut.by%a[href*="://preved.tut.by/?clickid="]P +prichernomorie.com.ua3a[href*="://prichernomorie.com.ua/i/clka.php?bid="]2 +trupornolabs.orga[href*="://pronpic.org/"]I +2gis.by +2gis.kz +2gis.ru$a[href*="://redirect.2gis.com/adv/"]9 + helpsetup.ru%a[href*="://reduction.helpsetup.ru/"]8 + second.by +tut.bya[href*="://reklama.tut.by/"]2 + +robloro.ru a[href*="://robloro.ru/reklama"]9 + 1istochnik.ru$a[href*="://rostoknadache.ru"] > img1 + prostomob.coma[href*="://s.zbanx.com/r/"]@ + +point.md0a[href*="://sales.simpals.com/"][href*="banner"]+ + moirebenok.uaa[href*="://sgo.one/"]@ + sportliga.com+a[href*="://sportliga.com/bookmakers/"] ~ a0 + 595.ucoz.neta[href*="://surfearner.me/"]¯- +Mÿï08@R=itc.ua#?#a[href*="://telemart.ua/"]:-abp-has(> span > strong), + 595.ucoz.neta[href*="://teaser.bz/"]- + mezha.mediaa[href*="://telemart.ua/"], + +apihost.rua[href*="://timeweb.com/"]6 +torrentinka.me a[href*="://torrentinka.me/gom"]3 + trashbox.ru a[href*="://trashbox.ru/r.php?"]3 +volnorez.com.uaa[href*="://turagent.od.ua"]4 +dnevnienovosti.rua[href*="://urldirect.ru/"]7 + livesport.ru#a[href*="://www.livesport.ru/away"]+ + uaprom.infoa[href*="://www.wem.ua"]B + +drive2.com + drive2.ru#a[href*="://yabs.yandex.ru/count/"]4 +gamer-info.coma[href*="=http"]:not([target])’ + hentailib.org + animelib.org + hentailib.me + mangalib.org + ranobelib.me + vuzopedia.ru + mangalib.me + anilib.mea[href*="?erid="]& + mauforum.rua[href*="?partner"]L +itorrents-igruha.net +itorrents-igruha.orga[href*="BlumCryptoBot"]( + stratege.rua[href*="_click?id="]N + studopedia.su + libsib.ru + mydocx.ru +3ys.rua[href*="a24help.ru"]» +itorrents-igruha.net +itorrents-igruha.org +kinofanonline.net +music-torrent.com +rg-mechanics.site +softbesplatno.net +games.portal.md + animesure.org + football24.ru + online-fix.me + texdizain.net + windowspro.ru + musictor.org + 777score.ru + newsgsm.com + kino4k.ina[href*="aHR0c"]Y +windows10activation.ru +torrent-mass.ru +brotorrent.neta[href*="aHR0c"] > img+ + trishurupa.rua[href*="abc-home.ru"]? +novostroykin.ru(a[href*="adrai.novostroykin.ru/wow/go/"]1 + +l2on.net!a[href*="adv&"][href*="click&id"]) + cccp3d.rua[href*="advertisement"]) + factroom.rua[href*="advertising"]! + repack.mea[href*="aeza."]= +root-nation.com + vpnmag.rua[href*="aff_c?offer_id"]- + vesti.irk.rua[href*="akva-motors.ru"]5 +ucoz.ru&a[href*="amigo.mail"][target="_blank"]/ +torrent-cash.rua[href*="amigo.mail.ru"]6 + forum.amit.ru!a[href*="amit.ru/service-center"]- + softpir.coma[href*="azbukasofta.xyz"]! +koob.rua[href*="b17.ru/"]/ +beremennost.neta[href*="babyitalia.ru"]Ù +agro-business.com.ua +agronomy.com.ua +legkopolezno.ru +post-tracker.ru +uamotors.com.ua +yaizakon.com.ua +alcogolizm.com +glavagronom.ru + threatpost.ru + gomel-sat.bz + pravda.if.ua + gre4ka.info + ozersk74.ru + zhacker.net + +anekdot.ru + +bitpump.ru + +topfile.tj + blisch.by +2ip.ua +maw.rua[href*="banner"]‘ +electricalschool.info +elementarno-tv.com +buhgalter911.com +kopilkaurokov.ru +www.pesticidy.ru +beremennost.net +dead-serial.com +domohozayki.com +forum-profit.ru +openssource.biz +palantinbest.ru +dedicated.menu +vskazke-tv.com + traktorist.ua + vorozheya.org + hosting.cafe + kosti-tv.com + license.menu + multiurok.ru + backup.menu + shared.menu + uvelir.info + +fishki.net + +https.menu + +ogribax.ru + +uvelir.net + alltor.me + +vds.menu +php.ru"a[href*="banner"][target="_blank"]3 +forum.mista.rua[href*="banners.php?click="]7 +forum.mista.ru!a[href*="banners.php?click="] + a4 +minecraft15.my1.rua[href*="barbarisnews.ru"]× +xn--80aaivjfyj3e.com +economics.studio +scicenter.online +textbooks.studio +uchebnikfree.com +lawbook.online +myzooplanet.ru +psihologia.biz + economuch.com + lawbooks.news + finbook.news + medinfo.live + pravo.studio + all-sci.net + provse.news + sci-lib.biz + +bib.social + sci.house + +lib.salea[href*="bear"]S + cybersport.ru + +esports.ru + +prodota.ru + +dltv.orga[href*="betboom.bet"]2 + okrain.net.uaa[href*="billing.hostpro.ua"]ð +skachat-igri-besplatno.info +onlinevideoconverter.com +photoshop-besplatno.org +xn--80ac9aeh6f.xn--p1ai +kontrolnaya-rabota.ru +rutracker-2017.org +torrent-shyter.net +blizzardheroes.ru +soft-windows.info +windows-soft.info +trupornolabs.org +autogeek.com.ua +csgo-guides.ru +prosportua.com +zoneofgames.ru + gameinside.ua + pesni-tut.com + real-game.net + ampercar.com + argumenti.ru + arminfo.info + daxshat.site + games-vam.ru + liveball7.gq + liveball8.ml + modsfire.com + newstudio.tv + agronews.ua + for-ua.info + goal24.live + img2txt.com + korsars.pro + mezha.media + stopgame.ru + topvideo.tj + z-music.org + zserials.cc + +app2top.ru + +ilenta.com + +kurkul.com + +onliner.by + +tochka.net + +vgtimes.ru + +zbirna.com + aacalc.ru + kritka.su + +psm7.com +ua.news +ain.ua +bib.bz +vc.rua[href*="bit.ly"]4 + bitmakler.coma[href*="bitmakler.com/go.php"], + blogspot.rua[href*="bolotov.com.ua"]0 + 595.ucoz.neta[href*="bolshoyvopros.ru/"]N +euro-football.ru + liveresult.ru + scores24.livea[href*="bookmaker"]: + cybersport.ru + bombardir.rua[href*="bookmakers"]" +ifin.kza[href*="branding"]D +glavagronom.ru +kgd.ru$a[href*="branding"][target="_blank"]7 + traktorist.ua"a[href*="brendi"][target="_blank"]F + newserials.tv + torrento.net + +igryday.rua[href*="browser."]/ + enovosty.coma[href*="bybit.com/"] > img- +biznet.kiev.uaa[href*="cargo120.com"]>! +mobile-4at-obshenie.chatovod.rua[href*="catcut.net"] *- + chatovod.rua[href*="chatovod.ru/cli"]/ + chatovod.rua[href*="chatovod.ru/cli"] */ +kinopictures.neta[href*="chromepro.ru"]$ + stopgame.rua[href*="clc.to"]~ +soft-portal.club + mods-game.net + flapler.com + korsars.pro + +mywebpc.ru + +rufonts.ru +vc.rua[href*="clck.ru"]! + +tvmag.rua[href*="cli.co"]. +book-briefly.rua[href*="clickfrm.com"]Q +bloknot-khersona.ks.ua + osnovu-ved.ru"a[href*="cookery-on-every-day.ru"]( + gamedayz.neta[href*="csgo.life"]4 +softportal.coma[href*="driverpack-solution"]÷&( + gurutestov.rua[href*="ecvator."]( + +komapz.neta[href*="epidems.net"]V + radiochief.ru + kubyshka.org + riperam.org + znamyuzl.rua[href*="epngo.bz"]6 + cybersport.ru!a[href*="erid:"][target="_blank"]* +business-gazeta.rua[href*="erid="]p +sport-express.net +sport-express.ru +agronovosti.ru + www.ixbt.com!a[href*="erid="][target="_blank"]. +7ba.org +7ba.rua[href*="erotel.org"]2 + forum.amit.rua[href*="evroremont.amit.ru"]“ +shopping.nv.ua + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + +ilenta.com + lelang.su + rutr.lifea[href*="fas.st/"]* + pwcats.infoa[href*="fastrader.ru"]@ + +vringe.com + +sport.ua"a[href*="favbet"][target="_blank"]7 + superhumor.ru + +voffka.coma[href*="feipiter."]( + +godendo.rua[href*="firmpage.ru"]T +allsport-news.net +allsport-live.ru +autosport.com.rua[href*="fon.bet/"]( + allhockey.rua[href*="fonbet.ru"]2 + juventus.rua[href*="football-shopping.ru"], + erichware.neta[href*="freebitco.in"]5 + noob-club.ru + aacalc.rua[href*="funpay.ru"]  + +gsett.rua[href*="ggsel"]( + gtp-tabs.rua[href*="goaway.php"]ƒ  +skachat-igri-besplatno.info +spam-club.blogspot.com +kontrolnaya-rabota.ru +spam-club.blogspot.ru +torrent-besplatno.net +androidsmartfony.com +onlinemultfilmy.ru +disgustingmen.com +games--torrent.ru +torrents-game.net +igri-torrent.net +prosadiogorod.ru +sbornik-music.ru +torrent-club.net +torrent-igri.com +torrentrepack.ru +audioskazki.net +filmasik.com.ua +javadevblog.com +mobiltelefon.ru +vashipitomcy.ru +7days2die.info +arsenaltula.ru +avtovod.com.ua +office-guru.ru +studopedia.org +trademaster.ua +yaminecraft.ru +zoneofgames.ru + 7torrents.net + cheboksary.ws + kino-teatr.ua + kinoplace.org + microstock.ru + pesni-tut.com + radiopotok.ru + raskraska.com + serialpro.net + softikbox.com + 3torrent.org + 4allwomen.ru + game-pool.ru + geekteam.pro + kinotorka.ru + newrutor.net + noob-club.ru + povarenok.ru + 4k-kino.net + chepetsk.ru + for-ua.info + gtp-tabs.ru + kinonews.ru + mixsoft.org + relizua.com + rusbitor.ru + softbaze.ru + tuchkatv.ru + winxland.ru + zserials.cc + +app2top.ru + +gorod55.ru + +hdkino.biz + +igryday.ru + +ilenta.com + +klubok.com + +tankist.su + +vsofte.biz + +youhack.ru + aacalc.ru + ebanoe.it + f-igri.ru + kritka.su + osobye.ru + ra1ohx.ru + sewin.net + superg.ru + udaff.com + +a-age.ru + +farap.ru + +namba.kg +aces.gg +cheb.ru +nowa.cca[href*="goo.gl"], + info-mage.rua[href*="goobmizd.ashx"]4 + pogodnik.com + for-ua.infoa[href*="got.by"]1 + vsezdes.infoa[href*="grovieavtomati.vip"]/ + v-zlom.rua[href*="hacknet-service.com"]* + islamnews.rua[href*="halaleda.me"], + +myshows.mea[href*="hd.kinopoisk.ru"]% + ignio.coma[href*="helpix.ru"]$ +2ip.uaa[href*="hidemy.name"][ +minecraft-mods.ruBa[href*="http://new-igry.ru/games/"] > img[src^="/uploads/posts/"]1 + +playua.neta[href*="https://patreon.com/"]% + dietdo.rua[href*="iherb.com"]' + drochunov.neta[href*="in.htm?"]S + infobank.by@a[href*="infobank.by/modules/astat/click.aspx"][target="_blank"]( + zhacker.neta[href*="insorg.org"]; +artlifebazar.ru$a[href*="internet-gazeta-world.ru/"], + pornotext.rua[href*="intim-shop.ru"]1 + +msd.com.uaa[href*="invest-expert.com.ua"]1 + +ixbt.com!a[href*="ixbt.com/cgi-bin/click"]' + +dokak.rua[href*="kakprosto.ru"]) + +manjaro.rua[href*="kredit100.ru"]M +moyaposylka.ru +ragingbiker.ru + gdeposylka.rua[href*="letyshops"]: +gameshare.com.ua + +uaplay.coma[href*="li.ru/go?"]4 + baby-mult.coma[href*="loshadka-kachalka.ru"], +kino-kingdom.coma[href*="mail.ru/r"]# +31tv.rua[href*="makfa.ru/"]1 + +izhevsk.rua[href*="mark.ru/"][target] img8 + mezha.media + speka.mediaa[href*="matchit.me/"]( + islamnews.rua[href*="mavlid.ru"]: + pornoshara.tv + +allking.rua[href*="mediaget.com"]9 + +xtool.ru)a[href*="megaindex.com"][target="_blank"]4 +autotheme.infoa[href*="mnogoskidok.kiev.ua"], + geomap.com.uaa[href*="monobank.ua/"]F +bloknot-khersona.ks.ua + osnovu-ved.rua[href*="moudom.ho.ua"]. + +allbest.rua[href*="multiwork.online/"]k +onlysimpsons.ru + vskazketv.com + bigbangtv.ru + new-team.org +swip.sua[href*="myprintbar.ru"]) + +site-do.rua[href*="myrusakov.ru"]9 + +freetp.org + freetp.rua[href*="nacked_tits_bot"]K +internethalyava.ru + halyavin.ru"a[href*="nanokleber-original.com"]" + repack.mea[href*="neovpn"]5 +minecraft-inside.rua[href*="nfemo.com/click"]$ + liveresult.rua[href*="odds"]A +puerrtto.livejournal.com!a[href*="offer"][target="_blank"]h + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.lifea[href*="offer_id="]¡+; +www.kinopoisk.ru +kinoafisha.infoa[href*="okko."]E +vtb-league.com/a[href*="olimp.bet"]:not([href*="logo_footer"])% +kkal.rua[href*="omniwins.ru"]H + omskinform.ru3a[href*="omskinform.ru/go/"][target="_blank"] > img2 +abc-english-grammar.coma[href*="ororo.tv"]/ + pogoda.rua[href*="ove"][href*="ou.ru/"]0 + pravda.if.uaa[href*="oxford-med.com.ua"]+ + +comss.rua[href*="page.php?id=3023"]6 + +mhl.khl.ru + +vhlru.rua[href*="parimatch.ru/"]8 + kulichki.net + sports.kza[href*="paripartners"]' + liveresult.rua[href*="partner"]2 + kino-line.sua[href*="perfectslotspro.com"]) + 24kadra.coma[href*="picjoke.net"]- +elwo.rua[href*="pokupka-radiolom.ru"]3 + +fishki.net!a[href*="poleznaja-reklama.html"]' + +center4.mea[href*="porter.vip"]/ + +ikovrov.rua[href*="pr.ikovrov.ru/www/"]G +bloknot-khersona.ks.ua + osnovu-ved.rua[href*="privatbank.ua"]/ +fergananews.coma[href*="privatefx.com"]5 + zismo.biz$a[href*="promotion§ion=adclick"]1 + englishsub.rua[href*="puzzle-movies.com"]* +benzin-price.rua[href*="r.php?r="]i +forum.print-forum.ru + vbsupport.org + out-club.ru + +4pna.com + +prioz.rua[href*="rbs_banner"]2 +serg-casper.rua[href*="receive-money.biz"]& + +my-ref.neta[href*="redikg.ga"]- + htmlhook.rua[href*="regru.net"] > imgG +radidomapro.ru1a[href*="report.capinfopro.ru/"][target="_blank"]2 +rabota24online.rua[href*="rich-birds.org"]; + rosrabota.ru'a[href*="rosrabota.ru/delivery/"] > img? + uniondht.org+a[href*="rutor."]:not([href*=".rutor.org"])' + 1track.rua[href*="smarty.sale"]' + gorvesti.rua[href*="smi2.net/"]. + +softbox.tva[href*="softboxmarket.com"]\ +sport-express.net +sport-express.ru/a[href*="sport-express.ru/rating-bookmakerov/"]/ +agronomy.com.uaa[href*="srsltid"] > img- + modgames.neta[href*="steam-account."]C + +azbooki.ru + +engisys.ru + +zip1000.rua[href*="stulspb.ru"]& + megatrack.topa[href*="su0.ru"]4 +doc-suvorov.narod.rua[href*="sun-leads.com"], +mannaya-kasha.rua[href*="swaqua.ru"]F +bloknot-khersona.ks.ua + osnovu-ved.rua[href*="swigroup.org"]1 +thequestion.rua[href*="t.mail.ru/redir/"], + teploguru.rua[href*="teplocom-m.ru"]3 +linuxthebest.neta[href*="thehost.ua"] > img= + +iphones.ru+a[href*="tinkoff.ru"][href*="utm_campaign"]) + for-ua.infoa[href*="tinyurl.com"]' + liveresult.rua[href*="tips/go"]7 + megosales.com + otcrytki.coma[href*="twnt.ru"]C +ucoz.ru4a[href*="ukit-freelance.com"][target="_blank"] > img4 +westudents.com.uaa[href*="ukrskidka.com.ua"]„ +bessarabiainform.com +programmersforum.ru +pc-consultant.ru + animevost.one + animevost.org + animevost.top + ebooktime.net + traktorist.ua + bombardir.ru + +1tulatv.ru + +sport24.ru + rusplt.ru +fex.net +vost.pw +dwg.rua[href*="utm_"]£  +sovetromantica.com +www.zoneofgames.ru +allbasketball.org +darkermagazine.ru +gnatkovsky.com.ua +sport-express.net +euro-football.ru +news.sportbox.ru +online-stars.org +sport-express.ru +online-star.org +volnorez.com.ua +arsenaltula.ru +forum.watch.ru +glavagronom.ru +grippua.com.ua +gsminfo.com.ua +inforeactor.ru +playmaker24.ru +sportsdaily.ru + aqua-therm.ru + autoreview.ru + bez-smenki.ru + horrorzone.ru + informator.ua + lgoty-vsem.ru + liveresult.ru + playground.ru + russorosso.ru + smartpress.by + solncevo.info + 1news.com.ua + 1plus1.video + animaunt.org + enovosty.com + glavpahar.ru + prosports.kg + prosports.kz + vandrouki.by + yaplakal.com + agronews.ua + animedia.tv + anistar.org + byxatab.org + football.ua + landlord.ua + meteo-tv.ru + mezha.media + nachasi.com + orelgrad.ru + rusvesna.su + spafilms.me + sport-tv.by + stratege.ru + topvideo.tj + uoor.com.ua + vashurok.ru + www.film.ru + +app2top.ru + +festima.ru + +fishki.net + +junona.pro + +prodota.ru + +proglib.io + +shkole.net + +tayga.info + +tt-cup.com + +www.khl.ru + cy-pr.com + gazeta.uz + riafan.ru + silver.ru + sostav.ua + vjazhi.ru + zanmsk.ru + +1snau.ru + +7dach.ru + +astar.bz + +point.md + +pr-cy.ru + +tvmag.ru + +zakon.kz +4pda.to +med2.ru +vmgu.ru +abw.by +gdz.ru +nim.ru +thg.ru +val.ua +vgr.by +yap.ru +vc.rua[href*="utm_campai"]) +itc.uaa[href*="utm_campai"] > imgG + tradoman.ru4a[href*="utm_source=partner"][target="_blank"] > img@ +utorrentgames.net'a[href*="utorrentgames.net/module.php"]Ë# +!xn----7sbcqvkpkdtgif1a4h.xn--p1ai +minecraft-files.ru +www.zoneofgames.ru +trupornolabs.org +torrent-cash.ru +torrent-post.ru +knigomania.org +politobzor.net +torrent-bro.ru +torrentmir.com + 7torrents.net + animevost.org + animevost.top + vse-serii.net + 5torrent.net + 8torrent.net + newpcgame.ru + noob-club.ru + torrgames.ru + dosgames.ru + +bootos.net + +sochi24.tv + kritka.su + nvplay.ru +vost.pwa[href*="vk.cc"]1 +rutor-group.proa[href*="vk.com/away.php"]/ + +onliner.bya[href*="voka"][href*="utm_"]+ +nasha-strana.infoa[href*="vott.ru"]L +metal-tracker.com + animedia.tv + +fontov.neta[href*="vsemayki.ru"]8 + crimea.ru'a[href*="www.sko.ru/"][target="_blank"]0 +sbornik-music.rua[href*="www.warnax.ru"]5 +mastergrad.coma[href*="www/delivery/ck.php?"]D + +azbooki.ru + +engisys.ru + +zip1000.rua[href*="zasvetom.ru"]ë- +compromat.groupa[href*="zenyandexru"]' +mkap.rua[href*="zjbi.ru"] > img3 + windows64.neta[href="#"][onclick*="_blank"]P +playercdn.cdnvideo.ru3a[href="//cdnvideo.ru/?from=playercdn.cdnvideo.ru"]' +noi.mda[href="//moldovenii.md"]8 +xbts.ru)a[href="//xbts.ru/"] + a[target="_blank"]. + drive2.rua[href="/_api/drom/navigate"]& + azart.net.uaa[href="/adv.php"]! + +ura.newsa[href="/advert"]- + sevastopol.sua[href="/advertisement"]G + +livelib.ru5a[href="/advertising"],a[href="/advertising"] ~ div *) + +iguides.rua[href="/advertising/"]% + zakazgid.rua[href="/ali.php"]% + +vesti.kza[href="/bookmaker/"]1 + footballhd.rua[href="/bookmakersrating/"]3 +alvin-almazov.rua[href="/category/theory/"]A +rutracker21.org*a[href="/donate.php"] + a[target="_blank"]$ + repack.mea[href="/download"]2 +gameinonline.coma[href="/go/vshapke.html"]K + soft-file.ru7a[href="/golink/https://soft-file.ru/yandeks-brauzer/"]# + kinotorrs.mea[href="/help"]* +101.rua[href="/menu-subscription"]& + kinobaza.neta[href="/out.php"]$ + news29.rua[href="/reklama/"]% + +windata.rua[href="/shorturl"]+ + l2argument.rua[href="buy-ads.html"]; +forum.csmania.ru#a[href="http://autosteamgifts.ru/"]6 +kinomonitor.ru a[href="http://bike-centre.ru/"]? +pushkinprize.ru(a[href="http://bookfestival.mibf.info/"]2 + +tltnews.ru a[href="http://casinobonus2.co"]? + otherforum.ru*a[href="http://evpatoriya-leto.crimea.ua"]0 + wowjp.neta[href="http://greedydwarf.ru"]0 + ikinokz.neta[href="http://hdserial.com"]0 + pk-help.coma[href="http://net-well.ru/"]/ + +wowgaid.rua[href="http://nsb-money.ru"]1 + insite.su a[href="http://presentazii.ru/"]1 +pushkinprize.rua[href="http://ridero.ru"]. + vjazhi.rua[href="http://ros-yarn.ru/"]9 +homenet.beeline.rua[href="http://rur.beeline.ru"]/ + +fchimik.rua[href="http://trudvsem.ru/"]4 + fitfan.ru#a[href="http://vitomaxx.ru/"] > img6 + +vsofte.biz$a[href="http://vsofte.biz/rel.html"]: + aquaforum.ua&a[href="http://www.akvariumi.com.ua/"]O + +umpro.ru?a[href="http://www.ddmlab.ru"][rel="nofollow"][target="_blank"]/ + +tltnews.rua[href="http://www.ks-p.ru/"]6 + +fchimik.ru$a[href="http://www.novomotors.com/"]7 + +fchimik.ru%a[href="http://www.polyplast-un.ru/"]4 + +fchimik.ru"a[href="http://www.pravo.gov.ru/"]; + +fchimik.ru)a[href="http://www.procterandgamble.ru/"]/ + +vd-tv.rua[href="http://www.vdclab.ru/"]/ +cq.ru"a[href="https://cq.ru/bookmakers"]2 +oper.ru#a[href="https://oper.ru/follow/wi"]? +sportarena.com)a[href="https://sportarena.com/betting/"]B +sportarena.com,a[href="https://sportarena.com/bookmakers/"]M +sportarena.com7a[href="https://sportarena.com/uk/rejting-bukmekeriv/"]C +thelastgame.ru-a[href="https://thelastgame.ru/how-to-load/"]A +ukrfootball.ua+a[href="https://ukrfootball.ua/bookmaker/"]> +ukrfootball.ua(a[href="https://ukrfootball.ua/casino/"]3 +3dn.ru%a[href="https://vk.com/sochirealtys"]J +cska-hockey.ru + hctorpedo.ru$a[href="https://www.sogaz.ru/sport"]5 +olivkafrekenbok.myqip.rua[href="javascript:"]: + autodmir.ru'a[href="javascript:;"][class="vetrine"]+ +aromatmasla.rua[href="span class="] +tema.rua[href="start/"]ñ * + zmi.ck.uaa[href] > .img-responsive0 + drive2.rua[href] > div > div > div > div0 + +doska.fi a[href] > img[src*="/images/et"]3 + ebooks.skin a[href] > img[src*="img/yandex"]4 + allrepack.ru a[href] > img[style*="display:"]3 + www.film.ru a[href]:not([href="#"])[onclick]V + versii.if.uaBa[href]:not([href^="/"]):not([href^="https://versii.if.ua"]) > img^ +taobao-forum.comFa[href]:not([href^="http://taobao-forum.com/"]) > img[src^="/banner/"]' +khl.rua[href][class*="_fonbet"]) + bobsoccer.rua[href][class^="ls_"]/ + directlot.rua[href][onclick*="Banners"]2 + +podolsk.ru a[href][onclick*="banner_click"]% + vakhta-job.rua[href][onclick]/ +telegraf.in.uaa[href][rel*="sponsored"]> +zakarpatpost.net&a[href][rel="nofollow noopener"] > imgW +cq.ruJa[href][rel="nofollow"]:not([href^="/"]):not([href^="https://cq.ru/"]) > b, +xn--m1ah5a.neta[href][rel="noindex"]N + nonameno.com:a[href][rel="noopener noreferrer"][title="Скачать"]+ + koolinar.rua[href][rel="sponsored"]† + povarenok.ru + stranamam.ru + +asienda.ru + +mycharm.ru + myjane.ru + relook.ru + +diets.ru a[href][style*="display: block"]6 + +ratel.kz&a[href][style*="display: block"] > img4 +4725.ru%a[href][style^="display:block"] > img, + potokcdn.coma[href][target="_blank"]0 + +c-s.net.uaa[href][target="_blank"] > div6 +torrent-ideal.rua[href][target="_blank"] > imgN +forum.worldoftanks.ru1a[href][target="_blank"] > img[alt*="тариф"]P + ecigtalk.ru=a[href][target="_blank"] > img[alt="папироÑ�ка.рф"]Q +kievforum.ipb.su9a[href][target="_blank"] > img[alt^="Видеоблог"]N +russian-bazaar.com4a[href][target="_blank"] > img[src*="/-=Banners=-/"]A + ukrsport.pro-a[href][target="_blank"] > img[src*="banner"]< +nb.by/a[href][target="_blank"] > img[src^="/img/ban"]C +happycoin.club-a[href][target="_blank"] > img[width][height]1 + mschistota.rua[href][target="_blank"] imgh +nb.by[a[href][target="_blank"]:not([href^="/"]):not([href^="https://nb.by/"]) > img[width="100%"]1 + +kmory.ru!a[href][target="_blank"][onclick]C + agroone.info/a[href][target="_blank"][rel*="noopener"] > imgL +dentalmagazine.ru3a[href][target="_blank"][rel="noopener noreferrer"]G + traktorist.ua2a[href][target="_blank"][style*="/media/uploads/"]L + +smapps.org:a[href][target="_blank"][style*="smapps.org/lead/banner/"]> + filebase.ws+a[href][target="_blank"][style^="display:"]H + proshkolu.ru4a[href][target="_blank"][title*="potter.timepad.ru"]@ + proshkolu.ru,a[href][target="_blank"][title="trudobr.ru"]6 + drochunov.net!a[href][target="_blank"][tooltip]N +clusterdelta.com6a[href][target="_new"]:not([href*="clusterdelta.com"])2 + proshkolu.rua[href][title*="/1clickgain/"]/ + gazeta1.coma[href][title*="банер"]9 + domsovetof.ru$a[href][title="http://rek-chek.ru/"]< + +poligon.by*a[href^=" https://vk.com/look_up_potolki"]& + poiskvps.rua[href^="./go.php"]Q +smotret-multfilmi.net +torrenther.com"a[href^="/"][href*=".php"][target]2 + agroportal.uaa[href^="/"][target="_blank"]C +torrents.in.ua-a[href^="/"][target="_blank"][rel="nofollow"]¹ +politexpert.net +inforeactor.ru +nation-news.ru +rueconomics.ru + newinform.com + politros.com + slovodel.com + +polit.info + nevnov.ru + riafan.rua[href^="//?type="]% + kritka.sua[href^="//qps.ru/"]4 + dugtor.ru#a[href^="//talk."][target="_blank"]P + twogarin.info;a[href^="//twogarin.info/goto/"] > img[src*="/wp-content/"]4 + slk.kh.ua#a[href^="//www.slk.kh.ua/banners/"]´ +politexpert.net +inforeactor.ru +nation-news.ru +rueconomics.ru + newinform.com + politros.com + slovodel.com + +polit.info + nevnov.ru + riafan.rua[href^="/a_"]. + kloomba.coma[href^="/ad-redirect.php"]5 +1pnz.ru&a[href^="/admin/banner/system/click/"]% + apidog.rua[href^="/ads.php?"]* + vuzopedia.rua[href^="/adverInfo/"]7 + yuginform.ru + stranaru.rua[href^="/banclick"]- + nmosktoday.rua[href^="/banclick.php"]£#= +geonavigator.ge + navigator.aza[href^="/banner.php"], + yarnews.neta[href^="/banner/click/"]/ + +bits.mediaa[href^="/bitrix/bitrix.php"]™ +officelife.media +yantann.rbsmi.ru +yanzori.rbsmi.ru +gubkinskiy.com +nmosktoday.com + agrostory.com + compulenta.ru + infostart.ru + it-weekly.ru + vt-inform.ru + it-world.ru + kluch.media + mgazeta.com + +bits.media + +seonews.ru + 62info.ru + allcio.ru + likeni.ru + rugrad.eu + vladtv.ru + xsport.ua + +hi-fi.ru + +mnmag.ru +37.ru +vn.ru +zi.uaa[href^="/bitrix/rk.php"]Ù +velikiynovgorod.ru +actualcomment.ru +onlinetambov.ru +mediaryazan.ru +ohranatruda.ru +rabochy-put.ru +securitylab.ru + automobili.ru + newsroom24.ru + vegetarian.ru + podrobno.uz + +gorod48.ru + +kubnews.ru + +mk.tula.ru + sochi.com + +2x2tv.ru + +asn24.ru + +mos.news +lgz.ru)a[href^="/bitrix/rk.php"][href*="banner"]= + x-race.info*a[href^="/bitrix/rk.php"][target="_blank"]3 + nesekretno.rua[href^="/bn/bn.php?partner="]) + 777score.rua[href^="/bookmakers"]/ +rabota.kharkov.uaa[href^="/click.html"]3 + glazey.info a[href^="/cms/admin/banner.php"]7 + snowrock.ru$a[href^="/component/banners/click/"]D +slavinfo.dn.ua + +hi.dn.ua"a[href^="/component/flexbanners/"]! +mix.tja[href^="/engine/"]d +cyclone-soft.com + hide-info.pro + gameshake.ru+a[href^="/engine/dude/index/leech_out.php"]! +maw.rua[href^="/ent.php"]$ + sportnet.livea[href^="/fon"]& +knigiskachat.rua[href^="/get"]E +game-tournaments.com + gdetoedet.ru +uzum.tva[href^="/go"]/ + poisk-ru.rua[href^="/go"][href*=".php"]Î +megaobuchalka.ru +studopedia.info +studopedia.net +studopedia.org + cyberpedia.su + studopedia.ru + studopedia.su + infopedia.su + lektsii.org-a[href^="/go"][href*=".php"][target="_blank"]) +bdsmplaneta.coma[href^="/go.php"]7 + kg-portal.ru#a[href^="/go.php"][target="_blank"]* + pornoboss.tva[href^="/go.php?id="]? +photoshablon.ru(a[href^="/go?https://w.cscore.ru/mira/"]& + +agroxxi.rua[href^="/gobanner"]* +fragrantica.rua[href^="/goto.php"]- + +komcity.rua[href^="/goto/?idbanner="]8 +medinfo-yar.ru"a[href^="/index.php/poster_redir"]A + wmasteru.org-a[href^="/index.php?banner-system-redirect/"]‰& +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +syzran-small.ruJa[href^="/index.php?go=Banners"] > img:not([src="/images/info/shema.gif"])= +kidstaff.com.ua&a[href^="/informer/main.html#reklama"]/ +minecraft-mods.rua[href^="/lp2/go.php"]V + infomir59.ru + milknews.ru3a[href^="/netcat/modules/banner/"][target="_blank"]2 +worldoftanksgame.rua[href^="/play-"] > img% + myparcels.rua[href^="/r.php"]" + sixinch.orga[href^="/red"]K + +oryol.ru;a[href^="/redir.php"][target="_blank"] > img[src*="banner"]9 +mypornoonlain.tv + news29.rua[href^="/redirect"]& +upn.rua[href^="/redirect.asp"]E +moyareklama.by +moyareklama.rua[href^="/redirect.php?bid="]G +fapl.ru8a[href^="/redirect/"][target="_blank"] > img[alt][title]r + tribun.com.ua]a[href^="/redirects/banner.php"]:not([title="Телеграм Канал Трибун 2023"])' + bashinform.rua[href^="/rk.php"]< + gageno.ru + pikapo.rua[href^="/s"][target="_blank"]1 +partnerkin.coma[href^="/sourcetrack/go/"]4 +partnerkin.coma[href^="/sourcetrack/golink"]+ + gunsbroker.rua[href^="/sp.php?id="]& + rusradio.rua[href^="/target/"]5 +bigfangroup.org + freebfg.orga[href^="/trh"]( + pornomage.neta[href^="/url?go="] +izgr.rua[href^="?uups"]i + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.lifea[href^="go.php?id="]< +sat-digest.com&a[href^="goto.php"] > img[src^="bae/"]4 + soccer.ru#a[href^="http"][href*="utm_campai"]p + ochevidec.net[a[href^="http:"]:not([href*="ochevidec.net"]):not([href*="livejournal"]):not([href*="icq"]); + vsehvosty.ru'a[href^="http://"]:not(.postlink) > imgV + digibi.ruEa[href^="http://"]:not([href^="http://www.youtube.com/"]) > #banner_l2 +yroki-kompa.rua[href^="http://1000-k.ru/"]0 +secondstreet.rua[href^="http://16r.su/"], + zabeba.lia[href^="http://248.dp.ua"]. + medbib.in.uaa[href^="http://8ua.org/"]3 + sportobzor.rua[href^="http://activizm.ru/"]2 + cbonds.ru!a[href^="http://ad.cbonds.info/"]2 +homearchive.rua[href^="http://adslead.ru"]¦5 + omskzdes.ru"a[href^="http://adv.omskzdes.ru/"]4 + +bratsk.org"a[href^="http://agatauto.kia.ru/"]0 + +dl2kq.de a[href^="http://antenna-su.ru/"]0 + +delfi.ee a[href^="http://ap.delfi.ee/b?"]C +cleverstudents.ru*a[href^="http://author24.ru/unreg-order/"]6 +nuriknur.ucoz.coma[href^="http://babnik.com/"]. + +uoor.dp.uaa[href^="http://bark.in.ua"]; + belive.ru*a[href^="http://belive.ru/ordering_form/"]@ + prooflink.ru,a[href^="http://bestgamblingsolutions.com/"]/ + puchkov.neta[href^="http://bestspb.ru"]J +nuriknur.ucoz.com + drochunov.net a[href^="http://bongacams.com/"]9 +nuriknur.ucoz.com a[href^="http://bongacash.com/"]3 + anti-free.rua[href^="http://bonus123.com/"]- + aacalc.rua[href^="http://boostor.ru"]? +plateginfo.com + +qiwiq.rua[href^="http://cashalot.su"]7 +nuriknur.ucoz.coma[href^="http://cashtube.ru/"]J +catchenglish.ru3a[href^="http://catchenglish.ru/includes/redirect"]6 +lgoty-expert.rua[href^="http://center-fp.ru/"]7 +post-tracker.ru a[href^="http://chinaprices.ru"]N +chinaprices.ru8a[href^="http://chinaprices.ru/go.php"][target="_blank"]1 + +good73.neta[href^="http://cifra-zone.ru"]7 + nowgamer.net#a[href^="http://club-vulkano.com/"]5 + sol-online.ru a[href^="http://cmd-online.ru/"]: +nuriknur.ucoz.com!a[href^="http://costaction.com/"]2 +jofo.ru#a[href^="http://creativepromo.ru/"]9 +e-bookua.org.ua"a[href^="http://creditka.kiev.ua"]: +nuriknur.ucoz.com!a[href^="http://df.halileo.com/"]5 +4fun.mksat.neta[href^="http://digit.com.ua/"]2 + punkt-a.infoa[href^="http://domzaton.ru/"]4 +cryptoworld.sua[href^="http://epnclick.ru/"]B +samodelkyn.ucoz.ru(a[href^="http://evsembu.com/in.htm?wm="]4 + +webtalk.ru"a[href^="http://flagman.kiev.ua/"]- +fvhm.rua[href^="http://fvhm.ru/adv/"]6 + +bioware.ru$a[href^="http://gamazavr.ru/"] > imgO + +game-10.ru=a[href^="http://game-10.ru/i.php?url=http://www.adcash.com/"]1 + kachni-ka.rua[href^="http://get-wn.net/"]7 +pamm-fxprofit.coma[href^="http://go-anonym.ru"]= + kniga-diva.ru(a[href^="http://golosplus.ru/index.php"]1 + aacalc.ru a[href^="http://goto.astdn.ru/"]H +livejournal.com1a[href^="http://gpsavto.com.ua/"][target="_self"]1 + +nntt.org!a[href^="http://happycomp-nn.ru"]1 + zabeba.li a[href^="http://happydiets.net"]- + slbook.rua[href^="http://hb-shop.ru"]9 + +hpc.name)a[href^="http://hpc.name/redirector_ads"], + z-music.orga[href^="http://i100.ru"]3 + sol-online.rua[href^="http://ido.mgsu.ru/"]G! +xn----dtbfdbwspgnceulm.xn--p1ai a[href^="http://iq-option.org/"]3 +prostatitanet.coma[href^="http://jmp1.ru/"]+ + zabeba.lia[href^="http://kiddo.ua"]> + kineshemec.ru)a[href^="http://kineshemec.ru/bn/click/"]5 + iskra-sev.ru!a[href^="http://kinezio.center/"]? + kinorubik.com*a[href^="http://kinorubik.com/module.php"]: +livejournal.com#a[href^="http://kiwieducation.ru/"]J +sovetyporemontu.ru +zavisimost03.rua[href^="http://kmabiz.org/"]7 +economic.social a[href^="http://kredit.social/"]: +forum.krasmama.ru!a[href^="http://lamma.24ex.net/"][ +sites.google.com + amaterka.ru + blogspot.ru%a[href^="http://landing.meendo.com/"]9 +politrussia.com"a[href^="http://lentainform.com/"]: + metrprice.ru&a[href^="http://lite.baza-winner.ru/"]: +liveangarsk.ru$a[href^="http://liveangarsk.ru/out"]3 + detstrana.rua[href^="http://lnd.m-mba.ru/"]2 + uamovies.rua[href^="http://macnews.in.ua"]6 + +mainspy.ru$a[href^="http://mainspy.ru/banner/"]; +zombi-family.ru$a[href^="http://mine-minerals.com/"]„9 + rubukkit.org%a[href^="http://minecraftrating.ru/"]: + o-doroge.com&a[href^="http://mnogoskidok.kiev.ua/"]: + znaigorod.ru&a[href^="http://mo-zdorovie.tomsk.ru"]3 + smotritv.neta[href^="http://naoblake.com/"]? + newsroom24.ru*a[href^="http://newsroom24.ru/ankvarzpr/"]. + weather7.rua[href^="http://nibis.ru/"]/ + econet.rua[href^="http://nvek.com.ua/"]F + +podolsk.ru4a[href^="http://opx.podolsk.ru/www/delivery/ck.php"]+ + +nntt.orga[href^="http://ostrie.ru"]7 + otvetkak.ru$a[href^="http://otvetkak.ru/go.php"]W +forum.chiptuner.ru=a[href^="http://pakhomov-school.ru/partners/chiptuner"] > img7 + kaddr.com&a[href^="http://photo.stylus.com.ua/"]= + city450.in.ua(a[href^="http://poisk450.blogspot.com/"]@ + goodgame.ru-a[href^="http://premium.goodgame.ru/ra/www/"]; +forum.materinstvo.rua[href^="http://printbook.ru/"]. +znaj.uaa[href^="http://prive.kiev.ua"]0 +3mv.ru"a[href^="http://psychosearch.ru/"]* + +dl2kq.dea[href^="http://quad.ru/"]2 + novgorod.rua[href^="http://r.novgorod.ru"], + +dl2kq.dea[href^="http://radial.ru/"]L +referatwork.ru6a[href^="http://referatwork.ru/refwork_agency/"] > img1 +v102.ru"a[href^="http://reklama.v102.ru/"]7 + medved.us&a[href^="http://robotsforex.ru/sale/"]F +rp-mechanics.ru/a[href^="http://rp-mechanics.ru/engine/go.php"]4 + newstudio.tv a[href^="http://ru.avxcore.com"]@ + +bratsk.org.a[href^="http://sberbank.ru/ru/person/promo/"]8 + +scask.ru(a[href^="http://scask.ru/forex4you.php"]2 + mapakids.neta[href^="http://scorch5.com/"]5 + newstudio.tv!a[href^="http://seedbox.org.ua/"]4 + optimistt.ru a[href^="http://self-test.org/"]1 + udaff.com a[href^="http://sexkompas.xyz/"]- + +mir24.tva[href^="http://shop.ast.ru"]4 + +taminfo.ru"a[href^="http://shop.megafon.ru/"]1 + vjazhi.ru a[href^="http://silkindian.ru/"]. + shahty.rua[href^="http://skb-uran.ru"]+ +fvhm.rua[href^="http://slivz.com/"]5 + ecigtalk.ru"a[href^="http://smokekitchen.ru/"]8 +body-builder.org a[href^="http://sportfarma.com"]@ +steelsports.ru*a[href^="http://steelsports.ru/bannerbro"]? + stock-list.ru*a[href^="http://stock-list.ru/free-forts"]D +leksika.com.ua + +studme.org a[href^="http://studlancer.net"]8 +photo-boutique.rua[href^="http://supertest.ga/"]7 +dreamprogs.net!a[href^="http://tapker.com/app/"]: +otvaga2004.mybb.ru a[href^="http://tasselmagic.ru"], + +sexxx.gga[href^="http://thisclick."]: + smolbattle.ru%a[href^="http://toyota-dynamica.ru/"]5 + ffoodd.ru$a[href^="http://trening-maximum.ru"]6 + infokava.com"a[href^="http://trumangifts.com/"]E +epravda.com.ua/a[href^="http://ua.hit.gemius.pl/hitredir/id="]7 +soft.oszone.net a[href^="http://verismediya.ru"]> + sdelaycomp.ru)a[href^="http://vk.cc/"][target="_blank"]7 + +skyback.ru%a[href^="http://vk.com/club61342137"]5 + trishurupa.ru a[href^="http://vneftegaze.ru/"]1 +ag.ru$a[href^="http://www.ag.ru/go/outer"]? + punkt-a.info+a[href^="http://www.alekseevskiy.astf.ru/"]9 +leonkrevs.ucoz.ru a[href^="http://www.anketka.ru"]7 + sol-online.ru"a[href^="http://www.ars-plus.ru/"]5 + sportobzor.ru a[href^="http://www.drafty.ru/"]@ +chinaprices.ru*a[href^="http://www.gearbest.com/m-promo"]? + glavmore.ru,a[href^="http://www.glavmore.ru/linker.php"]3 + +aviaham.ru!a[href^="http://www.hamqsl.com/"]@ + +hen-tai.ru.a[href^="http://www.hen-tai.ru/engine/go.php"]E +porno-monster.ru-a[href^="http://www.mirorgazma.ru/?partner="]; + mountain.ru(a[href^="http://www.mountain.ru/banner"]�U +bloknot-khersona.ks.ua + osnovu-ved.ru&a[href^="http://www.ozon.ru/context/"]< + sol-online.ru'a[href^="http://www.prestij-stroy.ru/"]9 + sol-online.ru$a[href^="http://www.promplast.net/"]5 + puchkov.net"a[href^="http://www.risecargo.ru"]8 + ruseo.net'a[href^="http://www.seopowersuite.ru/"]7 + sol-online.ru"a[href^="http://www.smclinic.ru/"]; +gazeta-severny.ru"a[href^="http://www.soglasie.ru/"]7 + 4rama.com&a[href^="http://www.steroydsrus.net/"]6 + punkt-a.info"a[href^="http://www.tigerltd.ru/"]; + traht.org*a[href^="http://www.traht.org/module.php"]: + world-art.ru&a[href^="http://www.world-art.ru/ad_"]E + yaplakal.com +yap.ru'a[href^="http://www.yaplakal.com/adv/"]D + yaplakal.com +yap.ru&a[href^="http://www.yaplakal.com/go/"]; +life-students.ru#a[href^="http://www.zaochnik.com/"]@ + +x-kuzov.ru.a[href^="http://x-kuzov.ru/"][target="_blank"]8 + scooter777.ru#a[href^="http://yashcher.ru"] > img< +earth-chronicles.ru!a[href^="http://youcanhappy.ru/"]* + rutvet.rua[href^="https://1ra.ru"]: + system-fx.ru&a[href^="https://adamantfinance.com/"]6 +androproblem.rua[href^="https://alitems.com/"]= +liveinternet.ru&a[href^="https://an.yandex.ru/count/"]7 + fit4power.ru#a[href^="https://animal-farma.top"]3 + xboxland.neta[href^="https://author24.ru/"]7 + barneos22.ru#a[href^="https://barneos22.ru/go/"]: +sitepokupok.ru$a[href^="https://citycard.ru/lucky"]8 +program-pro.ru"a[href^="https://cryptocandle.ru"]B + biqle.org + +biqle.ru%a[href^="https://daftsex.github.io/"]4 +gamestatus.infoa[href^="https://denuvo.net"]i + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtfa[href^="https://denuvo.net/"]k + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf a[href^="https://gamesell.org/"]3 + www.film.ru a[href^="https://hochuvkino.ru"]: + informator.ua%a[href^="https://inf.im/pinup_bonus"]0 + softodrom.rua[href^="https://inspin.me"]= +milliarderr.com&a[href^="https://iqoption.com/promo/"]0 + tvtver.rua[href^="https://kdservis.ru/"]B +www.kinopoisk.ru*a[href^="https://kino.tricolor.tv/watch/"]/ + +ndscalc.rua[href^="https://kontur.ru/"]. + itcrumbs.rua[href^="https://kwork.ru"]5 + poebuilds.ru!a[href^="https://lucky-boys.ru/"]A +cq.ru4a[href^="https://market.yandex.ru/"][rel="nofollow"]E + medved.us4a[href^="https://my.alfa-forex.ru/ru/registration/"]X +nashvancouver.com?a[href^="https://nashvancouver.com/linkout/"] > img[alt="tree"]E +vm.ru8a[href^="https://news.yandex.ru/index.html?from=rubric"]: + tverigrad.ru&a[href^="https://news.yandex.ru/smi/"]7 +oren.ru(a[href^="https://orenburg.metro-cc.ru/"]L + altai4u.com9a[href^="https://play.google.com/store/apps/details?id="]Z + allboxing.ru + lifenews.ru + topwar.ru*a[href^="https://relap.io/"][data-ad-link]4 + shazoo.ru#a[href^="https://shazoo.ru/click/"]4 + biqle.org#a[href^="https://theporndude.com/"]; + triskirun.ru'a[href^="https://triskirun.ru/golink/"]3 + brestcity.coma[href^="https://tutvisa.by/"]; +ukrfootball.ua%a[href^="https://ukrfootball.ua/go/"]< + bbcont.ru+a[href^="https://vk.com/extrasense_russia"]8 + vuzopedia.ru$a[href^="https://vuzopedia.ru/adv/"], +n1.bya[href^="https://www.alibi.by"]K +ternopillive.com3a[href^="https://www.facebook.com/republicplatte/"]< +www.kinopoisk.ru$a[href^="https://www.ivi.ru/watch/"]4 +design-for.neta[href^="https://www.reg.ru/"]9 +ebay-russia.ru#a[href^="https://www.shipito.com/"]: + imgmoney.ru'a[href^="https://www.youtube.com/"] imgH +semestr.online + +semestr.ru$a[href^="https://zakaz.semestr.ru/"]: + wmmail.ru)a[href^="index.php?cf=html-tbanner&bid="]7 + webmasters.ru"a[href^="vB.Sponsors/link.php?f="]& +klopotenko.coma[id^="linkFon"]Ò& + gamebomb.rua[id^="mainbackgr"]% +delo.uaa[onclick*="Branding"]1 + voxpopuli.kza[onclick*="Branding"][style]< + kino-teatr.ru'a[onclick*="_counter"][target="_blank"]* + osnova.newsa[onclick*="ad_click_"]" + +l2top.rua[onclick*="atob"]2 +informpskov.rua[onclick*="Баннеры"]‡ +player.cvary.org +metaverseid.tk + divxplayer.ml + hcdn.online + haes.tech0a[onclick="openAuc();"][title="Free money easy"]0 + +adhands.rua[onclick][href*="adhands.ru"]5 +prestige-gaming.rua[onclick][target="_blank"]g +online-stars.org +online-star.org + anistar.org + +astar.bz!a[onclick^="if(typeof yaCounter"]. + +armtorg.rua[onclick^="setClickBanner"]4 + kinotorrs.me a[oncontextmenu="return false;"]. + gamebomb.rua[onmouseup*="_trackEvent"]@ + gmt-max.net-a[rel="nofollow"] > div[align="center"] > img5 + chesalka.com!a[rel="nofollow"] > img[src^="/"]@ +tele-satinfo.ru)a[rel="nofollow"][href="http://obob.tv/"]P + +lu4ok.ws@a[rel="nofollow"][target="_blank"][href^="http://lu4ok.ws/go/?"]H + mebelminsk.by3a[rel="nofollow"][target="_new"][href^="/ref&url="], + pcprogs.neta[rel="nofollow,noindex"]> +culturemeter.od.ua$a[rel="noopener nofollow sponsored"]" +i2r.rua[style*="/banner."]7 +ohmywishes.com!a[style*="/images/banner-image/"]" +nya.sha[style*="/imgs/a/"]L + gtorrent.club + gtorrent.cc + gtorrent.rua[style*="color:"] > spanD + prankota.com0a[target="_blank"] + br, a[target="_blank"] + hr] +megasoft.3dn.ru + kotomatrix.ru + probiysk.ru + +athlete.rua[target="_blank"] > img0 + satsis.infoa[target="_blank"] > img[alt]@ +clickthis.blog*a[target="_blank"] > img[src*="/outbyte/"]5 + rewalls.com"a[target="_blank"] > img[src^="/"]g + +lib.rus.ec + +posters.ecGa[target="_blank"] > img[src^="http://lib.rus.ec/sites/default/files/"]T + erudition.ru@a[target="_blank"] > img[src^="http://www.erudition.ru/images/"]; + alogvinov.com&a[target="_blank"] > img[width="1200"]< +design-warez.ru%a[target="_blank"] > img[width="180"]I +babysaratov.ru3a[target="_blank"] > img[width="210"][height="115"]? + +sakh.com +f-1.ru%a[target="_blank"] > img[width="240"]D + bvedomosti.ru/a[target="_blank"] > input[type="image"][style]F + yaplakal.com +yap.ru(a[target="_blank"][href*="/click/?http"]> +sarafannoeradio.org#a[target="_blank"][href*="/webiz/"]? + booksgid.com+a[target="_blank"][href*="besthosting.ua/"]6 + sportgoal.net!a[target="_blank"][href*="olimp"]M +ukrainianiphone.com2a[target="_blank"][href="http://www.mshop.in.ua/"]7 + bape3.org&a[target="_blank"][href^="http"] > img> + +volzsky.ru,a[target="_blank"][href^="http://li.ru/go?"]X + severpost.ruDa[target="_blank"][rel="nofollow"]:not([href*="severpost.ru"]) > imgR + mir-games.org=a[target="_blank"][rel="nofollow"][href^="/engine/download?"]( + rebill.mea[target="blank"] > imgB + kapriz.info/a[target][href*="/go.php?url="] > img[src^="/"]x +player.cvary.org +metaverseid.tk + divxplayer.ml + hcdn.online + haes.tech!a[title="For video ad companies"]D + lostfilm.info/a[title="LostFilm.INFO"] > div[style*="height"]  +rg.rua[title="Дзен"]0 +radiotrek.rv.uaa[title="Реклама"]. + +ixbt.coma[title="ЯндекÑ� Зен"]C + 3dnews.kz + 3dnews.ru%a[title^="3DNews"][title*="Дзен"] + survarium.proadsense6 +kinoafisha.info + kinonews.ruadvertronic-slot, +24tv.ua +lux.fmapp-adv-placeholder +24tv.uaapp-adv-skeleton2 +24tv.ua +lux.fmapp-adv-video-placeholderK +nsp.ru=app-advertising-card a[href*="utm_campaign"][target="_blank"]  +nsp.ruapp-article-banner% +24tv.uaapp-desktop-top-banner& +24tv.uaapp-main-page-adv-block% +nsp.ruapp-topline-advertisingê" +vÿï08@Rfsobaka.ru#?#article > .b-post-view__section:-abp-has(> .b-post-view__projects > div > [id^="adv220_"]) +Yÿï08@RIuznayvse.ru#?#article > .hidden:-abp-has(> [aria-label="Реклама"]) +Fÿï08@R6bankiros.ru#?#article > aside:-abp-has(> [data-offer]) +Oÿï08@R?24boxing.com.ua#?#article > h2:-abp-contains(/реклама/i) +Tÿï08@RD24boxing.com.ua#?#article > h2:-abp-contains(/реклама/i) + ul +kÿï08@R[24boxing.com.ua#?#article > h3:-abp-contains(/реклама|партнер|Ñ�ндекÑ�/i) +pÿï08@R`24boxing.com.ua#?#article > h3:-abp-contains(/реклама|партнер|Ñ�ндекÑ�/i) + ul +[ÿï08@RKsemestr.online,semestr.ru#?#article div:-abp-has(> [action*="homework.ru"]) +\ÿï08@RLsemestr.online,semestr.ru#?#article div:-abp-has(> [action*="vse-sdal.com"]) +bÿï08@RR4pda.to#?#article ~ article:-abp-has(> [class] > div:only-child > img:first-child) +Nÿï08@R>point.md#?#article:-abp-has(> div[id^="article-"] > .business) +^ÿï08@RNironfriends.ru#?#aside .widget:-abp-has(> .widget-container [class^="nadavi"]) +Xÿï08@RHironfriends.ru#?#aside .widget:-abp-has(> .widget-container [id^="ya_"]) +Aÿï08@R1mirlib.ru#?#aside > .block:-abp-has([id^="ambn"]) +]ÿï08@RMsuperhumor.ru,voffka.com#?#aside > .sidetitle:-abp-contains(Партнеры) +jÿï08@RZsuperhumor.ru,voffka.com#?#aside > .sidetitle:-abp-contains(Партнеры) + br + .side +Hÿï08@R8point.md#?#aside > div:-abp-has(> a[href*="utm_campai"]) +|ÿï08@Rlshazoo.ru#?#aside > div:-abp-has(> iframe[src*="://goodgame.ru/html/embed-player/dist/index.html?partner="]) +?ÿï08@R/bitcryptonews.ru#?#aside > div:-abp-has(script) +Oÿï08@R?point.md#?#aside > div[class]:-abp-has(> div > [id*="adsense"]) +Lÿï08@R h2:-abp-contains(/наши партн/i) +Sÿï08@RCukrfootball.ua#?#aside > section:-abp-has(> .colum_widget_block_pp)" +24tv.uaapp-video-adv-block9 + +reono.ua)article > .box[style="width:fit-content"]X +1hd1080tv.info + 1hd1080.info + 2hd1080.info"article > a[href][target="_blank"]% + zmi.ck.uaarticle > br + small. + vsthemes.orgarticle > div:not([class])5 + +vladday.ru#article > div[style^="min-height:"]% + zmi.ck.uaarticle > hr + small1 + glavpost.comarticle div[style*="#EFEFEF"]) +qip.ruarticle[data-type="advert"]T + +mi100.infoBarticle[id^="post-"] > .entry-meta + div[style^="padding-bottom:"]; + sport-tv.pro'aside .HTML > .widget-content > a > img% + kurs.com.uaaside .advertisingF + tverlife.ru3aside .custom-html-widget > a[rel="noopener"] > imgg +muz-teoretik.ru + iptv.org.ua + +tva.org.ua + gzt-sv.ru + telik.topaside .widget_custom_html( +office-guru.ruaside .widget_text> +businessua.com(aside > #vedomosti_block:nth-child(-n+9)* + +showgid.tvaside > .banner + .title( + +motogon.ruaside > .block .bannerH + winitpro.ru5aside > .block-search + .block-search + .block-search3 + linux.org.ruaside > .boxlet[align="center"]3 +sportnews.com.uaaside > .custom-html-widget_ + +pik.net.uaMaside > .dialog > a[href]:not([href^="/"]):not([href^="https://pik.net.ua/"])$ + uznayvse.ruaside > .h-screenH + jstack.ru7aside > .profile-inner + a[href][target="_blank"] > img- + +fanat1k.ruaside > .row > .text-center- + pikabu.ruaside > .sidebar-block:empty& + +vladday.ruaside > .text-center6 + +subbota.ua$aside > .w-nt.primary-sidebar-widget& + losst.proaside > .widget_block. + city.ogo.uaaside > .widget_media_image; +hersonweek.net%aside > .widget_search + .widget_text! + +zarlit.comaside > a > img( + hibiny.ruaside > a[href="/pek/"]X + versii.if.uaDaside > a[href]:not([href^="/"]):not([href^="https://versii.if.ua"])R +repetit-center.ru9aside > a[href][onclick="return !window.open(this.href)"]x +via-midgard.com +1hd1080tv.info + 1hd1080.info + 2hd1080.info + newsbalt.ru aside > a[href][target="_blank"]3 + versii.if.uaaside > div[class="brxe-block"]0 + hibiny.ruaside > div[class^="margintop"]^ +finbalance.com.uaEaside > div[style] > a[href^="http"]:not([href*="finbalance.com.ua"])/ + shazoo.ruaside > iframe[src] + p[style]' +bitcryptonews.ruaside > noindex. + +jooble.orgaside > section[class^="ad"]â +<ÿï08@R,cq.ru#?#b:-abp-contains(Где купить) +^ÿï08@RNsport.tut.by#?#blockquote:-abp-has(> p > strong:-abp-contains(Партнер))9 +stankiexpert.ru"aside a[id][href][target="_blank"]/ + +riwkus.proaside a[onclick^="yaCounter"]8 +bessarabiainform.comaside div[class^="a-single"]O + magtimes.info:aside img[src^="http://magtimes.info/wp-content/uploads/"]) + +poligon.byaside#sidebar > a[href]7 + postal.ninja#aside.tm-sidebar-a [class*="block"] +tvc.ru aside.w-full9 +yamal-media.ru#aside[class^="articlePartnerNews_"]< +hromadske.radio%aside[class^="main_container Banner"]l +bryansknovosti.ru + novozybkov.suBaside[data-alias="Заголовок"] .widget-area > .widget_textW +bryansknovosti.ru + novozybkov.su-aside[data-alias="Ð�ад новоÑ�Ñ‚Ñ�ми"]M +bryansknovosti.ru + novozybkov.su#aside[data-alias="Под меню"]s +bryansknovosti.ru + novozybkov.suIaside[data-alias="Слева"] .widget-area > .widget_text ~ .widget_textu +bryansknovosti.ru + novozybkov.suKaside[data-alias="Справа"] .widget-area > .widget_text ~ .widget_text5 + novozybkov.su aside[data-alias^="Слева "]- + +censor.netaside[id][style^="height:"]& + +lovesun.byaside[id^="banner-"]' +hardwareluxx.ruaside[id^="rec"] +topasnew24.combig +allsport-tv.rubig > a + kino-zal.tvblink- + psysovet24.ru + +2womans.ru +blockquote‘ +anypictures.ru + screenpost.ru + pixcloud.ru[blockquote:not([style="border:2px #000000 dashed; padding: 18px; margin:0px 0px 0px 0px;"])  +rockstargame.su body > #a# + kissfm.uabody > #background" + fgh-game.combody > #banner! + tourister.ru body > #blackB + browserss.ru.body > #container > div[id^="SlideShow"] + div0 + +poligon.bybody > #container > div[style]% +sportarena.combody > #fb-root + +savepic.ru body > #feed( + myusli.rubody > #layout > .fixedE +livetvstream.pro +me'body > #localpp[onclick*="window.open"]3 +palantinbest.ru + pojrem.rubody > #overlay( +pensioneram.infobody > #page ~ *( + sakhalin.infobody > #promo-popup  + sosnovskij.ru body > #topQ +id-storage.com;body > #video ~ [class][style*="pointer"][style*="z-index"]D + newstudio.tv0body > #wrap > div[style]:not([id]):not([class]). +historyrusedu.rubody > #wrap-popup-boxD + nadavi.com.ua + nadavi.ru"body > *>div[id][style*="height:"] +idwl.cn body > .brand" + novostiua.net body > .brendF +nb.by9body > .container > div[style="background-color:#dfe0e1"]; +sib.fm-body > .container > div[style^="min-height:"]_ + +comss.ruObody > .dlblock ~ .container > div[style="margin-top:25px;margin-bottom:25px;"]G + +comss.ru7body > .dlblock ~ .container[style="padding-top:12px;"] + +2x2tv.rubody > .gifimg +uzum.tv body > .head +itc.uabody > .hidden-sm& + avtoradio.rubody > .info-blockê +sportbarchik88.com +sportsite777.com +barsportbar.com +channels247.net +sportabar01.com +spotless365.net +sporting77.com + sbautumn.com + sportbar.biz + s7yours.com + +sport7.biz + goool7.wsbody > .js-div:empty" + zorgee.rubody > .jumbotron! + ua-cinema.com body > .mask& +sportarena.combody > .nomobile1 + rlsnet.ru body > .noprint[style^="height"]* + utmagazine.rubody > .popup-overlay) + fastpic.orgbody > .position-fixed* + portalgkh.rubody > .slide.carousel% +newradioshop.rubody > .sticky5 + +nnmclub.ro + +nnmclub.tobody > .ui-corner-all% +privatfinance.com body > .wrapÄ, +Aÿï08@R1htmlweb.ru#?#body > div[id]:-abp-has(> [onclick]), +varplatform.lifebody > .wrap-overlayT + kaztorka.org@body > :not(div):not([id]):not([class]):not([style]):not(script)* +naruto-base.tvbody > [class]:empty1 +riotpixels.combody > [class^="side-url-"]ƒ + browserss.ruobody > [id$="_master_footer"] ~ [id$="_master_footer"] > div[id$="_master_footer_Container"] > div[id^="Layer"]k +xxxadulttorrent.org +trupornolabs.org + edufuture.biz + +xvatit.com + popgun.rubody > [onclick]. +naruto-base.tvbody > [target="_blank"]¶ +lostfilm.download +lostfilmtv2.site +lostfilmtv3.site +lostfilmtv5.site +lostfilmtv.site +budport.com.ua +lostfilm.space +lostfilm.today +lostfilmtv.uno + lostfilm.life + lostfilm.one + lostfilm.pro + lostfilm.uno + lostfilm.win + lostfilm.tv + lostfilm.tw + mylenium.rubody > aÙ +crazyatomicgames.com +xxxadulttorrent.org +trupornolabs.org +root-nation.com +torrentinka.me +yaldagames.com + kinoafisha.ua + sportmaps.ru + xxx-igra.com + topvideo.tj + udaff.combody > a[href]ª + +mac-torrent-download.net +izbezhat-nakazania.com +madjong-besplatno.ru +101kofemashina.ru +strela-online.com +autosport.com.ru +grimm-online.org +kievvlast.com.ua +moldfootball.com +spletnica-tv.com +dead-serial.com +forpost.lviv.ua +igry-online.net +kinoafisha.info +post-tracker.ru +teenwolf-tv.com +tg.telepult.pro +theflash-tv.com +epravda.com.ua +kushvsporte.ru +partnerkin.com +prosportua.com +saratovnews.ru +sportarena.com +vskazke-tv.com + animejapan.tv + c-inform.info + gameinside.ua + horrorzone.ru + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + traktorist.ua + uanews.org.ua + cvnews.cv.ua + jetsetter.ua + kosti-tv.com + mybrazz.club + povarenok.ru + prosports.kg + prosports.kz + rvnews.rv.ua + sopsport.org + comments.ua + fashiony.ru + fclmnews.ru + game2day.ru + ggscore.com + gorod.dp.ua + itechua.com + nashkiev.ua + ne-kurim.ru + pesikot.org + pimpletv.ru + the-geek.ru + udargol.com + +csgamer.ru + +e-libra.ru + +fishki.net + +gta.com.ua + +lovesun.by + +playua.net + +prodota.ru + +shuba.life + +topfile.tj + alexua.tv + bugaga.ru + ko.com.ua + likeni.ru + relook.ru + zorgee.ru +alau.kz +ctv7.ru +mirf.ru +101.ru +1in.am +bit.ua +jut.su +upl.ua +zab.rubody > a[href][target="_blank"]2 + yaplakal.com +yap.rubody > a[id^="clk-"]* + gotps3.rubody > a[target="_blank"]* +hmn.rubody > center > .px_blue_fon? +chinaspb350.ru)body > center > a[href="/aliexpress.php"]1 +xxuy.ru"body > center > a[href] > img[alt]@ + samlib.ru/body > center > h3 + nobr + table[width="100%"]5 +drevo.uaportal.combody > center:first-of-type8 +christianka.bratstvo.orgbody > center:last-childK + samlib.ru:body > center:nth-of-type(1) > table[bgcolor]:not([width])C + samlib.ru2body > center:nth-of-type(1) > table[width="100%"]J +igraprestolov.ws2body > div > .container > a[href][target="_blank"]$ + +ingrus.netbody > div > .menu; +forchecking.ru%body > div > a[target="_blank"] > img9 +forum.watch.ru#body > div > div[style*="overflow"][ + nadavi.com.ua + nadavi.ru9body > div > table[width="92%"]:not([class="top-region"])  +orda.kzbody > div.layer0; + coop-land.ru'body > div:not([id]):not([class]):emptyz +sport365hd.com +sport365hd.net + boom365hd.com + +whd365.pro3body > div:not([id]):not([class])[style*="z-index"]V +4725.ruGbody > div:not([id]):not([class])[style^="position: relative;z-index:"]Q +realnoevremya.ru9body > div:not([id]):not([class])[style^="width: 350px;"]= + remake.net.ru + +zarlit.combody > div[align="center"]H + gamesisart.ru3body > div[align="left"][style^="position: fixed;"]4 + siver.com.ua body > div[align="right"] > span6 +delo.ua +999.mdbody > div[class*="branding"]3 +progipertoniyu.rubody > div[class*="modal"]B + povarenok.ru.body > div[class]:empty[style="height: 100%;"]J + povarenok.ru6body > div[class]:empty[style="height: 100%;"] + div a0 + +votrube.rubody > div[class]:last-of-typeˆ +anilibria.iss.one + anilibria.tv + +anilib.moe + +anilib.one + +anilib.top5body > div[class]:not([id]):nth-child(-n+5) > a[href]1 +russian.rt.combody > div[class^="Popup-"], + +finam.rubody > div[class^="hidden-"]0 +openssource.bizbody > div[class^="spu-"]8 + gazgolder.com#body > div[g-popup-type="popup_ad"], + +htmlweb.rubody > div[id] > [onclick]0 + +htmlweb.rubody > div[id] > [onclick] ~ *& + +htmlweb.rubody > div[id]:empty. + sibnet.rubody > div[id][class*="push"]> + myshared.ru+body > div[id][style*="position: absolute"]2 + +festyy.com body > div[id][style*="z-index"]; + rogoff.club(body > div[id][style^="height"]:not(#id)' +ukr.biobody > div[id^="brands"]D +mobiltelefon.ru-body > div[id^="float_head"] > div[id^="bg-"]. +virusinfo.infobody > div[id^="headbr"]* + steampass.rubody > div[id^="ips_"]- +pornolomka.com.rubody > div[id^="pw"]3 + emuzic.ru"body > div[onclick^="window.open"]6 +thailandproperty.tvbody > div[style*="1240px"]4 +forum.raskraska.combody > div[style*="2000"]O + wigistream.to + +sbfull.com + raes.techbody > div[style*="2147483647"]6 + nagon.net%body > div[style*="cursor: pointer;"]C + +pay-day.ru1body > div[style*="fixed"]:not([id]):not([class]): +ykt.ru,body > div[style*="height:"][style*="180px"]O + biqle.org + +biqle.ru2body > div[style*="position"][style*="background"]¤% +Fÿï08@R6pogoda.ru#?#body > h3:-abp-contains(/^Ð�овоÑ�ти/)@ + 2baksa.ws/body > div[style*="right"] > a[target="_blank"]b + darevamed.ru + cakevita.ru?body > div[style*="width"][style*="z-index"][style*="position"]6 + chelnyclub.ru!body > div[style*="width: 990px"]4 + wowjp.net#body > div[style*="z-index: 10000"]= + allmmorpg.ru)body > div[style="display: inline-block"]f + +tamboff.ruTbody > div[style="width: 960px; margin: 0 auto; height: 300px; position: relative;"]1 +laststicker.rubody > div[style] > noindex6 +obob.tv'body > div[style^="padding:"] > a[href]8 + live-gol.net$body > div[style^="position: fixed"]Y +root-nation.comBbody > div[style^="position: fixed; display: flow-root; z-index:"]£ +player-cdn.comŒbody > div[style^="width: 100%; height: auto; position: absolute; z-index: 100000; top: 0px; bottom: 0px; cursor: pointer; background: url"]J + innal.top + zannn.top,body > div[style^="width:"][style*="1265px"]; + +opennet.ru)body > font > font > div[style*="width:"]= +forums.rusmedserv.com body > form > a[target="_blank"]# +x-raydoctor.ru body > iframeÕ +centr-molodosti.ru +astromeridian.ru +documentalnye.ru +kazakh-zerno.net +demotivation.me +gossebanmen.ru +story-house.ru +telegraf.in.ua + peterburg2.ru + miytvideo.ru + oterraria.ru + repackov.net + tourister.ru + apachan.net + filebase.ws + nowfilms.ru + rogoff.club + sexytal.com + +e-libra.ru + +gameru.net + +igrigo.net + amuzic.ru + elek.club + repost.uz + rutab.net + +hi-fi.ru + +vorle.ru +amdm.ru +womo.uabody > noindex' + +4pna.combody > noindex > center, + moto.kiev.uabody > noindex > noindex3 + +opennet.me + +opennet.rubody > noindex ~ br/ + ut3mk.at.uabody > p + p > a[href] > img +jut.su body > spanD +forums.rusmedserv.com'body > span > form > a[target="_blank"]( +budport.com.uabody > style + div4 + shazoo.ru#body > style + div[class]:not([id])$ +dari-radost13.ru body > tableK + itnews.com.ua6body > table > tbody > tr > td[style^="height:112px;"]< +pixs.ru-body > table > tbody > tr > td[valign][width]h + tyndex.ruWbody > table > tbody > tr:first-child > td:first-child + td[valign="top"][align="left"], + chipfind.rubody > table[height="80"]S +www.google.com + www.google.ru,body > table[style="border: 1px solid #369"]M +christianka.bratstvo.org-body > table[width="99%"] + p[align="center"]& +payeer-gift.rubody div .banner* +om1.rubody div[class*="-branding"]{ + anitokyo.org + anitokyo.tv + +anifap.com + +anifap.xyz div[style^="position: absolute;"][onclick]2 +forum.flprog.rubody.section-index .sidebar + the-geek.ru body::before4 +livetvstream.pro +mebody[bgcolor] > #adbtmY +livetvstream.pro +me;body[bgcolor] > div[id="ads"][style^="position: absolute;"]I +livetvstream.pro +me+body[bgcolor] > div[id^="iframe-container"]4 + +hi-fi.ru$body[data-pageid] #ipsLayout_sidebar + +flamp.ru +cat-banner" + +exnews.orgcenter + noindexÚ +multivarki-redmond.ru +minecraftnavideo.ru +remontnavideo.ru +prohozhuigru.ru +avtonavideo.ru +prigotovit.org + chinimavto.ru + televizor2.ru + pol-video.ru + odezhda2.ru + piling.re center > #vis8 + samlab.ws'center > .box-shadow + table:last-child6 +lostfilm.hdkino.bizcenter > .right-block-title3 + maanimo.com center > a[href*="goo.gl"] > imgj +anypictures.ru + pixcloud.ruEcenter > a[href]:not([href="//www.liveinternet.ru/click"]) > img[src]J + mehanik.games + tes-game.ru¢er > a[href][rel="nofollow"] > img¶ +torrents-soft.net +torrent-song.ru + aggromusic.ru + fullpcgame.ru + gidonline.fun + gig-games.net + megosales.com + +yaebus.net'center > a[href][target="_blank"] > img< +root-nation.com%center > a[href][target="_blank"] imgC + +molchun.ru1center > a[rel="nofollow"][target="_blank"] > img? +samopoznanie.ru(center > a[style][href][target="_blank"]A +megaonlines.net + inmoment.rucenter > a[target="_blank"]@ + narodclub.net+center > a[target="_blank"][rel="nofollow"]9 +dating.trans-admirer.comcenter > b:nth-of-type(3), + +nnmclub.ro + +nnmclub.to center > bigF + allmmorpg.ru2center > div > a[rel*="nofollow"][target="_blank"]+ + hack-tool.orgcenter > div > noindex0 + sibmail.comcenter > div[style*="200px;"]Y + motolife24.ru + +lunno.ru8center > div[style="font-size:14px;background:#FFFACD;"]E +www.zoneofgames.ru+center > div[style^="width:630px;height:3"]8 + +youtext.ru¢er > font > div[style*="#FFCC66;"]' +trserial.net.uacenter > ins ~ *®& +Tÿï08@RDcustomgames.ru,eucargologistic.com#?#center:-abp-has(> .adsbygoogle) +Dÿï08@R4glianec.com#?#center:-abp-has(> [id^="_vidverto-"] ) +Rÿï08@RBparnuxi.com#?#div > .mainmenu:-abp-has(> a[href*="pornolavka.pw"]) +[ÿï08@RKredfm.ru#?#div.news.grid_16 h3:-abp-has(span:-abp-contains(Реклама)) +vÿï08@Rfredfm.ru#?#div.news.grid_16 h3:-abp-has(span:-abp-contains(Реклама)) ~ a[href][target="_blank"] +|ÿï08@Rlredfm.ru#?#div.news.grid_16 h3:-abp-has(span:-abp-contains(Реклама)) ~ div[style="overflow: hidden;"] +jÿï08@RZandroid-club.ws#?#div.side-item-left:-abp-has(> .side-title:-abp-contains(Реклама)) +3ÿï08@R#soundtimes.ru#?#div:-abp-has(> #kb) +™ÿï08@Rˆ7themes.su,banker.ua,chudo-povar.com,cyberpedia.su,draug.ru,festima.ru,help-wifi.com,mods-fs.net,modsforwot.ru,mydiv.net,nikolaev-city.net,pingvin.pro,pixwords-help.info,point.md,readweb.org,sega-play.ru,slo.ru,vplate.ru,wotspeak.org#?#div:-abp-has(> .adsbygoogle) +;ÿï08@R+finversia.ru#?#div:-abp-has(> .banner-bdm ) +`ÿï08@RPversii.if.ua#?#div:-abp-has(> .indication-bor-rad:-abp-contains(РЕКЛÐ�МÐ�)) +;ÿï08@R+salonav.com#?#div:-abp-has(> .mom-ads-wrap) +mÿï08@R]selomoe.ru#?#div:-abp-has(> .title_also:-abp-contains(ПартнерÑ�кий контент)) +[ÿï08@RKpodarkus.ru#?#div:-abp-has(> [class^="G-work-podarkus"] > a[href*="erid="]) +Iÿï08@R9liveresult.ru#?#div:-abp-has(> [data-has-bookmaker-odds]) +Uÿï08@REgdzguru.com,reshebnik.com#?#div:-abp-has(> [href*="://gdz-ru.work/"]) +Fÿï08@R67themes.su,yakutsk.ru#?#div:-abp-has(> [id^="adfox_"]) +uÿï08@Reblackwot.ru,draug.ru,emdigital.ru,modsforwot.ru,pogodavtomske.ru#?#div:-abp-has(> [id^="yandex_rtb"]) +Fÿï08@R6photofuneditor.com#?#div:-abp-has(> [src*="pagead2."]) +…ÿï08@Rugdz.ninja,gdzotputina.club,gdzputina.net,reshebnik.com,spishi.fun,zoobrilka.net#?#div:-abp-has(> [src="/secret.png"]) +Kÿï08@R;drive2.ru#?#div:-abp-has(> a[href] > div > div > div > div) +jÿï08@RZanwap.film#?#div:-abp-has(> a[href]:not([href^="/films/"]):not([href^="/serials/"]) > div) +Eÿï08@R5fragrantica.ru#?#div:-abp-has(> a[href^="/goto.php"]) +[ÿï08@RKohmywishes.com#?#div:-abp-has(> a[style*="/images/banner-image/"]) ~ button +Pÿï08@R@point.md#?#div:-abp-has(> article > div > a[href*="/business/"]) +Pÿï08@R@photoshop-besplatno.org#?#div:-abp-has(> div > [href*="bit.ly"]) +Jÿï08@R:nonameno.com#?#div:-abp-has(> div > [href*="dex.browser"]) +Lÿï08@R div > [id^="adfox_"]) +Hÿï08@R8rusprofile.ru#?#div:-abp-has(> div > [id^="yandex_rtb"]) +_ÿï08@ROsuperjob.ru#?#div:-abp-has(> div > div > [class*="f-test-vacancy-ad-context-"]) +;ÿï08@R+okna.ua#?#div:-abp-has(> div[id][data-url]) +Iÿï08@R9silver.ru#?#div:-abp-has(> div[id^="M"][id*="Composite"]) +Jÿï08@R:liveresult.ru#?#div:-abp-has(> div[style="color:#D42A28"]) +Oÿï08@R?koolinar.ru#?#div:-abp-has(> header ~ a[href][rel="sponsored"]) +>ÿï08@R.gdzguru.com#?#div:-abp-has(> img[src*="ops."]) +{ÿï08@Rkcomputer76.ru,rp5.am,rp5.by,rp5.co.nz,rp5.co.uk,rp5.kz,rp5.md,rp5.ru,videoredaktor.ru#?#div:-abp-has(> ins) +Yÿï08@RIdoramatv.live,doramatv.one,doramatv.ru#?#div:-abp-has(> noindex > script) +4ÿï08@R$fragrantica.ru#?#div:-abp-has(> sup) +dÿï08@RTfootball.kulichki.net#?#div:-abp-has(> table > tbody a[href*="kulichki.com/advert"])! + gizmod.rucenter > noindexH + fullgames.ru + haleava.net%center > noindex > a[target="_blank"]5 + 2olega.ru$center > object > a[target="_blank"]7 +torrent-stop.orgcenter > p > a[target="_blank"] + itechua.com center > pre! + +maulnet.rucenter > strong" + fonland.sitecenter > tableY + mmaps.netHcenter > table > tbody > tr[valign="middle"]:first-child + tr:last-child@ +dating.trans-admirer.com center > table[bgcolor="CC0099"]: +softa-mnogo.ru$center > table[style="width:150px;"]> + world-art.ru*center > table[width="1000"][height="250"]l +softa-mnogo.ru + megatrest.ru + xakeroker.ws + +sofirus.ru + iobit.com + ripik.netcenter a > img2 +post-tracker.rucenter[style*="margin-top"]& +oper.rudd > .body > center ~ *3 +oper.ru$dd > .body font > a[target="_blank"]: + nova-wings.ru%div > #yaMarket ~ table[width="100%"]3 +grad.ua$div > .comments ~ .blok_header_title: +ohmywishes.com$div > button + button ~ div > button +mail.google.comdiv.ae5 + +mport.ua div.b-widgets + ero-top.info +div.dating1 +nashaplaneta.netdiv.hide.margin32 > .ttle5 +nashaplaneta.netdiv.hide.margin32 > .ttle ~ *0 +politnavigator.netdiv.hide_mobile[style]/ + +sport24.rudiv.right-scroll-bar-positionþ +Eÿï08@R5only-paper.ru#?#div:not(.adv-wrapper):-abp-has(> ins) +²ÿï08@R¡glavagronom.ru#?#div:not([id]):not([class]):-abp-has(> div + div + section + section) > div:first-child + div > div:only-child > div:first-child + div:last-childI +tomat-pomidor.com0div:not([id]):not([class])[style^="min-height:"]D + darkmoney.at0div[align="center"] > a[href] > img[src*=".gif"]^ + igru-xbox.net + +probiv.one + probiv.in.div[align="center"] > a[href][target="_blank"]d +ru-minecraft.ruMdiv[align="center"] > div[style^="background-color:"][style*="height:300px;"]0 + kinofrog.rudiv[align="center"] > noindex? +adult-images.ru(div[align="center"] > table[width="160"]? +adult-images.ru(div[align="center"] > table[width="962"]= + dlltop.ru,div[align="center"] a[target="_blank"] > img; +101kofemashina.ru"div[align="center"][class$="only"]j +ru-minecraft.ruSdiv[align="center"][style=" background-color: #ececec;"] > div[style*="font-size:"]= + pcnews.ru,div[align="center"][style="display: block;"]3 +referatwork.rudiv[align="justify"] > center, + +sport24.rudiv[aria-expanded="false"]' +rg.rudiv[aria-label="Дзен"]D +1743.ru +ntsk.ru +orki.ru +orsk.ru +gts.tv +div[bs_id]G +notebookcheck-ru.com+div[class$=" "][style="display: inherit ;"]8 + regnum.news + regnum.rudiv[class$=" feed-item"]" + +znak.comdiv[class$="-ads"]* +bhf.sudiv[class$="-bannerContent"]# + hdclub.uadiv[class$="-prm"]- +www.kinopoisk.rudiv[class$="__adfox"]% + vesdoloi.rudiv[class$="_ads"]% +thr.rudiv[class$="_branding"]% + gorod.cn.uadiv[class$="_pos"]& + +russian.fidiv[class$="_ushki"][ +hdkinoteatr3.net +hdkinoteatr.com0div[class$="col"] > .side ~ .side + .sidebtm ~ *7 +www.kinopoisk.rudiv[class$="g-kinopoisk-media"]% + +zaycev.netdiv[class*=" ZNT_"]) + obukhiv.infodiv[class*=" min-h-"]) +mash.rudiv[class*=" styles_bar_"]7 +the-village.ru!div[class*="-BannerPlaceholder-"]* + servernews.rudiv[class*="-banner"]  +noi.mddiv[class*="-bnr"]J + moskva.fm + +piter.fm-div[class*="-branding-"] > a[target="_blank"]ß +selfmanga.live + allhen.online + doramatv.live + mintmanga.one + doramatv.one + findanime.ru + librebook.me + readmanga.io + doramatv.ru + +grouple.co + +selflib.me + usagi.one +mose.sudiv[class*="-brnd"]? +kinoafisha.info(div[class*="-fix "][class$="as-desktop"]% + +mmo13.rudiv[class*="300x600"]) +gazetametro.rudiv[class*="AdBox"]  +rg.rudiv[class*="Adfox"]C +market4game.ru + +korabel.ru +food.rudiv[class*="Banner"]) + zhukvesti.rudiv[class*="Banners"]0 + football24.uadiv[class*="BrandingPlace"]* + career.rudiv[class*="HHC-Banner-"]- +ren.tvdiv[class*="InformationBlock_"]% +tass.rudiv[class*="InlineAd"]: +rg.ru-div[class*="PageArticle"][class*="_partner_"]# +rg.rudiv[class*="YandexAD"]# +fex.netdiv[class*="__ads-"]' + mydiv.netdiv[class*="__bot-ad"]' + mydiv.netdiv[class*="__top-ad"]+ + sovsport.rudiv[class*="_bonusLogo"]0 +poltavawave.com.uadiv[class*="_place__"]+ + www.eg.rudiv[class*="_promocodes "]  +rg.rudiv[class*="adBox"]  +rg.rudiv[class*="adFox"]& + +agroxxi.rudiv[class*="adagro"]Q +yummy-anime.ru + yummy-ani.me + yummyani.mediv[class*="adfinity_block"]= + mayaksbor.ru + ruwiki.ru +rg.rudiv[class*="adfox"]- + svpressa.rudiv[class*="adfox_banner"]9 + glavnoe.net + infotime.codiv[class*="ads-fixed"]) +vgr.bydiv[class*="ads-placement"]  +nuz.uzdiv[class*="adv-"]Ä, +Rÿï08@RBprokuzbass.ru#?#div[class*="flex-grow"]:-abp-has(> .sticky > .adv) +uÿï08@Retm.ati.su,trucks.ati.su#?#div[class*="grid-user-data"]:-abp-has(> [class*="user-data-grid"] > :empty)< + football24.ua + +sport24.uadiv[class*="adv-wrapper"]& + +faqusha.rudiv[class*="advban"]+ +bryansktoday.rudiv[class*="advbig"]S + sevastopol.su + firtka.if.ua + wot-news.com +eda.rudiv[class*="advert"]9 + peopletalk.ru +znaj.uadiv[class*="advertising"]3 +odessa-life.od.uadiv[class*="ai-viewport-"], +thequestion.rudiv[class*="annonser"]U +gorodvitebsk.by +penza-press.ru + +kursktv.ru +open.uadiv[class*="baner"]Ž +spanishrestaurant.ru +industry-hunter.com +sportguide.kiev.ua +avtodispetcher.ru +prostatitanet.com +sportanalytic.com +cryptonewsua.com +skachat-kino.fun +champion.com.ua +forum-profit.ru +gorodvitebsk.by +syzran-small.ru +tengritravel.kz +veterinargid.ru +agroreview.com +bezformata.com +budport.com.ua +epravda.com.ua +investfunds.ru +islam-today.ru +menportal.info +nv-online.info +penza-press.ru +roscontrol.com +tengrisport.kz +thequestion.ru +vklasse.online +wonderzine.com +zagorod.spb.ru +zorbasmedia.ru + agrotimes.net + cybersport.ru + echosevera.ru + fatalgame.com + fishingsib.ru + footballua.tv + growhow.in.ua + klavogonki.ru + medialeaks.ru + megatyumen.ru + pravda.com.ua + primemusic.cc + smolensk-i.ru + tengriauto.kz + tengrinews.kz + valverus.info + vinnitsa.info + zaim-profi.ru + 19rusinfo.ru + joborgame.ru + laradiofm.ru + livesport.ws + neboleem.net + polochka.net + povarenok.ru + profibeer.ru + twentysix.ru + 73online.ru + agronews.ua + autodmir.ru + bakemono.ru + bhub.com.ua + codernet.ru + comments.ua + gameguru.ru + nmedic.info + pravoved.ru + relax-fm.ru + sovsport.ru + the-flow.ru + ufanotes.ru + vashurok.ru + vshkole.com + zebra-tv.ru + +19rus.info + +20minut.ua + +2goroda.ru + +365info.kz + +con-med.ru + +goodfon.ru + +hunting.ru + +kursktv.ru + +ppt4web.ru + +start33.ru + +vringe.com + 9tv.co.il + cbonds.ru + gecid.com + haqqin.az + infpol.ru + ircity.ru + k1news.ru + knijky.ru + locals.md + obyava.ua + sibnet.ru + sport5.by + wowjp.net + xsport.ua + zaryad.me + zoohoz.ru + +advis.ru + +filmz.ru + +flamp.ru + +myslo.ru + +redfm.ru + +tveda.ru + +vikka.ua + +vovka.su + +woman.ru +1777.ru +food.ru +news.ru +okna.ua +tele.ru +1ul.ru +3ys.ru +bel.ru +bon.ua +car.ru +jut.su +thg.ru +gp.by +iz.ru +kt.kz +rg.rudiv[class*="banner"]9 + dressupmix.ru$div[class*="banner"]:not(.banner-vk)4 + bombardir.ru div[class*="banner-placeholder"]5 +mobile-review.comdiv[class*="banner-wrapper"]6 + +finance.ua +meta.uadiv[class*="banner-zone"]3 + voxpopuli.kz +sia.rudiv[class*="banner_"]+ + +ecology.mddiv[class*="bannerplace"]H +forum.krasmama.ru + apteka.ru + mycity.bydiv[class*="banners"]š +techinsider.ru +thevoicemag.ru + pravilamag.ru + thesymbol.ru + mentoday.ru + novochag.ru + robb.report + grazia.rudiv[class*="billboard"]f +gazetaby.media + gazetaby.info + gazetaby.com/div[class*="block-articles-"][class*="-native"], + mamaplus.mddiv[class*="block-mplus"]F + soccer.ru5div[class*="block-new-desine-"][class*="-bookmakers"]0 +forum.domik.uadiv[class*="blockTAdvert"]' +ctv7.rudiv[class*="bnrs-block"], +diabet-med.comdiv[class*="boxzilla"]( + priluki.citydiv[class*="bunner"]8 + newsvl.ru +drom.ru +vl.rudiv[class*="candy"]? + povarenok.ru+div[class*="content-md"] > div[class$="-m"]A + povarenok.ru-div[class*="content-md"] > div[class*="menu"]k + pravda.if.uaWdiv[class*="content-wrapper"] > [class*="share-container"] ~ [class*="share-container"]* + joinfo.uadiv[class*="content_ads"], + +livelib.rudiv[class*="context-ads-"]< + highload.tech + +mc.todaydiv[class*="course-widget"]0 + fireman.clubdiv[class*="desktop_direct"], +www.zoneofgames.rudiv[class*="dver"]H +ren.tv:div[class*="dzenFoxButtonsContainer"] > div[class^="root"]" + +dltv.orgdiv[class*="erid"]; + superjob.ru(div[class*="f-test-vacancy-ad-context-"]7 + fedpress.ru$div[class*="follows-channel_yandex"]Y + lifehacker.ruDdiv[class*="footer-widgets__container"] > [data-key^="custom_html-"]$ +prnt.scdiv[class*="grundik"]< + stratege.ru)div[class*="info"] > div[class$="_title"]S + stratege.ru@div[class*="info"] > div[class$="_title"] ~ div[class$="_outer"]& + +niscu.rudiv[class*="iw-modal"]+ + +7days.rudiv[class*="js-banner_ad_"]^& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1ai +kingisepp-today.rudiv[class*="ks-banner-news"]  +ts.kgdiv[class*="oops-"]9 + altapress.ru + etextlib.rudiv[class*="partners"]: + +2ch.life +2ch.hk +2ch.sudiv[class*="plashque"]) +kino-mania.prodiv[class*="plav_"]& + 1parazit.rudiv[class*="popup"]# + +newsru.comdiv[class*="prm"]1 +snob.ru"div[class*="promotion-click-area"], + smexigrex.rudiv[class*="region-amm"]& + +fiteria.rudiv[class*="relap-"]$ +baby.rudiv[class*="rennab-"]* +mastergrad.comdiv[class*="revive"]> + +mashina.kg + +house.kg div[class*="right-side-banner-"]K +sport-express.net +sport-express.rudiv[class*="right_col_banner"]D +kyivvlada.com.ua +1.zt.ua!div[class*="section-smartslider"]9 +svetlica-mama-blogger.rudiv[class*="sgpb-popup-"]% + +hochu.tvdiv[class*="sidebar"]& + 1track.rudiv[class*="smartys"]6 +ren.tv(div[class*="socialButtonsWrapper"] > div¨# +Lÿï08@R .staticFragment) +Jÿï08@R:animespirit.tv#?#div[class]:-abp-has(> .content-b noindex) +sÿï08@Rcbitcryptonews.ru,forum.materinstvo.ru,vse-shutochki.ru#?#div[class]:-abp-has(> [id^="yandex_rtb_"]) +bÿï08@RRpoint.md#?#div[class]:-abp-has(> a[href*="://sales.simpals.com/"][href*="banner"]) +Jÿï08@R:spafilms.me#?#div[class]:-abp-has(> a[title] > div[class]) +Cÿï08@R3drive2.ru#?#div[class]:-abp-has(> div > .drom-logo) +Jÿï08@R:smi2.ru#?#div[class]:-abp-has(> div > [data-id^="adfox-"]) +Iÿï08@R9smi2.ru#?#div[class]:-abp-has(> div > [data-id^="exAd_"]) +cÿï08@RSsmi2.ru#?#div[class]:-abp-has(> div[font-size] > span:-abp-contains(/опроÑ�/i)) +Sÿï08@RCsearchengines.guru#?#div[class]:-abp-has(> div[id][align="center"]) +hÿï08@RXnovayagazeta.ru#?#div[class]:-abp-has(> div[style^="display"] ~ div > div[id*="adfox_"]) +¢ÿï08@R‘livejournal.com#?#div[class][style^="height:"][style*="background-color: black; position: relative;"]:-abp-has([src*="docking"][src*="eaglecdn"])' +nur.kzdiv[class*="sponsorship"]6 + +apest.ru&div[class*="sredstvo_container_group"]H +6sotok-dom.com + subsidii.net + +ant-top.rudiv[class*="teaser"]) + prizvanie.sudiv[class*="teasers"]U +menquestions.ru + bigpovar.com + +hd-720.biz + promtu.rudiv[class*="tizer"]A + +kabar.kg1div[class*="top-banner"] a[href][target="_blank"]¿ +megaobuchalka.ru +studopedia.info +studopedia.net +studopedia.org + cyberpedia.su + studopedia.ru + studopedia.su + infopedia.su + lektsii.orgdiv[class*="transformer-form"]9 + sletat.ru(div[class*="uis-popup"][class*="banner"]+ +vseprorebenka.rudiv[class*="venus"]2 + prohondroz.rudiv[class*="vex-modal-block"]' + fastpic.orgdiv[class*="vright"]3 + rusdozor.ru div[class*="widget_custom_text"]. + +carobka.rudiv[class*="wrapper-banner"]m +politobzor.net + finobzor.ru + warfiles.ru + topcor.ru + topwar.rudiv[class*="ya"][class*="dzen"]m +politobzor.net + finobzor.ru + warfiles.ru + topcor.ru + topwar.rudiv[class*="ya"][class*="news"]& + topcraft.rudiv[class*="zebra"]4 + gorodche.ru + www.eg.rudiv[class*="znamya"]/ +bhf.su!div[class=""][style=""] > noindexH +sport-express.net +sport-express.rudiv[class="clearfix mb_10"]3 + 9tv.co.il"div[class="content_group i_frame"]2 +electric-house.rudiv[class="forumbg_star"]> +klopotenko.com(div[class="franke-sidebar"]:not([style])/ + wap.sasisa.rudiv[class="item"][id^="_"]H + likeni.ru7div[class="main-widgets-item main-widgets-banner flex"]# +27r.rudiv[class="post bg1"]: + +nntt.org*div[class="postbody"][id^="post"] ~ center! + konorama.rudiv[class="r"]% +move.rudiv[class="row specs"]' +foto.uadiv[class="side-banner"]) + wowskill.rudiv[class="side-blok"]: + seasonvar.ru&div[class="sidebar lside"] > :not(div)5 +pro-kyiv.in.uadiv[class="widget widget_text"]> +budport.com.ua(div[class] > a[href][rel="nofollow"] > p< + driver.ru+div[class] > a[href][target="_blank"] > img{ +www.kinopoisk.rucdiv[class]:first-child > div[class*=" "] > div:first-child + :not(div) + div[class*=" "]:last-child& + +ytvideo.rudiv[class][data-aid]a + europaplus.ru + dorognoe.ru + +retrofm.ru + radio7.ru"div[class][data-element*="BANNER"]6 +prnt.sc +mk.rudiv[class][style*="important"]K + +rlocman.ru9div[class][style="background-color:#fcfcee;padding:10px"]¬ + hentailib.org + hentailib.me + mangalib.org + ranobelib.me + mangalib.me + slashlib.me + yaoilib.net:div[class][style="margin-top: 20px; margin-bottom: 20px;"]; + puzzleheap.ru&div[class][style^="height:"][id]:empty; +news.pn,div[class][style^="width:"][style$="300px;"]6 + igromania.ru + kanobu.rudiv[class^="AdLink_"]. +auto.rudiv[class^="AdWithFixedHeight"]0 +news.finance.uadiv[class^="Advertising"]G +sportsdaily.ru + kaktus.media + kaktus.kgdiv[class^="Banner"]/ + +360tv.rudiv[class^="Banners_skeleton_"]j +radioromantika.ru +comedy-radio.ru +veseloeradio.ru + relax-fm.rudiv[class^="D_"][class*="x"]K +rg.ru>div[class^="EditorialPageArticleAside_item"][style^="height:"]$ + apteka.rudiv[class^="Eshop"]% + newsru.co.ildiv[class^="HP_"]K + www.sibnet.ru6div[class^="Info_sidebar_"] a[class^="Informer_root_"]¹+ +¢ÿï08@R‘tass.ru#?#div[class^="MaterialListing_chunk"] a[href]:-abp-has([class*="tass_pkg_marker"]:-abp-contains(ПартнерÑ�кий материал)) + ÿï08@R�kanobu.ru#?#div[class^="Sidebar_sidebar_list"] > div[class]:-abp-has(> div > div > span:-abp-contains(ПартнерÑ�кий материал)) +œÿï08@R‹stopgame.ru#?#div[class^="_content"] > div[class^="_video-wrapper"] ~ [class] [class^="_list_"]:-abp-has([href^="/to?http"][href*="%2Fgo"]) +Šÿï08@Rzstopgame.ru#?#div[class^="_content"] > div[class^="_video-wrapper"] ~ [class] b:-abp-contains(/Скидка|Скидки/) +Nÿï08@R>fc-zenit.ru#?#div[class^="adv-"]:-abp-has(> div[id^="adfox_"]) +mÿï08@R]cybersport.ru#?#div[class^="asideWidgets_"] > .rounded-block:-abp-has(> [href*="bookmakers"])6 + igromania.ru"div[class^="KeysForGamers_button"]I + igromania.ru + kanobu.ru(div[class^="MaterialSubscription_root_"]; +rg.ru.div[class^="Page_asideItem"][style^="height:"], +tass.rudiv[class^="PartnerMaterial"]' + mobiguru.rudiv[class^="RELINK"]- +tass.rudiv[class^="ReadTass_wrapper"]. + www.sibnet.rudiv[class^="Realty_root"]B + igromania.ru + kanobu.ru!div[class^="TopPageBanner_wrap_"]& +yarnovosti.comdiv[class^="_5"]3 +domashnie-zagotovki.rudiv[class^="a7-btns"]0 +igdz.ru!div[class^="ab-"][class$="-text"]' +u24.uadiv[class^="ab_premium_"]1 + ukranews.com + +hi-fi.rudiv[class^="ad-"]K +kolombo-online.ru + cybersport.ru + www.zakon.kzdiv[class^="ad_"]3 +xn--k1afadd0cwc.xn--p1aidiv[class^="adace"]1 +cameralabs.orgdiv[class^="adaptivgoogle"]( +e-ink-reader.rudiv[class^="adb"]6 + +vlasti.net + +winnote.rudiv[class^="adrotate"]U +chernomorets.odessa.ua + +x-kuzov.ru + shaiba.kz +moei.rudiv[class^="ads"]* + amoledo.comdiv[class^="adsbanner"]* +inforesist.orgdiv[class^="adslot"]% +lb.uadiv[class^="adv-banner"]( + kasparov.rudiv[class^="advCell"]7 + kommersant.ru + autopilot.rudiv[class^="adv_"]- +allsportlinks.comdiv[class^="adver_"]- +skolkovarim.comdiv[class^="adverser"]K + +boxrec.com + +iphones.ru + +lovitut.ru +pc.rudiv[class^="advert"]? + myplaycity.ru + direct.farmdiv[class^="advertisement"]0 +rau.ua +zn.uadiv[class^="advertising"]{ + montecarlo.ru + rusradio.ru + +maximum.ru + +hitfm.ru +dfm.ru3div[class^="advertising-"][class*="-popup-overlay"]6 + multoigri.ru"div[class^="advertising-content-"]' + mp3party.netdiv[class^="advf-"]= +epravda.com.ua + pravda.com.uadiv[class^="advtext_"]' + ekaraganda.kzdiv[class^="aks-"]/ + +gamer.rudiv[class^="alarmalarm-banner"]' + shotam.infodiv[class^="angwp_"]N +mesjachnye.com8div[class^="article-mvideo"] > div[style^="background:"]4 + sravni.ru#div[class^="article_spec-wrapper_"]: +cursorinfo.co.il"div[class^="atf_"][class*="_news"]/ + gdekluet.rudiv[class^="b-app-promoter"]8 +professionali.ru +ntn.uadiv[class^="b-banner"]& +irk.rudiv[class^="b-branding"]. + +tagline.rudiv[class^="b-sponsor-logo"]7 + +tagline.ru%div[class^="b-sponsor-logo"] ~ center# + +newbum.netdiv[class^="ban"]w +perevolockday.ru +sorochinskday.ru + buzulukday.ru + +orenday.ru + +saltday.ru + +nsday.rudiv[class^="ban_"]$ +aces.ggdiv[class^="banaces"]M + globalmsk.ru + agronews.ua + soccer.ru +nta.uadiv[class^="baner"]£ & +$xn----7sbabrtfclecozdeg8b6a.xn--p1ai +kyiv-independent.com +onlineradiobox.com +the-village-kz.com +mobile-review.com +turkmenportal.com +crazymailing.com +kino-kingdom.com +perevolockday.ru +sorochinskday.ru +igry-online.net +kamchatinfo.com +khersonline.net +lipetskmedia.ru +menquestions.ru +ponedelnik.info +sevkavportal.ru +bezparazita.ru +gtavicecity.ru +internetua.com +mediaryazan.ru +musicforums.ru +telegraf.in.ua +the-village.me +the-village.ru +torrents.in.ua +village.com.ua +worldofmods.ru + asiarussia.ru + buzulukday.ru + kerchinfo.com + modernrock.ru + moya-semya.ru + novostroev.ru + studfiles.net + yarik-sat.com + zhitomir.info + aldebaran.ru + botinok.porn + bountymax.ru + clubvolvo.ru + dom2stars.ru + mashintop.ru + pln-pskov.ru + postovoy.net + rtraveler.ru + studfile.net + subscribe.ru + tltonline.ru + trymobile.ru + ukrinform.ru + zerno-ua.com + chytomo.com + gmod-fan.ru + gorod.dp.ua + infobank.by + kluch.media + sovets24.ru + topvideo.tj + trisosny.ru + tvzvezda.ru + womanhit.ru + yarnews.net + +citydog.by + +dnepr.info + +gorod48.ru + +manga24.ru + +nlo-mir.ru + +nversia.ru + +orenday.ru + +saltday.ru + +sovets.net + +wincore.ru + 1plus1.ua + calend.ru + kvnews.ru + mgorod.kz + ntr-24.ru + vklybe.tv + +dota2.ru + +hochu.ua + +klops.ru + +nsday.ru + +psm7.com + +spark.ru + +ura.news + +vdvsn.ru + +vorle.ru + +vse.sale +46tv.ru +alau.kz +zoon.ru +101.ru +999.md +ppt.ru +nn.ru +nv.ua +zn.uadiv[class^="banner"]3 +deti.fm$div[class^="banner"]:not(#vk_groups)V + kaktutzhit.byAdiv[class^="banner"][class$="rightSide"] > .banner:nth-of-type(1)7 + cisoclub.ru$div[class^="banner"][class*="LENTA"]% + +meteo.uadiv[class^="banner-"]' +hh.rudiv[class^="banner-place"]2 +znanierussia.rudiv[class^="banner-under-"]5 +securitylab.ru +irr.bydiv[class^="banner_"]- + +caravan.sudiv[class^="banner_header"]* + +mnmag.rudiv[class^="banner_right"]ð +¢ÿï08@R‘kingisepp-today.ru,xn----etbbecbrbp5ahkja1ae7v.xn--p1ai#?#div[class^="boxFormWrapper"]:-abp-has(> div[class^="link"] a[href*="/images/reklama/"]) +Wÿï08@RGvip-mods.ru#?#div[class^="down-page"]:-abp-has(> .file-active) > .timer +nÿï08@R^vk.com,vk.ru#?#div[class^="feed_row "] > div[id^="feed_repost-"]:-abp-has(.wall_marked_as_ads). + fox-online.tvdiv[class^="banner_sape"]. + autogrodno.bydiv[class^="bannergroup"]' + +kino.vl.rudiv[class^="banners"]+ + academ.infodiv[class^="bannerzone"]1 + bloomchain.rudiv[class^="bc-advertising"]+ + ural56.rudiv[class^="beono-banner"]/ +rating-avto.rudiv[class^="best-prices"]) + +fight.rudiv[class^="bet-widget-"]1 + vokrug.tv div[class^="block-"][class*="0"]* + hariola.comdiv[class^="block-ad-"]+ + +sfera.fmdiv[class^="block-banner-"]' + +3dtoday.rudiv[class^="block_1"]+ + fortrader.orgdiv[class^="blockdiv"]) +delovoymir.bizdiv[class^="bnmd_"]& + finversia.rudiv[class^="bnr-"]@ +forum.sibmama.info +forum.sibmama.rudiv[class^="bnrb"]* + pohudet.orgdiv[class^="bodyclick"]- + sovsport.rudiv[class^="bonus-rating"]3 + xsport.ua +meta.uadiv[class^="bookmaker"]2 + +kerch.fm"div[class^="bp_"][class*="-block"]' + medicina.uadiv[class^="brand_"]* + gorod.cn.uadiv[class^="branding_"]( + +agroxxi.rudiv[class^="brending"]% + sports.kzdiv[class^="brndng"]$ + 24auto.rudiv[class^="brrr_"]x +perevolockday.ru +sorochinskday.ru + buzulukday.ru + +orenday.ru + +saltday.ru + +nsday.rudiv[class^="bsys_"]+ + sportliga.comdiv[class^="bulletin"]: +lada-granta.net + +lkforum.rudiv[class^="but-150"]5 + sovsport.ru"div[class^="button_advertisement"]0 + +umu.org.uadiv[class^="c40-reveal-modal"]6 + sovsport.ru#div[class^="card-carousel_winline"]- + +chita.rudiv[class^="chitaru__wonder"]0 +pogoda.meta.uadiv[class^="city__banner"]2 +click-or-die.rudiv[class^="click-content"], + +ixbt.comdiv[class^="clickable_zone"]J + oterraria.ru6div[class^="code-block"][style*="text-align: center;"]q +odessa-life.od.uaXdiv[class^="code-block"][style^="margin: 8px auto; text-align: center; display: block;"]1 +myanimecorner.rudiv[class^="commercials"]@ + asn.in.ua/div[class^="content-text"] > .content-text ~ hr6 + asn.in.ua%div[class^="content-text"] > .opinionM + asn.in.ua div[style="min-height: 405px;"]0 + igraemsa.rudiv[class^="content__banner"]) +food.rudiv[class^="cookieNotice"]( +walking-dead.mediv[class^="cpa"]Ó +psychologies.ru +doctorpiter.ru +marieclaire.ru +maximonline.ru +vokrugsveta.ru + +mydecor.ru + +parents.ru + +starhit.ru + +the-day.ru + +thegirl.ru + +woman.ru"div[class^="creative-placeholder"]3 + doska.ykt.rudiv[class^="d-expreriment_adv"]" + +finzz.rudiv[class^="dgd_"]' + +arz-biz.rudiv[class^="direkt-"]( + prazdnovik.rudiv[class^="distr"]. + trashbox.rudiv[class^="div_branding_"]& + +aum.newsdiv[class^="djslider"], +onlinestreams.rudiv[class^="dle_b_"], + z-torrents.rudiv[class^="dle_b_app"]) + +btu.org.uadiv[class^="dle_b_bet"]E + +a7d.com.ua3div[class^="dle_b_righttop_"] > div[align="center"]) + onfillm.clubdiv[class^="dolmraz"]r + vip-mods.ru_div[class^="down-page"][style="display: block; width: 100%; height: auto; text-align: center;"]3 +torrent-xatab.netdiv[class^="download-rek"]( +serveradmin.rudiv[class^="elan"]+ +sudostroenie.infodiv[class^="erid"]+ + screenpost.rudiv[class^="featured"]Ô& +gÿï08@RWvk.com,vk.ru#?#div[class^="feed_row "] > div[id^="post-"]:-abp-has(.wall_marked_as_ads) +Lÿï08@R div[class^="banner"]) +»ÿï08@Rªaliexpress.ru#?#div[class^="product-snippet_ProductSnippet__grid"] > [data-product-id]:-abp-has(> div > div[class^="product-snippet_ProductSnippet__description"] > div[class^="product-snippet_ProductSnippet__block"] > div[class^="product-snippet_ProductSnippet__ext"]:-abp-contains(Реклама))? +vk.com +vk.ru(div[class^="feed_row"] > [data-role="*"]( +eva.rudiv[class^="fixed bottom"]< + +zpravda.ru + nvplay.rudiv[class^="flexbannergroup"], +infoselection.rudiv[class^="fonrec"]G + mistosumy.com + mynizhyn.com + pechera.infodiv[class^="frik"]+ + fortrader.orgdiv[class^="ftprefix"]+ + auto.vesti.rudiv[class^="g-banner"]% +mk.rudiv[class^="good-place"]$ + +otzywy.comdiv[class^="goog"]# + +gisher.orgdiv[class^="gov"]' + pipdecor.rudiv[class^="hairw-"]/ + nsportal.rudiv[class^="header-top"] ~ *% + hindcine.tvdiv[class^="hind"]3 +lolzteam.onlinediv[class^="homeBannersAds"]: +odysseus.ctc.ru#div[class^="index-module__notice-"]. + akipress.orgdiv[class^="inform_doska"]/ + +ura.newsdiv[class^="inpage_block-adv-"]Y + animevost.one + animevost.org + animevost.top +vost.pwdiv[class^="interDub-"]5 + itechua.com"div[class^="itech-"][id^="itech-"]* + objectiv.tvdiv[class^="l-banners"]$ +ati.sudiv[class^="large-mk"]( +grad.uadiv[class^="lentainform"]' + football24.rudiv[class^="leon"]( + +domik.uadiv[class^="link_brand"]$ + manikyres.rudiv[class^="m1"]: + sovsport.ru'div[class^="main-menu_affiliateItem"] *0 + sovsport.rudiv[class^="main-menu_other"]( + stolica-s.sudiv[class^="market"]7 + sovsport.ru$div[class^="match-day_bottom_block"]X + sovsport.ruEdiv[class^="matches-by-id_right"] > div[class^="st-widget_container"], + +mc.today +itc.uadiv[class^="max-"]³ +petropavlivka.city +volodymyrets.city +novakahovka.city +shostkanews.city +bilopillia.city +bilyayivka.city +fastivnews.city +gylyajpole.city +kalushnews.city +pereiaslav.city +volnovakha.city +yuzhkanews.city +baltanews.city +chernihiv.city +dobronews.city +drohobych.city +energodar.city +kalynivka.city +kremenets.city +nsirogozy.city +popasnaya.city +sarnynews.city +troyitske.city +zhmerynka.city + chortkiv.city + kagarlyk.city + netishyn.city + novograd.city + primorka.city + skadovsk.city + barnews.city + hadiach.city + hlukhiv.city + horodok.city + izmacity.com + kitsman.city + konotop.city + nikopol.city + slavuta.city + starkon.city + svatove.city + thegard.city + toretsk.city + haisyn.city + lozova.city + nizhyn.city + oretsk.city + rakhiv.city + susidy.city + zoloto.city + +kavun.city + +mltpl.city + kuma.city + tira.citydiv[class^="mc-banner"]/ + metronews.rudiv[class^="metro_banner_"]0 + football24.rudiv[class^="middle_banner"]( + +neva.todaydiv[class^="mix-news"]* + +euroki.orgdiv[class^="mob_banner"]R +liveinternet.ru +beautiflash.ru + +popcake.tvdiv[class^="myblockbottom"]& + dezbox.rudiv[class^="mypopup"]' +t.ks.uadiv[class^="ne-banner-"]* + +dictat.netdiv[class^="news-block"]9 +cheatground.ru + podrobno.uzdiv[class^="offer-"]7 +open4business.com.uadiv[class^="open4-sidebar"]$ + +drive.rudiv[class^="osago-"]= + investing.com(div[class^="outbrain_outbrain-wrapper_"]. + caniplay.rudiv[class^="page-block-ad"]2 +n1.ru%div[class^="page-header__top-banner"]& + miasskiy.rudiv[class^="papex"]+ + smolensk-i.rudiv[class^="parthner"]- +cyberscore.livediv[class^="partner-"]- + tonkosti.rudiv[class^="partner-link"]2 +78.ru%div[class^="partner-news_container_"]O + padaread.com + chytomo.com + +devby.io +dev.uadiv[class^="partners"]U& +$xn----7sbabwosghnf8al4lkj7b.xn--p1ai +syzran-small.rudiv[class^="partnews"]; + 1plus1.video'div[class^="playlist-player-branding-"]0 + gorod.cn.uadiv[class^="pos"][class*="_"]L + eanews.ru;div[class^="post-"] > section[class^="styled__Wrapper-sc-"]) + +tsn24.rudiv[class^="post-banner"]P + pln-pskov.ru .vk-privacy-mode-banner) +Rÿï08@RBshazoo.ru#?#div[class^="sm"]:-abp-has(> div > [id^="yandex_rtb_"]) +‡ÿï08@Rwdirect.farm#?#div[class^="stories_container"] > div[class^="stories_story"]:-abp-has(> [class^="stories_story_banner"]) +Sÿï08@RCzr.ru#?#div[class^="styled__Suspendable"]:-abp-has([data-relap-id])Ú +xn--80aaivjfyj3e.com +economics.studio +scicenter.online +textbooks.studio +uchebnikfree.com +lawbook.online +myzooplanet.ru +psihologia.biz + economuch.com + lawbooks.news + finbook.news + medinfo.live + pravo.studio + all-sci.net + provse.news + sci-lib.biz + +bib.social + sci.house + +lib.salediv[class^="r711"]. +radiobells.comdiv[class^="radio_ads_"]@ + rutube.ru/div[class^="rai_raichu-wrapper__advertWrapper"]q + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf&div[class^="raleas-navbar"] .all_it.ad� + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtfEdiv[class^="raleas-navbar"] > [date-u] > div:empty[style*="opacity:"]€ + piratbit.fun + piratbit.org + piratbit.top + pirat.one +pb.wtf5div[class^="raleas-navbar"] a[href^="/"][href*="xt/"], +mobiltelefon.rudiv[class^="rbanner"]% + +newgdz.comdiv[class^="rblok"]1 + +newsler.ru + xittv.netdiv[class^="rec-"]0 +radioprofusion.comdiv[class^="reclama_"]T +zhenskij-sajt-katerina.ru +brovary.net.ua + neboleem.netdiv[class^="rek"]" + +vesti.azdiv[class^="rek_"]3 + +noteru.com + +uzl71.rudiv[class^="reklama"]+ +cyberleninka.rudiv[class^="relap-"]' + mobiguru.rudiv[class^="relink"]. + remontka.prodiv[class^="remon-after-"]* + +ura.newsdiv[class^="right-banner"]5 +klex.ru +koob.ru +b17.rudiv[class^="rkl"]% + ficbook.netdiv[class^="rkl-"]# +1yar.tvdiv[class^="rklmd_"]! +move.rudiv[class^="rnb-"]& + animedub.rudiv[class^="rolic"]+ + kirovnet.rudiv[class^="rsya_block"]- + vsedoramy.netdiv[class^="sectionrol"]F +sd.ua9div[class^="sed"] > .half.left > .sdbrick:nth-child(-n+9)7 +sd.ua*div[class^="sed"] > .half.right > .sdbrick2 +sd.ua%div[class^="sed"] > a[rel="nofollow"]F +internet-technologies.ru&div[class^="shortcode-"] > [data-href]J +internet-technologies.ru*div[class^="shortcode-"] > a[href*="/go/"]@ + +rcity.by0div[class^="sidebar-"] > div[id^="media_image-"]R + kinovidos.com=div[class^="sidebar-"] > div[type="text/css"][rel="nofollow"]3 + prikol.ru"div[class^="sidebar-advert-block"]5 + +hi-tech.ua#div[class^="single-video-reklama-"], +smartmama.com.uadiv[class^="smart-"]. + sravni.rudiv[class^="special-offers-"]2 + fastpic.orgdiv[class^="spinner"] ~ .d-flexH + shikimori.one + shikimori.org + shikimori.mediv[class^="spns"]* + cybersport.rudiv[class^="sponsor"]/ + yougame.bizdiv[class^="sponsor-banner"]) +sci-fi-news.rudiv[class^="sreda"]/ + infoyarsk.comdiv[class^="sticky-block"]/ +provladimir.rudiv[class^="stream-item"]$ + 4rama.comdiv[class^="strus"]+ + autotopik.rudiv[class^="stuleblok"]5 +zr.ru(div[class^="styled__GalleryBannerRight"]> + eanews.ru-div[class^="styled__ProgrammaticWrapper-sc-"], + +super.rudiv[class^="styles_inread_"]C +moyareklama.by +moyareklama.rudiv[class^="super_context"]5 + pythonru.com!div[class^="td-"][class*="-rec "]B +root-nation.com+div[class^="td-header"] .td-stretch-contentU + ittour.com.ua + prohondroz.ru + glavpost.com +meta.uadiv[class^="teaser"]0 + dlltop.rudiv[class^="tm-article-banner"]' + +odeve.rudiv[class^="toneBlock"]Z +flicksbar.info + flicksbar.fun + flicksbar.mom + flcksbr.topdiv[class^="topAd"]/ +life-reactor.comdiv[class^="top_baner"]< + +tproger.ru*div[class^="tp-"][class$="-top-container"]3 +formulalubvi.comdiv[class^="traffic-video"]" + +rbook.mediv[class^="trsm"], + tourister.rudiv[class^="trstr_adv_"]¥E + +alimero.ru3div[class^="two-column-page-sidebar-slided-boners"]? + uaserials.com + uaserials.prodiv[class^="uas-custom-"]1 + kinonews.rudiv[class^="under_shapka"] > *6 + zamunda.net + +zamunda.chdiv[class^="unique-"]6 + xenforo.info"div[class^="vds-"][class*="cloud"]* + +vesti.kzdiv[class^="vesti-banner"]$ + 1fenshui.rudiv[class^="vex"]( + +newbum.netdiv[class^="videoban"]5 + +coub.com%div[class^="viewer"][class*="banner"]- +virus-stop.com.uadiv[class^="virus-"]& + hqroom.rudiv[class^="vitrina"]* + goal24.livediv[class^="vjs-promo"]' + wikihow.comdiv[class^="wh_ad_"]* + dailyhoro.rudiv[class^="whatever"]) +genshin-info.rudiv[class^="wiad"]6 + www.goha.ru#div[class^="widget-twitch"] > .data, +onlinetambov.rudiv[class^="wraprer"]< +world-weather.ru$div[class^="ww-cont-"][class$="ban"]  +ykt.rudiv[class^="y-ad"]( +dfm.rudiv[class^="yandex-video"]' + yur-zakon.rudiv[class^="yarpp"]" +yp.rudiv[class^="yp-tgb-"], +russianporno911.rudiv[class^="yved"]( +news.pndiv[class^="za-columns-"]( +vk.com +vk.rudiv[data-ad-view]# +vk.com +vk.ru div[data-ad]) +m.vk.com +vk.com div[data-ads]+ + tonkosti.rudiv[data-antares="true"]5 +hellomagazine.comdiv[data-api="/API/banners"]0 +tut.by"div[data-atom-marker="kupi_block"]$ +irr.bydiv[data-banner-class]- + bombardir.rudiv[data-banner-place_id]4 + ex-press.by!div[data-class-name="ads_engine"]N +sport-express.net +sport-express.ru!div[data-component="se-game-app"]& + +kufar.bydiv[data-container-id]W +gitarist05.jimdo.com;div[data-container="sidebar"] div[class*="j-imageSubtitle"]N +gitarist05.jimdo.com2div[data-container="sidebar"] div[class*="j-text"]" +oka.fmdiv[data-element-id]B +tut.by4div[data-io-title="Ð�овоÑ�ти компаний"]1 +kinoafisha.infodiv[data-modules="banner"]9 + +banki.ru)div[data-name="custom:advertising.block"]P +sport-express.net +sport-express.ru#div[data-portal-id="brandedButton"]J +sport-express.net +sport-express.rudiv[data-portal-id^="banner"]. + vseapteki.rudiv[data-qa="PromoSlider"]# + +hi-chef.rudiv[data-rb-slot]E +internet-technologies.ru%div[data-region][data-pending="true"]R + +youla.ruBdiv[data-test-component="ProductOrAdCard"] > span[data-debug-info]C +olx.kz +olx.ua +olx.uz!div[data-testid="qa-advert-slot"]= + forbes.ru,div[data-title="Реклама на Forbes"]+ + malagarusa.esdiv[data-uk-slideshow]( +ozon.rudiv[data-widget="banner"]3 +ozon.ru$div[data-widget="videoProductBlock"]$ +sbp-program.rudiv[id$="-ad"]% +zoneofgames.rudiv[id$="_AD2"]  + +devid.infodiv[id$="_ad"]% + +censor.netdiv[id$="_megadiv"]0 +www.kinopoisk.rudiv[id$="_super_banner"]. +www.kinopoisk.rudiv[id$="_top_banner"]1 +www.kinopoisk.rudiv[id$="banner_300_600"]% + +c-s.net.uadiv[id$="toplayer"]2 +gdz-putina.fundiv[id*="-error-page"] + div0 +gdz-putina.fundiv[id*="-error-page"] > *# + maanimo.comdiv[id*="-gpt-"]  + 24smi.orgdiv[id*="-ir-"]– +>ÿï08@R.mivmeste.info#?#div[id]:-abp-has(> wix-iframe)& + rogoff.clubdiv[id*="-sidebar"]' +zoneofgames.rudiv[id*="ADNEWS"], +spravportal.rudiv[id*="AdContainer"] +66.rudiv[id*="Adb"]) + domosedy.comdiv[id*="TizerGroup"]& +math-prosto.rudiv[id*="Tutor"]D + profinance.ru + regmarkets.ru + spravkus.comdiv[id*="_R-"]) + spletnik.rudiv[id*="_ad_marker_"]) +zoneofgames.rudiv[id*="_adforum"]# + finmarket.rudiv[id*="_ban"] +niv.rudiv[id*="_ban_"]+ + kavkazova.rudiv[id*="actionteaser"]% + ochevidets.rudiv[id*="baner"]¸ +propozitsiya.com +snow-motion.ru + ogorodnik.com + enovosty.com + uralpress.ru + chem21.info + +bitpump.ru + +stadion.uz + +turbo.az +bina.az +tap.azdiv[id*="banner"]) +propozitsiya.comdiv[id*="bunner"]5 + newsvl.ru +drom.ru +vl.rudiv[id*="candy"]& + akipress.orgdiv[id*="company"]0 + stopgame.rudiv[id*="fakeContentShifter"]' + linux.org.rudiv[id*="interpag"]' +sat-digest.comdiv[id*="nu_ban"]  + vokrug.tvdiv[id*="okko"]! + reverso.netdiv[id*="rca"]' + fotostrana.rudiv[id*="reklama"]& + farmamir.rudiv[id*="reklblok"]" + f-igri.rudiv[id*="result"]( +narutoplanet.rudiv[id*="script"]- + infobank.bydiv[id*="swiffycontainer"]% + flowtation.rudiv[id*="tizer"]È +baraholka.onliner.by +artem-kashkanov.ru +astrakhan-24.ru +gotovim-doma.ru + bigpicture.ru + vputilkovo.ru + energyfm.ru + +galya.ru +4pda.to +1tv.ru +qip.rudiv[id*="yandex_ad"]J + gorodrabot.ru5div[id]:not([class]):not([style])[aria-hidden="true"]< + allgames.zone + bestgamer.sudiv[id][align="center"]3 + prohondroz.ru + kidpuz.rudiv[id][block-id]1 +progipertoniyu.rudiv[id][block-id][style]$ +spinazdorov.rudiv[id][block]( + 1fenshui.rudiv[id][block][style]* +rg.rudiv[id][class*="media"]:empty( +rg.rudiv[id][class*="tgb"]:emptyB + myshared.ru/div[id][class][style*="width"][style*="height"]  +okna.uadiv[id][data-url]F + +wstream.to4div[id][style*="position: fixed;"][style*="z-index"]E +penzainform.ru/div[id][style*="width:"][style*="height: 43px"]N + +seonews.ru + kontur-map.ru)div[id][style="background: transparent;"]0 + newsvl.rudiv[id][style="height: 120px;"]/ + newsvl.rudiv[id][style="height: 80px;"]4 +avtotachki.comdiv[id][style="height:150px;"]4 +avtotachki.comdiv[id][style="height:350px;"]6 + askentire.net!div[id][style="min-height:250px"]6 + informator.ua!div[id][style="min-height:400px"]5 +mind.ua&div[id][style="padding-bottom: 35px;"]= + +mamba.ru-div[id][style="width: 320px; height: 100px;"]= + +7days.ru-div[id][style="width: 970px; height: 250px;"] +ivbb.rudiv[id^="ADS_"]‚ + auto.vesti.ru + sobesednik.ru + probirka.org + f1news.ru +1tv.ru +2mm.ru +ctc.ru +irr.rudiv[id^="AdFox_banner"]^ + europaplus.ru + dorognoe.ru + +retrofm.ru + radio7.rudiv[id^="AdwolfBanner240x400_"]! + hibiny.rudiv[id^="BAHEP"]# + +korabel.rudiv[id^="BANNER"]! + +exler.rudiv[id^="Banner"]( +bookskeeper.rudiv[id^="BlockId"]2 + kontur-map.ru + +ololo.fmdiv[id^="DIV_DA"]# + +vesti.rudiv[id^="DIV_SMI_"]1 + +7days.ru!div[id^="GPM_7days_"][id$="_Top"]+ + relax-fm.rudiv[id^="GPM_Relax_fm_"]‡0 +news.sportbox.rudiv[id^="GPM_sportbox_"]+ + +tasix.mediv[id^="M"][id*="Preload"]* + meendoru.comdiv[id^="MeendoBrand"]) + moydrygpk.rudiv[id^="PM_rotator"]+ +forum.developing.rudiv[id^="SRTB_"]( + browserss.rudiv[id^="SlideShow"]! + inpearls.rudiv[id^="TM_"]0 + primgazeta.ru + +zwezda.net div[id^="Zz"]$ +ppt-online.orgdiv[id^="ab_"]% + xv-ru.comdiv[id^="ad-footer"]$ +textarchive.rudiv[id^="ad_"]' + andevice.rudiv[id^="ad_header"]% + indigomath.rudiv[id^="ad_id"]( + imagenizr.netdiv[id^="adblock-"]) +menquestions.rudiv[id^="add_rek"]/ +redheadsound.studiodiv[id^="adfinity-"]8 +topmmo-games.ru + baginya.orgdiv[id^="admitad"]1 +marieclaire.uadiv[id^="admixer_"] ~ .lineA + susanin.news +baby.ru +rb.rudiv[id^="adriver_banner"]% +patrioty.org.uadiv[id^="ads"]% + for-ua.infodiv[id^="adsfoot"]$ + +litvek.comdiv[id^="adsline"]- +forum.vip-cxema.orgdiv[id^="adspace"]9 + +opennet.me + +opennet.ru +24tv.uadiv[id^="adv"]' + autolada.rudiv[id^="adv-block"]! + +app-s.rudiv[id^="advBox"]; + fontanka.ru + muzika.ru + +zakon.kzdiv[id^="adv_"]& +zoneofgames.rudiv[id^="advb-"]2 + alfa-form.ru + 220vk.comdiv[id^="advert"]) +gadgetstyle.com.uadiv[id^="afc_"]& +amic.rudiv[id^="amic_banner_"]$ +meta.uadiv[id^="anabelarto"]* + wowhead.comdiv[id^="announcement"]1 +nv.ua$div[id^="async_"][id*="_head"]:empty+ +nv.uadiv[id^="async_"][id*="_spec"]$ +photoshablon.ru div[id^="av"] +nm71.ru div[id^="az"]) +agro-ukraine.comdiv[id^="b_n_r_"]‹ +donetskfishing.2bb.ru +alpclubmei.mybb.ru +parfumclub.9bb.ru + colorforum.ru + fkme.nc-21.ru + +webtalk.rudiv[id^="b_script"]# + +sport.uadiv[id^="b_sport_"]$ + o-polze.comdiv[id^="bablo_"]& +israelinfo.co.ildiv[id^="ban"]4 +probusiness.by +tut.bydiv[id^="banObject"]' +ua-electro.comdiv[id^="banadd"]$ + radioroks.uadiv[id^="baner"]Ú +euro-football.ru +cataclysmdda.ru +kramatorsk.info +musicmp3spb.org +servers-samp.ru +grinkod.spb.ru + chehov-vid.ru + ekaraganda.kz + floraprice.ru + ptzgovorit.ru + advizzer.com + bragazeta.ru + musicwars.ru + coollib.net + gameguru.ru + tparser.org + uaprom.info + +ereport.ru + +pogoda.com + +sovets.net + +tayga.info + igrixl.ru + mirnov.ru + news29.ru + sports.kz + +vidal.ru +go64.ru +kp40.ru +lada.kz +mix.tjdiv[id^="banner"]7 + rabota66.ru + +ivona.uadiv[id^="banner-place-"]/ + pitbit.rudiv[id^="banner-right-inside"]' +015.bydiv[id^="banner-slider-"]( + +finance.uadiv[id^="banner-zone"]W +sport-express.net +pogodavtomske.ru +sport-express.rudiv[id^="bannerplace"]( + tvoemisto.tvdiv[id^="bannplace"]' + kurskcity.rudiv[id^="banplace"]) + yconsult.rudiv[id^="bbq_widget_"]7 + stranamam.ru + myjane.rudiv[id^="beta_place_"]0 + donpress.comdiv[id^="block-advertblock"]; +teleport2001.ru + ko.com.uadiv[id^="block-banner"]- + dpchas.com.uadiv[id^="block-reklama"]+ +traveller-eu.rudiv[id^="block-rtb"]2 + vinbazar.comdiv[id^="block-views-advert_"]1 + kharkov.infodiv[id^="block-views-banner"]B + kharkov.info.div[id^="block-views-paid_place_slider-block"]# + sntch.comdiv[id^="blockad"]( + alldonors.rudiv[id^="blockbann"]¬ +_ÿï08@ROsite-do.ru#?#div[id^="content_text"] > center:-abp-has(a[href*="myrusakov.ru"])» +swordmaster.org +uti-puti.com.ua +bigkyiv.com.ua +www.semestr.ru + dochronika.ru + footballua.tv + forpost.media + pidru4nik.com + kriminal.tv + +today.uadiv[id^="bn_"] + +chita.rudiv[id^="bnr"] + +prk.citydiv[id^="bnr-"]) + +mmo13.rudiv[id^="bnr-background"]& +businessmens.rudiv[id^="bnr_"]g +vse-pro-sport.com.ua +vseprosport.by +vseprosport.kz +vseprosport.rudiv[id^="bookmaker_"]A + +azbooki.ru + +engisys.ru + +zip1000.rudiv[id^="boom_bar"]) + +progrib.rudiv[id^="bottom_block"]‘ +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.indiv[id^="box-over-content"]' + daboom.rudiv[id^="branded_img"]_ +sportarena.com +videochart.net + +namba.kg + +namba.kz + +namba.tjdiv[id^="branding"]& + www.film.rudiv[id^="bseller_"]! + allfight.rudiv[id^="bx_"]; +radiotrek.rv.ua + +kurs.if.uadiv[id^="candyplace_"]0 +sonnik-online.netdiv[id^="carousel_pos"]1 + +russian.fi + +doska.fidiv[id^="centered"]/ +check-host.netdiv[id^="chadddos-guard"]0 +riotpixels.comdiv[id^="citybattleslide"]p +tvoipitomec.info +tvoipitomec.com +astrolibra.com +multrecept.com + medickon.comdiv[id^="clear_"]' + +finam.rudiv[id^="cntnt_block_"] +ku66.rudiv[id^="comp_"]$ + +mmo13.rudiv[id^="container"]' + +glavcom.uadiv[id^="corebanner"]� +rustorkacom.lib + game4you.top + rustorka.com + rustorka.net + rustorka.top + innal.top + naylo.topdiv[id^="debil"]9 + spletnik.ru&div[id^="desktop_content_side_banner"]) + spletnik.rudiv[id^="desktop_in_"]$ + webdiana.rudiv[id^="diana_"]' + fainaidea.comdiv[id^="divFLRA"]' +delovoymir.bizdiv[id^="dm_bnr"]- + bashskazki.rudiv[id^="eadvt_wrapper"]N +duster-clubs.ru7div[id^="edit"] > div[style="padding: 6px 0px 0px 0px"]3 +next-energy.forum2x2.rudiv[id^="fa_ticker"]& + kritika24.rudiv[id^="fialet_"]' + +finam.rudiv[id^="finamBanner_"], + bashinform.rudiv[id^="fixed_bottom"] +ntv.rudiv[id^="flamur"]* + +edunews.rudiv[id^="float-sidebar"]  +mix.tjdiv[id^="formula"]1 +simulyator-myshi.rudiv[id^="game_banner"]$ + forum.guns.rudiv[id^="gbr_"]3 + esoreiter.rudiv[id^="getContent_esoreiter"]- + dailylviv.comdiv[id^="google_banner"]: + topcor.ru + topwar.rudiv[id^="google_full_story"]( + propochemu.rudiv[id^="gruptiz_"]3 + lostfilm.infodiv[id^="heraplper"] > a[href]8 +omskregion.info + newsomsk.rudiv[id^="hitsadv"]( + +ru-an.infodiv[id^="hme_ad_news"]8 +korrespondent.net + isport.uadiv[id^="holder_"]( + +fanfics.mediv[id^="inform_top_"], +forum.littleone.rudiv[id^="inpage_"]  +glav.sudiv[id^="js-hb-"]' + tkaninfo.rudiv[id^="kazandrey"]/ + fotostrana.rudiv[id^="king-rightplace"]& + +korabel.rudiv[id^="kodirect_"]! + +anekdot.rudiv[id^="krt-"]* +mobiltelefon.rudiv[id^="lbanners"]& + +goroday.rudiv[id^="lngtblck_"]I + vserialy.com + vserialy.fun + great-tv.rudiv[id^="main_banner"]S + rbkgames.com + vyborok.com + hype.tech + +ixbt.comdiv[id^="marketWidget"]& +nanoreview.netdiv[id^="mawid"]) + molbuk.uadiv[id^="mbrightbanner"] +gdz.rudiv[id^="media"]' + maxikarta.rudiv[id^="mega_rt_"]ø' +Lÿï08@R .quote:-abp-has(> div) +lÿï08@R\photofuneditor.com#?#div[id^="sidebar"] div[id^="sidebar"]:-abp-has(div > [src*="pagead2."])& +meta.uadiv[id^="meta_banner_"]: + +espreso.tv + +tv.meta.uadiv[id^="meta_news_block"], +phantastike.rudiv[id^="mindmachine"]$ + novyjgod.comdiv[id^="nazar"]' + kritika24.rudiv[id^="nenadod_"]7 + texdizain.net"div[id^="news-id-"] > .quote > divO + hen-tay.com div[align="center"] > a[href*="aHR0c"]& +lewi.rudiv[id^="news-id-"] ~ *= +om1.ru/div[id^="newsUnderNewsFullwidth"][class="grid"]. + +anisima.rudiv[id^="news_anisim_info_"]/ +chto-proishodit.rudiv[id^="news_chto_"]1 + melodramo.comdiv[id^="news_melodramo_ru"]l + +korabel.ruZdiv[id^="newsid_"] > .row0[style="margin-bottom:8px;"] ~ .row0[style="margin-bottom:8px;"]' + win7ka.rudiv[id^="newsteaser_"]' + myhistori.rudiv[id^="pad_bnr_"]" +mix.tjdiv[id^="parimatch"]) + piccash.netdiv[id^="pcash-block"], +prostatitanet.comdiv[id^="pg-aa-ad"]A +sport-interfax.ru + interfax.rudiv[id^="pl"][id*="_ban"]K +xn---2--mddxunv8a2esa.xn--p1ai%div[id^="post"] > .tech-info + :emptyB + tavrijci.org.div[id^="post-"] > div[class="a-divide-entry"]Q +vk.com +vk.ru:div[id^="post-"][onmousedown^="wall.postClickStat(event)"]( + minfin.com.uadiv[id^="premium-"]. + smartphone.uadiv[id^="premium-banner"]# +sm.newsdiv[id^="prog_adv_"]! + +allcc.rudiv[id^="promo_"], + berdyansk.bizdiv[id^="promo_banner"]$ + kosmetista.rudiv[id^="psn_"]% + +kinogoo.ccdiv[id^="qwetaper"]# + graycell.rudiv[id^="rare_"]& + +vellisa.rudiv[id^="reclamads"]5 +kabachok.online + stulchik.netdiv[id^="rek"]' + +nashol.comdiv[id^="rek"][style]! + +volzsky.rudiv[id^="rekl"]% + city4me.comdiv[id^="reklama"]0 +zastroyschiki39.rudiv[id^="reklama-box"]! + for-ua.infodiv[id^="res"]8 + sibnet.ru'div[id^="right_"][id*="_place_wrapper"]? + useron.ru.div[id^="rt-sidebar-"] > .rt-block ~ .rt-block# + argumenti.rudiv[id^="rtb_"]! + +vnitkah.rudiv[id^="ruk_"]+ +matiz-club.comdiv[id^="sape_links"]! + ne-kurim.rudiv[id^="sbs"]' + newsru.co.ildiv[id^="section_"]" + sibnet.rudiv[id^="sibAd_"]. + spletnik.rudiv[id^="side_ads_content"]) +realstream.spacediv[id^="slice-"]ß +luckyfamilyman.ru +medicina-kirov.ru +cardiologiya.com +electric-220.ru +alcogolizm.com +bolshoyulov.ru +diabethelp.org +firstfisher.ru +moikolodets.ru +samelectric.ru + big-stirka.ru + floradoma.com + literaguru.ru + moyapechen.ru + nosnebolit.ru + oprostatit.ru + vitaminius.ru + alkogolu.net + medotvet.com + mixednews.ru + wheeclamp.ru + 1parazit.ru + alkotraz.ru + fastcarp.ru + mr-build.ru + sustav.info + vesdoloi.ru + villaved.ru + +24stoma.ru + +f4iwiki.ru + +mpsdoc.com + +silaman.ru + +udermis.ru + kakbik.ru + +selok.ru + +youpk.rudiv[id^="slidebox"]) + theuk.onediv[id^="slider-middle"]! + fsell.bizdiv[id^="slot-"]$ + zaxid.netdiv[id^="slot300x"]6 +znachenieimenipro.rudiv[id^="smartrotator_ad"] +mix.tjdiv[id^="somon"]S +slavinfo.dn.ua + +hi.dn.ua1div[id^="sp-"] > .sp-column > .sp-module.hiden-xs$ + +komplat.bydiv[id^="surveys"]& + vodotopim.rudiv[id^="svecha_"]; +2pricolisty.ru +7lostworlds.rudiv[id^="t_Banner"]$ +niv.rudiv[id^="tab_scroll_"]" + +zahav.rudiv[id^="taboola"]j +serialrussian.ru +spinazdorov.ru + prohondroz.ru + avan-ti.net + porevo.sitediv[id^="teaser"]® + +zhenskij-sajt-katerina.ru +avtoelektrik-info.ru +narodnaiamedicina.ru +megatechnostroy.ru +music-education.ru +prostatitanet.com +uroki-pitaniya.ru +askort-studio.ru +cardiologiya.com +every-holiday.ru +healthy2life.com +poluchi-teplo.ru +prosadiogorod.ru +vash-ortoped.com +dermatitanet.ru +gipergidroz.net +kogda-budet.com +promoipochki.ru +sdelala-sama.ru +zavisimost03.ru +alcogolizm.com +bezparazita.ru +lookmedbook.ru +moikolodets.ru +plateginfo.com +potolokspec.ru +prohodimets.ru +prorecepty.com +salat-legko.ru +samogoniche.ru +telecomspec.ru +zdoroveenet.ru + elektrik-a.su + gameorakul.ru + goodread.name + kpacotka.info + moyapechen.ru + nashirybki.ru + obrazovaka.ru + papillomy.com + podvaldoma.ru + vdv-kavkaz.ru + vmirevolos.ru + womanlady.net + anginamed.ru + domovityi.ru + fightnews.ru + godsvadba.ru + herbaldoc.ru + medotvet.com + moyaspina.ru + moypodval.ru + moyskelet.ru + sad-doma.net + stomachum.ru + calculat.ru + fishedem.ru + hozobzor.ru + hudelkin.ru + narmed24.ru + otravlen.ru + timelady.ru + webdiana.ru + +etochay.ru + +mensgen.ru + +mykozha.ru + +progrib.ru + +silaman.ru + +udermis.ru + gboteh.ru + infekc.ru + luxvaz.ru + namenu.ru + omaske.ru + +m-e-f.ru +2mb.rudiv[id^="tgroup_"]W& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1ai +kingisepp-today.rudiv[id^="top-master"]» +Oÿï08@R?indi1.top#?#div[id^="widget_wrapper_"]:-abp-has(#vid_vpaut_div) +Rÿï08@RBindi1.top#?#div[id^="widget_wrapper_"]:-abp-has(.widget_video_ads)% + +ura.newsdiv[id^="top_banner"]) + smartphone.uadiv[id^="topbanner"]& +changeworks.rudiv[id^="ttiz_"]6 +sdelala-sama.ru + webdiana.rudiv[id^="turp_"]( + nnovosti.infodiv[id^="tvfooter"] +asna.rudiv[id^="ut-1"]) +www.zoneofgames.rudiv[id^="via_"]6 +turkishtvsoapopera.rudiv[id^="vid_over_float"]< + football24.ua + zaxid.netdiv[id^="videoAdvWrapper"]. + peopletalk.rudiv[id^="video_banners-"]* + ogemorroe.comdiv[id^="webapteka_"]) + akipress.orgdiv[id^="who_portal"]0 + +ura.news div[id^="widget-container_news"]  + mosday.rudiv[id^="yaad"]R +soccer0100.com +spectehinfo.ru +trudbox.com.uadiv[id^="yandex_direct"]¢ +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.rudiv[id^="yandex_direct_"]C + gdz-raketa.ru + 24smi.org!div[id^="yandex_rtb"] > :not(img)& +alcogolizm.comdiv[id^="yazd_"]% + +korabel.rudiv[id^="ydirect_"]. + irecommend.rudiv[id^="ymarket-mobtop"]+ + mega-stars.rudiv[id^="youtube_ad_"]? + football24.ua + +bigmir.net + +sport.uadiv[id^="zone_"]* + hackware.ru + +kali.tools div[name]ï +multivarki-redmond.ru +minecraftnavideo.ru +remontnavideo.ru +prohozhuigru.ru +avtonavideo.ru +prigotovit.org + chinimavto.ru + televizor2.ru + pol-video.ru + odezhda2.ru + piling.re + shiny2.rudiv[onclick*="SkipR"]( + mydiv.netdiv[onclick*="partner"]H +mastergrad.com2div[onclick*="Кликнул по рекламе"]4 +delphimaster.netdiv[onclick^="onclickRight"]. +mega-tracker.netdiv[style$="#CCCCCC;"]" +360.rudiv[style$="250px;"]+ +mobiledevice.rudiv[style$="468px;"]? +vse-shutochki.ru'div[style$="width:240px; height:400px"]' + +yablyk.comdiv[style*="-ad-bg-"]- +multik-online.netdiv[style*=".am15."]+ + +piter.tvdiv[style*="/partner-news"]- + rugame.mobidiv[style*="/reklama.gif"]/ + +dltv.orgdiv[style*="/uploads/banners/"]* +doefiratv.infodiv[style*="339px;"]9 + x-console.com$div[style*="710px;"][style*="70px;"]= +forums.ngemu.com%div[style*="920px;"][style*="250px;"]2 +dtf.ru +vc.rudiv[style*="banner-height"]Z + bikepost.ruGdiv[style*="block"][style*="center"][style*="width:"][style*="height:"]7 + dumskaya.net#div[style*="display:inline-bl1ock"], + kinogo.ru.netdiv[style*="fyi5fimf."]O +pogoda.unian.net +pogoda.unian.ua$div[style*="height"][style*="250px"]Ž + glavred.info + glavred.net + unian.net + +unian.uaRdiv[style*="height"][style*="overflow:"][style*="hidden"][style*="margin-bottom:"]j + glavred.info + glavred.net + unian.net + +unian.ua.div[style*="height"][style*="overflow:hidden"]0 + argumenti.rudiv[style*="height: 264px;"]J + +ura.news:div[style*="height:"][style*="width:"][style*="overflow:"], + reshak.rudiv[style*="height:325px;"]D +euro-football.ru + liveresult.rudiv[style*="height:400px;"]1 +nemo-crack.orgdiv[style*="hot-game.info"]7 +narutoplanet.ru div[style*="margin-top: 9.5px;"]2 + +wtftime.ru div[style*="min-height: 200px;"]Q +euro-football.ru + liveresult.ru(div[style*="min-height:"][style*="00px"]3 + chipmaker.rudiv[style*="min-height:100px;"]( +tsn.uadiv[style*="opacity: 40%"]d + glavred.info + glavred.netAdiv[style*="px;max-height:"][style*="overflow:"][style*="hidden"]l + glavred.info + glavred.net + unian.net + +unian.ua0div[style*="px;max-height:"][style*="position:"]Z +anidubonline.com + +anidub.vip4div[style*="width: 240px;"][style*="height: 400px;"]V + mediazavod.ruAdiv[style="background: #fff;padding: 10px; margin-bottom: 20px;"]{ + +ingrus.netidiv[style="background: #ffffff; box-shadow: 0 0 0 1px #457a9d, 0 0 5px #333; padding: 10px 3px 3px 3px;"]N + lyricshub.ru:div[style="border-right: 1px solid rgba(0, 0, 0, 0.125);"]Ð# +lÿï08@R\joker.ykt.ru#?#div[style="margin-left:21px;"]:-abp-has(.opros:-abp-contains(Реклама)) +nÿï08@R^my.mosenergosbyt.ru#?#div[style="min-height: 50px;"]:-abp-has(> img[src*="/file/id_content:"])< +artinvestment.ru$div[style="border: 1px solid black"]1 +forum.northnet.rudiv[style="clear: left"]X +rivnenews.com.ua@div[style="clear:both;float:left;width:100%;margin:0 0 20px 0;"]: + forum.guns.ru%div[style="clear:both;height:200px;"]/ + liveresult.rudiv[style="color:#D42A28"]/ + liveresult.rudiv[style="color:#d42a28"]= + +vellisa.ru+div[style="display: inline-block;"] a[href]. + nnovosti.infodiv[style="display:none"]= +novostivmire.com%div[style="float: none; margin:0px;"]B + gizmod.ru1div[style="float:left;width:344px;height:295px;"]I +forum.china-iphone.ru,div[style="float:right; margin-right: 5px;"]@ +lleo.me1div[style="font-size:11px; margin: 0 2px 0 2px;"]1 +astrohelper.rudiv[style="height: 120px;"]- + +speedme.rudiv[style="height: 250px;"]= + glavred.info + glavred.netdiv[style="height: 400px"]S +kirov-portal.ru + +intv.com.div[style="margin: 10px; text-align: center;"]S +voennoedelo.com div[align="center"][style^="height:"]3 +gamer-info.comdiv[style="overflow:hidden;"]f + +baibako.tvTdiv[style="padding-bottom:15px;margin-bottom:15px;border-bottom:1px solid #dfdfdf;"]} + psxplanet.ruidiv[style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "][align="left"]< + +mobiset.ru*div[style="padding-top:5px;height:107px;"]? +news.sportbox.ru'div[style="padding: 10px 0 38px 30px;"]m + tv-fresh.orgYdiv[style="position: relative;display: block;width: 100%;height: 90px;margin-top: 10px;"]F + alltor.me5div[style="position:absolute; top:65px; left:520px;"]o +photofacefun.comWdiv[style="position:absolute;width:100%;text-align:center;height:90px;top:10px;left:0"]N + nashamama.com9div[style="position:relative; width:600px; height:350px"]' +referatwork.rudiv[style="rftk"]N +omskregion.info7div[style="text-align: center; margin: -18px 0 25px; "]T + pcnews.ruCdiv[style="text-align: center; margin: auto;"] > a[target="_blank"]V + alexlarin.netAdiv[style="text-align: center;"] > a[href][target="_blank"] > imgE +minecraft-inside.ru*div[style="text-align:center;clear:both;"]G +autosport.com.ru/div[style="width: 100%; aspect-ratio: 16 / 9;"]O +www.kinopoisk.ru + fastpic.org(div[style="width: 100%; height: 250px;"]N + inmoment.ru;div[style="width: 200px;height: 300px;position: relative;"]a + +allbest.ruOdiv[style="width: 600px; height: 90px; margin-left: auto; margin-right: auto;"]N +megaobuchalka.ru6div[style="width: 80%; align-items: center;"] > centerD +forum.gov-zakupki.ru(div[style="width: 970px; height: 90px;"]J +topasnew24.com4div[style="width:100%; height:275px; display:block"]J +topasnew24.com4div[style="width:100%; height:310px; display:block"]6 +vgae.ru'div[style="width:100%; margin:0 auto;"]A +forum.zoneofgames.ru%div[style="width:100%;height:480px;"]þ% +mÿï08@R]mozaika.biz#?#div[style] > a[href]:not([href^="/"]):not([href^="https://mozaika.biz/"]) > img +Gÿï08@R7kirov-portal.ru#?#div[style]:-abp-has(> [id^="adfox_"]) +Fÿï08@R6kirov-portal.ru#?#div[style]:-abp-has(> [id^="unit_"]) +wÿï08@Rgmozaika.biz#?#div[style]:-abp-has(> a[href]:not([href^="/"]):not([href^="https://mozaika.biz/"]) > img) +=ÿï08@R-kirov-portal.ru#?#div[style]:-abp-has(> ntvk) +Vÿï08@RFsmall-games.info#?#div[style]:-abp-has(> p > [href="#hideRekCaption"]) +hÿï08@RXzhenskoe-mnenie.ru#?#div[style^="font-size"]:-abp-contains(Также узнайте...) +Nÿï08@R>onliner.by#?#em:-abp-contains(нож блокировщику)- + profinance.rudiv[style="width:300px"]? +amsterdamtravel.ru%div[style="width:300px;height:200px"]5 + +riamo.ru%div[style="width:300px;height:500px"]K +topasnew24.com5div[style="width:336px; height:280px; display:block"]< + softobase.com'div[style="width:336px; height:280px;"]d + +for-ua.comRdiv[style="width:540px;height:90px;overflow:hidden;display:block;margin-top:10px"]^ + +obfog.ruNdiv[style="width:970px;height:250px;margin:12px auto 12px auto;display:block"]$ + center.bzdiv[style] > centerG +bless-news.com1div[style] > div[class*="Overlay"][id*="Overlay"], + +cqham.rudiv[style] > noindex a > img5 +buhoblik.org.uadiv[style][onclick*="/rizni/"]\ + +opennet.me + +opennet.rudiv[style^="clear: both"] a[href]:not([href*="chelnyclub.ru"])Ö + domkad.ruÄdiv[style^="display: flex; align-items: center; justify-content: center; background-color: #ECF3F7; margin-bottom: 5px;border-radius: 7px; padding: 5px;position: relative;z-index: 0; min-height:"]L + moto.com.ua9div[style^="display: table; width: 650px; height: 90px;"]W + +sarov.infoEdiv[style^="display:inline-block"][style$="margin:0px 0px 12px 0px;"]. + rasfokus.rudiv[style^="height:100px;"]: + +lumpics.ru(div[style^="height:120px;display:block"]? + sinoptik.ua,div[style^="margin"][style$="width: 300px;"]4 +vgae.ru%div[style^="margin"][style*="-10px;"]< + onlinetv.one(div[style^="margin: 20px 0;min-height:"]O +xn----7sbb0bildcbgm8a.xn--p1ai)div[style^="max-width:"][style*="200deg"]? +24tv.ua0div[style^="min-height: 250px;"][style*=" 50px"]V + +cadelta.ru + +modfarm.ru6div[style^="min-height: 250px;"][style*="background:"]L + smart-lab.ru8div[style^="min-height: 250px;"][style*="font-size: 0;"]4 + liveposts.ru div[style^="min-height: 700px;"]> +open3dmodel.com'div[style^="min-height:"][style$="px;"]E + +gafki.ru + +point.md)div[style^="min-height:"][style*="250px"]L +1pnz.ru=div[style^="position: relative; width: 230px; height: 400px"]` +soccer365.com.ua + soccer365.ru8div[style^="position:"][style*="height:"][style*="90px"]* +lostfilmstv.comdiv[style^="promo"]P + kinonews.ru=div[style^="text-align:"][style*="center;"][style*="height:"]X + wallegend.netCdiv[style^="text-align:center;line-height:0;display:block;height:"]A +integral-calculator.ru#div[style^="width: 728px; margin:"]\ + crazygames.ruGdiv[style^="width:"][style*="100%;"][style*="display:"][style*="block"]E +bin.ua7div[style^="width:"][style*="240px;"][style*="height:"]< + kino-teatr.ru'div[style^="width:100"][align="center"]H +vse-shutochki.ru0div[style^="width:100%; height:280px; padding:"]; + appstudio.org&div[style^="width:100%; height:90px;"]: + inmoment.ru'div[style^="width:199px;height:299px;"]6 + +bookz.ru&div[style^="width:240px;height:400px"]4 +m24.ru&div[style^="width:300px;height:600px"]? +liveinternet.ru(div[style^="width:970px; height:280px;"]" + ebalovo.* + epalovo.*.fad" + ebalovo.* + epalovo.*.pad( + gdzputina.me + botanam.netembedA +sex-studentki.* + mult-porno.* + +fap-guru.* .vpsembedmobA + +imageup.ru/fieldset[style^="display: inline; width: 45%;"] + +znak.comfigure9 + +dyvys.info'figure > div > img[src*="/var-min.jpg"]( + proidei.comfigure.wp-block-image( + +povar.cofigure[id^="attachment"]«/ +nÿï08@R^yap.ru,yaplakal.com#?#form > table[id^="p_row_"]:nth-of-type(2):-abp-has(*:-abp-contains(Yap)) +fÿï08@RVday.kyiv.ua#?#h2:-abp-contains(/^новоÑ�ти партн|^новини партн/i) +eÿï08@RUdokumental.ru,infox.ru,radiorecord.fm,ria-m.tv#?#h2:-abp-contains(/^реклама/i) +Sÿï08@RCfit4power.ru#?#h3:-abp-has(> span:-abp-contains(/реклама/i)) +Iÿï08@R9ytronews.ru#?#h4:-abp-contains(Ð�овоÑ�ти партн) +<ÿï08@R,bibe.ru#?#h4:-abp-contains(Реклама :) +Mÿï08@R=primpogoda.ru#?#h4:-abp-contains(Смотрите также) +;ÿï08@R+nsn.fm#?#h4:-abp-contains(партнеры) +Pÿï08@R@popcake.tv#?#h5:-abp-contains(Ð�овоÑ�ти партнёров) +iÿï08@RYmignews.com#?#h6:-abp-contains(/новоÑ�ти партнеров|знакомÑ�тва/i) +^ÿï08@RNdachnye-sovety.ru#?#h6:-abp-contains(РЕКОМЕÐ�ДУЕМ ПОЧИТÐ�ТЬ:) +µÿï08@R¤4pda.to#?#html[style] > body[style=";background-color:#E6E7E9!important"] .article > div[style^="background-color:"]:-abp-has(> span + a[id][href][target="_blank"]) +Ëÿï08@Rº4pda.to#?#html[style] > body[style=";background-color:#E6E7E9!important"] [id][class] > .slider-list[style] ~ div[class]:not([id]):-abp-has(> :only-child:not(div):not([id]):not([class])) +ƒÿï08@Rs4pda.to#?#html[style] > body[style=";background-color:#E6E7E9!important"] [id][class] > div:-abp-has(> h2 ~ script) +Äÿï08@R³4pda.to#?#html[style] > body[style=";background-color:#E6E7E9!important"] [id][class] > div[id^="devdbc_all_"] ~ div[class]:-abp-has(> :only-child:not(div):not([id]):not([class])) +Åÿï08@R´4pda.to#?#html[style] > body[style=";background-color:#E6E7E9!important"] [itemprop="articleBody"] > div[style^="background-color:"]:-abp-has(> span + a[id][href][target="_blank"]) +Øÿï08@RÇ4pda.to#?#html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class] > .slider-list[style] ~ div[class]:not([id]):-abp-has(> :only-child:not(div):not([id]):not([class])) +‘ÿï08@R€4pda.to#?#html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class] > div:-abp-has(> h2 ~ script) +Ñÿï08@RÀ4pda.to#?#html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class] > div[id^="devdbc_all_"] ~ div[class]:-abp-has(> :only-child:not(div):not([id]):not([class])). +virus-stop.com.uafooter > .footer-main$ +virus-stop.com.ua footer > h48 +payeer-gift.ru"form > div[style^="width: 300px;"]4 +leonkrevs.ucoz.ruform[action*="wmcasher.ru"]2 + +megaimg.ru form[name="show_image"] > center + helpsetup.ru h5#center^ +ozon.ruOheader + [data-replace-layout-path] > div[class]:not([data-widget]):first-child& +agronomy.com.uaheader .size-75/ +finecooking.ruheader > .container-fluidl + versii.if.uaXheader > [id] > div > div ~ a[href]:not([href^="/"]):not([href^="https://versii.if.ua"])S +orenburg.media=header > a:not([href^="/"]):not([href*="://orenburg.media/"]). +www.onliner.byheader > a[href*="utm_"]: +prosound.ixbt.com!header > div[style^="background"]6 + argumenti.ru"header > div[style^="background:"]2 + +twirpx.com + +twirpx.orgheader > nav ~ div> + kommersant.ru)header a[href*="&erid="][target="_blank"]K + pravda.if.ua7header a[href="https://pravda.if.ua/zamovyty-reklamu/"] + +ofxme.coheader noindex, + tglink.ruheader ~ section:last-child1 + sims3pack.ru + myzcloud.meheader.st-flex5 + sims3pack.ru + myzcloud.meheader.st-flex ~ *" + tr.anidub.com header::afterX + +comss.ruHhtml:not([style]) > body getsitecontrol-widget:not(#getsitecontrol-7665)’ +4pda.to‚html[style] > body[style=";background-color:#E6E7E9!important"] .advanced-area .post[itemid] ~ .post:not([itemid]):nth-child(-n+3)† +4pda.towhtml[style] > body[style=";background-color:#E6E7E9!important"] [id][class] > .slider-list:nth-child(-n+5) + div[class]˜ +4pda.toˆhtml[style] > body[style=";background-color:#E6E7E9!important"] [id][class][style^="overflow: hidden; height:"] > div[class]:first-childŸ +4pda.to�html[style] > body[style=";background-color:#E6E7E9!important"] [id][class][style^="overflow: hidden; height:"] > div[style*="display: block;"]m +4pda.to^html[style] > body[style=";background-color:#E6E7E9!important"] article ~ article:nth-child(3)„ +4pda.touhtml[style] > body[style=";background-color:#E6E7E9!important"] article:not([id]):not([itemid]):first-child + articleŸ +4pda.to�html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] .advanced-area .post[itemid] ~ .post:not([itemid]):nth-child(-n+3)” +4pda.to„html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class] > .slider-list:nth-child(-n+5) + div[class]¥ +4pda.to•html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class][style^="overflow: hidden; height:"] > div[class]:first-child¬ +4pda.toœhtml[style] > body[style="background-color: rgb(230, 231, 233) !important;"] [id][class][style^="overflow: hidden; height:"] > div[style*="display: block;"]z +4pda.tokhtml[style] > body[style="background-color: rgb(230, 231, 233) !important;"] article ~ article:nth-child(3)’ +4pda.to‚html[style] > body[style="background-color: rgb(230, 231, 233) !important;"] article:not([id]):not([itemid]):first-child + article, +s13.ruiframe[data-src*="/icontent/"]/ + +sarov.infoiframe[data-src*="/reklama."]+ +ek.ua +m.uaiframe[name*="banner"]* +qrz.ruiframe[src*="//ads.qrz.ru/"]+ + katushka.netiframe[src*="/advert."]- + +x-minus.iniframe[src*="/assets/rkl/"]C& +$xn----etbbecbrbp5ahkja1ae7v.xn--p1aiiframe[src*="/banner/"]+ + live4fun.ruiframe[src*="/bitpapa/"]- +gorod24.onlineiframe[src*="/bredir/"]. + bycard.byiframe[src*="/delivery/afr."]ü: + +nnmclub.ro + +nnmclub.toiframe[src*="/forum/ads/"]6 +kamchatinfo.comiframe[src*="/images/banners/"]2 +football.kulichki.netiframe[src*="/leon/"]u + rutracker.lib + rutracker.net + rutracker.org + rutracker.nl + rutr.life!iframe[src*="/rutrk.org/iframe/"]6 +radioromantika.ru +101.ruiframe[src*="/smi"]1 +go64.ru"iframe[src*="/upload/adv_banner/"]+ +2x2.suiframe[src*="/upload/banner"]+ +fapl.ruiframe[src*="/upload/fapl_"]. + gazeta.uziframe[src*="/www/delivery/"]: + s-platoon.ru&iframe[src*="://s-platoon.ru/forfon/"]X +imenie-home.ru + vamrecipes.ru + news-tape.ru!iframe[src*="://vamproducts.ru/"]/ +yk.kz"iframe[src*="://yk.kz/"][src$="/"]& + protdt.ruiframe[src*="ADVERT"]s +mobile-review.com +severinform.ru + finversia.ru + lr-club.com + pogoda.ruiframe[src*="ad.adriver.ru"]2 + allboxing.ruiframe[src*="ad.allboxing.ru"]* +snitsya-son.ruiframe[src*="adUrl"]C +novostroykin.ru,iframe[src*="adrai.novostroykin.ru/wow/go/"]4 + +tamboff.ru + livetv.sxiframe[src*="banner"]Œ +online-stars.org +online-star.org + anistar.org + +astar.bzFiframe[src*="banner"]:not([src^="https://vk.com/widget_comments.php"]), + +russian.fiiframe[src*="banners.php"]4 +forum.watch.ruiframe[src*="clientscript/a_"]( + +onlyf.wsiframe[src*="gnezdo.ru"]4 +reviewdetector.ruiframe[src*="gruntovik.ru"]/ + gorod.dp.uaiframe[src*="holder.com.ua"]9 + +ixbt.com)iframe[src*="ixbt.com/cgi-bin/banqs.cgi"]6 + joblog.com.ua!iframe[src*="joblog.com.ua/xmg."]6 + kluch.media#iframe[src*="kluch.media/banners/"]3 + livetv.sx"iframe[src*="livetvcdn.net/html/"]8 + mauforum.ru%iframe[src*="mauforum.ru/"][src$="/"]. + +allbest.ruiframe[src*="multiwork.org"]) + +fishki.netiframe[src*="ondu.ru/"]3 + +ikovrov.ru!iframe[src*="pr.ikovrov.ru/www/"]E + rz.com.ua4iframe[src*="rz.com.ua/sites/default/files/baneri-"]' + avtoradio.ruiframe[src*="smi2"]* +syl.ruiframe[src*="videonow.html"]+ +drom.ruiframe[src*="yummy.drom.ru"]+ + octavia-a5.ruiframe[src*="zzap.ru"]6 +clusterdelta.comiframe[src="/portal/stf.html"]) + pise4ka.comiframe[src="/site/in"]3 + sberometer.ruiframe[src^="/"][src$=".html"]D + +twirpx.com + +twirpx.org$iframe[src^="/"][style*="overflow:"]2 +jofo.ru#iframe[src^="http://creatagen.ru/"]E +smotretonline.ucoz.org'iframe[src^="http://kinohouse.ucoz.ru"]J + arminfo.info6iframe[src^="https://www.arminfo.info/"][src$=".html"]P +www.mp4upload.com7iframe[src^="https://www.mp4upload.com/"][src$=".html"]@ +forum.watch.ru*iframe[style="width: 100%; height: 60px;"]? +forum.watch.ru)iframe[style="width:100%; height:110px;"], + torrnado.ruimg.Text[src^="/images/"]3 + tulactive.ruimg.aligncenter[src*="kadastr"] + +volzsky.ruimg.b + kinogo.eu img.pleer/ + ifnews.org.uaimg[alt="Hosting Ukraine"]) +nemo-crack.orgimg[alt="Hot-Game"]) + +zakon.kzimg[alt="Parimatch logo"]& +vfl.ruimg[alt="Ping-Admin.Ru"]! + opentv.media img[alt="ad"]* + xboxland.netimg[alt="author24.ru"]' + sovsport.ruimg[alt="bookmaker"]: + smartbobr.ru&img[alt="Ð�ли раÑ�продажа"]4 + nov-pravda.ruimg[alt="Ð�ацпроекты"]/ +insanegames.ruimg[alt="Скачать"]7 + nov-pravda.ru"img[alt="ТульÑ�кие СМИ"]6 + +relasko.ru$img[alt="Читать онлайн"]6 +thelastgame.ru img[alt="как качнуть"]«$ + +cha.moscowimg[alt^="Hilton"]. +pornoakt.clickimg[alt^="Баннер"]$ + gazeta1.comimg[class^="rec"]: +www.kinopoisk.ru"img[class^="styles_copyrightImg_"]_ +newsroom.kh.uaIimg[data-lazy-src^="https://www.newsroom.kh.ua/wp-content/uploads/tiny_"]$ + gamestar.ruimg[height="310"]% + akademekb.ruimg[id^="cradv_"]9 + bitmakler.com$img[onclick*="bitmakler.com/go.php"]0 + nnportal.orgimg[onclick^="countAdClick"]@ +consol-games.com +consol-games.netimg[src*="/600_200"]* + rosteplo.ruimg[src*="/Image/rek/"], + salonav.comimg[src*="/SAV_banners/"], +newformat.infoimg[src*="/_img/ban/"]& + +ktv-ray.ruimg[src*="/advert/"]C +agroter.com.ua + tenews.org.uaimg[src*="/assets/img/ads/"]' + +vesti42.ruimg[src*="/b-files/"]+ +oblast-te.com.uaimg[src*="/banner"]/ +alau.kz img[src*="/banner"][src*=".gif"]# +vlab.suimg[src*="/banner/"]O +radioradar.net + severpost.ru +2ip.io +2ip.ruimg[src*="/banners/"]/ + +umpro.ruimg[src*="/banners_for_umpro/"]8 + +freetp.org + freetp.ruimg[src*="/download-yb."]2 +slavutich.cn.uaimg[src*="/image/banners/"]/ + browserss.ruimg[src*="/images/Banner_"]. +telesputnik.ruimg[src*="/images/ads/"]ä +ternopoliany.te.ua +profidom.com.ua +tv-gubernia.ru + smolnarod.ru + speka.media + +thepage.ua + newsua.ru + vmeste.tv + yablor.ru + +mc.today +3ddd.ru +ua.news +voip.ru +itc.uaimg[src*="/images/banner"]& +ogo.uaimg[src*="/images/bnr/"]2 + +iviche.com img[src*="/images/commertials/"]* + manutd.ruimg[src*="/images/pari/"]' +upl.uaimg[src*="/images/puma_"]. + forbes.kzimg[src*="/images/sponsors/"]- +3ddd.ruimg[src*="/images/undefined/"]' +upl.uaimg[src*="/images/vbet_"]$ + +exdex.ruimg[src*="/img/ab/"]0 +chelseablues.ruimg[src*="/img/banners/"]) + pimpletv.ruimg[src*="/img/mars_"]* + pimpletv.ruimg[src*="/img/melbet"]* + pimpletv.ruimg[src*="/img/riobet"]) + old-games.ruimg[src*="/img/rkl/"][ +playmarket-for-pc.com +playmarket-pc.com + roblox-pc.comimg[src*="/img/wizard."]" +dwg.ruimg[src*="/imgnew/"]! +dwg.ruimg[src*="/imnew/"]N +moya-planeta.ru + +naukatv.ru + doc-tv.ruimg[src*="/partner-banner/"]2 +teremok.org.uaimg[src*="/partner/images/"]. + +me3.com.uaimg[src*="/static/banners/"]/ + vashurok.ruimg[src*="/system/banners/"]/ + allgosts.ruimg[src*="/theme/img/hmwk/"]™ +lipetskmedia.ru +gubkinskiy.com + paparazzi.ru + infoniac.ru + +dnl.com.ua + dnl.dn.ua +go64.ru +trk7.ru +zi.uaimg[src*="/upload/rk/"]5 +tyachivnews.in.uaimg[src*="/uploads/blocks/"], + +ksza.ks.uaimg[src*="/uploads/rain."]P +mnogovoprosov.ru8img[src*="/wp-content/uploads/"][src*="/ban"][src*="er"]& + informburo.kzimg[src*="1xbet"]. + cxid.infoimg[src*="://cxid.info/bcx/"]$ + region15.ruimg[src*="Baner"], + +ogribax.ruimg[src*="ad.admitad.com"]. + forum.awd.ruimg[src*="awd.is/banner/"]8 +forum.rsload.net + +offisny.ruimg[src*="banner"], +regionnews.net.uaimg[src*="banner_"]: + chexov.info'img[src*="chexov.info/images/banners/"]. + +cqham.ruimg[src*="cqham.ru/forum/ad/"]* +poltava365.comimg[src*="img/adw/"]< +jobvacancy.pro&img[src*="jobvacancy.pro/img/commin/"]* + softoroom.orgimg[src*="yandexbr."]) +1pnz.ruimg[src*="баннеры"]À +Mÿï08@R=tvc.ru#?#li.play-button-wrap:-abp-has(> div > [id^="adfox_"]) +`ÿï08@RPgofrag.ru#?#li:-abp-has(> .uk-accordion-title ~ [class] a[href*=".ufiler.pro/"]) +Tÿï08@RDstopgame.ru#?#li:-abp-has(> [href="https://zen.yandex.ru/stopgame"]) +cÿï08@RSargumenti.ru#?#li:-abp-has(> span:-abp-contains(Ð�овоÑ�ти партнеров)) +Zÿï08@RJallcarz.ru#?#main > .container > .site-content:-abp-has(> .content-banner) +zÿï08@Rjbesplatnyeprogrammy.ru#?#main > article.post:-abp-has(> header > .mainpage_title > [title^="InstallPack"]) +zÿï08@Rjdrivenn.ru#?#main > h3:-abp-contains(/Ð�овоÑ�ти партнёров|ПопулÑ�рное в Ñ�ети/) +‹ÿï08@R{flatfy.lun.ua#?#main ~ div[class]:-abp-has(> div > div > a[href*="/redirect-andromeda/"] ~ a[href*="/redirect-andromeda/"])3 +officebesplatno.comimg[src="/download.png"], +filmasik.com.uaimg[src="/filmi.jpg"]: + folkdoctor.ru%img[src="/images/banners/virtoo.jpg"]+ + sasisa.ruimg[src="/images/pek.png"]* + +360tv.newsimg[src="/img/ad-1.png"]/ + reshebnik.comimg[src="/img/locked.png"]; + gageno.ru + pikapo.ruimg[src="/img/separator.gif"]N + +sport.ua>img[src="https://pic.sport.ua/images/media/orig/f2/16364.gif"]B +xn--24-7lcajlu.xn--p1ai#img[src][width="241"][height="383"]B +xn--24-7lcajlu.xn--p1ai#img[src][width="300"][height="216"]) +nashmontreal.comimg[src^="/ban/"]8 + folkdoctor.ru#img[src^="/images/banners/goporez"]) + tihvesti.ruimg[src^="/partners/"]) +bookskeeper.ruimg[src^="/promo/"]G +kinogid-online.net-img[src^="/templates/onlinegid/images/panel"]3 +actualtraffic.ruimg[src^="/uploads/promo/"] + +cqham.ruimg[src^="ad/"]( + +fairtop.inimg[src^="data:image"]G + +rsload.net5img[src^="https://rsload.net/images"][src*="2890374"]6 + osobye.ru%img[style="height:90px; width:728px"]I +onlinemschool.com0img[style^="display:block"][style*="width:100%"]: +forum.china-iphone.ruimg[width="120"][height="40"]2 + goldroyal.netimg[width="140"][height="30"]< + +advesti.ru*img[width="170"][height="340"][border="0"]4 +soft-i-kino.ruimg[width="180"][height="400"]9 +moscowsg.megafon.ruimg[width="200"][height="400"]: +forum.china-iphone.ruimg[width="224"][height="60"]/ + +odnako.orgimg[width="240"][height="25"]2 + prankota.comimg[width="250"][height="250"]- + +cqham.ruimg[width="380"][height="60"]2 + investoday.ruimg[width="460"][height="60"]2 + omskmama.ru + prologic.suimg[width="468"]. + giclub.tvimg[width="484"][height="62"]; + +advesti.ru)img[width="570"][height="80"][border="0"]= + +alleng.org + +libren.orgimg[width="727"][height="89"]G +spyware-ru.com + prankota.com!img[width="728px"][height="90px"]8 +sarafannoeradio.orgimg[width="829"][height="90"]0 + +demiart.ruimg[width="900"][height="100"]@ +post-tracker.ru)img[width^="8"][height^="3"][src$=".gif"] + gizmod.ruindex > .entryÇ +videoredaktor.ru +epravda.com.ua +inforesist.org + audiotag.info + computer76.ru + volyninfo.com + enovosty.com + real-vin.com + +stravy.net + finget.ru + fraza.com + ostro.orginsA +peugeot-club.net + vjazhi.ruins[style^="display:inline"]' + polochka.netli[class^="ss-li-"]o + +zalinux.ru]li[id^="menu-item-"] > a[href^="http"]:not([href*="kali.org.ru/"]):not([href*="zalinux.ru/"])& +crackstatus.netli[id^="slide"]M +penzainform.ru7li[style^="width: 140px; height:"][style*="max-height"]> + liveball.uno + liveball.my + +liveball.* #custom_brand> + liveball.uno + liveball.my + +liveball.* .odds_section% +old.myshows.memain > .contAlt! + protanki.tvmain > .hiddenR +mediaryazan.ru

.hide-on-mobiles > div[class="sideblock"]:first-childb + +adme.mediaPmain > div[data-sharing-target] ~ div:nth-child(-n+9):not([data-sharing-target])9 +gk-press.if.ua#main > div[style="display: inline"]& +bezzamorochek.com mark > strong +charming-face.rumarquee# +9sx.rumarquee[scrollamount]Ë +9ÿï08@R)board.if.ua#?#noindex:-abp-has(> div ins)S + +mob39.ruCmeta + center > table[cellspacing="0"][cellpadding="0"][border="0"] + +uploads.runav? +www1.ru0nav > .hidden > .list-reset > a[target="_blank"]h +sprashivalka.comPnav > .items > a[href]:not([href^="/"]):not([href^="https://sprashivalka.com/"])C + +sport.ua3nav > .navbar-notifications ~ .navbar-notifications/ + lostpix.comnav ~ a > img[align="right"]9 + trychatgpt.ru$nav.sticky ~ div:not([class]) > span$ + +glamour.ru +gq.ru ng-banner + +glamour.ru +ng-teasers" + +salex.runobr > div > table) + igra-wow.runofollow > noindex > pž +primenimudrost.ru +skolkovarim.com +delovoymir.biz + astrosfera.ru + mgnovenie.net + porno4you.org + sportobzor.ru + superhumor.ru + limon-tv.org + modewomen.ru + sexytales.ru + sexytal.com + +adiabet.ru + +relasko.ru + +vlasti.net + +voffka.com + moviki.runoindex% +westudents.com.ua noindex #ban! + +nnov.orgnoindex > .banner& +ogo.uanoindex > .block-banners2 + +freetp.org + freetp.runoindex > .boxlinks# +novostioede.ru noindex > .co! + gizmod.runoindex > .entry" +oane.wsnoindex > .lastnews# + luxvaz.runoindex > .linkPar2 +sportsdaily.runoindex > .news__description* + +consmed.runoindex > .normal_tahoma- + +siteua.orgnoindex > [class$="-block"]9 + forumhouse.ru$noindex > [style*="display: block;"]> + macosworld.ru)noindex > a > [width="250"][height="250"]" + udaff.comnoindex > a > imgY + +spartak.ruGnoindex > a:not([href*="spartak.ru/"])[target="_blank"][rel="nofollow"]Q + +igrigo.net?noindex > a[href*="/go.php"] > img:not([src="/uploads/vk.png"])7 +guitarplayer.ru noindex > a[href*="svetomuz.ru"]d +bestgardener.ru +escorenews.com + compress.ru,noindex > a[rel="nofollow"][target="_blank"]7 + animemaga.ru#noindex > a[style][target="_blank"]T +encyclopaedia-russia.ru +poragovorit.com"noindex > a[target="_blank"] > img% + mirlib.runoindex > center > a* + +obnimau.runoindex > center > table( + tyndex.runoindex > center[style]7 +urbc.ru(noindex > div > a[href][target="_blank"]. + mgnews.runoindex > div[align="center"]/ + stud-time.runoindex > div[class^="ad_"]+ + inoe.namenoindex > div[id^="block"]4 + liveresult.runoindex > div[style*="height:"]' +onlysimpsons.runoindex > iframe# + +tltnews.runoindex > marquee$ + +ruskino.runoindex > nofallow8 +torrent-bort.ru + filebase.wsnoindex > nofollow& + peterburg2.runoindex > noindex; + medicina.ua(noindex > script[src^="/adv.php?"] ~ div, +forum.oszone.netnoindex > table.alt1, +file-online.runoindex > table[style]3 +hotsoft.net.runoindex > table[width="100%"]C + zelenograd.ru.noindex > table[width="100%"][cellpadding="1"]0 + rulez-t.infonoindex > table[width="200"]~ +utorrentfilmi.fun +utorrentfilmi.ru +utorrentmusic.ru +utorrentigry.ru*noindex [style^="display"][style*="block"]C + cat-a-cat.net + +o-filme.ru noindex a[href][target="_blank"]+ + 2krota.runoindex a[target="_blank"]7 + +vsetop.org%noindex div[align="center"] > a > img+ + +izone.runoindex table[width="100%"]6 + zelenograd.ru!noindex td[width="40%"] > noindex +dndz.tvobject= + sovets24.ru + +sovets.netobject[data*="/images/zen/"]= +geonavigator.ge + navigator.azobject[data*="banner"]' + omskzdes.ruobject[id^="banner"]) + +ria-m.tvobject[name="videoblock"]C + sibmama.info + +sibmama.ru!object[width="150"][height="100"]ß- +Jÿï08@R:benzin-price.ru#?#p > strong:-abp-contains(реклама) +?ÿï08@R/cameleo.xyz#?#p.main:-abp-has([href*="bit.ly"]) +/ÿï08@Rthg.ru#?#p:-abp-contains(Erid:) +;ÿï08@R+bibe.ru#?#p:-abp-contains(Реклама :) +Oÿï08@R?y-games.ru#?#p:-abp-has(> .ContentTitle[style="height: 20px;"]) +8ÿï08@R(pingvin.pro#?#p:-abp-has(> .adsbygoogle) +2ÿï08@R"kp40.ru#?#p:-abp-has(> .ul-button) +ÿï08@Ronashe.ru,radiojazzfm.ru,radioultra.ru,rockfm.ru#?#p:-abp-has(> a[href*="yandex."][href*="news"][href*="favid"]) +Jÿï08@R:cq.ru#?#p:-abp-has(> b:-abp-contains(Где купить)) +Nÿï08@R>sovsport.ru#?#p:-abp-has(> div[class^="button_advertisement"]) +Bÿï08@R2sm.news#?#p:-abp-has(> script:-abp-contains(smi2)) +Nÿï08@R>new-magazine.ru#?#p:-abp-has(> strong > a[href*="//dzen.ru/"]) +@ÿï08@R0ru-dub.xyz#?#p:-abp-has(> strong a[href*=".li"]) +Uÿï08@REprsport.net#?#p:-abp-has(> strong:-abp-contains(/париматч/i)) +Fÿï08@R6sovsport.ru#?#p:-abp-has(> strong:-abp-contains(Okko)) +™ÿï08@Rˆstopgame.ru#?#section > div[class^="_content-wrapper_"]:-abp-has(> div > a[href^="/watch"]) ~ div[class^="_content"] a[href^="/to?http"] +Xÿï08@RHeanews.ru#?#section > section:-abp-has(> [class^="styled__AdvLink-sc-"]) +<ÿï08@R,tengrinews.kz#?#section:-abp-has(> .ya-news) +Ñÿï08@RÀigromania.ru#?#section[class^="MaterialsManufacturerPage_infiniteWrap"] > div[class^="InfiniteScrollWrap_content"] > [class^="MaterialItemPage_isFirst"] ~ [class^="MaterialItemPage_materialSection"]:-abp-has(> .knb-grid-container > [data-io-article-url] [class^="TextContent_text"] > p:-abp-contains(/^Реклама:/)) +šÿï08@R‰igromania.ru,kanobu.ru#?#section[class^="MaterialsManufacturerPage_infiniteWrap"] > div[class^="InfiniteScrollWrap_content"] > [class^="MaterialItemPage_materialSection"]:-abp-has(> .knb-grid-container > [data-io-article-url] a[href="/tags/partnyorskij-material/"]) +ƒÿï08@Rssport.tut.by#?#span > small:-abp-contains(Приведённые букмекерÑ�кие коÑ�ффициенты) +Oÿï08@R?vmgu.ru#?#span.articles_info > b:-abp-contains(Реклама:) +Oÿï08@R?2gis.by,2gis.kz,2gis.ru#?#span:-abp-contains(/реклама/i) +@ÿï08@R0myshared.ru#?#span:-abp-contains(Advertisements) +Yÿï08@RIheadinsider.net#?#span:-abp-contains(ИнтереÑ�ные новоÑ�ти) +Aÿï08@R1remontka.pro#?#span:-abp-contains(Реклама) +„ÿï08@Rtseo-master.org,seosprint.net,vip-prom.net#?#span[class]:-abp-contains(Это может быть интереÑ�но)2 + guzei.com!object[width="200"][height="100"]: + +y-games.ru(p > .ContentTitle[style="height: 20px;"]I + +y-games.ru7p > .ContentTitle[style="height: 20px;"] + .ContentText^ + ppl.nnov.ruKp > a[href][target="_blank"]:not([href*="nnov.ru"]) > img[src*="/bannery/"]3 + skmash.ru"p > script[src*="wmrfast.com"] ~ *Š + onfoto.ruyp > table[cellspacing="5"][cellpadding="0"][width="100%"] > tbody > tr > td[width="50%"][style="border: 1px solid #000;"]5 + frenglish.ru!p[align="center"] > a[href] > imgP + www.ruhim.ru noindex > a[href][target="_blank"] > img. + sovsport.rup[class^="match-day_text_"]f +baza-nomerov.ruOp[style="border: 3px solid #000000; background-color: #FFFF80; padding: 10px;"]@ + +golbis.com.p[style="padding-left: 20px;"][align="center"]O + frenglish.ru + +etotop.net-p[style="text-align: center"] > a[href] > img> + +golbis.com,p[style="text-align:left;margin-left:10px;"]Ö + stormo.online + stormo.tv³pjsdiv[style^="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; pointer-events: none; z-index: 10000; display: block; background:"][style*="/player/loader.png"]þ +flash-player.net +clip-share.net + kzblow.info + ru-clip.com + ru-clip.net + ruburn.info + thclips.com + trshow.info + uaclips.com + +brclip.com + +kzclip.com + +ruclip.com + +vnclip.net + frvid.com + jpvid.net + trvid.com +ibb.copp  + stratege.ru psplus-footer+ + +ru-dub.xyz +rudub.*a[href*=".li"]& +rudub.*.card__description__adv> +liveinternet.ru'script + div[id] > div[style^="width:"]F +sftv.ru7script[src*="iwantyourpromo.com"] ~ div[align="center"]9 + +megaimg.ru'script[src^="http://am10.ru/"] + centerM + +car72.ru=section > .container-fluid > div[style^="width:"][style$="%"]D + +shuba.life2section.c-post__full > [style="overflow: hidden;"]Û +krasnoyarskmedia.ru +sevastopolmedia.ru +kamchatkamedia.ru +krasnodarmedia.su +chukotkamedia.ru +sakhalinmedia.ru +irkutskmedia.ru +magadanmedia.ru +priamurmedia.ru +stavropol.media +yakutiamedia.ru +nakhodka.media + chitamedia.su + primamedia.ru + ussurmedia.ru + amurmedia.ru + ulanmedia.ru + yugopolis.ru + eaomedia.ru + +tayga.info + +unian.info + +vctr.media + newsvl.ru + unian.net + +unian.ua +job.ru +tet.tvsection.countdownP + rutube.ru?section[aria-label="информационный баннер"]; + +iguides.ru)section[class*="-right "] > .listing-mini9 +internet-technologies.rusection[class*="related"]' + +agroxxi.rusection[class^="my-"]( + +vikka.uasection[id^="ctup_ads-"]V +agro-business.com.ua:section[id^="sp-subcribe-footer"]:not(#sp-subcribe-footer)) + gamegpu.comsection[id^="tm-top-"]A +sex-studentki.**.description > button[style*="color:red;"]7 +sosalkino.tube + sosalkino.*.spot.after_player4 + +point.md$span > a[href*="/novosti/business/"]= +bhf.io/span > a[href][target="_blank"][rel="nofollow"]; + nvplay.ru*span > i > span[style="font-weight: 400;"]7 + itechua.com$span.td_btn[style="color: #ffffff;"]Ã% +Rÿï08@RBonliner.by#?#strong:-abp-contains(нож блокировщику) +_ÿï08@ROnowa.cc#?#table > tbody > .alt2:-abp-has(> td:-abp-contains(/реклама/i)) +Yÿï08@RIkinoblog.tv#?#table[height="300"]:-abp-has(div[class^="adfinity_block_"]) +�ÿï08@Rdusterclubs.ru#?#table[id^="post"]:-abp-has(> tbody > tr > .thead:-abp-contains(Это может быть интереÑ�но)) +pÿï08@R`anchem.ru#?#tbody > tr:-abp-has(> td[valign="top"][width="130"] > font > [href="/advertising/"]) +mÿï08@R]anchem.ru#?#tbody > tr:-abp-has(> td[valign="top"][width="130"] > font > [href="/approach/"]) +„ÿï08@Rtbt.kubyshka.org#?#td > .forabg:-abp-has(dt:-abp-contains(Проверенный выгодный обменник!))8 + rutube.ru'span[class^="rai_raichu-advert-timers"]& + sp.mamask.ruspan[id^="banner"]; +buhoblik.org.ua + flagma.uaspan[onclick*="banner"]U +ruinformer.com?span[onclick]:not([onclick*="ruinformer"]) > img[src*="banner"]? + banker.ua.span[onclick^="window.open"][style*="cursor:"]; +mnogo-krolikov.ru"span[style*="background: #ffe348"]^ +snow-motion.ruHspan[style="cursor: pointer;"][onclick]:not([onclick*="snow-motion.ru"]). + yepman.ruspan[style="font-size:14px;"]2 + yepman.ru!span[style="font-size:14px;"] + *U + forum.abok.ru@span[style^="color: #4F4F4F; font-size: 6pt; text-align: left;"]Š +flashscore.com.ua +flashscore.ru.com +flashscorekz.com +soccerstand.com + flashscore.ua + livescore.insport[name="soccer"]9 +nuriknur.ucoz.com strong > span[style="color:red"] +surl.* .promo-block +surl.* .promo-title +surl.*.very-nice-buttonC +qwe.ru5table + table tr:last-child > td:last-child > .border“ + pogoda.ru�table + table[align="center"][summary] > tbody > tr:first-child + tr:last-child > td[align="center"][valign="top"][width="333px"]v + pogoda.ruetable + table[align="center"][summary] > tbody > tr:first-child > th:first-child + th + th:last-child) +yakpravylno.comtable > tbody > trU + electrik.info@table > tbody > tr > td[valign="top"][align="left"][width="200"]I +hi-fi-forum.net2table > tbody > tr > td[width="210"][valign="top"]4 + +kazus.ru$table > tbody > tr > td[width="728"]+ + propogodu.rutable.weather + noindexL +forum.superkot.com2table:first-child + .tablebg + .tablebg + .tablebgQ +forum.superkot.com7table:first-child + .tablebg + .tablebg + br + .tablebge + anchem.ruTtable[align="center"][width="90%"] > tbody > tr > td[align="left"] + td[width="234"]^ + sysadmins.ruJtable[align="right"][valign="middle"] > tbody > tr > td[align="left"] ~ td4 + comfysoft.ru table[align][frame="rhs"][style]E + x360-club.org0table[background="themes/xbox/images/hhead.jpg"]\ + samlib.ruKtable[border][style^="border: solid #8e5373"][style$="margin-bottom: 3px;"]& + goroskop.orgtable[height="90"] +ru.ggtable[id^="ad-"]X + cyberforum.ruCtable[id^="post"] ~ div[style^="margin: 3px 0px"][style*="display"]4 + lifter.com.uatable[id^="post-"] + div[style]3 +womanbusiness.rutable[style*="2px dashed;"]k + 2baksa.wsZtable[style*="width: 468px;"][style*="border-collapse: collapse;"][style*="height: 60px;"]A +sudakonline.info)table[style="height: 20px; width: 100%;"]G + radiodacha.ru2table[style="margin-top:5px"] a[href^="/adclick/"]I +zol.ru;table[style="table-layout:fixed; border-collapse:collapse"]> + lgoty-vsem.ru)table[style="width: 100%; height: 23px;"]M + chesspro.ru:table[style="width: 100%; height: 90; margin-bottom: 5px"]? + ketchuptv.ru+table[style^="width: 776px; height: 214px"]a +photoshablon.ruJtable[width="100%"][align="center"] > tbody > tr > td.column[valign="top"]9 + +infokam.su'table[width="100%"][style="z-index:5;"]2 + +poufe.ru"table[width="1000"][height="95px"]9 +forum.tvercity.ru table[width="280"][height="258"]7 +gorodkiev.com.uatable[width="580"][height="90"]2 + +w7phone.ru table[width="672"][height="300"]/ + +cqham.rutable[width="937"][height="60"]Ž + sysadmins.ruztable[width="95%"][align="center"] > tbody > tr[align="right"] a[href]:not([href*="/sysadmins.ru"])[target="_blank"] > img@ + for-ua.info-tbody > tr > td[style*="vertical-align: top"]D +casino-mining.com+tbody > tr > td[style="vertical-align:top"]B +deti-obninsk.ru+tbody > tr > td[valign="top"][align="left"]D + goroskop.org0tbody > tr > td[width="100%"][valign="top"] + td[ + anchem.ruJtbody > tr > td[width="50%"][valign="top"] + td[width="120"][valign="top"]A +omnibus.moy.su+tbody > tr[style="background-color: black"]3 +velikolepnyivek.comtd > .bc[align="center"]„% +‘ÿï08@R€vlab.su#?#td > table[width="100%"]:-abp-has(> tbody > tr > td > .tablebg > tbody > tr > .cat > h4:-abp-contains(Реклама)) +kÿï08@R[nwcod.com#?#td > table[width="220"]:-abp-has(.block_title:-abp-contains(/реклама/i)) +sÿï08@Rcadult-images.ru,imgbum.ru,xpicture.ru#?#td.t_bg > center:-abp-has(> a[href][target="_blank"] > img) +Kÿï08@R;trupornolabs.org#?#td:-abp-contains(/bit.ly|clck.ru|vk.cc/) +Bÿï08@R2pogoda.ru#?#td:-abp-has(> a[href*="iloveyou.ru/"]) +mÿï08@R]bigfangroup.org,freebfg.org#?#td[align="left"]:-abp-has(> div[id^="bb"] > [id*="ScriptRoot"]) +�ÿï08@Rqstalker-2-2012.ucoz.net#?#td[style="width:200px;"] > table:-abp-has(b:-abp-contains(Рекламный блок)) +‰ÿï08@Ryriperam.org#?#td[valign="top"] > .forabg:-abp-has(> div > div > .inner > .postbody > .content > script[src*="oldxit.ru"]) +®ÿï08@R�bwtorrents.ru#?#td[valign="top"] > table.tborder[width="240"] ~ table.tborder[width]:-abp-has(td.tcat:-abp-contains(/наши друзьÑ�|реклама/i)) +dÿï08@RThen-tay.com#?#td[valign="top"] > table:-abp-has(a[href*="/go.php"][target="_blank"])? + +rutor.in/td > .postbody ~ div[style="margin:10px 40px;"]< + for-ua.info)td > .tablebg[style^="background-color:"]> + +rulit.me.td > div[align="center"][style="height:300px"]1 +synonymizer.rutd > div[style*="#FFAAAA;"]! + soft-arena.ru td > noindex? +forum.rhbz.org)td > table.topic ~ .delemiter:not(:empty)E +fluence-club.ru.td.alt1Active > div > div[style="float:right"]5 + girlstop.info td.back td[style="height:215px"]7 +xn--80awhdeco3h.xn--p1ai + yarportal.rutd.desc + ko.com.uatd.left-columnT + itnews.com.ua?td.left[width="200"][valign="top"][style="height: 320px;"] > br  + ko.com.uatd.right-column. +radioscanner.rutd.td-2 > a[href] > img; + xtreme.ws*td.topBorder > table[width="100%"][height]G +zoneofgames.ru1td.transparent > table > tbody > tr[align="left"]& +forum.donfisher.ru td.windowbg3G + unsorted.me4td:first-child + td[valign="middle"][align="center"]5 + masteroff.org td:first-child + td[width="250"]“ +forum.ru-board.comytd:not([class="lgf"]) > table[width][cellpadding][bordercolor="#EEEEEE"][border="1"][bgcolor="#FFFFFF"]:not([width$="%"])5 + +fenzin.org#td[align="center"] > .leftmenu-textC +adultboard.net-td[align="center"] > a[href][target="_blank"]b +audioportal.suLtd[align="center"] > div[style^="position: absolute;"][style*="width:200%;"]u +slovarozhegova.ru\td[align="center"] > p[align="center"][valign="bottom"] ~ p[align="center"][valign="bottom"]` + +xyya.netPtd[align="center"][style="width:220px;"] + td[valign="top"] > :not(#dle-content)R +synonymizer.ru form ~ p > font > a[href]< +calc.ru-td[align="center"][valign="top"][width="48%"]; + poiskvps.ru(td[align="left"][valign="top"] > noindexA +bestgardener.ru*td[align="left"][valign="top"][class^="t"]Y +liveinternet.ruBtd[align="left"][valign="top"][width="150"] > iframe[height="840"]A + meddaily.ru.td[align="right"] > .structure-right:not([id])> + divx-kino.ru*td[align="right"] a[href][target="_blank"]U + xpicture.ru + imgbum.ru5td[align][valign="top"] > div[align="center"] > table, + www.ruhim.rutd[background*="banner"]O + mymirknig.ru + +mirknig.su-td[bgcolor="#FDFDFD"][align="left"] > noindexT + mymirknig.ru + +mirknig.su2td[bgcolor="#FDFDFD"][align="left"] > noindex ~ br& + gaynsk.rutd[bgcolor="#dedede"]> +crimea-board.net&td[bgcolor] > table[bgcolor="#EAEBEE"]F +crimea-board.net.td[bgcolor] > table[bgcolor="#EAEBEE"] + tableL +forum.zakonia.ru4td[class^="alt"][align="left"] [style="float:right"]4 + molbuk.ua#td[height="180"] ~ td[height="180"]* + +ruskino.rutd[height="90"][bgcolor]) + livetv.sxtd[height^="9"][bgcolor]R + shophelp.ru?td[id][valign="top"][width="300"] > table.tborder[width="100%"]/ + +poufe.rutd[onclick*="cntr.php?ban_id="]6 +armadaboard.comtd[style*="theme_orig"] > table) + +nntt.orgtd[style*="url(/images/"]C +travelgps.com.ua+td[style="width:170px;vertical-align:top;"]Q + +russian.fi?td[style="width:180px; padding-left: 15px;"] > table:last-child: + inopressa.ru&td[style] > div[style="height: 120px"]< +internethalyava.ru"td[valign="top"] > .block-user ~ *> + livetv.sx-td[valign="top"] > a ~ a ~ a ~ table[bgcolor]7 + studopedia.su"td[valign="top"] > center > .link1: +dating.trans-admirer.comtd[valign="top"] > noindex< +smartsoft.kiev.ua#td[valign="top"] > noindex > centerá$ +rÿï08@Rbbigfangroup.org,freebfg.org#?#td[valign="top"][width="155"] > table:-abp-has(div[id*="Composite"]) +lÿï08@R\bigfangroup.org,freebfg.org#?#td[valign="top"][width="155"] > table:-abp-has(div[id^="bn_"]) +tÿï08@Rdgrinkod.spb.ru#?#td[width="210"] > center > table:-abp-has(center > b:-abp-contains(Реклама)) +�ÿï08@Rqmirknig.su,mymirknig.ru#?#td[width="240"] > table[width="240"] ~ table[width="240"]:-abp-contains(Реклама) +Œÿï08@R|crazyatomicgames.com,xxx-igra.com,yaldagames.com#?#td[width="300"] + td[valign="top"] > .textc:-abp-has(a[href^="goto.php"]) +Cÿï08@R3sport.tut.by#?#th > .tooltip-item:-abp-contains(К) +Kÿï08@R;agents.media#?#the-card:-abp-has(> thetruestory-widget-top) +Xÿï08@RHpogoda.ru#?#tr > th:-abp-contains(Реклама на Погода.ру) +Šÿï08@Rzrutr.life,rutracker.lib,rutracker.net,rutracker.nl,rutracker.org#?#tr.row3 > td > ul > li:-abp-has(> a[href*="offer_id="]) +^ÿï08@RNotzovik.com#?#tr:-abp-has(> td > noindex > div > [href*="://yabs.yandex.ru/"])? +ackordofmine.ru(td[valign="top"] > table[height="180px"]k + +pejnya.net + pejnya.meLtd[valign="top"][align="right"] a[href][target="_blank"] > font[color="red"]q + +pejnya.net + pejnya.meRtd[valign="top"][align="right"] a[href][target="_blank"] > font[color="red"] ~ imgF +dietaonline.ru0td[valign="top"][style^="background"] tr[height]Y +yakusubstudio.forum2x2.ru8td[valign="top"][width="100%"] > div[id][style^="clear"]i +yakusubstudio.forum2x2.ruHtd[valign="top"][width="100%"] > table[class^="forumline "]:nth-child(1)@ + etomesto.ru-td[valign="top"][width="176"][align="center"]7 +www.zoneofgames.rutd[valign="top"][width="367"]9 +oru.ru+td[width="10"] + td[width="260"]:last-childA + anchem.ru0td[width="100%"][align="center"] > a[href] > imgJ + stulchik.net6td[width="120"][valign="top"] a[href][target="_blank"]Q +lada-granta.net + +lkforum.ru,td[width="150"][align="right"][valign="top"]1 + www.ruhim.rutd[width="150"][height="210"]@ + forum.abok.ru+td[width="165px"] > .borderwrap:first-childE + forum.abok.ru0td[width="165px"] > .borderwrap:first-child + hr5 + +mob39.ru%td[width="190"] > .table[width="190"]L + nwcod.com;td[width="2"] + .slink[align="center"] > :not(#dle-content): + filebase.ws'td[width="200"][valign="top"] > a[href]0 + freezpic.rutd[width="210"][align="left"]1 + www.ruhim.rutd[width="231"][height="100"]< + +rlocman.ru*td[width="240"] > table[class="tab-right"]= +media-online.ru&td[width="240"] a[href^="go.php3?id="]j + mymirknig.ru + +mirknig.suHtd[width="240"] ~ td[width="100%"] > table[width="100%"][align="center"]P + radiodacha.ru;td[width="240"][valign="top"] > div[style="height: 250px;"]< +liveinternet.ru%td[width="240"][valign="top"] > p ~ *Q + zoospravka.ru a[href][target="_blank"] > img[src*="gif"], +vmgu.rutd[width="26%"] td#articles_w% +abc-people.comtd[width="29%"]r +crazyatomicgames.com +yaldagames.com + xxx-igra.com4td[width="300"] + td[valign="top"] > div[class^="c"]t +crazyatomicgames.com +yaldagames.com + xxx-igra.com6td[width="300"] + td[valign="top"] > noindex ~ noindex_ +crazyatomicgames.com +yaldagames.com + xxx-igra.com!td[width="300"] > div[class^="c"]W +crazyatomicgames.com +yaldagames.com + xxx-igra.comtd[width="300"] > noindex# + unibytes.comtd[width="33%"]@ + +liveday.ru.td[width="367"] > noindex + table[width="367"]; +cool-archive.ru$td[width="556"] > :not(#dle-content)K + anchem.ru:td[width="600"] + td[width="250"] > center > a[href] > img) + +flylady.rutd[width="738"] noindex + oplati.rutd[width="90"]4 + zelenograd.rutd[width="99%"] + td:last-child4 + balakhna.ru!td[width][background^="pic/fill"]$ +torontovka.comtor-banner-ads& +torontovka.comtor-banner-block + travelinka.ru +tp-cascoon! + +imgal.rutr > .leftcat > ** +allnetcorp.comtr > td > #myElementO +izgr.ru@tr > td > div[style^="border"][style*="padding"][align="center"]L + malenkiy.ru9tr > td[align="center"] > script + center > a[href] > imgX + yaplakal.com +yap.ru:tr > td[align="center"][id^="in-feed"][style*="important"]d + hotlog.ruStr > td[width="170px;"] ~ td[width="170px;"] > div[style^="padding: 0; margin: 0;"]@ +forum.tambovnet.org%tr > td[width="250 px"][valign="top"]* +worldcrisis.rutr > td[width="728"]% + chem21.infotr[height="250px"]  +izgr.rutr[height="90px"]0 +raspisanie24.comtr[onclick*="blablacar"]û¢ +mÿï08@R]opensharing.org/img/images/$csp=script-src 'unsafe-inline' 'unsafe-eval' opensharing.org/img/ +k€* + nasimke.com* + +bookmo.org* + appmo.org* + eromo.org* + hitmo.org* + hotmo.org* + vidmo.org08@ +¨ÿï* +rutor-search.info* +tracker-rutor.tk* +blackrutor.site* +fastrutor.site* + 123torrent.ru* + extrutor.site* + listrutor.org* + new-rutor.org* + rutor-live.tk* + 37.1.202.140* + 37.1.203.156* + 37.1.204.182* + 37.1.205.159* + 37.1.206.118* + 37.1.206.121* + 37.1.206.231* + 37.1.207.130* + 37.1.216.106* + 37.1.216.119* + 37.1.217.105* + 37.1.217.113* + berutor.site* + extrutor.org* + znaipticu.ru* + 37.1.201.32* + 37.1.204.76* + 37.1.205.47* + 37.1.206.95* + 37.1.207.65* + 5.45.65.153* + 5.45.66.118* + 5.45.70.162* + herutor.org* + pipitor.org* + pronpic.org* + prutor.site* + rutor1.site* + +5.45.86.39* + +5.45.87.85* + +sssrtor.ru* + +xrutor.org* + +r-tor.ru08@ +5* + gaykursk.ru* + gaynsk.ru* + novgay.ru08@ +ˆ®* +freescreens.ru* + payforpic.ru* + picforall.ru* + imgclick.ru* + picclick.ru* + picclock.ru* + +imgbase.ru* + +imgcach.ru08@ +,&* +adult-images.ru* + imgbum.ru08@ ++�* + imageban.ru* + piccash.net08@ +%** + biqle.org* + +biqle.ru08@ +Èh*# +!xn----7sblrbejkkdaeg5b2g.xn--p1ai*# +!xn---43-6cdkp8aybelipd8l.xn--p1ai* +smotret-fizruk-online.su* +svetlica-mama-blogger.ru* +xn--80aeiluelyj.xn--p1ai* +chrome-portal-russia.ru* +xn----8sbp3abdbfk9f.com* +zelen-na-podokonnike.ru* +chudesniesovetiki.site* +domashnie-zagotovki.ru* +natural-cosmetology.ru* +clubkaksdelat.website* +igra-prestolov.online* +kinohd-novinki.online* +kulinarnayamozaika.ru* +northern-newspaper.ru* +pricheska-strizhka.ru* +ru-torrent-igruha.org* +audiokniga-onlain.ru* +audioknigi-onlain.ru* +crazyatomicgames.com* +flibusta.appspot.com* +harry-potter-film.ru* +ogorod-bez-hlopot.ru* +pohoronnoe-byuro.com* +turkish-tv-series.ru* +zhitulu.rosfirm.info* +headphone-review.ru* +medicalanswers.site* +molibden-wolfram.ru* +online-kinopokaz.ru* +sberbanki-onlajn.ru* +serial-mentalist.ru* +telespravochnik.org* +torrents-igruha.org* +vjazanie-kreativ.ru* +volshebstvozizni.ru* +xn--d1ach1ajefc.net* +amsterdamtravel.ru* +audioknigi-vsem.ru* +businessmonster.ru* +document-expert.ru* +edu-rosminzdrav.ru* +fetish-porn.online* +football-game.club* +interesnoevmire.ru* +kachestvolife.club* +mariya-timohina.ru* +mirvdochnovenia.ru* +politnavigator.net* +software-expert.ru* +speedcamupdates.ru* +subscribesmer.info* +torrent-igruha.org* +uslugi-nedorogo.ru* +vipauto-barnaul.ru* +wind7activation.ru* +1000iodinsovet.ru* +bezzamorochek.com* +centrelizarova.ru* +chudesnyemesta.ru* +dachnyuchastok.ru* +domashniecvety.ru* +enigma-project.ru* +filmitorrent.site* +films-online.club* +friends-online.me* +golitsyno-city.ru* +golovnie-boli.com* +kinopovtor.online* +kormushka-burg.ru* +lightstories.site* +lostfilm-hd720.ru* +luckyfamilyman.ru* +mechtarybolova.ru* +moiinstrumenty.ru* +momentpereloma.ru* +moy-instrument.ru* +music-torrent.com* +my-music-kiosk.ru* +pererojdenie.info* +pornolomka.com.ru* +pornorasskazy.com* +radio-uchebnik.ru* +rebenokvsporte.ru* +remont-avtovaz.ru* +sama-sama-sama.ru* +saucyintruder.org* +stroy-invest52.ru* +torrent-igruha.ru* +torrent-pirat.com* +torrents-soft.net* +travelinthesky.ru* +ua-novosti.online* +utorrentfilmi.fun* +windows-azbuka.ru* +xochuanime.online* +accountingsys.ru* +activestudy.info* +avataria-free.ru* +cardio-life.info* +chasov-master.ru* +delphimaster.net* +filmitorrent.net* +free-torrent.fun* +halalmemorial.ru* +happy-biock.info* +happy-block.info* +huaweidevices.ru* +informic-doam.ru* +inzhener-info.ru* +irinazaytseva.ru* +kino-history.net* +kino-russfilm.ru* +klub-masterov.ru* +krovli-zabori.ru* +lusleallster.com* +medfactor.com.ua* +moreprodukt.info* +mostech-group.ru* +online-knigi.com* +planshet-info.ru* +poleznii-site.ru* +politnews.in.net* +pornobomba.click* +powerserial.club* +praviloserdca.ru* +radio-angusht.ru* +ranobe-novels.ru* +santechcenter.ru* +shiryaevpavel.ru* +skachat-kino.fun* +smotritut.online* +starlinemedia.ru* +torrent-music.ru* +torrent-stop.org* +trupornolabs.org* +turbocomputer.ru* +utorrentfilmi.ru* +vasque-russia.ru* +zdorovo-zhivi.ru* +44torrent.games* +akakpravilno.ru* +apornoonlain.tv* +atlantisfood.ru* +autotema.org.ua* +beztarakanov.ru* +blackpantera.ru* +breaking-bad.tv* +daily-inform.ru* +dokonlin.ru.com* +ecofoodferma.ru* +electroinfo.net* +fallout-club.ru* +fialka.tomsk.ru* +filmy-online.be* +freshtorrent.ru* +games.portal.md* +golovaneboli.ru* +hi-electric.com* +hot-matures.com* +howto-news.info* +instrument16.ru* +intermusic.name* +korneevroman.ru* +lovesimpsons.ru* +luxurytv.online* +moekopchenie.ru* +moifundament.ru* +mp3rington.club* +muzkartalygb.ru* +nashaplaneta.su* +new-rington.com* +olgushka1971.ru* +porno-bomba.net* +pornomilf.click* +proautomarki.ru* +provsehsobak.ru* +remkomplekty.ru* +remtv-secret.ru* +repack-xatab.ru* +roza2012.net.ua* +russexvideo.com* +russkiyfilm2.ru* +sex-comics.mobi* +sexitorrent.com* +shlupkatv5.name* +soderzhanki2.ru* +soundtracks.pro* +studioband.club* +surgeryzone.net* +svg-balloons.ru* +svoitabachok.ru* +telspravki.info* +tnt-online.life* +torrent-bort.ru* +torrent-post.ru* +torrent-song.ru* +tractor-sale.ru* +uk-parkovaya.ru* +ustanovkasig.ru* +vashipitomcy.ru* +veloexpert33.ru* +veterinargid.ru* +webmaster.pp.ua* +yhogorlonos.com* +you-stories.com* +100popugaev.ru* +2playmusic.net* +agronom.expert* +akxanyiskoe.ru* +alcogolizm.com* +allergology.ru* +allsport-tv.ru* +animego.online* +anypictures.ru* +artremstroi.ru* +astrolibra.com* +autosaratov.ru* +avtopilot61.ru* +besstidniki.ru* +brotorrent.net* +cosmo-frost.ru* +diabethelp.org* +doctor-rus.com* +domashnee.info* +erokomiksi.com* +erokomiksi.org* +gadgetosik.com* +game-roblox.ru* +gotovimrybu.ru* +hdreactor.club* +interesniy.com* +ip.osnova.news* +iv-modelist.ru* +iz-kirpicha.su* +kabel-house.ru* +kartgeoburo.ru* +kinofilmpro.ru* +kinotruea.club* +math-prosto.ru* +myseasonvar.ru* +nash-sekret.ru* +new-baskino.ru* +nocopyright.ru* +notorgames.net* +novamed.com.ua* +oknaforlife.ru* +okommunalke.ru* +omesyachnyh.ru* +online-red.com* +onlinemix.club* +pediatrinfo.ru* +planetatain.ru* +podrobnosti.ua* +pornobomba.vip* +pornoklad.live* +prikoly2016.ru* +primasport.one* +pro100hobbi.ru* +protonvideo.to* +radio-files.ru* +rus-serial.net* +samelectrik.ru* +sasalkino.club* +sdelayusama.ru* +sexytales.info* +sodaperekis.ru* +softomania.net* +stereo-jazz.ru* +subject.com.ua* +togliatti24.ru* +tophallclub.ru* +topruporno.net* +torrent-bro.ru* +torrenther.com* +torrentinka.me* +trand-store.ru* +tushkan-tv.net* +ua-vestnik.com* +udobreniya.net* +uk-unblock.xyz* +vhd1080.online* +volosipro.info* +world-knigi.ru* +yaldagames.com* + 100polezno.ru* + 1poclimaty.ru* + aggromusic.ru* + agronomam.com* + akord-auto.ru* + animejapan.tv* + anitorrent.ru* + bestweapon.in* + bigboss.video* + bookshake.net* + calend.online* + chernovsky.ru* + chitalkino.ru* + ckmosstroy.ru* + diabetik.guru* + electrobox.su* + excelprost.ru* + fit-ness24.ru* + fitnessera.ru* + flibusta.site* + flower-vrn.ru* + fullpcgame.ru* + gidfermer.com* + glamoure.site* + grand-lion.ru* + greensotka.ru* + gtorrent.club* + hdreactor.net* + hentasis1.top* + inforuss.info* + ironbeauty.ru* + kino-life.net* + kinobaza.info* + kinobaza24.ru* + kinofilmu.net* + kinoking.club* + kinopleer.net* + kipolino.site* + kubus-expo.ru* + laservirta.ru* + lgoty-vsem.ru* + lucky-girl.ru* + maxifilm.live* + meduniver.com* + mega-porno.me* + miformat.info* + mods-craft.ru* + mp3-kniga.com* + mp3-muzyka.ru* + mschistota.ru* + nasheporno.tv* + natrukodel.ru* + nosnebolit.ru* + obmenvsem.org* + only-paper.ru* + otfortlove.ru* + ovetryanke.ru* + papa-carlo.su* + podarok.video* + pornoakt.info* + pornorota.net* + pornotales.ru* + ptitsadoma.ru* + rastenia.info* + realschule.ru* + rocknation.su* + screenpost.ru* + shanson320.ru* + sinkovskoe.ru* + smartsowet.ru* + smyslpesni.ru* + soprano-tv.ru* + soundtimes.ru* + stop-tarif.ru* + storinka.site* + stroyvolga.ru* + studfiles.net* + superporno.tv* + t1pochek.site* + tip0chek.site* + tiranator.com* + tj-service.ru* + top-spisok.ru* + topmigrant.ru* + trend-city.ru* + turkish-tv.ru* + videoklub.top* + videotut.live* + viewlost.life* + vitaminius.ru* + vklook.online* + volt-bikes.ru* + voyeyrist.com* + vsedeserti.ru* + vseprokley.ru* + vseprosady.ru* + vtorothodi.ru* + weaponland.ru* + wedachniki.ru* + wedachniky.ru* + wikimetall.ru* + xhdporno.porn* + z-torrents.ru* + 1080kino.net* + agronomu.com* + algagroup.su* + alkogolu.net* + animechan.tv* + arh-angel.ru* + autostadt.su* + bestwagen.ru* + bit-lite.com* + books2you.ru* + carlasart.ru* + cholteth.com* + coolotvet.ru* + dokfilm24.ru* + dovidkam.com* + ecoinform.ru* + erokrad.live* + erzsebet.org* + eurasia96.ru* + fermahelp.ru* + godzfilm.net* + goodfilm.top* + gubka-bob.ru* + historyam.ru* + hitmotop.com* + imaster56.ru* + k-onfetti.ru* + kakpishem.ru* + kinofaile.ru* + kinogo.media* + kinosafe.net* + kinospace.be* + kinotorrs.me* + kinovau.club* + kinovhod.xyz* + lektsia.info* + lentaroos.ru* + lentaruss.ru* + linkunder.ru* + lovereads.ru* + manswoman.ru* + medicafit.ru* + mobihobby.ru* + mp3apple.com* + mp3crown.top* + musictor.org* + my-calend.ru* + na-urokah.ru* + nameology.ru* + nayablone.ru* + neprosto.fun* + nightmare.su* + obuchonok.ru* + os-helper.ru* + p0sembed.com* + palmira63.ru* + pelensky.pro* + pic-chik.com* + podolyaka.ru* + politeka.net* + pornotor.org* + prookna.info* + pryluky.club* + psy-files.ru* + referatop.ru* + repka.online* + rintor.space* + russfilm.net* + rutor.org.ru* + samplepro.ru* + sega-play.ru* + setfilms.net* + siestafit.ru* + skorogovo.ru* + strojdvor.ru* + suncallin.ru* + tapehub.tech* + tehnoyug.com* + tipochek.xyz* + topfacts.top* + umeha.3dn.ru* + useti.org.ua* + vikimult.net* + vodakarta.ru* + vsthemes.org* + vtrende72.ru* + webhalpme.ru* + whataudio.ru* + windakeys.ru* + xtorrent.net* + xxx-igra.com* + yazdorov.win* + youngguns.su* + zona-iptv.ru* + 2planeta.ru* + 4k-kino.net* + agronom.top* + akkordam.ru* + alkomir.net* + alkotraz.ru* + autosiga.ru* + bad-room.ru* + banki.loans* + belattra.ru* + bookitut.ru* + carmen62.ru* + cherepah.ru* + chevniva.ru* + chirik.info* + codernet.ru* + diametod.ru* + dom2line.ru* + drevovid.ru* + ellunium.ru* + fileword.ru* + fitohome.ru* + floriums.ru* + freepiks.ru* + glavnoe.net* + gtorrent.cc* + gtorrent.ru* + hay-tv.info* + hdrabbit.ru* + hentai-x.ru* + horror.name* + hubtorr.com* + igrozoom.ru* + iiotconf.ru* + infotime.co* + its-kids.ru* + kapectv.com* + kino4ua.com* + kinoblin.ru* + kinoboom.su* + kinogoby.ru* + kinomax.pro* + kinonovi.ru* + kinospot.me* + knigogo.net* + koncpekt.ru* + kotmurka.ru* + krossava.ru* + krov.expert* + ladylib.net* + lgotivam.ru* + lifegid.com* + lion-tv.org* + mallex.info* + med-heal.ru* + med-post.ru* + modeland.ru* + momssite.ru* + mp3muza.com* + mp3shiza.cc* + muzonovs.ru* + my-excel.ru* + mysekret.ru* + myserial.me* + nasimke.com* + neurodoc.ru* + osnmedia.ru* + otsvetax.ru* + parnuxi.biz* + parnuxi.com* + pinetka.com* + pipdecor.ru* + piratam.net* + piratca.net* + pixcloud.ru* + plodovie.ru* + pmc-perm.ru* + pocvetam.ru* + podruzke.ru* + poimel.live* + porn720.biz* + pro-acne.ru* + proiptv.top* + radka.in.ua* + radnuk.info* + remontpl.ru* + rintor.info* + rogoff.club* + roypchel.ru* + roza2017.ru* + ru-tor.tech* + ruporus.biz* + ruporus.com* + ruporus.net* + ruporus.top* + ruporus.xyz* + rustland.ru* + sbankin.com* + scribble.su* + serialai.ru* + sexbait.net* + shematok.ru* + skam.online* + softhome.ru* + solutics.ru* + spar.org.ua* + sssexxx.net* + statusdm.ru* + stilvann.ru* + sv-scena.ru* + svarkaed.ru* + tesintec.ru* + test-nmo.ru* + thetarif.ru* + thisisus.ru* + thisnews.ru* + tltgorod.ru* + tormusic.ru* + torrentx.me* + uytvdome.ru* + venteler.ru* + viplist.fun* + vnovinky.ru* + warmedia.ru* + withcars.ru* + x-video.top* + xpicture.ru* + zhkhinfo.ru* + zoom.ru.net* + +24film.top* + +2womans.ru* + +36doors.ru* + +alimero.ru* + +allkey.org* + +amperof.ru* + +anilove.tv* + +apkhleb.ru* + +b-glife.ru* + +bigliki.ru* + +bookmo.org* + +bulvisa.ru* + +chepok.xyz* + +com-x.life* + +devki.life* + +domidei.ru* + +etikket.ru* + +ewaline.su* + +flacmor.ru* + +flashfm.ru* + +freegdz.ru* + +gfilm.club* + +glaza.guru* + +hdkino.biz* + +hdrip.info* + +histerl.ru* + +huyamba.tv* + +joporn.net* + +jut-su.net* + +kinobal.ru* + +klopkan.ru* + +max-vps.ru* + +mdroit.com* + +medkurs.ru* + +mmamama.ru* + +moriana.ru* + +mp3isl.com* + +mp3rax.com* + +mp3top.vip* + +mpsdoc.com* + +muzoffs.ru* + +muzter.net* + +ofigeno.ru* + +ogradim.su* + +ontivi.net* + +onwomen.ru* + +osortah.ru* + +oxkino.net* + +pasmr21.ru* + +pedalki.ru* + +pejnya.net* + +pejnya.org* + +pobegtv.ru* + +posudaa.ru* + +relasko.ru* + +rintor.net* + +rintor.org* + +rubook.org* + +ruporus.cc* + +ruporus.tv* + +rus-tv.com* + +rustico.ru* + +sextor.org* + +smiruss.ru* + +sochi24.tv* + +sorokam.ru* + +sputres.ru* + +time-in.ru* + +tupikov.ru* + +tvizor.org* + +ukrlit.net* + +vi-pole.ru* + +vona.pp.ua* + +vpopke.com* + +vskazke.tv* + +x-minys.ru* + +xxxrip.net* + +y2meta.app* + +ya2018.com* + +zarlit.com* + 1progs.me* + 1progs.ru* + 4damki.ru* + a-text.ru* + airwar.ru* + apihot.ru* + appmo.org* + avtika.ru* + cooksy.ru* + cools.biz* + du-lya.ru* + dwfile.ru* + edabez.ru* + eromo.org* + gboteh.ru* + gejzer.ru* + giport.ru* + grand2.ru* + hitmo.org* + hotmo.org* + indi1.top* + infpol.ru* + innal.top* + iq-you.ru* + ka4nem.ru* + kapez.net* + kino4k.in* + kslift.ru* + lidrok.ru* + manrem.ru* + meizer.kz* + minusx.ru* + nitkoj.ru* + nomery.ru* + oaziss.ru* + ochko.top* + ok-tv.org* + pejnya.me* + pesner.ru* + plus48.ru* + pornk.pro* + rem.ninja* + ringon.cc* + rutr.life* + sasisa.ru* + swoofe.ru* + tolmax.ru* + torren.eu* + ukzdor.ru* + unews.pro* + uztop.net* + vidmo.org* + vipmp3.fm* + vklook.ru* + voin.guru* + ximepa.ru* + xittv.net* + xsound.kz* + zannn.top* + zelenj.ru* + +ale07.ru* + +aogor.ru* + +apola.ru* + +bukin.tv* + +car3g.ru* + +cools.dj* + +dzd54.ru* + +fgssm.ru* + +fonzo.ru* + +ianed.ru* + +kapec.tv* + +lov16.ru* + +mhub.top* + +mk-el.ru* + +msutt.ru* + +muzmo.cc* + +mzmuz.ru* + +na5.club* + +noddb.ru* + +ogrom.ru* + +porus.ru* + +rus24.tv* + +tepka.ru* + +tivix.co* + +tvua.biz* + +vtekb.ru* +7ba.org* +assz.ru* +awko.ru* +clib.me* +gkp3.ru* +gwss.ru* +hajr.ru* +imtw.ru* +kape.cc* +ozge.ru* +pkrc.ru* +si-3.ru* +tbti.ru* +vpoz.ru* +x-16.ru* +7ba.ru* +gdz.ru* +ksv.ru08@ +ª* + +uploads.ru08@ +i¢* +private-records.com* +rycckienovosti.ru* +armourbook.com* + newzfeed.ru* + shrlink.top08@ +Ñ"* +xn--80aaleqhbkbz7ak6l.xn--p1ai* +americanhorrorstoryonline.ru* +business-online-sberbank.ru* +sovremennoedomovodstvo.ru* +atlasprirodirossii.ru* +sochinenienatemu.com* +resheniya-sudov2.ru* +spravochnik109.link* +velikolepnyivek.com* +modernfirearms.net* +public-porn.online* +resheniya-sudov.ru* +subscribering.info* +zhenskoe-mnenie.ru* +1pokanalizacii.ru* +diversant-club.ru* +girls-porn.online* +liugong-centre.ru* +mnogo-krolikov.ru* +national-porn.com* +porno-island.site* +sdelaipotolok.com* +torrents-game.net* +vse-sezoni.online* +bigbangserial.ru* +boleznikrovi.com* +hdkinoteatr3.net* +island-games.xxx* +luna-segodnja.ru* +obinstrumente.ru* +polit-gramota.ru* +pornosvideo.info* +serialy-2021.com* +sochineniepro.ru* +sosed-domosed.ru* +tnt-premier.life* +vash-ortoped.com* +vseprorebenka.ru* +best-gamer.info* +beton-house.com* +bolezni-koji.ru* +chudochashca.ru* +grandkulinar.ru* +kinopoiskhd.com* +litmisto.org.ua* +odinelectric.ru* +pornovkisku.com* +russkiiyazyk.ru* +rustorkacom.lib* +rutor-group.pro* +serialy-tor.com* +teplomontag.net* +thatpervert.com* +yakpravylno.com* +brazzers-hd.us* +comp-profi.com* +cvetnikinfo.ru* +dachadizain.ru* +dachamechty.ru* +fapreactor.com* +gaimorit-sl.ru* +kinozaltv.life* +lordfillms.net* +mcdownloads.ru* +moimakiyazh.ru* +mp3songfree.ru* +pornreactor.cc* +propohoroni.ru* +radarmedia.net* +sigaretishe.ru* +top-seriali.ru* + chelnyagro.ru* + chistoplot.ru* + homemyhome.ru* + inetfishki.ru* + lenkino.adult* + lostseries.ru* + mashmaster.ru* + mysimpsons.ru* + pindosoff.net* + pochistim.com* + referatikz.ru* + ru-torrent.su* + track-news.ru* + ukrlib.com.ua* + windowspro.ru* + yalenkino.org* + 1hd1080.info* + 2proraba.com* + allrepack.ru* + audionerd.ru* + brunet-ka.ru* + depressio.ru* + domahatv.com* + ebalovo.porn* + file-mods.ru* + kino-fox.com* + kinorad.info* + kinozal.guru* + lostfilm2.ru* + mp3skazka.ru* + mybrazz.club* + polexpert.ru* + pornohype.cc* + pornovau.top* + prisnilos.su* + proporno.org* + proroofer.ru* + prosmazku.ru* + rezkahd.life* + rustorka.com* + rustorka.net* + rustorka.top* + sadovodu.com* + sex-kadr.com* + sobytiya.net* + sport-tv.biz* + spravnik.com* + stud-time.ru* + tapochek.net* + tipsboard.ru* + topbodies.ru* + vsekamni.net* + youporno.pro* + 1igolka.com* + 365news.biz* + agrognom.ru* + alkolife.ru* + bestfree.ru* + blogzona.ru* + epalovo.com* + gryadki.com* + imperiya.by* + kykarek.com* + mp3itune.ru* + nazovite.ru* + poporaj.com* + sobakada.ru* + theplace.ru* + trubanet.ru* + wisegeek.ru* + zotkino.com* + +7ogorod.ru* + +attuale.ru* + +d20.com.ua* + +fikus.guru* + +kinozal.me* + +kinozal.tv* + +koskomp.ru* + +litfest.ru* + +loginz.org* + +mp3vevo.ru* + +pic4art.ru* + +piccent.ru* + +picpool.ru* + +pkzsk.info* + +rukoed.com* + +selomoe.ru* + +seloved.ru* + +sunhome.ru* + +xporno.xyz* + ollhd.com* + pojrem.ru* + ruero.com* + rustxt.ru* + sozdik.kz* + vkaznu.ru* + zk-fm.top* + +mfc04.ru* + +pets2.me* + +ruxox.ru* +iwsm.ru* +tdnu.ru* +rvb.ru08@ +a€* +fapreactor.com* +pornreactor.cc* + ckmosstroy.ru* + bit-lite.com* + fastpic.org08@ +¼ * +kino-tvserial.online* +kino-hit-online.com* +telspravochnik.com* +privat-fotka.ru* +smotriserial.me* +torrentshow.org* +artrozamnet.ru* +familyspace.ru* +vse-sezony.org* + nisorinki.net* + online-hd.biz* + onlineguru.ru* + pornozhuk.com* + superhumor.ru* + tryserial.net* + arablionz.tv* + autotopik.ru* + bigpuzzle.ru* + film1080p.ru* + kaztorka.org* + seasonvar.ru* + shtorm777.ru* + top-radio.ru* + newcloud.tv* + ru-kino.com* + +anisima.ru* + +diakov.net* + +ggtube.pro* + +gorodvo.ru* + +hdklub.com* + +hdsite.net* + +kinohd.net* + +mainavi.ru* + +neolove.ru* + +nnmclub.ro* + +nnmclub.to* + +voffka.com* + kinohd.ws* + kogda.org* + +farap.ru* + +hochu.tv* +ruvi.tv* +eku.ru* +zk.fm08@ +X * +happy-biock.info* +happy-block.info* +howto-news.info* + mschistota.ru08@ +5 * + xv-ru.com08@R&tags=exoxvideostargetting +$* + +vesti.ru08@R +-vgtrk.ru/ +"* +1gdz.ru08@R .1gdz.ru^ +08@R .24smi.org^ +6* +adult-torrent.com08@R.adult-torrent.com^ +08@R .ahtate.ru^ +,* + all-best.pro08@R.all-best.pro^ +08@R .analnoe.tv^ +,* + anginamed.ru08@R.anginamed.ru^ +$ÿï08@R.animebest.org^*.mp4 +08@R .apicay.ru^ +08@R .arma52.ru^ +08@R .autous.ru^ +0* +avtonavideo.ru08@R.avtonavideo.ru^ +** + avtozam.com08@R .avtozam.com^ +08@R .awko.ru^ +08@R .b-glife.ru^ +08@R +.ba3a.org^ +** + babkino.com08@R .babkino.com^ +,* + batzbatz.com08@R.batzbatz.com^( + +domsnov.rutr[style*="important"]L + +twirpx.com + +twirpx.org,ul[class*="file-download"] + div[class*=" "]= + repost.uz,video[src*="/storage/uploads/"][src$=".mp4"]  +vc.ruvue[name="booster"] +wasd.tv wasd-banner) +wasd.tvwasd-player-overlay-banner + mivmeste.info +wix-iframe  +pogodairadar.com.uawo-ad" + 101xp.comxp-banner-sidebar+ + ficbook.netya-recommendation-widget- +audioportal.su#ad_global_above_footer + +postila.ru +#ads_dummy + +postila.ru #ads_wide( +audioportal.su#adsense_firstpost + +postila.ru#gAds5 + pvpru.com$#posts > .postbitim[style^="height"]G +spam-club.blogspot.com +spam-club.blogspot.ru#sidebar-wrapper + +postila.ru +#top__mpic% +ferr-um.ucoz.ru#vid_vpaut_div™ +stalker-mods.clan.su +browserleaks.com +forum.vorota.de +kulturologia.ru +root-nation.com +stalker-mods.su +todotech20.com + anivisual.net + apptractor.ru + newxboxone.ru + kg-portal.ru + studizba.com + ficbook.net + otzovik.com + +nookea.com .adsbygoogle- +sitecoder.blogspot.ru.adsbygoogle > *" +gtavicecity.ru .article-ads$ + +postila.ru.masonry-brick.ads" + +vikna.tv.pip-video-wrapper +root-nation.com.td-a-ad  +root-nation.com .td-a-rec( + rafkino.com.ytp-ad-progress-list' + rafkino.comdiv[id^="MarketGid"]1 + +vikna.tv +ictv.uadiv[id^="div-gpt-ad-"]ç +08@R.besstidniki.ru^ +"* +blgy.ru08@R .blgy.ru^ +,* + botinok.porn08@R.botinok.porn^ +)* + calculat.ru08@R .calculat.ru +.* + chinimavto.ru08@R.chinimavto.ru^ +8* +chto-proishodit.ru08@R.chto-proishodit.ru^ +6ÿï* +creativportal.ru08@R.creativportal.ru^ +!08@R.diversant-club.ru^ +<* +dnevniki-vampira.net08@R.dnevniki-vampira.net^ +.* + docfilms.info08@R.docfilms.info^ +** + dsvload.net08@R .dsvload.net^ +08@R.ebalovo.adult^ +** + edu-lib.net08@R .edu-lib.net^ +0* +etalongame.com08@R.etalongame.com^ +"08@R.fetish-porn.online^ +2* +film-online.org08@R.film-online.org^ +08@R.filmy-2017.net^ +!08@R.filmy-2017.online^ +B* +filmy-na-anglijskom.net08@R.filmy-na-anglijskom.net^ +8* +football-plyus.net08@R.football-plyus.net^ +08@R.forum-gta.ru^ +,* + foto-pic.net08@R.foto-pic.net^ +4* +france-films.net08@R.france-films.net^ +.* + gameorakul.ru08@R.gameorakul.ru^ +.* + games-xbox.ru08@R.games-xbox.ru^ + 08@R.gamestracker.org^ +08@R.gays-club.com^ +#08@R.gde-ispolzuetsya.ru^ +0* +ghostanime.com08@R.ghostanime.com^ +"* + darkmoney.at08@R.gif +!"08@R.girls-porn.online^ +** + gmod-fan.ru08@R .gmod-fan.ru^ +** + great-tv.ru08@R .great-tv.ru^ +,* + green-tea.tv08@R.green-tea.tv^ + 08@R.halalmemorial.ru^ +08@R .henchan.me^ +"ÿï08@R.hindcine.tv^*.mp4 +0* +hohland.com.ua08@R.hohland.com.ua^ +"* +igdz.ru08@R .igdz.ru^ +,* + imba-club.ru08@R.imba-club.ru^ +08@R .imgbun.ru^ +&* + imgpay.ru08@R .imgpay.ru^ + 08@R.inzhener-info.ru^ +08@R .ismnews.ru^ +2* +kino-filmov.net08@R.kino-filmov.net^ +08@R.kino-o-voine.ru^ +08@R .kinogo.la^ +08@R.kinolive2.org^ +,* + kinomania.kz08@R.kinomania.kz^ +** + kinorob.net08@R .kinorob.net^ +** + kirovnet.ru08@R .kirovnet.ru^ +08@R.kontur-map.ru^ +0* +last2images.ru08@R.last2images.ru^ +08@R .libking.ru^ +2* +libreportal.net08@R.libreportal.net^ +** + libtor.club08@R .libtor.club^ +!08@R.lightstories.site^ +08@R.mamavika.com^ +1* +mega-track.info08@R.mega-track.org^ +08@R .mensgen.ru^ +:* +minecraftnavideo.ru08@R.minecraftnavideo.ru^ +08@R.minimalsy.xyz^ +** + monkeypx.ru08@R .monkeypx.ru^ +,* + monkeypxl.ru08@R.monkeypxl.ru^² +.* + monkeypxls.ru08@R.monkeypxls.ru^ +(* + +monpxls.ru08@R .monpxls.ru^ +(* + +moonpix.ru08@R .moonpix.ru^ +(* + +mreadz.com08@R .mreadz.com^ +>* +multivarki-redmond.ru08@R.multivarki-redmond.ru^ +.* + multplayer.ru08@R.multplayer.ru^ +,* + multzona.org08@R.multzona.org^ +** +utkonos.mybb.ru08@R .mybb.ru^ +0* +mybestbooks.ru08@R.mybestbooks.ru^ +"* +myru.tv08@R .myru.tv^ +,* + myserialy.ru08@R.myserialy.ru^ +& * + nacion.ru08@R .nacion.ru^ +>* +narodna-osvita.com.ua08@R.narodna-osvita.com.ua^ +<* +narodnaiamedicina.ru08@R.narodnaiamedicina.ru^ +0* +naruto-base.tv08@R.naruto-base.tv^ +!"08@R.national-porn.com^ + 08@R.newinform.com^ +(* + +nizaika.tv08@R .nizaika.ru^ +** + odezhda2.ru08@R .odezhda2.ru^ +08@R .ofigeno.ru^ +,* + omsi2mods.ru08@R.omsi2mods.ru^ +08@R.onepixshare.ru^ +8* +online-futurama.ru08@R.online-futurama.ru^ +8* +online-griffiny.ru08@R.online-griffiny.ru^ +2* +online-multy.ru08@R.online-multy.ru^ +<* +online-south-park.ru08@R.online-south-park.ru^ +** + otravlen.ru08@R .otravlen.ru^ +08@R .parnuha.net^ +.* + pawno-info.ru08@R.pawno-info.ru^ +¶* +football.kulichki.net* +kino-o-voine.ru* +zfilme-hd1.site* +houseserial.ru* +orenburg.media* +pro100hobbi.ru* +samelectric.ru* + asilmedia.org* + joyreactor.cc* + smartpress.by* + telegraf.news* + dok-film.net* + novostivl.ru* + rosserial.be* + vsplanet.net* + zfilm-hd.org* + ryazan.life* + tevas.media* + tourprom.ru* + tv-umnik.ru* + +freezmi.io* + +reactor.cc* + +yakutsk.ru* + atastv.ru* + +reedr.ru* +sib.fm08@R.php +h * + kodikdb.com* + +aniqit.com* + +anivod.com* + +kodik.info* + kodik.biz* + +kodik.cc08@R.php?id= +* + sibnet.ru08@R.php +&* + picmir.nu08@R .picmir.nu^ +08@R.pics*share.ru^ +08@R.pics-images.ru^ +&* + piling.re08@R .piling.re^ +2* +platimzafoto.ru08@R.platimzafoto.ru^ +,* + pol-video.ru08@R.pol-video.ru^ +3* +poluchi-teplo.ru08@R.poluchi-teplo.ru +(* + +pornik.net08@R .pornik.net^ +!08@R.pornopodborka.com^ +!08@R.pornorasskazy.com^ +08@R.pornotales.ru^ +0* +prigotovit.org08@R.prigotovit.org^ +0* +prison-fakes.ru08@R.prison-bot.ru^ +(* + +progrib.ru08@R .progrib.ru^ +0* +prohodimets.ru08@R.prohodimets.ru^ +2* +prohozhuigru.ru08@R.prohozhuigru.ru^ +** + pronpic.org08@R .pronpic.org^ +6* +prostatitanet.com08@R.prostatitanet.com^ +&* + protdt.ru08@R .protdt.ru^ +""08@R.public-porn.online^ +** + pxshares.ru08@R .pxshares.ru^ +$* + +ranet.tv08@R +.ranet.tv^ +4* +remontnavideo.ru08@R.remontnavideo.ru^ +08@R.repka.online^ +4* +rich-torrent.com08@R.rich-torrent.com^ +&* + romkaq.ru08@R .romkaq.ru^ +08@R +.rus.porn^ +0* +rusargument.ru08@R.rusargument.ru^ +** + ruskoetv.ru08@R .ruskoetv.ru^ +08@R .rustico.ru^ +08@R +.ruxox.ru^ +,* + sad-doma.net08@R.sad-doma.net^É +08@R.sadovnik-tyt.ru^ +4* +salat-tracker.ru08@R.salat-tracker.ru^ +&* + samods.ru08@R .samods.ru^ +2* +science-film.ru08@R.science-film.ru^ +08@R .segamen.ru^ +08@R +.semmi.ru^ +** + serial.wiki08@R .serial.wiki^ +4* +serialrussian.ru08@R.serialrussian.ru^ +2* +serialszoom.net08@R.serialszoom.net^ +.* + sex-empire.tv08@R.sex-empire.tv^ +&* + shiny2.ru08@R .shiny2.ru^ +=* +slavaangel.net* + slavaangel.ru08@R .slavaangel. +(* + +sovets.net08@R .sovets.net^ +,* + spravnik.com08@R.spravnik.com^ +:* +spravochnik109.link08@R.spravochnik109.link^ +$* + +t-tv.org08@R +.t-tv.org^ +.* + televizor2.ru08@R.televizor2.ru^ +08@R.trendpress.ru^ +.* + trialeset.org08@R.trialeset.org^ +08@R .trubanet.ru^ + "08@R.trupornolabs.org^ +Y * + piratbit.fun* + piratbit.org* + piratbit.top* + pirat.one* +pb.wtf08@R.txt +.* + uhty-multy.ru08@R.uhty-multy.ru^ +08@R .ukrmir.info^ +08@R.uniondht.org^ +08@R .vkaznu.ru^ +08@R .voffka.com^ +(* + +votrube.ru08@R .votrube.ru^ +** + warfiles.ru08@R .warfiles.ru^ +** + webdiana.ru08@R .webdiana.ru^ +,* + wmaster.guru08@R.wmaster.guru^ +.* + womanlady.net08@R.womanlady.net^ +4* +xn--c1adkjnf.net08@R.xn--c1adkjnf.net^ +$* + +xyya.net08@R +.xyya.net^ +08@R.yarik-sat.com^ +&* + youix.com08@R .youix.com^ +.* + zaycev-tut.ru08@R.zaycev-tut.ru^ +08@R .zdos.ru^ +(08@R.zhenskij-sajt-katerina.ru +2* +zlovemother.com08@R.zlovemother.com^ +"* +zozi.ru08@R .zozi.ru^ +08@R +.zz87.xyz^ +* * +www.mp4upload.com08@R/*.json +&ÿï* + letitbit.net08@R/*.mp4 +W* + animevost.one* + animevost.org* + animevost.top* +vost.pw08@R /*.php?uid= +2€* + hackware.ru* + +kali.tools08@R/*.php +e€* + rutracker.lib* + rutracker.net* + rutracker.org* + rutracker.nl* + rutr.life08@R/*.php +¹ÿï* +politexpert.net* +inforeactor.ru* +nation-news.ru* +rueconomics.ru* + newinform.com* + politros.com* + slovodel.com* + +polit.info* + nevnov.ru* + riafan.ru08@R/*/mtm. +0ÿï* +klex.ru* +koob.ru08@R +/*_book.js +,ÿï* +www.mp4upload.com08@R/*aHR0c +^€* +online-stars.org* +online-star.org* + anistar.org* + +astar.bz08@R /*banner*.php +Cÿï* +olx.kz* +olx.ua* +olx.uz08@R/*baxter*/olx*.min.js +4€* +livejournal.com08@R/*docking*eaglecdn +5* +dtf.ru* +vc.ru08@R/*vue-chunk.booster. +Cÿï*" + xn----7sbaegss0bebjcb2g.xn--p1ai08@R/75tr_*_edge.js +6ÿï* + +namba.kg* + +namba.kz08@R/?ads_service= +$ÿï08@R/ad*.tutu.ru^*_*.php +bÿï* +pornosvideo.info* +pornovkisku.com* +teplomontag.net* + pindosoff.net08@R/adata/ +g * + porn-watch.ru* + domonosok.tk* + vidxhot.net* + haes.tech* +hqq.to* +hqq.tv08@R/add.php +=* + auto.vesti.ru* + gubernia.com08@R/afrsasync*.js +Dÿï* +omskregion.info* + newsomsk.ru08@R/ajax/hitsadv.php? +s€* +intermusic.name* + iplayer.info* + get-tune.cc* + ipleer.fm* + mp3cc.biz* + mp3iq.com08@R /api*iframe +:ÿï* + igromania.ru* + kanobu.ru08@R /api/*/ainfo/ +8ÿï* + lalafo.az* + lalafo.kg08@R/api/branding/ªE +!* + +vesti.ru08@R/app.js +Vÿï* +animalreader.ru* + vovetnam.su* + +mensgen.ru08@R/arscode-ninja-popups/ +>ÿï* + ficbook.net08@R/assets/dist/advertisement.*.js +ÿï* +perevolockday.ru* +sorochinskday.ru* + buzulukday.ru* + +orenday.ru* + +saltday.ru* + +nsday.ru08@R/assets/files/ +Cÿï* +agroter.com.ua* + tenews.org.ua08@R/assets/img/ads/ +Šÿï* +perevolockday.ru* +sorochinskday.ru* + buzulukday.ru* + +orenday.ru* + +saltday.ru* + +nsday.ru08@R/assets/snippets/bsystem/ +ñ * +video.doramatv.su* +allohalive.com* + doefiratv.net* + kodikdb.com* + u-stream.in* + +aniqit.com* + +anivod.com* + +kinoxam.ru* + +kodik.info* + +u-play.pro* + kodik.biz* + u-cdn.org* + u-cdn.top* + +kodik.cc08@R/assets/vendor/*.xml +. * + newsvl.ru* +vl.ru08@R +/async.php +pÿï* +vse-pro-sport.com.ua* +vseprosport.by* +vseprosport.kz* +vseprosport.ru08@R/banner/bookmaker- +=ÿï* + +namba.kg* + +namba.tj08@R/banner_fullscreen.js ++* +2ip.io* +2ip.ru08@R /banners/ +/ÿï* + vashurok.ru08@R/banners/images/ +}ÿï* +megaresheba.ru* + pedportal.net* + zoobrilka.net* + +allsoch.ru* + +spishy.net* + +gdz.work* +ronl.ru08@R/bazr/ +eÿï* + glavred.info* + glavred.net* + +unian.info* + unian.net* + +unian.ua08@R/block/partners +.ÿï* + gzt-sv.ru08@R/bnr-tumarke*.mp4 +V* + animevost.one* + animevost.org* + animevost.top* +vost.pw08@R +/brending/ +Eÿï* + animelib.org* + anilib.me08@R/build/assets/yaVid-*.js +Üÿï* +xn--80aaivjfyj3e.com* +economics.studio* +scicenter.online* +textbooks.studio* +uchebnikfree.com* +lawbook.online* +myzooplanet.ru* +psihologia.biz* + economuch.com* + lawbooks.news* + finbook.news* + medinfo.live* + pravo.studio* + all-sci.net* + provse.news* + sci-lib.biz* + +bib.social* + sci.house* + +lib.sale08@R/chat*js +Š* + studbooks.net* + studwood.net* + studref.com* + +bstudy.net* + +studme.org* + +vuzlit.com* + ozlib.com* + xstud.org08@R/chat*js +A* +onlinemusic.com.ua* + +hd-720.biz08@R/code/bshow.php +T * +mercedesbenz124.ru* +avtoportal34.ru* + applesmile.ru08@R /comebacker/ +5* +kursremonta.ru08@R/consultant-slider.js +Lÿï* + +unian.info* + unian.net* + +unian.ua08@R/content/lentainform- +Hÿï* + +unian.info* + unian.net* + +unian.ua08@R/content/redtram- +Sÿï* + montecarlo.ru* + +maximum.ru* + +hitfm.ru* +dfm.ru08@R/cookiesync.js +*ÿï* + ebooks.skin08@R /data*?bid= +; * +dtf.ru* +vc.ru08@R/distribution?place=header +#ÿï* + myzuka.club08@R/do/ +Ÿ* +lostfilm.download* +lostfilmtv2.site* +lostfilmtv3.site* +lostfilmtv5.site* +lostfilmtv.site* +lostfilm.space* +lostfilm.today* +lostfilmtv.uno* + lostfilm.life* + lostfilm.one* + lostfilm.pro* + lostfilm.uno* + lostfilm.win* + lostfilm.tv* + lostfilm.tw08@R/ebllbe/ +$ÿï* +koob.ru08@R /exchange +Cÿï* +xn--b1ats.xn--80asehdb* + gorvesti.ru08@R +/files/rk/ +9* + vsehvosty.ru* + hvosty.ru08@R/forum/images/ +9ÿï* +klex.ru* +koob.ru* +b17.ru08@R /foto/rkl +Œÿï* + ifnews.org.ua* + lvnews.org.ua* + tenews.org.ua* + uanews.org.ua* + cvnews.cv.ua* + rvnews.rv.ua08@R/frontend/assets/advert/ +)ÿï08@R/galya.ru/clients/places/ +>ÿï* + e-katalog.ru* +ek.ua* +m.ua08@R /gb.php?idb_= +:ÿï* + gageno.ru* + pikapo.ru08@R/get_img/offers/ +?ÿï* + pavlodar.news* + +pavon.kz08@R/gorilla.php?token +[ÿï* + animevost.one* + animevost.org* + animevost.top* +vost.pw08@R /html5banner/ +hÿï* + rutracker.lib* + rutracker.net* + rutracker.org* + rutracker.nl* + rutr.life08@R/iframe/ +,ÿï* + nvplay.ru08@R/images/banner/ +žÿï* +zamena-podshipnikov.ru* +archiportal-crimea.ru* +kyiv-independent.com* +vse-pro-sport.com.ua* +express-prigorod.ru* +ternopoliany.te.ua* +ua-independent.com* +hd-systems.com.ua* +rabota.kharkov.ua* +skoda-club.org.ua* +fuzz-magazine.ru* +perevolockday.ru* +planetaskazok.ru* +rabota-kovrov.ru* +sorochinskday.ru* +bryansktoday.ru* +forpost.lviv.ua* +itexpert.org.ua* +kamchatinfo.com* +kids.to-var.com* +kramatorsk.info* +mos-holidays.ru* +moscow-post.com* +news.soundex.ru* +planet-today.ru* +profidom.com.ua* +sevkavportal.ru* +ecm-journal.ru* +inforeactor.ru* +kazfootball.kz* +tv-gubernia.ru* +vseprosport.by* +vseprosport.kz* +vseprosport.ru* + autogrodno.by* + bez-smenki.ru* + buzulukday.ru* + bvedomosti.ru* + erotix-tv.com* + highload.tech* + lifetambov.ru* + mebelminsk.by* + moya-semya.ru* + newgubakha.ru* + sevastopol.su* + starkosino.ru* + trassae95.com* + vdv-kavkaz.ru* + vp.donetsk.ua* + 19rusinfo.ru* + 33strausa.ru* + alfa-form.ru* + altgazeta.ru* + arendator.ru* + cryptoff.org* + darkmoney.at* + firtka.if.ua* + izmacity.com* + memstatus.ru* + motoforum.ru* + motovibor.ru* + ok-inform.ru* + pretenziy.ru* + prosports.kg* + prosports.kz* + radioclub.ua* + shans.com.ua* + smolnarod.ru* + sp.tomica.ru* + wallnews.org* + fermagid.ru* + fitsport.ru* + info-ua.com* + medicalj.ru* + nakanune.ru* + nashdisk.ru* + ngregion.ru* + out-club.ru* + poiskvps.ru* + tenstars.ru* + trisosny.ru* + valetudo.ru* + +19rus.info* + +agroxxi.ru* + +aniplay.tv* + +antimuh.ru* + +bitpump.ru* + +csmania.ru* + +hv-info.ru* + +infokam.su* + +karelia.ru* + +korabel.ru* + +newgdz.com* + +orenday.ru* + +ruslife.eu* + +saltday.ru* + +ukrlife.tv* + +zrenue.com* + 1tvnet.ru* + abnews.ru* + biwork.ru* + buzday.ru* + calcus.ru* + coil32.ru* + dtpptz.ru* + hype.tech* + kaluga.ru* + mirnov.ru* + mycity.by* + naurfo.ru* + numama.ru* + osvita.ua* + sostav.ua* + ufocar.ru* + vjazhi.ru* + vmeste.tv* + vsatke.ru* + yablor.ru* + +aum.news* + +cxem.net* + +fakty.ua* + +house.kg* + +mc.today* + +ndn.info* + +nsday.ru* + +ria-m.tv* + +ria56.ru* + +ridna.ua* + +rtr24.ru* + +study.ru* + +zvid.org* +cars.ru* +ko44.ru* +8vp.ru* +itc.ua* +rbc.ru* +uff.uz* +km.ru* +ng.kz08@R/images/banners/ +5ÿï* + napensii.ua* +ogo.ua08@R /images/bnr/ +p* +izbezhat-nakazania.com* +strela-online.com* +theflash-tv.com* +vskazke-tv.com08@R/images/brand. +Cÿï* + amuzic.ru* + emuzic.ru* +ifin.kz08@R/images/brand/ +Ÿÿï* +arbitr-praktika.ru* +zarplata-online.ru* +pro-goszakaz.ru* +pro-personal.ru* +hr-director.ru* +sekretariat.ru* + gazeta-unp.ru* + trudohrana.ru* + budgetnik.ru* + dirsalona.ru* + stroychet.ru* + business.ru* + glavbukh.ru* + +buhsoft.ru* + +cxychet.ru* + +kom-dir.ru* + menobr.ru* + resobr.ru* + +kdelo.ru* + +zdrav.ru* +26-2.ru* +ugpr.ru* +law.ru* +rnk.ru* +fd.ru* +gd.ru08@R/images/branding/ +Q* +soft-windows.info* +windows-soft.info* + +60-fps.net08@R /images/jet +Tÿï* +fapreactor.com* +pornreactor.cc08@R /images/menubars/sweet-ai-girls. +Uÿï* +profit-maker.org* + argumenti.ru* + fonarevka.ru08@R/images/partners/ +Cÿï*" + xn----7sbaegss0bebjcb2g.xn--p1ai08@R/images_banner/ +æÿï* +ternopillive.com* +chelseablues.ru* +geonavigator.ge* +grinkod.spb.ru* +profootball.ua* + winternete.ru* + konkurent.ru* + navigator.az* + primpress.ru* + gotoshop.ua* + +mashina.kg* + sq.com.ua08@R /img/banners/ +{ÿï* +perevolockday.ru* +sorochinskday.ru* + buzulukday.ru* + +orenday.ru* + +saltday.ru* + +nsday.ru08@R +/img/bym3. +wÿï* +anilibria.iss.one* + anilibria.tv* + +anilib.moe* + +anilib.one* + +anilib.top08@R/img/other/a/nikifilini. +<ÿï* + pavlodar.news* + +pavon.kz08@R/img/promotion/ +[ÿï* +playmarket-for-pc.com* +playmarket-pc.com* + roblox-pc.com08@R /img/wizard. +~ÿï* +windows-program.com* +windows-driver.com* +windows-driver.net* +softomania.net* + warezok.net08@R +/img/yad*. +*ÿï* + ebooks.skin08@R /img/yandex +U * +imenie-home.ru* + vamrecipes.ru* + news-tape.ru08@R/index.php?*=rstbox& +¥*! +xn----ctbhcnewrrow6gsa.xn--p1ai* +info-zhilish.ru* +planetatain.ru* + vedmochka.net* + 3rebenka.ru* + +sovets.net* + libok.net* + +dokak.ru08@R/init.js +=ÿï* + erocadr.com* + +xcadr.tv08@R/inoe/player/*.mp4 +[ÿï* +androidinsider.ru* +appleinsider.ru* + +hi-news.ru08@R/ioimedia-app-banner/ +�* +perevolockday.ru* +sorochinskday.ru* + buzulukday.ru* + +orenday.ru* + +saltday.ru* + +cknow.ru* + +nsday.ru08@R/jquery.cookie.min.js +ãÿï* +cdnstreamfree.com* +cdnstreamlive.com* +tvforfamily.net* +cdntelesee.com* + cdntvnet.com* + erotixtv.com* + potokcdn.com* + tvizorcdn.ru* + only-tv.org* + +5.45.79.91* + ok-tv.org* + +tivix.co08@R/jquerymin*.js +Û* +xn--80aaivjfyj3e.com* +economics.studio* +scicenter.online* +textbooks.studio* +uchebnikfree.com* +lawbook.online* +myzooplanet.ru* +psihologia.biz* + economuch.com* + lawbooks.news* + finbook.news* + medinfo.live* + pravo.studio* + all-sci.net* + provse.news* + sci-lib.biz* + +bib.social* + sci.house* + +lib.sale08@R /js/*.js?¬U +)* +zab.ru* +zab.tv08@R/js/_b. +)* +zab.ru* +zab.tv08@R/js/_y. +3ÿï* +vk.com* +vk.ru08@R/js/al/mrtarg.js +Yÿï* +tengrisport.kz* + tengriauto.kz* + tengrinews.kz08@R/js/header-bidding.js +º*" + xn--80abefftg5atkeine8j.xn--p1ai* +xn--b1aasedeuba5ai.xn--p1ai* +poliklinika-avto.ru* +zakon-o-tishine.ru* +pasportnyjstol.ru* +pristav-russia.ru* +vozvrat-tovara.ru* +dogovor-urist.ru* +regoperatory.ru* +assistentus.ru* +kodeksy.com.ua* +prizivnika.net* + moepravo.guru* + prozhivem.com* + zakonguru.com* + erikadmin.ru* + gibdd-gai.ru* + gibddru.info* + prestima.ru* + snn-mn.ru* +fzrf.su* +tbti.ru08@R /js/init.js +8* + superhumor.ru* + +voffka.com08@R /js/pop*.js +É* +player.cvary.org* +kinokrad.in.net* +metaverseid.tk* + divxplayer.ml* + porn-watch.ru* + domonosok.tk* + hcdn.online* + vidxhot.net* + haes.tech* +hqq.to* +hqq.tv08@R/js/script-*.*.js +5* + superhumor.ru* + +voffka.com08@R/js/v.js +Z* +online-stars.org* +online-star.org* + anistar.org* + +astar.bz08@R +/jwpsrv.js +6ÿï* + superhumor.ru* + +voffka.com08@R/klama/ +*ÿï* + +zahav.ru08@R/load_zahav.js +€ÿï* +zagonkop.gb.net* +zagonkov.gb.net* + zagonka.net* + zagonko.org* + zogonka.org* + +zagonka.tv08@R/m/news.php?id= +.ÿï* +fx.co08@R/main_widget-*-promo. +pÿï* +fairytail-online.ru* +happy-biock.info* +happy-block.info* +howto-news.info08@R/manifest.json +“ÿï* +xn--c1acj.xn--p1acf* +xn--c1acj.xn--p1ai* +gdzotputina.club* +megaresheba.com* +gdz-putina.fun* +megaresheba.ru* + gdzputina.net* + reshebnik.com* + zoobrilka.net* + gdzguru.com* + +resheba.me* + +spishi.fun* + gdz.ninja* +gdz.fm* +gdz.ru08@R /media/index +¿€* +fast-torrent.club* +fast-torrent.ru* +fast-torrent.su* + fast-fiml.ru* + filmpotok.ru* + kinomuch.ru* + pickfilm.ru* + +nebeda.net* + veleto.ru* + +vixim.ru08@R/metrika/?token= +�ÿï* +torrent-besplatno.net* +utorrentgames.net* +game-torrent.net* +yangteacher.ru* + rugames.net* + +topigr.com08@R/modul*php?img +(ÿï* + +ixbt.com08@R /multyadv.js +Ûÿï* +technoportal.com.ua* +headphonesbest.ru* +mobile-review.com* +hardwareluxx.ru* +gsminfo.com.ua* +ironfriends.ru* + tehnobzor.ru* + itechua.com* + mezha.media* + pingvin.pro* +itc.ua08@R /nadavi-api/ +ú * +rostovautosoundfest.ru* +csharpprogramming.ru* +roundrobin.sytes.net* +samogonvbarnaule.ru* +mercedesbenz124.ru* +comics-portal.com* +photo-boutique.ru* +viewapplegroup.ru* +all-russ-fish.ru* +hemingway-lib.ru* +moscatalogue.net* +pensioneram.info* +socialstudies.ru* +gamescontent.ru* +militaryexp.com* +computera.info* +la-greelyaj.ru* +pazavto2012.ru* +phortepiano.ru* +timeallnews.ru* +vesnikasert.ru* +windows-usb.ru* +xxx-russian.ru* + alibabaru.com* + applesmile.ru* + fishing-mr.ru* + gorodenok.com* + gotyfaster.ru* + granitauto.ru* + romanbook.net* + seeyoupage.ru* + thevidosss.ru* + turkey-tv.net* + agentnews.ru* + autohim42.ru* + ecosibiri.ru* + freeguard.ru* + funsuslik.ru* + india-tv.net* + kasrentyg.ru* + nashidni.org* + vsekratko.ru* + alkodoma.ru* + auto-kmu.ru* + avforums.ru* + avt-rost.ru* + blogspot.ru* + eset-key.ru* + fiat-vag.ru* + freezeet.ru* + gameruns.ru* + getmedic.ru* + hipermir.ru* + knighki.com* + mymylife.ru* + nofollow.ru* + pohudet.org* + uteacher.ru* + +diets.guru* + +hen-tai.ru* + +mainfun.ru* + +ojimail.ru* + +privsex.ru* + dom2so.ru* + feniyx.ru* + h-chan.me* + kurshe.ru* + onepdf.ru* + popcat.ru* + seksos.ru* + studon.ru* + sucior.ru* + +avfor.ru* + +diacr.ru* + +filmi.uz* +tvuz.ru08@R/news.js +ÿï08@R/newsru/banner. +,* + serial24.com08@R/output/index/ +Nÿï* +moya-planeta.ru* + +naukatv.ru* + doc-tv.ru08@R/partner-banner/ +` * + piratbit.fun* + piratbit.org* + piratbit.top* + pirat.one* +pb.wtf08@R /pibit.json +W* +crazyatomicgames.com* +yaldagames.com* + xxx-igra.com08@R/pic/background +B* +anidubonline.com* + +anidub.vip08@R/player/adload.png +6ÿï* +imasdk.googleapis.com08@R /player/vast. +5ÿï* + carrotblog.ru* + kidpuz.ru08@R/prime- +dÿï* +pornosvideo.info* +pornovkisku.com* +teplomontag.net* + pindosoff.net08@R /procode/ +]ÿï* +channel4it.com* + gordonua.com* + weukraine.tv* + +glavcom.ua08@R /pub/banners/ +Cÿï* + filmozavr.com* + filmozavr.net08@R/pwabuilder-sw.js +&ÿï* + ebooks.skin08@R/rek.js +/ÿï* +kino-hit-online.com08@R/reva.js +ÿï* +b17.ru08@R/rkl_ +%ÿï* + kirovnet.ru08@R/rklm/ +%* + noob-club.ru08@R/rover/ +<ÿï* + myzuka.club08@R/Scripts/jquery.rbtify.min.js +i* + rp5.co.nz* + rp5.co.uk* +rp5.am* +rp5.by* +rp5.kz* +rp5.md* +rp5.ru08@R/Scripts/rcs.js +4ÿï* +latifundist.com08@R/site/showbanner/ +7* +semestr.online* + +semestr.ru08@R /skin/edu +Bÿï* +vse-sto.com.ua* + gagadget.com08@R/static/banners/ +dÿï* + gorodkirov.ru* + auto43.ru* + +dom43.ru* + +job43.ru08@R/static/js/build/adidas.min.js +Kÿï* + sportliga.com* + banki.loans* +1sn.ru08@R/storage/banners/ +Lÿï* +new.fastpic.org* + fastpic.org08@R/store.everything.min.js +7* +porno-island.site08@R/style_code.php?sid= +4* +pornobomba.vip* + +pbembed.me08@R/sw.js +£€* +lostfilm.download* +lostfilmtv2.site* +lostfilmtv3.site* +lostfilmtv5.site* +lostfilmtv.site* +lostfilm.space* +lostfilm.today* +lostfilmtv.uno* + lostfilm.life* + lostfilm.one* + lostfilm.pro* + lostfilm.uno* + lostfilm.win* + lostfilm.tv* + lostfilm.tw08@R /temp/*.mp4 +¶* +breaking-bad-online.ru* +novospasskoe-city.ru* +online-south-park.ru* +online-futurama.ru* +online-simpsons.ru* +sambirmajdan.at.ua* +friends-online.me* +gardri.narod.ru* +math-helper.ru* + driveroff.net* + primecrime.ru* + queen-time.ru* + uniongang.net* + uniongang.org* + dh-online.ru* + gidonline.eu* + grimm-all.ru* + griffiny.ru* + kinogo.eu* + samlab.ws* + +lov16.ru* +pkrc.ru* +ucoz.ru* +x-16.ru08@R/u_*.js +¶ÿï* +planetaseminarov.ru* +velikiynovgorod.ru* +footballreview.ru* +newkaliningrad.ru* +actualcomment.ru* +officelife.media* +yantann.rbsmi.ru* +yanzori.rbsmi.ru* +baikal-daily.ru* +lipetskmedia.ru* +matchfishing.ru* +onlinetambov.ru* +arsenaltula.ru* +gubkinskiy.com* +mediaryazan.ru* +nmosktoday.com* +ohranatruda.ru* +rabochy-put.ru* +securitylab.ru* + agrostory.com* + automobili.ru* + cryptolymp.ru* + floraprice.ru* + newsroom24.ru* + avtosreda.ru* + it-weekly.ru* + marpravda.ru* + paparazzi.ru* + vt-inform.ru* + afanasy.biz* + infoniac.ru* + it-world.ru* + kluch.media* + mgazeta.com* + portamur.ru* + x-race.info* + zebra-tv.ru* + +bits.media* + +con-med.ru* + +dnl.com.ua* + +gorod48.ru* + +hsl.com.ua* + +kubnews.ru* + +mk.tula.ru* + +seonews.ru* + 62info.ru* + allcio.ru* + dnl.dn.ua* + i2hard.ru* + k1news.ru* + likeni.ru* + riavrn.ru* + ruwest.ru* + sochi.com* + ural56.ru* + vladtv.ru* + +asn24.ru* + +hi-fi.ru* + +innov.ru* + +mnmag.ru* + +mos.news* + +vdvsn.ru* +go64.ru* +trk7.ru* +tvk6.ru* +lgz.ru* +37.ru* +vn.ru* +zi.ua08@R /upload/rk/ +2ÿï* + volkovysk.by08@R/uploaded/banners/ +Rÿï* +imperia-of-hentai.biz* +imperia-of-hentai.net08@R/uploads/ad_inc/ +nÿï* + bloomchain.ru* + yummyanime.tv* + tripoli.land* + +ecology.md* + +jut-su.net08@R/uploads/banner/ +Tÿï* +gazetaby.media* + gazetaby.info* + gazetaby.com08@R/uploads/bunners/ +2ÿï08@R"/uploads/kinogo-smotret-online.jpg +2ÿï08@R"/uploads/smotret-onlayn-kinogo.jpg +.* + bigcinema.tv08@R/uploads/static/ +ì * +brazzers-hd.us* +id-storage.com* + pornfappy.com* + women-tv.com* + hentai-x.ru* + ruporus.biz* + ruporus.com* + ruporus.net* + ruporus.top* + ruporus.xyz* + +ruporus.cc* + +ruporus.tv* + stormo.tv* + +porus.ru08@R +/vast*php? +Kÿï* +1tv.ru08@R1/video/multibitrate/video/*Reklamnaja_shapka*.mp4 +Í * +rostovautosoundfest.ru* +csharpprogramming.ru* +roundrobin.sytes.net* +samogonvbarnaule.ru* +mercedesbenz124.ru* +comics-portal.com* +photo-boutique.ru* +viewapplegroup.ru* +all-russ-fish.ru* +hemingway-lib.ru* +pensioneram.info* +socialstudies.ru* +gamescontent.ru* +militaryexp.com* +computera.info* +la-greelyaj.ru* +pazavto2012.ru* +phortepiano.ru* +timeallnews.ru* +vesnikasert.ru* +windows-usb.ru* +xxx-russian.ru* + alibabaru.com* + applesmile.ru* + fishing-mr.ru* + gorodenok.com* + gotyfaster.ru* + granitauto.ru* + romanbook.net* + seeyoupage.ru* + thevidosss.ru* + turkey-tv.net* + agentnews.ru* + autohim42.ru* + ecosibiri.ru* + freeguard.ru* + funsuslik.ru* + india-tv.net* + kasrentyg.ru* + nashidni.org* + vsekratko.ru* + alkodoma.ru* + auto-kmu.ru* + avforums.ru* + avt-rost.ru* + blogspot.ru* + eset-key.ru* + fiat-vag.ru* + freezeet.ru* + gameruns.ru* + getmedic.ru* + hipermir.ru* + knighki.com* + mymylife.ru* + nofollow.ru* + pohudet.org* + uteacher.ru* + +diets.guru* + +hen-tai.ru* + +mainfun.ru* + +ojimail.ru* + +privsex.ru* + dom2so.ru* + feniyx.ru* + kurshe.ru* + onepdf.ru* + popcat.ru* + seksos.ru* + studon.ru* + sucior.ru* + +avfor.ru* + +diacr.ru* +tvuz.ru08@R/view.js +¿ * +rostovautosoundfest.ru* +csharpprogramming.ru* +roundrobin.sytes.net* +samogonvbarnaule.ru* +mercedesbenz124.ru* +comics-portal.com* +photo-boutique.ru* +viewapplegroup.ru* +all-russ-fish.ru* +hemingway-lib.ru* +pensioneram.info* +socialstudies.ru* +gamescontent.ru* +militaryexp.com* +computera.info* +la-greelyaj.ru* +pazavto2012.ru* +phortepiano.ru* +timeallnews.ru* +vesnikasert.ru* +windows-usb.ru* +xxx-russian.ru* + alibabaru.com* + applesmile.ru* + fishing-mr.ru* + gorodenok.com* + gotyfaster.ru* + granitauto.ru* + romanbook.net* + seeyoupage.ru* + thevidosss.ru* + turkey-tv.net* + agentnews.ru* + autohim42.ru* + ecosibiri.ru* + freeguard.ru* + funsuslik.ru* + india-tv.net* + kasrentyg.ru* + nashidni.org* + vsekratko.ru* + alkodoma.ru* + auto-kmu.ru* + avforums.ru* + avt-rost.ru* + blogspot.ru* + eset-key.ru* + fiat-vag.ru* + freezeet.ru* + gameruns.ru* + getmedic.ru* + hipermir.ru* + knighki.com* + mymylife.ru* + nofollow.ru* + pohudet.org* + +diets.guru* + +hen-tai.ru* + +mainfun.ru* + +ojimail.ru* + +privsex.ru* + dom2so.ru* + feniyx.ru* + kurshe.ru* + onepdf.ru* + popcat.ru* + seksos.ru* + studon.ru* + sucior.ru* + +avfor.ru* + +diacr.ru* +tvuz.ru08@R /viewc.js +Ü* +xn--80aaivjfyj3e.com* +economics.studio* +scicenter.online* +textbooks.studio* +uchebnikfree.com* +lawbook.online* +myzooplanet.ru* +psihologia.biz* + economuch.com* + lawbooks.news* + finbook.news* + medinfo.live* + pravo.studio* + all-sci.net* + provse.news* + sci-lib.biz* + +bib.social* + sci.house* + +lib.sale08@R +/widget.js +&ÿï* + pixcloud.ru08@R/wizit/ +<ÿï* +anypictures.ru* + screenpost.ru08@R /wiziter/ +:ÿï* +constitutionrf.ru* + stykrf.ru08@R/wnew.jsÛ' +© * +moy-instrument.ru* +pensioneram.info* +clubwindows.ru* + avtozakony.ru* + prizvanie.su* + mr-build.ru* + commix.ru* +vise.im08@R/wp-admin/admin-ajax.php +Ñÿï* +uroki-pitaniya.ru* +boleznikrovi.com* +sdelalremont.ru* +diabet-med.com* + alladvices.ru* + oprostatit.ru* + parazity.com* + rodinkam.net* + sustav.info08@R"/wp-content/plugins/custom-blocks/ +Pÿï* +kyivvlada.com.ua* +1.zt.ua08@R!/wp-content/plugins/smart-slider- +:ÿï* + +glaza.guru08@R/wp-content/plugins/wbounce/ +N* +uamotors.com.ua* + itechua.com08@R/wp-content/uploads/*-dpi_news +tÿï* +novosti24.kyiv.ua* +ua-novosti.info* +uapress.kyiv.ua* + news24.in.ua08@R/wp-content/uploads/*.mp4 +8* +vb.by08@R!/wp-content/uploads/*/elitstroj*. +5* +vb.by08@R/wp-content/uploads/*/kurery*. +1* +vb.by08@R/wp-content/uploads/*/med. +7ÿï* + +namba.kg* + +namba.tj08@R/www/base/*&cb= +)* + krossava.ru08@R /yandex.b.js +Ø* +xn--80aaivjfyj3e.com* +economics.studio* +scicenter.online* +textbooks.studio* +uchebnikfree.com* +lawbook.online* +myzooplanet.ru* +psihologia.biz* + economuch.com* + lawbooks.news* + finbook.news* + medinfo.live* + pravo.studio* + all-sci.net* + provse.news* + sci-lib.biz* + +bib.social* + sci.house* + +lib.sale08@R/z.js? +wÿï* +zagonkop.gb.net* +zagonkov.gb.net* + zagonka.net* + zagonko.org* + zogonka.org* + +zagonka.tv08@R/z.mp3 +3ÿï* + moskva.fm* + +piter.fm08@R +/zvooq.css +1ÿï08@R!=http%3A%2F%2Fazaza.torent-telik. +Eÿï* + mezha.media* + mychooz.com* +itc.ua08@R =js/api/w*.js +L * + kodikdb.com* + +aniqit.com* + +kodik.info* + +kodik.cc08@R?subid= ++ÿï* +uchi.ru08@R_banner&configs= +"* +igdz.ru08@R igdz1.ru^ +ž +* +xn----jtbkliccqarf.xn--p1ai* +russianporno911.ru* +slovoprosvity.org* +creativportal.ru* +every-holiday.ru* +newkavkaz.ipb.su* +nod32-key2017.ru* +pornotorrent.net* +respektkniga.com* +serialrussian.ru* +soft-portal.club* +gfsdgds.website* +krasakarpat.com* +platimzafoto.ru* +rustorrents.net* +srv11.tutupl.ru* +zvondrobyndl.ru* +1torrent-tv.ru* +cloudriverz.ru* +diabethelp.org* +enterologia.ru* +last2images.ru* +publicagent.ru* +xn--m1ah5a.net* +xtubeporno.net* + girlstop.info* + heliograph.ru* + kinobanda.net* + kinogo-hd.net* + limonasel.xyz* + monkeypxls.ru* + remake.net.ru* + vedmochka.net* + herbaldoc.ru* + hfufgdlkd.pw* + mega-pic.org* + monkeypxl.ru* + polochka.net* + popadenec.ru* + rapidzona.tv* + reebok-ru.ru* + smrtphone.ru* + carproff.ru* + cccp.ipb.su* + dsvload.net* + fotohood.ru* + free1img.ru* + kinomass.ru* + monkeypx.ru* + mp3sort.biz* + pxshares.ru* + relizer.net* + rogoff.club* + topvideo.tj* + woman365.ru* + yandex51.ru* + zebracc.xyz* + +dnvidov.ru* + +dolgoe.net* + +kinotut.tv* + +labudnu.ru* + +labzan.com* + +misseva.ru* + +monpxls.ru* + +moonpix.ru* + +wwxxxww.ru* + avcore.ru* + ee-mag.ru* + golkom.ru* + luxpic.ru* + namenu.ru* + wwmmw.xyz* + wwvvw.xyz* + wwxxww.ru* + xxpix.xyz* + xxzxx.xyz* + +dokak.ru* + +onlyf.tk* + +wwxww.ru08@Rhttp:// +R‚* +yangteacher.ru* + lider-as.ru* + +catcut.net* + traht.org08@Rhttp:// +"* +pics-images.ru* + 2img-2pic.ru* + kinoshek.net* + leporno.org* + +leporno.ws* + +pixxsee.ru* + imgbun.ru08@Rhttp:// +" * + spruto.tv08@Rhttp:// +008@R"http://*.com/img*_frontend_loader. +H08@R:http://*.info/wp-content/themes/Grimag/assets/js/custom.js ++* + newsvl.ru08@Rhttp://*/c.js?v= +M08@R?http://*boltai.com/wp-content/themes/Grimag/assets/js/custom.js ++ÿï* + mobzon.ru08@Rhttp://https// +<ÿï08@R,024.by/wp-content/themes/newsblue/*/reklama- +/ÿï08@R024.by/wp-content/uploads/*.mp4 +#* +zaqw.ru08@R +03-res.ru^ +&ÿï08@R0day.kiev.ua^*/lxslts. +ÿï08@R 0diet.ru/jsc/ +08@R +0gdz.ru/js +"ÿï08@R1000dosok.ru/banz/ +*ÿï08@R1000ukg.kz/uploads/banner/ +/ÿï08@R101.ru/static/js/library/mills/ +€08@R 101.ru^*smi +$08@R101kofemashina.ru/jura +%08@R101kofemashina.ru/krups +'08@R101kofemashina.ru/nivona/ +-ÿï08@R13min.ru/wp-content/*/popups/ +08@R 13rus.ru/*/ +ÿï08@R 13rus.ru/b/ +ÿï08@R 13rus.ru/bnr/ +ÿï08@R13rus.ru/img/*/ +'ÿï08@R13rus.ru/img/luhban.jpg ++ÿï08@R1777.ru/*/pages_scroll_fix. +08@R 17reg.ru^ ++08@R188.93.22.165/crossdomain.xml +ÿï08@R +1bshop.ru^ +ÿï08@R1in.am/banners/ +8ÿï08@R(1istochnik.ru/attachments/istochnik/bns/ +1ÿï08@R!1plus1.ua/widgets/idealmedia.html +6ÿï* +imasdk.googleapis.com08@R 1plus1.video^ +$ÿï08@R1tulatv.ru/img/*.gif +ÿï08@R1tulatv.ru/rek/ +1ÿï08@R!1tv.ru/www/v1/promo_place/_header + 08@R210fz.ru/*.php +-ÿï08@R21region.org/uploads/main/rb/ +-ÿï08@R21region.org/uploads/main/re/ +ÿï08@R24stoma.ru/rkm/ +08@R +2baksa.ws^ +>ÿï* + +2ch.life* +2ch.hk* +2ch.su08@R2ch.*/banners/ö +ÿï08@R2d.windows-8.ru +"ÿï08@R2gis.*/ads/advise/ +%ÿï08@R2ip.ua/images/keyweb. +1ÿï08@R!2ip.ua/images/support_ukraine.png +%ÿï08@R2ip.ua/images/war.png + ÿï08@R2krota.ru/rekla/ +$ÿï08@R2whois.ru/bannerbro/ +$ÿï08@R2x2.su/upload/banner +&08@R2x2tv.ru/images/bg/*.gif +"ÿï08@R365keys.ru/img/mg. + ÿï08@R37.ru^*/?bxrand= +)ÿï08@R38mama.ru/forum/images/*/ +,ÿï08@R3ddd.ru/media/images/banner/ +/ÿï08@R3ddd.ru/media/images/undefined/ +%ÿï08@R3dnews.*/admtdprx.php +$ÿï08@R3dnews.*/www/images/ +&ÿï08@R3dnews./*/ad/branding/ +-ÿï08@R3dtoday.ru/upload/media/*.gif +4ÿï08@R$3dtoday.ru/upload/medialibrary/*.png +08@R3iks.org/*.js? +ÿï08@R3mp3.ru/banner +"ÿï08@R3mp3.ru/dhtml/adv. +ÿï08@R 3mv.ru/oboi +-ÿï08@R3porosenka.ru/pic/loveplanet/ +(ÿï08@R3rdintern01.ru/app/bnrs/ +Zÿï* + gearshout.net08@R94548621445004054774f0039660873e9ae60d8fb.googledrive.com^ +%ÿï08@R46tv.ru/image/banner/ +%ÿï08@R4allforum.com/banner/ +08@R4fun.mksat.net/r/ +ÿï08@R4k-kino.net/kl/ +$08@R4pda.to/ad/www/images/ +"ÿï08@R4pda.to/er/*/m2?_= +'ÿï08@R4rama.com/images/strus/ +"ÿï08@R50.7.134.117/*.mp4 +-08@R50.7.134.117/ttv_omorp/vast.xml +"ÿï08@R5ka.ru/js/banners. +ÿï08@R 5ka.ru/jscr/ +#ÿï08@R5terka.com^*/img/bg +,ÿï08@R62info.ru/ajax/62banners.php +#ÿï08@R6barrel.com/img/bg- +#ÿï08@R73online.ru/advert/ +$ÿï08@R7days.ru^*files/adv/ +ÿï08@R 7ja.ru/imgb/ +%ÿï* +zr.ru08@R 7rlines.com^ +08@R7sl.ru/uploads/ +$ÿï08@R7themes.su/promo_res + ÿï08@R999.md/informer/ +8ÿï08@R(999.md/static/classic/assets/*/branding/ +<ÿï08@R,999.md/static/classic/assets/i/index-banner/ +7* + babyblog.ru08@Ra.babyblog.ru/get?banners= ++ÿï08@Ra.ecigtalk.ru/api/index.php +( 08@Ra.europaplus.ru^*/getCode? +ÿï08@Ra.kidstaff.net/ +$ÿï08@Ra.multik-online.net^ +$ 08@Ra.radio7.ru^*/getCode? + 08@R a.retrofm.ru/ +ÿï08@R a.sakh.com/a/ +!ÿï08@Ra.sakh.com/bm.php +ÿï08@Ra.sakh.name/a/ +"ÿï08@Ra.sakh.name/bm.php +ÿï08@R a.velvet.by^ +3ÿï* + +votpusk.ru08@Ra.votpusk.ru/show.php +ÿï08@Ra4.censor.net/ +(ÿï08@Raacalc.ru/images/*funpay† +'ÿï08@Raacalc.ru/images/Banner +'ÿï08@Rabc-people.com/banners/ +#ÿï08@Rabc.inoprosport.ru/ +ÿï08@Rabnews.ru/dog/ + ÿï08@Rabs.firstvds.ru^ +&08@Rabv-soft.ru/block_script +5ÿï08@R%abw.by/scripts/banner-observer.min.js +)ÿï08@Racc.cv.ua/images/acc_rek/ +&ÿï08@Racc.cv.ua/images/bimg/ +=ÿï08@R-aces.gg/templates/Aces/images/BGgeweu8m8s.jpg +/ÿï08@Ractualtraffic.ru/uploads/promo/ +I* + onlineguru.ru* + seasonvar.ru* + +peers.tv08@Rad.adriver.ru^ +ÿï08@Rad.babyblog.ru/ +ÿï08@Rad.cbonds.info/ +!ÿï08@Rad.cheatsbase.ru/ +ÿï08@R ad.f1cd.ru^ +"ÿï08@Rad.gothic-game.kz/ +!ÿï08@Rad.kino-teatr.ua/ +ÿï08@R ad.kinozal. +ÿï08@R ad.kinozaltv. +ÿï08@R ad.luxvaz.ru/ +"ÿï08@Rad.market4game.ru/ +ÿï08@R ad.topwar.ru/ +ÿï08@Rad.webnext.ru^ +(ÿï* + ut3mk.at.ua08@R admeo.ru^ +"08@Radmin-se.ru^*php? +2ÿï08@R"admin.nsp.ru/storage/html_banners/ +9ÿï08@R)admin.tenews.te.ua/plugins/galleryadvert/ +ÿï08@R ado.delfi.ee^ +'ÿï08@Rads-u.depositfiles.com/ +#08@Radult-images.ru^*.php +!08@Radultphotosets.net^ +#ÿï08@Radverman.*/banners/ +%08@Radvis.ru/upload/iblock/ +#ÿï08@Rafanasy.biz/banner/ +&ÿï08@Rafisha.tut.by/css/ext/ +$ÿï08@Ragentp.com.ua/banner +-08@Ragro-business.com.ua/*_adagency +4ÿï08@R$agro-ukraine.com/imgs/b-a-n-n-e-r-s/ +5ÿï08@R%agrognom.ru/wp-content/*/1ez1e.min.js +:08@R,agronom.com.ua/wp-content/uploads/*1200*1200 +,ÿï08@Ragronomy.com.ua/*/ad_agency/ +/ÿï08@Ragronomy.com.ua/*/slick-slider/ +*ÿï08@Ragronomy.com.ua/*_adagency +3ÿï08@R#agronomy.com.ua/images/pom_de_tere/ +>ÿï08@R.agronomy.com.ua/modules/mod_aikon_magic_popup/ +)ÿï08@Ragroreview.com^*1920x1080 +,ÿï08@Ragroxxi.ru/ajax/ajax_adagro. +#ÿï08@Ragsat.com.ua/beuty/ +08@Raida64.ru^*/amigo +ÿï08@Raii.su/banners/ +.ÿï08@Rais.com.ua/usersimage/banners/ +&ÿï08@Rakademekb.ru/loadinga/ +!ÿï08@Rakniga.org/ads.js +6ÿï08@R&aktobeinfo.kz/sites/default/files/swf/ +8ÿï08@R(alau.kz/wp-content/uploads/*/banner*.gif +(ÿï08@Ralcogolizm.com/wp-admin/ +)ÿï08@Raldebaran.ru/get_banners_ +'ÿï* + +mabook.org08@R aleba.ru^ +Bÿï08@R2alexdev.ru/wp-content/themes/alexdev/images/banner +(ÿï08@Ralexua.tv/projimg/brend/ +Sÿï* + tlc.ucoz.ae* + zhzh.com.ua* + zhzh.info* + +angla.su08@R alibaba.com^ +{ÿï* +prostolinux.ru* +vsaduidoma.com* + rutracker.ru* + smartbobr.ru* + +ru-an.info* + +savepic.ru08@R alicdn.com^ +Šÿï* +tvoipitomec.info* +tvoipitomec.com* +multrecept.com* + floradoma.com* + gadgetmir.org* + medickon.com08@Raliexpress.com^Ì +*ÿï* + chem21.info08@R aliimg.com^ +(ÿï08@Rallbasketball.org/*/pari +-ÿï08@Rallbasketball.org/bmpvvxgrht/ +'ÿï08@Rallbest.ru/img/*-bg.png +&ÿï08@Rallboxing.ru/brand.jpg +8ÿï08@R(allergiik.ru/wp-content/themes/flex-mag/ +(ÿï08@Rallforpeople.net/banner. ++ÿï08@Rallgosts.ru/theme/img/hmwk/ +%ÿï08@Rallinfo.kz/pic/media/ +*08@Rallmoldova.com/uimg/txtuimg/ +4ÿï08@R$allnetcorp.com/assets/libs/jwplayer/ +2ÿï08@R"allnetcorp.com/js/modules/banners/ +1ÿï08@R!alloha.tv/index.php?ref=*&domain= +!ÿï08@Rallrefrs.ru/imgr/ +ÿï08@Rallsat.biz/ban_ +4ÿï08@R$allsport-news.net/images/tennisspar. +'ÿï08@Ralogvinov.com/skinning_ +'ÿï08@Ralogvinov.com^*_top.jpg +,08@Raltai4u.com/wp-content/themes/ +2ÿï08@R"altgazeta.ru/modules/mod_bgbanner/ +,08@Ram.cdnmob.org/_/img/youtube-bg +‡ÿï* +e-bookua.org.ua* +sovetremont.com* +inform-ua.info* + 1istochnik.ru* + coinvesti.ru* + real-vin.com08@Ramazonaws.com^ +ÿï08@R amdm.ru/adv/ +?ÿï08@R/americandad.fox-fan.tv/images/fonRightBlock.jpg +#ÿï08@Ranadyr.org/banners/ + ÿï08@Randama.ru/bablo. +6* +android-club.ws08@Randroid-club.ws/*.php +4ÿï08@R$android-for-windows.ru/img/green.png +*ÿï08@Randroidinsider.ru/landing/ +5ÿï08@R%androidsmartfony.com/uploads/banners/ +%ÿï08@Ranekdot.ru/i/gallery/ +(ÿï08@Ranekdot.ru/upload/promo/ +08@Ranekdot.ru^*/bg/ +&08@Ranekdotov.net/show/sell/ +&€08@Rani-mania.com/files/ban +(ÿï08@Rani-mania.com/seo_anime_ +'ÿï08@Ranilibria.*/api/v*/ads/ +#ÿï08@Ranime-365.ru/promo/ +!ÿï08@Ranimechan.ru/fun/ +<ÿï08@R,animecos.ru/templates/animecos/images/cross. +08@Ranimecult.me/*.js +&ÿï08@Ranimedia.tv/img/promo/ +"ÿï08@Ranimedia.tv^*/bnr/ +,ÿï08@Ranimedub.ru/uploads/switips. ++ÿï08@Ranimegid.online/zpushhha.js +-ÿï08@Ranimejapan.tv/pic/background. +,ÿï08@Ranimemaga.ru/img/*_1000_120_ ++ÿï08@Ranimemaga.ru^*/blog/layers/ +<ÿï08@R,animemobi.ru/templates/animemobi/images/rek- +Gÿï08@R7animemobi.ru/templates/animemobi/js/jquery.rotator.list +.ÿï08@Ranimemovie.ru^*/images/naruto_ +#ÿï08@Ranimenfo.com/*/ads/ + 08@Ranimestars.ru/snow ++ÿï08@Raniplay.tv^*/images/banner. +5ÿï* + +hw-lab.com08@Rantec.com/*/web_banner/ +%08@Ranti-free.ru/pics/bonus +%ÿï08@Rantimaydan.info/js/bn +&ÿï08@Rantimaydan.info/js/rot +08@R antipix.ru^ +1ÿï08@R!antistarforce.com/lZlsVj4nFRQe.js + 08@Rantistarforce.com^ +"08@Ranypictures.ru^*.php + ÿï08@Rap.by/up/banner/ +ÿï08@R ap.delfi.ee^û +<* + +retrofm.ru* + radio7.ru08@Rapi-maps.yandex.ru^ +5ÿï08@R%api.1plus1.video/static/js/api.gpt.js +,ÿï08@Rapi.digitalaccess.ru/logger^ +%ÿï08@Rapi.yapfiles.ru/vast/ +5ÿï08@R%apitelesputnik.ru/storage/images/ads/ + 08@Raplik.ru/cdn-cgi/ +!ÿï08@Rapola.ru/solse.js +*ÿï08@Rapp-time.ru/uploads/brand/ +,08@Rappledecals.ru/static/banners/ +>ÿï08@R.appleinsider.ru/wp-content/*/home-credit-bank/ +:08@R,appleinsider.ru/wp-content/themes/*/branding +=ÿï08@R-apps24.org/images/2019/Android-Games-2019.jpg +9ÿï08@R)apps24.org/images/2019/yandex_browser.jpg +*ÿï08@Rappstorrent.ru/uploads/ad/ +&ÿï08@Rappstudio.org/banners/ +/ÿï* + +pulscen.ru08@Rapress-barmen.ru^ +&€08@Raqa.ru^*/moemgorod.html +%ÿï08@Raqock.com/*&aqock.com +.ÿï08@Raquafanat.com.ua/forum/iUshki/ +$ÿï08@Raramil.city/Banners/ +(ÿï08@Rarenda.az/public/banner/ +"ÿï08@Rarhivfailov.ru/ya. ++ÿï08@Rarigato.tv^*/images/footer_ ++ÿï08@Rarigato.tv^*/images/header_ +%ÿï08@Rarminfo.info/banners/ +'08@Rarmtorg.ru/uploads/shows/ +>ÿï08@R.armyinform.com.ua/wp-content/uploads/*/banner- +&ÿï08@Raromatmasla.ru/gaamjs/ +0ÿï08@R aromatmasla.ru/scripts/zamven.js +7ÿï08@R'aromatmasla.ru/vk-vs-pl/ya-wsplivayu.js +$ÿï08@Rarsenaltula.ru/2GIS_ +<ÿï08@R,arsenaltula.ru/upload/medialibrary/*/banner_ +-ÿï08@Rartofcare.ru/files/images/bs/ +/ÿï08@Rartofcare.ru/files/images/club/ +*ÿï08@Rarz-biz.ru/images/banners/ +ÿï08@R aser.pro/ad. +(ÿï08@Rasiaplustj.info/adfiles? +,ÿï08@Rasiapoisk.com/images/banner/ +08@Rasr.dotua.org^ ++ÿï08@Rassessor.ru/*/wgt-loader.js +'ÿï08@Rastrolibra.com/*.php?g= +708@R)astromeridian.ru/assets/images/*/*/brend. +6ÿï08@R&astromeridian.ru/assets/images/*banner +8÷ï08@R(astromeridian.ru/assets/images/reklama2/ +#ÿï08@Rasuma.ru/admachina/ +!ÿï08@Ratavi.com/advert/ +08@Rathlete.ru/pic/ +0ÿï08@R audiopoisk.narod.ru/alexsoft.swf +*ÿï* + +litsoch.ru08@R author24.ru^ +4ÿï08@R$auto.ria.com/images/branding/banner/ +-ÿï08@Rauto.ru/wwwboards/img/banner_ +)ÿï08@Rauto62rus.ru/img/Mnogo3D. +%ÿï08@Rautogener.ru/img/abp/ +&ÿï08@Rautogrodno.by/banners/ +2ÿï08@R"autoinfo24.ru/upload/images/banner +*ÿï08@Rautolada.ru/images/banner/ +*ÿï08@Rautomobili.ru/html5advert/ +*08@Rautomoto.ua/uploads/*/banner +%ÿï08@Rautomoto.ua^*etachki/ +'ÿï08@Rautoreview.ru/_special/ +0ÿï08@R autosport.com.ru/files/partners/ +8ÿï08@R(autostat.ru/application/includes/visban/ +%ÿï08@Rav.by/imag*/branding/ ++ÿï08@Ravata.ru/images/240x400.pngÛ +$ÿï08@Ravata.ru/windows.gif +Cÿï* +abw.by08@R)avatars.mds.yandex.net/get-adfox-content/ +08@Ravcore.ru^*.php? +)ÿï08@Ravensis-club.ru/images/R/ +ÿï08@R aviafly.ru/js +ÿï08@Ravianews.ru/c/? +3ÿï* + newrbk.ru08@Raviasales.ru/partners/ +!ÿï08@Ravtoradio.ru/smi2 +1ÿï08@R!avtoradio.ua/uploads/advertising/ +,ÿï08@Ravtoradio.ua/uploads/slider/ +&ÿï08@Ravtosale.ua/img/adDiv/ +A* +avtoudostoverenie.ru08@Ravtoudostoverenie.ru/_*.php +"08@Ravtozakony.ru/*.php? +.ÿï* + forum.awd.ru08@Rawd.is/banner/ +,ÿï08@Razbukadiet.ru/dinamic-baner/ +,ÿï08@Razbukadiet.ru^*/underbanner/ +)ÿï08@Rb-port.com/html5-banners/ +.ÿï08@Rb-port.com/mediafiles/banners/ +'08@Rb.fotos.ua/check_place.js +7ÿï* +b.frida.vse42.ru08@Rb.frida.vse42.ru/ +ÿï08@R b.netall.ru^ +&ÿï08@Rb.penzainform.ru/*.gif +#ÿï08@Rb13.penzainform.ru/ +%ÿï08@Rba.ts.kg/ba/async.php +#08@Rbabla.ru/pic/*_banner +!08@Rbabysaratov.ru/img/ +/ÿï08@Rbackend.opogame.com/stats/view/ +ÿï08@Rbaibako.tv/bg/ +9ÿï08@R)baibako.tv/themes/2014/js/bkotv-master.js +08@Rbaikal24.ru/*.swf + ÿï08@Rbaku.ws/banners/ +"ÿï08@Rbalakhna.ru/firms/ +'ÿï08@Rbalakhna.ru/kvadratiki/ +08@Rbalancervideo.ru^ +ÿï08@R ban.zab.ru/ +3ÿï08@R#bankcomat.org/res/bankomat/banners/ +."08@R banki.ru/ng/api/*/public/banners +$ÿï08@Rbanner.kaktus.media/ +!ÿï08@Rbanner.lbs.km.ru^ +#ÿï08@Rbanner.osp-ua.info^ +%ÿï08@Rbanner.volynnews.com/ +"ÿï08@Rbanners.haqqin.az/ +"ÿï08@Rbanners.locals.md/ +&ÿï08@Rbanners.orangeapps.ru/ +"ÿï08@Rbanners.prikol.ru/ +#ÿï08@Rbanners.russian.fi/ +"ÿï08@Rbanners.turizm.ru/ +'ÿï08@Rbanners2.orangeapps.ru/ +%ÿï08@Rbanshop.gruntovik.ru/ +'ÿï08@Rbase.namba.kg/www/base/ +ÿï08@Rbash.im/_sq.php +2ÿï08@R"bashskazki.ru/assets/images/tudyt/ +=ÿï08@R-bashskazki.ru/assets/modules/easyadvertising/ +ÿï08@R batpic.com/p/ +0ÿï08@R bazonserver.site/bazon/index.xml +3ÿï08@R#bazr.ru/videocontent/global/banner/ +ÿï08@Rbb.lv/js/gam.js +ÿï08@R bb.pln24.ru/ ++ÿï08@Rbbcont.ru/avtorealnost.html +&ÿï08@Rbddo.ru/uploads/*_ban_ +ÿï08@Rbelobmen.ru/go? +&ÿï08@Rberkat.ru/upload/*.gif +-ÿï08@Rbestchange.ru/images/banners/ +(ÿï08@Rbestreferat.ru/images/a/ +*ÿï08@Rbestweapon.*/images/banner +Eÿï08@R5bez-smenki.ru/wp-content/plugins/brave-popup-builder/ +Jÿï08@R:bez-smenki.ru/wp-content/themes/bezsmenki-theme/ban-bloks/ +"ÿï08@Rbeznal.cc/banners/ +/ÿï08@Rbezprovodoff.com/popup/popup.js +,ÿï08@Rbiathlon.ru/images/sp*/*.jpg +$08@Rbibliotekar.ru^*banner +%08@Rbibliotekar.ru^*rotator +5* +audioz.download* + watcheng.com08@Rbid^ +-ÿï08@Rbidbaits.ru/uploads/commerce/ +08@Rbig.az/banner/ +#ÿï08@Rbigbangtv.ru/bbt.js +-ÿï08@Rbigcinema.tv/uploads/partner/ +Tÿï08@RDbigkyiv.com.ua/wp-content/plugins/firebox/media/public/js/firebox.js +.ÿï08@Rbikepost.ru/plugins/banneroid/ +$ÿï08@Rbiofile.ru/css/*.jpg +0ÿï08@R biomolecula.ru/media/bnr-images/ +708@R)bisnesideya.ru/wp-content/uploads*/banner +,ÿï08@Rbit-torrent.kiev.ua/rekl.php +&ÿï08@Rbiweed.com^*/yutex240_ +%ÿï08@Rbizarre.kiev.ua*/ban/ +*08@Rbiznesguide.ru/images/banner +'ÿï08@Rbkn.ru/content/banners/ + ÿï08@Rblablacar.d3.ru^ +)ÿï08@Rblitz.if.ua/local/banner/ +-ÿï08@Rblizzardheroes.ru/img/1x*.jpg +%ÿï08@Rblogoreader.org.ua/b/ +,ÿï08@Rbm.img.com.ua/a/video/img/br +%ÿï08@Rbm.img.com.ua/widget/ +ÿï08@Rbn.sarov.info^ +#ÿï08@Rbn.take-profit.org/ +'08@Rbnkirov.ru/files2/banner/ +&08@Rbnkirov.ru/files2/brand/ +(ÿï08@Rbnkomi.ru/content/bnimg/ +"ÿï08@Rbnkomi.ru/rklm-sh/ +)ÿï08@Rbnr.zagorod.spb.ru/banner +ÿï08@Rbns.bluesystem. +/ÿï08@Rbogistina.info/skidki-i-kupony/ +608@R(bogmedia.org/contents/other/player/*big. +)ÿï08@Rboltai.com/?*&action=load +/ÿï08@Rbombardir.ru/ajax/getbannercode +&ÿï08@Rbombardir.ru/rest/ads/ + ÿï08@Rboo.samara24.ru^ + 08@Rbookini.ru/js/*.js +%ÿï08@Rbookskeeper.ru/promo/ +08@R bookz.ru/tpl/ + ÿï08@Rboom.pdanew.com^ +5ÿï* +dtf.ru* +vc.ru08@Rbooster.osnova.io^ + ÿï08@Rboosterrock.com^ +*ÿï08@Rbos.bz/assets/php/banners/ +=ÿï08@R-botanam.net/wp-content/themes/reshebnik/*.swf +$08@Rbouncekitchen.ru^*.php +(ÿï08@Rbountyporn.com/7c24c1.js +ÿï08@R br.kcdn.kz^ +(ÿï08@Rbragazeta.ru/*/*-banner- + 08@Rbratsk.org/banners +)ÿï08@Rbratsk.org/files/b_right/ +$ÿï08@Rbrd24.com/up/banner/ +08@Rbrd24.com/up/rk/ +ÿï08@Rbrekl.wigeo.ru/ ++ÿï08@Rbrowserss.ru/images/Banner_ +"ÿï08@Rbrzrs.pro/sss/lin/ +,ÿï08@Rbst.bratsk.ru/api/getBanner_ +#ÿï08@Rbtz.onlinekanal.ru/¢ +#ÿï08@Rbudilki.ru/inf*.php +‡ÿï08@Rwbudport.com.ua/assets/upload/userfiles/*%D0%B1%D1%80%D0%B5%D0%BD%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_ +?ÿï08@R/budport.com.ua/assets/upload/userfiles/_119.jpg +Dÿï08@R4budport.com.ua/assets/upload/userfiles/fkr-118_1.jpg +?ÿï08@R/budport.com.ua/assets/upload/userfiles/mm-5.jpg +@ÿï08@R0budport.com.ua/assets/upload/userfiles/pn-11.jpg +%ÿï08@Rbugaga.ru^*/brand.jpg +ÿï08@Rbugaga.tut.by^ +508@R'buhoblik.org.ua/images/banners/*/banner +'ÿï08@Rbuhonline.ru^*/banners. +0ÿï08@R buhonline.ru^*/lazy-side-banner. +5€* + 3dnews.kz* + 3dnews.ru08@R bumaikr.com^ + 08@Rburdastyle.ru/aff/ +1ÿï08@R!business-class.su/uploads/rennab/ +<08@R.business-poisk.com/wp-content/uploads^*/banner +&ÿï08@Rbusinessman.ru/widget. +#ÿï08@Rbuzines.net/banner/ +08@R bw.myjob.by^ ++ÿï08@Rbycard.by/uploads/branding/ +-ÿï08@Rc-inform.info/images/*banner/ +%ÿï08@Rc.hqq.tv/js/betterjs/ +-ÿï* +leroymerlin-jeb.ru08@Rc5l.ru^ +5ÿï* +globaldrive.ru08@Rcallbackkiller.com^ +-ÿï08@Rcallonline.ru/images/banners/ +6ÿï08@R&carambis.ru/static/new/programs/promo/ +0ÿï08@R cargolider.ru/templ_files/banner +)ÿï08@Rcars.kg/banner/multishow/ +( 08@Rcda.pl/xml_pool/*pool*.php +"08@Rcdn.anison.fm/images +=ÿï* + +banki.ru08@R!cdn.banki.ru/*/widget-calculators +-ÿï08@Rcdn.botanichka.ru/pics/brand/ +3ÿï08@R#cdn.gravitec.net/styles/unbloc*.png +2ÿï08@R"cdn.hsmedia.ru/dist/maxim/Product. +@08@R2cdn.hsmedia.ru/scrooge-client/hsm-creative-manager +5ÿï08@R%cdn.liveball.space/public/img/overlay +#€08@Rcdn.livetv*.me/html/ +"€08@Rcdn.livetv*.me/tmp/ +&08@Rcdn.muzofon.tech/banner/ +$ÿï08@Rcdn.net.ru/config.js +! 08@Rcdn.pljs.ru/*/*.xml + 08@R cdn.pljs.ru/b +`ÿï* + kg-portal.ru* + fontanka.ru* + +newsru.com* + +zahav.ru08@Rcdn.taboola.com/libtrc/ +Fÿï08@R6cdn.taboola.com/libtrc/disqus-russia-network/loader.js +/ÿï08@Rcdn.viqeo.tv/*/vq_fly_widget.js +Œÿï* +teleprogramma.org* +liveinternet.ru* + solenka.info* + russian7.ru* + spletnik.ru* + +pay-day.ru* +baby.ru08@R cdn.viqeo.tv^ +08@Rcdnbalancer.ru^ +Ñÿï* +fast-torrent.club* +fast-torrent.ru* +fast-torrent.su* + fast-fiml.ru* + filmpotok.ru* + kinomuch.ru* + pickfilm.ru* + +nebeda.net* + veleto.ru* + +vixim.ru08@R!cdnbase.com/media/files/*-240.jpg +!ÿï08@Rcdngate.org/vast/ +08@Rcdnstream1.ru^ +*ÿï08@Rcenter-dm.ru/img/js/adb.js +08@R +center.bz^ +08@Rcenter4.me^*.php +,08@Rcentoroy.okis.ru/files/*banner +'ÿï08@Rcfts.org.ua/_i/banners/ ++ÿï08@Rchanger.com/graphics/12.png ++ÿï08@Rcharter97.org/img/partners/ +.08@R check-host.net/images/ddos-guard +08@R cheklab.ru^ +3ÿï08@R#chelny-izvest.ru/images/uploads/ad/ +9ÿï08@R)chelnyclub.ru/images/maket/*_svobodno.jpg +%ÿï08@Rchemport.ru^*_994x90. +*ÿï08@Rchepetsk.ru/media-banners/ +7ÿï* +risk.ru08@Rcherehapa.ru^*/widget.min.js +=08@R/cherkassy-sport.com/wp-content/uploads/*/maket-² +2ÿï08@R"chesalka.com/jquery.simplemodal.js +%ÿï08@Rchesspro.ru/_banners/ +%08@Rchina-iphone.ru/images/ +?ÿï08@R/china-review.com.ua/templates/new/img/branding/ +"ÿï08@Rchinphone.info/go? +ÿï08@Rchipfind.ru/b/ +ÿï08@R chita.ru/jet/ +.ÿï08@Rchronicles.pro/images/banners/ ++08@Rchtoby-pravilno.ru/go/test.js +'ÿï08@Rchuvashia.com/partners/ +ÿï08@Rcidwo.com/drd/ +ÿï08@Rcitforum.ru/a/ + ÿï08@Rcitydog.by//bnr/ +#ÿï08@Rcitydog.by/banners/ +ÿï08@Rcitydog.by/bnr/ +'ÿï08@Rcitysites.ua^*/jackets/ +ÿï08@Rckyka.ru/obzor/ +08@Rcloud.*rutor.org/ +g* +playvideolink.com* +playreplay.net* +videochart.net* + moevideo.net08@Rcloud.tvigle.ru^ +<ÿï08@R,cloudfront.net/partner-code/loaders/context_ +Îÿï* +raidcall.com.ru* +abc-people.com* + online-fix.me* + raidcall.com* + debfile.com* + leporno.org* + +ilenta.com* + +windata.ru* + 5litra.ru* + cima4u.tv* +nowa.cc* +thg.ru08@Rcloudfront.net^ +,ÿï08@Rcloudstatic.eva.ru^*/banner/ ++ÿï08@Rclub.foto.ru/images/banner/ +7"* +kot-i-koshka.ru* + kino-teatr.ua08@Rclub^ +,ÿï08@Rclubfile.net/files/*_banner_ +2ÿï08@R"clubfile.net/themes/jobs/i/*_*.jpg +&ÿï08@Rclubsexa.com/sopero.js +0ÿï08@R clusterdelta.com/portal/stf.html +.ÿï08@Rcms.sovsport.prod.plat.agency/ +ÿï08@R cnb.cnews.ru^ +#ÿï08@Rcoads.akipress.org^ +;* + kolesa.kz08@R code-br.kcdn.kz/js/client.min.js +7ÿï* +ling-online.net* + engvideo.net08@Rcom/ +ÿï08@R comadv.vz.ru/ +/ÿï08@Rcomfysoft.ru/images/programmes/ +008@R"comics-online.ru/mangaonlinebanner +$ÿï08@Rcomicsbook.ru/promo/ +%ÿï08@Rcomments.bot/api/rtp/ +'ÿï08@Rcomments.ua/_abc_image/ +*08@Rcomnews.ru/ds_comnews/files/ +1ÿï08@R!comnews.ru/ds_comnews/img_object/ +8ÿï08@R(comnews.ru/ds_comnews/img_pictures/*.gif +(ÿï08@Rcompanion.ua/www/images/ +3ÿï08@R#compare-static.primpogoda.ru/tag.js +/ÿï* +kopilkaurokov.ru08@R compedu.ru^ +$ÿï08@Rconsmed.ru/branding/ +$ÿï08@Rconsmed.ru/tizergen/ + 08@Rcont.ws/js/*.js?c= +1ÿï08@R!conversion.im/admin/ajax/banners/ +/ÿï08@Rconversion.im/storage/images/b/ +,ÿï* + +adme.media08@Rcookielaw.org^ +€08@Rcookreactor.com^ +&ÿï08@Rcool-archive.ru/*_adv. +&ÿï08@Rcoolinbox.ru/suprenta/ +08@Rcopypast.ru/re*/ +$ÿï08@Rcopyright.ru*/?file= +0ÿï08@R cosplay-porn.*/front/js/all_a.js +3ÿï08@R#cosplay-porn.*/front/js/unwanted.js +3ÿï08@R#cpainform.ru/uploads/images/banner/ +2ÿï08@R"cpainform.ru/uploads/images/promo/ +/08@R!cpasee.com/styles/default/banner/ +,ÿï08@Rcq-esports.com/media/bookie/ + 08@R cq.ru/cq67er +ÿï08@R cqham.ru/ad/ñ +#ÿï08@Rcqham.ru/at_banner_ + ÿï08@Rcqham.ru/atk.gif +"ÿï08@Rcqham.ru/forum/ad/ +3ÿï08@R#crackstatus.net/data/advertisement/ +6* +crimezone.in.ua08@Rcrimezone.in.ua/*.php +,ÿï08@Rcrmonline.ru/images/banners/ +>ÿï08@R.csgamer.ru/wp-content/uploads/*/ckikencsgo.jpg +#ÿï08@Rctv7.ru/bns-manual/ +ÿï08@R ctv7.ru/bns/ +5ÿï08@R%cxem.net/cache/index_in_articles.json +ÿï08@Rcxid.info/bcx/ +$ÿï08@Rcy-pr.com/images/rk/ +,ÿï08@Rcy-pr.com/images/stat/tr.png +$ÿï08@Rcy-pr.com/images/tr/ +)ÿï08@Rcyberforum.ru/images/ads/ +/ÿï08@Rcyberscore.live/images/partner- +-ÿï08@Rcybersport.ru/api/bookmakers? +0ÿï08@R cybersport.ru/assets/img/*banner +=ÿï08@R-cyberstatic.net/clientscript/edu/prtnrsWidget +.ÿï08@Rd2wl3qmk54t3ha.cloudfront.net^ +ÿï08@Rda.advooble.kz/ +.* + rus-atlas.ru08@Rda.rus-atlas.ru^ +ÿï08@Rda.rus-map.ru/ +$ÿï08@Rdailycomm.ru/i/*ban_ +1ÿï08@R!dailyhoro.ru/static/news-content/ +ÿï08@R dante.vl.ru^ +!ÿï08@Rdata.urod.ru/din_ +&ÿï08@Rdata.zanoza.kg/banner/ +%ÿï08@Rdatalock.ru/ram/myad/ +7ÿï* + seasonvar.ru08@Rdatalock.ru^*player.swf +)ÿï* +pornoblydstvo.ru08@Rdate^ +/ÿï08@Rdating.trans-admirer.com/promo/ +ÿï08@R day.az/ads/ +/ÿï08@Rdebilizator.tv/static/ab.min.js +$ÿï08@Rdelivery.bannerd.ru^ +408@R&delo.ua/skin/img/project/brialding/*bg +#ÿï08@Rdelo.ua^*/branding/ +)ÿï08@Rdelovoibiysk.ru/images/b/ ++08@Rdelovoigorod.ru/images/loader +0ÿï08@R delovoigorod.ru/writable/images/ +%ÿï08@Rdelovoymir.biz/*/bnmd +%08@Rdelovoymir.biz/*_bg.jpg +4ÿï08@R$delphisources.ru/pages/scripts/recl_ +%ÿï08@Rdemo.gipergidroz.net/ +(ÿï08@Rdemotivation.me/banners/ +0ÿï* + alexbruni.ru08@Rdental-paint.ru^ +/ÿï08@Rdepositfiles.com/images/zillya/ +5ÿï08@R%dermatitanet.ru/template/js/script.js +,08@Rdesign-for.net/uploads/banner/ +,ÿï* + mignews.com08@R detaly.co.il^ +4ÿï* + +rootden.ru08@Rdgrad-host.com/banner. +.ÿï08@Rdiary.ru^*/diaryDefault728x90. +%ÿï08@Rdid5.ru/images/banner +'ÿï08@Rdiets.guru/js/fixads.js +"ÿï08@Rdiets.guru/teaser/ +ÿï08@Rdiets.ru/i/rb/ + ÿï08@Rdigiboo.ru/bnrs/ +Bÿï* +keysportal.com* +kluchikipro.ru08@Rdigiseller.ru^ +ÿï08@Rdir.dok911.ru/ +ÿï08@R dir.wigeo.ru/ +"ÿï08@Rdivan-tut.ru/promo +&ÿï08@Rdixinews.ru/up/banner/ +Gÿï08@R7dizelyator.ru/templates/default/js/shaitan_functions.js +"ÿï08@Rdjrogoff.ru/img/r_é +ÿï08@Rdleshka.org/go/ +$ÿï08@Rdlstatic.ru/panners/ +ÿï08@R dltv.org/b/ +)ÿï08@Rdltv.org/uploads/banners/ +(ÿï08@Rdndz.tv/image_add/firms/ +"ÿï08@Rdnepr.info/*banner + ÿï08@Rdnvidov.ru/ajax/ + ÿï08@Rdnvidov.ru/news/ +&08@Rdoc-suvorov.narod.ru/200 +'ÿï08@Rdocplayer.ru/cloud/ads/ +"ÿï08@Rdofiga.net^*/trade ++ÿï08@Rdokonlin.ru.com/js-connect- +>ÿï* +forum.domik.ua08@Rdomik.ua/*/region-banners/ + ÿï08@Rdomkino.kz/os.js +%ÿï08@Rdomovita.by/js/adfox/ +'ÿï08@Rdomsnov.ru/underbanner/ +"ÿï08@Rdomsovetof.ru/kan/ +'ÿï08@Rdontr.ru/upload/Banner/ +.ÿï08@Rdostfilms.*/UnderClickSuper.js +-08@Rdostfilms.*/uploads/background/ + ÿï08@Rdotaguide.ru/go/ +$ÿï08@Rdotaguide.ru/img/bk/ +!ÿï08@Rdotaguide.ru/mt4/ +3ÿï08@R#dprealty.ru/iframe/property4scroll/ +&08@Rdrive.ru/images/branding +&ÿï08@Rdrive.ru/images/promo/ +'ÿï08@Rdrive.ru/js/async_af.js +.ÿï08@Rdrive.ru/js/recommendations.js +,ÿï08@Rdrive.ru^*/loadfeedbackpromo +$ÿï08@Rdrive2.ru/_api/drom/ +*ÿï08@Rdriveroff.net/driveroff.js +$ÿï08@Rdrochunov.net/pic/a/ +%ÿï* + drive2.ru08@Rdrom.ru^ +)ÿï08@Rdrumandbass.ru/img*banner +ÿï08@R dt00.net/gjs/ +.ÿï08@Rdubflix.ru/images/games/brend/ +$ÿï08@Rdublikat.one/banner/ +<ÿï08@R,dumka.poltava.ua/wp-content/uploads/*/baner- +!ÿï08@Rdumkare.ru/bnr18/ +08@Rdumkare.ru^*.php +.ÿï08@Rdump.ru/player_vip_closeAdvert +$ÿï08@Rdumskaya.net/banner/ +.ÿï08@Rdumskaya.net/files/bannerfile_ +"ÿï08@Rdverizamki.org/bs/ +(ÿï08@Rdverizamki.org/pictures/ +)ÿï08@Rdw-informer-w.newsru.com/ +ÿï08@Rdwg.ru/imgnew/ +ÿï08@R dwg.ru/imnew/ +-08@Rdyncdn.me/static/*/js/expla*.js +<ÿï08@R,dyvys.info/wp-content/plugins/random-banner/ +Aÿï08@R1e-flash.com.ua/templates/historylost/images/demo/ +$ÿï08@Re-ink-reader.ru/adb/ ++ÿï08@Re-libra.ru/modules/*offers/ +08@Readaily.com/i/ad/ +ÿï08@Reasytrack.pro/ +208@R$echomsk.static-storage.net/**&block= +0ÿï08@R echomsk.static-storage.net/**.js +*€08@Rechomsk.static-storage.net^ +* 08@Rechosevera.ru/dynamic/banner +!08@Recosibiri.ru/banner +ÿï08@Redstak.com/ppc/ +&ÿï08@Reducation.ua/upload/b/ +'ÿï08@Redufuture.biz/brending/ +:ÿï08@R*edunews.ru/netcat_template/css/flipper.cssˆ +/ÿï08@Regida.by/js/site_news_target.js +%ÿï08@Rekamedicina.ru/files/ + 08@Rekaraganda.kz/ads/ +$08@Rekaraganda.kz^*banner/ +&ÿï08@Relbruso.ru/js_content/ +ÿï08@R elec.ru/bs/ + ÿï08@Relec.ru/clients/ +)08@Relectricvdele.ru^*/yadblock +(ÿï08@Relectrodance.org/slider/ +=ÿï08@R-elektrikexpert.ru/wp-content/themes/flex-mag/ +(ÿï08@Remidon.joytu.ru/*123*.js +)ÿï08@Remidon.joytu.ru/branding. +'ÿï08@Remuplanet.ru/images/bb/ +%ÿï08@Remusic.me/images/980_ +*€08@Renergiyacosmosa.newbb.ru/tn +#ÿï08@Rengine.24gadget.ru/ +,ÿï* + globuslife.ru08@R envybox.io^ +!ÿï08@Repidemz.net/bank/ +Aÿï08@R1eponesh.com/files/gs/scrg/hsm-creative-manager.js +"08@Reragun.org/js/ae*.js +!ÿï08@Reralady.ru/ads.js ++ÿï08@Rero-top.info/uploads/banner +)* + ero.mota.ru08@R ero.mota.ru^ +"ÿï08@Rerolub.com/js95ad/ +3ÿï08@R#eshzdorovo.ru/scripts/admin-file.js +5ÿï08@R%eshzdorovo.ru/scripts/gaeshzdorovo.js +/ÿï08@Reshzdorovo.ru/scripts/zamven.js +@ÿï08@R0eshzdorovo.ru/wp-content/plugins/kama-postviews/ +Aÿï08@R1eshzdorovo.ru/zdorpit-folder/zdor-w-splivashka.js +"08@Resli-uvolen.ru^*.php +(08@Retalongame.com/proxy.php?r +-ÿï08@Retc-com.ru/bitrix/*/includes/ +'ÿï08@Reurolab.ua/backgrounds/ + ÿï08@Rexdex.ru/img/ab/ + +08@Rexler.ru^*/banner + +08@Rexler.ru^*/promo +,ÿï08@Rexoticvideo.net/js/8e254b.js +(ÿï08@Rexoticvideo.net^*/promo. +&ÿï08@Rexperttur.com/baraban/ +&ÿï08@Rexploit.in/materials_/ +%ÿï08@Rext.kuraj-serials.ru/ ++ÿï* + +kvadrat.ru08@R eyenewton.ru^ +0ÿï* +astromeridian.ru08@R ezochat.com^ + ÿï08@Rf.mega-porno.tv^ +#ÿï08@Rfactroom.ru/brands/ +(ÿï08@Rfairtop.in/image/upload/ +!ÿï08@Rfakty.ua/js/_d.js +%ÿï08@Rfans-fcsm.ru/block.js +/ÿï08@Rfap-guru.*/front/js/unwanted.js +#€08@Rfapl.ru/upload/fapl_ +&ÿï08@Rfaspiic.ru/js/go_re.js +08@Rfastpic.org/view/ +08@R fastpicc.ru^ +0ÿï08@R fatalgame.com/content/js/andfox. +*ÿï08@Rfayllar1.ru/player/preroll +(08@Rfbc.ua/wp-content/*/banner +%ÿï08@Rfbr.info/fbimage.php? +&ÿï08@Rfc-amkar.org/images/b/ +0ÿï08@R fc-mordovia.ru/img/b/1fnl-olymp. +08@Rfcdesna.3dn.ru^ +%ÿï08@Rfcenter.ru/images/b1/ + ÿï08@Rfclmnews.ru/_bk/ +-ÿï08@Rfcpug.ru/upload/medialibrary/ +/ÿï08@Rfelomena.com^*/sliding-block.js� +)ÿï08@Rfenzin.org/images/litres_ +(08@Rfergananews.com/js/banner_ +%ÿï08@Rfex.net^*/sharij-ads- +ÿï08@R ff.astv.ru^ +?ÿï* + fishingsib.ru* + +hunting.ru08@Rfhserv.ru/files/ +%ÿï08@Rfiat-avtocity.ru/swf/ +'ÿï08@Rfiat-vag.ru/comebacker/ +$08@Rfiles.vse.kz/branding/ +!ÿï08@Rfilmix.*/vast_fx. +0ÿï08@R filmozavr.com/static/background. +,ÿï08@Rfilmozavr.com/static/casino/ +<ÿï08@R,filmozavr.com/static/js/popUpBottomCorner.js +-€* +fragrantica.ru08@R fimgs.net/a/ +>ÿï08@R.finam.ru/net/imageheap/widget/*/logo-finam.png +(ÿï08@Rfinance.ua/*/commercial/ +.* + finbazis.ru08@Rfinbazis.ru^*.php +)ÿï08@Rfinnews.ru^*&img=banners/ +'ÿï08@Rfion.ru/files/banners2/ +&ÿï08@Rfion.ru/files/vitrina/ +&ÿï08@Rfishki.net/someaction/ +%ÿï08@Rfishnet.ru^*/banners/ +&ÿï08@Rfix-pix.ru/rotator.php +(ÿï08@Rflagma.ua/upload/banner/ +/ÿï08@Rflashboot.ru/plugins/banneroid/ +)ÿï08@Rflashboot.ru/uploads/bnr/ ++ÿï08@Rflasher.ru/data/images/swf/ +<* +flashplayer.org.ua08@Rflashplayer.org.ua^*.php +(ÿï08@Rflashplayer.ru/stopvideo ++ÿï08@Rflibusta.site/caa/script.js +'ÿï08@Rfloomby.ru/files/flash/ +#ÿï08@Rfloradoma.com/h1.js +'ÿï08@Rfloradoma.com/recent.js +#ÿï08@Rfloraprice.ru/bnrs/ +  08@Rflowtation.ru/jsc/ +-ÿï08@Rfluence-club.ru/forum^*banner +%ÿï08@Rfn-volga.ru/*/banner/ +#ÿï08@Rfn-volga.ru/banners +"ÿï08@Rfnkimages.net/geo_ +"ÿï08@Rfnvolga.ru/banners +(ÿï08@Rfocus.ua/files/branding/ +.ÿï08@Rfoodclub.ru/bitrix/tmp/fd_tmb/ +>ÿï08@R.foodinnovation.ru/resources/bannerorder_files/ ++ÿï08@Rfoodretail.ru/rotatorfiles/ +*ÿï08@Rfoodretail.ru/rotatorstat/ ++ÿï08@Rfootball.kulichki.net/leon/ +#ÿï08@Rfootball24.ru/coef. +>ÿï08@R.football24.ru/templates/football24/images/leon +*ÿï08@Rfootballfacts.ru/_banners/ +$ÿï08@Rfor-foto.ru/*/adv.js +(08@Rforbes.kz/images/sponsors/ +!ÿï08@Rforeign.dt00.net^ +9ÿï08@R)formulalubvi.com/wp-content/uploads/*.mp4 +$ÿï08@Rforpost.lviv.ua/adv/ +#ÿï08@Rforscreen.com/*.php +%ÿï08@Rfortuna.live/banners/ +.* +phpbb3.x-tk.ru08@Rforum-gta.com^ +'ÿï08@Rforum.abok.ru/_banners/ +:ÿï08@R*forum.abok.ru/style_images/ip.boardpr/rek. +(ÿï08@Rforum.adult-torrent.com^ +&08@Rforum.astrakhan.ru/*.swf +7ÿï08@R'forum.atvclub.ru/js/audentio/ad_styler/ +3ÿï08@R#forum.baginya.org/cdn-cgi/pe/bag2?r +#ÿï08@Rforum.cxem.net/adv/ +,ÿï08@Rforum.fonarevka.ru/images/b/¸ +"ÿï08@Rforum.guns.ru/gbr/ +-€08@Rforum.krasmama.ru/files/banner +!08@Rforum.mista.ru/css/ +.08@R forum.niiot.net/uploads/banners/ +0 +08@R"forum.qrz.ru/clientscript/rotator. +,ÿï08@Rforum.rarib.ag/pdir/banners/ +&ÿï08@Rforum.sources.ru/asdf/ +.ÿï08@Rforum.watch.ru/clientscript/a_ +!ÿï08@Rforum.watch.ru/pr +1ÿï08@R!forum.woodtools.ru/ad/www/images/ +*ÿï08@Rforumdacha.ru/_bone/reklo/ +%ÿï08@Rforumkiev.com/MEDimg/ +Bÿï08@R2forums.drom.ru/includes_drom/js/candy_corrector.js +6ÿï* + www.goha.ru08@Rforums.goha.ru/flcv.php +3ÿï08@R#forums.warforge.ru/style_images/ad/ +$ÿï08@Rforzajuve.ru/978x90. +$ÿï08@Rfoto-save.ru/file.js +6ÿï* + fotostrana.ru08@Rfotocdn.net/app/king/ + ÿï08@Rfotokto.ru^*/m2/ +&ÿï08@Rfreakenergy.ru/imgpls/ +!ÿï08@Rfreealt.net/daos/ +&ÿï08@Rfreehat.cc/upload/lap/ +"ÿï08@Rfreep2p.info/vast/ +08@Rfreepiks.ru/*.php +&ÿï08@Rfreesoft.ru/sponsored/ +*ÿï08@Rfreetp.*/*nacked_tits_bot. +ÿï08@R freetp.*/1.js +%ÿï08@Rfreetp.*/download-yb. + ÿï08@Rfreezpic.ru/tpl/ +%ÿï08@Rfreezpic.ru^*/code.js +,ÿï08@Rfresher.ru/js/ajax-banner.js +$€08@Rfrom-ua.com^*/trafmag +T€* + motolife24.ru* + +lunno.ru08@R(frontend.vh.yandex.ru/player/*=gamepage: +08@Rfsell.biz/images/ +!ÿï08@Rfu.gk43.ru/media/ +08@R fullgames.ru^ +08@Rfvhm.ru^ +*ÿï08@Rfwdcdn.com/frame/partners/ +7ÿï* + sinoptik.ua08@Rfwdcdn.com/img/partners/ +$ÿï08@Rfx.co/*/popup/popup. +-ÿï08@Rgame-tournaments.com/media/a/ +9ÿï08@R)game2day.ru//uploads/Images/1920X1080.jpg +&ÿï08@Rgamebomb.ru/images/sma +&08@Rgameinside.ua^*/branding +5ÿï08@R%gamelayer.ru/dist/public/preloader.js +"ÿï08@Rgamer.ru/*branding +&ÿï08@Rgamer.ru/assets/skins/ +'08@Rgamerpro.ru/images/adver/ +$ÿï08@Rgameru.net/img/slot/ + 08@Rgames-archive.net^ +'ÿï08@Rgames-porno.net/mytest/ +&ÿï08@Rgames-tv.ru/img/oimgs/ +*ÿï08@Rgamesisart.ru/images/R_Fut ++ÿï08@Rgamestar.ru/p/picture/s.gif +-ÿï08@Rgamestar.ru^*picture/banners/ +'ÿï08@Rgamingservers.ru/shows/ +,ÿï08@Rgarant.ru/images/*/goldfish/ +-ÿï08@Rgastri.ru/wp-content/uploads/ +ÿï08@R +gay.ru/a2/ +908@R+gazetabalakovo.ru/wp-content/uploads/*/rek. +2ÿï08@R"gazetametro.ru/commercial/banners/ +-ÿï08@Rgcmsite.ru/img/nostromo-x.jpg +!ÿï08@Rgde.ru/img/*320x1 +%ÿï08@Rgdz-putina.info/*.swfò +!ÿï08@Rgdzplus.me/banner +"ÿï08@Rgdzputina.me/*.swf +(ÿï08@Rgecid.com/data/branding/ +'ÿï08@Rgecid.com/inc/getBanIf. +%08@Rgecid.com/script/gecid2 +0ÿï* + +meteo.ua* +olx.ua08@R +gemius.pl^ +Hÿï08@R8gen.jut.su/templates/school/video-js-additional/im_my.js +"ÿï08@Rgenjutsu.ru/kadam/ +'ÿï08@Rgeonavigator.ge/banner/ ++ÿï08@Rgeonavigator.ge/img/brands/ ++ÿï08@Rgermany.ru/albums/*/Banner_ +2ÿï08@R"germany.ru/discount/pictures/extra +'ÿï08@Rget-tune.net/i/banners/ +08@R getalbums.ru^ +,ÿï* + +comss.ru08@Rgetsitectrl.com^ +$ÿï08@Rggscore.com/media/b/ +Dÿï08@R4giclub.tv/index.php?action=downloads;sa=downfile&id= +6ÿï08@R&gig-torrent.ru/templates/GTR/images/bn +&ÿï08@Rgigantporno.com/wk.php +&ÿï08@Rgimp.nas2.net/img/rek/ +#ÿï08@Rgirlstop.info/jstt/ +0ÿï* +vk.com08@Rgithubusercontent.com^ +!ÿï08@Rgjs.real-vin.com/ +9ÿï08@R)glasscannon.ru/wp-content/*/pic/back_rek_ +) 08@Rglavagronom.ru/api/*/banner +/ÿï08@Rglavnayatema.com/bb/view_mesto_ +(ÿï08@Rglavport.net/files/swfs/ +08@Rglaz.tv/vad.js +(08@Rglazey.info/public/client/ +ÿï08@Rglstar.ru/swf/ +*ÿï08@Rgo64.ru/upload/adv_banner/ +,ÿï08@Rgoal24.live/uploads/banners/ +%08@Rgoaltv24.ru^*/PopIn*.js +"ÿï08@Rgodinnik.com/inf0/ +)ÿï08@Rgofuckbiz.com/superheader +"ÿï08@Rgoha.ru^*foxyvideo +08@Rgoing.tv-mega.ru^ +.ÿï08@Rgoldenfront.ru/static/banners/ +4ÿï08@R$golos.te.ua/wp-content/uploads/*.mp4 +08@R golovne.net^ +#08@Rgolubok.mobi/js*ab.js +/ÿï* + 2baksa.ws* +nowa.cc08@Rgoo.gl^ +08@Rgoo.gl^ +08@R good73.net^ +&ÿï08@Rgoodfilm.top^*/pek.png +6ÿï08@R&goodfilms.su/templates/*/images/bg.jpg + ÿï08@Rgoodgame.ru/del/ + 08@R goodgame.ru/ +!ÿï08@Rgoodread.ru/tiz*/ +qÿï* +intellitest.me* + inc-news.ru* + +pogoda.com* + +vesti.kz* +ivi.ru08@Rgoogletagmanager.com/gtm.js? +`ÿï08@RPgoogleusercontent.com/hk/oobRfTyrFtxXAuFWNle3KfDteO/www.5.ua/files/img/bg/*.jpg. +"08@Rgooool365.org/betli_ +!08@Rgooool365.org/ggpop ++€08@Rgooool365.org/uploads/*.html +-ÿï08@Rgordonua.com/user/*/branding- +"ÿï08@Rgorod.cn.ua/banner +)ÿï08@Rgorod.cn.ua/image/upload/ +$ÿï08@Rgorod.dp.ua/pic/bm*/ +%€08@Rgorod24.online/bredir/ +08@Rgorod55.ru/data/ +9ÿï08@R)gorod55.ru/Public/images/wolf-zaotdih.png +%08@Rgorodvitebsk.by/BANNER/ +! 08@Rgoroskop.ru/api.php +4ÿï08@R$gosnomer-gosuslugi.ru^*/widget-chat-Ÿ +!08@Rgotoroad.ru/img/ban + ÿï08@Rgotovim.ru/incs/ +"ÿï08@Rgotovim.ru/pics/1/ +(ÿï08@Rgotps3.ru/images/a/*.gif +(ÿï08@Rgotps3.ru/images/a/*.jpg +ÿï08@R gov.ua/rtb/ +0ÿï08@R gowo.su/assets/js/clickadilla.js +=* + carambatv.ru* + goodgame.ru08@Rgpm-digital.com^ +0ÿï08@R grad.ua/templates/*/lentainform_ +ÿï08@R grand2.ru/mk/ +&€08@Rgrand2.ru/seriya/r*.php +.ÿï08@Rgrandars.ru/img/kvartalkin.gif +08@Rgrani.ru/files/ + ÿï08@Rgrani21.ru/work/ +:ÿï08@R*grippua.com.ua/wp-content/uploads/*/ma.jpg +,€08@Rgrowhow.in.ua/api?id=*secure= +:ÿï08@R*growhow.in.ua/wp-content/uploads/branding/ +.ÿï08@Rgsmbaza.ru/images/ownpictures/ +/ÿï08@Rgsmforum.ru/images/ownpictures/ +9* + finget.ru08@Rgstatic.com/charts/*/loader.js +(08@Rgta.com.ua/download.phtml? +.ÿï08@Rgta.com.ua/images/gta_origins. +&ÿï08@Rgtorrent.*/uploads/ya/ ++ÿï08@Rguitar.ru/forum/banner-muz/ +"ÿï08@Rguitarplayer.ru/b/ +!08@Rguru.ua/white_menu/ +!08@Rgurutestov.ru/*.swf +&€08@Rgx.net.ua/upload/*.html +'ÿï08@Rgzt.ru/upload/*.rklite/ +&ÿï08@Rhabracdn.net^*/yndx.js +&ÿï08@Rhacker-pro.net/banner/ +"ÿï08@Rhaqqin.az/banners/ +)ÿï08@Rhardstones.ru/js_content/ +%ÿï08@Rhashflare.eu/banners/ +*ÿï08@Rhcbarys.kz/banner_rotator/ +Fÿï08@R6hcdn.online/engine/video/videojs-vast-vpaid-waterfall. +!08@Rhctorpedo.ru/files/ +)ÿï08@Rhctraktor.org/bi.php?url= +1ÿï08@R!hdkinoteatr3.net/block_scrip*.php +"08@Rhdrezka.club/offers/ +!08@Rhdserials.net/*.php +'ÿï08@Rhdtrailer.ru/images/bg/ + 08@Rhdtv.ru/resources/ +(ÿï08@Rhdvbua.pro/data/banners? +(ÿï* +qrz.ru08@Rhelloradio.ru^ +.ÿï08@Rhelsi.me/api/datum/api/banner? +ÿï08@Rhentai-x.ru/js/ +.ÿï08@Rherbaldoc.ru/scripts/alltzr.js +,ÿï08@Rherbaldoc.ru/scripts/hrbl.js +.ÿï08@Rherbaldoc.ru/scripts/vspliv.js +.ÿï08@Rherbaldoc.ru/scripts/zamven.js +!ÿï08@Rhhcdn.ru/nposter/ +#ÿï08@Rhhcdn.ru^*.banners. ++ÿï08@Rhi-fi-forum.net^*_partners/ +#ÿï08@Rhi-fi.ru/*branding/ +'ÿï08@Rhi-fi.ru/bitrix/images/ +&ÿï08@Rhi-fi.ru/js/bidding.js +0ÿï08@R hi-fidelity-forum.com/_partners/ +&ÿï08@Rhibiny.ru/images/peks/ +08@R +hideip.me^ +-ÿï08@Rhideme.ru/images/prx/prx_bnr_ +ÿï08@Rhiex.ru/promo/ +(ÿï08@Rhindcine.tv/cstmVast.xml +4ÿï08@R$hitfile.net/platform/js/lib/videojs/Å +,ÿï08@Rhitfm.ru/uploads/vk-pixel.js +ÿï08@Rhochu.tv/*.swf +"ÿï08@Rhomeporn.tv/cod.js ++ÿï08@Rhoradric.ru/styles/*/brand_ +%ÿï08@Rhoradric.ru^*-adv-bg- +(ÿï08@Rhoradric.ru^*/images/bg_ +'ÿï08@Rhorror.name/1000filmov. +"ÿï08@Rhost.fm/images/pr/ +8ÿï08@R(hostingkartinok.com/images/*_960x100.gif ++* + +kinobb.net08@Rhot.kinobb.net^ +*ÿï08@Rhotcharts.ru/img/*_700x150 +(ÿï08@Rhotcharts.ru/img/direct/ +08@Rhottabych.net^ +(ÿï08@Rhow-tos.ru/images/banner +)ÿï08@Rhowtablet.ru/smwidget.php +7ÿï08@R'hozobzor.ru/assets/components/superads/ +308@R%hpc.name/clientscript/banners_show.js +'ÿï08@Rhpc.name/images/banner/ +!ÿï08@Rhqroom.ru/images/ +'08@Rhr-portal.ru/files/banner +<ÿï08@R,hrk.aero/wp-content/themes/hrk-new/*banners/ +/ÿï08@Rhromadske.radio/assets/banners/ +#08@Rhsl.com.ua/*parimatch +{ÿï* +eurointegration.com.ua* +sportanalytic.com* + pravda.com.ua* + newsyou.info08@Rhtml-load.com/loader.min.js +0ÿï08@R html-template.ru/images/banners/ + 08@Rhtmlbook.ru/files/ +.08@R htmlbook.ru/sites/default/files/ +(ÿï08@Rhw-lab.com/uploads/adds/ +*ÿï08@Rhwp.ru/images/mid/h-anons. +08@R +hydrus.cc^ +"ÿï08@Ri.kidstaff.com.ua/ +!ÿï08@Ri.ua^*_brandpage_ +#ÿï08@Ri2.kidstaff.com.ua/ +0ÿï08@R ibusiness.ru^*/netlab/style.css? +2ÿï08@R"iccup.com/templates/images/kekpek_ +(ÿï08@Ridownloads.ru^*/banners/ +08@Ridwl.cn/brand/ +08@R iframecdn.ru^ +*ÿï08@Rigra.life^*/background.jpg +)ÿï08@Rigrilogicheskie.ru/mytiz/ +/ÿï08@Rigritorrent.org/images/lite.png +)ÿï08@Rigro-torrent.ru/white.png +'ÿï08@Rigroutka.ru/api/*/link/ +0ÿï08@R igry-online.net/assets/branding/ +"ÿï08@Rigry.ru/media/tiz/ + ÿï08@Rihead.ru/offers/ +$ÿï08@Rikinokz.net/bannr.js +$ÿï08@Rikinokz.net/ikino.js +)ÿï08@Rilenta.com/images/banner/ ++ÿï08@Rilibrary.ru/js/adplacements +%ÿï08@Rim.tagilcity.ru^*?mt= +/* + optimistt.ru08@Rimage.jimcdn.com^ +0ÿï* +strelec.ucoz.ru08@R image2you.ru^ +$ÿï08@Rimedica.by/delivery/ +H* +masterok.livejournal.com08@Rimg-fotki.yandex.ru/get/*_orig +,08@Rimg.*.ru/js/jquery.suSlider.js +!ÿï08@Rimg.bankoboev.ru^ +08@Rimgal.ru^*script +08@Rimgbum.ru^*.php +ÿï08@R imgix.ru/*.js +08@Rimgking.xyz^*_ +!ÿï08@Rimgv.net^*.php?s= +,ÿï08@Rimhonet.ru/img/dumm/*-promo. +'ÿï08@Rimoneyforum.ru/files/00Á +)ÿï08@Rimtw.ru/public/js/*banner +-ÿï08@Rindustry-hunter.com/*banners/ +(ÿï08@Rinetsovety.ru/bannerbro/ +8ÿï08@R(info.sibnet.ru/img/weather/*/background. +508@R'info.sibnet.ru/legacy//static_templates +!ÿï08@Rinfocar.ua/*combg +-ÿï08@Rinfoniac.ru/upload/uimg/dzen. +#ÿï08@Rinform.kz/download/ +5ÿï08@R%informator.ua/js/frontend/ad-loaders/ +*ÿï08@Rinformator.ua/optimizer.js +)ÿï08@Rinformburo.kz/*/branding/ +1ÿï08@R!informburo.kz/embed/SportsBetting +/ÿï08@Ringos.ru/common/img_ru/banners/ +#08@Ringrus.net/Data_Base/ ++ÿï08@Ringrus.net/Data_Base/modal/ +08@Rinmoment.ru/img/ +)ÿï08@Rinoprosport.ru/img/brand. +'ÿï08@Rinoprosport.su/banners/ +ÿï08@Rinpearls.ru/ad? +!ÿï08@Rinpearls.ru/site/ +?ÿï08@R/inpoland.net.pl/wp-content/uploads/*/koronapay. +7ÿï08@R'insite.su/engine/classes/js/nxtdqdgn.js +/ÿï08@Rinsite.su/engine/classes/masha/ +08@Rinspired.com.ua^ + 08@Rinterfax.by/files/ + ÿï08@Rinterfax.ru/rcl/ +2ÿï08@R"internethalyava.ru^*/area_banners/ +008@R"internetno.net/images/cms/banners/ +:ÿï08@R*internetsms.org/bundles/ismsfront/img/tks/ +,ÿï* + porevo.site08@R intimshop.ru^ +5ÿï08@R%investfunds.ru/organisations_banners/ +-ÿï08@Rinvictory.org/public/banners/ +/ÿï08@Ripicture.ru/public/images/temp/ +fÿï*! +xn----dtbfdbwspgnceulm.xn--p1ai* +smile-vkontakte.ru* + kinoswine.ru08@R iqoption.com^ +9ÿï08@R)irecommend.ru/modules/misc-content/loader +!ÿï08@Rirk.ru/ibr/block/ +"ÿï08@Rirr.by^*/showcase. ++ÿï08@Rirtafax.com.ua/inc/banners/ +2* +yroki-kompa.ru08@Risif-life.ru/new/b +.ÿï08@Rislam-today.ru/files/stat_ban/ +*08@Rislam-today.ru/static/banner +%ÿï08@Ristorikonline.ru/cpa/ +&ÿï08@Ritvcom.ru/images/*sape +=ÿï08@R-ivanovonews.ru/local/templates/*/js/custom.js +9ÿï08@R)ivbb.ru/domain_dependent/ivbb.ru/banners/ + ÿï08@Rivi.ru/branding/ +p€* +playvideolink.com* +playreplay.net* +videochart.net* + moevideo.net08@Rivi.ru/player/*autostart +.ÿï08@Riviche.com/images/commertials/ +"ÿï08@Rixbt.com/branding/ +*ÿï08@Rixbt.com/cgi-bin/banqs.cgi +&ÿï08@Rixbt.games^*/branding/ +$ÿï08@Rixbt.online/banners/ +(ÿï08@Rixbt.online^*/brandings/ + ÿï08@Riz.ru^*/banners/ +!08@Rizgr.ru/files/*.gif +3ÿï08@R#izvestia.kiev.ua/assets/img/*banner +/ÿï08@Rjaymedianetwork.com/get.php?id= +408@R&jetsetter.ua/wp-content/uploads/*brand +"ÿï08@Rjiouv.com/vast.php +Iÿï* + medotvet.com* + +bagnet.org* + +medkrug.ru08@R jivosite.com^ +%ÿï08@Rjmqyb.com/*&jmqyb.com + ÿï08@Rjo-jo.ru/rkt.php +"ÿï08@Rjoblog.com.ua/xmg. +(08@Rjoborgame.ru^*/img/*banner‚ +(08@Rjobvacancy.pro/img/commin/ +!ÿï08@Rjooble.org/banner +"ÿï08@Rjoporn.net/teasjs/ +5€* +meta.joyreactor.cc08@Rjoyreactor.cc^ +ÿï08@R +js.xuy.tv/ +(ÿï08@Rjsengine.ru/rttr*.min.js +ÿï08@R jslim.ru/rec/ +ÿï08@Rjson.udaff.com/ +!ÿï08@Rjson.vipfiles.nu/ +&ÿï08@Rjson.webcam-erotic.tv/ +&ÿï08@Rjurnalik.ru/slider.php +08@Rjut-su.net/bag. +Aÿï08@R1jut-su.skin/templates/Default/js/the_functions.js +"ÿï08@Rjut.su^*/branding_ +5ÿï* + playground.ru08@Rjwpcdn.com/*/vast.js +0ÿï08@R k.img.com.ua/static/img/banners/ +6ÿï08@R&k.img.com.ua/static/js/fotos_banner.js +*ÿï08@Rkabachok.online/stultr.php +#ÿï08@Rkaban.tv/kabantv.js +&ÿï08@Rkaddr.com^*/Stylus.png +Iÿï08@R9kadik.com.ua/content/vendor/bootstrap/js/bootstrap.min.js +4ÿï08@R$kaknastroit*.ru/wp-content/*/popout. +Oÿï* + kaktus.media* + kaktus.kg08@R"kaktus.*/src/Template/Block/Banner +-ÿï08@Rkapital-rus.ru/img/*/banners/ + ÿï08@Rkapriz.info/img/ + ÿï08@Rkapriz.info/tiz/ +$ 08@Rkavkazova.ru^*rtl1.org +!ÿï08@Rkazanfirst.ru/ads +3ÿï08@R#kazfootball.kz/tools/scripts/slick/ +-ÿï08@Rkazus.ru/includes/js/rotator/ +#ÿï08@Rkeep4u.ru/partners/ + ÿï08@Rkeep4u.ru/r.php? +08@Rkellmais.ru/recl/ +5ÿï08@R%kerch.com.ru/IMG/HotNews/kn_internet. +.ÿï08@Rkerch.com.ru/Pictures/Banners/ +.ÿï08@Rkerchinfo.com/uploads/img_ban/ +#08@Rkeysportal.com/yandex +$ÿï08@Rkg-portal.ru/banned/ +'ÿï08@Rkg-portal.ru/brandbook/ +%ÿï08@Rkg-portal.ru^*/bg.jpg +&ÿï08@Rkgd.ru/images/commerc/ +0ÿï08@R kharkov.info/files/image*/banner +>ÿï08@R.kharkov.info/files/imagecache/paidplace_block/ +5ÿï08@R%khersonci.com.ua/images/NEWS/banners/ +)08@Rkhersondaily.com/pic/banner +#ÿï08@Rkhl.ru^*/mtBanners. +6ÿï08@R&kidstaff.com.ua/pictures_user/asystem/ +(ÿï08@Rkievvlast.com.ua/banners +,ÿï08@Rkievvlast.com.ua/images/body +%ÿï08@Rkillfilms.ru^*/girls/ +,ÿï08@Rkinatvideo.ru/image/land.jpg +!ÿï08@Rkineshemec.ru/bn/ ++ÿï08@Rkingisepp.ru/images/banner/ +(ÿï08@Rkino-archive.ru^*banner. +,ÿï08@Rkino-cccp.net/images/banner/ +4ÿï08@R$kino-kingdom.com/uploads/*-pleer.jpg +&08@Rkino-kingdom.com^*/amigo +,ÿï08@Rkino-line.su^*/images/bg.jpg +#ÿï08@Rkino-portal.net/go/ +3ÿï08@R#kino-teatr.ru/static/images/online_ +2ÿï08@R"kino-teatr.ua/images/kinoteatr.gif +'ÿï08@Rkinoafisha.ua^*/bgadvs/ +08@Rkinobar.vip/bg/ +#ÿï08@Rkinobaza.net/babes/û +$ÿï08@Rkinoclub.me/img/mgt. ++ÿï08@Rkinofilms.ua/images/brands/ +7ÿï08@R'kinofilms.ua/images/r/kf/fpv/index.html +-ÿï08@Rkinogo-720.net^*/images/promo +7ÿï08@R'kinogo.eu/templates/kinogo/backgrounds/ +%ÿï08@Rkinogo.eu^*/kinogo.js + 08@Rkinogo.la/code/ +#ÿï08@Rkinohd.ws/svideo.js +!ÿï08@Rkinokod.me/mg.png +Fÿï08@R6kinokubik.com/templates/kinokubik/images/mgbutton2.png +" 08@Rkinoman.online/*.xml ++ÿï08@Rkinomania.kz/images/bg1.jpg +!08@Rkinomania.ru/brand/ +08@Rkinomax.pro^*.php +)ÿï08@Rkinometro.ru/res/pic/ban/ ++ÿï08@Rkinometro.ru/res/pic/brand/ +>ÿï08@R.kinomonitor.ru/upload/iblock/*bike-centre*.swf +$ÿï08@Rkinopati.ru/adkin.js +'08@Rkinopati.ru/images/circus +#ÿï08@Rkinopati.ru/kkno.js +*ÿï08@Rkinopleera.net/js/replace_ +$ÿï08@Rkinopod.ru/branding/ + ÿï08@Rkinopod.ru/show/ +/ÿï08@Rkinored.club^*/player_field.png +3ÿï08@R#kinosalo.com/player/*.php?*referer= +%ÿï08@Rkinoserial.tv/scratch +,ÿï08@Rkinovau.club/contents/other/ +ÿï08@Rkinoylei.ru/br/ +#ÿï08@Rkipfilms.ru/blocks/ +ÿï08@Rkirovnet.ru/am/ +#08@Rkirovnet.ru/serve.php ++ÿï08@Rkissanime.ru/xyz/check.aspx +)08@Rkissfm.ua/static/img/*_FON. +"ÿï08@Rkiwi.kz/base/a.js? +ÿï08@Rkiwi.kz/bimbo/? +(ÿï08@Rklavogonki.ru/img/banner +-ÿï08@Rklops.ru/assets/sales_widget- +$ÿï08@Rkluch.media/banners/ + ÿï08@Rklukva.org/bann/ +:ÿï08@R*ko.com.ua/sites/all/themes/ko/i/oki-print. +'ÿï08@Rkoko.by/storage/banners +"ÿï08@Rkolikbolik.top/mg. +'ÿï08@Rkolo.news/media/banner/ +(ÿï08@Rkolomna-spravka.ru/rklm/ +"ÿï08@Rkolyan.net/*_brand +!ÿï08@Rkomcity.ru/adver/ + ÿï08@Rkomcity.ru^*.swf +#ÿï08@Rkong.fotostrana.ru/ +*ÿï08@Rkoolinar.ru/img/*/fon*.jpg + ÿï08@Rkosmetista.ru/b/ +=ÿï08@R-kot-i-koshka.ru/wp-content/*/jquery.lc.min.js +5ÿï08@R%kot-i-koshka.ru/wp-content/uploads/6b +.ÿï08@Rkozhuhovo.com/!images/banners/ +'ÿï08@Rkpcdn.net^*/banner_img/ + ÿï08@Rkraj.by/banners/ +$ÿï08@Rkraj.by/js/banner.js +ÿï08@Rkrisha.kz^*/br/ +5ÿï08@R%kritika24.ru/assets/plugins/sweet*.js + 08@Rkritika24.ru^*.php +5ÿï08@R%kronverkcinema.ru/sadm_files/banners/ +.ÿï08@Rksenstar.com.ua/images/444.jpg +ÿï08@R kset.kz/vda +&08@Rksza.ks.ua/uploads/rain. + ÿï08@Rkt.kz/getbanner/û +Lÿï08@Rÿï* + uniongang.net* + uniongang.org08@R megaseed.kz^ +-08@Rmegatyumen.ru/static/img/banner +#ÿï08@Rmehanik.games/yadx. +)ÿï08@Rmelt.ru/images/cms/_*0*_/ ++ÿï08@Rmensgen.ru/*pg-advanced-ads +?ÿï08@R/mensgen.ru/wp-content/plugins/fenix-adv-plugin/ +$ÿï08@Rmercatos.net/banner/ +ÿï08@R meta.ua/br/ +!ÿï08@Rmeta.ua/branding/ +ÿï08@R meta.ua/exchg +'ÿï08@Rmeta.ua/f_new.*_teaser& +"ÿï08@Rmeta.ua/f_new.asp? +'€08@Rmeta.ua/img/*/index.html +ÿï08@Rmeta.ua/img/b/ +ÿï08@Rmeta.ua/img/b4/ +$ÿï08@Rmeta.ua/img/banners/ +-ÿï* + video.meta.ua08@R meta.ua/out/ +$ÿï08@Rmeta.ua^*/f_new.asp? +0ÿï08@R metallicheckiy-portal.ru/imgrek/ +1 08@R#metalloprokat.ru/load-announcements +"ÿï08@Rmetamarket.com.ua^ +Gÿï08@R7meteo-tv.ru/bitrix/templates/meteotv/img/*/bg-page*.jpg + ÿï08@Rmeteo.by/banner_ +5ÿï08@R%meteobar.com/ukraine/*/get_kurs_news/ +508@R'meteocenter.net/weather/templates/fosn. +:08@R,mezha.media/wp-content/uploads/*_w__mezha_ua +0ÿï08@R mgorod.kz/wp-content/*/js/slick/ +$ÿï08@Rmibius.com.ua/banner +$08@Rmichurinsk.ru/bn/show/ +8ÿï08@R(mignews.com/static/js/feed_parser.min.js +(ÿï08@Rmilknet.ru/rotatorfiles/ +,ÿï08@Rminecraft-gold-new.ru/offer/ +%08@Rminfin.com.ua^*/banners +.ÿï08@Rminizal.net/js/brandminizal.js +'ÿï08@Rmirkamnej.ru/teasernet/ + 08@Rmirsexy.com/bo + 08@Rmirsexy.com/vw +ÿï08@Rmix.tj/preroll/ +'ÿï08@Rmix.tj/uploads/babilon/ +&ÿï08@Rmix.tj/uploads/formulaí +%ÿï08@Rmix.tj/uploads/magnit +)ÿï08@Rmix.tj/uploads/parimatch/ +)ÿï08@Rmix.tn.kz/ajax/getBanner/ +*ÿï08@Rmix.tn.kz/mix/js/loader.js +,ÿï08@Rmixsoft.org/yandexbrowser.js +*ÿï08@Rmmogamez.info^*/pagebgtop. +!ÿï08@Rmmogamez.ru/asda/ +Fÿï08@R6mmogamez.ru/assets/templates/Standart/images/mmogamez. +!ÿï08@Rmmogamez.ru/safa/ +$ÿï08@Rmmorpg.su/api/games/ +/08@R!mmotop.ru/uploads/game/wallpaper/ +)08@Rmmotop.ru/uploads/promotion +#ÿï08@Rmmotop.ru^*.js?rnd= +908@R+mnogovoprosov.ru/wp-content/uploads/*/ban*r +*ÿï08@Rmob39.ru/jabox_img/banner/ +ÿï08@Rmobbit.info/r/ +'ÿï08@Rmobiledevice.ru/banner_ +)ÿï08@Rmobiltelefon.ru/photo/bg/ +*ÿï08@Rmobiltelefon.ru/photo/rek/ ++ÿï08@Rmobtop.ru/static/imgs/*.gif +)ÿï08@Rmobzon.ru/images/banners/ +%ÿï08@Rmodeland.ru/*/bg.webp +.ÿï08@Rmodelist-konstruktor.com/aimg/ +508@R'modernrock.ru/wp-content/uploads/*/fon- +(ÿï08@Rmodsfire.com/img/ookfmx. +'ÿï08@Rmoedelo.org/mrkbanners/ +,08@Rmoeobrazovanie.ru/js/html5*.js +!ÿï08@Rmoevideo.net/apv/ +&ÿï08@Rmoevideo.net/branding/ +Hÿï* + mediapapa.org* + freezpic.ru08@Rmoevideo.net/framevideo/ +#ÿï08@Rmoevideo.net/getit/ +'ÿï08@Rmoevideo.net/img/promo/ ++€08@Rmoevideo.net/partner?partner +K08@R=moisustav.ru/wp-content/plugins/helper/inc/jquery.hyperTeaser +J08@Rÿï08@R.newkaliningrad.ru/local/assets/js/yabinding.js +Hÿï08@R8news.agro-center.com.ua/wp-content/uploads/*/background- +-ÿï08@Rnews.mspravka.info/adverting/ +3ÿï08@R#news.ru/public/new/desktop/samolet/ +%ÿï08@Rnews.tj/adfiles?adid= +,ÿï* + pogoda.ru08@Rnews.yandex.ru^ +*08@Rnews.zancor.ru/images/elvira +'ÿï08@Rnews14.wifiram.ru/awin/ + 08@Rnews29.ru/news29rb +)ÿï08@Rnewserials.net/ranetka.js +"ÿï08@Rnewsko.ru/_static/ +ÿï08@R newslab.ru/b/ +'ÿï08@Rnewsmaker.md^*/banners/ +7ÿï08@R'newsomsk.ru/design/new/js/banner_new.js +7ÿï08@R'newsroom.kh.ua/wp-content/uploads/tiny_ +(ÿï08@Rnewsru.co.il/scripts/ad_ +-ÿï08@Rnewsru.co.il/scripts/main_ad. +%ÿï08@Rnewstudio.tv/menu.swf +(ÿï08@Rnewsua.ru/images/banner/ +%€08@Rnezhatin.com.ua/*.html +08@Rng.by/bimages/ +' 08@Rngnovoros.ru/api/*?place= +1ÿï08@R!ngs.ru/static/js/app/adFoxBanner/ +#08@Rnice-film.ru/js*/*.js ++ÿï08@Rnightburger.lviv.ua/banner_ +1ÿï08@R!ninemanga.com/files/js/ad_both.js +„08@Rnirtopala.com^ +#ÿï08@Rnirvana.fm/banners/ +(ÿï08@Rnirvana.fm/pic/kartinki/ +$ÿï08@Rnm71.ru/images/adim/ +3ÿï08@R#nmosktoday.com/upload/medialibrary/ +08@R nn.by/photos/ +/ÿï08@Rnn.ru/common/block.php?*adverts +3ÿï08@R#nn2.ru/forum/data/forum/background/ + ÿï08@Rnnm-club.pw/img/ +(ÿï08@Rnnmstatic.win/forum/ads/ +Bÿï08@R2nnmstatic.win/forum/image.php?link=https://3cdn.ru +Eÿï08@R5nnmstatic.win/forum/image.php?link=https://factpic.ru +%ÿï08@Rnnover.ru/hints/show/ ++ÿï08@Rnnovosti.info/images/banner + 08@Rnnportal.org/nntt/ ++ÿï08@Rnnportal.org/portal/core/i/ +!ÿï08@Rnntt.org/a/files/ +#ÿï08@Rnoi.md/ajax/banner/ +.ÿï* + +hw-lab.com08@Rnoiseblocker.de^ +:ÿï08@R*noodlemagazine.com/static/engine/*/vast.js +%ÿï08@Rnord-news.ru/img/all/… +<* +notarius-in-spb.ru08@Rnotarius-in-spb.ru/*.php +*ÿï08@Rnotebook-center.ru/market/ +408@R¬ebookcheck*/fileadmin/_processed_/_ +08@Rnotube.net^*sw.js +(ÿï08@Rnovaposhta.ua^*/banners/ +"ÿï08@Rnovate.ru/img/zen. +"ÿï08@Rnovomoskov.ru/img/ +$ÿï08@Rnovorus.info/banner/ +08@Rnovostimira.*?v= +#08@Rnovostioede.ru/about/ +'ÿï08@Rnovostiua.net/mang*.swf +508@R'novostiua.net/templates/novosti/banner/ +408@R&novostiua.net/templates/novosti/brend/ +'ÿï08@Rnovostroev.ru/ajax/tgb. + ÿï08@Rnow.ru/branding/ +ÿï08@Rnow.ru^*/promo/ +%ÿï08@Rnowfilms.ru^*/kazino/ +4* + +delfi.lt08@Rnpttech.com/advertising.js +$ÿï08@Rnr2.ru/pict/banners/ ++ÿï08@Rnrj.ua/uploads/advertising/ +*ÿï08@Rnrj.ua/uploads/promotions/ +#ÿï* +ngs.ru08@R nskes.ru^ +#ÿï08@Rnsnet.ru/js-banner/ ++ÿï08@Rnsportal.ru/download/yandex +#ÿï08@Rnta.ua/vgolosFM.png +'ÿï08@Rnulled.cc/index_230x50_ +!ÿï08@Rnum-link.ru/link/ +$ÿï08@Rnur.kz/nur/js/1xbet. +&ÿï08@Rnur.kz^*/monetization. +'ÿï08@Rnuz.uz/uploads/banners/ +ÿï08@Rnv.ua^*/banner. +(ÿï08@Rnversia.ru/imgs/banners/ ++ÿï08@Rnwcod.com/rikkom_znayka.swf +ÿï08@Rnya.sh/imgs/a/ +-ÿï08@Rnyx-nyx-nyx.dotabuff.com/*.js +*ÿï08@Ro-nedvizhke.ru/consultant/ +Aÿï08@R1o-polze.com/wp-content/themes/resolute/js/scrl.js +:08@R,oblast-te.com.ua/wp-content/uploads/*/banner +"ÿï08@Robnimau.ru/img-ba/ +*ÿï* +104.ua08@Robozrevatel.com^ +.ÿï08@Robrazovaka.ru/serviceworker.js +ÿï08@Roclab.ru/flash/ +#ÿï08@Rodds.ru/api/advert/ +;ÿï08@R+odessa-daily.com.ua/images/stories/banners/ +" 08@Rodintsovo.info/main/ +%ÿï08@Roezto.com/*&oezto.com + 08@Roffisny.ru/*banner +:ÿï08@R*ogemorroe.com/wp-content/plugins/boxzilla/ +"ÿï08@Rogrom.ru/yandex.js +5ÿï08@R%ok-magazine.ru/*/partner-news-json.js +ÿï08@R +oka.fm/284 +' 08@Rokay.uz/api/default/vast? +%ÿï08@Rold-games.ru/img/rkl/ +(ÿï08@Rold.businessmens.ru/bnr/ +-08@Roldgames.ru/netcat_files/Image/ +!ÿï08@Rololo.fm/banners/ +$ÿï08@Rom1.ru/misc/popinfo/ +'ÿï08@Romskinform.ru/cross.php +!08@Romskinform.ru/fons/ +#08@Romskmama.ru^*/images/ +)ÿï08@Romskpress.ru/images/*.swf +&ÿï08@Romts77.ru/image/banner +0ÿï08@R on-line-teaching.com/img/1ps.jpg ++ÿï08@Ron-line-teaching.com/iq.jpg÷ +1ÿï08@R!onboardvideo.com.ua/images/adban/ +&ÿï* + +fishki.net08@Rondu.ru^ +(ÿï08@Roneseasons.club/none.xml +8ÿï* +oneseasons.club08@Roneseasons.club^*.mp4 +&ÿï08@Rongab.ru/html/img/bgs/ +4ÿï08@R$online-films.ckoro.ru/akter/1420.jpg +#08@Ronline-gamez.ru^*.php +"ÿï08@Ronline-life.*/oln/ +*ÿï08@Ronline.multilex.ru^*banner +*ÿï08@Ronlinedisk.ru/bban/banner/ +&ÿï08@Ronlinefilmx.org/br_mc/ +#ÿï08@Ronlineguru.ru/mmog/ +1ÿï08@R!onlinemschool.com/script/oms_*.1. +%ÿï08@Ronlinestreams.ru/ggb/ +1ÿï08@R!onlinestreams.ru/images/branding. +,ÿï08@Ronlinestreams.ru/images/liga +&ÿï08@Ronlinestreams.ru/liga/ +,ÿï08@Ronlysport.tv/assets/banners/ +(ÿï08@Ronporn.fun/img/asd/tm.js +!ÿï08@Ront.by/api/promo/ + 08@Rontivi.net/*.js?0. +$ÿï08@Ronyxgame.com/img/bnr +6ÿï08@R&open.ua/uploads/ckeditor/images/*baner +"ÿï08@Ropennet.*/img/bsh_ +ÿï08@Ropennet.ru/adv_ +$ÿï08@Ropennet.ru/img/ihor_ +'ÿï08@Ropennet.ru^*/hints.cgi? +-ÿï08@Ropensharing.org/vizitpartner/ +%08@Ropenssource.biz/st/pic/ +&ÿï08@Ropenssource.biz/st/ps/ +(ÿï08@Ropenssource.biz^*/brand/ +,ÿï08@Roper.ru/static/data/rennabs/ +,ÿï08@Roper.ru/static/data/torture/ +-ÿï08@Roper.ru/static/images/*_*.jpg +ÿï08@Ropx.podolsk.ru/ +-ÿï* + +megaimg.ru08@Rorange-pic.net^ +% 08@Rord-ua.com^*traffim.com +9ÿï08@R)oren.ru/wp-content/uploads/*1980_1044.jpg +&ÿï08@Rosadovod.ru^*/banners/ +08@Rosnova.news/i/a/ +;ÿï08@R+osobye.ru/includes/jquery/jquery.blockUI.js +"ÿï08@Rosp.ru^*/branding/ +08@Rosvete.ru/files/ +#ÿï08@Roszone.net/ibm.html +308@R%oterraria.ru/wp-content/uploads*/fon- +'08@Rothers.name/images/banner +%ÿï08@Rotido.com.ua/banner_/ +.ÿï08@Rotvetnavse.ru/block_script.php +4ÿï08@R$otzovik.com/scripts/function/iri.php +08@Rovd.today/sti. +ÿï08@Rovego.tv/rssi/ +'ÿï08@Roxy.cloud/images/bannr. +ÿï08@Royy.l2anons.ws^ +ÿï08@R oyye.bhf.su +%ÿï08@Rozon.ru/graphics/img/ +)ÿï08@Rozon.ru/graphics/img_ban/ +)ÿï08@Rp-p.com.ua/-/img/bg-*.jpg +/ÿï08@Rp-p.com.ua/-/uploads/media/000/ +ÿï08@R p.nag.ru/d/ +'ÿï08@Rpacogames.com/js/wgAds. +$ÿï08@Rpadabum.com/palae.js +'ÿï08@Rpadaread.com/superou.js +(08@Rpages.maxi-fx.ru/pop.under +(ÿï08@Rpalantinbest.ru/js/*.js?ø +(ÿï08@Rpanicnews.ru/js/popup.js +%ÿï08@Rpanicnews.ru/r.php?l= +€08@R panicnews.ru^ + ÿï08@Rpara.by/banners/ +'ÿï08@Rparnuxi.biz/olderPcode. +08@Rparnuxi.biz^*.php +$ÿï08@Rpartner.komedra.com/ +2ÿï* + +rutlib.com08@Rpartner.labirint.ru^ +&ÿï08@Rpartner.uhty-multy.ru/ +%ÿï08@Rpartnerkin.com/*/resb +4ÿï* + mignews.com08@Rpartners.walla.co.il^ +&ÿï08@Rpassus.ru/test-widget/ +%ÿï08@Rpatria.md/i/partners/ +$ 08@Rpatrioty.org.ua/*.json +-08@Rpattayathailand.ru/images/PROMO +Fÿï08@R6pc-torrents.com/templates/TorrenTs/images/top_mini.jpg +ÿï08@R pcnews.ru/b6/ +0ÿï08@R pctuner.ru/plugins/bworks/files/ +)ÿï08@Rpdalife.ru/userfiles/rec/ +3ÿï08@R#pechera.info/storage/banner_upload/ + ÿï08@Rpejnya.*/banner/ +)ÿï08@Rpenzavzglyad.ru/images/b/ +1ÿï08@R!penzavzglyad.ru/images/uploads/b/ +'ÿï08@Rpeople-ask.ru^*/vulkan- + 08@Rpesni-t.ru/*script +%ÿï08@Rpesni-tut.com/ifjasd/ +&ÿï08@Rpesni-tut.com/poiknbs/ +'ÿï08@Rpesni.mobi/universal.js +*08@Rpetcare.ua/userfiles/*Banner +!ÿï08@Rpeterburg2.ru/go/ +*08@Rpeterburg2.ru/uploads/*/o_*. +*ÿï08@Rpetrogazeta.ru/media//set/ +%08@Rpetromap.ru/static/ban/ +$ÿï08@Rphonenumber.to/unit/ +7ÿï* +phpbb3.x-tk.ru08@Rphpbb-phpbb*.x-tk.ru^ +!ÿï08@Rpi-c.ru^*/code.js +%ÿï08@Rpic-chik.com^*/bg.jpg +ÿï08@Rpic4pay.com/rt/ +&€08@Rpicshare.ru^*/728*.html +08@R picusha.pw^ +4ÿï* +freshrecords.ru08@Rpik-tv.com/embed/ +8ÿï08@R(pimpletv.ru/wp-content/uploads/img/mars_ +9ÿï08@R)pimpletv.ru/wp-content/uploads/img/melbet +:ÿï08@R*pimpletv.ru/wp-content/uploads/img/riobet_ +&ÿï08@Rpimpletv.ru^*branding. +"ÿï08@Rping-admin.ru/i/b/ +%ÿï08@Rpiratski.ru/*_banner. +#ÿï08@Rpise4ka.com/js/*.js +#ÿï08@Rpise4ka.net/in.html +708@R)pishchevarenie.ru/wp-admin/admin-ajax.php +,ÿï08@Rpiterhunt.ru/sponsor/banner/ +ÿï08@R pix-x.net/ban +08@Rpixcloud.ru^*.php +&08@Rpixelbrush.ru/pixelbrand ++* + pixsense.net08@R pixsense.net^ +*ÿï08@Rpk-help.com/images/BANNER/ +ÿï08@R pkfnpo.ru/ad/ +#ÿï08@Rpkzsk.info/banners- +#ÿï08@Rplanshetu.ru/i/abp/ +'ÿï08@Rplatimzafoto.ru/file.js +08@R +platon.kz^ +, +08@Rplayer.*.ru*/instreamatic.min. +( +08@Rplayer.*.ru*/unisound.min. +1ÿï08@R!player.kinotreiler.com/media_adv/ƒ +2ÿï08@R"player.kinotreiler.com/script_ads/ +&ÿï08@Rplayreplay.me/*[1000k] +&ÿï08@Rplayreplay.me/*[1500k] +(ÿï08@Rplayreplay.me/img/promo/ +,€08@Rplayreplay.me/partner?partner +%ÿï08@Rplayreplay.me/player/ +*ÿï08@Rplayvideolink.com/*[1000k] +*ÿï08@Rplayvideolink.com/*[1500k] +,ÿï08@Rplayvideolink.com/img/promo/ +0€08@R!playvideolink.com/partner?partner +)ÿï08@Rplayvideolink.com/player/ +"ÿï08@Rpln-pskov.ru/roll/ +.ÿï08@Rplodovie.ru/wp-content/sno*.js +-ÿï08@Rpn.com.ua^*/pnimages/banners/ ++ * +www.penzainform.ru08@Rpnz.ru^ +?ÿï* +pobedagame.sibnet.ru08@Rpobedagame.sibnet.ru^ +!ÿï08@Rpodarkus.ru/bnrs/ +'ÿï08@Rpodfm.ru/content/promo/ +)ÿï08@Rpodfm.ru/images/branding/ +%ÿï08@Rpoezone.ru/poepoints/ +1ÿï08@R!poglyad.te.ua/wp-content/uploads/ +ÿï08@Rpogoda.by/promo +€08@R +pojrem.ru^ +&ÿï08@Rpokur.su/images/promo/ +%ÿï08@Rpolitcentr.ru/teazer/ +*ÿï08@Rpolitland.ru/jss/12fef6.js +ÿï08@Rpolls.smi2.ru/ +ÿï08@Rpoltava.to/bn/ +'ÿï08@Rpoltava365.com/img/adw/ +*ÿï08@Rpoltava365.com/img/pro.png +$ÿï08@Rpoltavaforum.com/01/ +(ÿï08@Rpoltavaforum.com/banner/ +,ÿï08@Rponasledstvu.com/consultant/ +2ÿï08@R"ponedelnik.info/resources/banners/ +*ÿï08@Rpopcornnews.ru^*/branding/ +)ÿï08@Rpopgun.ru^*/images/brand/ +"ÿï08@Rpopup.relinka.net^ +$ÿï08@Rporn-dreams.org/rek/ +08@Rporn-watch.ru/*/b +$ÿï08@Rporn0sex.online/spot +2ÿï08@R"pornfappy.com/player/html.php?aid= +0ÿï08@R pornmult.net/tubes/js/rotator.js +1ÿï08@R!porno-monster.ru/images/sex-shop/ +!08@Rporno-telki.com/js/ +6ÿï08@R&porno-tracker.com/assets/js/popping.js +$ÿï08@Rpornogam.tv/img/asd/ +*ÿï08@Rpornorasskazy.com/scripts/ +"08@Rpornovhd.net/img/abc +3ÿï08@R#pornovizion.xyz/global/html5player/ +#ÿï08@Rpornovizion.xyz/tn/ +€08@Rpornreactor.cc^ +&08@Rpost-tracker.ru/bimages/ +208@R$post-tracker.ru/template/images/bg*. +!08@Rpotaskushka.com/js/ +-ÿï08@Rpotokcdn.com/shalun/qwerty.js +ÿï08@Rpoufe.ru/promo/ +6ÿï08@R&poultryukraine.com/data/image/banners/ +"08@Rpovarenok.ru/*bakers +"08@Rpovarenok.ru/css/*/s +%08@Rpovarenok.ru/css/*1.css +&08@Rpovarenok.ru/css/*media. +'08@Rpovarenok.ru/css/*project +&ÿï08@Rpovarenok.ru/i/*/*.jpg + 08@Rpowerwaver.cc^*.js� +'ÿï08@Rpozdrav.ru/img/banners/ +'ÿï08@Rpozdrav.ru/url/*.vfl.ru +&ÿï08@Rppt-online.org/img/zb/ +"ÿï08@Rpr.ikovrov.ru/www/ +(ÿï08@Rpravdapskov.ru/upload/b/ +"08@Rpravo-auto.com^*.php +,ÿï* + hospodar.ua08@R preplay.site^ +108@R#pressball.by/images/template/brand/ +.08@R pressball.by/style/stl_brand.css +<08@R.prestige-gaming.ru/styles/hestia/theme/images/ +-ÿï08@Rprichernomorie.com.ua/i/adin/ +%ÿï08@Rprikol.ru^*/branding_ +%ÿï08@Rprikols.com.ru/eroru/ +;08@R-prilok.ru/templates/Flesha/js/jquery.jmpopups +=ÿï08@R-primamediamts.servicecdn.ru/files2/countdown/ +?ÿï08@R/primamediamts.servicecdn.ru/media/js/reklama.js +ÿï08@Rprimorye.ru/ti/ +0ÿï08@R primpogoda.ru/imported/delivery/ +)08@Rprinterprofi.ru/proxy.php?r +"08@Rpriorovod.ru/button/ +*ÿï08@Rprisnilos.su^*underbanner/ ++ÿï08@Rprivate-records.com/js/s.js ++ÿï08@Rprivatka.ua/images/admin/b/ +"ÿï08@Rprk.city/foto/bnr/ +(08@Rpro.berdyansk.biz/img/pic/ +108@R#pro100news.info/wp-content/uploads/ +C08@R5proagro.com.ua/wp-content/uploads*/proagro_background +?08@R1proagro.com.ua/wp-content/uploads/*/proagro-1920x +;08@R-proagro.com.ua/wp-content/uploads/*1920h1080. +9ÿï08@R)procompsoft.ru/wp-content/cache/min/1/js/ +,ÿï08@Rprocvetok.com/static/*/brand +-ÿï08@Rprodota.ru/templates/betboom/ +"08@Rproelectro.ru/files/ +-ÿï08@Rprofootball.ua/images/banner/ +0ÿï08@R profootball.ua/images/parimatch/ +(ÿï08@Rprofwebsit.ru^*/rotaban_ +,ÿï08@Rprogrammersforum.ru/katajpg. +-ÿï08@Rprogrammersforum.ru/slurmjpg. +/ÿï08@Rprogramy.com.ua/images/banners/ +!08@Rprogrib.ru/download +#ÿï08@Rprogrib.ru/scripts/ ++ÿï08@Rprogrib.ru/ya-papka-wpliva/ +08@Rprojectbase.ru^ +ÿï08@Rprologic.su/b/ + ÿï08@Rprom.x-lime.net^ ++ÿï08@Rpromin.cv.ua/uploads/banner +!ÿï08@Rpromo.livelib.ru/ +)ÿï08@Rpromodeejay.net/branding/ +'ÿï08@Rpromodj.com/st/banners/ +$ÿï08@Rpronpix.ru/*under.js + 08@Rproperm.ru/*banner +,ÿï08@Rprophotos.ru/data/brandings/ +0* + proporno.org08@Rproporno.org^*.php +'ÿï08@Rprosadiogorod.ru/offer/ +&ÿï08@Rprosports.kz/pm_brand_ +Eÿï08@R5prostatitanet.com/wp-content/plugins/pg-advanced-ads/ +-ÿï08@Rprostolinux.ru/wp-content/bn/ +&ÿï08@Rprostopleer.com/t.php? +=ÿï08@R-protdt.ru/wp-content/plugins/pg-advanced-ads/ +5ÿï08@R%protocol.ua/userfiles/client_banners_ +.ÿï08@Rproxyweb.net/js/dhtmlwindow.js +)ÿï08@Rprozhalobu.ru/consultant/ + ÿï08@Rps3club.ru/bans/ +Eÿï08@R5ps3hits.ru/wp-content/themes/custom-community/images/¿ +)ÿï08@Rpsihotesti.ru/script.php? +ÿï08@Rpskovlive.ru/b/ +ÿï08@Rpslan.*/banera/ +608@R(psm7.com/wp-content/uploads/*/1980-1080. +$ÿï08@Rpsxworld.ru/Monetiz/ +7ÿï08@R'psychologies.ru/i/blocks/psy_zen_promo_ +$ÿï08@Rpsywarez.com/banner/ +ÿï08@Rpu.advooble.kz/ +$08@Rpublicagent.ru/file.js +.08@R publicagent.ru/publicagentgo.php +)08@Rpunkt-a.info/images/*banner +$ÿï08@Rpush.autosaratov.ru^ +4ÿï08@R$pvpru.com/board/clientscript/css2.js +$ÿï08@Rpvpru.com^*/banners/ +08@R qip.ru/i/ +08@Rqmp3.cc^ +ÿï08@R quazito.com^ +*ÿï08@Rr*.yaplakal.com/video/get/ +#ÿï08@Rr.dimkriju.bget.ru/ +ÿï08@Rr.e1.ru/images/ +ÿï08@R r.megogo.net/ +08@Rr.z3.fm^ +ÿï08@R +r1.ati.su/ +6ÿï08@R&raceportal.ru/images/partners/banners/ +&ÿï08@Rrada.com.ua/images/bs/ +*ÿï08@Rradioclub.ua/banner_popup/ +(ÿï08@Rradioclub.ua^*/branding/ +,ÿï08@Rradiogrom.com/paint_new/goo. + ÿï08@Rradiokot.ru/adv/ + 08@Rradiopotok.ru/f/b/ +;ÿï08@R+radioradar.net/storage/files/Image/banners/ +,ÿï08@Rradiorecord.ru/assets/tbank/ +%€08@Rradioromantika.ru/smi- +;ÿï08@R+rap-text.ru/templates/raptext/images/banner +*ÿï08@Rraskraska.com/images/bans/ +ÿï08@R +ratke.biz^ +08@R rd-forum.ru^ +08@Rrdrom.ru/js/candy +€08@R reactor.cc^ +%ÿï08@Rreal-game.net/cooper/ +)ÿï08@Rrealcoding.net/foto/*.gif +(ÿï08@Rrealist.online/*/banners +# 08@Rrealmeteo.ru/ads.json +& 08@Rrealmeteo.ru^*index.html +0ÿï08@R realsport.website/uppod/ads.json +6ÿï08@R&realt.by/uploads/pics/bsb-bank_mechty_ +#ÿï08@Rrebenok.by/branding + ÿï08@Rrec.avforums.ru/ +0ÿï08@R recept.ua/files/core/images/adw/ +/ÿï08@Rrecetascomidas.com/base/banner_ +.ÿï08@Rredfm.ru/modules/banerreclama/ +( 08@Rredheadsound.video/*=aHR0c +'ÿï08@Rredheadsound.video/ads/ +!08@Rredo.plus/parse.php +)ÿï08@Rreferatwork.ru/img/banner +4ÿï08@R$referatwork.ru/temporary/vrnwork.gif +&€08@Rregion.dfs.ivi.ru/*.mp4 +-ÿï08@Rregion15.ru/wp-content/*Baner +;08@R-regionnews.net.ua/wp-content/uploads/*banner_ +$ÿï08@Rreibert.info/images/ +.ÿï08@Rrejimm.ru/ckeditor/ckeditor.js +!ÿï08@Rrek.serial24.com/ +"ÿï08@Rrekl.seasonvar.ru/ +.08@R rekportal.ru/wp-content/uploads/ã +"ÿï08@Rrelinka.net/banner +,ÿï08@Rremoteshaman.com^*/gcheck.js +2ÿï08@R"rep.ru/site/get-text-advert-block/ +508@R'repack-fitgirl.com/uploads/generalback- +408@R&repackov.net/templates/games/images/bg +-ÿï08@Rrepackov.net/uploads/banners/ +7ÿï* +radidomapro.ru08@Rreport.capinfopro.ru^ +)ÿï08@Rreporter.ua/home/banners/ +2ÿï08@R"reporter64.ru/uploads/advertising/ +/ÿï08@Rrepost.uz/storage/uploads/*.mp4 +&08@Rresheniya-sudov.ru^*.php +'08@Rresheniya-sudov2.ru^*.php +.ÿï* + pratka.ru* + +ovego.tv08@Rrest^ +)ÿï08@Rrestoclub.ru/pic/iblocks/ +1ÿï* + restoclub.ru08@Rrestotv.ru/promo/ +)08@Rreviewscompanies.club/*.php +&ÿï08@Rrevive.mastergrad.com/ +%ÿï08@Rrfoja.com/*&rfoja.com +#ÿï08@Rrg.ru/api/partners/ +08@Rrg4u.clan.su/js/ +$08@Rrg4u.clan.su/rgbanner/ +$08@Rrgfootball.net/upload/ +(ÿï08@Rria.ru/services/banners/ +ÿï08@R rideo.tv/rkl/ +ÿï08@Rrin.ru/bodyadv. +(ÿï08@Rrin.ru/images/bannerpic/ +08@Rrintor.org/*.js +08@Rrintor.space/*.js +&ÿï08@Rriotpixels.com/ogolop/ +$ÿï08@Rriotpixels.net/playo +(ÿï08@Rritsatv.ru/files/reklama +*ÿï08@Rrlsnet.ru/image_banner_id_ +)ÿï08@Rrlsnet.ru/images/3dbanner +2ÿï08@R"rlsnet.ru/images/banners/branding/ +)ÿï08@Rrobinbob.in/images/promo_ +&ÿï08@Rrock-lee.ru/some_news/ +Bÿï* + pcportal.org08@R"rocket-cdn.ru/assets/open-landing/ +3ÿï08@R#rockstargame.su^*/brand_rotation.js +08@Rroem.ru^ +%ÿï08@Rrose.ixbt.com/banner/ +)ÿï08@Rrosrealt.ru/pics/design2/ +&ÿï08@Rrosteplo.ru/Image/rek/ +0ÿï08@R rostovmama.ru/bypass/*.php?zone= +(ÿï08@Rrotabanner.kulichki.com^ +ÿï08@R rpod.ru/i/b/ +#08@Rrsload.net/image*/ban +*ÿï08@Rrsload.net/images*/2890374 +-ÿï08@Rrsload.net/images*/appwizard. ++ÿï* + vk-cc.com08@Rrss-script.ru^ +'ÿï08@Rrt-ddd.ru/image/banner/ +%ÿï08@Rrt.com/scripts/adfox/ +!ÿï08@Rrtg.real-vin.com/ + ÿï08@Rrtg.ukrmir.info/ +&ÿï08@Rrtkorr.com/js/popup.js +9ÿï* +mediavitrina.ru08@Rrtr-vesti.ru/mh_files/ +!ÿï08@Rrttr2.zaycev.net/ +&ÿï08@Rru-admin.net/clk123.js +#ÿï08@Rru-board.com*/temp/ +$ÿï08@Rru-board.com*/xmtmp/ +"ÿï08@Rru-board.com/bnrs/ +'ÿï08@Rru-board.com/kupitraff. +5ÿï08@R%ru-drivemusic.net/js/download-link.js +)* +bookseason.org08@R ru/s/*.js +ò* +novospasskoe-city.ru* +umnica-krasavica.ru* +pishchevarenie.ru* +prodragmetally.ru* +shungit-zeolit.ru* +sonnikonline.club* +bouncekitchen.ru* +castlerocktv.ru* +ddgroupclub.com* +invalidnost.com* +molitva-info.ru* +mta-resource.ru* +gotovim-edu.ru* +kakzharit.info* +music-radio.ru* +neboleyka.info* +outlandertv.ru* + amazinghis.ru* + anime-chan.me* + bilimdiler.kz* + elektrik-a.su* + festiveall.ru* + grudnichky.ru* + gruziyagid.ru* + kino-teatr.ua* + manga-chan.me* + prazdnovik.ru* + simptomov.com* + stopmusic.net* + tvoilokony.ru* + autotopik.ru* + kinolook.top* + nude-moon.me* + oreshkov.net* + ruslekar.com* + scrubstv.net* + sheldontv.ru* + uralfloor.ru* + yaoi-chan.me* + carolspb.ru* + elfterra.ru* + faston24.ru* + o-polze.com* + psyholic.ru* + ranobes.com* + spafilms.me* + +kinobu.net* + +topsopt.ru* + +xomusic.ru* + 8spoon.ru* + dietdo.ru* + medhea.ru* + mobtop.ru* + +cutur.ru* + +g2019.su* + +hdays.ru* + +ka4ka.ru* + +mcuns.ru* + +mogue.ru* +cars.ru* +car.ru08@Rru^Ì +7€* +forum.fonarevka.ru* + ortocure.ru08@Rru^ ++ÿï08@Rrublacklist.net/media/*vpn. +-ÿï08@Rrublacklist.net/media/banner_ +)ÿï* + +rubook.org08@R rubook.biz^ +"08@Rruero.com/js/pop*.js +ÿï08@R rugrad.eu/bx/ +(ÿï08@Rrulinux.net.ru^*/banner. +"ÿï* +ain.ua08@Rrun.app^ +0ÿï08@R runyweb.com/uploadfiles/image_b/ +)ÿï08@Rrupor73.ru/images/banner/ +#ÿï08@Rrupornotube.me/ext/ +*08@Rrus-torrents.com/myc/clun.js +0ÿï08@R rusavtobus.ru^*/images/*-banner/ +4ÿï08@R$rusdemotivator.ru/uploads/*_*_vb.gif +'ÿï08@Rruseller.com/*/rotor.js +#ÿï08@Rruseo.net/*banners/ +ÿï08@Rrusfond.ru/ad/ +'ÿï08@Rrushkolnik.ru/view.php? +'ÿï08@Rruskino.ru/brand/*/top. +!ÿï08@Rruskino.ru/part3/ +%ÿï08@Rruskweb.ru/bannerbro/ ++08@Rruslan.nashashcola.ru/uploads +#08@Rrusnovosti.ru/upload/ +08@Rruspdd.ru/*.php? +!ÿï08@Rruspicbox.ru/tpl/ ++ÿï08@Rruspicbox.ru^*/clicunder.js +,ÿï08@Rrusradio.ru/uploads/pixel.js +.ÿï08@Rrussian.fi/include/banners.php +;ÿï08@R+russian.rt.com/static/views/wMainBannerTop. ++ÿï08@Rrussiandc.com/ebs_show.php? ++ÿï08@Rrussianfood.com/js/informb_ +&ÿï08@Rrusspornotube.com/ext/ +"ÿï08@Rrustaste.ru/aliban +,ÿï08@Rrustorrents.rustorrents.net^ +&ÿï08@Rrustrackers.ru/banner_ +Fÿï08@R6rutor.org/template/rutor/assets/js/ui.datepicker-ru.js +-ÿï08@Rrutracker-net.ru/img/rtn/ban/ +"ÿï08@Rrutracker.net/004/ +%ÿï08@Rrutracker.net/iframe/ +,ÿï08@Rrutracker.org.ru/download32. ++ÿï08@Rrutracker.org.ru/exitblock/ +"ÿï08@Rrutracker.org/004/ +%ÿï08@Rrutracker.org/iframe/ +,ÿï08@Rrutracker.ru/images/partner/ +)ÿï08@Rrutracker21.org/partners/ +ÿï08@R +rutrk.org/ +%ÿï08@Rrutube.ru/api/advert/ +2 08@R$rutube.ru/pangolin/api/web/yappy/v*/ +H€* + vokrug.tv* + +7days.ru08@R rutube.ru/play/embed/*?autostart +8ÿï* + nashamama.com* + ditey.com08@R +rutube.ru^ +%ÿï08@Rruxox.ru/js/plears.js +1ÿï08@R!rybalka.com/images/forum_buttons/ +#ÿï08@Rrybolov.ee/reklaam/ +308@R%rz.com.ua/sites/default/files/*_*.jpg +5ÿï08@R%rz.com.ua/sites/default/files/baneri- +08@R s*.website^ +9ÿï08@R)s-info.ru/local/templates/*/clientbanner/ +#€08@Rs-platoon.ru/forfon/ +€08@Rs13.ru/icontent/ +ÿï08@R s1block.com^ +&ÿï08@Rsailor.rutracker21.ru/ +'ÿï08@Rsakh.com/includes/yb.js +$ÿï08@Rsalex.ru/access.php? +(ÿï08@Rsalonav.com/SAV_banners/Ï +)ÿï08@Rsama-sama-sama.ru/reclam/ +#ÿï08@Rsamlab.ws/samlab.js + ÿï08@Rsamods.ru/bg.jpg +)ÿï08@Rsamru.ru/images/pic/gifs/ +"08@Rsamsebevoin.ru^*.php +!ÿï08@Rsandero.ru/flash/ +ÿï08@R sapr.ru/lolo/ +#ÿï08@Rsaratovnews.ru/ads_ +(ÿï08@Rsarutobi.ru/espiritgames +$ÿï08@Rsas.kirov.online/bs/ +(ÿï08@Rsasisa.ru/images/*banner +#ÿï08@Rsat-digest.com/bae/ +.ÿï08@Rsat-expert.com/xforum/banners/ +5ÿï08@R%sat-expert.com/xforum/js/RotatingAds/ +8ÿï08@R(satellitetvforum.info/*/premiumsidebars/ +%08@Rsatsat.info/bxaxn/bxaxn +4€* + sberometer.ru08@Rsberometer.ru/*.html +"08@Rsbp-program.ru/scrip +(ÿï08@Rsbup.com/scripts/*banner ++ÿï08@Rsbup.com/scripts/dom_hos.js +'ÿï08@Rscask.ru/images/fx4you. + €08@Rscicenter.online^ +"ÿï08@Rscores24.live/tsr/ +Aÿï* +soccer365.com.ua* + soccer365.ru08@R scr365.net/a/ +!08@Rscreenpost.ru^*.php +<ÿï08@R,scripts.pogodnik.com/public/js/a_detector.js +ÿï08@Rsdamgia.ru/adv/ +!ÿï08@Rsdelanounas.ru/b/ +ÿï08@Rsea.linedia.ru/ +/ÿï08@Rsearchengines.guru/*?tz_offset= +&ÿï08@Rseasonvar.ru/js/rad.js +& 08@Rseasonvar.ru/uppod/*.xml +'08@Rsecond.by/themes/i/brand/ +/ÿï08@Rsecure.rentalcars.com/ELBanner. +6ÿï08@R&selok.ru/wp-content/plugins/f-seo-ads/ +08@Rselonamillion.ru^ +$ÿï08@Rsemestr.ru/skin/anti +0ÿï08@R semestr.ru/skin/plugins/hmwrk.js +'ÿï08@Rsemestr.ru/skin/widgets +0ÿï08@R seob.info/template/banners-code/ +$ÿï08@Rseocafe.info/MEDimg/ +*ÿï08@Rseopult.ru^*/_img/banners/ +*ÿï08@Rserver1.seti.ee/www/ender/ +#08@Rservers-samp.ru^*.php +!ÿï08@Rseti.ee*/reklaam/ +*ÿï08@Rseverpost.ru/img/matrix51/ +$ÿï08@Rseverpost.ru^*banner +-ÿï08@Rseverstalclub.ru/pic/bimages/ ++ÿï08@Rsevnews.info^*/adv_banners/ +%ÿï08@Rsevnews.info^*/flash/ +4ÿï08@R$sex-studentki.*/front/js/unwanted.js +'ÿï08@Rsexgamesbox.com/images/ +'ÿï08@Rsexoporno.su^*/sam-pro- +.ÿï08@Rsfera.fm/assets/media/bannery/ +@ÿï08@R0sfstatic.net/build/js/chunk~propclick-js-main-js +%ÿï08@Rshaiba.kz//images/bg/ +$ÿï08@Rshaiba.kz/images/bg/ +,ÿï08@Rshaiba.kz/images/imprt_imgs/ +3ÿï08@R#shansonline.ru/images/banners/2019/ +?ÿï08@R/shazoo.ru/static/hubs/vk-privacy-mode/banner.js +'ÿï08@Rsheee.co.il/js/walla.js +"08@Rshnyagi.net/*.n.*.js +0ÿï08@R shopping-spb.su/images/*/bg_top. +)ýï08@Rshopping-spb.su/images_b/— +#ÿï08@Rshostka.info/media/ +'€08@Rshow.sc2tv.ru:8080/show/ +'ÿï08@Rshowjet.ru/promolanding +(ÿï08@Rshownewstv.ru/files/all/ ++ÿï08@Rshuba.life/static/branding/ +#ÿï08@Rsia.ru/files/b/kom- +08@Rsibinfo.su/files/ +ÿï08@Rsibmama.info/d/ +ÿï08@R sibmama.ru/d/ +%ÿï08@Rsibnet.ru/iframe-wink +8ÿï08@R(sibnet.ru/legacy/static_templates/sibAd_ +1ÿï08@R!siliconrus.com^*/losssy.jquery.js +$ 08@Rsimptomy-lechenie.net/ +:ÿï08@R*sims-mod.ru/templates/shabl/images/loadUb. +-ÿï08@Rsims3pack.ru^*/YandexBrowser. +"ÿï08@Rsiniy-ekran.ru/rb_ +4* + sitefaktov.ru08@Rsitefaktov.ru/js/*.js +"08@Rsixinch.org/banners/ + ÿï08@Rski.ru/vertelka/ +(ÿï08@Rslavgorod.com.ua/AdTemp/ +.ÿï08@Rslavutich.cn.ua/image/banners/ +!ÿï08@Rslivki.by/banner/ +#ÿï08@Rsm.news/*/rotation/ ++ÿï08@Rsmall-games.info^*/dlufiler +%ÿï08@Rsmart-lab.ru^*/adfox_ +1ÿï08@R!smartphone.ua/inc/images/banners/ +8ÿï08@R(smartpress.by/include/ajax/getVidjet.php +ÿï08@R smi2.ru/data/ +$* +smi2.ru08@R smi2.tv/aa/ ++ÿï08@Rsmile-vkontakte.ru/rekl.jpg +Fÿï08@R6smilekaluga.ru/wp-content/plugins/simple-flash-banner/ +<ÿï08@R,smoldaily.ru/wp-content/themes/smoltime/ads/ +0ÿï08@R smolensk-auto.*/bb/view_mesto_js +1ÿï08@R!smolensk-i.ru/wp-content/banners/ +&ÿï08@Rsmolensk2.ru/branding/ +)08@Rsmotret-multfilmi.net^*.php +1ÿï08@R!smotret-video.ru/vpaid*/single.js +08@Rsmotrikinohit.ru^ +"ÿï08@Rsmotrim.ru/js/A.js ++ÿï08@Rsmotrisport.tv/ajaxx/popup/ +/ÿï08@Rsmotritut.online/uploads/Ramka_ +/ÿï08@Rsmusics.net^*/js/motiongallery. +0ÿï08@R sobaka.ru/assets/*/bannersApi.js + ÿï08@Rsoccer.ru/cio.js +&ÿï08@Rsoccer.ru/scripts/b.js +&ÿï08@Rsoccer.ru^*/adframe.js +&ÿï08@Rsoccer.ru^*rotator.php +#ÿï08@Rsoft-i-kino.ru/tiz. +*ÿï08@Rsoft-landia.ru/java/banner +*08@Rsoft.oszone.net/img/mediaget +9ÿï08@R)soft.sibnet.ru/dist/js/ya-pack_banners.js +'ÿï08@Rsoft4xp.ru/rss_news.php +(ÿï08@Rsoftportal.com/img/tlmn. +:ÿï08@R*softportal.com/js/module.download_popup.js +2ÿï08@R"softslot.com/image/source/banners/ +&ÿï08@Rsoftslot.com/partners/ +5ÿï08@R%solnechnogorsk.net/forum/vsa_banners/ ++ 08@Rsolver.uz/callback_ads_banner +(ÿï08@Rsoptv.ru/scode.php?site= + ÿï08@Rsorokam.ru/game/ +2ÿï08@R"soundpark.rocks/js/script-slide.js +/ÿï08@Rsovetromantica.com/assets/tera/ +:ÿï08@R*sovetromantica.com/assets/videojs*preroll. +"ÿï08@Rsovets.net/teaser/Ý + 08@Rsovets24.ru/?r= ++08@Rsovets24.ru^*/modal-baner.css +0ÿï08@R sovsport.ru/api/smartTableWidget +&ÿï08@Rsozdik.kz/code/js/b.js +%ÿï08@Rspac.me/js/mobiads.js +!ÿï08@Rspace.com.ua/ban_ +&ÿï08@Rspark.ru/upload/promo/ +%08@Rspbdnevnik.ru/media/_b/ +"ÿï08@Rspbit.ru/b_images/ +)ÿï08@Rspecial.matchtv.ru/feeds/ +;ÿï* +dtf.ru* +vc.ru08@Rspecials*.servicecdn.ru/ +'ÿï08@Rspeedtest.org.ua/pirate +(ÿï08@Rspimages.glavmore.ru/r0/ +/ÿï08@Rspletnica-tv.com^*images/brand. + 08@R spletnik.ru/_ +)ÿï08@Rsplkirov.ru/assets/flash/ +08@Rspmag.ru^*.php +(ÿï08@Rsport-express.*/betcity/ ++ÿï08@Rsport-express.ua/img/sadse/ +&ÿï08@Rsport-tv.by/uppod/ads/ +)ÿï08@Rsport-tv.by/uppod/fonbet_ +'ÿï08@Rsport-tv.by^*/khl_*.png +8ÿï08@R(sport.kg/templates/New/img/muras-banner. +$ÿï08@Rsport.ua/js/banners/ +(* + +sport.ua08@Rsport.ua^*.php +&ÿï08@Rsport24.ru/hub-fonbet/ +(ÿï08@Rsportarena.com/branding/ +#08@Rsportbox.ru/_*/rexona +'ÿï08@Rsportnet.live/branding/ ++ÿï08@Rsportnet.live/GD/printstok/ +308@R%sportobzor.ru/templates/site/banners/ +/ÿï08@Rsportobzor.ru/uploads/articles_ +.ÿï08@Rsports.kz/frontend/bannersnew/ +"ÿï08@Rsports.uz/banners/ +&ÿï08@Rspot.uz/js/floating.js +0ÿï* + rus-linux.net08@Rspotleadia.com^ +$ÿï08@Rspotters.net.ua/swf/ +&ÿï08@Rspydevices.ru/reclama_ +Gÿï08@R7spyware-ru.com/wp-content/uploads/2017/05/adguard59.jpg +)ÿï08@Rsravni.ru/special-offers/ +%ÿï08@Rsslkn.*/contents*.mp4 +#ÿï08@Rst.club-lexus.ru/b/ +ÿï08@Rst.hitfile.net/ +$ÿï08@Rst.krasmama.ru/i/bb/ +%ÿï08@Rst.krasmama.ru/stuff/ +(ÿï08@Rst.yandexadexchange.net/ +3ÿï08@R#stabilizatornapryjeniy.ru/*reklamny +:ÿï* +forum.watch.ru08@Rstabs2.clock.ru/company/ +4ÿï* +forum.watch.ru08@Rstabs2.clock.ru/pr +"ÿï08@Rstadion.uz/banner/ +6ÿï08@R&stalkermod.ru/images/stories/img_reksp + 08@Rstarimpex.ru/*.txt +,ÿï08@Rstarkosino.ru/images/banner_ ++08@Rstarkosino.ru/images/stories/ +#ÿï08@Rstars.manystars.ru^ +'ÿï08@Rstart.parimatch.ru/bnr/ +)ÿï08@Rstatbet.com/api/*/offers/ +2ÿï08@R"static.1tv.ru/player/special/vast/ +&ÿï08@Rstatic.bulbul.kg/*/ad/ +1* + minfin.com.ua08@Rstatic.criteo.net^ +3ÿï08@R#static.ctnews.ru/js/prod/uniroll.js +-€* + fastpic.org08@Rstatic.fastpic. +/ÿï08@Rstatic.kanobu.ru/js/criterio.js +$ÿï08@Rstatic.kulina.ru/br/ü +& +08@Rstatic.li.ru/radio/*rmm. +-ÿï08@Rstatic.lostfilm.top/temp/wow_ +*ÿï08@Rstatic.mtml.ru/iqos-promo/ +'ûï08@Rstatic.nn2.ru^*/*banner +:ÿï08@R*static.ohmywishes.com/images/banner-image/ +Jÿï* +bless-news.com08@R(static.parastorage.com/services/wix-vod/ +3ÿï08@R#static.probirka.org/images/banners/ +Jÿï08@R:static.relax.by/images/common/journal_branding_background/ +2ÿï08@R"static.streamsport.online/block.js +3ÿï08@R#static.streamsport.online/loader.js +8ÿï* +mediavitrina.ru08@Rstatic.teletarget.ru^ +Hÿï08@R8static.wmbcdn.com/uniweb/js/modern/YandexAds.client.*.js +'ÿï08@Rstatic.xakep.ru/advert/ +"ÿï08@Rstatic.xam.nu/aff/ +:ÿï08@R*static.xtubeporno.net^*/videojs-overlay.js +&ÿï08@Rstatic2*.org/1200x120/ +&ÿï08@Rstatic2.rutracker.org^ +%08@Rstatic2.t-ru.org/brand/ +3ÿï08@R#station.ru/upload/contents/*210x260 +3ÿï08@R#station.ru/upload/contents/*240x250 +'ÿï08@Rstatuserdata.ru/player/ +9ÿï08@R)stena.ee/sites/default/files/stenaee_rek. +508@R'step2nature.ru/upload/alexkova.popupad/ +0ÿï08@R stereohead.ru/_main_page/images/ + 08@Rstgkrf.ru/*.php? +,ÿï08@Rstoigr.org/uploads/sslsldny. +,ÿï08@Rstopgame.ru/dist/*/stalcraft +Vÿï* +milliarderr.com* + komedra.com08@R$storage.googleapis.com/html5banners/ +)ÿï08@Rstorage.gorod55.ru/promo/ +(ÿï08@Rstorage.vse.rv.ua/blurb/ +*ÿï08@Rstorage2.goodgame.ru/comm/ +!ÿï08@Rstoryroom.ru/bbb/ +"ÿï08@Rstr.eshzdorovo.ru^ +&ÿï08@Rstranamam.ru/i/*/*.jpg +&ÿï08@Rstranaru.ru/media/ban/ +;* +1tv.ru08@R#stream.1tv.ru/api/com-inject.json?r +08@Rstreamapps.ru^ +!08@Rstreamguard.cc^*.js +'08@Rstrikes.ru/steamtrade_net +0€08@R!strm.yandex.*/vh-adfox-converted/ +jÿï* +livejournal.com* +mediavitrina.ru* + +karaoke.ru* + drive2.ru* +1tv.ru08@Rstrm.yandex.ru^ ++ÿï08@Rstroitel-lab.ru/js_content/ +.ÿï08@Rstroy-podskazka.ru/adfallback/ +;ÿï08@R+stroy.ykt.ru/themes/default/js/owlcarousel/ +;08@R-stroyobzor.ua/sites/default/files/styles/bnr_ +*ÿï08@Rstroyvitrina.ru/_a_images/ +*ÿï08@Rstudepedia.org/img/enduro. +,ÿï08@Rstudmed.ru/static/js/chat.js +$ÿï08@Rstulchik.net/addv.js +'ÿï08@Rstulchik.net/stultr.php +&ÿï08@Rsubmitred.freezpic.ru^ +,ÿï08@Rsubscribe.ru/img/new/banner_ +! +08@Rsubscribering.info^ +! +08@Rsubscribesmer.info^ +&ÿï08@Rsud.ua/uploads/banner/ +#ÿï08@Rsudba.info/zozo.php +#ÿï08@Rsuero.tv/exclusive/ +#ÿï08@Rsumypost.com/media/ +" 08@Rsunporno.com/sp2.php +3ÿï08@R#superagronom.com/bridge/getbranding +.ÿï08@Rsuperagronom.com/media/banner/ +(ÿï* +vk.com08@Rsuperfish.com^ +)ÿï08@Rsuperomsk.ru/images/himg/ +3ÿï08@R#superomsk.ru/images/public/banners/‹ +$ +08@Rsuperscalper.ru^*popup +)ÿï08@Rsuzuki-desperado.ru/*.swf ++ÿï08@Rsuzuki-desperado.ru/frends/ +-ÿï08@Rsvadba-kursk.ru/forum/banner/ +$08@Rsvapka.ru/block_script +,ÿï08@Rsvezachok.ru/uploads/loadsv. ++ÿï08@Rsvpressa.ru/js/_svpressa.js +*ÿï08@Rsw19.ru/pictures/texnomag. +0ÿï08@R swip.su/wp-content/uploads/*.gif +408@R&sxem.org/templates/blog_j/images/notka +ÿï08@Rsyl.ru/widget. +-08@Rsympaty.net/wp-content/uploads/ +3ÿï08@R#synonymizer.ru/jquery.bpopup.min.js +2ÿï08@R"sysadmin.link/wp-content/*/banner- +-ÿï08@Rsysadminblog.ru/images/banner +08@R sysadmins.ru^ +-ÿï08@Rsyzran-small.net/images/info/ +ÿï08@Rt-ru.org/misc/ +-08@Rt.all-biography.ru/output/index +#ÿï08@Rt.sur.new.dom43.ru/ +"ÿï08@Rtags*.adshell.net/ +)ÿï08@Rtainoe.o-nas.info/banner/ +1ÿï08@R!takelink.org/engine/ajax/check.js +"ÿï* + dugtor.ru08@Rtalk. +.ÿï08@Rtamboff.ru/other/forum/banners +ÿï08@R tap.az/embed/ + 08@Rtapochek.net/*.php +#ÿï08@Rtayga.info/banners/ +)ÿï08@Rtayga.info/design/banner/ + 08@Rtdaily.ru/api/ad +2ÿï08@R"te4h.ru/wp-content/uploads/elbnpo. +Eÿï08@R5tea-online.ru/wp-content/plugins/slider-by-supsystic/ + ÿï08@Rteksta.org/*.php +%ÿï08@Rteksta.org/images/adv +/ÿï08@Rtelegraf.in.ua/*/images/market_ +0ÿï08@R telegraf.in.ua/uploads/projects/ +.08@R telekomza.ru/wp-content/uploads/ +(ÿï08@Rtelik.top^*randomator.js +%08@Rtelspravochnik.com/src/ +*ÿï08@Rtengrinews.kz/js/loader.js +.ÿï08@Rteremok.org.ua/partner/images/ +9ÿï08@R)ternopillive.com/wp-content/uploads/*.mp4 +;ÿï08@R+ternopillive.com/wp-content/uploads/*/resp_ +@ÿï08@R0ternopillive.com/wp-content/uploads/*/ternet.gif +(08@Rterrikon.com/i/*_branding. +08@Rtexnic.ru/al256/ ++ÿï08@Rtextarchive.ru/abnormal.php +4ÿï08@R$thailandproperty.tv/images/*_banner_ +6ÿï08@R&thealloha.club/index.php?ref=*&domain= +)ÿï08@Rthebell.io/*/ad_providers ++ 08@Rthesame.tv/embed/api/stat/ad? +)€08@Rthesame.tv/partner?partner +-ÿï08@Rthr.ru/public/promo-branding/ +$ÿï08@Rthumbs.ivi.ru^*.swf^ +#08@Rtihvesti.ru/partners/ + ÿï08@Rtime.kz/files/b/ +8ÿï08@R(timeweb.com/bundles/app/img/main-banner/ +*ÿï* +sat.kharkiv.ua08@Rtiny.cc^ +"ÿï08@Rtivix.net/uploads/ +!ÿï08@Rtiz.domovityi.ru/ +5ÿï* +prorecepty.com08@Rtiz.prorecepty.com^ +#08@Rtizba.ru/data/js/*bid +%ÿï08@Rtltgorod.ru/Pics/ban/ +'ÿï08@Rtltnews.ru/img_banners/· +ÿï08@Rtltnews.ru/pic/ +ÿï08@Rtmbw.ru/AdText/ +(ÿï08@Rtnt-online.ru/overlay.js +!ÿï08@Rtnua.info/banner/ +#ÿï08@Rtod-news.com^*-ads- +%08@Rtods-blog.com.ua/files/ +&ÿï08@Rtolknews.ru/_branding/ +&ÿï08@Rtomat-pomidor.com/gra/ +H* +pogodavtomske.ru08@R&tomsk.ru/wp-content/themes/tomsktheme/ +,ÿï08@Rtonkosti.ru/JS/js2mem.js.php +4ÿï08@R$tonkosti.ru/service/get_advplace.php +/ÿï08@Rtonkosti.ru/skins/TonkoWikiNeo/ +(ÿï08@Rtonnakino.me/alldesc.php +:ÿï08@R*top-torrent.org/templates/tt/js/mibroty.js +(ÿï08@Rtopcraft.ru/media/img/b/ +'ÿï08@Rtopfile.tj/img/formula/ +$ÿï08@Rtopfile.tj/img/pari/ +"ÿï08@Rtopse.ru/sotmarket +"ÿï08@Rtopurist.ru/proxy_ +)ÿï08@Rtopvideo.tj/media/banner/ ++ÿï08@Rtopvideo.tj/media/branding/ +*ÿï08@Rtopvideo.tj/media/catfish/ +ÿï08@R topwar.ru/bg/ +&08@Rtornado.3dn.ru/*/bg-vpn. +%ÿï08@Rtorrent-chic.ru/2019/ +?ÿï08@R/torrent-games.*/templatetgnew/images/background +'ÿï08@Rtorrent-ideal.ru/*best/ +(ÿï08@Rtorrent-igri.com/banner/ +Dÿï08@R4torrent-igruha.ru/templates/flat-cinema/js/script.js +08@Rtorrent5.net/blu. +"08@Rtorrenther.com^*.php +?ÿï08@R/torrentinka.me/templates/Default/images/prestol +"08@Rtorrentporno.ru/jrt- + ÿï08@Rtort.fm/banners/ +ÿï08@Rtourdom.ru/_ad/ +'08@Rtourdom.ru/_nuxt/img/*X*_ +, 08@Rtourister.ru/query.php*=adver- +&ÿï08@Rtproger.ru/_nuxt/Lubok +4ÿï08@R$tproger.ru/wp-node/*/rupor/get?link= +>ÿï08@R.tr.anidub.*/templates/Anidub/images/header_bg. +#ÿï08@Rtrack24.ru/img/bnrs +#08@Rtrackitonline.*/pics/ +)ÿï08@Rtrademaster.ua/im/banera/ +,ÿï08@Rtraderhelp.info/js/fixads.js +fÿï* + fanforum.ru* +24.kz08@R>tradingview.com/external-embedding/embed-widget-ticker-tape.js +&ÿï08@Rtraffilm.net/img/brand +%ÿï08@Rtragtorr.in/css/back. +'ÿï08@Rtragtorr.info/css/back. +Dÿï* +trailer.allatv.online08@Rtrailer.allatv.online/*.mp4 +808@R*transinfo.by/files/transinfo/media/bnrscr/ +&ÿï08@Rtrashbox.ru^*/brending +"08@Rtravelgps.com.ua/cg/ +,ÿï08@Rtravelgps.com.ua/js/relink2. +5ÿï* +news-front.info08@Rtravelpayouts.com^ +M* +puerrtto.livejournal.com08@R#trello-attachments.s3.amazonaws.com +%ÿï08@Rtrinixy.ru^*/branding ++ÿï08@Rtrishurupa.ru/*banner/*.gif +-€* +zoneofgames.ru08@R trk.mail.ru^ +ÿï08@Rtrkr.stop1c.ru/ +!ÿï08@Rtropica.ru/img/b/ +"ÿï08@Rtruba.com/i/brand/ +"08@Rtrud-kodeks.ru^*.php +'ÿï08@Rtrud.com/images/banner/ +ÿï08@R trud.ru/ad/ê +ÿï08@Rtrud.ru/saved/ +%ÿï08@Rtrund.chudo-manga.ru/ +(ÿï08@Rtrymobile.ru/tizery_moi/ +ÿï08@R ts.kg/ad/ +ÿë08@R +ts.kg/olol +ÿï08@R ts.kg/oops/ +(ÿï08@Rtsargrad.tv/img/*-bg.jpg +(ÿï* +tsn.ua08@Rtsn.*/banners/ +(08@Rtt-cup.com/static/clients/ +$ÿï08@Rtuchkatv.ru/rotator/ +&ÿï08@Rtulapressa.ru/get_adv. +=ÿï08@R-tulapressa.ru/wp-content/uploads/part-blocks/ +#ÿï08@Rtumix.ru/*/banners/ +!ÿï08@Rturbo.az/banners/ +'€08@Rtureckiy-serial.ru/*.php +&ÿï08@Rturizm.ru/banners2/200 +9ÿï08@R)turkmenportal.com/images/uploads/banners/ +9ÿï08@R)tut.by/scripts/*/intersection-observer.js +%ÿï08@Rtutby.gcdn.co/advert/ +%ÿï08@Rtv2.today/api/banner/ +-ÿï08@Rtvcenter.ru/wp-content/1j9gg. + ÿï08@Rtveda.ru^*banner +!ÿï08@Rtvernews.ru/kc6a/ +1ÿï08@R!tvigle.ru/resource/rf/rkm_disign/ +(ÿï08@Rtvigle.ru^*event=advert_ +-ÿï08@Rtvk6.ru/online/uppod/preroll/ +1ÿï08@R!tvmag.ru/upload/medialibrary/dde/ +)ÿï08@Rtvoemisto.tv/media/candy/ +(ÿï08@Rtvoipitomec.com/*.php?g= +)ÿï08@Rtvoipitomec.info/*.php?g= +(ÿï08@Rtvr.by/video_preroll.mp4 +2 * + tvzvezda.ru08@Rtvzvezda.ru^*/js*n/*/ +6€* + +twirpx.com* + +twirpx.org08@R twirpx.*/*/ +Iÿï* + gamer-mods.ru* + anilover.net* + +jut-su.net08@R +twitch.tv^ +1ÿï08@R!tyachivnews.in.ua/uploads/blocks/ + ÿï08@Rtyt.by^*/banner/ +ÿï08@R u-tv.ru/vast/ +-ÿï08@Rua.news/assets/images/banner/ +7ÿï08@R'ua.news/wp-content/uploads/*/background +:ÿï08@R*uakino.com/templates/uakino/images/banner_ +7ÿï08@R'uakino.com/templates/uakino/images/pbg/ +!ÿï08@Ruaplayer.com/get? +.ÿï08@Ruc-portaller.ru/uc-img/banner/ +(* + nastol.com.ua08@R ucdn.com^ +<ÿï08@R,uchebnik-skachatj-besplatno.com/js/partnerka +€08@Ruchebnik.online^ +$08@Ruchebnikfree.com^*.php +(ÿï08@Ruchil.net/ukropen.net.js +5ÿï08@R%uchim.guru/wp-content/plugins/sp-ads/ +ÿï08@R ucoz.net/adv/ +*ÿï08@Rudargol.com^*/img/branding +*08@Rufamama.ru/components/banner +08@Rufms-gov.ru^*.php +08@Rugkod.com/*.php? +/ÿï08@Rugorod.kr.ua/cache/biz_banners/ +- * + +uikod.ru08@Ruikod.ru^*.php?*=*= +ÿï08@Ruinsell.net/b/ +4ÿï08@R$ukdevilz.com/static/engine/*/vast.js +/ÿï08@Rukrainske.tv/images/ref/banner_ +)ÿï08@Rukrfootball.ua/img/saduf/ +#ÿï08@Rukrlitra.com/banner +&08@Rukrreal.info/im/banners/ +,ÿï* +rus-serial.net08@R +uma.media^ +.ÿï08@Rumovies.club/player/newfon.jpgô +-ÿï08@Rumpro.ru^*/banners_for_umpro/ +&ÿï08@Rumu.org.ua/idi/suda.js +#ÿï08@Runturned-load.ru/c/ + ÿï08@Runvan.az/banner/ +&ÿï08@Runvan.az/reklamexport_ +#ÿï08@Rupl.ua/images/puma_ +#ÿï08@Rupl.ua/images/vbet_ +ÿï08@R upload.ee// +"ÿï08@Rupn.ru/images/bbi/ +08@R ups1*.ru^ ++ÿï08@Ruptracker.ru/images/casino/ +-ÿï08@Rupweek.ru/wp-content/banners/ +.ÿï08@Rura.news/js/dist/aaa.bundle.js +.ÿï08@Rura.news/js/dist/ccc.bundle.js +/ÿï08@Rura.news/widgets/banner_loader/ +*ÿï08@Ruralweb.ru/js/mft/capCode/ +!ÿï08@Ruralweb.ru/promo/ +%ÿï08@Rurbc.ru/uploads/*.swf +ÿï08@Rusa.one/banner/ +$ÿï08@Rut3mk.at.ua/Bannery/ +$ÿï08@Ruti-puti.com.ua/rek/ +,ÿï08@Ruvelir.info/uploads/banners/ +%08@Ruvelir.net^*/rbs_banner +%ÿï08@Ruzreport.news/banner/ +)ÿï08@Ruzreport.news/fotobank/r/ +ÿï08@R uzum.tv/*.swf +ÿï08@R uzum.tv/120/ +08@Ruzumaki.kz/go? +$ÿï08@Rv-androide.com/%22// +*ÿï08@Rv-chulkahh.ru/js/06ea7c.js +!ÿï08@Rv-info.ru/i_bann/ +%ÿï08@Rv-info.ru^*.swf?data= +%ÿï* +ren.tv08@R v.adfox.ru^ +/ÿï08@Rv.tranzistor-harakteristiki.ru^ +ÿï08@Rva.imovies.cc/ +308@R%valetudo.ru/images/stories/system/bg. +(€08@Rvampiretv.ru/bn/index.php +"08@Rvampiretv.ru/vamp.js +Q€* +imenie-home.ru* + vamrecipes.ru* + news-tape.ru08@Rvamproducts.ru^ + ÿï08@Rvandrouki.by/mts +4ÿï08@R$vandrouki.by/wp-content/uploads/*mts +9ÿï08@R)varta1.com.ua/bundle/assets/AdPlaceBlock- +(ÿï08@Rvashdom.ru/image/gagban/ +$ÿï08@Rvashdom.ru/image/rk/ ++ÿï08@Rvashgorod.ru/images/banner/ +0ÿï08@R vashgorod.ru/key/get?partner_id= +'08@Rvbr.ru/files/images/promo +!08@Rvbr.ru/Scripts/tgb? +2ÿï08@R"vbryanske.com/static/js/rotator.js +/ÿï08@Rvc.ru/static/main/img/branding/ ++ÿï08@Rvcdn.biz/*_advert/download/ +&ÿï* + rutube.ru08@R vcdn.biz^ +'ÿï08@Rvdmsti.ru/img/advblock/ +(ÿï08@Rvedmochka.net^*.php?bid= +$ÿï08@Rvenera.appsgames.ru/ +Qÿï* +avtoelektrik-info.ru* + minfin.com.ua* + +finance.ua08@R +venyoo.ru^ ++ÿï08@Rverstov.info/cviews.php?id= +#ÿï08@Rverstov.info/files/ +&ÿï08@Rvesdoloi.ru^*/rekmala_ +%ÿï08@Rveseloeradio.ru/smi-2 +#ÿï08@Rvesnikasert.ru/tiz/ +*ÿï08@Rvesti.kz/ajax/get_banners/ +!ÿï08@Rvesti.ru/banners_ +#ÿï08@Rvesti42.ru/b-files/è +#ÿï08@Rvestiprim.ru/reimg/ +ÿï08@R +vfl.ru/bs/ +"ÿï08@Rvgae.ru/uploads/b/ + ÿï08@Rvidal.ru/banner- +'ÿï08@Rvidal.ru/upload/banner/ +,08@Rvideo.meta.ua/js/player/*vpaid +-ÿï08@Rvideo.penzainform.ru/v/adjax/ +'ÿï08@Rvideochart.net/*[1000k] +'ÿï08@Rvideochart.net/*[1500k] +)ÿï08@Rvideochart.net/img/promo/ +#ÿï08@Rvideochart.net/mn*/ +-€08@Rvideochart.net/partner?partner +&ÿï08@Rvideochart.net/player/ +%ÿï08@Rvideochart.net/vedro/ +08@R videodom.net^ +)ÿï08@Rvideoframe.space/js/vast_ +%ÿï08@Rvideogo.me/online.jpg +'ÿï08@Rvideomore.ru/video/adv_ +:ÿï* +mediavitrina.ru* +1tv.ru08@R videomore.ru^ +$ÿï08@Rvideoprobki.*/brand/ +)ÿï08@Rvideoprobki.*/ext_baners/ +-ÿï* + povarenok.ru08@R videoreka.ru^ +3ÿï* +kopilkaurokov.ru08@Rvideouroki.net^ +1ÿï08@R!vikna.if.ua/assets/upload/banner/ +*ÿï08@Rviknaodessa.od.ua/baner468 +$ÿï08@Rvipidei.com/wp-json/ +'ÿï08@Rvipk-cache.cdnvideo.ru/ +"ÿï08@Rviplist.fun/yandex +1ÿï* + wow-girls.ru08@Rvipromo.biz/tizer +.ÿï08@Rvirusinfo.info/images/bgrd.png +'ÿï08@Rvirusinfo.info^*/brand/ +#ÿï08@Rvk.com/*/ads_light. +"08@Rvk.com/ads_light.php +%ÿï08@Rvk.com/ads_rotate.php +Iÿï08@R9vk.com/dist/web/aliexpress_feed_recommendations_carousel. +'ÿï08@Rvk.com/dist/web/mrtarg. +3* + +vk.com08@Rvk.com/js/al/aes_light.js +08@Rvkaznu.ru^*.php +$ÿï08@Rvkurske.com/banners/ +,* +drom.ru08@Rvl.ru/eda/*/widget/ +5* +forums.drom.ru08@Rvl.ru/widgets/drom.js +ÿï08@Rvlab.su/banner/ +#ÿï08@Rvladmaxi.net/*kadam +*ÿï08@Rvladnews.ru/uploads/newsb/ +'ÿï08@Rvlasti.net/ext/uploads/ +(ÿï08@Rvlasti.net/img/branding/ +%ÿï08@Rvlasti.net/img/dendy. + ÿï08@Rvmeste.xyz/vast/ +-ÿï08@Rvoip.ru/assets/images/banner/ +(ÿï08@Rvokrug.tv/*/kion-slider. +*ÿï08@Rvokrug.tv/*/videopartners/ +,ÿï08@Rvokrug.tv/files/okko_banner/ +*ÿï08@Rvokrug.tv/images/fon_kino. +7ÿï08@R'vokrugsveta.ua/wp-content/*/img/banner_ +&ÿï08@Rvolgo-mame.ru/partner/ +/ÿï08@Rvolnorez.com/static/backscreen/ +$ÿï08@Rvolyn24.com/banners/ +Iÿï08@R9volyninfo.com/core/wp-content/plugins/background-manager/ +Dÿï08@R4volyninfo.com/core/wp-content/uploads/*/Bogdan-avto- +4ÿï08@R$volynnews.com/assets/plugin/banners/ +&ÿï08@Rvolynpost.com/banners/ ++ÿï08@Rvolynpost.com/img/branding/ +(ÿï08@Rvolzsky.ru/upload/flash/ +$ÿï08@Rvorum.ru/files/mpix/Ó +:ÿï08@R*voxpopuli.kz/css/site/images/*/background_ +-ÿï08@Rvoxpopuli.kz/pub/banners/img/ +0ÿï08@R voxpopuli.kz/userfiles/branding/ +&ÿï08@Rvozmi.net/img/*150x250 +Mÿï* +livejournal.com08@R*vp.rambler.ru/player/*/player.html#docking +4ÿï08@R$vplate.ru/bundles/adblock-checker-js +%ÿï08@Rvremya-sovetov.ru/rek +%ÿï08@Rvrgames.by^*/banners/ +08@R +vsatke.ru^ +/ÿï08@Rvse-shutochki.ru/images/dd_adv. +!08@Rvseanime.ru/upload/ +-ÿï08@Rvsegdazdorov.net/proposition/ +) 08@Rvsegdazdorov.net/views/ajax +"ÿï08@Rvseiski.ru/core.js +)ÿï08@Rvseplatezhi.ru^*/banners/ +!08@Rvsestroi.com/files/ +(ÿï08@Rvsetop.org/uploads/yabr. +*ÿï08@Rvsetyt.us/uploads/ruscams. +)ÿï08@Rvsluh.ru/system/*banners/ +5ÿï* +xn--80ady2a0c.xn--p1ai08@R vyksarf.ru^ +*ÿï08@Rwalking-dead.ru/banners.js +$ÿï08@Rwalking-dead.ru/bnr/ +,ÿï08@Rwalla.co.il/cdn/swordfish.js +!ÿï08@Rwalla.co.il/p.php +ÿï08@Rwaralbum.ru/br/ +$ÿï08@Rwarezlab.ru^*rotator +ÿï08@Rwarfiles.ru/bg/ + 08@Rwasd.tv/ssp/roll +ÿï08@R watch.ru/bp/ +>ÿï08@R.watchcine.ru/templates/HDKINOMAX/images/bg.jpg +,* + +wdomain.ru08@Rwdomain.ru/*.php +&ÿï08@Rweacom.ru/abrakadabra/ +:ÿï08@R*weather7.ru/wp-content/uploads/*bonka*.jpg +#ÿï08@Rwebapteka.ru/image/ +0ÿï* +savemypost.com08@Rwebarchive.su^ +(ÿï08@Rwebavangard.com.ua/torg/ + ÿï08@Rwebdiana.ru/tiz/ +!ÿï08@Rwebdiana.ru/turp. +.ÿï08@Rwebfile.ru/media/img/branding. +&ÿï08@Rwebkrug.ru/images/bann +$ÿï08@Rweblancer.net/adver/ +.ÿï08@Rwebmasters.ru/forum/ltbanners/ +$ÿï08@Rwebpark.ru/*/mhealth +/ÿï08@Rwebplus.info/getres.php?getadv= +$€08@Rwebsdr.space/covid19- +*ÿï08@Rwebstat.torrent-rutor.org/ +)ÿï08@Rwebtun.com/uploads/files/ +ÿï08@R wedlife.ru/b/ +'ÿï08@Rwestnews.info/img/baner +;ÿï* + sovets24.ru* + +sovets.net08@Rwhitesaas.com^ +ÿï08@R wi-fi.ru/mtt/ +&ÿï08@Rwidget.ironfriends.ru/ +(ÿï08@Rwifika.ru/bannerbro/img/ +*ÿï08@Rwild-mistress.ru/wmbanner/ + 08@Rwindakeys.ru^*.php +Bÿï08@R2windata.ru/wp-content/plugins/popup-with-fancybox/ +(ÿï08@Rwindows64.net/123456.jpg +*ÿï08@Rwindowspro.ru/universa*.js +2* + windowspro.ru08@Rwindowspro.ru^*.php +$ÿï08@Rwinksplay.ru/fmnr.js +2* + wiselawyer.ru08@Rwiselawyer.ru^*.php +8ÿï08@R(wkino4.net/templates/wkino4/images/body. +ÿï08@Rwmasteru.org/b/ +ÿï08@R wmmail.ru/bn/Ý +€08@Rwomanadvice.ru^ +'ÿï08@Rwomanbook.com.ua/js_ban +#ÿï08@Rwomanonly.ru/hello/ +8ÿï08@R(womens-h.ru/plugins/content/djsuggester/ +'ÿï08@Rwooordhunt.ru/images/b/ +€08@Rworks.doklad.ru/ +$ÿï08@Rworld-art.ru/sort_1/ ++ÿï08@Rworld-of-gamers.net/Yandex_ +,ÿï08@Rworldxfree.info/windowfiles/ +)ÿï08@Rwow-girls.ru/image/banner +!ÿï08@Rwow.allhentai.ru/ +,08@Rwowgaid.ru/wp-content/uploads/ +08@R wowgeek.ru^ + 08@Rwowjp.net/_styles/ +$ÿï08@Rwowjp.net/freespell/ +ÿï08@Rwowlol.ru/left/ +8ÿï08@R(wowskill.ru/wp-content/uploads/*_REKLAMA +08@R wvclub.net^ +/ÿï08@Rwww-mivmeste-info.filesusr.com/ +/ÿï08@Rwww.4ernigiv.info^*/1ua/images/ +&€08@Rwww.arminfo.info/*.html +$ÿï08@Rwww.khl.ru/_banners/ +<€* +www.mp4upload.com08@Rwww.mp4upload.com/*.html +%ÿï08@Rwww.pornolenta.cc/js/ +,ÿï08@Rwww.vesti.ru/i/preloader.gif + 08@Rwww.xxxsexpic.net^ +&ÿï08@Rx-minus.in/assets/rkl/ +7* + x-video.top08@Rx-video.top/templates/*.js +!ÿï08@Rx.kurer-sreda.ru/ +(ÿï08@Rxcadr.tv/contents/other/ +#ÿï08@Rxfont.ru^*/add_ref/ +$ÿï08@Rximepa.ru^*/mediaget +#ÿï08@Rximepa.ru^*bannery/ +ÿï08@R xjp4v.ru^ +$ÿï08@Rxmages.net/*/banner/ +Lÿï08@Rÿï08@R.xn----etbbecbrbp5ahkja1ae7v.xn--p1ai^*/banner/ +0ÿï08@R xn--80atacoxk6a.xn--80asehdb/bn/ +-ÿï08@Rxn--e1avn.xn--p1ai/img/banner +)08@Rxperia-droid.ru*/proxy.php? +08@Rxpicture.ru^*.php +ÿï08@Rxtreme.ws/xad/ +'ÿï08@Rxtubeporno.net/data/js/ +&ÿï08@Rxuy.tv/player*/vast.js +ÿï08@Rxv-ru.com/euto/ +#ÿï08@Rxv-ru.com/zoneload/ +!ÿï08@Rxvideos.com/cams/ ++ÿï08@Rxxx-russian.ru/js/38fbf0.js +%ÿï08@Rxxx-tracker.com/pics/ +#ÿï08@Rxxxmir.info/play.js + ÿï08@Rxxxrolik.net/js/ +08@R xyya.net/sha +7ÿï* +ling-online.net* + engvideo.net08@Rxyz/ +%ÿï* + minfin.com.ua08@Rxyz^ +&ÿï08@Rya2016.com/tizers.html +2ÿï08@R"yakutsk.ru/data/lenta-yakutsk.json +Iÿï08@R9yakutsk.ru/wp-content/themes/yakutsk/assets/js/news-nb.js +cÿï* +games.academic.ru* + +fishki.net* + gazeta.ru* + +lenta.ru* +vz.ru08@Ryandex.*games/ +(08@Ryandex51.ru/joketsuperstar +$ 08@Ryangi-kinolar.ru/vast/ +$ÿï08@Ryangteacher.ru/s.png +!08@Ryangteacher.ru^*.jsˆ +%ÿï08@Ryapantiabp.ru/player/ +$ÿï08@Ryapcdnimg.ru/player/ +.ÿï08@Ryapfiles.ru/uploads/branddata/ +!€08@Ryaplakal.com/html/ +'ÿï08@Ryaplakal.com/html/bans/ +/ÿï08@Ryaplakal.com/html/static/brand- +"08@Ryaplakal.com/player/ +$ÿï08@Ryaplakal1.ru/player/ +(ÿï08@Ryaponlinestat.ru/player/ +(ÿï08@Ryapratingdata.ru/player/ +%ÿï08@Ryapstatdate.ru/video/ +08@R yarportal.ru^ +2ÿï08@R"yastatic.net/partner-code-bundles/ +/ÿï08@Ryastatic.net/safeframe-bundles/ +)ÿï08@Ryastatic.net/taxi-widget/ +Cÿï* +widgets.kinopoisk.ru08@Ryastatic.net/vas-bundles/ +/ÿï08@Ryeisk.info/images/globalbanner/ +,ÿï08@Ryeisk.info/images/topslider/ +(ÿï08@Ryk-news.kz/_nuxt/img/bn_ +€08@Ryk.kz/*/ +ÿï08@Rykt.ru/session? ++ÿï08@Rykt.ru/yaknet/image.asp?id= +ÿï08@Rykt2.ru/inform/ + ÿï08@Ryou-anime.ru/vg/ +08@R youhack.ru^ +5ÿï* + proporno.org08@Ryoutube-nocookie.com^ +Šÿï* +smotret-anime.online* +newstudio-online.tv* +sbornik-music.ru* +subject.com.ua* + geomap.com.ua* + anime-365.ru* + androeed.ru* + fbsearch.ru* + hdrabbit.ru* + lostpix.com* + sinonim.org* + +ukrlit.net* + +zarlit.com* +4put.ru08@Ryoutube.com/embed/ +9ÿï* +168.ru08@Ryoutube.com/embed/?enablejsapi= +¤€* +playvideolink.com* +penzainform.ru* +playreplay.net* +videochart.net* + playreplay.me* + moevideo.net* + +thesame.tv08@Ryoutube.com^*modestbranding +&ÿï08@Ryp.ru/content/Banners/ +%ÿï08@Ryp.ru/content/Slider/ +'ÿï08@Ryuginform.ru/media/ban/ +ÿï08@Ryummy.drom.ru/ +2ÿï08@R"yur-zakon.ru/wp-content/uploads/1/ +'ÿï08@Ryursemya.ru/consultant/ +%ÿï08@Rzadolba.li/img/ur.jpg + 08@Rzadrb.zadrottv.ru^ +(ÿï08@Rzagorod.spb.ru/js/bnr.js +€08@Rzahav.ru/lenta + €08@Rzahav.ru/mirtesen +(ÿï08@Rzakarpattya.net.ua/_adv/ +,ÿï08@Rzakon.ru/BannerManipulation/ +*ÿï08@Rzakon52.ru/load-widget.php +(ÿï08@Rzakonia.ru/imgs/adshtml/ +ÿï08@R zaks.ru/f/ad/ +%08@Rzarlit.com/js/google*js +$ÿï08@Rzaycev.net/single?t= +#ÿï08@Rzbp.ru/backgrounds/ +!ÿï08@Rzegame.net/files/ + ÿï08@Rzelenograd.ru/b/ +#ÿï08@Rzen-test.yandex.ru^ +*ÿï* + hitfile.net08@R zencdn.net^ +'ÿï08@Rzerno-ua.com^*/branding +$ÿï08@Rzerno-ua.com^*/brend +'ÿï08@Rzerno-ua.com^*1920x1080 +ÿï08@Rzh24.com/go/go/ +"ÿï08@Rzh24.com/molodejj/ +'ûï08@Rzhitomir.info^*/banner/ +408@R&zhukvesti.ru/wp-content/uploads/*/adv_ +308@R%zhukvesti.ru/wp-content/uploads/*_adv +ÿï08@Rzk.fm/b/ +#ÿï* +zloy.bz08@Rzloy.im^ +/08@R!znaigorod.ru/assets/public/brand/ +"ÿï08@Rznaj.ua/iframe/zon¡" ++ÿï08@Rznaj.ua/iframe^*/index.html +/ÿï08@Rznanija.com/app/js/__gpt_qpage- +ÿï08@R zol.ru/noteb/ +$÷ï08@Rzoneofgames.ru/brand +5ÿï08@R%zoneofgames.ru/icon/modalframe.min.js +8ÿï08@R(zoneofgames.ru^*/native.video.vast.ad.js +!ÿï08@Rzr.ru/smidesktop. +'ÿï08@Rzserials.cc/tv/amp.html ++ÿï08@Rzvezdakaraoke.com/*.php?id= +)ÿï* + octavia-a5.ru08@Rzzap.ru^ +08@R zzsites.ru^ +Úÿï08@RÉdzen.ru/a/$csp=script-src 'unsafe-inline' 'unsafe-eval' data: static.dzeninfra.ru/react/ static.dzeninfra.ru/s3/zen-lib/ yandex.ru/ads/ vk.com/dist/ vk.com/js/api/videoplayer.js vk.com/dist/public/api/ +àÿï08@RÏdzen.ru/articles$csp=script-src 'unsafe-inline' 'unsafe-eval' data: static.dzeninfra.ru/react/ static.dzeninfra.ru/s3/zen-lib/ yandex.ru/ads/ vk.com/dist/ vk.com/js/api/videoplayer.js vk.com/dist/public/api/ +Üÿï08@RËdzen.ru/news$csp=script-src 'unsafe-inline' 'unsafe-eval' data: static.dzeninfra.ru/react/ static.dzeninfra.ru/s3/zen-lib/ yandex.ru/ads/ vk.com/dist/ vk.com/js/api/videoplayer.js vk.com/dist/public/api/ +08@Rdzen.ru/pogoda/ +=08@R/static.dzeninfra.ru/s3/zen-lib/*/dzen-layout/*_ +;08@R-static.dzeninfra.ru/s3/zen-lib/*/news-site/*_ +°ÿï08@RŸ://pikabu.ru/$csp=connect-src https://pikabu.ru/ajax/ https://pikabu.ru/ajax.php *.pikabu.ru/ data: https://pikabu.ru/.well-known/ wss://pikabu.ru/.well-known/ +4 * + trychatgpt.ru08@Rdmp.mpsuadv.ru/promer +1 * + volley.ru08@Rimasdk.googleapis.com/ +0 * + trychatgpt.ru08@Rmpsuadv.ru/event/ +. * + trychatgpt.ru08@Rmpsuadv.ru/sbor +]ÿï* +besthdwallpaper.com08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js + 08@Rs.zfctrack.net/z + 08@Rs.zhctrack.net/z + 08@Rs.zmctrack.net/z + 08@Rs.znctrack.net/z +W* +www.championat.com* +www.championat.ru08@Rssp.rambler.ru/capirs_async.js +>* + trychatgpt.ru08@Rstatika.mpsuadv.ru/scripts/*.js +§ * +olegmakarenko.ru* +livejournal.com* +vadimrazumov.ru* + shiro-kino.ru* + lena-miro.ru* + periskop.su* + +levik.blog* + shakko.ru08@Rhttps://*adtech_uid= +3ÿï* + drive2.ru08@Rcaptcha-api.yandex.ru^ +ÿï08@R imgfrost.net^ +,ÿï08@Rliveinternet.ru/utf/lici.js? +$ÿï08@Rnews.mail.ru/-/*.js? +;ÿï08@R+newsyou.info/wp-content/plugins/gtranslate/ +% 08@Rpikabu.ru/ajax/*?Ng6w7= +L * + howdyho.net* + howdyho.pro08@R yandex.ru/ads/meta/*?target-ref= +K* + howdyho.net* + howdyho.pro08@Ryandex.ru/ads/system/context.js +G* + howdyho.net* + howdyho.pro08@Ryastatic.net/*-bundles/*.js +.ÿï08@Rvk-apps.com/*?type=leadform&d= +5ÿï* + howdyho.net* + howdyho.pro08@Ryandex. +7ÿï* + howdyho.net* + howdyho.pro08@R yastatic. +Tÿï08@RDwww.ixbt.com#?#body > style:-abp-contains(margin-top) {remove:true;} +Mÿï08@R=vk.com,vk.ru#?#._post_content:-abp-has(.Efxztiz1tCs6S5IDhTuN)6 + howdyho.net + howdyho.pro.g-ads > header > h2B + howdyho.net + howdyho.pro .interesting_block_links::before8 + howdyho.net + howdyho.prodiv[class^="csr-uniq"]( + howdyho.net + howdyho.pro.g-ads7 + howdyho.net + howdyho.prodiv[id^="yandex_rtb"]M +cq.*A[class*="grid"] > a:has(.p-item__button-sponsored) {remove:true;}5 + flightsim.su!#tie-popup-adblock {remove:true;}2 + freesoft.ru#downloadAdModal {remove:true;}. + freesoft.ru#error.modal {remove:true;}: + growhow.in.ua%#custom-background-css {remove:true;}4 + playground.ru#dfpPrerollDelay {remove:true;}0 + the-geek.ru#wp-custom-css {remove:true;}V +vk.*Jhead > style:-abp-contains(/adchoice|mkit_|outlineBanner/i) {remove:true;}# + freesoft.ru#downloadAdModal= +vk.com +vk.ru&#feed_rows > .feed_row > div:not([id])? +vk.com +vk.ru(#feed_rows > .feed_row ~ :not(.feed_row)q +vk.com +vk.ruZ#feed_rows > div[class="feed_row "] > div[id]:not([id^="feed_repost"]):not([data-post-id])µ +vk.com +vk.ru�#main_feed:not(.feed_submit_only_shown) div:first-child:not(.page_block) ~ .feed_row > [data-post-id][id^="post"][post_view_hash]:not([data-post-track-code])? +vk.com +vk.ru(._feed_rows > div:not([id]):not([class])- +vk.com +vk.ru._post_content > .postÈ" +Mÿï08@R=vk.com,vk.ru#?#._post_content:-abp-has(.g03FJ4dTToqroympKAMc) +Mÿï08@R=vk.com,vk.ru#?#._post_content:-abp-has(.l2Q63U68RkAXQkXEoJnJ) +Mÿï08@R=vk.com,vk.ru#?#._post_content:-abp-has(.r4jouGh_Hfn9c5AzpbJg) +Gÿï08@R7vk.com,vk.ru#?#._post_content:-abp-has([src*="mradx."]) +sÿï08@Rcvk.com,vk.ru#?#.feed_row > [id^="post-"] > ._post_content:-abp-has(> :first-child:not(.PostHeader)) +¦ÿï08@R•pikabu.ru#?#.stories-feed__container > .story:-abp-has(div:-abp-properties(/min-height: 20.px|min-height: 29.px|min-height: 30.px|min-height: 300./)) +Pÿï08@R@livejournal.com#?#a:-abp-has(span:-abp-contains(Реклама)) +oÿï08@R_kp.kg,kp.kz,kp.md,kp.ru#?#body > #app div:-abp-properties(background-color: rgb(225, 231, 235)) +³ÿï08@R¢www.e1.ru#?#body > script[src^="https://www.e1.ru/"] ~ #app [itemprop] > figure:-abp-has(span:-abp-contains(чуть-чуть и видео загрузитÑ�Ñ�)) +Fÿï08@R6cq.ru#?#div:-abp-properties(content: "Реклама") +Bÿï08@R2drive2.ru#?#div:-abp-properties(min-height: 555px) +­ÿï08@Rœpikabu.ru#?#div[class*="page-story__"] div:-abp-properties(/min-height: [02345]{2}[0-9]{1}|min-height: calc.|min-height: .+.(cm|in|lh|mm|pt)|height: 250px/) +! * +tele.ru08@Rtele.ru^ +/ 08@R!4736.in/vpaid/?id=*&roll=ab0&ab=1 +* 08@R4736.in/vpaid/?id=*&roll=ab0 +108@R#cdn.jsdelivr.net/npm/cdn4script*.js +!ÿï08@Rtopdbltj.ws/ping/ +ÿï08@R +0001.best^ +ÿï08@R 43100i.cyou^ +ÿï08@R 711u03.top^ +ÿï08@R 884y23.club^ +ÿï08@R 8sjdlsf.club^ +ÿï08@R 923kf.club^ +ÿï08@R bumbum.club^ +ÿï08@R isksds.club^ +ÿï08@R kafar4.club^C +vk.com +vk.ru,.feed_row > [data-post-id]:not([id^="post"])] +vk.com +vk.ruF.feed_row > [data-post-id][id^="post"] > :not([class="_post_content"])S +vk.com +vk.ru<.feed_row > [data-post-id][id^="post"]:not([post_view_hash])6 +vk.com +vk.ru.feed_row > div[class$=" post"] + newsyou.info +.langblock/ + e.mail.ru.layout__column_right-indentedY + sportmail.ru +mail.ru:.media-ui-slider-track > div:last-child [data-qa="Loader"]" + freesoft.ru.modal-backdrop1 +anidubonline.com + +anidub.vip .plyr__menu= +anidubonline.com + +anidub.vip.plyr__progress__bufferC + +fonmod.com + +ritsatv.ru#:not(my-obnaruzhili-blokirovshchik)Œ +android-mafia.com +rustorkacom.lib + game4you.top + rustorka.com + rustorka.net + rustorka.top :not(this-site-promotes-malware)  $elemhide5 +liveinternet.ru + +sdamgia.ru[data-container]1 + +sdamgia.ru[data-name="partial-container"]% +liveinternet.ru[data-wrapper]( +mail.ru[href*="https://dzen.ru"]= + sportsdzen.ru +dzen.ru[href^="https://dzen.ru"]C +vk.com +vk.ru,[id^="post-"] > ._post_content > :only-child· +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru.[role="banner"] > .s-header-extra + div[class]4 + pikabu.ru#article.story[data-text-length="1"]) + +sdamgia.rucenter > div[id][style]P + drive2.ru?div[class$="--equal"] > div[class] > div:not([class]):not([id])I + drive2.ru8div[class$="--equal"] > div[class] > div[id]:not(:empty)G +pogoda.onliner.by +tech.onliner.bydiv[class*="_fixed-height"]9 + pikabu.ru(div[class*="page-story__"] div[style=""]> + e.mail.ru-div[class=""] > div[class=""] > div[class=""]. + +sdamgia.rudiv[class^="google_ad_left"]L +liveinternet.ru + +sdamgia.ru + drive2.rudiv[data-name="adWrapper"]' +rg.rudiv[id][class*="__"]:empty, + shedevrum.aidiv[id^="header_block_"]) + +sdamgia.rudiv[id^="yandex_vario"]1 +liveinternet.rudiv[style*="!important; "]O + +sdamgia.ru=div[style*="important;"][style*="width:"][style*="height:"] *G + www.drive2.ru2iframe[style="display: block; border-width: 0px;"]0 + www.drive2.ruiframe[style="opacity: 1;"]< +liveinternet.ru%style + div > div > div > div > div a� +besplatnyeprogrammy.ru +rutor-gamer.info +torrent-music.ru +torrent-soft.pro +mediagetguru.ru +rutor-gamer.ru +torrentigo.net + inferno.games + only-soft.org + where-game.ru + +hdrip.info + +monna2.top + apad2.top :not(this-site-promotes-malware)ú# +ÿï08@R kajf8.club^ +ÿï08@R sg6sada.club^ +ÿï08@R trampam.club^ +ÿï08@R trysnd.fun^ +'ÿï08@Rwatchmen-the-movie.com^ +ÿï08@R xoixoi.club^ +ÿï08@R +z5002.top^ +³* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@ +Êÿï* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/bundle-vast.min.js +Êÿï* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/bundle.vast.min.js +Êÿï* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/vast-bundle.min.js +Ãÿï* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R /vast.min.js +â * +plplayer.online* +likelol.online* + fplay.online* + playy.online* + tuser.online* + defileb.com* + hovels.info* + rollbun.com* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/vast/MTg?pod= +Åÿï* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/vpaid2.min.js +Ã* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/bundle.min.js +Ê* +plplayer.online* +likelol.online* + fplay.online* + playy.online* + defileb.com* + hovels.info* + +playep.pro* + +plwork.net* + +toplay.biz* + sorb.info* + ttutu.biz08@R/bundle.serial.min.js +ÿï08@R testwest.xyz^ ++ 08@R/point/?method=video_lin*&xl= +"08@R://s*.*ezka.*/i/def_ +&ÿï08@R://s*.*ezka.*/i/promo/ +.ÿï08@R/stargate/?mode=vast&location= +'08@Rru/content/stargate/*.jpg +Kÿï08@R;2ip.io,2ip.ru#?#.content-article p:-abp-has(> .adsbygoogle) +_ÿï08@RO2ip.io,2ip.ru#?#.narrow-column > style ~ div > div:-abp-has(a[style^="color:"]) +˜ÿï08@R‡www.avito.ru#?#div[class^="styles-item-"]:-abp-has(> [data-marker="bx-recommendations-block-item"] > div[class^="body-actions-"]:empty) +cÿï08@RSwww.avito.ru#?#div[class^="styles-item-"]:-abp-has(> div[class^="advert-mimicry-"]) +ÿï08@Ra5el.ml^ +'ÿï* + +avito.ru08@R criteo.net^ +(ÿï* + +avito.ru08@R taboola.com^ +5&* +adblock-tester.com* +checkadblock.ru08@ +Bÿï* +adblock-tester.com* +checkadblock.ru08@R /banners/>:body.has-brand .b-content__main .b-player a[href*="aHR0c"]@ div[id]:not([class]):emptyTPbody.has-brand .b-content__main > div[style^="height: 250px; overflow: hidden;"] +ru #ads-top.ads$ +2ip.io +2ip.ru .ad-test-vpn3 +2ip.io +2ip.rua[href*="://fineproxy.org"]1 +2ip.io +2ip.rua[href*="://finevpn.org"]+ +2ip.io +2ip.rua[href*="://hdmnm"]+ +2ip.io +2ip.rua[href*="://hidem"]5 +2ip.io +2ip.rua[href*="://proxyelite.info"]) + www.avito.rudiv[class^="advert-"], + www.avito.rudiv[class^="items-ads-"]+ + www.avito.rudiv[class^="style-ads"]9 +adblock-tester.com +checkadblock.ru object,embed +checkadblock.ru.warning  + footboom1.com .ads-insert* + footboom1.com.bet-informer__widget1 + footboom1.com.bk-notification ~ .nav__top + footboom1.com .bonus-bk< + footboom1.com'.footer-info__links-column._pwa-disable& + footboom1.com.head-menu__bonus" + footboom1.com .match-action& + footboom1.com.special-projects% + footboom1.com.without-content' + footboom1.com[class^="bookie-"], + footboom1.com[data-popper-placement]- + footboom1.coma[href="/betting/bonus"]2 + footboom1.coma[href="/betting/bookmakers"]@ + footboom1.com+a[href="https://www.footboom1.com/betting"]K + footboom1.com6a[href="https://www.footboom1.com/betting/bookmakers"]W + footboom1.comBa[href="https://www.footboom1.com/casino/review?burgermenucasino"]: + footboom1.com%a[href^="/betting/"][target="_blank"]* + footboom1.comdiv[class*="_bookie"]Á +)ÿï08@Rcdn.footboom.net/img/bet/ +4ÿï08@R$footboom*/dist/app/js/antiAdBlock.js +4ÿï08@R$footboom*/dist/app/js/email-popup.js +2ÿï08@R"footboom*/dist/app/js/menuBonus.js +Eÿï08@R5gismeteo.ru#?#.cities-popular:-abp-has(> .list:empty) +0"* +kino-live2.org* +kino-live8.biz08@ +þÿï* +kino-live10.site* +kino-live11.site* +kino-live12.site* +kino-live1.site* +kino-live2.site* +kino-live3.site* +kino-live5.site* +kino-live6.site* +kino-live7.site* +kino-live8.site* +kino-live9.site* +kino-live2.org08@R/life.js +C * +kino-live2.org* +kino-live8.biz08@R212.113.38.*.m3u8 +A * +kino-live2.org* +kino-live8.biz08@R212.113.38.*.ts +N * +kino-live2.org* +kino-live8.biz08@Rgoogleads.g.doubleclick.net/ +]ÿï08@RMkino-live2.org,kino-live8.biz#?#div[class^="right"] .ramka1:-abp-has(noindex) +ÿï08@Rokp.kg,kp.kz,kp.md,kp.ru#?#body > #app [data-gtm-el="content-body"] ~ div > div:-abp-has(> [data-subscribe-zen]) +©ÿï08@R˜kp.kg,kp.kz,kp.md,kp.ru#?#body > #app div:-abp-has(> div:first-child + div > div:first-child > div:first-child + section > div > div > script[data-key]) +€ÿï08@Rpkp.kg,kp.kz,kp.md,kp.ru#?#body > #app div:last-child:-abp-has(> div > div > div ~ section > div > [id^="unit_"]) +%ÿï08@Rkp.ru/guide/js/brp.js +Cÿï* +kp.kg* +kp.kz* +kp.md* +kp.ru08@R/market-static/ +&ÿï08@Rkp.ru/*/expert-market/* + gismeteo.by.column2 > .section-rss3 + gismeteo.ru .content-column > .section-mediaR + gismeteo.kz + gismeteo.ru0.content-column ~ .content-column > .section-rss: + gismeteo.by + gismeteo.kz + gismeteo.ru .extender_ +meteofor.com.ua + gismeteo.by + gismeteo.kz + gismeteo.ru + meteofor.md .placeholderC +meteofor.com.ua + gismeteo.by + gismeteo.kz.section-media# +meteofor.com.ua .section-rssC + gismeteo.by + gismeteo.kz + gismeteo.ru.sticky > .sectionD + gismeteo.by + gismeteo.kz + gismeteo.ru.top-media-extender$ + gismeteo.ru.widget-container + gismeteo.ru.zen- + gismeteo.rudiv[class*="feed-partner"]% + gismeteo.rusection > .feed-bg< +kp.kg +kp.kz +kp.md +kp.ru[data-subscribe-zen]L +kp.kg +kp.kz +kp.md +kp.ru$[data-test-id="News_SpecialArticle"]= +kp.kg +kp.kz +kp.md +kp.ru[data-without-height]L +kp.kg +kp.kz +kp.md +kp.ru$div[data-name]:not(.buttonContainer)0 +kp.ru#.inner-layout > div[style*="250px"] +kp.ru.kpad +kp.ru.kupi-reklamu-btn +kp.ru .rcard_link +kp.ru#sidebar-block-top +kp.ru.kion__wrapper, +kp.ru.serial-content_container:emptyE +kp.ru8div[style="width: 100%; margin: 30px 0; height: 250px;"]  +kp.ru#HTML1.image_headerM +kp.ru#?>allrecords > div[id^=rec]:-abp-has([href*="/ad.admitad.com/"])G +kp.ru#?8allrecords > div[id^=rec]:-abp-has([id^="marketWidget"])! +kp.ru#saContent .boxFrame  +kp.ru#saContent .kprCont +kp.ru.cmn_r5 +kp.ru(.kplContTxt > img[src*="//qpicture.ru/"] +kp.ru +.tgb_blockB +kp.ru5div[id^="rec"] > div div[style="align-items:center;"] +kp.ru +.ya-market +kp.ru div.ad-slot +kp.ru.afisha-r__block1 +kp.ru$.page-header_tell[href*="/reklama/"] +kp.ru #se-sidebar0 + +radiokp.ru + +sportkp.ru.dna-adfox-block1 + +radiokp.ru.dummy-yandex-zen-channel-block$ + +radiokp.ru.lentainform-block( + +sportkp.rua[href="/advertising"]" +kp.rudiv[class^="ad-slot"]F +kp.ru9div[style*="height:"][style*="250px"][style*="important"]½ +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru4html.html-mobile div[class$="__inner--custom-width"]® +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru%html.html-mobile div[class*=" false"]¢" +kÿï08@R[~e.mail.ru,mail.ru,sportmail.ru#?#[data-qa="WrapperContent"] div:-abp-has(> [data-rb-slot]) +…ÿï08@Ru~e.mail.ru,mail.ru,sportmail.ru#?#tbody:-abp-has(> tr > td > [class*="daynews__item"]) > tr > td ~ td ~ td:last-child +Iÿï08@R9news.mail.ru#?#aside div:-abp-has(> div:only-child:empty)² +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru)html.html-mobile div[class*="--hideable"]³ +olegmakarenko.ru +livejournal.com +vadimrazumov.ru + shiro-kino.ru + lena-miro.ru + periskop.su + +levik.blog + shakko.ru*html.html-mobile div[data-banner-place-id]K + sportmail.ru + e.mail.ru +mail.ru.article__item_conversionlinkA + sportmail.ru + e.mail.ru +mail.ru.article__item_slot[ + sportmail.ru + e.mail.ru +mail.ru-.daynews > table tr > td ~ td ~ td:last-childF + sportmail.ru + e.mail.ru +mail.ru.mailru-visibility-check* +mail.ru.ph-project-promo-containerM + sportmail.ru + e.mail.ru +mail.ru.viewbox__holder .viewbox__sideX + sportmail.ru + e.mail.ru +mail.ru*.viewbox__holder .viewbox__side-loader ~ *G + e.mail.ru +mail.ru)[data-logger-parent="sidebarDoubleRight"]< + sportmail.ru + e.mail.ru +mail.ru[data-rb-slot]N + sportmail.ru + e.mail.ru +mail.ru [data-view^="Slot"][data-adq-id]j + sportmail.ru + e.mail.ru +mail.ru tbody > tr > td:first-child + td + td:last-childC + sportmail.ru + e.mail.ru +mail.rutr > .daynews__springC +octavius.mail.ru + e.mail.ru +mail.ru.stripe-wrapper@ +octavius.mail.ru + e.mail.ru +mail.ru .tgb-wrapperA +octavius.mail.ru + e.mail.ru +mail.ru .tgbv-wrapperC +octavius.mail.ru + e.mail.ru +mail.ru.zenad-card-rtb] +octavius.mail.ru + e.mail.ru8#app-canvas .layout__overflow-container > .advert-columnT +octavius.mail.ru + e.mail.ru/#app-canvas .layout__overflow-container > .slotn +octavius.mail.ru + e.mail.ruI#app-canvas .promo-block-letter + div[class]:not([class*="list-"]):not(a)G +octavius.mail.ru + e.mail.ru"#message-sent__rb-center-container$ + light.mail.ru.direct_septima= +octavius.mail.ru + e.mail.ru.layer-sent-page__bannerW +octavius.mail.ru + e.mail.ru2.layout__content div[data-test-id="promt-tooltip"]: +octavius.mail.ru + e.mail.ru.letter-list-item-adv" + news.mail.ru.m-fixed-panel + news.mail.ru .r-source; + news.mail.ru'.reference-page__card ~ span:last-child +dzen.ru [id*="_tsar"]; + news.mail.ru'aside div > div:first-child:empty ~ div0 + news.mail.rubody > div > style + div[id]( +dzen.rudiv[class*="news-advert"] +dzen.ru [id*="_R-A-"]) +dzen.rudiv[class*="DirectAdvert"]0 + sportsdzen.rudiv[class*="bookmakerOdds"]* +dzen.rudiv[class*="news_branding"]F + sportsdzen.ru +dzen.ru&div[class^="news-"][class*="Branding"]4 +dzen.ru%div[class^="news-"][class*="_banner"]3 +dzen.ru$div[class^="news-"][class*="banger"]1 +dzen.ru"div[class^="news-"][class*="tsar"]< + sportsdzen.ru +dzen.rudiv[class^="news-mt-advert"]( + sportmail.ru.sidebar_video:empty* + sportmail.rua[href="/bookmakers/"]2 + sportmail.rudiv[data-logger="partnerNews"]3 + sportmail.ruspan[class*="p-branding__ears"]1 +pogoda.mail.ru.cols__column__inner_border- +pogoda.mail.ru.forecast-branding-link- +pogoda.mail.ru.js-springs__group__top$ +pogoda.mail.ru.m-fixed-panel  +pogoda.mail.ru +.unprinted9 +pogoda.mail.ru#[data-logger-parent="sidebarRight"]6 + lady.mail.ru"div[class*="sticky-springs__item"]. + horo.mail.ru.js-scroll-to-site__hidden7 + horo.mail.ru#[data-logger-parent="sidebarRight"]G + auto.mail.ru3.grid > .grid__row_table > [name] ~ div:not([name]) + auto.mail.ru .spring_adbý +Yÿï08@RIhi-tech.mail.ru#?#[data-qa="Grid"] > div > div:-abp-has(> [data-rb-slot]) +Yÿï08@RIhi-tech.mail.ru#?#[data-qa="Grid"] > div:-abp-has(> div > [data-rb-slot]) +jÿï08@RZhi-tech.mail.ru#?#[data-qa="Grid"] div:-abp-has(> .marker-adv-holder span[data-qa="Text"]) +Tÿï08@RDpets.mail.ru#?#[data-qa="ArticlesList"] > div:-abp-has(> .pypo-slot) +¨ÿï08@R—minigames.mail.ru,okminigames.mail.ru#?#[href^="https://minigames.imgsmail.ru/static/css/social-likes."] ~ div[class]:-abp-has([href*="/info/adblock"])M + auto.mail.ru9.wrapper > .cols > .cols__wrapper > :not([class*="cols"])1 + auto.mail.rudiv[data-closewrap-container]% + kino.mail.ru.adv-marker_hoverO + kino.mail.ru;.align_left > a[aria-label="Смотреть онлайн"]" + kino.mail.ru.block_ad-text! + kino.mail.ru .p-commercial. + kino.mail.ru.p-movie-intro__commercialK + kino.mail.ru7.p-movie-intro__content-inner .adv-marker_hover ~ .text' + kino.mail.ru.p-tv-major__spring; + kino.mail.ru'.sticky-springs div[style*="position:"]= + kino.mail.ru)[data-logger-parent="sidebarDoubleRight"]0 + kino.mail.rua.button_color_project[name]& + kino.mail.rudiv[class*=" rb_"]& + kino.mail.rudiv[data-required]5 +hi-tech.mail.ru[article-item-type="yawidget"]% +vfokuse.mail.ru.m-fixed-panel$ +health.mail.ru.m-fixed-panel +health.mail.ru.rb9 +health.mail.ru#[data-logger-parent="sidebarRight"]# + pets.mail.ru.adv-marker-boxd + pets.mail.ruP.pm-toolbar__group ~ .pm-toolbar__group .pm-toolbar__banner ~ .js-button [class] + pets.mail.ru +.pypo-slot( + pets.mail.ru.pypo-springs-sticky5 + pets.mail.ru!div[class^="Gallery__slideSide_"]5 + otvet.mail.ru body div div[class*="adv-slot-"]* + otvet.mail.rudiv[class*="_block_"]" + otvet.mail.ru div[data-pos]* + deti.mail.ru.cols__wrapper > aside' + deti.mail.ru.deti-slot_exchange! + deti.mail.ru .js-smoky-end+ +minigames.mail.ru.left-advert-block. + +tv.mail.ru.cols__column_sidebar > span1 + +tv.mail.ru.counters ~ div[id][class*=" "]6 + +tv.mail.ru$.counters ~ span div[id][class*=" "]0 + +tv.mail.ru.js-no-smoky ~ div[class^=" "]7 + +tv.mail.ru%.js-no-smoky ~ span > div[class^=" "]! + +tv.mail.ru.sticky-springs+ + +tv.mail.ru.viewbox__slide_side_show2 + +tv.mail.ru .viewbox__slide_side_show ~ span3 + +tv.mail.ru!.wrapper > .cols [id][class*=" "]Y + +tv.mail.ruG[data-content="Смотреть онлайн в любое времÑ�"]; + +tv.mail.ru)[data-logger-parent="sidebarDoubleRight"]2 + +tv.mail.ru button[data-player*="eid"][name]< + +tv.mail.ru*div[class*="js-popup"] div[id][class*=" "]3 + +my.mail.ru!.b-column-right__block-news-cloud) + +my.mail.ru.b-fourth-pseudo-column( + +my.mail.ru.b-history-event:empty/ + +my.mail.ru.b-history__adv-post-carousel( + +my.mail.ru.b-music__main__banner8 + +my.mail.ru&.b-right-column__block.ui-simple-block, + +my.mail.ru.b-video__native-rb-banner) + +my.mail.ru.b-video__top-rb-banner + +my.mail.ru .l-app__left + +my.mail.ru .l-app__rightE + +my.mail.ru3.l-common__container > div > div[style^="display:"]& + +my.mail.ru.sp-video__billboard2 + +my.mail.ru .ui-simple-block[class*="promo"]Š + +my.mail.rux:not(.l-common__container) > div[style^="position:"][style*=";display:"][style*=";opacity:1;visibility:visible;height:"]/ + +my.mail.rudiv[class^="l-music__banner"]± +€08@R //r.mail.ru/b +)ÿï* +km.ru08@R//rs.mail.ru/b +ÿï08@R1l-hit.mail.ru^ +@ÿï* +octavius.mail.ru* + e.mail.ru08@R ad.mail.ru^ +@ÿï* + +o2.mail.ru* + e.mail.ru08@Ran.mail.ru/count/ + ÿï08@Rbanners.mail.ru^ +$* +mail.ru08@R bs.mail.ru^ ++ÿï08@Rhoro.mail.ru/*/fast-slot.js +#ÿï* +dzen.ru08@Rmail.ru^ +(ÿï08@Rmamba.ru/images/*/promo/ ++ÿï08@Rmedia-advcycle.imgsmail.ru^ +#ÿï08@Rmedia-stat.mail.ru^ +€08@Rmradx.net/img/ +(ÿï08@Rpets.mail.ru/my/pets/add +#ÿï08@Rprivacy-cs.mail.ru^ +È* +health.mail.ru* +pogoda.mail.ru* + otvet.mail.ru* + auto.mail.ru* + deti.mail.ru* + kino.mail.ru* + lady.mail.ru* + pets.mail.ru* + +my.mail.ru* + +tv.mail.ru* + e.mail.ru08@R r.mradx.net/ +08@Rr.mradx.net/r/ +€08@R r.mradx.net^ +"ÿï08@Rradar.imgsmail.ru^ +@ÿï* +account.mail.ru* + +o2.mail.ru08@R rs.mail.ru^ + ÿï08@Rshowbiz.mail.ru^ +Fÿï* +account.mail.ru* + +o2.mail.ru08@Rtop-fwz1.mail.ru^ +#ÿï08@Rtorg.mail.ru/prtnr/ +¦08@R trk.mail.ru^ +ÿï08@R xray.mail.ru^ +Mÿï08@R=mirtesen.ru#?#.topic-block:-abp-has(> .partner-block-wrapper) +Eÿï08@R5mirtesen.ru#?#.topic-block:-abp-has(> [id^="adfox_"]) +Oÿï* + glagol.press* + mirtesen.ru08@Rgamma.mirtesen.ru/aggregator +1ÿï08@R!gamma.mirtesen.ru/jscripts/promo/† + +my.mail.rutdiv[style^="position:"][style*=";display:"][style*=";opacity:1;visibility:visible;height:"] > div[style^="display:"]2 + cloud.mail.rudiv[class*="advHeaderStatic"]/ + cloud.mail.rudiv[class^="Folder__worm"]? + cloud.mail.ru*div[class^="ReactViewer__attachesSidebar"]B + cloud.mail.ru-div[class^="ReactViewer__bottominfoWrapper-"]C + cloud.mail.ru + doc.mail.rudiv[class^="Sidebarinfo__root"]= + cloud.mail.ru + doc.mail.rudiv[class^="Worm__root-"]> + cloud.mail.ru)section > div[class^="Rightinfo__header"]u + dom.mail.rub[data-qa="ArticlesList"] > [data-logger="ListItem"] ~ div:last-child:not([data-logger="ListItem"])" + love.mail.ru.TopBannerSlot! + love.mail.ru .adv-contacts  + love.mail.ru .banner_left + love.mail.ru.link-ad$ +metaratings.ru#bonuses-modal +metaratings.ru.catfish +metaratings.ru.comm +metaratings.ru.fb-comm  +metaratings.ru +.header-bk( +metaratings.ru.users-preferences+ +metaratings.ru[data-type*="banner"]4 +metaratings.rua[class*="Header_headerPromo"]' +metaratings.rua[href^="/promo"]4 +metaratings.rudiv[class^="BookmakersRating"]3 +metaratings.rudiv[class^="Catfish_catfish"]6 +metaratings.ru div[class^="DefaultType_banner"]3 +metaratings.rudiv[class^="ExternalWidget_"]? +metaratings.ru)div[class^="HomeBranding_mainBackground"]0 +metaratings.rudiv[class^="StickyPanel_"]% + mirtesen.ru#very-right-column& + mirtesen.ru.aggregator__header  + glagol.press .no24_teaser) + mirtesen.ru.partner-block-wrapper0 + mirtesen.ru.post-data > div[id^="pad_b"]! + mirtesen.ru.top-block__ad  + mirtesen.ru [id^="unit_"]–/ +&ÿï08@Rgamma.mirtesen.ru/mtop +3ÿï08@R#mirtesen.ru/pa*/js/*&callback=news_ +dÿï* +fanserialstv.net* + fanserial.fun* + fanserial.pw* + fanserial.tv08@R/player/fan.xml +k * +fanserialstv.net* + fanserial.fun* + fanserial.pw* + fanserial.tv08@Rv*.plrjs.org/*.xml?rand= +’ÿï08@R�ok.ru#?#.feed-list > .feed-w:-abp-has(> [class^="feed"] > .feed-header [class] ~ [class] ~ [class] ~ [class] ~ [class] ~ [class]) +tÿï08@Rdok.ru#?#.feed-list > .feed-w:-abp-has([class^="feed"][class*="label"]:-abp-contains(Реклама)) +Tÿï08@RDok.ru#?#.feed-list > .feed-w:-abp-has(button[class*="advert-badge"]) +Cÿï08@R3ok.ru#?#.feed-list > .feed-w:-abp-has(dzen-content) +Yÿï08@RIok.ru#?#[data-logger="SimpleLogger"]:-abp-has([href^="https://dzen.ru/"]) +Kÿï08@R;ok.ru#?#[data-logger="SimpleLogger"]:-abp-has(dzen-content) +fÿï08@RVok.ru#?#div:-abp-has(> #hook_Block_CompactFooter) > div:not(#hook_Block_CompactFooter) +$ÿï* +ok.ru08@R /DzenLoader +(* +ok.ru08@R/res/assets/alf2- +/* +ok.ru08@R/res/assets/RightColumn- +(ÿï* +ok.ru08@R/res/react/dzen +'ÿï08@Rok.ru/web-api/pts/dzen- +.08@R st.mycdn.me/res/i/anonym/jakobs/ +'ÿï08@Roktools.ru/page/static/##root > .app #very-right-column#root > .app .adfox#root > .app .adfox-top($#root > .app .brand-widget__right-cl'##root > .app .partner-block-wrapper#root > .app .sportrecs!#root > .app > .sticky-button0,.app.blog-post-page #blog-post-item-video-ad2..app.blog-post-page .secondary-header-ad-block+'a[href*="://news.mirtesen.ru/newdata/"]H + mirtesen.ru +smi2.ru&a[href*="://smi2.ru/newdata/news?ad="]9 +smi2.ru(a[href*="://smi2.ru/newdata/news?ad="] *v +fanserialstv.net + fanserial.fun + fanserial.pw + fanserial.tv-.article-aside-promo a[href][target="_blank"]‘ +fanserialstv.net + fanserial.fun + fanserial.pw + fanserial.tvH.flex-promo-series > .left-col > :not(#players):not(.serial-series-info)� +fanserialstv.net + fanserial.fun + fanserial.pw + fanserial.tv8.flex-promo-series > .right-col a[href][target="_blank"]1-.article-aside-promo a[href][target="_blank"]LH.flex-promo-series > .left-col > :not(#players):not(.serial-series-info)<8.flex-promo-series > .right-col a[href][target="_blank"]Y +ok.ruL#hook_Block_AsideColumn img:first-child ~ div:not(#hook_Block_CompactFooter)( +ok.ru#hook_Block_AvatarPromoMenu) +ok.ru#hook_Block_FixedPromoBanner- +ok.ru #hook_Block_ForthColumnTopBannerk +ok.ru#?\hook_Block_FourthCol div:-abp-has([class] ~ [class] ~ [class] ~ [class] ~ [class] ~ [class])+ +ok.ru#hook_Block_LeftColumnAdCustom% +ok.ru#hook_Block_TargetBannerQ +okminigames.mail.ru6#ok-wrapper.container div[class][style="width: 100%;"]= +okminigames.mail.ru"#ok-wrapper.container span.js-href+ +ok.ru#rightColumn[data-mouse-wheel]! +ok.ru.dialogWrapperBanner +ok.ru .exit-popup +ok.ru .forthTopAdv% +ok.ru.html5-vpl_oklive-banner) +ok.rudiv[class*="__banner-feed-"]& +ok.rudiv[data-place*="BANNER"] +ok.ru dzen-content& +ok.ru.update-browser_container5 +ok.ru(iframe[src^="//oktools.ru/page/static/"]‡ +sterlitamak1.ru +vladivostok1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru#div-hb-top-forum& +ru#jtn-common-adv-label > path% +ru#ui-common-adv-label > pathý +sterlitamak1.ru +vladivostok1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru.PReP\+ +ru.advLogoWrapper2 +e1.ru%.e1-top-panel__link[title="Ð�вто"]ì +sterlitamak1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru.forum-right-columnê +sterlitamak1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru.forum-top-bannerü +sterlitamak1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru#.global-wrapper > noindex li::afterçK +oÿï08@R_fontanka.ru#?#.gridContainer > [class*="grid"]:-abp-has(> [class] > [href="/format/fproject/"]) +lÿï08@R\fontanka.ru#?#.gridContainer > [class*="grid"]:-abp-has(> [class] > [href^="/pressrelease"]) +Zÿï08@RJfontanka.ru#?#.gridContainer > [class*="grid"]:-abp-has(> [data-creative]) +¸ÿï08@R§116.ru,14.ru,161.ru,164.ru,173.ru,178.ru,26.ru,29.ru,35.ru,43.ru,45.ru,48.ru,51.ru,53.ru,56.ru,59.ru,60.ru,62.ru,63.ru,68.ru,71.ru,72.ru,74.ru,76.ru,86.ru,89.ru,93.ru,chita.ru,e1.ru,ircity.ru,izh1.ru,mgorsk.ru,msk1.ru,ngs.ru,ngs22.ru,ngs24.ru,ngs42.ru,ngs55.ru,ngs70.ru,nn.ru,sochi1.ru,sterlitamak1.ru,tolyatty.ru,ufa1.ru,v1.ru,vladivostok1.ru,voronezh1.ru#?#.gridContainer > div[class*=" grid"]:-abp-has(> [data-creative]) +Âÿï08@R±116.ru,14.ru,161.ru,164.ru,173.ru,178.ru,26.ru,29.ru,35.ru,43.ru,45.ru,48.ru,51.ru,53.ru,56.ru,59.ru,60.ru,62.ru,63.ru,68.ru,71.ru,72.ru,74.ru,76.ru,86.ru,89.ru,93.ru,chita.ru,e1.ru,fontanka.ru,ircity.ru,izh1.ru,mgorsk.ru,msk1.ru,ngs.ru,ngs22.ru,ngs24.ru,ngs42.ru,ngs55.ru,ngs70.ru,nn.ru,sochi1.ru,sterlitamak1.ru,tolyatty.ru,ufa1.ru,v1.ru,vladivostok1.ru,voronezh1.ru#?#.gridTwoThirdLaptop > article:-abp-has(> a[href*="/longread"]) +\ÿï08@RLfontanka.ru#?#.record > div[class]:-abp-has(> div > [href="/pressrelease/"]) +[ÿï08@RKfontanka.ru#?#[class*="pictureDayBlock_"] li:-abp-has(> a[href*="/?erid="]) +zÿï08@Rjwww.e1.ru#?#[data-vr-contentbox="Ð�овоÑ�ть в левой колонке"]:-abp-has(> div ~ div ~ div) +Nÿï08@R>fontanka.ru#?#aside > div[class]:-abp-has([class*="flickity"]) +[ÿï08@RKfontanka.ru#?#div[class]:-abp-has(> div > button + [href="/pressrelease/"]) +¾ÿï08@R­116.ru,14.ru,161.ru,164.ru,173.ru,178.ru,26.ru,29.ru,35.ru,43.ru,45.ru,48.ru,51.ru,53.ru,56.ru,59.ru,60.ru,62.ru,63.ru,68.ru,71.ru,72.ru,74.ru,76.ru,86.ru,89.ru,93.ru,chita.ru,e1.ru,ircity.ru,izh1.ru,mgorsk.ru,msk1.ru,ngs.ru,ngs22.ru,ngs24.ru,ngs42.ru,ngs55.ru,ngs70.ru,nn.ru,sochi1.ru,sterlitamak1.ru,tolyatty.ru,ufa1.ru,v1.ru,vladivostok1.ru,voronezh1.ru#?#div[class^="newsFeedBlock_"] > div[class^="news_"] > a[href*="?erid="] +Èÿï08@R·116.ru,14.ru,161.ru,164.ru,173.ru,178.ru,26.ru,29.ru,35.ru,43.ru,45.ru,48.ru,51.ru,53.ru,56.ru,59.ru,60.ru,62.ru,63.ru,68.ru,71.ru,72.ru,74.ru,76.ru,86.ru,89.ru,93.ru,chita.ru,e1.ru,ircity.ru,izh1.ru,mgorsk.ru,msk1.ru,ngs.ru,ngs22.ru,ngs24.ru,ngs42.ru,ngs55.ru,ngs70.ru,nn.ru,sochi1.ru,sterlitamak1.ru,tolyatty.ru,ufa1.ru,v1.ru,vladivostok1.ru,voronezh1.ru#?#div[class^="newsFeedBlock_"] > div[class^="news_"]:-abp-has(> a[href*="?erid="]) +ÿï08@Rofontanka.ru#?#div[class^="newsFeedBlock_"] > div[class^="news_"]:-abp-has(> a[href^="https://doctorpiter.ru/"]) +¸ÿï08@R§116.ru,14.ru,161.ru,164.ru,173.ru,178.ru,26.ru,29.ru,35.ru,43.ru,45.ru,48.ru,51.ru,53.ru,56.ru,59.ru,60.ru,62.ru,63.ru,68.ru,71.ru,72.ru,74.ru,76.ru,86.ru,89.ru,93.ru,chita.ru,e1.ru,fontanka.ru,ircity.ru,izh1.ru,mgorsk.ru,msk1.ru,ngs.ru,ngs22.ru,ngs24.ru,ngs42.ru,ngs55.ru,ngs70.ru,nn.ru,sochi1.ru,sterlitamak1.ru,tolyatty.ru,ufa1.ru,v1.ru,vladivostok1.ru,voronezh1.ru#?#div[class^="news_"]:-abp-has(> a[href*="/longread"]) +eÿï08@RUfontanka.ru#?#section[class^="sliderWrap_"]:-abp-has(> div > [href="/pressrelease/"]) +Pÿï08@R@fontanka.ru#?#ul > li:-abp-has(> div > div > a[href*="/?erid="]) +‰ÿï* +sterlitamak1.ru* + voronezh1.ru* + tolyatty.ru* + ircity.ru* + mgorsk.ru* + sochi1.ru* + +chita.ru* + +ngs22.ru* + +ngs24.ru* + +ngs42.ru* + +ngs55.ru* + +ngs70.ru* +izh1.ru* +msk1.ru* +ufa1.ru* +116.ru* +161.ru* +164.ru* +178.ru* +ngs.ru* +14.ru* +26.ru* +29.ru* +35.ru* +43.ru* +45.ru* +48.ru* +51.ru* +53.ru* +56.ru* +59.ru* +60.ru* +62.ru* +63.ru* +68.ru* +71.ru* +72.ru* +74.ru* +76.ru* +86.ru* +89.ru* +93.ru* +e1.ru* +nn.ru* +v1.ru08@R$/static/js/build/autoreloadBanner.js +…ÿï* +sterlitamak1.ru* + voronezh1.ru* + tolyatty.ru* + ircity.ru* + mgorsk.ru* + sochi1.ru* + +chita.ru* + +ngs22.ru* + +ngs24.ru* + +ngs42.ru* + +ngs55.ru* + +ngs70.ru* +izh1.ru* +msk1.ru* +ufa1.ru* +116.ru* +161.ru* +164.ru* +178.ru* +ngs.ru* +14.ru* +26.ru* +29.ru* +35.ru* +43.ru* +45.ru* +48.ru* +51.ru* +53.ru* +56.ru* +59.ru* +60.ru* +62.ru* +63.ru* +68.ru* +71.ru* +72.ru* +74.ru* +76.ru* +86.ru* +89.ru* +93.ru* +e1.ru* +nn.ru* +v1.ru08@R /static/js/build/widgetAutoRu.js +�ÿï* +sterlitamak1.ru* + voronezh1.ru* + tolyatty.ru* + ircity.ru* + mgorsk.ru* + sochi1.ru* + +chita.ru* + +ngs22.ru* + +ngs24.ru* + +ngs42.ru* + +ngs55.ru* + +ngs70.ru* +izh1.ru* +msk1.ru* +ufa1.ru* +116.ru* +161.ru* +164.ru* +178.ru* +ngs.ru* +14.ru* +26.ru* +29.ru* +35.ru* +43.ru* +45.ru* +48.ru* +51.ru* +53.ru* +56.ru* +59.ru* +60.ru* +62.ru* +63.ru* +68.ru* +71.ru* +72.ru* +74.ru* +76.ru* +86.ru* +89.ru* +93.ru* +e1.ru* +nn.ru* +v1.ru08@R/static/js/build/widgetN1.js +'08@Rcdn.hsmedia.ru/shkulev-*/? + fontanka.ru,.gridOneThirdLaptop > [class^="sliderWrap_"]( +e1.ru.js-sticky-rotation-banners.jtn-widget-adv# + love.ngs.ru.lv-right-banner) + love.ngs.ru.lv-right__text-advert& +ngsrabota.com.ua.ra-top-banner + sp.ngs.ru .sp-toppromo.widget-autoruF + fontanka.ru3[class*="pictureDayBlock_"] li > a[href*="/?erid="]… +sterlitamak1.ru +vladivostok1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru[data-creative]N + fontanka.ru;[data-io-article-url] > [itemprop="articleBody"] ~ p[class]* +ru [data-ns-portal] [data-adv-mark]8 +ru.[data-ns-portal] div[class^="topicsInlineAdv"]D +ru:[data-ns-portal] div[class^="topicsList"] a[href*="erid="]• +sterlitamak1.ru +vladivostok1.ru + voronezh1.ru + fontanka.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru[data-placement]f + fontanka.ru + +ngs42.ru + +ngs55.ru +116.ru +45.ru +59.ru +93.ru +v1.ru [data-status]] + +chita.ru +ufa1.ru +ngs.ru +72.ru +74.ru +e1.ru[data-test="header-adv-logo"]› + +chita.ru + +ngs55.ru +116.ru +ngs.ru +72.ru +74.ru +e1.ruP[data-test="sticky-header"] > div > div > div > div:first-child:not([data-test])@ +ru6[data-test="text-list-with-dropdown"] a[href*="erid="]F +ru<[data-test="text-list-with-dropdown"] a[href*="erid="] ~ div8 +ru.[data-test="themes-line"] a[href*="/longread"]4 +ru*[data-test="themes-line"] a[href*="erid="]: +ru0[data-test="themes-line"] a[href*="erid="] ~ divü +sterlitamak1.ru + voronezh1.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.ru#a[href*="://auto.ru"][href*="utm_"]- + fontanka.rua[href="/__business_news"]4 + fontanka.ru!article.NVaun > [class] ~ [class]2 + fontanka.ruaside ~ aside > div:first-child= + fontanka.ru*aside ~ div aside > div[class]:first-child + fontanka.ru aside:emptyè +sterlitamak1.ru +vladivostok1.ru + voronezh1.ru + fontanka.ru + tolyatty.ru + ircity.ru + mgorsk.ru + sochi1.ru + +chita.ru + +ngs22.ru + +ngs24.ru + +ngs42.ru + +ngs55.ru + +ngs70.ru +izh1.ru +msk1.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +178.ru +ngs.ru +14.ru +26.ru +29.ru +35.ru +43.ru +45.ru +48.ru +51.ru +53.ru +56.ru +59.ru +60.ru +62.ru +63.ru +68.ru +71.ru +72.ru +74.ru +76.ru +86.ru +89.ru +93.ru +e1.ru +nn.ru +v1.rucdiv[class^="articleBlockFullscreenGallery_"] > div[class^="wrapper_"] > div[class^="slider_"] ~ divj + fontanka.ruWdiv[class^="newsFeedBlock_"] > div[class^="news_"] > a[href^="https://doctorpiter.ru/"]x + www.e1.ru + +chita.ru +ufa1.ru +ngs.ru +72.ru +74.ru4div[data-test="header-sticky"] > div > section ~ div3 + fontanka.ru div[style*="--creative-height:"]< + fontanka.ru)div[style^="order:"] > a[href*="/?erid="]B + fontanka.ru/div[style^="order:"] > a[href*="/?erid="] ~ div+ +e1.ruli[class="e1-nav__item _auto"]™ +vladivostok1.ru + voronezh1.ru + tolyatty.ru + sochi1.ru + www.nn.ru + +ngs24.ru + +ngs55.ru +ufa1.ru +116.ru +161.ru +164.ru +173.ru +ngs.ru +26.ru +59.ru +63.ru +72.ru +74.ru +76.ru +93.ru +e1.ru +v1.ru#noindex ul > li > [data-click-area]5 +ngs.ru +59.ruul > li > a[href*="/longread"]1 +ngs.ru +59.ruul > li > a[href*="erid="]7 +ngs.ru +59.ru ul > li > a[href*="erid="] ~ div +ru#gs-app-wrapper  +ru.Ba" +ru.GameButtons__disableAds! +ru.GameContainerInner__sb•& +'ÿï08@Rcdn.ngs.ru/*/logos/adv/ +9ÿï08@R)newsapi*ru^*/public/jtnews/services/auto/ +0 08@R"newsapi.*.ru/v*/public/auto/offers +/ 08@R!newsapi.ngs.ru/v*/n1/blocks/main/ +4ÿï08@R$ngs.ru/static/js/uglify/dfpScript.js +08@Rreklama*.ngs.ru/ ++ÿï08@Rstatic.ngs.ru/jtnews/*/asdk +Iÿï08@R9www.e1.ru#?#[itemprop] > div:-abp-has(> div > [id*="ad"]) +Mÿï08@R=www.e1.ru#?#[itemprop] > div:-abp-has(> div > [id*="inline"]) +yÿï08@Riwww.e1.ru#?#section:-abp-has(> div[class]:empty + div[class]:empty + div[class]:empty + div[class]:empty) +$ÿï* +e1.ru08@R naydex.net^ +bÿï08@RRoverclockers.ru#?#.container-block:-abp-has(> [class]:not(.container-block) > ins) +Nÿï08@R>overclockers.ru#?#.container-block:-abp-has(> ins:first-child) +Gÿï08@R7overclockers.ru#?#.right-sticky-content:-abp-has(> ins) +`ÿï08@RPoverclockers.ru#?#.spoiler-block:-abp-has(> .spoiler-body > [id^="yandex_rtb_"]) +?ÿï08@R/overclockers.ru#?#div:-abp-has(> #fixScrollPip) +Kÿï08@R;overclockers.ru#?#div[class]:-abp-has(> [id^="pipMtbRoot"]) +‰ÿï08@Ryforums.overclockers.ru#?#table > tbody > tr:-abp-has(> [class^="profile"]:-abp-contains(/Партнер|Реклама/)) +:ÿï08@R*overclockers.ru/assets/app/app-ecatalog.js +2ÿï08@R"overclockers.ru/st/images/banners/ +3ÿï08@R#overclockers.ru/st/images/partners/ +4ÿï08@R$overclockers.ru/static/js/app-pip.js +7ÿï08@R'overclockers.ru/webservice/getPipPlace? +L�* + pornolab.biz* + pornolab.lib* + pornolab.net* + pornolab.cc08@ +sÿï08@Rcpornolab.biz,pornolab.cc,pornolab.lib,pornolab.net#?#.forums > tbody > tr[id]:-abp-has(> td script) +e1.ru[class*=" undefi"]o + +ngs55.ru +116.ru +72.ru +e1.ruC[data-ref="sticky-header-wrap"] > [data-test="sticky-header"] ~ div* +forums.overclockers.ru .adsbygoogle' +overclockers.ru.an-line-between +overclockers.ru.hostkey( +overclockers.ru.inline-recommendK +overclockers.ru4.main-wrap > .grid.ui > div[style="display: block;"]= +overclockers.ru&.mainlist-inline-an > :not(.tag-trend)B +overclockers.ru+.mainlist-inline-an[class*="main-articles"]A +overclockers.ru*.material-content > .column > p > ins ~ br* +overclockers.ru.material-inline-an+ +overclockers.ru.material-other-feed( +forums.overclockers.ru +.needblock; +overclockers.ru$.right-content-wrap.sticky-containerY +overclockers.ruB.top-menu ~ .main-wrap.container > .grid.ui > .row.container-block) +overclockers.ru[id^="pipMtbRoot"]: +overclockers.ru#body > div[class][style*="margin-"], +overclockers.rudiv[class*="__lxG__"]) +overclockers.rudiv[class*="pip-"]O +overclockers.ru8div[itemprop="articleBody"] > div[id^="yandex_rtb"] ~ br® +forums.overclockers.ru�div[style="border: 1px solid #ccc; margin: 5px 0; text-align:center; background-color: #d9e5f1; font-size:20px; font-weight:bold;padding:10px"]5 +overclockers.ruh4.left.aligned.divider.header@ +overclockers.ru)h4.left.aligned.divider.header ~ .dividerN +overclockers.ru7img[src^="https://overclockers.ru/st/images/partners/"]O + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc #banner-stubU + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc#latest_news > divQ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc#logo .bCenter_ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc#main-nav a[target="_blank"]ž + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc[#main_content_wrap > #latest_news > table[width="100%"] > tbody > tr > td[width="100%"] ~ *‹ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.ccH#main_content_wrap > #latest_news > table[width="100%"] > tbody > tr ~ *� + pornolab.biz + pornolab.lib + pornolab.net + pornolab.ccM#main_content_wrap > table[width="100%"] > tbody > tr > td[width="100%"] ~ td_ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc#page_footer .vBottom[style]„ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.ccA#page_header > div[style^="position:"] > a[href][target="_blank"]O + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc #pl-speedbarN + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc #tor-fl-bgnz + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc7.med.bordered.attach > tbody > .tCenter ~ .tCenter + trq + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc..med.bordered.attach > tbody > tr.row1 ~ .row3u + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc2.med.bordered.attach > tbody > tr.row1 ~ .row3 ~ *F + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc.rk”' + ÿï08@Radblocksosal.ru^ +Zÿï* + pornolab.biz* + pornolab.lib* + pornolab.net* + pornolab.cc08@R ngenix.net^ +!ÿï08@Rpornolab.net/004/ +\ÿï* + pornolab.biz* + pornolab.lib* + pornolab.net* + pornolab.cc08@R vsex-shop.ru^ +ï * +progoroduhta.ru* +prochepetsk.ru* + progorod33.ru* + progorod43.ru* + progorod58.ru* + progorod59.ru* + progorod62.ru* + progorod76.ru* + progorodnn.ru* + +prodzer.ru* +pg11.ru* +pg12.ru* +pg13.ru* +pg21.ru08@R /api/banner +Xÿï08@RHlenta.ru#?#._longgrid:-abp-has(> [class*="info"] > [class*="_ad-title"]) +bÿï08@RReda.ru#?#.ad_branding_footer div[class^="emotion"]:-abp-has(> [title="yandexzen"]) +rÿï08@Rbavtorambler.com,rambler.ru#?#.commercial-branding div:-abp-has(> a[href^="https://ads.adfox.ru/"])Y + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc.tCenter.nowrap.mrg_12f + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc#.tCenter.nowrap.mrg_12 + div[style]R + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc[id*="adriver"]] + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cc[src*="pornolab.net/004/"][ + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cca[href*="sex.batsa.pro"]V + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cca[href*="toy69.ru"]Y + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cca[href*="vsexshop.ru"]Q + pornolab.biz + pornolab.lib + pornolab.net + pornolab.ccdiv[id^="bn-"]X + pornolab.biz + pornolab.lib + pornolab.net + pornolab.cciframe[src*="banner"]ƒ +progorodchelny.ru +progorodsamara.ru +progorodnsk.ru + progorod59.ru + ngnovoros.ru + prokazan.ru +ngzt.ru.adf-insñ +progoroduhta.ru +prochepetsk.ru + progorod33.ru + progorod43.ru + progorod58.ru + progorod59.ru + progorod62.ru + progorod76.ru + progorodnn.ru + +prodzer.ru +pg11.ru +pg12.ru +pg13.ru +pg21.ru.contentRightMainBannerë +progoroduhta.ru +prochepetsk.ru + progorod33.ru + progorod43.ru + progorod58.ru + progorod59.ru + progorod62.ru + progorod76.ru + progorodnn.ru + +prodzer.ru +pg11.ru +pg12.ru +pg13.ru +pg21.ru[class^="banner"]… +progorodchelny.ru +progorodsamara.ru +progorodnsk.ru + progorod59.ru + ngnovoros.ru + prokazan.ru +ngzt.ru +[data-ads]V + progorod43.ru + progorod62.ru +pg12.ru +pg13.ru +pg21.ru[data-id-promo]@ + +prodzer.ru.div[class^="news-card_newsPreviewRight"]:emptyð +progoroduhta.ru +prochepetsk.ru + progorod33.ru + progorod43.ru + progorod58.ru + progorod76.ru + progorodnn.ru + +prodzer.ru +pg11.ru +pg12.ru +pg13.ru +pg21.ru8div[class^="social-list-subscribe"] > a[href*="yandex."]  +www.rambler.ru +#app > .add +auto.rambler.ru +avtorambler.com:#app > .ad_branding_header ~ div[class] > div[class]:empty) +www.rambler.ru#app > script + div +eda.ru +#billboard/ +daily.afisha.ru#partners-news-container  + www.afisha.ru #yandex-zen+ +eda.ru.ad_branding_header > section@ +avtorambler.com + +rambler.ru.adfox-background-container0 +championat.com + championat.ru .adv-mark) + +lenta.ru.advertisable-plate__erid, + gazeta.ru.b_nav > a[target="_blank"] + gazeta.ru .b_telegramG +championat.com + championat.ru + gazeta.ru + +lenta.ru.banner( + +lenta.ru.banner + div[class][id]7 +championat.com + championat.ru.banner-announce7 +championat.com + championat.ru.banner-parallaxt +avtorambler.com + +rambler.ruO.commercial-branding [id^="rambler-currency-converter-container:"] + div[class]{ +avtorambler.com + +rambler.ruV.commercial-branding article > div:only-child > div:first-child + div + div:last-child + +lenta.ru.custom-banner; + vp.rambler.ru&.eagleplayer-advertisement-remain-time( + vp.rambler.ru.eplayer-time-to-ad, +finance.rambler.ru.finance__partners# +horoscopes.rambler.ru.fzwuC3 +championat.com + championat.ru .game-of-day: +championat.com + championat.ru.header-bottom__adv= +championat.com + championat.ru.infographic-countdown8 +championat.com + championat.ru.infographic-duelz + secretmag.ru + moslenta.ru + +letidor.ru + +passion.ru + +ferra.ru + +motor.ru +quto.ru +wmj.ru.lb-ad-visible + gazeta.ru.m_zen + +lenta.ru .promo-block  + gazeta.ru.rcmw-containerb +championat.com + championat.ru;.recommender-block ~ .banner + div:not([class*="comments"])/ +top100.rambler.ru.rui-Snackbar-snackbarP + moslenta.ru=.sideColumn > div[class] > div[style^="margin-bottom:"] + div; +championat.com + championat.ru.stat-widget__banner; +championat.com + championat.ru.stat-widget__header' + +lenta.ru.topic-page__info ~ div + +lenta.ru .yandex-games2 + www.afisha.ru[aria-label="Реклама"]9 +mail.rambler.ru"[class*="MaillistItemAdvertPlace"]²# +|ÿï08@Rlwww.afisha.ru#?#[data-test="SECTION"] > [data-test="SECTION-CONTENT"]:-abp-has(> div > [href^="/out/?url="]) +fÿï08@RVavtorambler.com,rambler.ru#?#[id^="rambler-"] ~ div:-abp-has(> div > [data-rcmw-init]) +Wÿï08@RGrambler.ru#?#article div:-abp-has(> div > [id^="rcmw-container"]:empty) +mÿï08@R]avtorambler.com,rambler.ru#?#aside:-abp-has(> div > [class^="banner--native-partner_widget"]) +7ÿï08@R'gazeta.ru#?#div:-abp-has(> .b_telegram) +Oÿï08@R?horoscopes.rambler.ru#?#div:-abp-has(> [id^="rcmw-container-"]) +£ÿï08@R’www.rambler.ru#?#div:-abp-has(> div > [data-cerber^="widgets-carousel:"]) + div > div > div > div:-abp-has(> div a[href^="https://ads.adfox.ru/"]) +Pÿï08@R@avtorambler.com,rambler.ru#?#div:-abp-has(> div[id*=":_adfox_"]) +]ÿï08@RMavtorambler.com,rambler.ru#?#div:-abp-has(> div[id^="adfox-"][id*="rambler"])R +auto.rambler.ru +avtorambler.com([data-auto_media-desktop*="rnet_widget"]C +doctor.rambler.ru*[data-doctor_media-desktop*="rnet_widget"]E +finance.rambler.ru+[data-finance_media-desktop*="rnet_widget"]G +championat.com + championat.ru [data-goal-label="coeff_fonbet"]@ +championat.com + championat.ru[data-href*="okko.sport"]: +championat.com + championat.ru[data-href*="utm_"]6 + +motor.ru&[data-motor-desktop*="exchange_block"]: + +rambler.ru([data-news_media-desktop*="rnet_widget"]5 +avtorambler.com + +rambler.ru[data-rcmw-init]A +sport.rambler.ru)[data-sport_media-desktop*="rnet_widget"]C +travel.rambler.ru*[data-travel_media-desktop*="rnet_widget"]; + gazeta.ru*[data-url^="https://www.gazeta.ru/prcom/"]E +weekend.rambler.ru+[data-weekend_media-desktop*="rnet_widget"]A +woman.rambler.ru)[data-woman_media-desktop*="rnet_widget"]; +avtorambler.com + +rambler.ru[id^="rambler-promo-"]G + moslenta.ru + +letidor.ru + +passion.ru +quto.ru [id^="unit_"]‡ +horoscopes.rambler.ruj[itemtype="http://schema.org/Article"] > div[class]:nth-last-of-type(2) > div:last-child > div + div ~ div! +eda.ru[title="yandexzen"]@ + +lenta.ru0a[class="card-mini _topnews"][href^="/extlink/"]? +avtorambler.com + +rambler.rua[href*="//ads.adfox.ru/"]' + afisha.rua[href*="://dzen.ru/"]! + +lenta.rua[href*="?erid="]; +championat.com + championat.rua[href*="offer_id="]H +championat.com + championat.ru + +lenta.rua[href*="okko.sport"]* + www.afisha.rua[href^="/out/?url="]ˆ +finance.rambler.runbody[data-finance_media-desktop="main"] .commercial-branding > nav ~ div > div > script ~ div > div:last-child. +mail.rambler.rudiv[class*="Ad-direct"], +mail.rambler.rudiv[class*="Ad-root"]1 +mail.rambler.rudiv[class*="AddBillboard"]; +mail.rambler.ru$div[class*="AppContainer-adWrapper"]7 +mail.rambler.ru div[class*="SentLetter-context"]: +avtorambler.com + +rambler.rudiv[class*="banner-"]l + moslenta.ru + +letidor.ru + +passion.ru + +rambler.ru + gazeta.ru +quto.rudiv[class*="billboard"]2 + +lenta.ru"div[class*="goodnews"][class*=" "]1 +horoscopes.rambler.rudiv[class][style=""]) + www.afisha.rudiv[class^="Advert"]. +nova.rambler.rudiv[class^="DirectMKB"]u +nova.rambler.ru^div[class^="LayoutSearch"] section > article[class*=" Serp__item"]:not([class^=" Serp__item"])$ +r0.rudiv[class^="News__adv"]K + afisha.ru:div[data-test*="HONEY-AD"] > [data-test="FALLBACK"] > span( + gazeta.rudiv[id^="_g_exchange_"]D +avtorambler.com + +rambler.rudiv[id^="rambler-info-banner-"]S +avtorambler.com + +rambler.ru.div[id^="rcmw-container-"][id*="-horizontal-"]" + +rambler.rudiv[id^="rnet_"]J +avtorambler.com + +rambler.ru%div[style="min-height: 600px;"] ~ divH +avtorambler.com + +rambler.ru#div[style="min-height:600px"] ~ div[ +avtorambler.com + +rambler.ru6div[style^="height: 290px"][style*="overflow: hidden"]1 + +rambler.rudiv[style^="min-height: 140px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 240px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 250px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 290px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 300px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 400px"]D +avtorambler.com + +rambler.rudiv[style^="min-height: 600px"]0 + +rambler.rudiv[style^="min-height:140px"]ª +.ÿï08@Rchampionat.*/embeds/custom.css +0ÿï08@R cpa-elements.rambler.ru/*/sdk.js +/ÿï08@Rembeds.rambler.ru/cpa-elements/ +,ÿï08@Rimg.championat.*/brand/*.png +9ÿï* +kraken.rambler.ru08@Rkraken.rambler.ru^ + ÿï08@Rlenta.ru/fenwick +)ÿï08@Rrambler.ru/*/okko-metrics +?ÿï08@R/rcmjs.rambler.ru/static/rcmw/rcmw.*.horizontal. +6ÿï08@R&rcmjs.rambler.ru/static/recommender.js +3ÿï* +ssp.rambler.ru08@Rssp.rambler.ru^ +?ÿï08@R/static.gazeta.ru/nm2021/js/others_scripts_v6.js +%ÿï08@Rtrafffgen.rambler.ru^ +#ÿï08@Rwinline.rambler.ru^ +hÿï08@RXavtorambler.com,rambler.ru#?#.commercial-branding div:-abp-properties(min-height: 125px) +Jÿï08@R:rambler.ru#?#body > div:-abp-properties(min-height: 250px) +Kÿï08@R;weather.rambler.ru#?#div:-abp-properties(min-height: 400px) +Kÿï08@R;weather.rambler.ru#?#div:-abp-properties(min-height: 600px) +°ÿï08@RŸavtorambler.com,rambler.ru#?#div:-abp-has(> div[style^="min-height:"]) > p ~ div:-abp-contains(Продолжение иÑ�тории поÑ�ле рекламы) +Cÿï08@R3rbc.ru#?#.item-in-article:-abp-has([href*="erid="]) +mÿï08@R]rbc.ru#?#.js-index-central-column .js-index-doscroll:-abp-has([data-pixels-on-show*="adfox"]) +^ÿï08@RNrbc.ru#?#.js-index-central-column .js-index-doscroll:-abp-has([href*="erid="]) +�ÿï08@Rqrbc.ru#?#.js-index-central-column > [data-publisher-index]:-abp-has(.item__bottom > [href^="https://pro.rbc.ru"]) +Eÿï08@R5rbc.ru#?#.l-col-100h:-abp-has(> div [href*="banner"]) +Vÿï08@RFutro.ru#?#.news-group__content > .news-group__item:-abp-has(> .banner) +yÿï08@Ricnews.ru#?#.section_mainnews > .container:-abp-has(> .line_pattern > a[href^="https://market.cnews.ru/"])C +avtorambler.com + +rambler.rudiv[style^="min-height:240px"]C +avtorambler.com + +rambler.rudiv[style^="min-height:250px"]C +avtorambler.com + +rambler.rudiv[style^="min-height:290px"]C +avtorambler.com + +rambler.rudiv[style^="min-height:300px"]C +avtorambler.com + +rambler.rudiv[style^="min-height:400px"]C +avtorambler.com + +rambler.rudiv[style^="min-height:600px"]F +avtorambler.com + +rambler.ru!div[style^="order:"][style*="-1"]8 +avtorambler.com + +rambler.rurambler-info-bannerD +www.rambler.ru#?,app > div:-abp-properties(min-height: 250px)" + +cnews.ru +utro.ru.banner + sportrbc.ru +.bet-block +rbc.ru +.countdown +rbc.ru.deposit-block +rbc.ru .fox-fallbackZ + sportrbc.ru +rbc.ru=.g-banner__news-footer > div[class="js-rbcslider-multi-news"]' + safe.cnews.ru.header-brand-logo" + +pro.rbc.ru.header__partner$ +rbc.ru.header__project__info. + sportrbc.ru.js-header-slider-container7 +rbc.ru).js-index-central-column .item_promo-cardo +rbc.rua.js-index-central-column > [data-publisher-index] .list-slider-item [href^="https://pro.rbc.ru/"]$ +rbc.ru.js-index-doscroll-pro) + cash.rbc.ru.js-one-office.premium& +rbc.ru.js-video-player-ad-skip +rbc.ru +.mts-promo0 +rbc.ru".news-feed a[href*="utm_campaign"]D + +cnews.ru4.objects_row > .cnb-zone > a:not([href*="cnews.ru"])4 + +rbclife.ru +rbc.ru.rbc-header-hide-banners5 + +rbclife.ru +rbc.ru.rbc-header-project-image  .rbcobmen  +rbc.ru.right-promo-block* + www.cnews.ru.section_widget_market# +rbc.ru.shopping-card-buttonG +rbc.ru9.showcase-collection__logo,.showcase-collection__subtitle  +rbc.ru.simple-promo-card& + sportrbc.ru.statistics__footerS + +rbclife.ru +rbc.ru7.swiper-wrapper > .swiper-slide a[href*="utm_campaign"] + +cnews.ru .tizer_blockH + autodaily.ru + autonews.ru +rbc.ru.topline__branding__wrapperû* +V* + autodaily.ru* + autonews.ru* + sportrbc.ru* +rbc.ru08@R/browser-updater +b* + autodaily.ru* + autonews.ru* + sportrbc.ru* +rbc.ru08@R/rbcbanners-*/_fullscreen.js +^ÿï08@RNutro.ru#?#[class*="title"]:-abp-contains(/новоÑ�ти партнеров/i) +Šÿï08@Rzrbc.ru#?#[data-vr-zone="Топ новоÑ�ти"] div:-abp-has(> a[href*="utm_campaign"]:not([href^="https://pro.rbc.ru/"])) +_ÿï08@ROcnews.ru#?#a[href^="https://www.cnews.ru/redirect.php"]:-abp-contains(Дзен) +;ÿï* +rbc.ru08@R!api.mindbox.ru/scripts/*/tracker. +4ÿï08@R$cnews.ru/inc/js/height_max_banner.js +6ÿï* + www.cnews.ru08@Rmarket.cnews.ru/widget +)ÿï08@Rrbc.ru/*/social-networks/ +)ÿï08@Rrbk.ru/*/_mtsFloorAida.js +-ÿï08@Rrbk.ru/*/_renderAggregator.js +)ÿï08@Rrbk.ru/*_videoCommercial. +%ÿï08@Rrbk.ru^*/_yaDirect.js +"ÿï08@Rutro.ru/*/banners/ +'ÿï08@Rzoom.cnews.ru/inc/bpic/ +œÿï08@R‹gdespaces.com,gdespaces.net,spac.me,spac.run,spac.wtf,spac1.com,spac1.net,spac1.org,spaces-blogs.com,spaces.im,spcs-files.xyz,spcs.bio,spcs.life,spcs.me,spcs.mobi,spcs.network,spcs.pro,spcs.reviews,spcs.social#?#div[class]:-abp-has(> a[title] ~ a[title] > div[class]) +ó* +google-cloud.services* +spaces-blogs.com* +spcs-files.xyz* + gdespaces.com* + gdespaces.net* + usersporn.com* + spcs.network* + spcs.reviews* + spcs.social* + strip2.club* + +strip2.xxx* + spac1.com* + spac1.net* + spac1.org* + spaces.im* + spcs.life* + spcs.mobi* + strip2.in* + +spac.run* + +spac.wtf* + +spcs.bio* + +spcs.pro* +spac.me* +spcs.me08@Rworld/ +wÿï08@Rgsports.ru#?#.material-list__item:-abp-has(.content-label:-abp-contains(/Реклама|Pеклама/))Y + autodaily.ru + autonews.ru + sportrbc.ru +rbc.ru.topline__disable-adv__buttonW + autodaily.ru + autonews.ru + sportrbc.ru +rbc.ru.topline__item__image-block3 +rbc.ru%.video-player__controls__ad-countdown +rbc.ru[data-placement][ +rbc.ruM[data-vr-zone="ГлавнаÑ� новоÑ�ть"] a[href^="https://pro.rbc.ru/"]D +rbc.ru6[data-vr-zone="ГлавнаÑ� новоÑ�ть"]::beforeo +rbc.rua[data-vr-zone="Топ новоÑ�ти"] a[href*="utm_campaign"]:not([href^="https://pro.rbc.ru/"])S +rbc.ruE[data-vr-zone="Топ новоÑ�ти"] a[href^="https://pro.rbc.ru/"]. +rbc.ru [data-yandex-name^="selfpromo_"]9 +rbc.ru+[data-yandex-show="cards_marketplace_show"]5 +rbc.ru'[data-yandex-show^="commercial_cards_"]^ + autodaily.ru + autonews.ru + sportrbc.ru +utro.ru +rbc.ru +rbc.ua [id^="unit_"]6 +rbc.ru(a.video-player__details[target="_blank"]0 + +quote.ru a[href*="bannersdisable_button"]4 + sportrbc.ru!a[href*="erid="][target="_blank"]B + +quote.ru2a[href="https://quote.ru/?utm_source=topline"] imgW + autodaily.ru + autonews.ru + sportrbc.ru +rbc.rubody div .banner__containerW + autodaily.ru + autonews.ru + sportrbc.ru +rbc.rubody div .banner__filmstrip` + autodaily.ru + autonews.ru + sportrbc.ru + +rbclife.ru +rbc.rudiv[class^="fox-tail"]0 +rbc.ru"div[class^="item-slider__partner"]+ +utro.rudiv[class^="partners-block"]_ + usersporn.com + strip2.club + +strip2.xxx + strip2.in #sidebar > div[class]:last-childŽ +google-cloud.services + usersporn.com + strip2.club + +strip2.xxx + strip2.in6#siteContent > div:not([id]):not([class]) ~ div[class]Ï +spaces-blogs.com +spcs-files.xyz + gdespaces.com + gdespaces.net + usersporn.com + spcs.network + spcs.reviews + spcs.social + strip2.club + +strip2.xxx + spac1.com + spac1.net + spac1.org + spaces.im + spcs.life + strip2.in + +spac.run + +spac.wtf + +spcs.bio + +spcs.pro +spac.me +spcs.me.rightbar__reklamaí +google-cloud.services +spaces-blogs.com +spcs-files.xyz + gdespaces.com + gdespaces.net + usersporn.com + spcs.network + spcs.reviews + spcs.social + strip2.club + +strip2.xxx + spac1.com + spac1.net + spac1.org + spaces.im + spcs.life + spcs.mobi + strip2.in + +spac.run + +spac.wtf + +spcs.bio + +spcs.pro +spac.me +spcs.me +.tiled_capy + usersporn.com + strip2.club + +strip2.xxx + strip2.in:.tiles_wrapper > .js-file_item ~ div:not([class*="tiled"])‹ +google-cloud.services +spaces-blogs.com +spcs-files.xyz + gdespaces.com + gdespaces.net + usersporn.com + spcs.network + spcs.reviews + spcs.social + strip2.club + +strip2.xxx + spac1.com + spac1.net + spac1.org + spaces.im + spcs.life + spcs.mobi + strip2.in + +spac.run + +spac.wtf + +spcs.bio + +spcs.pro +spac.me +spcs.me(div[id][class][style="min-height:150px"]= + sports.ru,#media-promo-mount-point [class*="adv-text"]E + sports.ru4#media-promo-mount-point a[href*="://sirena.world/"] + sports.ru#top-ad" + sports.ru#top-banner-place + sports.ru.ad, + sports.ru.columns__alt-column .frame + sports.ru .comment-ads( + sports.ru.comments-list__ad-item* + sports.ru.document-recommendations + sports.ru.fonbet-teaser' + sports.ru.high-adload-container# + sports.ru.in-read-placement + sports.ru .in-read-yadv + sports.ru .js-ad-label" + sports.ru.layout__branding1 +cyber.sports.ru.match-teaser__betting-bar% + sports.ru.middle-banner-place7 + sports.ru&.nav-list__widget-wrapper .promo-block( + sports.ru.navigation-left-bannerã +eÿï08@RUsports.ru#?#.recommendations__list > .recommendations__item:-abp-has([href*="promo"]) +Nÿï08@R>sports.ru#?#.rightPart > div:-abp-contains(Реклама 18+) +Hÿï08@R8sports.ru#?#.short-news > p:-abp-has(> .advert_material) +6 * + www.sports.ru08@Rr.sprts.ru/recommender/ +gÿï08@RWsports.ru#?#[class]:-abp-has(> .aside-news-list__advert ~ a[href^="https://sprts.cc/"]) +fÿï08@RVsports.ru#?#[class]:-abp-has(> .aside-news-list__advert:-abp-contains(Реклама)) +oÿï08@R_sports.ru#?#[data-control*="Common.CarouselOfCards"]:-abp-has(a[href^="https://sirena.world/"]) +‡ÿï08@Rwsports.ru#?#div[class*="material-list--additional-block"] > .material-list__item:-abp-has(a[href^="https://sprts.cc/"]) +Nÿï08@R>sports.ru#?#p:-abp-has(> a[href]:-abp-contains(М.Видео))0 + sports.ru.navigation-right-column-bannerP + sports.ru?.navigation-top__specials + div:empty,.navigation-top__specialsE + sports.ru4.news-item__content > p > strong > a[rel="nofollow"]$ + sports.ru.news-layout__frameO + sports.ru>.one-card[data-img_desktop^="https://dumpster.cdn.sports.ru/"] + sports.ru .place-for-ad% + sports.ru.poll-variant__coeff  + sports.ru.poll__ad-label& + sports.ru.poll__bookmaker-link& + sports.ru.poll__bookmaker-logo +cyber.sports.ru.polling + sports.ru .promo-link* + sports.ru.record-widget__bookmaker# + sports.ru.rightPart > .mB202 + sports.ru!.short-news > [data-content-name]! + sports.ru.short-news > br" + sports.ru.social-links__zn0 + sports.ru.teaser-before-links__adv-label( +cyber.sports.ru.teaser-bookmaker& +cyber.sports.ru[class*="okko"]% + sports.ru[class*="parimatch"]! + sports.ru[data-banner-id]1 + sports.ru [data-content-name="banner-dfp"]+ + sports.ru[data-control*="Videonow"]* + sports.ru[data-control*="adblock"]6 + sports.ru%[data-control="Stat.KinopoiskButton"]1 + sports.ru [data-control="Stat.OkkoButton"]* + sports.ru[data-control^="Aliens."]+ + sports.ru[data-control^="Banners."]2 + sports.ru![data-is-ad-poll] .bookmaker-info& + sports.ru[data-type="reklama"]# + sports.ru[id*="ScriptRoot"]( + sports.ru[id^="dfp-fullscreen-"] + sports.ru [id^="unit_"]F + sports.ru5a#sitewrapper[href][target="_blank"][style*="cursor"]# + tribuna.coma[href*="/bet/"]' + tribuna.coma[href*="/betting/"]$ + tribuna.coma[href*="bit.ly"]D + sports.ru3a[href*="click"][target="_blank"][style^="display"]5 + tribuna.com + sports.rua[href*="utm_campai"]3 + sports.ru"a[href="https://trbna.co/2u3V2dO"]- + sports.rua[href^="https://sprts.cc/"]2 + sports.ru!a[href^="https://zen.yandex.ru/"]Q + sports.ru@body > div[class^="br-lt"] > :not(.page-layout):not(.pageLayout)9 + sports.ru(div[class*="SALES"] > .accordion__handle* + tribuna.comdiv[class*="rb-widget"]> + tribuna.com+div[class^="BookmakerGift_bookmaker-gift_"]> + tribuna.com+div[class^="Main_main-layout__empty-block"]) + tribuna.comdiv[class^="_banner_"]; + sports.ru*div[data-control-noinit="Common.BetsTabs"]4 + sports.ru#div[data-control="Common.AutoInit"]1 + sports.ru div[data-control^="Common.Bets"]; + sports.ru*img[src*="s5o.ru/source/_desktop/aliens/"]; + sports.ru*p > a[rel="nofollow"] > img[height][width]G + tribuna.com4span[class^="_comments__loader"][class*="_spinner_"]¯1 +H08@R:dumpster.cdn.sports.ru/d/0d/0a7f418ea4ce61f1070bb186f88c0. +.ûï08@Rs5o.ru/source/_desktop/aliens/ +5ÿï08@R%s5o.ru/source/_desktop/assets/00*.jpg +5ÿï08@R%s5o.ru/source/_desktop/build/banners/ +&ÿï08@Rs5o.ru/source/special/ +4ÿï08@R$senoval.sports.ru/cross-recommender/ +1ÿï08@R!senoval.sports.ru/snatch-checker/ +$ÿï08@Rsports.ru/css/promo. +3ÿï08@R#sports.ru/desktop/special/*-slider/ +$ÿï08@Rsports.ru^*/banners/ +8ÿï* + tribuna.com* + sports.ru08@R taboola.com^ +|* +trackeroc.info* + trackeroc.org* + ttrackeroc.ru* + trackeroc.ga* + trackeroc.ml* + trackeroc.tk08@R +.php?*utm_ +w* +trackeroc.info* + trackeroc.org* + ttrackeroc.ru* + trackeroc.ga* + trackeroc.ml* + trackeroc.tk08@R/*.js +* +trackeroc.info* + trackeroc.org* + ttrackeroc.ru* + trackeroc.ga* + trackeroc.ml* + trackeroc.tk08@R /library/*.js +Ç* + tourbobit.com* + tourbobit.net* + turbobeet.net* + turbobita.net* + turbobits.net* + turboobit.com* + torbobit.net* + turbobif.com* + turbobit.net* + turbobits.cc* + +turbobi.pw08@R.xyz/ +Ï* + tourbobit.com* + tourbobit.net* + turbobeet.net* + turbobita.net* + turbobits.net* + turboobit.com* + torbobit.net* + turbobif.com* + turbobit.net* + turbobits.cc* + +turbobi.pw08@R /brinpopup.js +Ï* + tourbobit.com* + tourbobit.net* + turbobeet.net* + turbobita.net* + turbobits.net* + turboobit.com* + torbobit.net* + turbobif.com* + turbobit.net* + turbobits.cc* + +turbobi.pw08@R /custom_code/ +Ç* + tourbobit.com* + tourbobit.net* + turbobeet.net* + turbobita.net* + turbobits.net* + turboobit.com* + torbobit.net* + turbobif.com* + turbobit.net* + turbobits.cc* + +turbobi.pw08@R/pus/ +Õ* + tourbobit.com* + tourbobit.net* + turbobeet.net* + turbobita.net* + turbobits.net* + turboobit.com* + torbobit.net* + turbobif.com* + turbobit.net* + turbobits.cc* + +turbobi.pw08@R/ybrowser/frame.png +_ÿï08@ROwww.ukr.net#?#article > section:-abp-has(> div > div > a[href*="/ad.adriver."]) +5ÿï* +ukr.net08@Rfwdcdn.com/img/commercial/ +-ÿï08@Rportal.un.net.ua/temp/blocks/ + €08@Rsafemore.ukr.net^ + €08@Rsafeview.ukr.net^ +ÿï08@R vkbutton.com^ +ÿï08@R +vkmus.com^ +"ÿï08@Rvladbazar.com/bbb/ +.ÿï08@Reverall.ru/static/img/banners/ +ÿï08@Rvkbot.ru/trash/ +(ÿï08@Rvk.com/ads*.php?__query= +.* + 178.63.99.2108@Radsocial.ru/app/ +-ÿï08@Radsvk.com/images/advertising/ +,ÿï08@Radsvk.com/scripts/advertise_ +Wÿï* + yandex.by* + yandex.kz* + yandex.ru* + yandex.uz08@R/portal/ntp/banner?6 + sports.ru%style:first-child ~ [class^="gift__"]! + sports.ru.in-read-wrapper6 + www.sports.ru!.poll__footer > .poll-share ~ div- + sports.ru[data-content-piece="adfox"]& + sports.ru[data-init2-by-float] + sports.ru[data-refresh]% + sports.ru[data-refresh] + divü +zakon-i-poryadok.com +all-for-woman.com +ya-superpuper.com +back-in-ussr.com +budtezdorovy.net +kaksekonomit.com +slovobozhie.com +klubnichka.xyz +tursputnik.com + showbizzz.net + videohit.info + domosedy.com + klikabol.com + malyutka.net + myprikol.com + edalnya.com + mistika.xyz + pitomzy.com + rulenta.com + sci-hit.com + pisez.com .game-drvƒ +zakon-i-poryadok.com +all-for-woman.com +ya-superpuper.com +back-in-ussr.com +budtezdorovy.net +kaksekonomit.com +slovobozhie.com +klubnichka.xyz +tursputnik.com + showbizzz.net + videohit.info + domosedy.com + klikabol.com + malyutka.net + myprikol.com + edalnya.com + mistika.xyz + pitomzy.com + rulenta.com + sci-hit.com + pisez.com[class*="tizer"]† +zakon-i-poryadok.com +all-for-woman.com +ya-superpuper.com +back-in-ussr.com +budtezdorovy.net +kaksekonomit.com +slovobozhie.com +klubnichka.xyz +tursputnik.com + showbizzz.net + videohit.info + domosedy.com + klikabol.com + malyutka.net + myprikol.com + edalnya.com + mistika.xyz + pitomzy.com + rulenta.com + sci-hit.com + pisez.coma[href*="/landing"]… +zakon-i-poryadok.com +all-for-woman.com +ya-superpuper.com +back-in-ussr.com +budtezdorovy.net +kaksekonomit.com +slovobozhie.com +klubnichka.xyz +tursputnik.com + showbizzz.net + videohit.info + domosedy.com + klikabol.com + malyutka.net + myprikol.com + edalnya.com + mistika.xyz + pitomzy.com + rulenta.com + sci-hit.com + pisez.coma[href*="adblock"]y +trackeroc.info + trackeroc.org + ttrackeroc.ru + trackeroc.ga + trackeroc.ml + trackeroc.tka[href*="/yand."]{ +trackeroc.info + trackeroc.org + ttrackeroc.ru + trackeroc.ga + trackeroc.ml + trackeroc.tka[href*="sub/"] imgÓ + tourbobit.com + tourbobit.net + turbobeet.net + turbobita.net + turbobits.net + turboobit.com + torbobit.net + turbobif.com + turbobit.net + turbobits.cc + +turbobi.pw#window-body > #formula ~ pÎ + tourbobit.com + tourbobit.net + turbobeet.net + turbobita.net + turbobits.net + turboobit.com + torbobit.net + turbobif.com + turbobit.net + turbobits.cc + +turbobi.pw#window-body > :not(p)Ì + tourbobit.com + tourbobit.net + turbobeet.net + turbobita.net + turbobits.net + turboobit.com + torbobit.net + turbobif.com + turbobit.net + turbobits.cc + +turbobi.pw#window-body > a + pÕ + tourbobit.com + tourbobit.net + turbobeet.net + turbobita.net + turbobits.net + turboobit.com + torbobit.net + turbobif.com + turbobit.net + turbobits.cc + +turbobi.pw#window-frame > #window-titleÈ + tourbobit.com + tourbobit.net + turbobeet.net + turbobita.net + turbobits.net + turboobit.com + torbobit.net + turbobif.com + turbobit.net + turbobits.cc + +turbobi.pwcenter > a > img  + mail.ukr.net #left_banner + www.ukr.net #top-banner + mail.ukr.net #top_banner +ukr.net .adv-news2 + www.ukr.net.fixed-block > div[class] ~ div + www.ukr.net .placeholder8 + www.ukr.net%div[class^="fuel-"][class$="-banner"]# + www.ukr.netdiv[id^="ecbr-"]3 + www.ukr.net iframe[src*="safemore.ukr.net/"]  +ukr.net.lazy-load-banner  +1901.selcdn.ru +#bannerTop# +1901.selcdn.ru .topFaceGuestÄ +8* + yandex.ru08@Ryandex.ru/ads/system/adsdk.js +sÿï08@Rcya.ru,yandex.ru,yandex.*#?#.content__left > #search-result > li:-abp-has(> .Organic_withPromoOffer) +¡ÿï08@R�ya.ru,yandex.ru,yandex.*#?#.content__left > #search-result > li:-abp-has(> div .Organic-Subtitle > span:-abp-contains(/[РPeекламa]{6,7}/)) +¢ÿï08@R‘ya.ru,yandex.ru,yandex.*#?#.content__left > #search-result > li:-abp-has(> div .organic__subtitle > span:-abp-contains(/[РPeекламa]{6,7}/)) +^ÿï08@RNya.ru,yandex.ru,yandex.*#?#.content__right div[class]:-abp-has(> div > script) +uÿï08@Reya.ru,yandex.ru,yandex.*#?#.content__right div[class][data-log-node]:-abp-has(.DirectInlineContainer) +fÿï08@RVyandex.ru,yandex.*#?#.scroller__wrap > .showcase__item:-abp-has(.product-card__direct) +ˆÿï08@Rxyandex.ru,yandex.*#?#.scroller__wrap > div[class^="minibadge"]:-abp-has(.serp-item .label:-abp-contains(реклама)) +0€* +dzen.ru08@Rhttps://dzen.ru/*/*/*/ +ÿï08@R awaps.yandex. +"08@Rbs-meta.yandex. +08@R +bs.yandex. +8ÿï08@R(jstracer.yandex.ru/jstracer?videodirect= +ÿï08@R kiks.yandex. +Aÿï* +auto.ru08@R$static-mon.yandex.net/static/main.js +2€* + yastatic.net08@Rstrm.yandex.ru/get/ +#ÿï08@Ryabs.yandex.*/show/ + ÿï08@Ryadi.sk^*direct? +&€08@Ryandex-news.naydex.net^ +(€08@Ryandex-pogoda.naydex.net^ +4ÿï* + e.mail.ru08@Ryandex.net/get-direct +,ÿï08@Ryandex.ru/maps/api/branding/ +4€* + yastatic.net08@Ryandex.ru/poll/video/ +.ÿï08@Ryastatic.net/*/rsya-tag-users/ +"ÿï08@Ryastatic.net/daas/O +market.yandex.ru +market.yandex.*$.layout_type_search.headline__footer) +ya.ru.i-mini-bem[class*="banner"]* + +yandex.* +ya.ru.main-home-banner5 + yandex.ru + +yandex.* +ya.ru.layout__banner8 + yandex.ru + +yandex.* +ya.ru.main__distr-popup= + yandex.ru + +yandex.* +ya.ru.Organic_withPromoOffer6 + yandex.ru + +yandex.*#banner.b-banner__content> + yandex.ru + +yandex.*!.Ad > .Ad-Container ~ .Ad-Spinner* + yandex.ru + +yandex.* .AdvRsya-Slot( + yandex.ru + +yandex.* .b-spec-adv/ + yandex.ru + +yandex.*.b-yabrowser-promo/ + yandex.ru + +yandex.*.container__banner> + yandex.ru + +yandex.*!.content.i-bem > .body__topblocksB + yandex.ru + +yandex.*%.content__right > .z-market_right_yes) + yandex.ru + +yandex.* .direct-view1 + yandex.ru + +yandex.*.dist-overlay__popup) + yandex.ru + +yandex.* .i-bem.adsrvF + yandex.ru + +yandex.*).i-bem.b-timetable__row[onclick*="awaps"]5 + yandex.ru + +yandex.*.i-bem.stripe_type_promo5 + yandex.ru + +yandex.*.i-bem.tv-grid__item-advQ + yandex.ru + +yandex.*4.i-bem.tv-sortable-item.tv-sortable-item_sortable_no3 + yandex.ru + +yandex.*.masonry .incut_bannerS + yandex.ru + +yandex.*6.org.i-bem.org_js_inited > div[style^="border-bottom"]S + yandex.ru + +yandex.*6.org__sidebar > .org__links + div[style^="margin-top"]8 + yandex.ru + +yandex.*.search-results__guadeloupe+ + yandex.ru + +yandex.*.serp-adv__add+ + yandex.ru + +yandex.*.serp-adv__all@ + yandex.ru + +yandex.*#.sidebar-view .business-advert-view] + yandex.ru + +yandex.*@.sidebar-view div[style*="!important"]:not([style*="font-size"])& + yandex.ru + +yandex.* .spec-adv[ + yandex.ru + +yandex.*>.stat_pixel_yes[onclick][class*="_layout_"][class*="_format_"]7 + yandex.ru + +yandex.*a[href*="//ads.adfox.ru/"]T + yandex.ru + +yandex.*7body[class*="b-page_alt-widgets_yes"] .feed ._need-stubW + yandex.ru + +yandex.*:div[class$="ear_js_inited"] > a[href^="//awaps.yandex.ru"]> + yandex.ru + +yandex.*!img[src*="yandex.net/get-direct"]‘ + +yandex.*#? + yandex.rursearch-result > .serp-list__card:-abp-has(> div .organic__subtitle > span:-abp-contains(/[РPeекламa]{6,7}/))5 +disk.yandex.ru + disk.yandex.*.awaps__banner= +disk.yandex.ru + disk.yandex.*.software-header-promo7 +disk.yandex.ru + disk.yandex.*.top-direct-lineù" +gÿï08@RWmail.yandex.ru,mail.yandex.*#?#.js-scroller-right:-abp-has(> .BannersBlock > div:empty) +šÿï08@R‰mail.yandex.ru,mail.yandex.*#?#[data-key="box=left-box"]:-abp-has(> [data-key="view=react-left-column"] + div:empty) a[href*="/premium-"] +_ÿï08@ROrasp.yandex.ru,rasp.yandex.*#?#.SearchSegments__row:-abp-has([class*="banner"]) +\ÿï08@RLrasp.yandex.ru,rasp.yandex.*#?#.SearchSegments__row:-abp-has([id*="banner"]) +eÿï08@RUyandex.ru,yandex.*#?#.page__result .typo:-abp-contains(/^новоÑ�ти партн/i) +”ÿï08@Rƒyandex.ru,yandex.*#?#html[class*=" Theme_color_news-"] div[class*="_type_native"] [class*="_type_card"]:-abp-has(> div > div:empty) +‘ÿï08@R€yandex.by,yandex.kz,yandex.ru,yandex.uz#?#div[class*="VideoViewer-Block"] > .VideoPlayerMetaInfo ~ div:-abp-has(> div[id]:empty) +Jÿï08@R:yastatic.net/*/turbo-static/embed-sandbox/*lentainform.com +Bÿï08@R2yastatic.net/*/turbo-static/embed-sandbox/*smi2.ru +nÿï08@R^yandex.by,yandex.kz,yandex.ru,yandex.uz#?#.forecast-details > .card:-abp-has(> [class*="adv"])Z +disk.yandex.ru + disk.yandex.*3a[href][style*="storage.mds.yandex.net/get-bstor/"]] +disk.yandex.ru + disk.yandex.*6div[class^="direct"]:not([class^="directory-content"])g +docviewer.yandex.ru +docviewer.yandex.*6.js-doc-html > div[class^="pages_"] > div[class]:emptyd +docviewer.yandex.ru +docviewer.yandex.*3.with-bottom-direct > div[class] > div[class]:empty= + eda.yandex.ru([data-testid="open-advert-modal-button"]* + eda.yandex.rudiv[class^="banner_"]7 +mail.yandex.ru + mail.yandex.*.b-direct-stripe? +mail.yandex.ru + mail.yandex.*div[class*="DirectLine"]. +rasp.yandex.ru + rasp.yandex.*.Direct? +rasp.yandex.ru + rasp.yandex.*.ThreadLayout__topDirect@ +translate.yandex.ru +translate.yandex.*.sidebar-direct* +travel.yandex.rudiv.root[id]:empty +turbopages.org.advert" +uslugi.yandex.ru +.WebBanner& + yandex.ru + +yandex.* .b-directA + yandex.ru + +yandex.*$[id*="R-I-"][style*="height:"]:empty5 + yandex.ru + +yandex.*div[class^="b-spec-adv"]: + yandex.ru + +yandex.*div[data-block="banner-view"]Y + yandex.ru + +yandex.* div[class^="search-placemark-layout-connect_advert"]Z + yandex.ru + +yandex.*=ymaps > div[class^="search-placemark-layout-connect_special"]@ +afisha.yandex.ru +afisha.yandex.*.afisha-profit-banner +ya.ru .DirectStripež + yandex.by + yandex.kz + yandex.ru + yandex.uzf.VideoViewer .Viewer-ScrollContainer > div[class]:first-child > div[id][class]:first-child:empty + div + yandex.ru.advert-sticks0 + yandex.ru.pharmacy-page-view__top-banner + yandex.ru .turbo-advert  + yandex.rudiv[id^="R-I-"]6 + yandex.ru + +yandex.*.grid-list__game-item_adv, + yandex.ru + +yandex.*.stack > .promoF + yandex.ru + +yandex.*)div[class^="FeedAdvBlockRenderer-"]:empty? +music.yandex.ru +music.yandex.*.bar__driver-container@ +music.yandex.ru +music.yandex.*[class^="audio-advert"]Q +music.yandex.ru +music.yandex.*(section[class^="SideAdvertBanner_root_"]G +radio.yandex.ru +radio.yandex.*.slider > .slider__item_advert9 + realty.ya.ru%.FSGalleryLayout > .GalleryGuadeloupe, + realty.ya.ru.OffersSearchPage__adCut' + realty.ya.rudiv[class$="__ads"]- + realty.ya.rudiv[class*="AdContainer"]- + realty.ya.rudiv[class*="__bottom-ad"]5 + realty.ya.ru!div[class^="OfferCard__stickyAd"]4 + realty.ya.ru li[class*="__list-item_type_ad"]7 + realty.ya.ru#li[class*="__list-item_type_promo"]+ + yandex.ru.custom-block > .ext-embedQ + yandex.ru@div[id][data-log-node] > div:empty ~ i > [class] > .loader__dotsQ + yandex.ru@div[id][data-log-node] > div:empty ~ i > [class] > .loader__textI + yandex.by + yandex.kz + yandex.ru + yandex.uz.weather-maps__ad, + tv.yandex.ru + tv.yandex.* .branding< + tv.yandex.ru + tv.yandex.*div[class*="adv-manager"]M + tv.yandex.ru + tv.yandex.**script[nonce] + script[nonce] + div[class]# +dzen.ru.adv-skeleton___main% +dzen.ru[aria-label^="Peкл"]S +dzen.ruD[aria-label^="Карточк"][aria-label*=" p"][aria-label*="кл"]F +dzen.ru7[aria-label^="Карточк"][aria-label*=" рекл"]A +dzen.ru2[aria-label^="Карточк"][aria-label*="мы"]é0 +?ÿï08@R/dzen.ru#?#article:-abp-has(> div[data-ad-type]) +>ÿï08@R.dzen.ru#?#div:-abp-has(> .adv-skeleton___main) +gÿï08@RWdzen.ru#?#div[data-testid="article-showcase-card"]:-abp-has(> [data-testid="card-rtb"]) +§* +bloknot-novorossiysk.ru* +bloknot-gelendzhik.ru* +bloknot-volgodonsk.ru* +bloknot-astrakhan.ru* +bloknot-krasnodar.ru* +bloknot-morozovsk.ru* +bloknot-stavropol.ru* +bloknot-volgograd.ru* +bloknot-kamyshin.ru* +bloknot-taganrog.ru* +bloknot-volzhsky.ru* +bloknot-voronezh.ru* +bloknot-krymska.ru* +bloknot-moldova.ru* +bloknot-rossosh.ru* +bloknot-shakhty.ru* +bloknot-rostov.ru* +bloknot-samara.ru* +bloknotlipetsk.ru* +bloknotsaratov.ru* +bloknottambov.ru* +bloknotanapa.ru* +bloknotsochi.ru* + +bloknot.ru08@R.php +±ÿï* +bloknot-novorossiysk.ru* +bloknot-gelendzhik.ru* +bloknot-volgodonsk.ru* +bloknot-astrakhan.ru* +bloknot-krasnodar.ru* +bloknot-morozovsk.ru* +bloknot-stavropol.ru* +bloknot-volgograd.ru* +bloknot-kamyshin.ru* +bloknot-taganrog.ru* +bloknot-volzhsky.ru* +bloknot-voronezh.ru* +bloknot-krymska.ru* +bloknot-moldova.ru* +bloknot-rossosh.ru* +bloknot-shakhty.ru* +bloknot-rostov.ru* +bloknot-samara.ru* +bloknotlipetsk.ru* +bloknotsaratov.ru* +bloknottambov.ru* +bloknotanapa.ru* +bloknotsochi.ru* + +bloknot.ru08@R /bloknotadv/ +õÿï* +dostoevskiy-lit.ru* +paustovskiy-lit.ru* +lermontov-lit.ru* +vysotskiy-lit.ru* +nekrasov-lit.ru* +turgenev-lit.ru* +nabokov-lit.ru* +pushkin-lit.ru* +referat-lib.ru* +tolstoy-lit.ru* + chehov-lit.ru* + esenin-lit.ru* + kuprin-lit.ru* + bunin-lit.ru* + cult-news.ru* + gogol-lit.ru* + cult-lib.ru* + lit-info.ru* + +svr-lit.ru* +niv.ru08@R +/js/elker_ +ÿï08@R b.autotom.ru/ +ÿï08@Rbe.vtomske.ru^ +%ÿï08@Rcatalog.tomsk.ru/uay/ +%ÿï08@Rcatalog.tomsk.ru/ubb/ ++ÿï08@Rdn.vtomske.ru/be/materials/ +!ÿï08@Rdn.vtomske.ru/bi/ +)ÿï08@Rdn.vtomske.ru/neopodarok/ +08@Rgardnet.tomsk.ru^ +#ÿï08@Rgorod.tomsk.ru/i/b/ +"ÿï08@Rkompstar.tomsk.ru^ +ÿï08@Rmp1.tomsk.ru/h/ +.ÿï08@Rnovo.tomsk.ru/uploads/up3/rkl/& +dzen.ru[aria-label^="Рeкл"]' +dzen.ru[aria-label^="Рекл"]( +dzen.ru[data-testid="bottom-ad"]( +dzen.ru[id*="-teaser"] > div[id]- +dzen.rua[href*="://t.mail.ru/redir/"]% +dzen.rudiv[class*="-top-ad-"], +dzen.rudiv[class*="_rightAdWrapper"], +dzen.rudiv[class*="tsar__container"]E +dzen.ru6.article-render-mobile__embed_embed-type_yandex-direct +dzen.ru +[data-ssr]$ +dzen.rudiv[class^="ad-link"]C +dzen.ru4div[class^="dzen-mobile__"] > div[id$="-fullscreen"]D +dzen.ru5div[class^="dzen-mobile__topContentBackgroundBottom"]A +dzen.ru2div[style*=" !important; "][style$=" !important;"]? + yandex.ru + +yandex.* +ya.ru.t-construct-adapter__advX + +yandex.*#? + yandex.ru +ya.ru0search-result > .serp-item:-abp-has(> .AdvLabel)­ +bloknot-novorossiysk.ru +bloknot-gelendzhik.ru +bloknot-volgodonsk.ru +bloknot-astrakhan.ru +bloknot-krasnodar.ru +bloknot-morozovsk.ru +bloknot-stavropol.ru +bloknot-volgograd.ru +bloknot-kamyshin.ru +bloknot-taganrog.ru +bloknot-volzhsky.ru +bloknot-voronezh.ru +bloknot-krymska.ru +bloknot-moldova.ru +bloknot-rossosh.ru +bloknot-shakhty.ru +bloknot-rostov.ru +bloknot-samara.ru +bloknotlipetsk.ru +bloknotsaratov.ru +bloknottambov.ru +bloknotanapa.ru +bloknotsochi.ru + +bloknot.rudiv[class*="banner"]ù +dostoevskiy-lit.ru +paustovskiy-lit.ru +lermontov-lit.ru +vysotskiy-lit.ru +nekrasov-lit.ru +turgenev-lit.ru +nabokov-lit.ru +pushkin-lit.ru +referat-lib.ru +tolstoy-lit.ru + chehov-lit.ru + esenin-lit.ru + kuprin-lit.ru + bunin-lit.ru + cult-news.ru + gogol-lit.ru + cult-lib.ru + lit-info.ru + +svr-lit.ru +niv.rudiv[id^="tab_scroll_blok"]� +dostoevskiy-lit.ru +paustovskiy-lit.ru +lermontov-lit.ru +vysotskiy-lit.ru +nekrasov-lit.ru +turgenev-lit.ru +nabokov-lit.ru +pushkin-lit.ru +referat-lib.ru +tolstoy-lit.ru + chehov-lit.ru + esenin-lit.ru + kuprin-lit.ru + bunin-lit.ru + cult-news.ru + gogol-lit.ru + cult-lib.ru + lit-info.ru + +svr-lit.ru +niv.ru"div[id^="tab_scroll_blok"] ~ table‚ +dostoevskiy-lit.ru +paustovskiy-lit.ru +lermontov-lit.ru +vysotskiy-lit.ru +nekrasov-lit.ru +turgenev-lit.ru +nabokov-lit.ru +pushkin-lit.ru +referat-lib.ru +tolstoy-lit.ru + chehov-lit.ru + esenin-lit.ru + kuprin-lit.ru + bunin-lit.ru + cult-news.ru + gogol-lit.ru + cult-lib.ru + lit-info.ru + +svr-lit.ru +niv.ru#table[align="center"][height="360"]“ +dostoevskiy-lit.ru +paustovskiy-lit.ru +lermontov-lit.ru +vysotskiy-lit.ru +nekrasov-lit.ru +turgenev-lit.ru +nabokov-lit.ru +pushkin-lit.ru +referat-lib.ru +tolstoy-lit.ru + chehov-lit.ru + esenin-lit.ru + kuprin-lit.ru + bunin-lit.ru + cult-news.ru + gogol-lit.ru + cult-lib.ru + lit-info.ru + +svr-lit.ru +niv.ru4td[align="center"][style*="height:"][style*="360px"], + pxtracker.org + vtracker.org#advert  +sadiki.tomsk.ru #b1_place# + tv2.tomsk.ru#block-block-39& +x-soft.tomsk.ru#kompstar_blockf + pxtracker.org + vtracker.orgA#latest_news td[width="85%"] > table > tbody > tr:nth-child(-n+2)* +x-soft.tomsk.ru + +autotom.ru#shop( +gorod.tomsk.ru#top-adv-container + novo.tomsk.ru#top_b + +vtomske.ru.ab% +forum.tomsknet.ru .banner.nocp' + +vtomske.ru.bunners-wrapper-line) +news.vtomske.ru.company-materials + tv2.tomsk.ru.klinks" + mama.tomsk.ru .middle-block  + novo.tomsk.ru .right > br) + desk.tomsk.ru.right_cell > center + +vtomske.ru .target-top + +vtomske.ru.tb + +vtomske.ru .top-line-bun' +gorod.tomsk.ru.topBan.w33.whiteF + sibmail.com3div[style="width:100%;text-align:center;"] > center2 + novo.tomsk.ruimg[tooltip="РЕКЛÐ�МÐ�"]7 + novo.tomsk.ru"img[width="300"][src^="/uploads/"]J +sadiki.tomsk.ru3td[valign="bottom"][height="220px"][align="center"]8 +sadiki.tomsk.ru!td[valign] > a > img[vspace="10"]­] +ÿï08@Rrde.ru^ +@ÿï08@R0tehnomag.tomsk.ru/index.php?ukey=product_widget& +ÿï08@R tg.tomsk.ru/ ++ÿï08@Rtomsk.ru/resources/content/ +ÿï08@R tomsk.ru/ttt/ +ÿï08@R tomsk.ru/tua/ +ÿï08@R tomsk.ru/tub/ +ÿï08@R tomsk.ru/tva/ +ÿï08@R tomsk.ru/tvb/ ++ÿï08@Rtomsk.ru09.ru/img/tomsk/ad/ +#ÿï08@Rtomsktracker.org/b/ +$ÿï08@Rtorrents.tomsk.ru/b/ +&ÿï08@Rvtomske.ru/js/*!*!*.js +$ÿï08@Rx-soft.tomsk.ru/dsa/ +² +ÿï* +goroddomodedovo.ru* +infolyubertsy.ru* +gorodarmavir.ru* + comores24.com* + godublin.info* + golondon.info* + goshymkent.kz* + vilniuje.info* + 04141.com.ua* + 04563.com.ua* + 04596.com.ua* + 04597.com.ua* + 04598.com.ua* + 04868.com.ua* + 05136.com.ua* + 05161.com.ua* + 05366.com.ua* + 05447.com.ua* + 06153.com.ua* + 06236.com.ua* + 06237.com.ua* + 06239.com.ua* + 06252.com.ua* + 06267.com.ua* + 06272.com.ua* + 06274.com.ua* + 06277.com.ua* + 06452.com.ua* + angarsk38.ru* + gorod3466.ru* + karelia.news* + 0512.com.ua* + 0566.com.ua* + 0569.com.ua* + 0619.com.ua* + 0623.com.ua* + 0629.com.ua* + 3849.com.ua* + 4594.com.ua* + 5692.com.ua* + 6262.com.ua* + 6264.com.ua* + 8422city.ru* + bazhopol.ru* + goriga.info* + inalmaty.kz* + inastana.kz* + inatyrau.kz* + inform69.ru* + yocity12.ru* + +anapa.life* + +inaktau.kz* + city01.am* + city41.ru* + go7812.ru* + +06242.ua* + +65.media* + +go212.by* + +go216.by* +0312.ua* +0332.ua* +0342.ua* +0352.ua* +0362.ua* +0372.ua* +0382.ua* +0412.ua* +0432.ua* +0462.ua* +0472.ua* +0522.ua* +0532.ua* +0542.ua* +0552.ua* +0564.ua* +0642.ua* +0652.ua* +0692.ua* +1rnd.ru* +3652.ru* +3654.ru* +7232.kz* +go01.ru* +go11.kz* +go26.ru* +go31.ru* +go61.ru* +015.by* +032.ua* +048.ua* +057.ua* +061.ua* +44.ua* +62.ua08@R/section/banners/upload/ +Å* +inkrasnoznamensk.ru* +inlosinopetrovsk.ru* +insolnechnogorsk.ru* +inchernogolovka.ru* +inkrasnoarmeisk.ru* +in-narofominsk.ru* +in-voskresensk.ru* +in-domodedovo.ru* +inkrasnogorsk.ru* +involokolamsk.ru* +in-schelkovo.ru* +inbalashikha.ru* +inivanteevka.ru* +inshahovskoe.ru* +inzhukovskiy.ru* +inzvenigorod.ru* +indolgoprud.ru* +indubnacity.ru* +inegorievsk.ru* +inhimkicity.ru* +inkotelniki.ru* +inlotoshino.ru* +inluhovitsy.ru* +inlytkarino.ru* +inmytishchi.ru* +inodintsovo.ru* +inpushchino.ru* +inramenskoe.ru* +insergposad.ru* + in-dmitrov.ru* + in-kolomna.ru* + in-korolev.ru* + infryazino.ru* + inklincity.ru* + inlubertsy.ru* + inmozhaisk.ru* + inpavposad.ru* + inprotvino.ru* + inpushkino.ru* + inserpuhov.ru* + in-reutov.ru* + in-vidnoe.ru* + inelgorsk.ru* + inkashira.ru* + innoginsk.ru* + inorehovo.ru* + inpodolsk.ru* + inserprud.ru* + inshatura.ru* + instupino.ru* + inzaraisk.ru* + inzheldor.ru* + in-istra.ru* + inchehov.ru* + inelstal.ru* + inlobnya.ru* + inroshal.ru* + intaldom.ru* + +inozery.ru* + inruza.ru08@R/upload/*_banner_bg_ +í * +koryazhma-poisk.ru* +govorituzhnik.ru* +vologda-poisk.ru* +govoritsatka.ru* +kaluga-poisk.ru* +yasniy-city.ru* + cher-poisk.ru* + mediabrest.by* + yola-poisk.ru* + vuralsk.life* + nyagan.life* + +nur24.ru08@R /b/updv?gp= +<* + na-svyazi.ru* + +21forum.ru* +cheb.ru08@R/img/ +Aÿï* + na-svyazi.ru* + +21forum.ru* +cheb.ru08@R/img/bg/ +@* + na-svyazi.ru* + +21forum.ru* +cheb.ru08@R /uploads/ +ÿï08@R +212121.ru^ +ÿï08@R 21dengi.ru^ +ÿï08@R 21doctor.ru^ +ÿï08@R 21pokupki.ru^ +ÿï08@R +21sale.ru^ +ÿï08@R +441555.ru^ +ÿï08@R adres21.ru^ +'ÿï08@Rafisha.cheb.ru/css/ban/ +/ÿï08@Rafisha.cheb.ru/css/bg/*.gif?id= +0ÿï08@R afisha.cheb.ru/css/bg/*.gif?uid= +-ÿï08@Rafisha21.ru/css/ban/*.gif?id= +,ÿï08@Rafisha21.ru/css/bg/*.gif?id= +!ÿï08@Ralexey.blog21.ru^ +ÿï08@Rcheb-rielt.ru^ +ÿï08@R +chebfm.ru^ +ÿï08@Rchebogsary.ru^ +ÿï08@R cheboksar.ru^ +ÿï08@R chebradio.ru^ +ÿï08@R +chebru.ru^ +ÿï08@R chebtube.ru^ +ÿï08@R +chebtv.ru^ +ÿï08@R chepaev.ru^Ÿ + +goroddomodedovo.ru +infolyubertsy.ru +gorodarmavir.ru + comores24.com + godublin.info + golondon.info + goshymkent.kz + vilniuje.info + 04141.com.ua + 04563.com.ua + 04596.com.ua + 04597.com.ua + 04598.com.ua + 04868.com.ua + 05136.com.ua + 05161.com.ua + 05366.com.ua + 05447.com.ua + 06153.com.ua + 06236.com.ua + 06237.com.ua + 06239.com.ua + 06252.com.ua + 06267.com.ua + 06272.com.ua + 06274.com.ua + 06277.com.ua + 06452.com.ua + angarsk38.ru + gorod3466.ru + karelia.news + 0512.com.ua + 0566.com.ua + 0569.com.ua + 0619.com.ua + 0623.com.ua + 0629.com.ua + 3849.com.ua + 4594.com.ua + 5692.com.ua + 6262.com.ua + 6264.com.ua + 8422city.ru + bazhopol.ru + goriga.info + inalmaty.kz + inastana.kz + inatyrau.kz + inform69.ru + yocity12.ru + +anapa.life + +inaktau.kz + city01.am + city41.ru + go7812.ru + +06242.ua + +65.media + +go212.by + +go216.by +0312.ua +0332.ua +0342.ua +0352.ua +0362.ua +0372.ua +0382.ua +0412.ua +0432.ua +0462.ua +0472.ua +0522.ua +0532.ua +0542.ua +0552.ua +0564.ua +0642.ua +0652.ua +0692.ua +1rnd.ru +3652.ru +3654.ru +7232.kz +go01.ru +go11.kz +go26.ru +go31.ru +go61.ru +015.by +032.ua +048.ua +056.ua +057.ua +061.ua +44.ua +62.ua.banner© + +goroddomodedovo.ru +infolyubertsy.ru +gorodarmavir.ru + comores24.com + godublin.info + golondon.info + goshymkent.kz + vilniuje.info + 04141.com.ua + 04563.com.ua + 04596.com.ua + 04597.com.ua + 04598.com.ua + 04868.com.ua + 05136.com.ua + 05161.com.ua + 05366.com.ua + 05447.com.ua + 06153.com.ua + 06236.com.ua + 06237.com.ua + 06239.com.ua + 06252.com.ua + 06267.com.ua + 06272.com.ua + 06274.com.ua + 06277.com.ua + 06452.com.ua + angarsk38.ru + gorod3466.ru + karelia.news + 0512.com.ua + 0566.com.ua + 0569.com.ua + 0619.com.ua + 0623.com.ua + 0629.com.ua + 3849.com.ua + 4594.com.ua + 5692.com.ua + 6262.com.ua + 6264.com.ua + 8422city.ru + bazhopol.ru + goriga.info + inalmaty.kz + inastana.kz + inatyrau.kz + inform69.ru + yocity12.ru + +anapa.life + +inaktau.kz + city01.am + city41.ru + go7812.ru + +06242.ua + +65.media + +go212.by + +go216.by +0312.ua +0332.ua +0342.ua +0352.ua +0362.ua +0372.ua +0382.ua +0412.ua +0432.ua +0462.ua +0472.ua +0522.ua +0532.ua +0542.ua +0552.ua +0564.ua +0642.ua +0652.ua +0692.ua +1rnd.ru +3652.ru +3654.ru +7232.kz +go01.ru +go11.kz +go26.ru +go31.ru +go61.ru +015.by +032.ua +048.ua +056.ua +057.ua +061.ua +44.ua +62.ua.card-placeholder¯ + +goroddomodedovo.ru +infolyubertsy.ru +gorodarmavir.ru + comores24.com + godublin.info + golondon.info + goshymkent.kz + vilniuje.info + 04141.com.ua + 04563.com.ua + 04596.com.ua + 04597.com.ua + 04598.com.ua + 04868.com.ua + 05136.com.ua + 05161.com.ua + 05366.com.ua + 05447.com.ua + 06153.com.ua + 06236.com.ua + 06237.com.ua + 06239.com.ua + 06252.com.ua + 06267.com.ua + 06272.com.ua + 06274.com.ua + 06277.com.ua + 06452.com.ua + angarsk38.ru + gorod3466.ru + karelia.news + 0512.com.ua + 0566.com.ua + 0569.com.ua + 0619.com.ua + 0623.com.ua + 0629.com.ua + 3849.com.ua + 4594.com.ua + 5692.com.ua + 6262.com.ua + 6264.com.ua + 8422city.ru + bazhopol.ru + goriga.info + inalmaty.kz + inastana.kz + inatyrau.kz + inform69.ru + yocity12.ru + +anapa.life + +inaktau.kz + city01.am + city41.ru + go7812.ru + +06242.ua + +65.media + +go212.by + +go216.by +0312.ua +0332.ua +0342.ua +0352.ua +0362.ua +0372.ua +0382.ua +0412.ua +0432.ua +0462.ua +0472.ua +0522.ua +0532.ua +0542.ua +0552.ua +0564.ua +0642.ua +0652.ua +0692.ua +1rnd.ru +3652.ru +3654.ru +7232.kz +go01.ru +go11.kz +go26.ru +go31.ru +go61.ru +015.by +032.ua +048.ua +056.ua +057.ua +061.ua +44.ua +62.uaapp-block-widget-bannerÆ +inkrasnoznamensk.ru +inlosinopetrovsk.ru +insolnechnogorsk.ru +inchernogolovka.ru +inkrasnoarmeisk.ru +in-narofominsk.ru +in-voskresensk.ru +in-domodedovo.ru +inkrasnogorsk.ru +involokolamsk.ru +in-schelkovo.ru +inbalashikha.ru +inivanteevka.ru +inshahovskoe.ru +inzhukovskiy.ru +inzvenigorod.ru +indolgoprud.ru +indubnacity.ru +inegorievsk.ru +inhimkicity.ru +inkotelniki.ru +inlotoshino.ru +inluhovitsy.ru +inlytkarino.ru +inmytishchi.ru +inodintsovo.ru +inpushchino.ru +inramenskoe.ru +insergposad.ru + in-dmitrov.ru + in-kolomna.ru + in-korolev.ru + infryazino.ru + inklincity.ru + inlubertsy.ru + inmozhaisk.ru + inpavposad.ru + inprotvino.ru + inpushkino.ru + inserpuhov.ru + in-reutov.ru + in-vidnoe.ru + inelgorsk.ru + inkashira.ru + innoginsk.ru + inorehovo.ru + inpodolsk.ru + inserprud.ru + inshatura.ru + instupino.ru + inzaraisk.ru + inzheldor.ru + in-istra.ru + inchehov.ru + inelstal.ru + inlobnya.ru + inroshal.ru + intaldom.ru + +inozery.ru + inruza.rubody > a[href][target="_blank"]» +inkrasnoznamensk.ru +inlosinopetrovsk.ru +insolnechnogorsk.ru +inchernogolovka.ru +inkrasnoarmeisk.ru +in-narofominsk.ru +in-voskresensk.ru +in-domodedovo.ru +inkrasnogorsk.ru +involokolamsk.ru +in-schelkovo.ru +inbalashikha.ru +inivanteevka.ru +inshahovskoe.ru +inzhukovskiy.ru +inzvenigorod.ru +indolgoprud.ru +indubnacity.ru +inegorievsk.ru +inhimkicity.ru +inkotelniki.ru +inlotoshino.ru +inluhovitsy.ru +inlytkarino.ru +inmytishchi.ru +inodintsovo.ru +inpushchino.ru +inramenskoe.ru +insergposad.ru + in-dmitrov.ru + in-kolomna.ru + in-korolev.ru + infryazino.ru + inklincity.ru + inlubertsy.ru + inmozhaisk.ru + inpavposad.ru + inprotvino.ru + inpushkino.ru + inserpuhov.ru + in-reutov.ru + in-vidnoe.ru + inelgorsk.ru + inkashira.ru + innoginsk.ru + inorehovo.ru + inpodolsk.ru + inserprud.ru + inshatura.ru + instupino.ru + inzaraisk.ru + inzheldor.ru + in-istra.ru + inchehov.ru + inelstal.ru + inlobnya.ru + inroshal.ru + intaldom.ru + +inozery.ru + inruza.rudiv[class^="banner"]ã +koryazhma-poisk.ru +govorituzhnik.ru +vologda-poisk.ru +govoritsatka.ru +kaluga-poisk.ru +yasniy-city.ru + cher-poisk.ru + mediabrest.by + yola-poisk.ru + vuralsk.life + nyagan.life + +nur24.ru .bottom-bnræ +koryazhma-poisk.ru +govorituzhnik.ru +vologda-poisk.ru +govoritsatka.ru +kaluga-poisk.ru +yasniy-city.ru + cher-poisk.ru + mediabrest.by + yola-poisk.ru + vuralsk.life + nyagan.life + +nur24.ru.brn-containerð +koryazhma-poisk.ru +govorituzhnik.ru +vologda-poisk.ru +govoritsatka.ru +kaluga-poisk.ru +yasniy-city.ru + cher-poisk.ru + mediabrest.by + yola-poisk.ru + vuralsk.life + nyagan.life + +nur24.ru.zen-subscribe-container] +forum.na-svyazi.ru +forum.zarulem.ws + +21forum.ru!#ipbwrapper > div[align="center"]/ + pogoda21.ru.PageCap > table .nodivs > a‚ +forum.na-svyazi.ru +forum.zarulem.ws + +21forum.ruF.borderwrap > [id^="p_row_"] ~ table[width="100%"]:not([id^="p_row_"])5 + pokupki21.ru!.main_width > div[align="center"]( + na-svyazi.ru +cheb.ru .ru200200 + na-svyazi.ru .ru320140A + cheboksary.ws + kugesi.ru +cheb.ru +cheb.ws .ru360120A + na-svyazi.ru + +zarulem.ws +cheb.ru +cheb.ws .ru560130* + na-svyazi.ru + +zarulem.ws.ru56070" +cheb.ru +cheb.ws.ru56080T + cheboksary.ws + na-svyazi.ru + kugesi.ru +cheb.rua[href*="/ad.adriver."]o +forum.na-svyazi.ru +forum.zarulem.ws + +21forum.ru3div[style="width:900px; margin: 5px auto 5px auto"]Y + afisha21.ru + pogoda21.ru +cheb.ru,noindex > a[target="_blank"][rel="nofollow"]: + +zarulem.ws(td[style^="text-align:center;width:50%"]† +ÿï08@Rchuvashskoe.ru^ +ÿï08@R devki21.ru^ +ÿï08@R dns21.ru^ +ÿï08@R doloj.ru^ +!ÿï08@Rdoroga.kugesi.ru^ +ÿï08@R echeb.ru^ +#ÿï08@Rgorod.shumerlya.ru^ +"ÿï08@Rhost.torrent21.ru^ +ÿï08@R icheb.ru^ +ÿï08@R it-cheb.ru^ +!ÿï08@Rkino.afisha21.ru^ +ÿï08@Rkugesi.ru/fl2s/ +ÿï08@Rkugesi.ru/fl3s/ +ÿï08@R lubov21.ru^ +#ÿï08@Rmy.megavstrecha.ru^ +ÿï08@R +nedv21.ru^ +ÿï08@R procheb.ru^ +ÿï08@R randoom.ru^ + ÿï08@Rserdce-volgi.ru^ +ÿï08@R sovch.ru^ +ÿï08@R sukterka.ru^ + ÿï08@Rtatar.4kazan.ru^ +ÿï08@R uroki21.ru^ +ÿï08@Rzaovrazhnoe.ru^ + ÿï08@Rzavod.chuvaz.ru^ +ÿï08@R zlograd.ru^ +ÿï08@R/.s/flash/bnr/ +$ÿï08@R/.s/src/adv_scripts/ +%ÿï08@R/.s/src/crit_image.js +08@R /src/u_*.js +08@R/src/ucounter*.js +à * +xn--80aeshkkbdj.xn--p1ai* +online-supernatural.ru* +novospasskoe-city.ru* +fukushima-news.ru* +pokatushki-pmr.ru* +rocketdockfree.ru* +stalker-zone.info* +all-for-kompa.ru* +elektronika56.ru* +gloria-cedric.ru* +zona-stalkera.ru* +autosimgames.ru* +newgames.com.ua* +pro-zakupki.ru* +sdr-deluxe.com* +stalker-gsc.ru* +stalkermods.ru* +svadbatomsk.ru* +yaminecraft.ru* + devdrivers.ru* + elektrosat.ru* + free-dream.ru* + goldformat.ru* + greenflash.su* + krasnickij.ru* + megaclips.net* + only-paper.ru* + pidru4nik.com* + play-force.ru* + project-ss.ru* + soft-game.net* + a-point.info* + db-energo.ru* + omsimclub.ru* + radiodom.org* + xakevsoft.ru* + addfiles.ru* + ftechedu.ru* + igrul-ka.ru* + others.name* + psxworld.ru* + tes-game.ru* + torfiles.ru* + vodopads.ru* + vsthouse.ru* + +asia-tv.su* + +fon-ki.com* + +for-gsm.ru* + +krolmen.ru* + elegos.ru* + f-igri.ru* + ucoz.club* + usite.pro* + +narod.ru* + +ucoz.com* + +ucoz.net* + +ucoz.org* +clan.su* +gals.md* +pkrc.ru* +ucoz.ru* +ucoz.ua* +3dn.ru* +moy.su* +my1.ru* +at.ua* +do.am08@R /widget/?_= +ÿï08@R 1xikk.world^ +ÿï08@R 1xool.world^ +‚08@R3dn.ru/?*%21*% +‚08@R 3dn.ru/?*%5E +‚08@R at.ua/?*%21*% +‚08@R at.ua/?*%5E +‚08@Rclan.su/?*%21*% +‚08@R clan.su/?*%5E +$ÿï08@Rl0iwe39iikh34bc0.ru^ +‚08@R my1.ru/*%21*% +‚08@R my1.ru/?*%5E +‚08@Rnarod.ru/?*%21*% +‚08@Rnarod.ru/?*%5E +(ÿï08@Rru/apoint/load?*&random= +=ÿï* + gamer-mods.ru08@Rucoz.net/cgi/uutils.fcg?*r +‚08@Rucoz.org/?*%21*% +‚08@Rucoz.org/?*%5E +‚08@Rucoz.ru/?*%21*% +‚08@R ucoz.ru/?*%5E#_u_ablock_bottomlink#_u_ablock_toplink#u_preroll_overlay#u_preroll_videoadbetnet#u_preroll_videoinvi#u_preroll_videomvd—’body > div[id^="dV"][style^="width"][style*="height"][style*="position"][style*="fixed"][style*="overflow"][style*="z-index"][style*="background"]°«body > div[style="background-color: #FFF;height: 100px;position: fixed;bottom: 0px;width: 100%;max-width: 1200px;left: 50%;transform: translateX(-50%);z-index:2147483647"]njbody > div[style="position: fixed; z-index: 999999; width: 400px; height: 308px; left: 5px; bottom: 5px;"]okbody > div[style="position: fixed; z-index: 999999; width: 400px; height: 308px; right: 5px; bottom: 5px;"]JFbody > iframe[style^="position"][style*="fixed"][id^="iFb"][src^="/?"]# + 1xikk.world + 1xool.world*84body > div[class^="_"][class*=" _"][class$="_stBig"]ÔI + it-actual.ru5#main > :not(#primary):not(#leftbar):not(#seecondary)š + it-actual.ru…#menu-block > :not([class="widget widget_search"]):not([class="widget_ widget_menu"]):not([class="widget_pl popular-posts"]):not([class="widget widget_comments"]):not([class="widget widget_taag_cloud"]):not([class="widget_f widget__scr_lp"]):not([class="sbar"])B + it-actual.ru.#page > :not(#masthead):not(#main):not(footer)- + it-actual.ru#primary > :not(#content)9 + it-actual.ru%#seecondary > :not([id="menu-block"])& + it-actual.rubody > :not(#page)2 + +culture.ru #__next > div > main + div + div" + newrezume.org #all > #popup? + newrezume.org*#all > div[style="padding:1px;width:100%"]( + +zakon.kz#allowNotificationsPopup' +bankdirect.pro#bdp_ad_container! +bankdirect.pro #bdp_shadow +timeallnews.ru #bg_popup + theonion.ru +#bodypopup) +nikopolnews.net#button-contact-vr3 +samsebevoin.ru + westnews.info #cboxOverlay + +fishki.net #chrome_popup™ +nikolaev24.com.ua +dnepr24.com.ua +kherson.net.ua +samsebevoin.ru + odessa.net.ua + westnews.info + gazeta.zp.ua + kr24.com.ua #colorbox +rg.ru#cookie-consentH +olx.kz +olx.ua +olx.uz&#div-gpt-listing-full-screen-container + gitarkin.ru#dropin' +velosipedinfo.ru#dynamic-to-top" +zaporpobedim.ru #ecl-notice + dsvload.net #ed-shortbar* +velosipedinfo.ru#element_to_pop_up! + +xvatit.com#facebook-modal" + sovkusom.ru#facebook_popup% + +porjati.ru#facebook_videoboom +galinfo.com.ua#fader2 + megomult.ru + +fon-ki.com#fancybox-overlay: +formulalubvi.com + econet.ru + +humor.fm #fb-popup + +humor.fm #fb-popup-bg + +fresher.ru#fbpopup' + +fishki.net#fishki-prompt-widget +astv.ru #fullscreenmf# +ok.ru#hook_Block_TopContent! + turkca.0pk.ru #hoverprompt> +games-on-pc.ru(#html-footer > .container > :not(center)q +gazeta-severny.ru +navkolonas.com +vseprynosti.ru + morediva.ru + +video.az#js-dialog-social-overlay! + plodovie.ru#light_comment +inforeactor.ru #like_box! +galinfo.com.ua #likesplash + +tackler.ru#mask* + magicfilm.net + funtik.tv#mod_fav# + tests-exam.ru#modal_form_vk +zn.ua #modal_window +autocad-master.ru#myID" + gidonline.fun #myShowBlock1" + hetaqrqire.ru #onload_popupA +dentaltechnic.info + itcrumbs.ru + +life.ck.ua +#openModal$ +sverhestestvennoe.club#osiad+ + blogspot.com + animego.lol#overlay +zn.ua#overlay_fb_modal  + tests-exam.ru #overlay_vka +zvamynews.blogspot.com +sovsekretno.ru + kaifzona.ru +znaj.ua +flb.ru #parent_popup* +easypronunciation.com #please_share + gdz-free.com#pol + animego.lol#popup$ + womansay.net#popup.modal-box + +advis.ru#popup3^ +megatest.online + cluber.com.ua + fithacker.ru + storyfox.ru + +dictat.net #popup_bg + muz-tv.ru#popup_overlay3 +intersnoznat.ru + funnymir.net #popupwindow, + +peers.tv#prompt-form-container-phoneÃ. + +psm7.com#psm-messenger-subscribe-popup@ +businessua.com + multikino.com + +bilshe.com #reachMedia +kote.ws#register_popup +maam.ru#registr< + trychatgpt.ru'#root > div > footer ~ div.fixed[style]" + bvedomosti.ru #sbox-overlay! + bvedomosti.ru #sbox-window= +sport-express.net +sport-express.ru#se-cookie-popupA +businessua.com + multikino.com + +bilshe.com #shadowMedia + +wildo.ru +#shadow_vk  + top.thepo.st #share-popup5 +radiojazzfm.ru#sidebar > a[href="#"][onclick]  + metodsilva.ru #sm_content + metodsilva.ru#sm_olay + charter97.org +#smo_modal +80-e.ru#smth+ +via-midgard.info#snsocial_modal_jic! +sport-express.ru #socgroup% + muz-tv.ru#social_popup_window# +audiobook.rmail.pro#somewin + +mul-tor.ru +#stickymsg# + macilove.com#subscribePopup& +patrioty.org.ua#telegram_modal6 + bhub.com.ua + +kazus.ru#text-popup-load-window + +wildo.ru#vk_wiget_popup% +sdelalremont.ru#wbounce-modal* + fit4brain.com#welcomepopup_overlay) + fit4brain.com#welcomepopup_window# +stalker-gsc.ru #win > .podps + technoavia.ru +.Agreement + glavbukh.ru .GbShadow +all.biz.ab-fade8 + rutube.ru'.application-module__notifyMarginBottom + esetnod32.ru.b-fade + +pdalife.ru.b-mask + esetnod32.ru.b-mdl + hetaqrqire.ru.b-modal +tvc.ru.b-overlay-soc + +pdalife.ru.b-popup + vashgorod.ru.c-popup + games-two.su.ckf-box* + riafan.ru.cookie-agreement-wrapper& +news.sportbox.ru.cookie-notice6 + rutube.ru%.cookie-notify-module__cookie-consent4 +championat.com + championat.ru .cookie-popup + +litnet.com +.cookies-w) +ecopolitic.com.ua.cursor-follower$ +crimezone.in.ua .custom-modal + +jurnalu.ru.demo + gofrag.ru.eb-inst( + +rufonts.ru.elementor-popup-modal + +elhow.ru .extra-banner- + +great.az.facebook-bg,.facebook-window$ + alllyr.ru.fancybox-container! + +advis.ru.fancybox-overlay/ + megomult.ru + +fon-ki.com.fancybox-wrap& +milliarderr.com.fb-window-wrap! +championat.asia +.fbOverlay + anime777.ru .first-popup, + berkem.ru.fixed_link--telegram-group¹ +psychologies.ru +marieclaire.ru +maximonline.ru +vokrugsveta.ru + +mydecor.ru + +parents.ru + +starhit.ru + +the-day.ru + +thegirl.ru + +woman.ru.in-content-recomendations# + brutaljack.ru.in.fade.modal$ +voprosov-net.ru .isShow.popup, +justcoolidea.ru.is_visible.like_wallÕ! +wildberries.ru .jqmOverlay  +wildberries.ru +.jqmWindowB + sovkusom.ru + +porjati.ru + +ognov.ru.jquery-modal.blocker' + +fishki.net.like_wall.is_visible +haba.ru .likewall + +krugo.ru.lwsoc + +amedia.lol .mfp-hide($.min-width-normal > #popup_container0,.min-width-normal > #popup_container ~ #fade# + top.thepo.st.modal-backdrop4 + svadbavo.ru!.modal-baner + .mask,.modal-baner/ +wotexpress.info.modal-block-hide-twitch# + womenzone.org.modalFacebook + techmusic.ru +.myWinGrid. + videokaif.ru.onp-sl-overlap-backgroundA +arduino-project.net +mirkrasoty.life.onp-sl-overlap-box. + videokaif.ru.onp-sl-overlap-locker-box, + winstation.ru.overlay-wrapper.thanks + muz-tv.ru.ovl_pf+ +alpindustria.ru.personal > .overlay^ + growhow.in.ua + newsyou.info + hariola.com + belsat.eu + bizua.org.popmake-overlay! +gb.ru.popup-wheel-overlay- +alpindustria.ru.popup.subscribe_panel1 + +golbis.com.post-top-meta[style*="fixed;"] + hdstudio.org .promo-bl + gdz-free.com.shadow$ + mixednews.ru.slidebox_social! + +domkino.tv.social-annoyer + +my.rv.ua.spu-bg + +my.rv.ua.spu-box  + +lolzona.ru.stb-container$ + sravni.ru.subscription-popup$ + +liga.net.swal2-backdrop-show- +gamestatus.info.telegram-follow-popup% +sputnikipogrom.com .tp-overlay + +povar.ru.vk.soc-banner- + blogspot.ru.widget-content > #overlay$ +inforeactor.ru.yandex-widget# + +pasy.media[data-remodal-id]# +9111.ru[id^="site-welcome"]+ +novoruskino.net[src$="/social.gif"]7 + profbuh8.ru$body > #TB_overlay,body > #TB_window! + +gavag.rubody > #bodypopupH +hi-tech-pro.ru + +censor.net$body > #cboxOverlay,body > #colorbox) +mos-holidays.rubody > #colorbox *( +womanadvice.rubody > #dark_popup' +womanadvice.rubody > #dialog-fb) + domfailov.rubody > #pop-up-window+ + secretmag.rubody > #subscribe-popup  + vika-plus.ru body > #usac' +velosipedinfo.rubody > .b-modalL + mynizhyn.com + pechera.info(body > .overlay[style="display: block;"]- + +bs-life.rubody > .ui-widget.ui-dialog! + dowlatow.rubody > .wid-fb0 + gosvopros.rubody > div[class$="-subscr"]1 + factroom.rubody > div[class^="facebook-"], + +bomba.cobody > div[class^="remodal"]3 + ladyclub.orgbody > div[class^="revelation"]1 + zismo.biz body > div[class^="simplemodal"]. + moypodval.rubody > div[class^="tccSm"]' + +pollee.orgbody > div[data-mg-c], + +tonnews.rubody > div[id^="fancybox"]+ + supertabak.rubody > div[id^="jBox"]* + ruskline.rubody > div[id^="money"]š" +Iÿï08@R9surl.*#?#.text-center:-abp-has(> form > .disabled) > p ~ +Z€* + piratbit.fun* + piratbit.org* + piratbit.top* + pirat.one* +pb.wtf08@R.mp3 +: +* + bhub.com.ua* + +kazus.ru08@R/*magnific-popup. +d* + obaldenno.com* + interesno.cc* + prikolno.cc* + pomada.cc08@R/build/js/base-modal-*.js +?* + obaldenno.com* + pomada.cc08@R/build/js/popup-*js +F* + +rambler.ru* + gazeta.ru* + +lenta.ru08@R/eagle.autostart. +d +* + ifnews.org.ua* + lvnews.org.ua* + tenews.org.ua* + rvnews.rv.ua08@R/frontend/*/remodal +c +* +smiruponitke.info* +stranadetstva.ru* + rusvesna.su* +sud.ua08@R/jquery.arcticmodal +2* + +holod72.ru08@R/jquery.simplemodal.js +0* +xn--90adear.xn--p1ai08@R +/nocopy.js +;÷ï* +o-nedvizhke.ru08@R/plugins/wordpress-popup/ +]* +bigcinema-hd.tv* +electorat.info* +ironfriends.ru* + gipnomag.ru08@R /plusonet +^*# +!xn--80aebkobnwfcnsfk1e0h.xn--p1ai* +xn--90adear.xn--p1ai08@R/proxy/check/popup/ +uÿï* +v-variant.com.ua* + svoboda.te.ua* + newsyou.info* + hariola.com* + belsat.eu08@R/pum-site-scripts.js +Jÿï* + samiysok.com* + videokaif.ru* + +sshut.ru08@R/sociallocker- +^ÿï* +ruskinonovoe.net* +novoruskino.net08@R'/templates/vser-light/images/social.gif +4 +* +noworries.news08@R/wp-content/*/*modal +v +* +oblast-te.com.ua* +ternopillive.com* +agroter.com.ua* + pb-news.info* +te.ua08@R/wp-content/*/remodal +2* + +pasy.media08@R/wp-content/*/remodal. +K +* +lenovo-smart.ru* + +akvus35.ru08@R/wp-content/plugins/*jqModal +1ÿï08@R!/wp-content/plugins/f-seo-social/ +<ÿï* +paragraf.net.ua08@R/wp-content/plugins/popup +iÿï* +lizasenglish.ru* +grippua.com.ua* +kompensacii.ru08@R"/wp-content/plugins/popup-builder/ +rÿï* +gazeta-severny.ru* +vseprynosti.ru* + morediva.ru08@R,/wp-content/plugins/smart-facebook-page-like +jÿï* + newsyou.info* + hariola.com* + belsat.eu* + bizua.org08@R!/wp-content/uploads/pum/pum-site- +)ÿï08@R5skyrim.com/js/showcur.js +#ÿï08@R900igr.net/bm/sc.js +Eÿï08@R5all-for-kompa.ru/All-For-Kompa/all-for-kompa-guest.js +-ÿï08@Ramedia.lol/templates/*/popup/ +lÿï* +eurointegration.com.ua* +champion.com.ua* +epravda.com.ua* + pravda.com.ua08@R api.traq.li^ +,ÿï08@Rapihost.ru/images/584676.gif +#ÿï08@Rautofill.yandex.ru^ +2ÿï08@R"bagnet.org/public/js/cook_popup.js +5ÿï08@R%black-eyed-peas.ru/engine/classes/js/ +cÿï08@RScdn.hsmedia.ru/ump-webapp-public/dist/client/assets/AllowConsentNotificationsModal- +'ÿï08@Rchefpovarok.ru/modal.js +#ÿï08@Rcomprofit.ru/popup/ +E08@R7computer-genius.ru/wp-content/plugins/subscribermagnet/: + trendymen.ru + +dnpmag.combody > div[id^="popup-"]+ + +daz3d.rubody > span[id^="s"][style]K + esputnik.com7body.cl-noscroll > .cl-dialog[style*="position: fixed"]/ + pinterest.comdiv[class*="ScreenBanner"]1 +snob.ru"div[class*="popup-eventSubscribe"]+ +noworries.newsdiv[class*="remodal"], + muzofon.comdiv[class*="simplemodal"]) + 5sfer.comdiv[class^="charlotte-"]( +ufacitynews.rudiv[class^="mfp-"]( + simplewine.rudiv[class^="popup"]½ +oblast-te.com.ua +ternopillive.com +agroter.com.ua + ifnews.org.ua + lvnews.org.ua + tenews.org.ua + pb-news.info + rvnews.rv.ua + +pasy.media +te.uadiv[class^="remodal"]k + povarenok.ru + stranamam.ru + +asienda.ru + +mycharm.ru + myjane.ru + +diets.rudiv[class^="snow"]* + rutvet.rudiv[data-type="anti-abp"]$ + +kinobb.netdiv[id$="odalWin"]' + techmusic.rudiv[id^="_uwndTop"]C + pornhub.com + pornhub.org!div[id^="age"][id*="erification"]) + wuzzup.rudiv[id^="arevicofancy-"]$ + +fishki.netdiv[id^="b-close"]: +formulalubvi.com"div[id^="custom_fan_gate_overlay"]) + +cpykami.rudiv[id^="facebook_win"]  + orybe.comdiv[id^="lbx_"]* + yagd-torr.rudiv[id^="plusplus_mw"]7 +agrarii-razom.com.uadiv[id^="user-to-register"]� +htmlacademy.rukdiv[style^="margin-left:"][style*="margin-bottom:"][style*="position:"][style*="orange"][style*="z-index:"]7 +drukarnia.com.uaheader ~ section[role="dialog"]B +surl.*4.card-body > .row > div:first-child:not(:only-child)Í +<ÿï08@R,creu.ru/wp-content/plugins/adv-popup-plugin/ +.ÿï08@Rcustomfw.xyz/stay-for-ukraine/ +1ÿï08@R!dailyhoro.ru/static/subscription/ +0ÿï08@R detstrana.ru/externals/fancybox/ +;ÿï08@R+dopestory.ru/wp-content/themes/yelly/Popup/ +7ÿï08@R'dsvload.net/engine/modules/ed-shortbar/ +808@R*eventsfolder.ru/templates/ef/js/lockers-ru +Iÿï08@R9factsinter.com/wp-content/plugins/custom-fan-gate-plugin/ +$ÿï08@Rfishing-mr.ru/modal/ +Oÿï08@R?free-software.com.ua/wp-content/plugins/fancybox-for-wordpress/ +(08@Rgdz-free.ru/files/stuHover +Eÿï08@R5gidmed.com/wp-content/plugins/social-community-popup/ +308@R%glazey.info/template/js/popup-mail.js ++ÿï08@Rgofrag.ru/media/com_rstbox/ +Gÿï08@R7golbii.ru/wp-content/plugins/facebook-like-page-locker/ +,ÿï08@Rhdkinoshka.com/js/usocial.js +Bÿï08@R2hi-tech-pro.ru/wp-content/uploads/smp_plain_popup. +8ÿï08@R(inetlike.com/wp-content/plugins/like-fb/ +08@R inetlike.ru^ +'ÿï08@Rinteresbook.ru/modal.js +<* +pptforschool.ru08@Rjquery-library.net/plusplus +"ÿï08@Rkaifzona.ru/modal/ +;ÿï08@R+kaputsin.com/wp-content^*/facebook-popup.js +*ÿï08@Rkernel-zone.ru/tools/kmsg/ +* +08@Rkino67.ru/social/socialmodal +:ÿï08@R*klassno.tv/wp-content/plugins/blud-popup*/ +Bÿï08@R2klassno.tv/wp-content/plugins/mashshare-videopost/ +Eÿï08@R5kursremonta.ru/wp-content/plugins/popup-by-supsystic/ +Aÿï08@R1lektsia.info/js/services/boxBeforeClosingShare.js +1ÿï08@R!life.ru/_next/static/chunks/2793. +, 08@Rlinkis.com/ajax/get-popup-html +0ÿï08@R litnet.com/common/*/confirm_age/ +#ÿï08@Rlive-hd.ru/fb24.htm +/ÿï08@Rm24.ru/firebase-messaging-sw.js +ÿï08@R mailget.net^ +:ÿï08@R*makataka.ru/templates/Default/style/fancy/ +4ÿï08@R$metylancreativ.com/js/socialPopup.js +F€08@R7mos-holidays.ru/wp-content/uploads/smp_plain_popup.html +0ÿï08@R mskagency.ru/js/jquery.cookie.js +=08@R/myfishka.com/templates/js/jquery.smartbanner.js ++ÿï08@Rndv.ru/css/callback-fix.css +Cÿï08@R3nlo-mir.ru/templates/nlo-mir/js/jquery.modal.min.js +%"* + +www.nur.kz08@R nurtv.kz^ +$08@Rofigenno.com/js/social +:ÿï08@R*photo-monster.ru/plugins/subscribermagnet/ +.ÿï08@Rplaymap.ru/uploads/red-button/ +,ÿï08@Rpodrobnosti.ua/js/jqModal.js ++ÿï08@Rpopupfiles.makedreamprofits +Gÿï08@R7posobaby.com/wp-content/plugins/social-community-popup/ +/ÿï08@Rpravda.press^*/custom-fan-gate/ +2ÿï08@R"pravpiter.ru/splash_wind/s_dialog/ +4ÿï08@R$psxplanet.ru/forum/clientscript/ny20 +.ÿï* + megatrack.top08@R radioroks.ua^ +7ÿï08@R'rbk.ru/*/scripts/build/fn/_pushAllow.js +0ÿï08@R senior.ua/disable/request-banner +Aÿï08@R1shokru.com/wp-content/plugins/elegance-modal-box/ +(ÿï08@Rsim-portal.ru/jfbe7r9.js +/08@R!slovoidilo.ua/cp/css/reminder.css +?ÿï08@R/sovkusom.ru/wp-content/plugins/as-social-popup/ +Gÿï08@R7stroyres.net/wp-content/plugins/social-community-popup/ +Pÿï08@R@takiedela.ru/wp-content/themes/takiedela/assets/js/min/social.js +@ÿï08@R0takprosto.cc/wp-content/plugins/as-social-popup/ +Eÿï08@R5tattoofotos.ru/wp-includes/js/jquery/ui/dialog.min.js +>€* + techmusic.ru08@Rtechmusic.site/techmusic.ru.mp4Ù +&08@Rtelezombi.ru/js/toast.js +2ÿï08@R"ternopoliany.te.ua/*/js/scriptx.js +0ÿï08@R traq.li/publisher/render/widget/ +Cÿï08@R3twizz.ru/wp-content/plugins/facebook-popup-rotator/ +0ÿï08@R ufacitynews.ru/st/libs/magnific/ +%ÿï08@Runn.com.ua^*/jqModal. +,08@Rusocial.pro/usocial/usocial.pp +ÿï08@R vboro.de^ +Iÿï08@R9visagistprofi.ru/wp-content/plugins/wpt-tea-coffee-dance/ +' +08@Rvitaportal.ru^*/new_popup ++ÿï08@Rweb2edu.ru/script/leaves.js +:* + minfin.com.ua08@Rwidgets.getsitecontrol.com^ +@ÿï08@R0womansay.net/assets/templates/womansay/js/popup/ +<ÿï08@R,wtalks.com/sites/all/modules/facebook_modal/ +F +08@R8xperia-droid.ru/wp-content/plugins/boom-social/*/jqModal + ÿï08@Rxvatit.com/fbxv/ +Nÿï08@R>yablyk.com/wp-content/plugins/facebook-page-promoter-lightbox/ +*ÿï08@Ryandex.ru/browser-updater/ +Iÿï* + youtebem.com08@R)youtube.com/embed/*youtebem.com&widgetid=C +forum.na-svyazi.ru +forum.zarulem.ws + +21forum.ru#HeroAd + +ujmos.ru #ab_adblock + +ujmos.ru #ad-buttons + graffiks.ru +#ad-target) + domodedovo.ru +dme.ru +#adBanner1' + domodedovo.ru +dme.ru#adLink1 + stepashka.com +#ad_header +devicesearch.ru#ad_top! + yroslava.ru#ads-container + topserver.ru#ads1 + topserver.ru#ads2 + topserver.ru#ads3 + topserver.ru#ads4 +devicesearch.ru#ads_top + pc-aio.ru#adstopT +mathsisfun.com + slavyansk.biz + +arabela.ru + +tagline.ru + x-time.ru#adv + videoxq.com +#adv-title + mycinema.pro #adv_config# +corrupt.pnzreg.ru +#adv_right" +mobile-review.com #advblockE +postiralka.com.ua +fridger.com.ua +my-serials.com#adverts# +forum.uralsk.info +#centerads + filecheck.ru +#contentAd + +110km.ru #content_ads" +blog.edvels.com #footer-ads" +blog.edvels.com #header-ads + +de-yure.ru#reklama3 +vologdahistory.ru + +bal-vod.ru #sidebar-ads + dobrokar.com#top-ad  +bober.lutsk.ua +#topAdvert + russia.tv +#video-adv +irr.ru .ad-block# +chess-online.com .ad-cluster +architecture.az.ad-code + joblib.ru.ad-flag + vdvanapa.ru.ad-img/ +waifucards.app + stomsuper.com.ad-item( +mishka-knizhka.ru.ad-placeholder  +mishka-knizhka.ru.ad-tag +auto.am .ad-title + ads.tuver.ru.ad-type% +alliance-catalog.ru +.adContent +oo.by .ad_content% +alliance-catalog.ru +.ad_header& + +divendo.ru +fvds.ru .ad_imageæ + sellua.info.ad_img + sellua.info.ad_item + photodoska.ru .ad_large + photodoska.ru .ad_small2 +primorsko-ahtarsk.ru + +avtotag.ru.ad_text + +my.mail.ru.adds? +biblionika.info + +bazar.bike + bamper.by .adds-wrapper + kvartirant.by.adinfo  +insignia-mebel.ru.ads-bg + kvartirant.by.ads-box$ +insignia-mebel.ru .ads-footer% +reklama-sev.com.ua .ads-holder + bamper.by +.ads-image8 +tt.animedia.tv + abtorg.ru + +vse.sale .ads-list3 +belarus-index.site + guidesgame.ru.ads-row + rod-vzv.info.ads1 +railtransport.ru.ads_2 +railtransport.ru.ads_3  +mykontakts.org +.ads_block + +ds45spb.ru .ads_item  + exocur.ru.adsense-header +ntsk.ru.adsinfo + blag-vesti.ru .adslot_1 + +vtomske.ru.adtable + kvartirant.by.adtxtÒ +school.kupiltovar.ru +openbudget.gfu.ru +postiralka.com.ua +board.sibnet.ru +fridger.com.ua + sovcombank.ru + tehnika4u.ru + servkino.ru + +pcradio.ru + +siproen.ru + +hmgma.ru +hawk.ru.adv" +school.kupiltovar.ru.adv-4+ + azartcash.com + +twite.ru +.adv-block! +fiberdevice.ru .adv-header. +xn--74-6kcaj3c0aikq.xn--p1ai +.adv-rightg +teu-eurocara.com.ua +4.u0166811.z8.ru +100kolyasok.kz + chistosex.org + +calls.su .adv-text4 +postiralka.com.ua +fridger.com.ua .adv_left5 +postiralka.com.ua +fridger.com.ua +.adv_right +irr.ru +.adv_title- + ideipovara.ru + metagames.ru.adv_top + +peleo.ru .advert-block2 +svitkvartyr.com + maklera.org .advert-card +jamesedition.ru.advert2" + bestru.ru +am.ru.adverts + abdulinko.ru.advt + slavyansk.biz.advtext + +komus.ru.b-adv +irr.ru .b-advert/ +airmediacenter.com + +a-d-k.ru .b-banner' +kaluga-bestiphone.ru .banner-adv + +banki24.by +.banner300 + griffe.ru .banner_box + +biglife.kg.card-ad) +pokrov-monastir.ru.container--ads“ +disk.yandex.com.am +disk.yandex.com +disk.yandex.by +disk.yandex.kz +disk.yandex.lt +disk.yandex.ru +disk.yandex.uz .content_ads + agrobook.ru .context-ads + f-igri.ru +.google_ad" +skodarapidclub.ru .headerad + ecology-of.ru .home-ads* + kyron-clan.ru + simmama.com.ipsAd/ +kinoclub.org.ua + erokarta.ru .item-ads + sellua.info.lastads +bestgardener.ru.madv +architecture.az.mom-ad +stalkerportaal.ru.n_ad3 +planet-watersport.ru + agrobook.ru.node-ad + autodromo.ru .page-ads +24sk.ru .page-advert + school-tea.ru .panel-adµ +Fÿï* + elama.com.br* + elama.global* + +elama.kz* + +elama.ru08@ +ˆ* +delmet.demo2.e-inform.by* +specodezhda-siz.ru* +dveri.d3-group.ru* + dverybest.ru* + 5sotok.by* + delmet.by08@R -300x600. +0ÿï* +direct-i-adwords.ru08@R -adwords. +"ÿï* +rw.by08@R -teasers- +/ÿï08@R.soundcloud.com/player.swf?url= +Pÿï* +mimichatter.com* +mashablehq.com* + takeflyte.com08@R +.swf?purl= +Pÿï* +adservice.com.ua* + adservice.kz* + adservice.ru08@R /*adservice. +m* +hentaichik.net* +standupzona.ru* + hentasis1.top* + domahatv.com* + hentai-x.ru08@R /*lonnlo*=_ +.ÿï* +matematikalegko.ru08@R/468x60_ +"* + +gbsmp.ru08@R/728x90. +:ÿï* + citibank.com* + +citi.com08@R/GFC/branding/ +$ÿï* + adbox.one08@R/adbox. +2* + alfabank.ru* + +megafon.ru08@R/adfox. +,ÿï* +rg.ru08@R/adfox.reload_code. +2* + alfabank.ru* + +megafon.ru08@R/adfox/ +Mÿï* +adline.reformal.ru* +adline.kiev.ua* + adline.by08@R/adline. +)ÿï* + adpage.com.ua08@R/adpage. +'ÿï* + +ads-top.ru08@R /ads-top. +'ÿï* + +adsense.su08@R /adsense. +)ÿï* + winxclub.com08@R /adsense/ +%ÿï* + +adsup.me08@R /adsup.me +!ÿï* +adv5.ru08@R/adv5. +#ÿï* + +adver.kz08@R/adver. +lÿï* +advert-technology.ru* +advert-control.ru* +advert-empire.com* +advert-line.ru08@R/advert- +'ÿï* + plektan.com08@R/adverts +-ÿï* +bookinist.com.ua08@R /adverts/ +#ÿï* + +adweb.by08@R/adweb. +7ÿï* + +megafon.ru* + +akado.ru08@R /ai/adbanner/ +/ÿï* +abcphoto.com.ua08@R /assets/ads/ +1ÿï* +matematikalegko.ru08@R /banner/468 ++ÿï* + crbmpurga.ru08@R /files/ads/ +@ÿï* +context.reverso.net08@R/images/google-play-clear +Q* + animevost.org* + animevost.top* +vost.pw08@R/images/star_share.png +-* +day-x.narod.ru08@R /informer.php +,* + cars.mail.ru08@R/jquery.min.js +9ÿï* + +zapals.com* + +zakaz.ua08@R/media/banners/ ++* + cars.mail.ru08@R /modernizr.js +Tÿï* +reklama.rambler.ru* +reklama.marat.ua* + my.reklama.lv08@R /reklama. +*ÿï* + velosumka.com08@R /reklama/ +)ÿï* + reklama1.su08@R +/reklama1. +‰* +porno-kino.online* +hentaichik.net* +standupzona.ru* + hentasis1.top* + domahatv.com* + hentai-x.ru08@R/static/player.js? +?ÿï* +bmw-motorrad.com* +bmw-motorrad.ru08@R/teaser. +)ÿï* + joindota.com08@R /teasers. +g* +legionhardware.com* +aftershock.news* +expertbank.com* + +hock5.ru* +rw.by08@R /teasers/J + xxx.vekdvd.ru + kino-sex.ru + sosxxx.ru +vekx.ru.pm-ads-banner +grafik-smen.ru.reklamV +skylineproduction.com.ua + rodinkam.net + landlord.ua + poima360.ru.reklama + +dalryba.ru .section-adv + rabkor.ru .sidebar-ad-c] +v-tatarstane.ru + novostivl.ru + ryazan.life + +yakutsk.ru + krym.news .sidebar_ads + +abrikos.us +.single-ad" + leanforum.ru.sponsor_block + +milanac.ru .td-a-rec + +milanac.ru.td-ad-m + +milanac.ru .td-ad-tp$ + +milanac.ru.td-header-ad-wrapK +non6.blogspot.com +non6.blogspot.ru + myprogulki.ru .vertical-ads +156.ru .view-ads( +redkino-admin.ru.vl-advertisment& +redkino-admin.ru.vl-header-ads +mts.ru.wide-ad$ + aannov.ru.widget_supermag_ad3 +redkino-admin.ru.widget_viral_advertisement, +xn--112-5cd3baof9c5c.xn--p1ai.wrapadà +4ÿï* +sibtravel42.ru* +tutu.ru08@R/tizer/ +#ÿï* + +led66.ru08@R/tizer_ +?* + transbank.ru* +ffan.ru* +shop.kz08@R /upload/bx/ +<ÿï* + webadvert.net* + webadvert.ru08@R /webadvert. +- * + tvvse.my1.ru08@R://*.*.*.*.m3u8 ++ * + tvvse.my1.ru08@R ://*.*.*.*.ts +*ÿï* + adshow.ru08@R ://adshow.ru/ +1ÿï* + +lawport.ru08@R://adv.*.lawport.ru +,* +porno-kino.online08@R ?p=*&*=_t +#ÿï* +1obl.ru08@R_ad.php? +ÿï* + auth.wi-fi.ru08@ +Aÿï* + 100pravda.com08@R 100pravda.com/includes/ads_kola/ +@* +1743.ru* +156.ru* +gts.tv08@R156.ru/uploads/ads/ +(08@R2baksa.ws/work/javascript/ +208@R$2ip.*/js/evercookie/js/evercookie.js + 08@R2mdn.net/instream/ +*€* + 365news.biz08@R 365news.biz^ ++ÿï08@R7771000.ru/images/*/baners/ +"ÿï08@R900.md/ads/images/ +ÿï08@R900.md/ads/js/ +9ÿï* + +a-d-k.ru08@Ra-d-k.ru/bitrix/templates/ad/ +/* + +otzyv.ru08@Ra.votpusk.ru/img/*.jp +=ÿï* +absolut-groups.ru08@Rabsolut-groups.ru^*_ad4. +Fÿï* + lk.megafon.ru08@R%abt.s3.yandex.net/expjs/latest/exp.js +?€* +magazinkeshbek.ru* + +zoloo.ru08@Rad.admitad.com^ +l* +paymentnew.ok.ru* + +my.mail.ru* +dzen.ru08@R1ad.mail.ru/static/admanhtml/*rbadman-html5.min.js +7 * + promodj.com08@Rad.mail.ru/vast/*interakt& +'* + +ssl-app.ru08@R ad.mail.ru^ +Bÿï* + moevideo.net08@R"ad4.liverail.com/?LR_PUBLISHER_ID= ++ÿï* +mts.ru08@Radcast.ru/mtsweb? +(ÿï* +rt.ru08@Radengine.rt.ru^ +7ÿï* +adex-plitka.ru08@Radex-plitka.ru^*adex_ +2ÿï* + mosmetod.ru* +mos.ru08@R adfox.ru^ +!* +mts.ru08@R adfox.ru^ +%ÿï* + +adhub.ru08@R adhub.ru^ +:* + app.ilsa.ru08@Radm.ilsa.ru/uploads/media/ad/ +@* + admagazine.ru08@R!admagazine.ru/*/favicon-ad-ru.ico +9* + admagazine.ru08@Radmagazine.ru/*/static/ad- +ÿï08@Radman-stroy.ru^ +ÿï08@R +adman.com^ +ÿï08@R adman.ru^ +Pÿï* + getcoupons.ru08@R/admitad.com/public/advertising_campaign/images/ +$ * +ovva.tv08@R adocean.pl^ +)ÿï* + +ads.moscow08@R ads.moscow^ +(08@Rads.rb.ru/video_banner.php +#ÿï08@Rads.sagan-nur.info^ +/ÿï* + ads.setby.net08@Rads.setby.net^ +ÿï08@Rads.su^ +=ÿï* +templateinstant.ru08@Rads.templateinstant.ru^ +!08@Rads.tomtel.ru/adjs. +0 * +vk.com08@Rads.vk.com/api/v*/*.json +7ÿï* +vyborg-press.ru08@Rads.vyborg-press.ru^ +5ÿï* + adsbox.com.ua* + adsbox.ru08@Radsbox. +ÿï08@R adseo.com.ua^ +ÿï08@R +adseo.pro^ +ÿï08@R +adseo.top^ +ÿï08@R adsgame.pro^ +'ÿï* + adtech.md08@R +adtech.md^ +'ÿï* + adv.d3.ru08@R +adv.d3.ru^ +'ÿï* + adv.kh.ua08@R +adv.kh.ua^ +ÿï08@R adv.plus^ ++ÿï* + adv.ramr.ru08@R adv.ramr.ru^ +-ÿï* + +tarispb.ru08@Radv.tarispb.ru^ +%ÿï* + +adv.team08@R adv.team^« ++ÿï* + trinet.ru08@Radv.trinet.ru^ +%ÿï* + +adver.kg08@R adver.kg^ +-ÿï* + advert-ka.ru08@R advert-ka.ru^ +5ÿï* +advert-market.ru08@Radvert-market.ru^ +,ÿï* + +akado.ru08@Radvert.akado.ru/ +ïï08@R advert.kp.ru^ +8ÿï08@R(advert.starlightmedia.ua/crossdomain.xml +<ÿï08@R,advert.starlightmedia.ua/ua/index/get-advert +Eÿï* +advertising.videonova.ua08@Radvertising.videonova.ua^ +0ÿï* + adv.ya.ru08@Radvertising.yandex. +#ÿï08@Radvertising.yandex. +'ÿï* + adview.ru08@R +adview.ru^ ++ÿï* + adwiz.pp.ua08@R adwiz.pp.ua^ +)ÿï* + +adx.agency08@R adx.agency^ +B* +travel.tinkoff.ru* + tonkosti.ru08@Raff.bstatic.com^ +N* +agatabud.com.ua08@R-agatabud.com.ua/wp-content/plugins/m-wp-popup +1ÿï* +agvshop.com.ua08@Ragvshop.com.ua^ +,08@Rajax.googleapis.com/ajax/libs/ +$ÿï08@Ralfabank.ru/*/baner_ +'* + +vsadu.ru08@R alfacode.net^ +8* + allcables.ru08@Rallcables.ru^*/keypress.js +Cÿï* +alliance-catalog.ru08@Ralliance-catalog.ru/uploads/ +.ÿï08@Ralluregame.ru/Content/*/Advert +/ +* +am.ru08@Ram.ru/shared/minify.php? +-ÿï08@Ramazonaws.com/c.swf?path=http + 08@R amgload.net/z + 08@R amgload.net/ +/ * + +shop.kp.ru08@Ran.yandex.ru/adfox/ +,ÿï08@Ran.yandex.ru/crossdomain.xml +=ÿï08@R-an.yandex.ru/vcset/139995?*&client_type=flash +7* + andpro.ru08@Randpro.ru^*/display_adapter. +?* +androidmag.com.ua08@Randroidmag.com.ua/img/banner +/* + anflat.ru08@Ranflat.ru^*_300x250_ +.ÿï* +inforesist.org08@R api.traq.li^ +'* + +artikul.ru08@R artikul.ru^ +>* +materialup.com08@Rassets.materialup.com/uploads/ +I* +astromeridian.ru08@R'astromeridian.ru/assets/*images/reklama +6ÿï* + auchan.ru08@Rauchan.ru^*/media/banners +?* +audi-surgut.ru08@Raudi-surgut.ru/uploads/adverts/ +>08@R0auto62rus.ru/themes/dw-focus/img/advertising.jpg +F* + autoreview.ru08@R'autoreview.ru/images/gallery/*/reklama/ +iÿï* +market.yandex.by* +market.yandex.kz* +market.yandex.ru* + kinopoisk.ru08@R awaps.yandex. +%ÿï* + +baner.ua08@R baner.ua^ +-* + +shop.kp.ru08@Rbanners.adfox.ru^ +<* + turizm.ru08@R!banners.turizm.ru/banner*/widjet/ +:* + bbc.co.uk08@Rbbc.co.uk/modules/branding/css/ +-ÿï* + +beeline.ru08@Rbeeline.ru/ban/ +7ÿï* + +beeline.ru08@Rbeeline.ru/media/banners/ +/ÿï* + +vidin.ru08@Rbegun.ru/video.jsp? +2ÿï* + +vidin.ru08@Rbegun.ru/vpaid_lib.swf +1ÿï* + beseed.ru08@Rbeseed.ru/advertiser +7ÿï* + bestru.ru08@Rbestru.ru*/advertisements/ +0ÿï* + bestru.ru08@Rbestru.ru^*/advert_ +-* + bgsha.com08@Rbgsha.com^*/baner. +Fÿï* + bigbang.in.ua08@R%bigbang.in.ua/advert/img_bigbanginua/ +)ÿï* +bnm.md08@Rbnm.md^*_baner_ +J* +boatsboard.com08@R*boatsboard.com/files/imagecache/full_node/ +08@Rbooking-widget.ru +=* +id-storage.com08@Rbrazzers-hd.us/js/playerjs.js +K* +buhgalter.com.ua08@R)buhgalter.com.ua/upload/banners/journals- +08@Rcackle.me/widget +2€* +sm.news08@Rcackle.me/xdm/index.html +-€* +yangteacher.ru08@R calameo.com^  $elemhide´ + 08@Rcallpy.com/upld/ +Iÿï* +casino-mining.com08@R$casino-mining.com/includes/ads_kola/ +!ÿï08@Rcbr-xml-daily.ru^ +,* +gwss.ru08@Rcdn.datatables.net^ +?* + friday.ru08@R$cdn.friday.ru/friday/js/adfox.src.js +6* + wao3iewu.com08@Rcdn.phoenix.intergi.com/ +8* +ren.tv08@R cdn.ren.tv/cache/*/media/img/ad/ +-ÿï08@Rcheck.ddos-guard.net/check.js +9* +chrysler.com.ua08@Rchrysler.com.ua^*/baner. + 08@R +cidaas.de/ +7* +cp.cityhost.ua08@Rcityhost.ua/upload_img/ +D€* +play.google.com08@R"clients*.google.com/pagead/drt/dn/ +V* + ka4nem.ru* + +tivix.co* +gwss.ru* +sm.news08@Rcloudflare.com/ajax/libs/ +-* + +cmzap.ru08@Rcmzap.ru^*/300x250/ +1* + +cncpals.ru08@Rcncpals.ru^*_300x250_ +C* + kurs.com.ua08@R&code.highcharts.com/stock/highstock.js +û* +allsport-tv.ru* +game-roblox.ru* +moimakiyazh.ru* +online-red.com* +subject.com.ua* + sport-tv.biz* + plodovie.ru* + +d20.com.ua* + +ukrlit.net* + +zarlit.com* + lidrok.ru* + nomery.ru* +7ba.org* +pkrc.ru* +7ba.ru08@Rcode.jquery.com/ +)* + +code7.ru08@Rcode7.ru/upload +?ÿï* +eurobank-ua.com* + maingear.com08@R com/banners/ +8ÿï* + combinat.pro08@Rcombinat.pro/api/advert/ +7ÿï* +corsaforex.com08@Rcorsaforex.com^*baner + 08@Rcoub*/assets/adfox +'* + zigry.net08@R cpmstar.com^ +7* +craftstudio.ru08@Rcraftstudio.ru^*/baner. +1* + +cs-file.ru08@Rcs-file.ru^*_300x250_ +7* + cs-skachat.ru08@Rcs-skachat.ru^*_300x250_ +#"08@Rcse.google.com/cse.js +5 * + daitel.ru08@Rdaitel.ru/api/web/adverts/ +-ÿï08@Rdarkteam.net/advertisement.js +^* +demo.dle-news.ru08@R* +dostupnomebel.ru08@Rdostupnomebel.ru/images/adv- +^* + dp.dsoua.com08@R@dp.dsoua.com/frontend/images/banners/banner_mobile_app*_300x250_ +:* +dvortsovy.spb.ru08@Rdvortsovy.spb.ru/img/adv +K* +eco-kosmetiks.ru08@R)eco-kosmetiks.ru/assets/site/images/baner +1 +* + edu.tatar.ru08@Redu.tatar.ru^*/ads- +@ÿï* + +empik.ua08@R$empik.ua/openx/www/delivery/ajs.php? +"08@Renaza.ru/assets/img/ +4* + ero.mota.ru08@Rero.mota.ru/minify/*.js +5ÿï* + +domru.ru08@Rertelecom.ru^*.swf?link1= +I* + dns-shop.ru08@R,eu-sonar.sociomantic.com^*/adpan/dns-shop-ru +A* +evita-krasnodar.ru08@Revita-krasnodar.ru^*_300x250_ +9ÿï* +evro-telecom.ru08@Revro-telecom.ru/banner +>ÿï* +ok.ru08@R%exchange.buzzoola.com/crossdomain.xml +A* +ok.ru08@R*exchange.buzzoola.com/video_event/*/ctor/0 +?* +ictv.ua08@R&fakty.com.ua/ua/widgets/informer_news/ +9* +familyspace.ru08@Rfamilyspace.ru^*/teasers/ +2* + +fest-ry.ru08@Rfest-ry.ru/*/images/ad +-ÿï* + findme.am08@Rfindme.am/adimg/ +T* +flagmanfishing.com08@R0flagmanfishing.com/wp-content/uploads/*/adv*.svg +8* + +fodsg.ru08@Rfodsg.ru/files/advertisements/ +@* + biqle.org* + +biqle.ru08@Rfonts.googleapis.com/css^ +"ÿï08@Rfonts.gstatic.com^ +)* + foodzy.ru08@Rfoodzy.ru/i/b/ +E* +forecabox.foreca.com08@Rforecabox.foreca.com/css/*X*css +6* + hdninja.club08@Rfranecki.net/favicon.ico +@* +fundament-spb24.ru08@Rfundament-spb24.ru^*/images/ +6* +setitagila.3dn.ru08@Rgamearmy.ru/images/† +D* + games-tv.ru08@R'games-tv.ru/openx/www/delivery/ajs.php? +X* +gardenshop.com.ua08@R5gardenshop.com.ua/assets/components/phpthumbof/cache/ +E* +garipova.getcourse.ru08@Rgaripova.getcourse.ru/nassets/ +.* + garna.net08@Rgarna.net^*_ads.js. +E* + gearshout.net08@R&gearshout.net/detroitchicago/dayton.js +(ÿï* + glopay.me08@R glopart.ru^ +7* +grand-mozaika.ru08@Rgmstatic.ru^*_120x60_ +L* + womanest.ru* + +ksu.edu.ru08@R!google.com/adsense/domains/caf.js +("08@Rgoogle.com/complete/search +'"08@Rgoogle.com/cse*element/*= +#"08@Rgoogle.com/cse/cse.js +("08@Rgoogle.com/uds/api/search/ +'"08@Rgoogle.ru/complete/search +E* + decathlon.ru08@R'googleadservices.com/pagead/conversion/ +*"08@Rgoogleapis.com/customsearch/ +7ÿï* + grant2009.ru08@Rgrant2009.ru/images/adv +#08@Rgruzevak.by^*informer +T* +support.google.com08@R0gstatic.com/ads/external/images/logo_google_ads_ +3ÿï* +gt-advertise.ru08@Rgt-advertise.ru^ ++€* +u-tv.ru08@Rgvideo.io/videos/ +Fÿï* + +hamalia.ua08@R(hamalia.ua/tools/banner/site/banner.php? +1ÿï* +hawk.ru08@Rhawk.ru/media/banners/ +6* + +hcsibir.ru08@Rhcsibir.ru/uploads/advert/ +% * +i.ua08@Rholder.com.ua^ +i* +home-club.com.ua* +home-club.co.ua08@R4home-club.*.ua/content/images/other/468x60-white.png +E* + godzfilm.net* + +hdkino.biz08@Rhypercomments.com/widget/ +8* +zn.ua08@R!image.zn.ua/media/images/300x250/ +:* + imagebam.com08@Rimagebam.com/JS/js-cookie.js +G* + imagebam.com08@R)imagebam.com/assets/js/image_bootstrap.js +K* +printerservice.com.ua08@R$images.ua.prom.st/*-canon-ir-adv.jpg +ïÿï* + 1plus1.video* + showjet.net* + +showjet.ru* + +unian.info* + +vgtimes.ru* + 1plus1.ua* + unian.net* + veedi.com* + +gamak.tv* + +unian.ua* + +viho.pro* +24tv.ua* +viho.me* +viho.tv08@R*imasdk.googleapis.com/js/sdkloader/ima3.js ++* +ria.ru08@Rimg.ria.ru/userpic/ +4* + imgbum.ru08@Rimgbum.net/img/pagebg.jpg +Qÿï* + +imhonet.ru08@R3imhonet.ru/js/templates/views/tiles/m-tiles.advert. +Aÿï* +india-expres24.com08@Rindia-expres24.com^*/baner_ +;* +infinity-mlm.com08@Rinfinity-mlm.com^*/baner_ +0ÿï08@R instreamvideo.ru/crossdomain.xml +:08@R,instreamvideo.ru/storage/InstreamVideoPlugin +008@R"instreamvideo.ru/storage/inplayer/ +j* +americanhorrorstoryonline.ru* +www.velikolepnyivek.com* + thisisus.ru08@Rintensedebate.com/ +:ÿï* +irr.ru08@R irr.ru/ajax/*/submission/get_cat +4ÿï* + itinvest.ru08@Ritinvest.ru/promo/adv +.ÿï* + joblib.ru08@Rjoblib.ru/js/ads- +@"* +fapreactor.com* +pornreactor.cc08@Rjoyreactor.cc^ +5* +tovarniygid.ru08@Rjs.mamydirect.com/js/ + 08@Rkallpy.com/upld/ +3ÿï* + kamvideo.ru08@Rkamvideo.ru^*/advert +/* + kcrb63.ru08@Rkcrb63.ru/i/banners/ +1* + +keramin.by08@Rkeramin.by^*_300x600. +<* +khersongaz.at.ua08@Rkhersongaz.at.ua/baner.png +&08@Rkit.fontawesome.com/*.js +8* +kitchentoys.ru08@Rkitchentoys.ru^*/tizers_ + 08@R klcheck.com/z + 08@R klcheck.com/ +1ÿï* + +kmf-pvl.ru08@Rkmf-pvl.ru^*/baner. ++08@Rkodik.info/add-players.min.js +. * + +kufar.by08@Rkufar.by/api/search/ +0ÿï* + latitu.ru08@Rlatitu.ru^*/advert_ +A* + +legobox.ru08@R%legobox.ru/theme/legobox/images/adv*. +@ÿï* +lifecell.com.ua08@Rlifecell.com.ua/medialibrary/ +8ÿï* +listok-perm.ru08@Rlistok-perm.ru^*/baner +6ÿï* + listrade.net08@Rlistrade.net^*/baners/ +3ÿï08@R#liveangarsk.ru/files/k/k-nikita.gif +:* +livejournal.com08@Rlivejournal.com/js/??*?v=– +5ÿï* +lk.adsteroid.pro08@Rlk.adsteroid.pro^ +) * + lk.mts.ru08@Rlk.mts.ru/api/ +,* +dokonlin.ru.com08@R loginza.ru^ +/* + logsib.su08@Rlogsib.su^*/adverts. +ÿï08@Rmads.su^ +0ÿï* + +madyar.net08@Rmadyar.net/baners/ +P* +magictime.net.ua08@R.magictime.net.ua/wp-content/plugins/m-wp-popup +2* + mangalbbq.ru08@Rmangalbbq.ru/upload/ +&ÿï08@Rmap.cn.ua/media/*/tur/ +[* + vsedeserti.ru* + lgotivam.ru* +gwss.ru* +rvb.ru08@Rmaxcdn.bootstrapcdn.com^ +Hÿï* + shokoladki.ru* + +lk.rt.ru08@Rmc.yandex.ru/metrika/tag.js +kÿï* + gosuslugi.ru* + trudvsem.ru* + mosreg.ru* + +nalog.lk* + +nalog.ru* +mos.ru08@R mc.yandex.ru^ +/ÿï* +ndv.ru08@Rmedia.ndv.ru/banners^ +u* +realstream.space* + sport247.live* + sport365.live08@R1medianetworkinternational.com/js/advertisement.js +-ÿï08@Rmediatoday.ru/crossdomain.xml +<08@R.mediatoday.ru/storage/JWPlayerVideoClickPlugin +7* + mediazavod.ru08@Rmediazavod.ru^*/300_250_ +=* + medicina.ua08@R medicina.ua/js/adriver.core.*.js +3ÿï* +mentalmarket.io08@Rmentalmarket.io^ +>ÿï* +promo.upservice.com08@Rmessenger.upservice.io^ +E* +mgrim.atcon.ru08@R%mgrim.atcon.ru/sites/sotek/img/banner +4ÿï* +mgts.ru08@Rmgts.ru/upload/images/ban +R* +militaryreview.su08@R/militaryreview.su/engine/classes/min/index.php? +g* +milnavigator.com.ua08@RBmilnavigator.com.ua/wp-content/themes/mts_ad_sense/js/layzr.min.js +:€* +milnavigator.com.ua08@Rmilnavigator.com.ua^ +@* +mk.ru08@R)mk.ru/upload/banners/subscribe-banner.gif +*ÿï08@Rmmi.bemobile.ua/lib/lib.js +7ÿï* + moe-online.ru08@Rmoe-online.ru/*/advert +2ÿï* +mos.ru08@Rmos.ru/upload/adv/banner +3* +moviestape.net08@Rmoviestape.net/adv/ +8ÿï* + mp3no.com* + +mp3co.co08@Rmp3ix.com^*.mp3 +/ÿï* +mts.ru08@Rmts.ru/upload/images/ +N* + +my-hit.org08@R2my-hit.org/files/shared/images/smiles/basic/ad.gif +B* + +my-hit.org08@R&my-hit.org/themes/kino_v5/smile/ad.gif + 08@Rmy.south.rt.ru^ +/* +www.servicefor.life08@R +my24.site^ +#ÿï08@Rmyband.info/advert/ +;* + myfishka.com08@Rmyfishka.com/uploads/reklama/ +;ÿï* +mylene.myarena.ru08@Rmylene.myarena.ru/ban/ +*ÿï08@Rmyradio24.com/informer.php +0* + +nalog.ru08@Rnalog.ru/images/baner/ +=* + +ndv31.ru08@R#ndv31.ru/sites/default/files/styles +8* +nemp-company.ru08@Rnemp-company.ru/uploads +0* + nemp.com.ua08@Rnemp.com.ua/uploads +&08@Rneutralen.nl/html5/moon/ +4* + newauction.ru08@Rnewauction.ru/banners +H* + news.mail.ru08@R*news.mail.ru/js/common/vendor/highstock.js +;ÿï* +kongregate.com08@Rngads.com/crossdomain.xml +2* +kongregate.com08@Rngads.com/gateway_ ++ÿï08@Rnow.ru/www/delivery/fc.php? +D$* +ntv.ru08@R,ntv.ru/promo/packager/ts/*/md5/*_hd_reklama_ +** +999.md08@Rnumbers.md/static/ +d* +objavlenija.respublika.cz08@R9objavlenija.respublika.cz/templates/jrespublika*_clr_ads/ +3* + oboi-pmr.ru08@Roboi-pmr.ru^*.300x250. +>* +ojin.tv08@R%ojin.tv/templates/kino/images/adv.png +Bÿï* +ojs3.ideafix.co08@Rojs3.ideafix.co/index.php/adsv/ +J * +olx.kz* +olx.ua* +olx.uz08@Rolx.*/ajax/misc/contact/phone/ +A* +translate.zakon.kz08@Ronline.translate.ua/online.js +6ÿï* + onlineguru.ru08@Ronlinegames.alawar.ru +7ÿï* +openbudget.gfu.ru08@Ropenbudget.gfu.ru^ +0ÿï* + ortovm.ru08@Rortovm.ru^*/baners/ +Q* +otdyh-bez-posrednikov.ru08@R'otdyh-bez-posrednikov.ru/image/reklama/ +5* +oven.ua08@Roven.ua/image/cache/catalog/ +3ÿï* + ozerskzone.ru08@Rozerskzone.ru/ads/¢ +*ÿï* +seller.ozon.ru08@Rozon.ru^ +;* + www.ozon.ru08@Rozone.ru/assets/analytics.*.js +3* +payeer-gift.ru08@Rpayeer-gift.ru/img/ +@ÿï* + itop-gear.ru08@R payments.itop-gear.ru/banner.php +4ÿï* + +pdrs.dp.ua08@Rpdrs.dp.ua/images/rek/ +=ÿï* +petersburgedu.ru08@Rpetersburgedu.ru^*/banner +3ÿï* + pgpru.com08@Rpgpru.com^*/files?get= +Cÿï* + photodoska.ru08@R"photodoska.ru/content/dynamic/ads/ +1* + +picusha.pw08@Rpicusha.pw/js/main.js +! 08@Rpiguiqproxy.com/api + 08@Rpiguiqproxy.com/z +7€* +plan.ru08@Rplan.ru/adserver/adframe.php? +O€* + kommersant.ru08@R/playercdn.cdnvideo.ru/aloha/players/kommersant_ +08@Rplektan.com/ad/ +B * + tortuga.wtf08@R%plrjs.org/sshke8k2n59n8/*.xml?rand=0. +2* + polydoors.by08@Rpolydoors.by/images/ +6ÿï* + porsche.com08@Rporsche.com^*/teaser.js +F* +potolok-krasnodar23.ru08@Rpotolok-krasnodar23.ru/images/ +2 * + ppc.world08@Rppc.world/tests/result/ +!ÿï08@Rprebid.b-cdn.net/ +0* +utkonos.mybb.ru08@Rpremod.mybb.ru^ +$* + tyndex.ru08@R price.ru^ +5ÿï* + prime-ihc.com08@Rprime-ihc.com^*_ad4. +)* + profatom.ru08@R profatom.ru^ +"08@Rprogramma.space^ +Aÿï08@R1prokazan.ru/sites/default/files/imagecache/tizer_ +$€08@Rpromo.gamble2fun.com^ +0ÿï* + zakonrf.info08@Rpromo.leadia.ru^ +'ÿï08@Rpromo.static.gamexp.ru^ +=* + promviza.ru08@R promviza.ru^*/adlink/adlink_logo +Z* +prostitutkinovyyurengoysex.com08@R*prostitutkinovyyurengoysex.com^*/js/adv.js +2* + psy-music.ru08@Rpsy-music.ru/banner/ +Bÿï* +pukhov-yaroslav.ru08@Rpukhov-yaroslav.ru^*/advert/ +<* +qmp3.cc08@R#qmp3.cc/themes/qmp3.org/download.js +8* +qmp3.cc08@Rqmp3.cc/themes/qmp3.org/main.js +Z* +velikolepnyivek.com* + thisisus.ru08@R&r-login.wordpress.com/remote-login.php +208@R$radioradio.ru/fckfiles/images/baner_ +.* + autonews.ru08@Rrbk.ru^*/resized/ +="* +fapreactor.com* +pornreactor.cc08@R reactor.cc^ +'€08@Rrecaptcha.net/recaptcha/ +.* + kapriz.tv08@Rrecreativ.ru/rcode. +'ÿï* + reklam.ru08@R +reklam.ru^ +;ÿï* +reklama-hab.ru08@Rreklama-hab.ru^*/reklama/ +1ÿï* +reklama.direct08@Rreklama.direct^ +;ÿï* +reklama.fasad.cv.ua08@Rreklama.fasad.cv.ua^ +;ÿï* +reklama.globalms.su08@Rreklama.globalms.su^ +1ÿï* +reklama.in.net08@Rreklama.in.net^ +;ÿï* +reklama.karelia.pro08@Rreklama.karelia.pro^ +5ÿï* +reklama.lutsk.ua08@Rreklama.lutsk.ua^ +-ÿï* + +redfm.ru08@Rreklama.redfm.ru^ +2ÿï* +garantmedia.com08@Rreklama.studio^ +Aÿï* +reklamavarteme.ru08@Rreklamavarteme.ru^*/reklama/ +Gÿï* + +renault.ru08@R)renault.ru/_beta/banner_system/banner.php +7ÿï08@R'rock-online.ru/thema/rock/images/baner_ +1ÿï08@R!rostcars.ru/css/advertisement.css +T* +rostov-vershina.ru08@R0rostov-vershina.ru/assets/cache_image/resources/ +6** + rotapost.ru08@Rrotapost.ru/*advertisers/ +5 * + alfabank.ru* +mts.ru08@Rru/*/getBulk*/ +Rÿï* +sandesh-spb.ru* + svyaznoy.ru* + +whiskas.ru* +rzd.ru08@R ru/banner +> +* + jutsu202.ru* +jut.su08@Rru/jcdn/minify?charset= +>ÿï* + rus-wars.com* + rus-wars.ru08@Rrus-wars.*/img/ +ÿï08@R +ruspor.ru^ +m* + rutracker.lib* + rutracker.net* + rutracker.org* + rutracker.nl* + rutr.life08@Rrutrk.org/logo/ +(* + +jeder.ru08@Rs*.rotaban.ru/û +A* +trupornolabs.org08@Rs.trupornolabs.org/functions.js +I* +trupornolabs.org08@R's.trupornolabs.org/ui/jquery.ui*.min.js +. * + allboxing.ru08@Rs.zmctrack.net/z +D* +fitnesspartner.ru08@R!s0.2mdn.net/ads/studio/Enabler.js +-ÿï08@Rs5o.ru/common/css/teaser.css? +.* + +sandesh.ru08@Rsandesh.ru/banner. +Jÿï* +sarafannoeradio.org08@R#sarafannoeradio.org/images/stories/ +<* + +savok.name08@R savok.name/uploads/reklama/*.jpg +0"* +sbis.ru08@Rsbis.ru/*/adv1.min.tmpl +G* +schwarzkopfprofessional.ru08@Rschwarzkopfprofessional.ru^ +F* +scooter-zip.ru08@R&scooter-zip.ru/upload/imagelib/baners/ +u* +downdetector.ru* + chelseafc.com* + www.aport.ru08@R3securepubads.g.doubleclick.net/gpt/pubads_impl_*.js +5‚* + +tveda.ru08@Rsedu.adhands.ru/view/?sid^ +0ÿï* + sellua.info08@Rsellua.info^*/ad/ +8ÿï08@R(semrush.com/m/scripts/reports/backlinks. +7ÿï* + service-cm.ru08@Rservice-cm.ru^*/baner_ +A* + shans.com.ua08@R#shans.com.ua/images/banners/lin.gif +6* +shapespipes.ru08@Rshapespipes.ru/images/ +'ÿï08@Rsims3club.ru/images/bn/ +0 * + sindom.ru08@Rsindom.ru/ads/searchF +1* + +siproen.ru08@Rsiproen.ru/images/adv +)08@Rsite.yandex.net/*/js/all.js +-08@Rsite.yandex.net/*/js/easyxdm.js +008@R"site.yandex.net/*/js/opensearch.js +-08@Rsite.yandex.net/*/js/suggest.js +C* +sochinenienatemu.com08@Rsitesearch-suggest.yandex.ru^ +9ÿï08@R)sld.kiev.ua/*/videojs-contrib-ads-master/ +.* +podrobnosti.ua08@Rsldplayer.com^ +0€* +yangteacher.ru08@Rslideshare.net^ ++ÿï* + smartads.by08@R smartads.by^ +3ÿï* + smetiz.ru08@Rsmetiz.ru^*/ad_common. +3ÿï* + smetiz.ru08@Rsmetiz.ru^*/ad_mobile. +! 08@Rsnapo.ru/ads/props/ +.ÿï* + spbftu.ru08@Rspbftu.ru/*baner_ +,ÿï* + +spran.ru08@Rspran.ru^*advert +;€* + stocktime.ru08@Rssltools.forexprostools.com^ +/ÿï* + kinoteatr.ru08@Rssp.rambler.ru^ +Q* +auto.rambler.ru* +news.rambler.ru08@Rst.top100.ru/top100/top100.js +0* + +vtomske.ru08@Rst.vtomske.ru/js/adv +2ÿï08@R"statcounter.com/counter/counter.js +7 +* + obsuzhday.com08@Rstatic.obsuzhday.com/ad/ +F* +planetminecraft.com08@R!static.planetminecraft.com/files/ +N* + probirka.org08@R0static.probirka.org/forum/images/context_advert/ +A* + rutr.life08@R&static.rutracker.cc/templates/*.min.js +<* + +filmz.ru08@R"static.videonow.ru/crossdomain.xml +=* + +filmz.ru08@R#static.videonow.ru/players_plugins/ +3ÿï* +vk.com08@Rstatic.vk.com/ads_office/ +H* +onlainporno1.tv08@R'storage.onlainporno1.tv^*/images/share/ +8* + storub.ru08@Rstorub.ru/teme/style.css?ads= +8ÿï* + +swatch.com08@Rswatch.com//images/*teaser +9* +nashaplaneta.su08@Rsys000.uid.me/canalyzer/ +J* + tableterra.ru08@R+tableterra.ru/wp-content/uploads/*/*/*-*x*. +;* + +tagline.ru08@Rtagline.ru/img/favicons_top100_ +8ÿï* + tatler.ru08@Rtatler.ru/resize_*_320x250_ +3ÿï* + tattoonsk.ru08@Rtattoonsk.ru^*_ad4. +%ÿï08@Rteachvideo.ru/advert/ ++ÿï08@Rteachvideo.ru/www/delivery/ +4ÿï* + joindota.com08@Rteasers.gs-media.de^ +7* + techno-med.by08@Rtechno-med.by^*_300x250. +'* + +tele2.ru08@R tele2.ru/loy/ +1* + temp21.ua08@Rtemp21.ua/images/_ads/ +0* + temp21.ua08@Rtemp21.ua/pic/advert_ +:* + teplomet.ru08@Rteplomet.ru/userfiles/banners +Mÿï* +thesmartad.ru.swtest.ru08@R"thesmartad.ru.swtest.ru^*/smartad/¸ +D* +theuniversetimes.ru08@Rtheuniversetimes.ru/wp-*,*,*.*, +9€* + parody-3x.com08@Rtiaplex.com/video_ext.php +8* + www.aport.ru08@Rtpc.googlesyndication.com^ +Qÿï* +locator.transitcard.ru08@R'transitcard.ru/resources/js/informer.js +;ÿï* + triolan.com08@Rtriolan.com^*upload/banners/ +Bÿï* + +tripit.com08@R$tripit.com/js/components/popover.js? +: * + tsargrad.tv08@Rtsargrad-livehls.cdnvideo.ru^ +5* + turcentr.by08@Rturcentr.by/images/baner +7* +tut.by08@Rtut.by/*/ads1/*/params.php?uid= +@* + +tutknow.ru08@R$tutknow.ru/templates/TutKnow/images/ +8* +sedu.adhands.ru08@Rtveda.ru/js/video-ad.js +.* + +twite.ru08@Rtwite.ru/images/adv- +8* +vashipitomcy.ru08@Rucalc.pro/api/widget.js +Jÿï* + ucankus.com08@R+ucankus.com/vjs/videojs-contrib-ads/videojs +Y* +nashaplaneta.su* +planetatain.ru* + 2planeta.ru08@Rucoz.net/cgi/uutils.fcg +I* +ukr.ai08@R1ukr.ai/templates/designdef/images/advertising.png +-ÿï08@Rukrainianiphone.com/baners/r/ +G* + rusradio.ru08@R*unisound.cdnvideo.ru/static/js/xman.min.js +. 08@R unpkg.com/devextreme^*/dblclick. +5* + urok.1sept.ru08@Rurok.1sept.ru/img/adv/ +&08@Ruse.fontawesome.com/*.js ++08@Ruserapi.com/js/api/openapi.js +:ÿï* + usynovite.ru08@Rusynovite.ru/f/swf/banner_ +1* +utkonos.mybb.ru08@Rutkonos.mybb.ru^ +Q * +vak.minobrnauki.gov.ru08@R)vak.minobrnauki.gov.ru/*/adverts_list.php +7* + vasilisc.com08@Rvasilisc.com/js/ad_img.js +(08@Rvideo.*.user.madbanner.ru^ +7ÿï08@R'video.begun.ru/flowplayer_begun_lib.swf +uÿï* +autonews.autoua.net* +ringside24.com* + gagadget.com* + +okino.ua* +kiev.ua08@Rvideo.magnet.kiev.ua^ +vÿï* +autonews.autoua.net* +ringside24.com* + gagadget.com* + +okino.ua* +kiev.ua08@Rvideo1.magnet.kiev.ua^ +vÿï* +autonews.autoua.net* +ringside24.com* + gagadget.com* + +okino.ua* +kiev.ua08@Rvideo2.magnet.kiev.ua^ +>* + videoboom.cc08@R videoboom.cc/wp-content/plugins/ +#08@Rvideocore.tv/jscript/ +108@R#videocore.tv^*/pladform_pitertv.swf +<€* + informator.ua08@Rvideos.increaserev.com^*.mp4 +/ * + +virpl.ru08@Rvirpl.ru^*_advert.php +Hÿï* +virtonomica.ru08@R&virtonomica.ru/ox/delivery/asyncjs.php +Iÿï* +virtonomica.ru08@R'virtonomica.ru/ox/delivery/asyncspc.php +[* +biz.production.vklanding.ru* +vk.com08@R$vk.com/ads?adslogger=*=check_adblock +b * +biz.production.vklanding.ru* +vk.com08@R+vk.com/ads_office_api.php?act=fetch_notices +C * +biz.production.vklanding.ru08@Rvk.com/ads_rotate.php? +;ÿï* + winstation.ru08@Rvk.com/js/api/openapi.js +'* + +24cyber.ru08@R vk.com/rtrg += * + vkbog.com08@R"vkbog.com/account/advertiser/check +?ÿï* +vodyanoy.com.ua08@Rvodyanoy.com.ua^*700_200.jpg +>ÿï* +voenhronika.ru08@Rvoenhronika.ru/banners/*.png +2ÿï08@R"volnorez.com^*/liveplayer.swf?url= +&* + +vsadu.ru08@R vsadu.ru/js/ + 08@Rvse24.by^*informer +K* +vseplatezhi.ru08@R+vseplatezhi.ru/wp-content/uploads/*-120x60. +-ÿï* + annsummers.ru08@R vsexshop.ru^ +?* + vshp2016.ru08@R"vshp2016.ru/upload/iblock/*_baner_ +<* + vsthouse.ru08@Rvsthouse.ru^*/icon/social/*.svg +C* + +vtb24.ru08@R)vtb24.ru/img/assets/advertisement-widget/ +L* +web-shpargalka.ru08@R)web-shpargalka.ru/antibot8/static/peel.js +8* + wow-bfa.com08@Rwow-bfa.com^*/images/share- +-* + gmod-fan.ru08@Rwww.gmod-fan.ru/ +E* +recordrussia.ru08@R$www.googletagmanager.com/gtag/js?id= +Q* + +www.khl.ru08@R5www.khl.ru/bitrix/templates/*/js/cookieconsent.min.js +K€* +www.kinopoisk.ru08@R(www.kinopoisk.ru^**/discovery/*&embedId= +O€* +www.kinopoisk.ru08@R,www.kinopoisk.ru^**/dist/embed.html?frameId= +>* + www.nashe.ru08@R www.nashe.ru/wp-content/uploads/ +C* + www.qmedia.by08@R$www.qmedia.by/assets/images/adwords/ +0* + romkaq.ru08@Rwww.romkaq.ru/.s/src/â! +9ÿï08@R)x-soft.tomsk.ru/dsa/kompstar/jcarousel.js +808@R*x.instreamatic.com/mark/idsync.js?site_id= +- +* +x5.ru08@Rx5.ru/assets/Branding/ +g*' +%xn----dtbhbabqpbg4blhey9ej3h.xn--p1ai08@R0xn----dtbhbabqpbg4blhey9ej3h.xn--p1ai^*_300x250. +V* +xn--74-6kcaj3c0aikq.xn--p1ai08@R(xn--74-6kcaj3c0aikq.xn--p1ai/images/adv- +. * + tre.zorox.sex08@Rxporn.in/*.m3u8 +, * + tre.zorox.sex08@R xporn.in/*.ts ++* +xvet.ru08@Rxvet.ru^*_600x180. +Xÿï* +yaberemenna.info08@R4yaberemenna.info/openx/www/delivery/ai.php?filename= +Yÿï* +yaberemenna.info08@R5yaberemenna.info/openx/www/delivery/ajs.php?zoneid=7& ++ÿï* + magnit.ru08@Ryandex.ru/ads/ +j* + tnt-online.ru* + konohatv.org* + gismeteo.ru* + 1prime.ru08@Ryandex.ru/ads/system/context.js +T* + trainzland.ru* + gismeteo.ru08@R&yandex.ru/ads/system/header-bidding.js +-ÿï08@Ryandex.ru/metrika/informer.js +,08@Ryandex.ru/search/site/?*search +9* +nashaplaneta.su08@Ryandex.st/share/share.js +Tÿï08@RDyandex.st/swf/ad-sdk-module/1_0/*/ad-sdk-module.swf?partnerid=139995 +8ÿï08@R(yandex.st/swf/ad-sdk-module/1_0/info?nc= +108@R#yastatic.net/jquery/*/jquery.min.js +:ÿï08@R*yastatic.net/market-export/*/adv/advert.js +?ÿï* + magnit.ru08@R"yastatic.net/partner-code-bundles/ +,ÿï08@Ryastatic.net/share2/share.js +)08@Ryastatic.net/sitesearch*.js +*08@Ryoutube.com/*/www-widgetapi. +,€* +sm.news08@Ryoutube.com/embed/ +$08@Ryoutube.com/iframe_api +$08@Ryoutube.com/player_api +C* + imperiya.by08@R&ytimg.com/yts/jsbin/*/www-widgetapi.js +5* + yuginform.ru08@Ryuginform.ru/media/adv/ +Bÿï* + zarplata.ru08@R#zarplata.ru^*/bfile.ashx?placeid=2& +M* + zaxid.net08@R2zaxid.net/assets/tv24/images/transparent-pixel.png +0ÿï* + +zdrav36.ru08@Rzdrav36.ru^*/baner +$* + hdzog.com08@R zog.link^ +A* +zonti-tri-slona.ru08@Rzonti-tri-slona.ru^*/300_250_ +/* + zserials.me08@Rzserials.me/upload +1* + +zviazda.by08@Rzviazda.by^*/300x250/ + * + player.3tv.im08@ +8* +forum.trainzup.net08@R/adblock_detector.js +Œ* +svidomitov.net* + kupidonia.ru* + na-ladoni.su* + spravkarf.ru* + ksimart.com* + pesikot.org* + pwcats.info* + shopotam.ru* + wotskill.ru* + +adhands.ru* + +azeroth.su* + +kopikot.ru* + +ksimart.ml* + feech.org* + joinfo.ua* + veedi.com* +tsj.ru08@R/advert. +<ÿï* + school-tea.ru* + +rewbux.com08@R /advertise.js +Íÿï* +xn--80ajbwpejjci7c.xn--p1ai* +realstrannik.com* +androidhost.ru* +futurenet.club* +provladimir.ru* +vsimppt.com.ua* + instrukzii.ru* + newsarium.org* + realstream.pw* + zdravedae.com* + coinvesti.ru* + routes.in.ua* + rubukkit.org* + gallerix.ru* + sportbox.ru* + toolson.net* + ualinux.com* + +citydog.by* + +lingust.ru* + +pdalife.ru* + +seriatv.ru* + coil32.ru* + imgpay.ru* + wpnice.ru* + +1ttv.net* + +rzn.info* + +smizu.ru08@R/advertisement. +G08@R9/banner.jpg?ad_height=300&adzone=100&adserver=1&adType=32 +:* + starblast.io* + +5urokov.ru08@R/blockadblock. +4* + +dnevnik.ru* + mosreg.ru08@R /common/ad. +5* +files.vitalitygames.com08@R /game-ads.js +ÿï08@R /js/advert.js# +4pda.to[data-revive-zoneid]0 + +espreso.tv + +tasix.me[id*="ScriptRoot"]2 +mail.google.coma[href^="http://mgid.com/"]B +blocksandfiles.com + +milanac.rudiv[class*="td-a-rec-id-"]4 + pets.mail.ru div[data-adq-id^="adqcontainer"]2 +kyiv.ukrainianwall.comdiv[id*="MarketGid"]3 +kyiv.ukrainianwall.comdiv[id*="ScriptRoot"]; +kyiv.ukrainianwall.comdiv[id^="M"][id*="Composite"]" + magnit.rudiv[id^="adfox_"]' + cinemastar.rudiv[id^="advads-"]# +hi.rudiv[id^="crt-"][style]7 +ladiesproject.ru +aqa.rudiv[id^="div-gpt-ad"]+ +aqa.rudiv[id^="google_ads_iframe_"]% +oane.wsdiv[id^="smi_teaser_"]> + transinfo.by + pgpru.comimg[width="468"][height="60"]- + +gbsmp.ruimg[width="728"][height="90"]) +motogp-news.ru +101.ru #advert-1›' +%xn--80aaiebcrjcibi8adgdtsm9z.xn--p1ai +kakoysegodnyaprazdnik.ru + gdz-raketa.ru + izi-invest.ru + +leingpt.ru + 24smi.orgdiv[id^="yandex_rtb"]¬% +M* +fantasticcraft.ru* +customgames.ru08@R/js/siropu/am/ads.min.js +¬ÿï* +slushat-tekst-pesni.ru* +sitecoder.blogspot.ru* +sovremennoepravo.ru* +elsyst.gnomio.com* +www.inoreader.com* + minimalsy.xyz* + survarium.pro* + temp-mail.org* + trialkeys.ru* + mysmsbox.ru* + profatom.ru* + +htmlweb.ru* + pvpru.com* + tvfeed.in* + +d-mod.ru* +ph4.ru08@R /pagead2. +N* + filmisub.com* + kinofen.net08@R!/templates/*/adblock/adframe.*.js +- * + pets.mail.ru08@Rad.mail.ru/adp/ +>* + sibnet.ru08@R#ad1.sibnet.ru/adriver.core.2.min.js +E* + livesport.ws08@R'adbetnet.advertserve.com/js/libcode*.js +8ÿï* + carambatv.ru08@Radfox.ru/crossdomain.xml +2* + +pravera.ru08@Radmitad.com/3rd-party/ +I* + trainzland.ru08@R*ads.digitalcaramel.com/js/trainzland.ru.js +.ÿï08@Rads.exoclick.com/ad99uip8i.php +<* + +stasyan.ga08@R adserver.juicyads.com/js/jads.js +Jÿï* +player.tubia.com08@R&adservice.google.*/adsid/integrator.js +B * + +inter.ua* +ntn.ua* +k1.ua08@Radtelligent.com/vmap? +A* +www.deezer.com08@R!ak-ns.sascdn.com/diff/js/smart.js +N* +football.kulichki.net* + football.ua08@Raka-cdn-ns.adtechus.com^ +2* + alhimika.net08@Ralhimika.net/images/ +9* +epn.bz08@R!alipromo.com/cdn/js/advertiser.js ++ÿï08@Ram15.net/ab-detector/ads.js +:* + amc-club.ru08@Ramc-club.ru^*/advertbanner.js +1 * + examenpdd.com08@Ran.yandex.ru/meta/ +Jÿï* + otzovik.com08@R+an.yandex.ru/resource/context_static_r_*.js +pÿï* +www.rusprofile.ru* +awaps.yandex.net* + otzovik.com* +ctc.ru08@Ran.yandex.ru/system/context.js +Kÿï* + onlinelpu.ru* + ryfma.com08@Ran.yandex.ru/system/context.js +.* + +ansedo.com08@Ransedo.com/js/*.js +)* + ava-avto.ru08@R ava-avto.ru^ +S* + +delovoe.tv* + +lentv24.ru* + +piter.tv* + +smexo.tv08@Rawaps.yandex.net^ +E* + balashover.ru08@R&balashover.ru/ads/www/delivery/ajs.php +F* + porjati.net08@R)bambergerkennanchitinous.com/.adframesrc. +/ÿï* +c6v.ru08@Rc6v.ru/adsbygoogle.js +$08@Rcapricornus.cc/*.js?_= +9* +cash4brands.ru08@Rcash4brands.ru/static/js/ +7* + assiatv.com08@Rcdn.braun634.com/libs/b.js +K* + vidyomani.com* + +webeyo.com08@Rcdn.vidyomani.com^*/showads.js +H* + vidyomani.com* + +webeyo.com08@Rcdn.webeyo.com^*/showads.js +B* +chess-samara.ru08@R!chess-samara.ru/js/adsbygoogle.js +R * + filmisub.com* + kinofen.net08@R%cloudfront.net/jquery.swipebox.min.js +"* + videomega.tv08@Rcom^ +=* + +tests24.su08@R!contextual.media.net/dmedianet.js +7* + debfile.com08@Rdebfile.com/ads/adframe.js +=* +doefiratv.info08@Rdoefiratv.info/ads/dfp.min.js +F* + drahelas.ru08@R)drahelas.ru/r/www/delivery/spc.php?zones= +E* + drahelas.ru08@R(drahelas.ru/r/www/delivery/spcjs.php?id= +3* + easymc.io08@Reasymc.io/ads/px.gif?ch= +H* +forum.ixbt.com08@R(forum.ixbt.com/js/fotkidepo/baners//*.js +>ÿï* + fosshub.com08@Rfosshub.com/media/js/adblock.js +*08@Rfwdcdn.com^*/advertisment.js +1 * + +gamak.tv08@Rgamak.tv^*-contrib-ads. +. * + +gamemag.ru08@Rgamemag.ru/ads.txt +B* + gameswf.com08@R%gamesglue.com/game_core/check/ima3.js +fÿï* + 1plus1.video* + +unian.info* + unian.net* + +unian.ua08@Rgaua.hit.gemius.pl/gemiuslib.js +Y* + 1plus1.video* + +unian.info* + unian.net* + +unian.ua08@Rgemius.pl/gplayer.js ++ÿï* +gig.md08@Rgig.md^*/reklama/ +=* + +tests24.su08@R!google-analytics.com/analytics.js +ù * +sovetromantica.com* +sportbarchik88.com* +src.media-base.co* +klplayer.website* +barsportbar.com* +channels247.net* +cdntelesee.com* +cdntvpotok.com* +rxtv.github.io* +sporting77.com* +sudya-dredd.ru* + kipolino.site* + phys-kids.com* + starserial.ru* + asteriatm.ru* + cdnneedtv.ru* + cdnpotok.com* + fuzzmusic.ru* + sportbar.biz* + hindcine.tv* + +chepok.xyz* + +domatv.net* + +sport7.biz* + goool7.ws* + hdone.net* + +2es.work* + +hdru.net* + +pokaz.me08@Rgoogleads.g.doubleclick.net/ +C* + +rzn.info08@R)googleadservices.com/pagead/conversion.js +Aÿï* + spruto.tv08@R$googlesyndication.com/pagead/images/ +e* +downdetector.ru* + chelseafc.com* + www.aport.ru08@R#googletagservices.com/tag/js/gpt.js +! * +gwss.ru08@Rgwss.ru^ +?* +hack-master.ru08@Rhack-master.ru^*AdblockDetected +L* +ictv.ua08@R3ictv.ua/wp-content/themes/ictv/includes/js/cnads.js +6ÿï* + +it-like.ru08@Rit-like.ru/ads_load/*.js +-* + knigilub.ru08@Rknigilub.ru/*.js +B* +kopilochka.net.ru08@Rkopilochka.net.ru^*/show_ads.js +ivbt.ru $elemhideì% +X* +krutilvertel.com08@R6krutilvertel.com/catalog/view/javascript/ads-prebid.js +R* +kyivdictionary.com08@R.kyivdictionary.com/static/*/js/prebid-ads.*.js +I* +the-village.ru08@R)lamcdn.net/www.the-village.ru/gui/advert- ++"* + list-org.com08@R list-org.com^ +/* + moevideo.net08@Rliverail.com/?LR_ +8ÿï* + +own3d.tv08@Rliverail.com^*/admanager.swf +C* +mastergrad.com08@R#mastergrad.com/public/js/ads.min.js +{* +doska.tamboff.ru* +oformi-foto.ru* +sherlock.store* + +shok102.ru* +101.ru08@Rmc.yandex.ru/metrika/watch.js +5* + +mover.uz08@Rmover.uz/www/serving/adb.js +/ * +worldvideo.site08@Rmtrcss.com/*/v +3* +musicnews1.org08@Rmusicnews1.org^*.js +' * + +muzlan.top08@R muzlan.top^ +9ÿï* + +my.prom.ua08@Rmy.prom.ua^*/adv_teasers.js +^ÿï* +mycredit.homecredit.ru08@R4mycredit.homecredit.ru/mycreditweb/bundle/app/ads.js +J* + +nashe.ru08@R0nashe.ru/wp-content/themes/nashe/js/nashe-ads.js +8* + +piratia.su08@Rnum-link.ru/banner/list/*.js +)* + olegon.ru08@Rolegon.ru/ads/ +6* + opel-omega.ru08@Ropel-omega.ru^*?adType= +U* + in-poland.com08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +Õÿï* +blogging-techies.com* +radioromantika.ru* +tarkov-market.com* +radio-archive.ru* +adult-images.ru* +fcportables.com* +freeopenvpn.org* +anypictures.ru* +ikigaitest.com* +kvadratmetr.uz* +tehnografi.com* + investing.com* + izi-invest.ru* + shadowcore.ru* + tehnar.net.ua* + 595.ucoz.net* + tehnobzor.ru* + botrix.live* + otzovik.com* + parnuxi.biz* + pixcloud.ru* + tubeload.co* + xpicture.ru* + +mod-wot.ru* + +oligarx.uz* + +tests24.su* + crast.net* + imgbum.ru* + ozlib.com* + +daz3d.ru* +yvid.ru* +di.fm* +nv.ua08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +E* + +patents.su08@R)patents.su/assets/themes/patents/js/main/ +5ÿï* + +peers.tv08@Rpeers.tv/cnplayer/imasdk/ +?* + persey.if.ua08@R!persey.if.ua/images/attention.jpg +E* +www.pixsense.net08@R#pixsense.net/advertisement/songe.js +%* + pkfnpo.ru08@R +pkfnpo.ru^ +- +* + player.3tv.im08@Rplayer.3tv.im^ +¬ +* +player.starlight.digital* + teleportal.ua* + xsport.ua* + +inter.ua* +ictv.ua* +novy.tv* +ntn.ua* +stb.ua* +k1.ua08@R%player.adtelligent.com/static/player. +3* +print-post.com08@Rprint-post.com^*.js +6ÿï* + pvpru.com08@Rpvpru.com/css/banners/300 +:* + questtime.net08@Rquesttime.net/js/adverts.js +E* +radio-archive.ru08@R#radio-archive.ru/adblockDetector.js +;* +radiorecord.fm08@Rradiorecord.fm/googleads.js +F * +radioscope.in.ua08@R$radioscope.in.ua/res/js/app.js?ads=1 +2* + +rem-tv.net08@Rrem-tv.net^*/advert.js +<* +remont-aud.net08@Rremont-aud.net/pubads.ads.js +K* + in-poland.com08@R,resources.infolinks.com/js/infolinks_main.js +`* +mac-torrent-download.net* +audioz.download08@R#revdepo.com/static/advertisement.js +F* +ringside24.com08@R&ringside24.com/static/js/advert-min.js +@ÿï08@R0ru-skript.ru/templates/ruhacker/images/*logo.png +J* +news.sportbox.ru* + +matchtv.ru08@Rs-cdn.sportbox.ru^*/adfox. +S* + imgur.com08@R8s.imgur.com/desktop-assets/js/floaty_rotator.*.bundle.js +G * + www.aport.ru08@R)securepubads.g.doubleclick.net/gampad/ads +Lÿï* + www.aport.ru08@R,securepubads.g.doubleclick.net/tag/js/gpt.js +2* + seo-fast.ru08@Rseo-fast.ru/js/adv.js +C* +sevtracker.org08@R#sevtracker.org/styles/js/adframe.js +=* +shararam-card.tk08@Rshararam-card.tk/showads.js +.ÿï08@Rsld.kiev.ua/assets/*/advert.js +308@R%smaxim.*/player/stats.php?event=Init, +5 * + sports.ru08@Rst.s5o.ru/source/_desktop/ +W* +stalker-mods.clan.su* +stalker-mods.su08@Rstalker-mods.*/images/icons/*_ +m * + reshuent.kz* + +sdamgia.ru* + sports.ru* + +reshu.by08@R)static-mon.yandex.net/static/main.js?pid= +;ÿï* +1tv.ru08@R!static.1tv.ru/player/*/banner.gif +S* + +www.irk.ru08@R7static.baik.ru/static/js/apps-js/adv/google_advert.*.js +L * +tehnografi.com08@R,static.doubleclick.net/instream/ad_status.js +<* +irk.ru08@R$static.irk.ru/static/js/apps-js/adv/ +"08@Rstatic.videocore.tv/ +Sÿï* + +wi-fi.ru08@R7static.wi-fi.ru/banners/maximatelecom/advert/adblock.js +E* + +karaoke.ru08@R)static.wi-fi.ru/mtt/banners/libs/*/all.js +b* +staticmv.mediavitrina.ru* +player.mediavitrina.ru08@Rstaticmv.mediavitrina.ru^*.gif +6* +streamguard.cc08@Rstreamguard.cc/assets/ +1* +audioskazki.net08@Rtab.reformal.ru^ +9* + textovod.com08@Rtextovod.com/images/ads.png( +loves.zlovemother.com $elemhide  $elemhide¢ +)* +mail.ru08@Rtop-abd.mail.ru^ +L* +true-detective-online.ru08@R"true-detective-online.ru/js/adv.js +E* +tutkatamka.com.ua08@R"tutkatamka.com.ua/*_advertisement. +k* +crackstatus.net08@RJulogin.ru/version/3.0/img/providers-16-classic.png?version=img.3.0.2?rand= +6* + ur.biz.ua08@Rur.biz.ua/js/adsbygoogle.js +  08@Rv*.plrjs.org/*.xml +8* + vapecraft.org08@Rvapecraft.org/js/ads.*.js +:* + vdv-info.ru08@Rvdv-info.ru/assets/adverts.js + 08@Rvesti.ru/i/adv.png +9* +video.mixok.me08@Rvideo.mixok.me/adframe.js +>* + vk.barkov.net08@Rvk.barkov.net/js/adsbygoogle.js +7* + +zebomba.ru08@Rvk.com/js/api/adman_init.js +&08@Rvk.com/js/lib/px.js?ch=1 +&08@Rvk.com/js/lib/px.js?ch=2 +0* + volknn.ru08@Rvolknn.ru^*/js/adv.js +3ÿï08@R#vse.kz/public/js/jsLoader.js?adkey= +:ÿï* + +wakanim.tv08@Rwakanim.tv^*/video/adsunauth +k* +love.0629.com.ua* +online-mamba.ru* + love.mail.ru* + wamba.com* + +mamba.ru08@R wambacdn.net^ +:* +www.deezer.com08@Rww400.smartadserver.com/ac +E * + meteoblue.com08@R&www.meteoblue.com/build/website/gpt.js +1 * + +animix.lol08@Rwww3.doubleclick.net/ +** +gwss.ru08@Rxksqb.com/native. +E* +xn--b1ajehof.xn--80asehdb08@Rxn--b1ajehof.xn--80asehdb^ +Å* +player.mediavitrina.ru* +api-video.khl.ru* +kino.tricolor.tv* + aniboom.one* + +gisher.org* + +karaoke.ru* + rutube.ru* + +peers.tv* +m24.ru* +ren.tv08@Ryandex.ru/ads/system/adsdk.js +[ÿï* + examenpdd.com* + forum.qrz.ru* +yvid.ru08@Ryandex.ru/ads/system/context.js +M* + shadowcore.ru* + tvzvezda.ru08@Ryandex.ru/ads/system/context.js +9* + yarik-sat.com08@Ryarik-sat.com/reklama/*.js +J* + examenpdd.com08@R+yastatic.net/safeframe-bundles/0.83/host.js +:* + +zx-pk.ru08@R zx-pk.ru/abp/adblock_detector.js + +akson.ru .ad-list-item + +akson.ru +.ad-spacer$ +aqa.rudiv[id^="div-gpt-ad-"]+ + au-ok.com +aume.ru#banner_adsense! + avtodoc24.ru .Ad-Container + avtodoc24.ru .sidebar-adC +buhgalter.com.ua +buhgalter911.com + factor.ua +.bottom-ad. + chelseafc.com + shrlink.top +.ad-banner( + trialkeys.ru + +daz3d.ru.AdSense) + trialkeys.ru + +daz3d.ru .advblock + +dl2kq.de #sponsor_ad + drahelas.ru.forumAd* +print-post.com + +draug.ru#reklama + gamepush.com#text_ad" +green-way.com.ua +.adWrapper + +iphones.ru #sponsorTextO +kakoysegodnyaprazdnik.ru +no-steamserv.ru + +mmo13.ru + +vesti.ru.advJ +openssource.biz + kisameev.ru + myseria.pro + zazloo.ru.reklama + +liga.net #bottomAd +mail.ru .text-bannerQ +revelationonlinedb.ru +vg672plpaer.ru + quantrum.me +mail.ru.ad_text + manshet.org +#adcontent# +minigames.mail.ru +.js-banner + mks.space .ads_banner( +newnavitel.blogspot.com #AdSense1# + num-words.com.advert-banner( + pvpru.com#ad_global_above_footer  + rap-me.online .adv-banner5 + tnt-online.ru + razlozhi.rudiv[id^="adfox_"] + +tests24.su +#header-ad  + textstudio.co .adsbyyahoo# + xcom-shop.ru.ad-placeholder + zhurnaly.biz .ad-block + zhurnaly.biz .item-ads* + pornhub.com + pornhub.org#abAlertÄ +Uÿï08@RE7days2die.info#?#.articleContent > p:-abp-has(> span + strong[style]) +Wÿï08@RGvgtimes.ru#?#.article_block:-abp-has(> p > i:-abp-contains(/adblock/i)) +Qÿï08@RAelectric-house.ru#?#.rules:-abp-has(> p > [src="/img/no_ad.png"])% +adblock.turtlecute.org#ad_ctd  + seolik.ru#alert_top_site6 + tvvse.my1.ru"#cont-i > span[style*="color:red"]Ç +fast-torrent.club +fast-torrent.ru +fast-torrent.su + fast-fiml.ru + filmpotok.ru + kinomuch.ru + pickfilm.ru + +nebeda.net + veleto.ru + +vixim.ru##container > center:nth-child(-n+3)G + fm-app.ru + +tvapp.su + +yootv.ru#content > div[style*="fixed"]  + +satdx.club#darkenwrapper + 3dtuning.com #detected + vuzopedia.ru#fab, + imagebam.com#hideifpossible.box_wait +sm.news +#installerg + +wakanim.tvU#jwplayer-container > #container-player[style*="width:100%"][style*="cursor:pointer"] + tvvse.my1.ru#mdl_adb2 +semestr.online + +semestr.ru#messageblock1$ + rbkgames.com#norris-detector� +studopedia.com.ua +megaobuchalka.ru +studopedia.net +studopedia.org + studopedia.ru + studopedia.su + lektsii.org #opaco,#popup# + +culture.ru#page-error-modal/ +forum.niiot.net#some_ad_block_key_popup$ + +myshows.me.CheatModal__modal + rknweb.ru +.IsAdBlock + usemind.org.a-top[ + montecarlo.ru + rusradio.ru + +maximum.ru + +hitfm.ru +dfm.ru.ad-blocked-message' + ogorod.ru.adblock_popup_warning( + wowjp.net.adblocker-notification + pes-files.ru .alert-blue$ +electric-house.ru .alert_warn! + stylenews.ru .alm-btn-wrap` +7days2die.infoJ.articleContent > p[style="display: block!important; text-align: center;"] + retail.ru +.b2-retail +nashaplaneta.net.badv% + img2txt.com.bd-callout-danger& + img2txt.com.bd-callout-warning +reallanguage.club.bgAdd! + guidesgame.ru .box-warning + a-russia.ru.bsac + retail.ru +.c1-retail + retail.ru .commercial + retail.ru .contain__p1 + bidbaits.ru +.cover-msg) +tarkov-market.com.disable-adblock, +internetsms.org.fade[class^="modal"]Ÿ +kreschatic.kiev.ua +allbasketball.org +portaltele.com.ua +fashion2news.com +hotallnews.today +dailymail.co.uk + in-poland.com + pravda.com.ua + tales.org.ua + ukranews.com + pimpletv.ru + +ilenta.com + +moyens.net + +newspad.ru + wormax.io + zazloo.ru .fc-ab-root +hdkinoteatr.com.fixedBg( + +hdkino.biz.full-news td[bgcolor]& +trupornolabs.org.header > .red( + wowhead.com.is-atf.horizontal-bg& + wowhead.com.is-atf.vertical-bg( + wowhead.com.is-btf.horizontal-bg + +com-x.life .jquery-error + retail.ru .markup__b2 + retail.ru .markup__c1 + retail.ru .markup__p1F + playground.ru1.mezzanine > .mezzanine-center > div:not([class]) +forum.niiot.net.modal  +allbookerka.org .overhang, + +2x2tv.ru.owl-wrapper-outer .slideAlt + retail.ru +.p1-retail + retail.ru +.p2-retail" +clan-soprano.ru .popupBlockG + uniondht.org3.post_body > div[style="color:red;font-size:25px;"]k + filmix.date + filmix.life + filmix.tech + filmix.zone + +filmix.pub + filmix.my.remove-sda-wrapR + +satdx.club@.rules[style^="display:"][style*="position:"][style*="z-index:"]›( +®* +megaobuchalka.ru* +studopedia.info* +studopedia.net* +studopedia.org* + cyberpedia.su* + studopedia.su* + infopedia.su* + lektsii.org* + poisk-ru.ru08@R/*.js +** + +jakondo.ru08@R/adsblocker.js +0ÿï* + the-office.su08@R/fck-ab-code.js +ž* +studopedia.com.ua* +megaobuchalka.ru* +studopedia.net* +studopedia.org* + studopedia.ru* + studopedia.su* + lektsii.org* + mydocx.ru08@R/ggl/ +U * + reshuent.kz* + +sdamgia.ru* + +reshu.by08@R/help?ajax=1&name=about_cookie +9* + baku365.com08@R/javascript_adblockdetector/ +Â* +solidworksvideo.ru* +coreldrawvideo.ru* +photoshopvideo.ru* +archicadvideo.ru* +autocadvideo.ru* +3dsmaxvideo.ru* +kompasvideo.ru* + excelvideo.ru* + wordvideo.ru08@R/js/1.js +Í* +solidworksvideo.ru* +coreldrawvideo.ru* +photoshopvideo.ru* +archicadvideo.ru* +autocadvideo.ru* +3dsmaxvideo.ru* +kompasvideo.ru* + excelvideo.ru* + wordvideo.ru08@R/js/include_name.js +>ÿï* +vologdahistory.ru08@R/simple-adblock-detector/ +\ÿï* +cigarexpert.ru* + +swizz.ru* + +ulnar.ru* +uxxa.ru08@R/static/libs/adetector/ +¶ÿï08@R¥2es.work,adventuretime.ru,ani.wtf,cdnneedtv.ru,cdnpotok.com,cdntelesee.com,cdntvpotok.com,chepok.xyz,domatv.net,hdone.net,hdru.net,hindcine.tv,kipolino.site,klplayer.website,liveball.my,liveball.uno,liveball.*,liveball7.gq,liveball8.ml,luxurytv.online,oneliketv.com,phys-kids.com,pokaz.me,rxtv.github.io,sovetromantica.com,strah.video,t1pochek.site,tip0chek.site,tipochek.xyz,volley.ru,worldvideo.site#?#[id^="oframe"] > pjsdiv:-abp-has(> pjsdiv:-abp-contains(/adblock|adblok|адблок|блокировщик|блокировку|фрибет/i)) +*08@Rddnk.advertur.ru/*/loader.js +a* + webwintop.ru08@RCwebwintop.ru/wp-content/plugins/contact-form-7/includes/js/index.js +f* + webwintop.ru08@RHwebwintop.ru/wp-content/plugins/copy-the-code/assets/js/copy-the-code.js +iÿï08@RY24pdd.ru,nullcms.ru#?#body > div[id][class]:-abp-has(> div[id][class] [class^="adblock"]) +Qÿï08@RAqrz.ru#?#div[class]:-abp-has(> .inner > a[href="/help/adblock/"]) +Qÿï08@RAinformator.ua#?#div[id^="brid-player"] ~ p:-abp-contains(AdBlock) +*ÿï08@Ranivisual.net/back/scss.js +4ÿï08@R$csgohelp.ru/assets/app/js/checkIn.js +4ÿï08@R$electric-house.ru/forum/script_el.js +008@R"fanforum.ru/uploads/set_resources_ +*ÿï08@Rglav.su/js/libs/abd/abd.js +1ÿï08@R!howdyho.*/media/js/main-pn5-ru.js: +sport-express.net +sport-express.ru .se-bn-notice! + +kodik.info.second-message, +radioromantika.ru.showMessageAdBlock& + uakino.me.side-content-adblock6 + kg-portal.ru".social_login > .ulogin ~ .caution + pikabu.ru .toast_danger + gibdd-gai.ru.warning% + spletnik.ru.z-adblock-message+ + tvigle.ru[class^="styles_removeAd"]* + pikabu.ru[data-role="adb-warning"]= + animedub.ru*a[href="https://animedub.ru/adblock.html"]/ + +3drubik.rubody > #page ~ div[id][class] + fapvdo.ru body > #txt! + +24pdd.kzbody > .preloader� +transformator220.ru +ranobe-novels.ru +doctorrouter.ru + wuxiaworld.ru + gamingsym.in*body > :not([id]):not([class]):not(script)F + top10books.ru + mirdiets.ru"body > [class*="-blackout active"]_ + top10books.ru + mirdiets.ru;body > [class*="-blackout active"] + div[class$="-wrapper"], + iblitzmods.rubody > [class^="adbd-"]H + mods-club.ru4body > [id]:not([class]):not([iframe]):not(#main-bg)4 + +24pdd.kz$body > [id][class*=" "]:not([style])E +itbusiness.com.ua +zmoe.ru!body > div:not([id]):not([class])1 + chemrise.rubody > div[class*="ui-widget"]I + rasfokus.ru6body > div[id] > [align="center"] > a[target="_blank"]j + anime-free.ru + primpogoda.ru + pastebin.com4body > div[id]:not([class])[style="display: block;"]O +fashion2news.com +hotallnews.today + +newspad.rubody > div[id][class]� +ternopillive.com +skidkaonline.ru + kurs.com.ua + ontvtime.ru + +ritsatv.ru9body > div[style*="background-color:"][style*="z-index:"]J + gsm.in.ua9body > div[style^="background:"][style*="display: block"]) + motorpage.rubody.noscroll::before7 +live.vkvideo.ru div[class^="Notifications_root"]. + pronetblog.bydiv[class^="adsensepost"]2 + 2baksa.ws!div[class^="ant"][class*="block"]< + hitsovet.ru + +mod-wot.rudiv[class^="chp_ads_block"]? + rutube.ru.div[class^="notification-"][class*="module__"]M +fcportables.com + afrowesh.org&div[id][class^="popup"][class$="wrap"]* +chaynikam.infodiv[id^="mdl_ctnr_"]D + zazloo.ru3div[style="background: darkorange; padding: 10px;"]' +rt02.ruimg[alt*="реклам"]k + +onliner.byYimg[src="https://content.onliner.by/news/1100x5616/eb7d2f564b229c0da9f39ec11eb7d529.png"][ + au-ok.comJp[style="border:3px solid #C1FF0A;background-color:#d5d5d1;padding:10px;"]1 +adblock.turtlecute.orgsection ._bg-orangeh +forums.overclockers.ruJtr > td[nowrap="nowrap"][style^="color: red;"][style$="font-weight: bold"]Ÿ +/ÿï08@Rin-english.club/statistic/my.js +7ÿï08@R'itcrowd.top/templates/yootheme/block.js +Nÿï08@R>moi-detsad.ru/wp-content/cache/autoptimize/js/autoptimize_*.js +2ÿï08@R"new.yummy-anime.ru/assets/ARu.avif +4ÿï08@R$nnmstatic.win/forum/docs/requests.js +,ÿï08@Rpcnews.ru/js/blockadblock.js +2ÿï08@R"rybolov.ee/forum/Themes/RealPopup/ +0ÿï08@R sochi.camera/adblock-detector.js +-ÿï08@Rstarserial.ru/img/adblock.png +[ÿï08@RKstorage.yandexcloud.net/sravni-affiliates-public/adblock/adblock_checker.js +#ÿï08@Rtexnic.ru/jq/san.js +Cÿï08@R3under-prog.ru/wp-content/plugins/eazy-ad-unblocker/ +'ÿï08@Rvsthouse.ru/a-detector/ +.08@R webwintop.ru/wp-content/plugins/ +7ÿï08@R'yagramotniy.ru/templates/edv/js/_extra/ +>* + paparazzi.ru* + zvezdi.ru08@Ra.republer.com^ +U* + hotcharts.ru* + myzuka.club* + russian7.ru* + +anekdot.ru08@R admelon.ru^ +4* +thg.ru08@Radriver.ru/cgi-bin/erle.cgi? +** +thg.ru08@Radriver.ru/images/ +ÿï08@R adriver.ru^ +4* +dic.academic.ru08@Radvertpay.net/code? +[* + tambovnet.org* + astrakhan.ru* + omskpress.ru* + myjane.ru08@Rkavanga.ru/exp? +9* +om1.ru08@R!widget.svk-native.ru/js/loader.js +=* + +readli.net08@R!connect.facebook.net/en_US/sdk.js +:* + kasparov.ru08@Rconnect.facebook.net/ru_RU/ \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ZH b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ZH new file mode 100644 index 0000000..52cb0a8 --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/Part-ZH @@ -0,0 +1,23125 @@ +­ +08@R-*-*-*-*.alpha^ +"ÿï08@R/7755com-*00x*.gif +6ÿï08@R&/mxstatic/image/aabbc/985b74dc077d491. +08@R.xyz/z/*/code.js +08@R -*-*-*-*.as^ +08@R .xyz:*?x= +08@R .xyz:*?c= +08@R-*-*-*-*.panda^ +"ÿï08@R/haijiao3/*/popup. +$ÿï08@R/templets/js/yala.js +ÿï08@R.tv/gg/ +$ÿï08@R.top/api.php?mod=ad& +'ÿï08@R/webAdvert.php?ad_name= +%ÿï08@R/js/adv-slide-toggle. + ÿï08@R-1316632262.cos. + ÿï08@R-1316899192.cos. + ÿï08@R-1321533417.cos. + ÿï08@R-1325890192.cos. +#ÿï08@R-1688-wp-media/ads/ +ÿï08@R -90mh-gg. +ÿï08@R .bid/ads/ +ÿï08@R +.blog/ads/ +#ÿï08@R.bt*.com/imgs.js?t= +08@R.buzz/*= +ÿï08@R .cam/ads/ +ÿï08@R.cc/ad/ +ÿï08@R .cc/js/ads/ +ÿï08@R .cloud/ads/ +ÿï08@R +.club/ads/ +ÿï08@R +.club/adv/ +08@R .cn/*-*-*.xc +ÿï08@R.cn/ads/ +08@R.cn/gg/ +ÿï08@R .cn/js/ads/ +08@R .cn/sc/*?x= +ÿï08@R .co/js/ads/ +#ÿï08@R.com*/ps/psCreat.js +ÿï08@R.com/0gg/gg*.js +ÿï08@R .com/a_d/ +ÿï08@R .com/adv1/?q= +&ÿï08@R.com/core/js/the_pf.js +08@R.com/cpc/*.ashx? +08@R.com/cpv/*.ashx? +/ÿï08@R.com/dibudaohang/dibudaohang.js +#ÿï08@R.com/discor_list.js + ÿï08@R.com/dm/ahead.js +!ÿï08@R.com/dm/banner.js +&ÿï08@R.com/dm/bofangshang.js +$ÿï08@R.com/dm/bofangxia.js +ÿï08@R.com/dm/dibu.js + ÿï08@R.com/dongcidaci/ +ÿï08@R +.com/gg.js +08@R .com/gg/*?x= +"ÿï08@R.com/images/102.js +#ÿï08@R.com/java/shang1.js +!ÿï08@R.com/java/xia1.js +#ÿï08@R.com/java/youxia.js +#ÿï08@R.com/java/zuoxia.js +ÿï08@R .com/js/a_d/ +ÿï08@R .com/js/ad_ +ÿï08@R.com/js/addp.js +$ÿï08@R.com/js/alls_foot.js +#ÿï08@R.com/js/alls_top.js +ÿï08@R .com/js/bnnr_Ç +ÿï08@R .com/js/bnr_ +&ÿï08@R.com/js/discor_list.js +ÿï08@R.com/js/LAD.js +"ÿï08@R.com/js/youlian.js +"ÿï08@R.com/jsbjl/zhanqun +&ÿï08@R.com/json/cctv.json?v= +ÿï08@R.com/logo/ad.js +!ÿï08@R.com/logo/logo.js +$ÿï08@R.com/logo/logoxia.js +08@R .com/m-2594 ++08@R.com/mediaController.php?pid= +"ÿï08@R.com/myjs/alljs.js +&ÿï08@R.com/myjs/mys_alljs.js +ÿï08@R .com/pc/ad/ + ÿï08@R.com/piaozi/*.js +)ÿï08@R.com/Public/js/duileft.js +*ÿï08@R.com/Public/js/duiright.js +ÿï08@R .com/qxads/ +#ÿï08@R.com/rmb/bofang*.js +$ÿï08@R.com/rmb/daohang*.js +ÿï08@R.com/rmb/dl.js +'ÿï08@R.com/rmb/palyyoubian.js +08@R.com/rs/in/*?n= +ÿï08@R .com/rs/shto/ +*ÿï08@R.com/Runtime/js/psCreat.js +"08@R .com/sh/to/ +%ÿï08@R.com/sitejs/hansan.js +$ÿï08@R.com/static/js/ad.js +$ÿï08@R.com/style/vue.js?v= +ÿï08@R.com/tonglan.js + ÿï08@R.com/tonglan2.js +ÿï08@R .com/topjs/ +*ÿï08@R.com/uploads/*-860x250.gif +08@R .com/vh1/ +08@R .com/vh2/ +08@R .com/vh5/ +08@R .com/vj1/ +08@R .com/vj2/ +ÿï08@R .com/vodad.js + 08@R.com/zz/*2.txt +ÿï08@R.com/zz/tcc2.js +ÿï08@R.com/zz/yd2.js +08@R .com:12289/ +-ÿï08@R.com:91/Runtime/js/psCreat.js +(ÿï08@R.com:9120/discor_list.js +ÿï08@R.fun/ad/ +ÿï08@R .icu/ads/ +ÿï08@R .in/js/ads/ +ÿï08@R .info/ad.js +ÿï08@R .info/ad/ +ÿï08@R .info/js/ads/ +%ÿï08@R.info/js/alls_foot.js +$ÿï08@R.info/js/alls_top.js +ÿï08@R .info/topjs/ +ÿï08@R .io/js/ads/ +ÿï08@R .js?advertID= +#ÿï08@R.la/style/vue.js?v= +ÿï08@R.land/ad/*.gif +ÿï08@R +.life/ads/ +08@R +.live/o.js +ÿï08@R.lu/ads/ +ÿï08@R .me/gg.js +ÿï08@R .men/ads/ +ÿï08@R .net/js/ads/× +08@R .net/vh1/ +08@R .net/vj1/ +ÿï08@R .org/js/ads/ +ÿï08@R .org/topjs/ +08@R.site:20443/*.js^ +ÿï08@R.st/ads/ +ÿï08@R .test15./ +ÿï08@R.top/ad- +ÿï08@R.top/ad/ +ÿï08@R .top/ads/ +(ÿï08@R.top/g3/myString3AsyncG? +!ÿï08@R.top/upload/ad.js +#ÿï08@R.top^*-960x80-*.gif +ÿï08@R .tv/js/ads/ +#ÿï08@R.tv/style/vue.js?v= +ÿï08@R.tw/ads/ +ÿï08@R .us/js/ads/ +ÿï08@R .vip/ads/ +ÿï08@R.vip/gg/ + ÿï08@R.vip/html/ddx.js + ÿï08@R.vip/html/hfv.js +!ÿï08@R.vip/html/zbxx.js +ÿï08@R .vip/js/ads/ +$ÿï08@R.vip/style/vue.js?v= +ÿï08@R +.work/ads/ +!ÿï08@R.xn--fiqs8s:7385/ +08@R.xyz/*= +ÿï08@R .xyz/99x/ +ÿï08@R.xyz/ad/ +ÿï08@R.xyz/js/addp.js +ÿï08@R .xyz/js/ads/ +08@R .xyz/o.js +ÿï08@R.xyz/upload/ad/ +08@R .xyz/vh1/ +ÿï08@R +.zone/ads/ +!ÿï08@R/0mbjs/2800av*.js +/ÿï08@R/1982/java/static/js/*headad.js +!ÿï08@R/1linbAte_mplatk/ +"ÿï08@R/2016v2/js/adm2.js +!ÿï08@R/2048/aps/*_pc.js +ÿï08@R/500ad/ +ÿï08@R /527ldy.oss- +"ÿï08@R/5555vipqipai.oss- +2ÿï08@R"/58pic/index.php?m=adManageSystem& +"ÿï08@R/5ixcmbwj/js/ad.js +"ÿï08@R/640_120_javhd.jpg +*ÿï08@R/69tang6_*/html/abc/image/ +ÿï08@R/789syy/ +ÿï08@R/80sad/ +ÿï08@R/8drama_yahoo/ +ÿï08@R/9115gg/ +ÿï08@R /91_banner/ +ÿï08@R/91ad. +ÿï08@R/91ad_ +"ÿï08@R/993dy_new//gg123/ +ÿï08@R/99vjj/ +ÿï08@R/A-duoduo/Add- +&ÿï08@R/A-Tian/Tian-*-good.js +ÿï08@R +/a/p?adid= +ÿï08@R/ab_my/pc_pf.js +#ÿï08@R/ab_res/m/common.js +)ÿï08@R/ab_res/pc/fixed/fixed.js +08@R/acmsd/ +ÿï08@R /AD2v1.1.jsÿ +'ÿï08@R/ad_display.php?ad_pos= +#ÿï08@R/ad_unified_access? +ÿï08@R/adcg/ +ÿï08@R +/adcms/js/ +*ÿï08@R/addon/assets/common/gg.js +"ÿï08@R/addon/indexad.php +ÿï08@R /adflash/ +ÿï08@R/adinfo? +#ÿï08@R/adinfos?*&ane=pic1 +ÿï08@R /adintrs/ +ÿï08@R /adpfile/ +ÿï08@R/adPlat/adPlat_ +ÿï08@R /adposid/ +ÿï08@R /adpro.js +ÿï08@R/adpuba/ +ÿï08@R /adpv?cn= +ÿï08@R/adscpc/ +ÿï08@R /adsfactor_ab +ÿï08@R/adtmp/ +ÿï08@R +/adTopBar. +ÿï08@R /AdverJS/ + ÿï08@R/advert/youxi.js +ÿï08@R/advpic/ +ÿï08@R +/afd/entry +ÿï08@R /agetsou.js +5ÿï08@R%/aipai/player/game_video/videoAdvert_ +ÿï08@R/ajds/ +!ÿï08@R/ajgg-1318512902. +ÿï08@R +/ajjsjfsk/ +ÿï08@R/alljs/alldl.js +!ÿï08@R/alljs/allfoot.js +!ÿï08@R/alljs/allhead.js + ÿï08@R/alljs/alltop.js +$ÿï08@R/alljs/allwzwfoot.js +$ÿï08@R/alljs/allwzwhead.js +!ÿï08@R/aoyou372down300_ +ÿï08@R/api/aaaac/list +$ÿï08@R/api/apiFetchAdsData + ÿï08@R/api/autosda.php +&ÿï08@R/api/Video/GetAdsData? +*ÿï08@R/api/Video/GetAdsDataList? +0ÿï08@R /app/pcBanner/getBannerConfig/v2 + ÿï08@R/app_ad/slade.js +"ÿï08@R/Appapi/jjlist.php +$ÿï08@R/appnei-huodong.oss- +-ÿï08@R/apps/misc.php?action=advert& + ÿï08@R/AShow.aspx?AID= + ÿï08@R/asset/js/gglms. +(ÿï08@R/assets/banners/600x100/ +/ÿï08@R/assets/dayu/ainfiniteactivity- +%ÿï08@R/assets/t_j/tongji.js +-ÿï08@R/attachment/freeaddon_banner/ +2ÿï* + edushida.com08@R/attachments/ad/ +!ÿï08@R/avple-images/ad. +!ÿï08@R/avple-images/ad_ +ÿï08@R/avshow_cn1.gif +€08@R +/baichuan/ +&ÿï08@R/banner468x60_live173. +ÿï08@R/bcgg/ +ÿï08@R /bg5t4h.oss- +ÿï08@R/blgg/ +%08@R/blog/showdetail.php?z= +ÿï08@R /bookad.oss- +ÿï08@R /botad.htmlÚ +!ÿï08@R/BrandXuanDong.js +#ÿï08@R/bt*.com/imgs.js?t= +ÿï08@R /btba/ad/ +ÿï08@R /c/674_rlt.js +08@R /c/i.php?id= +ÿï08@R /cache/ad_js/ +!ÿï08@R/cache/js/OTca.js +ÿï08@R/cache/OTca.js +"ÿï08@R/caches/poster_js/ +ÿï08@R /caiguu_gg_ +ÿï08@R +/caoaa5.js +ÿï08@R/caoaa +ÿï08@R /cari/banner/ + ÿï08@R/cari/daybanner/ +,ÿï08@R/cdn-cgi/pe/bag2?*.adm.cnzz. +/ÿï08@R/cdn-cgi/pe/bag2?*.overture.com +;ÿï* + hdwan.net08@R/cdn-cgi/pe/bag2?*p.tanx.com +ÿï08@R/center?advId= +)ÿï08@R/cf.aspx?action=cycadget& +)ÿï08@R/clicktotal/ClickTotal.js +ÿï08@R /clys.js?2020 +#ÿï08@R/cm-pop-up-banners- +ÿï08@R +/cms-gg.js +(ÿï08@R/cnki/js/adDetail1124.js +ÿï08@R/code/cpc.asp? +ÿï08@R/code/cpm.asp? +ÿï08@R/code/cpv.asp? + ÿï08@R/code/mypop.asp? + ÿï08@R/Code/pccpcv.php +ÿï08@R/code/pop_cpf. +ÿï08@R /code/popjs. +)* + +ztgame.com08@R /common/cf/ +'ÿï08@R/conch/asset/js/atop.js +(ÿï08@R/conch/asset/js/open-vb. +( 08@R/content.php?id=148&type=g +'ÿï08@R/content/clyscontent.js +08@R/cpc/*.ashx?u= +ÿï08@R /cpm/i.ashx? +ÿï08@R /cpmShopAds^ +ÿï08@R /cpro/ui/ +'ÿï08@R/crifan_com/padaili.png +ÿï08@R/css/78dfj/*.js +ÿï08@R +/css/gg.js +08@R /d/*-*-*.ap +$ÿï08@R/data/attachment/ad/ +!ÿï08@R/data/cache/myad- +08@R/demo_l.php?id= +ÿï08@R /detail_gg.js +ÿï08@R /diantan.js +!ÿï08@R/dibun5nodnbmp.js +ÿï08@R/dm78ad/ +#08@R/download-link-js/?v= +#ÿï08@R/downloads/nmgg.mp4 +ÿï08@R +/dreamads/ +Eÿï* + supfree.net* +388g.com* +msra.cn08@R /duilian. +ÿï08@R +/duilian2. +ÿï08@R /duilian_gg. +:ÿï08@R*/duoteimg/dtnew_assets/pc/js/tech/chaping. +4ÿï08@R$/duoteimg/dtnew_recom_img/duoteself/ +ÿï08@R /dy_66jjss/ +ÿï08@R/dygg_ +&ÿï08@R/dzwww/ad_dzw_inner.js +(ÿï08@R/e/ecmsshop/zhuanpan/js/ +ÿï08@R /eis/diy/ad/ä + ÿï08@R/ettoday/gemini/ +ÿï08@R/eucjhfxh/*.js +08@R/exads-adblock- +ÿï08@R/ezprice_ad.js +ÿï08@R /fage/ad.js +ÿï08@R /fage/sjad.js +08@R /fawu999/*.js +!ÿï08@R/fdjdjghrut_tt.js +ÿï08@R/FduttjAlivqpo/ +ÿï08@R /float_r.js +(ÿï* + fwxgx.com08@R /floatad. +ÿï08@R +/floatad2. + ÿï08@R/floatcaopron.js +!ÿï08@R/floatingcontent/ +!ÿï08@R/fn666/shouye.php ++ 08@R/fourapi/api/data/money?date= +ÿï08@R /frm_adv.aspx +'ÿï08@R/front/adv/getpmadvlist +/ÿï08@R/frontend-jiucao/img/banner.jpg +)ÿï08@R/frontend-jiucao/ps/*.gif +.ÿï08@R/frontend-jiucao/ps/psCreat.js +08@R/fshow.php?id= +!ÿï08@R/fsjghgwyegh_f.js + ÿï08@R/fuliba/js/n1.js +ÿï08@R /fx168_ad +08@R /g.jsp?uid= +!ÿï08@R/game/aplus/pptv/ + ÿï08@R/gamedog_mobile_ +ÿï08@R/gaog/ +ÿï08@R/getAliyunAdv. +08@R/getcode.jsp?uid= + 08@R /getfuolist +ÿï08@R/getGG.php?key= +ÿï08@R/gg.php +ÿï08@R +/gg54.oss- +ÿï08@R /gg7f5kv/ +ÿï08@R /gg_d.php +ÿï08@R /gg_details_ +ÿï08@R /gg_t.php +ÿï08@R/ggao. +ÿï08@R/ggao/ +ÿï08@R /ggclass/ +ÿï08@R /ggdata1. +ÿï08@R /ggg530.oss- +ÿï08@R/ggjs/ +ÿï08@R/ggpic/ +ÿï08@R/ggtp/ +ÿï08@R /ggvip/*.js +ÿï08@R /gh/91porny/ +ÿï08@R /gigi/ad/ +"ÿï08@R/gmu-download.oss- +#ÿï08@R/guang/5liao.me.gif + ÿï08@R/guang/guang*.js +ÿï08@R/guang/mhys.jpg +(ÿï08@R/guang/mscx-MTMwNTQ5.gif +ÿï08@R/guang/twuu.gif +ÿï08@R /guangao/ +ÿï08@R/guangg/ +ÿï08@R +/guanggao. +ÿï08@R +/guanggao/ +ÿï08@R /guanggao2. +ÿï08@R /gubawap/ad/ +ÿï08@R +/gwunggou/ +#ÿï08@R/h/k.php?u=*&l=*&v=� +$ÿï08@R/hao123_api/api/cpc/ +(ÿï08@R/haojio/images/KF-ZL.jpg +&ÿï08@R/haojio/js/scoll_bg.js +ÿï08@R /heituad/ +ÿï08@R/heji/mei00*.js +,ÿï08@R/hjstore/system/banner/*.txt + 08@R/hm.js? +(ÿï08@R/homead/*_appledaily_bg. +#ÿï08@R/hongie-1322507002. +ÿï08@R/html/709/*.js +#ÿï08@R/html/taobao_focus_ +!ÿï08@R/huijiad/huijiad. +(ÿï08@R/huya/main/widget/roomGg +(ÿï08@R/huya_promotion_content_ +%ÿï08@R/ifeng_jdttemplate.js +"ÿï08@R/ifengRotatorAd.js +$ÿï08@R/iframe/baidu_*.html +'ÿï08@R/iframe/ss/baidu_*.html +ÿï08@R/iframe_pfbad/ +ÿï08@R /ikanfan/b.js +ÿï08@R /ikanfan/i.js +ÿï08@R /images//ads/ +&ÿï08@R/images/mobileads*.jpg +%ÿï08@R/images/segucrwj*.gif +%ÿï08@R/images/segucrwj*.jpg +!ÿï08@R/images/ta1234.js +ÿï08@R /img/bbsad/ +ÿï08@R/ina_ad_ +1ÿï08@R!/index.php/Customize/list?params= +/ÿï08@R/index.php/Statistics/ads_show? +%ÿï08@R/iscar.svc/getadvert? +%ÿï08@R/javhd-jp-970x170.jpg +ÿï08@R/jdzjgg/ +ÿï08@R /jfjs/ad.js +!ÿï08@R/jianpian.obs.cn- +.ÿï08@R/jianshen8/images/plan_banner_ +08@R +/js/aa.htm +ÿï08@R/js/aahome.htm +ÿï08@R /js/AD_tv.js +ÿï08@R /js/ads/*0.js +ÿï08@R /js/ads/*2.js +ÿï08@R /js/ads/*5.js +ÿï08@R/js/ads/dui.js +ÿï08@R/js/ads/hf*.js +ÿï08@R /js/ads/neiye +ÿï08@R/js/ads/piao.js +ÿï08@R +/js/ads/to +ÿï08@R /js/ads/yezi +%ÿï08@R/js/ads/youxiajiao.js +%ÿï08@R/js/ads/zuoxiajiao.js +ÿï08@R /js/axdd.js +ÿï08@R /js/bdgg/ +ÿï08@R /js/bocaiadv. +ÿï08@R/js/bpolknm.js +ÿï08@R /js/btdigg.js + ÿï08@R/js/common/gg.js +ÿï08@R/js/cpc2_dl.js +ÿï08@R /js/cpc2_i.js +ÿï08@R/js/cpc2_rp.js +ÿï08@R /js/cpc_i.js +ÿï08@R /js/cpv_dl.js +ÿï08@R /js/cpv_fm_ +ÿï08@R /js/dyguosj/ +ÿï08@R +/js/gg0.js‘ +ÿï08@R +/js/gg123/ +ÿï08@R /js/ggtop.js +"ÿï08@R/js/guanggao_gg.js +ÿï08@R/js/home/ad/ad. +ÿï08@R/js/huath_2.js +$ÿï08@R/js/index_adfloat.js +ÿï08@R /js/jsstyle- +"ÿï08@R/js/mmdaohang_2.js +%ÿï08@R/js/mob/cpc_bottom.js +ÿï08@R/js/pcbook.js? +ÿï08@R/js/piaofu_bet. +ÿï08@R /js/showgg.js +ÿï08@R /js/sjgg.js +ÿï08@R/js/tpolknm.js +ÿï08@R/js/utils51.js +ÿï08@R/js/utils78.js +ÿï08@R +/js/wahha/ +ÿï08@R/js/wlfloat.js + ÿï08@R/js/yueyupp_3.js +ÿï08@R /js/yzgg.js +$ÿï08@R/js_php/ajsf.php?id= +ÿï08@R/jsadv/ +ÿï08@R +/k120g270. +ÿï08@R +/k228.oss- +ÿï08@R +/k300g250. +ÿï08@R /k960g90. +ÿï08@R/kan/ads/dl.js +ÿï08@R/kan/js/dian.js +ÿï08@R /kg2.oss- +ÿï08@R/koukoku/*.gif +(ÿï08@R/koukoku/list?positions= +&ÿï08@R/kumi/file/js/float.js +*ÿï08@R/lanye2015/images/kuan.jpg +-ÿï08@R/lanye2015/images/lanyeht.jpg ++ÿï08@R/lapi/sign/brandapi/getinfo +/ÿï08@R/lapi/sign/phonegameapi/getinfo +*ÿï08@R/lapi/sign/signapi/getinfo +&ÿï08@R/lapi/sign/web/getinfo +$ÿï08@R/lenovo/2021/all*.js +"ÿï08@R/lenovo/pc/all*.js +%ÿï08@R/lenovo/pc/piaofu2.js +!ÿï08@R/lenovo/pc/top.js +ÿï08@R +/letv-gug/ + ÿï08@R/live173/640320_ +!ÿï08@R/live173_*/46860. +ÿï08@R +/lteee/ad/ +08@R /m/i.php?id= ++ÿï08@R/m1938pc/static/css/sxy.css +*ÿï08@R/m1938pc/static/js/dibu.js +ÿï08@R /macplus/ads/ +%ÿï08@R/main.js?v=*&sp=*&ty= +ÿï08@R/main/s? +"ÿï08@R/maizhan/js/age.js +!ÿï08@R/manduan-dev.oss- +!ÿï08@R/matongwu/img/gg_ +&ÿï08@R/MDassets/images/*.gif +ÿï08@R /media/fitad/ +%ÿï08@R/meinv/js/*_banner.js +ÿï08@R/mfad/ +ÿï08@R/mmday/91porn_ +ÿï08@R /mmday/hgame_ +!ÿï08@R/mobile/lele.html +ÿï08@R/mobile/mads.js +'ÿï08@R/mobilegame/getroomapp?… + ÿï08@R/module/adsview/ +8ÿï08@R(/modules/video/player/nuevo/midroll.php? +(ÿï08@R/moneymaker-banners/ads_ +(ÿï08@R/moneymaker/images/*.gif +'ÿï08@R/moneymaker/js/caoaa.js +&ÿï08@R/moneymaker/js/fkpp.js +&ÿï08@R/moneymaker/js/kppp.js +&ÿï08@R/moneymaker/js/tmpp.js +-ÿï08@R/moneymaker/js/videoplayer.js + ÿï08@R/mshow.aspx?AID= +ÿï08@R/msow.aspx?AID= +ÿï08@R/myzgg. +ÿï08@R +/N-960x60. + ÿï08@R/newfengchao/asp +ÿï08@R/nfhry32_78.js +"ÿï08@R/nForum/files/adv/ +ÿï08@R /nowscore/ad/ +ÿï08@R/ntes-ad-cloud. +ÿï08@R/opbb/float.js +ÿï08@R/opbb/obpp.tpl +(ÿï08@R/os1019.oss-cn-quanzhou. +08@R/os2023001.oss- +ÿï08@R/os230718.oss- +ÿï08@R /page/?s= +"ÿï08@R/page/index.php?s= +ÿï08@R/page/s.php?s= +ÿï08@R /pagecpv/ +&ÿï08@R/partner/gg_sogou.html +ÿï08@R/paypic/ +%ÿï08@R/pc/Tpl/baibaipc//js/ +$ÿï08@R/pc/Tpl/baibaipc/js/ +ÿï08@R +/pcgg/*.js +08@R/pcode.jsp?uid= +ÿï08@R/pcswf/pcswf.js +ÿï08@R/pd2.js +ÿï08@R/pge/?s= +,ÿï08@R/Php/Home/kakaxiaikakaxi.php +ÿï08@R +/piaofu.js +08@R /pic.jsp?uid= +ÿï08@R/pic/ad/ +%ÿï* +ychr.com08@R/picad/ +ÿï08@R /pj5303.oss- +ÿï08@R /pj545.oss- +ÿï08@R /pj98co.oss- +€08@R /pjk/mdk/ +"ÿï08@R/pjk/static/tp.php +ÿï08@R/pjk/xjk/*.php +*ÿï08@R/plugin.php?id=popad_7ree& +ÿï08@R/proxy.htm?id= +ÿï08@R/proxy.html?id= +"ÿï08@R/public/imgbed/gg/ +€08@R/pushstart.aspx ++ÿï08@R/PushSystem/attached/image/ +'ÿï08@R/qd/js/index/bannerTop. + ÿï08@R/QidianAdClient. +"ÿï08@R/qiuyi-gg-wrapper- +ÿï08@R/qpxl.js ++ÿï08@R/qqlive/conf/playerlottery/ +�08@R/r/*?_r= +€08@R/r/t1/ +ÿï08@R /red2/ad/ +08@R/release100009ts? +!ÿï08@R/remix_banner.gif +"ÿï08@R/RenderLapinBlock?ú +!ÿï08@R/res/kj/hf*.js?v= +8ÿï08@R(/resource/common/tongzhuo/game_info.json +ÿï08@R /runtime/ad/ + ÿï08@R/runtime/hu/*.js +&ÿï08@R/Runtime/Js/300_300.js +#ÿï08@R/Runtime/Js/90_m.js +%ÿï08@R/Runtime/Js/960_90.js +#ÿï08@R/Runtime/js/banner_ +&ÿï08@R/Runtime/Js/daohang.js +'ÿï08@R/Runtime/Js/footer-m.js +$ÿï08@R/Runtime/js/fumeiti. +)ÿï08@R/Runtime/Js/guding_top.js +#ÿï08@R/Runtime/Js/haojio_ +'ÿï08@R/runtime/js/index960.js +'ÿï08@R/Runtime/Js/lianmeng.js +&ÿï08@R/Runtime/Js/m_tuijian_ +(ÿï08@R/Runtime/Js/m_v_tuijian_ +"ÿï08@R/Runtime/js/mad.js +%ÿï08@R/Runtime/Js/pc_top.js +&ÿï08@R/Runtime/js/play960.js +%ÿï08@R/Runtime/js/top960.js +%ÿï08@R/Runtime/js/top980.js +08@R /s/i.php?id= +ÿï08@R/s/js/fshow.js +ÿï08@R +/sc_ifeng/ +ÿï08@R/scr/wtixyd.js +"ÿï08@R/scrollgg_index.js +"ÿï08@R/secretmine_out.js + ÿï08@R/see200vipghajq/ +ÿï08@R /sh588com888/ +'ÿï08@R/shangvsnhfbrq220923.js +!ÿï08@R/shangyk1z5o3o.js +)ÿï08@R/shehuik618cn/images/c.js +*ÿï08@R/shehuik618cn/images/ds.js +)ÿï08@R/shehuik618cn/images/i.js +)ÿï08@R/shehuik618cn/images/k.js +08@R/showpage2.asp?u= +(ÿï08@R/skin/ecms082/images/kf- +*ÿï08@R/smflow/get.*=gAdCallback_ +ÿï08@R /sobt_adv.js +)ÿï08@R/source/plugin/mama_tips/ + ÿï08@R/static/adsview/ +(ÿï08@R/static/common/js/djlib_ +2ÿï08@R"/Static/Home/GongGao/img/juzi*.gif +4ÿï08@R$/Static/Home/GongGao/img/kaiyuan.gif +(ÿï08@R/static/images/ky888.gif +"ÿï08@R/static/js/aall.js +#ÿï08@R/static/js/fuo_3.js +(ÿï08@R/static/js/gold_daddy.js +$ÿï08@R/static/js/headad.js +.ÿï08@R/static/js/pop_promotion.js?v= +,ÿï08@R/statics/recommend/bense.gif +"ÿï08@R/stui_ads/xyz456e/ +&ÿï08@R/stuiA004/statics/asd/ +!ÿï08@R/svr/popwin.aspx? +ÿï08@R /sxgg/12.js +ÿï08@R/sxgg/13 +*ÿï08@R/taiyangchengjituantupian. +ÿï08@R/tan.js +ÿï08@R/tan1.js +ÿï08@R /tanad.js +!ÿï08@R/td_ads_ckbeck.js + ÿï08@R/template/*/adm/ + ÿï08@R/template/*/ads/³ +'ÿï08@R/template/*/lele36.html +ÿï08@R/template/gg.js +)ÿï08@R/template/hei//poster.php +&ÿï08@R/template/hei/js/1.php +)ÿï08@R/template/jiejiesao/aaaa/ +'ÿï08@R/template/js/adsData.js +0ÿï08@R /template/m1938-*/static/js/dao_ +)ÿï08@R/template/m1938pc/bd/*.js +/ÿï08@R/template/paody/aaaa/all-top.js +#ÿï08@R/template/shoujigg/ +$ÿï08@R/template/znfls/asd/ +/ÿï08@R/template/zsy_badian/dddytt-gg/ +-ÿï08@R/template/zsy_badian/js/stui_ +*ÿï08@R/templates/*/js/_banner.js +2ÿï08@R"/templates/bootadult4/js/bottom.js +0ÿï08@R /templates/bootadult4/js/text.js +*ÿï08@R/templets/*/js/couplet-ad. +%ÿï08@R/templets/yycms3/img/ +'ÿï08@R/tigtag_custom/*_banner +/ÿï08@R/tigtag_custom/include/couplet. +-ÿï08@R/tigtag_custom/include/popup. +)ÿï08@R/tisai/img/nav_980_90.gif +ÿï08@R /tm00738.bj. + ÿï08@R/tourl.html?url= +<ÿï* + jikexiu.com* + jikexiu.vip08@R +/tuiguang/ +!ÿï08@R/tuiguang366.oss- +ÿï08@R /ty684.oss- +ÿï08@R /u/_sponsor/ +.ÿï08@R/uc123_no/*/index/js/activity. +ÿï08@R/uniontgm.cmb. +'ÿï08@R/upload/site/tbgg/*.gif +=ÿï08@R-/upload/vod/2018-08-05/201808051533458526.png +ÿï08@R/uploadfile/ad/ +$ÿï08@R/uploads/setting/ad/ +ÿï08@R +/uu114/ad/ +08@R /V.aspx?Bln= +-ÿï08@R/videoJS/video-conrtib-ads.js +%ÿï08@R/view/image/ngps1.gif +$ÿï08@R/View/img/b72890.jpg +ÿï08@R/vipgg/ +08@R/vtdd/ +08@R/vtdt/ +)ÿï08@R/wagnzhantuiguang366.oss- +!ÿï08@R/wamobantong.oss- +ÿï08@R /wap/js/gg/ +%ÿï08@R/wap88ysw/jk/toubu.js +ÿï08@R /wap_advpic/ + ÿï08@R/wdzj_banners.js +ÿï08@R /web8/ad/ +,ÿï08@R/websales_push_*_big.php?id= +1ÿï08@R!/wp-content/themes/iMovies/js/tc_ +€08@R/wscdn/ +ÿï08@R /wxh_asy.js + ÿï08@R/wxhfm.html?cid= +ÿï08@R /xdy_yyo.php +!ÿï08@R/xgrghru981_23.js +3ÿï08@R#/xianbao_theme/script/intelligence. +3ÿï08@R#/xianbao_theme/ziyuan/1111/hongbao. +ÿï08@R /xiaoyi/360_ +ÿï08@R /xiaoyi/960_ +%ÿï08@R/xiazxvbgyjw220923.js +#ÿï08@R/xiwang/dfumeiti.js +"ÿï08@R/xiwang/fumeiti.js +ÿï08@R/xuanfusige.jsý +ÿï08@R/xxgg/goodad.js +!ÿï08@R/yinghua4567/*.js +08@R /ylnew/*.js +#ÿï08@R/yryy/css/javamy.js +$ÿï08@R/yryy/css/javatop.js +"ÿï08@R/yryy/css/venmy.js +"ÿï08@R/yryy/css/venus.js +&ÿï08@R/yryy/css/zepto-lie.js +ÿï08@R /ys_77jjss/ +(ÿï08@R/yunfile/offline_banner/ +$ÿï08@R/yy_transv/js/cmp.js +ÿï08@R/zz/*_box2.txt +ÿï08@R/zz/wenzi2.txt +ÿï08@R/zz/zuoxia2.txt +5ÿï08@R%/zzzz/assets/js/common/discor_list.js ++ÿï* + +moviedj.tv08@R ://*.tv/ad/ +08@R ://*.z*.xyz/ +%ÿï08@R://*:*/oklist/vars.js + ÿï08@R://abb.*.js?adv= + ÿï08@R://abc.*.js?adv= +"08@R://api.*.com/sh/*.js +*ÿï08@R://btt*/Runtime/js/psData. +'ÿï08@R://dreemdmbabys.oss-cn- +7ÿï08@R'://rou*/_next/static/chunks/pages/home- +08@R://s.htkk*.top: +%ÿï08@R://seai*/ads/float.js +%ÿï08@R://xingkong6688s.oss- +ÿï08@R:1010/openV5.js +08@R :12289/o.js +ÿï08@R :12289/slot? +08@R:12443/*/*-*-*. +"€08@R:18443/*/*-*-*.html +!ÿï08@R:18443/*/*-*-*.js +ÿï08@R +:2048/b.js +ÿï08@R +:2048/jsb? +08@R :4443/ty/x- +ÿï08@R +:52789/gg/ +#ÿï08@R:538/attachment/js/ +(ÿï08@R:538/attachment/xjdb.jpg +ÿï08@R:63666/960x150. +ÿï08@R:701/Pus/pus.js + ÿï08@R:7701/load.cw.js +08@R :800*/d/*n= +08@R :800*/d/*t= +08@R :800*/sc/*n= +ÿï08@R :8080/ad/ + ÿï08@R:8080/advserver/ +ÿï08@R:8080/js/v1.js + ÿï08@R:8080/js/v2.1.js +'ÿï08@R:8081/abc/interurl.jsp? +08@R:81/c/i.php?id= +08@R:81/s/i.php?id= +ÿï08@R:818/nowscore/ +ÿï08@R +:88/999pc/ +%ÿï08@R:88/lighttpd/default/ + ÿï08@R:8888/js/cctv.js +ÿï08@R :8888/mb1/pc_ +ÿï08@R:8888/mb1/wap_ +ÿï08@R :8888/zhu/pc_ +ÿï08@R:8888/zhu/wap_ +08@R :8891/v*/ +ÿï08@R +:8898/ads_ +ÿï08@R :9001/code/ +ÿï08@R +:9875/vh2/Ñ +ÿï08@R +:9875/vj2/ +ÿï08@R :99/js/ads/ +ÿï08@R=ad_top_slider& +08@R=AdCode_ +!ÿï08@R=ajaxGetAds&type= +"ÿï08@R=BAIDU_SSP_define& +'ÿï08@R=fitacg.com/static/othe +ÿï08@R =loginExtAD. +)ÿï08@R=SOGOU_WAP_SETJSONADSLOT& + ÿï08@R?frm=*&ct=*&dit= +6ÿï08@R&?method=baidu.ting.commercial.tactics& +*ÿï08@R_billboard_320x100.iframe. +$ÿï08@R_btbttme/fox/img/QT_ +ÿï08@R _dasiqq315. +ÿï08@R +_fioiwhfo_ +ÿï08@R _float_fuo.js +ÿï08@R +_naimabdd_ +ÿï08@R_popAds. +ÿï08@R +_tm11_pmt_ +ÿï08@R _yad_jsonp_ +&ÿï08@Rubmcmm.baidustatic.com +.ÿï08@Rws://*/api/wss/GetNotReadCount + ÿï08@Rwss://*.xyz:*?x= +/ÿï08@Rwss://*/api/wss/GetNotReadCount +ÿï08@Rhttp://*.cn/ad/ +5ÿï* +sunmobile.com.hk08@Rhttp://*.hk/ad/ +ÿï08@Rhttp://*.in/ad/ +ÿï08@Rhttp://*.me/ad/ +1ÿï* + ruten.com.tw08@Rhttp://*.tw/ad/ +ÿï08@Rhttp://*.us/ad/ +>ÿï* + pcpop.com* + xitek.com08@Rhttp://*/*_ad.js +Bÿï* + coolpc.com.tw* + +sac.net.cn08@Rhttp://*/js/ad. +ÿï08@Rhttp://*/js/ad/ +!ÿï08@Rhttp://*/js/tc.js +Kÿï* + jxnews.com.cn* + ad.cnr.cn* + ckckk.com08@R +http://ad. +)ÿï* + guagua.cn08@R +http://gg. +ÿï08@Rallyes. ++ÿï08@Rasd8900.oss-*.aliyuncs.com^ +)ÿï08@Rky891.oss-*.aliyuncs.com^ +08@R ssh.*.com^*! +'ÿï08@Rtupian888.*.bcebos.com^ +)ÿï08@Rvns86.oss-*.aliyuncs.com^ +ÿï08@Ryinghua8.*/bar/ +ÿï08@Riyxdm.*/js/gad_ +ÿï08@R +/pic/tgad/ +0ÿï08@R zhizhizhizhi.oss-*.aliyuncs.com^ +#ADtip #Ad_windows#ChapterView > .slide-baidu#J_sideFooter.side_footer  #Layeraa1  #Layeraa2 #MsnDialog.ad  #MyMoveAd +#QEff1 +#QEff2 #QQ_Full #ZAML +#Zi_ad_a_H #\31 280_adv)%#\31 x1_container.float-banner-footer#__long_gg_container#aafoot.top_box#aafoot[class^="top_box"]�  +#aaheadtop#aatop.top_box#aatop[class^="top_box"]#ad > #h2_player_prevideo#ad > .pre-img#ad-SNSSplashAd #ad-floatwin)%#ad1[onclick="window.open(this.url)"]#ad1[style^="position:"]  #adBody07 #adLeftFloat #adRightFloat +#adUrl #ad_box1 #ad_box2 #ad_full#ad_globle_div#ad_headerbanner #adad #adrights14 #ads.row +#ads_c_tpc#ads_top_video #adtop1 +#adv-2 +#adv-3#adv-fixed-square #adv_wrap_hh  #adx_cggp($#alert_windows > .q-dialog__backdrop-)#app > .publicAllContentBg > .bigBannerBg #appad.cate#apprecom1.apprecom#apprecom2.apprecom #arBRyGHxuDYU #asdw +#asdw2 #asdw2 + img#aside_cat_ad_bottom #bfad +#bfad1 +#bfad2 +#bfad3 +#bfad4 +#bfad5 +#bfad6#bl_mobile_float#body > #left-promotion#body > #right-promotion #bottom-gg1  #bottomAD #bottomNavad #bottombanner#bottommob.bottommob1-#breadCrumb + .c + .t[style="margin-top:8px"],(#breadCrumb + .t[style="margin-top:8px"]#cat_intro_first_ad#cat_intro_second_ad#chs_bannerArea"#comic_reader + #adDisabledBtn#comiis_xizi_gg02LH#container > #main.site-main > div > div > a[href^="/"][href$="/"] > img#container > .sectionBanner#crazy_ad_floatç #crazy_ad_layer#cs_left_couplet#cs_right_couplet #dbgg #dgf_pc +#diads#dip[href*=".tmall.com"] #div_top_ads #duilian_left#duilian_right #dy_card_dy  #eis_pad1  #eis_pad2#everydayadv_mask#fc_foot > #f_skyfFB#fixed-bottom-modal[style^="right:"][style$="px; display: block;"]#fk_faiVisitStateAd#floatad-winpop #fnbt#footer_fix_ggw #frameS8CyqB#fuo_top_float#fwin_popad_7ree##fwin_popad_7ree + #fwin_dialog +cityheaven.net#gg1 +#gg300 #gg_url +#googleAD1 +#googleAD2 +#googleAD3#googleAdIndexTop#haoxinqing_me_img #header-top + .advertisement#header_global_ad#hellobox > .mylist#hengfu > #jiukan#hengfu1.banner#hengfu2.banner #hfad*&#hj-right-aside[style="float: right;"] +#imgad#imgs5[height="60px"]#index_aside_ad&"#index_banner[src*=".meituan.net"]#index_content_ad + +newduba.cn #jq_youxi +#js-ad-map  #js-ysjpp#js_ads_banner_top#js_ads_banner_top_slide + houdask.com #kfivtwin #kfpopupDiv#ks > .DaKuang#ldgindexbuttom #leftCouple #leftCouple1 #leftCouplet#leftFloat + #rightFloat#leftFloat1 + #rightFloat1NJ#leftFloat[style="z-index: 999; position: fixed; left: 0px; bottom: 0px;"] #left_couple#left_couplet.close_discor#left_down_float_ad#left_float + #right_floatÁ #left_float.close_discor#left_up_float_ad#lefttd.lefttd #ljPz  #lovexin1 +#lovexin11 +#lovexin12 #lovexin121 +#lovexin13 +#lovexin14  #lovexin2 #lt-ad-radioKG#magneturlpost + .movie + .movie[style="padding:12px; margin-top:15px"]$ #mainbody:nth-child(5) > .mylist#menu + #topBox#menu + script + #topBox#miaov_float_layer #micast_ads #modalgg#movieInfoRight#movietp > .movietp#mui-player + #player_pic +#mv_ad_dom#mv_float_layer +#my-adsFPR#nav + .slider-spons#nav-home > .coment-bottom#navcontainer + .moneyarea#netease_mail_footer#news_top_advert  #olfullad#overture_ads_bottom_td#overture_ads_top_td'##photo--content-title-bottomx--foot&"#piao_div_0[style*="width:140px;"]&"#piao_div_1[style*="width:140px;"]&"#piao_div_2[style*="width:140px;"]&"#piao_div_3[style*="width:140px;"]&"#piao_div_4[style*="width:140px;"]&"#piao_div_5[style*="width:140px;"]95#play[style="padding: 10px;"] > a[href*=".xmcdn.com"]#player-bottom-ads#playerAdvLayer##player_banner[style*="fixed;"]-)#player_pause > .tip + a[target="_blank"]95#player_pause[style^="position"] > a[target="_blank"]##playlistbtn > a[href$=".html"]#popadv_popmask#popadv_popmenu #popup.t #pp-modal-id)%#projectpostbody > a[target="_blank"]-)#propagandaInsert[style="display: flex;"]  #ptcmsad1  #qinav_a1 #qj960a #qj960b +#reportPop"#results.content-main > .eLeft #rightCouple#rightCouple + #leftFloat #rightCouple1#rightCouple1 + #leftFloat1 #rightCoupletª +#rightCouplet + #leftFloat #right_couple#right_couple + #left_float#right_couplet.close_discor#right_down_float_ad#right_float.close_discor#right_up_float_ad#rightd.rightd#rip[href*=".taobao.com"] +#rm-float3#sc-superman-ad"#search > a[href="/top1.html"]#sitefocus.focus#snActive-wrap#sponsorAdDiv2&"#swtleft[style^="position:fixed;"]#syad.visible-xs +#syad1 +#syad2 +#syad3 +#syad4 +#syad5 +#syad6%!#table1[width="468"][height="50"]%!#table1[width="794"][height="60"]%!#table1[width="812"][height="50"]%!#table1[width="812"][height="60"] #tanx-con-1#tanx-fold-main  #taotaole#td_tpc > .ads #textggs  #timedfuo#top-gg-container  #topNavad  #top_ads0'##top_box > a[onclick^="javascript"]  #toperAd2 #toptd.toptd#tripadvisor-ad#undertd.undertd #videoADPIC #widget-quan#wp > .V-videoFloat#wrapper > .topad #xinnxi #xqad +#xqad1 +#xqad2 +#xqad3 .AD_TAC_BOX.Flagrow-Ads-under-header.MacPlayer > #play-pause +.RMss1.Text-Advertising  .TqAdShow .Zi_ad_a_SB._300x250.item +._cggp ._ggs +.a_2mu .a_cn .a_fl .a_fr… +T + hawkaoe.net + +52pojie.cn + chysg.com + yswc1.xyz + +125.la.a_mu  .a_oscar1 .a_pb + +05wang.com.a_pr* + fishmsg.net + +briian.com.a_pt  .a_ssk_cn +.a_sxc .a_xsfl  .aab-post +.aasd-text .aasdwa.ad-above-footer.ad-below-adjacent-post.ad-below-header-menu.ad-below-post-title.ad-below-related-post .ad-block-cn.ad-couplet-common .ad-left-down +.ad-pc.ad-right-down .ad-right-top.ad-shine-panel .ad-site .ad.mi_btcon +.ad250left .ad250right +.ad300left +.ad336left +.ad990x130  .ad990x90*&.adContainer[style="margin-top: -5px"] .adHF +.adHF3 +.adHF6.ad_content_mask.ad_couplebanner.ad_footerbanner.ad_headerbanner +.ad_hf +.ad_pc .ad_right_1 .ad_right_2 +.ad_thread.adbox-bg.adscounter .add-gg .addddddwarp +.adlistcss .adpc +.adpcc +.adppc.ads > #video_playr_sider$ .ads > a > img[src*=".sinaimg."].ads-after-content.ads-after-header .ads-all.ads-before-content .ads100 .ads200.ads_all > .ads_w .ads_desktop .ads_mobile .ads_plugin.ads_topBanner¶  .adsense160 .adsense200 .adsoho +.adv-6park .adv-couplets .adv-g1 .advInfoElem .advert-short.advertising_lightbox +.afc_popup .aiboav-ads)%.alert_windows > .q-card__actions > a.anniversary-wrap-2018 .apd-footer  .apd-home +.apd-right.app-down-fix.body-fix.appdownload_ad + .hider.*.archive > a[ontouchstart="this.click();"].area > .tuiguang +.artad.article-pop-up-ad.artplayer-plugin-ads +.asb-index  .asb-post +.assort-ad  .aub-post .ayx[style="display:block;"])%.ayx[style^="position: fixed;bottom"]#.b300 > .h100 > a[href^="http"] .baiduad.banner-ad-section.banner-cctv-A2.banner-cctv-Topping .bdyp-sygg-ul.before_playing_cctv.yc +.below_ads".bg > img[src*=".meituan.net"] .bhgg +.bjxhf  .bl > .gg .bm.a_c +.bn728-100  .bn728-93.book > #btmBox.bottomSponsor.bottom_fixed > #imgs_link4.bottom_mengcheng_ad_wrap.bottomads + .leftd.bottomd > .closebox2($.broadcastMe[style="width: 1200px;"].*.btn.btn-success.text-white[href*=".com:"] .bus_adsbox  .cari-ads +.cfa_popup .chat-ad.chat-right-ad.chat-sysbroadcast-ad .chat-top-ad!.clearfix.col5.row > #listBox$ .col-md-10 > .banner-table-block .col6 > a[onclick*="横幅"] +.comiis_ad .comiis_adboxÈ .comiis_guanggao.comiis_guanggao_tit .common-topad +.common_ad + weibo.com.con_adHD.con_search + #carousel-example-generic[style^="max-width: 1170px;"].con_section > .da.conch-ads-box+'.container + .container > .warp > .cate.container > #dhshtml.container > .index-ad.container > .slide-baidu'#.container > .t-img-box:first-child'#.container > a[href^="http"] > .ads.containeradvertising.content > #dhxhtml.content > a > .topline.content-video > .ads .content-video > .ads-player.content_ad_300 +.corner-gg.couplet_9cb0d +.coupletad .ctm_ad.cui-pt-item[data-qhb].d_banner_inner.dabc > .ng-star-inserted .davwheat-ad.ddd.ng-star-inserted .dipiao.dplayer > .tips.duilian > .leftd +.ec-ad .edtj  .eis_muad .error > #qqs.event_fullscreen_gg_modal".f-sign-cont[data-dysign-adid].fed-part-case > .ads-img.feed-item[data-ad] .ff-ads.flex-row > #propagandaLeft .flex-row > #propagandaRight.float-adv-left-bottom.float-adv-left-top.float-adv-right-bottom.float-adv-right-top .floatAd.float_bot_right .fnwehjnc12 .frAd.frontpageAdvM.full.banners12.g1_wz > .g1_tp .getads .gg-box .gg-one .gg1000 +.gg430 .gg_300 .gg_728 .gg_950 .gg_960 +.gg_canvas°  .gg_full +.gg_pc +.gg_tp .ggad + 95504.net.ggbox.gggpost-above .ggpost-below +.ggtop.ggw.global_video_bottom_dbtc.google-ad2_fixed.google_adsense2.gotoclick[adv_id] .gpost-below .gpt_ads_box.gpt_ads_title .guanggaoBox .guruin-ads.hao123-unionad-pic.hbp > .wp_banner.headxx11xiaoapp.heg > .div-list$ .his-sign-cont[data-dysign-adid] .hlol_ad.homepage > .wp-none1 .hongbao_hd.horizontal-banner +.hzxld .iHead960x90 +.ibtad.imagegg-container.imgBox > div[class^="ad"].index-top-aassd .index-top-ad .index-top-gg .index-wz-ad.index_alert_gg  .indexad2  .indexad3  .indexad4 .indexnews-ad3/.infomation + #notice_container > .event-notice.inner-advertise.itopbar + .container.jav-nav + .bcpic.jav-nav + .bcpic2 .jingqun_tu.jq_infoflow_ad_wrap.jq_mediav_ad_report.jqrp_infoflow_ad.js-cui-pt-item[data-qhb].jsv > .mobile-adv)%.jsv-layer > .image > a[href^="http"] .ka-flo .kjk-flo +.ksads.kuandu > .bottommob .leftadv.leftd + .rightd.leo-container .ssr1&".link > .image[src*=".qhimg.com/"]C?.listok > a > img[src*=".alicdn.com"][width="980"][height="80"]3/.listok > a > img[style^="width:980px;height:"].loc-home-top-adv-new¼  .lol-ad .lol_ad .lyzm-prevent.m1938-container + daquandy.com.m_acmsd$ .m_hot_rec_box_base[id^="right"] +.main-ad-l +.main-ad-r.main-ad-r + .topad.main-container > #dhxhtml.main-content > .a2b395.main[style="border:#7D8C8E solid 1px;height: 23px;"].mainbg > #s11navtop84.maomi-content > #main-container > .row.mob40 + .row$ .maomi-content > .section-banner>:.maomi-content > .section-menu > .row > a[target="_blank"]'#.maomi-content > a[target="_blank"] +.mbads$ .mediav-newsfeed-listitem-type-1.mediavAd_report.mediavfeed-newsitem .menutab_ad .ml_ad1 .ml_ad3 .ml_ad5 .mlad .mobadsq.mod + #bottomBox.module-adslist.module-adslists#.module-tglist > .tg-normal-box.module-ttlist.tt_w-2.module-yylist.tg_w.my-cat.my-cat-header.mylist + #topthree.*.mylist > a > img[width^="9"][height="80"].myui-extra + .noticetext +.nQIAj .nQIAj1 .nav-ads".nav-area + .wrapper .tuiguang/+.newstyle > .container > a[target="_blank"]*&.newstyle > a > img[src*="img.com/i/"]>:.no-mobile[style="position: fixed;right:0px;bottom: 0px;"]:6.opt > a[target="_blank"] > img[src*=".360buyimg.com"] .orbui-post .orbui-site.overBanner.dowloadBtn.page > .wp-none1 .page-wwads  .pagead_3.pagecon + .ad1#.partialViewSlider-outerwrapper .pasuAD  .pause-ad .pc-ads + daquandy.com .pc_acmsd.pccb > .ng-star-inserted .pcd_ad .pcgg.pggb > .ng-star-inserted.pggc > .ng-star-inserted.pggd > .ng-star-inserted.pggf > .ng-star-insertedþ$ .photo-two > a[onclick^="_czc."].player + .sponsor.player-bottom-gg*&.player-box > [style*="flex; justify"].*.player-box-main > .rm-one > a[start-time].*.player-box > .rm-two > a[target="_blank"]0,.player-info > .recommend-two.recommend-list.player-news > .news-list)%.player-rm > a[href*="/ad.html?url="].player-rm-float.player-tt-rm.rm-list.player-tt-rmm .player_ggw.playtop.col-pd +.playtopad .plc > .a_p.pop[style="right: 10px;"]!.popup + .shortcuts-m-overlay.postmessage > #googleFirst .postmessage > #googleSecond.privilege-promote +.pro-molnk .pro1-molnk +.prom-olnk?;.promlnk[style="position:relative;width:100%;height:100%;"] .propa_bottom.pure-g[onclick*="float"]+'.push-bottom-container[clickmode="cpt"]!.push-slider[clickmode="cpt"].qpdb + a[href] +.qzdhf .qzhfaaa +.readmidad.right > .content > .ads.room-ad-bottom .room-ad-top.room-ad-video-down .rotate-adv.row > .gao-bg.rtcenter_game.samBannerUnit .scupioadslot .self-gg.slider-ad[adid].space-y-6 > .advertising.spon-img[src*=".alicdn."].spot_nav_under_ad .static-a2d@<.stui-vodlist__thumb.lazyload[href^="http"][target="_blank"]XT.stui-vodlist__thumb.lazyload[href^="http"][target="_blank"] + .stui-vodlist__detail.svg-icon + #player_pause .sxAdBoxGC.t5[style="border:1px solid #a6cbe7;"] + .t[style="margin-top:8px"].tab-content + .col-pd .textadlist#.theme_custom_slidebox-ad-below .title > .gg.tmall_ad_container .tmall_bg15.tooltip > #tp'#.top > a > .topline[src^="/photo/"]pl.top > div[style="max-width: 1235px; width: 100%; text-align:center; margin-left: auto; margin-right: auto"] .top-gg.top-meta > .moj-contentÅ  .top-read-ad .topSponsor .top_ad_ban.top_box > #foot.top_box > #indextop.top_box > #news+'.top_box > li > a[href^="/js/app.htm?"] .top_func_ad.topbanner + .nav + .banner .toy52_outer.toy52apparel_ALL +.trad3 +.twavt-ads-).txp_ad[data-role="txpad-interact-pause"] .txtguanggao.uk-width-1-1.adbox.vg-overlay-pauseC?.video-holder > a[target="_blank"] > img[src*=".360buyimg.com"]73.video-info-aux + div[style^="border-radius: 5px;"].video-item-ads .video-player > .gg-bg-cover.video_details > .banner!.w-full > .banner.el-carousel.w100b > .m_adv*&.wbalist_thumb[style*="/upload/site/"].wemziguanggao .wf_ad_block.widget-qianhuiji.widget-topadding .widget-xlxba .widget_adbox" + +hrtsea.com.widget_ui_ads.widget_ui_asb.widget_ui_aub.widget_ui_textasb.widget_ui_textaubD@.wordurl[style=" width: 42%; float:left; text-align: center;"] .wp > .ad-box .wp.a2_h .wp.a_f .wp.a_h9 + steamcn.com + aircn.org +x3cn.com.wp.a_t.wp_headline + .ad1.wpcom_ad_wrap.wrap > #btmBox&".wrap.mt10.clearfix > .box.top_box($.wrapper > a[target="_blank"] > .ads.wumii-bottom-popup.wumii-widget-ad +.wwads  .wwads-cn .wzad.xstui-content__acc +.xzad-list  .xzbox-gh&".y.mtw[style="padding: 0px 10px;"].ya-normal-box-done  .yueduad1.zhanzhang_tuijian_btn.zhedangceng_ggg.zone_wap_banner2A[href*=".com/?Agent="]"A[href="http://t.cn/A6hQCVsv"]O + +taobao.com + tmall.com,A[href="https://s.click.taobao.com/cTAwFvu"]Ã&"A[href^="/e/public/ClickAd?adid="]($[style*="mi-img.com"][style*="calc"]N + +sinaimg.cn:a > img[src*=".sinaimg."][src$=".gif"][style*="width:960"]= + +alicdn.com)a > img[width="960"][src*=".alicdn.com/"]: + +sinaimg.cn&a > img[width="960"][src*=".sinaimg."]: + +sinaimg.cn&a > img[width="980"][src*=".sinaimg."]a#wrapper_left_bga#wrapper_left_bg\ lllla#wrapper_right_bga.hengfu > img.hengfua[clickmode="ad"]a[href$=".cc:8443"]a[href$=".xyz:8443"]a[href*=".bright.cn/?utm_"]a[href*=".com/?Extend="]&"a[href*=".com/Register.aspx?aid="] a[href*=".com/Register/?a="]/ +allthingsopen.orga[href*=".com?aff="]a[href*=".com?intr="]a[href*=".gaimin.gg/cn"]"a[href*=".taobao.com"] > .top10,a[href*=".taobao.com"] > img[src*=".tucao."]R + umeng.com?a[href*=".umeng.com"]:not([href="http://www.umeng.com/"]) > img,(a[href*=".xyz:"] > img[src*=".qlogo.cn"]a[href*="/?INTR="]a[href*="/?Intr="]&"a[href*="/?aff="][target="_blank"]a[href*="/?intr="]40a[href*="/PageRegister?Agent="][target="_blank"]a[href*="/Register?a="]a[href*="/ads/adscenter."])%a[href*="/auth/register?code="] > img.*a[href*="/entry/register"][href*="i_code"]'#a[href*="/register/?i_code="] > img+'a[href*="://2"] > img[src*=".qlogo.cn"]"a[href*="://4"][href*="/vod."]($a[href*=":10443/"] > img[src$="gif"]a[href*=":7888/?register="]a[href*=":8701/?register="]/+a[href*="?channelCode="] > img[src*=".xyz"]/+a[href*="?invite_code="] > img[src*=".com"]62a[href*="?register="] > img[src*=".douyinpic.com"]-)a[href*="?register="] > img[width="100%"]2.a[href*="bjty"] > img[src*="imgsrc.baidu.com"]0,a[href*="kdocs.cn"] > img[src*=".ax1x.com/"]+'a[href*="kdocs.cn"] > img[src*="sstv."]$ a[href*="xchina.click/prepare."]=9a[href="/e/member/register/index.php?tobind=0&groupid=1"]a[href="/gghtml/tyc.html"]a[href="/goto.php?url=hth"]a[href="/ht.html"]51A[href="javascript:;"][onclick^="lksdjfrefruise"] a[href="javascript:GoGd();"] a[href="javascript:GoTp();"]'#a[href="javascript:window.GoTp();"]/+a[href^="/ad/"] > img[id][src*="hdslb.com"]!a[href^="/hy-"][ontouchstart]#a[href^="/template/1/html/ad/"]A=a[href^="http"] > img[height="60px"][src*="imgsrc.baidu.com"]D@a[href^="http"] > img[src*="pic.rmb.bdstatic.com/"][src$=".gif"] a[href^="http://ad.moemoe."]a[href^="javascript:GoDb"]a[href^="javascript:gl012"]%!a[href^="javascript:gl012"] + imgÈa[id][href*="/?aff="]a[id][href*="/?register="]a[href="/iwagbwfiwehaeyh"]#a[onclick$="'clicked', 'ad');"]2.a[onclick*="open"] > img[src*=".dailygn.com/"]a[onclick^="_czc."] > .adda[onclick^="_czc."] > .ads3/a[onclick^="_czc.push(['_trackEvent', '广告"]:6a[onclick^="javascript:pc_"] > img[src*=".alicdn.com"]SOa[target="_bank"] > img[src*=".360buyimg.com"][style="width:100%;height:auto;"]!a[target="_blank"] > img.kingB>a[target="_blank"] > img[src*=".bitautoimg.com/"][src$=".gif"]QMa[target="_blank"] > img[src*=".ikstatic.cn"][style="width:100%;height:100%"]; +mgtv.com)a[target="_blank"] > img[src*="hitv.com"]NJa[target="_blank"][href^="https://js."][href$=".com/download/4122_0.html"]/+a[target="_blank"][onclick*="广告点击"] body .has-ad`\body.desktop[style^="-"] span[class*=" "] > a[href^="http"][rel="nofollow"][target="_blank"]body[onload*="u()"] > #x\Xcenter > a[target="_blank"] > img[style="padding- bottom:5px;width:960px;height:120px;"][Wcenter > a[target="_blank"] > img[style="padding- bottom:5px;width:960px;height:60px;"]  div#ad_id  div#xinxidiv[bannerlist]& + +ix8.ladiv[class^="ADTOPLB_"]=9div[class^="is_"] > a > img[referrerpolicy="no-referrer"]@ a[href="/index/voddetail.html?id=1"]!div[class^="ps_"][value="20"] div[id^="a-loading-"] > spandiv[id^="ad_thread"]div[id^="adv-"].adv/+div[id^="em"] > a[onclick^="em"][max-width]3/div[id^="photo-header-title-content-text-dall"]*&div[onclick*=".open"][onclick*="leyu"]($div[onclick*="/ky"][onclick*="open"]div[onclick*="?i_code="]73div[role="listitem"] > div > div > .bannerliststyleKGdiv[style=" max-width:990px; margin:0 auto;"] > a > img[height="120px"]JFdiv[style=" max-width:990px; margin:0 auto;"] > a > img[height="60px"]=9div[style="margin:10px auto;width: 930px;height: 250px;"]JFdiv[style="position: fixed;top: 60px;right:0;z-index:999;width:250px"]2.div[style^="position"][onclick^="window.open"] dl#listwoBox img#GGADIMG img#adv1'#A[onclick^="diensfeifwejwdsfwemio"];7img[data-link][data-src*="/u/"]:not([data-link*="/i/"])RNimg[data-src*=".alicdn.com/img/ibank/"][src="/static/images/loadingerror.gif"] img[onclick*=".qq.com/doc/"] img[onclick*="/statics/js/"]73img[onclick="window.open(this.url)"][src*="qq.com"]62img[onclick^="window.open"][src*=".360buyimg.com"]1-img[onclick^="window.open"][src*="pc.qq.com"]XTimg[src$=".gif"][style="width:100%;max-width: 960px;height:45px;margin-bottom:2px;"]img[src$="/img/tianbo.gif"]=9img[src*=".c-ctrip.com"][style="width:100%;height:70px;"]84img[src*=".jd.com"][style="width:100%;height:70px;"]=9img[src*=".meituan.net"][style="width:100%;height:70px;"]img[src*=".meiyida.tv/"]IMG[onclick*="bucd.lol"]2.img[src*=".qpic.cn"][width="980"][height="80"];7img[src*=".sinaimg."][style="width:1025px;height:80px"];7img[src*=".sinaimg."][style="width:150px;height:300px"]script + #coupletBoxû + ÿï08@R107.167.16.*.gif + ÿï08@R107.167.22.*.gif +!ÿï08@R121.204.246.*.gif +ÿï08@R 154.7.80.158^ +ÿï08@R194.59.220.161^ + ÿï08@R205.209.138.102^ +ÿï08@R23.231.151.252^ +ÿï08@R38.33.15.*.gif +(ÿï08@Rhash.trafficmanager.net^ +,ÿï08@R51tongji.trafficmanager.net^ +'ÿï08@Rtrafficmanager.net/o.js +ÿï08@R67.21.92.*.gif +ÿï08@R .z.dkt-ib.com +(ÿï08@Rcnzz.trafficmanager.net^ +ÿï08@R cupfox.app^ +ÿï08@Rmq54k4yxpt.com^ +ÿï08@R gsweum.icu^ +ÿï08@Rl5pzbzfnjm.com^ +ÿï08@Rinfucierg.com^ +ÿï08@R nebzrn.icu^script + #rbbox +.adpvc +.adpwc .ec-tutu.pop.pop-bottomscript + .header_rmb84script + a[href] > img[src*="lbsugc.cdn.bcebos.com"]ZVscript + a[target="_bank"] > img[src*=".c-ctrip.com"][style="width:100%;height:auto;"]"script + div[id^="a-loading-"]2.script[src="/js/sy2.js"] + div[align="center"]span[title="neteasefooter"]style + .a-loading&".horizontal-banner + .post-contentstyle + .need_grid_img($.player-rm > a[href*=".umtrack.com"]style + .vdgdo .tg-m.tg-site.tg-pc.tg-site.single-ad-banner  .ads.flex .hidden-text + .ad-container.notice-ad-wrapper!.notice-ad-wrapper + .app-abk-).notice-ad-wrapper + .app-abk + .app-text +.yt-ad-comHD.content > .small-icon-container > a.small-icon-div[target="_blank"]RN.content > .module > .small-icon-container > a.small-icon-div[target="_blank"].video-ad-item .ceo_ads .yalayi_box#kp-hid-gb.uk-alert#side_promo.bc_dp#fucku.col-md-8#ad-float.kytyMIbody[ontouchstart] > .wrap > div[id^="content_"][style="display: block;"]EAbody[ontouchstart] > div[id^="content_"][style="display: block;"]3/.relative > div > img[sizes="100vh"][width="0"]NJa[href^="/archives/"] > .post-card > .blog-background[style*="gif;base64"]"#banner_links.banner-container/+a[href="https://t.me/bokaiyunwujiankaiyun"]LHtable[style="border:#7D8C8E solid 1px;height: 30px;text-align: center;"]%!td[id^="td_"] > a[href^="/htmm/"]a[href*="/122.51.121.126:"] a[href*="/137.220.194.105:"]Á +ÿï08@Rktfmk4utug.com^ + ÿï08@Rlettucex977.com^ +ÿï08@Rl235cj20z.com^ +ÿï08@Rce71jubc2.com^ +ÿï08@R dgfhjmd.com^ +ÿï08@R gkvrdf.com^ +ÿï08@R gjkbyt.com^ +ÿï08@R apajku.icu^ + ÿï08@Rafrhwdumolf.com^ +ÿï08@Rpwvt.cn^ +ÿï08@R7u4b8l1zt.com^ +ÿï08@R pbfefd.icu^ +ÿï08@Rcherrya04.top^ +ÿï08@R dunkhj.top^ +ÿï08@Rqduttornm.com^ +ÿï08@Redxymyepu.com^ +ÿï08@R hyhnas.com^ +ÿï08@Rstmnfilur.com^ +ÿï08@Rbcugzudit.com^ +ÿï08@Rqfirgakpv.com^ +ÿï08@Rwyjqa6pbuc.com^ + ÿï08@Reiphirnutdd.com^ +ÿï08@Rqidw.cn^ +ÿï08@R jyzmtl.icu^ +ÿï08@Rtcwouq1gmw.com^ +ÿï08@Rg8hi6r3odr.com^ +ÿï08@R cmuryk.icu^ +ÿï08@R +dykyvy.cn^ +ÿï08@R fvlqjw.top^ +ÿï08@Rybrvrws2p9.com^ +ÿï08@Rtnvkb6bcnf.com^ +ÿï08@R6jyi7mzae.com^ +ÿï08@Rfc09u3zfm.com^ +ÿï08@Reilgrairyi.com^ +ÿï08@R dpjbpj.top^ +ÿï08@Rodz12g5ag.com^ +ÿï08@Rcduy.cn^ +ÿï08@R ewywma.icu^ +ÿï08@R lidrhb.icu^ +ÿï08@Rdpsusqs20.com^ +ÿï08@Rphx9cqla2.com^ +!ÿï08@Riqkrungrikhu.com^ +ÿï08@R 6109.org^ +ÿï08@Rueuwvgco19.com^ +ÿï08@Ronxuegm38t.com^ +ÿï08@R gtcbai.icu^ +!ÿï08@Ryui06140shga.com^ +ÿï08@Rteue.cn^ +ÿï08@R0x7iufg8hy.com^ +ÿï08@R +mikka.app^ +ÿï08@R bqdhrr.top^ +ÿï08@Reinothepz.com^ +ÿï08@Rdtqs84i8bq.com^ +ÿï08@Rw0yg6igaoz.com^ +!ÿï08@Ryui06131shga.com^ + ÿï08@Ruahivaqettl.com^ +ÿï08@Rojxr.cn^ +ÿï08@Re4jdb7k8j.com^ +!ÿï08@Ryui06130shga.com^ +ÿï08@Rbborxjkan.com^ +ÿï08@R aqgjqy.icu^ +ÿï08@Rdlig.cn^ +ÿï08@Rmunkrudhhv.com^ +ÿï08@R1lqw75ogo.com^à +ÿï08@R haole1xx.top^ +ÿï08@Rxldyxnzo6.com^ +ÿï08@Rn0usvkb1x.com^ +ÿï08@R zrbnte.top^ +ÿï08@Rc21x8nmdak.com^ +ÿï08@Rhvmdu6macy.com^ +!ÿï08@Ryui06120shga.com^ +ÿï08@R +vxrdwo.cn^ +ÿï08@R cakoeg.icu^ +ÿï08@Ry9ppy0icw1.com^ +ÿï08@Rvbjm.cn^ +ÿï08@Rbmelkellv.com^ +ÿï08@Rriver49xx.org^ +ÿï08@R xsvyvr.top^ +ÿï08@Rfo0qofhtaw.com^ +ÿï08@Rt78obxl4h1.com^ +!ÿï08@Ryui06121shga.com^ + ÿï08@Rvwuudahnarh.com^ +!ÿï08@Rgigptruetlop.com^ +ÿï08@Rjikklfexh.com^ +ÿï08@R nrephihe.com^ +ÿï08@R4rcajmf0m.com^ +ÿï08@R exowsw.icu^ +ÿï08@Rocmr.cn^ +ÿï08@Rs7fpxh6fz.com^ +ÿï08@R truell55.top^ +ÿï08@R zttebe.top^ +ÿï08@Rnf2r18mdu.com^ +ÿï08@R24y0c8hek.com^ +ÿï08@Rfidk.cn^ +!ÿï08@Ryui06111shga.com^ +ÿï08@Ryoig.cn^ +!ÿï08@Ridmiohtlitir.com^ +ÿï08@R yhsbgm.icu^ +ÿï08@R5azvpjx8xj.com^ +ÿï08@R7o2l520r0a.com^ +ÿï08@Rrevk.cn^ +!ÿï08@Rraspberry55o.com^ +ÿï08@R4e9ynqm47d.com^ +ÿï08@Rcolkarneh.com^ +ÿï08@R xftsjv.top^ +ÿï08@Rvvd68pv6lj.com^ +ÿï08@Rkwhcgsqn2f.com^ +ÿï08@R80ms6831o.com^ +ÿï08@Rsghcj5pnb.com^ +ÿï08@R vgnyli.top^ +ÿï08@Ropwc.cn^ + ÿï08@Ruwtewvalgil.com^ +ÿï08@Rfygel9rtc.com^ +ÿï08@R aewgwu.icu^ +"ÿï08@Rstrawberryy14.top^ +ÿï08@Rnm6c33x8a.com^ +ÿï08@R0b4qu3nxa.com^ + ÿï08@Rychahlollfb.com^ +ÿï08@Rqhanphietd.com^ +ÿï08@R fgsfghn.com^ +ÿï08@Ryto3kavwud.com^ +ÿï08@Rbmpdm3z282.com^ +ÿï08@R cbaokk.icu^ +ÿï08@Rgbsmw33tfi.com^ +ÿï08@Rw4sn20zpvz.com^ + ÿï08@Rutihriethlv.com^ +ÿï08@Rbj5iodzgyi.com^ +ÿï08@R thljnv.top^Æ +ÿï08@Rxupd.cn^ +!ÿï08@Rlfhthokieryf.com^ +ÿï08@R papaw818.com^ +ÿï08@Rkxri.cn^ +ÿï08@R web3cdn.cn^ +ÿï08@Rafno.cn^ +ÿï08@Rnmg02g56z.com^ +ÿï08@R7dgk5h1lk.com^ +ÿï08@Rnl2v1uw9e.com^ +ÿï08@R eletys.icu^ +ÿï08@Rrir8h6qxk.com^ +ÿï08@R rbjpti.top^ +ÿï08@Rddjs5wde2.com^ +ÿï08@Ruggrianvo.com^ +ÿï08@Rwpeo.cn^ +ÿï08@Rdtauda3232.top^ +ÿï08@Ricjl.cn^ +ÿï08@R1qfxm8hgqd.com^ +ÿï08@R yiybmi.icu^ +ÿï08@Ruroz44gxhx.com^ + ÿï08@Rhgo06060uyi.com^ +ÿï08@Ruxfa.cn^ + ÿï08@Rgeqetreadyf.com^ +ÿï08@Rjt01151knd.com^ +ÿï08@R tcdvvv.top^ +ÿï08@Rrbqv91egxy.com^ +ÿï08@Rmzarqhufj4.com^ + ÿï08@Rhgo06061uyi.com^ +"ÿï08@Rgsdcbsjh55xsc.top^ +!ÿï08@Rzymakzaeddla.com^ +ÿï08@Ruteeo5018.com^ +ÿï08@Ryki9xpcuc.com^ + ÿï08@Rhgo06050uyi.com^ +ÿï08@R conyz.cn^ +ÿï08@R afcgcq.icu^ + ÿï08@Rqvzabbhovve.com^ +ÿï08@Rtxre.cn^ +ÿï08@R rdbgxi.top^ +ÿï08@Rn26iiffw9.com^ + ÿï08@Rqdwmdikzudq.com^ +ÿï08@Rdef2g1kz2t.top^ +ÿï08@Rtpuo.cn^ +ÿï08@Rruqneakyp.com^ +ÿï08@R +yjnlk.com^ +ÿï08@Rtitroikan.com^ +ÿï08@Rwj9uod3838.com^ +ÿï08@R5d7k30pv1u.com^ +ÿï08@R cpglqg.icu^ +ÿï08@R pevmdv.top^ +ÿï08@R19o8hzj117.com^ + ÿï08@Rhgo06041uyi.com^ +ÿï08@R2u1h56851n.top^ +ÿï08@Raubrommaiv.com^ +ÿï08@R xxsmad7.com^ +ÿï08@Rpjdhguh14.com^ +ÿï08@Rc7o9xp4e4.com^ +ÿï08@Rgeqzt6tkg.top^ +!ÿï08@Ryeandriethzm.com^ +ÿï08@Rtfio.cn^ +ÿï08@R dypozx.icu^ +ÿï08@R wmktew.icu^ +ÿï08@R nftxfd.top^"a[href="http://jyvip2041.net"]a[href="http://yun886.com"]Î +ÿï08@Ru5eguuk2n.com^ +ÿï08@Rok5xe6r7o.top^ +ÿï08@Rlj0hx1sboy.com^ +ÿï08@Rnplvdodbja.com^ +ÿï08@R yjoyse.icu^ +ÿï08@Rtvce.cn^ +ÿï08@R6zmcb1x9fn.top^ +ÿï08@Rfunqraedp.com^ +ÿï08@R lgndhq.top^ +ÿï08@R7hgw85qugx.com^ +ÿï08@Rhfttufu4jo.top^ +ÿï08@Rrcruulnot.com^ +ÿï08@Rlxsz0w0aw.com^ +ÿï08@Rdejcxwlv8.com^ +ÿï08@Rfk3nf1xeh.top^ +ÿï08@R atsgiu.icu^ +ÿï08@R nlzyp.cn^ +ÿï08@Rcedhoinle.com^ +ÿï08@Rxpxi.cn^ +ÿï08@R naljjd.top^ +ÿï08@Rdilmcrybf.com^ +ÿï08@R8u6stvyww.top^ +ÿï08@Rmhaw.cn^ + ÿï08@R7f583jylmjs.top^ +!ÿï08@Rfghelmorotvn.com^ +ÿï08@R7x9i88rvn.com^ + ÿï08@Rjkn05310loi.com^ + ÿï08@Rjkn05311loi.com^ +ÿï08@Rmc5e9p8qx.com^ +ÿï08@R yeuviq.icu^ +ÿï08@Rriht.cn^ +ÿï08@Ru408n6z4f.top^ +ÿï08@Rmwgehrudb.com^ +"ÿï08@Rcockersbehint.com^ +!ÿï08@Raldusmiskals.com^ +ÿï08@R lbjupq.top^ +ÿï08@Rw9uwz5966.com^ +ÿï08@R0a0atz2sh.top^ + ÿï08@Ryuelmodqhrw.com^ +ÿï08@Ryimc.cn^ +ÿï08@Rf9gv87zoq2.com^ +ÿï08@R aoydwg.icu^ +ÿï08@R3exfu7vaxu.com^ + ÿï08@Rjkn05300loi.com^ +ÿï08@Rch17axocue.top^ +ÿï08@Rdwbaazotho.com^ +ÿï08@Roxjb.cn^ +ÿï08@Rvgfj.cn^ +ÿï08@Rhbdruktekf.com^ +ÿï08@R jcdard.top^ +ÿï08@Rgtuy6el1hd.com^ +ÿï08@Ru7wnylbb28.top^ + ÿï08@Rtzethaungot.com^ +ÿï08@Rrajf.cn^ + ÿï08@Rbgf05290lko.com^ +ÿï08@R15ftgllk1.com^ +ÿï08@Rtw0ihhb04.com^ +ÿï08@R clcimo.icu^ +ÿï08@R9vviyje1s.top^ +ÿï08@Rdepzdhamot.com^ +ÿï08@R hdbltq.top^ +ÿï08@Rirlj.cn^ +ÿï08@Rpknh27a7j.com^ + ÿï08@Rbgf05291lko.com^­ +ÿï08@R qiu4592.xyz^ +ÿï08@Riaxmmw9fbx.com^ + ÿï08@Rbgf05280lko.com^ +ÿï08@Rn72bn5s7uu.top^ +ÿï08@R wigqae.icu^ +ÿï08@Rlvsm.cn^ +ÿï08@Rrpvqhicca.com^ +ÿï08@Rq5sn40kmp2.com^ +ÿï08@R43eksc8w59.com^ +ÿï08@R jitdlj.icu^ +ÿï08@R fevrvd.top^ +ÿï08@R6c641lgikp.top^ +ÿï08@Rvrow.cn^ + ÿï08@Rvgnhigankih.com^ +ÿï08@R3kfvgobkw.com^ +ÿï08@Rwy12cewh4.com^ + ÿï08@Rbgf05270lko.com^ +ÿï08@R21cfhm0s1.top^ +ÿï08@R ysavom.icu^ +ÿï08@Rosjt.cn^ +ÿï08@R hftxbq.top^ +ÿï08@Retlz1mt67.com^ +ÿï08@Repmumb34x.top^ +ÿï08@R88lmfff666.com^ + ÿï08@Rbgf05271lko.com^ +!ÿï08@Rlqftuugziloa.com^ +ÿï08@Rqdheqraln.com^ +ÿï08@R gkxqt.cn^ +ÿï08@Rm9s3h265lq.com^ +ÿï08@R apeacc.icu^ +ÿï08@Rdozu5h9yql.com^ +ÿï08@R fghggng.com^ +ÿï08@R fznidd.top^ +ÿï08@Rvjml.cn^ +ÿï08@Rjcquhetqcp.com^ + ÿï08@Rbgf05261lko.com^ +ÿï08@R +zgisp.net^ +ÿï08@Ruenqeotul.com^ +ÿï08@Rmmle.cn^ +ÿï08@R2lzg9mqzw.com^ +ÿï08@R uziisk.icu^ +ÿï08@Rm8zgls6zt.com^ +ÿï08@R aitongji.vip^ +ÿï08@Rlcvl.cn^ +ÿï08@R mmkkkkk.com^ +ÿï08@R dalofq.top^ +ÿï08@Ry1n1n3e0v.com^ + ÿï08@R3ff6kjylmjs.top^ +ÿï08@R weitietl.com^ + ÿï08@Rbgf05251lko.com^ +ÿï08@R iggdf88.com^ +ÿï08@Rsiqc.cn^ +ÿï08@R7awf4fi9k7.com^ +ÿï08@Rlkdqrtsj6g.com^ +ÿï08@R sai7348.xyz^ +ÿï08@R wwmnga.icu^ +ÿï08@Rgavm.cn^ +ÿï08@R bbjzly.top^ +ÿï08@Rfup5qxstgi.com^ +ÿï08@R hghngh.com^ +ÿï08@Rcdjst7i1v.com^ +ÿï08@R9oru1vh0w.com^ +ÿï08@R +uwxez.com^ +ÿï08@R ytqvuq.icu^½ +ÿï08@Rtbunkrolo.com^ +ÿï08@Rhaitang77.com^ +ÿï08@Revkc.cn^ +ÿï08@R zcdfnl.top^ +ÿï08@Rqa6z7kz5r.com^ +ÿï08@R adfjxsrw.cc^ +ÿï08@Rxg8mbvu3x8.com^ +ÿï08@Rlzov.cn^ +ÿï08@Ropicrutuk.com^ +ÿï08@R11xkkhe8hd.com^ +ÿï08@R bdblpy.top^ +ÿï08@Rkf2038zvxt.com^ +ÿï08@R sduaiy.icu^ +ÿï08@Rmeenehboq.com^ +!ÿï08@Rhiaphrilloig.com^ +ÿï08@R465k3mlo9.com^ + ÿï08@Rhwpvhilkuth.com^ +ÿï08@Rkuiv.cn^ +ÿï08@Ryn0mbg4p1.com^ +ÿï08@R sdfscftg.com^ +ÿï08@R14pbmfzci.com^ +ÿï08@R vbjzdl.top^ +ÿï08@R zevwrl.top^ +ÿï08@Rbdcrihraly.com^ +ÿï08@Riyxh.cn^ +ÿï08@Ri9i3ko2o70.com^ +ÿï08@Rieix.cn^ + ÿï08@Rgnglehraith.com^ +ÿï08@R tcdkjy.top^ +ÿï08@Rstaitcfile.org^ +ÿï08@Rqdn4ydsg3s.com^ +ÿï08@R dfgddgfd.com^ +ÿï08@R +pfvufy.cn^ + ÿï08@Rnbraenkikrn.com^ +ÿï08@Rulad.cn^ +ÿï08@Rmk10ow7zoi.com^ +ÿï08@Rxdea.cn^ +!ÿï08@Rldrerirbuaou.com^ +ÿï08@R rwbqll.top^ +ÿï08@R68s4eyiru.com^ +"ÿï08@Rpbgufjylmzsym.top^ +ÿï08@Radfsda005.xyz^ +ÿï08@R etdggwj.top^ +ÿï08@R ahqihkm.top^ +ÿï08@R rudhjah.top^ +ÿï08@Rwbqhehokmy.com^ +ÿï08@Rrcilgeill.com^ +ÿï08@Rqjlo.cn^ +ÿï08@Rniu05180jd.top^ +ÿï08@Rn0ocxl4w5g.top^ +ÿï08@Rafce.cn^ +ÿï08@Rdanicirvr.com^ +ÿï08@R pxvbnt.top^ +ÿï08@R8radc6a0m2.com^ +ÿï08@R +hhdus.com^ +ÿï08@Rfhl05181ps.com^ +ÿï08@Rogfvadunon.com^ +ÿï08@Ruowr.cn^ +!ÿï08@Rouqo05181luj.com^ +!ÿï08@Rouqo05170luj.com^ +ÿï08@Rml4xbwg73.top^ +ÿï08@Rniu05171jd.top^ +ÿï08@Rniu05170jd.top^ +ÿï08@R rythtg.top^³ +ÿï08@Rvgxj.cn^ +ÿï08@Rfhl05170ps.com^ +ÿï08@Rfufemnirr.com^ +!ÿï08@Rouqo05171luj.com^ +!ÿï08@Rezzwechiiewt.com^ +ÿï08@Ru6zsr2xn1.com^ +ÿï08@Rueqo.cn^ +ÿï08@R wliksa.icu^ + ÿï08@Rakoo0516uis.com^ +ÿï08@Rniu05160jd.top^ +ÿï08@Rfhl05160ps.com^ +!ÿï08@Riptrauaktnua.com^ +ÿï08@R pznnvt.top^ +ÿï08@Rkfvq.cn^ +ÿï08@Rniu05161jd.top^ +ÿï08@R3rcld5y1dm.com^ +ÿï08@Rtmqhageaip.com^ +ÿï08@Rmuoy.cn^ +!ÿï08@Rouqo05161luj.com^ +ÿï08@R qimsgi.icu^ + ÿï08@Rakoo0515uis.com^ +ÿï08@Rwyvw.cn^ +ÿï08@Rniu05150jd.top^ +ÿï08@Rfhl05150ps.com^ + ÿï08@Ropkrerkaidf.com^ +ÿï08@R nalyxg.top^ +ÿï08@Rniu05151jd.top^ +ÿï08@R cuqpi.cn^ +!ÿï08@Rfqanoreirlpa.com^ +ÿï08@Rtqphaqoye.com^ +ÿï08@Riafg.cn^ +ÿï08@R ssqxuy.icu^ +ÿï08@Rgmendanln.com^ + ÿï08@Rakoo0514uis.com^ +ÿï08@Rbkqa.cn^ +ÿï08@R jnjslk.top^ +ÿï08@Rymgranque.com^ +ÿï08@R upufkg.icu^ +ÿï08@Rbycrovalb.com^ + ÿï08@Rhur05130kns.com^ +ÿï08@Rweod.cn^ +ÿï08@R hodynx.top^ +ÿï08@R jesfsf.top^ +ÿï08@R sdgsheh.top^ +ÿï08@R yqrsdfh.top^ +ÿï08@R 31fq.com^ + ÿï08@Rakoo0513uis.com^ +ÿï08@Rrzcruzullr.com^ +!ÿï08@Rkklq05140p0i.com^ +!ÿï08@Rkklq05131p0i.com^ +ÿï08@R yao7392.xyz^ +ÿï08@Raapj.cn^ +ÿï08@R wmykyw.icu^ + ÿï08@Rmos05120o9i.com^ +ÿï08@R +pjcqzm.cn^ +ÿï08@Rpharoilrw.com^ +ÿï08@Rvqqf.cn^ +ÿï08@R jibjpk.top^ +ÿï08@Ronchilurg.com^ +ÿï08@R zai1648.xyz^ +ÿï08@Rihgm.cn^ + ÿï08@Rhur05121kns.com^ +!ÿï08@Rpebrihmethwa.com^ +ÿï08@Ryimh.cn^à +ÿï08@R qwcpme.icu^ +ÿï08@R hjvprx.top^ + ÿï08@Rqnhoqullbea.com^ +ÿï08@Riiwk.cn^ + ÿï08@Rmos05111o9i.com^ + ÿï08@Rmos05110o9i.com^ +!ÿï08@Rkklq05121p0i.com^ +!ÿï08@Rkklq05120p0i.com^ +!ÿï08@Rkklq05111p0i.com^ +ÿï08@R stgxau.icu^ +!ÿï08@Rqpqp05100oki.com^ +ÿï08@Rrdut.cn^ +ÿï08@R sdwrghcv.top^ +ÿï08@Rwubizigeng.com^ +ÿï08@R fktaxk.top^ +ÿï08@Rmppanittie.com^ +ÿï08@R unwucnt.top^ +!ÿï08@Rqpqp05101oki.com^ +ÿï08@Rqcogiellq.com^ +ÿï08@Rfbhorutgy.com^ + ÿï08@Rhur05110kns.com^ + ÿï08@Rhur05101kns.com^ +ÿï08@Rxklv.cn^ +ÿï08@R jguhqbe.top^ +ÿï08@R fadjqqe.top^ +ÿï08@R bcpxll.icu^ +ÿï08@R uqkcqk.icu^ +ÿï08@Rudyi.cn^ +ÿï08@R dlngzx.top^ +ÿï08@R tnwucni.top^ +ÿï08@Rsioq.cn^ +!ÿï08@Ruuso05080qhs.xyz^ +ÿï08@Rthimhudlop.com^ +ÿï08@R qiuxl11.cn^ + ÿï08@Rwxjuobn1026.top^ +ÿï08@R oaokes.icu^ +ÿï08@Rsqif.cn^ +ÿï08@R fmlmbf.top^ +!ÿï08@Ruuso05081qhs.xyz^ +ÿï08@R qnwucny.top^ +!ÿï08@Ruuso05082qhs.xyz^ + ÿï08@Rvthruucceod.com^ +ÿï08@R ebrid.cn^ + ÿï08@Rwtrotilloye.com^ +ÿï08@R dnjxds.top^ +ÿï08@R dxvfdv.icu^ +%ÿï08@Rmfkfkhfhmfkfkhfh.top^ +ÿï08@Rklvt.cn^ +ÿï08@R wnwucne.top^ + ÿï08@Rhur05071kns.com^ +ÿï08@R zwdrjdyf.icu^ +'ÿï08@Rnnglgliginnglgligi.top^ +!ÿï08@Rlfkheedokhld.com^ +!ÿï08@Ruuso05072qhs.xyz^ +ÿï08@Rbbbtttjjj.com^ +!ÿï08@Rqsko05060mas.com^ +!ÿï08@Rqsko05061mas.com^ +!ÿï08@Rpwchaukoieor.com^ +ÿï08@Rnzoj.cn^ +ÿï08@R gawnaze.com^ +ÿï08@R bhddjf.top^ +ÿï08@R enwucnw.top^ +ÿï08@Riqtucudfff.com^ +ÿï08@Ryghalathio.com^Ð +ÿï08@R 558158.xyz^ +ÿï08@R yhgfsdad.top^ +ÿï08@R rfgsdgg.top^ +ÿï08@Rdajiahao3.top^ +ÿï08@Ryqqv.cn^ +ÿï08@R zxiws.cn^ +!ÿï08@Rqiwqaagnaell.com^ +ÿï08@R zibjls.top^ +ÿï08@R snwucnb.top^ +ÿï08@Rwlberlaiw.com^ +ÿï08@Rbebx.cn^ +"ÿï08@Rqqosk05040llo.com^ +ÿï08@Rebroktean.com^ +ÿï08@Rffxe.cn^ +ÿï08@Rcroqoltdp.com^ + ÿï08@Rokpl05040ai.com^ +ÿï08@R xjvunf.top^ +ÿï08@R knwucnd.top^ +"ÿï08@Rqqosk05041llo.com^ +!ÿï08@Rnevtrelathgd.com^ + ÿï08@Rokpl05041ai.com^ + ÿï08@Rokpl05030ai.com^ + ÿï08@Rvtqhelleano.com^ +"ÿï08@Rqqosk05030llo.com^ +ÿï08@R zktats.top^ +ÿï08@R jnwucna.top^ +"ÿï08@Rqqosk05031llo.com^ +ÿï08@Rvldp.cn^ +ÿï08@Rghgietuthz.com^ +"ÿï08@Rqqosk05020llo.com^ +ÿï08@R xlnlvf.top^ +"ÿï08@Rqqosk05021llo.com^ +ÿï08@R inwucno.top^ + ÿï08@Rinulgaenypa.com^ + ÿï08@Rokpl05021ai.com^ +ÿï08@Rddow.cn^ +ÿï08@Rrgtghulduk.com^ +ÿï08@Ruaqe.cn^ + ÿï08@Rokpl05010ai.com^ +ÿï08@R vmlrxs.top^ +ÿï08@R unwuamt.top^ +"ÿï08@Rqqosk05010llo.com^ +"ÿï08@Rqqosk05011llo.com^ + ÿï08@Rokpl05011ai.com^ +ÿï08@Ryaltchoaiz.com^ +ÿï08@Rsvnf.cn^ +!ÿï08@Raeinkailrupe.com^ +ÿï08@R hnwucnu.top^ +ÿï08@Rqsoc.cn^ + ÿï08@Rwwok04300kl.com^ + ÿï08@Roia04300klq.com^ +ÿï08@R tgjxzf.top^ +ÿï08@Roibihevlr.com^ +ÿï08@R qnwuamy.top^ + ÿï08@Rokpl04301ai.com^ +!ÿï08@Rtooreldretpl.com^ +ÿï08@Rkowj.cn^ +ÿï08@R tnwuami.top^ +ÿï08@R bxdupj.icu^ +ÿï08@R cautols.com^ +ÿï08@Rexoh.cn^ +ÿï08@R rhdifs.top^ +ÿï08@R enwuamw.top^ +ÿï08@R mwcnmtx.top^ô + ÿï08@Rwwok04291kl.com^ +ÿï08@Rfvitteilse.com^ +ÿï08@Riwhp.cn^ +ÿï08@R wnwuame.top^ +ÿï08@Roldh.cn^ +ÿï08@R vcaqexl.com^ +ÿï08@R hua4207.xyz^ +ÿï08@R vhxzfz.icu^ +ÿï08@R tiboha.top^ +ÿï08@R knwuamd.top^ +ÿï08@R bwcnmtv.top^ + ÿï08@Rwwok04281kl.com^ +ÿï08@Rqwti.cn^ +ÿï08@Rgekhasaks.com^ +ÿï08@R snwuamb.top^ +!ÿï08@Rgbiathrilzik.com^ +ÿï08@Rzbislaernv.com^ +ÿï08@R xebetp.icu^ +ÿï08@R inwuamo.top^ +ÿï08@Rmecv.cn^ +ÿï08@R lwcnmtl.top^ +ÿï08@R itoqals.com^ +ÿï08@R jxtcbriz.icu^ +ÿï08@Rwmol.cn^ +ÿï08@R jnwuama.top^ +ÿï08@R jia6983.xyz^ +ÿï08@R rjvzjn.top^ +ÿï08@Rvrosqutsgh.com^ +ÿï08@Rrgme.cn^ +ÿï08@R zofmhx.icu^ +ÿï08@R pktfla.top^ +ÿï08@R mucnwtx.top^ +ÿï08@R owcnmtk.top^ +ÿï08@R cnwuamf.top^ +ÿï08@Rdheilgorsy.com^ +ÿï08@R hnwuamu.top^ +ÿï08@Rhvrunsqqy.com^ +ÿï08@R nlnlrn.top^ +ÿï08@Rohqp.cn^ +ÿï08@R lucnwtl.top^ +ÿï08@R uwcnmtt.top^ +ÿï08@R tljrvn.icu^ +ÿï08@R bucnwtv.top^ +ÿï08@Rkhehliets.com^ +ÿï08@Rthaincoth.com^ +ÿï08@Retbh.cn^ +ÿï08@R pflwta.top^ +ÿï08@R uucnwtt.top^ +ÿï08@R twcnmti.top^ +ÿï08@R 918000.xyz^ +ÿï08@Rvtbe.cn^ +ÿï08@Rqtthehnor.com^ +ÿï08@Rqighodetfg.com^ +ÿï08@Rleirerspfz.com^ +ÿï08@Rifje.cn^ +ÿï08@R ngjcvn.top^ +ÿï08@R qucnwty.top^ +ÿï08@R qwcnmty.top^ +ÿï08@R po18ad.com^ +ÿï08@R qdasflqe.top^ +ÿï08@Rvrinqaell.com^ +ÿï08@Rewvz.cn^ +ÿï08@R xsrezl.icu^ +ÿï08@R tucnwti.top^ä +ÿï08@Rgrimoiksep.com^ +ÿï08@Riutq.cn^ +ÿï08@R lhdnba.top^ +ÿï08@R eucnwtw.top^ +ÿï08@R wwcnmte.top^ +ÿï08@R ubudhal.com^ +ÿï08@R +51dxs.com^ +ÿï08@R lui8426.xyz^ +ÿï08@R 91ks.online^ +ÿï08@R qwerhao3.com^ +ÿï08@R cholurd.com^ +ÿï08@Rdhimphits.com^ +ÿï08@Ruypg.cn^ +ÿï08@R wucnwte.top^ +ÿï08@R hgreils.com^ +ÿï08@Rlvqo.cn^ +ÿï08@R jibtdn.top^ +ÿï08@R kucnwtd.top^ +ÿï08@R ewcnmtw.top^ +ÿï08@R sucnwtb.top^ +ÿï08@Rvnwu.cn^ +ÿï08@R faamhel.com^ +ÿï08@R nbragzui.com^ +ÿï08@Rbvzc.cn^ +ÿï08@R hjvzfa.top^ +ÿï08@R swcnmtb.top^ +ÿï08@R iucnwto.top^ +ÿï08@Rltmarilsf.com^ +ÿï08@R jucnwta.top^ +ÿï08@R mghezaxh.com^ +ÿï08@Rhhppzkhurf.com^ +ÿï08@R jktkhn.top^ +ÿï08@Rtuyv.cn^ +ÿï08@R mucnmtx.top^ +ÿï08@R kwcnmtd.top^ +ÿï08@R bsizoia.com^ +ÿï08@Rafvrolvial.com^ +ÿï08@Rucmx.cn^ +ÿï08@R cucnmtf.top^ +ÿï08@R jcfbgdbd.top^ +ÿï08@Rwigk.cn^ +ÿï08@R henqnv.top^ +ÿï08@R lucnmtl.top^ +ÿï08@R jwcnmta.top^ +ÿï08@Rhkralgriks.com^ +ÿï08@Ruhyf.cn^ +ÿï08@R bucnmtv.top^ +ÿï08@Rewdk.cn^ +ÿï08@R fflbpi.top^ +ÿï08@R hbeafcac.top^ +ÿï08@Rstildreans.com^ +ÿï08@R uucnmtt.top^ +ÿï08@R iwcnmto.top^ +ÿï08@Rdighavrap.com^ +ÿï08@R chienzul.com^ +ÿï08@Rqjuy.cn^ +ÿï08@R oucnmtk.top^ +ÿï08@R vunqrotm.com^ +ÿï08@Rlkmgjfkhfh.top^ +ÿï08@Rghrs.cn^ +ÿï08@R pjbbhj.icu^ +ÿï08@R wucnmte.top^ +ÿï08@R dgjhrv.top^a[href*=".lui8426.xyz"]á +ÿï08@R nl2cq0jr.xyz^ +ÿï08@R cwcnmtf.top^ +ÿï08@R qucnmty.top^ +ÿï08@R hwcnmtu.top^ +ÿï08@R throxul.com^ +ÿï08@Ruektedsni.com^ +"ÿï08@Rfheiu43bcdhsj.top^ +ÿï08@Rufgl.cn^ +ÿï08@Rximhirsew.com^ +ÿï08@R tucnmti.top^ +ÿï08@Rthricrulnf.com^ +ÿï08@R rtfgvz.icu^ +ÿï08@Rpekr.cn^ +ÿï08@R bhdnti.top^ +ÿï08@R bvcnmtv.top^ +ÿï08@Riiyurraeoh.com^ +ÿï08@Rmnrz.cn^ +ÿï08@Rergiekszra.com^ +ÿï08@Rtxvq.cn^ +ÿï08@R tqjojh.icu^ +ÿï08@R ztdbfz.top^ +ÿï08@R ovcnmtk.top^ +ÿï08@R qvcnmty.top^ +ÿï08@Rvrevvaids.com^ +ÿï08@R lvcnmtl.top^ +ÿï08@Rixlv.cn^ +ÿï08@R wvcnmte.top^ +ÿï08@R tvcnmti.top^ +ÿï08@R uvcnmtt.top^ +ÿï08@R thriseds.com^ +ÿï08@R showkkkp.top^ +ÿï08@R pxrbnf.icu^ +ÿï08@Rirkp.cn^ +ÿï08@R svcnmtb.top^ +ÿï08@Rbhaelkaers.com^ +ÿï08@R zvvsjz.top^ +ÿï08@R evcnmtw.top^ +ÿï08@Rokeaxgugq.com^ +ÿï08@Rkvqp.cn^ +ÿï08@R mvcnmtx.top^ +ÿï08@Rifethbrzb.com^ +ÿï08@R nnntxx.icu^ +ÿï08@Rokvt.cn^ +ÿï08@R bubmhm.top^ +ÿï08@R ruvgbv.icu^ +ÿï08@Rchugveasoy.com^ +ÿï08@R +sfile.top^ +ÿï08@R zqifmyt.icu^ +ÿï08@R xwtylm.top^ +ÿï08@Rjmif.cn^ +ÿï08@Rrvxo.cn^ +ÿï08@R idhaiafq.com^ +ÿï08@Ropdh.cn^ +ÿï08@R tezlpl.icu^ +ÿï08@R duuddots.com^ +ÿï08@Rmjik.cn^ +ÿï08@R vqnjrz.top^ +ÿï08@R strakvad.com^ +ÿï08@Rrwix.cn^ +ÿï08@R saktuddo.com^ +ÿï08@R kcglsiv.icu^ +ÿï08@R nbdtdt.icu^ +ÿï08@Ruucatiqnd.com^ +ÿï08@Rixoe.cn^ø +ÿï08@R trlptm.top^ +ÿï08@Renbg.cn^ +ÿï08@R vezeqzyb.com^ +ÿï08@Rzaiqnethl.com^ +ÿï08@R pyxytj.icu^ +ÿï08@Rliog.cn^ +ÿï08@R vsjavu.top^ +ÿï08@R vahmimb.com^ +ÿï08@Rfigvatqrwd.com^ +ÿï08@Remsq.cn^ +ÿï08@R ribghr.icu^ +ÿï08@Rvhid.cn^ +ÿï08@R mevedyru.com^ +ÿï08@Rifej.cn^ +ÿï08@R ttdgbh.top^ +ÿï08@Reinzeaxop.com^ +ÿï08@R stigzeal.com^ +ÿï08@R lfflvh.icu^ +ÿï08@R rubmdu.top^ +ÿï08@Rbpuf.cn^ +ÿï08@Rbholneath.com^ +ÿï08@Rbaphullpet.com^ + ÿï08@Rhh04050aoik.com^ +ÿï08@R ncjqjp.icu^ +ÿï08@R pvvxfh.top^ +ÿï08@Rifqn.cn^ +ÿï08@R anzeretp.com^ +ÿï08@Rjeyd.cn^ +ÿï08@Rilcq.cn^ +ÿï08@R rptdhu.top^ +ÿï08@R okikwul.icu^ +ÿï08@Rdhievvienr.com^ +ÿï08@Rsonkransme.com^ +ÿï08@R pmnyzf.icu^ + ÿï08@Rhh04040aoik.com^ + ÿï08@Rhh04041aoik.com^ +ÿï08@R vruzexzl.com^ +ÿï08@Rvxky.cn^ +ÿï08@Rdreiquksz.com^ + ÿï08@Rso04030koaq.com^ +ÿï08@R pqnonh.top^ +ÿï08@R zwgqzgo.icu^ +ÿï08@Rrinl.cn^ +ÿï08@Rdhorzivnn.com^ +ÿï08@R hauqoa.com^ +ÿï08@R ookaso.com^ +ÿï08@R uuaisp.com^ +ÿï08@R phozeksr.com^ +ÿï08@R nrlupu.top^ +ÿï08@R biabfqq.icu^ +ÿï08@Rchitshuqh.com^ +ÿï08@Roieo.cn^ +ÿï08@Rcaxhuuzto.com^ + ÿï08@Rso04010koaq.com^ +ÿï08@R lsjarh.top^ +ÿï08@R duyhlct.icu^ +ÿï08@Rwqrv.cn^ +ÿï08@Rdephriezm.com^ +"ÿï08@Ruu09cjylmzsym.top^ +ÿï08@Ryasorlbeu.com^ +ÿï08@R jtdltu.top^ +ÿï08@Rxsti.cn^ +ÿï08@R onwnomv.icu^ + ÿï08@Rso03311koaq.com^ç +ÿï08@Remphidaho.com^ +ÿï08@Rqvir.cn^ +ÿï08@R lubrzh.top^ +ÿï08@R hrwbeqv.icu^ +ÿï08@Rvqle.cn^ +ÿï08@Rhevepyrmt.com^ +ÿï08@Rpiln.cn^ +ÿï08@Rgiphaudoq.com^ +ÿï08@R jdqmhay.icu^ +ÿï08@Ruivc.cn^ +ÿï08@R jovcbp.top^ +ÿï08@Rbeqnnobwt.com^ +ÿï08@Rksro.cn^ +ÿï08@Rdrohlaneh.com^ +ÿï08@Reildralfl.com^ +ÿï08@Rliqw.cn^ +ÿï08@R hptidc.top^ +ÿï08@R uposnmb.icu^ +"ÿï08@Rtd86hsmlmggym.top^ +"ÿï08@Rvqaj6smlmtpym.top^ +ÿï08@Rvuhf.cn^ +ÿï08@Rtruuhmoen.com^ +ÿï08@Rvraataidz.com^ +ÿï08@R fqnojp.top^ +ÿï08@Rwnvu.cn^ +ÿï08@R wiiytwd.icu^ +ÿï08@Ryuqnyudug.com^ +ÿï08@Rspoh.cn^ +ÿï08@Rlorzelofd.com^ +ÿï08@Rdhaaralzz.com^ +ÿï08@Rgqoi.cn^ +ÿï08@R drlzlc.top^ +ÿï08@R yugjwgg.icu^ +ÿï08@Rvytn.cn^ +ÿï08@Rteeniaole.com^ +ÿï08@Rphorralut.com^ +ÿï08@Rpqav.cn^ +ÿï08@R fsjfnp.top^ +ÿï08@R jgapcsi.icu^ +ÿï08@Rbremphumz.com^ +ÿï08@Rxluz.cn^ +ÿï08@Rkhegritww.com^ +ÿï08@Rknul.cn^ +ÿï08@R ra10.xyz^ +ÿï08@R dtdqpc.top^ +ÿï08@R lsyaicl.icu^ +ÿï08@Rxbqm.cn^ +ÿï08@Rghozokodq.com^ +ÿï08@Rgerqragpl.com^ +ÿï08@Rnghv.cn^ +ÿï08@R wlwgloo.top^ +ÿï08@R wlwgloo.icu^ +"ÿï08@Rhchus5739dmew.top^ +ÿï08@Rurkt.cn^ +ÿï08@Rscreiltol.com^ +ÿï08@R bnbwvp.top^ +ÿï08@Rstemedntm.com^ +"ÿï08@Rr5twojylmzsym.top^ +ÿï08@Ravkd.cn^ +ÿï08@R yxqmryq.top^ +ÿï08@Reldaridpr.com^ +ÿï08@Roelj.cn^ +ÿï08@Rfeernhuhe.com^ +ÿï08@Rvhje.cn^ô +ÿï08@R bptnzp.top^ +ÿï08@R ajoxxit.top^ +ÿï08@Rgucx.cn^ +ÿï08@Rak03211hou.com^ +ÿï08@Rneldipbtg.com^ +ÿï08@Rspkh.cn^ +ÿï08@Rsodenneyg.com^ +ÿï08@R zqntbc.top^ +ÿï08@R lcidauv.top^ +ÿï08@Rbekd.cn^ +ÿï08@Ruhityllhn.com^ +ÿï08@Rxunqrutsl.com^ +ÿï08@R jslxzx.icu^ +ÿï08@Rxeccotftw.com^ +ÿï08@R ledfjl.icu^ +ÿï08@R xrlzhk.top^ +ÿï08@R nogogey.top^ +ÿï08@Rotfy.cn^ +ÿï08@Riyof.cn^ +ÿï08@Rvinoinqih.com^ +ÿï08@R fbhkxt.icu^ +ÿï08@R lppfnf.icu^ +ÿï08@Rshedranfd.com^ +ÿï08@Rquyr.cn^ +ÿï08@R vljkjx.top^ +ÿï08@R yaaumqa.top^ +ÿï08@Rancelsqpv.com^ +ÿï08@Rbxhm.cn^ +ÿï08@R vnbbrx.top^ +ÿï08@R hylplj.icu^ +ÿï08@Rnaukreatn.com^ +ÿï08@R nmtkbv.icu^ +ÿï08@R tmdqlk.top^ +ÿï08@Rbkox.cn^ +ÿï08@R amyapad.top^ +%ÿï08@Rpolitical-effort.com^ +!ÿï08@Rtubingacater.com^ +ÿï08@Rchorninsm.com^ +ÿï08@Rphuustikd.com^ +ÿï08@Rtogmoxwnw.com^ +ÿï08@Rrdoq.cn^ +ÿï08@Rsrootshare.com^ +ÿï08@Ruoqc.cn^ +ÿï08@Rxaiqrania.com^ +ÿï08@R jipxzz.icu^ +ÿï08@R mstmsbz.com^ +ÿï08@R hwxprd.icu^ +ÿï08@R nrqrbwi.top^ +ÿï08@R cfwlvmg.top^ +ÿï08@Rkodwaqepr.com^ +ÿï08@Rajua.cn^ +ÿï08@Rmvxh.cn^ +ÿï08@R lftcph.icu^ +ÿï08@Rak03150hou.com^ +ÿï08@Rguqransoq.com^ +ÿï08@Rghegaintp.com^ +ÿï08@Rvmjr.cn^ +ÿï08@Rlmeurbnjs.com^ +ÿï08@Rxielloltv.com^ +ÿï08@R lqfctb.icu^ +ÿï08@R fpxhdx.icu^ +ÿï08@Rxbfk.cn^ +ÿï08@R pdochgl.top^ +ÿï08@Rcokudsvit.com^Á +ÿï08@Rtpjw.cn^ +ÿï08@Rstraldrier.com^ +ÿï08@R fajkhr.icu^ +ÿï08@R hmbprf.icu^ +ÿï08@Rqkax.cn^ +ÿï08@R apiiksn.top^ +ÿï08@Rzogzoldop.com^ +ÿï08@Rfqbr.cn^ +ÿï08@R hxnpxh.icu^ +ÿï08@Recatqefal.com^ +ÿï08@R jjfufv.icu^ +ÿï08@Rscesqoikq.com^ +ÿï08@Roajv.cn^ +ÿï08@R cigoqcq.top^ +"ÿï08@Rsbqg7jylmzsym.top^ +ÿï08@Ristraxuhh.com^ +ÿï08@Rorup.cn^ +ÿï08@R dtjcvd.icu^ +ÿï08@Rvragridsn.com^ +ÿï08@Rtpkv.cn^ +ÿï08@R jhrulp.icu^ +ÿï08@Rmjvr.cn^ +ÿï08@R euazwot.top^ +ÿï08@Rtreqonwyp.com^ +ÿï08@Rdvgr.cn^ +ÿï08@Rqtbo.cn^ +ÿï08@R hnhmxj.icu^ +ÿï08@R fbphnn.icu^ +!ÿï08@Rvpydjogaytpg.xyz^ +ÿï08@Rzokzavnea.com^ +ÿï08@R rswqfiy.top^ +ÿï08@Rphinathuu.com^ +ÿï08@Rlutn.cn^ +ÿï08@R fqnhjt.icu^ +ÿï08@R lelczf.icu^ +ÿï08@Rshelluiqy.com^ +ÿï08@Rejti.cn^ +ÿï08@R pgyfzyv.top^ +ÿï08@Rthustilpn.com^ +ÿï08@Rnrgv.cn^ +ÿï08@R hltpdd.icu^ +ÿï08@R bxlulr.icu^ +ÿï08@Rstralotsb.com^ +ÿï08@Rpfhe.cn^ +ÿï08@Rtrorqaeao.com^ +ÿï08@Rdvuz.cn^ +ÿï08@R hbxmdf.icu^ +ÿï08@R dupzbh.icu^ +ÿï08@R jixurt.icu^ +ÿï08@R exocoed.top^ +ÿï08@Rzjen.cn^ +ÿï08@Rqogonsuqq.com^ +ÿï08@Rojmv.cn^ +ÿï08@R rvgtaai.top^ +ÿï08@Rvwvj.cn^ +ÿï08@R fpfhtr.icu^ +ÿï08@R frthpp.icu^ +ÿï08@Rixtu.cn^ +ÿï08@R gjinuqg.top^ +ÿï08@Rrgju.cn^ +ÿï08@Rnhur.cn^ +ÿï08@R bybrrn.icu^ +ÿï08@R hmjmjz.icu^ +ÿï08@Ruojx.cn^Ý +ÿï08@R toazdkl.top^ +ÿï08@Rujmz.cn^ +ÿï08@R pkvjrb.icu^ +ÿï08@Roqea.cn^ +ÿï08@R vaykjwn.top^ +ÿï08@Rsinkrersf.com^ +ÿï08@R ffjevt.icu^ +ÿï08@Rbimnodstz.com^ +ÿï08@Rodxh.cn^ +ÿï08@R rhzofr.icu^ +ÿï08@Rwumd.cn^ +ÿï08@R gmwqpgq.top^ +ÿï08@Raillaeuyn.com^ +ÿï08@Rpjwk.cn^ +ÿï08@R difzhd.icu^ +ÿï08@Reelkeageg.com^ +ÿï08@Rkczq.cn^ +ÿï08@R zcnmjb.icu^ +ÿï08@R ledwtz.icu^ + ÿï08@Raa03010iiko.com^ +ÿï08@R iyqbsst.top^ +ÿï08@Rbhoscopop.com^ +ÿï08@R derwbl.icu^ +ÿï08@Rnievolmqn.com^ +ÿï08@Rsikvoilst.com^ +ÿï08@R pghglj.icu^ +ÿï08@R trohycv.top^ +ÿï08@Rriym.cn^ +ÿï08@Rbhohreatz.com^ +ÿï08@Rwrth.cn^ +ÿï08@Rshatielsu.com^ +ÿï08@R rdllzz.icu^ +ÿï08@R fbvbrb.icu^ +ÿï08@Rrojj.cn^ +ÿï08@R bmasamd.top^ +ÿï08@Rdhonphehr.com^ +ÿï08@Rsvjj.cn^ +ÿï08@R zlzgfj.icu^ +ÿï08@R lnptph.icu^ +ÿï08@Rpisb.cn^ +ÿï08@R dyyygyg.top^ +ÿï08@Rdhulzehgk.com^ +ÿï08@Rdiav.cn^ +ÿï08@Rdruqodrly.com^ +ÿï08@R bidotz.icu^ +ÿï08@R nktydx.icu^ +ÿï08@Rscohmallt.com^ +ÿï08@Rlvnr.cn^ +ÿï08@R znlvhnej.icu^ +ÿï08@R okwjmii.top^ +ÿï08@R onjncgq.top^ +ÿï08@Ro02260aokk.com^ +ÿï08@Ro02251aokk.com^ +ÿï08@Rpheidheat.com^ +ÿï08@Rthampheth.com^ +ÿï08@R vtrrxqbi.xyz^ +ÿï08@Rkqgn.cn^ +ÿï08@R dfhthh.icu^ +ÿï08@Rchuundads.com^ +ÿï08@R xvvfpsmp.icu^ +ÿï08@R phxdrf.icu^ +ÿï08@R qdqppsl.top^ +ÿï08@Rqnki.cn^ +ÿï08@Rivvn.cn^æ +ÿï08@Rvraqnathr.com^ +ÿï08@R xplbxx.icu^ +ÿï08@Rkhoqetslh.com^ +ÿï08@R vdpwuxmo.icu^ +ÿï08@R jrblfv.icu^ +ÿï08@Rxwma.cn^ +ÿï08@R spoaven.top^ +ÿï08@R tcinvdi.top^ +ÿï08@Rchuccipkn.com^ +ÿï08@Ro02231aokk.com^ +ÿï08@Rtorkeauwu.com^ +ÿï08@R zmpgln.icu^ +ÿï08@R hebaidu.cc^ +ÿï08@R lofqvl.icu^ +ÿï08@Ro02220aokk.com^ +ÿï08@R8y3j.cn^ +ÿï08@R wcinvde.top^ +ÿï08@R dbigboq.top^ +ÿï08@Rheemphaers.com^ +ÿï08@R hlzncxmu.icu^ +ÿï08@R qcinvdy.top^ +ÿï08@Rs7vf.cn^ +ÿï08@R fttxhcua.icu^ +ÿï08@Rcrazodsxx.com^ +ÿï08@R kcinvdd.top^ +ÿï08@R xxsmad6.com^ +ÿï08@R bjtlzv.icu^ +ÿï08@R nljyjt.icu^ +ÿï08@R fngmeat.top^ +ÿï08@R2ueb.cn^ +ÿï08@R scinvdb.top^ +ÿï08@Rbhaelnieth.com^ +ÿï08@R ecinvdw.top^ +ÿï08@R stildell.com^ +ÿï08@R dtntnl.icu^ +ÿï08@R hvddxj.icu^ +ÿï08@R ssydquy.top^ +ÿï08@R qgaxkkv.top^ +ÿï08@Rsg7.pw^ +ÿï08@R jcinvda.top^ +ÿï08@R dbdophuz.icu^ +ÿï08@R qogrux.com^ +ÿï08@R dhannaq.com^ +ÿï08@R xqrydt.icu^ +ÿï08@R rsohvot.xyz^ +ÿï08@Ro4q.fun^ +ÿï08@R jshilr.icu^ +ÿï08@R hcinvdu.top^ +ÿï08@R fesnaed.com^ +ÿï08@R icinvdo.top^ +ÿï08@R zavgrj.icu^ +ÿï08@R stogmos.com^ +ÿï08@Rzooj.cn^ +ÿï08@Rxkp.cc^ +ÿï08@R lclqbh.icu^ +ÿï08@Rqnhi.cn^ +ÿï08@R phazaeth.com^ +ÿï08@R uewotga.top^ +ÿï08@R ccinvdf.top^ +ÿï08@R uvoisbg.xyz^ +ÿï08@R aegzoils.com^ +ÿï08@R bxzlfr.icu^ +ÿï08@R shudi8.com^ +ÿï08@R nzpvpp.icu^Þ +ÿï08@Rwn6y.cn^ +ÿï08@R evreiks.com^ +ÿï08@R vudqth.icu^ +ÿï08@R grarnuns.com^ +ÿï08@R hwtadf.icu^ +ÿï08@R8xly.cn^ +ÿï08@R crektels.com^ +ÿï08@R sholxorw.com^ +ÿï08@R xehyjx.icu^ +ÿï08@R jgxirv.icu^ +ÿï08@R6u2h.cn^ +ÿï08@Refxh.cn^ +ÿï08@R rakkuxw.com^ +ÿï08@R saddarue.com^ +ÿï08@R scinmab.top^ +ÿï08@Rstroveiks.com^ +ÿï08@R dhuquxqy.com^ +ÿï08@R zbldxf.icu^ +ÿï08@R ldbnhd.icu^ +ÿï08@R i8m6.com^ +ÿï08@R qhunetsq.com^ +ÿï08@Rwbe4.cn^ +ÿï08@Rstrelgrell.com^ +ÿï08@R h8ne.com^ +ÿï08@R jcinmaa.top^ + ÿï08@Ruhi02130uik.xyz^ + ÿï08@Ruhi02121uik.xyz^ +ÿï08@R bypllv.icu^ +ÿï08@R bhelzun.com^ +ÿï08@R fafvvt.icu^ +ÿï08@R gukviels.com^ +ÿï08@R kcinmad.top^ +ÿï08@R traukvan.com^ +ÿï08@R 20wx.com^ +ÿï08@R vitqzd.icu^ +ÿï08@R icinmao.top^ +ÿï08@R fuuksew.com^ +ÿï08@R xfxvpt.icu^ +ÿï08@R s31u.com^ +ÿï08@R ccinmaf.top^ +ÿï08@R inzoiwe.com^ +ÿï08@R hcinmau.top^ +ÿï08@R tmvirr.icu^ +ÿï08@R udinmat.top^ +ÿï08@R odinmak.top^ +ÿï08@R ldinmal.top^ +ÿï08@R brornaeq.com^ +ÿï08@R strakuty.com^ +ÿï08@R zcrddj.icu^ +ÿï08@R nonguds.com^ +ÿï08@R vjzqfh.icu^ +ÿï08@R8ff0.cn^ +ÿï08@R tdinmai.top^ +ÿï08@R ddc888.com^ +ÿï08@R draktash.com^ +ÿï08@R bildrat.com^ +ÿï08@R xtdvvp.icu^ +ÿï08@R vbllxaaj.icu^ +ÿï08@Rapk02070oo.xyz^ +ÿï08@R pcqhe.cn^ +ÿï08@R wdinmae.top^ +ÿï08@R nhz6q.cn^ +ÿï08@R qdinmay.top^a[href*="/dk35.cc"]ö +ÿï08@R fagrirtn.com^ +ÿï08@R rqhajf.icu^ +ÿï08@R trellq.com^ +ÿï08@R tjvcffap.icu^ +ÿï08@R +mtfc8.com^ +ÿï08@Rapk02061oo.xyz^ +ÿï08@R edinmaw.top^ +ÿï08@R rrptnkao.icu^ +ÿï08@Ris02050qqp.xyz^ +ÿï08@Ris02041qqp.xyz^ +ÿï08@R qhaccid.com^ +ÿï08@R tnlixn.icu^ +ÿï08@Ru7y.pw^ +ÿï08@R ommatht.com^ +ÿï08@R hdinmau.top^ +ÿï08@Rshaenphiks.com^ +ÿï08@R feronyv.com^ +ÿï08@R tciqgx.xyz^ +ÿï08@R crolerl.com^ +ÿï08@R vxpnld.icu^ +ÿï08@R dzzdspiu.icu^ +ÿï08@R rrxapb.icu^ +ÿï08@R zkdefuiz.icu^ +ÿï08@R gumnus.com^ +ÿï08@Rkrirkroins.com^ +ÿï08@R xutvbt.icu^ +ÿï08@R bctuapia.icu^ +ÿï08@R dhemixu.com^ +ÿï08@R cdinmaf.top^ +ÿï08@R tbbfdr.icu^ +ÿï08@R oveakmqk.com^ +ÿï08@R lsxvnzif.icu^ +ÿï08@R iedullkg.com^ +ÿï08@R begoihuh.com^ +ÿï08@R rmtxdn.icu^ +ÿï08@Rpw2.fun^ +ÿï08@R lwtupzua.icu^ +ÿï08@R drustren.com^ +ÿï08@R1qv.fun^ +ÿï08@R bodhalqg.com^ +ÿï08@R xedlxeuz.icu^ +ÿï08@R twxftd.icu^ +ÿï08@Rk42.fun^ +ÿï08@Ram0.fun^ +ÿï08@Rstrilqoill.com^ +ÿï08@Rv4p.fun^ +ÿï08@R addalzq.com^ +ÿï08@R6qo.fun^ +ÿï08@Rbhanphevg.com^ +ÿï08@R vtbkhl.icu^ +ÿï08@R vmxvcjuf.icu^ +ÿï08@R jdinmia.top^ +ÿï08@R +0592.mobi^ +ÿï08@R kdinmid.top^ +ÿï08@R ghairqin.com^ +ÿï08@R7tc.fun^ +ÿï08@R hdinmiu.top^ +ÿï08@R xxsmad5.com^ +ÿï08@R hostolhg.com^ +ÿï08@R4zn.fun^ +ÿï08@R rajxjj.icu^ +ÿï08@R tuhmkjce.icu^ +ÿï08@Ras02010kkp.xyz^ +ÿï08@Ras01280kkp.xyz^Ü +ÿï08@Ras01271kkp.xyz^ +ÿï08@Ras01281kkp.xyz^ +ÿï08@R veilengh.com^ +ÿï08@R fcbdpock.icu^ +ÿï08@Rt2s.fun^ +ÿï08@R pqfpvb.icu^ +ÿï08@R chaqraex.com^ +ÿï08@Rqaemphaels.com^ +ÿï08@R vhrhnh.icu^ +ÿï08@R7mk.fun^ +ÿï08@R bnfectkp.icu^ +ÿï08@R xudaiklj.com^ +ÿï08@R6oj.fun^ +ÿï08@R irkrellw.com^ +ÿï08@R txnczz.icu^ +ÿï08@R dklnxtcj.icu^ +ÿï08@Rh3d.fun^ +ÿï08@R naettarq.com^ +ÿï08@R8sh.fun^ +ÿï08@R 01240sop.xyz^ +ÿï08@R 01231sop.xyz^ +ÿï08@R kruraits.com^ +ÿï08@R6lx.fun^ +ÿï08@R brerkols.com^ +ÿï08@R pevpbx.icu^ +ÿï08@Re1s.fun^ +ÿï08@R nvpokyko.icu^ +ÿï08@R xulkervf.com^ +ÿï08@Rp2v.fun^ +ÿï08@R scigzetg.com^ +ÿï08@R +bjfsk.xyz^ +ÿï08@R jltwxisa.icu^ +ÿï08@Rqo2.fun^ +ÿï08@R 01221sop.xyz^ +ÿï08@Rthangrurs.com^ +ÿï08@Rm4r.fun^ +ÿï08@Rscrorlaets.com^ +ÿï08@R rbzupn.icu^ +ÿï08@R ldjfsdku.icu^ +ÿï08@R +lqxzx.com^ +ÿï08@Rr0j.fun^ +ÿï08@Ry0o.fun^ +ÿï08@R thrumulr.com^ +ÿï08@R 01210sop.xyz^ +ÿï08@R icokamio.top^ +ÿï08@R qhihoins.com^ +ÿï08@Ruv4.fun^ +ÿï08@R 01211sop.xyz^ +ÿï08@R jcokamia.top^ +ÿï08@Rpa6.fun^ +ÿï08@R vtdgfisz.icu^ +ÿï08@R kcokamid.top^ +ÿï08@Rhp7.fun^ +ÿï08@Rtuvrutsnf.com^ +ÿï08@R rpfuvj.icu^ +ÿï08@R4ce.fun^ +ÿï08@Rh6o.fun^ +ÿï08@R gauqoith.com^ +ÿï08@R ccokamif.top^ +ÿï08@R saelphol.com^ +ÿï08@R pfbmht.icu^ +ÿï08@R31y.fun^ +ÿï08@R hcokamiu.top^ +ÿï08@R sterkisg.com^µ +ÿï08@R lagzoids.com^ +ÿï08@R njnhzh.icu^ +ÿï08@R8u0.fun^ +ÿï08@R pheetuth.com^ +ÿï08@R4ve.fun^ +ÿï08@R tmjzlr.icu^ +ÿï08@R orkreats.com^ +ÿï08@R2hl.fun^ +ÿï08@R oqidsgkq.com^ +ÿï08@R uewzjy.xyz^ +ÿï08@R +ztgha.xyz^ +ÿï08@R +djsxm.xyz^ +ÿï08@R0vc.fun^ +ÿï08@R cralphal.com^ +ÿï08@R ptrmnx.icu^ +ÿï08@R +iwpkp.xyz^ +ÿï08@R4gu.fun^ +ÿï08@R krikului.com^ +ÿï08@Red2.fun^ +ÿï08@R +zxpaa.xyz^ +ÿï08@R etallkiq.com^ +ÿï08@R +tbyfz.xyz^ +ÿï08@R rqvrbf.icu^ +ÿï08@R +tovbus.cn^ +ÿï08@R +17282.org^ +ÿï08@R btcili.top^ +ÿï08@R04o.fun^ +ÿï08@R nagvaxvy.com^ +ÿï08@R +epxlt.xyz^ +ÿï08@R lazzrv.icu^ +ÿï08@Rgeinkroll.com^ +ÿï08@R +wusfa.xyz^ +ÿï08@R +vmcnl.xyz^ +ÿï08@R +eskux.xyz^ +ÿï08@R kdomsid.top^ +ÿï08@R4wm.fun^ +ÿï08@R kychq.cn^ +ÿï08@R +xmvxo.xyz^ +ÿï08@R +geuba.xyz^ +ÿï08@R brephras.com^ +ÿï08@R7zb.fun^ +ÿï08@R nxdefd.icu^ +ÿï08@Rthonkoirs.com^ +ÿï08@R vftrfmia.icu^ +ÿï08@R hdomsiu.top^ +ÿï08@R2za.fun^ +ÿï08@R idomsio.top^ +ÿï08@R uuqrisuy.com^ +ÿï08@Re7h.fun^ +ÿï08@R jdomsia.top^ +ÿï08@R +ixbua.xyz^ +ÿï08@R tndbnriz.icu^ +ÿï08@R eisnaisv.com^ +ÿï08@R puhmtt.icu^ +ÿï08@R cdomsif.top^ +ÿï08@Rok5.fun^ +ÿï08@R drauvea.com^ +ÿï08@R riscats.com^ +ÿï08@R jebrhb.icu^ +ÿï08@Rbc4.fun^ +ÿï08@R rvxsvwqf.icu^ +ÿï08@R vdhf042.fun^ +ÿï08@R tridroin.com^ +ÿï08@R hdjthzg.cn^ö +ÿï08@R pxhuiben.com^ +ÿï08@R oliver.pub^ +ÿï08@R lbfwxr.icu^ +ÿï08@R eitilbyr.com^ +ÿï08@R3uo.fun^ +ÿï08@R ddhjabqe.icu^ +ÿï08@R majile.vip^ +ÿï08@R +nyhdv.com^ +ÿï08@R +osdxx.com^ +ÿï08@R bhegilut.com^ +ÿï08@Rs83.fun^ +ÿï08@R pinjzp.icu^ +ÿï08@Raos01080ss.xyz^ +ÿï08@R ztlkngyj.icu^ +$ÿï08@Rxxaks01080sspao.xyz^ +$ÿï08@Rxxaks01081sspao.xyz^ +$ÿï08@Rxxaks01091sspao.xyz^ +ÿï08@Rtu6.icu^ +ÿï08@R xukanvyl.com^ +ÿï08@R nyjelh.icu^ +ÿï08@R blbtibqk.icu^ +ÿï08@R chumealq.com^ +ÿï08@Ro8s.icu^ +ÿï08@Rwf7.icu^ +ÿï08@R ercoils.com^ +ÿï08@R jfrrnf.icu^ +ÿï08@Re50.icu^ +ÿï08@Raos01070ss.xyz^ +ÿï08@R sdyurlib.top^ +ÿï08@R lbfuvlyp.icu^ +ÿï08@Rstaivoiks.com^ +ÿï08@R gheslosy.com^ +ÿï08@R43a.icu^ +ÿï08@R +sckfcn.cn^ +ÿï08@R edyurliw.top^ +ÿï08@R jjplaqyo.icu^ +ÿï08@R tixoilll.com^ +ÿï08@R hitalsli.com^ +ÿï08@R lcvwdn.icu^ +ÿï08@R1tp.icu^ +ÿï08@R jdyurlia.top^ +ÿï08@R orcinhyi.com^ +ÿï08@R thruksyq.com^ +ÿï08@Rz4v.icu^ +ÿï08@R kdyurlid.top^ +ÿï08@R lirretsn.com^ +ÿï08@R nmzbrd.icu^ +ÿï08@R hrjciqyu.icu^ +ÿï08@R hdyurliu.top^ +ÿï08@Ren6.icu^ +ÿï08@R cachusrw.com^ +ÿï08@Ru57.icu^ +ÿï08@R idyurlio.top^ +ÿï08@R airakgyl.com^ +ÿï08@R scjtfh.xyz^ +ÿï08@R cdyurlif.top^ +ÿï08@R6w7.icu^ +ÿï08@Ry4l.icu^ +ÿï08@R drandoxo.com^ +ÿï08@Rh5r.icu^ +ÿï08@R bclimiv.top^ +ÿï08@R katoleiy.com^ +ÿï08@Rokpp01040.xyz^ +ÿï08@R hjdjfl.icu^â +ÿï08@R omxwt.cn^ +ÿï08@R tztmqvga.icu^ +ÿï08@R mclimix.top^ +ÿï08@Rcv7.icu^ +ÿï08@R ibyrwvi.cn^ +ÿï08@R lclimil.top^ +ÿï08@Rokpp01031.xyz^ +ÿï08@R rhndvagz.icu^ +ÿï08@Rokpp01030.xyz^ +ÿï08@R cuvedyqs.com^ +ÿï08@R jthotb.icu^ +ÿï08@R qhatarsl.com^ +ÿï08@R towmfs.com^ +ÿï08@R lqlwjr.icu^ +ÿï08@R ppxndfgf.icu^ +ÿï08@R1tv.icu^ +ÿï08@R uclimit.top^ +ÿï08@Rokpp01021.xyz^ +ÿï08@R94x.icu^ +ÿï08@R crevainv.com^ +ÿï08@R oclimik.top^ +ÿï08@R qeknikny.com^ +ÿï08@R nnfbxz.icu^ +!ÿï08@Rgmso01010oka.top^ +ÿï08@R bxheifoe.icu^ +ÿï08@R8fo.icu^ +ÿï08@R qclimiy.top^ +ÿï08@R cridotty.com^ +ÿï08@Ruk0.icu^ +ÿï08@R tclimii.top^ +ÿï08@R crigroik.com^ +ÿï08@R vopzhl.icu^ +ÿï08@R ltvutlyu.icu^ +ÿï08@R eclimiw.top^ +ÿï08@Rsh5.icu^ +ÿï08@Rcraivrals.com^ +ÿï08@Rokpp12311.xyz^ +ÿï08@Rnxcm.cc^ +ÿï08@Rnh7.icu^ +ÿï08@R wclimie.top^ +ÿï08@R googlehm.cc^ +ÿï08@R xamniksq.com^ +ÿï08@R pytexb.icu^ +ÿï08@R xbfebqya.icu^ +ÿï08@Ro3t.icu^ +ÿï08@R kclimid.top^ +ÿï08@R sholphot.com^ +ÿï08@R5yl.icu^ +ÿï08@R sclimib.top^ +ÿï08@R iemhotqk.com^ +ÿï08@R rvxmlj.icu^ +ÿï08@R vjzvgvgz.icu^ +ÿï08@R3xl.icu^ +ÿï08@R iclimio.top^ +ÿï08@R ljjhfw34.fun^ +ÿï08@R scrugokl.com^ +ÿï08@R6ku.icu^ +ÿï08@R jclimia.top^ +ÿï08@R noslugut.com^ +ÿï08@R rklzpo.com^ +ÿï08@R mwilmix.top^ +ÿï08@R tsbrzz.icu^ +ÿï08@R trjfoagf.icu^ +ÿï08@Rsn9.icu^Ø +ÿï08@R cclimif.top^ +ÿï08@R8cp.icu^ +ÿï08@R hclimiu.top^ +ÿï08@R relgrads.com^ +ÿï08@R ncvwnp.icu^ +ÿï08@R sachaits.com^ +ÿï08@R fzdwtage.icu^ +ÿï08@Rgw8.icu^ +ÿï08@R bwilmiv.top^ +!ÿï08@Rgmso12271oka.top^ +ÿï08@Rscreddoit.com^ +ÿï08@Rn8u.icu^ +ÿï08@R pzzedx.icu^ +ÿï08@R owilmik.top^ +ÿï08@Rjy7.icu^ +!ÿï08@Rgmso12261oka.top^ +ÿï08@R dhnnbfok.icu^ +ÿï08@R zaeqrath.com^ +ÿï08@R qovunx.com^ +ÿï08@R lurefq.com^ +ÿï08@R5ik.icu^ +ÿï08@R lwilmil.top^ +ÿï08@R vriesziy.com^ +ÿï08@R rwdjrn.icu^ +ÿï08@R twilmii.top^ +ÿï08@Rr4u.icu^ +ÿï08@R bpxxgkoj.icu^ +!ÿï08@Rgmso12251oka.top^ +ÿï08@R6cs.icu^ +ÿï08@R uwilmit.top^ +ÿï08@R beenedsl.com^ +ÿï08@R tghrfv.icu^ +ÿï08@R wwilmie.top^ +ÿï08@Rk9u.icu^ +ÿï08@R shuucerz.com^ +ÿï08@R qwilmiy.top^ +ÿï08@Rm51.icu^ +ÿï08@R rusnuiyu.com^ +ÿï08@R ndlwtl.icu^ +ÿï08@R swilmib.top^ +ÿï08@Rnx8.icu^ +ÿï08@Rirgidshiv.com^ +ÿï08@Rix4.icu^ +ÿï08@R ewilmiw.top^ +ÿï08@R pnpbjt.icu^ +ÿï08@R tronkuks.com^ +ÿï08@Rir4.icu^ +ÿï08@R jwilmia.top^ +ÿï08@R niecarsg.com^ +ÿï08@R4fr.icu^ +ÿï08@R kwilmid.top^ +ÿï08@R rktjxj.icu^ +ÿï08@R orodsmnu.com^ +ÿï08@R muiuim.icu^ +ÿï08@R popsvg.xyz^ +ÿï08@R3vp.icu^ +ÿï08@R vvfgjzwa.icu^ +ÿï08@R hwilmiu.top^ +ÿï08@R ruancq.xyz^ +ÿï08@Rei7.icu^ +ÿï08@R iwilmio.top^ +ÿï08@R +qimaf.com^ +ÿï08@Rledollull.com^ +ÿï08@R grmzwc.icu^ã +!ÿï08@Rppio12200ios.top^ +ÿï08@R ondraits.com^ +ÿï08@R lhxolz.icu^ +ÿï08@R tdzqoewz.icu^ +ÿï08@R1xb.icu^ +ÿï08@R mtimiyx.top^ +ÿï08@R zalnouiy.com^ +ÿï08@Rgi0.icu^ +ÿï08@R cwilmif.top^ +ÿï08@R threkuth.com^ +ÿï08@R nrbwzh.icu^ +ÿï08@R32n.icu^ +ÿï08@R ltimiyl.top^ +!ÿï08@Rppio12191ios.top^ +ÿï08@R gherkax.com^ +ÿï08@R ibqemk.icu^ +ÿï08@Rh0d.icu^ +ÿï08@R btimiyv.top^ +ÿï08@R ihearsoh.com^ +ÿï08@R juutckrt.icu^ +ÿï08@R qtimiyy.top^ +ÿï08@R4jc.icu^ +ÿï08@R screspoy.com^ +ÿï08@Rua2.icu^ +ÿï08@R ttimiyi.top^ +ÿï08@R elloisny.com^ +ÿï08@R zabpgtjh.icu^ +ÿï08@R utimiyt.top^ +ÿï08@Ree5.icu^ +ÿï08@R pofbpx.icu^ +ÿï08@R +sckyf.com^ +!ÿï08@Rppio12181ios.top^ +ÿï08@R stongors.com^ +ÿï08@R4we.icu^ +ÿï08@R otimiyk.top^ +ÿï08@R qonbibff.icu^ +ÿï08@Rn7a.icu^ +ÿï08@R craegvin.com^ +ÿï08@R chussuth.com^ +ÿï08@Rnm2.icu^ +ÿï08@R mvwitz.xyz^ +ÿï08@R wlouqsz.xyz^ +ÿï08@R hcznaubp.icu^ +ÿï08@R truxedku.com^ +ÿï08@Rqm2.icu^ +ÿï08@R itimiyo.top^ +ÿï08@R vegaingi.com^ +ÿï08@R3lo.icu^ +ÿï08@R jtimiya.top^ +ÿï08@R aigfednd.icu^ +ÿï08@Rchonaesor.com^ +ÿï08@R ktimiyd.top^ +ÿï08@Ra5t.icu^ +ÿï08@R xpicj0.icu^ +ÿï08@R siconoi.com^ +ÿï08@Rz8t.icu^ +ÿï08@R stimiyb.top^ +ÿï08@R owsrgljb.icu^ +ÿï08@R ziqniduy.com^ + ÿï08@Rdddstew6cw8.fun^ +ÿï08@R ctimiyf.top^ +ÿï08@R8et.icu^ +ÿï08@Rtreimphens.com^ +ÿï08@Rzr3.icu^Ç +ÿï08@R htimiyu.top^ +ÿï08@R neldatsy.com^ +ÿï08@R yqlzccxn.icu^ +ÿï08@R bjimtyv.top^ +ÿï08@Rd0m.icu^ +ÿï08@R xoceonsl.com^ +ÿï08@Rjo4.icu^ +ÿï08@R mjimtyx.top^ +ÿï08@R altolsqy.com^ +ÿï08@R fkjdiefz.icu^ +ÿï08@Rx4d.icu^ +ÿï08@R ojimtyk.top^ +ÿï08@Rtteferty33.fun^ +ÿï08@R suzalsln.com^ +ÿï08@Ra7c.icu^ +ÿï08@R ljimtyl.top^ +ÿï08@R wyvpkmbj.icu^ +ÿï08@R thunnqyo.com^ +ÿï08@R wjimtye.top^ +ÿï08@R2wt.icu^ +ÿï08@Rphainoirs.com^ +ÿï08@R qjimtyy.top^ +ÿï08@R3ni.icu^ +ÿï08@R nilipuyn.com^ +ÿï08@R peclevnl.icu^ +ÿï08@Rwt6.icu^ +ÿï08@R tjimtyi.top^ +ÿï08@R riemutmh.com^ +ÿï08@Rxu6.icu^ +ÿï08@R ujimtyt.top^ +ÿï08@R attelaoe.com^ +ÿï08@R dsoxgdjv.icu^ +ÿï08@R3ts.icu^ +ÿï08@R sjimtyb.top^ +ÿï08@R guqoinly.com^ +ÿï08@R wcdfxj.xyz^ +ÿï08@R7hb.icu^ +ÿï08@R nmhbmfxh.icu^ +ÿï08@R ejimtyw.top^ +ÿï08@R bhukkeks.com^ +ÿï08@Rf7j.icu^ +ÿï08@R jjimtya.top^ +ÿï08@R4sq.icu^ +ÿï08@R krinkred.com^ +ÿï08@R zikeke7.com^ +ÿï08@Rvh8.icu^ +ÿï08@R kjimtyd.top^ +ÿï08@Rkhengrull.com^ +ÿï08@R ugajiwft.icu^ +ÿï08@R hjimtyu.top^ +ÿï08@Ru6u.icu^ +ÿï08@Rii3.icu^ +ÿï08@R +inzut.com^ +ÿï08@R irkrors.com^ +ÿï08@Re9h.icu^ +ÿï08@Rt7t.icu^ +ÿï08@R ijimtyo.top^ +ÿï08@R eatnontf.icu^ +ÿï08@R khesuts.com^ +ÿï08@R mdamcsx.top^ +ÿï08@Rm6d.icu^ +ÿï08@R4i1.icu^ +ÿï08@Rq8q.icu^ +ÿï08@R inphais.com^Ç +ÿï08@R cjimtyf.top^ +ÿï08@R vokzqgjp.icu^ +ÿï08@R sokars.com^ +ÿï08@Rgrerzieds.com^ +ÿï08@R c4uy.icu^ +ÿï08@R k5uj.icu^ +ÿï08@R udamcst.top^ +ÿï08@R thaqne.com^ +ÿï08@R q1bp.icu^ +ÿï08@R odamcsk.top^ +ÿï08@R lumvkebr.icu^ +ÿï08@R scroscoi.com^ +ÿï08@R ldamcsl.top^ +ÿï08@Rd5r.icu^ +ÿï08@Rfo0.icu^ +ÿï08@Rnuvaioqds.com^ +ÿï08@R olqead.com^ +ÿï08@R1yj.icu^ +ÿï08@R bdamcsv.top^ +ÿï08@R sconat.com^ +ÿï08@R cidhmxxb.icu^ +ÿï08@R ig69.vip^ +ÿï08@R qdamcsy.top^ +ÿï08@R dv0i.icu^ +ÿï08@R 4cx5.icu^ +ÿï08@R criqai.com^ +ÿï08@R fy60.icu^ +ÿï08@R tdamcsi.top^ +ÿï08@R jcwlsofn.icu^ +ÿï08@R brircel.com^ +ÿï08@R af6s.icu^ +ÿï08@R edamcsw.top^ +ÿï08@R e8d7.icu^ +!ÿï08@Raoao12011iis.top^ +ÿï08@R a2wx.icu^ +ÿï08@R caaqot.com^ +ÿï08@R zio8.icu^ +ÿï08@R wdamcse.top^ +ÿï08@R ruqaks.com^ +ÿï08@R bmhtwefv.icu^ +ÿï08@R olkoins.com^ +ÿï08@R w59g.icu^ +ÿï08@R sdamcsb.top^ +ÿï08@Rao1201kas.top^ +ÿï08@R igabcgnh.icu^ +ÿï08@R saizih.com^ +ÿï08@R 1gtp.icu^ +ÿï08@R 96rj.icu^ +ÿï08@R kdamcsd.top^ +ÿï08@R oo3z.icu^ +ÿï08@R idamcso.top^ +ÿï08@R vrulqil.com^ +ÿï08@R jdamcsa.top^ +ÿï08@R dnd2.icu^ +ÿï08@R xa7j.icu^ +ÿï08@R 0dwm.icu^ +ÿï08@R satfyxbt.icu^ +ÿï08@R zodoth.com^ +ÿï08@Rtqeferty33.fun^ +ÿï08@R y7ts.icu^ +ÿï08@Ryuanzunxs1.com^ +ÿï08@R z9k7.icu^ +ÿï08@R hdamcsu.top^ +ÿï08@R qovith.com^ø +ÿï08@Rkhastreol.com^ +ÿï08@R gokrafxr.icu^ +ÿï08@R 9xxy.icu^ +ÿï08@R oweizak.top^ +ÿï08@R strenots.com^ +ÿï08@R lweizal.top^ +ÿï08@R zumneojf.icu^ +ÿï08@R dheirzeh.com^ +ÿï08@R uxieks.com^ +ÿï08@R egg0.icu^ +ÿï08@R sirrors.com^ +ÿï08@R uldaens.com^ +ÿï08@R qidzwhfp.icu^ +ÿï08@R g41i.icu^ +ÿï08@R tweizai.top^ +ÿï08@R wcwkcus.top^ +ÿï08@R brulpha.com^ +ÿï08@R uweizat.top^ +ÿï08@R lipheak.com^ +ÿï08@R xcwdcynb.icu^ +ÿï08@R wweizae.top^ +ÿï08@R az5i.icu^ +ÿï08@R yoqqiev.top^ +ÿï08@R fiezaits.com^ +ÿï08@R qweizay.top^ +ÿï08@R xevaix.com^ +ÿï08@R sweizab.top^ +ÿï08@R eweizaw.top^ +ÿï08@R dt0j.icu^ +ÿï08@R oqipegjz.icu^ +ÿï08@R +izuts.com^ +ÿï08@R jweizaa.top^ +ÿï08@R 31up.icu^ +ÿï08@Rao1122kas.top^ +ÿï08@R drenqils.com^ +ÿï08@R kweizad.top^ +ÿï08@R tukveks.com^ +ÿï08@R hwplypbn.icu^ +ÿï08@R zmrmbc.xyz^ +ÿï08@Rao1123kas.top^ +ÿï08@R cukuix.com^ +ÿï08@R wi1f.icu^ +!ÿï08@Raoao11211iis.top^ +ÿï08@R luunels.com^ +ÿï08@R qcixkb1.xyz^ +ÿï08@R pjb9gv9.xyz^ +ÿï08@R iweizao.top^ +ÿï08@R nois5gj.xyz^ +ÿï08@R qhestrad.com^ +ÿï08@R vkbxaixl.icu^ +ÿï08@R daiitmk.cn^ +ÿï08@R syfgtby.cn^ +ÿï08@R hweizau.top^ +ÿï08@R 1jok.icu^ +ÿï08@R ilzies.com^ +ÿï08@R cdlekgr.icu^ +ÿï08@R +cxvyk.com^ +ÿï08@R 990215.xyz^ +ÿï08@Rao1120kas.top^ +!ÿï08@Raoao11201iis.top^ +ÿï08@R feubgzfx.icu^ +ÿï08@R 1buo.icu^ +ÿï08@R olgrae.com^a[href*=".bbb748568.com"]ø +ÿï08@R 3sas.icu^ +ÿï08@R cweizaf.top^ +ÿï08@R gritoils.com^ +ÿï08@R thacreks.com^ +ÿï08@R snnmgdt.icu^ +ÿï08@R 4t6u.icu^ +ÿï08@R scihuns.com^ +ÿï08@R 7aey.icu^ +ÿï08@R +htwjo.com^ +ÿï08@R +cmelr.com^ +$ÿï08@Ryrccils0spqnkc3.xyz^ +$ÿï08@Rz9uvpwarkk1mnpf.xyz^ +ÿï08@R wsgnihbh.icu^ +ÿï08@R iflucav.icu^ +ÿï08@Rao1118kas.top^ +ÿï08@R +mhwy6.icu^ +ÿï08@R uweisit.top^ +ÿï08@R oweisik.top^ +ÿï08@R mlgowell.org^ +ÿï08@R +ge189.com^ +ÿï08@R usgowell.com^ +ÿï08@R usgowell.org^ +ÿï08@R wweisie.top^ +ÿï08@R yxjcyxy.icu^ +ÿï08@R dmevejjt.icu^ +ÿï08@R +zfwgn.icu^ +ÿï08@R qweisiy.top^ +ÿï08@R tweisii.top^ +ÿï08@R qphkuua.icu^ +ÿï08@R ngxzkaxf.icu^ +ÿï08@R +qgg7e.icu^ +ÿï08@R eweisiw.top^ +ÿï08@R uaqdgrfr.icu^ +ÿï08@R gzfsqrc.icu^ +ÿï08@R kweisid.top^ +ÿï08@R +o8zoz.icu^ +ÿï08@R +ekzmk.icu^ +ÿï08@R sweisib.top^ +ÿï08@R bujlmitd.icu^ +ÿï08@R wrdamoe.icu^ +ÿï08@R iweisio.top^ +ÿï08@R +u5ps5.icu^ +ÿï08@R +lwvrv.icu^ +ÿï08@R +vnuuh.icu^ +ÿï08@R jweisia.top^ +ÿï08@Rstunkrins.com^ +ÿï08@R rjwpwod.icu^ +ÿï08@R gheqien.com^ +ÿï08@R mjbidlg.icu^ +ÿï08@R locpikbb.icu^ +ÿï08@R +chupl.icu^ +ÿï08@R cweisif.top^ +ÿï08@R +y0mwy.icu^ +ÿï08@R pxyjqea.icu^ +ÿï08@Rxuugnuits.com^ +ÿï08@R hweisiu.top^ +ÿï08@R ccobksxz.icu^ +ÿï08@R utbyvyl.icu^ +ÿï08@R dchdmhf.cn^ +ÿï08@R sopqvhe.cn^ +ÿï08@R +iqi4l.icu^a[href*=".huibo222.com/"]a[href*=".moo8923.net"]a[href*=".skw036.cc"]„ +ÿï08@R +qqxi6.icu^ +ÿï08@R eiphrut.com^ +!ÿï08@Raoao11121iis.top^ +!ÿï08@Raoao11111iis.top^ +!ÿï08@Raoao11120iis.top^ +ÿï08@R roqairs.com^ +ÿï08@R cbdqzbi.icu^ +ÿï08@R sivxobpn.icu^ +ÿï08@R +370jj.icu^ +ÿï08@R +z3zex.icu^ +ÿï08@R kdzgrvn.icu^ +ÿï08@R shestieh.com^ +ÿï08@R jwhjqjfl.icu^ +ÿï08@R +c05ua.icu^ +ÿï08@R +8ail6.icu^ +ÿï08@R drihmae.com^ +ÿï08@R avxonsp.icu^ +ÿï08@R 58shuz.com^ +ÿï08@Rtrimmoits.com^ +ÿï08@R dn4qoz.com^ +ÿï08@R grirqaks.com^ +%ÿï08@Rxn--swt207gl1hzc.net^ +ÿï08@R 68yscw.com^ +ÿï08@R tqanmatx.icu^ +ÿï08@R kxygsjv.icu^ +ÿï08@R +41grk.icu^ +ÿï08@R +eddcc.icu^ +ÿï08@Rfeittoill.com^ +ÿï08@R dhukul.com^ +ÿï08@R reisyxy.icu^ +ÿï08@R sugilip.cn^ +ÿï08@R trpyceq.cn^ +ÿï08@R +6gute.icu^ +ÿï08@R +q2usj.icu^ +ÿï08@R pheqae.com^ +ÿï08@R ittaels.com^ +ÿï08@R tyaduqq.icu^ +ÿï08@R gftefmt.icu^ +ÿï08@R ygoibya.icu^ +ÿï08@R herzotph.icu^ +ÿï08@R +pvk2e.icu^ +ÿï08@R +zjib0.icu^ +ÿï08@R +ipyhf.icu^ +ÿï08@R cruhut.com^ +ÿï08@R scoldak.com^ +ÿï08@Rdkasffredf.xyz^ +ÿï08@R qnvwjpr.icu^ +ÿï08@R stragmik.com^ +ÿï08@R yxrmbjw.icu^ +ÿï08@R gnyuhzd.icu^ +ÿï08@R rykhukxt.icu^ +ÿï08@R vryoacs.icu^ +ÿï08@R +szxf4.icu^ +ÿï08@R hyjqgpu.top^ +ÿï08@R iyjqgpo.top^ +ÿï08@R ohtusgy.icu^ +ÿï08@R nuiknnf.icu^ +ÿï08@R gdwudmv.icu^ +ÿï08@R +xuakn.icu^ +ÿï08@R boubliv.top^ +ÿï08@R cyjqgpf.top^ +ÿï08@R vsojfsoj.com^ +ÿï08@R ezrcowa.icu^ +ÿï08@R uwsaqoi.icu^ã +ÿï08@R ipqajyy.icu^ +ÿï08@R +2sfpy.icu^ +ÿï08@R ooublik.top^ +ÿï08@R +hj8gf.icu^ +ÿï08@R loublil.top^ +ÿï08@R imniel.com^ +ÿï08@R kiolpia.icu^ +ÿï08@R bdcmwcl.icu^ +ÿï08@R urpkktc.icu^ +ÿï08@R +dsfh2.icu^ +ÿï08@R toublii.top^ +ÿï08@R uoublit.top^ +ÿï08@R +7f7rt.icu^ +ÿï08@R qoubliy.top^ +ÿï08@R vuirssd.icu^ +ÿï08@R kjnsgqe.icu^ +ÿï08@R +rbift.icu^ +ÿï08@R heiviek.com^ +ÿï08@R ifmccdn.icu^ +ÿï08@R vrelai.com^ +ÿï08@R woublie.top^ +ÿï08@R +ti4la.icu^ +ÿï08@R graesol.com^ +ÿï08@R ctlacnh.icu^ +ÿï08@R xggcyef.icu^ +ÿï08@R g4y7uuk.com^ +ÿï08@R pmwofrq.icu^ +ÿï08@R soublib.top^ +ÿï08@R bhakte.com^ +!ÿï08@Rlalabaos1101.top^ +ÿï08@R +1dki0.icu^ +ÿï08@R eoubliw.top^ +ÿï08@R qkgllif.icu^ +ÿï08@R extopae.icu^ +ÿï08@R +yj2nf.icu^ +ÿï08@R struhuts.com^ +ÿï08@R joublia.top^ +ÿï08@R +bwz4e.icu^ +ÿï08@R koublid.top^ +ÿï08@R ioublio.top^ +ÿï08@R whrwlxg.icu^ +ÿï08@R bdawrsi.icu^ +ÿï08@R houbliu.top^ +ÿï08@R +6ft8a.icu^ +ÿï08@R aikkits.com^ +ÿï08@R mzpecui.icu^ +ÿï08@R chmueyv.icu^ +ÿï08@R kemmars.com^ +ÿï08@R +sv5nm.icu^ +ÿï08@Rtreferty33.fun^ +ÿï08@R coublif.top^ +ÿï08@R +cadcc.icu^ +ÿï08@R +1gmzo.icu^ +ÿï08@R crnmyrk.icu^ +ÿï08@R +hdxyj.icu^ +ÿï08@R jowkkzx.icu^ +ÿï08@R obwnaon.icu^ +ÿï08@R 96696612.top^ +ÿï08@R +lkqaq.icu^ +ÿï08@R +tnfno.icu^ +ÿï08@R qnqtgyq.icu^ +ÿï08@R sjluuom.icu^ +ÿï08@R +8gra3.icu^ +ÿï08@R +5z2oy.icu^ç +ÿï08@R qqganna.icu^ +ÿï08@R uouvxlit.top^ +ÿï08@R dfhgry.com^ +ÿï08@R itjcqlp.icu^ +ÿï08@R xxqmtod.icu^ +ÿï08@R qouvxliy.top^ +ÿï08@R +ov8ct.icu^ +ÿï08@R +fca6f.icu^ +ÿï08@R touvxlii.top^ +ÿï08@R sgozmks.icu^ +ÿï08@R omheth.com^ +ÿï08@R allkmbr.icu^ +ÿï08@R eouvxliw.top^ +ÿï08@R dsikpuv.icu^ +ÿï08@R eeaczcf.icu^ +!ÿï08@Rlalabaos1025.top^ +ÿï08@Rycq.cab^ +ÿï08@R wouvxlie.top^ +ÿï08@Rxhm.pub^ +ÿï08@R +moqdy.icu^ +ÿï08@R ohkfmi.xyz^ +ÿï08@R lgkocdi.icu^ +ÿï08@R +gjnbf.com^ +ÿï08@R qdjsiyt.icu^ +ÿï08@R huoxun.wang^ +ÿï08@R macos.space^ +ÿï08@R rdxqbp.xyz^ +ÿï08@R sksbgm.xyz^ +ÿï08@R enkvum.xyz^ +ÿï08@R rcdwhp.xyz^ +ÿï08@R iouvxlio.top^ +ÿï08@R snueirk.icu^ +ÿï08@R cvmuia.xyz^ +ÿï08@R +pg2bk.icu^ +ÿï08@R gyunce.xyz^ +ÿï08@R mlgowell.com^ +ÿï08@Rrqroytj33.fun^ +ÿï08@R couvxlif.top^ +ÿï08@R tarvrf.xyz^ +ÿï08@R sbmhqe.xyz^ +ÿï08@R dayujs.top^ +ÿï08@R +fanjs.top^ +ÿï08@R qjoges.xyz^ +ÿï08@R houvxliu.top^ +ÿï08@R gpowow.xyz^ +ÿï08@R jizxnr.xyz^ +ÿï08@R msmcoa.xyz^ +ÿï08@R umwcyw.xyz^ +!ÿï08@Rlalabaos1021.top^ +ÿï08@R uvwnkmf.icu^ +ÿï08@R gwogrgq.icu^ +ÿï08@R exqvak.xyz^ +ÿï08@R +tfzah.icu^ +ÿï08@R +rbsr0.icu^ +ÿï08@R buresdv.top^ +ÿï08@R +4fs3r.icu^ +ÿï08@R muresdx.top^ +ÿï08@R +on5ga.icu^ +!ÿï08@Rlalabaos1020.top^ +ÿï08@R mdqikg.xyz^ +ÿï08@R +sv2fo.icu^ +ÿï08@R jyxzrb.xyz^ +ÿï08@R ndysxhs.icu^ +ÿï08@R iairuo.xyz^Ÿ +ÿï08@R syshwc.xyz^ +ÿï08@R ouresdk.top^ +ÿï08@R atorks.xyz^ +ÿï08@R 99jinpin.com^ +ÿï08@R luresdl.top^ +ÿï08@R 033ajy.xyz^ +ÿï08@R 0er7pc8.xyz^ +ÿï08@R 0h3uds.com^ +ÿï08@R +0pdsa.icu^ +ÿï08@R +11dyw.com^ +ÿï08@R 1iohncj.xyz^ +ÿï08@R +1p3yg.icu^ +ÿï08@R 212ehae.fun^ +ÿï08@R 2325fdrf.fun^ +ÿï08@R +28t1ya.cn^ +!ÿï08@R2efgcdcjr000.fun^ +ÿï08@R +2rbda.icu^ +ÿï08@R3625ggtp1.com^ +ÿï08@R 4bfx0u.com^ +ÿï08@R +4ir17.icu^ +ÿï08@R +4oz4n.icu^ +ÿï08@R +4q87v.icu^ +#ÿï08@R55726zubo56686.com^ +"ÿï08@R5891344.xn--j1amh^ +ÿï08@R +5mltq.icu^ +ÿï08@R +62zd0.icu^ +ÿï08@R 6820tp1.com^ +#ÿï08@R68287zubo85737.com^ +!ÿï08@R6efgcdcjr000.fun^ +ÿï08@R 6qyxeob.xyz^ +#ÿï08@R73336zubo25326.com^ +#ÿï08@R786yfvedhcbxjk.top^ +ÿï08@R +8q88n.icu^ +#ÿï08@R93692zubo66936.com^ +#ÿï08@R96382zubo66756.com^ +ÿï08@R abixkw.xyz^ +ÿï08@R abjalrq.cn^ +ÿï08@Rabsalomcsa.com^ +ÿï08@Racasadf112.cn^ +ÿï08@R acdf115.cn^ +ÿï08@R acdfwe113.cn^ +ÿï08@R acdref117.cn^ +ÿï08@Racdrewrf711.cn^ +ÿï08@R acdwef114.cn^ +ÿï08@R acewdf118.cn^ +ÿï08@R aeryt111.fun^ +ÿï08@R aesxgy.xyz^ +ÿï08@R afewe611.cn^ +ÿï08@R agufoi.xyz^ +ÿï08@R +aiqks.top^ +ÿï08@R ajockk.xyz^ +ÿï08@R ajybgc.xyz^ +ÿï08@R amsbce.xyz^a[href*=".asd257642.com:"]a[href*=".bjty7.vip"]a[href*=".hg63222.com"]a[href*=".kaiyunty.live"]a[href*=".labsda.com"]a[href*=".nhjhu25hd.com"]a[href*="/75333cc.com:"]a[href*="/bjty96.vip"]a[href*="/gg1132.vip"]a[href*="/souv5.com/"]a[href="https://yk63.me"]  +ÿï08@Rarewcdf116.cn^ +ÿï08@R arojgi.xyz^ +ÿï08@R aryici.xyz^ +ÿï08@R ausfyk.xyz^ +ÿï08@R aushaq.top^ +ÿï08@R avqdhss.icu^ +ÿï08@R ayalcid.icu^ +ÿï08@R ayebsc.xyz^ +ÿï08@R az697jylm.cc^ +ÿï08@R azenco.xyz^ +ÿï08@R baggvon.icu^ +ÿï08@R baigamp.icu^ +%ÿï08@Rbaigh8eosmgie01.site^ +%ÿï08@Rbaigh8eosmgie02.site^ +ÿï08@Rbaijs010.shop^ +ÿï08@R baijs02.shop^ +ÿï08@R baijs04.shop^ +ÿï08@R baijs05.shop^ +ÿï08@R baijs06.shop^ +ÿï08@R baijs07.shop^ +ÿï08@R baijs08.shop^ +ÿï08@R baijs09.shop^ +ÿï08@Rbalili2024.top^ +ÿï08@R bapa215.top^ +ÿï08@R bebxhcip.icu^ +ÿï08@R bedzbu.xyz^ +ÿï08@R beryt111.fun^ +ÿï08@R +bewr1.com^ +ÿï08@R bewrutv.top^ +ÿï08@R bgbg00.fun^ +ÿï08@R bghebf.xyz^ +ÿï08@R bhovrath.com^ +ÿï08@R +bieuc.icu^ +ÿï08@R bkiterv.top^ +!ÿï08@Rblasedustin.shop^ +ÿï08@R bld.mobi^ +ÿï08@R blinxmi.icu^ +ÿï08@R bmougwx.icu^ +ÿï08@R bmqulua.icu^ +ÿï08@R bndxrr.xyz^ +ÿï08@R bnhorn.xyz^ +-ÿï08@Rbnrk7esglquispx2lsluttlm.xyz^ +ÿï08@R bojyvp.xyz^ +ÿï08@R bovytl.xyz^ +ÿï08@R bowoprf.icu^ +ÿï08@R bowvses.icu^ +ÿï08@R brutvncv.top^ +ÿï08@R btvbnrwo.icu^ +ÿï08@R bumnxiev.top^ +ÿï08@R bvdenx.xyz^ +ÿï08@R bwurserv.top^ +ÿï08@R bxmazls.icu^ +ÿï08@R +bxqgk.icu^ +ÿï08@R bylwtf.xyz^ +ÿï08@R byretuv.top^ +ÿï08@R bytmfj.xyz^ +ÿï08@R caicme.xyz^ +ÿï08@R caqreg.xyz^ +ÿï08@R cdcs34.fun^ +ÿï08@R cdickef.top^ +ÿï08@R cdmyeg.xyz^ +ÿï08@R cdscs990.fun^ +ÿï08@R cdszgg.xyz^ +ÿï08@R cdunwi.xyz^� +ÿï08@R ceryt111.fun^ +ÿï08@R cewrutf.top^ +ÿï08@R cfdvd779.fun^ +ÿï08@R cggyyi.xyz^ +ÿï08@R cgskys.xyz^ +ÿï08@R checbox.cc^ +ÿï08@R chooncv.icu^ +ÿï08@R ckyriuf.icu^ +ÿï08@R clkwnl.xyz^ +ÿï08@R clmcam.xyz^ +ÿï08@R cosmo100.top^ +ÿï08@R cosouy.xyz^ +ÿï08@R cowcuo.xyz^ +ÿï08@R crutvncf.top^ +ÿï08@Rcsdcfvgf4.fun^ +ÿï08@R csdsa22.fun^ +ÿï08@R csfds000.fun^ +ÿï08@R ctkyom.xyz^ +ÿï08@R curesdf.top^ +ÿï08@Rcvdfvdfv90.fun^ +ÿï08@R cvujac.xyz^ +ÿï08@R cwaterf.top^ +ÿï08@R cwerilxf.top^ +ÿï08@R cwwgqu.xyz^ +ÿï08@R cysgcm.xyz^ +ÿï08@R +d2tf0.icu^ +ÿï08@R dabajd.xyz^ +ÿï08@R dairzih.com^ +ÿï08@R dajs001.shop^ +ÿï08@R dasda64.fun^ +$ÿï08@Rdasdujaosjdioad.com^ +ÿï08@R dchyjb.xyz^ +ÿï08@R ddlmsoyo.icu^ +ÿï08@R ddlzlr.xyz^ +ÿï08@R denjpl.xyz^ +ÿï08@R dgkship.icu^ +ÿï08@R dgrgr34.fun^ +ÿï08@R diendh.xyz^ +ÿï08@R djecgyk.icu^ +ÿï08@Rdkasdeerw.xyz^ +ÿï08@R dkhffh.xyz^ +ÿï08@R +dktad.com^ +ÿï08@R dopklb.xyz^ +ÿï08@R doujs01.shop^ +ÿï08@Rdoujs010.shop^ +ÿï08@R doujs02.shop^ +ÿï08@R doujs03.shop^ +ÿï08@R doujs04.shop^ +ÿï08@R doujs05.shop^ +ÿï08@R doujs06.shop^ +ÿï08@R doujs07.shop^ +ÿï08@R doujs08.shop^ +ÿï08@R doujs09.shop^ +ÿï08@R dpweupc.icu^ +ÿï08@R dqlrfmwp.icu^ +ÿï08@R drjs123.com^ +ÿï08@R drtrs55.fun^ +ÿï08@R dsad234.fun^ +ÿï08@R dsads55.fun^ +ÿï08@Rdsaewew21.fun^ +ÿï08@R dscds111.fun^ +ÿï08@R dsda21.fun^ +ÿï08@R dsdsa33.fun^ +ÿï08@R dsdsg44.fun^ì +ÿï08@R dshjbn.xyz^ +ÿï08@R dssddf33.fun^ +ÿï08@R dsukqsx.icu^ +ÿï08@R dvlith.xyz^ +ÿï08@R dxwksqa.icu^ +ÿï08@R +e1zin.icu^ +ÿï08@R eacdf119.cn^ +ÿï08@R eaqgsw.xyz^ +ÿï08@R edadmy.xyz^ +ÿï08@R edickew.top^ +ÿï08@R eeqweqw.fun^ +ÿï08@R eeryt111.fun^ +ÿï08@R eetlwsw.top^ +ÿï08@R eewrutw.top^ +ÿï08@Regesdashb8.fun^ +ÿï08@R ehmhqcn.cn^ +ÿï08@R ekltes.xyz^ +ÿï08@R ekykse.xyz^ +ÿï08@R enokouv.icu^ +ÿï08@R eqygki.xyz^ +ÿï08@R +er1h4.icu^ +ÿï08@R erqtga.xyz^ +ÿï08@R erutvncw.top^ +ÿï08@R esqzwq.xyz^ +ÿï08@R esyook.xyz^ +ÿï08@Retroytj33.fun^ +ÿï08@R euresdw.top^ +ÿï08@R evkzqs.xyz^ +ÿï08@R ewaterw.top^ +ÿï08@R ewerilxw.top^ +ÿï08@R ewqeq23.fun^ +ÿï08@R ewqws55.fun^ +ÿï08@R ewurserw.top^ +ÿï08@R eyyngo.xyz^ +ÿï08@R +f5zv2.icu^ +ÿï08@R fabu333.top^ +ÿï08@R fdtlfl.xyz^ +ÿï08@R fdyacma.icu^ +ÿï08@R fefwe334.fun^ +ÿï08@R ffbdbx.xyz^ +ÿï08@R fgdkfr.xyz^ +ÿï08@R fgnfpnae.icu^ +ÿï08@R fingkndk.com^ +ÿï08@R fpgonuk.icu^ +ÿï08@R fppcrl.xyz^ +ÿï08@R +fq01.shop^ +ÿï08@R fq010.shop^ +ÿï08@R +fq02.shop^ +ÿï08@R +fq03.shop^ +ÿï08@R +fq04.shop^ +ÿï08@R +fq05.shop^ +ÿï08@R +fq06.shop^ +ÿï08@R +fq07.shop^ +ÿï08@R frfve33.fun^ +ÿï08@R frgf99.fun^ +ÿï08@R frgre33.fun^ +ÿï08@R frntzz.xyz^ +ÿï08@R fsdf45.fun^ + ÿï08@Rfsijngnfsfk.com^ +ÿï08@R fspddt.xyz^ +ÿï08@R fwsfwef2.fun^ +ÿï08@R fywaaox.icu^ +ÿï08@R fzjbsvgz.icu^ +ÿï08@Rg11edashb1.fun^Û +ÿï08@R g6tgashb.fun^ +ÿï08@Rg7ghdash2.fun^ +ÿï08@R gahejiao.com^ +ÿï08@Rgbfedashb4.fun^ +ÿï08@Rgbgedashb8.fun^ +ÿï08@R gbndash2.fun^ +ÿï08@R gbqgwes.icu^ +ÿï08@Rgcddashb3.fun^ +ÿï08@Rgcvcdashb2.fun^ + ÿï08@Rgcvgedashb3.fun^ +ÿï08@R +gdd08.com^ +ÿï08@Rge3shbdf1.fun^ +ÿï08@Rgedafdshb7.fun^ +ÿï08@Rgedashb112.fun^ +ÿï08@Rgeddsashb3.fun^ + ÿï08@Rgedxssashb8.fun^ +ÿï08@Rgeewdashb3.fun^ +ÿï08@R geqshb22.fun^ +ÿï08@Rgesdxashb1.fun^ +ÿï08@Rgesfdashb5.fun^ +ÿï08@Rgessdashb6.fun^ + ÿï08@Rgesvfvfhhb6.fun^ +ÿï08@Rgewqashbwq.fun^ +ÿï08@R gfchck.xyz^ +ÿï08@Rgffedashb6.fun^ +ÿï08@Rgg3a.cc^ +ÿï08@R ggfdgd88.fun^ +ÿï08@R ghiuge55.fun^ +ÿï08@Rghjedashb6.fun^ +ÿï08@R ghwqbii.icu^ +ÿï08@Rgjkkdashb4.fun^ +ÿï08@Rgjmedashb0.fun^ +ÿï08@R gkcogyf.icu^ +ÿï08@R gkeolwi.icu^ +ÿï08@R gmmlmo.xyz^ +ÿï08@R gpmzkg.xyz^ +ÿï08@R gpqkeq.xyz^ +ÿï08@Rgqwwshbdd1.fun^ +ÿï08@Rgrewash1b.fun^ +ÿï08@R grihaith.com^ +ÿï08@Rgrondrens.com^ +ÿï08@Rgsdedash9b.fun^ +ÿï08@R gtdf33.fun^ +ÿï08@R guifudi.com^ +ÿï08@Rgvvedashb6.fun^ +ÿï08@R gxcdgm.xyz^ +ÿï08@R gxoaku.xyz^ +ÿï08@R hahaql.top^ + ÿï08@Rhasdjksndjk.com^ +ÿï08@R hauqks.top^ +ÿï08@R hauqou.top^ +ÿï08@R hbbynt.xyz^ +ÿï08@R hdickeu.top^ +ÿï08@Rheatherssb.com^ +ÿï08@R heryt111.fun^ +ÿï08@R hetlwsu.top^ +ÿï08@R hewrutu.top^ +ÿï08@R hfjmvr.xyz^ +ÿï08@R hhausq.top^ +ÿï08@R hhrerv.xyz^ +ÿï08@R hitoxx.xyz^ +ÿï08@R hkjzkrqz.icu^ +&ÿï08@Rhongi7ie8owiie01.site^ +&ÿï08@Rhongi7ie8owiie02.site^û +&ÿï08@Rhongi7ie8owiie03.site^ +ÿï08@R +hov15.icu^ +ÿï08@R +hp8g6.icu^ +ÿï08@R hrutvncu.top^ +ÿï08@R hsvmtn.xyz^ +ÿï08@R +hthvc.icu^ +ÿï08@R htoetgk.icu^ +ÿï08@R htxwzp.xyz^ +ÿï08@R huresdu.top^ +ÿï08@R hwateru.top^ +ÿï08@R hwerilxu.top^ +ÿï08@R hwurseru.top^ +ÿï08@R hwymoyv.icu^ +ÿï08@R +hyhy2.fun^ +ÿï08@R hyth74.fun^ +ÿï08@R +i2wq4.icu^ +ÿï08@R +iaiqk.top^ +ÿï08@R ibkoiw.xyz^ +ÿï08@R ibqmey.xyz^ +ÿï08@R icudqq.xyz^ +ÿï08@R idickeo.top^ +ÿï08@R iditero.top^ +ÿï08@R ieryt111.fun^ +ÿï08@R ietlwso.top^ +ÿï08@R iewruto.top^ +ÿï08@R iffobi.xyz^ +ÿï08@R ifxqubw.icu^ +ÿï08@R iggbky.xyz^ +ÿï08@R ihgluu.xyz^ +ÿï08@R ihssdas.icu^ + ÿï08@Rijeujkdhnvb.top^ +ÿï08@R ijksec.xyz^ +ÿï08@Rimgmin133.top^ +ÿï08@Rimgoss820.top^ +ÿï08@R +imndl.icu^ +ÿï08@R imusye.xyz^ +ÿï08@R ioykmxa.icu^ +ÿï08@R iqgessh.icu^ +ÿï08@R irgxwk.xyz^ +ÿï08@R irqaci.xyz^ +ÿï08@R irulws.xyz^ +ÿï08@R irutvnco.top^ +ÿï08@R itakrid.icu^ +ÿï08@R itqwesk.icu^ +ÿï08@R iuresdo.top^ +ÿï08@R iuuwuk.xyz^ +ÿï08@R iwatero.top^ +ÿï08@R iwerilxo.top^ +ÿï08@R iwursero.top^ +ÿï08@R izqeyo.xyz^ +ÿï08@R izwmfmu.icu^ +ÿï08@R +j7c16.icu^ +ÿï08@R +jauql.top^ +ÿï08@R jcppcmqa.icu^ +ÿï08@R jdfzfd.xyz^ +ÿï08@R jdickea.top^ +ÿï08@Rjdiekknmcb.com^ +ÿï08@R jditera.top^ +ÿï08@R jeryt111.fun^ +ÿï08@R jetlwsa.top^ +ÿï08@R jewruta.top^ +ÿï08@R jgjyxf.xyz^ +ÿï08@R jhlnlt.xyz^ +ÿï08@Rjianxuzuo.com^õ +ÿï08@R jias115.com^ +ÿï08@R jingjs.top^ +ÿï08@R jinxpn.xyz^ +'ÿï08@Rjiuab8eig2oateh01.site^ +ÿï08@R jiujy5r3.fun^ +ÿï08@R jmipzsn.icu^ +ÿï08@R jpwsuix.icu^ +ÿï08@R jqtnft.xyz^ +ÿï08@R jrjtibez.icu^ +ÿï08@R jrutvnca.top^ +ÿï08@R jsgapai.icu^ +ÿï08@R juresda.top^ +ÿï08@R jwatera.top^ +ÿï08@R jwerilxa.top^ +ÿï08@R jwursera.top^ +ÿï08@R jxjpnd.xyz^ +ÿï08@R +jy01.shop^ +ÿï08@R jy010.shop^ +ÿï08@R +jy04.shop^ +ÿï08@R +jy05.shop^ +ÿï08@R +jy06.shop^ +ÿï08@R +jy07.shop^ +ÿï08@R +jy08.shop^ +ÿï08@R +jy09.shop^ +ÿï08@R jyjrbz.xyz^ +ÿï08@R +jz4u1.icu^ +ÿï08@Rkaiyuan308.vip^ +ÿï08@Rkaiyuantp.vip^ +ÿï08@R kdicked.top^ +ÿï08@R kdopag.xyz^ +ÿï08@R keryt111.fun^ +ÿï08@R ketlwsd.top^ +ÿï08@R kewrutd.top^ +ÿï08@R kfocken.icu^ +ÿï08@R kgipui.xyz^ +ÿï08@R kgubus.xyz^ +ÿï08@R kgymoc.xyz^ +ÿï08@R kiykfux.icu^ +ÿï08@R klkk66.fun^ +ÿï08@R klmohbk.icu^ +ÿï08@R kloojzn.icu^ +ÿï08@R knuinws.icu^ +ÿï08@R +koauq.top^ +ÿï08@R kossog.xyz^ +ÿï08@R koufqy.xyz^ +ÿï08@R koytqo.xyz^ +ÿï08@R kpmsoq.xyz^ +ÿï08@R krutvncd.top^ +ÿï08@R kryeia.xyz^ +ÿï08@R kuresdd.top^ +ÿï08@R kvkcei.xyz^ +ÿï08@R kwaterd.top^ +ÿï08@R kwerilxd.top^ +ÿï08@R kwgqaqf.icu^ +ÿï08@R kwumme.xyz^ +ÿï08@R kwurserd.top^ +ÿï08@R kwyamu.xyz^ + ÿï08@Rky595images.com^ +ÿï08@R kyuxym.xyz^ +ÿï08@R kyyfsw.xyz^ +ÿï08@R kzaawga.icu^ +ÿï08@R kzcayec.icu^ +ÿï08@R +laoqo.top^ +ÿï08@R lbjekygz.icu^é +ÿï08@R lbqdaua.icu^ +ÿï08@R leagsmk.icu^ +ÿï08@R leryt111.fun^ +ÿï08@R letlwsl.top^ +ÿï08@R lewrutl.top^ +ÿï08@R lfrdskwj.icu^ +ÿï08@R lfxozd.xyz^ +ÿï08@R ljbrbz.xyz^ +ÿï08@R +ljvc0.icu^ +ÿï08@R ljzcawea.icu^ +ÿï08@R lkdyft.xyz^ +ÿï08@R lkiterl.top^ +ÿï08@R lnnahh.xyz^ +ÿï08@R lnnsvj.xyz^ +ÿï08@R lrutvncl.top^ +ÿï08@R lumnxiel.top^ +ÿï08@R luyarvx.icu^ +ÿï08@R lvnzrh.xyz^ +ÿï08@R lwurserl.top^ +ÿï08@R lxpbdp.xyz^ +ÿï08@R lyretul.top^ +ÿï08@R lzzqfj.xyz^ +ÿï08@R magioe.xyz^ +ÿï08@R maiysw.xyz^ +ÿï08@R mamjkg.xyz^ +ÿï08@R mdmuky.xyz^ +ÿï08@R megydyk.icu^ +ÿï08@R meryt111.fun^ +ÿï08@R mewrutx.top^ +ÿï08@R mfemiac.icu^ +ÿï08@R mgqtcs.xyz^ +ÿï08@R miwpkk.xyz^ +ÿï08@R miycoc.xyz^ +ÿï08@R mkiterx.top^ +ÿï08@R mlcbgw.xyz^ +ÿï08@R +mm1qj.icu^ +ÿï08@R mqwtgq.xyz^ +ÿï08@R mrutvncx.top^ +ÿï08@R mumnxiex.top^ +ÿï08@R muwqiga.icu^ +ÿï08@R mvcngm.xyz^ +ÿï08@R mvmqos.xyz^ +ÿï08@R mwerilxx.top^ +ÿï08@R mwqetvn.icu^ +ÿï08@R mwurserx.top^ +ÿï08@R mxcmwk.xyz^ +ÿï08@R +myabcd.cc^ +ÿï08@R myfenxi.com^ +ÿï08@R myqmgm.xyz^ +ÿï08@R myretux.top^ +ÿï08@R nahjzx.xyz^ +ÿï08@R nbfsvreu.icu^ +ÿï08@R neryt111.fun^ +ÿï08@R nhbprf.xyz^ +ÿï08@R nhjn788.fun^ +ÿï08@R nhjnw78.fun^ +ÿï08@R nkjkvn.xyz^ +ÿï08@R nlrsrx.xyz^ +ÿï08@R nmmemzi.icu^ +ÿï08@R nmtcxz.xyz^ +ÿï08@R nmxxvr.xyz^ +ÿï08@R nnvjbb.xyz^ +ÿï08@R npbtnl.xyz^ +ÿï08@R npdbxf.xyz^€ +ÿï08@R nqyrywn.icu^ +ÿï08@R nroeoxk.icu^ +ÿï08@R nsfsfn.xyz^ +ÿï08@R ntiutox.icu^ +ÿï08@R ntpnfyga.icu^ +ÿï08@R nxrajr.xyz^ +ÿï08@R nxxkxr.xyz^ +ÿï08@R nzfcvv.xyz^ +ÿï08@R oaiqksi.top^ +ÿï08@R oauqyw.xyz^ +ÿï08@R oeryt111.fun^ +ÿï08@R oewrutk.top^ +ÿï08@R ofqvca.xyz^ +ÿï08@R oiu09.cn^ +ÿï08@R oiuuuc.xyz^ +ÿï08@R okiterk.top^ +ÿï08@R omgnqu.xyz^ +ÿï08@R opkmio.xyz^ +ÿï08@R opqnkw.xyz^ +ÿï08@R oqaejin.icu^ +ÿï08@R orutvnck.top^ +ÿï08@R +oshaq.top^ +ÿï08@R osujcq.xyz^ +ÿï08@R oumnxiek.top^ +ÿï08@R +ouplc.icu^ +ÿï08@R owurserk.top^ +ÿï08@R oxkqeu.xyz^ +ÿï08@R oyretuk.top^ +ÿï08@R pakaujf.icu^ +ÿï08@R pbvdlb.xyz^ +ÿï08@R pcxnrd.xyz^ +ÿï08@R pefufv.xyz^ +ÿï08@R peryt111.fun^ +ÿï08@R pgcciax.icu^ +ÿï08@R phjtxx.xyz^ +ÿï08@R pjaihds.icu^ +ÿï08@R pjcijbv.icu^ +ÿï08@R plfwxtgu.icu^ +ÿï08@R pmgfwya.icu^ +ÿï08@R pmzlnt.xyz^ +ÿï08@R pofmnj.xyz^ +"ÿï08@Rpoiejdhmkjcnd.top^ +ÿï08@R pojdnf.xyz^ +ÿï08@R pplkrh.xyz^ +ÿï08@R prtfpl.xyz^ +ÿï08@R pviasld.icu^ +ÿï08@R pwfqjp.xyz^ +ÿï08@R pwrgcxaj.icu^ +ÿï08@R pxqqytk.icu^ +ÿï08@R pznlpp.xyz^ +ÿï08@R qacdf511.cn^ +ÿï08@R qbsday.xyz^ +ÿï08@R qdickey.top^ +ÿï08@R qdoeki.xyz^ +!ÿï08@Rqebgcdcjr000.fun^ +ÿï08@R qedgcxi.cn^ +ÿï08@R qeeocy.xyz^ +!ÿï08@Rqekgcdcjr000.fun^ +!ÿï08@Rqeogcdcjr000.fun^ +ÿï08@R qeryt111.fun^ +ÿï08@R qetlwsy.top^ +!ÿï08@Rqeugcdcjr000.fun^ +ÿï08@R qewruty.top^ +ÿï08@R qjwvwu.xyz^÷ +ÿï08@R qkitery.top^ +ÿï08@R qpyrqg.xyz^ +ÿï08@R qqryt111.fun^ +ÿï08@R qronay.xyz^ +ÿï08@R qrwcss.xyz^ +ÿï08@Rqtroytj33.fun^ +ÿï08@R quresdy.top^ +ÿï08@R quwkke.xyz^ +ÿï08@R quyuancn.com^ +ÿï08@R qvxtzi.xyz^ +ÿï08@R qwursery.top^ +ÿï08@R qzorwe.xyz^ +ÿï08@R rbkmzhc.icu^ +ÿï08@R reacdf311.cn^ +ÿï08@R renohj.xyz^ +ÿï08@R reqwevf3.fun^ +ÿï08@R reryt111.fun^ +ÿï08@R rewrwrt4.fun^ +ÿï08@R rgmmeff.icu^ +ÿï08@R ridirre.com^ +ÿï08@R +rk6h3.icu^ +ÿï08@R rkwxfi.xyz^ +ÿï08@R rnwenpn.icu^ +ÿï08@R roxwusak.icu^ +ÿï08@R rpeutxu.icu^ +ÿï08@R rsyepnq.icu^ +ÿï08@Rrtroytj33.fun^ +ÿï08@R rvnaxwqe.icu^ +ÿï08@R ryqgdrh.icu^ +ÿï08@R +sauyv.top^ +ÿï08@R sbovgy.xyz^ +ÿï08@Rscript302.top^ +ÿï08@R sdfewed.com^ +ÿï08@R sdickeb.top^ +ÿï08@R sdss99.fun^ +ÿï08@R setlwsb.top^ +ÿï08@R sewrutb.top^ +ÿï08@R sfesdef6.fun^ +ÿï08@R sgadkc.xyz^ +ÿï08@R sgsosi.xyz^ +ÿï08@R sikapo.top^ +ÿï08@R +sikaq.top^ +ÿï08@R sjezce.xyz^ +ÿï08@R sjmlmk.xyz^ +ÿï08@R skaumbp.icu^ +ÿï08@R sravga.xyz^ +ÿï08@R srmsii.xyz^ +ÿï08@R srutvncb.top^ +ÿï08@R +sslir.icu^ +ÿï08@Rstarredvs.com^ +ÿï08@R suresdb.top^ +ÿï08@R swad332.fun^ +ÿï08@R swarku.xyz^ +ÿï08@R swaterb.top^ +ÿï08@R swerilxb.top^ +ÿï08@R swurserb.top^ +ÿï08@R sykzow.xyz^ +ÿï08@R szapaqi.cn^ +ÿï08@R t0sfe1.com^ +ÿï08@R tdfqvx.xyz^ +ÿï08@R tehxzz.xyz^ +ÿï08@R teryt111.fun^ +ÿï08@R tetlwsi.top^ +ÿï08@R tewruti.top^� +ÿï08@R +tgb1l.icu^ +ÿï08@R thnuvgme.icu^ +ÿï08@R thrzbf.xyz^ +ÿï08@R tkiteri.top^ +ÿï08@R tmoclbf.icu^ +ÿï08@R tnzjrj.xyz^ +ÿï08@Rtp1902abd.com^ +ÿï08@R tqbrnd.xyz^ +ÿï08@R trutvnci.top^ +ÿï08@R ttad125.com^ +ÿï08@R ttdpxh.xyz^ +ÿï08@Rttroytj33.fun^ + ÿï08@Rtu1500919341.cc^ + ÿï08@Rtu3168509469.cc^ + ÿï08@Rtu3921276844.cc^ + ÿï08@Rtu4038097360.cc^ + ÿï08@Rtu6767109513.cc^ +ÿï08@R tufzdj.xyz^ +ÿï08@R tui07.shop^ +ÿï08@R turesdi.top^ +ÿï08@R tuxpfiok.icu^ +ÿï08@R twerilxi.top^ +ÿï08@R twurseri.top^ +ÿï08@R tyaqzjp.icu^ +ÿï08@R tzyzlow.cn^ +ÿï08@R uaoaig.xyz^ +ÿï08@R udeias.xyz^ +ÿï08@R udolgy.xyz^ +ÿï08@R udswai.xyz^ +ÿï08@R uegsjnk.com^ +ÿï08@Ruerbgnkas.com^ +ÿï08@R uetlwst.top^ +ÿï08@R uewrutt.top^ +ÿï08@R ufiidvv.icu^ +ÿï08@R uftcfo.xyz^ +ÿï08@R uhmcjdc.icu^ +ÿï08@R uhuf56.fun^ +ÿï08@R uicdns.xyz^ +ÿï08@R ukitert.top^ +ÿï08@R ukkiftx.icu^ +ÿï08@R uloscw.xyz^ +ÿï08@R uqcktxp.icu^ +ÿï08@R uqykeq.xyz^ +ÿï08@R urutvnct.top^ +ÿï08@R utewyc.xyz^ +ÿï08@R +uuajq.top^ +ÿï08@R uuiaoq.top^ +ÿï08@R uumnxiet.top^ +ÿï08@R uuresdt.top^ +ÿï08@R uusjaq.top^ +ÿï08@R uvyuqzx.cn^ +ÿï08@R uwursert.top^ +ÿï08@R uyyquln.icu^ +ÿï08@R vcdfsf99.fun^ +ÿï08@R vcxv73.fun^ +ÿï08@R vcxv787.fun^ +ÿï08@Rvdfvdf33q.fun^ +ÿï08@R vdsdsf2.fun^ +ÿï08@R vecggfp.icu^ +ÿï08@R veryt111.fun^ +ÿï08@Rvfdvdfv77.fun^ +ÿï08@R vfdvdg67.fun^ +ÿï08@R vfvdvd99.fun^ +ÿï08@R vfvrld.xyz^Þ +ÿï08@R vgxbpf.xyz^ +ÿï08@R vhzivz.xyz^ +ÿï08@R vinsgcs.com^ +ÿï08@R vjharl.xyz^ +ÿï08@R vpdnjl.xyz^ +ÿï08@R vrdfxioe.icu^ +ÿï08@R vreqnait.com^ +ÿï08@R vrinqop.icu^ +ÿï08@Rvtbfgnf00.fun^ +ÿï08@R vtjbnb.xyz^ +ÿï08@R vulitd.xyz^ +ÿï08@R vvadz.cc^ +ÿï08@R vvttpn.xyz^ +ÿï08@R vwvatp.xyz^ +ÿï08@R vxcvd67.fun^ +ÿï08@R vzdkngmf.icu^ +ÿï08@R +w0054.com^ +ÿï08@R +w0079.com^ +ÿï08@R +w0082.com^ +ÿï08@R wbkdsg.xyz^ +ÿï08@R +wbqqo.com^ +ÿï08@R wcsmvmf.icu^ +ÿï08@R wdickee.top^ +ÿï08@R +wdxxx.top^ +ÿï08@R weacdf211.cn^ +ÿï08@R weacdf411.cn^ +ÿï08@R weagehn.icu^ +ÿï08@R weryt111.fun^ +ÿï08@R wetlwse.top^ +ÿï08@R wewrute.top^ +ÿï08@R wfijsc.xyz^ +ÿï08@R wfsmya.xyz^ +ÿï08@R +whgh1.icu^ +ÿï08@R wiixqm.xyz^ +ÿï08@R wiwlqc.xyz^ +ÿï08@R wkabios.icu^ +ÿï08@R wkitere.top^ +ÿï08@R wlkukrv.icu^ +ÿï08@R wnmoobz.icu^ +ÿï08@R wnojded.icu^ +ÿï08@R wnstug.xyz^ +ÿï08@R wpmdeo.xyz^ +ÿï08@R wpsbaq.xyz^ +ÿï08@R wrsikq.xyz^ +ÿï08@R wrutvnce.top^ +ÿï08@R wsgayq.xyz^ +ÿï08@R wswxsk.xyz^ +ÿï08@Rwtroytj33.fun^ +ÿï08@R wuiqiq.xyz^ +ÿï08@R wuresde.top^ +ÿï08@R wwursere.top^ +ÿï08@R wxmhau.xyz^ +ÿï08@R wxsicu.xyz^ +ÿï08@R +x0or8.icu^ +ÿï08@R x0y081e.xyz^ +ÿï08@R xadulxs.cn^ +ÿï08@R xehodv.xyz^ +ÿï08@R xeryt111.fun^ +ÿï08@R xevzdl.xyz^ +ÿï08@R xfqynrp.cn^ +ÿï08@R xhlkvx.xyz^ +ÿï08@R xinchl.xyz^ +ÿï08@R xiuska.top^ +ÿï08@R xjpmlf.xyz^á +ÿï08@R xjtosdof.icu^ +ÿï08@R xkgttas.icu^ +ÿï08@R xliuits.icu^ +ÿï08@R xlxehr.xyz^ +ÿï08@R xmlgzr.xyz^ +&ÿï08@Rxn--xhq326aj6yqpw.com^ +ÿï08@R xnbuapwp.icu^ +ÿï08@R xnqboqc.icu^ +ÿï08@R +xpicj6.cc^ +ÿï08@R +xpicj8.cc^ +ÿï08@R +xs6po.icu^ +ÿï08@R xtrkhv.xyz^ +ÿï08@R xufyxhiu.icu^ +ÿï08@R xvzcfh.xyz^ +ÿï08@R xwbmjb.xyz^ +ÿï08@R yckamq.xyz^ +ÿï08@R ycuhky.xyz^ +ÿï08@R ycwuoq.xyz^ +ÿï08@R yeryt111.fun^ +ÿï08@R yfaqgk.xyz^ +ÿï08@R yfasjfk.icu^ +ÿï08@R yfoega.xyz^ +ÿï08@R ygipjqf.icu^ +ÿï08@R yiucfif.icu^ +ÿï08@R yiwckti.icu^ +ÿï08@R +yje912.cn^ +ÿï08@R yjwxegq.icu^ +ÿï08@R ykwykw.xyz^ +ÿï08@R ymauoo.xyz^ +ÿï08@R ymewsu.xyz^ +ÿï08@R ymwjwe.xyz^ +ÿï08@R ypkiog.xyz^ +ÿï08@R ytghtq.xyz^ +ÿï08@Rytroytj33.fun^ +ÿï08@R yuayku.xyz^ +ÿï08@R yugqqqq.icu^ +ÿï08@R yukbsa.xyz^ +ÿï08@R yuqmok.xyz^ +ÿï08@R yuuaos.xyz^ +ÿï08@R yuwqsk.xyz^ +ÿï08@R ywokwlx.icu^ +ÿï08@R yxamkm.xyz^ +ÿï08@R yxvyqyy.icu^ +ÿï08@R yzldy.info^ +ÿï08@R zcypmsp.icu^ +ÿï08@R zdscdkc.icu^ +ÿï08@R zeddjv.xyz^ +ÿï08@R zeryt111.fun^ +ÿï08@R zjplnz.xyz^ +ÿï08@R zmvopcio.icu^ +ÿï08@R znnfzx.xyz^ +ÿï08@R zrkksps.icu^ +ÿï08@R ztzdvv.xyz^ +ÿï08@R zylizz.xyz^ +ÿï08@R zyrnbh.xyz^ +ÿï08@R zzohucf.icu^ +ÿï08@R zztxfj.xyz^a[href*=".68hantang.com"]a[href*=".downok.com"]a[href*=".imiwang.com/"]a[href*=".sudun.com/"]a[href*="/2e9c9aa9.com/"]a[href*="/33hth.cn"]a[href*="/445.ee/"]ë +ÿï08@R +0k7wod.cn^ +ÿï08@R +0op8kh.cn^ +ÿï08@R +0oqt9i.cn^ +ÿï08@R +0r3tyg.cn^ +ÿï08@R +0tq6ub.cn^ +ÿï08@R +0uvt8b.cn^ +ÿï08@R +0uyt5b.cn^ +ÿï08@R 1002.men^ +ÿï08@R1028images.com^ +ÿï08@R1133.cc^ +ÿï08@R 1188.com^ +ÿï08@R165tchuang.com^ +ÿï08@R1l1.cc^ +ÿï08@R 2529.com^ +#ÿï08@R25662zubo23739.com^ +ÿï08@R +258zw.com^ +ÿï08@R +2qy9zm.cn^ +ÿï08@R3324.cn^ +ÿï08@R 3400.org^ +ÿï08@R 3798.com^ +ÿï08@R +3q1lsj.cn^ +ÿï08@R +44629.com^ +ÿï08@R 4567.org^ +ÿï08@R +4wu3gf.cn^ +ÿï08@R 50bang.org^ +ÿï08@R537images1.com^ +ÿï08@R 5399.com^ +ÿï08@R +54gtlb.cn^ +!ÿï08@R555ppp777ppp.com^ +#ÿï08@R57573zubo36833.com^ +ÿï08@R 591520.xyz^ +ÿï08@R +5brxi.icu^ +ÿï08@R 5gxs.org^ +ÿï08@R60.190.139.164^ +ÿï08@R 609999.xyz^ +!ÿï08@R666ppp222ppp.com^ +!ÿï08@R666ppp888ppp.com^ +ÿï08@R 6789.net^ +08@R 6avz.com^ +ÿï08@R 6pznpz.com^ +ÿï08@R 7676.com^ +ÿï08@R 7791.com.cn^ +ÿï08@R 7794.com^ +ÿï08@R835images1.com^ +#ÿï08@R88362zubo95838.com^ +ÿï08@R 8878tp.com^ +ÿï08@R888bb555ww.com^ +ÿï08@R8en.net^ +ÿï08@R +8xtm6i.cn^ +08@R 9669.com^ +ÿï08@R999bb222ww.com^ +ÿï08@R999xx999kk.com^ +ÿï08@R a1bw2cup.top^ +08@R +aaaf.info^a[href*="/d27.tv"]a[href*="/h91.tv"]a[href*="/kt169.com"]a[href*="/l1y9.com"]a[href*="/tg.602.com/"]a[href*="/uu5566.cn.com/"]"a[href*="/yigeyuming3880.top"]4 + +upupoo.com a[href^="http://www.upupoo.com"]!img[onclick*="/2e9c9aa9.com"]img[onclick*="/c7.net/"]Ð +ÿï08@R acgbase.com^ +ÿï08@R acqaghx.icu^ +ÿï08@R adunite.com^ +ÿï08@R +adyun.com^ +ÿï08@R afqodjc.top^ +ÿï08@R aguo.com^ +ÿï08@R +amfhby.cn^ +ÿï08@R +aoiqa.top^ +ÿï08@R apis301.com^ +ÿï08@Raskdlajfbv.top^ +ÿï08@R auislq.top^ +ÿï08@R awifi.cn^ +ÿï08@R baijs010.xyz^ +ÿï08@R baijs011.xyz^ +ÿï08@R baijs02.xyz^ +ÿï08@R baijs03.xyz^ +ÿï08@R baijs05.xyz^ +ÿï08@R baijs06.xyz^ +ÿï08@R baijs07.xyz^ +ÿï08@R baijs08.xyz^ ++ÿï08@Rbaitu3lllqubyqmttdkjsv.com^ + ÿï08@Rbalmoralmkt.com^ +ÿï08@R bavotr.xyz^ +ÿï08@R +bbqoa.top^ +ÿï08@R bdipsumv.top^ +ÿï08@R bdoshbv.top^ +ÿï08@R benpsbp.com^ +ÿï08@R bfhueh.top^ + ÿï08@Rbianxianmao.com^ +ÿï08@Rbirdmedia.com^ +ÿï08@R bkxpph.xyz^ +ÿï08@R brtlisv.top^ +ÿï08@R bvubasnf.com^ +ÿï08@R bxoaeju.icu^ +!ÿï08@Rccccc66kkkkk.com^ +!ÿï08@Rccccc67kkkkk.com^ +!ÿï08@Rccccc78kkkkk.com^ +!ÿï08@Rccccc88kkkkk.com^ +ÿï08@R cdipsumf.top^ +ÿï08@R cdoshbf.top^ +ÿï08@R cetlwsf.top^ +ÿï08@Rchaoyumiao.com^ +ÿï08@Rchinesean.com^ +ÿï08@R cosmo001.top^ +ÿï08@Rcresqoirz.com^ +ÿï08@R crlsxny.xyz^ +ÿï08@R crtlisf.top^ +ÿï08@R cuaeblh.icu^ +ÿï08@R cxsh.cn.com^ +ÿï08@R cyretuf.top^ +.ÿï08@Rd1pmhihatyvp1k.cloudfront.net^ +ÿï08@Rdaksflkalq.top^ +ÿï08@Rdaslkdlqk.top^ +ÿï08@R ddomjhr.icu^ +ÿï08@R +dfan4.icu^ +-ÿï08@Rdgaxrjj0jwpwp.cloudfront.net^ +ÿï08@R dian500.com^ +ÿï08@R dianxin.com^ +ÿï08@R +dmnxkj.cn^ +ÿï08@R doujs01.xyz^ +ÿï08@R doujs010.xyz^ +ÿï08@R doujs02.xyz^ +ÿï08@R doujs03.xyz^ +ÿï08@R doujs05.xyz^‚ +ÿï08@R doujs06.xyz^ +ÿï08@R doujs07.xyz^ +ÿï08@R doujs08.xyz^ +ÿï08@R doujs09.xyz^ +ÿï08@R duomai.com^ +ÿï08@R duyewnf.icu^ +ÿï08@R +dv4ku.icu^ +ÿï08@R +dzjzg.com^ +ÿï08@R +easou.com^ +ÿï08@R edipsumw.top^ +ÿï08@R edoshbw.top^ +ÿï08@R eeyy.com^ +ÿï08@R +ei1s7b.cn^ +ÿï08@R emizkno.cn^ +ÿï08@R ertlisw.top^ +ÿï08@R +ewjhic.cn^ +ÿï08@R ewxufqs.cn^ +ÿï08@R eyislow.top^ +ÿï08@R +fenxi.com^ +ÿï08@Rfeofamdak.top^ +ÿï08@Rfgadsqdma.top^ +ÿï08@R +fgwuw.com^ +ÿï08@R fhnbrx.xyz^ +ÿï08@R fmkipgm.icu^ +ÿï08@R fmmirep.icu^ +ÿï08@Rfogolakda.top^ +ÿï08@R fpninv.xyz^ +ÿï08@R fqghykp.cn^ +ÿï08@R fvyqblc.icu^ +ÿï08@R +g2ak5.com^ +ÿï08@R gameone.com^ +ÿï08@R gccnntq.cn^ +ÿï08@Rgjjskhdnm.top^ +ÿï08@Rgoodvibe1.com^ +!ÿï08@Rgoogle-js-01.xyz^ +!ÿï08@Rgoogle-js-02.xyz^ +!ÿï08@Rgoogle-js-08.xyz^ +!ÿï08@Rgoogle-js-09.xyz^ +ÿï08@R +gtxkze.cn^ +ÿï08@R hahusa.top^ +"ÿï08@Rhaohuisheng555.cn^ +ÿï08@R hdipsumu.top^ +ÿï08@R hdoshbu.top^ +ÿï08@Rheloisessa.com^ +ÿï08@R +hfptbb.cn^ +ÿï08@R +hfptbf.cn^ +ÿï08@R +higyoe.cn^ +ÿï08@R hjammiz.icu^ +ÿï08@R hjrcjz.xyz^ +ÿï08@R hrrjff.xyz^ +ÿï08@R hrtlisu.top^ +ÿï08@R +hvuqkb.cn^ +ÿï08@R hyislou.top^ +ÿï08@R hyretuu.top^ +ÿï08@Ri3z.cn^ +ÿï08@R iddhui.com^ +ÿï08@R idipsumo.top^ +ÿï08@R idoshbo.top^ +ÿï08@R ieymhkx.icu^ +ÿï08@Rimgoss2255.top^ +ÿï08@Rimgoss511.top^ +ÿï08@R ioaiqp.top^ +ÿï08@R irtliso.top^ +ÿï08@R iuytfvhl.top^ð +ÿï08@R ivnrrkx.cn^ +ÿï08@R +ixstng.cn^ +ÿï08@R iyisloo.top^ +ÿï08@Riyuedu.cn.com^ +ÿï08@R izalflh.cn^ +ÿï08@R +izqogb.cn^ +ÿï08@R jbkqemk.icu^ +ÿï08@R jdipsuma.top^ +ÿï08@R jdoshba.top^ +ÿï08@R jgvkxp.xyz^ +ÿï08@R jili9.io^ + ÿï08@Rjollyspring.com^ +ÿï08@R +jqsex.com^ +ÿï08@R jrtlisa.top^ +ÿï08@R jsinfo.net^ +ÿï08@R jsqygwl.top^ +ÿï08@R juandou.com^ +ÿï08@R +jusha.com^ +ÿï08@R justapp.top^ +ÿï08@R juznlx.xyz^ +ÿï08@R jyfdbj.xyz^ +ÿï08@R jyisloa.top^ +ÿï08@R +jyuskb.cn^ +"ÿï08@Rkalmukrattail.com^ +ÿï08@R kdipsumd.top^ +ÿï08@R kdoshbd.top^ +ÿï08@R keydot.net^ +ÿï08@R +keyrun.cn^ +ÿï08@R kfpnqug.cn^ +ÿï08@R kfycmiu.icu^ +ÿï08@R kiwihk.net^ +ÿï08@R krtlisd.top^ +ÿï08@R kspl48j.xyz^ +ÿï08@R kvyyyde.cn^ +ÿï08@R kwiqcoh.icu^ +ÿï08@R kyislod.top^ +ÿï08@R +l7u3kf.cn^ +ÿï08@R lajevt.xyz^ +ÿï08@R ldipsuml.top^ +ÿï08@R ldoshbl.top^ +ÿï08@R +le4le.com^ + ÿï08@Rlesenjiaoyu.xyz^ +ÿï08@R lijlrz.xyz^ +ÿï08@R linkvans.com^ +ÿï08@Rlizijing12.top^ +ÿï08@R +lmvotk.cn^ +ÿï08@R +lozmtk.cn^ +ÿï08@R lrtlisl.top^ +ÿï08@R lsjazn.xyz^ +ÿï08@R lyislol.top^ +ÿï08@R +macoms.la^ +ÿï08@R mcighme.icu^ +ÿï08@R mdipsumx.top^ +ÿï08@R mdoshbx.top^ +ÿï08@R mdzwjra.cn^ +ÿï08@R mhdnspro.com^ +ÿï08@R molpmh.xyz^ +ÿï08@Rmomoguoji.xyz^ +ÿï08@R mp83fkx.cn^ +ÿï08@R +mpn56e.cn^ +ÿï08@R mrtlisx.top^ +ÿï08@R mthhhuq.cn^ +ÿï08@R mtwuxss.icu^ +ÿï08@R mytanwan.com^ð +$ÿï08@Rn2wqmr4lmaummar.xyz^ +ÿï08@R nhcdn.cn^ +ÿï08@R niwota.com^ +ÿï08@R nouusup.icu^ +ÿï08@R +nuxwlc.cn^ +ÿï08@R +oakmn.top^ +ÿï08@R odipsumk.top^ +ÿï08@R okwan.cn^ +ÿï08@R olgcpwc.icu^ +ÿï08@Rolmnvbgufy.top^ +ÿï08@R onetad.com^ +ÿï08@R ortlisk.top^ +ÿï08@R +p04qzl.cn^ +ÿï08@R +p0v2ni.cn^ +ÿï08@R panel-cn.com^ +ÿï08@R photo07.xyz^ +ÿï08@R piclick.cn^ +ÿï08@R +pkyjuc.cn^ +ÿï08@R plecnyz.icu^ +ÿï08@R +pmiskc.cn^ +ÿï08@R poke88.com^ +ÿï08@R poyang.com^ +ÿï08@R +pqzjki.cn^ +ÿï08@R qdipsumy.top^ +ÿï08@R qdoshby.top^ +ÿï08@R +qidou.com^ +ÿï08@R +qmbdta.cn^ +ÿï08@R qwsanan.top^ +ÿï08@R qyisloy.top^ +ÿï08@R qywbslk.top^ +ÿï08@R rdsgick.icu^ +ÿï08@R rebojf.xyz^ +ÿï08@R rmhfrtnd.com^ +ÿï08@R rmioswx.icu^ +ÿï08@R rodmfv.xyz^ +ÿï08@R +rxfygd.cn^ +ÿï08@Rs8.pw^ +!ÿï08@Rsamoryinaner.com^ +ÿï08@R scoev.cn^ +ÿï08@R sdipsumb.top^ +ÿï08@R sdnc.top^ +ÿï08@R sdoshbb.top^ +ÿï08@Rsexy-more.com^ +!ÿï08@Rshangwenchao4.cn^ +ÿï08@R shuihulu.com^ +ÿï08@R snjfasp.com^ +ÿï08@Rsnmi.cn^ +ÿï08@R +snxyf.com^ +ÿï08@R sotunet.com^ +ÿï08@R srtlisb.top^ +ÿï08@R +stnew.xyz^ +ÿï08@Rsuperfish.com^ +ÿï08@R syislob.top^ +ÿï08@Rsynergyat.work^ +ÿï08@R szhgmd.com^ +ÿï08@R tanwanyx.com^ +ÿï08@R +tc911.vip^ +ÿï08@R tdipsumi.top^ +ÿï08@R tdoshbi.top^ +ÿï08@R tdpujn.xyz^ +ÿï08@Rthruudrad.com^ +ÿï08@R ttgbnmk.top^ +ÿï08@R tudxhzj.cn^ + ÿï08@Rtupian88888.com^„ +ÿï08@R tvgkatu.icu^ +ÿï08@R tvpqnh.xyz^ +ÿï08@R twzui6.com^ +ÿï08@R tyisloi.top^ +ÿï08@R tyretui.top^ +ÿï08@R +u4ccj.icu^ +ÿï08@R u7u9.com^ +ÿï08@R uaiosio.top^ +ÿï08@R +uaiqp.top^ +ÿï08@R udipsumt.top^ +ÿï08@R udoshbt.top^ +ÿï08@R uessnah.icu^ +ÿï08@R +uiakq.top^ +ÿï08@R +ujovcb.cn^ +ÿï08@R ulink.cc^ +!ÿï08@Rum5xcgngmart.xyz^ +ÿï08@Runiway.cn.com^ +ÿï08@R +upyzqf.cn^ +ÿï08@R urtlist.top^ +ÿï08@R uutytp.com^ +ÿï08@R uuysiaq.com^ +ÿï08@R uvekyvs.icu^ +ÿï08@R uwerpyh.cn^ +ÿï08@R uyislot.top^ +ÿï08@R uyretut.top^ +ÿï08@R vftvbx.xyz^ +ÿï08@R vlion.cn^ +ÿï08@R vsqovxf.icu^ +ÿï08@R vxdrfr.xyz^ +ÿï08@R +vyrpoe.cn^ +ÿï08@R +w0057.com^ +ÿï08@R +w7044.com^ +ÿï08@R wdipsume.top^ +ÿï08@R wdoshbe.top^ +ÿï08@R wnootzc.icu^ +ÿï08@R wopvmmy.cn^ +ÿï08@R wuisaq.top^ +ÿï08@R wvwqywz.cn^ +ÿï08@R wxfdmri.xyz^ +ÿï08@R wyisloe.top^ +ÿï08@R xilele.com^ +ÿï08@R xkesqbp.icu^ +ÿï08@R xmhszb.xyz^ +)ÿï08@Rxn--sssy7vrppusjyv0a.com^ ++ÿï08@Rxn--wgvp78a61swpe6zdozj.cn^ +&ÿï08@Rxn--xhq326apqhcx0d.cn^ +ÿï08@R xoqsxdpx.xyz^ +ÿï08@R xueaaaw.cn^ +ÿï08@R xulizui6.com^ +ÿï08@R xuxwvh.xyz^ +ÿï08@R +xwvnhe.cn^ +ÿï08@R xx3691b.com^ +ÿï08@R xylhwdu.com^ +ÿï08@R +yatemy.cn^ +ÿï08@R ybcnvqf.cn^ +ÿï08@R +ycgfdf.cn^ +ÿï08@Ryerhfnytky.top^ +ÿï08@R yijfdsu.cn^ +ÿï08@R ykcsldm.icu^ +ÿï08@R yl04z4v.cn^ +ÿï08@R yqlxkzs.cn^ +ÿï08@R +yssryr.cn^ +ÿï08@R ytoeyxz.icu^ +ÿï08@Ryuwenbin.host^è +ÿï08@Rzantainet.com^ +!ÿï08@Rzcck60eqyw.world^ +ÿï08@R zcfhi.cn.com^ +ÿï08@Rze5.com^ +"ÿï08@Rzhangqifeng12.top^ + ÿï08@Rzhengzhou12.top^ +ÿï08@R zisu.cn.com^ +ÿï08@R zlclgzs.cn^ +ÿï08@R zlgame.top^ +ÿï08@R zlongad.com^ +ÿï08@R zoltrl.xyz^ +ÿï08@R zvhlzb.xyz^ +ÿï08@R zwlxnj.xyz^ +ÿï08@R +zxqiwe.cn^ +ÿï08@R zyfnbl.xyz^ +ÿï08@R663008888.com^ +ÿï08@Rxxxx68xxxx.com^ +ÿï08@R cai75tp.com^ +ÿï08@R 595image.com^ +#ÿï08@Rsales-frontier.com^ +ÿï08@Rxianliao.voto^ +ÿï08@R 7299tu75.cc^ +ÿï08@R twrank.com^ +ÿï08@R uu11881.com^ +ÿï08@R uu22332.com^ + ÿï08@Rhulichuang.mobi^ +ÿï08@R uu22112.com^ +!ÿï08@Rtu2024020388.com^ +ÿï08@R uu22662.com^ +ÿï08@Rcaomeixz7.xyz^ +ÿï08@R imageshh.com^ +ÿï08@R999xx333kk.com^ +ÿï08@R666bb777ww.com^ +ÿï08@R777bb111ww.com^ +ÿï08@R888xx222kk.com^ +#ÿï08@Rhitchprivilege.com^ +ÿï08@R ymmiyun.com^ ++ÿï08@Rcommonwealthproficient.com^ +ÿï08@R666aa777bb.com^ +ÿï08@R222aa333bb.com^ +ÿï08@R999aa666bb.com^ +ÿï08@R888bb666cc.com^ +&ÿï08@Rxn--w9q675dm1p7em.net^ +ÿï08@R +06789.xyz^ +(ÿï* +ylmf.com08@R +114la.com^ +ÿï08@R +114lm.com^ +ÿï08@R16m.cc^ +ÿï08@R 3alian.net^ +ÿï08@R3dwwwgame.com^ +ÿï08@R +3p8801.co^ +ÿï08@R 6651tp.com^ +ÿï08@R6v4.cn^ + ÿï08@R79181531227.com^ +/ÿï08@R7xi9g1.com1.z0.glb.clouddn.com^ +ÿï08@R 876920.com^ +ÿï08@R 87uq.com^ +ÿï08@R 8861202.com^ +ÿï08@R 8feichai.com^ +ÿï08@R 94lm.com^ +ÿï08@R 9831tb.com^ +ÿï08@R a.youdao.com^ +ÿï08@R aafuck.xyz^a[href*=".xacg.info/"]"button[onclick*=".xacg.info/"]Ž +!ÿï08@Rachicih.gitee.io^ +ÿï08@Rad-survey.com^ +ÿï08@R +adbxb.com^ +ÿï08@R adm.cnzz.net^ +ÿï08@R adrs.sdo.com^ +ÿï08@R ads-6686.top^ +ÿï08@R adsage.com^ +9ÿï08@R)aixuntupian.oss-cn-hongkong.aliyuncs.com^ +#ÿï08@Ralimama.alicdn.com^ +™ÿï* +youhuiyouhui.com.cn* +qinqintejia.com* + alimama.com* + meidebi.com* + +foctop.com* + +taobao.com* +tanx.com08@R alimama.cn^ +7ÿï08@R'alime-pic.oss-cn-hangzhou.aliyuncs.com^ +!ÿï08@Ratanx.alicdn.com^ +ÿï08@Ravivid.likr.tw^ +!ÿï08@Ravividone.likr.tw +'ÿï08@Rbaiducom.bj.bcebos.com^ +ÿï08@R baitugu.com^ +ÿï08@R +baizhu.cc^ +ÿï08@R biddingx.com^ +%ÿï08@Rbooks.com.tw/exep/ap/ +ÿï08@R c.91wan.com^ +ÿï08@R cb.baidu.com^ +ÿï08@Rcbjs.baidu.com^ +ÿï08@Rchunmiaosh.com^ +"ÿï08@Rchushoushijian.cn^ +ÿï08@Rcpro.baidu.com^ +%ÿï08@Rcpro.baidustatic.com^ +ÿï08@R cs.37see.com^ +.ÿï08@Rd15cjcet1djbmv.cloudfront.net^ +-ÿï08@Rd1zoi2q7y0e4d.cloudfront.net^ +.ÿï08@Rd37d9zbli5ytch.cloudfront.net^ +.ÿï08@Rd3d7a0q05k6bvz.cloudfront.net^ +5ÿï08@R%darren01.oss-cn-beijing.aliyuncs.com^ +%ÿï08@Rdingbu.bj.bcebos.com^ +ÿï08@R displink.com^ +ÿï08@R dlads.cn^ +3ÿï08@R#dmg-dd.oss-accelerate.aliyuncs.com^ +6ÿï08@R&dongtukj.oss-cn-hongkong.aliyuncs.com^ +!ÿï08@Rdrmcmm.baidu.com^ +!ÿï08@Rduiwai.baidu.com^ + ÿï08@Reduad.baidu.com^ +ÿï08@Reiv.baidu.com^ +7ÿï08@R'facai383.oss-cn-guangzhou.aliyuncs.com^ +#ÿï08@Rfarm-cn.plista.com^ +ÿï08@R fijipic.xyz^ +8ÿï08@R(first-hufu.oss-cn-shanghai.aliyuncs.com^ +.ÿï08@Rforeveryoung.gz01.bdysite.com^ +ÿï08@R g1.tagtic.cn^ +ÿï08@R gamecps.com^ +#ÿï08@Rgd.189.cn^*.htm?SP= +ÿï08@R +gdxxb.com^ +ÿï08@R geotmt.com^ +ÿï08@R gg.miued.com^ +ÿï08@Rguanjiabo.net^ +&ÿï08@Rhao123union.baidu.com^ +ÿï08@Rhaokoubei.top^ +1ÿï08@R!hdtu.oss-cn-beijing.aliyuncs.com^ +%ÿï08@Rhiad.myweb.hinet.net^ +Mÿï* + alimama.com* + +taobao.com* +1688.com08@Rimg.uu1001.cn^ +ÿï08@R img301.com^ +ÿï08@Rimgtg.com^*.gif +Mÿï* +zhishu.sogou.com* +index.sogou.com08@Rinte.sogoucdn.com^ +ÿï08@Riprefer.com.tw^ +ÿï08@R jianpian.vip^ +ÿï08@R +js22f.net^Ó +ÿï08@R kefeng56.com^ +„08@R +kiees.com^ +ÿï08@R kiuee8.com^ +ÿï08@Rkuaizitech.com^ +ÿï08@R +kvhee.com^ +ÿï08@R leeleo.top^ +ÿï08@R lianle.com^ +5ÿï* +lianmeng.360.cn08@Rlianmeng.360.cn^ + ÿï08@Rlinkpicture.com^ +ÿï08@R lmlmvip.com^ +ÿï08@R lu.sogou.com^ + ÿï08@Rlu.sogoucdn.com^ +9ÿï* + +dev.360.cn* +g.360.cn08@R mediav.com^ +ÿï08@R miaozhen.com^ +ÿï08@R mnnmnn.com^ +!ÿï08@Rmobads.baidu.com^ +7ÿï08@R'mobantong.oss-cn-hangzhou.aliyuncs.com^ +ÿï08@Rmttpsy6666.cc^ +ÿï08@R +n0211.com^ +ÿï08@R +n0244.com^ +ÿï08@R +n0255.com^ +ÿï08@R +n0399.com^ +ÿï08@R +n0488.com^ +ÿï08@R +n0499.com^ +ÿï08@R +n0544.com^ +ÿï08@R +n0566.com^ +ÿï08@R +n0622.com^ +ÿï08@R +n0633.com^ +ÿï08@R +n0644.com^ +ÿï08@R +n3567.com^ +ÿï08@R +n5725.com^ +ÿï08@R +n6579.com^ +ÿï08@R +n7181.com^ +ÿï08@Rnews.tagtoo.co^ +„08@R +niuza.com^ ++ÿï08@Roa-panther.data.aliyun.com^ +)* +ipinyou.com.cn08@Rp0y.cn^ +ÿï08@Rpagechoice.net^ +ÿï08@Rpenxiangge.com^ +ÿï08@Rpicnewsss.com^ +ÿï08@Rpos.baidu.com^ +ÿï08@Rpro.cn^ +ÿï08@R qtmojo.com^ +)ÿï08@Rqwe0231141.bj.bcebos.com^ +!ÿï08@Rre.taotaosou.com^ +&ÿï08@Rshow.kc.taotaosou.com^ +!ÿï08@Rspcode.baidu.com^ +9ÿï08@R)star-seo.oss-ap-northeast-1.aliyuncs.com^ +%ÿï08@Rstatic-cn.plista.com^ +ÿï08@R stgowan.com^ + ÿï08@Rsums.suning.com^ +2ÿï08@R"sz88.oss-cn-shenzhen.aliyuncs.com^ +ÿï08@Rtad.suning.com^ +ÿï08@Rtamedia.com.tw^ +[ÿï* +www.taobao.com* + alimama.com* + tmall.com* +1688.com08@R tanx.com^ +]ÿï* + alimama.com* + alitrip.com* + tmall.com* +tanx.com08@Rtaobao.com/go/ +ÿï08@R +tenmax.io^ +ÿï08@R tianji520.cn^ +€08@R +to8to.com^ +5ÿï08@R%tttppp.oss-cn-guangzhou.aliyuncs.com^ +ÿï08@R +tx99y.net^ +ÿï08@R +u0056.com^ +ÿï08@R +u0057.com^ +ÿï08@R +u0062.com^ø +ÿï08@R +u0065.com^ +ÿï08@R +u0067.com^ +ÿï08@R +u0071.com^ +ÿï08@R +u0075.com^ +ÿï08@R +u0078.com^ +ÿï08@R +u0079.com^ +ÿï08@R +u0081.com^ +ÿï08@R +u0082.com^ +ÿï08@R +u0083.com^ +ÿï08@R +u1010.com^ +ÿï08@R +u1011.com^ +ÿï08@R +u1033.com^ +ÿï08@R +u1055.com^ +ÿï08@R +u1077.com^ +ÿï08@R +u1099.com^ +ÿï08@R +u1102.com^ +ÿï08@R u22011.com^ +ÿï08@R u22066.com^ +ÿï08@R u22088.com^ +ÿï08@R u22099.com^ +ÿï08@R u25011.com^ +ÿï08@R u25022.com^ +ÿï08@R u33011.com^ +ÿï08@R u55011.com^ +ÿï08@R u833ij.com^ +*ÿï08@Rubmcvideo.baidustatic.com^ +ÿï08@Runion-wifi.com^ +ÿï08@R unionli.com^ +ÿï08@R utlove02.com^ +ÿï08@R v.center^ +5ÿï08@R%video231.oss-cn-beijing.aliyuncs.com^ +ÿï08@R wanfumei.net^ +&ÿï08@Rwidget.ezprice.com.tw^ +ÿï08@R wit.qq.com^ +ÿï08@R +xh33g.net^ +ÿï08@Rxiaoshuoyun.cn^ +ÿï08@R xiongyin.com^ +2ÿï08@R"xpj08.oss-cn-beijing.aliyuncs.com^ +ÿï08@R +xwdsp.com^ +&ÿï* + +xy.com08@R +xyimg.net^ +ÿï08@R yellowjm.com^ +ÿï08@R +yhdd1.com^ +ÿï08@Ryhtpsy8888.cc^ +€08@R yiqifa.com^ +ÿï08@Ryiqifa.com^*.js +ÿï08@R youle55.com^ +&ÿï08@Rys2000.cdn.bcebos.com^ + ÿï08@Rysm.ezprice.net^ +ÿï08@R zgm1.com^ +ÿï08@R zzad.com^ +* + lady1.top08@ +¢* +xiaoyakankan.com* + 52movieba.com* + m.supfree.net* + xiaoxintv.com* + xiaoxintv.net* + audio699.com* + movieffm.net* + xiaoxintv.cc* + +kan-tv.com08@ +‚ * + 52codes.net08@ +-  * + qiyoudy2.com* + qiyoudy4.com08@ +S * + zzzzz688.com* + subhdtw.com* + +xyg688.com* + +xyg688.xyz* + +subhd.tv08@ +$ÿï08@R.194007.com/4058.gif +3ÿï* + 7mshipin.org* + viidii.info08@R.gif +)ÿï* +www.gamer.com.tw08@R.html +ÿï08@R.k618.cn/sytab/ +ÿï08@R.k618.cn/zbggw/ +-ÿï* + +m.v.qq.com08@R.mp4?*sdtfrom=& +-ÿï08@R.niusnews.com/upload/banners/ +.ÿï08@R.nyaa.fun/static/img/*_refesh. +/ÿï08@R.nyaa.fun/static/img/host/*.gifØ +*ÿï08@R.nyahentai.com/cat/l_1.gif +(ÿï* + +realtw.com08@R +.oeya.com/ + ÿï08@R.ppys.com/detail +"ÿï08@R.qidian.com/bgImg. +"ÿï08@R.qidian.com/bgOps. +'ÿï08@R.qidian.com/floatOpBox. +$ÿï08@R.qidian.com/gameBox. +$ÿï08@R.qidian.com/pageOps. +5ÿï08@R%/404.safedog.cn/sitedog_stat_new.html +(ÿï* + somanhua.com08@R/ad_360_ +)ÿï* + tvboxnow.com08@R /adnow.js +7ÿï* +discuss.com.hk* + +uwants.com08@R/aeiou/ +/ÿï* + miejw.com* + +9gui.net08@R/aSer_ +,ÿï* + +v2ex.com08@R/assets/sidebar/ +%€* + gamer.com.tw08@R/baha/ +'ÿï* + 28188.net08@R +/banner.js +(ÿï* + leiphone.com08@R/banner/ +4ÿï* + cs090.com* + wm090.com08@R +/biz_icon/ +'ÿï* + colamanga.com08@R/cuid/ +)ÿï08@R/vmind.qqvideo.tc.qq.com^ +(ÿï* + +ezvivi.com08@R +/EZ-YAHOO/ ++ÿï* + +91porn.com08@R /fake_app.mp4 +&€* + gamer.com.tw08@R/gamer/ +Pÿï* + +51live.com* + +52waha.com* + +zhibo7.com* + ccav5.com08@R /gTool.js +;ÿï* + maichun5.info* + myhhg.com08@R /images/*.gif +/ÿï* + tvboxnow.com08@R/images/*gamble +;ÿï* + hanzify.net* + hanzify.org08@R /Images/ak47/ +8ÿï* +chineseinla.com08@R/images/content/1436/ +"ÿï08@R/images/masha*.gif +"ÿï08@R/images/masha*.png +#ÿï08@R/images/sgcrwj*.gif +#ÿï08@R/images/sgcrwj*.jpg +Dÿï* +firefoxchina.cn* +firefox.com.cn08@R/img/skin/*_bg. +Bÿï* +firefoxchina.cn* +firefox.com.cn08@R /img/skin/tao +3ÿï* +1909.me* +8se.me08@R/jquery.modal. +0ÿï* + +52xkdy.com* + fydy8.com08@R/mpc/ +Pÿï* + pipipan.com* + +ctfile.com* + 400gb.com* +bego.cc08@R /mydisplay. +#ÿï* + +tptoon.com08@R/o.js +,ÿï* +youxi.baidu.com08@R /r/video/ +(ÿï* +chineseinla.com08@R/sda/ +%ÿï08@R/sinaLoginReward2014. +-ÿï08@R/sinaLoginReward2014_comment. +8ÿï* + iimanhua.cc* + +iimh.net08@R /skin/footer. +8ÿï* + iimanhua.cc* + +iimh.net08@R /skin/header. +7ÿï* + iimanhua.cc* + +iimh.net08@R /skin/iymbl- +8ÿï* + iimanhua.cc* + +iimh.net08@R /skin/middle. +@ÿï* +firefoxchina.cn* +firefox.com.cn08@R /skin/tb12/ +8ÿï* + iimanhua.cc* + +iimh.net08@R /skin/view/ft +&ÿï* + sun0769.com08@R/sungg/ +%ÿï* + 28188.net08@R/the_top +-ÿï* + ifeng.com08@R/tres/recommend/ +?ÿï* + +cnlmjx.com08@R!/w_e_b/de_li_ve_ry/a_j_s.php?zid= +(ÿï* + gamer.com.tw08@R/web/ad/ +)ÿï* + +91porn.com08@R /webcam.mp4 +,ÿï* + +91porn.com08@R/webcam600.mp4 +!ÿï08@R/ysm.ezprice.net/ +#ÿï08@R://*btbtt.*/imgs.js +*ÿï08@R://*btbtt.*/view/image/QT_ +!08@R://dmhy.gate.*/*.*? +08@R://dmhy.org^*.*? +@* + +thisav.com* + r3sub.com* + +159i.com08@R ://www.*.js +5ÿï* +quote.hexun.com08@Rhxsame.hexun.com +"ÿï08@Rhttp://*/ad_bj.js? +"ÿï08@R*xav.*/guang/*.gif� +"ÿï08@R*xav.*/guang/*.jpg + ÿï08@R007ds.com/js/js/ +0ÿï08@R 00eeekk.com//html5/activityPage/ + ÿï08@R02wq.com/script/ +!ÿï08@R02wq.com/script1/ +ÿï08@R 042.cn/adver/ +;ÿï08@R+0439.com/javascript.php?part=advertisement& +#ÿï08@R0460.com/images/ad/ +'ÿï08@R0460.com/images/banner/ +%ÿï08@R0460.com/js/txtrec.js +!ÿï08@R04cmm.com:8888/js + ÿï08@R04stream.tv/sda/ +!ÿï08@R0573fang.com/ads/ +'ÿï08@R0575bbs.com/js/float.js +)ÿï08@R0575bbs.com/updateimeags/ +.ÿï08@R0579.cn/SHow/Showplacenew.aspx +%ÿï08@R0597ok.com/ilike/597/ +*ÿï08@R0598yu.com/api.php?mod=ad& +,ÿï08@R0606kk.com/js/index/index.js +(ÿï08@R07073.com/api/getKfList? +)ÿï08@R07073.com/pc/js/right-ad. +9ÿï08@R)0722fc.com/index/index.php?/ajax/get_adv/ +-ÿï08@R0722fc.com/index/tools/js.php +ÿï08@R 073img.com/*/ +!ÿï08@R0kkbb.com/js/i.js +4ÿï08@R$0o0.ooo/2017/01/13/58787d42bbad6.jpg +ÿï08@R 1.hao123.com^ +ÿï08@R 1.i999d.cn^ +ÿï08@R100.admin5.com^ +ÿï08@R 100.pncdn.cn^ +&ÿï08@R10000xing.cn/images/we +#ÿï08@R100ksw.com/inc/doc- +0ÿï08@R 100xuexi.com/CssModel/*Layout.js +(ÿï08@R100yangsheng.com/a1/a.js +-ÿï08@R1010pic.com/scripts/hd/yueyue +.ÿï08@R1010pic.com/static/js/allpc.js +)ÿï08@R1024down.com/images/*.gif +#ÿï08@R102tv.cn/js/main.js +9ÿï08@R)10fang.com/static/skin/tfy/layer/layer.js +)ÿï08@R11.mydrivers.com/drivers/ + ÿï08@R111cn.net/gg_ad/ +&ÿï08@R111cn.net/js/downc*.js +*ÿï08@R114la.com/static/js/egg.js +ÿï08@R 115mm.com/js/ +€08@R119xiazai.com^ +ÿï08@R 11img.com/ad/ +!ÿï08@R11kkzz.com/se/wf/ +2ÿï08@R"120askimages.com/ask/js/askfrom.js +)ÿï08@R120askimages.com/ask/js/q +Iÿï08@R9120askimages.com/ask/zhenshi/templates/pub/js/loadPart.js +€08@R 121zou.com^ +(ÿï08@R123.sogou.com/discover/? +.ÿï08@R126.com/get.do?*=themeHandler. +Fÿï08@R6126.net/2022/0315/c82ed9e0g00r8seoy015pd00104003cp.gif +*ÿï08@R126.net/house/hrb/flash/*X +*ÿï08@R126.net/ntesrich/*/suning- +Hÿï08@R8127.net/2018/08/15/71ee02b5b61c4090b3ce0116306596c2.jpeg +.ÿï08@R127.net/external/js6public126_ +.ÿï08@R127.net/external/js6public163_ +ÿï08@R 12img.com/ad/ +!ÿï08@R131458.com/union/ +&ÿï08@R1328f.com/js/jquery.js +&ÿï08@R1342a.com/js/jquery.js +!ÿï08@R138vps.com/image/× + ÿï08@R139file.com/jsa/ +4ÿï08@R$141h.com/data/attachment/noblock/cf/ +#ÿï08@R159i.com/video/pop/ +-ÿï08@R159i.com/video/usr/uploads/1- +,08@R159i.com/video/usr/uploads/bd/ +ÿï08@R159i.com^*.php +%ÿï08@R15hn.net/data/content +5ÿï08@R%160.com/statics/statics/js/code_13.js +5ÿï08@R%160.com/statics/statics/js/code_15.js +#ÿï08@R1615vip.com^*.jsonp +3ÿï08@R#1616.net/jd/data/index/indexad.json +ÿï08@R162ck.com/v*.js +&ÿï08@R163.com*/special/*_ad_ +.ÿï08@R163.com/get.do?*=themeHandler. +,ÿï08@R163.com/ntes/special/*_papa. +-ÿï08@R163.com/q?c=*&t=wap_stream&l= +*ÿï08@R163.com/special/*/ted_vad. +%ÿï08@R163.com/special/*=ad_ +&ÿï08@R163.com/special/*_960/ +)ÿï08@R163.com/special/*_netease +:ÿï08@R*163.com/wap/special/article_cooper_piapia/ +*ÿï08@R163disk.com/static/aimgs/d +,ÿï08@R163disk.com/static/images/51 +'ÿï08@R163disk.com/static/www/ +08@R168.it168.com^ +#ÿï08@R1684sm.com/js/1684/ + ÿï08@R1688.com/b2bxad? +.ÿï08@R16888.com/ajax/loadcardata.php +%ÿï08@R168gamer.*.php?mod=js + ÿï08@R168gamer.*/list- +!ÿï08@R168gamer.*/olist- +"ÿï08@R168gamesf.*/olist- +ÿï08@R 168img.com/a/ +ÿï08@R168img.com/aa/ + ÿï08@R16sucai.com/ads/ +%ÿï08@R16sucai.com/images/*0 +&ÿï08@R1708t.com/js/jquery.js +"ÿï08@R17173.com/advideo/ +0ÿï08@R 17173.com/api/video/PlayerPopup? +ÿï08@R 17173.com/if/ +ÿï08@R17173.com/new/ +ÿï08@R 17173.com/x/ +.ÿï08@R17173cdn.com/a/lib/vda/seed.js +,ÿï08@R17173cdn.com/a/oms/oms-data. +:ÿï08@R*17173cdn.com/a/www/index/2016v2/js/seed.js +;ÿï08@R+17173cdn.com/js/play/page/pThridPlayerAd.js +&ÿï08@R1722t.com/js/jquery.js +"ÿï08@R174.123.15.43:8080 +ÿï08@R178.com/glr.js ++ÿï08@R17dm.com/s/common/js/*AD.js +*ÿï08@R17gameworld.com/gmifr_lei. +1ÿï08@R!17house.com/zt/style/*_banner*.js +7ÿï08@R'17house.com/zt/style/*_bottom_module.js +ÿï08@R17k.com/jump/uh +1ÿï08@R!17ok.com/focus/3j_right_jdt.shtml +'ÿï08@R17yy.com/style/ifra_ad/ +"ÿï08@R180.96.27.85^*.htm ++ÿï08@R18183.com/common/js/side.js + ÿï08@R18183.com^*.php? +#ÿï08@R183yf.cn/img/nz.png +0ÿï08@R 188soft.com/js/PCsoftDetailAD.js +ÿï08@R 189.cn/dns/ +ÿï08@R189.cn^*/push/ +ÿï08@R 189.gd^*.html´ +ÿï08@R 18avday.*/aa/ +'ÿï08@R1905.com/data/js/*.json +"ÿï08@R1909.me/upload/ad/ +"ÿï08@R1990tu.com/i/*.gif +"ÿï08@R1990tu.com/i/*.png ++ÿï08@R1ketang.com/Runtime/js/play +08@R 1ppt.com/ad +ÿï08@R1x6666.com/img/ +ÿï08@R2008mm.com^*.js +ÿï08@R2008xxx.com:888 +ÿï08@R2016.bkill.net^ +ÿï08@R2018x.*/guang/ +6ÿï08@R&202.102.26.253:8182/files/7/lhzs1k.jpg +$ÿï08@R2048hd1.com/js/tc.js +ÿï08@R 20mao.com/52 + ÿï08@R20mao.com/js/sj. +5ÿï08@R%2114.com/zb_users/script/advertise.js +2ÿï08@R"211600.com/data/attachment/portal/ +ÿï08@R 211xd.com/js +&ÿï08@R217hs.com/js/jquery.js +&ÿï08@R21edu8.com/js/mymoney/ +0ÿï08@R 21uscity.com/static/allbusiness/ +)ÿï08@R21uscity.com/zonelist.php +!ÿï08@R21yq.com/mg/21yq/ +ÿï08@R 22pixx.xyz/l/ +ÿï08@R2324av.com/zz/ +ÿï08@R2345.com/cnxh/ ++ÿï08@R2345.com/duoteimg/img/*_ad_ +2ÿï08@R"2345.com/dypcimg/*gameRecommend.js +%ÿï08@R2345.com/dypcimg/ads/ +?ÿï08@R/2345.com/images/activity/20180618/search-actimg +5ÿï08@R%2345.com/images/m/global/new-hongbao/ ++ÿï08@R2345.com/js/index/activity/ +3ÿï08@R#2345.com/js/m/bottom.float.adver.js +7ÿï08@R'2345.com/js/m/common/top_information.js +*ÿï08@R2345.com/pic/2345video.png +3ÿï08@R#2345.com/right/homepage/tqbChannel_ +-ÿï08@R2345.com/right/site/like/gul_ +)ÿï08@R2345.com^*/activity/20171 +.ÿï08@R2345cdn.net/js/index/activity/ +4ÿï08@R$234fang.com/index.php?/ajax/get_adv/ ++ÿï08@R239300.net/template/*_mh_gg +ÿï08@R23aitt.com/zz/ +5ÿï08@R%23bei.com/static/plugins/layer/layer. +#ÿï08@R23img.com^*/qomnyi. +ÿï08@R 23sc.cn/andy/ +&ÿï08@R241hs.com/js/jquery.js + ÿï08@R249999.xyz^*.gif +!ÿï08@R24cmm.com:8888/js + ÿï08@R2500sz.com/site/ +ÿï08@R 250sy.cc/gg/ +"ÿï08@R256856.com/fei-ad/ +ÿï08@R 268de.com/js/ +5ÿï08@R%2898.com/index/flowexchange/getGoods? +,ÿï08@R28hse.com/adsman/www/images/ +'ÿï08@R28kys.com/92kviptupian/ +$ÿï08@R28kys.com/cpstupian/ +"ÿï08@R29spp.com/js/tj.js +ÿï08@R2btu.com/gg.jpg +(ÿï08@R2ccc.com/images/aobi.gif +'ÿï08@R2ccc.com/images/sdo.jpg +%ÿï08@R2ccc.com/images/show/ +(ÿï08@R2ccc.com/images/sino.gif ++ÿï08@R2ccc.com/images/WebXone.gif« ++ÿï08@R2cq.com/third/tieba/sidebar +ÿï08@R2d4f.com/love/ +"ÿï08@R2kandy.com/js/123/ +/ÿï08@R2yjw.com/statics/js/jquery.min. +$ÿï08@R2zzt.com/file/aliyun + ÿï08@R2zzt.com/images/ +%ÿï08@R315che.com/tree/ad.js +ÿï08@R31vcd.com^*.js +*ÿï08@R321mh.com/v1/getadvertise? +ÿï08@R32xp.com/upimg/ +ÿï08@R 3337723.com^ +ÿï08@R 3337738.com^ +(ÿï08@R33445522.com//admin/adv/ +*ÿï08@R3344ex.com/js/1playerad.js +$ÿï08@R3344ex.com/js/bot.js +#ÿï08@R3344ex.com/js/jc.js +ÿï08@R3344mf.com/js/ +ÿï08@R3344xu.com/js/ +&ÿï08@R336t.com/cf/js/data.js +,ÿï08@R3397ys.com/e/public/onclick/ +ÿï08@R 3399.com/act/ +-ÿï08@R33dav.com/static/js/banner.js +-ÿï08@R33dav.com/static/js/bottom.js +6ÿï* + 18board.com* + 18p2p.com08@R +33img.com^ +!ÿï08@R33shu.net/js/game +ÿï08@R34iq.com/index + ÿï08@R3520.cc/js/3520/ +#ÿï08@R35336.net/35336.jpg +8ÿï08@R(360.cn/apis/qss/soweb/ad_proxy/internal/ +)ÿï08@R360.cn/festival_zone.html +0ÿï08@R 360.cn/index/showjokes?callback= +%ÿï08@R360.cn/int/getadurls? +%ÿï08@R360.cn/popup/popinfo/ +gÿï08@RW360buyimg.com/babel/jfs/t1/209256/22/21888/60206/627b7a6aEa5f2d78b/219868beb169203f.jpg +eÿï08@RU360buyimg.com/ddimg/jfs/t1/27218/8/19964/31194/636a1930E1de2ae78/e3ff134116579b95.jpg +*ÿï08@R360buyimg.com/jzt/temp/js/ +=ÿï* + qianggou5.com* + +chdbits.co08@R360buyimg.com^ +ÿï08@R360doc.com/ad/ +#ÿï08@R360kan.com/special/ +0ÿï08@R 360kan.com/v1/block?blockid=544& +ÿï08@R 36img.com/ad/ +(ÿï08@R36kr.com/pp/api/ap/plan? +ÿï08@R373nn.com/java/ +&ÿï08@R380tv.com/upload/*-ad- +ÿï08@R 39.net/a.htm? +ÿï08@R39.net/ask/sg. + ÿï08@R39.net/creative/ +!ÿï08@R39.net/js/google/ +@ÿï08@R039.net/PictureLib/A/f76/20170814/org_1428963.gif + ÿï08@R39.net/test/k.js +ÿï08@R391k.com/pc/gg/ +"ÿï08@R3987.com/all_site/ + ÿï08@R3987.com/images/ +#ÿï08@R3987.com/skins/*201 +4ÿï08@R$3987.com/statics/tow_skin/new_img/20 +*ÿï08@R3bmmmesj.life/skin/js/dny. +Aÿï08@R13boys2girls.com/newfile/image2010/banner_housead_ +Dÿï08@R43boys2girls.com/templates/default/2013/life/160b5.js +Cÿï08@R33boys2girls.com/templates/default/2013/randlinks.js +€08@R3boys2girls.com^ +ÿï08@R 3czol.com/ad/ + ÿï08@R3dmax8.com/atu4/ +"ÿï08@R3dmax8.com/jiaoche +&ÿï08@R3dmgame.com/img/a/640-— +=ÿï08@R-3dmgame.com/index.php?m=games&c=index&a=ztad& +&ÿï08@R3dmgame.com/page/hlbt/ +/ÿï08@R3dmgame.com/page/img/shangcheng +3ÿï08@R#3dmgame.com/page/js/push_browser.js +0ÿï08@R 3dmgame.com/sw/zjworld/js/index. +>ÿï08@R.3dmgame.com/templets/common/show_js/show_js.js +0ÿï08@R 3dmgame.com/templets/index/gimg/ +9ÿï08@R)3dmgame.com/templets/index/js/huandeng.js +-ÿï08@R3dmgame.com/templets/xiazai/g +)ÿï08@R3dmgame.com/tools/gamead? +#ÿï08@R3g.cn/baidualading/ +,ÿï08@R3g.cn/index.php?s=Index/adv& + ÿï08@R3g.qq.com/lview? + ÿï08@R3gmfw.cn/js/wap/ +%ÿï08@R3h3.com/gmobile/gujs/ +&ÿï08@R3h3.com/js/homepage.js +$ÿï08@R3h3.com/js/listad.js + ÿï08@R3h3.com/js/show/ +#ÿï08@R3k8.com/d/js/m/thea +#ÿï08@R3wk.cc/images/*.gif +$ÿï08@R40407.com/plus/rpad/ +$ÿï08@R40407.com/plus_rpad_ +"ÿï08@R407mp3.com/js/*.js +#ÿï08@R4080kan.com/js/head +"ÿï08@R40wan.com/js/www2/ +!ÿï08@R4399.com/baiduad/ +%ÿï08@R4399.com/jss/*coup.js +(ÿï08@R4399.com/loadimg/iframe_ +,ÿï08@R4399.com/loadimg/loading.htm +$ÿï08@R4399sj.com^*/mask-ad +&ÿï08@R4438x*.com/Runtime/js/ +ÿï08@R44pd.com^*xds/ +$ÿï08@R47.100.0.249/js/thea +.ÿï08@R484r.com/images/flash/gallery_ +#ÿï08@R4gamers.com.tw/ads- +3ÿï08@R#4gamers.com.tw/site/api/aols/media? +0ÿï08@R 4gamers.com.tw/site/iframe-aols/ +%ÿï08@R4gtv.tv/4gTV_OTT.json +'ÿï08@R4hw.com.cn/js/common.js +-ÿï* + sina.com.cn08@R4paradigm.com^ +!ÿï08@R500xxxx.com/go.js +(ÿï08@R5054399.com/js/rice/m.js +ÿï08@R 5068.com/*gg +$ÿï08@R5068.com/websleft.js + ÿï08@R51.com/up/bdfmt/ +ÿï08@R 5118.com/g/ +%ÿï08@R512ms.com/webggwhtml/ +ÿï08@R 51688.cc/ya/ +"ÿï08@R516qq.cn/theme/dd/ +4ÿï08@R$5184.com/container/html/news_view_gg +#ÿï08@R51bczx.com/images1/ +&ÿï08@R51bczx.com/js/float.js +(ÿï08@R51cdn.club:453/hf85/960x +6ÿï08@R&51credit.com/51api/creditcard.php?mod= +0ÿï08@R 51credit.com/js/app/end-layer.js +<ÿï08@R,51fanli.net/misc/images/invite-v4/banner.gif +"ÿï08@R51hanhua.com/2013/ +*ÿï08@R51img1.com/v6/my/js/bdm.js +1ÿï08@R!51pantu.com/pic/1598717206949.gif +/ÿï08@R51test.net/js_new/a/right_wx.js +@ÿï08@R051testing.com/templates/default/images/jx2_a.jpg +ÿï08@R51ui.cn/999.png +$ÿï08@R51ui.cn/js/500200.js +"ÿï08@R51vob.com/js/hf.jsâ +%ÿï08@R51wady.com/me.php?id= +(ÿï08@R51wan.com/img/js/xyadjs_ ++ÿï08@R51wangdai.com/Images/bad_*0 +,ÿï08@R51xuediannao.com/uploads/un/ +$ÿï08@R51ztzj.com/js/you.js +4ÿï08@R$51ztzj.com/res/web/img/download_sign +5ÿï08@R%51ztzj.com/res/web/img/pic/inshow.jpg +!ÿï08@R520call.me/ad/ad_ +ÿï08@R 520cc.tw/AD/ +Dÿï* +video.520cc.cc* + +surirt.com08@R520click.com/ad. +.ÿï08@R520xingyun.com/images/188*.gif +$ÿï08@R520xs.la/js/dianrui- +,ÿï08@R520z-2.com/uploadfile/sucai/ +ÿï08@R521000.com/co/ +ÿï08@R 5278.mobi/aa/ +$ÿï08@R52996.me/scripts/my_ +#ÿï08@R52996.me/upload/ad/ +)ÿï08@R52che.com/Inc/FooterComm_ +;ÿï08@R+52che.com/NewLocal/TemplateHtml/headflash1_ +-ÿï08@R52dytt.net/images/bbs_btn.gif +'ÿï08@R52dytt.net/img/zlgg.png +$ÿï08@R52movieba.com/img/ad +4ÿï08@R$52pk.com/style/files/images/*beitou. +#ÿï08@R52rd.com/Pic/Click/ +&ÿï08@R52rd.com/Pic2/*_600_60 +&ÿï08@R52tian.net^*/xuanfu.js +0ÿï08@R 52waha.com/static/js/func_bbs.js +$ÿï08@R52wmb.com/2014js/cn_ +%ÿï08@R52z.com/images/52zgg/ +ÿï08@R 52zpi.com/gg/ +"ÿï08@R52zy.com/other/js/ +0ÿï08@R 53bk.com/Baokan/Comja/changepic. +#ÿï08@R53shop.com/ime/*.js +#ÿï08@R53shop.com/img/*.js +$ÿï08@R53shop.com/js/dun.js ++ÿï08@R5442tu.com/style/ads5442.js +&ÿï08@R54admin.net/images/ad_ +ÿï08@R54new.com*/da/ +'ÿï08@R5588.tv/js/piaofuImg.js +$ÿï08@R55sky.com/js/diecuo/ +$ÿï08@R56ads.com/js/main.js +.ÿï08@R56img.com^*/baidu-promotion.js +6ÿï08@R&56img.com^*/search-engine-promotion.js +!ÿï08@R56rmm.com:8888/js +)ÿï08@R576tv.com/Scripts/home.js +)ÿï08@R57fx.com/img/20170508.jpg +ÿï08@R 57see.com/js/ +6ÿï08@R&57sehua.com/template/assets1/js/vue.js +'ÿï08@R58.218.200.135:8081/js/ +&ÿï08@R58.com/demand/content? +&ÿï08@R58.com/ds/tgbrand/*.js + ÿï08@R58.com/show/ads? + ÿï08@R580bk.com/ceshi/ + ÿï08@R5888.tv/User_Ad/ +"ÿï08@R58avgo.*/AirADPic/ +,ÿï08@R58cdn.com.cn/ds/tgbrand/*.js +/ÿï08@R58cdn.com.cn/ds/zhuangxiu/jzad- +$ÿï08@R58file.com/down/xyk. +)ÿï08@R591hx.com/images/0000.jpg +(ÿï08@R591hx.com/js/floatbox.js +"ÿï08@R591hx.com/js/sy.js + ÿï08@R591hx.com/lunbo/ ++ÿï08@R591hx.com/zyrk_dy/gwjl.html +%ÿï08@R5axxw.com/extends/ad/† +08@R5dmail.net/image/ +$ÿï08@R5dmail.net/image/ad_ +-ÿï08@R5dmail.net/image/ORF_1000.gif +ÿï08@R5dmail.net/js/ +!ÿï08@R5fz.cc/t/aimg/tao +-ÿï08@R5icool.org/uploadfile/poster/ +%ÿï08@R5ilinglei.com/gg.html +'ÿï08@R5ilog.com/qq/js/jsgg.js +%ÿï08@R5imx.com/image/image/ +ÿï08@R5ips.net/love/ +ÿï08@R 5s98.com/img/ +ÿï08@R 5vdd.com/360 + ÿï08@R5vdd.com/ktt.png +#ÿï08@R5vdd.com/mobile.jpg + ÿï08@R5xdmw.com/tb.jpg +"ÿï08@R5y9nfpes.52pk.com^ +'ÿï08@R5ydj.com/images/banner/ +*ÿï08@R6.cn/coop/pub/getRand.php? +(ÿï08@R600km.com/template/*/ad/ +2ÿï08@R"6080aa.com/template/*/images/g_js/ ++ÿï08@R6080w.com/template/ttk/img/ +(ÿï08@R61.10.2.86/dev/xopen.php +ÿï08@R 614514.com^ +ÿï08@R62422.cn/ggimg/ +ÿï08@R 62mao.com/52 +&ÿï08@R63007.com:82/haodxi.js +ÿï08@R 63ef.com^*.js +ÿï08@R 63ys.com/ggg/ +*ÿï08@R64ma.com/tv/images/web.png +ÿï08@R 66.fmx.cn/js/ +#ÿï08@R6699fa.cn/imagestb/ +ÿï08@R 6699fa.cn/js/ +ÿï08@R 66e.cc/d/ +*ÿï08@R66game.cn/skinnew/js/ad.js +&ÿï08@R66huacai.com/d/js/v/hc +ÿï08@R66wwvv.com/js/ +ÿï08@R66wz.com/adv2/ +0ÿï08@R 66wz.com/data/attachment/portal/ +ÿï08@R 66wz.com/eap/ +$ÿï08@R69adu.com/bootstrap. +&ÿï08@R69shux.com/js/otherad. +$ÿï08@R6park.com/img/*0.gif +08@R6park.com/parks/ +ÿï08@R 6vhao.tv/d/ +"ÿï08@R70.86.24.120:8060/ +!ÿï08@R70822.com/agfile/ +.ÿï08@R7160.com/js/tiaozhuanquanju.js +"ÿï08@R75.125.41.29:8080/ +'ÿï08@R76fengyun.com/70070.gif +"ÿï08@R76fengyun.com/jsa/ +!ÿï08@R76wmm.com:8888/js +&ÿï08@R775mz.com/js/jquery.js +!ÿï08@R77ds.*/js/77ad.js +(ÿï08@R77ds.vip/js/shichuang.js +(ÿï08@R78dm.net.cn/acg_201*_250 +(ÿï08@R78dm.net.cn/acg_201*_650 +(ÿï08@R78dm.net.cn/acg_201*_760 +(ÿï08@R78dm.net.cn/acg_201*_980 +&ÿï08@R78dm.net/acg_201*_1680 +&ÿï08@R78dm.net/channel/test? +(ÿï08@R78land.com/js/fumeiti.js +4ÿï08@R$797sun.com/include/js/common_footer. +"ÿï08@R7junshi.com/con/ad +3ÿï08@R#7junshi.com/static/red-envelopes.js¹ +%ÿï08@R7k7k.com^*/loding.htm +.ÿï08@R7kankan.com/scripts/new/indext +"ÿï08@R7mmtv.tv/js/ad_js/ +"ÿï08@R7mmtv.tv/u_banner/ +)ÿï08@R7scs.com/Public/img/list- +-ÿï08@R7x7n.com/static/image/888.jpg +)ÿï08@R7x7n.com/static/pic/*.jpg +ÿï08@R7xdown.com/bz/ +!ÿï08@R7xdown.com/idcgg/ +/ÿï08@R7xsf3h.com1.z0.glb.clouddn.com^ +)ÿï08@R8070kk.com/statics/js/guo +ÿï08@R 80s.la/m/js/ +ÿï08@R 80s.so/9*.JS +ÿï08@R 80s.so/html/ +ÿï08@R 80s.us/9*.js +#ÿï08@R80yc.com/js/yidong/ +ÿï08@R83133.com/api/ +*ÿï08@R85566.net/js/loadjs/jquery +$ÿï08@R8585go.com/recommend +ÿï08@R 85wp.com/ad/ +ÿï08@R8684.cn/id/ad_ +$ÿï08@R8684.com/com/sys_ad_ +%ÿï08@R8684.com/local/bdadv. +"ÿï08@R8684.com/shuang11/ +!ÿï08@R86uk.com/banners/ +'ÿï08@R86uk.com/uploads/*0.gif +$ÿï08@R86uk.com/uploads/*0x +€08@R 86uk.com^ +ÿï08@R 874547.men^ +ÿï08@R 87mao.com/52 ++ÿï08@R880sy.com/Public/js/*_gg.js +7ÿï08@R'88148.com/UpFile/a/2016040849191350.jpg +2ÿï08@R"88448.com/images/appkai980x100.gif +1ÿï08@R!88liu.com/data/attachment/portal/ +"ÿï08@R88ys.cc/js/abcd.js +)ÿï08@R8d8d.me/images/dealer.gif +ÿï08@R8h93.com^*.gif +ÿï08@R 8jkx.com^ +4ÿï08@R$8mg050.n3cdn1.secureserver.net^*.gif +4ÿï08@R$8mg050.n3cdn1.secureserver.net^*/960 +%ÿï08@R8s8s.com/data/banner/ +4ÿï08@R$8seaa.com/template/assets1/js/vue.js +2ÿï08@R"8ziyuan.com/images/infolinksad.jpg +Xÿï08@RH900.la/imgs/1bb725da-974f-43da-9eb9-dfdebc224949/2015-12-18/zg3wwaug.gif +Xÿï08@RH900.la/imgs/d829d551-1d6e-4018-b3fe-78991bbbe2d6/2016-06-27/yiwmbica.gif +"ÿï08@R90mh.com/mip/qdbao +%ÿï08@R90oo.com/tp/188jj.gif +ÿï08@R90oo.com/tp/40 +%ÿï08@R90oo.com/tp/90232.jpg +%ÿï08@R90oo.com/tp/90280.gif +$ÿï08@R90oo.com/tp/down.gif +%ÿï08@R90oo.com/tp/h8877.gif +ÿï08@R90oo.com/tp/hg +#ÿï08@R90oo.com/tp/msn.jpg +ÿï08@R9191.site/ad.js +.ÿï08@R91avv8.com/vU18BNDYo1ktVpge.js +$ÿï08@R91bixin.net/api/adv/ +-ÿï08@R91bixin.net/api/chdd/liveAdv? +Bÿï08@R291danji.com/attachments/201810/12/10/2hdyj7ut9.jpg +%ÿï08@R91danji.com/js/lmt.js +!ÿï08@R91hs005.xyz^*.gif +'ÿï08@R91jbz.com/file/script/A +!ÿï08@R91p20.space/fans/ +ÿï08@R 91rb.net/fc/Å +!ÿï08@R91rb.net/js/gg.js +@ÿï08@R091xiazai.com/Public/index/images/zanzhushang.gif +!ÿï08@R91xporn.com/fans/ +"ÿï08@R91yun.co/download/ ++ÿï08@R920share.com/layer/layer.js +5ÿï08@R%920share.com/wp-content/uploads/*/911 +0ÿï08@R 922tp.com/wp-content/uploads/*0x +%ÿï08@R92dp.com/home/showga? +ÿï08@R92ghai.com/zz/ +ÿï08@R 92uq.com/Ads/ +ÿï08@R 933m.com/1.js +5ÿï08@R%941novel.com/wp-content/uploads/*.gif +2ÿï08@R"94994.com*/js/plugin/shoppingMall/ +/ÿï08@R949949.com/2013/end/hot_news.js +!ÿï08@R94itv.app/casino/ +ÿï08@R 94itv.net/f/ +-ÿï08@R9527yy.com/images/02/9527.jpg +&ÿï08@R9527yy.com/js/data2.js +#ÿï08@R9553.com/otherhtml/ +ÿï08@R 95590.org/v1. +#ÿï08@R962.net/show/all.js +08@R962.net/show/all_ +"ÿï08@R962.net/show/bt.js +08@R962.net/show/cms_ +"ÿï08@R962.net/show/down_ +#ÿï08@R962.net/show/index_ +&ÿï08@R9669.cn/ipdat/duilian/ +"ÿï08@R9669.cn/jsam/play_ +*ÿï08@R973.com/static/js/pccom.js +!ÿï08@R98.126.219.*/ads/ +/ÿï08@R988aiai.com/static/js/common.js +&ÿï08@R9906g.com/js/jquery.js +,ÿï08@R9938.net/video/tvg/footer.js +)ÿï08@R9938.net/video/tvg/hot.js +!ÿï08@R99496.com/static/ +$ÿï08@R99496.com/v9/head.js +"ÿï08@R999meiju.com/js/tj +#ÿï08@R99danji.com/kchtml/ +*ÿï08@R99lb.net/index_files/*/970 +0ÿï08@R 99mst.com/upfiles/adv/main02.jpg +)ÿï08@R99nets.com/kfb/index.html +ÿï08@R 99smsf.com^ +"ÿï08@R99tianji.com/hack/ +$ÿï08@R99zuowen.com^*/gg.js +ÿï08@R9duw.com/js/sj +ÿï08@R 9duw.com/pic/ +%ÿï08@R9ez.me/embd.php?type= +ÿï08@R9fum.ifeng.com^ +*ÿï08@R9ihome.com/info/ADTopvnet/ +#ÿï08@R9ist.com/others/ad/ + ÿï08@R9jsp.com/pay.png +#ÿï08@R9k9k.com/jscode/js/ +ÿï08@R9kp.cc/js/bbk/ +ÿï08@R 9ku.com/aaa/ +'ÿï08@R9tata.com/js/pbanner.js +$ÿï08@R9tata.com/js/Rand.js +&ÿï08@R9tata.com/js/topxia.js +#ÿï08@R9tata.com/js/www.js ++ÿï08@R9tour.cn/x2/images/czmf.jpg +%ÿï08@R9wcn.com/gcld/500.gif +'ÿï08@R9y01.xyz/app/index.html +ÿï08@R9ya.net/con/ad +(ÿï08@R9ye.com/Files/Editor/ad/ +!ÿï08@R9zvip.net/hi5asd/ˆ +ÿï08@Ra.baomihua.com^ +ÿï08@R a.cnki.net/a/ +ÿï08@Ra.jyeoo.com/js? +ÿï08@Ra.nowscore.com^ +ÿï08@R a.xywy.com^ +!ÿï08@Ra2.xinhuanet.com^ +!ÿï08@Ra2put.chinaz.com^ +ÿï08@Ra5xiazai.com/z/ +*ÿï08@Raaread.space/images/*0.gif +ÿï08@Raassy4.com/dm/ +!ÿï08@Rabbao.cn^*adblock +ÿï08@Rabc.hkepc.com^ +ÿï08@Rabc.hkepc.net^ +ÿï08@Rabcache.com/tg/ +%ÿï08@Rabcache.com/xc/image/ +%ÿï08@Rabcache.com/youlaohu/ +/ÿï08@Rabczxw.com/skin/bbb/pc/js/bd.js +!ÿï08@Rabdd*.com/js/abc/ +!ÿï08@Rabminbuy.com/789. +ÿï08@Rabminbuy.com/QQ +"ÿï08@Rabminbuy.com^*.gif +ÿï08@R abody.39.net^ +Gÿï08@R7ac.tc.qq.com/store_file_download?*&dir_path=/admin/swf/ +3ÿï08@R#acfun.cn/appSpreadContents/danmuad/ +08@R acgbenzi.com^ + ÿï08@Racggd.com/4d22b/ +8ÿï08@R(acglover.*/wp-content/uploads/*-520-245. +3ÿï08@R#acglover.*/wp-content/uploads/*-720 +'ÿï08@Racgnx.se/images/adwork/ +$ÿï08@Racgnz.cn/static/b.js +$ÿï08@Racgnz.cn/static/i.js +'ÿï08@Rachost.top/uploads/ads/ + ÿï08@Racode.b2b.cn/JS/ +ÿï08@Racodes.b2b.cn^ +(ÿï08@Ract.chinatimes.com/aimg/ +.ÿï08@Ractoys.net/index.php?m=poster& +'ÿï08@Ractoys.net/js/beitou.js +1ÿï08@R!actoys.net/statics/js/index/ad.js +Bÿï08@R2acwifi.net/wp-content/uploads/2019/11/20191119.jpg +Bÿï08@R2acwifi.net/wp-content/uploads/2022/08/0825-750.png +:ÿï08@R*ad-1258444056.cos.accelerate.myqcloud.com^ +#ÿï08@Rad-api.cnblogs.com^ +#ÿï08@Rad-img.diyidan.net^ +&ÿï08@Rad.12306.cn/res/*.html +ÿï08@R ad.52av.one^ +ÿï08@R ad.52av.tv^ +ÿï08@R ad.bobi.tw^ +ÿï08@R ad.byfuh.com^ +ÿï08@Rad.ccement.com^ +ÿï08@R ad.cdnjm.cn^ + ÿï08@Rad.fx168api.com^ +ÿï08@R +ad.gmw.cn^ + ÿï08@Rad.walkgame.com^ +"ÿï08@Rad.wurangxian.top^ + ÿï08@Rad.youku.com/vp? +%ÿï08@Radadmin.house365.com^ +ÿï08@R adf.dahe.cn^ +ÿï08@Radi*.cnool.net^ +ÿï08@Radimg.liba.com^ + ÿï08@Radm.52swine.com^ +ÿï08@Radm.6park.com^ +ÿï08@Radm.beimg.com^ +$ÿï08@Radm.cloud.cnfol.com^ +$ÿï08@Radmaimai.com/inc/adv× +%ÿï08@Radmd.housefun.com.tw^ +ÿï08@R admd.yam.com^ +ÿï08@Radmin25.com/ad/ +#ÿï08@Radminbuy.cn/images/ +.ÿï08@Radmsapi.businessweekly.com.tw^ +ÿï08@R adp.cnki.net^ +ÿï08@Radp.cnool.net^ +"ÿï08@Radpai.thepaper.cn^ +!ÿï08@Rads-union.jd.com^ +ÿï08@R ads.sohu.com^ +ÿï08@Rads.yeeyi.com^ +ÿï08@R adsc.wasu.tv^ +"ÿï08@Radsclick.yx.js.cn^ +!ÿï08@Radshows.21cn.com^ +#ÿï08@Radsmind.gdtimg.com^ +ÿï08@Radt.xdrig.com^ +%ÿï08@Radv-sv-show.focus.cn^ +(ÿï08@Radwordsing.com/img/1.jpg +(ÿï08@Radwordsing.com/img/2.jpg +ÿï08@R adx.mala.cn^ + ÿï08@Raf29.com/banner/ +3ÿï08@R#affyun.com/wp-content/uploads/*-ad. +3ÿï08@R#affyun.com/wp-content/uploads/*/ad- +;ÿï08@R+affyun.com/wp-content/uploads/*/affffff.png +>ÿï08@R.affyun.com/wp-content/uploads/2018/10/file.gif + ÿï08@Rafocus.com.cn/s? +"ÿï08@Rafp.chinanews.com^ +3ÿï08@R#afzhan.com/JavaScript/ad_Couplet.js +,ÿï08@Ragogo.tv/images//uploads/ad/ +&ÿï08@Rah.sina.com.cn/iframe/ +'ÿï08@Rahgame.com/js/new_ad.js ++ÿï08@Rahlife.com/api.php?mod=adv& +%ÿï08@Rahuys.net/Runtime/js/ +ÿï08@R ahuys.net/sys +ÿï08@R ai.bioon.com^ +"ÿï08@Raiai123.cc/js/*.js +)ÿï08@Raibing.cc/vip/img/gou.gif +5ÿï08@R%aiboav.vip/wp-content/uploads/*/3aaa- +1ÿï08@R!aiboav.vip/wp-content/uploads/ad/ +;ÿï08@R+aiboav.vip/wp-content/uploads/uu-chat/*.gif +%ÿï08@Raichuangfu.cn/jquery/ +"ÿï08@Raifei0755.net/123/ +ÿï08@Rainunu.*/vad.js +!ÿï08@Raipp99.com/haose/ +"ÿï08@Rairav.cc/AirADPic/ + ÿï08@Rairav.cc/iframe/ +*ÿï08@Rairav.cc/static/js/*_ad.js +%ÿï08@Rairav.cc/Ucenter/*_Ad +/ÿï08@Rairouba.com/public/js/global.js +ÿï08@Raisy19.com/dm/ +,ÿï08@Raitaotu.com/style/js/aitaotu +)ÿï08@Raiuw.com/images/*?from=ad +,ÿï08@Raiviy.com/assets/js/union.js +Eÿï08@R5aixiaofan.cn/content/uploadfile/tpl_options//Ad_list_ +&ÿï08@Raixiaoju.com/dbxf/*.js +5ÿï08@R%aixifan.com/appSpreadContents/danmuad +*ÿï08@Raixifan.com/apsdk/apsdk.js +.ÿï08@Raixifan.com/cms/*/w/1160/h/100 +1ÿï08@R!aiyangedu.com/static/cpt/pubuliu. +(ÿï08@Raiyidu.com/aiyidu/adver/ +*ÿï08@Raiyuke.com/position_js*_*_ +2ÿï08@R"aizhan.com/images/img/ios-sign.png +#ÿï08@Raizhan.com/imagesa/ +!ÿï08@Rak530.com/js/*.jsû +%ÿï08@Rakabebe.com/jgg/*.gif +6ÿï08@R&akqipai.com/m/Tpl/v3/js/indexbottom.js +#ÿï08@Rakuziti.com/tu/*.js +#ÿï08@Raldtop.com/scrtips/ +'ÿï08@Ralexa.cn/upfile/images/ ++ÿï08@Rali213.net/images/bg_lt.jpg +)ÿï08@Rali213.net/images/ycq.mp4 +:ÿï08@R*ali213.net/js/common/zpro/zprotxtpicurl.js +.ÿï08@Rali213.net/js/data/3gcommon.js +-ÿï08@Rali213.net/Pics/*/down_popup_ +*ÿï08@Rali213.net/pubjs/SetScreen +2ÿï08@R"ali213.net/static/js/*_ali213tv.js +)ÿï08@Rali213.net/static/js/kktv +'ÿï08@Rali213.net/static/js/kv +2ÿï08@R"ali213.net/zt/twtk/images/tzxf.png +'ÿï08@Rali213.net^*/promotion/ +(ÿï08@Ralibaba.com/async/b2bad. +&ÿï08@Ralicdn.com/ad-product/ +>ÿï08@R.alicdn.com/app/wxbpromotion/*/js/cpm/cpm_jq.js ++ÿï08@Ralicdn.com/g/mm/afp-cdn/JS/ +7ÿï08@R'alicdn.com/img/ibank/*_!!2200581616124- +7ÿï08@R'alicdn.com/img/ibank/*_!!2212029770429- +:ÿï08@R*alicdn.com/img/ibank/*_!!4231779133-0-cib. +2ÿï08@R"alicdn.com/img/ibank/*_1082732848. +2ÿï08@R"alicdn.com/img/ibank/*_1085845541. +2ÿï08@R"alicdn.com/img/ibank/*_1095372465. +2ÿï08@R"alicdn.com/img/ibank/*_1165462224. +2ÿï08@R"alicdn.com/img/ibank/*_1230538058. +2ÿï08@R"alicdn.com/img/ibank/*_1281922417. +2ÿï08@R"alicdn.com/img/ibank/*_1409595492. +2ÿï08@R"alicdn.com/img/ibank/*_1533190909. +2ÿï08@R"alicdn.com/img/ibank/*_1545027917. +2ÿï08@R"alicdn.com/img/ibank/*_1591187313. +2ÿï08@R"alicdn.com/img/ibank/*_1623489831. +Bÿï* + +rmdown.com08@R"alicdn.com/img/ibank/*_1746120392. +2ÿï08@R"alicdn.com/img/ibank/*_1776866723. +2ÿï08@R"alicdn.com/img/ibank/*_1794478205. +2ÿï08@R"alicdn.com/img/ibank/*_1932275220. +2ÿï08@R"alicdn.com/img/ibank/*_1995781528. +2ÿï08@R"alicdn.com/img/ibank/*_2021817714. +2ÿï08@R"alicdn.com/img/ibank/*_2114606112. +1ÿï08@R!alicdn.com/img/ibank/*_256401016. +1ÿï08@R!alicdn.com/img/ibank/*_330044705. +1ÿï08@R!alicdn.com/img/ibank/*_368737028. +1ÿï08@R!alicdn.com/img/ibank/*_392352300. +0ÿï08@R alicdn.com/img/ibank/*_42289337. +1ÿï08@R!alicdn.com/img/ibank/*_434184744. +.ÿï08@Ralicdn.com/img/ibank/*_456388. +0ÿï08@R alicdn.com/img/ibank/*_56164670. +1ÿï08@R!alicdn.com/img/ibank/*_687764080. +1ÿï08@R!alicdn.com/img/ibank/*_735370984. +1ÿï08@R!alicdn.com/img/ibank/*_755908572. +1ÿï08@R!alicdn.com/img/ibank/*_775661713. +1ÿï08@R!alicdn.com/img/ibank/*_794019354. +1ÿï08@R!alicdn.com/img/ibank/*_872274545. +1ÿï08@R!alicdn.com/img/ibank/*_951336353. +1ÿï08@R!alicdn.com/img/ibank/*_967741881. +3ÿï08@R#alicdn.com/imgextra/*_!!1974227597. +6ÿï08@R&alicdn.com/imgextra/*_!!2207010417239. +Nÿï08@R>alicdn.com/imgextra/i3/1731999033/TB2lAJufnlYBeNjSszcXXbwhFXa_ +Dÿï08@R4alicdn.com/kf/H2f43d53d17c74471a2a9e00bc10c5c99j.jpg +Dÿï08@R4alicdn.com/kf/H831ca346aac84070b2461d27b22a382ah.jpg +Dÿï08@R4alicdn.com/kf/H9df22b1c3f0041b2874ddfd38836993em.gif +Dÿï08@R4alicdn.com/kf/Hbbe53cc824914cf09276b642ea8c57af3.jpgæ +Dÿï08@R4alicdn.com/kf/Hd502cbfb24a74a469a3f70f010818498m.gif +Dÿï08@R4alicdn.com/kf/Hd5708bb280a64af781d74222ad3d8005w.jpg +Dÿï08@R4alicdn.com/kf/Hd62261f1a7964c50824ac5982b1aa1bfk.gif +Aÿï08@R1alicdn.com/kf/U0732534bf37c454e84b8378ceaa5d7c2V. +Aÿï08@R1alicdn.com/kf/U49aea8c7eb23472da22f6375984dfe3fa. +Dÿï08@R4alicdn.com/kf/U693ffd2a78ac452895488e4e5426554cA.jpg +Dÿï08@R4alicdn.com/kf/Uc07bb4287e9d4fd0a7a26204b13ef9ae7.jpg +Dÿï08@R4alicdn.com/kf/Uc565e19948944fdb860e6847fb145811t.jpg +2ÿï08@R"alicdn.com/openad/dsp-front-booth/ +)ÿï08@Ralicdn.com/tfscom/*.sina. +(ÿï08@Ralicdn.com/tps/*-950-90. +@ÿï08@R0alicdn.com/tps/i3/T19NaCFKFaXXckTCTS-300-100.jpg +üÿï* +xiaomingming.org* +qingmanyong.com* +wenkuxiazai.com* +magnet2048.com* + 1avlang.com* + acglover.me* + aotu101.com* + junying.com* + supfree.net* + viidii.info* + yuese46.com* + +52kpop.com* + +ccxx99.com* + +jitapu.com* + +qyl222.com* + +that2.info* + +ttww22.com* + 2334n.com* + 51dll.com* + 5xx44.com* + 5xx77.com* + 69t41.com* + 7mav2.com* + 99a21.com* + hanfan.cc* + jvhao.com* + lady3.xyz* + qyl00.com* + yzz12.com* + +63ef.com* + +dytt.com* + +jb51.net* + +spqi.xyz* + +thztv.cc08@R alicdn.com^ +*ÿï08@Ralicdn.com^*_!!3361094544. +4* + youku.com08@Ralicdn.com^*yksdk/*sdk.js +'ÿï08@Ralicloud.b-cdn.net/1.js +!ÿï08@Ralitui.weibo.com^ +$ÿï08@Ralixixi.com/adsview/ +1ÿï08@R!aliyuncs.com/ad/jd-smoofit-ad.jpg + ÿï08@Raliyuncs.com/gg/ +%ÿï08@Raliyuncs.com/ghdb.gif +4ÿï08@R$aliyuncs.com/public/v1/js/ad-config. +)ÿï08@Raliyuncs.com/vss/haotu.js +%ÿï08@Raliyuncs.com/wjy99re/ +)ÿï* + +5kym.com08@R aliyuncs.com^ +3ÿï08@R#allbeauty.com.tw/GoldPrice/*_CF.php +ÿï08@Ralu.cn*/aluad/ +ÿï08@R alu.cn/alutg/ +Kÿï08@R;alu.cn/aluTrade/Fragments/ListAdvertisementProductsHandler. +)ÿï08@Ralu.cn/Ashx/AjaxGuangGao. +7ÿï08@R'alypw.com/zb_users/plugin/ZF_tanchuang/ +ÿï08@Ram.szhome.com^ +Gÿï08@R7amazonaws.com.cn/static-documents/marketing/uda_banner_ +%ÿï08@Ramazonaws.com/91/ads_ +"ÿï08@Ramazonaws.com/s?z= +(ÿï08@Rammcg.imgscloud.com/toy/ +"ÿï08@Ramradmin.5173.com^ +ÿï08@Rams.fx678.com^ +)ÿï08@Rangelweb.cn/Inc/AngelG.js +&ÿï08@Ranhuinews.com/include/ +.ÿï08@Ranhuinews.com/zhuyeguanli/*ad/ +7ÿï08@R'anjuke.com^*/ajax/business_area_search/ +)ÿï08@Rankangwang.com/js/info.js +08@Ranoneko.com^*.*? +ÿï08@R anqu.com/b.js + ÿï08@Rantdv.com/kaikeb + ÿï08@Rantdv.com/yideng +#ÿï08@Rantpedia.com/antad/ +.ÿï08@Rantpedia.com/images/advimages/ +@ÿï08@R0antpedia.com/include/js/view_news/l_banner_js.js +1ÿï08@R!antpedia.com/viewnewsrightboxtop. +!ÿï08@Ranyshare.icu^*.js +&ÿï08@Ranywlan.com/link/*.gif +#ÿï08@Raolusb.com/forever/ +!ÿï08@Raoshi.com/rbc.jpg +&ÿï08@Rapi.bilibili.com/x/ad/ +'ÿï08@Rapi.wudizuqiu.com/72nba +*ÿï08@Rapi.wudizuqiu.com/bocai.js +ÿï08@Rapic.in/mmd.gif +'ÿï08@Rapiimg.com/huaer/xiahe. ++ÿï08@Rapk.tw/static/js/showpic.js +!ÿï08@Rapp-g.39.net/NNN/ +#ÿï08@Rappimg.0575bbs.com^ +#ÿï08@Rapple.www.letv.com^Þ +&ÿï08@Rapple886.com/subs/*.js +-ÿï* + soyunpan.com08@R applinzi.com^ +:ÿï08@R*apptry.easylife.tw/pub/js/common/common.js +*ÿï08@Rapsgo.com/assets/js/union. +ÿï08@R apsgo.com/go/ +%ÿï08@Raqdy.net/js/banner.js +!ÿï08@Raqdy.net/js/tj.js +2ÿï08@R"aqlife.com/data/attachment/portal/ +"ÿï08@Raqy103.com/js/aqy/ +!ÿï08@Rark.le.com/s?vid= +ÿï08@Rark.letv.com/s? + ÿï08@Rashow.pcpop.com^ +(ÿï08@Rasiav.cyou/myupdatelist. +#ÿï08@Rasp300.*/2012adimg/ + ÿï08@Rasp300.*/2012js/ + ÿï08@Rasp300.*/2017js/ +*ÿï08@Raspku.com/images/vz360.jpg +ÿï08@R aspku.com/z/ +ÿï08@Rassp.sohu.com^ +!ÿï08@Rastrill.com/bnrs/ +ÿï08@R asyy6.com/dm/ + ÿï08@Ratiws.aipai.com^ +ÿï08@Ratm.youku.com^ +#ÿï08@Ratmcdn.com/www/*.js +"ÿï08@Ratool.org/res/ads/ +/ÿï08@Ratt.ydss.cn/attachments/portal/ +ÿï08@Raty.sohu.com/v? +9ÿï08@R)atyun.com/wp-content/themes/xmag/js/ad.js +/ÿï08@Rauto-online.com.tw/vendor_data/ +<ÿï08@R,autofan.com.cn/UploadFiles/images/bAdImg.jpg +Aÿï08@R1autohome.com.cn/api/platformData/getFinanceBanner +1ÿï08@R!autohome.com.cn/Topic/RobotVideo? +(08@Rautohome.com.cn/ximg/*.png +?ÿï08@R/autoimg.cn/club/v1Content/images/heycar1111.jpg +6ÿï08@R&autoimg.cn/club/v1Content/images/young +"ÿï08@Rautonet.com.tw/90/ +%ÿï08@Rautopiano.cn/data/jd_ +(ÿï08@Rav-yoyo.com/images/*.gif +/ÿï08@Rav01.tv/av01/floating_video_ads +(ÿï08@Rav01.tv/images/partners/ +ÿï08@R av30.xyz/cs/ +Bÿï08@R2av6k.com/templets/default/%E5%A4%A7%E5%93%A5/ad.js +3ÿï08@R#av6k.com/templets/default/video-ad/ +"ÿï08@Rav99.us/player/ad. + ÿï08@Ravcao.cc/js/p.js +)ÿï08@Ravcity.twavtv.com/iframe/ +)ÿï08@Ravdao.pw/dist/js/sc_check +.ÿï08@Ravjj26.com/api/?d=pc&c=advert& +)ÿï08@Ravple.video/asset/bann.js +*ÿï08@Ravseesee.com/amandison.php +.ÿï08@Ravseesee.com/htmls/vlinks.html +!ÿï08@Ravseesee.com/twad +ÿï08@Rax.*.ifeng.com^ +ÿï08@R ax.ifeng.com^ +.ÿï08@Rax1x.com/2020/06/14/NSoyHe.png +Gÿï* +caibaojian.com* + +hktvyb.com* + +zzvips.com08@R ax1x.com^ +$ÿï08@Raxutongxue.*/js/yes. +08@Rayxz.com/images/ +.ÿï08@Rayxz.com/images/enkj_small.gif +)ÿï08@Razhibo.*/media/aimg/*.gif +(ÿï08@Razhibo.*images/leisu.png +>ÿï08@R.azureedge.net/wp-content/cache/minify/3c6d7.js +>ÿï08@R.azureedge.net/wp-content/cache/minify/d2299.js +6ÿï08@R&azureedge.net/wp-content/uploads/*-AD0­ +'ÿï08@Rb1.cdn.mh3666.com/html/ +08@R b168.net^*.*? +ÿï08@Rb4dg.life/love/ +ÿï08@R b7yy.com/ad/ +)ÿï08@Rbaby-kingdom.com/reqsads? +&ÿï08@Rbackchina.com/banners/ +%ÿï08@Rbad996.com/dakaads.js +8ÿï08@R(badding.oss-ap-southeast-1.aliyuncs.com^ +8ÿï08@R(badmintoncn.com/cbo_include/js/cboaaa.js +'ÿï08@Rbaidu-taobao-av.com/js/ +)ÿï08@Rbaidu-taobao-av.com^*.gif +-ÿï08@Rbaidu.com/?action=getadsdata& +.ÿï08@Rbaidu.com/adpc/scrollTextAd.js + ÿï08@Rbaidu.com/adver? +$ÿï08@Rbaidu.com/api/*/ads/ +/ÿï08@Rbaidu.com/api/proxyapi?tag=adv& +%ÿï08@Rbaidu.com/api/wikiad/ +,ÿï08@Rbaidu.com/api/wikiui/getasp? +/ÿï08@Rbaidu.com/api/wikiui/guesslike? +;ÿï08@R+baidu.com/article/ajax/getmarticlestepdata? +<ÿï08@R,baidu.com/brands/yxtg/source/yxCoupletsAd.js +%ÿï08@Rbaidu.com/buy/ad/home +3ÿï08@R#baidu.com/cms/rc/adSideConfig.json? +$ÿï08@Rbaidu.com/common/fc/ +08@Rbaidu.com/ecom +.ÿï08@Rbaidu.com/event/img/zwdzjs.jpg +5ÿï08@R%baidu.com/fanyiapp/image/wise_banner_ +*ÿï08@Rbaidu.com/feproxy/ad/list? +8ÿï08@R(baidu.com/game/asset/common/performance. +"ÿï08@Rbaidu.com/gamebox? +-ÿï08@Rbaidu.com/img/iknow/wenku*85. +5ÿï08@R%baidu.com/ndcore/interface/searchTop? +.ÿï08@Rbaidu.com/ndview/interface/hx/ +"ÿï08@Rbaidu.com/ndwkasp/ +2ÿï08@R"baidu.com/newspage/api/getadsdata? +7ÿï08@R'baidu.com/newspage/api/getimagelandafd? +1ÿï08@R!baidu.com/newspage/api/getmobads? +6ÿï08@R&baidu.com/newspage/api/getrelatednews? +5ÿï08@R%baidu.com/po/api/configure/show.jsonp +#ÿï08@Rbaidu.com/rec?*=ad& +'ÿï08@Rbaidu.com/resource/ads/ ++ÿï08@Rbaidu.com/resource/tuisong/ +*ÿï08@Rbaidu.com/rmaAjax/getGame? +7ÿï08@R'baidu.com/show/livevideo/getStreamConf? ++ÿï08@Rbaidu.com/showbrand/banner_ +,ÿï08@Rbaidu.com/showbrand/sponsor_ +)ÿï08@Rbaidu.com/source/getinfo? +=ÿï08@R-baidu.com/static/ecom/js/wise/home/nativeAds_ +/ÿï08@Rbaidu.com/static/html/cbjs.html +0ÿï08@R baidu.com/staticapi/hotnews_new. +.ÿï08@Rbaidu.com/staticapi/misadlist. +1ÿï08@R!baidu.com/tb/cms/forum_skin/file_ +/ÿï08@Rbaidu.com/tb/cms/game/*_banner. +/ÿï08@Rbaidu.com/tb/cms/game/*_banner_ +2€* +tieba.baidu.com08@Rbaidu.com/tb/zt/ +.ÿï08@Rbaidu.com/tbliveact/data/xiu8/ +'ÿï08@Rbaidu.com/tcx?*adbanner +/ÿï08@Rbaidu.com/tequan/adpadmin_feed/ +1ÿï08@R!baidu.com/ur/scun?di=contentunion +1ÿï08@R!baidu.com/videoapi/?*_ad_promote& +/ÿï08@Rbaidu.com/videoui/api/videoads? +1ÿï08@R!baidu.com/videoui/api/videopcads? +*ÿï08@Rbaidu.com/view/api/fc_btm? +0ÿï08@R baidu.com/WerbungAjax/getBeitou?¡ +1ÿï08@R!baidu.com/WerbungAjax/getTonglan? +%ÿï08@Rbaidu.com/wkbus/fcwm/ +ÿï08@Rbaidu.com/xda? +-ÿï08@Rbaidu.com/xpage/interface/get +7ÿï08@R'baidu.com/xpage/interface/inforservice? +8ÿï08@R(baidu.com/xpage/interface/sourcecontent? +4ÿï08@R$baidu.com/xpage/interface/structrec? ++ÿï* + pos.baidu.com08@R +baidu.com^ +.€* +dm5.com* +dm5.hk08@R +baidu.com^ +%ÿï08@Rbaidu.com^*/directad? +/ÿï08@Rbaidu.com^*/getrelatedbusiness? +)ÿï08@Rbaidu.com^*/interface/ad? +'ÿï08@Rbaifen.music.baidu.com^ + 08@Rbaishuku.com/news/ +/ÿï08@Rbaiten.cn/images/weInternation/ ++ÿï08@Rbaixing.com/bb/*/?category= +#ÿï08@Rbaixing.com/widget/ + ÿï08@Rbaiyug.cn^*AD.js +'ÿï08@Rbaizhan.net/coop/hezuo/ +4ÿï08@R$baizhan.net/js/136/jingyun_righttop. +ÿï08@Rballive.*/addm/ +!ÿï08@Rbanma.com/get_ad/ +#ÿï08@Rbanma.com/js/adi.js +>ÿï08@R.banma.com/statics/scripts/common/dialogAdJs.js +'ÿï08@Rbaofeng.com/images/yiqi +'08@Rbaojia.steelcn.cn/images/ +&ÿï08@Rbaoliny.com/js/jing.js + ÿï08@Rbaomihua.com/yy/ +-ÿï08@Rbaomitu.duapp.com/js/layer.js +#ÿï08@Rbavei.com/img/*.png +!ÿï08@Rbb1nn.com/js/i.js +/ÿï08@Rbb999.net/pic/n/agents/C-79.gif +0ÿï08@R bbs.a9vg.com/showit/img_show.php +"ÿï08@Rbbs.gmbbk.com^*.js +0ÿï08@R bbs.hotavxxx.com/images/201*.gif +#ÿï08@Rbbs.voc.com.cn/s.js +#ÿï08@Rbbsbaba.com/js/1.js +#ÿï08@Rbbsbaba.com/js/2.js +ÿï08@R bcb5.com/gg/ +$ÿï08@Rbcc.com.tw/imgs/adv/ +"ÿï08@Rbcc878.com/js/abc/ +!ÿï08@Rbccnsoft.com/aac/ +(ÿï08@Rbceapp.com/jj/1716mid.js +)ÿï08@Rbcebos.com/24x360x528.gif +)ÿï08@Rbcebos.com/59x360x528.gif +<ÿï08@R,bcebos.com/725c659194eeebb8c6b970e52e2dc8aa. +ÿï08@Rbcebos.com/ad/ +$ÿï08@Rbcquan.me/front/*_ad +&ÿï08@Rbcquan.me/front/*_game ++ÿï08@Rbcquan.me/front/home/render +7ÿï08@R'bdimg.com/brands/yxtg/source/juhe-v2.js +4ÿï08@R$bdimg.com/muzhi/adwap/top-banner.jpg +=ÿï08@R-bdimg.com/newmap/static/common/images/nav-ad_ +.ÿï08@Rbdimg.com/site/games/yxtg/*.js +@ÿï08@R0bdimg.com/static/m-question-new/widget/ad-union- +Aÿï08@R1bdimg.com/static/wkcore/widget/commerce/fengchao/ +gÿï08@RWbdimg.com/static/wkview/widget/download_after_activity_new/download_after_activity_new_ +@ÿï08@R0bdstatic.com/??/tb/_/diamond_mall_frs_aside_*.js +*ÿï08@Rbdstatic.com/img/image/su/ +=ÿï08@R-bdstatic.com/pc_static/detail/game_promotion/ +3ÿï08@R#bdstatic.com/player/t/j/AEoIJIPB.js +3ÿï08@R#bdstatic.com/player/t/j/Cj2XuDf6.js +3ÿï08@R#bdstatic.com/player/t/j/HlKYzquQ.js +>ÿï08@R.bdstatic.com/static/article/widget/left-promo/‹ +Hÿï08@R8bdstatic.com/static/searchresult/widget/pageDisorderTip/ +3ÿï08@R#bdstatic.com/tb/%E8%B4%B4%E5%90%A7- +7ÿï08@R'bdstatic.com/tb/cms/*%E5%BA%95%E9%83%A8 +7ÿï08@R'bdstatic.com/tb/cms/activity_head/file_ +5ÿï08@R%bdstatic.com/tb/cms/com/game/couplet_ +Jÿï08@R:bdstatic.com/tb/cms/com/mis/spreadad/dasense_iframe_api.js +Eÿï08@R5bdstatic.com/tb/cms/forum_skin/file_1442399443261.jpg +Dÿï08@R4bdstatic.com/tb/cms/img/tieba_index_banner960x90.png +@ÿï08@R0bdstatic.com/tb/cms/ngmis/file_1417585294569.jpg +@ÿï08@R0bdstatic.com/tb/cms/ngmis/file_1417585299140.jpg +>ÿï08@R.bdstatic.com/tb/mobile/sglobal/img/bannerLogo_ +7ÿï08@R'bdstatic.com/tb/zt/tengfei/gzdialog.jpg +=ÿï08@R-bdstatic.com^*/container/module/bottombanner/ +,ÿï08@Rbdstatic.com^*/fullpage-pop/ +@ÿï08@R0bdstatic.com^*/her/static/indexher/pkg/treasure. +&ÿï08@Rbdstatic.com^*/js/m.js +&ÿï08@Rbdstatic.com^*/mip-*ad +4ÿï08@R$bdstatic.com^*/plugins/every_cookie_ +,ÿï08@Rbdstatic.com^*/QSURrcmRKV.js +Sÿï08@RCbdstatic.com^*/resource/tuijian/widget/guesslikesite/guesslikesite. +=ÿï08@R-bdstatic.com^*/static/itemrep/afdTuJiTuiJian/ +(ÿï08@Rbdstatic.com^*/tam-ogel/ +2ÿï08@R"beareyes.com.cn/2/cat/js/*_centerl +0ÿï08@R beareyes.com.cn/2/cat/js/*_right +%ÿï08@Rbeareyes.com.cn^*/ad/ +-ÿï08@Rbeephone.com.tw/ad-middle.php +,ÿï08@Rbeephone.com.tw/ad-yahoo.php +*ÿï08@Rbeijing-air.com/images/a/j +.ÿï08@Rbeijingbang.top/scholar/xljsci +(ÿï08@Rbeiwo888.com/Runtime/js/ +(ÿï08@Rbejson.com/static/ydxyt/ +)ÿï08@Rbendibao.com*/tuangou.gif +/ÿï08@Rbendibao.com/mo/adm_iframe.htm? +%ÿï08@Rbesc.baidustatic.com^ +#ÿï08@Rbestvogue.com/fans/ +"ÿï08@Rbf99.com/User*/Ad_ +1ÿï08@R!bf99.com/User/Images/bg_Blued.jpg +?ÿï08@R/bfpgf.com/wp-content/uploads/2015/08/360dxs.jpg +ÿï08@R bi25.cc/js/hf +3ÿï08@R#bian-min.com/javascript/a/detail.js ++ÿï08@Rbiancheng.net/uploads/ggxc/ +<ÿï08@R,bianshengruanjian.com/tu/%E6%89%93%E8%B5%8F. +2ÿï08@R"bianzhirensheng.com/img/banner.jpg +5ÿï08@R%bianzhirensheng.com/img/bianzhiji.jpg +ÿï08@R biaoge.tv/fa +*ÿï08@Rbigear.cn/cache/htmlcache/ +$ÿï08@Rbiketo.com/d/file/p/ +5ÿï08@R%bilibilijj.com/image/right_bottom.gif +Fÿï08@R6bimiacg*.net/template/JOELEO/asset/js/jquery.leeleo.js +#ÿï08@Rbio-equip.com/dimg/ +$ÿï08@Rbio-equip.com/dimgs/ +6ÿï08@R&bio-equip.com/uploadimages/peiqing.gif +Aÿï08@R1bioon.com/xy/article/img/zhi_neng_xibao_fenxi.png +!ÿï08@Rbiquge96.com/123. +(ÿï08@Rbitauto.com/js/sense*.js + ÿï08@Rbitscn.com/js/a2 +$ÿï08@Rbixingjia.com/js/hf. +ÿï08@Rbiz.gexing.com^ +!ÿï08@Rbjcathay.com/s?z= +5ÿï08@R%bjhockey.org/public/pc/video/test.mp4 +!ÿï08@Rbjmama.net/a/spc_ +%ÿï08@Rbkill.com/css/js/*top +)ÿï08@Rbkill.com/css/js/abcbl.js +,ÿï08@Rbkill.com/css/js/xinbkill.jsÆ +.ÿï08@Rbkjia.com/bkjia/js/art_rightad +-ÿï08@Rbkjia.com/bkjia/js/artitle.js +)ÿï08@Rbkjia.com/bkjia/js/banner +/ÿï08@Rbkjia.com/bkjia/js/subnavtop.js +2ÿï08@R"blog.xuite.net/_public/js/ysmad.js +-ÿï08@Rblogspot.com^*/s1600/drug.gif +&ÿï08@Rblueidea.com/js/ajs.js +)ÿï08@Rblz105.com/player/ad.html +"ÿï08@Rbmp.ali213.net/js/ +9ÿï08@R)bmp.ovh/imgs/2020/09/3e4e11ecc19c4bd6.png +#ÿï08@Rbmp1.ali213.net/js/ +6ÿï08@R&bmp1.ali213.net/pubjs/index_sc_utf8.js +#ÿï08@Rbmp2.ali213.net/js/ +/ÿï08@Rbnextmedia.com.tw/feed/fetch.js +#ÿï08@Rboardx.huanqiu.com^ +/ÿï08@Rboce.com/statics/img/img27b.png +)ÿï08@Rbolecdn.com/button/txt.js +)ÿï08@Rbonbonme.com/js/g1313166/ +'ÿï08@Rbookben.com/js/m/wap.js +Aÿï* +honglingjin.co.uk* + sunnylife.tw08@R booking.com^ +1ÿï08@R!books.com.tw/web/apActivityStick? +Yÿï* +zaixianjisuan.com08@R4bootcdn.net/ajax/libs/jquery-cookie/*/jquery.cookie. +)ÿï08@Rbootcss.com/assets/js/and +$ÿï08@Rbosw.net/js/bos/*960 +"ÿï08@Rbotcm.com/zhanqun/ +.ÿï08@Rbp.blogspot.com^*/s1600/dealer +3ÿï08@R#bpimg.com/4851/19f7543667f26682.jpg + ÿï08@Rbqg126.com/js/hf +ÿï08@Rbqg23.cc/js/hf +)ÿï08@Rbqiapp.com/api/config/ad? ++ÿï08@Rbrand.sogou.com/micro?yyid= +%ÿï08@Rbs.baidu.com/app-ads% +ÿï08@R bt-tt.com/ad +"ÿï08@Rbt.cn/bbs/newsimg/ +ÿï08@Rbt121.net/ats/ +ÿï08@R btbt.tv/dd/ +'ÿï08@Rbtbtdy.*/js/slade888.js +,ÿï08@Rbtbtdy.*/templets/btdy/js/ad +)ÿï08@Rbtbuluo.com/uploads/*.gif +=ÿï08@R-btc.com/v1/poster/production/explorer-banner. +4ÿï08@R$btcfans.com/template/comiis_lssy/ad/ +ÿï08@Rbtdx8.com/tmp/ +$ÿï08@Rbtkat.com/style/l.js +#ÿï08@Rbtmao.cc/Public/yd/ +)ÿï08@Rbtmovi.in/static/js/xf.js +,ÿï08@Rbtmulu.com/assets/*/ad02.gif +!ÿï08@Rbtn.onlylady.com^ +ÿï08@Rbtn.pchome.net^ +)ÿï08@Rbtpian.com/static/*960.js +,ÿï08@Rbtpian.com/static/wenquan.js ++ÿï08@Rbtschool.net/images/*/HDYGR + ÿï08@Rbtwuji.com/jsj1/ +!ÿï08@Rbumimi.com/money/ +"ÿï08@Rbusiness.92wy.com^ +1ÿï08@R!buy.sina.com.tw/js/sina_popup.php +#€08@Rbuzzhand.com/images/ +ÿï08@Rbvlang.com/ad/ +0ÿï08@R bw66.cn/template/default_pc/bbs/ +(ÿï08@Rbxw666.com/storage/*.gif +ÿï08@R by4d.com/dh/ +ÿï08@Rby4d.com/love/ +'ÿï08@Rbytravel.cn/images/cus/ +4ÿï08@R$bytravel.cn/images/t/usa_250_120.gif +"ÿï08@Rbytravel.cn/js/ad_À +!ÿï08@Rbytravel.cn/js/b_ +!ÿï08@Rbytravel.cn/js/s_ +;ÿï08@R+bzdiao.com/wp-content/uploads/bhOCwJfYleFC/ +!ÿï08@Rbzhanyy.com^*.gif +?ÿï08@R/c-5uwzmx78pmca09x24aiux2euavx2ekwu.g00.msn.com^ +<ÿï08@R,c-ctrip.com/images/0101r120009e1kn7oCDCA.gif +8ÿï08@R(c-ctrip.com/train/201611/yqh_270-280.jpg +ÿï08@R c.nuhcpf.com^ +1ÿï08@R!c114.com.cn/default_inc/a/images/ +)ÿï08@Rc114.com.cn/js/channel.js +/ÿï08@Rc114.com.cn^*/js/ad_load-new.js +'ÿï08@Rc1km4.com/mobile/app.js +ÿï08@Rc2000.cn/c2000/ ++ÿï08@Rc4d.cn/api.php?mod=ad&adid= +5ÿï08@R%c4d.cn/template/iscwo_zcool/iscwo/ad/ +ÿï08@R cacafly.net^ + ÿï08@Rcachead.com^*.js +ÿï08@Rcai110.com/js/2 +0ÿï08@R caibaojian.com/d/uploads/*/atop- +,ÿï08@Rcaibaojian.com/d/uploads/*0- +(ÿï08@Rcaikuu.com/ckimages/*_gg +(ÿï08@Rcaikuu.com/ckimages/*_zg +ÿï08@Rcaixin.com/s?z= +$ÿï08@Rcanton8.com/adphoto/ +#ÿï08@Rcao0001.com/vip/js/ +#ÿï08@Rcao0002.com/vip/js/ +"ÿï08@Rcaoads.com/images/ +"ÿï08@Rcaoav.net/img/*.js +ÿï08@R caohv.com/mm/ +5ÿï08@R%car.pchome.com.tw/iframe/news_iframe. +<ÿï08@R,carexpert.com.tw/wp-content/uploads/*800x90. +$ÿï08@Rcarnoc.com/noticejs/ +,ÿï08@Rcartoon18.com/images/friend/ +%ÿï08@Rcatbox.moe/bb5wdv.jpg +#ÿï08@Rcb.com.cn/index/ad/ +*ÿï08@Rcbfw.cn/gonggong/chibi/cf_ +5ÿï08@R%ccav1.com/wp-content/uploads/an-temp/ +:ÿï08@R*ccav1.com/wp-content/uploads/bMShkpexGYJd/ +!ÿï08@Rccav1.me/block.js +1ÿï08@R!ccav5.com/static/js/floatImgAd.js +/ÿï08@Rccb.com.cn/V5/images5/left0.gif +0ÿï08@R ccb.com.cn/V5/images5/right0.gif +(ÿï08@Rccdm*/Scripts/ccMedia.js +/ÿï08@Rccement.com/index/index/fetchAd +2ÿï08@R"ccement.com/js/ccement_new/open.js +%ÿï08@Rcckke.com/fanhao/v/ad +.ÿï08@Rcctime.com/UpLoadFile/201*.gif +&ÿï08@Rcctv.com/Library/a2.js +#ÿï08@Rcctv5.name/data/js/ +0ÿï08@R cctv5.name/images/js/indextop.js +&ÿï08@Rcctv5.name/js/*foot.js +ÿï08@Rcctv567.com/b/ +Eÿï* + chinaacc.com* + ruidaedu.com08@Rcdeledu.com/ADVC/ + ÿï08@Rcdgfa.ifeng.com^ +'ÿï08@Rcdn.galacg.me/img/*.gif +'ÿï08@Rcdn.galacg.me/img/*.jpg +'ÿï08@Rcdn.haokongbu1.com^*.js + ÿï08@Rcdn.shdsp.net/ad +ÿï08@Rcdn.wo.cc/wo.js +ÿï08@R cdn.wuyou.ca^ +*ÿï08@Rcdn141.com/banner/adcards. +ÿï08@Rcdn77.org^*.mp4 +!ÿï08@Rcdncg.com^*/Aepku +&ÿï08@Rcdncg.com^*/peiyinquan£ +9ÿï* + +1kkk.com* +dm5.com08@Rcdndm.com/12/2016/ +8ÿï* + +1kkk.com* +dm5.com08@Rcdndm.com/3/2015/ +'ÿï08@Rcdndm.com^*/js/newtc.js +$ÿï08@Rcdndm5.com^*/ad_360_ +ÿï08@Rcdntxt.com/m1/ +%ÿï08@Rcdntxt.com/node/doit. +ÿï08@Rcdntxt.com/t1/ +ÿï08@Rcdntxt.com/t2/ +1ÿï08@R!cdyee.com/external/5070.files/ad/ +.ÿï08@Rceisip.com/static/js/plugin.js +#ÿï08@Rcenturys.net/promo_ +7ÿï08@R'cenyou.net/wp-content/uploads/1200-200. +4ÿï08@R$cfzhushou.com^*/King_Chance_Layer.js + ÿï08@Rchahua.org/aimg/ +0ÿï08@R chakd.com/images/xitie160x60.gif +=ÿï08@R-changsha.cn/front_js/site_ad/4/site_ad_284.js +!ÿï08@Rchaomi.cc/js/cms_ +Fÿï08@R6chaospace.fun/wp-content/uploads/*/%E6%A3%8B%E7%89%8C- +6ÿï08@R&chaospace.fun/wp-content/uploads/*/tg- +)ÿï08@Rchazidian.com/all/mobile_ +'ÿï08@Rchazidian.com/czd_gg.js +-ÿï08@Rchazidian.com/mobile_general_ +0ÿï08@R chazidian.com/Statics/images/ad_ +<ÿï08@R,chazidian.com/Statics/xly/huorezhaosheng.png +&ÿï08@Rchdbits.co/pic/*-*.gif +7ÿï08@R'chengdu.cn/acts/phoneqss/openCornerWin/ +$ÿï08@Rchengtongled.com/gg/ +0ÿï08@R chengtu.com/api.php?mod=ad&adid= +"€08@Rchengzijianzhan.cc^ +"ÿï08@Rchenjiayu.cn/gg.js +$ÿï08@Rchexun.com/delivery? +.ÿï08@Rchexun.net/images/sales//cxgg/ +ÿï08@R chidir.com^ ++ÿï08@Rchina.chemnet.com/cnbanner/ +%ÿï08@Rchina.com.cn*/ads_js/ +%ÿï08@Rchina.com.cn/2016ads/ +1ÿï08@R!china.com.cn/statics/js/henan/ad/ +/ÿï08@Rchina.com.cn/statics/js/js_vag/ +*ÿï08@Rchina.com/media/images/58/ +#ÿï08@Rchina.com/media/mm/ + ÿï08@Rchina.com/v_test +$ÿï08@Rchina.com/zh_cn/ads/ +*ÿï08@Rchina.com/zh_cn/etc/gghead ++ÿï* + +100ksw.com08@R chinaacc.com^ +'ÿï08@Rchinabidding.cn/gys.ad/ +;ÿï08@R+chinacar.com.cn/Public/index/images/banner_ +'ÿï08@Rchinaconcrete.cn/ggImg/ +(ÿï08@Rchinafpd.net/js/2012-10/ +)ÿï08@Rchinairn.com/images3/*ads +1ÿï08@R!chinairn.com/Template/*/upload/ad +2ÿï08@R"chinamedevice.cn/cnbanner/zjmz.gif +1ÿï08@R!chinanews.com/ad2019/wujiu_ad.jpg +-ÿï08@Rchinanews.com/shipin/sptp.xml +Gÿï08@R7chinapress.com.my/public/static_resources/img/*636x105. +Eÿï08@R5chinapress.com.my/public/static_resources/img/600x337 +5ÿï08@R%chinaqking.com/images/newPage/JLW.jpg +7ÿï08@R'chinaqking.com/images/qkw/jobApply1.jpg +%ÿï08@Rchinasexq.com/js/tpgg +0ÿï08@R chinatimes.com/Scripts/bennerad. +2ÿï08@R"chinatruck.org/index.php?m=poster& +$ÿï08@Rchinaxinge.com/gif3/ +$ÿï08@Rchinaxinge.com/gif4/ +0ÿï08@R chinaxinge.com/html/index_pf3.js +9ÿï08@R)chinaz.com/2020/0306/2020030616083756.jpgÝ +ÿï08@Rchinaz.com/c0g/ +#ÿï08@Rchinaz.com/imagead/ +-ÿï08@Rchinaz.com/images/210x175.jpg +"ÿï08@Rchinaz.com/news.js +$ÿï08@Rchinaz.com/newshome/ +/ÿï08@Rchinaz.com/sc_images/sc_font.js +#ÿï08@Rchinaz.com/section/ +.ÿï08@Rchinaz.com/tool_img/alexa_a.js +%ÿï08@Rchinaz.com/tools_img/ +4ÿï08@R$chinaz.com/zt/hanyi/images/sanji.jpg +"ÿï08@Rchinaz.com/zz_img/ +ÿï08@Rchinaz.com^*_g/ +-ÿï08@Rchinesetoday.cn/2017/ad/*.gif +#ÿï08@Rchnmoney.com/dfile/ +%ÿï08@Rchok8.com/statics/ad/ +Cÿï08@R3chongdiantou.com/wp-content/uploads/2019/02/pzb.jpg +'ÿï08@Rchoujue.net/one/down.js +#ÿï08@Rchoujue.net/script/ +0ÿï08@R chromeba.net/wp-content/uploads/ +5ÿï* + 7mav2.com* + +thztv.cc08@R chuantu.biz^ +<ÿï08@R,chuantu.xyz/t6/714/1580707721x3703728804.jpg +Jÿï08@R:chuapp.com/wp-content/Picture/2017-08-14/59917b959139f.png +*ÿï08@Rchubun.com/images/banners/ +*ÿï08@Rchubun.com/uploads/pic/img +!ÿï08@Rchusan.com/js/m*_ +&ÿï08@Rcidianwang.com/css/tj. +&ÿï08@Rcidianwang.com/js/left +'ÿï08@Rcidianwang.com/js/right +*ÿï08@Rcidianwang.com/js/zdtop.js +1ÿï08@R!citysbs.com/chongqing/*/1920x179- +)ÿï08@Rcitysbs.com/no/*/1190x60- +(ÿï08@Rcitysbs.com/no/*/650x50- +%ÿï08@Rcitysbs.com/no/*/980x +%ÿï08@Rcitysbs.com^*/650x60- +%ÿï08@Rcitysbs.com^*/800x90- + ÿï08@Rcitysbs.com^*swf +4ÿï08@R$cjdby.net/Public/home/images/advImg/ +*ÿï08@Rcjjjs.com/image/banner/ali +&ÿï08@Rcjjjs.com/script/ad.js +ÿï08@R cjn.cn^*/ad/ +-ÿï08@Rcjw123.com/jx/static/picture/ +ÿï08@Rcjx111.com/ads/ +ÿï08@Rck180.net/mitao +5ÿï08@R%ckxxbao.com/templets/default/js/wx.js +5ÿï08@R%clb.biz/Public/static/js/common-v2.js +&ÿï08@Rclouddn.com/960x60.gif +>ÿï* + localmv1.com08@Rcloudflare.com/ajax/libs/jBox/ +.ÿï08@Rcloudfront-666.kxcdn.com/v4.js +ÿï08@Rcmm.xmfish.com^ +#€08@Rcmsjs.eastmoney.com^ +!ÿï08@Rcna5.cc/skins/js/ ++ÿï08@Rcnblogs.com/ajax/bigbanner/ +Tÿï08@RDcnblogs.com/blog/36987/201509/36987-20150913115252950-1736386654.jpg +(ÿï08@Rcnblogs.com/group/C1*-T2 +'ÿï08@Rcnblogs.com/group/C1-C2 +$ÿï08@Rcnblogs.com/group/T2 +"ÿï08@Rcnblogs.com/units/ ++ÿï08@Rcnblogs.com^*/sideColumnAd? +$ÿï08@Rcndzys.com/huanlian/ +$ÿï08@Rcnfol.com/f=ud/Js/Ad ++ÿï08@Rcnfol.com/index_new.php?id= +#ÿï08@Rcnfol.com/pc/Js/as/ +ÿï08@Rcnfol.com/tui/ +!ÿï08@Rcngold.org/api/p?Ö +'ÿï08@Rcngold.org/cngold_float +)ÿï08@Rcngoldres.com/advservice/ +)ÿï08@Rcngoldres.com/libs/jtams/ ++ÿï08@Rcngoldres.com/web/js/*_advs +#ÿï08@Rcngsf.com/baidu.htm +,ÿï08@Rcngsf.com/images/336_280.gif +.ÿï08@Rcnjxol.com/images/20191031.png +;ÿï08@R+cnjxol.com/jxrbPaper/pc/static/js/scroll.js +)ÿï08@Rcnkang.com/showcodejsonp? +(ÿï08@Rcnlg.cn/attached/script/ +ÿï08@Rcnmo.com/oddjs/ +7ÿï08@R'cnmoad.com/wp-content/uploads/*_banner. +.ÿï08@Rcnmysoft.com/images/logo02.png +&ÿï08@Rcnool.net/AdShowCache? +&ÿï08@Rcnpingpang.com/banner/ +:ÿï08@R*cnpingpang.com/themes/v1.0/images/temp/ad/ +1ÿï08@R!cnpingpang.com/uploadfile/TTW.gif +<ÿï08@R,cnplugins.com/templets/cnplugins/pushbox1.js +*ÿï08@Rcnprint.org/bbs/images/gg/ ++ÿï08@Rcnr.cn/cnrxwph/iframe/tpdy/ +ÿï08@R cnr.cn/s?z= +(ÿï08@Rcntronics.com/adsupload/ +ÿï08@Rcntv.cn/hezuo/ +$ÿï08@Rcntvboxnow.com//ads_ +%ÿï08@Rcnwnews.com/ad-nrtop/ +ÿï08@Rcnwnews.com/gg +&ÿï08@Rcnwnews.com/images/kgt +8ÿï08@R(cnwnews.com/templets/images/artpangu.gif +0ÿï08@R cnwnews.com/templets/images/jccf +&ÿï08@Rcnyw.net/autoloader.js + ÿï08@Rcnzz.cn/badu.gif +ÿï08@R cnzz.cn/ssp_ +2ÿï08@R"cnzzla.com/public/scripts/money.js +,ÿï08@Rcodeceo.com/images/*/boxuegu +<ÿï08@R,codeceo.com/images/2020/04/kaikebabanner.png ++ÿï08@Rcodejie.net/img/xiandai.gif +9ÿï08@R)codejie.net/wp-content/uploads/*/1120-50. +2ÿï08@R"codekon.xyz/wp-content/uploads/yHX +#ÿï08@Rcodenong.com/dq.png +&ÿï08@Rcodesocang.com/js/a.js ++ÿï08@Rcodesocang.com/plus/*baoyue +3ÿï08@R#comefromchina.com/images/128bestbuy +'ÿï08@Rcoolaler.com/index_ads/ +-ÿï08@Rcoolpc.com.tw/img/topweb.html +2ÿï08@R"copyfuture.com/images/zhifubao.jpg +(ÿï08@Rcornpic.com/images/*.gif +ÿï08@Rcp121.com/js2/ +"ÿï08@Rcp2.eastmoney.com^ +6ÿï08@R&cpbl-elta.cdn.hinet.net/web/images/ad_ +"ÿï08@Rcpm.cm.kankan.com^ +1ÿï08@R!cpnn.com.cn/cpnn2015g/neiyegg.gif +4ÿï08@R$cpnn.com.cn/cpnn_images/diangong.gif +ÿï08@Rcpplay.com/inc/ ++ÿï08@Rcqvip.com/viewserver/ViewAD +ÿï08@R cr173.com/js/ +ÿï08@Rcr173.com/show/ + ÿï08@Rcr173.com/skina/ + ÿï08@Rcr173.com/skinb/ +(ÿï08@Rcreaders.net*/ad_func.js +-ÿï08@Rcrxs.me/plugins/jquery.modal/ +#ÿï08@Rcrxs.me/scripts/my_ +"ÿï08@Rcrxs.me/upload/ad/ +ÿï08@Rcsdn.net/ggmm/ +%ÿï08@Rcsdn.net/msg.popup.js» +)ÿï08@Rcsdnimg.cn/check-adblock/ +Mÿï08@R=csdnimg.cn/public/common/indexSuperise/1.1.1/indexSuperise.js +&ÿï08@Rcsdnimg.cn^*#/preview/ +.ÿï08@Rcssqt.com/a/images/indexsd.gif +(ÿï08@Rcssqt.com/a/images/right + ÿï08@Rctags.cn/9/j2.js +!ÿï08@Rctanet.cn/aqq/JS/ +"ÿï08@Rctfile.com/iz.php? +&ÿï08@Rctrip.com/amd/*960x90. +Lÿï08@Rÿï08@R.eepw.com.cn/event/action/rightbd/microchip*.js +3ÿï08@R#eepw.com.cn/pub/js/TopFullScreen.js +$ÿï08@Reeyy.cc/style/yxj.js +.ÿï08@Reeyy.com/otherhtml/js/ad650.js +-ÿï08@Reeyy.com/otherhtml/poster_js/ +/ÿï08@Reeyy.com/templates/js/other/yxj +0ÿï08@R eeyy.com/templates/js/popback.js +.ÿï08@Reeyy.com/uploadfile/img/beitou +-ÿï08@Relecfans.com/images/*/675x90. +4ÿï08@R$elecfans.com/skin-*/images/banner_ad +&ÿï08@Relecfans.com/skin-*ad_ +,ÿï08@Relecfans.com/static/home_ad/ +2ÿï08@R"elecfans.com/webapi/advertisement/ +,ÿï08@Remdcadvertise.eastmoney.com^ +<ÿï08@R,emoney.cn/www/officalWebStatic/js/slideAd.js +#ÿï08@Ren8848.com.cn/js/ad +)ÿï08@Ren8848.com.cn/js/content. +*ÿï08@Ren8848.com.cn/js/lianxi.js +)ÿï08@Renread.com/img/185-50.gif +(ÿï08@Rentry.baidu.com/rp/home? +ÿï08@Reol.cn/e_busi/ +&ÿï08@Reol.cn/e_images/gk/jnc +$ÿï08@Reol.cn/images/*1000- +0ÿï08@R eol.cn/images/ed/gaokao/*-85.jpg +ÿï08@Reol.cn/js/eol/ +.ÿï08@Reol.cn/js/global/jQuery_ads.js +%ÿï08@Reoof.net/PicZone/qzgg +*ÿï08@Reprice.com.tw/img/tw_m/ad/ +"ÿï08@Rerebor.douban.com^ +'ÿï08@Res3984.review/02_cn_ad/ +&ÿï08@Retadult.com*/images/20 +)ÿï08@Retest8.com/js/158/infojs/ + 08@Retf88.com/jjb/*_ad +ÿï08@Retf88.com/swf/ +*ÿï08@Rettoday.net/ad/*_action.js +$ÿï08@Rettoday.net/banners/ +*ÿï08@Rettoday.net/events/ad-tab/ +'ÿï08@Rettoday.net/funfuntrip/ +>ÿï08@R.ettoday.net/style/hot-trip/js/travel-action.jsý +!ÿï08@Rettoday.net^*/ad/ ++ÿï08@Reveryonepiano.cn/Public/*0x +(ÿï08@Rexcelhome.net/js/banner- +#ÿï08@Rexpreview.com/baba/ +2ÿï08@R"eyny.com/data/cache/js_show_ads.js +2ÿï08@R"eyusky.net/weixin-img/zhifubao.jpg + ÿï08@Reyuyao.com/yyad/ +%ÿï08@Rezprice.com.tw/ezysm/ +(ÿï08@Rezprice.com.tw/js/*_ysm_ ++ÿï08@Rf8dy.tv/template/m1938/js/b +1ÿï08@R!f8dy.tv/template/m1938/js/foot.js +#ÿï08@Rfabuye.vip/zhuanfa/ +<ÿï* + +storm.mg08@R facebook.com/v2.6/plugins/video. +"ÿï08@Rfaloo.com/ou/site/ +0ÿï08@R familydoctor.com.cn/c/a/000/ggw_ +6ÿï08@R&fang.com/house/ajaxrequest/adverTlGet. +#ÿï08@Rfang99.com^*/advjs/ +*ÿï08@Rfanhaodang.org/Runtime/js/ ++ÿï08@Rfanquanwang.com/uploads/ad/ +'ÿï08@Rfans.*.space/fans/*.php +(ÿï08@Rfanyi.baidu.com/wise/afd +$ÿï08@Rfaquanya.com/weixin/ +7ÿï08@R'fast8.cc/skin/default/images/630652.png +2ÿï08@R"fastadmin.net/uploads/store/aliyun +3ÿï08@R#fastadmin.net/uploads/store/tencent + ÿï08@Rfaxingw.cn/js/*0 +!ÿï08@Rfaxingw.cn/js/*ad +,ÿï08@Rfaxingw.cn/js/detailgcbox.js +,ÿï08@Rfc2fan.net/js/check_focus.js +ÿï08@Rfdc.com.cn^*adv +08@Rfdc.my0511.com^ +$ÿï08@Rfeesoon.com/js/cnzz_ +&ÿï08@Rfeijisu*.com/js/huimi- +&ÿï08@Rfeizl.com/images/smdd/ +-ÿï08@Rfenxiangdashi.com/img/banner/ +0ÿï08@R fenxiangdashi.com/Res/js/detail_ +!ÿï08@Rff.meikanguo.com^ +%ÿï08@Rfh21.com.cn/partners/ +3ÿï08@R#fhcmeiju.com/template/DYXS2/html/1. +%ÿï08@Rfiles.jb51.net/image/ +3ÿï08@R#firefoxchina.cn/2014/*_foxphone.png +,ÿï08@Rfirefoxchina.cn/chome_*.html +*ÿï08@Rfirefoxchina.cn/chome_pmt_ +?ÿï08@R/firefoxchina.cn/img/201912/7_5de5c6289dd340.png +8ÿï08@R(firefoxchina.cn/v2/json/floatBanner.json +'ÿï08@Rfirefoxchina.cn^*49560. +)ÿï08@Rfirefoxchina.cn^*_couplet ++ÿï08@Rfirefoxchina.cn^*_topbanner +)ÿï08@Rfj.sina.com.cn/iframe/63/ +#ÿï08@Rfjisu.*/js/huimi.js +5ÿï08@R%fjlqqc.com/common/api/v1.0/slot-code/ +ÿï08@R fkesfg.com^ +,ÿï08@Rfkf5.com/public/js/static.js +ÿï08@Rfl6n.com/adtop/ ++ÿï08@Rflash.mycar168.com/data/js/ +ÿï08@Rflasmr.top/leb. +"ÿï08@Rflighty.cn/images/ +=ÿï08@R-flyzy2005.com/wp-content/*/bandwagonhost-top. +(ÿï08@Rfm086.com/Plugins/search +7ÿï08@R'fmhua.com/template/*/images/g_js/*.html +&ÿï08@Rfobshanghai.com/bbsad/ +"ÿï08@Rfontke.com/custom/ +*ÿï08@Rfoodmate.net/file/script/A +/ÿï08@Rfpbsnc.com/Runtime/js/psData.jsý +=ÿï08@R-fpdisplay.com/templates/default/js/palyflash_ +*ÿï08@Rfpdisplay.com/upload/n_ad/ +.ÿï08@Rfragment.firefoxchina.cn/html/ +6ÿï08@R&free-cdn.oss-cn-shanghai.aliyuncs.com^ +Cÿï08@R3freehao123.com/wp-content/uploads/2017/05/mmkdm.png +2ÿï08@R"freejavbt.com/assets/images/banner +%ÿï08@Rfrontendjs.com/api/ad +#ÿï08@Rfsclzs.com/Ad_User/ +ÿï08@R ft.com/a.html +$ÿï08@Rftchinese.com/a.html +*ÿï08@Rftchinese.com/m/marketing/ +ÿï08@Rftimg.net/s?z= +0ÿï08@R fuimg.com/1/66795b80a792fb96.png +8ÿï* + cfzhushou.com* + 678cn.com08@R +fuimg.com^ +-ÿï08@Rfulibac.com/images/upload/ad/ +Aÿï08@R1fulibl.com/wp-content/uploads/2016/06/320-230.jpg +5ÿï08@R%fun1shot.com/images/qrcode_wechat.png +*ÿï* +cartoonmad.com08@Rfun8.us^ +'ÿï08@Rfunc.tw/image/func2.png +4ÿï08@R$funshipin.com/v1/js/footerhongbao.js +%ÿï08@Rfwsir.com/static/cpt/ +,ÿï08@Rfwwang.cn/templets/fw/js/art +(ÿï08@Rfx110.*/Pub/Ghz/GetModel +2ÿï08@R"fx110.*/Scripts/1.0.0/gulpmin/Ghz/ +8ÿï08@R(fx110.*/Styles/1.0.0/dist/Ghz/MatrixAds. +ÿï08@Rfx168.com/am.js +)ÿï08@Rfxxz.com/skin/know/all.js +-ÿï08@Rfzbm.com/bbs/static/js/bma.js +ÿï08@R fzd3.com/gg/ +08@Rfzlol.com/images/ +08@Rfzpchome.com/txt/ +ÿï08@Rg-years.com/gy/ +ÿï08@Rg-years.com/tb/ +&ÿï08@Rg.163.com/*&affiliate= +&ÿï08@Rg.cnzz.cn/Static/js/*- +ÿï08@R g.hsw.cn^ +!ÿï08@Rg.jinti.com/f/a/a +ÿï08@R g.lznews.cn^ +ÿï08@R g.mnw.cn^ +#ÿï08@Rg.rexian.net.cn/js/ +ÿï08@Rg3f3.com/love/ +ÿï08@R gaglxx.com/5_ +2ÿï08@R"galacg.me/wp-content/uploads/*750x +5ÿï08@R%galaxymedia.xyz/app/images/banner.gif +$ÿï08@Rgame333.net/aainset/ +&ÿï08@Rgamefy.cn/cookiead.php +0ÿï08@R gamemale.com/static/js/valida.js +'ÿï08@Rgamersky.com/common/tg/ +/ÿï08@Rgamersky.com/g/gamerskyflash.js +€08@Rgames.ifeng.com^ +*ÿï08@Rgames.ifeng.com^*.shtml?v= + ÿï08@Rgamme.com.tw/ga/ +(ÿï08@Rgamme.com.tw/uploads/*?2 +'ÿï08@Rgangjuw.com/style/lmjs/ +%ÿï08@Rganji.com/content.php +'ÿï08@Rganjistatic1.com^*/adm/ +(ÿï08@Rganjituiguang.ganji.com^ +3ÿï08@R#gansudaily.com.cn/2017zt/images/*gg +3ÿï08@R#gaofen.com/source/plugin/gaofen_ad/ +2ÿï08@R"gaoqing.la/wp-content/uploads/*/gg +;ÿï08@R+gaoqing.la/wp-content/uploads/*/kaiboer.gif +3ÿï08@R#gaoqing.la/wp-content/uploads/*980x +5ÿï08@R%gaoqing.la/wp-content/uploads/*banner +5ÿï08@R%gaoqing.la/wp-content/uploads/*GOOVISª +-ÿï08@Rgaoqing888.com/img/icmarkets. +'ÿï08@Rgasaq.com/public/flash/ +2ÿï08@R"gavbus*.com/assets/common/js/ad.js +6ÿï08@R&gavbus*.com/assets/common/js/admenu.js +-ÿï08@Rgd.ct10000.com/js/ecssstat.js +)ÿï08@Rgd.sina.com.cn/iframe/22/ + ÿï08@Rgd163.*/2018_ad/ +#ÿï08@Rgdbyhtl.net^*adfix/ +ÿï08@Rgdcytv.cn^*.gif +ÿï08@Rgdmm.com*/mybt/ +0ÿï08@R gdmm.com/api.php?mod=js&bid=2111 +.ÿï08@Rgdmm.com/images/leftbottom.png +ÿï08@R gdr3.com/us/ +ÿï08@R gdt.qq.com^ +,ÿï08@Rgeekbang.org/public/serving/ +'ÿï08@Rgeekpark.net/api/v1/ads +7ÿï08@R'gegeyingshi.com/template/*/images/g_js/ +)ÿï08@Rgeilicdn.com/img*_960_60. +@ÿï08@R0getitfree.cn/wp-content/plugins/adunblocker/*.js +5ÿï08@R%getitfree.cn/wp-content/plugins/anti- +"ÿï08@Rgexing.com/i/*960x +2ÿï08@R"gexing.com/j/??zmask.js,easing.js? +ÿï08@Rgfan.com/press/ +=ÿï08@R-gg-led.com/uploadFile/uploadCompanyLogo/*.gif ++ÿï08@Rgg.*.com/tonglan/tonglan.js +ÿï08@Rgg.0598yu.com^ +ÿï08@R gg.7976.top^ + ÿï08@Rgg.blueidea.com^ +ÿï08@R gg.cs090.com^ +ÿï08@Rgg.gsdlcn.com^ +ÿï08@R gg.kugou.com^ +ÿï08@Rgg.sonhoo.com^ +ÿï08@R gg.uuu9.com^ + ÿï08@Rgg163.net/20*ad/ +(ÿï08@Rgg163.net/js/163bbsad.js +'ÿï08@Rgg163.net/js/gg163ad.js + ÿï08@Rgg86.pinggu.org^ +#ÿï08@Rgg88.bj.bcebos.com^ + ÿï08@Rggcode.2345.com^ +,ÿï08@Rggg*.com/static/js/common.js + ÿï08@Rggs.myzaker.com^ +<ÿï08@R,ggtp-1255424916.cos.ap-chengdu.myqcloud.com^ +!ÿï08@Rggw.gusuwang.com^ + ÿï08@Rggw.watertu.com^ ++ÿï* + linghit.com08@R +ggwan.com^ +$ÿï08@Rggxwb.miguvideo.com^ +/ÿï08@Rghjie.com/images/2012/images/bg +'ÿï08@Rghjie.com/JS/youcegg.js +'ÿï08@Rghost580.com/js/nei4.js +&ÿï08@Rgiaoji.com/Runtime/Js/ +&ÿï08@Rgimy.*/images/eee*.png +=ÿï08@R-githubusercontent.com/vip888vip/ug/main/*.gif +#ÿï08@Rgjwind.com/xxmh.gif +-ÿï08@Rgk99.com/static/js/a-d-sys.js +"ÿï08@Rglgoo.*/gimage/ad/ +'ÿï08@Rglzy8.com/img/ceo/js.js +#ÿï08@Rgmbbk.com/bbsgmbbk/ +ÿï08@Rgmbbk.com/fb.js +%ÿï08@Rgmbbku.com/img/top.js +ÿï08@Rgmbbku.com/jj/ +ÿï08@Rgmbuluo.net/js/ +#ÿï08@Rgo.hangzhou.com.cn^ +!ÿï08@Rgo2av.com/for_ad/ +"ÿï08@Rgo2av.com/js/AM.jsÆ +(ÿï08@Rgo2tutor.com/lifebox.asp +&ÿï08@Rgogorenti.wang/js/m_cp +2ÿï08@R"gold678.com/news/js/layer/layer.js +#ÿï08@Rgome.com.cn/flight? +.ÿï08@Rgongshe99.com/d/js/gongshe/gsw +$ÿï08@Rgood8866.com/js/*.js +:ÿï08@R*goodgupiao.com/skins/default/js/backTop.js +$ÿï08@Rgoods.tudou.com/api? +"ÿï08@Rgoproxy.cc/api.php +#ÿï08@Rgoto.www.iciba.com^ +&ÿï08@Rgougou2018.com/js/item +:ÿï08@R*gouhb.com/skin/jww/images/20141029114*.png +&ÿï08@Rgoupu.org/1files/*.gif +&ÿï08@Rgoupu.org/1files/*.htm +$ÿï08@Rgoupu.org/1files/*0. +*ÿï08@Rgoupu.org/1files/guidebar/ +ÿï08@R gp.jstv.com^ +ÿï08@Rgp123.cc/20*ad/ +ÿï08@R gpxz.com/js2/ +$ÿï08@Rgreenxf.com/js/2019/ +'ÿï08@Rgreenxiazai.com/d/js/v/ +/ÿï08@Rgrtimed.com/material/*_960x110_ +'ÿï08@Rgsdpw.com/file/script/A +ÿï08@Rgt.duowan.com^ +ÿï08@R +gt.yy.com^ +<ÿï08@R,gter.net/index.html?c=foot_js&type=footer.js +Iÿï08@R9gtimg.cn/mediastyle/event/20160306_music_live/img/skd.jpg +#ÿï08@Rgtimg.com/201*/dsp/ ++ÿï* + okooo.com08@Rgtimg.com/adb/ +!ÿï08@Rgtimg.com/adxcdn/ +Hÿï08@R8gtimg.com/auto/js/autoproject/autoarticle/low-price-car_ +Aÿï08@R1gtimg.com/comic/pics/hv1/29/74/1631/106074674.jpg +*ÿï08@Rgtimg.com/comic/richmedia/ +0ÿï08@R gtimg.com/edu/0727abroad/duilian +@ÿï08@R0gtimg.com/edu/pics/hv1/115/26/2077/135063670.png +8ÿï08@R(gtimg.com/ent/final2009/dp_tebu_logo.png ++ÿï08@Rgtimg.com/news/news/2014ad/ +6ÿï08@R>img.com/newsapp_bt/0/14484060967/641 +5ÿï08@R%gtimg.com/newsapp_bt/0/1846661534/641 +4ÿï08@R$gtimg.com/newsapp_ls/0/13369140468/0 +4ÿï08@R$gtimg.com/newsapp_ls/0/13971120264/0 +1ÿï08@R!gtimg.com/newsapp_ls/0/27161189/0 +6ÿï08@R>img.com/pingjs/ext2020/dc/module/GJ/ +!ÿï08@Rgtimg.com/qqlive/ +-ÿï08@Rgtimg.com/rain/bl20/json/8.js +%ÿï08@Rgtimg.com/sports/000/ +(ÿï08@Rgtimg.com/sports/000_AD/ +1ÿï08@R!gtimg.com/sports/images/30090.jpg +*ÿï08@Rgtimg.com/sports/qingyang/ +=ÿï08@R-gtimg.com/v/pics/hv1/88/83/1734/112774603.jpg +.ÿï08@Rgtimg.com/www/mobi/js/app-bar- +ÿï08@Rgtimg.com^*/ad/ + ÿï08@Rgtimg.com^*/adv/ +5ÿï08@R%gtpso.com/Home/TopSdk/getFavCoupItems +!ÿï08@Rguang1.zhakao.cn^ +<ÿï08@R,guanggaolianmeng.net/plushuan/ad_js.php?aid= +'ÿï08@Rgucheng.com/2016/ggimg/ +"ÿï08@Rgucheng.com/gcwad/ +"ÿï08@Rguess.h.qhimg.com^ + ÿï08@Rguhai.com.cn/AD/ +&ÿï08@Rguifun.com/psptool/ad/ +#ÿï08@Rguilin-ly.com^*.gif +'ÿï08@Rguitarchina.com/1/*.gif +"ÿï08@Rguli21.com/js/ggdmÕ + ÿï08@Rguli21.com/PNEW/ +!ÿï08@Rguojitv.com/m/ad/ +$ÿï08@Rguojitv.com/m/js/ad_ +3ÿï08@R#guokr.com/apis/flowingboard/item/m_ +%ÿï08@Rguokr.com/baidu-cbjs/ +#ÿï08@Rguqu.net/Cooperate/ +/ÿï08@Rgwbnsh.net.cn/hd/unicom/ad.html +9ÿï08@R)gxnews.com.cn/clientscript/index_duilian_ +ÿï08@Rgxqzz.7766.org^ + ÿï08@Rgywb.cn/cs_mulu/ +ÿï08@R gywb.cn/gggl/ +ÿï08@Rgzzza.com/html/ +'ÿï08@Rhackhome.com/js/*top.js +(ÿï08@Rhackhome.com/js/bhref.js +)ÿï08@Rhackhome.com/js/dright.js +%ÿï08@Rhackhome.com/js/zt.js + ÿï08@Rhackhw.com/ckjs/ +ÿï08@R hackp.com/im/ +ÿï08@Rhades.qyer.com^ +"ÿï08@Rhaiwainet.cn*/k.js +(ÿï08@Rhaiwaiyy.com/B970X90.gif + ÿï08@Rhaiyuer.com/didi +!ÿï08@Rhaiyuer.com/nb.js +ÿï08@Rhaiyuer.com/uc +ÿï08@Rhandjob.tw/ad/ +1ÿï08@R!hanjutv2020.com/index.php?c=dudu_ +9ÿï08@R)hanjutv2020.com/statics/skin/*/js/plus.js +6ÿï08@R&hanjutvn.com/template/alifun/js/Tmall/ +<ÿï08@R,hanzify.*/Main/Template/Images/chinabank.gif +1ÿï08@R!hao.rising.cn/catalog/bottom.html +.ÿï08@Rhao.rising.cn/images/nsdgg.jpg +#ÿï08@Rhao123.cn/images/cp +'ÿï08@Rhao123.com/erjiapi/adv? +%ÿï08@Rhao123.com/ifeed/cpc? +,ÿï08@Rhao123.com/static/img/taobao +'ÿï08@Rhao123img.com/res/ecom/ +/ÿï08@Rhao123img.com/res/js/common/as. +4ÿï08@R$hao123img.com/res/js/common/erjiAdv. +3ÿï08@R#hao123img.com/static/common/js/cpc_ +#ÿï08@Rhao5.net/images/*0- +ÿï08@R hao6v.com/d/ +(ÿï08@Rhaochi123.com/J_Box/Inc_ +)ÿï08@Rhaofs.com/haofs/ggapi.asp +-ÿï08@Rhaokan5.com/js/haokanjs/2014_ +-ÿï08@Rhaokan5.com/js/haokanjs/playa +-ÿï08@Rhaokan5.com/js/haokanjs/tj.js +5ÿï08@R%haokan5.com/js/haokanjs/youxiajiao.js +!ÿï08@Rhaolepic.com/blz/ + ÿï08@Rhaolepic.com/js/ +3ÿï08@R#haolingsheng.com/public/daguzhe.jpg +"ÿï08@Rhaopp02.com/haose/ +ÿï08@Rhaopp02.com/js/ +)ÿï08@Rhaoqu99.com/d/haoqu/haoqu +!ÿï08@Rhaosf.com/kan.htm ++ÿï08@Rhaowenwang.com/js/Header.js +*ÿï08@Rhaoxxoo.com/player/ad.html +0ÿï08@R happyhongkong.com/images/client/ +!ÿï08@Rhb8g86k.mom/mz.js +1ÿï08@R!hc360.com/images/14826/289x90.jpg +&ÿï08@Rhc360.com/js/*hezuo.js +Dÿï08@R4hc360.com/js/build/source/widgets/flowbao/flowbao.js +<ÿï08@R,hc360.com/js/module/info/info_liuliangbao.js +7ÿï08@R'hc360.com/list/iframe_end_textadv.shtml +@ÿï08@R0hc360.com/security/201409/201409021830024990.jpgè +>ÿï08@R.hcbbsoss.oss-cn-hangzhou.aliyuncs.com^*-banner +,ÿï08@Rhdchina.*/styles/topshow/AD/ +ÿï08@R hdsky.me/adv/ +!ÿï08@Rhdslb.com/bfs/ad/ +-ÿï08@Rhdslb.com/js/core-v5/picment. +!ÿï08@Rhebei.com.cn/eap/ +/ÿï08@Rhebei.com.cn/sys/online_calc.js +"ÿï08@Rhebtv.com/d/a/thea +3ÿï08@R#hefei.cc/templates/default/index_ad +Qÿï08@RAhefeng-group.net/attach/20200605/Fl05PJWEPUSuVt1x6PeHbHiaQ59J.png +#ÿï08@Rheiguang.com/f/uad/ + ÿï08@Rheipa666.xyz/hp/ +$ÿï08@Rheirui.cn/static/hb_ +$ÿï08@Rheiye.cc/js/bancity. +!ÿï08@Rheiye.cc/js/bf.js +ÿï08@Rheiye.cc/js/hei +%ÿï08@Rheiye.cc/js/xuanfu.js +$ÿï08@Rhello-jm.com/foot.js ++ÿï08@Rhelloavgirls.com/public/hg/ +*ÿï08@Rhellogithub.com/v1/advert/ ++ÿï08@Rhenan.sina.com.cn/iframe/7/ +,ÿï08@Rhenan100.com/d/file/indexad/ +ÿï08@R henghost.com^ +,€* + gamer.com.tw08@R herogame.com^ +)ÿï08@Rhexun.*/hxpage/index.html +7ÿï08@R'hexun.com*/hx_news/hx_news_finalpage.js +!ÿï08@Rhexun.com/gphqtc/ +*ÿï08@Rhexun.com/hxpage_jrtj2020/ +5ÿï08@R%hexun.com/pc/img/diversionToWXBottom_ +*ÿï08@Rhexun.com/pc/js/dataPopup. +8ÿï08@R(hf365.com/0/13/79/87/13798795_912593.jpg +8ÿï08@R(hf365.com/0/14/31/00/14310068_933922.png +8ÿï08@R(hf365.com/0/14/60/93/14609355_921128.jpg +8ÿï08@R(hf365.com/0/15/64/87/15648725_922274.jpg ++ÿï08@Rhgyouxi.com/data/hgyouxiad/ +ÿï08@Rhiad.vmall.com^ +,ÿï08@Rhiao.com/node/node_27508.htm +ÿï08@Rhiaxj.com/dbxf/ +,ÿï08@Rhibiquan.com/uploads/images/ +,ÿï08@Rhinet.net/radio/getAdcode.do +ÿï08@Rhistock.tw/ad/ +)ÿï08@Rhitime5.com/skin/css/*.js +6ÿï08@R&hk-pub.com/forum/images/2009/gifbanner +/ÿï08@Rhk-pub.com/forum/images/banner/ +(ÿï08@Rhkb123.com/plus/show.php +9ÿï08@R)hkcoding.com/chequeconvert/img/grammarly- +!ÿï08@Rhkcoding.com/img/ + ÿï08@Rhkdm688.*/js/68/ +%ÿï08@Rhkitblog.com^*-banner +/ÿï08@Rhkjunkcall.com/images/b_banner_ + ÿï08@Rhkmte.com/seo.js +1ÿï08@R!hktvmall.com/api/preroll/getList? +9ÿï08@R)hltoon.com/hanman/static/dist/ppm/js/foot +ÿï08@R hmghmg.com/tb +6ÿï08@R&hmoe12.com/wp-content/uploads/202*.gif +,ÿï08@Rhmwang.icu/skin/images/*.gif +Lÿï08@Rÿï08@R.i3zh.com/wp-content/plugins/cm-pop-up-banners/ +%ÿï08@Riabao.com/sladewap.js +ÿï08@Riads.xinmin.cn^ + ÿï08@Riapolo.com/myjs/ +!ÿï08@Riask.ca/img/*.gif +ÿï08@Riask.cn^*.data. + ÿï08@Riask.cn^*.param.ä +ÿï08@Riask.cn^*/qiye. +$ÿï08@Riask.cn^*commercial. +ÿï08@Riask.cn^*model. ++ÿï08@Ribf.tw/js/jquery.blockUI.js +$ÿï08@Ricaile.com/z.php?id= ++ÿï08@Ricao4.com/uploads/pic/2.jpg +Aÿï08@R1iciba.com/www/img/activity/common/active-11-11.js +'ÿï08@Rickd.cn/mobile/js/touch +"ÿï08@Ricnkr.com/cnkradv/ +1ÿï08@R!icnkr.com/data/attachment/portal/ +ÿï08@R +idcot.com^ +"ÿï08@Ridv.st/dns/bar.htm +9ÿï08@R)ieforex.com/r/cms/www/red/red2/images/*0. +ÿï08@Rifeng.com/a_if/ +)ÿï08@Rifeng.com/iframe/quickbet +#ÿï08@Rifeng.com/showcode? +(ÿï08@Rifeng.com/showjs?*apids= +#ÿï08@Rifeng.com/ssi-incs/ +4ÿï08@R$ifeng.com/statics/comment_baidu.html +"ÿï08@Rifeng.com^*&adids= +%ÿï08@Rifeng.com^*&ADUNITID= +Mÿï08@R=ifengimg.com/1d124ac5e89463af/2013/0125/rdn_51023a5071d32.jpg +>ÿï08@R.ifengimg.com/29daa33abbbc4bbc/2015/7/titad.gif +Aÿï08@R1ifengimg.com/6e0e559e19f25e8b/2013/1226/shoucheng +(ÿï08@Rifengimg.com/a/*/core201 +&ÿï08@Rifengimg.com/a/*/yemei ++ÿï08@Rifengimg.com/a/*_w300_h250. +)ÿï08@Rifengimg.com/a/2016/*600. +)ÿï08@Rifengimg.com/a/2017/*600. +Mÿï08@R=ifengimg.com/c337cf1a3749e953/2015/0301/rdn_54f25a4228062.jpg +1ÿï08@R!ifengimg.com/iamsImg/*_w100_h550. ++ÿï08@Rifengimg.com/ifeng/sources/ +%ÿï08@Rifengimg.com/iis/iis_ +#ÿï08@Rifengimg.com/mappa/ +.ÿï08@Rifengimg.com/md/*/v_responsive +7ÿï08@R'ifengimg.com/pmop/2017/*_w600_h793.jpeg +,ÿï08@Rifengimg.com/static/js/*Adv. +4ÿï08@R$ifengimg.com/static/news/js/advtrack +9ÿï08@R)ifengimg.com/static/news/js/newsAdvtrack_ +'ÿï08@Rifengimg.com^*/100-100- +*ÿï08@Rifengimg.com^*/aplayer.xml +(ÿï08@Rifengimg.com^*/embed*.js +)ÿï08@Rifengimg.com^*/fullscreen ++ÿï08@Rifengimg.com^*/iframe_load_ +(ÿï08@Rifengimg.com^*/rdn_*.js? +)ÿï08@Rifengimg.com^*/yingguang- +%ÿï08@Rifengimg.com^*300x600 +#08@Rifengimg.com^*couplet +7ÿï08@R'ifeve.com/wp-content/uploads/*/cachekit +8ÿï08@R(ifeve.com/wp-content/uploads/*/WechatIMG +7ÿï08@R'ifkdy.com/_nuxt/44e01dcef4aa1a21d9a6.js +1ÿï08@R!ifkdy.com/ifkdy/weixin/isFollowMe +.ÿï08@Rifooday.cn/index.php?m=poster& +8ÿï08@R(ifunmac.com/wp-content/uploads/*/alipay- +,ÿï08@Rigamepark.biz/ads_output.php +%ÿï08@Rigao17.com/need/h5.js +ÿï08@Rih336.com^*a.js +!ÿï08@Rihhmh.com/mg/show +ÿï08@R iiauu.cn/777/ +ÿï08@Riid97.com/bdgo/ +:ÿï08@R*iid97.com/wp-content/cache/autoptimize/js/ +"ÿï08@Riiilab.com/sponsor +*ÿï08@Riis7.com/ys/css2018/ggw.js ++ÿï08@Rijinshan.com/images/gk/gameå +"ÿï08@Rik123.com/js/dd.js +&ÿï08@Rikafan.com/js/novel.js +.ÿï08@Rikafan.com/upload/image/iqiyi_ +#ÿï08@Rikaka.com/globalad/ +!ÿï08@Rikstatic.cn^*.gif +>ÿï08@R.ilxdh.com/navig/2020-09-08/1599538164_1474.png +ÿï08@Rim286.net/286/ +4ÿï08@R$image-shop.baidu.com/n/imageproduct? +#ÿï08@Rimage.39.net/style/ +2ÿï08@R"imageoss.com/images/*_GIF2400x120_ +&€08@Rimages.china.cn^*first/ +%ÿï08@Rimages.jurong.cn/bbs/ +%ÿï08@Rimages.sohu.com/bill/ +#ÿï08@Rimages.sohu.com/cs/ +)ÿï08@Rimages.sohu.com/ytv/*.jpg +6ÿï08@R&imagespublic.tk/clothes/comeliness.php +#ÿï08@Rimedown.info/03.jpg +"ÿï08@Rimedown.info^*.gif +%ÿï08@Rimeee.cn/DA_HTML/*.js +3ÿï08@R#imeee.cn/DA_HTML/bottom_960x90.html +ÿï08@R img.3sjt.com^ +%ûï08@Rimg.eol.cn/images/ed/ ++ÿï08@Rimg.hdsky.me/images/20*.gif +(ÿï08@Rimg.ifeng.com/tres/html/ +%ÿï08@Rimg.sex169.info^*.gif +ÿï08@R img1.126.net^ +ÿï08@R img2.126.net^ +"ÿï08@Rimg2.titan007.com^ +ÿï08@R img3.126.net^ +'ÿï08@Rimg588.net/images/*.gif +%ÿï08@Rimg599.net/images/*0x +7ÿï* + 18board.com* + 18p2p.com08@R img599.net^ +&ÿï08@Rimgbaiduxz.xyz/jsjsjs/ +-ÿï08@Rimgchili.net/media/image*.gif +*ÿï08@Rimgchili.net/media/top.gif +<ÿï08@R,imgclh.com/imgs/2024/08/07/569cfb2f078e0c42. +:ÿï08@R*imgdb.cn/item/6098ab56d1a9ae528f16192c.jpg +%ÿï* + +m4ff.com08@R imgdb.cn^ +!ÿï08@Rimghost.top/kita/ +4ÿï08@R$imgjiajiao.cn/jiajiao/js/lxonline.js +%ÿï08@Rimgme.me/images/*.gif +@ÿï* + 18avtube.com* + mm-cg.com08@Rimgmega.com/i/*.gif +(ÿï08@Rimgroom.net/images/*.gif +"ÿï08@Rimgs.cc/images/ad_ +'ÿï08@Rimgs.cc/img/8Pl6FJY.gif +(ÿï* + fun1shot.com08@Rimgs.cc^ +.08@R imgsrc.baidu.com/tieba/pic/item/ +1ÿï08@R!imgtp.com/2023/02/18/KkRe64ff.png +.ÿï08@Rimgtp.com/2024/03/17/LXqznsUs. +*ÿï08@Rimgtuku.com/images/20*.gif +%ÿï08@Rimgur.com/df53F09.jpg +%ÿï08@Rimgur.com/oPNxy4w.gif +%ÿï08@Rimgur.com/zNQ0lXP.gif +4ÿï* + +histock.tw* + +wgun.net08@R +imgur.com^ +,ÿï* + 18p2p.com08@Rimgur.com^*.gif +(ÿï* + +xiuren.org08@R +imgxr.com^ +/ÿï08@Rimooc.com/open/courselistrandjs +&ÿï08@Rimpservice*.yodao.com^ +'ÿï08@Rimpservice*.youdao.com^ +-ÿï08@Rinfo.vip.iqiyi.com/promotion/ +,ÿï08@Rinhe.*/Uploadfiles/adpublish +0ÿï08@R inhe.net/Uploadfiles/inhegg2016/ +0ÿï08@R inlishui.com/index.php?m=poster& +3ÿï* + inoreader.com08@Rinoreader.com/adv/Ò +"ÿï08@Rinszu.com/js/qian/ +ÿï08@Rinte.sogou.com^ +,ÿï08@Riocoder.cn/alert/js/alert.js +*ÿï08@Rip.sb/assets/images/*_ads. +!ÿï08@Rip138.com/banana/ +!ÿï08@Rip138.com/banner/ +ÿï08@Rip138.com/idc/ +3ÿï08@R#ipeen.com.tw/js/frame/ad-actions.js +&ÿï08@Ripeen.com.tw/photo/ad/ +:ÿï08@R*ipip.net/loveapp/ipip/tools/theme/partner/ +*ÿï08@Riporn.world/attachment/ad/ +ÿï08@Riptv444.com/ad- +%ÿï08@Riqilu.com/getZone.php +0ÿï08@R iqilu.com/static_files/multiads/ +1ÿï08@R!iqilu.com/static_files/richmedia/ +-ÿï08@Riqilu.com/static_files/zones/ +)ÿï08@Riqiyi.com/common/*/cupid/ ++ÿï08@Riqiyi.com/marketing/*/oppo. +/ÿï08@Riqiyi.com/player/common/adflash +.ÿï08@Riqiyi.com/player/common/rebull +#ÿï08@Riqiyi.com/show2?cb= +%ÿï08@Riqnew.com/d/js/m/thea +%ÿï08@Riqshw.com/d/js/m/thea +-ÿï08@Rishowx.com/www/2015/js/top.js +&ÿï08@Risky.ltd/skin/js/ad.js +$ÿï08@Risso.com.cn/club/adv +"ÿï08@Risso.com.cn^*/A-D/ +-ÿï08@Rit165.net/index.php?m=poster& +1ÿï08@R!it610.com/views/front/js/special/ +*ÿï08@Ritavcn.com/images/2012/ad_ +*ÿï08@Ritavcn.com/images/2013/ad_ +*ÿï08@Ritavcn.com/images/2014/ad_ +(ÿï08@Ritavcn.com/pic/news/*-90 +(ÿï08@Ritavcn.com/pic/news/*x90 +Cÿï08@R3itavcn.com/pic/news/201802/20180207/image/050N2.gif +'ÿï08@Ritbaoku.cn/Content/jms_ ++ÿï08@Ritbear.com.cn/abc/list-and- +"ÿï08@Ritbulu.com/banner/ +ÿï08@Ritc.*^prod=ad& +!ÿï08@Ritc.cn/?prod=rtb& +<ÿï08@R,itc.cn/activity/activity_js/changyan_config_ +$ÿï08@Ritc.cn/base/core/gg_ +&ÿï08@Ritc.cn/mdevp/*-advert/ +*ÿï08@Ritc.cn/w/u/0/old-insertAd- +!ÿï08@Ritheat.com/?show= +*ÿï08@Rithome.com.tw/media/serve? +%ÿï08@Rithome.com/api/lapin/ +0ÿï08@R ithome.com/file/js/lapin-load.js +)ÿï08@Rithome.com/file/js/money/ +/ÿï08@Rithome.com/file/js/win*china.js +*ÿï08@Rithome.com/images/1068.jpg +)ÿï08@Rithome.com/images/hb1212/ +*ÿï08@Rithome.com/images/hongbao/ +,ÿï08@Rithome.com/images/huawei.jpg +*ÿï08@Rithome.com/js/lapin/hot.js +*ÿï08@Rithome.com/js/recommend.js +*ÿï08@Ritiexue.net/domain-policy/ +=ÿï08@R-itiexue.net/wap/tiexue/js/chuping/nativeshare +%ÿï08@Ritjsb.com/itjsbwx.jpg +ÿï08@R itmsc.cn^*ad0 +"ÿï08@Ritongcheng.cc/amm/ +(ÿï08@Ritopdog.cn/itopdog/ad.js +(ÿï08@Ritopdog.cn/itopdog/d*.js +3ÿï08@R#ituba.cc/uploads/allimg/201610/603/½ +ÿï08@R itv.hexun.com +)ÿï08@Ritxueyuan.com/advPicture/ +#ÿï08@Ritxueyuan.com^*.mp4 +/ÿï08@Riupian.com/mstyle/js/topinfo.js +$ÿï08@Rivy.pconline.com.cn^ +!ÿï08@Riwanad.baidu.com^ + 08@R iyf.tv/a/ + 08@R iyf.tv/play/ +"ÿï08@Riyingdi.com/goood? + ÿï08@Riyinghua.io/bar/ +!ÿï08@Riztwp.com/images/ +!ÿï08@Rja*.gamersky.com^ +&ÿï08@Rjable.tv/assets/*0.gif +0ÿï08@R jable.tv/assets/images/*-slider. +8ÿï08@R(jandan.net/static/sos/recreate-games.gif +%ÿï08@Rjandan.net/static/ss/ +&ÿï08@Rjandan.net^*/3kbw2.png +$ÿï08@Rjandan.net^*/699pic/ +%ÿï08@Rjandan.net^*/moyu.png +/ÿï08@Rjav101.com/img5bbb0096f242f.gif +$ÿï08@Rjavazhijia.com/skin/ +#ÿï08@Rjavbooks.com/52toy/ +Kÿï08@R;javdove.com/templates/frontend/javdove/*/partialviewslider. ++ÿï08@Rjavhd.com/banners-mainpage/ +ÿï08@R javhd.com/sb/ +&ÿï08@Rjavhoo.net/pop/pop.jpg +.ÿï08@Rjavhub.net/img/r18_banner1.jpg +$ÿï08@Rjb51.net/imgby/logo_ +,ÿï08@Rjbzyw.com/Application/M/adv/ +$ÿï08@Rjc001.cn/ci/jad/fix. +.ÿï08@Rjcodecraeer.com/plus/fuckblok. +€08@R jcrb.com/ZYW +!ÿï08@Rjd-bbs.com^*/gif/ +!ÿï08@Rjd.com/bottom/cps ++ÿï08@Rjd.com/exsites?spread_type= +(ÿï08@Rjd.com/static/js/auto.js +'ÿï08@Rjd.com/static/js/cpc.js + ÿï08@Rjd100.com/cwmpc/ +)ÿï08@Rjdwx.info/api.php?mod=ad& +5ÿï08@R%jia.com/js/common/article_home_adv.js +&ÿï08@Rjialingmm.net/dm/tj.js +)ÿï08@Rjialingmm.net/img/gdw.jpg +#ÿï08@Rjialingmm.net/tj.js +0ÿï08@R jiandan100.cn/images/site/union/ +:ÿï08@R*jianhuadaily.com/wp-content/plugins/popup- +(ÿï08@Rjianke.com^*/jquery.ppt. +2ÿï08@R"jianshen114.com/images/Advistings/ +ÿï08@Rjianxun.io/ad/ +"ÿï08@Rjiaodong.net/a/js/ +8ÿï* + +mitbbs.com* + mitbbs.ca08@R jiaoyou8.com^ +'ÿï08@Rjiaoyu.baidu.com/tieba/ +3ÿï08@R#jiasule.com/static/js/http_error.js +$ÿï08@Rjiayu.net/comiis_ad/ +4ÿï08@R$jiegeng.com/static/json/jg_topFixed. +0ÿï08@R jiejueba.com/templets/16img/*.js +1ÿï08@R!jiemian.com/static/jmw/js/adBase_ +3ÿï08@R#jijidown.com/static/img/dongcidaci/ +5ÿï08@R%jijidown.com/static/img/right_bottom. +'ÿï08@Rjijidy.com/640x200down. +1ÿï08@R!jijistatic.duapp.com/Squall/1.jpg +$ÿï08@Rjinfu.love/files/h5/ +(ÿï08@Rjingujie.com/public/jgj_ +/ÿï08@Rjingujie.com/public/js/*html.js +9ÿï08@R)jingyanlib.com/home/data/getAdOnlineList?î +%ÿï08@Rjinhua.com.cn/ad_pic/ +ÿï08@Rjinman4.com/ad/ +$ÿï08@Rjinti.com^*/aspx/*gg +!ÿï08@Rjinyici.com/qq.js +9ÿï08@R)jishulink.com/jishulink/searching/ad/get? +.ÿï08@Rjishuqq.com/images/haodian.gif +%ÿï08@Rjishuqq.com/wadsb.gif +(ÿï08@Rjishuyl.com/_skins/*/ad_ +$ÿï08@Rjisoupan.com/static/ +!ÿï08@Rjisusoft.com/ads/ +.ÿï08@Rjisutiyu.com/app/js/*footer.js +,ÿï08@Rjisuxz.com/180226/b180226.js ++ÿï08@Rjisuxz.com/180226/downshare +"ÿï08@Rjitapu.com/inc/adv +7ÿï08@R'jitashe.org/template/jitashe/image/bc/3 +0ÿï08@R jiyingdm.com/js/loadingshow.html +,ÿï08@Rjjj*.com/static/js/common.js ++ÿï08@Rjjjgame.com/images/ad11.jpg +%ÿï08@Rjjwxc.net/jjPopup.php +&ÿï08@Rjlmhk.com/images/data/ +#ÿï08@Rjlpcn.net/img/300p- +ÿï08@Rjmbbs.cn/sjgg/ +2ÿï08@R"jmhfw.com/index.php?/ajax/get_adv/ +'ÿï08@Rjmydm.com/jspage/ftt.js +,ÿï08@Rjnlc.com/www/fund/newsmarket +)ÿï08@Rjokerlu.com/upload/addon/ +'ÿï08@Rjokerlu.com/upload/vod/ +!ÿï08@Rjp1357.com/addon/ +!ÿï08@Rjp2468.com/addon/ +.ÿï08@Rjp2468.com/api/vip/vipshow.php +%ÿï08@Rjpfans.com/jpfans.jpg +ÿï08@Rjpysvip.net/ad/ + ÿï08@Rjrj.com.cn/h5Ad? +ÿï08@Rjrj.com.cn/s?z= +ÿï08@R jrjimg.cn/ad/ +.ÿï08@Rjrjimg.cn/common/foot/allfc.js +0ÿï08@R jrjimg.cn/common/foot/wxXcxTg.js +)ÿï08@Rjrjimg.cn/stock/adjsok.js +-ÿï08@Rjrmianban.com/img/images/g-g/ +.ÿï08@Rjrzj.com/images/bgright_ad.jpg +'ÿï08@Rjrzj.com/img_index/*adv ++ÿï08@Rjrzj.com/img_index/guanggao +)ÿï08@Rjrzj.com/img_index/index_ + ÿï08@Rjs*.abolezi.com^ +ÿï08@Rjs.bju888.com^ +!ÿï08@Rjs.duotegame.com^ +&ÿï08@Rjs.mumayi.net/9495.gif +&ÿï08@Rjs.mumayi.net/jiujiang +ÿï08@R js.tlt.cn/js/ +&ÿï08@Rjs0573.com/images/cus/ +;ÿï08@R+jsdelivr.*/npm/@bootcss/*/assets/img/aliyun +5ÿï08@R%jsdelivr.net/gh/*/%E7%89%9B960-80.gif +-ÿï08@Rjsdelivr.net/gh/*/1200-60.gif +*ÿï08@Rjsdelivr.net/gh/*/960-100. +,ÿï08@Rjsdelivr.net/gh/*/960-80.gif +-ÿï08@Rjsdelivr.net/gh/*/960x100.gif +(ÿï08@Rjsdelivr.net/gh/a901361/ +9ÿï08@R)jsdelivr.net/gh/cdnjsdelivr001/182cdn*.js +>ÿï08@R.jsdelivr.net/gh/cloud-files-cdn/jsfiles/lieqi. +9ÿï08@R)jsdelivr.net/gh/cloud-files/imgs/adamkoo- +2ÿï08@R"jsdelivr.net/gh/fzdm/st*/js/fzwap- +@ÿï08@R0jsdelivr.net/gh/pizcat/static@master/goods_ad.js +*ÿï08@Rjsdelivr.net/gh/sex169hub/ +7ÿï08@R'jsdelivr.net/gh/supfree/supfree/top.gifÍ +(ÿï08@Rjsdelivr.net/gh/te89899/ +1ÿï08@R!jsdelivr.net/gh/vip888vip/*960x80 +*ÿï08@Rjsdelivr.net/gh/yaociyuan/ +6ÿï08@R&jsdelivr.net/gh/yaofa88/bifa@main/*960 +ÿï08@R json.cn/d/dt/ +'ÿï08@Rjson.cn/js/aliWindow.js +!ÿï08@Rjswz8.com/images/ +ÿï08@R jsyefc.com^ +2ÿï08@R"jsztl.com/img/particular/tbyhq.jpg +2ÿï08@R"juapp5.com/geek_image/chaopai.jpeg +>ÿï08@R.juejin.cn/content_api/v1/advert/query_adverts? +#ÿï08@Rjuji.tv/Runtime/js/ +"ÿï08@Rjuqingw.com/js/tad +'ÿï08@Rjuweixin.com/static/spk +*ÿï08@Rjuxia.com/jxtp/indexbg.jpg +ÿï08@Rjxad.jx163.com^ +8ÿï08@R(jxcn.cn/assets/images/downWeatherApp.png +"ÿï08@Rjxcn.cn/js/hotpic_ +,ÿï08@Rjxdown.com/statics/js/all.js +2ÿï08@R"jxnews.com.cn/assets/js/dspshow.js +4ÿï08@R$jxnews.com.cn/first/js/home/index_ad +#ÿï08@Rjxnews.com.cn^*_ad_ +/ÿï08@Rjxtest.bolecdn.com/player/*.gif +%ÿï08@Rjy135.com/js/pubuliu. +*ÿï08@Rjyfw.cn/gonggong/jiayu/cf_ +ÿï08@Rjyfw.cn/nav/cf_ +-ÿï08@Rjyrd.com/statics/*/js/baizhu/ +"08@Rjz5u.com/public/js/t +$ÿï08@Rjz5u.com/public/new/ +8ÿï08@R(jzb.com/website/fe/pub_js/dbclickshow.js +ÿï08@Rk99.cc^ +(ÿï08@Rkaixin001.com.cn/js/cpm- +#ÿï08@Rkalvin.cn/page/img/ +/ÿï08@Rkan.cc/statics/abs/scripts/abs. +&ÿï08@Rkan98.com/images/*.gif +3ÿï08@R#kan98.com/statics/js/k2017/kan98.js +,ÿï08@Rkanbook.net/static/js_union/ +ÿï08@Rkancloud.cn/ad/ +,ÿï08@Rkanguba.com/file/js/main.asp +*ÿï08@Rkanjiantu.com/images/*.gif + ÿï08@Rkanjuwo.com/js/6 + ÿï08@Rkanjuwo.com/js/8 +$ÿï08@Rkankanmi.com/js/zjgg +*ÿï08@Rkankantv.*/javascript/thea +&ÿï08@Rkankantv.cc/330-50.gif + ÿï08@Rkankanwu.com/le/ +"ÿï08@Rkankanwu.com/xuxu/ + ÿï08@Rkanmeiju.net/js/ +&ÿï08@Rkanpb.com/skin/images/ + ÿï08@Rkanqiuba.net/js/ ++ÿï08@Rkantie.org/a/images/car.jpg +0ÿï08@R kantv6.com/index.php/Popularize/ +<ÿï08@R,kaolashuwu.com/zb_users/plugin/ZF_tanchuang/ +"ÿï08@Rkaoyan1v1.com/IAA/ +0ÿï08@R kb-render.alicdn.com/html/*.html ++ÿï08@Rkccdk.com/Content/img/*.gif +(ÿï08@Rkdou.com/ad_js.php?adid= +'ÿï08@Rkdw*.com/layer/layer.js +)ÿï08@Rkedou*.com/layer/layer.js +=ÿï08@R-kejiwanjia.com/wp-content/uploads/*/1040x100. ++ÿï08@Rkekenet.com/images/*/akasuo +2ÿï08@R"kekenet.com/images/*/tom468X60.gif +2ÿï08@R"kekenet.com/Images/*/tom640X40.gif +'ÿï08@Rkekenet.com/images/*980¤ +#ÿï08@Rkekenet.com^*/zhike +0ÿï08@R kekeshici.com/pc/images/pcAd.gif +ÿï08@Rkelatv.com/ad/ +ÿï08@Rkewaishu.org/m- +*ÿï08@Rkey8.com/cache/www/banner_ +?ÿï08@R/keywin.org/templates/kw_v2/images/youbianad.png +ÿï08@R kiees.cn/img/ +ÿï08@Rkiees.cn/jm.png +ÿï08@Rkiees.cn/k1.js +#ÿï08@Rkikinote.net/iframe +7ÿï08@R'kiwi8.top/media/plugins/jquery_confirm/ +$ÿï08@Rkkkkdm.com/js/comic- +"ÿï08@Rkkkkdm.com/mg/show +1ÿï08@R!klandmart.com/K-Landmart_0011.jpg +:ÿï08@R*kmmgoogle.oss-ap-southeast-1.aliyuncs.com^ +2ÿï08@R"kmplayer.cn/include/jscript/*-a.js +!ÿï08@Rkmw.com/js/adshow +'ÿï08@Rkocpc.com.tw/adsbyso.js +ÿï08@R kokojia.com^ +&ÿï08@Rkostool.cn/screenshot/ +>ÿï08@R.koyi.pub/wp-content/plugins/dh-anti-adblocker/ +)ÿï08@Rkoyso.com/static/js/abcd. +"ÿï08@Rkoyso.com/aclib.js +2ÿï08@R"kppt.cc/zb_system/script/common.js +!ÿï08@Rkppt.cc/zhifu.jpg +(ÿï08@Rkt51.com/images/kt51.gif +ÿï08@Rkt51.com/wz.jpg +#ÿï08@Rktzhk.com/file/adv/ +;ÿï08@R+kuaicad.com/rest/common/getConfigureByName? +;ÿï08@R+kuaidi100.com/assets/ext?method=mainprofile +7ÿï08@R'kuaidi100.com/images/kuaidi/201612081*4 +/ÿï08@Rkuaidi100.com/js/share/i_new.js +1ÿï08@R!kuaidi100.com/mobile/mobileapi.do +(ÿï08@Rkuaidiwo.cn/kdwkxmlt.jpg +)ÿï08@Rkuaihou.com/c/shuoming.js +%ÿï08@Rkuaihou.com/c/you1.js +)ÿï08@Rkuaihou.com/js/new/xiazai +$ÿï08@Rkuaijuwu.net/js/abc/ +%ÿï08@Rkuaileco.com/weishou/ +:ÿï08@R*kuaishouba.com/themes/default/images/*.gif +,ÿï* + yuese46.com08@R kuaizhan.com^ +;ÿï08@R+kuazhi.com/zb_users/plugin/allshow/js/main. +  08@Rkugoucdn.com^*?_t= +(ÿï08@Rkwflvcdn.000dn.com^*.flv +ÿï08@Rkxd56.com/qq.js + ÿï08@Rkxd56.com/tg.gif +*ÿï08@Rkxmusic.cn/tc/js/script.js ++ÿï08@Rkxmusic.top/tc/js/script.js +$ÿï08@Rkygso.com/js/lrtk.js +ÿï08@Rl.qq.com/lview? +6ÿï08@R&labuladong.github.io/algo/pictures/ad/ +)ÿï08@Rlagou.com/js/cooperation/ +(ÿï08@Rlahoo.ca/api.php?mod=ad& +ÿï08@Rlahoo.ca/slider +ÿï08@Rlaixi.com/tp/20 +$08@Rlangxi.org/langxi/*900 +*ÿï08@Rlangya.cn/2014html/2014ad_ +&ÿï08@Rlangya.cn/2014html/ad/ +Aÿï08@R1lanrenzhijia.com/Public/images/head_right_top.gif +8ÿï08@R(lanrenzhijia.com/Public/images/sucaihuo_ +;ÿï08@R+lanrenzhijia.com/Public/images/xiaozhua.jpg +Kÿï08@R;lanyes.org/content/templates/lanye2015/images/hb_banner.png +0ÿï08@R laod.cn/wp-content/uploads/*/ad- +'ÿï08@Rlaogu.com/cms/images/ad§ +(ÿï08@Rlaowang81.com/getfuolist +$ÿï08@Rlaowangblog.com^*-ad +4ÿï08@R$law-lib.com/wstyle/images/gffirm.jpg +*ÿï08@Rlawtv.com.cn/jd_ceshi.html +;ÿï08@R+lawtv.com.cn/skin/newplayer/ads_dianshi.php +;ÿï* + hanjutvn.com08@Rlayuicdn.com/layer/layer.js +#ÿï08@Rlbx777.*/css/300.js +$ÿï08@Rlbx777.*/css/lbxgg02 +!ÿï08@Rlcxw.cn/d/js/thea + ÿï08@Rlcxw.cn/i/*dl.js +!ÿï08@Rld0766.com/*20*a/ + ÿï08@Rldb.cc/js/top.js +-ÿï08@Rlecai.com/page/zhuanti/baidu/ +@ÿï08@R0leiphone.com/uploads/new/category/pic/*/740x140/ +.ÿï08@Rleju.com/abp/cmslead_new.v2.js +Cÿï08@R3leju.com/scripts/app/pc/indexlayer/v1/indexlayer.js +/ÿï08@Rleju.com^*=abs.processReqChange +"ÿï08@Rlele36.com/p/*.gif +%ÿï08@Rlelekan.com/sp/fmt.js +%ÿï08@Rleleketang.com/dat/a/ +"ÿï08@Rlenosoft.net/js/ad +Fÿï08@R6lenovo.com.cn/cms/2018-07-20/201807201014498251793.png +4ÿï08@R$lenovo.com.cn/lenovo/bid?clientType= +$ÿï08@Rlensdump.com/i/*.gif +/ÿï08@Rletv.com/pzt/hyhmzq/index.shtml +ÿï08@Rlgmi.com/ggimg/ +$ÿï08@Rlgmi.com/left_right_ +!ÿï08@Rlgmi.com/right_ys +ÿï08@Rlgmi.com/syimg/ +(ÿï08@Rlgmi.com/tjyf200x207.asp +*ÿï08@Rlgmi.com/windows/*-Advert. +ÿï08@R lgmi.com^*_gg +.ÿï08@Rlh168.net^*/attachment/portal/ +&ÿï08@Rlianaiyx.com/d/js/cst/ +%ÿï08@Rliangjan.com/js/show_ + ÿï08@Rlianmeng.la/abc/ + ÿï08@Rlianmeng.la/ad1/ +!ÿï08@Rliantu.cn/script/ +%ÿï08@Rlianty.com/getImg?id= +:ÿï08@R*lianyexiuchang.cc/img/2f2372e9bf205df0.png +:ÿï08@R*lianyexiuchang.cc/img/97da89108eb659fc.gif +%ÿï08@Rlianyexiuchang.cc/js/ +:ÿï08@R*liaoxuefeng.com/files/attachments/00144*/0 +&ÿï08@Rlicai18.com/henyepweb/ +-ÿï08@Rlicai18.com/pic/article/*.gif +*ÿï08@Rliepin.com/event/jobadver/ ++ÿï08@Rlieqinews.com/json/zhiketj/ +(ÿï08@Rlihuasoft.net/images/ad_ +*ÿï08@Rliisex.com/images/banners/ +*ÿï08@Rlinecg.com/uploads/banner/ +,ÿï08@Rlingdianshuwu.com/js/content +0ÿï08@R link114.cn/template/js/showpics_ +$ÿï08@Rlinkhelper.cn/mmshow +ÿï08@Rlinks.cn/mmshow +5ÿï08@R%linkwan.com/gb/broadmeter/speed/cp.js ++ÿï08@Rlinkwan.com/gb/javascript/a +/ÿï08@Rlinkwan.com/gb/javascript/b4.js +-ÿï08@Rlinkwan.com/gb/javascript/c5- +0ÿï08@R linovel.net/cp/lk/ad/externalAd? +/ÿï08@Rlinovelib.com/scripts/zation.js +2ÿï08@R"linuxde.net/wp-content/uploads/ad/ +-ÿï08@Rlinuxeden.com/plus/web_js.php +*08@Rlinuxidc.com/linuxfile/linux ++ÿï08@Rlinuxidc.com/linuxfile/listè +!ÿï08@Rliu16.com/vip.png +1ÿï08@R!liuxue86.com/css/liuxue_output.js +1ÿï08@R!liuxue86.com/js/ideng/liuxue-show + ÿï08@Rlive173.com//AD/ +#ÿï08@Rlive173.com/BANNER/ ++ÿï08@Rliveany.com/images/8d8d.gif + ÿï08@Rlivku.com/g1000/ +$ÿï08@Rliwupuba.com/livead/ +ÿï08@R ll.gxsky.com^ +ÿï08@Rllj22.com/1.gif +ÿï08@R lnzqw.net/js/ +&ÿï08@Rlocalau.vip/plugin/ad_ +,ÿï08@Rlocalau.vip/plugin/pause.php ++ÿï08@Rlocalau.vip/plugin/show.php +(ÿï08@Rlocalau.vip/tccenter/ad/ +-ÿï08@Rlofter.com/mailEntryMobile.do +(ÿï08@Rlogoquan.com/upload/prd/ +#ÿï08@Rloldyttw.com/blr.js +.ÿï08@Rloldyttw.com/skin/lol/js/ds.js +'ÿï* + kisssub.org08@Rloli.io^ +5ÿï08@R%loli.net/2019/04/24/5cc0027b4f2f1.png +7ÿï08@R'loli.net/2020/06/17/gpRx7AzGwI4kQmV.gif +7ÿï08@R'loli.net/2020/06/17/vGALJ4mQx26T75u.gif +4ÿï08@R$loli.net/2023/05/08/w4aGFUIVmKgOT78. +bÿï* +magnet2048.com* + acglover.me* + +9kanqq.com* + +nulltm.com* + +hdsky.me08@R loli.net^ +%ÿï08@Rlolshipin.com/zt/sxx/ +!ÿï08@Rlongdidi.top^*.js +8ÿï08@R(longzhu.com/i/api/playpage/recommendPop? +(ÿï08@Rlongzhu.com/recommendad/ +&ÿï08@Rlotour.net/bcef/388.js +-ÿï08@Rlouimg.com/i/2021/08/17/*.gif +2ÿï08@R"louimg.com/u/20191214/17512133.jpg +#ÿï08@Rlovek01.com/gif/97- +9ÿï08@R)loveshang.com/api.php?mod=ad&adid=custom_ +&ÿï08@Rlsforum.net/cam2/*.gif +$ÿï08@Rlsforum.net/yahooad/ + ÿï08@Rlsjxs.cc/js/html +1ÿï08@R!lsntzzy3.com/Runtime/js/psData.js +1ÿï08@R!lsnzxzy1.com/Runtime/js/psData.js ++ÿï08@Rltbyw.top/data/images/*.gif +(ÿï08@Rltn.com.tw/js/ad_door.js +ÿï08@Rlu228.com/ajs/ ++ÿï08@Rlunhua5.com/images/more.gif +<ÿï08@R,lutouwang.net/static/images/boss_gao_hb.jpeg +-ÿï08@Rlutouwang.net/static/js/mv_ad +$ÿï08@Rluyx8.com/tu/666.gif +(ÿï08@Rlv-play.com/web/adv/list +*ÿï08@Rlvse.cn/output/block/html/ +ÿï08@R +lvse.com/9 +:ÿï08@R*lvuptech.com/wp-content/plugins/deblocker/ +ÿï08@R lw54.com/js/ +)ÿï08@Rlw881.com/public/js/gw.js + ÿï08@Rlwlwlw.com/ggzx/ +%ÿï08@Rlwlwlw.com/js/FVgg.js +2ÿï08@R"lxapk.com/wp-content/uploads/*.gif +ÿï08@R lxting.com^ +2ÿï08@R"lycc72.com/resources/js/content.js +#ÿï08@Rlyd.com.cn^*950-90. +0ÿï08@R lysq.com/data/attachment/portal/ +)ÿï08@Rlywww.com/data/js.php?id= +(ÿï08@Rlywww.com/header_pic.php +ÿï08@Rlzep.cn/ep/sda/ +ÿï08@Rlzk.hl.cn/lctp/ +"ÿï08@Rlzyysw.com/upload/ÿ +ÿï08@Rm.aty.sohu.com^ +"ÿï08@Rm.kankanwu.com/js/ +!ÿï08@Rm.lelekan.com/sp/ +,ÿï08@Rm.mianbao99.com/js/detail.js +108@R#m.tiebaimg.com/timg?wapp^*imgtype=0 +.ÿï08@Rm.ybstwl.com/public/tpl/m2/js/ +%ÿï08@Rm1905.cn/afp/mdsfw.js +)ÿï08@Rm1905.cn/data/suspension_ +/ÿï08@Rm1905.cn/images/vod/vod*-90.jpg +!ÿï08@Rm1905.cn/js/afp/m +%ÿï08@Rm1905.com/asp_js/k.js +4ÿï08@R$m1955.com/template/qq/images/playad/ +ÿï08@Rm2.lelemh.com^ +(ÿï08@Rmacd.cn/macd-topads.html + ÿï08@Rmacfans.org/vip/ +2ÿï* + game.macx.cn08@Rmacx.cn/js/jquery. +4ÿï08@R$magedu.com/wp-content/uploads/*/xwzx +,ÿï08@Rmahoupao.com/api.php?mod=ad& +€08@Rmahua.com/api/ +6ÿï08@R&mahua.com/www/default/js/mahua_show.js +6ÿï08@R&mahua.com/www/default/js/replace_ab.js ++ÿï08@Rmaiche.com/iframe/rank.html +=ÿï08@R-mail.pchome.com.tw/img/classifieds/300120.gif +"ÿï08@Rmail.qq.com/lview? +"ÿï08@Rmakaidong.com/img/ +%ÿï08@Rmalimali5.com/ad1.png +-ÿï08@Rmall.xinkuaituan.com/zhuanti/ +"ÿï08@Rmall0.qiyipic.com^ +,ÿï08@Rmamecn.com/style/pcjs/bgimg. +!ÿï08@Rmanage.wdfans.cn^ +)ÿï08@Rmangafuna.xyz/static/ads/ +(ÿï08@Rmangahax.com/images/ima_ +@ÿï08@R0manqian.cn/784a6e27-be5b-4442-86e5-9f4adb51894d? +1ÿï08@R!manqian.cn/async/adLocationConfig +(ÿï08@Rmaodh.com/admin/up/*.gif +Aÿï08@R1maolihui.com/wp-content/themes/miaonew/images/adb +Nÿï08@R>maopu.tv/d/file/p/2019/07/6ac50c702cf9e6a9a7910a510c40cb73.jpg +ÿï08@Rmarket.178.com^ + ÿï08@Rmarket.21cn.com^ +"ÿï08@Rmarket.duowan.com^ +%ÿï08@Rmasadora.net/kakusan- +%ÿï08@Rmasturbation22.com/d/ +(ÿï08@Rmat.chasedream.com^*.gif +4ÿï08@R$mat1.gtimg.com/2014/vikkydu/GA/haier +7ÿï08@R'mat1.gtimg.com/2014/webtips/ola2014tips +(ÿï08@Rmat1.gtimg.com/cq/flash/ +-ÿï08@Rmat1.gtimg.com/ent/flash/*300 ++ÿï08@Rmaxthonimg.com/v6/festival/ ++ÿï08@Rmbalib.com/common/a_mbalib/ +Bÿï08@R2mcmod.cn/editor/upload/20221126/1669399546_2_ONBt. +%ÿï08@Rmddcloud.*/oweApi/ad/ +!ÿï08@Rme680.com/js/*.js +08@Rmedsci.cn/aimgs/ +(ÿï08@Rmedsci.cn/images/wyg.jpg +,ÿï08@Rmeiju8.cc/js/jquery.p.min.js +#ÿï08@Rmeiju8.cc/js/m_ban_ +ÿï08@Rmeiju8.cc/js/pv +&ÿï08@Rmeiju8.cc/js/tpcode.js +%ÿï08@Rmeijucang.com/js/pop/ +%ÿï08@Rmeijuck.com/js/dfw.js +"ÿï08@Rmeijutt.*/js/pcjs/ +1ÿï08@R!meijutt.tv/js/layer/mobile/layer. +(ÿï08@Rmeijuxz.com/template/ZQ/ +$ÿï08@Rmeipian.me^*/api_ad/‹ +#ÿï08@Rmeishichina.com/v3/ +&ÿï08@Rmeitiantv.com/ganggao/ ++ÿï08@Rmeitu.com/js/floatxiuxiu.js +-ÿï08@Rmeituan.com/ptapi/recommends? +=ÿï08@R-meituan.com/xiuxianyule/api/getRecommendList? +ÿï08@Rmeitui.org^*.js +*ÿï08@Rmeitulu.com/css/*showgg.js +/ÿï* + novipnoad.com08@Rmeixincdn.com^ +"ÿï08@Rmeiyee.cc/js/tj.js +2ÿï08@R"meiyouad.com/static/pc/img/111.gif +(ÿï08@Rmeiyouad.com/user/admin? +%ÿï08@Rmeizhou.cn/comm/mygg/ +,ÿï08@Rmeizhou.com/images/topbanner +$ÿï08@Rmestrip.com/widgets/ +)ÿï08@Rmetvb.com/js/bofangwei.js +?ÿï08@R/mfacelive.com/Scripts/social/openchannel_min.js +!ÿï08@Rmfav88.com/yinzi/ +/ÿï08@Rmg21.com/wp-content/uploads/ad/ +"ÿï08@Rmh3666.com^*.jsonp +'ÿï08@Rmianbao99.com/a/mianbao +Fÿï08@R6miaoshangmanhua.com/template/pc/skin01/images/250_250. +&ÿï08@Rmicaitu.net/js/dibu.js +.ÿï08@Rmicrocontrol.cn/HomeImages/AD/ +'ÿï08@Rmicropage.cn/images/ad_ + ÿï08@Rmidifan.com/aaa/ +ÿï08@Rmifengtd.cn/ad- +ÿï08@Rmiguyu.com/AD/ +)ÿï08@Rmikanani.me/images/Masha/ +ÿï08@Rmikuclub.*/pub/ +Dÿï08@R4mil.news.sina.com.cn/iframe/109/2012/1024/photo.html +Eÿï08@R5mil.news.sina.com.cn/iframe/109/2013/1015/hotpic.html +,ÿï08@Rmilimili.tv/js/loadjs/jquery +0ÿï08@R milimili.tv/template/JOELEO/*.js +,ÿï08@Rmima.club/tuijian/speedtest/ + ÿï08@Rmini.hao123.com^ +1ÿï08@R!minixiazai.com/others/all_soft.js +7ÿï08@R'minixiazai.com/statics/js/soft/index.js +ÿï08@Rminiye.xjts.cn^ +%ÿï08@Rmipcdn.com^*/mip-*ad- +%ÿï08@Rmipcdn.com^*/mip-*ad. ++ÿï08@Rmipengine.baidu.com/common? +-ÿï* + jijidown.com08@R missevan.com^ + ÿï08@Rmissyuan.com/sy/ +2ÿï08@R"mitbbs.*/servicedata/static_ad.php +ÿï08@R mitbbs.ca/ad_ +ÿï08@Rmitbbs.com/ad_ + ÿï08@Rmiwifi.com^*ads/ +ÿï08@Rmixer.sina.cn^ +9ÿï08@R)mixer.video.iqiyi.com/jp/mixin/resources/ +"ÿï08@Rmkd88.cc/16.32.jpg +ÿï08@R mm.nwell.net^ +)ÿï08@Rmm111.net/api.php?mod=ad& +&ÿï08@Rmm387.com/images/*.gif +,ÿï08@Rmm7920.com:8888/upload/*.gif +&ÿï08@Rmmeimh.xyz/static/100. +)ÿï08@Rmmeimh.xyz/static/images/ +)ÿï08@Rmmonly.cc/js/mmonlyAPP.js +(ÿï08@Rmmtalk.net/images/banner +-ÿï08@Rmnrrk.com/yuhe/ote/js/pcgg.js +:ÿï08@R*mobile.sina.cn/public/files/image/600x150_ +:ÿï08@R*mobile.sina.cn/public/files/image/620x300_ +*ÿï08@Rmoe48.com/static/img/1200x +$ÿï08@Rmoedao.com/js/top.js +6ÿï08@R&moegirl.org.cn/insight/MoegirlInsight.› +&ÿï08@Rmoerats.com/usr/affpc/ +)ÿï08@Rmolibaike.com/images/ads/ +%ÿï08@Rmolibaike.com/js/ads. +"ÿï08@Rmolimao.top/ad*.js +0ÿï08@R molimao.top/imp/upload/vod/*.gif +5€08@R&momoshop.com.tw/goods/GoodsDetail.jsp? +:ÿï* +beephone.com.tw08@Rmomoshop.com.tw/league/ +:ÿï08@R*moneyweekly.com.tw/UC/JQueryJson.aspx/MwAD +3ÿï08@R#moneyweekly.com.tw/Uploads/AD/*970x +9ÿï08@R)mongoosejs.net/docs/images/lagoujika.jpeg +-ÿï08@Rmonnsutogatya.com/himg/monst/ +3ÿï08@R#moonbbs.com/data/attachment/portal/ +.ÿï08@Rmop.com/js/common/watermark.js +(ÿï08@Rmop.com/newIndex/gg.html +/ÿï08@Rmoratame.tw/img/contents/banner +.ÿï08@Rmortgagecentres.net/banner.gif +$ÿï08@Rmovshow.com/*portal/ +!ÿï08@Rmowenxi.com/1.png +08@Rmp3.haogeba.com^ +&ÿï08@Rmp4ba.com^*/js/head.js +,ÿï08@Rmp4ba.net/static/js/mp4ba.js +1ÿï08@R!mp999.net/wp-content/uploads/*zgg +%ÿï08@Rmphj.com^*Runtime/Js/ +ÿï08@R mql5.com/rq? +.ÿï08@Rmscbsc.com/images/5g300x90.jpg +-ÿï08@Rmsdn.hk/templets/msdn/*/gg.js +2ÿï08@R"msdn.hk/templets/msdn/css/index.js +2ÿï08@R"msdn.hk/templets/msdn/css/msdng.js +4ÿï08@R$msstatic.com/huya/main/img/mc-recom_ +5ÿï08@R%msstatic.com/huya/main3/widget/roomGg +Bÿï08@R2msstatic.net/main3/common/assets/template/head/ad. +ÿï08@R mtime.cn/tg/ +#ÿï08@Rmuyuge.com/fw.html/ +ÿï08@Rmuyys.com/img/ +*ÿï08@Rmuzisoft.com/static/*_f.js +ÿï08@R mvcat.com/ad/ +*ÿï08@Rmvcat.com/api/wx/follow.js +&ÿï08@Rmvcat.com/script/ad.js +5ÿï08@R%mvcat.com/sitefiles/services/cms/adv/ +&ÿï08@Rmvcat.com/wx/follow.js + ÿï08@Rmvxz.com/bar3.js + ÿï08@Rmvxz.com/boximg/ +ÿï08@R mvxz.com/img/ +#ÿï08@Rmw6.me/images/*.gif +*ÿï08@Rmwrf.net/images/js/*mrf.js +$ÿï08@Rmwrf.net/images/mrf/ +ÿï08@R mxzmz.com/js/ + ÿï08@Rmy0511.com/*/ad_ ++ÿï08@Rmy0538.com^*/thumb_1000_70_ +"ÿï08@Rmy0832.com/xyz/xx/ +"ÿï08@Rmy4700.com/js/*.js +>ÿï08@R.mybjx.net/theme/default/js/common/bjx_service_ +?ÿï08@R/mybjx.net/theme/default/js/common/duilianchn.js +08@Rmycodes.net/js/ +(ÿï08@Rmycodes.net/js/hf_txt.js ++ÿï08@Rmydifile.com/view.php/*.gif +&ÿï08@Rmydrivers.com/2018/ad/ +5ÿï08@R%mydrivers.com/2020/news/8/kkj_msi.gif +5ÿï08@R%mydrivers.com/drivers/2021/racent.jpg +/ÿï08@Rmydrivers.com/images/*_1100_90. +,ÿï08@Rmydrivers.com/images/hongbao +-ÿï08@Rmydrivers.com/images/icon/gg_ +%ÿï08@Rmydrivers.com/www/gg_ +)ÿï08@Rmydrivers.com^*/news/ayunä +&ÿï08@Rmydrivers.com^*728_90. +ÿï08@Rmydyxs.com/mpc/ +-ÿï* + dapenti.com08@Rmygeek.cn/pic_ +(ÿï08@Rmyhack58.com/Articleacb0 +08@Rmyhack58.com^*0 + ÿï08@Rmyqcloud.com/ad/ +;ÿï08@R+myqcloud.com/wp-content/uploads/huoxingyun. +&ÿï08@Rmysteelcdn.com/advert/ +2ÿï08@R"mysteelcdn.com/common/*/js/img_ad. +Eÿï08@R5mysteelcdn.com/common/mysteel/home/v2/js/index_image. +"ÿï08@Rmysteelcdn.com/gg/ +(ÿï08@Rmyweb.hinet.net/menu.htm +&ÿï08@Rmzhhdn.com/hongbao.jpg +#ÿï08@Rmzyfz.*/modules/46/ +?ÿï08@R/mzzfree.com/file/upload/202109/14/180421861.gif +4ÿï08@R$n2.hk/apps/car_feed/tb/*/banner.html +ÿï08@R n2.hk/promo/ +/ÿï08@Rnanfengyl.com/static/js/zdad.js +-ÿï08@Rnanrenfuli.*/zb_users/upload/ +*ÿï08@Rnanrenvip2021.com/old.html ++ÿï08@Rnb.zol.com.cn/detail_*.html +'ÿï08@Rnbegame.com/nbeos/*.jpg +/ÿï08@Rnczsks.com/SCWB/WebResource.axd +)ÿï08@Rneets.cc/assets/js/dup.js +ÿï08@Rnen.com.cn/eap/ +,ÿï08@Rnen.com.cn/service/js/beitou +5ÿï08@R%netded.com/templets/gfan/js/global.js +:ÿï08@R*netease.com/house-public/articleyunyans.js +,ÿï08@Rnew-icon.ol-img.com/jslib/ad +1ÿï08@R!news.cn/2021detail/js/booklist.js +ÿï08@Rnews.cn/imgad/ +!ÿï08@Rnews.cn^*_tlad.js +1ÿï08@R!news.sina.com.cn/js/792/*head*.js +Jÿï* +www.sina.com.cn08@R%news.sina.com.cn/pfpnews/js/libweb.js +)ÿï08@Rnews.sina.com.tw/js/ti.js +"ÿï08@Rnews.ssp.qq.com/ad +#ÿï08@Rnews.ssp.qq.com/app +)ÿï08@Rnews18a.com/image/ad_ina/ +&ÿï08@Rnewsres.cn/temp/tempad +'ÿï08@Rnewume.com/v1/data/ume- +&ÿï08@Rnewyx.net^*/down_yd.js +ÿï08@Rnex.163.com/q? +-ÿï08@Rnfmovies.com/pic/tu/*_863x59. +,ÿï08@Rnfmovies.com/pic/tu/*_banner +/ÿï08@Rnfmovies.com/pic/tu/a191124002. +/ÿï08@Rnfmovies.com/pic/tu/a191124003. +/ÿï08@Rnfmovies.com/pic/tu/a191124004. +7ÿï08@R'nfmovies.com/pic/tu/a200304_1170x87.png +&ÿï08@Rnfmovies.com/pic/tu/ad +*ÿï08@Rnfmovies.com/pic/tu/banner +)ÿï08@Rnfmovies.com/static/*.jpg +.ÿï08@Rnfmovies.com/static/210203.png +Aÿï08@R1nfuwow.com/static/nfuwow/source/front/new/images/ +0ÿï08@R nfydd.com/template/wap1/js/dd.js +!ÿï08@Rniubixxx.com/seo/ +%ÿï08@Rniugupan.com/js/tj.js +1ÿï08@R!niupic.com/images/2019/11/17/_17. +Hÿï08@R8njdaily.cn/templates/njdaily2014/widget/njdaily-slideAds +/ÿï08@Rnjxzwh.com/pcsoft/statics/ycgg/ +&ÿï08@Rno1.168abc.net/upload/ +#ÿï08@Rnongjitong.com/adm/ +!ÿï08@Rnovipnoad.com/bd/ +.ÿï08@Rnovipnoad.com/theme/js/helper. +/ÿï08@Rnovipnoad.net/theme/js/sponsor/À +/ÿï08@Rnownews.com/assets/js/setAds.js +!ÿï08@Rnqbcf.cn/html/top +"ÿï08@Rnrsfh.com/neirong/ +=ÿï08@R-ntdtv.com/assets/themes/ntd/js/article_ads.js +4ÿï08@R$ntimg.cn/original/images/www_ads.jpg +!ÿï08@Rnulltm.com/adv.js +$ÿï08@Rnvsheng.com/js/gg.js +-ÿï08@Rnweon.com/wp-content/repo/ad/ +ÿï08@R nwxs5.com/js/ +"ÿï08@Rnxflv.com/nxflv.js +4ÿï08@R$nxing.cn/uploads/uploads/*-size1220x +*ÿï08@Rnyaa.*/static/js/ccheck.js +,ÿï08@Rnyahentai.pw/js/check_cat.js +&ÿï08@Rnychinaren.com/houbei/ +"ÿï08@Rnz04com.com/aabdd/ +&ÿï08@Roa.hinews.cn/work/img/ +%ÿï* + +myptt.cc08@R oeya.com^ +"ÿï08@Rofweek.com/pop/ad/ +%ÿï08@Roh100.com/js/pubuliu. + ÿï08@Rokbmf.com/imgad/ +"ÿï08@Rokbmf.com^*950_120 +3ÿï08@R#okooo.com/I/?method=system.data.ad& +;ÿï08@R+olelive.com/v1/pub/index/anchor/check/pc/e? +*ÿï08@Rolgame.tw/home/attachment/ + ÿï08@Rom.cn/api/ad-om/ +,ÿï08@Rone101.xyz/data/images/*.gif +*ÿï08@Ronedala.tv/uploads/banner/ +$ÿï08@Ronegreen.net/MyFile/ +1ÿï08@R!oneinstack.com/images/oneinstack- +.ÿï08@Ronetvb.com/assets/javascripts/ +)ÿï08@Ronx8.com/theme/tange/add/ +9ÿï08@R)onx8.com/zb_users/theme/ydgreen/style/ad/ ++ÿï08@Roodcd.cn/pan/config/ad.json +)ÿï08@Roodcd.cn/pan/config/copy. +,ÿï08@Roodcd.cn/pan/config/history. + ÿï08@Rooqiu.com/ad_js/ +0ÿï08@R opticsky.cn/images/2015/gy-px201 +:ÿï08@R*orzx.im/Document/recommend/flashpoint.html +'ÿï08@Rorzx.im/Document/union/ +ÿï08@Rorzx.im/js/*pop +&ÿï08@Roschina.net/promotion/ +'ÿï08@Roschina.net/uploads/ad/ +0ÿï08@R oschina.net/uploads/cooperation/ +:ÿï08@R*oss-ap-southeast-1.aliyuncs.com/js/copy.js +/ÿï* +wenxuecity.com08@R outbrain.com^ +/ÿï08@Royksoft.com/assets/images/*.gif +#ÿï08@Royksoft.com/show/b. +ÿï08@R +p.7060.la^ + ÿï08@Rp.kugou.com/?id= +!ÿï08@Rp.zol-img.com.cn^ +/ÿï08@Rp.zol.com.cn/download/detail.js ++ÿï08@Rp2peye.com/ajax.php?mod=ad& +6ÿï08@R&p2peye.com/ajax.php?mod=advertisement& + ÿï08@Rp4p.sina.com.cn^ +ÿï08@Rp8u.hinet.net^ +4ÿï08@R$pan.baidu.com/act/api/activityentry? ++ÿï08@Rpanc.cc/uploads/hongbao.png + ÿï08@Rpanda.kdnet.net^ +,ÿï08@Rpanjin.net/ichat2/adhtml.htm +'ÿï08@Rpanmeme.com^*/common.js +$ÿï08@Rpanpan.org/js/google +!ÿï08@Rpanpan.org/other/ +$ÿï08@Rpanpan.org/plus/img/ +'ÿï08@Rpanpan.org/templets/ad/ +!ÿï08@Rpansoso.com^*pss. +6ÿï08@R&paopaoche.net/public/bd/article_inc.js +,ÿï08@Rpaopaoche.net/skins/count.js +#ÿï08@Rpbmp.ali213.net/js/ +ÿï08@R pc6.com/img/ +ÿï08@Rpc841.com/show/ +,ÿï08@Rpcauto.com.cn/forum/fz/hots/ ++ÿï08@Rpcauto.com.cn/zt/halfprice/ +%ÿï08@Rpccoo.cn/js/dlv1.0.js +(ÿï08@Rpcgames.com.cn*/index.js +!ÿï08@Rpcgames.com.cn/g/ +;ÿï* +mail.pchome.com.tw08@Rpchome.com.tw/iframe/ +.ÿï08@Rpchome.com.tw/js/overlay_ad.js +#ÿï08@Rpchome.net/flow.php +-ÿï08@Rpcmx.autohome.com.cn/impress? +&ÿï08@Rpconline.com.cn/_hux_/ +3ÿï08@R#pconline.com.cn/download/*/intf*.js +,ÿï08@Rpconline.com.cn/jrzcz/*/intf +&ÿï08@Rpconline.com.cn/js/ad_ +)ÿï08@Rpconline.com.cn/js/ivy.js +1ÿï08@R!pcstore.com.tw/adm/psearch_payad_ +0ÿï08@R pcstore.com.tw/css/myacc_init.js +1ÿï08@R!pcvideoyf.titan.mgtv.com/pb/*.mp4 +=ÿï08@R-pdfbook.cn/wp-content/uploads/2017/11/049.jpg +)ÿï08@Rpeise.net/Skin/js/global. +ÿï08@Rpengtu.cc^*.png +-ÿï08@Rpengwei168.com/addons/321.gif +>ÿï08@R.pengwei168.com/template/stui_tpl/html/vod/f.js +"ÿï08@Rpeople.com.cn/adv/ +&ÿï08@Rpeople.com.cn/img/gjt/ +&ÿï08@Rperlmaven.com/img/*0x2 +1ÿï08@R!perlmaven.com/img/sticker-you.jpg +-ÿï08@Rpexels.com^*/sponsored-media/ +'ÿï08@Rpexels.com^*/sponsored_ +&ÿï08@Rpfkgl.top/images/*.gif +‚08@Rpfp.sina.com.cn^ +#ÿï08@Rpfp.sina.net/ea/ad/ +'ÿï08@Rpg-ad-b1.nosdn.127.net^ +4ÿï* +info.3g.qq.com08@Rpgdt.gtimg.cn/gdt/ +)ÿï08@Rpharmnet.com.cn/cnbanner/ +/ÿï08@Rpharmnet.com.cn/js/float_div.js +,ÿï08@Rphb123.com/skin/js/tongji.js +ÿï08@R phbkm.com/js/ +ÿï08@R php.cn/ad1. +ÿï08@R php.cn/hezuo/ +*ÿï08@Rphp1.cn/uploads/huayun.jpg +!ÿï08@Rphpad.cqnews.net^ +!ÿï08@Rphpernote.com/ali ++ÿï08@Rphpstudyimg.com/all/hrl.gif +6ÿï08@R&phpstudyimg.com/all/xiaojieqiantie.gif +!ÿï08@Rpianyuan.org/zfb. +!ÿï08@Rpiaodown.com/xtm/ +!08@Rpiaohua.com/js/yzz/ +'ÿï08@Rpiaoliang.com/js/all.js +&ÿï08@Rpiaoliang.com/js/gg.js +.ÿï08@Rpiaotia.com/scripts/read/style +ÿï08@Rpic.0597kk.com^ +$ÿï08@Rpic.959.cn/media/js/ +!ÿï08@Rpic.fengniao.com^ +4ÿï08@R$pic.gongkong.com/UploadPic/gongkong/ +8ÿï* + cwyuni.tw08@Rpic.pimg.tw/cwyuni/*.gif?v= +(ÿï08@Rpic.yupoo.com/showflash/ +5ÿï08@R%picb.cc/uploads/2018/06/26/2zxrsi.jpg +&ÿï08@Rpicgd.com/images/*.gif‚ +5ÿï08@R%picgd.com/images/2018/12/01/h1pi5.png +!ÿï08@Rpiclect.com^*.gif +7ÿï* + 18board.com* + 18p2p.com08@R picpar.com^ +5ÿï08@R%pics.wanlibo.com/js/pagemodulestat.js +$ÿï08@Rpics.xgo-img.com.cn^ +9ÿï08@R)picsuperfast.xyz/imageUpload/images/*.gif +8ÿï08@R(picsuperfast.xyz/imageUpload/images/*AD_ +4ÿï08@R$picyq.com/index.php/Home/run/get_ad/ +(ÿï08@Rpierrebotton.com/global/ +&ÿï08@Rpincai.com/js/pubuliu. +)ÿï08@Rpingmeibang.com/zt/zx.jpg +9ÿï08@R)pingpang.info/themes/v1.0/images/temp/ad/ +(ÿï08@Rpingwest.com/api/news_ad +8ÿï08@R(pingwest.com/wp-content/uploads/*/ad.jpg +ÿï08@Rpipi.cn/player/ +ÿï08@Rpipix.cc/gg.gif +#ÿï08@Rpites.cc/js/top.php +6ÿï08@R&pixabay.com/static/img/publisher/*_ad_ +'ÿï08@Rpixfs.net/js/mib.min.js +'ÿï08@Rpixfs.net/js/mib_falcon +Fÿï08@R6pixfs.net/module/fullPage/dist/ad-full-page-enter-fly. +<ÿï08@R,pixfs.net/module/fullPage/dist/ad-full-page. +%ÿï08@Rpjtime.com/js/show_ad +$ÿï08@Rpkvs.com/public/300/ +%ÿï08@Rpkvs.com/public/as.js + ÿï08@Rplay6111.com/js/ +&ÿï08@Rpmb*.tj.ali213.net/js/ +.ÿï08@Rpniao99.com/statics/js/stat.js +7ÿï08@R'poco.cn/v1_1/rank/get_floating_layer_ad +%ÿï08@Rpoco.cn^*_info_banner +-ÿï08@Rporn87.com/static/stream_ads/ +&ÿï08@Rposter.weather.com.cn^ +$ÿï08@Rpostimg.cc^*-960x60. +;ÿï08@R+poxiao.com/template/default/images/12345.js +!ÿï08@Rppluoli.xyz^*.gif +"ÿï08@Rppshk.com^*banner/ +.ÿï08@Rppsj.com.cn/images/ppsj300.gif +:ÿï08@R*pptv.com/game/aplus/client/gamedetail.html +0ÿï08@R prettyvirgin.com/images/banners/ +-ÿï08@Rprettyvirgin.com/js/show.html ++ÿï08@Rprice.com.hk/dfp_price.php? +2ÿï08@R"price.com.hk/ec-discuss-widget.php ++ÿï08@Rprice.com.hk/scripts/ysm.js +/ÿï* +discuss.com.hk08@R price.com.hk^ +ÿï08@Rpro.iweihai.cn^ +%ÿï08@Rproewildfire.cn/fd.js +&ÿï08@Rproginn.com/cms/10000/ +2ÿï08@R"programmer-club.com.tw/images/uuu/ +(ÿï08@Rproperty.hk/js/adside.js +!ÿï08@Rps123.net/MyFile/ +ÿï08@Rps557.com/link/ + ÿï08@Rps886.us/js/*.js +7ÿï08@R'pstatp.com/origin/1381500009611bc201d61 +;ÿï08@R+pstatp.com/origin/13816000374e83a453717.jpg +6ÿï08@R&pstatp.com/origin/fef20000e7013b3511b6 ++ÿï* + 5217kdy1.xyz08@R pstatp.com^ +=ÿï08@R-psyzg.com/Public/Home/images/tuhe_240_236.gif +ÿï08@Rptbus.com/s.js +08@Rptfish.com/*/ad +!ÿï08@Rpub.funshion.com^ +*ÿï08@Rpupudy.com/images/wxrj.gif +-ÿï08@Rputaoys.com/static/js/acb1.js +4ÿï08@R$putonghua520.com/skins/10ym/3jin.gif +6ÿï08@R&putonghua520.com/skins/10ym/baicai.gif‘ +,ÿï* + chinafund.cn08@R pv.sohu.com^ +!ÿï08@Rpv966.us/js/tw.js +ÿï08@Rpw321.com/bulu/ +ÿï08@Rpw321.com^*.gif +"ÿï08@Rpy.cn/src/img/pyy/ ++ÿï08@Rpy.cn/static/images/advert/ +&ÿï08@Rqayqa.com:6868/jquery/ +4ÿï08@R$qbox.me/FlnVIdUeIo_LrXyGiOL0OFw0Gpa7 +4ÿï08@R$qbox.me/FnjnjJhJZlKZEGJ7qV1AocqusFbf +ÿï08@Rqcvf.ifeng.com^ +ÿï08@R qd.x4399.com^ +,ÿï08@Rqdaily.com/mount_details/pc/ +#ÿï08@Rqdjimo.com/html/js/ +ÿï08@Rqdross.com/vip/ +%ÿï08@Rqhdlz.net/ssyyss/m.js +2ÿï08@R"qhdlz.net/uploads/glxs/980x120.jpg +1ÿï08@R!qhimg.com/ssl/20212c7594890e1c.js +1ÿï08@R!qhimg.com/static/*/common/seed.js +3ÿï08@R#qhimgs4.com/t01d8315ddb1a5adcce.gif +"ÿï08@Rqhnews.com/tupian/ +1ÿï08@R!qhres.com/static/*/common/seed.js +4ÿï08@R$qhres.com/static/4b6ab193405b6ca3.js +"ÿï08@Rqhres.com^*/baidu_ +-ÿï08@Rqianzhan.com/qiye/images/qcm_ +6ÿï08@R&qilanxiaozhu.*/data/attachment/portal/ +*ÿï08@Rqiming360.com/mingJs/xmKu_ +/ÿï08@Rqinbing.cn/data/upload/ueditor/ +-ÿï08@Rqingkai.com/2009/html/top.htm +#ÿï08@Rqingkai.com/gg_img/ +5ÿï08@R%qingkong.net/skin/htcs/images/980.jpg ++ÿï08@Rqingsedhh.com/images/gg.gif +)ÿï08@Rqiuw.com/static/xin-ad.js +!ÿï08@Rqiuyi.cn/Baojian/ +3ÿï08@R#qixingquan.com/api.php?mod=ad&adid= +'ÿï08@Rqixingquan.com/partner/ +6ÿï08@R&qixingquan.com/qxq-images/dawangka.png +5ÿï08@R%qixingquan.com/qxq-images/js/qxq_t.js +6ÿï08@R&qiyipic.com/common/*%E9%80%9A%E6%A0%8F +0ÿï08@R qiyipic.com/common/*/225x230.jpg +-ÿï08@Rqiyipic.com/common/*/250-230. +,ÿï08@Rqiyipic.com/common/*/250230. +,ÿï08@Rqiyipic.com/common/*/255x205 +(ÿï08@Rqiyipic.com/common/*/980 +,ÿï08@Rqiyipic.com/common/*/baiyao. +/ÿï08@Rqiyipic.com/common/*/banner.jpg +0ÿï08@R qiyipic.com/common/*/kehuzhuanqu +(ÿï08@Rqiyipic.com/common/*980x +*ÿï08@Rqiyipic.com/common/*_aLink ++ÿï08@Rqiyipic.com/common/*tonglan +(ÿï08@Rqiyipic.com/common/*vivo +Aÿï08@R1qiyipic.com/common/20141021/sanjiukehuzhuanqu.jpg +6ÿï08@R&qiyipic.com/common/20160302/ban250.jpg +6ÿï08@R&qiyipic.com/common/fix/dasdasdasdk.jpg +.ÿï08@Rqiyipic.com/common/fix/rebull_ +8ÿï08@R(qiyipic.com/common/fix/wh-leftbanner.jpg +0ÿï08@R qiyipic.com/zongyi/*Banner01.jpg ++ÿï08@Rqiyipic.com/zongyi/fix/mxdj +Bÿï08@R2qiyipic.com/zongyi/fix/runningman20141008_bg02.jpg +Bÿï08@R2qiyipic.com/zongyi/fix/runningman20141008_bg03.jpg +)ÿï08@Rqiyun.org/images/js/*.htm +$ÿï08@Rqk6.org/file/script/ +ÿï08@Rqksapp.net/gif/ +2ÿï08@R"qmwxb.com/skins/2/images/qp001.gif +ÿï08@Rqncye.com/ads/™ +1ÿï08@R!qnsb.com/news/index.php?m=poster& +ÿï08@Rqnvod.net/qna/ +$ÿï08@Rqpgyy.com/add01.html +Eÿï08@R5qpic.cn/qqgameedu/0/cfc175896f5b4d6a9ff115b3096dcebe_ +Aÿï08@R1qpic.cn/wwpic/471270_J6SyU3sDRNuKUnZ_1680798399/0 +&ÿï08@Rqpic.ws/images/pk*.gif +,ÿï08@Rqpix.com/2021/05/20/Aqcp.gif +(ÿï08@Rqq.com/bbs/bbs_topgg.htm + ÿï08@Rqq.com/coral/ADS +$€08@Rqq.com/game/footerbar +*ÿï08@Rqq.com/games/videogame.htm +ÿï08@Rqq.com/getadv. +-ÿï08@Rqq.com/Index/getAdsAndHotspot +ÿï08@Rqq.com/livemsg? +>ÿï08@R.qq.com/minivideo_v1/vd/res/enttencentvideo.xml +'ÿï08@Rqq.com/mobi/js/app-bar- ++ÿï08@Rqq.com/mp/cps_product_info? +&ÿï08@Rqq.com/nodeapi/api/ads +'ÿï08@Rqq.com/pc/batch_get_ads +!ÿï08@Rqq.com/PL_adT.htm +)ÿï08@Rqq.com/playgame/videoweb/ +=ÿï08@R-qq.com/static/web/websites/newsplugin/ssp_ad_ +!ÿï08@Rqq.com/tbs/tbsAd/ +Lÿï08@Rÿï08@R.sina.cn/interface/*_game_wap_home_mid_list_in. +"ÿï08@Rsina.cn^*/impress? +/ÿï08@Rsina.com.cn/131/20150515/266.js +-ÿï08@Rsina.com.cn/3/2016/1114/45.js +/ÿï08@Rsina.com.cn/activity/promotion? +7ÿï08@R'sina.com.cn/js/*/AdvertisingByNewIndex_ +)ÿï08@Rsina.com.cn/js/*/bgads.js +3ÿï08@R#sina.com.cn/js/87/20140101/hongbao/ +#ÿï08@Rsina.com.cn/litong/ +.ÿï08@Rsina.com.cn/NewIndexAdStart.js +;ÿï08@R+sina.com.cn/other/src/app/FinanceAppPics.js +Fÿï08@R6sina.com.cn/rwei/hapi2014/64video_titu_logo_500x90.gif +€08@R sina.com.tw^ +ÿï08@R sina.com/ads/ +(ÿï08@Rsina.com/assets/js/dart/ +ÿï08@R sina.com/rm/ +-ÿï08@Rsinaimg.cn/finance/qihuofarm/ +.ÿï08@Rsinaimg.cn/finance/zwy/sidead_ +-ÿï08@Rsinaimg.cn/jslib/kuozhanad.js +:ÿï* + chakd.com* + +seehd.so08@Rsinaimg.cn/large/ +2ÿï* + +mp4ba.la08@Rsinaimg.cn/large/*.gif +Eÿï08@R5sinaimg.cn/large/0076zeZ4gy1gw0if4mgwoj30tj03ptbj.jpg +Eÿï08@R5sinaimg.cn/large/6f8a2832gy1g7qyw7suqjj21400p0ake.jpg +"ÿï08@Rsinaimg.cn/unipro/ +Ñÿï* +tiantianzhibo.com* +caibaojian.com* + 7mshipin.org* + abminbuy.com* + cangjige.net* + cnmysoft.com* + pianyuan.org* + 04stream.tv* + 18board.com* + 500xxxx.com* + acglover.me* + aotu101.com* + aotu103.com* + kisssub.org* + supfree.net* + viidii.info* + yaoshe1.com* + +11luba.com* + +94xxmm.com* + +blz105.com* + +ccxx99.com* + +fdzone.org* + 18p2p.com* + 522dy.com* + 7mav2.com* + 99a21.com* + blz20.com* + blz24.com* + ems183.cn* + kccdk.com* + lifan.moe* + llj22.com* + se533.com* + vx666.com* + +46bk.com* + +63ef.com* + +kiees.cn* + +rarbt.cc* + +thztv.cc* +sbme.me08@R sinaimg.cn^ + 08@Rsinaimg.cn^*/deco/ +$ÿï08@Rsinaimg.cn^*_wap_ad_ ++ÿï* + dayanzai.me08@R sinaimg.com^ +:ÿï08@R*sinajs.cn/t4/apps/publicity/static/wbad.js +7ÿï08@R'sinajs.cn/t6/home/js/pl/guide/adforfqy/ +5ÿï08@R%sinajs.cn/t6/home/js/pl/guide/bigday/ +%ÿï08@Rsinglove.com/qq/qq.js +.ÿï08@Rsingtao.ca/editions/affiliate_ +/ÿï08@Rsinolub.com/index.php?m=poster& +@ÿï08@R0site-bk.oss-cn-shenzhen.aliyuncs.com/img/aliyun/ +(ÿï08@Rsitv.com.cn/cookiead.php +08@Rskads.gxsky.com^ +"ÿï08@Rskeimg.com/i/*.gif +2ÿï08@R"skeyword.browser.qq.com/getHotRank +&ÿï08@Rsl.al/gdrive/pic/*.gif +!ÿï08@Rslit.cn/slimages/ + ÿï08@Rsmqzj.com/seo.js +)ÿï08@Rsmuc.cnnfootballclub.com^ + ÿï08@Rsmzy.com/v1/img/ +ÿï08@Rso.com/com/ads? +&ÿï08@Rso.com/index/advertise +#ÿï08@Rso.com/recomm/simi? +7ÿï08@R'so.com/resource/js/mod/detail/business. +"ÿï08@Rso.com^*baike/ads?³ +/ÿï08@Rso.open.163.com/v/list.htm?pid= +)ÿï08@Rsoaspx.com/images/hws.gif ++ÿï08@Rsoaspx.com/images/iiszj.gif +0ÿï08@R soaspx.com/images/js/dropdown.js +,ÿï08@Rsobaidupan.com/top_txtad.asp +5ÿï08@R%sobaigu.com/images/server_tourist.jpg +4ÿï08@R$sobt8.org/Public/static/js/common.js +)ÿï08@Rsocos.gitee.io/ss/poster/ +ÿï08@R sodhef.com^ +&ÿï08@Rsodu2020.com/js/ppc.js +ÿï08@Rsoduso.com/js/4 +$ÿï08@Rsoduso.com/js/sat.js +#ÿï08@Rsoduso.com/js/so.js +3ÿï08@R#soft.mumayi.net/images/download.gif +#ÿï08@Rsoft.mumayi.net/js/ +:ÿï08@R*sogou.com/amdjs/release/common/act_all_ad. +!ÿï08@Rsogou.com/ask?id= +!ÿï08@Rsogou.com/athena/ +.ÿï08@Rsogou.com/html/ext/agentsdk.js +(ÿï08@Rsogou.com/img_logo/wp.js +5ÿï08@R%sogou.com/reventondc/inner/gamebrand? +*ÿï08@Rsogou.com/uniplan/?pageID= +*ÿï08@Rsogou.com/wap_ask_service? +Gÿï08@R7sogoucdn.com/app/a/100540022/2021022016080586548810.jpg +:ÿï08@R*sogoucdn.com/app/a/200692/960_80_feedback_ +"ÿï08@Rsogoucdn.com/dhfe/ +8ÿï08@R(sogoucdn.com/nstatic/js/bottom_shopping. +3ÿï08@R#sogoucdn.com/nstatic/js/showtime.js +2ÿï08@R"sogoucdn.com/nstatic/js/tmallskin_ +.ÿï08@Rsohu.com.cn/ppp/bms/bms.popup. +ÿï08@Rsohu.com/adgtr/ +1ÿï08@R!sohu.com/api/labs/hotnews/c/load? +*ÿï08@Rsohu.com/api/labs/mp/load? +4ÿï08@R$sohu.com/api/photo/photo_bottom.json +)ÿï08@Rsohu.com/interaction/get/ +(ÿï08@Rsohu.com/mdevp/*-advert/ +Lÿï* + +eetop.cn08@R0sohu.com/s/sohuplayer/iplay.html?*&autoplay=true +#ÿï08@Rsojson.com/ps/list. +!ÿï08@Rsomanhua.com/smh/ +$ÿï08@Rsongsongyun.com/ads/ +(ÿï08@Rsonimei.cn/images/gg.png +)ÿï08@Rsonimei.cn/images/llq.png +$ÿï08@Rsonimei.cn/qipai.jpg +)ÿï08@Rsooopu.com/asphtml/plnew. +%ÿï08@Rsooopu.com/js/*950.js +-ÿï08@Rsooopu.com/js/contentad330.js + ÿï08@Rsouche.com^*.gif +6ÿï08@R&soufunimg.com/imgd/viewimage/*/640x210 +ÿï08@R souka.me/ad/ +-ÿï08@Rsoulu365.com/images/zhuce.jpg +'ÿï08@Rsouthmoney.com/page/pc/ +'ÿï08@Rsouthmoney.com/page/top +%ÿï08@Rsouthmoney.com^*/Inc/ ++ÿï08@Rsoutubot.moe/static/airport +(ÿï08@Rsozi.cn/images/tj/downad +,ÿï08@Rsozi.cn/images/tj/hukead.gif +(ÿï08@Rsozi.cn/images/tj/szdown +.ÿï08@Rsozi.cn/templets/sozi/js/js.js +,ÿï08@Rspanking.wiki/morning-bread- +(ÿï08@Rspeedtest.cn/api/v2/show +.ÿï08@Rspeedtest.cn/assets/images/ce_ +*ÿï08@Rsportscn.com/js/commerical +$ÿï08@Rspqi.xyz/static/tmp/ +"ÿï08@Rss9874.com/img/91_ê +#ÿï08@Rssgg.chazidian.com^ +ÿï08@R ssjv1.com/dm/ +&ÿï08@Rssnn.net^*-200-250.jpg +ÿï08@R ssp.21ic.com^ +ÿï08@Rssp.hinet.net^ +ÿï08@Rssp.kdnet.net^ +ÿï08@Rssp.moeli.net^ +ÿï08@Rssp.zf313.com^ +4ÿï08@R$sspai.com/api/v1/recommend*=article_ +-ÿï08@Rsspai.com/attachment/sponsor/ +#ÿï08@Rsss777.net/Alove-A/ + ÿï08@Rsssvd.china.com^ +ÿï08@Rssyy881.com/zz/ +(ÿï08@Rstaramuse.com/bmip/showg +%ÿï08@Rstarnnews.com/banner/ ++ÿï08@Rstatic-ssp.yidianzixun.com^ +-ÿï08@Rstatic.doyouhike.net/partner/ +&ÿï08@Rstats.chinaz.com/tool/ +*ÿï08@Rstats.chinaz.com/tool_img/ +/ÿï08@Rsteelcn.cn/img/bj_*_146_315.jpg +0ÿï08@R stheadline.com/images/heading-jm +)ÿï08@Rstockstar.com/*DUILIAN&t= +&ÿï08@Rstockstar.com/api/?id= ++ÿï08@Rstockstar.com/info/1200x90/ +ÿï08@R storm.mg/ad? +"ÿï08@Rstoryren.top/imgg/ +1ÿï* + +tktube.com08@Rstrip.chat/widgets/ +*€08@Rstrip.taobaocdn.com/tfscom/ +.ÿï08@Rstulip.org/static/js/header.js +-ÿï08@Rsu.bdimg.com/static/dspui/js/ +#ÿï08@Rsub.powerapple.com^ +%ÿï08@Rsucloud.xyz/js/tou.js +!ÿï08@Rsudupan.com^*.gif +ÿï08@Rsufile.com/jsa/ +"ÿï08@Rsuibi8.com/aa1.gif +)ÿï08@Rsuibiankan.co/Runtime/Js/ +Bÿï08@R2suibianlu.com/zb_users/theme/tx_fzy/script/zhao.js +'ÿï08@Rsuiyishop.cn/zhuangxiu_ ++ÿï* + qianggou5.com08@R +suning.cn^ +4ÿï08@R$suning.com/cpc/getCpcSearchDatasRev? +'ÿï08@Rsuning.com/getCpcDatas? +7ÿï08@R'sunofbeaches.com/ast/assistant/ad-item/ +0ÿï08@R sunofbeaches.com/shop/recommend/ +&ÿï08@Rsunpma.com/other/logo/ +!ÿï08@Rsuper.cat898.com^ + ÿï08@Rsuper.kdnet.net^ +"ÿï08@Rsupfree.net/baotu. +$ÿï08@Rsupfree.net/england/ +,ÿï08@Rsupfree.net/poland/mobile.js + ÿï08@Rsupfree.net/stat +#ÿï08@Rsupfree.net/top.gif + ÿï08@Rsupfree.net/xxx/ + 08@R supfree.net^ +)ÿï08@Rsw76r85eda3k.com/need/h5. +*ÿï08@Rswoole.com/_images/kundian +)ÿï08@Rswoole.com/_images/w7.jpg +2ÿï08@R"sxeimg.com/u/20191108/13082210.gif +ÿï08@R synacast.com^ +;ÿï08@R+syseen.com/content/uploadfile/*/hongbao.png +(ÿï08@Rsysin.org/img/promotion- +-ÿï08@Rszaction.cc/public/*/plugins/ +9ÿï08@R)szaction.cc/public/*/assets/js/custom/tt. +0ÿï08@R szfcol.com/images/wxright240.jpg +'ÿï08@Rszfcol.com/js/siteAd.js¸ +ÿï08@Rszgpmy.com/js/ + ÿï08@Rszhongzi.com/js/ +$ÿï08@Rszjjzs.com/js/cs*.js +#ÿï08@Rszjjzs.com/js/d*.js + ÿï08@Rszjjzs.com/js/fe +%ÿï08@Rszjjzs.com/js/piao.js +ÿï08@Rsznews.com/s?z= +-ÿï08@Rszonline.net/static/js/ads.js +ÿï08@Rszxljdsb.com/tl +)ÿï08@Rszyepu8.com/data/AADDimg/ +ÿï08@Rszyhqj.com/js/ +0ÿï* + +92kvip.com* + 28kys.com08@Rt.cn^ +!ÿï08@Rtaijuba.com/js/*_ +!ÿï08@Rtaijuba.com/js/tj +9ÿï08@R)taijuwang.com/template/alifun/js/unFavui. +<ÿï08@R,taiwandaily.net/wp-content/uploads*_600x100. +Qÿï08@RAtaiwannutrition.com/blog/wp-content/plugins/arscode-ninja-popups/ +!ÿï08@Rtaizexy.com^*.gif +#ÿï08@Rtalkfx.*/showTKImg? +"ÿï08@Rtanju.vip/nyindex. + ÿï08@Rtanseb.com/vads/ ++* + cnblogs.com08@Rtaobaocdn.com^ +$ÿï08@Rtgb.cn/res/js/tgbgg/ +,ÿï08@Rtaosq.net/public/250x250.jpg +"ÿï08@Rtaozi888.com/a*.js + ÿï08@Rtaozi888.com/sys +ÿï08@R taporn.com/d/ +,ÿï08@Rtb58.net/plugin.php?id=tb58_ +0ÿï08@R tbcdn.cn/mm/tanxssp-custom/sina_ +"ÿï08@Rtcmap.com.cn/js/b_ +=ÿï08@R-techritual.com/wp-content/uploads/*/HDcource_ + ÿï08@Rtechug.com/aatb/ +Hÿï08@R8tencent-cloud.com/s9m1/12f70718c866ea3e5f22c68e6a34c54f. +Hÿï08@R8tencent-cloud.com/s9m1/54cb71aff82cfd690619065f2e31c346. +3ÿï08@R#tengfangyun.com/attachment/*/w_1200 +/ÿï08@Rtengfun.com/attachment/*/w_1200 +.ÿï08@Rtengzhihh.com/image/*-950x277. +9ÿï08@R)teslaamg.obs.cn-east-3.myhuaweicloud.com^ +.ÿï08@Rtexnet.com.cn/images/cnbanner/ +ÿï08@R +tf.360.cn^ +*ÿï08@Rtfg2.com/images/upfile/AD/ +#ÿï08@Rtheta.sogoucdn.com^ + ÿï08@Rthisav.com/0*.js +#ÿï08@Rthisav.com/index.js +$ÿï08@Rthisav.com/js/bioep. +ÿï08@Rthisav.com/nb/ +#ÿï08@Rthisav.video/v3/nb/ +ÿï08@R thztv.*/tool/ + ÿï08@Rtianmu.com/DA201 +:ÿï08@R*tianqi*.com/static/banner/data_tuiguang.js +(ÿï08@Rtianshif.com/zeis/ts.gif +'ÿï08@Rtianshui.com.cn/datugg/ +#ÿï08@Rtianshui.com.cn/gg/ +%ÿï08@Rtianshui.com.cn/newbg ++ÿï08@Rtianshui.com.cn/Scripts/AC_ +'ÿï08@Rtianshui.com.cn/yb.html +.ÿï08@Rtiantianzhibo.com/js/banner.js +$08@Rtiantianzhibo.com/sda/ ++ÿï08@Rtieba.baidu.com/f/urlcheck? +.ÿï08@Rtieba.baidu.com/game/markConf? +0ÿï08@R tietuku.com/b975a9f7c494738b.gif +0ÿï08@R tietuku.com/d57c01987e74d8f8.gif +)ÿï08@Rtiexue.net/domain-policy/ +ÿï08@Rtiexue.net/zgg/Ê +(ÿï08@Rtigtag.com/images/*1000x +'ÿï08@Rtigtag.com/images/pic1/ +9ÿï08@R)tigtag.com/styles/phpcms/js/tigtag/ads.js +'ÿï* + 678cn.com08@R +tiimg.com^ +*ÿï08@Rtimecn.cn/image/alipay.jpg +3ÿï08@R#tingchina.com/images/aibaoliang.gif +&ÿï08@Rtingchina.com/js/*220- +$ÿï08@Rtingchina.com/js/760 +$ÿï08@Rtingchina.com/js/990 +)ÿï08@Rtingchina.com/js/allad.js +&ÿï08@Rtingchina.com/js/dp468 +'ÿï08@Rtingroom.com/file/A*.js +-ÿï08@Rtingroom.com/images/qsbdc.gif ++ÿï08@Rtingroom.com/images/z923.js +6ÿï08@R&tingroom.com/skin/dy/images/enread.jpg +)ÿï08@Rtingroom.com/tingroom/ad/ +Gÿï* + jandown.com* + +fdzone.org* + +mimima.com08@R tinypic.com^ + ÿï08@Rtitan007.com/ad/ +*ÿï08@Rtitan007.com/js/indexshow. +&ÿï08@Rtitan007.com/news.aspx +ÿï08@R tk.504pk.com^ +'ÿï08@Rtklivechat.com/widgets/ +ÿï08@R tl86tv.com/52 +<ÿï08@R,tlanyan.pp.ua/wp-content/uploads/meomiao.png +*ÿï08@Rtlula507.com/Public/js/dui +,ÿï08@Rtlula507.com/Public/js/float +9ÿï08@R)tmatch.simba.taobao.com^*&name=tbuad&pid= +4ÿï08@R$tmea116.oss-cn-beijing.aliyuncs.com^ +#ÿï08@Rtom.com/*TomFlashAd +!ÿï08@Rtom.com/adsender/ +'ÿï08@Rtonghuacun.com/js/uc.js +)ÿï08@Rtonnn.com/promotion2/*.js +)ÿï08@Rtoolfk.com/common/zfb.jpg +ÿï08@Rtopmba.mobi/ad/ +'ÿï08@Rtopthink.com/api/basic/ +.ÿï08@Rtoptoon03.xyz/app/tuijian.html ++ÿï08@Rtotheglory.im/pic/business/ +-ÿï08@Rtotheglory.im/pic/fangtuo.jpg +&ÿï08@Rtotheglory.im/pic/ttg- +&ÿï08@Rtotheglory.im/pic/ttg_ +2ÿï08@R"touimg.com/u/20200306/12094716.gif +2ÿï08@R"touimg.com/u/20200419/18431854.gif +/ÿï08@Rtouimg.com/u/20200510/2142*.gif +(ÿï* + dyzd1.com08@R touimg.com^ +*ÿï08@Rtoutiaoyule.com/n/dspshow. +ÿï08@R tp.sgcn.com^ +*ÿï08@Rtptoon.com/skin/js/tjtjkk. +"ÿï08@Rtq121.com.cn/j/ad/ +ÿï08@Rtrafficjam.cn^ +<ÿï08@R,trendmicro.com.tw/wp-content/uploads/*Banner +(ÿï08@Rtsdm39.com/img01/MP3/GG/ +ÿï08@R tt.biquge.la^ +#ÿï08@Rtt1069.com/bbs/zgg_ +(ÿï08@Rtt1069.com/or_pu_0604.js +(ÿï08@Rtt1069.com/script.min.js +#ÿï08@Rtt1069.com/t0602.js +ÿï08@Rttavav6.com/zz/ +#ÿï08@Rtui.gtimg.com//res/ +,ÿï08@Rtui555.com/public/gong/js/a_ +0ÿï08@R tuicool.com/images/upload/aliyun +.ÿï08@Rtuwan.com/events/courseiframe? +ÿï08@Rtuwan.com/myad/ +"ÿï08@Rtv2box.com/img_1g/ +(ÿï08@Rtv699.com/AllTemplet/js/À +(ÿï08@Rtv699.com/Templet699/js/ +&ÿï08@Rtv7box.com/Runtime/Js/ +/ÿï08@Rtv99.tv/wp-content/uploads/pum/ +%ÿï08@Rtvsou.com/js/360ad.js +*ÿï08@Rtvyan.com/images/jscss/tv- +>ÿï08@R.tvyun07.com/template/mytheme/statics/js/layer/ +4ÿï08@R$tw.beanfun.com/bfweb/NEW/commonlogin +$ÿï08@Rtw.buy.yahoo.com/?z= +7ÿï* + +cool3c.com08@Rtw.partner.buy.yahoo.com^ +-ÿï08@Rtwavtv.com/js/jquery.colorbox +#ÿï08@Rtwunbbs.com/images/ +*ÿï08@Rtxahz.com/static/image/tp/ +#ÿï08@Rtxzqw.*/js/float.js +0ÿï08@R txzqw.me/attachment88txzqw/*.gif + ÿï08@Rtxzqw.me/tupian/ +ÿï08@R ty121.cn/IAA/ +$ÿï08@Rtz-68-fabb.com/qiye/ +-ÿï08@Rtzfdc.com.cn/userfiles/flash/ +"ÿï08@Rtzfdc.com/fdcSell/ +4ÿï08@R$tzfdc.com/Images/09/flv/flv_index.js +5ÿï08@R%u.ctrip.com/showcaseadvertisementsit/ +$ÿï08@Ru.riju.com/click.php +-ÿï08@Ruc129.com/images/top_hjsj.jpg +ÿï08@R uc129.com/m/ + ÿï08@Ruchks.com/2018/% +&ÿï08@Ruczfl.com/data/content +,ÿï08@Rudn.com.tw/upf/*_banners/BD/ +1ÿï08@R!udn.com.tw/upf/2015_money/SSI/ad/ +&ÿï08@Rudn.com/common/iframe/ +'ÿï08@Rudn.com/common2/iframe/ +ÿï08@R udn.com^*/ad/ + ÿï08@Rufile.cc/crod.js +ÿï08@Rufile.cc/pps.js +9ÿï* + 18board.com* + 18p2p.com08@R ultraimg.com^ +2ÿï08@R"unecne.com/wp-content/uploads/*ad- +%ÿï08@Runion.591.com.tw/cpt? +#ÿï08@Runion.china.com.cn^ +$ÿï08@Runion.yihaodian.com^ + ÿï08@Runpkg.com/hjadu/ +ÿï08@Runpkg.com/sejie +&ÿï08@Runtitled.dwstatic.com^ +"ÿï08@Ruoowu.com/a/zh*.js +%ÿï08@Ruooyoo.com/hz/*str.js +$08@Rup.qingdaonews.com/up/ +=ÿï08@R-upaiyun.com/system/post_tile/new_web_banners/ +6ÿï* + mizhiav.com* + 141jj.com08@R +upload.cc^ +3ÿï* + +wishct.com08@Ruploadhouse.com^*.gif +,ÿï08@Ruugtv.com/x/app/videoSpread? +€08@Ruuu9.tieba.com^ +7ÿï08@R'uwants.com/dfp_forum.php?au=Uwants_Web_ +&ÿï08@Ruwants.com^*_prod.html +"ÿï08@Ruxxux.com/js/zd.js +5ÿï08@R%v2rayssr.com/wp-content/plugins/eazy- +'ÿï08@Rv4dwkcv.com/html/click/ +!ÿï08@Rvanpeople.com/gg/ +'ÿï08@Rvansky.com/agdg/homegg/ ++ÿï08@Rvansky.com/agdg/Individual/ +*ÿï08@Rvansky.com/agdg/infoRight/ +'ÿï08@Rvansky.com/agdg/middle/ +*ÿï08@Rvansky.com/agdg/vans/*_top +(ÿï08@Rvansky.com/agdg/vans/adv ++ÿï08@Rvansky.com/agdg/vans/tabbao +,ÿï08@Rvansky.com/index_files/*.gif +)ÿï08@Rvariflight.com/carnoc/ad/ø +2ÿï08@R"vdianying.cc/img/youhuiquan250.gif +Bÿï08@R2vdianying.cc/wp-content/plugins/wp-adblock-dedect/ +ÿï08@Rvercel.app/ads/ +%ÿï08@Rvgao.xyz/images/*.gif +Pÿï* +discuss.com.hk08@R.vidcrunch.com/integrations/*_Responsive_*_DFP_ ++ÿï08@Rvideojj.com/api/v1/adsTags? +-ÿï08@Rvideojj.com/api/v1/plat_tags? +4ÿï08@R$videojj.com/flash/bin/vjj_config.xml +/ÿï08@Rvideowood.me/assets/js/popup.js +*ÿï08@Rvideowood.tv/popjavascript +*ÿï08@Rvip.luanren.com/data/*.gif +2ÿï08@R"vipdage.com/wp-content/uploads/ad/ +-ÿï08@Rvipyearha.com/uploads/20*.gif +?ÿï08@R/visit-japan.jp/parts/visitjapan_f35_170_170.jpg +$ÿï08@Rvista.tuwan.com/s.js +ÿï08@Rvk920.com/img1/ +ÿï08@Rvk922.com/img/ +ÿï08@Rvk923.com/img/ +#ÿï08@Rvkandian.cn/footjs/ +"ÿï08@Rvkandian.cn/peitu/ +ÿï08@Rvnet.cn^*.html +$ÿï08@Rvoc.com.cn/adsClick/ +!ÿï08@Rvoc.com.cn/js/xc/ +6ÿï08@R&voc.com.cn/static/web/js/creattwo11.js +>ÿï08@R.vps234.com/resources/images/hosting-promotion/ +3ÿï08@R#vrrw.net//templets/default/js/ad.js +*ÿï08@Rvsping-*.myqcloud.com/ggw/ ++ÿï08@Rvsping.com/website/adLinks? +'ÿï08@Rvsping.com/website/ads? +#ÿï08@Rvupload.duowan.com^ ++ÿï08@Rvvvkp.com/template/ttk/img/ +!ÿï08@Rvxotu.com/i/*.gif +/ÿï08@Rvzmz.com/template/paody/aaaa/*0 +3ÿï08@R#vzmz.com/template/paody/aaaa/357.js +€08@R w010w.com.cn^ +€08@R w51t.com^ ++ÿï08@Rwa.kuwo.cn/lyrics/img/kwgg/ +:ÿï08@R*wacowla.com/wp-content/plugins/popover/js/ +#ÿï08@Rwai69.com/js/baidu/ +%ÿï08@Rwake-up-neo.com/bnet/ +!ÿï08@Rwan.liebao.cn/zt/ +:ÿï* + sogou.com08@Rwan.sogoucdn.com/cdn/flash/ +ÿï08@Rwandhi.com/img/ +(ÿï08@Rwandouys.com/Runtime/Js/ +Bÿï08@R2wangbase.com/blogimg/asset/201806/bg2018060604.jpg +(ÿï08@Rwangjing.cn*/upload/com/ +0ÿï08@R wangjing.cn/iframe/zhounian.php? +0ÿï08@R wangjing.cn/images/js/YlFloat.js +/ÿï08@Rwangzhanmeng.com/link/link.html +ÿï08@Rwanmei.la/a*.js +/ÿï08@Rwanwan.sina.com.cn/third_party/ + ÿï08@Rwdff.buzz/hengf. +!ÿï08@Rwe560.com/js/*.js +0ÿï08@R weathercn.com/m_mobile/ad_image/ +ÿï08@R web.900.la^ +&ÿï08@Rwebjx.com/zanzhushang/ +ÿï08@Rwebkaka.com/ad/ +"ÿï08@Rwei2008.com/js/*0. +!ÿï08@Rwei2008.com/js/t_ +*ÿï08@Rwei2008.com/skin/js/top.js +'ÿï08@Rweibo.cn/status/banner? +.ÿï08@Rweibo.com/ajax/feed/getTipsAd? +&ÿï08@Rweihaojiaju.com/tu888/ +%ÿï08@Rweike87.com/images/*0ë +%ÿï08@Rweike87.com/images/*1 +$ÿï08@Rweikeys.com/js/zt.js +:ÿï08@R*weiyun.com/cgi-bin/tianshu_get?position=4& +*ÿï08@Rwendangku.net/js/common.js +%ÿï08@Rwendellyu.com/banner/ +8ÿï08@R(wenku.baidu.com/browse/interface/getrec? +ÿï08@Rwenku8.net/js/ +'ÿï08@Rwenkuxiazai.com^*reward +&ÿï08@Rwest.cn/vcp/getJScode/ +"ÿï08@Rwestca.com/server/ +*ÿï08@Rweste.net/js/showpagead.js +$ÿï08@Rwew.dushiwenxue.net^ +ÿï08@R whdx.cc/js/ +"ÿï08@Rwhichav.*/qq/qq.js +)ÿï08@Rwhnews.cn/wh_public/xuxu/ +?ÿï08@R/whsir.com/wp-content/themes/wh-blog/js/modal.js +2ÿï08@R"williamlong.info/script/sidebar.js +'ÿï08@Rwin2008.info/gongyi.gif +#ÿï08@Rwindows.net/732d.js +-ÿï08@Rwindowszj.net/d/js/list/click +.ÿï08@Rwinwin7.com/statics/js/pos_js/ +/ÿï08@Rwinwin7.com/statics/js/user/xz. +-ÿï08@Rwlrjy.com/assets/images/*.gif +1ÿï08@R!wlrjy.com/assets/images/tuidc.png +0ÿï08@R woaidu.org/images/20180802/3.jpg +!ÿï08@Rwokao.co/qq/qq.js +$ÿï08@Rwoozooo.com/img/*.js +&ÿï08@Rwowad.wow-classic.com^ ++ÿï08@Rwowfan.net/static/js/index. +9ÿï08@R)woyaoq.com/201904100958_5cad4dbac9c5f.png +&ÿï08@Rwpdaxue.com/img/*/txy- +&ÿï08@Rwples.com/pc/common.js +(ÿï08@Rwstx.com/api.php?mod=ad& + ÿï08@Rwudizuqiu.com/fy +1ÿï08@R!wudizuqiu.com/img/dasai8/ybbj.png + ÿï08@Rwuhaolin.cn/c/ls +)ÿï08@Rwujinzy.com/images/ok.gif +&ÿï08@Rwuliao.epro.sogou.com^ +2ÿï08@R"wuxingruoyin.top/public/*/plugins/ +ÿï08@Rww7814.win/pic +.ÿï08@Rww9874.com/asset/playerInit.js +-ÿï08@Rwww-dnwx-com.anquanbao.cn/pic +;ÿï* +news.china.com.cn08@Rwww.china.com.cn/node_ +08@Rwww.dmhy.org^*.*? +&ÿï08@Rwwwbaiducom.xyz/4/js4/ +&ÿï08@Rwwwcdn.kimiss.net/btn/ ++ÿï08@Rwx.sina.com.cn/iframe/pdps/ +-ÿï08@Rwzbaohe.com/imgadnew/midad.js +Dÿï08@R4x-resource05.com/media_orange/server-img/*_1200_120. +%ÿï08@Rx21.cn/service/feeds. +-ÿï* +picturedata.org08@R +x6img.com^ +)ÿï08@Rxav*.icu/base/js/other.js +-ÿï08@Rxayjbz.com/static/images/apc. +$ÿï08@Rxbiqu5.com/12345678. +ÿï08@R xc.macd.cn^ +!ÿï08@Rxc.mydrivers.com^ +"ÿï08@Rxcar.com.cn/dsp/ad +ÿï08@R xchina.*/ad/ +.ÿï08@Rxchina.*/plugins/jquery.modal/ +-ÿï08@Rxchina.*/plugins/sweetAlert2/ +ÿï08@R xcmfu.com/cp. +6ÿï08@R&xdcad.net/source/plugin/disad/disad.js +#ÿï08@Rxdf.cn/v4/js/leyus/ +Fÿï08@R6xdnice.com/themes/xdnice/public/assets/images/quna.png¦ +Hÿï08@R8xdnice.com/themes/xdnice/public/assets/images/xdnice.png +ÿï08@R +xdyjt.com^ +/ÿï08@Rxghylt.com/api.php?mod=ad&adid= +2ÿï08@R"xhymsq.com/data/attachment/portal/ +'ÿï08@Rxiacaidd.com/xiacai/ad/ +Jÿï08@R:xianshuabao.com/ashx/pt.ashx?cmd=record&filter=&order=all& +&ÿï08@Rxiaobaipan.com/tb.html +*ÿï08@Rxiaobi*.com/layer/layer.js +!ÿï08@Rxiaodutv.com/xda? +,ÿï08@Rxiaopi.com/api.php?op=get_p& +/ÿï08@Rxiaopi.com/statics/new_js/15.js +:ÿï08@R*xiaopi.com/statics/skin_js/jquery.posrj.js +'ÿï08@Rxiaoweixiaoshuo.com/ad/ +*ÿï08@Rxiaoz.top/assets/imgurl.js +/ÿï08@Rxiazaizhijia.com/w2/js/wxzzj.js +(ÿï08@Rxiexingcun.com/tongji.js +'ÿï08@Rxiexingcun.com/tyong.js +(ÿï08@Rxindingwealth.com/js/39. +2ÿï08@R"xineurope.com/static/image/banner/ +#ÿï08@Rxingwangzz.com/123/ +'ÿï08@Rxinhuanet.com/iframe/ad +3ÿï08@R#xinhuanet.com/jjimages/jc/js/fla.js +#ÿï08@Rxinhuanet.com^*/adv +-ÿï08@Rxinmin.cn/framepage/foot1.htm +-ÿï08@Rxinmin.cn/framepage/left1.htm +'ÿï08@Rxinmin.cn/framepage/top +/ÿï08@Rxinmin.cn/framepage/yqLink1.htm +)ÿï08@Rxinshijue6080.com/126.gif +$ÿï08@Rxinshijue6080.com/gg +-ÿï08@Rxinshijue6080.com/Runtime/js/ +(ÿï08@Rxinshijueba.com/js/home/ +1ÿï08@R!xinwenren.com/index.php?m=poster& +:ÿï08@R*xinyi.com/Public/config/Couplet/Index39.js +:ÿï08@R*xinyi.com/Public/config/Couplet/Index40.js +:ÿï08@R*xinyi.com/Public/config/Couplet/Index41.js + ÿï08@Rxitek.com/idzone +;ÿï08@R+xitong8.com/theme/default/images/725x90.gif +=ÿï08@R-xitong8.com/theme/default/images/index_13.jpg +/ÿï08@Rxitonghe.com/SkinNew/js/init_g. +5ÿï08@R%xitongzhijia.net/theme/2020/js/10033_ +2ÿï08@R"xiu8.com/baidu-tieba/*&forum_name= +!ÿï08@Rxiumb8.com/js/lm_ +&ÿï08@Rxizi.com/js/rotator.js +'ÿï08@Rxkd*.com/layer/layer.js +&ÿï08@Rxkyn.com/imgs/js/xx.js +:ÿï08@R*xkzzz.com/zb_users/plugin/MoreLinks*/show. +>ÿï08@R.xkzzz.com/zb_users/plugin/MoreLinks/MoreLinks. +ÿï08@Rxl720.com/tmp/ +ÿï08@R xlpu.cc/adv/ +"ÿï08@Rxmcimg.com/js/m.js +*ÿï08@Rxmrc.com.cn/net/info/html/ +)ÿï08@Rxng02.com/api.php?mod=ad& +#ÿï08@Rxnnews.com.cn/adgl/ ++ÿï08@Rxnnews.com.cn/tpl/material/ +6ÿï* + 18board.com* + 18p2p.com08@R +xoimg.com^ +'ÿï08@Rxonlines.com/upload/gg/ +/ÿï08@Rxonlines.com/yyh_qp_200_200.png +-ÿï08@Rxp85.com/common/js/allpage.js +&ÿï08@Rxpcha.com/js/notice.js +%ÿï08@Rxs.houyi.baofeng.net^ +&ÿï08@Rxuehi.cn/reward/reward +*ÿï08@Rxunsu.cc/js/indexbottom.js +1ÿï08@R!xunyugong.xyz/sitejs/xunyugong.js +6ÿï08@R&xuzhi.net/uploadfile/poster/960x50.jpg· +#ÿï08@Rxv98.com/js/daohang +"ÿï08@Rxv98.com/js/hengfu +!ÿï08@Rxxdm.in/js/union/ +%ÿï08@Rxxffo.com^*_slett.php +ÿï08@Rxxhh.com/xh.js +ÿï08@Rxxooos.com/mm/ +ÿï08@Rxywy.com/gk?a= +!ÿï08@Rxywy.com/zhixing/ +0ÿï08@R xzji.com/data/block_js/softShow_ +!ÿï08@Rya*.dwstatic.com^ +1ÿï08@R!yahoo.com/embed/tv?site=buzzhand& +>ÿï* +beephone.com.tw08@Ryahoo.com/gdsale/gdsale.asp +$ÿï08@Ryalingba.com/ggtxjs/ +'ÿï08@Ryan007.com/js/sss/ad.js +Fÿï08@R6yangpinwang.com/wp-content/uploads/*E5%B9%BF%E5%91%8A. +)ÿï08@Ryantuchina.com/Upload/Ad/ +&ÿï08@Ryanu.qiniudn.com/*x60. ++ÿï08@Ryanu.qiniudn.com/270300.jpg +%ÿï08@Ryaojingweiba.com/inc/ +"ÿï08@Ryaoyl.com/js/ds.js +9ÿï08@R)yaseok.com//static/src/images/loading.gif +*ÿï08@Ryaseok.com/uploads/20*.gif +ÿï08@R yccz.net/xml/ +!ÿï08@Rydgal.com/axfile/ +*ÿï08@Rydss.cn/test.www.jdpay.com +)ÿï08@Rydstatic.com/dsp_website/ +ÿï08@Ryea.im/5hq.gif +ÿï08@Ryea.im/5ht.gif + ÿï08@Ryecaoyun.com/AD/ +,ÿï08@Ryefu365.com/rebo/function.js + ÿï08@Ryehaobo5.com/js/ +,ÿï08@Ryerecpa.cn/uploadsb/app_adv/ +*ÿï* + +feng.com08@Ryes1.feng.com^ +.ÿï08@Ryeshefb.com/template/conch/dd/ +ÿï08@Ryesky.com/s?z= +8ÿï08@R(yeyou.com/2013/new/yeyou-float-window.js +ÿï08@R yezi.cn/_ad/ +(ÿï08@Ryg006.com/attachment/js/ +-ÿï08@Ryg006.com/attachment/xjdb.jpg +!ÿï08@Ryhdm335.com/piao/ +#ÿï08@Ryhdm44.com/123.html +ÿï08@Ryhmeinv.com/mh/ +/ÿï08@Ryht7.com/web/assets/js/right.js +/ÿï08@Ryidengfe.com/launches/01/yd.png + ÿï08@Ryigujin.cn/faaa/ +#ÿï08@Ryigujin.cn/img/abc/ +0ÿï08@R yigujin.cn/tp/*_hengchuangfuwqi. +<ÿï08@R,yigujin.cn/wp-content/themes/Three/js/cebian +:ÿï08@R*yigujin.cn/wp-content/themes/Three/js/dibu +=ÿï08@R-yigujin.cn/wp-content/themes/Three/js/singley +:ÿï08@R*yigujin.cn/wp-content/themes/Three/js/tuij +=ÿï08@R-yigujin.cn/wp-content/themes/Three/js/yierlin +&ÿï08@Ryii666.com/ad/dynamic- + ÿï08@Ryikeyz.com/pm.js +5ÿï08@R%yimg.com/cv/ae/default/*_STATIC-JPEG_ +-ÿï08@Ryimg.com/cv/api/hk/fp_czy_ad/ ++ÿï* + yahoo.com08@R yimg.com/no/ + ÿï08@Ryimuhe.com/n_ad/ +4ÿï08@R$yingav.net/images/content/spot01.jpg +%ÿï08@Ryinghuavideo.com/bar/ +%ÿï08@Ryingshizxw.com/js/tc/ ++ÿï08@Ryiparts.com/Chance.php?aid= +ÿï08@Ryiren34.com/js/ +ÿï08@Ryjcf360.com/ad.Ø +%ÿï08@Ryjyc-ask.com/res/ads/ +ÿï08@R yktj.yzz.cn^ +7ÿï08@R'yorkbbs.ca/crm/section/v1/get/list/open +!ÿï08@Ryouaima.com/rest/ +ÿï08@Ryouaima.com/zz/ +)ÿï08@Ryouivr.com/image/*-960x80 + ÿï08@Ryouku.com/dress/ +#ÿï08@Ryoumelive.com/timg/ +$ÿï08@Ryouth.cn/images/c.js +'ÿï08@Ryouth.cn/images/public_ +"ÿï08@Ryouth.cn/qwtf2015/ +.ÿï08@Ryoutube.com/embed/wqLWTeNBEEQ? +5ÿï* + nownews.com08@Ryoutube.com/iframe_api +2ÿï08@R"youxi.baidu.com/tips/bdtips_min.js +'ÿï08@Ryouzhan.org/img/aliyun- +%ÿï08@Ryrr56.com/mp4/pt_720. +ÿï08@Rysxs8.vip/ysgg/ +%ÿï08@Ryt-adp.nosdn.127.net^ +"ÿï08@Ryt-adp.ws.126.net^ +'ÿï08@Rytbbs.com/images/index/ +2ÿï08@R"ytse*.top/Static/Home/GongGao/img/ +-ÿï08@Ryuanbao777.com/download/*.gif +&ÿï08@Ryuanxue365.com/js/a22. +"ÿï08@Ryueipaoo.xyz^*.gif +@ÿï08@R0yui-nya.com/wp-content/uploads/2016/12/37011.jpg +Fÿï08@R6yui-nya.com/wp-content/uploads/2016/12/neta370-370.jpg +4ÿï08@R$yun.baidu.com/act/api/activityentry? +5ÿï08@R%yundaquan.com/data/attachment/portal/ +9ÿï08@R)yuntue.com/zb_users/plugin/MoreLinks*.php +"ÿï08@Ryunupload.net/jsa/ +8ÿï08@R(yupoo.com/dapenti/5cfa8673/c6045c69.jpeg +)ÿï08@Ryuwangshe.net/astyle/wap. +ÿï08@Ryxad.com/baidu/ +ÿï08@Ryxad.com/yxad/ +$ÿï08@Ryxbao.com/js/beitou. +€08@R yxdd.com^ +ÿï08@Ryxdown.com/cj/ +)ÿï08@Ryxdown.com/zt/zt/js/zt.js + ÿï08@Ryxzp.net/left.js + ÿï08@Ryy18.info/yyads/ +"ÿï08@Ryy8090.vip/js/abc/ +&ÿï08@Ryywz123.com/file/A*.js +ÿï08@Ryzdh44.com/js/ +ÿï08@Ryzpsb.net/1.js +$ÿï08@Ryzpsb.net/js/jquery. +%ÿï08@Ryzpsb.net/js/shang.js +&ÿï08@Ryzpsb.net/js/system.js +Nÿï08@R>yzs.com/d/file/2020/06/21/5358e14b4556663a91f145f0635f95de.jpg +!ÿï08@Ryzz.cn/global_gg/ +ÿï08@Rz.nowscore.com^ +(ÿï08@Rz4a.net/images/*/960-60. +ÿï08@Rz4a.net^*/960x +ÿï08@Rzantj.com/diao +(ÿï08@Rzbjimg.com/static/union/ +!ÿï08@Rzc173.com/173fee/ +$ÿï08@Rzcaijing.com/images/ +#ÿï08@Rzdcj.net/html/weibo +ÿï08@R zdcj.net^*/ad +/ÿï08@Rzdqx.com/statics/v1/images/gif/ +!ÿï08@Rzhainanba.org/ac/ +8ÿï08@R(zhanqi.tv/api/static/v2.1/actives.lists/ +'ÿï08@Rzhaofuli.*/data/content +!ÿï08@Rzhengjie.com/a_d? +%ÿï08@Rzhenjiang365.cn/*/ad_ª +(ÿï08@Rzhev.com.cn/file/weixin/ +(ÿï08@Rzhibok8.com/images/*.gif +!ÿï08@Rzhibok8.com/js/di +(ÿï08@Rzhibok8.com/js/scroll.js +$ÿï08@Rzhifuok.com/19xa.jpg +'ÿï08@Rzhihu.com/api/*banners/ +6ÿï08@R&zhihu.com/api/v4/brand/question/*/card +5ÿï08@R%zhihu.com/api/v4/commercial/ecommerce +1ÿï08@R!zhihu.com/commercial_api/banners_ +&ÿï08@Rzhihu.com/node/Banner? +Aÿï08@R1zhimg.com/80/v2-503830bc48217331677fc5c7b67eee12. +Aÿï08@R1zhimg.com/80/v2-725c659194eeebb8c6b970e52e2dc8aa. +Aÿï08@R1zhimg.com/80/v2-c991beef44875fa5971c6bbfc6dc0ad2. +Aÿï08@R1zhimg.com/80/v2-f4b209014eeea058dd5b43f085aaef02. +#ÿï08@Rzhimg.com^*_600x250 +ÿï08@Rzhimg.com^*adx +)ÿï08@Rzhongyi.ifeng.com/a/zt.js +-ÿï08@Rzhongyoo.com/img/js/tongji.js +#ÿï08@Rzhongyoo.com/shuju/ +Eÿï* + zhuashi.com08@R$zhuashi.oss-cn-beijing.aliyuncs.com^ +"ÿï08@Rzhuji.net/2007_ad/ +!ÿï08@Rzhujiwiki.com/ad/ +.ÿï08@Rzhulong.com/detail/floorOneAd? +5ÿï08@R%zhushou.360.cn/script/plugin_tiper.js +)ÿï08@Rzhuwang.cc/api.php?op=ad_ +"ÿï08@Rzhuys.com/js/ysmm. +ÿï08@Rzhuys.com^*.php +(ÿï08@Rzhzyw.com/js/InsertJS.js +%ÿï08@Rziyuanm.com/js/g11.js +6ÿï08@R&zjg.js.cn/Public/config/Couplet/Index4 +#ÿï08@Rzjjhfc.com/js/zt.js +ÿï08@Rzjst.net/3.gif +ÿï08@R zjtu.tv/add. +0ÿï08@R zjxc.com/source/plugin/e6_xc_ad/ +:ÿï08@R*zk789.cn/Res/Scripts/Show/NetSys/Show.ashx +!ÿï08@Rzlyk.com^*/ysapp. +ÿï08@Rzmk.pw/zfb.png +#ÿï08@Rzn46.com/images/*0x +"ÿï08@Rzol-img.com.cn/ad/ +Lÿï08@R.titl+:-abp-contains(好 物)) +Kÿï08@R;zzbaike.com#?#.ceo-margin-bottom:-abp-has(img[width="340"]) +Xÿï08@RHoibdgtxw.com#?#.xqbj-list-rows:-abp-has(img[z-image-loader-url*=".gif"]) + zhihu.com .Pc-word-new + +twword.com .gadBlock& + mydrivers.com.jdong1div_double +51.ca.top-a-container# +51.ca.a-list-carousel-d-box + +sojson.com.a-d-img! + kdslife.com.header-swiper# +smsonline.cloud .css-17anw56% + +sixyin.com.widget_custom_html. + baidu.coma[class*="fengchaoContainer"] + hcbbs.com .pcbanner + yalishi.com.ad + uiadmin.net .jump-linker- + 6parknews.comdiv[class^="InContent_"] + zzbaike.com .ceo_slide2 +ttdm.me.dds_w + jin10.com .tradinghero# + jin10.com.quoted-price__pro + +fhxy-a.top +.sd_recpicé +rÿï08@Rbappinn.com#?#.featured-section > .test:-abp-has(>.post-img>a[href^="http"]:not([href*="appinn."])) +—ÿï08@R†cn.bing.com#?#.b_algo:-abp-has(p:-abp-properties(content:*Jr8IbslwuuoZ9kr8cTrXXkY8lfZL5p8v2TTht91DQxXZU9AB6BpwzkAAU2AAAAAElFTkSuQmCC)) +9ÿï08@R)bing.com#?#.b_algo:-abp-has(.ad_esltitle) +8ÿï08@R(bing.com#?#.b_algo:-abp-has(.b_ads1line) +Iÿï08@R9bing.com#?#.sb_form_placeholder:-abp-has(>.ad-ghost-slug)) + +2345.com.search-right-swiper-news + +2345.com ._isFirstAd( + +2345.com.part-banner > .part-ppt + +2345.com.lian-meng-box + 6parknews.com.ad-view  + mydrivers.com .baidu_left +weather.com.cn .guanggaoU + +ngabbs.com +178.com +nga.cn.[style^="background"][style*="vertical-align"]< + eastmoney.com'div[style^="position: fixed; z-index:"]% + +godamh.com + +g-mh.org.adshow + nodejs.cn#pagead0 + +motv.app +.wn_banner# + +shiyrj.topDIV[class^="lad"] + +shiyrj.top.ad + +85po.com .asside-link + cnbeta.com.tw.cb-help  + cnbeta.com.tw .meta > .fr + +333ood.com#appBox/ + +333ood.comdiv[style$="display: block;"]* + baidu.com.tieba-pause-ad-container + +laozuo.org #focusslide9 + +laozuo.org'.container[style="margin-bottom: 3px;"]" + +laozuo.org.widget_ui_orbui= + rouman5.com + +roum20.xyzdiv[style^="display: flex;"]$ + rouman5.com + +roum20.xyzins8 + rouman5.com + +roum20.xyz#headlessui-portal-root! + +sohu.com.middle-insert-ad +163.com.hp_textlink1_ad! +163.com.post_columnad_top + ip138.com#banana. + +appinn.com#sidebar > .widget_block > a# + +52asus.com#AsusMall-containL + mydrivers.com7div[style="margin: auto;width: 800px;padding: 10px 0;"] + szxx.com.cn#A0B + 131400.best + +vikacg.com + +vikacg.xyz.post-card-list > a) + +appinn.coma[href*=".houdeyun.cn"]& + +fitacg.coma[href*="ifift.com"] +cnys.tv #player_pause + twkan.com +.txtcenter, +element-plus.org.doc-content-sidebarM + hcbbs.com<.wp > div:not([id]):not([class]) > a > img[src*=".imgdb.cn"], + sehuatang.netDIV[class^="show-text"], + +ghxi.com.widget_html_ad + div[style] + nodeloc.com#wghtml2 + tvbs.com.twdiv[data-testid="ad-container"]) + +newduba.cn + iduba.com +.m_nav_top# + bilibili.com.adcard-content) + happymh.coma[href*=".taobao.com"] + +dk95.com.advs + cnblogs.com#blog_c1* + layui.devdiv[style*="sentcss.com"]! + yiche.com.h-middle-gd-box + yiche.com .h-gd-box  + mydrivers.com #track-link  + mydrivers.com .i1vbApifa5  + mydrivers.com .HSsRgYjfNn + szxx.com.cn#A1 + szxx.com.cn#A2 + yahoo.com +#ACT_crazyÇ + yahoo.com #ACT_takeover + yahoo.com#ACT_takeover2 + +21yq.com#AD1 + +itavcn.com#ADE) + sina.com.cn#AD_Background_Wall_BG. + sina.com.cn#AD_Background_Wall_BG_Link- + sina.com.cn#AD_Background_Wall_Banner + +csgoob.com#ADback + aiyingshi.tv#ADmask + 51cto.com#ADsList! + +esu.wiki +esu.moe#ASSPC! + i-part.com.tw #AdBanner785  + elecfans.com #AdHtmlRight + +bbs-tw.com#AdImg# + ruten.com.tw#AdRelatedTitle! +qq.com#AdRight-Article-QQ + bookgew.com#AdsT +diyifanwen.com#ArtTl% + +zol.com.cn#Article_Top_Banner! + gamer.com.tw #BH-bigbanner + +downyi.com#BzDown + ifeng.com#CA_left + ifeng.com #CA_right + cnfol.com#CjAdvBt  + chinavoa.com #Content_VOA  + +pjtime.com#Couplet_l_big" + +pjtime.com#Couplet_l_small  + +pjtime.com#Couplet_r_big" + +pjtime.com#Couplet_r_small +chinatp.com.cn #FloatL_2 +chinatp.com.cn#FloatLa +chinatp.com.cn#FloatRb + angelweb.cn#G640x60% + 114la.com + +ylmf.com#GameAdv + 114la.com#Gamepng + +hupu.com#HCFull& + 114la.com + +ylmf.com #HDtopBar, +azofreeware.com + pttjoke.com#HTML3 +azofreeware.com#HTML7" + +tigtag.com#Home1000x70_A29! + +tigtag.com#Home280x80_A16  + +tigtag.com#Home942x70_A1" + xhzyw.com#HtmlMoKua_752383 +diyifanwen.com#Hzh1 +diyifanwen.com#Hzh2 + +21ic.com #IC2008Ad& +rfidworld.com.cn#IOTVote2017Ad + fx168.com #ImgText_01 + fx168.com #ImgText_02 + fx168.com #ImgText_03# +pconline.com.cn #JBestRecomm  + +taobao.com#J_ActivityOut + +duba.com#J_BottomAdBan! + +duba.com#J_BottomAdBan_bg* + +newduba.cn + +duba.com #J_FloorWave* + +newduba.cn + +duba.com #J_FloorWrap + tmall.com #J_Recommend + +duba.com#J_S11 + +2345.com#J_act_plane_hb% + +2345.com#J_acts11_footerfixed + +2345.com #J_bgSug1st! + +gaokao.com#J_fixed_popbox + +2345.com #J_go_erweima  + +2345.com#J_gul_yg + .modÅ + +2345.com #J_gul_yglist + +2345.com #J_hot_event + uc123.com #J_logoLeft + +huya.com#J_roomGg2 + a + +huya.com#J_roomSideTop + +2345.com #J_s11_foot- + +2345.com#J_search_bd > div:last-child + +taobao.com #J_shopkeeper& + +taobao.com#J_shopkeeper_bottom  + uc123.com#J_shoppingPush + +chem99.com#J_tcode + +2345.com #J_tip_stopXP3 + 61.iqiyi.com + +v.61.com#J_videoBox > .view% + +qzwb.com#Javascript\.RightDiv  +pconline.com.cn #JdlFixed' +pconline.com.cn#JrightSideFocus + huarenjie.com#LeftAd2# + eastmoney.com#ListPage_r_Ad& + elecfans.com#MiddleLeaderboard + sogou.com#PZL + sogou.com#PZR! + +airav.cc#Panel_GambleZone7 + +airav.cc'#Panel_GambleZone + .Hide_For_JP_AND_EN +th7.cn #PcPoPmarket + +aiyuke.com +#Playerpad( + qzone.qq.com#QM_Container_100005  + +zhijia.com#QPhiddenLayer + +iis7.com#QTGG + huarenjie.com #RightAd24 + +airav.cc$#Right_Panel > div[style^="margin-"]! + sina.com.cn#SI_Comment_DA! +www.sina.com.cn +#SI_EDU_AD# + playzuan.com#ShouYe_ShangBu> +aishoujizy.com(#ShouYe_ShangBu > .HtmlMoKua:first-child + +soopat.com #SoopatAside# + fx168.com#SquareBanner01_01 + zzzyk.com#Tinfo + +csdn.net +#Topic_Top + 07073.com#Vsss00+ +kaolashuwu.com#ZF_tanchuang_p_right$ +morningpost.com.cn +#\33 60hot + +hao123.com #\5f _wgt_0_1  + +hao123.com#\5f _wgt_0_13 + +ofweek.com #\5f ad-2100 + +hao123.com +#__elm_0_4* + mobile01.com#_popIn_recommend_side +973.com#a0 + +85wp.com#a3_diy2 + mtv-ktv.net#aShow +le.com #a_body_11628 +yatu.tv#a_d1 + duangks.com #a_d_sidebar +le.com#a_title_11628 + 51dll.com#aa + ik123.com#aa960a + ooopn.com#ab-left! +discuss.com.hk #ab_div_px1 + +2345.com#abanner* + hao.360.com + +hao.360.cn #activity + +chaicp.com #activity-webo +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#activity_countdown_head" + +fooish.com + chjtx.com#ad + ruten.com.tw#ad-467% + atoolbox.net#ad-coupon-search�! + +duba.com#ad-detail-banner + +duba.com #ad-dongman +qq.com#ad-fullscreen + mvcat.com#ad-jd + ithome.com.tw +#ad-on-top +udn.com#ad-pall! +studygolang.com +#ad-right1I + hkcards.com6#ad-slot[style="min-width: 300px; min-height: 300px;"] + kaitao.cn#ad-tit# +autohome.com.cn #ad-top-1111 + dayoo.com#ad-xl + baike.com#ad-xnsc + +duba.com +#ad-zongyi + price.com.hk#ad0P + xinhuanet.com + price.com.hk + +ttww22.com + p9.com.tw + +90oo.com#ad1$ + booklink.me + p9.com.tw#ad2 + +efu.com.cn#ad4 + price.com.hk#ad5 +hur.cn#ad810_2 +hur.cn#ad810_6 +dahe.cn#adArea1 + baidu.com#adCard + oeeee.com#adImg +qq.com +#adImgHref + baidu.com#adMainTopLeft  + baidu.com#adMainTopRight + asmag.com.cn #adRightFix + baidu.com #adTitleRight  + sina.com.cn #ad_blk_fixed& + feebee.com.tw#ad_bottom_module + +gdmm.com #ad_cover +udn.com #ad_curtain! + 88448.com#ad_forum_banner+ + btime.com#ad_full_button_placehoder# +autohome.com.cn #ad_ic_video +lqz.cn #ad_index# + feebee.com.tw#ad_mid_module" +chunyuyisheng.com #ad_modal + +100ksw.com #ad_move_sgC + itkeyword.com + +itboth.com + iteye.com + +csdn.net#ad_pop + c114.com.cn#ad_r1% +chinanews.com.cn #ad_right_fc1 + bioon.com#ad_tb + +cctime.com #ad_three + sina.com.cn #ad_tl_01 + +gaokao.com #ad_top_gkw! +megatime.com.tw +#ad_type_9 + stat-nba.com #ad_video + baidu.com +#ad_xbox_1 + baidu.com +#ad_xbox_2 + baidu.com +#ad_xbox_3$ +localking.com.tw #adbannerurl  + tbtdg.com#adblockWarning +chongbuluo.com#add +chongbuluo.com#add + a + +fhm.com.tw#add-box + +17yy.com#addiv! +mianhuatang520.com#addiv2 +3322.cc#addr + iqiyi.com#adflash +eol.cn +#adfloat_l +eol.cn +#adfloat_r + +172cat.com#adload + +51live.com +#adqualityÜJ + huasing.net + +qinbing.cn + frdic.com + it168.com +ahtv.cn#ads" + nownews.com#ads-footer-bar + +sou-yun.cn #ads_index_2 +disp.cc #ads_page_b +disp.cc #ads_page_r  +image.baidu.com #adsearch +dahe.cn#adsg + ishuati.com#adsh + +cztv.com#adsmall +wenxuecity.com#adt +weather.com.cn#adtop_r# + +hdshare.cn + it168.com#adv + +js0573.com#adv1 + +js0573.com#adv2 + +wenku8.net#adv300  +firefoxchina.cn #advBlock +lanrentuku.com#advbox" + ifeng.com +qq.com#advert  + +myqqjd.com#advert_widget* + +anjian.com +qq.com#advertisement + +kjsv.com#advertisingMap  + xiebruce.top #ai_widget-2 + +104.com.tw +#aidma-job + +104.com.tw +#aidma_128 + +104.com.tw +#aidma_588 + +airav.cc#air_top_banner + +ali213.net #ali-js-4# + +aizhan.com#all_text_content + +liisex.com#apDiv22 + +xgw4.com#app-card-list@ + qzone.qq.com,#appCanvasRecentAppActivity > .activity-area- + qzone.qq.com#appCanvasRightBottomTips+ + qzone.qq.com#appCanvasRightTopQBoss( + qzone.qq.com#appCanvasTaskMarket( + qzone.qq.com#appCanvasTodayRecom' + qzone.qq.com#appCanvasTopBanner + sogou.com #appNewsBtn! + sogou.com#appRedPackageAd + qzone.qq.com#app_ads + +dmzj.com #app_home_ad + +dmzj.com #app_manhua + +hao123.com#append' + qzone.qq.com#appstore_sidebar_l' + qzone.qq.com#appstore_sidebar_r + jdbbs.com#archy5 + txahz.com +#archy_ad20 +wx.sina.com.cn#artibody > .article-video0 + blog.csdn.net#article_content > link + a4 + +p2peye.com"#article_content a[ref="nofollow"]  +doyo.cn#article_top_down + 360doc.cn +#artnewdiv + +360doc.com #arttopbdad4 + baidu.com + bdimg.com + tieba.com #aside-ad$ + +csdn.net#asideCustom36733263$ + +csdn.net#asideCustom65392991 + baidu.com +#asideLeft + baidu.com #asideRight$ + +assbbs.comdiv[id^="ass_adv"]t +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#attention-game-wraper_dialog6 +vjmedia.com.hk #author-spotlight + .clear + div- +androiddevtools.cn#auto-scroll-ad-box0 +likr.tw!#avivid_waterfall_wp_product_area + avgle.com#avyc. +qq.com #ay-bottom-tips > .bd > .pic-boxä! +qq.com#ay-tips-close + h2& + v2rayssr.com#b2-widget-html-12& + youmelive.com#b2-widget-html-2V + +bing.comF#b_results > li[style*="padding-bottom: 8px;"][style*="235, 235, 235"]& + +hao.360.cn#background.festival + china.com.cn#baidu + ifeng.com #baidualading + +52pk.com #baidutop + +52pk.com +#baidutop2g +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#baiduweishiDown + newsmth.net#ban_ner + ufanw.com#banne¼ +adultwefong.com +youxi.baidu.com + sports.qq.com + 18avtube.com + mangahax.com + +suopao.org + aicoin.cn + ip138.com + mm-cg.com + timecn.cn + +fsdpp.cn + +txzqw.me#banner + cwyuni.tw #banner > h2! +iwan.baidu.com #banner-box" +iwan.baidu.com #banner-info + +qidian.com #banner-two + +qidian.com#banner1* + ksbbs.com + kshot.com #banner2_top + +qidian.com#banner3 + 99tianji.com +#banner_gg) + ksbbs.com + kshot.com #banner_top +qq.com #barrageBase + c114.com.cn #barrage_ad + c114.com.cn #barrage_bg + mangabz.com#bb1 + hao.rising.cn#bbTao + +my0511.com#bbdcc + gamme.com.tw#bd + +acfun.cn#bd_ad1 +77mh.nl #bdcotopnew + makaidong.com#bdcs + baidu.com#bdyx_float_rb" + qxfun.com#beautiful-things, + +1kkk.com +dm5.com +dm5.hk#beitou + +eeyy.com #beitou_box + dataguru.cn#bg + 91danji.com#bg_ad + netbardh.com#bg_left + +52pk.com#bg_link + netbardh.com #bg_right +eol.cn #big-ad-img$ + bitauto.com#bitAd_background$ + bitauto.com#bitAd_floatFlash + nodejs.cn #biz_center + nodejs.cn#biz_navD + +gmgard.com + +hggard.com$#blog > div[style="overflow:hidden"]) + blog.163.com#blog-163-com-toptips +so.com #bnbtm-banner+ + +159i.com#body > table[width="100%"]1 +microcontrol.cn#body > table[width="758"]9 + +nick20.com'#body_page_sharer ~ table[width="100%"]! +tom.com#body_right_bannerh + esdict.cn + eudic.net + frdic.com + godic.net0#bodycontent > style + div[id] > :nth-child(n+2) + +airav.cc #bottom-adv + +hao123.com +#bottom-be +qq.com#bottom-sponsor  +recruit.com.hk +#bottomBar  + +10086.cn#bottomBigBanner6 +wapwenku.baidu.com + wk.baidu.com #bottomFixed( +auto.sina.com.cn#bottomInquryBar + +masok.cn #bottomLayer" + hexun.com#bottom_extension" + hao.360.com#bottom_hotsite®$ +badmintoncn.com #bottomad_big) + baikequ.com + +lkyw.net +#bottommob + +jijidy.com#box + 50sen.com#box-ads4 +mcdulll.pixnet.net + mcdulll.com #box12909304 +mcdulll.pixnet.net + mcdulll.com #box1989082, + cwyuni.tw#box34614 > [class^="box-"]" +lohas.pixnet.net +#box785805! +finance.ifeng.com#box_img + 111os.com#btmBox + +drvsky.com #bz_position + +pchome.net#bzhref2 + lspdfrcn.com#cancms_float_bar_fixed_bottom2 + 360kuai.com + hao.360.com#cangbao_redbagsL +moneyweekly.com.tw + galacg.me + +crx4.com#carousel-example-generic + bitauto.com#carshow- +bbs-mychat.com#cate_top > tr > .f_one + sina.com.tw #cboxOverlay + mangabz.com#cc1 + mangabz.com#cc2- + +yigujin.cn#cebianlan img[src*="/tp/"]A + dapenti.com.#center > div[align="center"][target="_blank"] + 55188.com #center-pic + +chinaz.com +#centerTxt + huarenjie.com +#cftoutiao + hao.rising.cn#change +360.com #channel-game +360.com #channel-mallW + i-part.com.twB#chatroomFrame + div[style="text-align: center;padding-top: 10px"] + +gz0668.com #closexguide + baidu.com #cms-company + baidu.com #cms-scroll  +image.baidu.com #cmsimage + cnblogs.com #cnblogs_c1 + cnblogs.com #cnblogs_c2 +chinaqking.com#cnt-ad + +2345.com#cnxh + sina.com.tw #colorbox +qq.com #comic_ad0 + +6fzd.com + +fzd3.com#comiis_app_block_220 + +6fzd.com + +fzd3.com#comiis_app_block_740 + +6fzd.com + +fzd3.com#comiis_app_block_84" + +haianw.com#comiis_haianw01" + +haianw.com#comiis_haianw13" + +haianw.com#comiis_haianw14* + +jrj.com.cn#comment > a:first-child + tianshif.com #comment-ad + elecfans.com #company-ad7 + +ithome.com%#con > div[style="text-align:center"] +apk.tw#confirmOverla/ +gate.baidu.com + m.baidu.com +#container- + +hsex.men#container > div:not([class])0 + gg163.net#container > table[width="960"] + +icanzc.com#contbot! + biquge001.com #content > a  + yes-news.com #content-728$ + yes-news.com#content-728-top& + yes-news.com#content-ads-right + jdyou.com #contentSlide +aa25.cn #content_head' + +kafan.cn +aa25.cn #content_top" + 360kuai.com#content_top_gg@ + mbd.baidu.com+#content_wrapper + div + .default-container + +icanzc.com#contsecÐ( + +aae3.com +qq.com#coo_qqBrowser + +0597kk.com #cool_fixed + +2345.com #corner-flash + +2345.com #corner_a + +airav.cc +#corner_cf + +2345.com #corner_div + 111os.com#couplet + baidu.com #couplet-left + baidu.com#couplet-right% +youxi.baidu.com#coupletBanner + eepw.com.cn #coverDiv + +1688.com#cpm-ad + +1688.com #cpm-ad-2 + nownews.com #crazy-video + yahoo.com#crazyAD +ruanyifeng.com#cre + muchong.com +#creditegg + +ipcfun.com#crumb_r2 +wjx.cn$#ctl01_ContentPlaceHolder1_divProMsg" + free.com.tw#custom_html-11! + hexieshe.cn#custom_html-2! + 24kplus.com#custom_html-3= + 18avinin.com + sunnylife.tw +27ka.cn#custom_html-5# + makaidong.com#cyWallsplugin +eworldship.com#d1 +eworldship.com#d2 + +cool18.com #d_right_ad. +1010jiajiao.com#daan_recommend + .xiti% + +storm.mg#dablewidget_KoEeAWoB  + +hao.360.cn#daily-hotword< + hao.360.com + +hao.360.cn + +6789.com#daily-hotwords) +iask.sina.com.cn#daily_topic_flnr + +kpw6.com#daojs + +my0511.com#dbdcc + ytbbs.com#dd1 + +4399.com#defaultbglink& + fastadmin.net#detail-recommend% +hoteastday.com#detail_mask_ad + stockstar.com#dhwzl +141hongkong.com#dialog2 +chinanews.com.cn + chinanews.com #dingtong# +3boys2girls.com #displayadb1$ +3boys2girls.com #displayadbu3% +3boys2girls.com#div3_display3# +findprice.com.tw #divBestBuy+ + splaybow.com#divPrevious:last-child( +rfidworld.com.cn#divTopContainer +nmgnews.com.cn#div_ad4! + twpkinfo.com #div_close_cf, + qzone.qq.com#div_corner_ad_container# +3boys2girls.com #div_display +eeyy.cc#div_dn + +chem99.com #div_main_ta" + mydrivers.com #div_newsyjgg& + pchome.com.tw#div_superbar_swf( + +360doc.com#divaboveReflectionAd1( + +360doc.com#divaboveReflectionAd2 +lanrentuku.com#divjdgg% + +360doc.com#divunderZcommondAd + +360doc.com #divyoulikead¬ +suizhoushi.com + bbs.52life.cc + discuzlab.com + susongbbs.com + bestcclm.com + mahoupao.com + qinzhou8.com + luanren.com + +1x6666.com + +528500.com + +52jscn.com + +5378cc.com + +99nets.com + +ld0766.com + +wishct.com + 58cam.com + 99nets.me + cm868.com + gebi1.com + hh010.com + im286.net + sh419.net + txahz.com + xsool.com + +5imx.com + +7sqq.com + +cnyw.net + +kugz.com + +xydai.cn + +ybvv.com#diy1 + im286.net#diy110 + +maidi.me#diy15# + cbber.com + you85.net#diy2Ä + chiphell.com #diy2 + div4 +oneplusbbs.com + xiaot.com + +wstx.com#diy4 + xkeba.com#diy90( + cbber.com + xiaot.com +#diy_chart  + chinafix.com #diy_col_1-3  + elecfans.com #diy_company + +5imx.com #diy_mxad02 + +5imx.com #diy_mxad03 + +5imx.com #diy_mxad04 + +5imx.com #diy_mxad06 + +5imx.com#diy_mxnewsad01 + +airav.cc +#diy_right + +lysq.com#diyad" +cnpingpang.com #diycity11031 + storyren.top + +mydigit.cn#diyfastposttop + im286.net #diyflash) + qbaobei.com#diyforumdisplaybottom¬ +bbs.qbaobei.com + susongbbs.com + chinafix.com + mahoupao.com + +1x6666.com + +gz0668.com + hcbbs.com + xsool.com + +52ch.net + +cnyw.net + +xydai.cn +#diynavtop5 +bbs.pcbeta.com#diynavtop + style + div[class] + +lahoo.ca #diyrighttop + +airacm.com #diyscsad01  + +nfuwow.com#dl-left-first! + +nfuwow.com#dl-right-first + 114la.com#dlAD1 + 114la.com#dlAD2 + ebiotrade.com#dlBoxs + docin.com #docindex_ad +udn.com#doctop# + +zol.com.cn#downBoxGaosu + a) + downmsn.com#downShow_tellDownload  + qiannao.com #downTb + div +sm.cn #download-uc +sm.cn#download-uc-v2 + +kxdw.com #downloadTop + +nczsks.com #downyxjs + chinanews.com +#dt_advert+ +weather.com.cn + ptbus.com#duilian! + +my0511.com#duilianleftdiv" + +my0511.com#duilianrightdiv + gongkong.com +#dull_left + gongkong.com #dull_rightj +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#duoku_servers_list + chajia123.com#dy24 +chongbuluo.com#dzrid > .frame:nth-child(n+2) +so.com #e_idea_left +so.com +#e_idea_pp, +so.com#e_idea_wenda_detail_guess_new# +so.com#e_idea_wenda_leftBox& +so.com#e_map_idea_detail_lists + easou.com #ec-results-c! + baidu.com#ec_im_container + +hao123.com#ecom% +image.baidu.com#ecomContainer + 114la.com #egg-packet& +qq.com#emailLogin > .hd-slider + +21cn.com#embed_hzh_divg +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#encourage_entry! + hc360.com#endAccessories1 + hc360.com #endAdBanner& + imydl.com#enhancedtextwidget-5 + +ent.qq.com#ent_ad8 +chinabidding.com.cn +chinabidding.cn +#erweima_l8 +chinabidding.com.cn +chinabidding.cn +#erweima_r + anhuinews.com#ewmÍ  + maomaomom.com #execphp-15  + maomaomom.com #execphp-21 + maomaomom.com +#execphp-4  +www.pixnet.net +#extradiv2  +www.pixnet.net +#extradiv5 +apk.tw #favatarRight +life.tw +#fbFixedAd + baidu.com#fc-left + yzpsb.net#fc_foot! + baidu.com#fengchao-dialog + baidu.com #fengchaoad* + +maxthon.cn#festival-bottom-wrapper* + +maxthon.cn#festival-center-wrapper% + hao.360.com#festival-firework& + +maxthon.cn#festival-fix-bottom3 + hao.360.com + +hao.360.cn#festival-logoskin% +360.com#festival-mario-screen( + +maxthon.cn#festival-rain-wrapper% + +maxthon.cn#festival-skin-link/ + +hao.360.cn#festival-theme > .left-entry5 + +hao.360.cn##festival-theme > .right-entry-wrap# + +hao.360.cn#festival_baijian2 + hao.360.com + +hao.360.cn#festival_balloon + +hao.360.cn #festival_fly) + +hao.360.cn#festival_fly + .couten + 17173.com #finalTuijian + elecfans.com +#fix-tdkad + +ofweek.com #fixedADWraps +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com +#fixed_barv +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com #fixed_daoliu& + comic.qq.com#fixed_right > div + +duba.com#fixedad + e0838.com +#float-bot! + speedpan.com #float-window + fun48.com +#float2016 + guagua.cn #floatRoomDiv + +eeyy.com +#float_ad0 +eol.cn#float_l + sasadown.cn #float_mask + +ssnn.net #float_picr# + 28hse.com#floating_left_div + chinapdf.com +#floatleft + chinapdf.com #floatright + brushes8.com#flxgg  + gamer.com.tw #flyRightBox + gamer.com.tw #flySalve + juxia.com#fmt +apk.tw#focus + news.qq.com +#focus-bar +qq.com #focus_jordon< +fuliba2023.net + +fuliba.net + uliba.net #focusslide + bitauto.com #folieAdNews + jxedt.com#footer! + +my0511.com#footerbannerad + ettoday.net#for-ec" +jiumodiary.com #forum-panel$ +cnpingpang.com#forum_rules_12 + +uwants.com #foruminfo + div[align="center"] + +my0511.com #forumtextad +qq.com#fr_ad + +52kd.com #frame2cu3VU + filmaker.cn #frame2gS3Ea + wcjbb.com #frame37boCx + playno1.com #frame8I822E© + tahua.net #frameJjnBIp + dabin69.com #frameOa2lrD! + hcbbs.com#frameXM5QbM img + laowang.vip #frameYl5IOf + +gz0668.com #framec32DR1 + hcbbs.com #framec9562h + hcbbs.com #framedtSuR9" + talkfx.co#frameff1Hu9_left + hcbbs.com #framemI4t76 + wcjbb.com #frameo834m9" + hcbbs.com#framerG6o99_left, + 18avtube.com + mm-cg.com #friendLinke +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#frs-list-game+ + feebee.com.tw#fsa-srp-top-container +wendangxiazai.com#ft_hb# + gamemei.com#ft_right_bottom +w3school.com.cn#fttg + +uotan.cn #fuck-ads- + pornbest.org +ptt.sex#fullPageModal + cnyes.com#full_ad-popup  + cnyes.com#full_ad-screen + ifeng.com#funBar + hcbbs.com #fwin_dialog + cool-de.com #fwin_popadv% + cool-de.com#fwin_popadv_cover + +etest8.com#gads1 + baidu.com +#gamePromo +51.com#game_advlayero +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#game_cover_head_wrapperb +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com #game_forume +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#game_frs_headf +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#game_live_listh +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#game_live_widgeta +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +#game_rank& +discuss.com.hk#gamepage_banner + +jb51.net#gaosu + downxia.com #gaosu_div0 +3h3.com#gaosu_down_bt' +ruanjianxia.com#gaosu_downloadsn + paopaoche.net + +cesafe.com + +downcc.com + +downyi.com + pc0359.cn +9ht.com +pc6.com #gaosuxiazai +ruanyifeng.com#gd1 + whnews.cn#gd_l + whnews.cn#gd_r + +ant.design #geektime + +ant.design #geektime-ads% + 5054399.com + hitime5.com#gg + v2rayssr.com#gg-box + 5054399.com#gg2 + hitime5.com#gg250 + +qiyeku.com#gg2_box + +5173.com#gg330 + hitime5.com#gg730 + +5173.com#ggFloat +xiazaizhijia.com#gg_2 + 324324.cn +#gg_468_60 + 324324.cn +#gg_728_90* + +miniie.com + tisai.com #gg_content + kukuw.com#gg_rl + +7654.com#gg_top + baidu.com#ggbtm! +wenku.baidu.com +#ggbtm-ads + +huya.com +#ggcomment + +52pk.com#ggfloat + china.com.cn#gggg°> +discuss.com.hk(#gid_group_restricted > .gid_group_title3 + danyang.com #global-hd > div[align="center"]| +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com#global_notice_wrap + eprice.com.tw #goldlink + +rebooo.com#gong + +acfun.cn #goniudan + +js0573.com#gotopl + +js0573.com#gotopr + 18183.com#gsBtn + yxbao.com#gs_down + cncrk.com#gsxza +cnr.cn#gtop00 + jirou.com #guanggao + creaders.net +#guanggao2 + gasaq.com#guanggao_left  + gasaq.com#guanggao_right  + +hao123.com#guesslikesite& + +hao123.com#guesslikesite-block$ + +52asus.com#guiigo-black-mask + +szhk.com #h_banner + +hao123.com #hao123-gw11 + javhope.com#havhope +macd.cn#hbad + coolaler.com#hd + +jr35.xyz #hd + .wp# + +gdmm.com#hd > .wp > .module) + +hackhw.com + +ithome.com #hd_float + +ithome.com +#hd_float1 + +52pk.com#hdowner! + he-games.com #he_banner_ad! + he-games.com #he_bottom_ad + +1ydt.com#head + opticsky.cn #head > .tac + +gaoqing.la #head > a + elecfans.com#headJf + +hao123.com #headJoke, + +poedb.tw#head_toolbar + .text-center + +tbxt.com#headad22 + +159i.com"#header + div > style + div[class] + +houdao.com #header-ban' + +maxthon.cn#header-float-promote + +2345.com#header-img-new + 3g.qq.com #header-mlcz + +2345.com #header-news. + hao.360.com + +hao.360.cn #header-patch + +060s.com#header4 + +131458.com +#header_gg +tgb.cn#headerggContent + duote.com#hengfu  + hexun.com#hexunCouplet01 + eepw.com.cn #hiddenLayer + +yxdown.com #highdown# + wacowla.com#home-top-narrow + +t.qq.com#homeBannerNew# + bjhockey.org#homeVideoModal$ + +aizhan.com#home_text_content# +ruanyifeng.com #homepage_pos5 + pilipali.cc + +588230.com + +3987.com#hongbao1 +segmentfault.com#hotArticles:nth-child(3) +3boys2girls.com#hotbar# +360.com#hotbottom_littlenav + +sohu.com +#hotpicnew + yahoo.com #hp-ad-left + yahoo.com #hp-ad-right©# + ifeng.com#hslide_sPic_baidu + +huya.com#huya-ab + +huya.com#huya-ab-fixed" + qzone.qq.com#idQbossHotbar +pp.ua #id_ad_image + nownews.com #idle-layer + +my0511.com #idxtelecom4 + +cccpan.com + +ysepan.com + ys168.com#idzdy1 + tingroom.com +#ifram_563 + +hao.360.cn#iguess +qq.com #image_ad + +nick18.com#img a +pharmnet.com.cn#img1 + e0575.com#img2$ + 114la.com + +ylmf.com#imgArr$ +image.baidu.com #imgCmsAdPart + e10000.cn #imgFloat* +image.baidu.com#imgid > .fcimgpage + 54new.com#imgshow + +52bug.cn #index-code +jiangjunzy.com #index-lb +ydss.cn +#indexBlad" + baidu.com#index_banner_top  + 3dmgame.com #index_bg_box + +qiyeku.com #index_gg +sm.cn#index_haodongxi# + baidu.com#index_right_float! + baidu.com#index_right_top" +chinabidding.cn #info_adv_1& +58.com#infolist > .recycleInfo + thinbug.com #inktokad6 + yocoolnet.in + +520call.me +av99.us #inplayer + +pchome.net +#intel-bar + mm-cg.com #ioshowAD + +2345.com #ivy-taobao +qq.com#iwanAD2 + baidu.com #j-ad-first + baidu.com +#j-ad-side +iwan.baidu.com#j-ditu +iwan.baidu.com#j-media + +qidian.com #j-topBgBox + +qidian.com #j-topHeadBox  + +qidian.com#j_bodyRecWrap) +tieba.baidu.com#j_light_see_indexi +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#j_star_bus_beforec +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com #j_ten_yearsn +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#j_worldcup_info_banner$ +stheadline.com#jetso-wrapper + +jable.tv #jimds-slider + iqiyi.com #jingdongArea/ +axutongxue.com +axutongxue.net#jjjagl + +aiyuke.com #js-ad-type4 + +tigtag.com #js-dropdown! + +360kan.com#js-eb-bottomad +163.com #js-ep3rdRank! +so.com#js-mh-news-sdk-sad! +so.com#js-mod-fixed-float, + zhanqi.tv#js-room-flash-banner-panel +cnxz.cn #js_focusimg3  + image.so.com #js_textlink) + ifeng.com#js_videopause_container + +airav.cc #jssor_banner + +2345.com#jswbox + mh160.com#jusha1Œ" +pcstore.com.tw #keyad-right + +dmzj.com#khdDown' + +0597kk.com#kk_content1_left_ad1 + +0597kk.com #kk_head_ad& + +0597kk.com#kk_oTransContainer2 + +1m3d.com +#klp_adtop + +zn513.cc#klp_hdp" + baidu.com#knowledge-answer + +csdn.net #kp_box_476 + +csdn.net +#kp_box_58 + +2345.com#kz + axios-js.com +#lagou-vip + hao.360.com #large2small + +csdn.net#layerd + +hao123.com #layout-guess! + 920share.com #layui-layer1$ + +toolfk.com#layui-layer100001" + +1kkk.com +dm5.com#lb-win( + hao.360.com#left-float-animation" + hao.360.com#left-nav-place  + baidu.com#left-promotion! + +hao.360.cn#left-ria-fixed + rising.cn#left50 + +hbzhan.com#leftAdv + jiaodong.net #leftBanner + +91duba.com#leftBar5 + +qinbing.cn + +sonimei.cn + cs.com.cn#leftDiv + miushuo.com #leftDiv1 + +duba.com#leftHot" + 51credit.com#leftLayerDown + +2345.com#leftPacketBox + +2345.com#leftPacketMain + +ccb.com.cn #leftSideAd + +2345.com #leftSideBar + kuai8.com#left_Ad, + hao.360.com + +hao.360.cn #left_float! + sina.com.cn#left_focus_ad + +hao123.com #leftbannerv2 + +xc6b.com #leftbottbox# +www.wenxuecity.com #leftside + +hao123.com#lefttip$ + +hao123.com#lefttip-container + qciss.net #lightbox + qciss.net +#lightbox1 + iplaysoft.com #link1111 + boke112.com#linkdh6 + cartoon18.com + pornbest.org +ptt.sex#links] + cwyuni.twL#links-row-1 > div[id^="box"]:not(#box32499):not(#box1026387):not(#box34614) + 51cto.com#list4  +autohome.com.cn #live_rec +500.com #live_top_ade +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#loan_ad_mod_a# + +chinaz.com#loc.Mnav-right02d +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com #local_pb_top% + blog.163.com#loftertextlinkad + djwma.com#logo, + eepw.com.cn#logoSearchNews + .marb10 + +ebc.net.tw #lotteryfnc + +nlc.gov.cn #lovexin12xx + rising.cn #lowerrightAd# + +my0511.com#lphybbschklogdiv + nextapple.com#lrec01 + mcbbs.net #lsform + .y + antpedia.com #luxury_car§[ + +btnull.org + gying.net + gying.org + +gying.in + +gying.si +gyg.la +gyg.si#ly + playno1.com#m12 + playno1.com#m2 + playno1.com#m7 + +2345.com #m_banner + +2345.com #m_banner_2  + +chacuo.net#mailtooltipss + kaka12345.cc#mainM + g-years.com + ghoffice.cc + +mydigit.cn + gpsuu.com#main > .textMes$ +lusongsong.com#main > center' + +e0575.cn#main > div:first-childV + qiannao.comC#main > div[style="padding-left:20px;margin-top:10px;"]:first-child2 + ksbbs.com!#main > div[style^="height:65px"]( +secretmine.net#main-content > br, +secretmine.net#main-content > center) +mail.pchome.com.tw#main_top_frame7 + +porn5f.com%#main_video_block > .m-t-5.pull-right6 + +yimuhe.com$#maincontent3 > div[style^="height"]# + +taobao.com#mainsrp-shopstar + map.baidu.com +#mapBanner +wenxuecity.com#marquee + muchong.com#mask1 + kxdao.net + xiaolz.cn +k7d.com#masonry + xiaolz.cn #masonry2 + +gzmama.com#mdvtips( + hinet.net#media_ad_popup_overlay/ + hexieshe.cn + +appinn.com#media_image-2! + hexieshe.cn#media_image-3 + loldk.com #meizi_ad + +aae3.com#menu + +xiuren.org#menur + 123-bt.cn #mianze_fixed + 123-bt.cn #mianze_mask + tv.sohu.com #miaozhenad + 111os.com#midBox +sina.cn #midThreeAds + webjx.com +#middleimg6 +site.baidu.com + +hao123.com +91.com#midline + 3dmgame.com #min_ad_con# + +hao123.com#mingzhanresource) +fanqiangzhe.com#mobile-bottom-ads$ + yocoolnet.in#mobile_inplayer$ + ettoday.net#mobileweb_inread! + yahoo.com#module-tabadktw  + yahoo.com#module-tabadsw& +so.com#mohe-360pic_ext--normal' +so.com#mohe-biu_gouwu > .g-card  +so.com#mohe-etao_shangye% +so.com#mohe-gouwu > .g-shadow" +so.com#mohe-m-smzdm_haojia' +so.com#mohe-medicine_sy > .cont% +so.com#mohe-right_windows_ads8 + mtrend.cn'#morecontent > .morecontent_next[style]/ + +nick18.com + +niko18.com#mov > .content7 + jmnews.com.cn + +itavcn.com + +gd163.cn#msg_win+ + +maxthon.cn#mx3-popularization-float + yahoo.com #my-adsHPSPON + +pianhd.com #myCarousel + pianyuan.org#myModal + +xiaoz.me#mygg + cpnn.com.cn#myimg + +2345.com#mzBrowserWrap + fwwang.cn #n_s_300250 + fwwang.cn #n_s_300250ad¦V + ccav1.comE#nav-menu > ul > .menu-item > a[href^="http"]:not([href*="yigujin."])  + +apiref.com#navbarRightAd + tgbus.com #neck_970 + 40407.com#nei_fmt + +orsoon.com #new-actentry# + elecfans.com#new-adsm-berry  +cnpingpang.com +#new-flash + hc360.com +#newAppBox + hc360.com #newAppBox1/ +cam4.tw #newTippingViewer + div[data-ab]  +kaolashuwu.com +#newmodule + pigai.org +#newnotice3 +fanqiangzhe.com#news-include + .text-center +chinaqking.com#newsAD + hexun.com #newsPopWin + avgle.com#nft + ilxdh.com #nice-banner0 + subaibai.com#note +qq.com #nqsnqsad02 + +ssnn.net#nrk_gg + +zol.com.cn #official_url + fx168.com #oilTopAd% + 3g.qq.com#omgad-wechat-bigpic + +duba.com#one-mid + +duba.com#oneTip + +duba.com#oneone% +image.baidu.com#only-lady-sec +360.cn#openCenterScreen + +lgmi.com #openwindows0# + samsung.com#operationBanner' + ifeng.com#optimusPrimeContentId, + ifeng.com#optimusPrimeContentId_left# + jiyingdm.com#otherWindowBox* + lalulalu.com#overture-side-bar-ads) +3boys2girls.com#overture_ads_long) + lalulalu.com#overture_main_banner1 +manhua.weibo.com#p-nav-fix + .p-area.w980 + rising.cn #pageflipƒ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com,#pagelet_encourage-appforum\/pagelet\/my_app• +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com,#pagelet_encourage-tbguess\/pagelet\/sidebarˆ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com#pagelet_frs-aside\/pagelet\/ad‘ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com(#pagelet_frs-aside\/pagelet\/fengchao_ad³ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com\#pagelet_frs-header\/pagelet\/head_content_middle > div[class]:not([class*="_"]):first-childŒ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com##pagelet_search\/pagelet\/search_ad! + +u7u9.com#pangu_leftBottom +pc6.com +#param + a + hifidiy.net #part_left2" + hifidiy.net#part_right_gg7) + 18avtube.com + mm-cg.com#partnerm +tieba.baidu.com +wapp.baidu.com + bdimg.com + tieba.com*#pblist > li[class]:not(.j_post_list_item)a +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +#pc2client + kekeshici.com#pcAd& + ettoday.net#pc_inread_overseas" + +pchome.net#pchome_970_90_a* + 360kuai.com#pendant_interactive_gg. + axiang.cc#photo-sliders + .widget_text$ + mingpao.com#photo_transition + sina.com.cn #pip_taobao + +pixnet.net +#pixblogad$ + +pixnet.net#pixblogad-banner2 + +pjtime.com #pjtime_full) + blog.sina.cn#pl-ad-after-comments! + blog.sina.cn #pl-adtop-bar" + blog.sina.cn#pl-blog-artad”! + blog.sina.cn #pl-blog-tbyy! + blog.sina.cn #pl-float-bar + weibo.com#pl_common_ali% +rfidworld.com.cn #placeHolderR3 + hao.360.com + +hao.360.cn#plane > .plane-hd+ + hao.360.com + +hao.360.cn +#plane-riag +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#plat_order_head| +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com%#plat_recom_carousel > .activity_head‚ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com+#plat_recom_carousel > .tbui_slideshow_listk +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#platform_left_floatm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#platform_spread_video + haote.com#playBox + tingroom.com #play_ggr + +7k7k.com +#player-ad + +bljiex.com #player_pause + +jyacht.com #playergg$ + mail.qq.com#plp_ad_container" +image.baidu.com #plz-albums' +image.baidu.com#plz-head-banner  +naozhong.net.cn #pnl-ne0nU + china.com.cn + netbardh.com + pangzitv.com + twoeggz.com + +ahgame.com#pop + +game2.cn +#pop-flash + 1688.com.au#pop-up5 + matools.com + +apiref.com + +iodraw.com#popAd + eepw.com.cn#popBox + dataguru.cn#popDiv + jdyou.com#popWrap  +qq.com#pop_apps_sponsors! + ebiotrade.com #pop_banner1! + xclient.info #pop_business + cnplugins.com#pop_diva +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +#pop_frame + hinet.net #pop_media_ad +up01.cc#popad/ + 2dfan.com + galge.fun#popadv-container + +ddzimu.com#popup& + eprice.com.tw#popup-ad-overlay +tom.com #popupDivgame" +fanqiangzhe.com #popupModal + +5173.com #popupRight% +league-funny.com #popupvideoad + baixing.com +#port-info + +ld0766.com #portal_ad3# + +x3cn.com#portal_block_12045% + ichunqiu.com#portal_block_157$ + macfans.org#portal_block_180# + hcbbs.com#portal_block_2652# + jdbbs.com#portal_block_2826# + hcbbs.com#portal_block_3441# + +fuyang.net#portal_block_474) +1point3acres.com#portal_block_479# + +fuyang.net#portal_block_502 + mpyit.com#post-0! + unwire.hk#post-sidebar-ad% + 51cto.com#postform + a[style] + +sosg.net#postlist + .cc9 +apk.tw+#postlist > div:nth-last-child(2):not([id])& +wenku.baidu.com#ppt-bottom-ads2 + downza.cn!#priDownBtn + a[href*="?module="]% + oschina.net#project_ad_banner +firefoxchina.cn#promo: +firefoxchina.cn +firefox.com.cn#promote-top-list +sina.cn#promotionCover, +xiazaizhijia.com#public_right_mid_ad…" +bestopview.com #pubtextnone + +hao123.com +#puzzleBox9 + +xmfish.com'#pw_content > .forum_panel:nth-child(4) + soyunpan.com#qblad" + ac.qq.com#qgirlRefreshLead  +cankaoxiaoxi.com#qihupic# +so.com#qiyu-brand-container" + chinanews.com #qizhi_div980& + xineurope.com#qmenu_menu + .wp + +78dm.net#qpgg + +duba.com#qq_adv +qq.com#qqadv" +qq.com#qqmail_AD_container  + baidu.com#qrcode-chunwan + +fsclzs.com#qvod) +user.qzone.qq.com#qz_notification +qq.com#r_adL + atyun.com;#r_banner > ul > li > a[href^="http"]:not([href*="atyun."]) +163.com #r_mkaolaadv" +360.com#rainbow-cat-screen + +appinn.com #ranshownow + +game2.cn#rb + +moe.best #rcm_sidebar' +chinaqking.com#readerServiceDIV + +pujia8.com +#recommend& + ganji.com#recommend_storeg_div' + +duba.com + +uu114.cn #redbagRain +image.baidu.com#relEcom! + +zol.com.cn#relatedProduct$ + baidu.com#relative_shop_flow! +image.baidu.com +#relecom54 + +my0511.com #renmenzwadh +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#replyBusinessImg + +ghxi.com#respond + div3 + qxfun.com"#reward-me > figure:nth-child(n+2)( + +2345.com#right > div:first-child@ + +90oo.com0#right > div[style^="height:60px; width:750px;"] + antdv.com #right-bottom! + axios-http.cn #right-sider + +hbzhan.com #rightAdv! + x-mol.com#rightAllJournal  + jiaodong.net #rightBannerR + qiannao.com + +qinbing.cn + +sonimei.cn + ca168.com + cs.com.cn #rightDiv6 + 07073.com%#rightDiv > div[style="height:250px"] + +2345.com#rightXieCheng + kuai8.com #right_Ad1 +discuss.com.hk + +uwants.com #right_column  + uc123.com#right_elevator- +gmw.cn#rightad1 + .contentColumnRight + +xc6b.com #rightbottbox2 +shangxueba.com + +ixueyi.com#rightfloatdiv$ +www.wenxuecity.com +#rightside + +nczsks.com +#rightyxjs +motocity.com.tw#rotator +so.com#rt-interest-list + fqlook.cn #rtj1009_iho3# + fqlook.cn#rtj1009_ren_imme1 +m.autohome.com.cn#s2205 +autohome.com.cn#s5473 +alu.cn#sanjia +w3school.com.cn#sbtg# +sm.cn#sc + .article.ali_row3 +motorfans.com.cn + chyangwa.net #scrollPics  +youxi.kugou.com #scrollUpº# + iqiyi.com#scrollWrap-vipbuy + qlwb.com.cn #scroll_box + kocpc.com.tw #scroll_div! + baidu.com#search-union-ad* + +flighty.cn#searchBox + #sidebarBox + +duba.com #searchRight~ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com#search_baidu_promote! + baidu.com#search_bottomadm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#search_button_wrapper$ + ruten.com.tw#search_u_970x90. + gaoqingw.com#searchform > label > span* +llss.bz#secondary img:not(.avatar) + +eccn.com #sem_online9 + +gdmm.com)#separatorline + script + tbody:not([id])' + +chinaz.com#setHomeTonglanCMedia" + +chinaz.com#setPbottomMedia$ + +nick18.com + +nick20.com#sex, + +nick20.com#sex + div[align="center"]( + pan.baidu.com#share_ad_info_panl + soft5566.com #sharebtn + +hupu.com #shihuo1111 + +my0511.com #shiyonggjad + +maxthon.cn #shopping& + +hao123.com#shortcut-box > .tip$ + +hao123.com#shortcut-tuiguang + kaoyan1v1.com#showAD + +dmzj.com #show_tip_bg + +smzy.com#showa  +json.cn#shuangshi1Modal1  + rising.cn#shuangshiyibid$ + 1688.com.au#side-ads-wrapper  + +maxthon.cn#side-game-pop  +iwan.baidu.com +#side-xbox( + ifeng.com#sideBar[class^="box_"] + +2345.com#sideCat + hao.360.com#sidebar% + +xc6b.com#sidebar > .box-b img0 + +appinn.com#sidebar > .widget:first-child, + +ipcfun.com#sidebar > ul > div[style]H + iplaysoft.com3#sidebar > ul > li[class^="widget"]:nth-child(-n+3)+ + +ipcfun.com#sidebar > ul > li[style], + +jandan.net#sidebar > ul:nth-child(2)! + mpyit.com#sidebar a > imgD + gaoqingw.com0#sidebar a[href^="http"]:not([href*="gaoqingw"]). + +appinn.com#sidebar a[rel*="sponsored"] + boke112.com #sidebar img$ + elecfans.com#sidebar-firstad! + +gaoqing.la#sidebar-follow# + +runoob.com#sidebar-right-re + +2345.com +#sidel_lvy) + +2345.com#sidenav > .activity-trig + +maoken.com +#siderAd01 + douyu.com #sign_p_1% +udn.com#simplemodal-container# +udn.com#simplemodal-overlay& + +esu.wiki +esu.moe #siteNotice- +megatime.com.tw + pchome.com.tw#sixi& + jiegeng.com + +hao123.com#siye: +club.pchome.net + +qinbing.cn + +12306.cn #slideBox + +12306.cn +#slideRBox + bilibili.com +.ad-report +cjn.cn#slidelr' + guojitv.com + 526bt.com#slider+ +tiantianzhibo.com#sliderb_containerè + popart.hk +#slideshow# + ca168.com#slideshow_wrapper  +pconline.com.cn #smallHB1 +eol.cn #small_adleft +eol.cn#small_adright + +hao.360.cn #snatch-logo + baidu.com#sning1 + baidu.com#sning2 + baidu.com#sning3& + +159i.com#sop > div:first-child + +ktsf.com#sow-slider-18 + +ktsf.com #sow-slider-7 +w3school.com.cn#sp_tiy" + baidu.com#spage-top-banner1 + downbank.cn + greenxf.com#speed-download$ + greenxf.com#speed-downloader* +heartinkstone.pixnet.net +#spotlight + image.so.com #starlist + eepw.com.cn #startvideo + techbang.com #stickies + +1616.net#stool + showtv.com.tw#sub-ad$ +163.com#suning-bottom-banner + tw116.com#t365% +firefoxchina.cn#tab-mod-tehui + +steelcn.cn +#table img& + +ezvivi.com#table1[width="336"]  +gametower.com.tw#tableAD4 + +t.qq.com$#talkList > li[ispopula="1"][tv="2"] + 07073.com +#tanchuang" +tongren.gov.cn #tanchukuang + +histock.tw #tbadword + 40407.com#tcdgg# + 3g.qq.com#template_gdt_div1 + pchome.com.tw#test2" + loldk.com#test_ad + #model + tumutanzi.com#text-3 +vjmedia.com.hk#text-33 + stoneip.info#text-57 + zh141.com#text1) +firefoxchina.cn#theme-side-banner + +hupu.com #threadLeftAd¦ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com=#thread_list > .j_thread_list + li[class]:not(.j_thread_list)† +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com/#thread_list > .j_thread_list:not([data-field])< +firefoxchina.cn +firefox.com.cn#thside-left-banner + ettoday.net #ticker_3 + 1ting.com#tingx_5 +dict.cn#tjcd + +yxdown.com#tl_adv% + hao.360.com#tmall-full-screen + 51yfx.com #tmall_1111 + +ali213.net #tmp_ggao% + hexun.com#tonglan_1 + .layout + +chinaz.com #toolsIntro + +uuu9.com#top- + +159i.com#top > div[class]:first-child% + 1688.com.au#top-ad-layout-new + gameapps.hk #top-ad-left  + gameapps.hk #top-ad-right + +hao123.com #top-anim8 + tie.163.com + uump4.com + uump4.net #top-banner6 + hao.360.com + +hao.360.cn#top-full-column-tips + hao.360.com#top-nav + 55188.com#top-pic·  + +maxthon.cn#top-slider-ad + teepr.com #topAdBlock) + +91duba.com + iduba.com +#topBanner +recruit.com.hk#topBar + 111os.com#topBox + +qidian.com +#topGameOp + +2345.com#topHf + elecfans.com#topJf + +hupu.com#topPub + +chinaz.com#topTxt. + hao.360.com + +hao.360.cn #top_activity + starbaby.cn #top_ad_show( + +cctime.com +doyo.cn #top_bannerB + bttop.net1#top_bottom + div[style="float:left;width:100%;"]! + xiashanet.com #top_content +ibf.tw#top_d +xitongzhijia.net#top_gg- + hao.360.com + +hao.360.cn #top_hotsite + +duba.com #top_joke  + +huaban.com#top_promotion +hea.cn#top_slides_box" + qzone.qq.com#top_tips_seat + +wendu.cn#topads + 10jqka.com.cn#topba1 + +gtloli.one +#topbanner( + blog.163.com#topbar_randShowArea + +hao123.com #topbeWrapper + nowscore.com#toperAd" + nowscore.com#toperBaskText + nowscore.com +#toperText + cnforex.com #topfocus + csshello.com#topgg' +iask.sina.com.cn#topic_ylzz_new + mtrend.cn #topictabs1 + +1616.net#toplink + +my0511.com#toplmad% + mtrend.cn#toptabs1 > .kz_line! + 85lou.com#topwarning_7ree + +qidian.com +#tr-banner + 90pan.com#tt_6 + 90pan.com#tt_xker% + +6fzd.com + +fzd3.com #tuiguang + +sohu.com#turn-ad' +ziqiangxuetang.com #tutorial_btm + +ali213.net#tv) + makaidong.com + +jb51.net#txtlinka +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +#union_mod# + v.163.com#v_shapeLeft_divId$ + v.163.com#v_shapeRight_divId# + iqiyi.com#videoBuyContainer + hexun.com #videoLeftAd + hexun.com #videoRightAd& + +douyin.com#videoSideBar iframe[ + douyin.com#?GvideoSideBar:-abp-has(div:-abp-contains(/商å“�|商家|退款|店铺/)) + dailygh.com #video_fade +yzz.cn #video_ff" + bitauto.com#video_floatBox + ifeng.com#video_p  + baidu.com#video_push_box! + aipai.com#videosRightDown + rising.cn#viphui + rising.cn #viphuibg + +jstv.com#vplayad +160.com#w-advertisementÍ# +160.com#w-btn-advertisement" +weishangshijie.cn #wad_left# +weishangshijie.cn +#wad_right +wap.zol.com.cn#waitrep + +51live.com +#waterMark# +chineseinla.com #weixin_ads2 + +fububu.com#wendibu$ + baidu.com#wgt-ad-right-fixed  + baidu.com#wgt-left-promo + 51yfx.com #widget-gouwu# + iqiyi.com#widget-jingdongAd + 51yfx.com #widget-test + qsptv.net#widget-weixin + ccav1.com +#widget_da + huanqiu.com#winNext$ +news.baidu.com#women-picwall$ + chazidian.com#worldcup_floato +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#worldcup_guess_frs_wrapf +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com#worldcup_topic" + +17jita.com#wp > .wp > .pbm# + +lwgod.me#wp > a:first-child! + huaijiufu.com #wp > center+ + +528500.com#wp > div[align="center"]- + yixingjia.com#wp > table[width="960"]& + wpjam.com#wpjam_blog_300x250_1! + ganpapa.com#wrapper + div" + +btbtt.me#wrapper2 > .width + +nczsks.com#wzyxjs# +liaoxuefeng.com #x-sponsor-a# +liaoxuefeng.com #x-sponsor-b + soft4fun.net#xad_mu +hl.cn#xf_left +hl.cn #xf_right" + jmbbs.com#xjj_jmbbs2015_01 + win7w.com#xldz + +fang.com#xmlAd + +gaokao.com +#xuad-left$ + 360kuai.com#xunjia-modal-btn + +qhnews.com#xwyc + +2345.com #xxl_game-new! +alu.cn#xxxhuangjinzhanwei + +bole90.com #xy_toast_ad' + 51xiazai.cn#xzbtn1:nth-child(2) +drv5.cn#xzq + +redocn.com #yc_adv_1_2 + house.qq.com#yf + starbaby.cn #yindex_ads + +hao123.com #yixing-siye + +ynet.com #ynetG_B1 +dm5.com#youce +weather.com.cn#ytc + 3dmgame.com #yxj_fmt_gg + eastday.com +#yxxf_area + iqiyi.com#zbsp +weather.com.cn#zdl$ + +gzmama.com#zone_banner_1_new* + +gzmama.com#zone_index_fullcolumn_2$ + +gzmama.com#zone_left_couplet% + +gzmama.com#zone_right_couplet& + +gzmama.com#zone_top_fullcolumn! + eastmoney.com #zwbtextlink + +jyacht.com +#zy_topgg2 + +jyacht.com #zyc1r_03 + +jyacht.com #zyc1r_05¡ + xiaolz.cn#zzbuluoled_sx% + +ithome.com.-hongbao-containerX + lenovo.com.cn + china.com.cn + +csdn.net + +cyol.net + +liues.cn + +wxrb.com.AD +motobuy.com.tw.AD1 + eepw.com.cn +.AD300x200 + +cyol.net .AD960_90 + +jc001.cn.ADS! +click108.com.tw +.AD_300250! +click108.com.tw +.AD_730280 + tzfdc.com.AD_B + sina.com.cn .AD_hqbottom +shejidaren.com.AND +le.com.Ad + kuai8.com.Ad1 + cnfol.com.Ad1000 + cnfol.com.Ad310! + cnfol.com.AdAsideW300H250 + hung-ya.com .AdBottom +qq.com.AdBox-Article-QQ + lenovo.com.cn.AdSite +qq.com.AdTop-Article-QQ + crsky.com .Adown_v_gs + cnfol.com.AdvDL# + fx110.com + +fx110.uk.Adv_1 +bestopview.com.Adv_c +pc6.com.Advbox, + +chaicp.com + +qiuyi.cn.Advertisement) +big5.china.com.cn.Advertising > ad +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .BAIDU_CLB_AD +le.com.Banner + zhihu.com .Banner-link5 + zhihu.com$.Banner-link + .Pc-card-button-close  + china.com.cn .Banner_left! + china.com.cn .Banner_right + +58avgo.com .BillingLeft + +58avgo.com .BillingRight + lenovo.com.cn +.BottomBar + +ltn.com.tw .C3.boxTitle+ + 18avtube.com + mm-cg.com +.CN_qmvtoy + zhihu.com .Card.Banner: + +3464.com*.CommonBody > .CommonListArea:nth-child(3)L + +3464.com<.CommonBody > .CommonListArea:nth-child(3) + .CommonListArea! + 3dmgame.com.Content_L > p + +imeee.cn.DA336  + 91lai.com.D_guanggaotu11 + 91lai.com.D_guanggaotu2 + 91lai.com.D_guanggaotu3 + cnfol.com.EtGA + cnfol.com +.FixedLeft + cnfol.com .FixedRight + jinhua.com.cn.FocusAD + angelweb.cn .GG960x90 + +aiyuke.com.GGad5 + yahoo.com$.GeminiPortalStreamAd_handleViewport& + 3dmgame.com.Gmaeinfobtn + span7 + 3dmgame.com$.Gmaeinfobtn_tab > [class]:not(.tab)6 + 3dmgame.com#.Gmaeinfobtn_tab > [class][onclick]* + 3dmgame.com.Gmaeinfobtn_tab > span$ + zhihu.com.GoodsRecommendCard$ + downg.com.Gs_d[href$=".exe"]¹ + wnflb2023.com + twunbbs.com + wnflb66.com + +52fzwg.com + +icabbs.com + 79tao.com + kxdao.net + sunwy.org + wnflb.com + xkeba.com + +zn513.cc +hqol.cn +k7d.com.GzList +le.com.H-tg + +chinaz.com .HeaderAdvert +diyifanwen.com.Hzh1ì +diyifanwen.com.Hzh2% + douyu.com.IconCardAdBoundsBox" +hao.lenovo.com.cn .IconLink + +chaicp.com.Icp-Ad + +anjian.com.ImgTop  + 3dmgame.com .Indexadd-100 + +iyaxin.com .Information" + baiten.cn.JS_advertisement + +ixigua.com.J_ad +kq7.com .J_appFromLen + smzdm.com .J_index_wall + dianping.com +.J_midas-3" + dianping.com.J_mkt-group-1" + dianping.com.J_mkt-group-2" + dianping.com.J_mkt-group-3  + +duba.com.J_side_activity + +edu.qq.com.L, + +dasai8.com.L > font[color="#0000FF"] + solarbe.com +.LT_banner/ + zhihu.com.LinkCard-ecommerceLoadingCard + oilchem.net.LzAdv + zhihu.com +.MBannerAd& + price.com.hk + +uwants.com.MFV + zhihu.com .MHotFeedAd + zhihu.com.MRelateFeedAd# + +my0511.com.MY0511-broadcast + +ltn.com.tw .NC1.boxTitle + +ltn.com.tw.NC3 + cnfol.com .NavTopAd + cnfol.com .NewAdBox + 07073.com.No1 + +bing.com .OpInNwWndw + zhihu.com.Pc-word + +chinaz.com .Postcon-ad +5588.tv.ProDaTu + 21uscity.com.R300x70 + solarbe.com +.RT_banner! + 3dmgame.com.R_qingtianzhu +3jy.com.Rad( + zhihu.com.RelatedReadings-adItem$ + zhihu.com.RichText-Ecommerce  + douyu.com.ScreenBannerAd + +bmlink.com .Tg_1190x70 +alu.cn +.Tg_125x70 + +bmlink.com +.Tg_190x70 +alu.cn +.Tg_230x80 +alu.cn +.Tg_260x70 +alu.cn +.Tg_290x60 +alu.cn +.Tg_390x60 +alu.cn +.Tg_590x60 + +bmlink.com.Tg_gg + cbndata.com .Toastify + 3dmgame.com.Tonglan + lenovo.com.cn.TopBar" +feixiaohao.com .TopHomeLink) +dailynews.sina.com.TopNav + table* + zhihu.com.TopstoryItem--advertCard + +jstv.com .TuiGuang" +qinzhou360.com .Txtadv-show + weibo.com.UG_bn_a + mm-cg.com +.UT_thread + tuwan.com .Video-r-ad + zhihu.com .WeiboAd-wrap. +news.china.com.cn.Wrapper > div[style]‰ + douyu.com +.XinghaiAd + sunnylife.tw +.Zi_ad_a_H +51.ca._51_a_cO +outlook.live.com7.__Microsoft_Owa_MessageListAds_ListView_templates_cs_x6 + redian.news#._ap_apex_ad[style^="width: 300px"]% +tools.2345.com._hb-box + .mod +qq.com +._switchad + pincong.rocks.a-a5 + gamer.com.tw!.a-mercy-d:not([href*=".gamer."]) + +159i.com .a1.style25 + +159i.com.a1d + +159i.com .a2.style25 + +159i.com.a2d + +159i.com.a3d + +159i.com.a4d + thinkphp.cn.a6 + +chacuo.net.a96090 + speedtest.cn.aP-box + +lahoo.ca.a_af + hcbbs.com.a_cn_pb% + baixing.com.a_d_s_hidden_link6 +cnpingpang.com + sxpojie.top + jdbbs.com.a_h + +tropica.cn.a_mu12 + muchong.com.a_subject[href^="creditshow."] +163.com.a_topad + +92ghai.com.a_xiu_t + ishuhui.com.a_xx_d + +159i.com.aa + +porn5f.com .aa-dd-body +qq.com .aaddvv__list% + +techug.com + +webhek.com.aatb# + china.com.cn + +159i.com.ab + +huya.com .ab-content +jd.com .ab-goods + +huya.com.ab-wrap + vpser.net.ab_cpb + vpser.net.ab_cpr + jiyingdm.com.abcde + yesky.com.abox + w3cschool.cn +.abox-item + 3dmgame.com .abstergo + +lzdcctv.cn.ac_pc + +2345.com .act-market + +2345.com.act-openJ-mask + +2345.com.act-search-tab + +2345.com .act-yguang +qq.com +.action_ad) +teachinghand.com.actions__wrapper + wezhicms.com .activity + rising.cn .activity-ad + +xc6b.com .activity-box! + hao.rising.cn .activity-gt; + zuimeia.com(.activity-poster:not([href*="zuimeia."])$ + +2345.com.activity-skin-rtrig# + +2345.com.activity-skin-trig< + bilibili.com(.activity-slider[style="width: 1220px;"]q +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.activity_iframe_container! + +2345.com.acts11-sidefixed„ + +house.jschina.com.cn +honglingjin.co.uk +cq.xinhuanet.com +baiduyunpan.net +landiannews.com +pharmnet.com.cn +bbs-mychat.com +chinaqking.com +chinatimes.com +chinatruck.org +cnsoftnews.com +discuss.com.hk +isharebest.com +lieyunwang.com +weather.com.cn + 52youpiao.com + loveshang.com + people.com.cn + acgbenzi.com + fengniao.com + gongkong.com + henan100.com + ipeen.com.tw + lawtv.com.cn + neotv.com.cn + u-car.com.tw + ziyuanyo.com + 234fang.com + 3gsc.com.cn + cnforex.com + codepub.com + eastday.com + newsmth.net + tv.sohu.com + xianbao.fun + +chinaz.com + +douban.com + +itavcn.com + +jrj.com.cn + +ltn.com.tw + +maxpda.com + +moxing.net + +njdaily.cn + +pixnet.net + +toolfk.com + baike.com + cdyee.com + cxryun.cn + dav01.com + djwma.com + dmzj1.com + dzwww.com + fx112.com + iciba.com + ifeng.com + mm111.net + mvcat.com + ncdiy.com + pc0359.cn + ptbus.com + qncye.com + r3sub.com + sogou.com + yb983.com + yesky.com + yiche.com + yqxxs.com + zhihu.com + +100ec.cn + +159i.com + +1905.com + +22vd.com + +acg13.cn + +dmzj.com + +dngz.net + +focus.cn + +lncn.org + +luo8.com + +pptv.com + +yawin.cn +2345.cn +72g.com +jojf.cn +kumi.cn +sozi.cn +ydss.cn +8se.me +acg.bz +ce.cn.ad + +cqmmgo.com +.ad-160x40* + ihome99.com + 19lou.com +.ad-190x60 + +cqmmgo.com +.ad-230x60* + ihome99.com + 19lou.com +.ad-300x30  + eprice.com.tw .ad-320x100Ë" + eprice.com.tw .ad-336x280-g" + eprice.com.tw .ad-970x250-g! + eprice.com.tw .ad-970x90-g + 19lou.com +.ad-980x40 + ihome99.com +.ad-980x60* + ihome99.com + 19lou.com +.ad-980x90 + mobile01.com .ad-adblock + +manwa.me .ad-area > a + +feng.com .ad-aside + imgse.com +.ad-banner + baofeng.com .ad-bar-l + baofeng.com .ad-bar-r + html-js.com .ad-blank + baidu.com .ad-block-1! + lenovo.com.cn .ad-calender + easou.com +.ad-charge + ylnet.com.cn.ad-con, + +newtalk.tw + phbzj.com .ad-container  + +mnews.tw.ad-container-pc% + +mnews.tw.ad-container-pc-only + +cqmmgo.com .ad-cycle +sm.cn.ad-dot-container( + pc0359.cn +pc6.com .ad-download + bilibili.com.ad-e1$ + eprice.com.hk.ad-end-article + bilibili.com.ad-f + +mgtv.com .ad-fixed-bar +qq.com.ad-foot! + eastday.com.ad-foot-right) + pixiv.net.ad-footer + .hover-item + baidu.com.ad-list +qq.com .ad-long-pic +daydaycook.com.ad-mask' +chunyuyisheng.com.ad-modal-left- + +cqmmgo.com + 19lou.com.ad-place-logo" + baidu.com.ad-platform-tips + baofeng.com .ad-pop-wrap! + +xueqiu.com.ad-right-aside + iqiyi.com.ad-seed + +qidian.com .ad-shell + +liba.com .ad-split + baidu.com .ad-taishan +qq.com .ad-text-box' + ithome.com.tw.ad-text-in-middle +39.net.ad-tl + yahoo.com.ad-tl2b + e0838.com .ad-txt + a + baidu.com .ad-vip-close% + baidu.com.ad-vip-close-bottom! +sm.cn.ad-wolong-container +ccoo.cn .ad-wrap1 + +cztv.com.ad003 + +mytheme.cn.ad01 + ifeng.com.ad05 + ifeng.com.ad06 + ifeng.com.ad07 + ifeng.com.ad08¼ +beijing-air.com +qingdaonews.com + 10jqka.com.cn + foodmate.net + hepuwang.com + bio1000.com + +actoys.net + 18183.com + jjwxc.net + ncdiy.com + tgbus.com + +gter.net.ad1 + ifeng.com .ad1000-2 + ifeng.com .ad1000_2 + ifeng.com .ad1000_box + +chexun.com.ad1100 + +ishowx.com.ad1160n +chemicalbook.com +qingdaonews.com + china.com.cn + foodmate.net + hibiquan.com + c114.com.cn.ad2™ + ifeng.com.ad200-2N +chemicalbook.com +nmgnews.com.cn + foodmate.net + sportscn.com.ad3 + 21uscity.com .ad300x60 + jokeji.cn +.ad360_280 + linuxde.net +.ad360x500 + +hupu.com.ad361-240-240* +weather.com.cn + foodmate.net.ad4  + +5imx.com.ad4:first-child + foodmate.net.ad5( + china.com.cn + foodmate.net.ad62 + cnqiang.com + jxedt.com + +sohu.com.ad640 +kumi.cn .ad64060Box + +52ch.net.ad6507 + ihome99.com + +cqmmgo.com + 19lou.com .ad650-60& + foodmate.net + +ting89.com.ad7 + +hupu.com .ad720-90 + +pujia8.com.ad740 + +chexun.com.ad794 + +ting89.com.ad8# + ifeng.com + +sohu.com.ad950 +pharmnet.com.cn.ad9502 + +danlan.org.ad98090) + +lyd.com.cn.ad:not(:nth-child(15))0 + sina.com.cn + hf365.com + +sohu.com.adA! + asmag.com.cn .adAsMainLeft + +sohu.com.adB + iqiyi.com .adBanner980 + sina.com.cn.adC# +familydoctor.com.cn.adExtra + sina.com.cn.adF + sina.com.cn.adG + sina.com.cn.adH +niaogebiji.com .adImgBox + baidu.com.adLog + +2345.com .adMainBg# + +hao123.com.adMainMiddle-box + cnblogs.com.adPopup + ifeng.com.adR01 + +chinaz.com.adSpon + imnks.com.adTags! +jingyanlib.com .adToastWin + baidu.com .adTopImg + +cztv.com.ad_003% + +vsping.com + ifeng.com.ad_01  + sina.com.cn .ad_01_center + sina.com.cn .ad_01_left + sina.com.cn .ad_01_right + ifeng.com.ad_04 + ifeng.com.ad_09 + szonline.net .ad_1000_90 + ifeng.com.ad_12 + 51wangdai.com +.ad_123_AD + jurong.cn .ad_190_60_5s + ettoday.net.ad_300 + 1688.com.au .ad_300_p +eol.cn.ad_490 +qq.com +.ad_670_90( + ettoday.net + +cna.com.tw.ad_970 + +hupu.com.ad_980 + +cheshi.com +.ad_9801054 + leiling.org!.ad__single-double-rectangle-wrap + huanqiu.com.ad_all# +download.csdn.net +.ad_area_1 + +csdn.net .ad_class‚  + gamersky.com .ad_cmt_cont + gamme.com.tw.ad_down + benxiang.com .ad_duilian! +smm.cn.ad_front_container" + +tgfcer.com.ad_headerbanner + ettoday.net .ad_in_news +le.com .ad_layer + benxiang.com.ad_ld + +duba.com.ad_leftTip_out + +miercn.com.ad_list + +78dm.net .ad_logor + sina.com.cn .ad_main_top +udn.com.ad_mask + +duba.com.ad_middleModal; +comefromchina.com".ad_navtext_11 > li:nth-child(n+2) + ruian.com .ad_opera + +hb163.cn .ad_panel_980 +gmw.cn.ad_pics/ + itkeyword.com + +itboth.com .ad_pop_left3 + itkeyword.com + +itboth.com.ad_pop_left_txy + ettoday.net .ad_readmore + sogou.com +.ad_result+ +ouyaoxiazai.com + +9upk.com.ad_show! +ouyaoxiazai.com +.ad_show_1 + +ghxi.com .ad_single_12% + novipnoad.com.ad_single_title +nongjitong.com.ad_sms + fx168.com .ad_teshu + +tgfcer.com.ad_text + +dmzj.com.ad_th + pchome.com.tw +.ad_triple& + +pjtime.com + cs.com.cn.ad_txt + bcbay.com .ad_txt_box, +stheadline.com + +ltn.com.tw.ad_w300 + +itavcn.com .ad_wordxin + baike.com .ad_xuanban + +zhijia.com.adb + ifeng.com.adbest +motobuy.com.tw.adbig  + sina.com.tw .adbig300_mid + alypw.com.adbkk( +appledaily.com.tw.adblock_splashá +epochtimes.com + eastmoney.com + phoenixtv.com + xineurope.com + am730.com.hk + +chinaz.com + +lantian.tv + +maoken.com + 17173.com + cdyee.com + ifeng.com + pyccoo.cn + yesky.com + zdzdm.com +hsw.cn.adbox + plays01.com .adbox-bg + ifeng.com.adbox03" +qq.com.adbutton-Aritcle-QQ +qq.com.adcent + ceiea.com .adclass2019 + douyu.com .adcontainer3 + hao.rising.cn + +vpgame.com + +52pk.com.add + +78dm.net.add-980& + +soufun.com + +fang.com.add1200 + chinanews.com.add3 + chinanews.com.add4 + 3dmgame.com.add_ +x6g.com.addd  + kuaihou.com .address_like + mydrivers.com.adds + 3dmgame.com .addvide300 + +chinaz.com .adfixbug$ + +duba.com + +uu114.cn.adfixed. + +1kkk.com +dm5.com +dm5.hk .adform_1. + +1kkk.com +dm5.com +dm5.hk .adform_2 + xineurope.com.adft„ + +92wy.com .adhengfu + huanqiu.com .adindexList# + +13tv.top + +sina.com.aditem + jsphp.net .adleft-wrap + +cww.net.cn.adlinkL + +cww.net.cn.adlinkR + ca168.com .admarket + mobile01.com .admicrobtn# + hackhome.com +ccoo.cn.adn + typecho.wiki.adn-ar + +gaokao.com .adout116 + bigear.cn .adpicright + molure.cn.adplan + ifeng.com .adpubpic + doc88.com.adpx250 + gamme.com.tw.adreadñ +appledaily.com.tw +chinamedevice.cn +helloavgirls.com +hkjunkcall.com +tongren.gov.cn + doyouhike.net + meiyouad.com + cnodejs.org + danyang.com + haokan5.com + +164580.com + +appinn.com + china.com + hc360.com + moe48.com + sogou.com + uc123.com + yeeyi.com + +0594.com + +e3zy.com + +sina.com + +wokao.co +2234.cn +up01.cc +qq.com.ads + +appinn.com.ads-m +360.cn.ads-pic$ +shejidaren.com.ads-post-foot + +5icool.org .ads300_show +eeyy.cc.ads650 + cntronics.com +.ads970-90 +disp.cc.ads_bot_block + xhzyw.com .ads_bottom- + netflav.com.ads_head_banner_container  +chinamedevice.cn.ads_img! +chinamedevice.cn .ads_img1, + netflav.com.ads_video_overlay_mobile + cotton.pink .adsbyfalcon4 +softwarebrother.com + 199it.com .adsbygoogle' +m.kuaidi100.com.adsbygoogle + a? + +chtoen.com-.adsbygoogle:not([data-ad-slot="9717665976"]) + aibing.cc.adsense" + lenovo.com.cn .adsense-wrap + 3dmgame.com.adshop + +qinbing.cn .adspic_mid2 + +av.movie .adss-160x6003 + +chinaz.com + +ofweek.com + +yawin.cn.adtext + 92sucai.com.adtg2  + +gdmm.com.adtop > .module! + +nfuwow.com.adtopnewnewbox + wed114.cn.adtwo¦ +chinanews.com.cn + silver.org.cn + chinairn.com + silisili.in + solidot.org + 114la.com + dav01.com + qncye.com + +78dm.net + +qzwb.com + +ylmf.com.adv! + xinhuanet.com .adv-column2 + sportsv.net.adv01 +qq.com.adv1000 + +mydown.com.adv2 + xinhuanet.com.adv3 + myhack58.com.adv32 + it165.net.adv728a + it165.net.adv728b + +123pan.com +.advBanner + dshangyan.com +.advHeader + +sohu.com.adv_960 + +jjckb.cn .adv_ment + kaifu.com +.adv_slide; +autohome.com.cn + loveshang.com + +jdzj.com.advbox + +jyacht.com.adve_3 + +jyacht.com.adve_4 + lenovo.com.cn .adver-bg  + +anjuke.com.adver-content( + baidu.com.adver-one-item-wrapper + +360che.com .adver1000_60Æ + +360che.com .adver1000_65 + +360che.com .adver250_250 + +360che.com .adver300_150 + +360che.com .adver300_250 + +360che.com .adver600_80 + cpnn.com.cn .adverd-top˜ +chinabidding.com.cn +shangyexinzhi.com + eastmoney.com + chenjiayu.cn + likefont.com + ieforex.com + zp365.com +laod.cn +ce.cn.advert + +csdn.net +.advert-bg$ + +xmfish.com.advert-entry-list + +liba.com .advert-l + +liba.com .advert-r  + +qudong.com.advert_bottom; +tieba.baidu.com + +hao123.com + +sohu.com +.advertise& + bitauto.com.advertise-nav-downm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.advertise_right_indexV + douyuex.com + iviewui.com + hkepc.com + juejin.cn + +bccn.net.advertisement' + +3d66.com.advertisement-carousel$ + +mydown.com.advertisement_pic# +chinacar.com.cn .advertising% + +10086.cn.advertisingOther_img% + speedtest.cn.advertisingSpace +sm.ms.advertising_1 +sm.ms.advertising_2 + ifeng.com.advmark\ + tongxiang.net + +afzhan.com + +cngold.org + +hbzhan.com + +panjin.net +qq.com.advs + it165.net .advyello + +itavcn.com.advzone +qq.com.adword1 + 123.sogou.com + web.sogou.com .adword > a! + meizhou.com.adwords + div + dav01.com .adwraper + gamme.com.tw.adwrpt + jdbbs.com .adyihifi + baidu.com .afd-item + +aotter.net .ag-revenue! + weiyun001.com .agency-list + dimtown.com.aggd9 + weekendhk.com + gotrip.hk + nmplus.hk +.ai_widget + wmzhe.com +.aibyte_ad + +moe.best.alert+ + 5217kdy1.xyz.alert-success + center + +eetop.cn.alert_windowsB + +ali213.net0.ali-photo-carousel-pic > li > a[href*=".fhyx."] + +phpvar.com.aliPic +sm.cn.ali_row[ad_aid]/ + 18moe.org.alignnone[alt="æ�°é¥­å¹¿å‘Š"]0 +jianhuadaily.com.alignnone[width="1050"]/ +jianhuadaily.com.alignnone[width="300"]/ +jianhuadaily.com.alignnone[width="800"]# +caibaojian.com .aliyun-inner + cnfol.com.allAd + bkill.com .alliance-ad + +pilifx.com.alltopi + 18board.com + 18board.net + 18p2p.com + +18p2p.tv..altbg2 > td[width="20%"] > a[target="_blank"]T + 18board.com + 18board.net + 18p2p.com + +18p2p.tv.altbg2 > td[width="25%"]T + 18board.com + 18board.net + 18p2p.com + +18p2p.tv.altbg2 > td[width="33%"]T + 18board.com + 18board.net + 18p2p.com + +18p2p.tv.altbg2 > td[width="50%"] + gugeys.cc.am-g$ + +maguays.cc.animate-bounce-up + gufengmh.com .animated + +cctv.com +.anime_ewm + +123pan.com .ant-carousel + jspoo.com.apd" + qzone.qq.com.app-recommendÆm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.app_forum_top_nav_tab! +fanyi.baidu.com +.appbanner + +keywin.org .appdownload5 + +hao.360.cn#.applist > .app:nth-last-child(n+2)# +tiantianzhibo.com +.apprecomm + +mydown.com .aqDownload + ecpoc.com +.arcbodyadC + sitv.com.cn + gamefy.cn#.area > div[style="float:left"] > a- + +6fzd.com + +fzd3.com +eyy5.cn.area13 +wenku.baidu.com.area[href*="/adclick?aid="] + +gfan.com.art-ad' +pconline.com.cn.artBtmForCustom + bkjia.com .art_rightad1# + woshipm.com.article--heroAd% + ikjzd.com.article-banner-wrap$ + woshipm.com.article-bottomAdg + +acwifi.netU.article-content > div[style="float: none; margin:10px 0 10px 0; text-align:center;"]$ + cnbeta.com.tw.article-global +sina.cn .article-sax; + fastadmin.net&.article-section + div .img-responsive! + woshipm.com.article-topAd6 +sm.cn).article.ali_row + #sc ~ .article.ali_row + +xvna.com +.articleAD + xuite.net .articleExtAdA + eprice.com.hk,.article__content > div[style*="text-align"]. + 360kuai.com.article__content__yyconfig' +toy-people.com.article_insertAD/ + toutiao.com.article_link[data-tag="ad"]! + +24en.com.article_part_top + ssr.tools.asb2 + zhujiwiki.com + ssr.tools.asb-post-footer +lzep.cn.aside. + btyingshi.com.aside > .card:last-child + +78dm.net +.aside-add5 + baidu.com$.aside-inner > div[style*="height:"]- +jingyan.baidu.com.aside-pro-container + fx678.com .aside-store + oschina.net .aside-topjj; + +anquan.org).aside_profile_activity > div:first-child + showtv.com.tw.ask18% + acgking.com + dbtmn.com.asst% + vx666.com.async[href^="http"] + dayanzai.me.at1 +163.com.at_item +so.com .atom-adv( + sitv.com.cn + gamefy.cn.att-bar" + +chexun.com.attr-outside-ad& + lightnovel.us.author + .poster + volcore.xyz.avd1 + volcore.xyz.avd2 + +liba.com .avdert1190  + dcloud.net.cn .aw-ad-item1 + pincong.rocks.aw-mod > a[target="_blank"] + tophub.today.ax& + +read01.com + kknews.cc.axslot + extfans.com.b-ad-1: + newsmth.net'.b-content > #sogou_banner:nth-child(3) + +360kan.com +.b-ifradjx + gamer.com.tw +.b-list_ad9 + baidu.com(.b2c-universal-card-product-item-wrapper + +miliav.com.b300 + pinshan.com.b_adv + pinshan.com.b_adv2H + +bing.com8.b_algo:has(.rms_img[src*="/th?id=OADD2."][src$="21.2"])Û6 + +bing.com&.b_algo:has(.rms_img[src*="=AdsPlus"]) + cn.bing.com .b_bza_pole' + +120ask.com.b_right > div[style]* + 168gamer.com + 168gamer.net.b_tad + pinshan.com .b_taobao + expreview.com.babaBox' +secretmine.net.background-cover + china.com.baidu" + hao.rising.cn .baidu-banner +17k.com .baiduBox + flyzy2005.com .baidu_ad + mydrivers.com +.baidu_box + brushes8.com .baidugg580 + hc360.com.baidutuiguang + +acfun.cn +.banana-ad° +guitarchina.com +woniuyulew.com + eastmoney.com + junk-call.com + btzx2017.com + v2rayssr.com + xingkbjm.com + 3gsc.com.cn + netbian.com + qiuziti.com + solarbe.com + +0du123.com + +aguitar.cn + +gz0668.com + +iguaji.com + +jia360.com + 591hx.com + acgnx.net + e0514.com + iqiyi.com + kdnet.net + rain2.top + +100ec.cn + +24en.com + +acgnx.se + +hk.on.cc + +tiboo.cn + +zyue.com +jojf.cn +kumi.cn.banner + +hxnews.com +.banner-90 + +csdn.net.banner-ad-box + cnool.net .banner-ad001  + bilibili.com .banner-card' +iwan.baidu.com.banner-container& + +123pan.com.banner-container-h5& + +123pan.com.banner-container-pc + baidu.com .banner-cover + cgown.com +.banner-ggA + +acfun.cn1.banner-href[href^="http"]:not([href*=".acfun."])1 + +hupu.com!.banner-item[data-ad-params*=":"] + crsky.com.banner-leader) +wenku.baidu.com.banner-more-title + +th-sjy.com .banner-post + smzdm.com .banner-stuff& + sogou.com +qq.com .banner-vda$ +firefoxchina.cn .banner-words2 +fanyi.baidu.com + longzhu.com .banner-wrapf +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.banner-wrapper* + baidu.com.banner-wrapper-defensive  +news.cn2che.com .banner01 + +sojson.com.banner1  + jinhua.com.cn .banner1200i +guitarchina.com +beihaiting.com +site.baidu.com + +hao123.com + +sojson.com +91.com.banner2- + tingshuge.com + +ting89.com +.banner250 + jinhua.com.cn +.banner260 + iqiyi.com.banner3, +guitarchina.com + iqiyi.com.banner4 + jinhua.com.cn +.banner465/ + tingshuge.com + +ting89.com .banner688_1/ + tingshuge.com + +ting89.com .banner688_2 + +aguitar.cn.banner7 + jinhua.com.cn +.banner935 + iqiyi.com +.banner980 +sina.cn .bannerAD + +afzhan.com +.bannerAdvD + netflytv.xyz + +netfly.fun + netfly.tv.banner[href^="http"]) + jiegeng.com +qq.com .banner_1111 + jiegeng.com .banner_1212 + aipai.com +.banner_90 + +huamu.cn +.banner_Ad +900.la .banner_ad1H + foodmate.net + oschina.net + ksbbs.com + kshot.com .banner_box$ + +sinami.com.banner_centerLeft% + +sinami.com.banner_centerRight$ + baidu.com.banner_center_adv2 + +szhk.com +.banner_dt +39.net .banner_gÇ + vod1769.com .banner_img, +fanyi.baidu.com.banner_img_container  + newcger.com .banner_recom% + +sinami.com.banner_rightBottom + 591hx.com .banner_w& + vanpeople.com.banneradv-newbox + cnblogs.com +.bannerbar + baidu.com .bannerdown  + +nfuwow.com.bannermid3box +javlibrary.com .bannerqq, + yazhouse8.com + baozimh.one.banners  + +efu.com.cn.banners-top-b! + +efu.com.cn.banners-top-x2 + +fang.com.bannger_inbox + +mscbsc.com.bao1 + +hao123.com .bar-text  + +d1xz.net.base_ad_300_250 + +d1xz.net.base_ad_640_90 + +d1xz.net.base_ad_960_90 + qncye.com.bbaner + +gd163.cn.bbs_ad+ + +hefei.cc.bbs_app_fk > a:first-child# +hualongxiang.com .bbs_box_gg: + +nick18.com(.bbs_entry_wrapper > table[width="100%"] + jitashe.org .bc_side_250 + bcquan.me.bcqad + baidu.com .bd-aside-ad + hao.rising.cn .bd-lmhot + +jrj.com.cn .bd.pa10.bgn + +newxue.com.bd500 +33am.cn +.bd_980_90& + starbaby.cn + +52tian.net.bdad +1010jiajiao.com.bdgg& + +bodu365.co.bdnav + .focus_show + baidu.com .bds-list-ads + pinshan.com .bea_adv2 + eastday.com .beforegg + smzdm.com.beiwo& + downxia.com +3h3.com.bendown& + javhd.com.benefits-list-holder + +bodu365.co.besideC + muchong.com0.bg > .wrapper:nth-child(14) > .forum_Post_index + novipnoad.com.bg-ad) + weiyun001.com.bg-box > .slide-box + uc123.com .bg-wrapper + +duba.com.bgOpen + +asus.com .bg_block + 40407.com.bg_l + 40407.com.bg_r + douyu.com.bglink' +gdzjdaily.com.cn.big_news + div + +sgcn.com.bigaimg+ + 114la.com + +ylmf.com.bighd-top-bar + haote.com +.bigmainIn! + bilibili.com .bili-dyn-adsZ + bilibili.comF.bili-video-card__wrap > a[href^="http"]:not([href*=".bilibili.com/"]) + rkanr.com.bill +gywb.cn.bill-vertical + chinairn.com.bizrpt% +pconline.com.cn.bk_art_banner* + +erji.com + +erji.net.black.y-style> +pconline.com.cn'.blk-img[href^="http://best.pconline."]! +pconline.com.cn +.block-jcz! + pilipili.site .block-salesÓ4 + ifeng.com#.blockR.ipad_none:nth-last-child(2) +boo.tw.blockUI? + +hvhbbs.com-.block[data-widget-definition="SwiperWidget"]  + oschina.net .blog-left-ad+ + +codexiu.cn.blog-twitter:first-child + house.qq.com.bm + +tropica.cn.bm.a_c1D +ydss.cn5.bm.bml.pbn > table > tbody > tr > td:nth-child(-n+2) + jlmhk.com.bn% + ftchinese.com +ft.com.bn-ph  + +cool3c.com.board-sidebar +qq.com .body-Top-Ad< + creaders.net(.border_b > tbody > tr > td[height^="2"] + +10fang.com.botad + +gter.net.bottom  +firefoxchina.cn .bottom-0" + redian.news.bottom-0.fixedF +firefoxchina.cn +muzhi.baidu.com + +hao123.com.bottom-banner& + dianping.com.bottom-contrainer$ + qizuang.com.bottom-fadan-box + +liba.com .bottom-pic + +histock.tw .bottom-right + ilxdh.com .bottom-show9 + zhongkao.com + +zuowen.com + aoshu.com +.bottomImg& + lenovo.com.cn.bottom_ad_ban_bg# + lenovo.com.cn.bottom_ad_fla+ + +nfstar.net + +kt51.com .bottom_fixed1 + 360kuai.com.bottom_rectangle_gg_outer_box& +freehao123.com + +13tv.top.box; + cb.com.cn*.box > a[href^="http"]:not([href*=".cb."])@ + +enread.com..box > ul[style="width:100%;overflow:hidden;"] + hao123.sh .box-banner% + 114la.com + +ylmf.com.box-hot +pconline.com.cn.box-jcz# +dl.pconline.com.cn .box-push$ + soft-down.net.box-top-xiazai + +bjcxqd.com .box-vdgd + +csdn.net.box.hot + lolshipin.com.box2 + mobanwang.com +.box960x90 + +jthysh.com.box980? + ifeng.com..box_list_pic > a[href^="http://dol.deliver."] + +duba.com .box_shopping + fx678.com +.box_video + +nxing.cn .boxclose" + kehuan.net.cn .bread_728x90 + cgown.com.breadcrumb-gg" + 7junshi.com.breaknovel-ave +le.com.broadcast-adv + +hao123.com .browsertip( + +masuit.com + +ldqk.xyz +.bs-slider + anywlan.com .bscekvofc_o + qqxiazai.com .bt_abtn2  + +lotour.com +bt.cn.btad +163.com.btm-ad% + ifenpaidy.com.btn-copy + .btn% +xitongzhijia.net .btn-dl_swift< +firefoxchina.cn +firefox.com.cn.btn-email-show + p0 + pornbest.org +ptt.sex.btn-group + .row + cssmoban.com .btn-host +2234.cn.btngsm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.bus-top-activity-wrap +so.com .busi-article" +qq.com.business-Article-QQÜ) + btime.com +brtn.cn .business-box* + btime.com +brtn.cn.business-item% + baidu.com.businessvip-wrapper + cool-de.com +.bustopads + +ithome.com +.bx-recom2 + +porn5f.com .bxslider; +hao.lenovo.com.cn +hi.lenovo.com.cn.bxslider-wrap' + +byxx.com.byzwPC-banner-ADscroll + kuaihou.com.bz' + downmsn.com + +52pk.com.bzClick + +downyi.com .bzYouDao + +pcdown.net.bzxz + +mgtv.com .c-95060-top0 +sm.cn#.c-container > div[data-sc*="etao"]* + baidu.com.c-container.ec-container + +3987.com.c-gg3 + baidu.com".c-result[data-tpl="adv_wenku_fc"]  + +suning.com.c2c-recommend +myexception.cn.c_a_3 + cnblogs.com .c_ad_block + kdnet.net .c_spread + +lenniu.com.caClass +sina.cn.callApp_fl_btn" + +hao.360.cn.cangbao_redbags + +duba.com.car_ads3 +chinanewsx.com.card-body > .my-3:last-child + steamstats.cn +.card-link/ +yunpanziyuan.xyz.card-site-info + .card9 + +itdog.cn).card[style="padding: 6px 10px 5px 5px;"] + 16888.com .cardataclass + +byxx.com.cataADL + 141jj.com;.category-wrapper > ul > div[style="line-height:24px;"] > a + baidu.com.cbg-Ads2 + mpyit.com!.cboxElement + a[target="_blank"]C + mpyit.com2.cboxElement + center[style=" padding-top:10px; "]* + cnbeta.com.tw.cbv:not(#cb_share) a + meizhou.com.cc_z1 + alypw.com.ceadd + +mabiji.com.celanC + +vsping.com1.cell > span > a[href]:not([href*=".vsping.com"]) + iqiyi.com +.cell-left + iqiyi.com .cell-right + sina.com.cn .center-pdps" + sina.com.cn.center-pdps-02 + +dhaomu.com.ceo-ad + +dhaomu.com .ceo-footer-h# + hao.rising.cn.channel-adimg( + eeskill.com.channel-featured-adv& + +enread.com.channel-nav > .back  + +douban.com.channel_promo + +xc6b.com .chao_ggw + longzhu.com .chatroom-ap + +2345.com +.chc-dzoem$ +firefoxchina.cn .chip-banners + +52ch.net.chn_pb! + baidu.com.chunwan-wrapper + qzone.qq.com.ck-act +dm5.com +dm5.hk.cl760 +dm5.com +dm5.hk.cl970  + fpdisplay.com .class_adv1= + +acgsou.com + 36dm.club + +36dm.com.clear.text_center5 + +360doc.com#.clear360doc[style^="padding-top:"] + sina.com.cn.clearAd( + +caikuu.com.clearfix + .recommendÈ( +tieba.baidu.com.client_ad_banner+ +tieba.baidu.com.client_ad_topBannerN +tieba.baidu.com7.client_ad_topBanner + .statistics_img_view + li[class]/ +tieba.baidu.com.client_ad_topBanner_all„ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com-.close_btn[src*="/adsense/"] + div:last-child + jokerlu.com .closebox + zouaw.com .cloudbox + chaomi.cc.cm-ads +so.com.cmclk + image.so.com.cmitem + +2345.com .cmoe-nxh-dx + +2345.com .cmp-game-new +bbs.xmfish.com.cmp_v  + +hao123.com.cmsad_wrapper& + +hao123.com +91.com +.cn_banner + +hao123.com.cn_tips + cntronics.com +.cnt-ads90 + +2345.com .cnxh_box + +hlgnet.com.co_ad + +hlgnet.com.co_ad3! +vjmedia.com.hk .code-block + +2345.com .coem-dzhcn  + lenovo.com.cn .coffee-top` +www.wenxuecity.comF.col > ul:not([id]) > li > a[href^="http"]:not([href*=".wenxuecity."]); + +itdog.cn+.col-12 > .card.mb-3[style="padding: 5px;"]_ + +itbaoku.cnM.col-lg-12[style="padding-left: 0px;padding-top: 15px;padding-bottom: 15px;"]N + +big-cup.tv + +g-cup.tv0.col-md-12.text-center[style="margin-top: 3px;"] +ezprice.com.tw .col-md-33 + sitv.com.cn + gamefy.cn.col-vlist-l > span; + +91hs.top + +hsex.men.col-xs-12 > a[target="_blank"] + expreview.com.colbaba@ + 2dfan.com + galge.fun".collapse > a[href*=".taobao.com"]# + xinhuanet.com.columBox.book1 +jiakaobaodian.com.com-side-car-sales-rank< + www.kafan.cn(.comeing_show_box[style="padding:10px;"]& +proewildfire.cn.comiis_nav ~ a + image.so.com .commerce% +wenku.baidu.com.commerce-flow! + image.so.com .commerce_txt +so.com.commercialCell! +smm.cn.common-jinzhu-wrap< + iciba.com+.common-top-nav-item:not([href*=".iciba."])% +qingdaonews.com.commonrightad + +2345.com.comp-logo-wall% + +2345.com.comp-normal-navigate + +huya.com .component-ab% + meituan.com.component-downtip3 + sitv.com.cn + gamefy.cn.con > a:last-child' + +qiuw.com.con > a:nth-child(n+2) + maolihui.com.con-ad + +ithome.com +.con-recom + ifeng.com.conRgg1 + +aihami.com.conText > div[style*="width:"] + +360che.com .con_banner + 40407.com.con_tj3 +msn.cn%.consumption-page > above-river-block6 +firefoxchina.cn +firefox.com.cn .cont-promote  + ifeng.com.cont_bottom_Yy% + ifeng.com.cont_bottom_YySmall/ + 188soft.com.cont_d_l_dow + .down-center + u-car.com.tw.contad8 +dragon-guide.net .container > .gutter:first-child$ + +zxzjtv.com.container > .none) + +ygdy8.cc.container > a[href^="/"]“4 +ssyy.ee%.container > a[target="_blank"] > img5 + vpsdx.com$.container-fluid > .gsfha3 > .gsfha39 + +78dm.net).container-fluid > a[href*=".taobao.com"]R +live.bilibili.com9.container-wrapper[style="height:180px;min-width:1280px"]R +live.bilibili.com9.container-wrapper[style="height:446px;min-width:1280px"]R + baidu.comA.container:has( > .bottom-section > .item_voice_room[data-yysid])P + baidu.com?.container_frs:has( > .voice_room_card_frs[data-url*="yylive"]) + 423down.com .content > a6 +www.wangjing.cn.content > div[style*="980px;"]6 +serengeseba.com.content > li > a[href^="http"]0 + +ddxs.vip .content > p > font[color="red"]& + 423down.com.content > p[style]5 + sspai.com$.content hr:nth-last-child(-n+4) ~ p% +mamibuy.com.tw.content-ad-spa + baidu.com .content-adv< + +it1352.com*.content-wrap > .hidden-sm:nth-child(-n+2) + ptbus.com +.content14 + +m4ff.com .content2  + p9.com.tw.contentRightAd+ + +lbyczf.com.content__default > .list8 +house.yahoo.com.tw.content_r > .rbox:first-child$ + bendibao.com.content_r_ad300. + +educity.cn.content_relate:nth-child(5)c +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .content_top + +aihami.com .context_adC + hao123.cn2.cool > tbody > tr > td[align="center"]:last-child + +duba.com.cool_textlink- + jiegeng.com.coolsite-recommend-linked + +ali213.net .coopSteambox0 + cnbeta.com.tw + thinkphp.cn .cooperation& + weike87.com + +cjw123.com.copy + 114la.com.corner + baidu.com +.corneradv# + 55188.com +51.com.couplet + +cps.com.cn .couplet-le + +21ic.com .couplet_ad2  + 51wangdai.com .couplet_gg" + 51wangdai.com .couplet_gg02 + +tigtag.com +.couplet_l + +zuowen.com .couplet_left + +tigtag.com +.couplet_r  + +zuowen.com.couplet_right + atyun.com .coupletbox + +caixin.com .course_box! + meishij.net.cp_body_right# + baidu.com.cpc-adv-container + makepolo.com.cpc_tgs + docin.com .cpro_mod +qq.com +.cps_inner` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .cps_wrap + +opdown.com .cq-recom + 51credit.com .credit-box + +nfuwow.com .crightbtad + bkill.com .cross-ad + expreview.com.crossAd! + +timedg.com.crossAdvertise" + +timedg.com.crossAdvertise2 + expreview.com.crossBa! +sm.cn.crumb-link + .other + iplaysoft.com .crumb_ad: + +preface.ai(.cs-sidebar__inner > .widget_media_image; + sogou.com +qq.com .cs_dropbox[pbflag="xialaresou"]< + 123.sogou.com + web.sogou.com +qq.com .cs_right_hw: + +csdn.net*.csdn-tracking-statistics[style$="250px;"]‹# + iqiyi.com.cupid-panel + div + +tigtag.com .custom-box021 + lxapk.com + lzacg.one.custom-html-widgetJ + boke112.com7.custom-html-widget > div[style="margin-bottom: -7px;"] + 51wangdai.com.cx_ad2 + 51wangdai.com.cx_xx_lis_c01_right_lis_c_ad  + manhuadb.com .d-flex.px-2 + qciss.net.d1 + iplaysoft.com.d250x90 + +hackhw.com.d336 + +hackhw.com.d336x2 +xgrb.cn .d_2016_ggw + dismall.com.d_money! + xingkbjm.com .d_textbanner +51.la.da-item +qingdaonews.com.da30050 +qingdaonews.com.da66050$ + twavking.com.da_single_video% + mobile01.com.dable-side_theme$ + lenovo.com.cn.daily-hotwords( + map.baidu.com.damoce-search-item + +acfun.cn.danmu-activity + +soufun.com .danmu_inbox + mtrend.cn .daogou-foot# + bbs.it168.com.daoh2 + .bor8. + sogou.com +qq.com.daohang-gamecenter_ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.dasense + +newxue.com .dashuggtop + +newxue.com .dashuggtop1 + +qinbing.cn.day + +ggcj.com.dbxf + games.qq.com .dc-kf_list% +chineseinla.com.deal_discount + +gz0668.com.deanad + +xydai.cn .deanad4s + 8ziyuan.com .deanadsside% + pan.baidu.com.decrease-active +sm.ms.detail-advert* + dytt5.net.detail-body > .fly-panel" +17qingsong.com .detail-gads% + 360kuai.com.detail-top-banner, + +ali213.net.detailAlertBox > a[style]- + 360kuai.com.detail__top__title__under# + eastday.com.detail_fixed_gg + +100ec.cn.detail_top_ad) +hoteastday.com.detail_top_mask_ad + +faxingw.cn +.detailadv + +faxingw.cn .detailgc) + eefocus.com.detailpage-rolling-ad* + xiadele.com.details-small-carousel + yicai.com.dfb-ad + elecfans.com.dfma2 +sina.cn#.dfz_sd_news > a[href*=".10086.cn"]  + +7654.com.dh2_bottom_wrap$ +wenku.baidu.com .dialog-ad-hdj +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.diamond-mall-aside, +fanyi.youdao.com.dict-download-guide! + bcbay.com.discuss + table +360.cn.div-adv + +itdog.cn.div-tg, + +itdog.cn.div-top > .row > div[class]/ +gs.chinanews.com.cn.div1000_2 + .div980 + +131458.com .divGuanggao; +nongjitong.com + typecho.wiki + +0597ok.com.div_ad—< + boyloves.fun + +boylov.xyz + +boylove.cc .div_sticky2 + duote.com +.dl-banner! +dl.pconline.com.cn.dlTips + +gfan.com.dl_AD + +jisuxz.com .dl_gaosu + silver.org.cn.dl_lt + +itavcn.com.dlggw-g  + moonbbs.com .dm-header-adA + +360doc.com/.doc360article_content > div[class]:first-child +qq.com .dongfengad) + ilxdh.com.double-eleven-container+ + ilxdh.com.double11-dialog-container( + +mydown.com.doubleDownload_bottom3 + +mydown.com!.doubleDownload_content > .middle + iqiyi.com.dove_ad + iqiyi.com .dove_banner + iqiyi.com .dove_videos + +3d66.com .down-adver' + +zol.com.cn.down-append-mol__pic + downza.cn .down-item-2 + +xiaopi.com +.down-list + mianbao99.com.downApp# + gamersky.com.downLoadGame-2- + gamersky.com.downLoadGame-2 + .dl_url + fx110.com.down_Hx + +52pk.com .down_adv  +lanrentuku.com +.down_btn2% + paopaoche.net.down_btn2.green + +gz0668.com .down_fixed + 188soft.com .down_gaosu" +xiazaizhijia.com +.down_list + +7x7n.com .down_load_1 + +7x7n.com .down_load_2- + dayanzai.me.down_show_intro_first_box + 18183.com .down_url. +greenxiazai.com.downbtn > a:last-child# +portablesoft.org .downcenter + 51xiazai.cn.downgs- + 3dmgame.com.downl_list + script + div* + duote.com.download-box:first-child- + +downkr.com.download-btn > .text-right+ + downg.com.download-list:first-child  + theworld.cn .download-now + wmzhe.com .downloader/ + pc0359.cn +9ht.com +pc6.com.downnowG + +downcc.com + +downyi.com + cr173.com + itmop.com .downnowgaosu* + cr173.com.downurl[data^="viewAds"]E + mydrivers.com0.drivers_right > div[style="padding-top: 10px;"]V + 123.sogou.com + web.sogou.com0.dropBox_list > li > a > span[style="color:red"] + +cztv.com .drop_down_ad* +redianyule.com +jxcn.cn .dsp_yxxf$ +digitimes.com.tw .dt-ad-block? + +51ztzj.com-.dtmwrap[style="height:75px;background:#fff"]£ + mydrivers.com + silver.org.cn + cpnn.com.cn + +my0538.com + +ofweek.com + chaomi.cc + cs.com.cn + dyhjw.com + y1118.com + +wendu.cn +kkj.cn.duilian + mydrivers.com .duilian2 + cpnn.com.cn +.duilianop + cpnn.com.cn .duilians + cncrk.com.dxzq + +2345.com .dzc-hn-cmoe +so.com.e-buss + +m.so.com .e_idea_list) +so.com.e_idea_wenda_detail_spread" +so.com.e_idea_wenda_spread + easou.com .easou_bannerÕ + +360kan.com .eb-rightbox +zhujicankao.com.eboxx" + baidu.com.ec-ads-container" + baidu.com.ec-fc-ad-results +sm.cn.ec-goods-list + baidu.com.ec-oad + baidu.com.ec_ad + m.baidu.com.ec_adv! + baidu.com.ec_im_container + ettoday.net.ec_menu + baidu.com .ec_pc_ad + baidu.com +.ec_sma_im + baidu.com .ec_wise_ad + easou.com .ecom-adTop  + baidu.com.ecom_pingzhuan' + baidu.com.ecomad-banner-loading + 19lou.com +.editor-ad, +wenku.baidu.com.edu_class_pop_dialog + playno1.com.eis_adv& + playno1.com.eis_adv + .eis_mtm + playno1.com .eis_adv2! +www.playno1.com +.eis_box_s5 +ncno1.playno1.com.eis_box_s > div:first-child. + +fuyang.net.eis_fbox_260:nth-child(n+3) + +fuyang.net .eis_fbox_980h + playno1.comU.eis_mtm[style="border-top:1px dashed #CDCDCD;padding-top:10px; padding-bottom:15px"]% + backchina.com.eis_subnav_area' + subaibai.com.el-dialog__wrapperG +unikoshardware.com-.elementor-image > a[href^="https://bit.ly/"]0 +unikoshardware.com.elementor-popup-modal + eprice.com.tw .emome-ad + +huya.com.end-ab-banner + +huya.com .end-ab-wrap$ +firefoxchina.cn .engine-jokes + +hao123.com.enter1& + 423down.com.entry > p > strong9 + 423down.com&.entry > p[align="center"]:first-child+ + 423down.com.entry > p[style$="111"]7 + 423down.com$.entry > p[style="font-size: 20px;"]1 + 423down.com.entry > p[style^="color:red"]C + 423down.com0.entry > p[style^="font-size"] > a[href*="/go."]& + 423down.com.entry > strong > p + +hackhw.com .entry-banner5 + idanmu.ee$.entry-body > div[class]:first-childU + iplaysoft.com@.entry-content + div[style="margin:-10px 0 0 0;overflow:hidden"]8 + +ghxi.com(.entry-content > div[style^="position:"]M +yangmaodang.org + reaff.com).entry-content > p[style="text-indent:0"]d + hexieshe.com + hexieshe.xyz + +xxshe.info2.entry-header + p + p[style="text-align: center;"]$ +ruanyifeng.com.entry-sponsorB + hexieshe.com + hexieshe.xyz + +xxshe.info.entry-title > p + niotv.com.epg_ad3 + niotv.com .epg_ad_list + epinv.com.epinv_b + epinv.com.epinv_f + shulink.com.er_g' + sinolub.com.erjlogo > .fl + .fl + bilibili.com .eva-banner + +2345.com.event1-hasList +58.com .ewmAdNew + +8264.com.ewmbox" +163.com.expoure_track_item1 +start.firefoxchina.cn + +huaban.com.extra% +fanyi.baidu.com.extra-banners + douyu.com .f-sign-cont‰& +user.qzone.qq.com .f-single-biz% + nwell.net.f14hui[width="25%"] + wantgoo.com.fab-ad + smallpopo.com.fabox# + wangjing.cn + +sgcn.com.fad + mobile01.com.fast-ad0 + soft-down.net + duote.com.fast-down-btn +qq.com +.father-ad? + +newduba.cn + iduba.com + +duba.com + +uu114.cn.fav_box + +yufile.com .fb_r > a + mydrivers.com +.fbh_float + baidu.com .fc-ad-line + baidu.com .fc-wenku-ad + +mydown.com.fcGg + +mydown.com .fc_anqDown. +zhujiceping.com.fcode > center > table + +jq22.com.fdad$ + +maxthon.cn.feast-gift-search! +id97.cc.fed-part-case > aB + +m.sohu.com0.feed-list-scoped > div[data-spm-type="content"]  +firefoxchina.cn .feed-pmt + smzdm.com .feed-stuff! +firefoxchina.cn +.feed-tm11( + kalvin.cn.fell_advertisement_box+ + 3dmgame.com.fell_left_advertisement9 + baidu.com + bdimg.com + tieba.com.fengchao-wrap> + baidu.com + bdimg.com + tieba.com.fengchao-wrap-feed +home.ifeng.com .fengjc02" + +hao.360.cn.festival_snatch! +firefoxchina.cn +.ff-banner +firefoxchina.cn.ff-open$ +cn-healthcare.com .fh_ad_wrap( +cn-healthcare.com.fh_advent_wrap" + +cngold.org.fiexdAdvsClosede +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.firework-wrapl +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.firework_sender_wrap + etnet.com.cn.firstAD. + douyu.com.fishop-anchor-recommands-box + hepan.com.fivead + +12306.cn.fix-yh) + silver.org.cn.fix_bottom_position* + silver.org.cn.fixbottom_wrap_small$ + jjmmw.com +qq.com .fixed-ad' + gitee.com.fixed-notice-messages + +bmlink.com.fixedBg + +5184.com +.fixed_bgg + +5184.com .fixed_bgg2 +163.com.fixed_foot_ad + gucheng.com +.fixed_img0 +bbs.actoys.net.fl[style$="float:right;"]9 + photopea.com%.flexrow > div[style^="padding-top:"] + qunar.com +.flight_ad< + ihome99.com + +cqmmgo.com + 19lou.com.float-ad-wrap3 +firefoxchina.cn + taoyitu.com .float-banner0 + +csdn.net .float-left > div[id^="dmp_ad_"]# +firefoxchina.cn .float-small  +3boys2girls.com .float3201 +bingdou.com.cn +hoteastday.com .float_ad + oschina.net .float_adbox# + +admin5.com.float_both_index + iqiyi.com +.float_div + iqiyi.com .float_div_r + jpsub.com .floatbar_div + +sojson.com +.fly-hezuo˜$ + followme.cn.fm-banner-social + cnblogs.com .focus-gg + zhongkao.com .focusBoxM + sports.qq.com8.focus_con > .item > a[href^="http"]:not([href*=".qq."])" + +lzdcctv.cn.focusmo + table + +10fang.com.foldcss +900.la.font-ad! + ikjzd.com.foot-advert-box + jisilu.cn.foot_ad  + chajia123.com .foot_dybox + 880sy.com.foot_gg+ + pan666.cn.footer > .containerNarrow  + +chaicp.com.footer-banner + iciba.com .footer_baidu  +image.baidu.com .ford-tag( +chineseinla.com.forum_banner_ads +125.la .forumlist_ad + 880sy.com .fot_btom + win7xzb.com .four_box> + +v2ex.com..fr > a[href^="https://www.digitalocean.com/"] +jingangjing.com.free" +jingangjing.com .free-popupu +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.frs_act_repost_wrapper_outter/ +tieba.baidu.com.frs_pb_leadapp_pop_show + ytbbs.com .ftop_ad_2016! +windows7en.com .fu-welcome + +duowan.com .full-banner# + suxzp.com.full-screen-cover + +guancha.cn +.full_nav1 + gamme.com.tw +.fullad_ad + editcode.net .fwinmask +962.net .g-962-ad) +so.com.g-a-noline[data-md*="sad"]  +onlinedown.net +.g-huodong +qq.com .g-qzp-bottom5 + weiyun001.com .g-side-r > a[onclick^="onLogs"] + jspoo.com .g-wznywzjs  + 360kuai.com .g4.undefined + mobanwang.com.g960% +126.com +163.com .gWel-promt +gmw.cn .g_adMain + smzdm.com.g_g/ + windowszj.net.g_slide_title > .feedback +taiwancall.com.gad +233.com.gads +233.com.gads2* + lenovo.com.cn + feeds.qq.com.game + baidu.com.game-adv-fram' +msn.cn.game-advertise-containers +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.game-head-game-info-wrapper +le.com.gamePromotionc +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .game_bannerq +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.game_banner_common_wapperd +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .game_content + juxia.com.game_img_listj +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.game_list_and_rankj +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.game_spread_thread` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .game_tab + +yxlady.com +.game_wrap + sina.com.cn.gamead1  + +qidian.com.games-op-wrap? + pcsoft.com.cn + win7w.com + +3987.com +drv5.cn.gaosu +3h3.com +.gaosu_div- + downxia.com +3h3.com.gaosu_down_divÒ +so.com .garllery_ad +115.com.gb-advs! + qzone.qq.com .gb-bill-area + gucheng.com .gcw_r_ad_pc  + gucheng.com .gcw_r_ad_pc2 + +toolfk.com.geekgay + +infoq.cn .geo-bannerï + chazidian.com + elecfans.com + liuxue86.com + cnwnews.com + juqingba.cn + sina.com.cn + 40407.com + 88148.com + china.com + ghjie.com + ifeng.com + iqilu.com + zsnews.cn + +1kkk.com + +5068.com + +qzwb.com +iask.ca.gg +morningpost.com.cn.gg-2 + baidu.com .gg-content$ + bilibili.com.gg-floor-module + iqiyi.com.gg-l + iqiyi.com.gg-r! +morningpost.com.cn.gg-stl" + ifeng.com + +5068.com.gg01" + hgitv.com + +5068.com.gg02 + hgitv.com.gg09B +chinamedevice.cn + antpedia.com +lcxw.cn +msdn.hk.gg1* +chinamedevice.cn + hgitv.com.gg12 + +sxqjdy.com.gg2 + angelweb.cn +.gg250x250 + iqilu.com .gg300250dbl +lcxw.cn.gg4 + +xiaoz.me.gg5 + iqilu.com .gg580140 + +xiaoz.me.gg6 + +5184.com.gg600 +zt5.com.gg_1 + +5173.com.gg_130 + 5ifxw.com +.gg_300250 + 163disk.com +.gg_990_65 + 163disk.com +.gg_990_90 + 515fa.com.gg_ad01 + 515fa.com.gg_ad02 + codejie.net +.gg_banner + +eeyy.com.gg_bg + +js0573.com.gg_bnr + +xiaopi.com.gg_box +zt5.com.gg_bt + sinolub.com.gg_cen" + eastday.com.gg_channel_r_b + +itdog.cn.gg_link + yicai.com .gg_loadpage + yicai.com.gg_pop + yicai.com .gg_preview + 324324.cn .gg_sidebar + +eeyy.com.gg_top + +cww.net.cn.ggbar! + baidu.com.ggbtm-vip-close + 55188.com +.ggdistich + chazidian.com.ggin  + romzhijia.net .ggposition + rising.cn.ggqh +weather.com.cn.ggt + pxedt.net.ggtext + taian.com.ggtp + iqiyi.com.ggwBox + winshang.com.ggwrap + +360doc.com.ggwz + douyu.com.giftbox- + v2rayssr.com + +laixoo.com .git_banner + +anquan.org .gj_download1 +familydoctor.com.cn.global-top-links-wrap  + xw.qq.com.globalThemeTip‘( + +it1352.com.glyphicon-certificate, + +it1352.com.glyphicon-certificate + a + news.sohu.com +.god-first + +sohu.com .god-main + +sohu.com.godR2 +taiwandaily.net.gofollow[data-track] > img  + eastday.com .golden_adv_1  + eastday.com .golden_adv_2  +toy-people.com +.good72890" +mail.pchome.com.tw.good_ad + mydrivers.com .good_ths + +jandan.net .goods2-list +56.com .goods_show + techbang.com .google-dfp% + i-part.com.tw.googleAD160x600 + cmhello.com .gpost-above + agentm.tw .gpt-ad-slot + +cool3c.com.gpt-new + +iyaxin.com .gr-ggtag + owyb1688.com +.gray-show + bioon.com.grid_6! + newyx.net + yxbao.com.gs( +sci-hub.org.cn.gs_r[data-cid=""]4 +sci-hub.org.cn.gs_red[style="color:#EB7F00"] +32r.com.gsbbtn +32r.com.gsbtn +32r.com.gscbtn +32r.com.gsdbtn + +yxdown.com.gsdown" + cncrk.com + +kxdw.com.gsdt + +jb51.net.gsdw + vpsdx.com .gsfha3-formB + pcsoft.com.cn + aiweibk.com + kuhou.com + +42xz.com.gsxz + pcsoft.com.cn.gsxzdl  +32r.com.gsxzdz > ul > dt + vpsdx.com.gthfdsa +58.com +.guaguabox  +runningmanzx.com.guangao+ +doubibackup.com + github.io.guanggR + baoliny.com + +ifooday.cn + +nen.com.cn + gasaq.com + hgitv.com .guanggao! + cnlinfo.net.guanggao-left" + cnlinfo.net.guanggao-right + +hkwb.net +.guanggao2" + gasaq.com.guanggao_ime_big + downhot.com.guans; +daohang.qq.com + 123.sogou.com + +hao.qq.com.guess" + +hao123.com.guess-recommend) + guokr.com.guokr-layer-beforelogin + +eweiqi.com.guoqing + +opdown.com .gxxz-btn + codejie.net +.h--banner + codejie.net .h-ad-banner + +21cn.com.h-gg + +mumayi.com.h80, + jjwxc.net.h8px + div[align="center"] + cnblogs.com.h_ads + kekenet.com .h_news_c + bkill.com .half-ads + typecho.wiki .haliluya( +shangyexinzhi.com.hang-baidu_adv + ifkdy.com.hb +cam4.tw.hbanner + +mp4ba.la .hd + table/ + sogou.com.hd-slider > .slider-containerØ + +youth.cn.hd_pic + +pinggu.org .hdbanner + mtrend.cn.hdlist + +ali213.net +.head-left( + coderutil.com.head-recommend-adv + hkepc.com .headBanner# +weishangshijie.cn +.head_0905 + +jmw.com.cn.head_1b + +jmw.com.cn.head_3$ +weishangshijie.cn .head_imgwl| +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com%.head_middle > div[class]:first-child + biz.ifeng.com.header" + ieforex.com.header > .left# + i.maxthon.cn.header-hotkeys  + animewld.club .header-img% + +chinaz.com.header-media__text + kpzpw.com .header-pic' + uc123.com.header-push-container' + +youivr.com.header-widget-region + iqiyi.com .headerLink01 + iqiyi.com .headerLink02$ + jiegeng.com.header__item--fr; + +seehd.so+.header_wrap + .tac + table[align="center"]2 +guitarchina.com + +aguitar.cn .headerbanner  + +aguitar.cn.headerbanner2 + 114la.com .headline + +ks.js.cn +.height200 + +ks.js.cn .height60 + +ks.js.cn .height70 + +ks.js.cn .height80 + +hackhw.com .hengfuad + +dngz.net.hezuoh +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.hgame_mod_theme1h +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.hgame_mod_theme2 + libvio.me .hidden-log + mahua.com +.hidden_ab + douyu.com.his-sign-cont + +jia360.com.hjadv + hkgolden.com.hkg-ad$ + +36kr.com.home-ad-flow-banner. +4gamers.com.tw.home-carousel-container + oeeee.com.homeAD + +pilifx.com .home_row_1  + dalipan.com .hongbao-wrap$ +pconline.com.cn .hongbao_1111/ +tieba.baidu.com.hongbao_page_pop_common + mtrend.cn .hongbaotips2 + fastadmin.net.hot-article + .panel-default + +duba.com .hot-bottom' +fanyi.baidu.com.hot-link-middle + douyu.com .hot-sign-1 + douyu.com .hot-sign-2 + +hao.360.cn .hot-word + piaoliang.com.hot990 + lenovo.com.cn.hotAd% + +duba.com + +uu114.cn .hotTitle + +itheat.com.hot_ad  + +itavcn.com.hot_dealerxin& + +duba.com.hot_push > .hot_movie  + +jyacht.com.hot_reoc_adve& + +zol.com.cn + bkjia.com.hot_tj + +703804.com.hotad  + baidu.com.hotad-list-box + boke112.com.hotspot½< + lenovo.com.cn'.hotword-list > li > a[href*=".jd.com"]+ +magnet2048.com + +cilil.cn .hotwords + ganji.com.house-ads-img! + bbs.hupu.com .hp-ad250-250! + +hupu.com.hp-header-banner$ +chinasmartgrid.com.cn.ht60ad + htmleaf.com .htmleaf-adv + +iyaxin.com.huand3' + +yuntue.com + skinme.cc.huodong  + +hupu.com.hupu-shihuo-hot + +hupu.com .hupushihuo + hutool.cn.hutool-top-ad + +huya.com.huya-ab + iqiyi.com.hwLink + warting.com.hz2 + +52pk.com.hz_adv + 99.com.cn .hzh_botleftN +tieba.baidu.com +wapp.baidu.com%.iSlider-wrapper-container-hot-thread + +qyw0.com.iadC + +ibaotu.com1.ibaotu-md-click[ibaotu-md-value="detail_top_ad"]6 + +masuit.com + +ldqk.xyz.ibox-content > .wow[id]  + +hao.360.cn.icon-text-nav + +jb51.net.idc3) + easylife.tw + ettoday.net.idleAd +163.com.idx_textlink_ad +163.com.idx_tonglan_ad +163.com .idx_top_ad& + gamer.com.tw.iframe:last-child + +aiyuke.com.igamead* +outofmemory.cn.iloveoutofmemory660 + im286.net.im286-t] +masturbation22.com +playallvideos.com + ratedxbiz.com + +taporn.com +pron.co.imaG + douyu.com6.imageItem-wrap[style="width: 1200px; height: 120px;"]F + douyu.com5.imageItem-wrap[style="width: 287px; height: 559px;"]m +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.images_game_container/ +router.houzi-blog.top + +5555op.com.img + baidu.com.img-adv-swap1 + +123.com.cn .img-banner. +shangyexinzhi.com.img2text-adv_wrapperG + +newduba.cn + +duba.com).img[href^="https://s.click.taobao.com/"] + fx678.com .img_tips* +image.baidu.com.imglist > .fcImgli + +pilifx.com.imoney + +alexa.cn.importantList + +alexa.cn .importantTop + +9y01.xyz .in-friends +qq.com +.in-top-ad2 + admaimai.com.in16_w01 > div[class*="_ad0"]' + +cngold.org.in_content_left_advs+ + news18a.com +tom.com .ina_ad_class + news18a.com .ina_ad_left  +hoteastday.com +.incentive + +caixin.com +.incubator + +qqyy.com.ind_ad + +faxingw.cn.indadv17 + ijiandao.com + ijiandao.cn +jojf.cn .index-ad" + ziyuanyo.com.index-ad-text! + oschina.net.index-ad-wrap + cndesign.com +.index-add +py.cn .index-advert& + speedtest.cn.index-advertising. + jianshen8.com + +manwa.me .index-bannerA + 1avlang.com + +avavl4.com + +avlang.com.index-info > .tac1 + +kpd122.com + +ssp28.pw.index-owl-carouselî" + bilibili.com.index-promote" + +pinggu.org.index-somelinks# + nanfengyl.com.index-top-ad1 + +boce.com.index-top-long +ydss.cn.indexAd$ +rfidworld.com.cn .indexBanner$ + +ithome.com.indexV2 > div > a + +hacpai.com +.index__ad + +hqdoor.com +.index_ad2" +kuaishouba.com .index_adbox) + +mitbbs.com + mitbbs.ca +.index_add + +xz.ccoo.cn .index_banner  + +shfq.com.index_banner_ad + juxia.com .index_bttg + hgitv.com .index_gg + hgitv.com .index_gg01 + +m4ff.com .index_gg_wz) + hgitv.com.index_main_top_zhong_02# + pxedt.net.index_nav_juzhong + +hqdoor.com .index_newad" +jianshen114.com .index_temp+ + jishujd.com +163.com .index_top_ad + 99114.com +.indexcjgg( + daohangtx.com +jojf.cn.indexgg + jxdbg.com.indexmv + +pinggu.org .indextop-r  + +360kan.com.info-flow__ad + itjsb.com.info_ad +wasu.cn .info_ads) + +riaway.com.info_message_container' +autohome.com.cn.information-adv- +chinabidding.com.cn.innovate + .layer# + +hao123.com.insertad_wrapper +litv.tv .internal_bn' +4gamers.com.tw.interstitial-ads$ +msn.cn.intra-article-ad-full + baidu.com +.intro-adv + people.com.cn .ipc_none" + iqiyi.com.iqiyi-shangcheng + iqshw.com .iqshwad-comm + haojiyou.la .iqshwad-div2 + douyu.com!.isLink[href^="https://igxe.cn/"] + +czsp12.com .iswindowJ +carrotchou.blog3.item > a[href^="http"]:not([href*=".carrotchou."]) + 16fan.com .item-newad# +gansudaily.com.cn +.itemFloat' +pconline.com.cn.ivy > .ivy-wrap +pconline.com.cn.ivy > a + pcauto.com.cn.ivy-250  +sina.cn.j_article_cutpice +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.j_banner_post| +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com%.j_click_stats[href*="adn.baidu.com"]a +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +.j_coupleta +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com +.j_df_card0 +tieba.baidu.com.j_feed_li[fid="3665221"]r +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.j_l_post:not([data-field])ä +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com{.j_l_post[data-field*="\"user_name\":\"\\u4e3f\\u5929\\u4e36\\u4e4b\\u6b87\""]:not([data-field*="\"user_id\":1180601200,"])g +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.j_listLiveTvCnt„ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com-.j_listLiveTvCnt + .listBtnCnt + #listTalkCnt + +939394.xyz.j_m_adi +tieba.baidu.comR.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5c0f\\u7ad9\\u957f\""]w +tieba.baidu.com`.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5feb\\u8baf\\u5927\\u7ba1\\u5bb6\""]b +tieba.baidu.comK.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u901f\\u8baf\""]p +tieba.baidu.comY.j_post_list_item[data-info^="\7b \"un\":\"\\u8d34\\u5427\\u89e6\\u70b9\\u63a8\\u5e7f\""]¼A + +huya.com1.j_posterItem[href^="http"]:not([href*=".huya."])‹ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com4.j_thread_list[data-field^="\7b \"id\":4419048726,"]‹ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com4.j_thread_list[data-field^="\7b \"id\":4756933479,"] + +jstv.com.jadv/ + jbtalks.com + +jbtalks.cc.jbt-ad-region' +guandianzhiku.com.jconfirm-open + ifeng.com.jcsp! +pconline.com.cn +.jcz-focus + mydrivers.com.jdong11 + mydrivers.com +.jdong11bg + +e3zy.com.jiacu + 95ziyuan.cn.jiuwu + oschina.net.jj + +mamecn.com +.jjMain_bg + soyunpan.com.jmwb +qq.com .jpBanner) + +91duba.com + iduba.com +.jq_notice + juqingba.cn .jqright1 + +jrj.com.cn.jrj-ad + sogou.com .js-ad-item + +hqew.com .js-ad-tips + cs.com.cn.js-ad1 +so.com .js-busi-item +so.com.js-business-list +so.com.js-guess-list +so.com.js-left-rec-busi3 + +360kan.com!.js-playicon[href*="wan.360.cn/"] +so.com .js-show-data! + jinse.com.js-spread__main3 + netbardh.com.js-static[data-position="3.3"] + +360kan.com .js-welcome! + yeeyi.com.js_handle_right5 + ifeng.com$.js_url[href^="http://dol.deliver."] + mvcat.com.jsalert + +avple.tv.jss13 + +avple.tv.jss20- + webhd.top.justify-content-center.pt-2' + 24k99.com.jy_24k99_suspended_ad- + fx168.com.jy_fx168_default_head_navAd3 + fx168.com".jy_fx168_gjs_content_Right_advise1 + fx168.com .jy_fx168_home_default_Mcontent1* + fx168.com.jy_ny2018_content_LeftAd- + 360kuai.com.k-float-btn__qrcode__body. + isiyuan.net + hcbbs.com.ke-zeroborder +csai.cn.keifu + iqilu.com .kejie_ad + v.ifeng.com.keyword + 99tianji.com.kf1 +hualongxiang.com.khd_b + iqiyi.com.khzqBox% +onlinedown.net.king-soft-area + tech.qq.com.kjad2 + +1kkk.com.kk2.cc + +0597kk.com.kk_add +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .kn_nine_wrap! + kocpc.com.tw .kocpc_bot_ad( + +36kr.com.kr-ad-home-flow-article' + +36kr.com.kr-ad-home-flow-banner$ + fznews.com.cn.kuang100_right + +lanyes.org.kuanpin + +chinaz.com.kwLink + iqiyi.com .kwltp-leftgg + iqiyi.com.kwltp-rightgg  + +ctwant.com.l-ad__articleõ  + +ctwant.com.l-ad__wrapper + baidu.com .l-header-ad" + sexbarss.net +ahtv.cn.l1 + ltaaa.com.lAds +chinatimes.com.l_ad` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .l_banner + jiegeng.com.l_divx +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com!.l_post + div[class]:not(.l_post)˜ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.comA.l_post[data-field^="\7b \"author\":\7b \"user_id\":1224761005,"]˜ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.comA.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480174042,"]˜ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.comA.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480194257,"]˜ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.comA.l_post[data-field^="\7b \"author\":\7b \"user_id\":1990070693,"]– +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com?.l_post[data-field^="\7b \"author\":\7b \"user_id\":50012654,"]# + +yxad.com +qq.com .l_qq_com< +flight.qunar.com$.l_rside > .b_fly_ban_b:nth-child(2) + ditu.so.com +.label-ads# + maolihui.com +3jy.com.lad + +1kkk.com .lanrenzhijia + +itdog.cn .lantern_left + iqiyi.com .lanzhi_cont2 + +ithome.com.lapin +bh.sb.large + jiegeng.com .large2small; +le.com-.lay_body[style^="width:490px;height:320px;"]; +le.com-.lay_body[style^="width:980px;height:100px;"]: +le.com,.lay_body[style^="width:980px;height:90px;"]; +le.com-.lay_title[style^="width:490px;height:60px;"]( +firefoxchina.cn.layout > .banner: + douyu.com).layout-Slide-banner:not([href*="douyu"]) + szonline.net +.layout_ad* + gkstk.com + ufanw.com .layui-layer& + +toolfk.com.layui-layer-content# + gkstk.com.layui-layer-shade" + layui.com.layui-layer-tips +le.com +.lbzDaoliu +finance.ifeng.com.lccs + hexun.com .lck-module# +txtbook.com.cn .ledu-advWrap + +qinbing.cn .left-adv" + +sohu.com.left-bottom-float + pqworld.com .left-float! + pqworld.com.left-float-tx+ + +wanqu.co.left-nav-panel:first-child# + eastday.com.left-suspension$ +hao.lenovo.com.cn .left.icons + +newxue.com .left336280 + +jmw.com.cn .leftCouplet + iqiyi.com .leftLink + +e2mv.com .left_advert" + +yxlady.com.left_bottom_gg3 +lz13.cn +.left_box3 +lz13.cn +.left_box4 +lz13.cn +.left_box5' +chinacar.com.cn.left_pouple_box= + +newduba.cn + iduba.com + +duba.com.left_slidebar_con$ +bt.cn.left_wrap:nth-child(3) + +hkwb.net .leftadv2 + +hao123.com .leftbanner + cpnn.com.cn.leftewm + cpnn.com.cn.leftgg  +muzhi.baidu.com .leftnest + ifeng.com +.leftpopad* + 2dfan.com + galge.fun .leftside-bg + axios-js.com .lessonlistà + +csgoob.com .lg\:basis-1B + +csgoob.com0.lg\:sticky.lg\:top-22 > .card-shadow:not(.py-4) + +vansky.com.liAds  + baidu.com.lianmeng-pause + lywww.com.lianmengclass + hao.360.com .licai-rightc +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .life_helper + aiweibk.com.lili + +hao4k.cn .lineC_right + lenovo.com.cn.link-ad + baidu.com .link-banner + +guahao.com .link-modal + +itdog.cn.link_gg + 324324.cn .link_header + +cnjxol.com.linked1 +dl.pconline.com.cn.links > p:not([class]) + duote.com .links-banner) + pornbest.org +ptt.sex +.links.row + linuxidc.com .linux801 + +linux.cn +.linuxcnad + +i.qq.com .linwei-logo + +i.qq.com .linwei-txt +igxe.cn .lion-flexd' + +anjuke.com.list-item > .jx-sign$ +mo.fish.list-item-content-ad +eol.cn.listAd) + +nick18.com + +niko18.com .list_ads + en8848.com.cn .list_adv$ + qunar.com.list_promotion_bar + +opdown.com +.listaddrs0 + 3dmgame.com.listlab > .img[href*="/yx."] +58.com.listpage_detail + kpzpw.com .littlebanner" + huaren.tv.live-client_left# + huaren.tv.live-client_rightg +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.live_show_aside + ifeng.com.ljPop + lkong.com +.lkong-ads + hao123.cn.llc + +yufile.com.lo_box# + +zol.com.cn.local-spe-bottom + uc123.com .logo > a! +chinamedevice.cn .logo_ads  + silver.org.cn .logo_dsaas + +qinbing.cn .logo_right` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .lot_wrap + +sohu.com .lottery-box( + kekenet.com.lp_r_bar:first-child + ltesting.net +.ltad_1170 + ltesting.net .ltad_580" + luanren.com.luanren_dbhfad# + luanren.com.luanren_dbhfad2 + rising.cn.lvmama + +0597kk.com .lyhux_mu; + 123.sogou.com + web.sogou.com.m-12[pbflag="guess"]) +pconline.com.cn.m-JCZ-scrollBlock: + yxdj.com.cn + +cesafe.com + kkpan.com .m-a-linktwo + +ctwant.com +.m-adpopup  + +jx3pve.com.m-banner-tool + uc123.com.m-link + sina.com.cn .m-p1-lb1-ad + sina.com.cn.m-p3-ad) +finance.sina.com.cn.m-s-tab + div( +onlinedown.net.m-safedown-centeré + +gxeea.cn.m-wrap-school. + sogou.com +qq.com.m[pbflag="bt_mai"]  +qq.com.m[pbflag="guess"], + foodmate.net.m[style="height:40px;"] +myexception.cn.m_a + +91duba.com .m_guess_like# + +duba.com.m_hot_rec_box_base + +lgn.yy.com.m_left +163.com.m_papa  +xitongzhijia.net.m_swift + +hupu.com +.m_text_ad + zhicheng.com.mad_top + 163disk.com.mads + +hupu.com +.maibghref +th7.cn .main > .mb52 +firefoxchina.cn +firefox.com.cn .main-huo' + antdv.com.main-menu-inner > div + +sanv.org .main-nav< +firefoxchina.cn +firefox.com.cn.main-promote-sites* +firefoxchina.cn.main-promote-tmall/ +news.hf365.com.main-r > div:first-child + 51credit.com +.main-r-ka% + +nxing.cn.main:nth-child(-n+6)8 +businessweekly.com.tw.mainR_content:nth-child(5) + greatwuyi.com .main_ad2 + tvmost.com.hk +.main_ad_b +qq.com.main_ad_bottom +qq.com .main_ad_top) + +raenonx.cc.main_ads-content + div* + m.07073.com.main_content_tit + div) + yesky.com.main_left_advertisement@ + mydrivers.com+.main_right_div[style="padding-top: 10px;"] + +2345.com.mainbg + +2345.com.mainbg18 +bbs.fobshanghai.com.maintable > div:nth-child(7) + expreview.com.mamaBox + baidu.com.manual-spread +so.com.map_business_con< + zhainanba.org'.marauto > p[style="text-align: left;"]+ + +hvhbbs.com.margin-add > style + div# + fun48.com.margin-big-bottomO + +moe.best?.markdown-body + div[style="text-align:center;margin-top:40px"]! + 360kuai.com.marketing-box& + +taobao.com.mask.animated.swing +qq.com .masker_1111 + fx110.com.matrix-banner + oschina.net .mayun-jj/ + +itavcn.com.mb_right > .mt8:nth-child(3) + sciencenet.cn.mbanner) + hao.360.com + +hao.360.cn.mbar-bd + +douguo.com.mbs + +2345.com .mco-ex-ndxh + +pcworks.cn.md-show# + +hk01.com.md\:min-h-\[90px\]+ + redian.news.md\:w-\[728px\].mx-autoE + +xchina.biz + xchina.co +1909.me +crxs.me +8se.me.media| +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com.mediago-ad-wrapper + cnool.net .meilai_box +qq.com .member_ads4 + 423down.com!.menu > .menu-item:nth-child(n+6)" + libaclub.com.merchant-link! + +52av.one.message + center* + +unecne.com + galacg.me .metaslider +so.com.mh-sadŸA + hexieshe.com + hexieshe.xyz + +xxshe.info.mh-sidebar img˜ + hexieshe.com + hexieshe.xyz + +xxshe.info + xxshe.xyzY.mh-widget > .textwidget > p > a[href^="http"]:not([href*="she."]):first-child:last-child +qq.com.mian-ad + midifan.com.mid-aaa5 + 360kuai.com".mid-right__operate-adv__container  +line.me.midAdModule-root + +nfuwow.com +.midbgdbox' + +timedg.com.middleCrossAdvertise! + jmbbs.com.middle_guanggao + +zjhlcp.com .middle_list + +huamu.cn.midle-ad-list + +fenghuo.in.mimi +6.cn .min-ad-box% + +hk01.com.min-h-\[250px\].mb-3& +jxcn.cn +cnr.cn .min-news-box  + nowcoder.com .mini-banner + +xunlei.com .mini-pop + ck180.net.mitao + crsky.com +.ml10.Gs_d + cnforex.com +.mleft > a + china.com.mm + +6789.com .mm-force" + tongxiang.net .mmver.w-12009 + playno1.com&.mn > div[style="margin-bottom:10px;"] +mail.pchome.com.tw.mnav +mnw.cn.mnw_685 +mnw.cn.mnw_960 +mnw.cn .mnw_top_ads + sogou.com.mobad( +4gamers.com.tw.mobile-bottom-ads% + gamicsoft.com.mobileAd-slider" + +1905.com.mobile_ad_promote! + 141jj.com.moboad + .webad +www.sina.com.cn.mod-01 +qq.com .mod-ad-full0 +start.firefoxchina.cn.mod-delay-resource! +image.baidu.com +.mod-promo +sdo.com.mod-public-ads + +2345.com.mod-serchrightC + zj.qq.com2.mod-side + div[style="width:300px;height:257px;"] + 17173.com.mod-tg1 + +2345.com .mod-txtred + +pptv.com .mod_960x90 +qq.com .mod_ad_main +163.com .mod_ad_r +qq.com .mod_ad_side +qq.com.mod_ad_square +163.com .mod_ad_toutu +qq.com.mod_custom_ad6 + iqiyi.com%.mod_focus-index_list > li:last-child +qq.com .mod_stridead@ +qixingquan.com + pianyuan.org +json.cn.modal-backdrop  + ifenpaidy.com .modal-body# +dingdangsheji.com +.modown-ad% +firefoxchina.cn.module-banner5 + +v.qq.com%.module-image[style*="width:1100px;"]5 + +v.qq.com%.module-image[style*="width:1240px;"]  + +netfly.lol.module-tglist9 + i.maxthon.cn%.module.tools-main[data-s-n="bottom"]. + html-js.com.module[style="padding:0;"]6 +moegirl.org.cn .moe-card[data-region="oversea"]1 +moegirl.org.cn.moe-card[region="oversea"] + followme.cn +.money-box" +autohome.com.cn .monkey_boxó& +autohome.com.cn.monkey_box_big% +autohome.com.cn.monkeyicon-br + +hao123.com +.mp-app-ad + +jmw.com.cn.mr_1# +firefoxchina.cn .mrec-banner + zhujiwiki.com.msg< + mhgui.com+.mt10[style="width: 300px; height: 250px;"] + +dnwx.com.mt5_23- +sydneytoday.com + meltoday.com.mtgad + +90oo.com.mtswp_scbar_ad + stockstar.com.much_ad  + pixiv.net.multi-ads-area + china.com.mxm  + cngold.com.cn .myGuangGao + cnblogs.com .my_money + dxqck.com .myadswiper + acglover.me.myas! + myday.com.tw .myday_ad_950" + myday.com.tw.myday_ad_left# + myday.com.tw.myday_ad_right +sydneytoday.com.mygadD + +ysgc.fun +ysgc.tv).myui-panel_bd > div > a[target="_blank"] + +ifooday.cn.myzs + +2345.com .mzdh_bottom( + hepuwang.com.n5_dbhfad > .wapper +ccoo.cn.n_adbox! + baidu.com.na-ec-waterfall. +msn.cn .nativeadserversidecontentmodule + dan-teng.top.nav% + jiemian.com.nav-next-ad-views + lenovo.com.cn.nav_ad1 + lenovo.com.cn.nav_ad2 + baidu.com.nav_ads + +cctime.com .nav_banner; + +v.qq.com+.nav_link[href^="http"]:not([href*=".qq."])# + +xc6b.com.navbar + .clearfix + aaread.space.navi$ + e10000.cn.navigate_sty + div# + +hao123.com.navrecommend-hjw# + +hao123.com.navrecommend-top + +douxie.com +.ndxBanner + +douxie.com .ndxChdjBox + typecho.wiki.net + rising.cn .new-1111$ + yes-news.com.new-index-ad300' + yes-news.com.new-index-main-728' + yes-news.com.new-index-main-ysm, + yes-news.com.new-sidebar-today-300ad + i-part.com.tw.newAd + ifeng.com .newAdImg + +steelcn.cn +.new_fixed/ + mtrend.cn.new_right > .morecontent_nextN + mtrend.cn=.new_right > div[style="float:left; width:100%;"]:first-child + +ali213.net .newright# + zhuzhai.com.news-details-ad5 +sydneytoday.com.news-list > .row > .col-xs-12  + eastday.com .news-promote + kaifu.com .news-t-adv* + x-mol.com.news-white-content-right + baiten.cn.news2ad + +2345.com .newsArea% + +chinaz.com.newsMainBox-textad + +afzhan.com .newsRightAdv + ifeng.com .news_ADboxÀ + m.baidu.com.news_ad( + +jia360.com.news_adv:nth-child(3) + +aguitar.cn.news_bS +auto-online.com.tw9.news_content > div[style="width:728px;margin:10px auto"]' + oschina.net.news_detai_above_ad + +yxdown.com.news_tl" +chinamedevice.cn +.news_ylqx# +chinamedevice.cn .news_ylqx3* + +mitbbs.com + mitbbs.ca .newskuang28 + cnstock.com%.newslist[style="padding: 10px 0px;"]" + olgame.tw.nex_floor_banner + olgame.tw.nex_index_ads! +52fx.cn.nex_index_top_ads + olgame.tw .nex_mid_ads# +chongdiantou.com .nice-sales, + +mamecn.com.njjGsxzLeft > dl > .cont1 + +mamecn.com .njjGsxzRight + dyhjw.com.nn_link: + pornbest.org + pornlulu.com +ptt.sex .no-gutters5 + prts.wiki$.nomobile[style*="810px;height:240"]" + zhicheng.com.normal-banner + +admin5.com.notice + +jbaaza.com .notice-img! + yes-news.com .notification + haoxxoo.com.nrad1 + haoxxoo.com.nrad2 + newsmth.net.ns-ad- + 24k99.com + fx168.com.ny2018_txtLink( + 10jqka.com.cn + hepan.com.onead + +duba.com.oneone-search$ + bilibili.com.online + .adpos@ + bilibili.com,.operate-card[data-target-url*=".miaozhen."]B + bilibili.com..operate-card[data-target-url*="doubleclick."]& +read.qidian.com.operation-wrap + iqiyi.com.oppo + baidu.com.optimus* + 66huacai.com + kuaihou.com.orangeG +zhujiceping.com +fuliba2021.net + +2yjw.com + +itdog.cn.orbui6 +fuliba2021.net + +ypojie.com.orbui-post-footeri +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.order_repost_wrap) +motobuy.com.tw + jdwx.info.other# + 6parknews.com.other_list_adM +bbs.my0511.com7.outertxt > tbody > tr > td[height="80"][align="right"]/ +qiaobutang.com + avsuggest.com.overlay! +udn.com.overlay-container$ + lalulalu.com.overture_banner0 +appledaily.com.tw.owl-lazy[tcode^="AD:"] + +sgcn.com .oyad2.cl# + opticsky.cn.p83_gridC > .cc + +25xz.com.p_ads + +sanv.org.p_left + +actoys.net .p_new_ad +sina.cn .p_newsmore + +actoys.net .p_top_ad  + cssmoban.com .page-banner3$ +"contents.internet.apps.samsung.com .page-bar + +qidian.com .page-opsB + +boce.com2.page10Box1 > a[href^="http"]:not([href*="boce."]) + +cngold.org.pageAdv! + baidu.com.pageLeftFixedAD! + easyicon.net .page_big_adv# + +hao123.com.pagetop > .popup/ + fastadmin.net.panel-body > a[href$="="] + xinhuanet.com .part-ad1¶ +www.sina.com.cn.part-l + bbs.52life.cc.part1  + cpnn.com.cn .part3-adverd + +sina.com .parta_l_ads + baidu.com .pauseadv + heiguang.com .pbAddPic + aiweibk.com.pc- +2234.cn.pc-down_url_left > .pull-left& + 18183.com.pcBtn > a[href*="@"] + kikinote.net.pc_ad + +yxdown.com.pc_down + gmtv1.xyz .pc_rb_float0 +5278.cc!.pct > div[style="width: 600px;"]x +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com!.per_list.j_per_list.per_list_frs\ +chanpindashi.comD.personal-information > a[href^="http"]:not([href*="chanpindashi."]) + pxedt.net.pf_dw + techbang.com +.phone-ads + +caikuu.com +.photo_abv + +jrj.com.cn .piboxtwo + ifeng.com.pic1000 + ifeng.com.pic300 + ifeng.com.pic9501 +patch.ali213.net +down.ali213.net.picBg + jiegeng.com.picBt + jiegeng.com.picLf( + dealmoon.com + weibo.com.pic_ad + +itdog.cn.pic_gg + +moxing.net .pic_txt_list + baidu.com.picad + 16sucai.com .pindao_ad2 + +keywin.org .pindaolist- + creaders.net.pinglun > .btmlist-title$ +fortunechina.com .pinglunmask& +fortunechina.com.pinglunwindow$ +baike.baidu.com .pinzhuanWrap" +so.com.placeholder-default + +chinaz.com .plate-layout + baofeng.com .play-ads + silisili.in.play_ad + kaifu.com .play_fmt +ttsp.tv.play_list_adboxg +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.play_list_panel + ifeng.com.playad# + +senfun.net.player-recommend +qq.com.player-side-ads" +league-funny.com +.player_bb +qq.com .player_bg_ad5 + +sgamer.com#.plc > div > a[href*=".vgcool.com"]2 +firefoxchina.cn +firefox.com.cn .pm-crack + www.17173.com.pn-tg + 19lou.com.pop-ad# + qzone.qq.com.pop-app-list-c + +hqew.com .pop-banner# +pconline.com.cn .pop-huodong + sogou.com .pop-tuiguang + +av.movie .pop-up-a + +chengdu.cn.pop_box + ifeng.com.popoxiu_topic + eastmoney.com .popswipe + dzwww.com.popular + qiuziti.com .popularize9 +firefoxchina.cn +site.baidu.com +eol.cn.popup + eprice.com.tw +.popup-adv# +firefoxchina.cn .popup-small�/ +dianyingim.com + +dyxs11.com .popup-tipsH +softwarebrother.com + easylife.tw +ez3c.tw.popup_bottom_block + camerabay.tv.popupad% + +pzzc.net.portal_block_summary + +tgfcer.com +.portalbox" + netbardh.com.pos-navbar-ad& + +porn5f.com.position_fix_bottom! + ifenpaidy.com .post > .div1 +mop.com".post-content[href*=".taobao.com"]M + +jandan.net;.post[style="padding-left:150px;width:336px;height:280px;"] +163.com.post_adtop_main  + gamme.com.tw .post_adwrpt( +tieba.baidu.com.post_client_down& + +phpvar.com.post_content_linkad! +163.com.post_recommend_ad  + blog.163.com .postadlayer7 + baixing.com$.poster-info-container + .side-block! + bbs.51cto.com .postinfo06a  +chongbuluo.com +.postright! + ifxtx.com.ppsy_content758E + +7hcn.com5.pr > a[href^="http"]:not([href^="http://www.7hcn."]) + sisixxb.com .preflink+ + +porn5f.com.preroll-adv-popup-iframeL + javdove2.club + javdove.com + +porn5f.com.preroll-adv-popup-overlay" + +91porn.com.preroll-blocker +pcstore.com.tw .priority  +pcstore.com.tw +.priority1" +pcstore.com.tw .priority_ad + +10fang.com .pro-item& + +newduba.cn + +duba.com.pro_r_t& + +hao123.com.product-banner-wrap- +sydneytoday.com + meltoday.com.promoK + btime.com +brtn.cn/.promo-item > a[href^="http"]:not([href*=".b"])& + vidhub.me + vidhub.tv.promonk) + +huaban.com + agmov.com +.promotion/ +icourse163.org.promotion-banner-wrapper  +site.baidu.com +.pstr.mt10 + speedtest.cn.pub-ad + +anquan.org .pub_side_ad, + doudoudm.site + ezdmw.com +.public_ad + +abmedia.io.pum +8se.me .push-bottomH + +xchina.biz + xchina.co +1909.me +crxs.me +8se.me .push-top + cnplugins.com .pushbox1 + +zol.com.cn .pv-mol_ask+ + sogou.com.pz-widget-flash-container + boke112.com.qa-pc& + baidu.com.qb-other-answer-wmad& +baobao.baidu.com.qb-relate-box + +qidian.com.qd-gamed +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .qipai_thread +qq.com.qiye-Article-QQQ + seqing.world + singlove.com + whichav.com + whichav.net + +wokao.co.qq* + +phpvar.com.qrcode-swiper-container  + baidu.com.quality-elinks4 +muzhi.baidu.com.quick-ask-2 + .android + div' +hualongxiang.com.quick_reply_ad + iqiyi.com .qy-plist-adW + iqiyi.comF.qy20-h-carousel-wrap[data-focus="ad-focus-image"] .qy20-h-carousel__aB + nivod5.tv + nivod8.tv$.qy20-h-carousel__li:nth-child(-n+2)T + iqiyi.comC.qy20-h-carousel_con-gray a[href^="http"]:not([href*="iqiyi.com/"]) + im286.net.qybj + +myqqjd.com.qz-box  +ouyaoxiazai.com .qzhengfu… + +ali213.net.qztf + +qzwb.com .qzw_live_img" + sexbarss.net +ahtv.cn.r1 + +7hcn.com.rCont + +yxdown.com.r_b_fmt + jiegeng.com.r_div + cnqiang.com.rad360 + +mydigit.cn.radi + ananvod.com .rbPicAll + dayanzai.me.rban1 + sciencenet.cn.rbanner6 +msn.cn(.rc > a[href^="https://sp.booking.com/"] + +xvna.com.rctad + +ithome.com.rds  + +xmfish.com.readCon_right< +wenku.baidu.com%.reader-to-cashier-vip > .rights-wrap( + sina.com.cn.real-time-window__ad+ +finance.ifeng.com + +kulemi.com.rec + baidu.com .rec-feeditemB + +douban.com0.rec_topics_name[href^="https://erebor.douban."] +image.baidu.com.recom  + +taobao.com.recomand-item + axios-js.com +.recommand3 +image.baidu.com +nongjitong.com +.recommend& + ifeng.com.recommend > .picNews! + +csdn.net.recommend-ad-box# +tool.lu.recommend-container& + baidu.com.recommend-goods-card_ + +csdn.netO.recommend-item-box[data-track-click*="http"]:not([data-track-click*=".csdn."])7 + iciba.com&.recommend-item:not([href*=".iciba."])! + +hao123.com.recommend-link +72g.com .recommended! +passiontimes.hk +.rectAd680+ + +chinaz.com.red[href*=".wsisp.net/"]! +guba.eastmoney.com.redian, + baixing.com.refashion-listing-banner + +gg-led.com.regg& + baidu.com.rel-exp-feed-ad-item +mop.com .rel-item-gg! +pconline.com.cn +.rela-best> + mbd.baidu.com).related-news > section:first-child + div + +ithome.com .related_buy/ + +tiexue.net.reloadCont > div:first-child# +hoteastday.com .reloadMedia1 +so.com .res-mediav% +storytrain.info.responsive_ad= + baidu.com,.result-op[tpl="b2b_prod"] > div > .c-borderq +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com$.result-op[tpl="game-page-platform"]> + baidu.com-.result-op[tpl="game-page-right-openservice"]p +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#.result-op[tpl="game-page-romance"]2 + baidu.com!.result-op[tpl="pc-education-fs"]s +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com&.result-op[tpl="right_game_recommend"]. + baidu.com.result-op[tpl="sp_hot_sale"]7 + baidu.com&.result-op[tpl="vmp_strengthen_brand"]! + tbtdg.com.reveal-modal-bg$ +rfidworld.com.cn .rfidADClass +163.com.rg_ad + +acfun.cn.right-activity) +image.baidu.com.right-banner-area6 + isso.com.cn#.right-content-div > .top-div + div2 +jingyan.baidu.com.right-fixed-related-wrap + yyrtv.com .right-ggW + +csdn.netG.right-item[data-track-click*="http"]:not([data-track-click*=".csdn."])# +123.chinaso.com .right-list6Á  + +qidian.com.right-op-wrap +py.cn .right-pops$ + eastday.com.right-suspension% +hao.lenovo.com.cn .right.icons +news.ifeng.com.right1 +baby-kingdom.com.right5 + baidu.com .rightAd-skin! + jsphp.net.rightAdBtm-wrap% +toy-people.com.rightAd_300250& +toy-people.com.rightAd_3002502( + +afzhan.com + iqiyi.com .rightAdv + +jmw.com.cn .rightCouplet + yesky.com.rightGg + iqiyi.com +.rightLink$ + +fullyu.com.rightSide-top-ads* + jiegeng.com + +hao123.com .rightTip + niotv.com +.right_ad1 + eastday.com .right_adv_1 + eastday.com .right_adv_2 + eastday.com .right_adv_3& +toy-people.com.right_bottom_bb + +cztv.com +.right_box! + +qqyy.com.right_dcotor_tab + ifeng.com .right_gg# + haorooms.com.right_guanggao& + mtrend.cn.right_hongbao_xuanfu + gucheng.com .right_info# + +lahoo.ca.right_multi_banner' +163.com.right_originalcolumn_ad + +hkwb.net +.rightadv2# +wenxuecity.com .rightbannerw$ +mail.sina.com.cn .rightbottom + cpnn.com.cn .rightewm + cpnn.com.cn.rightgg! +muzhi.baidu.com +.rightnest4 +portablesoft.org.rightside > :nth-child(n+2) +5588.tv .ringhttu + biz.ifeng.com.riodel" + xxxxx520.com.ripro_gg_wrap + iqiyi.com .rm-header-ad + iqiyi.com .rm-logo-ad + +ithome.com .rm-modal-bg  + +ithome.com.rm-modal-body + +ithome.com .rm-modal1-bg! + +ithome.com.rm-modal1-body + iqiyi.com .rm-site-main+ +playallvideos.com +pron.co.rmedia# + +huya.com.room-business-game + douyu.com.row-4.theatre + +jia360.com .row-ad01 + douyu.com +.row.row-3E + +ipip.net5.row[style="width:1000px;margin:0px auto 25px auto;"]% +honglingjin.co.uk .rs-side-ads +honglingjin.co.uk.rsads& + +ld0766.com.rsf_pull_screen_adv! +fashion.qq.com .rv-js-root  + codejie.net .s-ad-tit-box + uc123.com.s-left! + baidu.com.s-nativead-itemC + baidu.com2.s-news-special[data-url^="http://vip.baidu.com/"] + uc123.com.s-right + +qyw0.com.s11 + +2345.com .s11-fixNav + +2345.com .s11-logowallÒ + +2345.com .s11-side, + +newduba.cn + +duba.com.s11_store_box + +duba.com.s11_zb + 114la.com.s11bg + tbtdg.com.s11text + +2345.com .s12-fullNav" +finance.ifeng.com .sConRbox + gucheng.com +.s_news_qc +zww.me.sad + +vansky.com .safari_pop + 188soft.com.safety& + baidu.com.sam_iebrowser_banner +image.baidu.com.sample0 +image.baidu.com.sample1 +image.baidu.com.sample2  + +ithome.com.sb_list > .bx& +firefoxchina.cn.sbottom-banner +1010jiajiao.com.sbox! + image.so.com .sc-similarcm + +hao123.com.sc-tips  +mail.pchome.com.tw.sceng + +vansky.com .scol-banneri +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.score_ecr_wrapper+ +4gamers.com.tw.scroller-ads-wrapper@ + +chinaz.com..scrollload-content > .single-mode:first-child + 123-bt.cn.sd + editcode.net.sd > a4 +firefoxchina.cn +firefox.com.cn .sd-promote + playno1.com.sd.pph) +xianzhenyuan.cn.sd_ad:not(#xztba)+ + gtloli.live + +gtloli.one +.sd_recpic% + gaoqingw.com.search + .widgetJ +chongbuluo.com4.search > div[style="width: 607px;margin-top:30px;"]% + baidu.com.search-aside-adWrapI + map.baidu.com4.search-item[data-stat-code="poisearch.damoce.item"]' + coderutil.com.search-module + a + rising.cn .search-news1" + hao.rising.cn .search-right  +dict.cn.search-right-ad5  +dict.cn.search-right-ad7! + +china.cn.search_RightShow + 114la.com +.search_ad/ + +newduba.cn + +duba.com.search_promotion + +china.cn .search_video" + qiuziti.com.search_wordimg + cnool.net.second-banner( +www.sina.com.cn.secondtj-wrapper# + coolinet.com.section-banner@ + eprice.com.tw+.section-content > div[style*="text-align"]& +stheadline.com.section-popular + +tiboo.cn +.sectionAd + romzj.com .sectionThree& + btime.com +brtn.cn +.seed-item +qq.com .seeking-gg  + jianshu.com .self-flow-ad% +wenku.baidu.com.service-entry! +hoteastday.com .sessionSub+ + jq-school.com.setfarme:nth-child(7)> + +4399.com..setlide a[href^="http"]:not([href*=".4399."])8 + baidu.com'.sf-wrap > .c-back + div[id]:last-child + zhicheng.com.sf_10 + baidu.com.sfc-image-content-ad-container. + baidu.com.sfc-image-content-ad-xg-cell, + baidu.com.sfc-image-content-adrecommÍ- + baidu.com.sfc-image-content-adrootnew* + baidu.com.sfc-image-content-adtext_ + baidu.comN.sfc-image-content-waterfall-item > div:not([class]) > .sfc-image-content-cell + speedtest.cn.shade! + pcsoft.com.cn .shang11-top0 +wenxuecity.com.sharewechat + .otherposts@ + baidu.com + bdimg.com + tieba.com.shield-agent-tb-feed + hao.rising.cn +.shop-site + teepr.com .shop-widget" +qiushibaike.com .shopwindow  + ilxdh.com.show-container" + pixabay.com.show-gtty-item + +miercn.com .show-img-box +cnxz.cn.showad- + +3987.com.showdown > .mt20:first-child + 91lai.com .showimgs + +uwants.com.showpx1 + pcsoft.com.cn .shuang11 + luyixian.cn.side + showtv.com.tw.side-AD! + laifudao.com .side-adinner + guokr.com .side-adv# + ruten.com.tw.side-advertise" +iwan.baidu.com .side-banner + uc123.com .side-hot +chinanewsx.com .side-nav5 +firefoxchina.cn +firefox.com.cn .side-notice$ +firefoxchina.cn .side-promote& +firefoxchina.cn.side-recommend + smzdm.com .side-stuff@ +firefoxchina.cn).side-tool-outer > div[class]:first-child! +firefoxchina.cn +.side-tpth + yjcf360.com .side_box + yjcf360.com +.side_box2 + shuowan.com .side_flash + +bodu365.co .side_g_seat( + +newduba.cn + +duba.com +.side_game" + +duba.com.side_other > .img* + +newduba.cn + +duba.com .side_taobao  + +uu114.cn.side_top_banner1 + qzone.qq.com.side_wrapper.side_wrapper_v3 +cjn.cn.sidebar' + +qiuquan.cc.sidebar .aligncenter5 +element-plus.gitee.io.sidebar > .page-content# + +dhaomu.com.sidebar > .slide< + +pupudy.com*.sidebar > .widget-textasst:nth-child(n+3)3 + zhujiwiki.com.sidebar > .widget:first-child3 +oneinstack.com.sidebar > .widget:last-childK + wn789.com:.sidebar > .widget:not(:first-child):not(.widget_ui_posts)3 + teddysun.com.sidebar > .widget:nth-child(2)3 + teddysun.com.sidebar > .widget:nth-child(3)  + +xiaoz.me.sidebar a > img$ + superlife.ca.sidebar-ad-zone$ +portablesoft.org .sidebar-box3 + baomidou.com.sidebar-content > astro-island! + cnblogs.com.sidebar-imageF + easyai.tech3.sidebar-inner > .widget_media_image:nth-child(n+2)& + +mywpku.com.sidebar-recommended= + daweijita.com(.sidebar-right > .widget-box:first-child  + yomahub.com .sidebar-slot + galacg.me .sidebar-top +bog.ac .sidebar-url3 +portablesoft.org.sidebar-widget:first-child + +52tian.net .sidebar960�' + steachs.com.sidebar:first-child) + kocpc.com.tw.sidebar:nth-child(2)) + kocpc.com.tw.sidebar:nth-child(3)# + +v2ex.com.sidebar_compliance + +v2ex.com.sidebar_units" + +fsdpp.cn.sidebox > a > img +qq.com .sider_ad + docin.com .sider_gg + sina.com.cn.sinaads' + duelmeta.com.single-bottom-html + 2000fun.com .single-box! + fujieace.com .single-goods$ + duelmeta.com.single-top-html + kocpc.com.tw .single_ads& + i.maxthon.cn.site-ad-container! + ahhhhfs.com.site-addswarp" + iqiyi.com.site-title_right + stockstar.com .siteAd_l + stockstar.com .siteAd_r  + +v.qq.com.site_bg_variety +qq.com .site_words + hdchina.org.sitead + +hao123.com.siye# +iask.sina.com.cn .sj_300x250# +iask.sina.com.cn .sj_680x250$ + baidu.com.slide-bner-adv-ret+ + ppsport.com.slide-img[href^="http"]* + ksbbs.com + kshot.com .slideAdvert + +duba.com .slidebar# + +duba.com.slidebar + .extend + talkfx.co .slidebox + +cangku.moe.slider" + v2rayssr.com.slider-4-box1> + +v.qq.com..slider_item[href^="http"]:not([href*=".qq."])- + +1688.com.sm-offer-item[p4p*=".1688."]  + codepub.com .small-banner! + +huya.com.small-handle-tip + +hao.360.cn +.small-obj + +ant.design.snd-ad! + +hao123.com.soft-ad-banner0 + 66huacai.com.soft-downUrl-list.underline' + oschina.net.soft_detai_above_ad + pc0359.cn .soft_down_tg# + tvsou.com.sogou-temp-hidden! + tvsou.com.sogou-temp-show + +sohu.com .sogouService +5nd.com.songAds4 + +pcdown.net".sort_list > .clearfix:first-child + jq.131458.com.soso_02" +firefoxchina.cn .sp-content  + missyuan.com .spaceborder) + baidu.com.spage-couplet-container- + vpsdx.com + +vpsdx.cn.span4 > a > img( + ithome.com.tw.span4:nth-child(5)( + ithome.com.tw.span4:nth-child(8) + shmet.com .spb-biz-cont + +xzji.com.speed% + speedtest.cn.speed-bottom-ads" + downbank.cn.speed-downlist" + speedtest.cn.speed-top-ads: + geekpark.net + speedtest.cn + +daniao.org.sponsor +udn.com.sponsor-wrapper + sogou.com +.sponsored& + minepay.top.sponsors-containerí +so.com.spread + baidu.com .spread-wrap + +2345.com.spreadHotWords` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .spreadad + sogou.com.sr-adv + youku.com .src_adwrap + alist.nn.ci.ss! + stockstar.com .ss-ad-icon26 + +duba.com&.ss_sider_list[href*=".wan.liebao.cn"]$ + +acwifi.net + +zhain8.com.ssr + zhujiwiki.com.ssrtop + eastday.com .ssy_left + eastday.com +.ssy_right9 +3g.cn,.statistic[href^="https://jumpluna.58.com/"]& +ping.chinaz.com.sth > .col-red( + +storm.mg.storm_magic_placeholder" + tvsou.com.story_ad_android) + tvsou.com.story_ad_content_footer + tvsou.com .story_ad_iosA + +ikandy.fun/.stui-banner__pic[href="/statics/js/ky-a.html"] + +sonimei.cn.style01 + +sonimei.cn.style03 + guofs.com.style2& +qq.com.style_modal-wrap__UnbtS +cam4.tw.subfoot-section + +etest8.com .subtop2right# + +ltn.com.tw.suggest_full .C5 + 17house.com.suiping  + speedtest.cn .summer_logo + +zol.com.cn .supervalue  +qingdaonews.com .surround! + baidu.com.swan-ad-fc-feed6 + cupfox.love + +hcomic.net + +olevod.com.swiper5 +instrument.com.cn +tool.lu.swiper-container. + +toolfk.com.swiper-container-horizontal= + +1kkk.com +dm5.com".swiper-container[style*="760px;"]= + +ysgc.fun +ysgc.tv".swiper-slide > a[target="_blank"]6 + skydy.top%.swiper-slide[style="width: 1170px;"]r +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.switch_radios + div[class]" + +swoole.com.swoole-resource +chinaxinge.com.sy05 +chinaxinge.com.sy07 + heiguang.com .syAdTopTxt + 114la.com.sy_ad4 + 58cam.com.syads& + creaders.net + bcbay.com.syzx# +suizhoushi.com .sznew_ad_top + +17ok.com.t-bann( + libvio.cc + libvio.me +.t-img-box + +17yy.com.t2_3 + +17yy.com.t2r_3/ + +suopao.org.t5[style^="margin-top:8px;"]& +bbs.fobshanghai.com .t_infoline% + douyu.com.tab-content.promote  +chinatimes.com +.tab_4_box + +wandhi.com +.table img! + +wandhi.com.table-bordered% + qqyouyue.com.table-responsive? + +eoof.net/.tableborder1[cellspacing="1"][cellpadding="3"]# + sina.com.tw.tablet_above_adx + opticsky.cn + +77bike.com + +actoys.net + +homefei.me + gpsuu.com + ksbbs.com + oigps.com + +mgbbs.cn.tac.mb5I + +77bike.com7.tac[style="border-top:1px dotted #ddd;line-height:1;"]0 + +txzqw.me .tac[style="margin-bottom:5px;"]" + +hlgnet.com + +sina.com.tadŸ# + dogedoge.com.tag-home__itemD + weibo.com3.tag_showTopicL[href^="https://shop.sc.weibo.com/"] + +cqnews.net.taobao + +duba.com.taobao_search +qq.com.tb-activity-list + 83133.com.tb-tanx/ + baidu.com.tb-threadlist__item.tb-banner +qq.com.tb12-activityu +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.tb_poster_info.poster_success +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com +live.baidu.com + bdimg.com + tieba.com.tb_poster_placeholder‹ +xingqu.baidu.com +tieba.baidu.com +wefan.baidu.com +1111.baidu.com + bdimg.com + tieba.com!.tbui_aside_float_bar + .clearfix + +9u8u.com.tc-box1 + baidu.com .tc-card[tpl="fc_before_fixads"] + +52pk.com.tcgg + nobugin.com .td-a-rec' +zeekmagazine.com.td-all-devices + boniu123.cc.td_item + mobanwang.com.teagg$ + baiduyun.wiki.tecent-adsense + +duba.com.tempAd' + 3g.qq.com.template_gdt_div_blue + +affyun.com.text + +affyun.com .text ~ a$ +chineseinla.com .text-ads-col  + baidu.com.text-advertise- + fastadmin.net.text-center > .carousel& + 1010dy3.com.text-center[style] + baidu.com.text-link-ads' +auto-online.com.tw .text_links_h6 + maomaomom.com!.textwidget > table[width="1050"]# + +ruyo.net.textwidget a > imgA + cmsky.com0.textwidget a[href^="http"]:not([href*="cmsky"]) + +10fang.com.tfy-ab + +bmlink.com.tg + acgbuster.moe .tg-inner +so.com.tg-wrap-async + e0575.com.tg1 + e0575.com.tg2 +outofmemory.cn.tgBar + naifei.im.tg_w + sogou.com .tgad-box$ + www.sogou.com.tgad-box + div + sogou.com .tgad-title5 +firefoxchina.cn.theme-618 .theme-side-bg .mod! +firefoxchina.cn +.theme-adv+ +firefoxchina.cn.theme-adv + .bottom. +firefoxchina.cn.theme-side-bar-coupletA +firefoxchina.cn +firefox.com.cn.theme-side-bar-priorityX +firefoxchina.cn +firefox.com.cn/.theme-side-bar[trace-key="ad_theme_skin_link"]' + isiyuan.net + +dlemm.cn.themead + cnool.net .third-bannere +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.thread_dir_adg +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.thread_local_58 + +jbtalks.cc .threadadI + iqiyi.com8.thumbnail_item[href^="http"]:not([href*=".iqiyi.com/"])# + speedtest.cn.ticket618_logo +163.com .tie-ad-barO + news.qq.com<.time > a[style="position: absolute;top: -8px;left: 296px;"]$ +json.cn.tip[target="_blank"] + +2345.com .tip_stopXP + mail.qq.com .tipbook-top& + pilipali.cc.tips-widget-weixin + 3gsc.com.cn.tipsA + +jb51.net .tipsa_ds¹ + +gezila.com .tishi + dl' + so.131458.com.tishi:first-child2 + guozhivip.com.tit > a[style="color: #f80"]N + sitv.com.cn + gamefy.cn..tit > span[style="float:right; width:285px;"]* + +asp300.com + +asp300.net +.tit01 > a* + +asp300.com + +asp300.net +.tit02 > aM + bilibili.com9.title > span > a[href^="http"]:not([href*=".bilibili."])* + +hao123.com.title-wrap + .right-img! + gucheng.com.title_ad_time! + gucheng.com.title_down_ad + +chinaz.com .titright + www.duba.com.tiyan_a +image.baidu.com.tjImgli +image.baidu.com.tjad + mtrend.cn +.tjlanmu_2 + cnbeta.com.tw.tks +qq.com.tl_ad! +tieba.baidu.com +.tl_spread + manmanw.net.tlads + esnai.com.tlgg + +maxthon.cn .tmall-nav-v2& + booom.net +x6d.com +.tmall_tab +qq.com.tmallredpacket +qq.com +.tmallskin + sxrom.com.tmk5 +element-plus.gitee.io.toc-content > .m-t-16px/ + +zol.com.cn + pc841.com.today-hot-layer + muchong.com .todayhot +weather.com.cn.tong + +dngz.net.tongji + gamefy.cn.tonglan + qilindao.com +.tonglanAd$ + chinanews.com.tonglan_advert + 3dmgame.com .tonglona_1 + 3dmgame.com .tonglona_2 + 3dmgame.com .tonglona_3 + 3dmgame.com .tonglona_4! + loldk.com.tools-recommend  + meizhou.com .top + .w1000 + +2345.com .top > .fredX + +toolfk.comF.top > div[style="font-size: 12px;text-align: center;margin-top:6px;"] + midifan.com.top-aaa  + 10jqka.com.cn .top-ad-box + baidu.com .top-ad-cont + +85wp.com .top-ad-img + +vansky.com .top-ad-link  + nanfengyl.com .top-ad-txt= + leiphone.com + baixing.com + sina.com.cn .top-banner$ + baidu.com.top-banner-ad-wrap+ + 10jqka.com.cn.top-bar-fl > .top-hot + +eeyy.com.top-bg! + +2345.com.top-browser-wrap +163.com .top-gg-area + taihainet.com .top-info + +2345.com.top-lvy + eelly.com .top-picture( + +maxthon.cn.top-right-pop-wrapperm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.top-sec + .middle-sec + ettoday.net.top-sky + +hao123.com .top-test + ifeng.com.top-tg +shaoxing.com.cn.top2 + +52wubi.com.top960 + ifeng.com .topAdBox– + ltaaa.com.topAds2* + cntour2.com + baidu.com +.topBanner + +howbuy.com .topBigAd + sports.qq.com +.topBnaner + +timedg.com .topCrossAd + +hupu.com.topPub + +afzhan.com .topRightAdv + hao123.cn.top_2_2 + 51wangdai.com.top_AD + +pjtime.com.top_R+ + +newduba.cn + +duba.com .top_ad_tmallD + xitong8.com + +qudong.com + 40407.com +lzep.cn .top_banner + +cngold.org +.top_bigad + +itdog.cn .top_contents + +2345.com .top_news + +jmw.com.cn.top_pic + +bodu365.co .top_s_ad + +bodu365.co .top_show! +smm.cn.top_taishan_jinzhu€ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com).top_toutu_admarks + .tbui_slideshow_list\ + neotv.com.cn + changsha.cn + sina.com.cn + +jrj.com.cn +163.com +sina.cn.topad + +itavcn.com .topadvzone+ + yuepuwang.com + dayanzai.me.topban1 + pyccoo.cn + +21ic.com +qq.com +.topbanner! +wenxuecity.com .topbannerw + kocpc.com.tw .topbarad + chromecj.com .topblock + +srzc.com.topggS + bilibili.com?.topic-preview > li > a[href^="http"]:not([href*=".bilibili."])? + bibgame.com,.topicContent > font[color="red"]:last-child9 + qzone.qq.com%.topic_item[data-url*=".gdt.qq.com/"]( + makaidong.com + +jb51.net.topimg + +hy5.com.cn +.toplogoad + uuzzw.com .topmedia +163.com .topnews_ad + +hy5.com.cn .toppicad" +zhujicankao.com .topsss-111 + +meizhou.cn .toptonglan + +hy5.com.cn .toptxtad' + +ld0766.com + jurong.cn.totalad/ +wapwenku.baidu.com + wk.baidu.com.tout +chinanews.com.cn.tp_adv + +qyun.vip.tp_advertising + demaxiya.com.tp_box( + +suopao.org.tr3.t_one[onmouseout]% + track718.com.track-adsense-ad$ + track718.com.track-search-ad + ifeng.com.trade& + dcfever.com.trading_top_banner! +chinabidding.com.cn.train' +dict.baidu.com.tran-download-ad* +fanyi.baidu.com.trans-side-ad-wrap# + +cnki.net.translateOutAdLink  + +hao123.com.treasure-game  + +hao123.com.treasure-item2 +megatime.com.tw + pchome.com.tw +.tripplead$ + +huya.com.tt[style*="1200px"] +7060.la .tuiguang + m.hao123.com.tuizhan + +meizhou.cn.tuwengg% + +amz123.com.two-activity-style +qq.com .txp_ad_link + +chinaz.com .txtAdBox + +mydigit.cn.txtMesÆ + cntour2.com .txtPicAd + ltaaa.com.txtads +500.com.tz_pai + mobile01.com .u-ad-image  +onlinedown.net +.u-btn-gao! +onlinedown.net .u-btn-safeA + yxdj.com.cn + kkpan.com + +qqtn.com + +smzy.com .u-gs-btn + +smzy.com +.u-gs-btn2 +163.com .u-index-ad + sogou.com +.u-page-gg` +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com .u9_aside_ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.u9_head  +163.com.uc-fixed-ad-wrap + +mwrf.net.uc1_focus_pics + libaclub.com.ui-ad + libaclub.com +.ui-adsame + +duowan.com .ui-business% + m.nownews.com.ui-footer-fixed0 +chunyuyisheng.com.ui-grid + .fixed-layer + 17travel.net .ui_adblockQ + kuaihou.com>.ul_Address[style="border-bottom:1px solid #ddd;width:280px;"] + hackhome.com.ul_ad + +131458.com .ulfooter_top + baidu.com .under-tips, +autohome.com.cn.union-ad-placeholder + baidu.com .union-tg + +wandhi.com .unit-100$ + mm-cg.com.ut1_img_content_js) + subaibai.com + ilxdh.com.v-modal# + baidu.com.v-s-tuiguang-wrap  + vuetifyjs.com .v-sponsors + steamstats.cn .v-window + +0598yu.com .v1100_ad + ifeng.com.vAdImg + ifeng.com.vAdbox + ifeng.com.v_adbox& + +2345.com.v_picConBox.height214 + douyu.com .vcode9-signG + suibiankan.co2.vddb + a,.vddb,.vddb_qq,style + div[id],a > video + +taoziba.cc +.vddb2 + a + +vgtime.com +.vgart_top + lenovo.com.cn.video + iqiyi.com.video-ad_left  + iqiyi.com.video-ad_right + +av.movie .video-banner + eastday.com .video-mask/ + bilibili.com.video-page-game-card-small$ + +porn5f.com.video-promote-adv) + +18av.pro.video-server > .inplayer + +ali213.net .video-window + aipai.com .video_gg + 7junshi.com .videoads0 + +mydigit.cn.view-hover[channelid="aitao"]0 + +mydigit.cn.view-hover[channelid="smzdm"] + +263y.com .view_abc + +lahoo.ca.view_page_ads + muchong.com.viewad+ +msn.cn.views-right-rail-top-display + +2345.com .vipTopBanner + +cztv.com.vivo$ +autohome.com.cn .vocalcon-btn + jlpcn.net.vodAd  + +hupu.com.voice-ad300-250 + +hupu.com +.voteIndexº* + dianping.com.votelist + .aside-boxJ +4gamers.com.tw4.vue-portal-target > div[style="min-height: 210px;"] + axios-js.com .vultr-desc + mydrivers.com .vwE9JmqU! +doii.cc.w-\[200px\].fixed +oneinstack.com.w-ad: +firefoxchina.cn#.w-full[track_key="adv_top_banner"]# + benxiang.com.w-hot-link-txt, + baidu.com.w-question-list[data-sign]! + +shm.com.cn.w1000.surround + pc841.com.w1050 + +516qq.cn.w1100 + pc841.com.w300! +weishangshijie.cn.w_bzb_1e +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.wanle_tab_tip + baidu.com.wapAd  +chinanews.com.cn.wap_adv + win7xzb.com.ware_gs^ +m.image.so.comH.waterfall > li[data-imgid] > a[href^="https://e.so.com/search/mclick?"]# +hoteastday.com .watermarh_ul + +2345.com.wawaji + 10jqka.com.cn.wbanner$ + codeforge.cn.webnotice-right0 +pconline.com.cn.website_recommend_banner + +eroacg.com.weimg1 + ckxxbao.com.weixin + ptbus.com +.weixin_ad +ip.cn .well > p > a + 52zpi.com.wenziad + baidu.com .wgt-ad-bmc  + baidu.com.wgt-ad-exp-pic + baidu.com.wgt-ads6 +muzhi.baidu.com.wgt-best-answer + script + div  + baidu.com.wgt-bottom-ask" + baidu.com.wgt-bottom-unionG +zhidao.baidu.com +power.baidu.com.wgt-clew[data-type="goods"]% +muzhi.baidu.com.wgt-container + baidu.com +.wgt-union$ +hualongxiang.com .wheelplayer + cnfol.com .wid325AdBox + cnfol.com .wid390AdBox + cnfol.com .wid595AdBox + cnfol.com .wid600Ad + cbmay.com.widgetN + +yii666.com<.widget-asst > p > a[href^="http"]:not([href*="yii666.com"])$ +shejidaren.com.widget-banner% + +liues.cn.widget-graphic-cover& + +hao123.com.widget-hlbar > span# + +hao123.com.widget-topbanner + +2yjw.com .widget-topsg + didispace.comR.widget-wrap > p[style="text-align: left;padding-bottom: 20px;line-height: 30px;"] + +97hj.net .widget-zfb$ +doubibackup.com .widgetRoller  + +fulibl.com.widget_banner# + +hackhw.com.widget_content_be +zhujiceping.com + laoliublog.cn + winandmac.com + zouaw.com + +ruyo.net.widget_custom_html. + +22vd.com.widget_custom_html:last-child3 + ssr.tools".widget_custom_html:nth-child(n+2)# + 423down.com.widget_d_banner+ +jiayongluyou.com.widget_image_myimg& + flyzy2005.com.widget_kratos_adŠ +carrotchou.blog +landiannews.com +woniuyulew.com + laoliublog.cn + +abmedia.io + +appinn.com + +zhain8.com.widget_media_image, + meijumi.net.widget_metaslider_widget' +muzhuangnet.com.widget_sentence² + +acwifi.net .widget_ssr' + +lzdcctv.cn.widget_ssr > a > img8 + codeceo.com + fuli8.net.widget_text:first-child( + fulibl.cc.widget_text:last-child + +py91.net.widget_textads  + jsphp.net.widget_tuijian  + aeink.com.widget_ui_adsfp +fuliba2023.net +fuliba2025.net + 4spaces.org + +fuliba.net + +ypojie.com + uliba.net.widget_ui_orbui2 + +hit180.com .widget_ui_orbui:nth-child(-n+2)# + aeink.com.widget_ui_textads  + +swoole.com.wiki-resource +so.com.windisplayCell) +163.com.with-bot-ad > .arrow_down + +hao123.com.wm + woniupai.net +.wnp-adboxs +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com.worldcup_info_banner_dialog +141hongkong.com.wp.at + bestcclm.com +.wp.cl > a + +tropica.cn.wp1.a_t> + cangjige.net*.wp[style="height:36px;padding-top:15px;"]% + tui18.com.wp[style^="width:"]: +start.firefoxchina.cn.wrap > div[style]:last-child! + 99a21.com.wrap-head-spots" + tmioe.com.widget_image_img + +5yfz.com .wrapper > p1 +image.baidu.com.wrapper_dot_box.dot_black + +10fang.com +.wrapperbg" +wenku.baidu.com .wubai-wrap< + ikjzd.com+.wv-head-img > .wv-head-item-img:last-child2 + ikjzd.com!.wv-right-content > .imgTop-right + +52pk.com.wxbox + 55188.com.wz_text +eyy5.cn.wzgg + tmioe.com.ekssxhn# + tmioe.coma[href*=".zps.im"]! + +sohu.com.x-adv-band-panel" + +sohu.com.x-adv-flogo-panel# + +sohu.com.x-adv-linear-panel, + +sohu.com.x-adv-pause-nonlinear-panel! +liaoxuefeng.com +.x-sponsor( + tongxiang.net.x15sdv.display_3_3 +sina.cn.xc_da + +bejson.com .xf2-gg-left + uuzzw.com .xgtj-recom" + xinhuanet.com .xhdf_moreAdv + bkill.com .xiangguan-ad5 + +jisuxz.com + cr173.com + itmop.com .xiazaiqi + +pcworks.cn .xintheme-ad# + hgitv.com.xinwen_right_gg016 + muchong.com#.xmc_green + a[href^="creditshow."]% + muchong.com.xmc_viewthread_ad + kk200300.com.xuanfu + +21cn.com.xuantu + +u7u9.com .xw-right-ad + +my0832.com.xx_div +qq.com.xxskj + 58pic.com.xyyh + winwin7.com .xzbox-lf/ + +42xz.com.xzbox-lf > ul:not(:last-child)& +5119.cn.xzbtn_new + .xzbtn_new" + pcsoft.com.cn .xzdz_huodong + mydrivers.com .yTv3AMqP + chinayk.com +.yb_banner + +zhcw.com.ycxdZwº +Kÿï08@R;114la.com#?#.sortItem:-abp-has(> dIV[class] > .FeedADClose) +=ÿï08@R-141jj.com#?#li:-abp-contains(/贊助|推廣/) +Wÿï08@RG159i.com#?#.style15:-abp-has(> img[src="//159i.com/images/arrow3.gif"]) +7ÿï08@R'159i.com#?#:-abp-has(> img[src*="gif"]) +0ÿï08@R 159i.com#?#div:-abp-has(> img+a) +Zÿï08@RJ1point3acres.com#?#div[id^="portal_block"]:-abp-has(a[href*="fiverr.com"]) +Bÿï08@R22345.com#?#.pic:-abp-has(a[href^="http://g.wan."]) +9ÿï08@R)3dmgame.com#?#.downl_list:-abp-has(style) +gÿï08@RW3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com#?#div:-abp-has(>.openBox-container) +iÿï08@RY423down.com#?#.post-related > ul > li:-abp-has(> a[href^="http"]:not([href*="423down."])) +Wÿï08@RG423down.com#?#li:-abp-has(> .pic[href^="http"]:not([href*="423down."]))! + +1kkk.com +dm5.com.yddiv + acg17.com.yhq + +fdc.com.cn .yifangbanner  +greenxiazai.com .yinsu_xz + baidu.com .yitiao-box + ifeng.com.yiyuan4 + fx168.com#.yjl_fx168_focus_TodayNews_jiasheng +9ku.com.youFix + ysxs8.vip .ysxs8_w960_1 + +92ghai.com .yttl_x_g% + xiadele.com.yun-advertisement +qq.com .yw-gg-float + +cnlmjx.com.yw_ad  + eastday.com .yxxf-warpper) + 24k99.com + fx168.com .yy_guangao! + ifeng.com.yy_right_bottom$ + yiyouliao.com.yyl-ads-swiper, + yiyouliao.com.yyl-weiruan-ads-swiper + +zhcw.com.yzjggw  + +ali213.net.zadmainholder +qixingquan.com.zdm  +jinghuasoft.com .zhifubao + sina.com.cn .zhitou-wrap" +wenku.baidu.com .zhixin-ads$ +wenku.baidu.com .zhixin-right + sina.com.cn.zhongce + +drvsky.com +.zhongdian + +lookae.com +.zhongjian +qingdaonews.com.zhqd + cgdyx.com .zib-slider + fx168.com .zixun_ad + brushes8.com.zjianad + +qinbing.cn.zjlmad + jqzb.com.cn.zk_xf  + 91danji.com .zlVideTowNav + silver.org.cn .zl_login + +zol.com.cn +.zol-eshop + +efu.com.cn .zs_banner_a + zuanke8.com.zuanpw +php.cn.zwwad$ + tuliu.com.zx-advertising-box + 19lou.com.zx-link + foodmate.net.zx_ad + wdzzz.com.zz + iqiyi.com.zzVideo + wdzzz.com.zz_nrD + sina.com.cn1:not(.BigPic) > a[href*="sax.sina.com.cn/click?"]9 + iqiyi.com(:not(.qy-index-page) > div[id^="100000"]ƒ +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com,:not(.tbui_slideshow_slide) > div[data-daid]% + sogou.comA[data-log*="PicAd"]5 +programmer-club.com.twA[href*="/ADRedirect."]$ + +24en.comA[href*="/ClickAd?"]2 + +020job.com A[href^="/Click.aspx?AdPageID="]õ1 + gamicsoft.comA[onclick*="'Advertisement"]= + gamicsoft.com(A[onclick*="'Advertisement"] + .absolute; + +gmgard.com + +hggard.comA[onclick*="Advertisement"] +cnxz.cn[class*="-ad"]( + +jmw.com.cn[class^="advertising"]0 +msn.cn"[class^="articlePage_eoabContent"]  + 3czol.com[class^="ban_"]& + gamme.com.tw[class^="sidead_"] + +dable.io [data-ad_id]$ +sina.cn[data-href*="://sax"], +sina.cn[data-href*="://sax"] + aside9 +sina.cn*[data-href*="://sax"] + aside + blockquote% + sina.com.cn[data-info^="ad_"]' +sina.cn[data-videojc*="://sax"]) +qq.comt-params*="ad_creative_"] +sina.cn[href*="://sax"] +39.net [id^="ac_im"] + jjwxc.net [id^="adp_"]* + ksbbs.com + kshot.com [id^="ads_"]h +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com[id^="spreadad_"] + sinolub.com [id^="xker"]# +3322.cc[onclick*=".gsxzq."] +32r.com[onclick*="@"]' + +42xz.com[onclick*="godownload"] + +liaocao.tv [onclick]* + nfmovies.com[onclick^="openurl()"]( +duonaolive.com[onclick^="track"]: + iplaysoft.com%[style*="width:3"][style*="height:2"]H + netflytv.xyz + +netfly.fun + netfly.tv[style^="display: flex;"]? +axutongxue.com +axutongxue.net[style^="height:58px;"]2 + fffdm.com![style^="width"][style*="height"], + kisssub.orga > img[src*=".0o0.ooo/"]A +ruanyifeng.com+a > img[src*="wangbase.com/blogimg/asset/"]5 + acgnx.net + +acgnx.sea > img[src^="/images/"]4 +tieba.baidu.com +wapp.baidu.com a.fixed_bar + +maiche.com +a.some-img$ + +chexun.coma[attr-outside-ad]; +wenku.baidu.com$a[class*="tiger-"][class*="-dialog"]6 + yahoo.com%a[class^="Pos"][href*=".promotions."]. + +hao123.coma[class^="gameyixing-link-"] +csai.cna[class^="gg"]+ + ditu.so.coma[class^="index-bcItem"]' + +164580.coma[class^="listindex"]- +sdo.coma[class^="side-nav-box-daoyu"] + +m4fz.com a[data-etime], +caibaojian.coma[data-href*="aliyun"]  +so.coma[data-log*="cpc"]5 + bilibili.com!a[data-target-url*=".taobao.com"]) + oschina.neta[data-traceid$="_ad"]> + oschina.net+a[data-traceid*="_detail_above_text_link_"]9 + oschina.net&a[data-traceid="explore_right_bar_70"]4 + oschina.net!a[data-traceid^="questionbanner"]4 + oschina.net!a[data-tracepid^="index_banner_"]* +feed.baidu.coma[data-type="ec_ad"]$ + aaaweb.cna[href$=".yhzu.cn"]( + 5217kdy1.xyza[href$="/smsf.php"]" + fastadmin.net a[href$="=="]+ + bilibili.coma[href$="_suning.html"]% + 17173.coma[href*="&ad_code="]" + hcbbs.coma[href*="&adid="]* +neatstudio.coma[href*="&cps_key="]. +ruanyifeng.coma[href*=".100offer.com"]- + backchina.coma[href*=".21usdeal.com"]" +9ht.coma[href*=".360.cn/"]åC + bilibili.com + longzhu.com +163.coma[href*=".admaster."]6 + itkeyword.com + +itboth.coma[href*=".aliyun."]A + boke112.com + whsir.com +mzh.rena[href*=".aliyun.com"]8 + +github.com&a[href*=".aliyun.com/minisite/goods?"]. +ruanyifeng.coma[href*=".apeclass.com"]  + acggd.coma[href*=".apk"]0 + +1314gl.coma[href*=".apkpackagesys.com/"]$ + iqiyi.coma[href*=".banggo."]1 + backchina.coma[href*=".cardbenefit.com/"]/ + 3dmgame.coma[href*=".chuangmengsy.xyz"]K + pansoso.com + +kengso.com + +xgsoso.coma[href*=".click.taobao.com"]5 + cnbeta.com.tw + +qudong.coma[href*=".ctyun."], + mydrivers.coma[href*=".dangbei.com"], + bilibili.coma[href*=".doubleclick."]4 + cnblogs.com!a[href*=".gridsumdissector.com/"]* + +ctfile.coma[href*=".henghost.com"]. +hanjutv2020.coma[href*=".hujiang.com"]- + +pexels.coma[href*=".istockphoto.com"]½ +zhanzhangb.com + rufengso.net + comicat.org + dapenti.com + kisssub.org + douyu.com + iqiyi.com + jinti.com + libvio.me + mvcat.com + +v.qq.com +mzh.rena[href*=".jd.com"]5 + mydrivers.com + wmzhe.coma[href*=".jd.com/"]' + +acglala.cca[href*=".jigdh.com"]0 + chinanews.coma[href*=".jiuxianfeng.com"]" + +tiexue.neta[href*=".junp"]- +ruanyifeng.coma[href*=".kaikeba.com"]+ +ruanyifeng.coma[href*=".ke.qq.com"], + doudoudm.sitea[href*=".kxyike.com/"]) + gucheng.coma[href*=".liaogu.com"]$ + +apprcn.coma[href*=".lizhi."], + jitashe.orga[href*=".makeding.com/"]' +sina.cna[href*=".maozhuar.com"]) + douyu.coma[href*=".miaozhen.com"]" + iqiyi.coma[href*=".oppo."]% + 6park.coma[href*=".php?key="]) + +v.qq.coma[href*=".renrendai.com"]+ + makepolo.coma[href*=".rong360.com"]+ + touchgal.orga[href*=".sailing.ink"]% + ccav5.coma[href*=".sinaimg."]$ + +chdbits.coa[href*=".taobao"]ê + 52movieba.com + cosersuki.org + haochi123.com + ifenpaidy.com + mydrivers.com + bimiacg4.net + bimiacg5.net + hexieshe.com + hexieshe.xyz + speedtest.cn + tingroom.com + touchgal.org + comicat.org + hexieshe.cn + jitashe.org + kisssub.org + languang.co + oyksoft.com + souxue8.com + +acglala.cc + +eroacg.com + +gmgard.com + +hggard.com + +hmghmg.com + +hmoe11.net + +jitapu.com + +kelatv.com + +xxshe.info + awaker.cn + ccav1.com + cgown.com + cn163.net + epinv.com + galacg.me + idanmu.ee + mtrend.cn + whsir.com + xxshe.xyz + +nxing.cn +llss.bz +mzh.rena[href*=".taobao.com"]* + boke112.coma[href*=".tencent.com"]Œ +chinalawedu.com + acgdoge.net + +acglala.cc + +gmgard.com + +hggard.com + douyu.com + iqiyi.com + jinti.coma[href*=".tmall.com"]8 +xianzhenyuan.cn!a[href*=".tmall.com"]:not(#xztba)2 + kdnet.net!a[href*=".tmall.com/?spm="] > img$ + +sojson.coma[href*=".upyun."]( + eastday.coma[href*=".uugtv.com"]# + +v.qq.coma[href*=".vip.com"]1 +dm5.com +dm5.hka[href*=".wannaplay.cn"]. + imydl.coma[href*=".wuluoyun.com/aff/"]' + +tiexue.neta[href*=".wx359.cn/"]% + moe-acg.coma[href*=".x8o.de"]+ + +downkr.coma[href*=".xitongzhijia."]- + +toolfk.coma[href*=".xiuxiandou.com/"]3 + ifkdy.com + ilxdh.coma[href*=".yhm11.com"]' + douyu.coma[href*=".youzan.com"]8 + +newduba.cn + +duba.coma[href*=".zhhainiao.com/"]4 + +159i.com$a[href*="/"]:not([href*="159i.com"])& + +techug.coma[href*="/222.html"]& + +plus28.coma[href*="/?Extend="]/ + ctanet.cna[href*="/GoTo.asp?ID="] > img& + kaitao.cna[href*="/a.php?id="] + +qyun.vipa[href*="/ad."]K +instrument.com.cn +manhuabika.com + chuandong.coma[href*="/ad/"]$ + xitek.coma[href*="/adclick"]% + bjnews.com.cna[href*="/ads/"]ƒ) + freedidi.coma[href*="/bittly.cc"]& + +techug.coma[href*="/eee.html"]! + galacg.mea[href*="/game"]% + 55188.coma[href*="/gg-link."] + ccav1.coma[href*="/go"]( + 423down.coma[href*="/go."] > img5 +php.cn'a[href*="/go."]:not([href*="Fwww.php"]) +27ka.cna[href*="/go/"]7 + xiaopian.com + +dy2018.coma[href*="/htmlcode/"]% + cableabc.coma[href*="/img1/"]& + ooopn.coma[href*="/jump.html"]( + ikandy1.coma[href*="/ky-a.html"]$ + +ithome.coma[href*="/lapin."]* + +ithome.coma[href*="/lapin."] + .ad( + +jandan.neta[href*="/money.php?"]- + ikjzd.coma[href*="/redirect-ad-url?"]' + +e0575.cna[href*="/showad.php?"], + bt1207ma.xyza[href*="/uuribao.com/"]7 + bt1207ma.xyz#a[href*="/uuribao.com/"] + .caption* +digitimes.com.twa[href*="/webad/"]  + +myk3.coma[href*="?aid="]* +eworldship.coma[href*="ad_click&"]* +guilinlife.coma[href*="adclicks&"] + +159i.coma[href*="ai69"]' + +v.qq.coma[href*="amway.com.cn"]" + kanqiuba.neta[href*="bet"]H + +preface.ai + 141jj.com + r3sub.com +jumi.sua[href*="bit.ly"]& + 6park.coma[href*="bpropolis."]/ + dapenti.coma[href*="cashier.iqiyi.com"]m +zhanzhangb.com + itkeyword.com + editcode.net + +itboth.com + +ruyo.neta[href*="cloud.tencent.com"]W + bilibili.comCa[href*="cm.bilibili.com"][data-target-url*="gaoneng.bilibili.com"]p + bilibili.com\a[href*="cm.bilibili.com"][data-target-url*="gaoneng.bilibili.com"] + .bili-video-card__infoh + bilibili.comTa[href*="cm.bilibili.com"][data-target-url]:not([data-target-url*=".bilibili.com/"])� + bilibili.comma[href*="cm.bilibili.com"][data-target-url]:not([data-target-url*=".bilibili.com/"]) + .bili-video-card__info% + china.com.cna[href*="dwz.cn"]) + +tiexue.neta[href*="game.tiexue."]' + 6park.coma[href*="geekbuying."]0 + i-part.com.twa[href*="goo.gl%2FW9SXr1&"]- + fishpi.cna[href*="guangdianhong.com"]+ + itxueyuan.coma[href*="guanggaowei"]] +mall.iqiyi.com + so.iqiyi.com + iqiyi.com&a[href*="http://mall.iqiyi.com/item/"]' + +c4dsky.coma[href*="ibaotu.com"]' + jinti.coma[href*="immobel.com"]$ + 6park.coma[href*="jdoqocy."]) + m.baidu.coma[href*="m.lecai.com"]$ + ccav1.coma[href*="meidebi."]% + +nfuwow.coma[href*="myyj.net"]# + +kafan.cna[href*="nameidi."]) +landiannews.coma[href*="ourl.co"]% + +zhuna.cna[href*="quchuchai."]% + +dmzj.coma[href*="qunhei.com"]8 + solarbe.com%a[href*="redirect"] > img[width^="3"]# +500.coma[href*="sanyol.cn"]5 + kxmusic.top + +kxmusic.cna[href*="smsf8.com"]# + dapenti.coma[href*="sq.cc"]) + mtrend.cna[href*="taomoubao.com"]+ + jinti.coma[href*="tempurchina.com"]" +58.coma[href*="to8to.com"]$ + boke112.coma[href*="url.cn"]( + enjoymore.funa[href*="urlto.pw"]4 + +wan.jd.com +jd.coma[href*="wan.jd.com/"]* + tingroom.coma[href*="weidian.com"]o +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.coma[href*="www.clinique."]& + fxykx.coma[href*="zyttx.com/"]ŠP + +csdn.net@a[href="//gitbook.cn/new/gitchat/activity?utm_source=csdnblog1"]' +chinanewsx.coma[href="/about/"], + +ithome.coma[href="/html/363216.htm"]. +ziqiangxuetang.coma[href="/j/coding/"]' + bookrbx.coma[href="/rmtj.html"]2 + bilibili.coma[href="/video/av8587236/?tg"]. + +xc6b.coma[href="http://61.160.236.52"]P + cari.com.my=a[href="http://banner.cari.com.my/daybanner/?page=promotion"], + ccav1.coma[href="http://duan.es/1v"]2 + +github.com a[href="http://gk.link/a/103EK"]8 + wanmeikk.me%a[href="http://qq.wanmeikk.me/index"]0 + +cjw123.coma[href="http://tb.cjw123.com"]B + sports.qq.com-a[href="http://teramont.svw-volkswagen.com/"]? +zhaohuangpian.net&a[href="https://galaxymedia.xyz/app/"]4 + hqyman.cn#a[href="https://hqyman.cn/taobao/"]. + 94itv.appa[href="https://leo535.com/"][ +autohome.com.cnDa[href="https://m.autohome.com.cn/activity/special/autohome29.html"]5 + +github.com#a[href="https://start.aliyun.com/"]6 + 2dway.com%a[href="https://www.2dway.com/5244/"]; +centoschina.cn%a[href="https://www.linuxprobe.com/"]7 + +mg21.com'a[href="https://www.mg21.com/zunjiazq"]U + +acgcku.comCa[href]:not([href*="acgcku."]) > img[src*="acgcku.com/wp-content/"]) + +159i.coma[href^="//159i.com/tz/"]- + bigear.cna[href^="/?module=dantian&"] + +77222.cna[href^="/aa/"]. + xiaodao0.com +x6d.coma[href^="/ad."]  + vk922.coma[href^="/ad/"]! + 1010dy3.coma[href^="/go"]% +chinanewsx.coma[href^="/go/"]' + +szjjzs.coma[href^="/pic/tiao/"]3 + chinacsbs.coma[href^="/plus/view.php?aid="]) + 96weixin.coma[href^="/show/ads/"]# + fx112.coma[href^="/union."] + +jr35.xyza[href^="ad."]Z + 131400.best + +vikacg.com + +vikacg.xyz+a[href^="http"] > img[src*="/assets/next/"]5 + boniu123.cc"a[href^="http"] > img[src*="/bn_"]I + +yigujin.cn7a[href^="http"]:not([href$=".html"]) > img[src*="/tp/"]N + 55188.com=a[href^="http"]:not([href*=".55188."]) > img[src*="/portal/"]H + +90oo.com8a[href^="http"]:not([href*=".90oo."]) > img[src*="/tp/"]F + boyoushe.com2a[href^="http"]:not([href*=".boyoushe"]) > .j-lazyW + chapaofan.comBa[href^="http"]:not([href*=".chapaofan."]) > img[src*=".sinaimg."]P + +jrzj.com@a[href^="http"]:not([href*=".jrzj."]) > img[src^="https://img."]g +peizimenhu.comQa[href^="http"]:not([href*=".peizimenhu."]) > img[src^="data/attachment/portal/"]l + 18avinin.comXa[href^="http"]:not([href*="18avinin."]) > img[src*=".18avinin.com/wp-content/uploads/"]T + 18moe.vipCa[href^="http"]:not([href*="18moe.vip"]) > img[src*="tc.18moe.net"]C + wn789.com2a[href^="http"]:not([href*="://www.wn789."]) > img[ + stock87.comHa[href^="http"]:not([href*="stock87."]) > img[src*="uploadfiles/image/"]) + hepuwang.coma[href^="http://ad."]6 + m.nownews.com!a[href^="http://ad1.nownews.com"]` +big5.china.com.cnGa[href^="http://big5.china.com.cn/gate/big5/"]:not([href*="/science."])M + mydrivers.com + oschina.net + +chinaz.coma[href*="click.aliyun.com"]= + 52che.com,a[href^="http://count.52che.com/goto.html?"]2 + +ithome.com a[href^="http://e.cn.miaozhen."]5 + hc360.com$a[href^="http://e.cn.miaozhen.com/"]; + wenda.so.com'a[href^="http://e.so.com/search/eclk?"]0 + news.163.coma[href^="http://g.163.com/"]6 +pconline.com.cna[href^="http://ivy.pconline."]/ +sm.cn"a[href^="http://m.sm.cn/adclick?"]6 + sports.qq.com!a[href^="http://market.1hai.cn/"]< + muchong.com)a[href^="http://muchong.com/bbs/a"] > img/ +163.com a[href^="http://popme.163.com/"]< +ruanyifeng.com + boke112.coma[href^="http://t.cn/"]1 + mtrend.cn a[href^="http://tao.mtrend.cn/"]1 + +9tour.cn!a[href^="http://union.zhuna.cn/"]„1 +qq.com#a[href^="http://www.10100000.com/"]1 + v.baidu.coma[href^="http://www.602.com/"]S +wapwenku.baidu.com + wk.baidu.com)a[href^="http://www.baidu.com/cpro.php?"]K +beephone.com.tw4a[href^="http://www.beephone.com.tw/adlink.php?id="]; + loldk.com*a[href^="http://www.esportsclub.cn/home/"]@ + +t66y.com0a[href^="http://www.viidii.info/?https://po88_"]U + +t66y.comEa[href^="http://www.viidii.info/?https://po88_"] ~ :nth-child(-n+115)C + xiaopian.com + +dy2018.com!a[href^="http://www.xiacai.com/"], + ifeng.coma[href^="http://yemei.tv/"]5 + hexieshe.cn"a[href^="http://zd.zhiketong.cn/"], + ixueshu.coma[href^="https://adapi."]6 + iqiyi.com%a[href^="https://ads.game.iqiyi.com"]1 + aibing.cc a[href^="https://aibing.cc/go/"]7 + oschina.net$a[href^="https://citiccard.wjx.cn/"]1 + +acfun.cn!a[href^="https://click.dsp.com/"]F + +github.com4a[href^="https://cloud.tencent.com/redirect."] > img8 +chongbuluo.com"a[href^="https://cn.udacity.com/"]D + 3dmgame.com1a[href^="https://down.hyds360.com/"] > div[style]- + boke112.coma[href^="https://dwz.cn/"]/ + ditu.so.coma[href^="https://e.so.com/"]1 + 18avinin.coma[href^="https://forms.gle/"]- + nownews.coma[href^="https://goo.gl/"]: + netbian.com'a[href^="https://ibaotu.com/guanggao/"]/ + +acgfta.coma[href^="https://ifift.com/"]6 + right.com.cn"a[href^="https://jd.dangbei.com/"]3 +ruanyifeng.coma[href^="https://ke.qq.com/"]0 + fun1shot.coma[href^="https://kenio.cn/"]/ + +linux.cna[href^="https://linux.cn/go/"]2 + +github.com a[href^="https://openwrite.cn/"]o +ziqiangxuetang.com + fastadmin.net + cnblogs.com + cjjjs.com(a[href^="https://promotion.aliyun.com/"]. + +kkw360.coma[href^="https://sourl.cn/"]1 + +weebly.coma[href^="https://www.ebay.com"]= + fastadmin.net(a[href^="https://www.fastadmin.net/go/"]B + +howbuy.com0a[href^="https://www.howbuy.com/advertisement/"]; + +kelatv.com)a[href^="https://www.kelatv.com/api/go."]7 + +sojson.com%a[href^="https://www.sojson.com/ad/"]  + iqiyi.coma[id^="100000"]! + +mse.360.cna[id^="banner"]0 + +moxing.neta[marked][href*=".taobao.com"]1 + frdic.com + godic.neta[onclick*="/ads/"]& + pcsoft.com.cna[onclick*="_ad"]* +caibaojian.coma[onclick*="aliyun"]' +caibaojian.coma[onclick*="aly"]6 + jokerlu1.com + jokerlu.coma[onclick^="_czc."]  + +52pk.coma[onclick^="ga"]< +edc1014070.pixnet.neta[onmouseover*="_openBrWindow"]B + +pixnet.net0a[onmouseover*="_openBrWindow('https://goo.gl/"]' + house365.coma[style*="1200px;"]# + +hdzone.orga[style*="fixed"]$ + huaren.tva[style*="height:"]O + +acgsou.com + 36dm.club + +36dm.com$a[style="color:red;"][href*="show-"]3 +supercloudsms.coma[style="display: block;"]E + +wandhi.com3a[style="display: inline-block;position: relative"]] +hanjutv2020.comFa[style="width: 1120px;height: 70px;overflow: hidden;display: block;"], + +houdao.coma[style^="background:url"]/ + html-js.coma[style^="margin-top:20px;"]F + chchzhan.com + xxizhan.com#a[style^="position:fixed;z-index:"]6 + +nfstar.net$a[target="_blank"] > .img-responsiveA +aishoujizy.com+a[target="_blank"] > img[src^="/upload/1/"]` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width="320"]` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width="330"]` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width="900"]` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width="920"]` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width="950"]å +Hÿï08@R8ablesci.com#?#.fly-panel:-abp-has(img[src*="-hongbao."]) +dÿï08@RTamazon.cn#?#.s-result-item:-abp-has(> .s-item-container > h5 .s-sponsored-info-icon) +eÿï08@RUbaidu.com#?#.c-gap-bottom-small:-abp-has(>a>div>div[class^="jr-stock-open-account-"]) +^ÿï08@RNbaidu.com#?#.container:-abp-has(>.bottom-section>.item_voice_room[data-yysid]) +^ÿï08@RNbaidu.com#?#.container_frs:-abp-has(>.voice_room_card_frs[data-url*="yylive"]) +Tÿï08@RDbaidu.com,bdimg.com,tieba.com#?#.l_post:-abp-has(div[class*=" fc-"]) +]ÿï08@RMbaidu.com,bdimg.com,tieba.com#?#.thread_item_box:-abp-has(div[class*=" fc-"]) +‰ÿï08@Rybdimg.com,tieba.baidu.com,tieba.com#?#.tl_shadow:-abp-has(> .ti_item > .ti_infos > .label_text_tag:-abp-contains(广告)) +Mÿï08@R=benyixiwang.com#?#p:-abp-has(a[href="http://www.sm9166.com"]) +jÿï08@RZbilibili.com#?#.eva-extension-body > .bili-video-card:-abp-has(.bili-video-card__info--ad) +rÿï08@Rbbilibili.com#?#.video-card-common:-abp-has(>.card-pic>a[href*="cm.bilibili.com"][data-target-url]) +†ÿï08@Rvbilibili.com#?#.video-page-special-card-small:-abp-has(>.card-box>.info>a[href^="http"]:not([href*=".bilibili.com/"])) +`ÿï08@RPbing.com#?#li[class="b_algo"]:-abp-has(.b_attribution[data-partnertag]+p[class]) +Aÿï08@R1btmulu.com#?#.item:-abp-has(> a[target="_blank"]) +Gÿï08@R7cartoon18.com#?#.row:-abp-has(.badge:-abp-contains(ad)) +7ÿï08@R'chbeyond.cn#?#a:-abp-has(> .xcybk-adfg) +Pÿï08@R@cnyes.com#?#.content-main > div:-abp-has(>div[id^="div-gpt-ad"]) +Jÿï08@R:cnyes.com#?#article > div:-abp-has(>div[id^="div-gpt-ad"]) +Fÿï08@R6copyfuture.com#?#.tabbable > div:-abp-contains(å®�红) +aÿï08@RQczzy.top,czzy77.com#?#.swiper-slide:-abp-has(a[href^="http"]:not([href*="czzy"]))` + 18board.com + 18board.net + 18p2p.com + +18p2p.tv%a[target="_blank"] > img[width^="72"]5 + +pinggu.org#a[target="_blank"][href*=".cda.cn"]J + muchong.com7a[target="_blank"][style="display: inherit!important;"]* + pixiv.neta[target="premium_noads"]# + zh141.coma[title*="廣告"]/ + creaders.neta[title^="www.136888.com/"]6 +firefoxchina.cna[track_key="outside_left_adv"]> +firefoxchina.cn'a[track_key="outside_right_bottom_adv"]1 +firefoxchina.cna[track_key="sites_saoma"]' + gameinns.coma[url^="/api/ads?"] + +duba.com a[w="topad"]2 +element-plus.gitee.ioaside > .page-content- + idanmu.eeaside > div[class="widget "]; + cn.bing.com#?&b_results > li:-abp-has(.b_adProvider)3 +api.so.lianmeng.360.cn + pos.baidu.combody3 + +qzwb.com#body > .area[style^="height:60px;"]- + +lzcfz2.com + +lzcfz7.xyz body > .cl.wp; +yemancomic.com + 2cycomic.com + whnyd.combody > a% + bkill.combody > a:first-child# + +ygdy8.ccbody > a[href^="/"]. + fastadmin.netbody > a[target="_blank"]9 +yemancomic.com + 2cycomic.combody > div > centerm +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.combody > div[ad-dom-img]% + +tiexue.netbody > div[onclick]C + dytt5.net2body > div[style="overflow: hidden;"]:nth-child(3)@ +fengchedmp.com + hdwan.net + +7itv.combody > div[style]2 + +wendu.cn"body > div[style^="width:1000px;"]# + btmovi.inbody > span[style]( + +zjst.netbody > style ~ *,.vod-gd. + +939394.xyzbody > table:first-child imgE +ahtv.cn6body > table[style^="text-align:center; width:960px;"]9 + +62422.cn)body > table[width="778"][align="center"]( +msn.cncasual-games-carousel-card +msn.cncs-native-ad-cardZ +6parknews.com#?Cd_list > ul > li:-abp-has(a[href^="http"]:not([href*="6parknews"]))/ + steamcn.comdiv > a[href*=".taobao.com"]1 + bitauto.comdiv > ins[data-type="ad_play"]! + 324324.cndiv > script ~ a, + cq.qq.comdiv.clearfix[style*="1000"]$ +duonaolive.comdiv.nav-mobile[ + baidu.com + bdimg.com + tieba.com0div.thread_item_box[style="position: relative;"] + weibo.com div[ad-data] + fx168.com div[adisload]- + +hao123.comdiv[alog-alias="hot-goods"]¦5 +sunofbeach.net + +anjuke.comdiv[class$="-ad"]) + elecinfo.comdiv[class$="-advert"]( + baidu.comdiv[class$="-ecom-ads"]' + +anjuke.comdiv[class$="-poster"]H + oschina.net5div[class$="Content"] > p[style="margin:0 0 10px 0;"]" + fx168.comdiv[class$="_ad"]' + 19lou.comdiv[class$="ad-cycle"]$ + +pixnet.netdiv[class*="-Ad-"]& + chuandong.comdiv[class*="-ad"]$ + +pixnet.netdiv[class*="-ad-"]# + yiche.comdiv[class*="-adv"]& + +hupu.comdiv[class*="-banner_"]) + eprice.com.twdiv[class*="-popup"]) + ganji.comdiv[class*="-recommend"]( +soundofhope.orgdiv[class*="AD_"]& + ifeng.comdiv[class*="SlideAd"]' + ganpapa.comdiv[class*="_9cb0d"]% + makepolo.comdiv[class*="_ad"]& + silver.org.cndiv[class*="_gg"]) + +2345.comdiv[class*="act-navspec"]J + +2345.com:div[class*="act-open"] > :not(.close):not([class*="mask"])' + +hupu.comdiv[class*="ad200-200"]' + +hupu.comdiv[class*="ad240-200"]& + +hupu.comdiv[class*="ad728-90"]& + +hupu.comdiv[class*="ad980-60"]( + +ltn.com.twdiv[class*="adHeight"]7 +52solution.com + imydl.comdiv[class*="banner"]' + +efu.com.cndiv[class*="banner-"]$ + yahoo.comdiv[class*="bg-Ad"]$ +udn.comdiv[class*="edn-ads"]( + sina.com.cndiv[class*="farmpop"]) + baidu.comdiv[class*="fc-"][tplid]& + fx112.comdiv[class*="floatap"]8 +autohome.com.cn + sina.com.cndiv[class*="game"]" + +qinbing.cndiv[class*="gg"]- +chinatimes.comdiv[class*="googlead_"]# + +hz66.comdiv[class*="lb_gg"]% + steamcn.comdiv[class*="liz_"]3 + steamcn.com + +keylol.comdiv[class*="rnd_"]5 + pixabay.com"div[class*="sponsoredWithResults"]= +wenku.baidu.com&div[class*="tiger-"][class*="-dialog"]' + yiche.comdiv[class*="words-ad"]% + ifeng.comdiv[class="adbox02"]" +5119.cndiv[class="downDz"]' + ithome.com.twdiv[class="span4"]5 + r3sub.com$div[class] > a[href^="show.php?id="]Q +tieba.baidu.com + bdimg.com + tieba.com div[class][lgoinprompt="prompt"]- + hc360.com + +cyol.comdiv[class^="AD"]* +ix8.ladiv[class^="ADTOPLB_"] > .bd  +xz7.comdiv[class^="AD_"]# + +qinbing.cndiv[class^="Ad-"]" + +ali213.netdiv[class^="GG"]N + weibo.com=div[class^="HotTopic_doticon_"] + div[class^="HotTopic_tit_"]. +wenxuecity.comdiv[class^="Inarticle_"]B + mbd.baidu.com-div[class^="_"][style="visibility: visible;"]˜ +news.cnyes.com + my.hupu.com + enet.com.cn + kdslife.com + mysteel.com + +pchome.net + fjsen.com + rznews.cn + +hupu.comdiv[class^="ad"]> + +chengdu.cn + +ofweek.com + oeeee.comdiv[class^="ad-"]% + cq.qq.comdiv[class^="ad-box"]* + iqiyi.comdiv[class^="ad-piclist-"]" + yesky.comdiv[class^="ad1"]" + yesky.comdiv[class^="ad7"]% + ifeng.comdiv[class^="adList"]' + +www.qq.comdiv[class^="adRight"]� +weishangshijie.cn + alibuybuy.com + 16668tu.com + +chewen.com + +newhua.com + +tv.cntv.cn + faloo.com + +ph66.comdiv[class^="ad_"]‹$ + +uuu9.comdiv[class^="ad_140"]% + ifeng.comdiv[class^="ad_box"]; +megatime.com.tw + pchome.com.twdiv[class^="ad_ec"]) +weather.com.cndiv[class^="adpos"]' + silver.org.cndiv[class^="ads_"]& + xcar.com.cndiv[class^="adset"]$ + hybbs.comdiv[class^="adtop"]d + solarzoom.com + iyxdm.top + kugou.com + yesky.com + +8684.com +8684.cndiv[class^="adv"]# + ifeng.comdiv[class^="adv0"]# + ifeng.comdiv[class^="adv1"]  +kumi.cndiv[class^="adz"]% + +cztv.comdiv[class^="banner_"]+ + elecfans.comdiv[class^="banner_ad"]) + ifeng.comdiv[class^="bottomDbox"]= + ifeng.com,div[class^="container-"][content^="[object"]% + +78dm.netdiv[class^="couple-"]) + ifeng.comdiv[class^="coupletBox"]% + ifeng.comdiv[class^="d_box-"]# + ifeng.comdiv[class^="dbox"]" + fx678.comdiv[class^="dl_"]' + eastday.comdiv[class^="double"]# +cbg.cndiv[class^="erweima"], + loveshang.comdiv[class^="float-ad-"]% + fx678.comdiv[class^="fx_fa_"]! + idanmu.eediv[class^="g "]: + +jjckb.cn*div[class^="g"] > a:first-child:last-child# + +hqew.comdiv[class^="g-ad-"]( + ifeng.comdiv[class^="games_ad_"]E + +miercn.com + 55188.com +163.com +csai.cndiv[class^="gg"]" + ruian.comdiv[class^="gg_"]+ + enorth.com.cndiv[class^="guanggao"]% + fx678.comdiv[class^="hc_ad_"]2 + ditu.so.comdiv[class^="index-adflag-"] + a& + +5iyq.comdiv[class^="index_ad"], + ifeng.comdiv[class^="index_topBox_"]- + ifeng.comdiv[class^="index_top_box_"]' + ifeng.comdiv[class^="middleAd"]# + +boce.comdiv[class^="money"]) + nextapple.comdiv[class^="na-ad-"], +msn.cndiv[class^="nativeAd-DS-card"]( + nba.hupu.comdiv[class^="nba-ad"]. + sogou.comdiv[class^="news-top-banner"]- +weishangshijie.cndiv[class^="news_a"]; + sogou.com +qq.com div[class^="page-bottom-banner"]8 + sogou.com +qq.comdiv[class^="page-top-banner"]% +wasu.cndiv[class^="play_ads"]% + ifeng.comdiv[class^="pplive"]( + ifeng.comdiv[class^="ppx_wrap-"]# + +99syy1.comdiv[class^="ps_"]G + ifeng.com6div[class^="rightContent-"] a[href^="//health.ifeng."]# + +jable.tvdiv[class^="root-"]9 + sehuatang.org + kzs1w.comdiv[class^="show-text"]3 +finance.sina.com.cndiv[class^="side-btns-"]( + +7654.comdiv[class^="sidebarimg"]- + ifeng.comdiv[class^="slideBannerBox"]. + speedtest.cndiv[class^="speed-twoads"]% + ifeng.comdiv[class^="topAd-"]$ + +21cn.comdiv[class^="topAds"]& + ifeng.comdiv[class^="topBox-"]% + gpsuu.comdiv[class^="top_96"]( + gamme.com.twdiv[class^="topad_"]h + iqiyi.comWdiv[class^="video-slide_normal"] > a[href^="http"]:not([href*="iqiyi.com"]) > div > imgz + iqiyi.comidiv[class^="video-slide_normal"] > a[href^="http"]:not([href*="iqiyi.com"]) div[class^="video-slide_row"]k + iqiyi.comZdiv[class^="video-slide_threeImagePages"] > a[href^="http"]:not([href*="iqiyi.com"]) > div¨# +msn.comdiv[data--adqjyluqt] + baidu.com div[data-ad]% +uc.cndiv[data-ad_url^="http"] +sina.cndiv[data-adid]A + yahoo.com0div[data-content="廣告"]:not(#sda-MAST-iframe)) + yahoo.com.taboola-ad-item-wrapper+ + yahoo.com.stream-responsive-ad-item' + yahoo.com#sda-top-center-iframe& + yahoo.com#sda-top-right-iframe& + yahoo.com#sda-mid-right-iframe( + yahoo.com#sda-mid-right-2-iframe$ + wealwomen.comdiv[data-cptid]' + +cqmmgo.comdiv[data-id*="_adv_"]5 + freejavbt.com div[data-selector*="ai-insert-"]0 + sd.ifeng.comdiv[data-title*="广告ä½�"], + oschina.netdiv[data-traceid*="_ad_"]< + oschina.net)div[data-tracepid="question_detai_above"]$ + zhihu.comdiv[data-type="ad"]. +le.com div[data-type="bottomLayerView"]8 + eastmoney.com#div[data-url*="same.eastmoney.com"]# + weibo.comdiv[feedtype="ad"]% + yahoo.comdiv[id$="-Ad-Proxy"]$ +sunofbeach.netdiv[id$="-ad"]  + heirui.cndiv[id$="MASK"]5 + mail.126.com + mail.163.comdiv[id$="_AdDiv"]9 + mail.126.com + mail.163.comdiv[id$="_BannerDiv"]9 + mail.126.com + mail.163.comdiv[id$="_FooterDiv"]Q + anoneko.com + +ye1213.com + +dmhy.org$div[id$="_ad"] > a:first-child > img +58.comdiv[id$="_gdbg"]6 + mail.126.com + mail.163.comdiv[id$="_succAd"]! + +my0511.comdiv[id$="bdbc"]! + +pixnet.netdiv[id*="-AD-"]! + +pixnet.netdiv[id*="-Ad-"]! + +pixnet.netdiv[id*="-aD-"]< + mcdulll.com + +pixnet.net + +ghxi.comdiv[id*="-ad-"]  + lalilali.com div[id*="_"]% + +feiwan.netdiv[id*="_"][style]2 +moneyweekly.com.twdiv[id*="_ScupioHomeAD"]' +sm.cndiv[id*="_Shopping_Etao_"]* + +8684.com +8684.cndiv[id*="adid"]% +codeleading.comdiv[id*="ads"] +e23.cndiv[id*="adv"]" + imydl.comdiv[id*="banner"]> + v.baidu.com + +v.duba.comdiv[id*="categoryPageColumn"] + jinti.com div[id*="gg"]$ +wenxuecity.comdiv[id*="gg_"]i +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.comdiv[id*="lottery"]@ + kuaidi100.com+div[id][style="width: 300px;float: right;"]/ + fengniao.com + +zhiding.cn div[id^="AD"]( + house365.comdiv[id^="AD-bottom"] + it168.comdiv[id^="ADV"]? +daohang.qq.com + +hao.qq.com + sogou.comdiv[id^="AD_"] + hc360.comdiv[id^="Adv"]# + +tiexue.netdiv[id^="Baidu_"]" + +airav.ccdiv[id^="Billing"]# + ganji.comdiv[id^="GcnADId"]( + +tigtag.comdiv[id^="Home942x70_"]" + +2345.comdiv[id^="J_Topic"]+ + +2345.comdiv[id^="J_micro_zhuanti-"]( + stock87.comdiv[id^="Javascript"]# + tzfdc.com.cndiv[id^="LMT_"]% + +360che.comdiv[id^="PAGE_AD_"]" + +0594.comdiv[id^="PCMSAD_"]% + +tigtag.comdiv[id^="Show300x"]´; + mail.126.com + mail.163.comdiv[id^="_mail_popup_"] + vod1769.com div[id^="a"]! + ettoday.netdiv[id^="abp"]Z + makepolo.com + mycar168.com + mysteel.com + +pchome.net + +rjfcw.cn div[id^="ad"]G + phpernote.com + pcpop.com + zh141.com +58.comdiv[id^="ad_"]& + lenovo.com.cndiv[id^="ad_bd_"]1 + lenovo.com.cndiv[id^="ad_bd_"] + .ad-mark: +megatime.com.tw + pchome.com.twdiv[id^="ad_div_"] +sm.cndiv[id^="ad_ele_"]$ + +cheshi.comdiv[id^="ad_pos_"]& + +tgfcer.comdiv[id^="ad_thread"]& +weather.com.cndiv[id^="adpos"]  + yahoo.comdiv[id^="ads-"]" + cbmland.comdiv[id^="ads_"]7 +hualongxiang.com + +actoys.netdiv[id^="ads_d_"]# + +eyuyan.comdiv[id^="ads_r_"]- + gamersky.comdiv[id^="adscontainer_b"]& + v.baidu.comdiv[id^="adv_asp_"]' + +ali213.netdiv[id^="ali-ad-js-"]$ + jdbbs.comdiv[id^="archy_ad"]( + qianzhan.comdiv[id^="baidu_ad_"]# + ncnews.com.cndiv[id^="ban"]' +recruit.com.hkdiv[id^="banner"]' + +2345.comdiv[id^="bd-search-ad"]! + sinolub.comdiv[id^="bs_"]( +chajiaotong.comdiv[id^="cjtad_"]& + +kankan.comdiv[id^="cm"].banner& + nanrenwo.netdiv[id^="content"]% + ifeng.comdiv[id^="couplet3_"]( + jmnews.com.cndiv[id^="couplet_"]& +qq.comdiv[id^="couplet_auto_"]% +ouyaoxiazai.comdiv[id^="cs_"]* + tyenews.comdiv[id^="custom_html-"]$ + banma.comdiv[id^="disapper"]5 +discuss.com.hkdiv[id^="div-gpt-ad"] + div[id]1 + gohome.com.hkdiv[id^="div-gpt-ad"][style]' + iqiyi.comdiv[id^="div_theatre"]! + +zyue.comdiv[id^="divad_"]) + chinafix.comdiv[id^="diy_vk_ad_"]" +sm.cndiv[id^="dl-banner-"] + fx678.comdiv[id^="dl_"]2 + eprice.com.hkdiv[id^="eprice-div-gpt-ad-"]1 +user.qzone.qq.comdiv[id^="fct_20050606_"]' + 3g.qq.comdiv[id^="feed-omgad-"]( + eastmoney.comdiv[id^="flow-ad-"]% + +lysq.comdiv[id^="followDiv_"] + 512ms.comdiv[id^="fy_"]! + +tiexue.netdiv[id^="g_d_"]9 + people.com.cn + +lgmi.com +doyo.cn div[id^="gg"] + +bmcx.comdiv[id^="ggwz"]+ + fx110.com + +fx110.ukdiv[id^="ghz"] +so.comdiv[id^="guang-"]" + hinews.cndiv[id^="hi_gg_"]  + fx678.comdiv[id^="hta_"]1 +wenku.baidu.comdiv[id^="html-reader-AD-"]5 +wenku.baidu.comdiv[id^="html-reader-banner-"] +viu.comdiv[id^="info"]5 + jjhuashui.com div[id^="jinsom-widget-slider-"]$ + woaimoon.comdiv[id^="juan_"]0 + tyenews.comdiv[id^="metaslider_widget-"]! +jd.comdiv[id^="miaozhen"] +4c.cndiv[id^="mid_ad"]* + pcauto.com.cndiv[id^="middle_ad_"]! + ksbbs.comdiv[id^="mimi_"]²/ +so.com!div[id^="mohe-biu_360"] > .g-card% + hk.yahoo.comdiv[id^="my-ads"]) + elecfans.comdiv[id^="new-listAd"]$ + ifeng.comdiv[id^="padhide_"]# + muchong.comdiv[id^="paper"] + yb983.comdiv[id^="pop"]1 + ksbbs.com + kshot.comdiv[id^="read_ad_"]' + kshot.comdiv[id^="read_m_yytf"]) +image.baidu.comdiv[id^="relecom"]% + www.rkanr.comdiv[id^="rkrCp"] +eol.cndiv[id^="s1_"]' +secretmine.netdiv[id^="secre-"]/ + +159i.comdiv[id^="sidebar"] > :not(form). + +mjzj.comdiv[id^="sidebar-top-carouse"]# + douyu.comdiv[id^="sign_p_"]' + bnext.com.twdiv[id^="sponsor-"]) +suizhoushi.comdiv[id^="sznew_ad"]6 +ottawazine.com + freedidi.comdiv[id^="text-"] + +e0575.cndiv[id^="tid_"]! + baidu.comdiv[id^="toast"] +4c.cndiv[id^="top_ad"]" + +my0511.comdiv[id^="topad"]$ +u17.comdiv[id^="u17-advert"]$ + qinzhou8.comdiv[id^="v4ad-"]" + +eyuyao.comdiv[id^="x_ad_"]1 + oschina.netdiv[name="detail_show_footer"]) + oschina.netdiv[name="floatAdbox"]- + oschina.netdiv[name^="index_banner_"] + chok8.com div[onclick]% + +qqxiuzi.cndiv[onclick][style]4 + sogou.com +qq.comdiv[pbflag="bt_newsb_ad"]8 + sogou.com +qq.comdiv[pbflag="coolsitefeed_ad"]) + +psdhtml.cndiv[role^="structure_"]7 +sydneytoday.com div[style$="-144px;top: 115px;"]; + cbber.com*div[style$=":0px;top:200px;z-index:9999;"]> + anhuinews.com)div[style$="height:40px;overflow:hidden"]+ + tuwan.comdiv[style$="height:90px;"]0 +zhujicankao.comdiv[style$="padding:0px"]F +m.mydrivers.com/div[style$="px 0px 0px 0px;text-align:center;"]> +lukedreyer.com(div[style$="width: 125px;z-index:2000;"]' + mydrivers.comdiv[style*="/ad/"]0 + cq.qq.comdiv[style*="1000"][style*="60"]% + ilxdh.comdiv[style*="1000px"]% + +25xz.comdiv[style*="1002px;"]3 + da-fan-shu.cndiv[style*="468"][style*="60"]$ + +25xz.comdiv[style*="724px;"]3 + pchome.com.twdiv[style*="982"][style*="85"]K +blog.sina.com.cn3div[style*="WiDTH: 200px;"][style$="HeiGHT: 300px"]0 + mypianku.netdiv[style*="background:url"], + whnyd.comdiv[style*="height: 115px"]6 + bilibili.com"div[style*="height:"][data-loc-id]F + taiwan.cn5div[style*="height:250px;padding:5px 17px 5px 18px;"]' + +bccn.netdiv[style*="height:90"], + +qiyeku.comdiv[style*="height:90px;"]: +ruanyifeng.com + 789ys.comdiv[style*="important"]; + sina.com.tw(div[style*="min-height"][style*="250px"]O + +esu.wiki +esu.moe4div[style*="position: relative; max-height: 400px;"]J +1010jiajiao.com3div[style*="position:fixed;"][style*="bottom:1px;"]- + huarenjie.netdiv[style*="top: 50px;"]M + mydrivers.com +kkj.cn.div[style*="width: 1"][style*="height: 90px;"]. + +nfuwow.comdiv[style*="width: 1160px;"]< + book118.com)div[style*="width: 252px;height: 260px;"]< + proginn.com)div[style*="width:1000px;height: 250px;"]: + divcss5.com'div[style*="width:336px;height:280px;"]±+8 + hb.qq.com'div[style*="width:960px; height:90px;"]I + hb.qq.com8div[style=" width:300px; height:250px; overflow:hidden"]N + lawtv.com.cn:div[style=" width:664px; height:260px; margin-top:10px;"]h + nowscore.comTdiv[style="background-color:#F0F0F0;line-height:25px;height:25px;text-align:center"]O +jiangjunzy.com + dizhanw.com*div[style="background: #fff;padding:5px;"]� + iplaysoft.comldiv[style="background:#fcf0ef;width:680px;height:130px;border-radius:8px;margin-top:28px;position:relative"]k + +itdog.cn[div[style="border: 1px solid #dadada;padding: 6px 10px 5px 5px;background-color: #ffffff;"]i + moerats.comVdiv[style="box-shadow: 1px 1px 5px 5px rgba(17, 150, 196, 0.35);border-radius: 15px;"]x + +raenonx.ccfdiv[style="display: flex; justify-content: center; align-items: center; position: relative;"] > iframe\ + +exam58.comJdiv[style="float: none; width: 305px; height: 254px; text-align: center"]? + sinolub.com,div[style="float:left; padding-right:20px;"]\ + mtrend.cnKdiv[style="float:left; width:100%; margin-bottom:25px; text-align:center;"]W + sitv.com.cn + gamefy.cn7div[style="float:left; width:220px; padding-top:15px;"]z + +sinoca.comhdiv[style="float:right;height:280px;width:336px;clear:left;background:#FFF;margin:15px 15px 15px 15px;"]A +qixingquan.com+div[style="float:right;margin-bottom:6px;"]` + ckdzb.comOdiv[style="float:right;margin:10px 10px;clear:right;height:310px;width:336px;"]. + muzijie.comdiv[style="height: 280px;"]/ + jijidown.comdiv[style="height: 462px;"]S +beianbeian.com=div[style="height: 62px;margin-bottom: 20px;"] + .layui-tableW + sina.com.twDdiv[style="height:156px;width:570px;margin:0px auto;display:block;"]S + +ipcfun.comAdiv[style="height:280px;width:336px;margin:-10px auto 20px auto"]6 + +368015.xyz$div[style="height:60px;width:100%;"]; +matongwu.com.cn$div[style="height:90px;clear:both;"]g +bbs.my0511.comQdiv[style="margin-left:auto;margin-right:auto;text-align:center;margin-top:5px;"]A + jdbbs.com0div[style="margin: 0 auto 10px; width: 1000px;"]M + +plus28.com;div[style="margin: auto;width: 960px;margin-bottom: 10px;"]M + +lanyes.org;div[style="margin:0 auto 10px;height:76px;overflow:hidden"]H + +hsex.men8div[style="margin:0 auto 10px;width:900px;height:250px"]Y + gpsuu.comHdiv[style="margin:0 auto; padding-bottom:10px;width:960px;height:60px;"]p + dzwww.com_div[style="margin:0;padding:0;width:620px;height:345px;overflow:hidden;background-color:#fff;"]y +morningpost.com.cn_div[style="margin:0;padding:0;width:648px;height:345px;overflow:hidden;background-color:#fff;"]> + html-js.com+div[style="margin:10px auto;width:1000px;"]4 + +x3cn.com$div[style="margin:3px auto"] + tableV +eworldship.com@div[style="padding: 0px;position: fixed;left: 7px; top: 150px;"]T + baidu.comCdiv[style="padding: 20px 9px 20px 10px;widget:250px;height:250px;"]Z + nxflv.comIdiv[style="position: absolute; width: 100%; height: 133px; bottom: 0px;"]n + 7junshi.com[div[style="position: fixed; right: 0px; bottom: 0;z-index:999;width: 300px;height: 250px;"]w + ys168.comfdiv[style="position: fixed; width: 200px; top: 330px; right: 20px; font-size: 9pt; text-align: left;"][ + naifei.imJdiv[style="position: fixed;bottom: -10px;right:0;z-index:999;width:250px"]D + jijidown.com0div[style="position: fixed;right: 0;bottom: 0;"]] + moe-acg.comJdiv[style="position: relative;width: 100%;height: 0;padding-bottom: 18%;"]A + 1ting.com0div[style="position:fixed;bottom:0;z-index:999"]  +up01.cc�div[style="position:fixed;width:468px;left: 50%;transform:translate(-50%,0);height:60px;background:#fff;bottom:0px;text-align:center;z-index:9"]I + +lanzou.com7div[style="text-align: center;border: 1px solid #eee;"]M + buzzhand.com9div[style="text-align:left;margin-top:0px;height:600px;"]Q +rfidworld.com.cn9div[style="width: 100%;position: fixed;top: 0;margin:0;"]Z + +hz66.comJdiv[style="width: 300px; height: 250px; float: left; position: relative;"]P + eastmoney.com;div[style="width: 300px; height: 250px; margin-top: 10px;"]„ + +zol.com.cnrdiv[style="width: 300px; height: 250px; position: fixed; right: 0px; bottom: 0px; z-index: 9999; display: block;"]; + tuwan.com*div[style="width: 360px;margin-top:10px;"]E +1point3acres.com-div[style="width: 450px; min-height: 210px;"]9 + jijidown.com%div[style="width: 500px;"]:last-child9 + jijidown.com%div[style="width: 525px;"]:last-childQ + +pixnet.net?div[style="width: 620px; height: 250px; padding-bottom: 10px;"]d + jjdong4.comQdiv[style="width: 80%; text-align:center; margin-left: auto; margin-right: auto"]G + sd.ifeng.com3div[style="width:1000px; margin:10px auto 0 auto;"]R + d1net.comAdiv[style="width:1000px;height:90px;margin:15px auto 15px auto;"][ + jq-school.comFdiv[style="width:1060px; height:auto; margin:0 auto;overflow:hidden;"]V + dnxtc.netEdiv[style="width:1200px;height:108px;margin:0 auto;margin-top:15px;"]g +yule.iqiyi.comQdiv[style="width:180px;padding:25px 0 20px 20px;float:right;margin-right: 30px;"]9 + +plus28.com'div[style="width:270px; height:180px;"]H +liaoxuefeng.com1div[style="width:336px;height:280px;float:left;"][ +auto-online.com.twAdiv[style="width:336px;height:280px;margin:0;background:#000000"]Z +yantuchina.comDdiv[style="width:618px;height:150px;margin: 0 auto; display:block;"]™# +dÿï08@RTdouban.com#?#.rec_topics:-abp-has(>.rec_topics_name[href^="https://erebor.douban."]) +jÿï08@RZdoubiuser.github.io,doubibackup.com#?#.custom-html-widget:-abp-has(div[style^="position"]) +Xÿï08@RHdouyin.com#?#.xgplayer>div[class]:-abp-has(svg[height="16"][width="30"]) +xÿï08@Rhdouyu.com#?#.SharePanel:-abp-has(> .SharePanel-content > .SharePanel-contentTitle:-abp-contains(ç¦�利)) +`ÿï08@RPdouyu.com#?#.bc-wrapper:-abp-has(>.wm-view>div>.isLink[href*=".qualtrics.com/"]) +Kÿï08@R;douyu.com#?#.wm-general:-abp-has(.link[href*=".tmall.com"]) +fÿï08@RVengadget.com#?#.Py\(40px\):-abp-has(> article > .D\(f\) > .Pos\(r\)[data-ylk*=":AD;"]) +2ÿï08@R"fishpi.cn#?#.module:-abp-has(>.ad) +jÿï08@RZguilinlife.com#?#li:-abp-has(> div > .content-other > .content-type:-abp-contains(广告)) +Eÿï08@R5hao.360.com#?#.cube-mod:-abp-has(.dh-cpcad-container) +9ÿï08@R)hdhive.online#?#.mt-4:-abp-has(>.text-lg) +9ÿï08@R)huya.com#?#.item-pic:-abp-has(>.img-tips) +5ÿï08@R%ifeng.com#?#.box_list:-abp-has(.tuig) +jÿï08@RZifeng.com#?#div[class^="titleImg-"]:-abp-has(span[class^="source-"]:-abp-contains(推广)) +Bÿï08@R2image.baidu.com#?#.newfcImgli:-abp-has(.fc-ad-tip)[ +auto-online.com.twAdiv[style="width:728px;height:130px;margin:0;background:#000000"]> + nnhanman.net*div[style="width:728px;padding-top: 8px;"]N + +0597kk.com + +gaoqing.fm,div[style^="height:258px;background-image:"]8 + jisilu.cn'div[style^="height:60px; width:960px;"]: + +52ch.net*div[style^="margin-top:5px; height:60px;"]: + aaread.space&div[style^="position: fixed; bottom:"]P +m.weather.com.cn8div[style^="position: fixed; width: 100%; bottom: 0px;"]E +buscodepto.com + a-i-l-s-a.comdiv[style^="position: fixed;"]P +chineseinla.com9div[style^="position:absolute;"][style$=":0px;top:30px;"]> + 52youpiao.com)div[style^="position:fixed; right:40px;"]5 + jinbaodm.com!div[style^="position:fixed; top"]O +yemancomic.com + tvyun07.com + zkk78.comdiv[style^="position:fixed;"]H + mydrivers.com3div[style^="position:fixed;left:50%;bottom:200px;"]L + stock87.com9div[style^="position:relative;width:1000px;height:90px;"]; + v.163.com*div[style^="width: 140px; height: 199px;"]? + manhuagui.com*div[style^="width: 300px; height: 250px;"]< + elecfans.com(div[style^="width: 960px;height: 40px;"]K + pcsoft.com.cn6div[style^="width:100px;height:300px;position:fixed;"]5 + skykiwi.com"div[style^="width:1200px;height:"]B + backchina.com-div[style^="width:300px; min-height: 250px;"]: + memexie.com'div[style^="width:9"][style$="#C8E4F0"]- + mycq.qq.comdiv[style^="width:960px;"]6 + +21yq.com&div[style^="width:980px;height:80px;"]: +firefoxchina.cn#div[trace-key="ad_theme_skin_link"]; +firefoxchina.cn$div[trace-key="mh_channel_rec_tpth"]" + wantgoo.comdiv[type="adv"]/ +zuoye.baidu.comdl[class="card related"]5 +bbs.my0511.comembed[width="970"][height="70"]1 + +aae3.com!form + center > p[align="center"]# +msn.cngaming-discover-strip + 789ys.com h1[style] + pcsoft.com.cn +iframe[id]& +sina.cniframe[id^="sinaadtk_"]ß +Iÿï08@R9image.so.com#?#.cell:-abp-has(.txt:-abp-contains(广告)) +Lÿï08@Ra[href*=".jimcloud.net"]) +\ÿï08@RLithome.com#?#.placeholder:-abp-has(> a > .plc-con > .plc-footer > .tip-gray) +Dÿï08@R4ithome.com#?#li:-abp-has(>.block a[href*="/lapin."]) +;ÿï08@R+jianshu.com#?#div[id]:-abp-has(> .ad-badge) +Eÿï08@R5kostool.cn#?#div:-abp-has(> h1:-abp-contains(推广)) +Iÿï08@R9ldqk.xyz,masuit.com#?#.panel:-abp-has(>.panel-body>a>img) +cÿï08@RSlenovo.com.cn#?#.imgNewText:-abp-has(>footer>.info>.source:-abp-contains(/广告/)) +Hÿï08@R8lenovo.com.cn#?#a:-abp-has(>div>p:-abp-contains(广告)) + orangenews.hk +img[advid]$ + +xblian.comimg[alt*="广告"]$ +4gamers.com.twimg[alt="ads"]( + poklw.comimg[alt="æ�°é¥­å¹¿å‘Š"]. +qq.com img[data-module="advertisement"]" + gucheng.comimg[data-mv-ad]& +eworldship.comimg[height="70"]& + jspoo.comimg[id^="float_img_"]  + bukaivip.com img[onclick]1 + jiligame.comimg[onerror="zhurl($(this))"], + novipnoad.comimg[src*="/bd/"] + span! + +bccn.netimg[src*="data:"]" +3yan.cnimg[style*="300px"]7 + +e3zy.com'img[style="height: 80px; width: 100%;"]: +jiangjunzy.com$img[style="height:75px;width: 100%"]/ +scsn.cn img[style^="height:70px;width:"]8 +hi.people.com.cn + hall123.comimg[width="1000"]" + jmbbs.comimg[width="1100"]" + ntpcb.comimg[width="1195"]# + +5eplay.comimg[width="1240"]0 + 54new.comimg[width="1280"][height="100"]1 + taohuayun.cnimg[width="150"][height="60"]. + chysg.comimg[width="232"][height="90"]I + +acgsou.com + 36dm.club + +36dm.comimg[width="250"][height="250"]" + +nasyun.comimg[width="275"]0 + +5eplay.comimg[width="290"][height="360"]! + 2chcn.comimg[width="300"]4 +guitarchina.comimg[width="420"][height="60"]/ + +aguitar.cnimg[width="470"][height="60"]$ + china.com.cnimg[width="665"]H + +acgsou.com + 36dm.club + +36dm.comimg[width="700"][height="60"]" + +itavcn.comimg[width="722"]  + +yxzp.netimg[width="770"]# + stock87.comimg[width="960"]" + +nasyun.comimg[width="970"]1 + taohuayun.cn + cgown.comimg[width="980"]: +motorfans.com.cn + chyangwa.netimg[width^="1200"]/ + +0597kk.comimg[width^="37"][height="30"]& + bitauto.comins[type="ad_play"]. +wenxuecity.comlabel[style*="darkgrey"]# + yyrtv.comli[class*="baidu"]: + 3g.qq.com)li[data-adtype="qbad"] > a[class^="type"]  +so.comli[data-cpc_query]d +xingqu.baidu.com +tieba.baidu.com +1111.baidu.com + bdimg.com + tieba.com li[data-daid]% + iqiyi.comli[data-flag="shop"]2 +so.com$li[data-id^="cm_display_init_text_"]! + iqiyi.comli[id^="100000"], + yahoo.comli[id^="ad-"][class^="Pos"]0 +user.qzone.qq.comli[id^="fct_20050606_"]& + 3g.qq.comli[id^="feed-omgad-"]% + yahoo.comli[id^="gemini-ad-"]# + +rjfcw.cnli[style*="1200px"]( + +zzkdhb.comli[style*="important"]£" +`ÿï08@RPlibaclub.com#?#.ui-list-item:-abp-has(>.ui-list-item-title>a[onclick^="SendAd"]) +Kÿï08@R;lihkg.com#?#div[class^="_"]:-abp-has(>div>div>.adsbygoogle) +—ÿï08@R†linkedin.com#?#.core-rail > div > div[id^="ember"]:-abp-has(.feed-shared-actor__description span:-abp-contains(/促銷內容|广告/)) +›ÿï08@RŠlinkedin.com#?#.core-rail > div > div[id^="ember"]:-abp-has(.feed-shared-actor__sub-description span:-abp-contains(/促銷內容|广告/)) +Jÿï08@R:manhuadb.com#?#.comicbook-index:-abp-has(>a[href^="http"]) +?ÿï08@R/moegirl.org.cn#?#.capsule-card:-abp-has(.n-tag) +€ÿï08@Rpmongoing.com#?#.widget_custom_html:-abp-has(> .custom-html-widget > a[href^="http"]:not([href*="mongoing.com"])) +Hÿï08@R8mrmad.com.tw#?#div[id^="mrmad-"]:-abp-has(>.adsbygoogle) +Pÿï08@R@muchong.com#?#.forum_Post_index:-abp-has(nobr:-abp-contains(18)) +Nÿï08@R>mydowndown.com#?#.bs-component:-abp-has(>a[href*="97jez.com"]) +[ÿï08@RKnews.baidu.com#?#.index-list-item:-abp-has(.tip-time:-abp-contains(广告)) +Tÿï08@RDnews.sohu.com,www.sohu.com#?#.list16 > ul > li:-abp-contains(广告) +Jÿï08@R:nfmovies.com#?#div[id]:-abp-has(>img[onclick="openurl()"]) +Rÿï08@RBnfstar.net#?#.myui-panel-bg:-abp-has(strong:-abp-contains(广告)) +Fÿï08@R6novipnoad.com#?#.video-item:-abp-has(img[src*="/bd/"]) +Oÿï08@R?pcbeta.com#?#div[class]:-abp-properties(/height: (169|171)px;/) +wÿï08@Rgruanyifeng.com#?#.asset-content > p:-abp-contains(/二维|助教|0 å…ƒ|报å��è´¹|原价/) + p + p > img +sÿï08@Rcruanyifeng.com#?#.asset-content > p:-abp-contains(/二维|助教|0 å…ƒ|报å��è´¹|原价/) + p > img +>ÿï08@R.runoob.com#?#.sidebar-box:-abp-has(.re-600160) +Tÿï08@RDsamsung.com#?#.template-item:-abp-has(> .wrap-sub-title > div > .ad) +jÿï08@RZsogou.com#?#div[class^="right-feedback"]:-abp-has(>.list-step-title:-abp-contains(网游))2 + china.com!object[width="360"][height="300"]% + sina.com.cnp + .article-video: +benyixiwang.com#p img[src*=".dlssyht.cn/u/"][title]* + muchong.comp[onclick="view_ok();"]O + +jb51.net?p[style$="text-align: center; padding: 0px; margin: 20px 0px;"]) + aeink.comp[style*=".alicdn.com/"]- + aeink.comp[style*="82px;background:"]T + itkeyword.com?p[style="line-height:1.4; margin-top:8px; margin-bottom:10px;"]C +ruanyifeng.com-p[style="text-align:center;font-size: 16px;"]7 + +zzkdhb.com%p[style^="width: 100%; margin: 0px;"]> + isiyuan.net#?)page-list > ul > .layui-row:-abp-has(.ad)H + +zn513.cc#?6portal_block_69_content > li:-abp-has(a[href^="http"])& + sc115.com +gdot.me +script + a' + logo160.comscript + a[href="/"]$ + +bjxfqc.netscript ~ ul[style]3 + jianshu.com section[aria-label="jianshu-ad"], +bbc.comsection[class*="AdContainer"]< + yahoo.com+section[class^="Pos"][data-id="big-gemini"]$ + +zk001.ccsection[class^="ch"]) + +17ce.comsection[id*="top_banner"]8 +cbachina.sports.sohu.com + +sohu.com +sohuadcode + r3sub.com source + img" +32r.comspan + p + div > dt + 423down.com span > a > b# +bbs.my0511.com span.smalltxt  +163.comspan[class^="gg"]' +gamebase.com.twspan[id^="aid_"]$ + +52pk.comspan[style*="gaosu"]7 + bilibili.com#span[style*="height:"][data-loc-id]Q + tianhaohz.comÿï08@R.toutiao.com#?#.has_action:-abp-has(> .icon_ad) +Zÿï08@RJv2ex.com#?#.box:-abp-has(>.inner>div>span[style]:-abp-contains(Sponsored)) +[ÿï08@RKwealth.com.tw#?#div[class]:-abp-has(>div[class]>div[class*="-ad-manager-"]) +Wÿï08@RGweibo.com#?#.card-content > ul > li:-abp-has(> p > .icon-txt-recommend) +^ÿï08@RNweibo.com#?#.card-content > ul > li:-abp-has(>a[action-type="realtimehot_ad"]) +iÿï08@RYweibo.com#?#.card-wrap:-abp-has(> .card-film > .card-head > .title:-abp-contains(广告)) +Wÿï08@RGweibo.com#?#.card-wrap:-abp-has(>.card-top>.s-fr:-abp-contains(广告)) +Kÿï08@R;weibo.com#?#.card-wrap:-abp-has(>.card>i[style*="%E5%B9%"]) +jÿï08@RZweibo.com#?#.vue-recycle-scroller__item-view:-abp-has(.wbpro-ad-tag:-abp-contains(广告)) +yÿï08@Riweibo.com#?#.vue-recycle-scroller__item-view:-abp-has(div[class*="head-info_"]>div:-abp-contains(热推)) +pÿï08@R`weibo.com#?#.vue-recycle-scroller__item-view:-abp-has(div[class*="head-info_"]>img[src^="data"]) +uÿï08@Reweibo.com#?#.vue-recycle-scroller__item-view:-abp-has(img[class^="head-info_authicon_"][src^="data"]) +Šÿï08@Rzweibo.com#?#.vue-recycle-scroller__item-view:-abp-has(span[class^="wbpro-icon-search"]:-abp-contains(/商|上新|好物/)) +kÿï08@R[weibo.com#?#.wbpro-side-panel:-abp-has(span[class^="wbpro-icon-search"]:-abp-contains(商)) +Gÿï08@R7weibo.com#?#tr:-abp-has(> .td-03 > .icon-txt-recommend) +Eÿï08@R5wenxuecity.com#?#div:-abp-has(>label[class^="adlab"]) +Dÿï08@R4wezhicms.com#?#.card-main:-abp-has(.waimai-item-img) +-ÿï08@Rx6d.com#?#li:-abp-has(>.myad) +Pÿï08@R@yahoo.com#?#.js-stream-content:-abp-has(a[href*=".promotions."]) +Xÿï08@RHyahoo.com#?#.js-stream-content:-abp-has(div:-abp-contains(雅虎æ�œå°‹)) +`ÿï08@RPyahoo.com#?#.stream-item:-abp-has(>div>div>div>span:-abp-contains(å�³æ—¥ç†±æ�œ))/ + +sdzbcg.comtable[height="41"]:last-child" + +gp123.cctable[height="66"]< + bcbay.com+table[id] + table[style="margin:3px auto;"]E + +bbs-tw.com3table[ondragstart="window.event.returnValue=false"], + 52life.cctable[style="margin-top:0"]L + +5yfz.com tbody > tr:nth-child(3) table[width="100%"][cellpadding="2"]@ + +lbx777.com + +lbx777.net table[width="325"][height="280"]? + +mitbbs.com + mitbbs.ca table[width="336"][height="280"]7 + +nick20.com%table[width="702"][bgcolor="#D1DDAA"]V +cartoonmad.com@table[width="737"] > tbody > tr > td[valign="top"][height="100"]@ + 5156edu.com-table[width="770"][bordercolordark="#FFFFFF"]X +cartoonmad.comBtable[width="877"] > tbody > tr > td > a[href^="https://fun8.us/"]0 + 6park.comtable[width="89%"][height="60"]P +cartoonmad.com:table[width="890"] > tbody > tr > td > table[height="110"]V + +mitbbs.com + mitbbs.ca7table[width="915"] > tbody > tr:first-child > td[width]v +cartoonmad.com`table[width="950"] > tbody > tr > td > table[width="210"] > tbody > tr > td > table[width="210"]C + +164580.com1table[width="950"] > tbody > tr > td[width="105"]4 + 16sucai.com + bbxxbbs.nettable[width="960"]B + esnai.com1table[width="960"] > tbody > tr > td[height="90"]5 + fpdisplay.com table[width="960"][height="110"]M + 51credit.com + hkepc.com,tbody[id^="normalthread_"] + tbody:not([id])6 +cartoonmad.com td[align="center"][height="102"]1 + +sinoca.comtd[align="center"][height="90"]' +tianshui.com.cntd[height="420"]6 + tvboxnow.com"td[style="width:15%;height:100%;"]% + +sdzbcg.comtd[width="297"] img- + +mp4ba.latd[width="300"][height="300"]^ +news.lyd.com.cnGtd[width="300px"] > table[width="300"] > tbody > tr:nth-last-child(n+2)/ + +enread.comtd[width="326"][height="250"]G + +sdzbcg.com5td[width="580"][height="279"] > table:nth-child(2n-1), + +62422.cntd[width="760"][height="75"]Z +cartoonmad.comDtd[width="890"] > table > tbody > tr > td[colspan="4"][height="126"]5 + taiwanus.net!td[width="900"] + td[width="320"], + +mgbbs.cntd[width="960"][height="60"]A +cartoonmad.com+tr:nth-child(n+5) > td > table[width="732"]' + 789ys.com + fffdm.com ul[style]0 +firefoxchina.cnul[track-key="adv_links"]# + +toolfk.comwavy + div[style]F + pcbeta.com#?2wp > div[class][id]:-abp-properties(width: 980px;)Û +Gÿï08@R7yahoo.com#?#.wafer-beacon:-abp-has(a[data-ylk*=":ad;"]) +?ÿï08@R/ying35.com#?#table:-abp-has(a[href*="/fei-ad"]) +[ÿï08@RKypojie.com#?#.excerpt:-abp-has(>.focus[href^="http"]:not([href*="ypojie"])) +Qÿï08@RAyyets.click#?#.MuiBadge-root:-abp-has(>a[href*="/maomao.cloud/"]) +Yÿï08@RIzhihu.com#?#.TopstoryItem:-abp-has(.Popover > .TopstoryItem-advertButton) +7ÿï08@R'mydrivers.com/img/2005/202112011849.png + hubei.gov.cn#ad-side + hkcards.com#ad-slot + +abbao.cn +#adContent' + gohome.com.hk +idv.st#adFrame + 2014.qq.com #adIframe + fx678.com#ad_8* + shuaijiao.com + +dpp.org.tw#ad_big + +dpp.org.tw #ad_small + nfmovies.com#adright + +wenku8.net#adtop + union.58.com +#advertise) + +pantsu.cat + fxykx.com +#banner_ad& +biznetvigator.com #container_ad + szxx.com.cn#divAdv +knowlet3389.blogspot.com +knowlet3389.blogspot.hk +knowlet3389.blogspot.jp +knowlet3389.blogspot.tw#gAds + game.macx.cn +#google-ad + codejie.net #google-ads + soft.macx.cn #googlead + 52vfx.com#head_ad +xxt.cn#mainAd  +numberempire.com#perm_ad  +www.zol.com.cn +#search_ad + u2mtv.com +#slider-ad + +woego.cn#topAds + buy.ccb.com#top_ad +help.xunlei.com.a_fr +pengbocloud.com.ad-bg + pptstore.net.ad-big/ +comefromchina.com + baidu.com .ad-block# +materialtools.com +.ad-center? +digitalocean.com + 85novel.com + ikjzd.com .ad-content + pixiv.net +.ad-footer +qq.com.ad-icon + +ntm.gov.tw.ad-left + polyapt.com.ad-one +pipi.cn.ad-root + da-fan-shu.cn.ad-s + beanfun.com +.ad-slider + senao.com.tw.ad-wrap + zznews.cn .ad-wrapper +apk.tw.ad300 +012.tw.ad728 + +czbj.js.cn.adArea + cmbc.com.cn.adBox  +bbs-mychat.com +.adContent + icbc.com.cn.adLeft +189.cn.adLink + icbc.com.cn.adRight! +ilive.lenovo.com.cn.adTop4 + 10jqka.com.cn + +faxingw.cn + +gdmm.com.ad_1 + qqaiqin.com.ad_468 + psahz.com.ad_960 + susongbbs.com +.ad_banner +dailymotion.com.ad_box + eastday.com +.ad_center0 +bfmusic.com.tw + workercn.cn .ad_content' + ts.21cn.com + mx-fm.com.ad_img + workercn.cn.ad_mainÌ +%ÿï* +litv.tv08@R +.adserver. +:ÿï* + +wandhi.com08@Rgoogleads.g.doubleclick.net^ +)ÿï* + my.ctrip.com08@R .com/adv/ +Yÿï* + cnprint.org* + huhupan.com* + +tgfcer.com* + +b168.net* + +wgun.net08@R.gif# + fxedu.com.cn.ad_r + +cnki.net .ad_right( + +moe.gov.cn + qspfw.com .ad_title + +howbuy.com .ad_wrapper +hibox.hinet.net.adarea) + fmprc.gov.cn + +mfa.gov.cn.adbox2 + en8848.com.cn .adcenter + china.com.adclass + 51cto.com.addarea + ggdoc.com.cn.addiv +189.cn.adlink) +weather.com.cn + wed114.cn.adpic + +ltn.com.tw.adright + money18.on.cc.ads-bg +jd.com .ads-content +jd.com .ads-item + gsxt.gov.cn +.ads-right +qq.com.adside + ruten.com.tw.adslot# + gkstk.com + +gdmm.com.adtop + anjia365.com.adv_bg3 + htmlsucai.com + sucai8.cn +ui.cn.adv_img +jd.com.adwords  + +epubit.com.article_share! +dingdong.ganji.com.banner + ishangman.com +.bottom_ad + +douban.com .download-ad +petrochina.com.cn.ggboxe + +mmiyue.com + +yii666.com + kims3.xyz + qcheng.cc + +fiime.cn +btbt.tv +bbt.tv +.google-ad +apk.tw +.google_ad + +adbug.cn .google_ads + mobile01.com .googlead .has-ad +popo.tw +.header_ad + vmall.com .iframeAd + +sohu.com .label-ad +jsbooks.com.cn .left-ads +36.cn.mainAd + fsjoy.com .main_adv + +gdrc.com.midAd@ + ntunhs.edu.tw + ntust.edu.tw + sjsmitaa.org .module-ads + eprice.com.hk.one-ad + +weiyun.com.page-ad +chinatimes.com.page_ad + xpiaotian.net.pagead + wnacg.com.pcgg' + fjsen.com + nuomi.com .right-ad  +perfectmatch.tw .right_ad + +360zbz.com.rightad  + muve.org.tw .sponsor-area  + muve.org.tw .sponsor-wrap + +zdface.com.top-ad‰ + andylain.com + blogspot.com + jasonblog.tw + bee.coupons + blogspot.hk + blogspot.jp + blogspot.tw + +comic.tw .vertical-ads +tangdoucdn.com .video-ad + i-cable.com .video_ad + +huawei.com .ad-section; + +huawei.com).ad-wrap:not(#google_ads_iframe_checktag)' +brandsales.58.comdiv[id^="ad_"]5 + +333ood.com#.ad-box:not(#ad-banner):not(:empty)Ä +dizhishengcheng.com +shenfendaquan.com +numberempire.com +android-doc.com +chaojizhibo.net +ff14angler.com + haoweichi.com + lspdfrcn.com + doitwell.tw + vaptcha.com + +chtoen.com + +playok.com + epinv.com + fxpan.com + moe48.com +logi.im +apk.tw +moa.tw +reh.twins.adsbygoogle[data-ad-slot]© +$ÿï* + huhupan.com08@R.jpg# +Œÿï* +club.tgfcer.com* + coolinet.com* + 3dpchip.com* + digit77.com* + e9china.net* + 9zvip.net* + d1-dm.com* + upxin.net08@R.png# +'ÿï* +ch.com08@R /ad-close.png +:ÿï* +37-express.com* + vnnox.com08@R /ad/images/ +.ÿï* +donnaart.com.tw08@R /ad_banner/ +9ÿï* + pxmart.com.tw* + 7-11.com.tw08@R /ad_file/ ++* + ipfs-lab.com08@R /adaffiliate_ +)ÿï* + pg-wuming.com08@R/adback. +8ÿï* +bsgroup.com.hk* + +fjt2.net08@R +/adbanner/ +(* + books.com.tw08@R +/adbanner/ ++ÿï* +outlook.live.com08@R/adbar/ +%ÿï* + +xingk.cc08@R /adblock_ +8ÿï* +softwarebrother.com08@R/adblockDetector. +*ÿï* +cidianwang.com08@R/adfile/ +(ÿï* + llq.dml.ink08@R /adguard. +2ÿï* + scyts.com* + +wacom.tw08@R /adimage/ +'ÿï* + p9.com.tw08@R +/adimages/ +%ÿï* + +laniqu.com08@R/adimg/ +5ÿï* + 168gamer.net* +slit.cn08@R +/adjs_pic_ +*ÿï* + shejiben.com08@R +/adLoader. +'ÿï* + +woego.cn08@R /admanager/ +dÿï* +baike.baidu.com* +ontheup.com.tw* + +nieyou.com* + czsrc.com* + zform.net08@R/adpic/ +'ÿï* + +tingfm.com08@R /adpro.js +8ÿï* +moneysave.info* + zxmee.com08@R /ads-api. +,ÿï* + 95516.com* +189.cn08@R/ads/ +(ÿï* + long7.qq.com08@R/adsbox. +'ÿï* +moa.tw08@R /adsbygoogle. +8ÿï* + piseneasy.com* + +taobao.com08@R /adsense/ +%ÿï* + mndxy.org08@R/adshow/ +.ÿï* +firstbank.com.tw08@R +/adslider/ +1ÿï* +adcenter.dhgate.com08@R +/adsystem/ +_ÿï* +locuspublishing.com* + moretv.com.cn* + fjgcjxgl.com* + csxbank.com08@R/advert/ +5ÿï* + pisen.com.cn* + wb.qq.com08@R/advert_ +5ÿï* + ceair.com* + sfbuy.com08@R /advertise/ +3ÿï* +gametower.com.tw08@R/advertisement. +/ÿï* + +gimhoy.com08@R/advertisement.js +\ÿï* +muyingzhijia.com* + +ininin.com* + +nmkjxy.com* + midea.com08@R/advertisement/ +*ÿï* + 315.sh.cn08@R /advertising/ +)ÿï* + onlychild.cn08@R /adverts/ +3ÿï* + +52xkdy.com* + fydy8.com08@R/adview_ +‚ÿï* +zaixianjisuan.com* + laimanhua.net* + zgpingshu.com* + lingjike.com* + meiyouad.com* + bigpixel.cn* + silisili.in* + +itbaoku.cn* + fffmo.com* + lfqie.com* + mahua.com* + mh160.com* + sssam.com* + yanyue.cn* +mati.hk* +reh.tw08@R /adview_pic_ +Hÿï* +gotobuy.com.tw* + ciros.com.cn* + sj-touch.com08@R/advs/ +!ÿï* + +tanx.com08@R/adx. +)ÿï* + pinduoduo.com08@R/api/ad/ +'ÿï* + +nmkjxy.com08@R /api/ads? +/ÿï* + free.com.tw08@R/bag2?r[]=*&r[]= +eÿï* +oneplusbbs.com* + changhong.com* + readboy.com* + fei3d.com* +66u.com08@R /common/cf/ +'ÿï* + +ygo-sem.cn08@R /cpc_cpm_ +�ÿï* +golangnote.com* + share1223.com* + liumingye.cn* + +datehub.co* + +joyk.com* + +poedb.tw* +lnk2.cc08@R /fuckadblock. +9ÿï* + igame.qq.com* + icbc.com.cn08@R +/guanggao/ +-ÿï* +esunbank.com.tw08@R +/home/ads/ ++ÿï* + gashpoint.com08@R +/image/ad/ +=ÿï* + maichun5.info* + myhhg.com08@R/images/*/*.gif +ˆÿï* +pro-partner.com.tw* + casio.com.cn* + tingbook.com* + dod-tec.com* + ourgame.com* + snh48.com* + +9588.com08@R /images/ad/ +*ÿï* + +gueizu.com08@R /images/adv/ +&ÿï* + +exp.qq.com08@R/img/ad/ +5ÿï* + ruten.com.tw* + p9.com.tw08@R/img/ad_ +'ÿï* + tkec.com.tw08@R/img_ad/ +&ÿï* + +sobooks.cc08@R/jquery/ +)ÿï* + +huruwo.top08@R /js/prebid- +8ÿï* +naviking.localking.com.tw08@R /mobileads. +Fÿï* + mytvsuper.com* + tvbs.com.tw* +tvb.com08@R /prebid-js- +(ÿï* + ruten.com.tw08@R/pub/ad/ +&ÿï* + +banggo.com08@R/pub1/??î +Jÿï* + mytvsuper.com* + tvbs.com.tw* +tvb.com08@R/pubads_impl.js +%ÿï* +ibf.tw08@R /rwd_cap.js +&ÿï* + wb.qq.com08@R /show_ad_ +(ÿï* + +ygo-sem.cn08@R +/show_ads_ +&ÿï* + islide.cc08@R /site/ad/ +:ÿï* + bbmei.top* + bbmen.top08@R/static/ad/main. +,ÿï* +pcstore.com.tw08@R +/store_ad/ +-ÿï* + hepan.com08@R/unadblock/adjs_ +)ÿï* +yongyoujia.com08@R/WebAd/ +0ÿï* +myweb.hinet.net08@R =mywebloadt1& +)ÿï* + taotaosou.com08@R?adType= +3ÿï* + mail.163.com* +126.com08@R?sid=ads +)ÿï* + nanrenwo.net08@R _300_250. +Bÿï*' +%bairuitool-cn.aliyun-hk03.hicheng.net08@R _370x270. +'ÿï* + +90lover.cn08@R _ads_cpc_ +,ÿï* +youranshare.com08@R _cpc_cpm/ +*ÿï* + saraba1st.com08@R _cpc_cpm_ +(ÿï08@R060s.com/images_ad/*.png +ÿï08@R073img.com/*,*, +ÿï08@R 10010.cn^*/ad +ÿï08@R 10086.cn^*/ad +1ÿï08@R!113.com.tw/www/image/index-ad.png +4ÿï08@R$115.28.114.149^*&adf=dalian_300x250_ +*ÿï08@R117.60.146.16:8089/images/ +&ÿï08@R120.132.57.41/pjk/pag/ +8ÿï08@R(12306.cn/otn/resources/images/pic/new-ad +2ÿï08@R"123dhang.com/supo/advertisement.js +:ÿï* + 127.0.0.108@R127.0.0.1/admin/admin_ad.php? +€08@R 159i.com/a_d/ +&ÿï08@R16668tu.com/css/ad.css +&08@R182.150.59.104^*/ad.css? +$08@R192.168.*/advertising_ +#ÿï08@R2018x.bid/adview.js +%08@R210.40.130.91^*/ad.css? +Bÿï08@R22345.com/images/activity/20171111/open/j/close.png +)ÿï08@R31vcd.com/player/kuyun.js ++ÿï* +jd.com08@R360buyimg.com/ad/ +,ÿï* +jd.com08@R360buyimg.com/ads/ +!ÿï08@R360buyimg.com^*?? +ÿï08@R3d66.com/??*ad- +$ÿï08@R3gmfw.cn/js/wap/8.js +(ÿï08@R4399sj.com^*/adview_pic_ +,ÿï08@R4gtv.tv/4gtv/Data/GetAD.ashx +*ÿï08@R51hanhua.com/2013/brtxt.js +%ÿï08@R51img1.com/??*/adsys. +&ÿï08@R520call.me/ad/ad_1.php +&ÿï08@R520call.me/jspopunder. +08@R 520cc.cc/ad/ +$ÿï08@R520cc.cc/ad/ad_1.php +(ÿï08@R520cc.cc/api/jspopunder. +$ÿï08@R520cc.cc/jspopunder. +!ÿï08@R520cc.cc^*/ad.php +ÿï08@R 52zy.com/gg/ +%ÿï08@R58.com/adJump?adType= +&ÿï08@R58b.tv/static/js/ad.js +-ÿï08@R58cdn.com.cn/tuiguang/center/ +:ÿï08@R*58huanbao.com/skin/defaultcs2660/images/ad +.ÿï08@R590103.idv.tw/advertisement.js +'ÿï08@R5w8.fun/myads/img/*.gif +$ÿï08@R70.86.24.120:8060/*/ +$ÿï08@R75.125.41.29:8080/*/ +1ÿï08@R!85tube.com/player/player_ads.html ++ÿï08@R88box.com/images/ad_images/ +&ÿï08@R930mh.com/js/config.js™ +*ÿï08@R95306.cn/public/images/ad/ +(ÿï08@R95504.net/Advertisement_ +ÿï08@R 95599.cn^*ad +Eÿï08@R59zvip.net/wp-content/plugins/detect-adblock/js/ads.js +/ÿï* + ieeee.com08@Ra.alimama.cn/tkapi +ÿï08@Rabchina.com^*ad +1ÿï08@R!acgbenzi.com//dist/images/top.png + 08@Racgdraw.com/ad +ÿï08@R ad.10010.com^ +,ÿï* +jd.com08@Rad.3.cn/ads/mgets? +%ÿï08@Rad.8maple.ru/8ads.gif +)ÿï08@Rad.8maple.ru/bilibili.png +&ÿï08@Rad.8maple.ru/close.png +ÿï08@Rad.abchina.com^ + 08@Rad.alimama.com^ +!ÿï08@Rad.kazakinfo.com^ +ÿï08@Rad.ourgame.com^ +$ÿï08@Rad.thsi.cn/siteHome/ +ÿï08@Rad.vivo.com.cn^ +2ÿï08@R"ad4.on.cc/web/www/delivery/ajs.php +0ÿï08@R ad4.on.cc/web/www/delivery/fl.js +2ÿï08@R"ad4.on.cc/web/www/delivery/spc.php +4ÿï08@R$ad4.on.cc/web/www/delivery/spcjs.php +!ÿï08@Radcdn.pingan.com^ +/ÿï08@Raddon.dismall.com/resource/*/ad +08@Radjs.8591.com.tw^ +ÿï08@R adnet.qq.com^ +9ÿï* +outlook.live.com08@Radnxs.com/ast/static/ +:ÿï* + demo.ama.pub08@Radnxs.com/prebid/prebid.js +ÿï08@Rads.alafish.cn^ +%ÿï08@Rads.cdn.tvb.com^*.key +!ÿï08@Rads.lingxing.com^ +5ÿï* +privacy.qq.com08@Rads.privacy.qq.com^ +-ÿï* + +myqqjd.com08@Rads.reddit.com^ +ÿï08@Rads.tiktok.com^ + ÿï08@Radsense.woso.cn^ +?ÿï* + netflav.com08@R adserver.juicyads.com/js/jads.js +Cÿï* +logi.im08@R(adservice.google.com/adsid/integrator.js +ÿï08@Radvert.kf5.com^ +,ÿï08@Radx.yiche.com/cityindex.ashx +8ÿï08@R(adx.yiche.com/ssp/echo/v1.0/en?*,*,*&cs= +*ÿï08@Rairchina.com.cn/dynamicAd/ +O08@RAaixifan.com/static/home/widget/basic/advertisement/advertisement. +Lÿï08@Rÿï08@R.camerabay.tv/ads/entry/camerabay/fullbk/bg.jpg +%ÿï08@Rcaptcha.su.baidu.com^ +Tÿï* +pic.tiexue.net* + iyingdi.com* + fxpan.com08@Rcbjs.baidu.com/js/m.js +ÿï08@R ccb.com^*^ad +/* + movieffm.net08@Rcdn.jsdelivr.net^ +1* + movieffm.net08@Rcdn.staticfile.org^ +dÿï* + linetv.tw08@RGcdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/*/videojs.ads.min.js +1ÿï08@R!chaintv.xyz/homestatic/js/adjs.js +.ÿï08@Rcheshi-img.com/ad/csad_2019.js +)ÿï08@Rchina.com/dianbo/adv1.xml +=ÿï08@R-chinacourt.gov.cn/share/jquery/plugins/adbox/ +$ÿï08@Rchinamobile.com^*/ad +.ÿï08@Rchinatimes.com/css-main/ad.css +,ÿï08@Rchtoen.com/js/adsbygoogle.js +(ÿï08@Rcitysbs.com^*/swfupload/ +Dÿï* + seselah.com08@R%cloudflare.com/ajax/libs/fuckadblock/ +!ÿï08@Rcmbc.com.cn^*ads/ +!ÿï08@Rcmbchina.com/ads/ + 08@R cmechina.net^ +Aÿï08@R1cnki.com.cn/cnki/images/ad/2020/1112_45711271.jpg +ÿï08@R +cnr.cn/gg/ +Tÿï08@RDcnsexy.top/wp-content/plugins/dh-anti-adblocker/assets/js/showads.js +:ÿï08@R*cntv.cn/include/video/js/cntv_Advertise.js +ÿï08@Rcntv.cn^*_ad.js +0ÿï08@R colatour.com.tw/webDM/*/adbanner +.ÿï08@Rcontent.s8bbs.com/ad/bbs/*.jpg +@ÿï08@R0costco.com.tw/jsps/website/zh/images/location/AD +(ÿï08@Rcountrygarden.com.cn/ad/ +>ÿï* + htqyy.com08@R!cpro.baidustatic.com/cpro/ui/c.js +aÿï* +tangdoucdn.com* + bigpixel.cn* + +ali213.net08@R"cpro.baidustatic.com/cpro/ui/cm.js +/ÿï08@Rcq.qq.com/js/cody/*scroll_ad.js +!ÿï08@Rcreate.jd.com/ad/ +<* +gaus.ee08@R#criteo.com/delivery/ajs.php?zoneid= +,ÿï08@Rcruisecenter.com.tw/data/ad/ +9ÿï08@R)csdn.net/static/static/js/apps/popShow.js +6ÿï08@R&cstnet.cn/r/cms/cstnet/zh_CN/ad/index/ +>ÿï08@R.ctrip.com/Customer-Market-Proxy/AdCallProxyV2. +ÿï08@Rcy.com/hz/*/ad +%ÿï08@Rda.mgtv.com/m/player? +$ÿï08@Rda.mgtv.com/m5/page? +*ÿï08@Rdaoju.qq.com/time/*/js/ad/ +%ÿï08@Rdigiland.tw/advert.js +.ÿï08@Rdnbus.com.tw/AD/tab_route.html +"08@Rdoc110.com^*/ad.css? +'ÿï08@Rdouban.com/popup/login? +Cÿï* +www.gamer.com.tw08@Rdoubleclick.net/gpt/pubads_impl +- * + yyets.click08@Rdoubleclick.net^ +%ÿï08@Rdown.cc/down/js/ad.js +4ÿï08@R$dqzsteel.com/Website/Image/guanggao/Í +0ÿï08@R dwstatic.com/b=amkit&f=*/adjoin. +,ÿï08@Re.cn.miaozhen.com/r/k=*=http +1ÿï08@R!easylife.tw/js/adblockDetector.js +'ÿï08@Recitic.com/source/*/pop ++ÿï08@Recma.bdimg.com/holmes/*.svg +4ÿï08@R$eden.international/script/ad_banner/ +(ÿï08@Reden.org.tw^*/ad_banner/ +'ÿï08@Redgesuite.net^*/ad.css? +08@Redu.cn^*/ad.css? +3ÿï08@R#em.hk/wp-content/uploads/*_300_250. +,ÿï08@Remome.net/files/advertising/ +>ÿï08@R.epubit.com/static/epubit/share/js/share.min.js +ÿï08@Reslite.com^*/ad +Mÿï* + +jav777.xyz* + jav777.cc08@R"exoclick.com/iframe.php?*=2596969& +Kÿï* + porn77.info08@R,exoclick.com/iframe.php?idzone=*&size=468x60 +-ÿï08@Rez3c.tw/js/adblockDetector.js +% 08@Rfeilusw.com/search.html +=ÿï08@R-firefox.com.cn/media/img/mozcn/spread/468-60- +'ÿï08@Rfltaradio.com/js/ads.js +4ÿï* + shougedui.com08@Rforexprostools.com^ +.ÿï08@Rfreereceivesms.com/weborama.js +4ÿï08@R$friday.tw/backend/uploadpic/adindex/ +ÿï08@Rfscinda.com/ad/ +'ÿï08@Rg.alicdn.com/??*/criteo +)ÿï08@Rg.alicdn.com^*/banner_ad_ +: * + v.ifeng.com08@Rg.doubleclick.net/gampad/adx? +!ÿï08@Rgameflier.com/ad/ +&ÿï08@Rgamersky.com^*/dhgame_ +8ÿï08@R(ganji.com/findjob/send_resume.*&ad_type= +Vÿï08@RFgeekbang.org/resource/image/ad/14/addb521e20de1a302206f4286eac3914.png +&ÿï08@Rgenesyslogic.com^*/ads +)ÿï08@Rgg.wudizuqiu.com/72nba.js +"ÿï08@Rgitee.com/HServer/ +Eÿï* + +setn.com08@R)github.io/videojs-ima/node_modules/video. + ÿï08@Rgomein.net.cn^*, +$ 08@Rgoogle.com/translate_ +# 08@Rgoogle.de/translate_ +# 08@Rgoogle.es/translate_ +# 08@Rgoogle.fr/translate_ +# 08@Rgoogle.it/translate_ +# 08@Rgoogle.pl/translate_ +# 08@Rgoogle.pn/translate_ +# 08@Rgoogle.ps/translate_ +# 08@Rgoogle.rs/translate_ +# 08@Rgoogle.ru/translate_ +# 08@Rgoogle.sn/translate_ +# 08@Rgoogle.so/translate_ +eÿï* +ulifestyle.com.hk08@R@googleads.github.io/videojs-ima/node_modules/video.js/dist/video +;ÿï* + +renfei.net08@Rgoogleads4.g.doubleclick.net^ +;ÿï* +av01.tv08@R googletagmanager.com/gtag/js?id= +aÿï* +www.gamer.com.tw* + tvbs.com.tw* +tvb.com08@R#googletagservices.com/tag/js/gpt.js +4* + creaders.net08@Rgoogletagservices.com^ +0ÿï08@R gov.cn/scripts/Comm/AdRotator.js +;ÿï* +qq.com08@R!gtimg.cn/images/nz/cp/*/adimg.png + ÿï08@Rguancha.cn/ad/m_ +08@Rhanjubaike.com^ +08@Rhanjuwang.com^ +08@Rhanjuwang.net^ ++ÿï08@Rhaokoubei.top/sz/tos_v_f.js +.ÿï08@Rhaoweichi.com/Public/js/ads.js +08@Rhbu.cn^*/ad.css? +"ÿï08@Rhc360.com/ad/*.css +%ÿï08@Rhdsky.net/ad/down.png +&ÿï08@Rhistock.tw/JScript/AD/ü +/ÿï08@Rhk.on.cc/js/v4/oncc-adbanner.js +"ÿï08@Rhkjc.com/bannerad/ +(ÿï08@Rhopto.org/js/prebid-ads. +6ÿï08@R&i3.sinaimg.cn/video/deco/2013/0325/js/ +Aÿï08@R1ibf.tw/user/plugins/webtech-topbar/fuckadblock.js +7ÿï08@R'ibon.com.tw/imageserver/images/ad_file/ +8ÿï08@R(icantw.com/platform/cover_ad/cover_ad.js +,ÿï08@Ricbc.com.cn/icbc/include/AD_ +&ÿï08@Ricbc.com.cn/ICBC_ADJS/ +:ÿï08@R*icbc.com.cn/Portal_Resources/Common/AdCss/ +:ÿï08@R*icbc.com.cn/Portal_Resources/Common/AdRes/ +)ÿï08@Rifengimg.com/a/201*Player +Dÿï* + v.ifeng.com08@R%ifengimg.com/pdt/cfg/mudu/aplayer.xml +?ÿï* + v.ifeng.com08@R iis1.deliver.ifeng.com/showcode? +"ÿï08@Rikea.cn^*/img/ads/ +˜ÿï* +hamivideo.hinet.net* +ulifestyle.com.hk* +ani.gamer.com.tw* +appledaily.com* + mytvsuper.com* + nextmedia.com* + +881903.com* + ha365.com* + linetv.tw* +4gtv.tv* +line.me* +litv.tv* +now.com* +tvb.com* +udn.com08@R*imasdk.googleapis.com/js/sdkloader/ima3.js +!ÿï08@Rimfeifan.com/adv/ + ÿï08@Rimg.ads.tvb.com^ + 08@Rinoreader.com^ +&ÿï08@Rinpad.com.tw/data/adv/ +Qÿï* +appledaily.com* + nextmedia.com08@Rinskinmedia.com^*/js/base/api/ +Fÿï* + +tiktok.com08@R(ipstatp.com/business_center/dist/img/ad- +&ÿï08@Rixueshu.com/ad-server/ +,ÿï08@Rizo.tw/wp-content/advert1.js +Cÿï* +888.sports.qq.com08@Rj.wit.qq.com/sc/crystal_ad.js? +$ÿï08@Rjav777.cc/advertise/ +%ÿï08@Rjav777.xyz/advertise/ +-ÿï08@Rjavedit.com/d/js/acmsd/thea0. +ÿï08@Rjd.com/adclick? +$ÿï08@Rjjjgame.com/plus/ad_ +>ÿï* +ulifestyle.com.hk08@Rjsdelivr.net/combine/npm/ +"ÿï08@Rjswenhui.com^*/ad/ +Hÿï* +viu.tv08@R.jwpcdn.com/player/plugins/googima/*/googima.js +>ÿï08@R.kaitao.cn/public/wenda/ad/css/ds-un-detail.css +$ÿï08@Rkayixin.com^*/advert +Cÿï08@R3kehai.com/front/dist/app/site/list/advertisement.js +!ÿï08@Rkf.cn/ad/css/*.*. +"ÿï08@Rkf.cn/ad/css/*.css +$ÿï08@Rkf.cn/ad/css/images/ +'ÿï08@Rkfcclub.com.tw/web/*/ad +(ÿï08@Rkfcorder.com.tw^*/Advert +4ÿï* +888.sports.qq.com08@Rl.qq.com/lview? +4ÿï08@R$lager.com.tw/images/layer6_adbanner/ +)ÿï08@Rlandtop.com.tw/images/ad/ +ÿï08@Rlefile.cn/??*, +#ÿï08@Rlemall.com/adspace/ +0ÿï* + m.supfree.net08@Rlibs.baidu.com^ +*ÿï08@Rlinetv.tw^*/scripts/ads.js +"ÿï08@Rlitv.tv/ads/ads.js +=ÿï* + +m.v.qq.com08@Rlivew.l.qq.com/livemsg?pf=H5&ad + ÿï08@Rlncn.org/ad.json +%ÿï08@Rlnk2.cc/js/ad_code.js +(ÿï08@Rloltmcheck.com/js/ads.js +'ÿï08@Rmacauo2o.com/advertise/ +%ÿï08@Rmanhua.weibo.com/adv/ ++ÿï08@Rmasterkong.com.cn/adimages/ +,ÿï08@Rmcmod.cn/js/jquery.cookie.js +(ÿï08@Rmedia.jd.com/static/*/ad +#ÿï08@Rmedia.org.hk^*/ads_ +Gÿï* +mini.yyrtv.com* + china.com08@Rmediav.com/js/feed_ts.js +Cÿï* + v.360kan.com08@R#mediav.com/js/interactive_plugin.js +Aÿï* + baiten.cn08@R$mediav.com/js/reward_video_pc.min.js +,ÿï08@Rmeizu.com/fileserver/ad/img/ +(ÿï08@Rmiaozhen.com^*/m.suning.™" +,ÿï08@Rmicrosoft.com/translate/auth +2ÿï08@R"microsofttranslator.com/translate? +!ÿï08@Rmm.maxthon.cn/ad/ +ÿï08@Rmmy.la^*300*250 +*ÿï08@Rmnighthk.net/template/*/ad +2ÿï08@R"momovod.com/js/momo/adsbygoogle.js +2ÿï08@R"money18.on.cc/js/ad/liveinfo_page/ +,ÿï08@Rmoney18.on.cc/js/adbanner.js +)ÿï08@Rmuzlan.top/ads/banner.png ++ÿï08@Rnceea.cn/Content/images/ad/ +/ÿï08@Rnetded.com/plus/ad_js.php?aid=3 +%ÿï08@Rnews.u17i.com/advert/ +-ÿï08@Rnewsmth.net/nForum/*/ADAgent_ +ÿï08@Rnoahedu.com/ad/ +(ÿï08@Rnoahedu.com/advertising/ +6ÿï08@R&nowscore.com/script/common/adHelper.js +ÿï08@Rnthu.edu.tw^*ad +(ÿï08@Rntou.edu.tw/bin/showads. +-ÿï08@Rntu.edu.tw/modules/banner.php +)ÿï08@Rntust.edu.tw/bin/showads. +$ÿï08@Rnvidia.cn^*-300x250- +&08@Ronline.unionpay.com/ads/ +1ÿï08@R!orientaldaily.on.cc/js/oncc-ad.js +Uÿï* + bilinovel.com08@R4pagead2.googlesyndication.com/pagead/*/show_ads_impl +dÿï* +ff14angler.com* +logi.im08@R7pagead2.googlesyndication.com/pagead/js/*/show_ads_impl +Yÿï* + doitwell.tw08@R:pagead2.googlesyndication.com/pagead/js/*/show_ads_impl.js +øÿï* +dizhishengcheng.com* +it365.abctool.info* +sistersbedroom.com* +monnsutogatya.com* +shenfendaquan.com* +zaixianjisuan.com* +numberempire.com* +patch.ali213.net* +chaojizhibo.net* +aboluowang.com* +ff14angler.com* +wenxuecity.com* +xugaoxiang.com* + 4horlover.com* + bilinovel.com* + blog.6ziz.com* + haoweichi.com* + linovelib.com* + daxiaamu.com* + demo.ama.pub* + docsmall.com* + freedidi.com* + kejilion.pro* + mens1069.com* + pansearch.me* + xbeibeix.com* + xiebruce.top* + xxxxx520.com* + 4spaces.org* + doitwell.tw* + ekamus.info* + uiadmin.net* + vaptcha.com* + +assbbs.com* + +chtoen.com* + +mcappx.com* + +myqqjd.com* + +pc3mag.com* + +sto520.com* + +wandhi.com* + +wuyong.fun* + +yeeach.com* + +yummy.best* + eu4cn.com* + fsbot.xyz* + mpyit.com* + ozabc.com* + +23qb.net* + +yodu.org* +logi.im* +reh.tw08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +› * +moneysave.info* + duelmeta.com* + +raenonx.cc* + linetv.tw* + liout.com* + zxmee.com08@R6pagead2.googlesyndication.com/pagead/js/adsbygoogle.js +Sÿï* +ebb.io08@R9pagead2.googlesyndication.com/pagead/js/google_top_exp.js +Íÿï* +knowlet3389.blogspot.com* +knowlet3389.blogspot.hk* +knowlet3389.blogspot.jp* +knowlet3389.blogspot.tw* + mnighthk.net* + weithenn.org08@R0pagead2.googlesyndication.com/pagead/show_ads.js +Cÿï* +battlecats-db.com08@Rpagead2.googlesyndication.com^ +(ÿï08@Rpapi-service.jd.com/ads/ +)ÿï08@Rpassiontimes.hk^*-ad.php? +@ÿï* + game735.com08@R!pchome.com.tw/img/js/xpcadshow.js +0ÿï08@R petrochina.com.cn/advertisement_ +,ÿï08@Rpiccool.com/2home/phpAdsNew/ +%ÿï08@Rpinduoduo.com/advert/ +08@R poedb.tw^*ad +6* + fxpan.com* + htqyy.com08@Rpos.baidu.com^ +,€* + bigpixel.cn08@Rpos.baidu.com^ +;ÿï* + bigpixel.cn08@Rpos.baidu.com^*?di=u3160754& +Fÿï08@R6pptv.com/webdelivery/webafp?cb=loadAdStatus&*sports.pp +*ÿï08@Rpro.gooooal.com/ad/ad_2.js +2ÿï08@R"pttplay.com/js/momo/adsbygoogle.js +.ÿï08@Rpub.alimama.com/common/adzone/ +** + creaders.net08@R pub.network^ +}ÿï* +imasdk.googleapis.com08@RTpubads.g.doubleclick.net/gampad/ads?*&description_url=https%3A%2F%2Fani.gamer.com.tw +0ÿï08@R qcheng.cc/x/statics/js/guanggao. +:ÿï08@R*qiantucdn.com/static/images/adsbygoogle.js +4ÿï08@R$qimingdao.com/Index/loadmore?tag_id= +"ÿï08@Rqingcheng.com^*/ad +.ÿï08@Rqingdaoport.net/adv/random.jsp +2ÿï08@R"qiyipic.com/common/fix/pub_images/ +0ÿï* +privacy.qq.com08@Rqq.com/ads/js/ +%ÿï08@Rqq.com/bossweb/jifen/ +(ÿï08@Rqq.com/cgi-bin/*?sid=ads +8ÿï08@R(qq.com/html/mms/nativeads/game_rank.html +7ÿï08@R'qq.com/json/mms/nativeads/rankings.json +=ÿï08@R-qq.com/server/website/CommWebGameSelect_ad.js +)ÿï08@Rqq.com/web201602/js/ad.js +ÿï08@Rqq.com^*?ADTAG= +8ÿï08@R(qspfw.com/r/cms/www/qspfw/common/img/ad_ + mnighthk.net $elemhide$ +monnsutogatya.com $elemhide¦ +.ÿï08@Rquanzhi.cn/v3/images/index_ad/ +$08@Rredguide.top^*/ad.css? +?ÿï08@R/regapi.37.com/api/p_register.php?login_account= +)08@Rright.com.cn/forum/*300*250 +*ÿï08@Rrltdxt.com/files/h5/app.js +!ÿï08@Rrmdown.com/ads.js +-ÿï08@Rruten.com.tw/ahd/fetch_ad.php +;ÿï08@R+ruten.com.tw/js/jquery.ruten.supertop_ad.js +Šÿï* +tw.stock.yahoo.com* +hk.news.yahoo.com* +tw.news.yahoo.com* + hk.yahoo.com* + tw.yahoo.com08@Rs.yimg.com/ja/ap/*/jquery. +1ÿï08@R!sax.sina.com.cn/video/newimpress? +ûï08@Rsdc.pingan.com^ +Dÿï* +line.me08@R)securepubads.g.doubleclick.net/gpt/pubads +`ÿï* +line.me08@REsecurepubads.g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js +Gÿï* +line.me08@R,securepubads.g.doubleclick.net/tag/js/gpt.js +!ÿï08@Rselfimg.com.cn/?? +,ÿï08@Rshijue.me/advertise/getList? +2ÿï08@R"shine.cn/showadcode2.asp?posid=68& +6ÿï08@R&shopeemobile.com/shopee/*/modules/ads/ +2ÿï08@R"shopeesz.com/shopee/*/modules/ads/ +9ÿï* + v.360kan.com08@Rshow.g.mediav.com/s?type= +5* + +miercn.com08@Rshow.g.mediav.com/s?type= +)08@Rsimba.taobao.com/?name=mcad +*ÿï08@Rsina.com.cn/litong/*/close +%ÿï08@Rsina.com.hk^*_ads.cgi +,ÿï08@Rsinaimg.cn/ad/adimage/50x50_ +8* +finance.sina.com.cn08@Rsinaimg.cn/cj/deco/ +/ÿï08@Rsinaimg.cn/dy/deco/*/js/base.js +2ÿï08@R"sinaimg.cn/dy/deco/*/js/require.js +Iÿï* +video.sina.com.cn08@R$sinaimg.cn/unipro/pub/suda_m_v629.js +.ÿï08@Rsinaimg.cn^*/deco/*/sinaObj.js +8ÿï08@R(sinopac.com/applyweb/OpenAccount/js/oas. +)ÿï08@Rsjsmitaa.org/bin/showads. +,ÿï08@Rsogou.com/adpub/cfg/sendmsg. +*ÿï* + mens1069.com08@R +sovrn.com^ +$ÿï08@Rsozi.cn/images/ad/tj +Cÿï08@R3ssports.com/images/resources/web/live/js/LiveAds.js +)08@Rstatic.hdslb.com/ad-images/ +@ÿï08@R0stcaimcu.com/data/attachment/common/cf/stc_logo_ +'ÿï08@Rstudioclassroom.com/ad/ +#ÿï08@Rsudupan.com^*/*.gif +/ÿï08@Rsuning.cn/project/msIndex/js/?? +'ÿï08@Rsupercloudsms.com/js/ad +/ÿï08@Rswsc.com.cn/download/ad_images/ +ÿï08@Rsxjbjt.com^*/ad +ÿï08@Rszhr.com.cn^*ad +ÿï08@R szhr.com^*ad +Bÿï* +tangdoucdn.com08@R tangdou.com/sample/share/advert? +4ÿï08@R$tansuo.cntv.cn^*/tansuo_Advertise.js +6ÿï08@R&taobao.com/go/app/tmall/login-api.php? +'ÿï08@Rtaobao.com^*&adgroupid= +;ÿï08@R+tenpay.com/v2/res/pub/cps/main/bottom_ad.js +#ÿï08@Rtenpay.com^*?ADTAG= +$ÿï08@Rtgfcer.com/advert.js +#ÿï08@Rtkec.com.tw/api/ad/ +)ÿï08@Rtmall.com/go/*/banner.php +*ÿï08@Rtotheglory.im/pic/ttg_logo +Iÿï* +products.weather.com.cn08@Rtq121.com.cn/j/ad/caoyu-min.js +1ÿï08@R!translate.googleapis.com/element/ +3ÿï08@R#translate.googleapis.com/translate_ +4ÿï08@R$trip-jam.com/resources/js/adsense.js +%ÿï08@Rtt1069.com/adbrite.js +!ÿï08@Rtt1069.com/ads.js +$ÿï08@Rtt1069.com/adserv.js +$ÿï08@Rtt1069.com/advert.js± +ÿï08@Rtt1069.com/dfp. +ÿï08@Rttkdex.com^*ad +#ÿï08@Rtui.click/js/ads.js +&ÿï08@Rtvb.com^*/videojs.ads. +&ÿï08@Rudndata.com/ndapp/ads/ +2ÿï08@R"udnplay.com/js/momo/adsbygoogle.js +/ÿï08@Rujinbi.com/UpLoadFile/guanggao/ +Aÿï08@R1ulifestyle.com.hk/store/prod/iskypost/res/js/dfp- +*ÿï08@Rupxin.net/advertisement.js +2ÿï08@R"uu.res.netease.com/pc/zt/*/img/ad_ +Yÿï08@RIv2rayssr.com/wp-content/plugins/dh-anti-adblocker/public/js/prebid-ads.js +5ÿï08@R%valf.atm.youku.com/vf?site=1&rst=mp4& +,ÿï* + hinet.net08@Rvast.btrll.com^ +%ÿï08@Rvideo.520cc.cc/ad.php +)ÿï08@Rvlist.se/advertisement.js +,ÿï08@Rvvic.com/monetize/ads/index/ + 08@Rware.shop.jd.com^ +>ÿï08@R.webmail.smartlinkcorp.com/dotrans_20160909.php ++ÿï08@Rweibo.com/api/weipan/getAds ++ÿï08@Rweiyun001.com/banner_ads.js +9ÿï08@R)wenxuecity.com/include/editor/*/media/ad/ +%ÿï08@Rwuyou.com.cn/Js/ad.js +Eÿï* + baomidou.com* + nodejs.cn08@Rwwads.cn/js/makemoney.js +2ÿï* + google.cn08@Rwww.google.*/adsense/ +/ÿï08@Rwx.qq.com/c/=/mpres/*/video_ad_ +-ÿï08@Rwx.qq.com/mmbizwap/*/framead. +<ÿï* + shixiseng.com08@Rxiaoyuanzhao.com/adservice/ +4ÿï08@R$xinhuanet.com/gsstatics/*/images/ad/ +9ÿï08@R)xnimg.cn/n/apps/profile/modules/tuiguang/ +.ÿï08@Ryantuchina.com/gg/tmp/hong.gif +Hÿï* + hk.yahoo.com* + tw.yahoo.com08@Ryimg.com/ss/rapid-3.*.js +#ÿï08@Ryimg.jp/combo?*/ad/ +-ÿï08@Ryimuhe.com/n_js/advertiser.js +%ÿï08@Ryiqifa.com/ad_images/ +$ÿï08@Ryouaima.com/zz/play_ +2ÿï08@R"yunduanxin.xyz/static/js/banger.js +4ÿï08@R$yunjiema.top/static/js/wpsafelink.js +!08@Rzjjcxy.cn^*/ad.css? +!08@Rzpmobi.cn^*/ad.css? +08@R 17ce.com^*_ +Qÿï08@RA18-comicfrieren.xyz,18comic.org,18comic.vip#?#:-abp-has(>ins+div) +Tÿï08@RD18-comicfrieren.xyz,18comic.org,18comic.vip#?#:-abp-has(>ins+script) +Sÿï08@RC18-comicfrieren.xyz,18comic.org,18comic.vip#?#:-abp-has(>ins+style) +Tÿï08@RD18-comicfrieren.xyz,18comic.org,18comic.vip#?#:-abp-has(>script+ins) +oÿï08@R_18-comicfrieren.xyz,18comic.org,18comic.vip#?#:not(body):-abp-has(>script[src*=".realsrv.com"]) +2€08@R#18-comicfrieren.xyz/media/albums/*? +(€08@R18comic.*/media/albums/*? +4ÿï08@R$58.com#?#.ac_item:-abp-has(.jingpin) +wgun.net $elemhide + guailie.com +.google-ad; + +17ce.com+a[href^="http"]:not([href*="17ce.com"]) imgE +18-comicfrieren.xyz + 18comic.org + 18comic.vip #guide-modalE +18-comicfrieren.xyz + 18comic.org + 18comic.vip .div_sticky2H +18-comicfrieren.xyz + 18comic.org + 18comic.vip.modal-backdrope +18-comicfrieren.xyz + 18comic.org + 18comic.vip,.row[style="display: flex;flex-wrap: wrap;"]n +18-comicfrieren.xyz + 18comic.org + 18comic.vip5a[href*="//"]:not([href*="comic."]) > [style*="back"]i +18-comicfrieren.xyz + 18comic.org + 18comic.vip0a[href*="//"]:not([href*="comic."]) > div[style]b +18-comicfrieren.xyz + 18comic.org + 18comic.vip)a[href*="//"]:not([href*="comic."]) > imgl +18-comicfrieren.xyz + 18comic.org + 18comic.vip3a[href*="//"]:not([href*="comic."]) > img + [style]r +18-comicfrieren.xyz + 18comic.org + 18comic.vip9style + div[style="cursor: pointer; position: relative;"] +58.com #rightRetui +58.com.S_table_ding_box +58.com .topinfos +58.com.zhiding-borderÑ) +Wÿï08@RG58.com#?#.business_main:-abp-has(> .business_desc > .left > .ding_icon) +8ÿï08@R(58.com#?#.zzinfo:-abp-has(.zhiding_icon) +<ÿï08@R,58.com#?#LI[sortid]:-abp-has(.icon-jingxuan) +;ÿï08@R+58.com#?#LI[sortid]:-abp-has(.icon-zhiding) +5ÿï08@R%58.com#?#LI[sortid]:-abp-has(.jinico) +Gÿï08@R758.com#?#TR[logr]:-abp-has(> .t > .mt-p-tit > .jingpin) +Bÿï08@R258.com#?#tr[sortid]:-abp-has(> .t > .ico.accurate) ++ÿï08@R69t49.com/floating/layer.js +=ÿï08@R-alicdn.com/img/ibank/*_!!2210231227621-0-cib. +:ÿï08@R*alicdn.com/img/ibank/*_!!3820217494-0-cib. +2ÿï08@R"alicdn.com/img/ibank/*_1847837006. +Dÿï08@R4alicdn.com/kf/Ha3566a6209ec45f597d392707b066cb9D.jpg +Dÿï08@R4alicdn.com/kf/Ub1be4a53456c4dd2a7dbc839969ed856a.gif +2ÿï08@R"upload.cc/i1/2020/07/13/8BGJiL.gif +lÿï08@R\91porny.org,jiuse100.cc,jstv600.com,x9av7.com#?#.card:-abp-has(>.card-image>a[href^="http"]) + ÿï* + +99re.com08@R.gif +ÿï08@R/99rejs/js/adv +)ÿï* + +99re.com08@R /js/layer1.js +'ÿï* + +99re.com08@R alicdn.com^ +'ÿï* + +99re.com08@R sinaimg.cn^ +&ÿï* + +99re.com08@R +upload.cc^ +’ÿï* +syndication.exosrv.com* +adserver.juicyads.com* +ads.adxadserv.com* +cs.adxpansion.com* +static.javhd.com* +olmsoneenh.info08@ + 08@Ravgle.com/embed/ +(ÿï* + avgle.com08@R adxxx.info^ +6ÿï* + avgle.com08@Ravgle.topgirlsdating.com^ +%ÿï* + avgle.com08@Rjads.co^ +-ÿï* + avgle.com08@Rolmsoneenh.info^ +zÿï08@Rjipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#.c-container:-abp-has(.t > a[data-landurl]) +†ÿï08@Rvipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div + div[id] +€ÿï08@Rpipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div[id]!#guanggao1[style^="position"]!#guanggao2[style^="position"]N + 91porny.org + jiuse100.cc + jstv600.com + x9av7.com.footer + .blockS + 91porny.org + jiuse100.cc + jstv600.com + x9av7.com#main > div[id^="rd"]#playerJsvLayer.jsv-layer5 + 91porny.com".container-fluid.p-0[class*="mb-"].fixed-bottom.jsv.jsv-g1 + 91porny.com.jsv-g1;7header + #main:nth-child(n+4) .container-fluid.mb-0.p-0;7header + #main:nth-child(n+4) .container-fluid.mb-3.p-0@
div[id^="po-s"]:not(#po-shd) + +99re.com .dmcenter + +99re.com.spotsƒ +xueshu.baidu.com#? +ipv6.baidu.com +www1.baidu.com + www.baidu.com4content_left > [class]:-abp-has(span[data-tuiguang])r +xueshu.baidu.com#? +ipv6.baidu.com +www1.baidu.com + www.baidu.com#content_left > [style*="important"]x +xueshu.baidu.com#? +ipv6.baidu.com +www1.baidu.com + www.baidu.com)content_left > div:-abp-has(.ec-tuiguang)„ +xueshu.baidu.com#? +ipv6.baidu.com +www1.baidu.com + www.baidu.com5content_right > [class]:-abp-has(span[data-tuiguang])y +xueshu.baidu.com#? +ipv6.baidu.com +www1.baidu.com + www.baidu.com*content_right > div:-abp-has(.ec-tuiguang)w +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com*#content_left > [class] > [id*="00"] > divy +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com,#content_left > [class] > [id*="00"] > tbodyv +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com)#content_left > [class] > [id*="00"] > ul‡ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com:#content_left > [class] > a[href*="//e.baidu.com/?refer="]Š +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com=#content_left > [id*="00"]:not(.result):not(.result-op) > divŒ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com?#content_left > [id*="00"]:not(.result):not(.result-op) > tbody‰ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com<#content_left > [id*="00"]:not(.result):not(.result-op) > ulŠ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com=#content_left > div:not([id]) > div[id][data-rendered="true"]x +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com+#content_left > div[class][style]:not([id])± +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comd#content_left > div[id*="00"]:not(.result):not(.result-op) + div[class]:not(.result):not(.result-op)ƒ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com6#content_left > style[id^="s-"] + div[id]:nth-child(2)‹ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com>#content_left > style[id^="s-"] + style + div[id]:nth-child(3)4 + baidu.com##content_right > div > div[id^="m"]} +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com0#content_right > div[id][data-click^="\7b \"fm"]• +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comH#content_right > table > tbody > tr > td > div:not(#con-ar):not([class])} +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com0#content_right > table > tbody > tr > td > table‚C +&€08@Rcaptcha.qq.com^*?*=*=*= +/€08@R newver.api.dedecms.com/index.php +Yÿï* + +hao123.com* + +haokan.com* + +yoojia.com08@Rf*.baidu.com/it/u=*,*&fm= ++ÿï08@Rt*.baidu.com/it/u=*,*&fm=76 +™ÿï* +duanmeiwen.com* + aiyangedu.com* + yuwenmi.com* + +qunzou.com* + +ruiwen.com* + jy135.com* + oh100.com* + yjbys.com* + +unjs.com08@R/css_js/ +—€* +mipcache.bdstatic.com* +fangdaijisuanqi.com* +jingdianlaoge.com* +cyyangqiguan.com* +1010jiajiao.com* +chajiaotong.com* +chinacar.com.cn* +chinakaoyan.com* +latiaozixun.net* +wenkuxiazai.com* +woyaogexing.com* +91zhongkao.com* +ankangwang.com* +chinawj.com.cn* +cidianwang.com* +diyifanwen.com* +faxingzhan.com* +jintang114.org* +miyudaquan.com* +quwenqushi.com* +shenchuang.com* +szdushi.com.cn* +wenshenxiu.com* +wenzhangba.com* +xiachufang.com* +zuowenwang.net* + 114piaowu.com* + aiyangedu.com* + bianzhile.com* + chazidian.com* + enterdesk.com* + gulongbbs.com* + huangye88.com* + icauto.com.cn* + jianbihua.com* + pingguolv.com* + shadafang.com* + yiyouliao.com* + 10000xing.cn* + 5djiaren.com* + 5seestar.com* + 86huoche.com* + apple886.com* + baicaolu.net* + baotang5.com* + bendibao.com* + blog.sina.cn* + dugoogle.com* + jinbaodm.com* + liuxue86.com* + m.douban.com* + makepolo.com* + pingshu8.com* + yellowurl.cn* + zhongyoo.com* + zixuntop.com* + zuowenku.net* + 21hubei.com* + 5000yan.com* + 91jucai.com* + bu-shen.com* + bytravel.cn* + chuiyue.com* + cjcp.com.cn* + cnbanbao.cn* + cnlinfo.net* + diangon.com* + eastday.com* + gucheng.com* + gushiwen.cn* + idongde.com* + isanxia.com* + ixinwei.com* + jeasyui.net* + meishij.net* + pansoso.com* + qizuang.com* + xiangha.com* + xiaole8.com* + yuwenmi.com* + zhifure.com* + ziyuanm.com* + zuowen8.com* + +1024sj.com* + +201980.com* + +2hanju.com* + +2liang.net* + +51sxue.com* + +51test.net* + +52wubi.com* + +911cha.com* + +949949.com* + +admin5.com* + +aihami.com* + +aizhan.com* + +b2b168.com* + +cnkang.com* + +coozhi.com* + +daquan.com* + +exam58.com* + +gaosan.com* + +hxnews.com* + +ixiunv.com* + +mmyuer.com* + +phb123.com* + +pikacn.com* + +qcwxjs.com* + +ruiwen.com* + +uzuzuz.com* + +webshu.net* + +xiao84.com* + +yxlady.com* + +zdface.com* + 00cha.com* + 11467.com* + 192ly.com* + 1ting.com* + 360doc.cn* + 515fa.com* + 51edu.com* + 51zxw.net* + 52zxw.com* + 99.com.cn* + ab126.com* + annhe.net* + arpun.com* + askci.com* + aspku.com* + atobo.com* + boosj.com* + c1km4.com* + china.com* + cr173.com* + diyju.com* + dxsbb.com* + friok.com* + fun48.com* + gaotie.cn* + gugu5.com* + hqhot.com* + hydcd.com* + jf258.com* + jy135.com* + oh100.com* + pig66.com* + qm120.com* + qncye.com* + qqzhi.com* + sc115.com* + ssqzj.com* + yanyue.cn* + yjbys.com* + yyrtv.com* + zjbiz.net* + +06ps.com* + +1ppt.com* + +263y.com* + +32xp.com* + +4aqq.com* + +66law.cn* + +9553.com* + +9939.com* + +b2b6.com* + +bbdj.com* + +cncn.com* + +d1xz.net* + +dgzj.com* + +hc23.com* + +jj20.com* + +szhk.com* + +xiegw.cn* + +xywy.com* + +yiqig.cn* +32r.com* +5nd.com* +7y7.com* +9ht.com* +mama.cn* +qcrx.cn* +riji.cn* +wmxa.cn* +39.net* +5h.com* +d17.cc08@R?*=*=*= +"ÿï08@Rstatic.wjxcdn.com^ +ÿï08@R a1.tuke8.com^ + ÿï08@Rnxet1.360doc.cn^ +!ÿï08@Rbun1.dayi.org.cn^` +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#ecl-temai-category_ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#ecl-temai-generalg +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#ecl-weigou-view-containerP +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#lmX +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com #op_wiseappX +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com .EC_newppimU +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ec_bdtgh +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-car-powerful-containeri +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-health-pagelist-wrapperh +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-health-poplist-wrapper` +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-loan-list-card\ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-tg-contentl +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-wealth-list-card-container` +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ecl-weigou-nav-buyY +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com .ecom-result\ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.op_tvplay_maine +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.opr-xmas-game-container$ + baidu.com.opr-zhaopin-ad-ctn\ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.res_top_banner~ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com1.result-op[data-click*="\"rsv_srcid\":\"10090\""]B + baidu.com1.result-op[tpl="pc-soft-accurate"] > div > .c-rowu +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com(.result-op[tpl="right_chris_prize_list"]p +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#.result-op[tpl="right_timeliness2"]] +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.tools > .shouji( + baidu.com.wa-zp-exact-new-border\ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com.ylbx_game_descv +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com)div:not([id]) > style[id^="s-"] + div[id]„ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com7div:not([id]) > style[id^="s-"] + style + div + div[id]~ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com1div:not([id]) > style[id^="s-"] + style + div[id]b +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[class^="EC_pla_"]y +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com,div[class^="ecl"][class*="game"] > .c-borderc +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[class^="ecl-edu-"]m +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com div[class^="ecr"][class*="game"]z +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com-div[data-click="\7b \"rsv_srcid\":49516\7d "]Ž +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comAdiv[id$="2"] ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"]_ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[id$="_canvas"]d +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[id^="ecl-pc-game-"]k +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[srcid="13602"] > .c-borderb +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[tpl="app_normal"]p +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#div[tpl="b2b_straight"] > .c-bordern +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com!div[tpl="houses_new"] > .c-bordero +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com"div[tpl^="ecl_health"] > .c-borderh +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[tpl^="job"] > .c-borderp +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com#div[tpl^="qunar_hotel"] > .c-borderj +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[tpl^="right_qunar_hotel"]i +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comdiv[tpl^="soft"] > .c-border™ +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.comLstyle[data-for] + style ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"]o +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com"style[id^="s-"] + script + div[id]x +xueshu.baidu.com +ipv6.baidu.com +www1.baidu.com + www.baidu.com+style[id^="s-"] + script + script + div[id]#cpro_container$ + baidu.coma[href*="/cpro."]$ + baidu.coma[href*="/cpro/"]a[href*="/mobads.php?"]okbody > div[style="display:none;"] + div[style="display:none;"] + div[id][class][style^="background-color:"]ñ +#ÿï08@Rcode.wenbanzhu.com^ +!ÿï08@Rreke.at.sohu.com^ +#ÿï08@Rabc.ruodian360.com^ +$ÿï08@Rhcirentgh.360doc.cn^ +$ÿï08@Ra1.cyyangqiguan.com^ +$ÿï08@Rjbdch1.appmobile.cn^ +ÿï08@Rlcd.aivote.com^ +#ÿï08@Rcnbd1.appmobile.cn^ +ÿï08@R 003store.com^ +ÿï08@R +0512s.com^ +ÿï08@R 0755rc.com^ +ÿï08@R 0941.org^ +ÿï08@R 1.07swz.com^ +ÿï08@R1.1010pic.com^ +ÿï08@R1.11130.com.cn^ +ÿï08@R 1.11467.com^ +ÿï08@R 1.15lu.com^ +ÿï08@R 1.201980.com^ +ÿï08@R 1.32xp.com^ +ÿï08@R1.5000yan.com^ + ÿï08@R1.51dongshi.com^ +ÿï08@R 1.51sxue.cn^ +ÿï08@R 1.66law.cn^ +ÿï08@R 1.78500.cn^ +ÿï08@R 1.95ye.com^ + ÿï08@R1.ajiyuming.com^ +ÿï08@R 1.arpun.com^ +ÿï08@R 1.bh5.com.cn^ +ÿï08@R1.codesdq.com^ +ÿï08@R 1.codezh.com^ +!ÿï08@R1.doudouditu.com^ +ÿï08@R 1.feihua.com^ + ÿï08@R1.feihua.net.cn^ +ÿï08@R 1.glook.cn^ +ÿï08@R 1.gunsuo.com^ + ÿï08@R1.hnyouneng.com^ +ÿï08@R1.isanxia.com^ +ÿï08@R1.jeasyui.net^ +!ÿï08@R1.jiangzheba.com^ +ÿï08@R 1.jiqie.cn^ +ÿï08@R1.jushtong.com^ +ÿï08@R1.kuaidiwo.cn^ +ÿï08@R1.lishibu.com^ +ÿï08@R1.lvshi567.com^ +ÿï08@R 1.mgff.com^ +ÿï08@R 1.pncdn.cn^ +ÿï08@R 1.qjhm.net^ +ÿï08@R 1.shopit.cn^ +ÿï08@R 1.sj33.net^ +ÿï08@R 1.tecbbs.com^ +ÿï08@R1.ttxs123.net^ +ÿï08@R 1.uc129.com^ +ÿï08@R 1.v-x.com.cn^ +"ÿï08@R1.weiheshidai.com^ +ÿï08@R 1.xilu.com^ +ÿï08@R 1.xuexi.la^ +ÿï08@R 1.yac8.net^ +ÿï08@R 1.yuexw.com^ +ÿï08@R1.yxzw.com.cn^ +ÿï08@R1.zhev.com.cn^ +#ÿï08@R1.zhuangxiu567.com^ +ÿï08@R 1.zou114.com^ + ÿï08@R1.zuowenjun.com^ +ÿï08@R 1.zw3e.com^Ì +ÿï08@R 100669.com^ +ÿï08@R1017.cn^ + ÿï08@R11.96131.com.cn^ +ÿï08@R11.golang8.com^ +ÿï08@R 11.yiqig.cn^ +ÿï08@R 11.yiqig.com^ +ÿï08@R12.cookcai.com^ +ÿï08@R 123456.asia^ +ÿï08@R 15tianqi.com^ +ÿï08@R17.huanqiu.com^ +ÿï08@R 177o.com^ +"ÿï08@Rlu2.luyouwang.com^ +ÿï08@R 1999019.com^ +"ÿï08@R1buu1.penyouw.com^ + ÿï08@R2.haoxue360.com^ +ÿï08@R 200218.com^ +ÿï08@R 20091222.com^ +ÿï08@R2021.dxsbb.com^ +#ÿï08@R21.cizhibaogao.org^ +"ÿï08@R21.fh21static.com^ +#ÿï08@R21.zhaozongjie.com^ +!ÿï08@R283.laobanfa.com^ +ÿï08@R +3.5646.cn^ +ÿï08@R +3.cjcp.cn^ +ÿï08@R 3.ssqzj.com^ +ÿï08@R 301848.com^ +ÿï08@R32.huanqiu.com^ +#ÿï08@R321.jintang114.org^ +ÿï08@R 360640.com^ +ÿï08@R 39jz.com^ +ÿï08@R 5.ccutu.com^ +ÿï08@R5.gzfenda.com^ +ÿï08@R50m.gkcyc.com^ +ÿï08@R 51gxqm.com^ +ÿï08@R 51yhzp.com^ +ÿï08@R 58tg.com^ +ÿï08@R 5mm.zxfw5.cn^ +ÿï08@R 5pub.com^ +ÿï08@R 644446.com^ +ÿï08@R 6669667.com^ +ÿï08@R 7011.stia.cn^ +ÿï08@R76e.org^ +ÿï08@R 7car.com.cn^ +ÿï08@R 80juqing.com^ +%ÿï08@R8131.qizhihaotian.cn^ +#ÿï08@R8961.jianbihua.com^ +ÿï08@R 91friend.com^ +ÿï08@R 94ab.com^ +ÿï08@R +98158.com^ +ÿï08@R 999d.com^ +#ÿï08@Ra*.chajiaotong.com^ +ÿï08@Ra.10tianqi.com^ +ÿï08@R a.4aqq.com^ +ÿï08@R a.52wubi.com^ +ÿï08@R a.52zxw.com^ +ÿï08@R a.777n.com^ +ÿï08@R a.78yx.net^ +ÿï08@R a.91nets.cn^ +!ÿï08@Ra.91zhongkao.com^ +ÿï08@Ra.armystar.com^ +ÿï08@Ra.baidinet.com^ +ÿï08@R a.bake818.cn^ +ÿï08@R a.bfking.cn^ +ÿï08@R a.bxwblog.cn^– +!ÿï08@Ra.duanmeiwen.com^ +ÿï08@R a.duduji.com^ +ÿï08@Ra.dxzy163.com^ +ÿï08@R a.dyjqd.com^ +ÿï08@R a.epinv.com^ +ÿï08@R a.exam58.com^ +ÿï08@Ra.guzhilin.com^ +ÿï08@R a.hbf23.cn^ +ÿï08@Ra.huocheba.com^ +ÿï08@R a.icdol.com^ +ÿï08@R a.imgso.cn^ +ÿï08@R a.llysc.cn^ +ÿï08@R +a.lz13.cn^ +ÿï08@R a.mfcad.net^ +!ÿï08@Ra.miyudaquan.top^ +ÿï08@R a.oh100.com^ +ÿï08@Ra.qinghua5.com^ +ÿï08@R a.qncye.net^ + ÿï08@Ra.qsjiajiao.com^ +ÿï08@R a.qunzou.com^ + ÿï08@Ra.rensheng5.com^ +!ÿï08@Ra.shenchuang.com^ +#ÿï08@Ra.tainengchong.com^ +ÿï08@R a.thn21.com^ +ÿï08@Ra.tiyuxiu.com^ +ÿï08@Ra.tuizhuti.com^ +ÿï08@R a.tvsou.com^ + ÿï08@Ra.wanzhuang.com^ +ÿï08@R a.wifi33.com^ +ÿï08@R +a.wzu.com^ + ÿï08@Ra.xixiyishu.com^ +ÿï08@R a.xue126.com^ + ÿï08@Ra.xuezizhai.com^ +ÿï08@R a.xzzsjz.com^ +'ÿï08@Ra.yangshengtang123.com^ +ÿï08@Ra.yellowurl.cn^ + ÿï08@Ra.yuzhainan.com^ +ÿï08@Ra.zuowenku.net^ + ÿï08@Ra.zuowenxuan.cn^ +ÿï08@R a1.289.com^ +ÿï08@Ra1.51shiti.cn^ +ÿï08@R a1.99933.cn^ +ÿï08@R a1.99966.cn^ +ÿï08@Ra1.aichagu.com^ +ÿï08@R a1.bajiu.cn^ +"ÿï08@Ra1.bestopview.com^ + ÿï08@Ra1.bookapka.com^ +#ÿï08@Ra1.firefoxchina.cn^ +ÿï08@R a1.lshou.com^ +ÿï08@R a1.q6u.com^ +ÿï08@R a1.qqan.com^ + ÿï08@Ra1.shusanqi.com^ +"ÿï08@Ra1.sumiaowang.com^ +ÿï08@R a1.syfj.net^ +ÿï08@Ra1.tbuz.com.cn^ +ÿï08@R a1.twtym.com^ +!ÿï08@Ra1.zhanzhang.net^ +ÿï08@Ra3.jandan.net^ + ÿï08@Raa.gushiwen.org^ +$ÿï08@Raa.xiangxiangmf.com^ + ÿï08@Raaa.tumanyi.com^ + ÿï08@Rab.cnbanbao.com^ +ÿï08@Rab.rejushe.com^ +ÿï08@Rabc.colayun.cn^Û +ÿï08@Rabc.douguo.com^ + ÿï08@Rabc.yebaike.com^ +ÿï08@R abcd.5lu.com^ +"ÿï08@Rabcd.cnhuoche.com^ +ÿï08@R abcd.yiq.com^ +ÿï08@R abcd.zle.com^ +'ÿï08@Rabcdcfasda.gushiwen.cn^ + ÿï08@Rabcj.dooccn.com^ +#ÿï08@Rabds.pingpingw.com^ +ÿï08@Rac*.786ip.com^ +$ÿï08@Rac*.faxingchina.com^ +"ÿï08@Rac*.pingguolv.com^ + ÿï08@Rac.86huoche.com^ +ÿï08@Rac.art456.com^ +"ÿï08@Rac1.pingpingw.com^ + ÿï08@Racc.3gbizhi.com^ +ÿï08@R ad.szhsx.net^ +ÿï08@Rad123.ynet.com^ +"ÿï08@Radbd.liuxue86.com^ +ÿï08@R adjb.5nd.com^ +ÿï08@R +adutp.com^ +ÿï08@Radzp.cn^ +ÿï08@Rag1.zuszw.com^ +ÿï08@Rahm.135320.com^ +ÿï08@R aili.com^ +ÿï08@R aiwen.cc^ +ÿï08@Ral.newxue.com^ + ÿï08@Ranews7.nvwu.com^ + ÿï08@Raqc.gucheng.com^ +!ÿï08@Ras1.m.hao123.com^ +$ÿï08@Ras1.wenku.baidu.com^ +!ÿï08@Rat*.doubanio.com^ + ÿï08@Rato.tooopen.com^ +ÿï08@R b.kouke5.com^ +ÿï08@R b.unjs.com^ +ÿï08@R b1.51scw.net^ +ÿï08@Rb1.91jucai.com^ +ÿï08@Rb1.b2b168.com^ +ÿï08@Rb1.b2b168.net^ +ÿï08@R b1.c1km4.com^ +ÿï08@Rb1.engdvd.com^ +ÿï08@Rb1.xiao84.com^ +$ÿï08@Rb7sw62.pingshu8.xyz^ +&ÿï08@Rbaidu1.cardbaobao.com^ +#ÿï08@Rbaidu1.codejie.net^ +!ÿï08@Rbaidujs.cnys.com^ +ÿï08@Rbaihuwang.com^ +#ÿï08@Rbaj.fanwenzhan.com^ +ÿï08@R bas.boshi.tv^ +$ÿï08@Rbchina-1.xsfaya.com^ +(ÿï08@Rbd-china-1.appmobile.cn^ + ÿï08@Rbd-js.duote.com^ + ÿï08@Rbd-js1.2345.com^ +!ÿï08@Rbd-s.baixing.net^ +ÿï08@R bd.ahsrst.cn^ +ÿï08@Rbd.beimap.com^ +ÿï08@Rbd.czxuexi.com^ +ÿï08@R bd.dhsz.cn^ +"ÿï08@Rbd.ershenghuo.com^ +ÿï08@R bd.watu.cn^ +#ÿï08@Rbd1-china.6789.com^ + ÿï08@Rbd1.365qilu.com^ +!ÿï08@Rbd1.click.com.cn^ +ÿï08@R bd1.flfgw.cn^å +ÿï08@Rbd1.guancha.cn^ +!ÿï08@Rbd1.jinbaozy.com^ + ÿï08@Rbd1.moguvet.com^ +ÿï08@Rbd1.pipaw.com^ +ÿï08@Rbd1.qcjslm.com^ +ÿï08@R bd1.sosg.net^ +ÿï08@R bd1.szhk.com^ +ÿï08@R bd1.xiby.cn^ +ÿï08@R bd1.yidu.cc^ + ÿï08@Rbd100.010lm.com^ +ÿï08@Rbd11.nipic.com^ + ÿï08@Rbd3.chuiyue.com^ +"ÿï08@Rbd888.qizuang.com^ +ÿï08@Rbda1.ayule.net^ +ÿï08@Rbdad.123pan.cn^ + ÿï08@Rbdad.gaotie.net^ +!ÿï08@Rbdasd.chdbook.cn^ +&ÿï08@Rbdasd.chinabig.com.cn^ +ÿï08@Rbdasd.wmxa.cn^ +#ÿï08@Rbdcm.kandianla.com^ + ÿï08@Rbdcode.2345.com^ + ÿï08@Rbdcode.35d1.com^ +"ÿï08@Rbdcode.qinglm.com^ +!ÿï08@Rbdcode.youke.com^ +'ÿï08@Rbdcpro*.techweb.com.cn^ + ÿï08@Rbdgg.qjy168.com^ +"ÿï08@Rbdjiaoben.wmxa.cn^ +ÿï08@Rbdjj.bzr99.com^ +"ÿï08@Rbdjj.makepolo.net^ +!ÿï08@Rbdjs.91zhuti.com^ +ÿï08@Rbdjs.daziba.cn^ +$ÿï08@Rbdjs.guangyuanol.cn^ +!ÿï08@Rbdjs.gushiju.net^ +ÿï08@R bdjs.uimg.cn^ + ÿï08@Rbdlm*.hc360.com^ +ÿï08@Rbdm.911cha.com^ +ÿï08@R bdm.ye-su.cn^ +ÿï08@Rbdmjs.xywy.com^ +ÿï08@R bdu.focus.cn^ +ÿï08@Rbdu1.coozhi.cn^ +&ÿï08@Rbdunion1.suxiazai.com^ + ÿï08@Rbdx.playnext.cn^ +%ÿï08@Rbea-s.dinghuoche.com^ +"ÿï08@Rbecode.xiao84.com^ +#ÿï08@Rbeijing.buzhi5.com^ +ÿï08@R +bhaoea.cn^ +#ÿï08@Rbjs.faxingzhan.com^ +ÿï08@R bm.h576.com^ +ÿï08@R bmjs.xzw.com^ +$ÿï08@Rbt1.patexplorer.com^ +ÿï08@R bu1.duba.com^ +ÿï08@Rbu1.vvvdj.com^ +ÿï08@R +by.dyq.cn^ +ÿï08@R c.28rv.com^ +ÿï08@R c.mnjkw.cn^ +ÿï08@R c.tvsou.com^ +ÿï08@R c1.4qx.net^ +#ÿï08@Rc1.chajiaotong.com^ +ÿï08@R c1.china.cn^ +ÿï08@R c1.czcol.cn^ +ÿï08@R c6.friok.com^ +#ÿï08@Rc81.ipanocloud.com^ +#ÿï08@Rca.yangshengtv.com^ +ÿï08@Rcar.qcmrjx.com^û +#ÿï08@Rcbdm.weathercn.com^ +ÿï08@Rcc.8181zx.com^ +!ÿï08@Rcc.xiaodapei.com^ +ÿï08@R cc.xwscg.com^ +ÿï08@R ccmeng.com^ +%ÿï08@Rcdgtw3.guapaijia.com^ +ÿï08@Rcdn.haocaa.com^ +"ÿï08@Rcdn.wenzhangba.cn^ +&ÿï08@Rcdn93d99x0e.23bei.com^ +(ÿï08@Rcdnjs.hro-cosmetics.com^ +%ÿï08@Rcdnjs.mopair-erm.net^ + ÿï08@Rcdnjs.z-face.cn^ +ÿï08@Rcee1.iteye.com^ +ÿï08@R +chnci.com^ +ÿï08@R chong-wu.net^ +"ÿï08@Rchunyuqiufeng.com^ +ÿï08@Rckg.vipyl.com^ +%ÿï08@Rclassic.39health.com^ +ÿï08@R cm.baidu.com^ +ÿï08@Rcn.bidushe.com^ +ÿï08@R cn6x.com^ +#ÿï08@Rcod.southmoney.com^ +!ÿï08@Rcode.ditiezu.net^ +ÿï08@R cp.7y7.com^ +ÿï08@Rcp.jfcdns.com^ +ÿï08@Rcp.qbaobei.com^ +ÿï08@Rcpro.bdrmb.cn^ +!ÿï08@Rcpro.xixiliya.cn^ + ÿï08@Rcpro.zol.com.cn^ +'ÿï08@Rcrayon.meishichina.com^ +ÿï08@Rcspb1.5w5w.com^ + ÿï08@Rcss.juqingba.cn^ +ÿï08@R css.zmjm.com^ +#ÿï08@Rctc.weather.com.cn^ +!ÿï08@Rcxgfq.pinlue.com^ + ÿï08@Rcxy88.friok.com^ +ÿï08@Rd*.ruiwen.com^ + ÿï08@Rd*.xinshipu.com^ +ÿï08@R d.8181zx.com^ +ÿï08@R d.ab126.com^ +ÿï08@R d.dgzj.com^ +ÿï08@Rd.win10com.com^ +ÿï08@Rd.ziyuanm.com^ +ÿï08@R d1.1ppt.com^ +ÿï08@R +d1.5h.com^ +ÿï08@Rd1.handdiy.com^ +"ÿï08@Rd1.zhuangxiu6.com^ + ÿï08@Rd6.mobaders.com^ +ÿï08@R da.daji.com^ +"ÿï08@Rdai.siyuetian.net^ +!ÿï08@Rdai18.mumu01.com^ +#ÿï08@Rdaima.aixiaola.com^ +"ÿï08@Rdaima.diaoben.net^ +ÿï08@R daima.ijq.tv^ + ÿï08@Rdaima.ysdui.com^ +#ÿï08@Rdaima.yuzhulin.com^ +!ÿï08@Rdaiwofei2019.top^ + ÿï08@Rdata.waptime.cn^ +'ÿï08@Rdatas.tianqistatic.com^ +"ÿï08@Rdd1.diymianmo.com^ +"ÿï08@Rdf888.eastday.com^ +ÿï08@Rdhl.135320.com^ +"ÿï08@Rdisplay.itmemo.cn^ +ÿï08@Rdm*.yxlady.com^Ï +!ÿï08@Rdm.17xuexiba.com^ +ÿï08@Rdm.21hubei.com^ +ÿï08@R dm.51okc.com^ +ÿï08@R dm.66qw.net^ +ÿï08@Rdm.aizhan.com^ + ÿï08@Rdm.cnbanbao.com^ +ÿï08@Rdm.gucheng.com^ +"ÿï08@Rdm.huochepiao.com^ +ÿï08@Rdm.hxzdhn.com^ +ÿï08@R dm.jb51.net^ +"ÿï08@Rdm.lianzhixiu.com^ +ÿï08@R +dm.pw0.cn^ +ÿï08@Rdm.sanwen.net^ +"ÿï08@Rdm.wenshenxiu.com^ +ÿï08@R dm.zjut.cc^ + ÿï08@Rdm.zuowenku.net^ +ÿï08@R dm1.ddwk8.cn^ +ÿï08@Rdm1.zjydt.com^ +ÿï08@Rdmm.aizhan.com^ + ÿï08@Rdmr.cnhoney.com^ +ÿï08@Rdms.vancss.com^ +!ÿï08@Rdms.xuexxing.com^ +ÿï08@Rdmym.aixyy.com^ + ÿï08@Rdn*.ixinwei.com^ +ÿï08@R dnpz123.com^ +$ÿï08@Rdomain1.chahaoba.cn^ +"ÿï08@Rds.ruanwengfa.com^ +ÿï08@R du1.bbdj.com^ + ÿï08@Redu.jiukang.org^ +"ÿï08@Ree.shixunwang.net^ +ÿï08@R efg.zle.com^ +ÿï08@R efgh.5lu.com^ +ÿï08@R ejunshi.com^ + ÿï08@Remjs.mkzhan.com^ +$ÿï08@Renennsa.gushiwen.cn^ +#ÿï08@Renews10.yxlady.net^ +ÿï08@Rent1.12584.cn^ + ÿï08@Rent1.qunchua.cn^ +!ÿï08@Rent1.qunchua.com^ +ÿï08@R er.5ykj.cn^ +ÿï08@R er.5ykj.com^ +ÿï08@R ergeapp.com^ +ÿï08@R f1.06ps.com^ +!ÿï08@Rf1.ichong123.com^ +ÿï08@R f1.pig66.com^ +ÿï08@R f1.zaojv.com^ +!ÿï08@Rf11.hackhome.com^ +&ÿï08@Rfanpingbi*.gaokao.com^ + ÿï08@Rfanyi100.com.cn^ +"ÿï08@Rfdfda.zhuzhai.com^ +'ÿï08@Rfdfghgfdd.yunqishi.net^ +ÿï08@R ff.psd8.com^ +#ÿï08@Rff.qichetansuo.com^ +ÿï08@R fjzimaoqu.cn^ +ÿï08@R fotao9.com^ + ÿï08@Rfp.nanrenwo.net^ +ÿï08@Rfpb*.51edu.com^ +ÿï08@R fpb.sohu.com^ +"ÿï08@Rfpb1.apple886.com^ +ÿï08@Rfpb1.chinacar. + ÿï08@Rfpb1.jsq886.com^ +!ÿï08@Rfpb1.kedabai.com^ +%ÿï08@Rfpbone.ihowguide.com^ +ÿï08@Rfxjs.2541.com^Ô +ÿï08@R g.3lian.com^ +"ÿï08@Rg.gegeyingshi.com^ +ÿï08@Rg1.pptair.com^ +ÿï08@Rg1.taijuba.com^ + ÿï08@Rga1.3dmgame.com^ +ÿï08@Rgcw*.2liang.cn^ +ÿï08@R +gdyjs.com^ +ÿï08@R gg.egouz.com^ +ÿï08@Rgg.miinaa.com^ +ÿï08@Rgg.taoseyy.cn^ +$ÿï08@Rgg1.mengchongzu.com^ +!ÿï08@Rggdm1.nhaidu.net^ +ÿï08@R ggjs.d17.cc^ +%ÿï08@Rghghgf.51dongshi.com^ +#ÿï08@Rghghgf.xuexiwa.com^ +ÿï08@Rgk1.582582.com^ +ÿï08@Rgk1.zjbiz.net^ +ÿï08@R +gocye.com^ +ÿï08@R godloveme.cn^ +"ÿï08@Rgold.szonline.net^ +ÿï08@R +gotadd.cn^ +ÿï08@Rgp.zaiyunli.cn^ +ÿï08@R gsjdzx.com^ +!ÿï08@Rguang.sdsgwy.com^ +ÿï08@R gumgo.cn^ +ÿï08@R gunmi.cn^ +ÿï08@R gxjajt.com^ + ÿï08@Rgybyxsy1588.com^ +ÿï08@Rh1.cfxinxi.cn^ +ÿï08@R h1.kukuw.com^ +ÿï08@R h1.wk2.com^ +!ÿï08@Rhanlinzhijia.net^ +'ÿï08@Rhapic1.zhuangxiu22.com^ +ÿï08@R hdc.maxli.cn^ + ÿï08@Rhh.jiankang.com^ +ÿï08@R hi.xiunm.cn^ +ÿï08@R hi.xiunm.com^ +"ÿï08@Rhjkhxfh.360doc.cn^ +ÿï08@R +hl.dyq.cn^ +ÿï08@R hmtoday.com^ +ÿï08@R hrjg.com.cn^ +#ÿï08@Rhuohuo.huamuwo.com^ +$ÿï08@Rhxbt.alading123.com^ +$ÿï08@Rhy.huangye88.com.cn^ +!ÿï08@Rhy.huangye88.net^ +(ÿï08@Richc1.xinglinpukang.com^ +ÿï08@R +ideng.com^ +$ÿï08@Rii1.chajiaotong.com^ + ÿï08@Riia1.pikacn.com^ +ÿï08@Rikuailian.com^ +"ÿï08@Rimages8.gaotie.cn^ +ÿï08@R img.0279.net^ +ÿï08@R img.263y.com^ +ÿï08@Rimg.ferlie.net^ +)ÿï08@Rimg.yangshengtang123.com^ + ÿï08@Rimg.zuowen8.com^ +#ÿï08@Rimg.zuowenwang.net^ +ÿï08@Rimg1.eywdf.com^ +ÿï08@Rimg1.hblds.com^ +"ÿï08@Rimg1.leyun365.com^ +!ÿï08@Rimg11.biyan8.com^ +%ÿï08@Rimg16.diyifanwen.com^ +$ÿï08@Rimg50.pingguolv.com^ +ÿï08@R inone517.com^ª +ÿï08@R inping.com^ +ÿï08@Ripad.pc899.cn^ +ÿï08@R ipssss.com^ +ÿï08@R +iy.com.cn^ +ÿï08@R j.baminw.cn^ +ÿï08@Rj.diangon.com^ + ÿï08@Rj1.piaobing.com^ +ÿï08@R +jab88.com^ +"ÿï08@Rjb.dianshu119.com^ +ÿï08@Rjb.ecar168.cn^ +#ÿï08@Rjc1.dayfund.com.cn^ +ÿï08@R +jddaw.com^ +ÿï08@R jeepyy.com^ +$ÿï08@Rjiaoben.eastday.com^ +!ÿï08@Rjiaoben.ganji.cn^ +#ÿï08@Rjiaoben.jucanw.com^ +ÿï08@R jiaopei.com^ +&ÿï08@Rjibn12.jintang114.org^ + ÿï08@Rjke1.jianke.com^ +'ÿï08@Rjquery.envi-met.com.cn^ +ÿï08@R js.263y.com^ + ÿï08@Rjs.92aliyun.com^ +ÿï08@R js.entm.top^ +ÿï08@R js.kt250.com^ +ÿï08@R js.oh100.com^ +ÿï08@Rjs.ruiwen.com^ +"ÿï08@Rjs.shangxueba.com^ +ÿï08@Rjs.shunqi.com^ +ÿï08@Rjs.spreton.com^ +ÿï08@R js.ubaike.cn^ +ÿï08@R js.yanyue.cn^ +ÿï08@Rjs.yanyue.net^ +ÿï08@R js.yjbys.com^ +ÿï08@Rjs1.122cha.com^ +ÿï08@Rjs1.dadiniu.cn^ +!ÿï08@Rjs1.haoge500.com^ +!ÿï08@Rjsb.qianzhan.com^ +!ÿï08@Rjscode.acg68.com^ + ÿï08@Rjscode.jbzj.com^ + ÿï08@Rjsf.cnlinfo.net^ +"ÿï08@Rjunshizhanlue.com^ +ÿï08@R jxdown.com^ +!ÿï08@Rjy.zhongxues.com^ +ÿï08@R +jy135.com^ +ÿï08@Rk1.dancihu.com^ + ÿï08@Rk1.wanwenwan.cn^ +ÿï08@Rk1.wendahu.com^ +ÿï08@R kanxiao.net^ +#ÿï08@Rkhrtac.xiangha.com^ +!ÿï08@Rkpshx.douguo.com^ +ÿï08@R kuk8.com^ +ÿï08@R kuku99.com^ +ÿï08@Rlczk.cn^ +!ÿï08@Rleabd.douguo.com^ +ÿï08@Rliangpinge.com^ +%ÿï08@Rlianmen1.joyyang.com^ +ÿï08@Rlixiangmo.com^ +ÿï08@R +lm.ijq.tv^ +ÿï08@Rlm1.tuliu.com^ +ÿï08@R lm1.wkpcw.cn^ +#ÿï08@Rlove.furenkeji.com^ +ÿï08@Rluolikong.net^ +ÿï08@Rlv.myapks.com^ +!ÿï08@Rlyz.radio366.com^ó +!ÿï08@Rm.bjdcfy.net^*.js +ÿï08@R m1.27com.com^ +!ÿï08@Rm1.51kaowang.com^ +ÿï08@R m1.81312.com^ +ÿï08@R m1.darfd.com^ +"ÿï08@Rm1.jintang114.org^ +ÿï08@Rm1.kuanff.com^ +ÿï08@R m1.nn670.com^ +ÿï08@R m1.vodjk.com^ +ÿï08@R m1.we556.com^ +ÿï08@R m5.66077.cn^ + ÿï08@Rma1.meishij.net^ +!ÿï08@Rmain.jiukang.org^ +(ÿï08@Rmatwbp.iask.sina.com.cn^ +!ÿï08@Rmb.gulongbbs.com^ +"ÿï08@Rmc.weather.com.cn^ +ÿï08@R md.tvzhe.com^ + ÿï08@Rmeishiba.com.cn^ +ÿï08@R mg.32r.com^ +ÿï08@R mg.glwxw.net^ +"ÿï08@Rmilk.yesky.com.cn^ +ÿï08@R mipujia.com^ +ÿï08@R mm.jbzj.com^ +ÿï08@R mm.paizi.net^ +$ÿï08@Rmnwor.xuanlishi.com^ +ÿï08@R mo-tuo.com^ +ÿï08@Rmo.gushiji.cc^ +!ÿï08@Rmoon.ibytecdn.cn^ +*ÿï08@Rmountain.zhidao.baidu.com^ +ÿï08@Rmpb1.iteye.com^ + ÿï08@Rmps.wenkuzu.com^ + ÿï08@Rms.cnbanbao.com^ +"ÿï08@Rmwzbp.iask.com.cn^ +#ÿï08@Rmyunion1.qm120.com^ +%ÿï08@Rmyunion1.tupians.com^ + ÿï08@Rn.baminw.com.cn^ +)ÿï08@Rnews.fangdaijisuanqi.com^ +!ÿï08@Rnews.jiukang.org^ +ÿï08@R news.qcyz.cn^ +$ÿï08@Rnorse.mingxiaow.com^ +ÿï08@R o.027eat.com^ +ÿï08@R o.jy135.com^ +ÿï08@R o.phb123.com^ +ÿï08@R o1.jyjyj.cn^ +ÿï08@R +okkkk.com^ + ÿï08@Rp.junshi881.com^ +"ÿï08@Rp.junshifuxin.com^ +!ÿï08@Rp1.360soucha.com^ +#ÿï08@Rp1.chinakaoyan.com^ +ÿï08@R p1.qxzsw.com^ + ÿï08@Rp1.zhongyoo.com^ +ÿï08@Rpanyh123456.cn^ + ÿï08@Rpb.shuxigua.com^ +!ÿï08@Rpic.baihuawen.cn^ +$ÿï08@Rpic1.dianshu119.com^ +$ÿï08@Rpic50.pingguolv.com^ +ÿï08@R pincai.com^ +-ÿï08@Rpinlue.com/error/bangolike.js +ÿï08@R pjcn.org^ +$ÿï08@Rpkk1.zuimeiniwo.com^ +ÿï08@R +pl520.com^ +ÿï08@Rq1.yyxwzx.com^ +"ÿï08@Rqc1.cheshipin.com^ +ÿï08@R qdzyspjx.com^þ +ÿï08@R qifake.com^ + ÿï08@Rqiji1.jdwx.info^ +"ÿï08@Rqiyeb.iaskbus.com^ +-ÿï08@Rqiyegongqiu1.qiyegongqiu.com^ +%ÿï08@Rqizhihaotian.com^*.js +ÿï08@Rql.uzuzuz.com^ +ÿï08@Rqpb*.sohu.com^ +ÿï08@R qqhuhu.com^ +ÿï08@R qudajie.com^ +ÿï08@R qujishu.com^ +ÿï08@Rr.99waiyu.com^ + ÿï08@Rrabc1.iteye.com^ +ÿï08@R rc.ie13.com^ + ÿï08@Rrdbd.xsread.com^ +ÿï08@R redmx.cn^ + ÿï08@Rres*.pinpai8.cn^ +'ÿï08@Rretrieval-bd.duote.com^ +ÿï08@R richh.cn^ +ÿï08@Rruiwen.com/css_ +!ÿï08@Rruiwen.com/jscss/ +ÿï08@Rrxys.cn^ +ÿï08@Rs.zixuntop.com^ + ÿï08@Rs1.dugoogle.com^ +$ÿï08@Rs1.hanlinzhijia.com^ +ÿï08@Rs1.pipishu.com^ +"ÿï08@Rs1.tuzhaozhao.com^ +ÿï08@Rs1.wesiedu.com^ +ÿï08@Rs11.cn^ +"ÿï08@Rsalary.xiao84.com^ +&ÿï08@Rsanme2.taisantech.com^ +"ÿï08@Rsbbd1.qulishi.com^ +"ÿï08@Rsbpb1.chuiyue.com^ +"ÿï08@Rsbpb1.qulishi.com^ +ÿï08@R +sc126.com^ +&ÿï08@Rscript-bd.baixing.net^ +ÿï08@Rsdd.hi1718.com^ +$ÿï08@Rsh996.dftoutiao.com^ +"ÿï08@Rshili.downxia.com^ + ÿï08@Rshili.wanyx.com^ +'ÿï08@Rshiyaokejishanghai.com^ +%ÿï08@Rshzzzz.dftoutiao.com^ +&ÿï08@Rsjbaiduadv1.redou.com^ + ÿï08@Rsky.dunsuan.com^ +ÿï08@R +snzfj.net^ +ÿï08@Rso.auto999.cn^ +ÿï08@R sp.dnqc.com^ +ÿï08@Rss.ting55.com^ +ÿï08@Rssb.ah499.com^ +ÿï08@Rstar-media.cn^ +%ÿï08@Rstatic*.365inews.com^ +"ÿï08@Rstatic.gaomaer.cn^ +$ÿï08@Rstatic.ichehome.com^ +%ÿï08@Rstatic.meijiacun.com^ +#ÿï08@Rstatic.rongkao.com^ +ÿï08@R t1.612.com^ +!ÿï08@Rt1.xuefen.com.cn^ +"ÿï08@Rt6.china-xian.com^ +!ÿï08@Rtech.jiukang.org^ +#ÿï08@Rthetestpage.39.net^ +ÿï08@R tiexing.com^ +ÿï08@Rtongj.xilu.com^ +ÿï08@R top2099.com^ +"ÿï08@Rtrebleperfect.com^ +ÿï08@R +ts166.net^î +"ÿï08@Rtt123.eastday.com^ +ÿï08@R +twlcyc.cn^ +ÿï08@R u.qxen.com^ +ÿï08@Ru1.2048sj.com^ +ÿï08@Ru1.idongde.com^ +ÿï08@Ru1.qyxxpd.com^ +ÿï08@Rub1.job592.com^ +ÿï08@Ruc*.atobo.com^ +$ÿï08@Ruc9.suinidai.com.cn^ +!ÿï08@Rudd1i5.zhihu.com^ +#ÿï08@Rudiab1.jianshu.com^ +ÿï08@R un.ubaike.cn^ +!ÿï08@Run1.lawyernet.cn^ + ÿï08@Rundm.qibulo.com^ +$ÿï08@Runion*.365inews.com^ +"ÿï08@Rusejj.makepolo.cn^ +!ÿï08@Rusejj.wangkl.com^ +ÿï08@R uu1.3gu.com^ + ÿï08@Rv1.19purify.com^ +ÿï08@Rv1.kwpewga.cn^ +ÿï08@Rv1.phb123.com^ +ÿï08@R v1.taksh.cn^ +"ÿï08@Rv1.wphonelife.com^ +!ÿï08@Rvip.panggugu.com^ +ÿï08@R vjie.com^ + ÿï08@Rvjvj.vj24co.com^ +ÿï08@Rvv1.pyhfxdm.cn^ +ÿï08@Rvvv.ieduw.com^ +"ÿï08@Rw.xiaopiaoyou.com^ +%ÿï08@Rw11.zhongkaohelp.com^ +ÿï08@R w18.9939.com^ +ÿï08@Rw3.ting55.com^ +#ÿï08@Rwap001.bytravel.cn^ + ÿï08@Rwap1.laogu.wang^ +ÿï08@R web8.net^ +!ÿï08@Rweidianyuedu.com^ +$ÿï08@Rwenhua.jiaoshou.com^ + ÿï08@Rwenshenbang.com^ +%ÿï08@Rwenxue.weimeifan.net^ +$ÿï08@Rwenxue.youzhicn.com^ +!ÿï08@Rwhfpbc.99.com.cn^ +!ÿï08@Rwj.jiancai365.cn^ +ÿï08@Rwm.mipcdn.com^ +"ÿï08@Rwm.szdushi.com.cn^ +"ÿï08@Rwmbd.gamersky.com^ +$ÿï08@Rwmeng.feihuadns.com^ +"ÿï08@Rwneia.iaskhot.com^ +!ÿï08@Rwr.yiyouliao.com^ +"ÿï08@Rws.wenshenxiu.com^ +ÿï08@R wshufa.com^ +#ÿï08@Rwuliao.chzsport.cn^ +#ÿï08@Rwuliao.juqingba.cn^ +"ÿï08@Rwyzq.rehuwang.com^ +ÿï08@R x.yaohuo.me^ +!ÿï08@Rx1.52aoteman.com^ +ÿï08@R xbtw.com^ +%ÿï08@Rxcf-bd-js.chuimg.com^ +ÿï08@Rxiaopinwo.com^ +ÿï08@R xinju.cc^ +ÿï08@R xitongku.cc^ +ÿï08@R xue.zbyw.cn^ + ÿï08@Rxuexi.hydcd.com^ +ÿï08@Ry.photoint.net^ + ÿï08@Ry1.junshitt.com^™ +ÿï08@Ry1.spreton.com^ +%ÿï08@Ry66xvgo5i.chuimg.com^ +ÿï08@Ryi.ximizi.com^ +*ÿï08@Ryijiuningyia.gushiwen.org^ +#ÿï08@Ryin1.zgpingshu.com^ +ÿï08@R +ykxwn.com^ +ÿï08@R ynzhby.com^ +ÿï08@R ynztzh.com^ +#ÿï08@Ryong.chazidian.com^ +(ÿï08@Ryptqys.tianqistatic.com^ +ÿï08@R +ys630.com^ +#ÿï08@Rysdm*.ys137.com.cn^ +ÿï08@R +ytelc.com^ +ÿï08@Ryunzuowen.com^ +ÿï08@Rywg.jobui.com^ +%ÿï08@Ryx1.managershare.com^ +"ÿï08@Ryy17173.dtime.com^ +ÿï08@R +yylady.cn^ +ÿï08@R z.grfyw.com^ + ÿï08@Rz.tudouxy01.com^ +$ÿï08@Rz1.chezhuzhinan.com^ +ÿï08@Rz1.cwbaike.com^ +ÿï08@R z1.o8h7d.cn^ +!ÿï08@Rz1.pclady.com.cn^ +"ÿï08@Rz1hihu.xmcimg.com^ +ÿï08@Rzg.mmyuer.com^ +!ÿï08@Rzhihu.xmcimg.com^ +ÿï08@Rzhongkaowu.com^ +'ÿï08@Rzjliloveyou.ixiunv.com^ +ÿï08@Rzk.91post.com^ +ÿï08@Rzoom.zshu.net^ + ÿï08@Rzq.lansedir.com^ +ÿï08@R zsjxwj.com^ +!ÿï08@Rzuowen.hydcd.com^ +ÿï08@R zx.docin.com^ +ÿï08@R +zxw51.com^ +Oÿï08@R?boylov.xyz,boylove.cc,boyloves.fun#?#:-abp-has(>.adsbyexoclick) +(ÿï08@Rboylov.xyz^*/img/20*.gif +(ÿï08@Rboylove.cc^*/img/20*.gif +*ÿï08@Rboyloves.fun^*/img/20*.gif +/ÿï08@Rbaidu.com^*&cb=BaiduSuggestion. +ƒÿï* + adultgao.com* + 2c2.website* + caoporn.com* + +caopop.com* + +caouoo.com* + +se88.space* + 2p8.space* + p5p.space* + t2p.space* + tb001.xyz* + xhao1.com* + +k88.club* + +vwan.xyz* +caox.cc* +me88.pw* +te88.pw* +h3e.pw* +h3y.pw08@R /images/*.gif +�ÿï* + adultgao.com* + 2c2.website* + caoporn.com* + +caopop.com* + +caouoo.com* + +se88.space* + 2p8.space* + p5p.space* + t2p.space* + tb001.xyz* + xhao1.com* + +k88.club* + +vwan.xyz* +caox.cc* +me88.pw* +te88.pw* +h3e.pw* +h3y.pw08@R alicdn.com^ +)ÿï08@Rcamspic.com/imguang/*.gif +�ÿï* + adultgao.com* + 2c2.website* + caoporn.com* + +caopop.com* + +caouoo.com* + +se88.space* + 2p8.space* + p5p.space* + t2p.space* + tb001.xyz* + xhao1.com* + +k88.club* + +vwan.xyz* +caox.cc* +me88.pw* +te88.pw* +h3e.pw* +h3y.pw08@R sinaimg.cn^$ + +bejson.com.alert-dismissable! + +bejson.com.modal-backdrop2 + +bejson.com .t-small-margin > ul:first-child' + +bejson.coma[href*="/kuaikuai."]& + +bejson.coma[href*="layui.com"]5 + +bejson.com#div[id^="shua"] + font[color="red"]& + +bejson.comdiv[id^="shuangshi"]" + +bejson.comimg[src^="data"] + bingfeng.tw#adbt + bingfeng.tw .wow-ad-linkN + boyloves.fun + +boylov.xyz + +boylove.cc#fake_avivid_waterfall_webpush= + boyloves.fun + +boylov.xyz + +boylove.cc .owl-carousel? + boyloves.fun + +boylov.xyz + +boylove.cc.swiper-wrappera[href*="/yfj8159.com"]B + boyloves.fun + +boylov.xyz + +boylove.ccdiv[data-type="1"]K + boyloves.fun + +boylov.xyz + +boylove.ccdiv[style="display: block"]"a[href^="http://yunbofangbt."]¯ + adultgao.com + 2c2.website + caoporn.com + +caopop.com + +caouoo.com + +se88.space + 2p8.space + p5p.space + t2p.space + tb001.xyz + xhao1.com + +k88.club + +vwan.xyz +caox.cc +gao1.cc +me88.pw +te88.pw +h3e.pw +h3y.pw:div[style="margin-top:5px;margin-bottom:5px;"]:first-childD@div[align="center"] > a[href^="/url/"] > img[src*=".alicdn.com"]½ +ÿï08@R +/bmqp6001- +ÿï08@R +/bmqp6002- +ÿï08@R/imguang/*.gif ++ÿï08@R/moneymaker/js/player/vast- +0ÿï08@R /moneymaker/js/player/zanting.js +&ÿï08@Raaaimg.com/images*.gif +#ÿï08@Rcanimgs.com/images/ +(ÿï08@Rcaoimgs.com/images/*.gif +'ÿï08@Rganimg.com/images/*.gif +(ÿï08@Rganimgs.com/images/*.gif +"ÿï08@Rgaoimg.xyz/images/ +(ÿï08@Rhaoimgs.com/images/*.gif +#ÿï08@Rpaopic.com/imguang/ +.ÿï08@Rchina.cn/js/common/local_hydn/ +)* + cilimao.one* + +cilimao.co08@ +Dÿï* + cilimao.one* + +cilimao.co08@Rqianpanso.cn/other/*.js +=ÿï* + cilimao.one* + +cilimao.co08@Rupaiyun.com^*.js + ÿï08@Rcilimao.*/amaod/ +Cÿï08@R3ddooo.com#?#span:-abp-has(>p:-abp-contains(高速)) +Bÿï08@R2ddooo.com#?#ul:-abp-has(>dd:-abp-contains(高速)) +Rÿï* + +dlkoo.cc08@R6alicdn.com/t/img/TB1DmcoJXXXXXavXpXXXXXXXXXX-26-26.png +Rÿï* + +dlkoo.cc08@R6alicdn.com/t/img/TB1tWvVJFXXXXc_aXXXXXXXXXXX-40-26.png +3ÿï* + +dlkoo.cc08@Ralicdn.com^*/tanxssp.js +#ÿï08@Rdlkoo.cc/down/copy0 +#ÿï08@Rdlkoo.cc/down/copy1 +'ÿï08@Rdlkoo.cc/down/Copydown1 +*ÿï08@Rdlkoo.cc/down/Copyright.js +(* + +dlkoo.cc08@Rtanx.com/ex?i= + ‚* + +dlkoo.cc08@Rhttp: +€08@Rdlkoo.cc/down/ +"ÿï08@Rdlkoo.cc/down/copy +‚* + dlkoo.com08@ +Sÿï* + dlkoo.com08@R6alicdn.com/t/img/TB1DmcoJXXXXXavXpXXXXXXXXXX-26-26.png +Sÿï* + dlkoo.com08@R6alicdn.com/t/img/TB1tWvVJFXXXXc_aXXXXXXXXXXX-40-26.png +4ÿï* + dlkoo.com08@Ralicdn.com^*/tanxssp.js +$ÿï08@Rdlkoo.com/down/copy0 +$ÿï08@Rdlkoo.com/down/copy1 ++ÿï08@Rdlkoo.com/down/Copyright.js +)* + dlkoo.com08@Rtanx.com/ex?i= +€08@Rdlkoo.com/down/ +#ÿï08@Rdlkoo.com/down/copy +!ÿï* +iyf.tv08@R/ads.js +&ÿï08@Rdnvodcdn.me/fast/*.mp4 +'ÿï08@Rs1-a1.dnvodcdn.me^*.svg +%ÿï08@Rhboav.com/guga/ads.js +2ÿï08@R"hboav.com/guga/images/20201021.jpg +'ÿï08@Rhboav.com/js/wlfloat.js +ÿï08@Rhboav.com/guga/A=div[align="center"] > a[href^="/url/"] > img[src*=".qpic.cn"] + +china.cn #pic_banner% + +china.cn.bottom_recommend_box( + +china.cn.extension_ul > .special + +china.cn.feeds  + +china.cn.lianmeng_search8 + cilimao.one + +cilimao.codiv[class^="FixBanner"] + ddooo.com .gadat_list + ddooo.com.gs_list + ddooo.com.guoasu + ddooo.com.xzbtn/ + +dlkoo.ccins[id^="tanxssp-outer-conmm_"]0 + dlkoo.comins[id^="tanxssp-outer-conmm_"].dabf > .ng-star-inserted vg-pause-ads +vg-pause-f» ++ÿï08@Rhh010.com/static/image/fff/ +6ÿï* + +hpjav.tv08@Rtsyndicate.com/sdk/v1/n.js +ÿï08@R/img/91/*_1280_ +ÿï08@R/img/91/*_600. +ÿï08@R/img/91/*_600_ +"ÿï08@R/img/hgame/*_1280x +!ÿï08@R/img/hgame/*_600x +"ÿï08@R/img/q/movie_*.gif +ÿï08@R.com/js/ddd.js +#ÿï08@R.com/js/indextop.js +-ÿï* +googleads.g.doubleclick.net08@ +$ 08@Rdownload.mokeedev.com^ +9¢!* + louzhong8.com* + +miwens.com* + bhshu.net08@ +ÿï08@R.m.bookben.com^ +ÿï08@R .m.d8qu.com^ +"ÿï08@R.m.fhxiaoshuo.com^ +ÿï08@R.m.gxwztv.com^ + ÿï08@R.m.kanshuzw.com^ +ÿï08@R.m.muyuge.com^ +ÿï08@R .m.qiuwu.net^ +ÿï08@R.m.wenxuemi.cc^ + ÿï08@R.m.zineworm.com^ +ÿï08@R.wap.x4399.com^ +$* + bhshu.net08@R dushu.ru^ +9* + louzhong8.com* + +miwens.com08@R zhaiyd5.com^ +-ÿï08@R139xiaoshuo.com/css/js/tools. +#ÿï08@R13txt.net/js/ssgdd. +(ÿï08@R156xsw.com/css/js/tools. +!ÿï08@R1pwx.com/js/ck.js +(ÿï08@R222xs.com/js/greentea.js +ÿï08@R 23qb.com/ak +#ÿï08@R23qb.com/skin/style +$ÿï08@R23qb.com/skin/xiu.js +!ÿï08@R333uu.org/config/ + ÿï08@R477zw.com/js/nzm +.ÿï08@R81book.com/static/scripts/1.js +1ÿï08@R!81book.com/static/scripts/common. +3ÿï08@R#alicdn.com/imgextra/*_!!1091819078. +2ÿï08@R"alicdn.com/imgextra/*_!!823262290. +6ÿï08@R&apk-01.oss-cn-beijing.aliyuncs.com/dp/ ++ÿï08@Rbcebos.com/contentAdSecend_ + ÿï08@Rbiqiuge8.cc/js/d + ÿï08@Rbiqiuge8.cc/js/p +"ÿï08@Rxbiquge99.cc/js/dj +%ÿï08@Rbookrb.com/images/jtt +.ÿï08@Rd2un76zvb5mgzx.cloudfront.net^ +.ÿï08@Rd3iih5w7xp5hdg.cloudfront.net^ + hh010.com .a_hong_c + hh010.com .a_hong_h + hh010.com .a_hong_t5 + +hpjav.tv%body > div[style^="position: fixed;"]GCcenter > p > a[target="_blank"] > img[width="728px"][height="90px"].bottomd + .leftd@<.recommended-grids > .file[style="margin: 5px 2px 5px 2px;"] .vodadsa[onclick^="gtag"] > .add style + .topdstyle + .topd + .bottomd/ +googleads.g.doubleclick.net #mys-wrapper + bamxs.com #inglestore + bamxs.combody > a& + +bookrb.coma[href="/rmtj.html"]+ + booktxts.comdiv[style*="position:"]) + +smjb.netdiv[style*="height: 50%"]Æ +1ÿï08@R!dobiez.com/statics/wap_v1/js/qwd. +ÿï08@Rfkxs.net/tops/ +ÿï08@R fxsc6.net/js/ +&ÿï08@Rfzxiaoshuo.com/source/ +*ÿï08@Rjcdf99.com/hzz/scripts/new +$ÿï08@Rjieshengit.com/1*.js +$ÿï08@Rjieshengit.com/js/*_ +'ÿï08@Rjieshengit.com/js/jhhe. +1ÿï08@R!jpg1.oss-cn-beijing.aliyuncs.com^ ++ÿï08@Rjsdelivr.net/gh/diyibanzhu/ +2ÿï08@R"jun01.oss-cn-beijing.aliyuncs.com^ +)ÿï08@Rkanshushi.com/js/nxnhsqe. +'ÿï08@Rkanshushi.com/yyddssdd. +/ÿï08@Rmyhaitang.cc/assets/public/*.js +08@Rphoto.*.html?tk= +"ÿï08@Rphoto.*/native?tk= +$ÿï08@Rqishula.com/css/wap. + ÿï08@Rquge66.com/jdjd/ +%ÿï08@Rshanhaimiwenlu.com/sh +:ÿï08@R*shaquevip.oss-cn-zhangjiakou.aliyuncs.com^ +*ÿï08@Rshumilou.co/style/html5.js +.ÿï08@Rweiyuedu.cc/skin/v3/js/dibu.js +ÿï08@R wwzw.cc/img/ +2ÿï08@R"wzjs1.oss-accelerate.aliyuncs.com^ + ÿï08@Rx360xs.com/tops/ +(ÿï08@Rxbiqugela.com/js/basisc. +,ÿï08@Rxstt5.com/skin/v3/js/dibu.js +(ÿï08@Rxstt5.com/template/js/fx +&ÿï08@Rxwbxsw.com/js/app_wap. +ÿï08@R xygwh.cc/js/p +ÿï08@R xygwh.cc/js/x +ÿï08@Rygshu.com/js/h +&ÿï08@Rysxs8.vip/js/bd_top.js +'ÿï08@Rysxs8.vip/js/play_db.js +"ÿï08@Rzanghaihua.org/js/ + ÿï08@Rzhenben.cc/2000/ +* + 258zw.com08@ +08@R&xhtml?#downdiv > .downcode #gudingweiDiv #my_dp_a #my_gd_a)%.appguide-wrap[onclick*="bcebos.com"]OK.box_con[style="border-radius:10px;background-color:#ff0000;padding:15px;"]($.callApp_fl_btn[onclick^="open_app"]>:.downcode[style^="position:fixed;z-index:1000;top:200px;"]%!.look_more_a[onclick^="open_app"].nr_all > .m_f_a.sw_sp.readerListADbox95[class][onclick="window.location.href='/api/goapp/'"]EA[class][onclick="window.location.href='https://www.suyuexs.com'"]B>[class][onclick="window.location.href='https://www.tsqcy.cn'"]C?[class][onclick^="window.location.href"][onclick*="%AF%B4.apk"]A=[class][onclick^="window.location.href"][onclick*=".bcebos."]C?[class][onclick^="window.location.href"][onclick*=".pypyj.com"]GC[class][onclick^="window.location.href"][onclick*=".yueshuapp.com"]a[href*=".com/tg.html?id="]!a[href*=".ssmh"][href*="?u="]!a[href*=".xxmh"][href*="?u="]&"a[href*="://mgzs.cdn.bcebos.com/"]IEa[href^="http"][onclick^="setCookie"][style^="width:100%;height:100"]=9div[onclick^="window.location.href"][onclick*=".bcebos."]=9div[style^="line-height"][style*="http"][style$="fixed;"]$ iframe[src*=".xxmh"][src*="?u="]ù +08@R.*gcdcjr000.fun/ +08@R .*ryt111.fun/ +08@R.*roytj33.fun/ +08@R .asp?wg&df= +08@R .asp?wsg&df= +#08@R.baigh8eosmgie*.site^ +&"08@R.com/code.php?a=index&z= + ÿï08@R.fun/*_*_rony.js +$08@R.hongi7ie8owiie*.site^ + ÿï08@R.icu/*_*_rony.js +08@R +.js?ssid=_ +08@R .xyz/*.sdk? +ÿï08@R.xyz:8009/11?x= +08@R /1.js?ssfrid= +08@R/121sdw/ +ÿï08@R/1skwwd. +08@R/1xhtml? +ÿï08@R /2me3/true.js +ÿï08@R/bbhd_*_kkis.js +08@R +/c.js#pid= +"ÿï08@R/ce_l.aspx?showid= +ÿï08@R /ceshi127722. +*ÿï08@R/CodeFiles/*.aspx?placeid= +ÿï08@R /js/easyAD.js +ÿï08@R/js/easyAD2.js +'ÿï08@R/js/mangoIndexBanner.js +%ÿï08@R/jun0120211102193659. +%ÿï08@R/jun0120211112090740. +08@R/ksks_*_*_*.js? +ÿï08@R /mhw0/duniao/ +08@R /ojborn.so? +(ÿï08@R/proxy_top_banner_js.php +2ÿï08@R"/sfsafsadfjbbj-dsafjnb-1321533417. +'€ 08@R/socket?platform=*&href= +$ÿï08@R/svr/*.aspx?placeid= +ÿï08@R/tops/fmt.js?v= +ÿï08@R/vbvb_*_pmpm.js +#ÿï08@R/vjioew-1322507002. +ÿï08@R /xxgg/0dd*.js +ÿï08@R /xxgg/app.js +ÿï08@R /xxgg/book.js +ÿï08@R /xxgg/ddd*.js +ÿï08@R /xxgg/dj*.js +ÿï08@R /xxgg/pf*.js +ÿï08@R /xxgg/pppp.js +ÿï08@R /xxgg/pv.js +ÿï08@R/xxgg/xsggs.js +08@R.*ouvxli*.top/ +08@R :6607/qy/ +08@R_rony.js +08@Rlalabaos1*.top/ +08@Rppio1*ios.top/ +08@R ao1*kas.top/ +08@Raoao1*iis.top/ +08@Rgmso1*oka.top/ +08@R .okpp1*.xyz/ +08@R.com/TA390hz2.js +08@R .com/by389.js +08@R.cn/TA390hz2.js +08@R .cn/by389.js +08@R .cn/uL389.js +08@R.cn/Qi390eC2.js + ÿï08@R.fun/TA390hz2.js +ÿï08@R .fun/by389.js‰ +ÿï08@R.pw/TA390hz2.js +ÿï08@R .pw/by389.js +"08@R.o0*aokk.com/iis. +"08@R .uhi*uik.xyz/ +"08@R.xxaks*sspao.xyz/ +"08@R .is0*qqp.xyz/ +"08@R .as0*kkp.xyz/ +"08@R .012*sop.xyz/ +"08@R .apk0*oo.xyz/ +"08@R .okpp0*.xyz/ +"08@R.so0*koaq.com/ +"08@R.hh0*aoik.com/ +"08@R .qqo*llo.com/ +"08@R .okp*ai.com/ +"08@R.qsko0*mas.com/ +"08@R.mos0*o9i.com/ +"08@R.qpqp0*oki.com/ +"08@R.uuso0*qhs.xyz/ +"08@R^kklq0*p0i.com/ +"08@R^ouqo0*luj.com/ +"08@R.hur0*kns.com/ +"08@R ^niu0*jd.top/ +"08@R.bgf0*lko.com/ +"08@R.jkn0*loi.com/ +"08@R.hgo0*uyi.com/ +"08@R.yui0*shga.com/ +ÿï08@R .fun/nd389.js + ÿï08@R.fun/In390hG2.js +ÿï08@R .pw/nd389.js +ÿï08@R.pw/In390hG2.js +-08@R.com:1*/static/lbsite/*/*.js?v= +-08@R.com:2*/static/lbsite/*/*.js?v= +-08@R.com:3*/static/lbsite/*/*.js?v= +08@R.cn/Hl390cN2.js +08@R .cn/hL389.js +ÿï08@R +_vwnrsbjs? +ÿï08@R _vwisbjs? +ÿï08@R /83zg/tss.js +$ÿï08@Ryydstxt*.com/js/html +$ÿï08@Ryydstxt*.com/js/cdn. +$ÿï08@R69shuba.com/js/ad.js +'ÿï08@Rbanzhu33333.net/js/cdn. +'ÿï08@Rbanzhu33333.net/js/html +'ÿï08@Rdjdedu.net/static/*.gif +ÿï08@R 28lu.net^*/0 +$ÿï08@Rwodeshucheng.com^*/0 +'ÿï08@Rxiguasuwu.com/static/m. +ÿï08@R biqgg.com/n. +ÿï08@R biqgg.com/w. +#ÿï08@Rfd80s.com/static/m. +*ÿï08@Rchachefa.com/asdfasdfqwer/ +%ÿï08@Rjjjxsw.com/js/common. +'ÿï08@Rdiyibanzhu*.com/js/html +'ÿï08@Rdiyibanzhu*.com/js/cdn. + ÿï08@Rxiaoxiaks.com/1. +ÿï08@Rxiaohuks.com/1. +&ÿï08@R8xbook.org/scripts/ad/ + ÿï08@Rkelehut.cc/js/m. +'ÿï08@Rxncwxw.me/js/xiaxuanfu. +*ÿï08@Ryushuwen.com/astyle/wap.js +%ÿï08@R/static/69shuba/69.js +#ÿï08@R/static/23wx/idd.js +&ÿï08@R/static/2biqu/twgdh.js$ +ykxs.cca[href^="javascript"]¼? +ÿï08@R.cc/js/dj1*.js +ÿï08@R.cc/js/dj2*.js +ÿï08@R /js/pfad*.js +ÿï08@R wss://*.top/ +ÿï08@Rwss://*.*.top/ +&ÿï08@R/static/idingdian/idd. +5ÿï08@R%/themes/default/wap/images/douyin.gif +0ÿï08@R tunshixingkong2.com/config/v7.js +'ÿï08@Rmihoutao1868.github.io^ +"ÿï08@Rwanmeisxs.cc/js/m. +#ÿï08@Rbiqugie.com/js/wap. +0ÿï08@R fushuba123.top/statics/js/wap.js +"ÿï08@Rbdcde.com/js/x*.js +"ÿï08@Rbdcde.com/js/s*.js +"ÿï08@R56xiaoshuo.net/mm. +ÿï08@Rwuyunks.com/1. + ÿï08@R0sxs.com/js/all. +$ÿï08@R94az.com/astyle/wap. +ÿï08@Rkayege.org/js/ +ÿï08@R 6gxs.net/js/ +ÿï08@Rmaomaoks.com/1. + ÿï08@Rfeiniaoks.com/1. +(ÿï08@R/skin/default/js/qbtr.js +ܲ!* +piaotianxiaoshuo.com* +cleavagecoverup.com* +doupocangqiong.info* +mingrenteahouse.com* +nuanyuehanxing.com* +shanhaimiwenlu.com* +hongyeshuzhai.com* +imianhuatang.info* +ishisetianxia.com* +wodexiaoshuoh.com* +xuanjiezhimen.org* +china-wuling.com* +147xiaoshuo.com* +diyibanzhu.buzz* +diyibanzhu9.pro* +tellgillian.com* +52shuku123.org* +56xiaoshuo.net* +biquge5200.net* +damengzhu1.com* +jieshengit.com* +jingwubook.com* +piaotian55.com* +tianzhangs.com* +xinremenxs.com* +xiushukong.com* +xyuanzunxs.com* +yemancomic.com* +yourbiquge.com* +zhuishubox.com* + 4xiaoshuo.net* + 666biquge.com* + aikushuge.com* + biquge345.com* + biquge365.net* + biquge775.com* + changduzw.com* + guanshuya.com* + haitang30.com* + haitangmi.xyz* + kanshushi.com* + roushuwu6.com* + shenshuxs.org* + shubaowang.cc* + taobiquge.com* + vipbiquge.com* + xbiqugela.com* + xiashuyun.com* + yushuwu.cloud* + 38kanshu.net* + 56shuku.info* + abqg5200.com* + aixiashu.net* + bbiquge8.net* + biquge85.com* + biquge98.net* + biqugecd.com* + biqugesc.org* + biqugewu.net* + biquluo.info* + biqutime.com* + biqutsxs.com* + booktxts.com* + chenkuan.com* + huananxs.top* + ibiquges.com* + ibiquges.org* + ibotaodz.org* + iwurexs.info* + lewen123.com* + liudatxt.org* + maxreader.la* + paoshuzw.com* + qishuta.info* + rizhaoxs.com* + sthuojia.org* + tutengzw.com* + wolaidu1.com* + xbiquge99.cc* + xbotaodz.com* + xdingdian.cc* + xianguke.net* + xqianqian.cc* + xxbiqudu.com* + yebiquge.com* + 23xstxt.net* + 6666xsw.com* + aidu123.com* + bimixsw.com* + biqiuge8.cc* + biqugen.net* + biqugse.com* + ddbqgtxt.cc* + erciyan.com* + gaofuwu.org* + gdbzkz.info* + ishubao.org* + itshang.com* + jiezhong.cc* + jmshuwu.net* + liewenn.com* + longzu5.net* + panguxs.org* + paoshu8.com* + piaotian.la* + prpcoin.com* + qishula.com* + qishupu.com* + shuquso.com* + silukex.com* + vjungle.com* + wenxuem.com* + wenxuemi.cc* + whzh-xs.com* + woaidu.info* + xbiquke.com* + xuanshu.org* + xuessex.com* + yuyougu.com* + +126shu.org* + +131453.xyz* + +51eshu.com* + +69kshu.win* + +779buy.com* + +8181zw.com* + +81book.com* + +93xscc.com* + +9tiefu.com* + +bbiquge.cc* + +bequmo.com* + +biqudd.com* + +biquka.com* + +biqusk.com* + +bisowu.net* + +bokanx.com* + +boquku.com* + +bqg999.net* + +bqwxg8.com* + +bshuku.com* + +bxwx00.com* + +dizishu.cc* + +dobiez.com* + +feibzw.com* + +ijjjxs.net* + +jcdf99.com* + +jpbqg7.com* + +kbook8.com* + +lewenge.cc* + +ltxswu.org* + +mcmssc.net* + +memduh.net* + +qiqidu.net* + +qs1669.net* + +quge66.com* + +sdhear.com* + +shu008.com* + +shuyy8.com* + +siluwx.org* + +sinodan.cc* + +sjks88.com* + +timaxs.com* + +tpsge.info* + +txtduo.com* + +txtwan.com* + +xiaxs.info* + +xs5200.com* + +xs7788.com* + +xsb-xs.com* + +xszww8.net* + +xvipxs.net* + +xwbxsw.com* + +yingsx.com* + +yunxs.info* + 00ksw.com* + 11bqg.com* + 123du.vip* + 13txt.net* + 156zw.com* + 1biqu.com* + 1kans.net* + 23wxx.com* + 2kxs.info* + 333uu.org* + 360xs.com* + 477zw.com* + 50zww.net* + 52bqg.org* + 55561.net* + 67shu.net* + 68read.cc* + 69zww.com* + 7017k.net* + 777zw.net* + 91zww.com* + a6ksw.net* + aiwx.info* + b5200.net* + biqudu.tv* + bisowu.cc* + bxwx.live* + dbrxs.org* + dpcq1.com* + dpcq1.net* + ehuxs.com* + fmh18.net* + fxsc6.net* + gytmh.com* + kunnu.com* + lewxs.com* + luoqiu.io* + lzbao.net* + msxsw.com* + pksge.com* + ranwen.la* + shumil.co* + soduha.la* + stxsw.com* + wxsck.com* + xhytd.com* + xstt5.com* + ygshu.com* + ymxwx.com* + ysxs8.vip* + zydu3.com* + zzs5.info* + +0794.org* + +0sxs.com* + +123wx.cc* + +12zw.net* + +1pwx.com* + +1qxs.com* + +23hh.com* + +23qb.com* + +23qb.net* + +23sk.net* + +24kxs.cc* + +50zw.com* + +52xs.net* + +59xs.com* + +77xsw.cc* + +82zg.com* + +83kss.cc* + +87nb.com* + +99mk.net* + +bqduo.cc* + +fkxs.net* + +idzs.org* + +m-ia.net* + +qqxsw.so* + +shumi.la* + +sytxt.cc* + +x23us.us* + +xygwh.cc* + +yqd6.com* +17k.com* +23us.tw* +3yt.com* +50zw.co* +aixs.la* +b520.cc* +fbqg.cc* +trxs.cc* +tysk.cc* +ykxs.cc* +ixs.la* +u33.cc* +u33.me08@ +,ÿï* + xdingdian.cc08@R .com/ad.aspx ++* +jingwubook.com08@R bcebos.com^ +«ÿï* +piaotianxiaoshuo.com* +147xiaoshuo.com* +piaotian55.com* + taobiquge.com* + biqugecd.com* + biqugewu.net* + biqutime.com* + xbiquge99.cc* + xqianqian.cc* + xxbiqudu.com* + yebiquge.com* + 23xstxt.net* + biqiuge8.cc* + ddbqgtxt.cc* + paoshu8.com* + yuyougu.com* + +8181zw.com* + +boquku.com* + +bqg999.net* + +bqwxg8.com* + +gdbzkz.org* + +quge66.com* + +shuyy8.com* + +txtwan.com* + 00ksw.com* + b5200.net* + bxwx.live* + msxsw.com* + ygshu.com* + ymxwx.com* + +24kxs.cc* + +bqduo.cc* + +sytxt.cc* + +xygwh.cc* +b520.cc* +u33.me08@Rbdimg.com/libs/ +(ÿï* +17k.com08@R bdstatic.com^ +** + +51eshu.com08@Rbytecdntp.com^ +,ÿï* + prpcoin.com08@R c.mipcdn.com^ +.* + 38kanshu.net08@Rcdn.bootcdn.net^ +p* + xbiqugela.com* + biqutime.com* + +biqudd.com* + ysxs8.vip* + +59xs.com* +u33.me08@Rcdn.bootcss.com^ +1* +yemancomic.com08@Rcdn.jsdelivr.net^ +ùÿï* +cleavagecoverup.com* +147xiaoshuo.com* +tellgillian.com* +56xiaoshuo.net* +yourbiquge.com* + xianguke.net* + +memduh.net* + 00ksw.com* + 91zww.com* + bxwx.live* + lzbao.net* + +83kss.cc* + +m-ia.net* +fbqg.cc08@Rcdn.staticfile.org^ +Aÿï* +jingwubook.com* + xwdsc.com08@Rdnsgom.net/public/ +ˆÿï* +hongyeshuzhai.com* +imianhuatang.info* +ishisetianxia.com* +damengzhu1.com* + 4xiaoshuo.net* + aikushuge.com* + biquge775.com* + 56shuku.info* + biquge98.net* + biqugecd.com* + biqutsxs.com* + ibiquges.com* + ibiquges.org* + ibotaodz.org* + iwurexs.info* + liudatxt.org* + paoshuzw.com* + qishuta.info* + sthuojia.org* + tutengzw.com* + xbotaodz.com* + xdingdian.cc* + aidu123.com* + bimixsw.com* + biqiuge8.cc* + gdbzkz.info* + ishubao.org* + liewenn.com* + paoshu8.com* + silukex.com* + wenxuem.com* + xbiquke.com* + xuanshu.org* + xuessex.com* + +81book.com* + +bequmo.com* + +biquka.com* + +bshuku.com* + +lewenge.cc* + +shu008.com* + +siluwx.org* + +xiaxs.info* + +xs5200.com* + +xszww8.net* + +xvipxs.net* + +yunxs.info* + 11bqg.com* + 1biqu.com* + 1kans.net* + 23wxx.com* + 777zw.net* + aiwx.info* + biqudu.tv* + bxwx.live* + pksge.com* + shumil.co* + zzs5.info* + +0794.org* + +12zw.net* + +23hh.com* + +23sk.net* + +99mk.net* + +bxwx.org* + +yqd6.com* + +zjsw.org* +3yt.com* +aixs.la* +ixs.la* +u33.cc08@Rlibs.baidu.com^ +* + colamanga.com08@ +-ÿï* + colamanga.com08@R .com/js/a_d/ +.ÿï* + colamanga.com08@R .com/logo/ad. +.* + colamanga.com08@Rcloudflare.net^ +#ÿï08@Rcolamanga.com/sw.js"body > .app + #htmlContenthtml.app > .app_tj body > .zdhf body > .dbfhscript + .dbfh84body > div[style$=";background: #000;opacity:0.01;"][W.row.nav-bottom + div[style^="display: block; position: relative; width: 0px; height:"]?;a[href*="aHR0cHM6Ly9xc2Z2bDExLmFsYXp2LmNvbS8zNzA4Lmh0bWw="]/ + colamanga.comiframe[style*="important"] +qq.com.side_ad.txp_ad_centerM +thesoccerline.com +173.192.147.21 + sejie.com + sejie3.us#wp > brU +thesoccerline.com +173.192.147.21 + sejie.com + sejie3.us#wp > center > a  #asx_text#wp > .V-video-float  .b_oscar1 .b_pr +.b_sxc +.b_sxp .b_sxp + .zxy.float-left12 > .div-list.wrapper > #asxva[onclick*="/dasp.php?a="]Ñ +®ÿï08@R�rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+40)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+45) +®ÿï08@R�rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+50)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+55) +­ÿï08@Rœrvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+150):-abp-contains(/赌|娱|æ¾³/)) > :nth-child(-n+155) +­ÿï08@Rœrvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+160):-abp-contains(/赌|娱|æ¾³/)) > :nth-child(-n+170) +­ÿï08@Rœrvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+180):-abp-contains(/赌|娱|æ¾³/)) > :nth-child(-n+188) +­ÿï08@Rœrvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+190):-abp-contains(/赌|娱|æ¾³/)) > :nth-child(-n+195) +2ÿï08@R"alicdn.com/img/ibank/*_1980598585. +1ÿï08@R!alicdn.com/img/ibank/*_255861743. +“ÿï08@R‚69xx.one,69xx487.xyz,8mav.cc,av411.xyz,cable2055.cc,theav.xyz,thep178.com,theporn.cc,weav.xyz#?#[class]:-abp-has(>a>.q-responsive) +,ÿï08@Rjsdelivr.net/gh/dashange123/ +˜* +torrentkitty.asia* +torrentkitty.live* +torrentkitty.app* +torrentkitty.cam* +torrentkitty.ink* +torrentkitty.lol* +torrentkitty.net* +torrentkitty.one* +torrentkitty.io* +torrentkitty.se* +torrentkitty.tv* + torrkitty.com* + torkitty.com* + torkitty.net08@ +'ÿï08@R.tor*/js/jquery.bpopup. +%ÿï08@R/nordvpn/autoptimize_ +!08@Rwebkaka.com*/click/ +4ÿï08@R$webkaka.com/info/script/articleAd.js +(ÿï08@Rwebkaka.com/script/cp.js +!ÿï08@Rwebkaka.com^*x50.  #j-new-ad .a_sxfl .a_sxmu +.a_sxp .a_sxpb.heg > .partner-lista[href^="/dasp.php?a="]#header + #topBox.col5 > dl#randomBox.search + #midBox.wrap + #btmBox.wrap + #midBox body[ontouchstart] > #topBox&"script[src$="/base.js"] + #couplet + redircdn.com.al& + +t66y.com.sptable_do_not_remove + +t66y.com.tips #toptb + div[align="center"].it618_firstad_flex  #__ads_dp73#video_playr_side.video_playr_sider.videoplayerside + +theporn.cc +.gg-config + +theporn.cc .toolbar-gga[href$="/hjdt9.com"]a[href$="/xha77.com"]#vpnModal.nordvpn-popup!.nordvpn-popup + .sidebar-vpn™ +torrentkitty.app +torrentkitty.lol +torrentkitty.net +torrentkitty.io +torrentkitty.se +torrentkitty.tv + torkitty.coma[href*="/aff_"] + webkaka.com .pNavigateAd + webkaka.com .pTopTextAd* + webkaka.coma[href*=".simcentric."]) + webkaka.coma[href*="/click/a_d_"]% + webkaka.comtd[id$="_SPONSOR"] + wnacg.com#adsbox* + wnacg.com.Flagrow-Ads-under-header + wnacg.com.RMss1" + wnacg.com.Text-Advertising + wnacg.com .a_ssk_cn + wnacg.com.a_xsfl + wnacg.com.ctm_ad + wnacg.com.ff-ads + wnacg.com .google-ads + wnacg.com.hlol_ad + wnacg.com.pcd_ad: + wnacg.com)a[href^="http"]:not([href*="wnacg."]) img. + wnacg.comimg[width="399"][height*="6"]' + wnacg.comscript + div > a > imgå +)ÿï08@Rwnacg.*/1605524662751.gif + ÿï08@Rwnacg.*/1sdfdc1/ +ÿï08@R wnacg.*/58s/ +ÿï08@R wnacg.*/5eg/ +"ÿï08@Rwnacg.*/data/game/ +ÿï08@R +wnacg.*/sd +.ÿï08@Rwnacg.*/themes/mo/images/*.gif +-ÿï08@Rwnacg.*/themes/weitu/images/0 +ÿï08@R wnacg.*/w7z/ +ÿï08@R wnacg.*/w8z/ +ÿï08@R wnacg.*/zec/ +.ÿï08@R/api/goods/v1/get.script.core? + ÿï08@R:11211/t.js?MAC= +*ÿï08@Rakamaihd.net^*/gsd.html?d= +*ÿï08@Rakamaihd.net^*/sid.html?p= +;ÿï08@R+commondisplay-a.akamaihd.net/cri/*.htm?cat= +)ÿï08@Rhdapp1003-a.akamaihd.net^ +)ÿï08@Rhdapp1008-a.akamaihd.net^ +%ÿï08@Rhdsrc-a.akamaihd.net^ +.ÿï* +mobi.yahoo.com08@R -social-bar. +.ÿï* + pan.baidu.com08@R /image/share_ + +quark.cn .open-share + +quark.cn .share-btns + +quark.cn .share-save + eastday.com +#leftShare +189.cn +#linkShare( + gfan.net.cn + +gfan.com #shareBox + zhihu.com .FollowButton6 +freecodecamp.one +freecodecamp.cn .btn-social] + tianfateng.cn + cokemine.com + +jubuzz.com + +skyarea.cn + eveaz.com.category-share + smzdm.com.comment_share + softblog.tw.dshareH + fotor.com.cn + +weiyun.com + +youdao.com + ffxiv.xin .icon-share! + readmoo.com.navbar-social + +youdao.com .open-share + +weiyun.com .page-share! + +weiyun.com.page-share-box + +skyarea.cn .post-share +163.com.s-btns +cls.cn .share-body + +90xz.com +.share-btn7 + +youdao.com + baidu.com +yun.cn.share-content0 +fortress.com.hk + +youdao.com .share-icon% +aiqicha.baidu.com .share-label + baidu.com .share-line? + +weiyun.com + +youdao.com +189.cn +vua.sh .share-link= + weicaixun.com + meidebi.com + +123pan.com .share-list + +yunpan.com +.share-new +189.cn .share-panel + +youdao.com .share-text2 +aiqicha.baidu.com + xinmin.cn .share-title  + +yunpan.com.share-wrapper + wantgoo.com +.shareBtns+ + pcsoft.com.cn + +cger.com +.share_box7 + +dj92cc.com + +tingqq.com + +djkk.com .share_list6 +businessreview.global + zhihuishu.com.sharing +icourse163.org .sns-link + laosiji.com .sns-wrapper + mrbird.cc .social-icons + +ghxi.com .social-item& + +ali213.net.subscribe-container + +5dm.link.tm-share-this  + +laohu8.com.tweet-article- + fqsousou.com + +kengso.com .user-shareÆ +8ÿï* +service.weibo.com08@R/images/*_share.png +3ÿï* +search.www.gov.cn08@R/images/share/ +:ÿï* +leetcode-cn.com08@R/needsharebutton.min.js +0ÿï* +yunpanjingling.com08@R +/share/js/ +0ÿï* +patentguru.com08@R/social-share. +5ÿï* + servercat.me08@R/wp-content/*/social_ +.ÿï08@R126.net/163/frontend/share/js/ +"ÿï08@R189.cn^*/shareBox. ++ 08@Raliyundrive.com^*/share_link/ +&ÿï08@Rbaidu.com/share/count? +Kÿï08@R;bdimg.com/static/wapwenku/static/common/widget/share/share_ +=ÿï08@R-bdimg.com/static/wenda-pc/widget/share/share_ +(ÿï08@Rbdstatic.com/po/??*,*,*, +dÿï08@RTcarexpert.com.tw/wp-content/plugins/like-box-pro/includes/javascript/front_end_js.js +)ÿï08@Rcgmodel.com/plugin/share/ +Aÿï08@R1citytalk.tw/js/ct/common/v3/ui/fblike/FBLike.html +*ÿï08@Rdaziba.cn/Images/share.css +7ÿï08@R'dnspod.cn/static/common/js/analytics.js ++ÿï08@Rdouyucdn.cn^*-share-master/ +<ÿï08@R,flyert.com/plug/socialShare/js/social-share. +1ÿï08@R!fotor.com.cn/static/web/share/js/ +1ÿï08@R!goodinfo.tw/StockInfo/image/*.png +Dÿï08@R4gtimg.cn/qz-proj/wy-pc-v3/static/img/svg/icon-share- +>ÿï08@R.hmvod.com.hk/website/static/skin/images/share/ +"ÿï08@Ritc.cn/site/share/ +Pÿï08@R@logcg.content-delivery.top/wp-content/plugins/bwp-minify/min/?f= +*ÿï08@Rpchomepay.com.tw/share/js/ +*ÿï08@Rreadmoo.com/images/social/ +) +* +k73.com08@Rshare.baidu.com^ +2ÿï08@R"sinaimg.cn/tech/https_index/share. +7ÿï08@R'sohu.com/play/videonew.do?*/share_play. +<ÿï08@R,sohu.com/upload/static/share/share_play.html +)ÿï08@Rsoufunimg.com/??*/fshare. +Qÿï08@RAsteamcn.com/source/plugin/steamcn_gift/template/images/*steam.png +@ÿï08@R0toolfk.com/tools/js/share/js/jquery.share.min.js +%ÿï08@Rtvb.com/social/share_ +1ÿï08@R!vipstatic.com/img/share/blank.png +2ÿï08@R"wancaibb.com/share/js/share.min.js +5ÿï08@R%xnimg.cn^*/nx/ugc/share/js/hotlist.js +Cÿï* + free.com.tw08@R$.google-analytics.com%2Fanalytics.js +.ÿï* + xcar.com.cn08@R/analytics.php? +,ÿï* + abchina.com08@R /fingerprint. +iÿï* +pop-fashion.com* + fangcloud.com* + fx678.com* + hnair.com* +gxpf.cn08@R/fingerprint2.js +dÿï* +passport.vpgame.com* + shixiseng.com* + +csdn.net* + +neets.cc08@R/fingerprint2.min.js +3ÿï* + imooc.com08@R/fingerprintjs2.min.js +!* +on.cc08@R +/hitCount. +! * +on.cc08@R +/hitCount_ +rÿï* +dongfeng-nissan.com.cn* +cankaoxiaoxi.com* + sina.com.cn* + +huomao.com* + loldk.com08@R +/iplookup. +** + bilibili.com08@R /log/report/ +9ÿï* + aixiaoyuan.cn* +zkh.com08@R /sensorsdata- +Ÿÿï* +saicskoda.com.cn* +xinrenxinshi.com* +tianyancha.com* + 53zaixian.com* + chuanglan.com* + zzjiasuqi.com* + canon.com.cn* + binance.com* + shanbay.com* + +guancha.cn* + +modian.com* + fenbi.com* + imooc.com* + kuque.com* + +36kr.com* + +by56.com* + +ttcdw.cn08@R /sensorsdata. +Eÿï* + ctrip.com.hk* + ctrip.com* + pinyin.cn08@R /setCookie? +#ÿï* +on.cc08@R +/urchin.js +7ÿï08@R'10010.com/mall/common/js/fa.js?referer= +1ÿï08@R!10086.cn/framework/modules/sdc.js +;ÿï08@R+111.75.255.103/Scripts/Controls/PageView.js +(ÿï08@R126.net/images/blank.gif +&ÿï08@R163.com/user/event?id= +$ÿï08@R40017.cn/cn/min/???/ +&ÿï08@R7m.cn/v2/js/analyse.js +,ÿï08@R8891.com.tw/js/v3/blueKai.js +$ÿï08@Ra1.itc.cn/pv/js/spv. +@ÿï08@R0adidasoriginals-lookbook.com.tw/js/adtracking.js +/* +sonystyle.com.cn08@R adobedtm.com^¶ +?* +samsungmembers.cn08@Radobedtm.com^*/satelliteLib- +,ÿï08@Rairav.cc/js/td_ga_tracker.js +?ÿï08@R/aixifan.com/acfun-H5/public/script/sensorsdata. +-ÿï08@Raixifan.com/acsdk/log.min.js? +?ÿï08@R/aixifan.com/dotnet/20130418/script/fingerprint. +'ÿï08@Ralicdn.com/??*/tracker/ +Eÿï* + alimama.com08@R&alicdn.com/dt/tracker/2.5.1/tracker.js +6ÿï08@R&alicdn.com/dt/tracker/4.2.0/??tracker. +-ÿï08@Ralicdn.com/retcode/log/log.js ++ÿï08@Ralicdn.com^*/click_track.js +$ÿï08@Ralicdn.com^*/log.js, +/ÿï08@Raliyun.com/nocaptcha/analyze.js +:ÿï08@R*aliyun.com/scratchCardSlide/analyze.jsonp? +7ÿï* + +3g.163.com08@Ranalytics.163.com/ntes.js +&ÿï08@Rappledaily.com/js/nxm_ +:ÿï* + +saicmg.com08@Rassets.giocdn.com/2.1/gio.js +gÿï* +alimarket.tmall.com* +www.taobao.com* + www.tmall.com08@Ratanx.alicdn.com/t/tanxssp.js +9ÿï08@R)autohome.com.cn/javascript/fingerprint.js +1ÿï08@R!autoimg.cn/bi/common/pvevent_all. +1ÿï08@R!autoimg.cn/bi/common/pvevent_all_ +$ÿï08@Rbagehd.com/iplookup. +Jÿï* + baomihua.com* + ihome99.com* + 19lou.com08@Rbaidu.com/h.js +[ÿï* +seo.chinaz.com* + ramboplay.com* + cainiao.com* +dwz.cn08@Rbaidu.com/hm.js +gÿï* +dominos.com.cn* + tianqi.qq.com* + tanmizhi.com* + +saicmg.com08@Rbaidu.com/location/ip? +<ÿï08@R,baidu.com/static/touch/js/lib/fingerprint.js +Eÿï* +message.bilibili.com08@Rbilibili.com^*/web_page_view? ++ÿï08@Rbitauto.com/bglogpostlog.js +)ÿï08@Rbokecc.com/flash/playlog? +3ÿï08@R#bytedance.com/ttwid/union/register/ ++ÿï08@Rcaptcha.qq.com^*&refer=http +5ÿï* +kktv.me08@Rcdn.optimizely.com/js/*.js +/ÿï08@Rchangyan.sohu.com/debug/cookie? +7ÿï08@R'cmoney.tw/finance/js/googleanalytics.js +3ÿï08@R#cmoney.tw/vt/js/google_analytics.js +:ÿï* + m.tieyou.com08@Rcnzz.com/c.php?id=30070167 +5ÿï* +qd.alibaba.com08@Rcnzz.com/q_stat.php +@ÿï08@R0costco.com.tw/_ui/shared/js/analyticsmediator.js +&08@Rcount.taobao.com/counter +4ÿï08@R$count.video.sina.com.cn^*?video_ids= +Gÿï08@R7dictionary.search.yahoo.com/beacon/sc?&ajaxdd=tabsCard& +,ÿï08@Rfang.com/stats/clickm2011.js +)ÿï08@Rfengkongcloud.com/fpv2.js +1ÿï08@R!gamersky.com/Common/GetHits.aspx? +3ÿï08@R#genshuixue.com/??/*/counter/action_ +L * +tw.autos.yahoo.com* +tw.buy.yahoo.com08@Rgeo.query.yahoo.com^ +$ÿï08@Rgias.jd.com/js/td.js +<ÿï08@R,gifshow.com/rest/wd/common/log/collect/acfun +&ÿï08@Rgk.sina.cn/v1/gkmatch? +œÿï* +maminews.com.tw* +support.amd.com* + lenovo.com.cn* + citytalk.tw* + +komica.org* + linetv.tw* +ebb.io08@R!google-analytics.com/analytics.js +Fÿï* + lenovo.com.cn08@R%google-analytics.com/plugins/ua/ec.js +Lÿï* +support.amd.com08@R)google-analytics.com/plugins/ua/linkid.js +"ÿï* +amd.com08@R/gtm.js +bÿï* +warnermusic.com.tw* +mamibuy.com.tw* + asus.com.cn08@Rgoogletagmanager.com/gtm.js +:ÿï08@R*guahao.cn/common/js/plugins/fingerprint.js +Iÿï08@R9hao123img.com/resource/zt/widget/service/util/clickTrack. +Aÿï08@R1hdslb.com/bfs/cm/cm-sdk/static/js/bili-collect.js +?ÿï08@R/highcharts.com.cn/highcharts/modules/heatmap.js +&ÿï08@Rhk01.com^*/ga_trace.js +(ÿï08@Rhk01.com^*/scripts/ga.js +Mÿï08@R=hoy.tv/wp-content/themes/vodi-child/videojs-event-tracking.js +(ÿï08@Rhuke88.com^*-tracking.js +8ÿï08@R(img4399.com/static/huodong/daily/fpv2.js +"ÿï08@Ripip.net/ping.php? +!ÿï08@Rjd.com/setCookie?ä +!08@Rjd.com^*&refer=http +/ÿï08@Rjianshu.com/asimov/ab_test/info +#ÿï08@Rjiayuan.com^*/pv.js +'ÿï* + +jiguang.cn08@R jpush.cn^ +7ÿï08@R'kfcorder.com.tw/web/Script/Analytics.js +8ÿï08@R(ksapisrv.com/rest/wd/common/log/collect/ +5ÿï08@R%lesports.com/pc/??*/click_statistics/ +>ÿï08@R.liulanmi.com/wp-content/uploads/*/StatCounter- +&ÿï08@Rlobi.co/1/track/event/ +1ÿï08@R!meituan.net/bs/js/*/js/tracker.js ++08@Rmhxk.com^*/main/entry.common. +aÿï* + +taobao.com* + tmall.com* + tudou.com* + youku.com* + +1688.com08@Rmmstat.com/eg.js +?ÿï08@R/moea.gov.tw/EgisWeb/Scripts/google-analytics.js +9ÿï* + microsoft.com08@Rmsecnd.net/scripts/jsll- +%ÿï08@Rmsn.wrating.com/a1.js +,ÿï08@Rmyssl.com/scripts/analyze.js +Eÿï* + hangseng.com08@R%omtrdc.net/m2/hsbcbankhase/mbox/ajax? +€08@Rpass.1688.com^ +1ÿï08@R!paypalobjects.com/pa/js/min/pa.js +6ÿï08@R&paypalobjects.com/tagmgmt/bootstrap.js +7ÿï08@R'piaotia.com/scripts/readindex/tongji.js +*ÿï08@Rpingan.com^*/rrweb-record- +ÿï08@Rpingjs.qq.com^ + ÿï08@Rpv.sohu.com/suv/ +-ÿï08@Rqhimg.com^*/monitor_analytic. +=ÿï* + +mse.360.cn08@Rqhres.com^*/monitor_analytic.js +?ÿï* + hktvmall.com08@Rscorecardresearch.com/beacon.js +?ÿï* +www.taobao.com08@Rsimba.taobao.com/?name=tcmad& +Vÿï* +widget.weibo.com* + weibo.com08@R#sinajs.cn/open/analytics/js/suda.js +=ÿï* +sc.sina.com.cn08@Rsinajs.cn/open/api/js/wb.js +6ÿï08@R&sogou.com/pv.gif?*&stype=showskinpanel +ãÿï* +platinum-pen.com.cn* + jialingmm.net* + shouji.com.cn* + 51credit.com* + castech.com* + jdboshi.com* + vivo.com.cn* + +e-learn.cn* + +ems.com.cn* + eduyun.cn* + lcm88.com* +mop.com* +skk.moe08@Rsohu.com/cityjson +@ÿï08@R0sohu.com/integration-api/mix/region/*&refer=http +/ÿï08@Rsoufunimg.com/count/uvbforpc.js +9ÿï08@R)stjscn.s-msn.com/portal/hp/2011/udctrack. +"ÿï08@Rtajs.qq.com/stats? +)ÿï08@Rtbcdn.cn^*/click_track.js +'ÿï08@Rtbskip.taobao.com/json/ +.ÿï* + alimama.com08@Rtce.alicdn.com^ +6ÿï08@R&threatbook.cn/public/asset/js/zhugeIo. +"ÿï08@Rtianxun.com/min/f= +ÿï08@Rtmall.com/add? +(ÿï08@Rtracklog.58.com/referrer +/ÿï08@Rudn.com/mall/images/spacer.gif? +#ÿï08@Rviu.com^*/tracking/ +!ÿï08@Rwl.jd.com/joya.js +ÿï08@Rwl.jd.com/wl.js +Sÿï* +tw.answers.yahoo.com* +style.yahoo.com.tw08@Ryimg.com/ss/rapid3.js +.ÿï08@Ryouku.com/cms/player/userinfo/ +*ÿï08@Ryouku.com/cms/playlog/get? +6ÿï08@R&hjfile.cn/analytics/site/TrackEvent.js \ No newline at end of file diff --git a/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/adblock_snippet.js b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/adblock_snippet.js new file mode 100644 index 0000000..89d118c --- /dev/null +++ b/EBWebView/EBWebView/Subresource Filter/Unindexed Rules/10.34.0.84/adblock_snippet.js @@ -0,0 +1 @@ +(()=>{function e(){"undefined"!=typeof videoAdsBlockerNativeHandler&&videoAdsBlockerNativeHandler.logBlockSuccess()}function t(t,n){if(!t)throw new Error("[override-property-read snippet]: No property to override.");if(void 0===n)throw new Error("[override-property-read snippet]: No value to override with.");let l;if("false"===n)l=!1;else if("true"===n)l=!0;else if("null"===n)l=null;else if("noopFunc"===n)l=()=>{};else if("trueFunc"===n)l=()=>!0;else if("falseFunc"===n)l=()=>!1;else if(/^\d+$/.test(n))l=parseFloat(n);else if(""===n)l=n;else if("undefined"!==n)throw new Error(`[override-property-read snippet]: Value "${n}" is not valid.`);r(window,t,{get:()=>(e(),l),set(){}})}function r(e,t,n){let l=t.indexOf(".");if(-1==l){let r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable)return;let l=Object.assign({},n,{configurable:!0});if(!r&&!l.get&&l.set){let r=e[t];l.get=()=>r}return void Object.defineProperty(e,t,l)}let o=t.slice(0,l);t=t.slice(l+1);let s=e[o];!s||"object"!=typeof s&&"function"!=typeof s||r(s,t,n);let i=Object.getOwnPropertyDescriptor(e,o);i&&!i.configurable||Object.defineProperty(e,o,{get:()=>s,set:e=>{s=e,!e||"object"!=typeof e&&"function"!=typeof s||r(e,t,n)},configurable:!0})}let n={isOwnProperty:Object.prototype.hasOwnProperty};t("playerResponse.adPlacements","undefined"),t("ytInitialPlayerResponse.adPlacements","undefined"),function(t,r=""){if(!t)throw new Error("Missing paths to prune");let l=t.split(/ +/),o=""!==r?r.split(/ +/):[],s=JSON.parse,i={value(...t){let r;if(r=s.apply(this,t),o.length>0&&o.some((e=>!p(r,e))))return r;for(let t of l){let n=p(r,t);void 0!==n&&(e(),delete n[0][n[1]])}return r}};function p(e,t){if(!(e instanceof window.Object))return;let r=e,l=t.split(".");if(0===l.length)return;for(let e=0;e/appã€�/runtime) + static string AppRoot() + { + string d = AppDir(); + return d != null ? Path.GetDirectoryName(d) : null; + } + + // ---- è¿�行时查找(标准安装 或 离线包 runtime 目录)---- + + static string FindNodeExe() + { + if (File.Exists(StdNodeExe)) return StdNodeExe; + string root = AppRoot(); + if (root != null) + { + string local = Path.Combine(root, "runtime", "node", "node.exe"); + if (File.Exists(local)) return local; + } + return null; + } + + static string GetNodeDir() + { + string exe = FindNodeExe(); + return exe != null ? Path.GetDirectoryName(exe) : null; + } + + static string FindNpmCli() + { + string nodeDir = GetNodeDir(); + if (nodeDir != null) + { + string cli = Path.Combine(nodeDir, "node_modules", "npm", "bin", "npm-cli.js"); + if (File.Exists(cli)) return cli; + } + if (File.Exists(StdNpmCli)) return StdNpmCli; + return null; + } + + static string FindDshBinJs() + { + // 1) npm 全局(è�”网安装 / 离线å¤�制到 APPDATA 的情况) + string npmDir = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "npm"); + string p1 = Path.Combine(npmDir, "node_modules", "@deepseek-ai", "dsh", "lib", "bin.js"); + if (File.Exists(p1)) return p1; + // 2) 离线包布局 /runtime/dsh/node_modules + string root = AppRoot(); + if (root != null) + { + string p2 = Path.Combine(root, "runtime", "dsh", "node_modules", "@deepseek-ai", "dsh", "lib", "bin.js"); + if (File.Exists(p2)) return p2; + } + return null; + } + static bool IsPortOpen(int port) { try @@ -201,14 +261,18 @@ static class Program { string appDir = AppDir(); string logFile = Path.Combine(appDir, "web.log"); - string npmDir = Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "npm"); - string binJs = Path.Combine(npmDir, "node_modules", "@deepseek-ai", "dsh", "lib", "bin.js"); + string nodeExe = FindNodeExe(); + string binJs = FindDshBinJs(); try { - if (!File.Exists(NodeExe) || !File.Exists(binJs)) return; + if (nodeExe == null || binJs == null) + { + try { File.WriteAllText(Path.Combine(AppDir(), "start-error.log"), + "Node 或 dsh 未找到。nodeExe=" + (nodeExe ?? "null") + " binJs=" + (binJs ?? "null")); } catch { } + return; + } - var psi = new ProcessStartInfo(NodeExe) + var psi = new ProcessStartInfo(nodeExe) { UseShellExecute = false, CreateNoWindow = true, @@ -220,10 +284,10 @@ static class Program // ç¡®ä¿� node 与 npm 命令å�¯ç”¨ï¼ˆdsh æ�’ä»¶å�¯èƒ½ç”¨åˆ°ï¼‰ string path = psi.EnvironmentVariables["PATH"] ?? ""; - if (path.IndexOf("nodejs", StringComparison.OrdinalIgnoreCase) < 0) - path = @"C:\Program Files\nodejs;" + path; - if (path.IndexOf("npm", StringComparison.OrdinalIgnoreCase) < 0) - path = npmDir + ";" + path; + string nodeDir = Path.GetDirectoryName(nodeExe); + if (nodeDir != null && path.IndexOf("nodejs", StringComparison.OrdinalIgnoreCase) < 0 + && path.IndexOf(nodeDir, StringComparison.OrdinalIgnoreCase) < 0) + path = nodeDir + ";" + path; psi.EnvironmentVariables["PATH"] = path; // ç¦�用 dsh å�¯åЍé�¥æµ‹ï¼ˆå�¯èƒ½å°�幅加速冷å�¯åŠ¨ï¼‰ @@ -310,6 +374,7 @@ static class Program if (enable) { string vbs = Path.Combine(AppDir(), "start-dsh-service.vbs"); + WriteServiceVbs(vbs); key.SetValue(RunValueName, "wscript.exe \"" + vbs + "\""); } else @@ -321,6 +386,25 @@ static class Program catch { } } + // 按当å‰�环境动æ€�生æˆ�éš�è—�å�¯åЍ噍 vbs(路径éš�用户/安装ä½�ç½®å�˜åŒ–) + static void WriteServiceVbs(string path) + { + try + { + string nodeExe = FindNodeExe(); + string binJs = FindDshBinJs(); + if (nodeExe == null || binJs == null) return; + string logFile = Path.Combine(AppDir(), "web.log"); + // cmd /c ""node" "bin.js" web > "log" 2>&1" (CreateProcess 剥一层引å�·å�Ž cmd ä»�收到带引å�·å‘½ä»¤ï¼‰ + string inner = "cmd /c \"\"" + nodeExe + "\" \"" + binJs + "\" web > \"" + logFile + "\" 2>&1\""; + string vbs = "' Start dsh service (hidden, auto-generated)\r\n" + + "Set ws = CreateObject(\"WScript.Shell\")\r\n" + + "ws.Run \"" + inner.Replace("\"", "\"\"") + "\", 0, False\r\n"; + File.WriteAllText(path, vbs); + } + catch { } + } + // ---- DSH 版本检查与å�‡çº§å¼•导(应用内完æˆ�,无需æµ�览器/终端)---- static void CheckUpdateAsync() @@ -369,14 +453,18 @@ static class Program { try { - string pkg = Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - "npm", "node_modules", "@deepseek-ai", "dsh", "package.json"); - if (File.Exists(pkg)) + string binJs = FindDshBinJs(); + if (binJs != null) { - var doc = new System.Text.RegularExpressions.Regex("\"version\"\\s*:\\s*\"([^\"]+)\""); - var m = doc.Match(File.ReadAllText(pkg)); - if (m.Success) return m.Groups[1].Value; + string pkg = Path.Combine( + Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(binJs))), + "package.json"); + if (File.Exists(pkg)) + { + var doc = new System.Text.RegularExpressions.Regex("\"version\"\\s*:\\s*\"([^\"]+)\""); + var m = doc.Match(File.ReadAllText(pkg)); + if (m.Success) return m.Groups[1].Value; + } } } catch { } @@ -387,14 +475,17 @@ static class Program { try { + string nodeExe = FindNodeExe(); + string cli = FindNpmCli(); + if (nodeExe == null || cli == null) return ""; string stdout = ""; - var psi = new ProcessStartInfo(NodeExe) + var psi = new ProcessStartInfo(nodeExe) { UseShellExecute = false, CreateNoWindow = true, RedirectStandardOutput = true, RedirectStandardError = true, - Arguments = "\"" + NpmCli + "\" view @deepseek-ai/dsh version", + Arguments = "\"" + cli + "\" view @deepseek-ai/dsh version", }; using (var p = Process.Start(psi)) { @@ -413,14 +504,17 @@ static class Program string logFile = Path.Combine(AppDir(), "upgrade.log"); try { - var psi = new ProcessStartInfo(NodeExe) + string nodeExe = FindNodeExe(); + string cli = FindNpmCli(); + if (nodeExe == null || cli == null) return false; + var psi = new ProcessStartInfo(nodeExe) { UseShellExecute = false, CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden, RedirectStandardOutput = true, RedirectStandardError = true, - Arguments = "\"" + NpmCli + "\" install -g @deepseek-ai/dsh@latest", + Arguments = "\"" + cli + "\" install -g @deepseek-ai/dsh@latest", }; using (var p = Process.Start(psi)) { diff --git a/app/start-dsh-service.vbs b/app/start-dsh-service.vbs index d765672..db8847b 100644 --- a/app/start-dsh-service.vbs +++ b/app/start-dsh-service.vbs @@ -1,4 +1,3 @@ -' Start dsh (DeepSeek Harness) service in background, no window. -' Used by "autostart" tray option (registry Run entry via wscript). +' Start dsh service (hidden, auto-generated) Set ws = CreateObject("WScript.Shell") ws.Run "cmd /c """"C:\Program Files\nodejs\node.exe"" ""C:\Users\VanuSystems-Mu\AppData\Roaming\npm\node_modules\@deepseek-ai\dsh\lib\bin.js"" web > ""C:\Users\VanuSystems-Mu\AppData\Local\DeepSeekHarness\app\web.log"" 2>&1""", 0, False